|
58065
|
2045
|
1
|
2026-05-19T11:31:18.190284+00:00
|
/Users/lukas/.screenpipe/data/data/2026-05-19/1779 /Users/lukas/.screenpipe/data/data/2026-05-19/1779190278190_m2.jpg...
|
iTerm2
|
APP (-zsh)
|
1
|
NULL
|
monitor_2
|
NULL
|
NULL
|
NULL
|
NULL
|
Last login: Mon May 18 09:17:28 on ttys007
Poetry Last login: Mon May 18 09:17:28 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 (pipedrive-sdk-poc) $ co master
error: Your local changes to the following files would be overwritten by checkout:
PIPEDRIVE_V2_MIGRATION_TICKETS.md
Please commit your changes or stash them before you switch branches.
Aborting
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (pipedrive-sdk-poc) $ git pull
remote: Enumerating objects: 1047, done.
remote: Counting objects: 100% (832/832), done.
remote: Compressing objects: 100% (298/298), done.
remote: Total 1047 (delta 634), reused 596 (delta 534), pack-reused 215 (from 3)
Receiving objects: 100% (1047/1047), 353.16 KiB | 1.56 MiB/s, done.
Resolving deltas: 100% (687/687), completed with 107 local objects.
From github.com:jiminny/app
907c54896c..34656c53ed pipedrive-sdk-poc -> origin/pipedrive-sdk-poc
03325ec50f..4e7078fd8b JY-18091-upgrade-to-php-8-5 -> origin/JY-18091-upgrade-to-php-8-5
e7d231e163..bc6a3fce6b JY-20725-handle-HS-search-rate-limit -> origin/JY-20725-handle-HS-search-rate-limit
* [new branch] JY-20749-user-can-view-recorded-meetings -> origin/JY-20749-user-can-view-recorded-meetings
98ca281a04..e0351be069 JY-20808-low-priority-indexing-queue -> origin/JY-20808-low-priority-indexing-queue
569abb5149..3906a9238a JY-20835-mcp-enable-users-to-get-a-list-of-deals-and-their-details -> origin/JY-20835-mcp-enable-users-to-get-a-list-of-deals-and-their-details
ad6c2a86e8..50eb6afba9 JY-20846-mcp-enable-the-ai-to-know-details-about-the-user -> origin/JY-20846-mcp-enable-the-ai-to-know-details-about-the-user
* [new branch] JY-20893-chunk-control-per-update-target -> origin/JY-20893-chunk-control-per-update-target
31c62924a5..cb4ebf0c36 master -> origin/master
Updating 907c54896c..34656c53ed
Fast-forward
PIPEDRIVE_V2_MIGRATION_TICKETS.md | 52 ++++++++++++++++++++++++++++++++++++++++++++++++++++
1 file changed, 52 insertions(+)
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (pipedrive-sdk-poc) $ co master
M .env.local
M config/logging.php
Switched to branch 'master'
Your branch is behind 'origin/master' by 31 commits, and can be fast-forwarded.
(use "git pull" to update your local branch)
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (master) $ git pull
Updating 31c62924a5..cb4ebf0c36
Fast-forward
app/Component/ES/Processor/Traits/SelectEntityListTrait.php | 20 ------
app/Services/Calendar/CalendarActivityService.php | 46 +++++++++++++
app/Services/Calendar/Command/MapActivityData.php | 106 +++-------------------------
docs/mcp/explorer/explorer.html | 104 +++++++++++++++++++++++++---
docs/mcp/explorer/explorer.template.html | 102 ++++++++++++++++++++++++---
docs/mcp/tools-list.json | 373 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++-------
docs/mcp/tools.md | 117 +++++++++++++++++++++++--------
tests/Unit/Component/ES/AsyncUpdateElasticSearchTest.php | 16 +----
tests/Unit/Component/ES/Listeners/UpdateMultipleTargetsListenerTest.php | 10 ---
tests/Unit/Component/ES/Listeners/UpdateSingleTargetListenerTest.php | 6 --
tests/Unit/Component/ES/Processor/TargetEntitiesSelectorTest.php | 9 ---
tests/Unit/Component/ES/Processor/Traits/SelectEntityListTraitTest.php | 15 ++--
tests/Unit/Component/ES/UpdateProcessManagerTest.php | 2 -
tests/Unit/Services/Calendar/CalendarActivityServiceTest.php | 150 ++++++++++++++++++++++++++++++++++++++--
tests/Unit/Services/Calendar/Command/MapActivityDataTest.php | 78 ++-------------------
15 files changed, 832 insertions(+), 322 deletions(-)
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (master) $ co -b JY-20613-allow-owner-role-on-team-setup
Switched to a new branch 'JY-20613-allow-owner-role-on-team-setup'
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20613-allow-owner-role-on-team-setup) $ csfix
docker exec -it docker_lamp_1 ./vendor/bin/php-cs-fixer fix --config=.php-cs-fixer.dist.php -v --using-cache=no --diff
PHP CS Fixer 3.87.1 Alexander by Fabien Potencier, Dariusz Ruminski and contributors.
PHP runtime: 8.3.30
Running 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!
Loaded config default from ".php-cs-fixer.dist.php".
5682/5682 [▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓] 100%
Fixed 0 of 5682 files in 56.978 seconds, 67.00 MB memory used
What's next:
Try Docker Debug for seamless, persistent debugging tools in any container or image → docker debug docker_lamp_1
Learn more at [URL_WITH_CREDENTIALS] ~/jiminny/app (JY-20613-allow-owner-role-on-team-setup) $ csfix
docker exec -it docker_lamp_1 ./vendor/bin/php-cs-fixer fix --config=.php-cs-fixer.dist.php -v --using-cache=no --diff
PHP CS Fixer 3.87.1 Alexander by Fabien Potencier, Dariusz Ruminski and contributors.
PHP runtime: 8.3.30
Running 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!
Loaded config default from ".php-cs-fixer.dist.php".
5682/5682 [▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓] 100%
Fixed 0 of 5682 files in 49.910 seconds, 60.00 MB memory used
What's next:
Try Docker Debug for seamless, persistent debugging tools in any container or image → docker debug docker_lamp_1
Learn more at [URL_WITH_CREDENTIALS] ~/jiminny/app (JY-20613-allow-owner-role-on-team-setup) $ git pull
remote: Enumerating objects: 248, done.
remote: Counting objects: 100% (128/128), done.
remote: Compressing objects: 100% (23/23), done.
remote: Total 59 (delta 43), reused 44 (delta 33), pack-reused 0 (from 0)
Unpacking objects: 100% (59/59), 10.48 KiB | 228.00 KiB/s, done.
From github.com:jiminny/app
b7df560451..190239dfd4 JY-20613-allow-owner-role-on-team-setup -> origin/JY-20613-allow-owner-role-on-team-setup
e0351be069..d94a285ae7 JY-20808-low-priority-indexing-queue -> origin/JY-20808-low-priority-indexing-queue
* [new branch] JY-20920-fix-participant-matcher -> origin/JY-20920-fix-participant-matcher
cb4ebf0c36..90bca4e4b2 master -> origin/master
Merge made by the 'ort' strategy.
app/Component/ES/ChunkSize.php | 54 +++++++++++++++++++++++++++
app/Component/ES/Processor/DTOs/SelectionList.php | 4 +-
app/Component/ES/Processor/TargetEntitiesSelector.php | 19 ++++++----
app/Http/Middleware/McpTierMiddleware.php | 27 +++-----------
app/Mcp/Servers/JiminnyServer.php | 2 +
app/Mcp/Tools/GetMeTool.php | 157 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
app/Models/Feature/FeatureEnum.php | 1 +
database/migrations/2026_05_13_124153_create_mcp_feature_flag.php | 25 +++++++++++++
front-end/src/components/Settings/Kiosk/modals/EditTeamModal/EditTeamModal.vue | 52 ++++++++++++++++++--------
front-end/src/components/Settings/Kiosk/modals/EditTeamModal/__tests__/EditTeamModal.spec.js | 14 +++++++
tests/Feature/Mcp/GetMeToolFeatureTest.php | 140 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
tests/Feature/Mcp/ListCallsToolFeatureTest.php | 2 +-
tests/Feature/Mcp/McpTestHelpersTrait.php | 19 +++++++++-
tests/Unit/Component/ES/ChunkSizeTest.php | 50 +++++++++++++++++++++++++
tests/Unit/Component/ES/Processor/DTOs/SelectionListTest.php | 27 ++++++++++----
tests/Unit/Component/ES/Processor/TargetEntitiesSelectorTest.php | 39 +++++++++++---------
16 files changed, 557 insertions(+), 75 deletions(-)
create mode 100644 app/Component/ES/ChunkSize.php
create mode 100644 app/Mcp/Tools/GetMeTool.php
create mode 100644 database/migrations/2026_05_13_124153_create_mcp_feature_flag.php
create mode 100644 tests/Feature/Mcp/GetMeToolFeatureTest.php
create mode 100644 tests/Unit/Component/ES/ChunkSizeTest.php
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20613-allow-owner-role-on-team-setup) $ git push
Enumerating objects: 40, done.
Counting objects: 100% (34/34), done.
Delta compression using up to 8 threads
Compressing objects: 100% (18/18), done.
Writing objects: 100% (18/18), 1.58 KiB | 1.58 MiB/s, done.
Total 18 (delta 15), reused 0 (delta 0), pack-reused 0
remote: Resolving deltas: 100% (15/15), completed with 13 local objects.
To github.com:jiminny/app.git
190239dfd4..ec1b261264 JY-20613-allow-owner-role-on-team-setup -> JY-20613-allow-owner-role-on-team-setup
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20613-allow-owner-role-on-team-setup) $ gbr
* JY-20613-allow-owner-role-on-team-setup
pipedrive-sdk-poc
master
JY-20903-update_activity-stage-on-opportunity-change
JY-20904-fix-update-es-on-activity-command
JY-20891-improve-sms-text-relays
JY-20725-handle-HS-search-rate-limit
JY-20818-move-AJ-reports-to-separated-datadog-metric
JY-20773-fix-automated-reports-user-pilot-tracking
JY-20157-AJ-report-not-send-notification
JY-20508-notify-before-AJ-report-expiration
JY-20372-ai-reports-promotion-pages
JY-20352-sync-opportunities-without-a-local-owner-user-id-is-null
JY-20738-debug-AJ-tracking-UP
a
JY-18909-automated-reports-ask-jiminny
JY-20692-fix-integration-app-[API_KEY]
JY-20553-debug-crm-sync-delays
JY-20698-fix-SF-activity-types-on-new-playbook
JY-20543-AJ-report-tracking
JY-20384-handle-auto-sync-with-no-access-to-event-type
JY-20458-ask-jiminny-user-definitions
JY-19666-fix-import-contacts-account-association
JY-19666-HS-import-contacts-and-accounts-batch-job
JY-20458-Ask-Jiminny-Reports
JY-20200-batch-update-CRM-objects-Salesforce
JY-19666-HS-webhooks-add-contact-and-company
JY-20348-trigger-setup-DI-layout-on-team-creation
JY-20326-refactor-info-message-in-command
JY-20317-fix-auto-log-delay-issue-on-all-channels-disabled
JY-20312-remove-on-update-change-last-synced-at-crm-configurations
JY-20306-SF-skip-auto-sync-for-task-based-playbook
JY-20192-remove-deleted-team-from-saved-search-filters
JY-20197-import-opportunity-batch-job
JY-20293-enable-status-field-for-pipedrive-deals
JY-20191-remove-commands-interactive-prompts
JY-20118-change-default-sync-strategy
JY-20183-add-cache-on-auto-log-delay
JY-20197-add-import-opportunity-batch-job
20118-hs-opportunity-make-webhook-strategy-default
JY-20118-make-default-hs-opportunity-sync-strategy-webhook-based
JY-20196-handle-opportunity-without-note
JY-20118-improve-opportunity-import
JY-20189-handle-activity-search-on-deleted-groups
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20613-allow-owner-role-on-team-setup) $ co JY-20725-handle-HS-search-rate-limit
M .env.local
M config/logging.php
Switched to branch 'JY-20725-handle-HS-search-rate-limit'
Your branch is behind 'origin/JY-20725-handle-HS-search-rate-limit' by 439 commits, and can be fast-forwarded.
(use "git pull" to update your local branch)
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20725-handle-HS-search-rate-limit) $ git pull
Updating 0f3e438941..bc6a3fce6b
Fast-forward
.gitignore | 3 +-
.windsurfrules | 168 ++---
CLAUDE.md | 1 +
app/Component/ActivityAnalytics/Service/CalculateTalkTimeOffsetsFromTranscription.php | 24 +-
app/Component/AiActivityType/Services/AiActivityTypeEligibilityChecker.php | 28 +-
app/Component/AiAutomation/Actions/PrepareUpdateDtoAction.php | 32 +-
app/Component/AiAutomation/Services/CrmFillingEligibilityChecker.php | 47 ++
app/Component/AiAutomation/TestCrmAiPromptService.php | 14 +
app/Component/AiCallScoring/Services/AiCallScoringEligibilityChecker.php | 9 +
app/Component/ES/ElasticSearchDocumentPartialUpdater.php | 13 +-
app/Component/ES/ElasticSearchWorkerManager.php | 86 ---
app/Component/ES/Processor/Actions/LoadDocumentsAction.php | 80 +--
app/Component/ES/Processor/EntityQueryBuilder.php | 12 +-
app/Component/ES/Processor/TargetEntitiesSelector.php | 2 +-
app/Component/ES/Processor/Traits/SkipActivityTrait.php | 25 -
app/Component/ES/Repositories/EsResetActivityRepository.php | 11 +-
app/Component/ES/Worker/ActivityWorker.php | 73 --
app/Component/ES/Worker/EntityWorker.php | 44 --
app/Component/ES/Worker/WorkerAmount.php | 60 --
app/Component/ES/Worker/WorkerInterface.php | 15 -
app/Component/ElasticSearch/Contract/Searchable.php | 4 +
app/Component/Encoding/Job/AnalyzeTrackChannelsJob.php | 20 +-
app/Component/Encoding/Service/GenerateSpeechFromSilenceService.php | 85 ++-
app/Component/FFMpeg/Services/GetSpeechIntervalsService.php | 18 +-
app/Component/LanguageDetection/Services/FindSpeechTimeService.php | 22 +-
app/Component/Nudge/Job/ProcessOrganisationImmediateNudgesJob.php | 218 +++++-
app/Component/ParagraphBreaker/Services/TranscriptionParagraphsService.php | 4 +
app/Component/ParticipantSpeech/Services/ParticipantSpeechesCreator.php | 33 +
app/Component/ParticipantSpeech/Services/ParticipantSpeechesDeleter.php | 15 +
app/Component/ParticipantSpeech/Services/ParticipantSpeechesProvider.php | 51 +-
app/Component/ParticipantSpeech/Services/ParticipantSpeechesUploader.php | 36 +
app/Component/ProphetAi/Exceptions/InsufficientTranscriptException.php | 11 +
app/Component/Transcription/DTO/Http/Transcription/AssemblyAI/AssemblyAI/NoAssemblyIdException.php | 11 +
app/Component/Transcription/DTO/Http/Transcription/AssemblyAI/AssemblyAI/SuccessfulResponse.php | 6 +
app/Component/Transcription/DTO/Http/Transcription/TranscriptionIsNotCorrectFormatException.php | 11 +
app/Component/Transcription/Diarization/Services/GetNormalizedParticipantSpeechesService.php | 23 +-
app/Component/Transcription/Diarization/Source/MeetingBotSource.php | 16 +-
app/Component/Transcription/TranscriptionProcessor/TranscriptionProcessor.php | 3 +
app/Console/Commands/Activities/ActivityHardDeleteCommand.php | 4 +-
app/Console/Commands/Activities/Copy.php | 2 +
app/Console/Commands/Activities/SetupIntegration/TwilioSetS3RecordingCredentialsCommand.php | 119 ++++
app/Console/Commands/Activities/UpdateActivityElasticSearchDocumentCommand.php | 10 +-
app/Console/Commands/Crm/BackfillOpportunityUserFromAccountCommand.php | 126 ++++
app/Console/Commands/Elasticsearch/AsyncUpdateEsActivities.php | 19 -
app/Console/Commands/Elasticsearch/AsyncUpdateEsEntities.php | 50 +-
app/Console/Commands/Elasticsearch/ResetAsyncElasticSearchCommand.php | 30 +-
app/Console/Commands/GeckoExport/GeckoExportParticipantSpeechesCommand.php | 14 +-
app/Console/Commands/IssueMcpTokenCommand.php | 84 +++
app/Console/Commands/JiminnyDebugCommand.php | 7 +-
app/Console/Commands/Tracks/CleanupActivityTracksCommand.php | 2 +-
app/Console/Kernel.php | 6 +-
app/Contracts/Services/Calendar/CalendarTrait.php | 80 ++-
app/Events/AutomatedReports/AutomatedReportGenerated.php | 3 +
app/Http/Controllers/API/AiCallScoring/AiScorecardController.php | 7 +-
app/Http/Controllers/API/TeamAiAutomationController.php | 8 +
app/Http/Controllers/CustomerApi/CustomerApiController.php | 4 +-
app/Http/Controllers/Kiosk/ActivityController.php | 58 +-
app/Http/Controllers/Settings/PlaybookController.php | 15 +-
app/Http/Kernel.php | 23 +
app/Http/Middleware/McpAuditMiddleware.php | 156 ++++
app/Http/Middleware/McpTierMiddleware.php | 54 ++
app/Http/Requests/API/V2/ZapierUploadActivityRequest.php | 28 +-
app/Jobs/Activity/Import/ImportTwilioVideoSpeechesJob.php | 25 +-
app/Jobs/Activity/Import/IsActivityReadyForProcessingJob.php | 10 +-
app/Jobs/Calendar/SetupCalendarSync.php | 21 +-
app/Jobs/ImportRemoteTrackJob.php | 96 ++-
app/Jobs/Mailbox/EmailTextRelay.php | 15 +-
app/Mcp/Contracts/McpCallRepositoryInterface.php | 30 +
app/Mcp/DTO/ListCallsFilters.php | 29 +
app/Mcp/Errors/McpError.php | 123 ++++
app/Mcp/Repositories/McpActivityHydrator.php | 145 ++++
app/Mcp/Repositories/McpCallRepository.php | 84 +++
app/Mcp/Repositories/McpElasticCallRepository.php | 171 +++++
app/Mcp/Servers/JiminnyServer.php | 38 +
app/Mcp/Tools/ListCallsTool.php | 205 ++++++
app/Models/Activity.php | 10 +-
app/Models/Activity/Transcription.php | 17 +-
app/Models/ElasticSearch/OpportunityElasticSearchTrait.php | 5 +
app/Models/Participant.php | 1 +
app/Providers/AppServiceProvider.php | 22 +
app/Repositories/Crm/ContactRepository.php | 69 +-
app/Repositories/ParticipantSpeechRepository.php | 13 +-
app/Services/Activity/ParticipantsService.php | 19 +-
app/Services/Activity/Twilio/S3RecordingCredentialsService.php | 82 +++
app/Services/ActivityService.php | 21 +-
app/Services/Calendar/CalendarActivityService.php | 46 ++
app/Services/Calendar/Command/ImportParticipants.php | 1 +
app/Services/Calendar/Command/MapActivityData.php | 106 +--
app/Services/Calendar/GoogleCalendarService.php | 12 +-
app/Services/Crm/Close/Processor/OpportunityProcessor.php | 2 +-
app/Services/Crm/Close/Service.php | 22 +-
app/Services/Crm/Copper/Service.php | 12 +-
app/Services/Crm/Hubspot/Service.php | 154 +++-
app/Services/Crm/Hubspot/ServiceTraits/OpportunitySyncTrait.php | 88 ++-
app/Services/Crm/IntegrationApp/ServiceTraits/SyncCrmEntitiesTrait.php | 22 +-
app/Services/Crm/Pipedrive/Service.php | 17 +-
app/Services/Crm/Salesforce/Service.php | 42 +-
app/Services/Mail/Office/EmailApiClient.php | 129 +---
app/Services/RecallAI/Commands/ScheduleBotCommand.php | 39 +-
app/Services/RecallAI/RecallAIService.php | 22 +-
composer.json | 3 +-
composer.lock | 87 ++-
config/mcp.php | 23 +
database/migrations/2026_04_30_120000_create_mcp_audit_log_table.php | 36 +
docs/mcp/explorer/explorer.html | 697 ++++++++++++++++++
docs/mcp/explorer/explorer.template.html | 697 ++++++++++++++++++
docs/mcp/explorer/generate.js | 215 ++++++
docs/mcp/explorer/tool-explorer-meta.json | 11 +
docs/mcp/tools-list.json | 2536 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
docs/mcp/tools.md | 621 ++++++++++++++++
front-end/package.json | 4 +-
front-end/src/components/Settings/OrgSettings/AiAutomation/CrmFilling/TemplateFieldForm.vue | 28 +-
front-end/src/components/Settings/OrgSettings/Playbooks/AddEditPlaybook.vue | 10 +
front-end/src/components/playback/comments/ActivityComment.less | 10 +-
front-end/src/components/shared/PromptTester/PromptTester.vue | 12 +-
front-end/src/components/shared/__tests__/PromptTester.spec.js | 35 +
front-end/src/components/shared/modals/EntityPickerModal/__tests__/useEntitiesCache.spec.ts | 37 +
front-end/src/components/shared/modals/EntityPickerModal/useEntitiesCache.ts | 9 +
front-end/yarn.lock | 16 +-
phpstan-baseline.neon | 50 --
routes/api.php | 11 +
sonar-project.properties | 91 ++-
tests/Feature/Component/Nudge/ProcessOrganisationImmediateNudgesJobTest.php | 534 ++++++++++++++
tests/Feature/Jobs/ImportRemoteTrackJobTest.php | 283 +++++++-
tests/Feature/Mcp/IssueMcpTokenCommandTest.php | 53 ++
tests/Feature/Mcp/ListCallsToolElasticFeatureTest.php | 155 ++++
tests/Feature/Mcp/ListCallsToolFeatureTest.php | 352 ++++++++++
tests/Feature/Mcp/McpTestHelpersTrait.php | 77 ++
tests/Feature/Services/Team/TeamDeleteHandlers/Retention/RetentionRepositoryHandlerTest.php | 1 +
tests/Stubs/SentryStub.php | 18 +
tests/Unit/Component/ActivityAnalytics/Service/CalculateTalkTimeOffsetFromTranscriptionTest.php | 28 +-
tests/Unit/Component/AiActivityType/Services/AiActivityTypeEligibilityCheckerTest.php | 103 ++-
tests/Unit/Component/AiAutomation/Actions/PrepareUpdateDtoActionTest.php | 91 +++
tests/Unit/Component/AiAutomation/Services/CrmFillingEligibilityCheckerTest.php | 124 ++++
tests/Unit/Component/AiAutomation/TestCrmAiPromptServiceTest.php | 67 +-
tests/Unit/Component/AiCallScoring/Services/AiCallScoringEligibilityCheckerTest.php | 55 ++
tests/Unit/Component/ES/ElasticSearchWorkerManagerTest.php | 135 ----
tests/Unit/Component/ES/Processor/Actions/LoadDocumentsActionTest.php | 220 ++++++
tests/Unit/Component/ES/Processor/EntityQueryBuilderTest.php | 21 +-
tests/Unit/Component/ES/Processor/Traits/SkipActivityTraitTest.php | 51 --
tests/Unit/Component/ES/Worker/ActivityWorkerTest.php | 174 -----
tests/Unit/Component/ES/Worker/EntityWorkerTest.php | 97 ---
tests/Unit/Component/ES/Worker/WorkerAmountTest.php | 116 ---
tests/Unit/Component/Encoding/Job/AnalyzeTrackChannelsJobTest.php | 52 +-
tests/Unit/Component/Encoding/Service/GenerateSpeechFromSilenceServiceTest.php | 171 ++---
tests/Unit/Component/FFMpeg/Services/GetSpeechIntervalsTest.php | 36 +-
tests/Unit/Component/LanguageDetection/Services/FindSpeechTimeServiceTest.php | 20 +-
tests/Unit/Component/MobileSettings/MobileSettingsControllerTest.php | 5 +-
tests/Unit/Component/ParticipantSpeech/Services/ParticipantSpeechesCreatorTest.php | 75 ++
tests/Unit/Component/ParticipantSpeech/Services/ParticipantSpeechesDeleterTest.php | 63 ++
tests/Unit/Component/ParticipantSpeech/Services/ParticipantSpeechesProviderTest.php | 134 ++++
tests/Unit/Component/ParticipantSpeech/Services/ParticipantSpeechesUploaderTest.php | 57 ++
tests/Unit/Component/Transcription/Diarization/Services/GetNormalizedParticipantSpeechesServiceTest.php | 51 +-
tests/Unit/Component/Transcription/Diarization/Source/MeetingBotSourceTest.php | 29 +-
tests/Unit/Contracts/Services/Calendar/CalendarTraitTest.php | 58 +-
tests/Unit/Http/Controllers/Kiosk/ActivityControllerTest.php | 159 +++++
tests/Unit/Jobs/Activity/Import/ImportTwilioVideoSpeechesJobTest.php | 22 +-
tests/Unit/Jobs/Activity/Import/IsActivityReadyForProcessingJobTest.php | 26 +-
tests/Unit/Jobs/Calendar/SetupCalendarSyncTest.php | 25 -
tests/Unit/Services/Activity/ParticipantsServiceTest.php | 12 +-
tests/Unit/Services/Activity/Twilio/S3RecordingCredentialsServiceTest.php | 180 +++++
tests/Unit/Services/ActivityServiceTest.php | 132 ++++
tests/Unit/Services/Calendar/CalendarActivityServiceTest.php | 150 +++-
tests/Unit/Services/Calendar/Command/ImportParticipantsTest.php | 6 +-
tests/Unit/Services/Calendar/Command/MapActivityDataTest.php | 78 +-
tests/Unit/Services/Calendar/GoogleCalendarServiceTest.php | 116 +++
tests/Unit/Services/Crm/Close/ServiceTest.php | 165 +++++
tests/Unit/Services/Crm/Hubspot/ServiceTest.php | 272 ++++++-
tests/Unit/Services/Crm/Hubspot/ServiceTraits/OpportunitySyncTest.php | 25 +-
tests/Unit/Services/Crm/Hubspot/ServiceTraits/OpportunitySyncTraitMatchActivitiesTest.php | 3 +-
tests/Unit/Services/Crm/IntegrationApp/ServiceTraits/SyncCrmEntitiesTraitOpportunitiesTest.php | 40 ++
tests/Unit/Services/Crm/Pipedrive/ImportOpportunityMatchActivitiesTest.php | 2 +
tests/Unit/Services/Crm/Salesforce/ServiceTest.php | 139 ++++
tests/Unit/Services/Mail/Office/EmailApiClientTest.php | 195 ++---
tests/Unit/Services/RecallAI/RecallAIServiceTest.php | 24 +-
175 files changed, 12562 insertions(+), 2162 deletions(-)
create mode 120000 CLAUDE.md
create mode 100644 app/Component/AiAutomation/Services/CrmFillingEligibilityChecker.php
delete mode 100644 app/Component/ES/ElasticSearchWorkerManager.php
delete mode 100644 app/Component/ES/Processor/Traits/SkipActivityTrait.php
delete mode 100644 app/Component/ES/Worker/ActivityWorker.php
delete mode 100644 app/Component/ES/Worker/EntityWorker.php
delete mode 100644 app/Component/ES/Worker/WorkerAmount.php
delete mode 100644 app/Component/ES/Worker/WorkerInterface.php
create mode 100644 app/Component/ProphetAi/Exceptions/InsufficientTranscriptException.php
create mode 100644 app/Component/Transcription/DTO/Http/Transcription/AssemblyAI/AssemblyAI/NoAssemblyIdException.php
create mode 100644 app/Component/Transcription/DTO/Http/Transcription/TranscriptionIsNotCorrectFormatException.php
create mode 100644 app/Console/Commands/Activities/SetupIntegration/TwilioSetS3RecordingCredentialsCommand.php
create mode 100644 app/Console/Commands/Crm/BackfillOpportunityUserFromAccountCommand.php
delete mode 100644 app/Console/Commands/Elasticsearch/AsyncUpdateEsActivities.php
create mode 100644 app/Console/Commands/IssueMcpTokenCommand.php
create mode 100644 app/Http/Middleware/McpAuditMiddleware.php
create mode 100644 app/Http/Middleware/McpTierMiddleware.php
create mode 100644 app/Mcp/Contracts/McpCallRepositoryInterface.php
create mode 100644 app/Mcp/DTO/ListCallsFilters.php
create mode 100644 app/Mcp/Errors/McpError.php
create mode 100644 app/Mcp/Repositories/McpActivityHydrator.php
create mode 100644 app/Mcp/Repositories/McpCallRepository.php
create mode 100644 app/Mcp/Repositories/McpElasticCallRepository.php
create mode 100644 app/Mcp/Servers/JiminnyServer.php
create mode 100644 app/Mcp/Tools/ListCallsTool.php
create mode 100644 app/Services/Activity/Twilio/S3RecordingCredentialsService.php
create mode 100644 config/mcp.php
create mode 100644 database/migrations/2026_04_30_120000_create_mcp_audit_log_table.php
create mode 100644 docs/mcp/explorer/explorer.html
create mode 100644 docs/mcp/explorer/explorer.template.html
create mode 100644 docs/mcp/explorer/generate.js
create mode 100644 docs/mcp/explorer/tool-explorer-meta.json
create mode 100644 docs/mcp/tools-list.json
create mode 100644 docs/mcp/tools.md
create mode 100644 front-end/src/components/shared/modals/EntityPickerModal/__tests__/useEntitiesCache.spec.ts
create mode 100644 tests/Feature/Component/Nudge/ProcessOrganisationImmediateNudgesJobTest.php
create mode 100644 tests/Feature/Mcp/IssueMcpTokenCommandTest.php
create mode 100644 tests/Feature/Mcp/ListCallsToolElasticFeatureTest.php
create mode 100644 tests/Feature/Mcp/ListCallsToolFeatureTest.php
create mode 100644 tests/Feature/Mcp/McpTestHelpersTrait.php
create mode 100644 tests/Stubs/SentryStub.php
create mode 100644 tests/Unit/Component/AiAutomation/Services/CrmFillingEligibilityCheckerTest.php
delete mode 100644 tests/Unit/Component/ES/ElasticSearchWorkerManagerTest.php
create mode 100644 tests/Unit/Component/ES/Processor/Actions/LoadDocumentsActionTest.php
delete mode 100644 tests/Unit/Component/ES/Processor/Traits/SkipActivityTraitTest.php
delete mode 100644 tests/Unit/Component/ES/Worker/ActivityWorkerTest.php
delete mode 100644 tests/Unit/Component/ES/Worker/EntityWorkerTest.php
delete mode 100644 tests/Unit/Component/ES/Worker/WorkerAmountTest.php
create mode 100644 tests/Unit/Component/ParticipantSpeech/Services/ParticipantSpeechesCreatorTest.php
create mode 100644 tests/Unit/Http/Controllers/Kiosk/ActivityControllerTest.php
create mode 100644 tests/Unit/Services/Activity/Twilio/S3RecordingCredentialsServiceTest.php
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20725-handle-HS-search-rate-limit) $ git status
On branch master
Your branch is behind 'origin/master' by 114 commits, and can be fast-forwarded.
(use "git pull" to update your local branch)
Changes not staged for commit:
(use "git add <file>..." to update what will be committed)
(use "git restore <file>..." to discard changes in working directory)
modified: .env.local
modified: app/Component/SCIM/Constants.php
modified: app/Component/SCIM/ScimProvisioning.php
modified: app/Component/Twilio/Conference/ConferenceManager/SoftPhoneManager.php
modified: app/Console/Commands/JiminnyDebugCommand.php
modified: app/DTO/SCIM/AAD/Request/CoreUserRequest.php
modified: app/DTO/SCIM/AAD/Response/CoreUser.php
modified: app/Services/Telephony/TextMessagingService.php
modified: config/logging.php
Untracked files:
(use "git add <file>..." to include in what will be committed)
.env.nikilocal
.env.other
WEBHOOK_FILTERING_IMPLEMENTATION.md
app/Component/SCIM/Mutators/Attributes/User/RoleAttr.php
app/Console/Commands/Crm/Hubspot/SimulateWebhooksCommand.php
app/Console/Commands/Reports/CreateMockAskJiminnyReportResultCommand.php
app/Rules/ListenerRoleCannotHaveAdminOrManagerPermissionRule.php
ids.txt
public/favicon.ico
raw_sql_query.sql
tests/Unit/Component/SCIM/Mutators/Attributes/User/RoleAttrTest.php
tests/Unit/Policies/CanAccessAiReportsTest.php
tests/Unit/Rules/ListenerRoleCannotHaveAdminOrManagerPermissionRuleTest.php
no changes added to commit (use "git add" and/or "git commit -a")
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (master) $ git pull
remote: Enumerating objects: 306, done.
remote: Counting objects: 100% (299/299), done.
remote: Compressing objects: 100% (183/183), done.
remote: Total 306 (delta 213), reused 171 (delta 116), pack-reused 7 (from 1)
Receiving objects: 100% (306/306), 80.12 KiB | 1000.00 KiB/s, done.
Resolving deltas: 100% (213/213), completed with 53 local objects.
From github.com:jiminny/app
90bca4e4b2..5604af40cf master -> origin/master
4e7078fd8b..0b8343d179 JY-18091-upgrade-to-php-8-5 -> origin/JY-18091-upgrade-to-php-8-5
098eeaa087..d5a447e492 JY-20613-allow-owner-role-on-team-setup -> origin/JY-20613-allow-owner-role-on-team-setup
c3a76ace91..af65249d0f JY-20749-user-can-view-recorded-meetings -> origin/JY-20749-user-can-view-recorded-meetings
d94a285ae7..7ce96cb5fe JY-20808-low-priority-indexing-queue -> origin/JY-20808-low-priority-indexing-queue
* [new branch] JY-20842-remove-partial-updater -> origin/JY-20842-remove-partial-updater
* [new branch] JY-20920-fix-participant-flip -> origin/JY-20920-fix-participant-flip
* [new branch] secfix/npm-20260519 -> origin/secfix/npm-20260519
Updating cb4ebf0c36..5604af40cf
Fast-forward
app/Component/ES/ChunkSize.php | 54 +++++++++++++++++++
app/Component/ES/Processor/DTOs/SelectionList.php | 4 +-
app/Component/ES/Processor/TargetEntitiesSelector.php | 19 ++++---
app/Component/MeetingBot/Service/ParticipantMatcher.php | 46 ++++++++++++----
app/Exceptions/RateLimitException.php | 19 ++++++-
app/Http/Middleware/McpTierMiddleware.php | 27 ++--------
app/Jobs/Crm/MatchActivityCrmData.php | 47 ++++++++++++----
app/Jobs/Middleware/HandleHubspotRateLimit.php | 42 +++++++++++++++
app/Mcp/Servers/JiminnyServer.php | 2 +
app/Mcp/Tools/GetMeTool.php | 157 +++++++++++++++++++++++++++++++++++++++++++++++++++++
app/Models/Feature/FeatureEnum.php | 1 +
app/Services/Activity/HubSpot/ProviderResolver.php | 4 +-
app/Services/Activity/HubSpot/ProviderResolverInterface.php | 2 +-
app/Services/Activity/HubSpot/Providers/Provider.php | 2 +-
app/Services/Activity/HubSpot/Providers/ProviderKixie.php | 2 +-
app/Services/Activity/HubSpot/Providers/ProviderOrum.php | 2 +-
app/Services/Activity/HubSpot/Providers/ProviderTwilio.php | 2 +-
app/Services/Activity/HubSpot/Providers/ProviderTwilioFlex.php | 5 +-
app/Services/Activity/HubSpot/Service.php | 97 +++++++++++++++++++++++++++------
app/Services/Crm/Hubspot/Client.php | 132 +++++++++++++++++++++++++++++++++++++++++++++
app/Services/Crm/Hubspot/HubspotClientInterface.php | 15 ++++++
app/Services/Crm/Hubspot/Pagination/HubspotPaginationService.php | 21 ++++----
app/Services/Crm/Hubspot/Pagination/PaginationState.php | 2 +-
database/migrations/2026_05_13_124153_create_mcp_feature_flag.php | 25 +++++++++
tests/Feature/Mcp/GetMeToolFeatureTest.php | 140 +++++++++++++++++++++++++++++++++++++++++++++++
tests/Feature/Mcp/ListCallsToolFeatureTest.php | 2 +-
tests/Feature/Mcp/McpTestHelpersTrait.php | 19 ++++++-
tests/Unit/Component/ES/ChunkSizeTest.php | 50 +++++++++++++++++
tests/Unit/Component/ES/Processor/DTOs/SelectionListTest.php | 27 +++++++---
tests/Unit/Component/ES/Processor/TargetEntitiesSelectorTest.php | 39 ++++++++------
tests/Unit/Component/MeetingBot/Service/ParticipantMatcherTest.php | 68 ++++++++++++++++++++++-
tests/Unit/Exceptions/RateLimitExceptionTest.php | 56 +++++++++++++++++++
tests/Unit/Jobs/Crm/MatchActivityCrmDataTest.php | 8 +--
tests/Unit/Jobs/Middleware/HandleHubspotRateLimitTest.php | 151 +++++++++++++++++++++++++++++++++++++++++++++++++++
tests/Unit/Services/Activity/HubSpot/ServiceTest.php | 109 +++++++++++++++++++++++++++++++++++++
tests/Unit/Services/Crm/Hubspot/ClientTest.php | 250 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
tests/Unit/Services/Crm/Hubspot/Pagination/HubspotPaginationServiceTest.php | 283 +++++++++++++++++++++---------------------------------------------------------------------------
37 files changed, 1587 insertions(+), 344 deletions(-)
create mode 100644 app/Component/ES/ChunkSize.php
create mode 100644 app/Jobs/Middleware/HandleHubspotRateLimit.php
create mode 100644 app/Mcp/Tools/GetMeTool.php
create mode 100644 database/migrations/2026_05_13_124153_create_mcp_feature_flag.php
create mode 100644 tests/Feature/Mcp/GetMeToolFeatureTest.php
create mode 100644 tests/Unit/Component/ES/ChunkSizeTest.php
create mode 100644 tests/Unit/Exceptions/RateLimitExceptionTest.php
create mode 100644 tests/Unit/Jobs/Middleware/HandleHubspotRateLimitTest.php
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (master) $ git pull
Already up to date.
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (master) $ co -b JY-20676-delete-report-related-objects
Switched to a new branch 'JY-20676-delete-report-related-objects'
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20676-delete-report-related-objects) $ csfix
docker exec -it docker_lamp_1 ./vendor/bin/php-cs-fixer fix --config=.php-cs-fixer.dist.php -v --using-cache=no --diff
PHP CS Fixer 3.87.1 Alexander by Fabien Potencier, Dariusz Ruminski and contributors.
PHP runtime: 8.3.30
Running 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!
Loaded config default from ".php-cs-fixer.dist.php".
5690/5690 [▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓] 100%
1) app/Console/Commands/JiminnyDebugCommand.php (statement_indentation, blank_line_before_statement)
---------- begin diff ----------
--- /home/jiminny/app/Console/Commands/JiminnyDebugCommand.php
+++ /home/jiminny/app/Console/Commands/JiminnyDebugCommand.php
@@ -23,6 +23,7 @@
if ($action === 'redis-set') {
$this->testRedisSet();
+
return;
}
@@ -45,7 +46,7 @@
$ttl = 60;
try {
-// $result = Redis::set($testKey, $testValue, 'EX', $ttl, 'NX');
+ // $result = Redis::set($testKey, $testValue, 'EX', $ttl, 'NX');
$result = Redis::set($testKey, $testValue, ['nx', 'ex' => $ttl]);
if ($result) {
----------- end diff -----------
Fixed 1 of 5690 files i...
|
[{"role":"AXTextArea","text [{"role":"AXTextArea","text":"Last login: Mon May 18 09:17:28 on ttys007\n\nPoetry could not find a pyproject.toml file in /Users/lukas/jiminny/app or its parents\n\nPoetry could not find a pyproject.toml file in /Users/lukas/jiminny/app or its parents\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (pipedrive-sdk-poc) $ co master\nerror: Your local changes to the following files would be overwritten by checkout:\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tPIPEDRIVE_V2_MIGRATION_TICKETS.md\nPlease commit your changes or stash them before you switch branches.\nAborting\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (pipedrive-sdk-poc) $ git pull\nremote: Enumerating objects: 1047, done.\nremote: Counting objects: 100% (832/832), done.\nremote: Compressing objects: 100% (298/298), done.\nremote: Total 1047 (delta 634), reused 596 (delta 534), pack-reused 215 (from 3)\nReceiving objects: 100% (1047/1047), 353.16 KiB | 1.56 MiB/s, done.\nResolving deltas: 100% (687/687), completed with 107 local objects.\nFrom github.com:jiminny/app\n 907c54896c..34656c53ed pipedrive-sdk-poc -> origin/pipedrive-sdk-poc\n 03325ec50f..4e7078fd8b JY-18091-upgrade-to-php-8-5 -> origin/JY-18091-upgrade-to-php-8-5\n e7d231e163..bc6a3fce6b JY-20725-handle-HS-search-rate-limit -> origin/JY-20725-handle-HS-search-rate-limit\n * [new branch] JY-20749-user-can-view-recorded-meetings -> origin/JY-20749-user-can-view-recorded-meetings\n 98ca281a04..e0351be069 JY-20808-low-priority-indexing-queue -> origin/JY-20808-low-priority-indexing-queue\n 569abb5149..3906a9238a JY-20835-mcp-enable-users-to-get-a-list-of-deals-and-their-details -> origin/JY-20835-mcp-enable-users-to-get-a-list-of-deals-and-their-details\n ad6c2a86e8..50eb6afba9 JY-20846-mcp-enable-the-ai-to-know-details-about-the-user -> origin/JY-20846-mcp-enable-the-ai-to-know-details-about-the-user\n * [new branch] JY-20893-chunk-control-per-update-target -> origin/JY-20893-chunk-control-per-update-target\n 31c62924a5..cb4ebf0c36 master -> origin/master\nUpdating 907c54896c..34656c53ed\nFast-forward\n PIPEDRIVE_V2_MIGRATION_TICKETS.md | 52 ++++++++++++++++++++++++++++++++++++++++++++++++++++\n 1 file changed, 52 insertions(+)\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (pipedrive-sdk-poc) $ co master\nM\u0000\u0000\u0000\u0000\u0000\u0000\t.env.local\nM\u0000\u0000\u0000\u0000\u0000\u0000\tconfig/logging.php\nSwitched to branch 'master'\nYour branch is behind 'origin/master' by 31 commits, and can be fast-forwarded.\n (use \"git pull\" to update your local branch)\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (master) $ git pull\nUpdating 31c62924a5..cb4ebf0c36\nFast-forward\n app/Component/ES/Processor/Traits/SelectEntityListTrait.php | 20 ------\n app/Services/Calendar/CalendarActivityService.php | 46 +++++++++++++\n app/Services/Calendar/Command/MapActivityData.php | 106 +++-------------------------\n docs/mcp/explorer/explorer.html | 104 +++++++++++++++++++++++++---\n docs/mcp/explorer/explorer.template.html | 102 ++++++++++++++++++++++++---\n docs/mcp/tools-list.json | 373 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++-------\n docs/mcp/tools.md | 117 +++++++++++++++++++++++--------\n tests/Unit/Component/ES/AsyncUpdateElasticSearchTest.php | 16 +----\n tests/Unit/Component/ES/Listeners/UpdateMultipleTargetsListenerTest.php | 10 ---\n tests/Unit/Component/ES/Listeners/UpdateSingleTargetListenerTest.php | 6 --\n tests/Unit/Component/ES/Processor/TargetEntitiesSelectorTest.php | 9 ---\n tests/Unit/Component/ES/Processor/Traits/SelectEntityListTraitTest.php | 15 ++--\n tests/Unit/Component/ES/UpdateProcessManagerTest.php | 2 -\n tests/Unit/Services/Calendar/CalendarActivityServiceTest.php | 150 ++++++++++++++++++++++++++++++++++++++--\n tests/Unit/Services/Calendar/Command/MapActivityDataTest.php | 78 ++-------------------\n 15 files changed, 832 insertions(+), 322 deletions(-)\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (master) $ co -b JY-20613-allow-owner-role-on-team-setup\nSwitched to a new branch 'JY-20613-allow-owner-role-on-team-setup'\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20613-allow-owner-role-on-team-setup) $ csfix\ndocker exec -it docker_lamp_1 ./vendor/bin/php-cs-fixer fix --config=.php-cs-fixer.dist.php -v --using-cache=no --diff \nPHP CS Fixer 3.87.1 Alexander by Fabien Potencier, Dariusz Ruminski and contributors.\nPHP runtime: 8.3.30\nRunning analysis on 7 cores with 10 files per process.\nParallel runner is an experimental feature and may be unstable, use it at your own risk. Feedback highly appreciated!\nLoaded config default from \".php-cs-fixer.dist.php\".\n 5682/5682 [▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓] 100%\n\n\nFixed 0 of 5682 files in 56.978 seconds, 67.00 MB memory used\n\nWhat's next:\n Try Docker Debug for seamless, persistent debugging tools in any container or image → docker debug docker_lamp_1\n Learn more at https://docs.docker.com/go/debug-cli/\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20613-allow-owner-role-on-team-setup) $ ;xd\ndocker exec -it docker_lamp_1 bash -c \"mv /usr/local/etc/php/conf.d/xdebug.ini ~/xdebug.ini\"\n\nWhat's next:\n Try Docker Debug for seamless, persistent debugging tools in any container or image → docker debug docker_lamp_1\n Learn more at https://docs.docker.com/go/debug-cli/\ndocker exec -it docker_lamp_1 supervisorctl restart all\njiminny-worker-processing-2:jiminny-worker-processing-2_00: stopped\njiminny-worker-processing-3:jiminny-worker-processing-3_00: stopped\njiminny-worker-processing-4:jiminny-worker-processing-4_00: stopped\njiminny-worker-processing-5:jiminny-worker-processing-5_00: stopped\njiminny-worker-processing-delayed:jiminny-worker-processing-delayed_00: stopped\nworker-analytics:worker-analytics_00: stopped\nworker-crm-update:worker-crm-update_00: stopped\nworker-download:worker-download_00: stopped\nworker-nudges:worker-nudges_00: stopped\nartisan-schedule:artisan-schedule_00: stopped\nworker-emails:worker-emails_00: stopped\nworker-calendar:worker-calendar_00: stopped\nworker:worker_00: stopped\nworker-conferences:worker-conferences_00: stopped\nworker-crm-sync:worker-crm-sync_00: stopped\njiminny-worker-processing-1:jiminny-worker-processing-1_00: stopped\nworker-audio:worker-audio_00: stopped\nworker-es-update:worker-es-update_00: stopped\nartisan-schedule:artisan-schedule_00: started\njiminny-worker-processing-1:jiminny-worker-processing-1_00: started\njiminny-worker-processing-2:jiminny-worker-processing-2_00: started\njiminny-worker-processing-3:jiminny-worker-processing-3_00: started\njiminny-worker-processing-4:jiminny-worker-processing-4_00: started\njiminny-worker-processing-5:jiminny-worker-processing-5_00: started\njiminny-worker-processing-delayed:jiminny-worker-processing-delayed_00: started\nworker:worker_00: started\nworker-analytics:worker-analytics_00: started\nworker-audio:worker-audio_00: started\nworker-calendar:worker-calendar_00: started\nworker-conferences:worker-conferences_00: started\nworker-crm-sync:worker-crm-sync_00: started\nworker-crm-update:worker-crm-update_00: started\nworker-download:worker-download_00: started\nworker-emails:worker-emails_00: started\nworker-es-update:worker-es-update_00: started\nworker-nudges:worker-nudges_00: started\n\nWhat's next:\n Try Docker Debug for seamless, persistent debugging tools in any container or image → docker debug docker_lamp_1\n Learn more at https://docs.docker.com/go/debug-cli/\ndocker exec -it docker_lamp_1 php -v\nPHP 8.3.30 (cli) (built: Mar 16 2026 22:32:32) (NTS)\nCopyright (c) The PHP Group\nZend Engine v4.3.30, Copyright (c) Zend Technologies\n with Zend OPcache v8.3.30, Copyright (c), by Zend Technologies\n\nWhat's next:\n Try Docker Debug for seamless, persistent debugging tools in any container or image → docker debug docker_lamp_1\n Learn more at https://docs.docker.com/go/debug-cli/\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20613-allow-owner-role-on-team-setup) $ csfix\ndocker exec -it docker_lamp_1 ./vendor/bin/php-cs-fixer fix --config=.php-cs-fixer.dist.php -v --using-cache=no --diff \nPHP CS Fixer 3.87.1 Alexander by Fabien Potencier, Dariusz Ruminski and contributors.\nPHP runtime: 8.3.30\nRunning analysis on 7 cores with 10 files per process.\nParallel runner is an experimental feature and may be unstable, use it at your own risk. Feedback highly appreciated!\nLoaded config default from \".php-cs-fixer.dist.php\".\n 5682/5682 [▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓] 100%\n\n\nFixed 0 of 5682 files in 49.910 seconds, 60.00 MB memory used\n\nWhat's next:\n Try Docker Debug for seamless, persistent debugging tools in any container or image → docker debug docker_lamp_1\n Learn more at https://docs.docker.com/go/debug-cli/\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20613-allow-owner-role-on-team-setup) $ git status\nOn branch JY-20613-allow-owner-role-on-team-setup\nYour branch is ahead of 'origin/JY-20613-allow-owner-role-on-team-setup' by 1 commit.\n (use \"git push\" to publish your local commits)\n\nChanges not staged for commit:\n (use \"git add <file>...\" to update what will be committed)\n (use \"git restore <file>...\" to discard changes in working directory)\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tmodified: .env.local\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tmodified: config/logging.php\n\nUntracked files:\n (use \"git add <file>...\" to include in what will be committed)\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\t.env.nikilocal\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\t.env.other\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tWEBHOOK_FILTERING_IMPLEMENTATION.md\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tapp/Console/Commands/Crm/Hubspot/SimulateWebhooksCommand.php\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tapp/Console/Commands/Reports/CreateMockAskJiminnyReportResultCommand.php\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tids.txt\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tpublic/favicon.ico\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\traw_sql_query.sql\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\ttests/Unit/Policies/CanAccessAiReportsTest.php\n\nno changes added to commit (use \"git add\" and/or \"git commit -a\")\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20613-allow-owner-role-on-team-setup) $ git pull\nremote: Enumerating objects: 248, done.\nremote: Counting objects: 100% (128/128), done.\nremote: Compressing objects: 100% (23/23), done.\nremote: Total 59 (delta 43), reused 44 (delta 33), pack-reused 0 (from 0)\nUnpacking objects: 100% (59/59), 10.48 KiB | 228.00 KiB/s, done.\nFrom github.com:jiminny/app\n b7df560451..190239dfd4 JY-20613-allow-owner-role-on-team-setup -> origin/JY-20613-allow-owner-role-on-team-setup\n e0351be069..d94a285ae7 JY-20808-low-priority-indexing-queue -> origin/JY-20808-low-priority-indexing-queue\n * [new branch] JY-20920-fix-participant-matcher -> origin/JY-20920-fix-participant-matcher\n cb4ebf0c36..90bca4e4b2 master -> origin/master\nMerge made by the 'ort' strategy.\n app/Component/ES/ChunkSize.php | 54 +++++++++++++++++++++++++++\n app/Component/ES/Processor/DTOs/SelectionList.php | 4 +-\n app/Component/ES/Processor/TargetEntitiesSelector.php | 19 ++++++----\n app/Http/Middleware/McpTierMiddleware.php | 27 +++-----------\n app/Mcp/Servers/JiminnyServer.php | 2 +\n app/Mcp/Tools/GetMeTool.php | 157 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++\n app/Models/Feature/FeatureEnum.php | 1 +\n database/migrations/2026_05_13_124153_create_mcp_feature_flag.php | 25 +++++++++++++\n front-end/src/components/Settings/Kiosk/modals/EditTeamModal/EditTeamModal.vue | 52 ++++++++++++++++++--------\n front-end/src/components/Settings/Kiosk/modals/EditTeamModal/__tests__/EditTeamModal.spec.js | 14 +++++++\n tests/Feature/Mcp/GetMeToolFeatureTest.php | 140 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++\n tests/Feature/Mcp/ListCallsToolFeatureTest.php | 2 +-\n tests/Feature/Mcp/McpTestHelpersTrait.php | 19 +++++++++-\n tests/Unit/Component/ES/ChunkSizeTest.php | 50 +++++++++++++++++++++++++\n tests/Unit/Component/ES/Processor/DTOs/SelectionListTest.php | 27 ++++++++++----\n tests/Unit/Component/ES/Processor/TargetEntitiesSelectorTest.php | 39 +++++++++++---------\n 16 files changed, 557 insertions(+), 75 deletions(-)\n create mode 100644 app/Component/ES/ChunkSize.php\n create mode 100644 app/Mcp/Tools/GetMeTool.php\n create mode 100644 database/migrations/2026_05_13_124153_create_mcp_feature_flag.php\n create mode 100644 tests/Feature/Mcp/GetMeToolFeatureTest.php\n create mode 100644 tests/Unit/Component/ES/ChunkSizeTest.php\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20613-allow-owner-role-on-team-setup) $ git push\nEnumerating objects: 40, done.\nCounting objects: 100% (34/34), done.\nDelta compression using up to 8 threads\nCompressing objects: 100% (18/18), done.\nWriting objects: 100% (18/18), 1.58 KiB | 1.58 MiB/s, done.\nTotal 18 (delta 15), reused 0 (delta 0), pack-reused 0\nremote: Resolving deltas: 100% (15/15), completed with 13 local objects.\nTo github.com:jiminny/app.git\n 190239dfd4..ec1b261264 JY-20613-allow-owner-role-on-team-setup -> JY-20613-allow-owner-role-on-team-setup\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20613-allow-owner-role-on-team-setup) $ gbr\n* JY-20613-allow-owner-role-on-team-setup\n pipedrive-sdk-poc\n master\n JY-20903-update_activity-stage-on-opportunity-change\n JY-20904-fix-update-es-on-activity-command\n JY-20891-improve-sms-text-relays\n JY-20725-handle-HS-search-rate-limit\n JY-20818-move-AJ-reports-to-separated-datadog-metric\n JY-20773-fix-automated-reports-user-pilot-tracking\n JY-20157-AJ-report-not-send-notification\n JY-20508-notify-before-AJ-report-expiration\n JY-20372-ai-reports-promotion-pages\n JY-20352-sync-opportunities-without-a-local-owner-user-id-is-null\n JY-20738-debug-AJ-tracking-UP\n a\n JY-18909-automated-reports-ask-jiminny\n JY-20692-fix-integration-app-token-auth-response-change\n JY-20553-debug-crm-sync-delays\n JY-20698-fix-SF-activity-types-on-new-playbook\n JY-20543-AJ-report-tracking\n JY-20384-handle-auto-sync-with-no-access-to-event-type\n JY-20458-ask-jiminny-user-definitions\n JY-19666-fix-import-contacts-account-association\n JY-19666-HS-import-contacts-and-accounts-batch-job\n JY-20458-Ask-Jiminny-Reports\n JY-20200-batch-update-CRM-objects-Salesforce\n JY-19666-HS-webhooks-add-contact-and-company\n JY-20348-trigger-setup-DI-layout-on-team-creation\n JY-20326-refactor-info-message-in-command\n JY-20317-fix-auto-log-delay-issue-on-all-channels-disabled\n JY-20312-remove-on-update-change-last-synced-at-crm-configurations\n JY-20306-SF-skip-auto-sync-for-task-based-playbook\n JY-20192-remove-deleted-team-from-saved-search-filters\n JY-20197-import-opportunity-batch-job\n JY-20293-enable-status-field-for-pipedrive-deals\n JY-20191-remove-commands-interactive-prompts\n JY-20118-change-default-sync-strategy\n JY-20183-add-cache-on-auto-log-delay\n JY-20197-add-import-opportunity-batch-job\n 20118-hs-opportunity-make-webhook-strategy-default\n JY-20118-make-default-hs-opportunity-sync-strategy-webhook-based\n JY-20196-handle-opportunity-without-note\n JY-20118-improve-opportunity-import\n JY-20189-handle-activity-search-on-deleted-groups\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20613-allow-owner-role-on-team-setup) $ co JY-20725-handle-HS-search-rate-limit\nM\u0000\u0000\u0000\u0000\u0000\u0000\t.env.local\nM\u0000\u0000\u0000\u0000\u0000\u0000\tconfig/logging.php\nSwitched to branch 'JY-20725-handle-HS-search-rate-limit'\nYour branch is behind 'origin/JY-20725-handle-HS-search-rate-limit' by 439 commits, and can be fast-forwarded.\n (use \"git pull\" to update your local branch)\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20725-handle-HS-search-rate-limit) $ git pull\nUpdating 0f3e438941..bc6a3fce6b\nFast-forward\n .gitignore | 3 +-\n .windsurfrules | 168 ++---\n CLAUDE.md | 1 +\n app/Component/ActivityAnalytics/Service/CalculateTalkTimeOffsetsFromTranscription.php | 24 +-\n app/Component/AiActivityType/Services/AiActivityTypeEligibilityChecker.php | 28 +-\n app/Component/AiAutomation/Actions/PrepareUpdateDtoAction.php | 32 +-\n app/Component/AiAutomation/Services/CrmFillingEligibilityChecker.php | 47 ++\n app/Component/AiAutomation/TestCrmAiPromptService.php | 14 +\n app/Component/AiCallScoring/Services/AiCallScoringEligibilityChecker.php | 9 +\n app/Component/ES/ElasticSearchDocumentPartialUpdater.php | 13 +-\n app/Component/ES/ElasticSearchWorkerManager.php | 86 ---\n app/Component/ES/Processor/Actions/LoadDocumentsAction.php | 80 +--\n app/Component/ES/Processor/EntityQueryBuilder.php | 12 +-\n app/Component/ES/Processor/TargetEntitiesSelector.php | 2 +-\n app/Component/ES/Processor/Traits/SkipActivityTrait.php | 25 -\n app/Component/ES/Repositories/EsResetActivityRepository.php | 11 +-\n app/Component/ES/Worker/ActivityWorker.php | 73 --\n app/Component/ES/Worker/EntityWorker.php | 44 --\n app/Component/ES/Worker/WorkerAmount.php | 60 --\n app/Component/ES/Worker/WorkerInterface.php | 15 -\n app/Component/ElasticSearch/Contract/Searchable.php | 4 +\n app/Component/Encoding/Job/AnalyzeTrackChannelsJob.php | 20 +-\n app/Component/Encoding/Service/GenerateSpeechFromSilenceService.php | 85 ++-\n app/Component/FFMpeg/Services/GetSpeechIntervalsService.php | 18 +-\n app/Component/LanguageDetection/Services/FindSpeechTimeService.php | 22 +-\n app/Component/Nudge/Job/ProcessOrganisationImmediateNudgesJob.php | 218 +++++-\n app/Component/ParagraphBreaker/Services/TranscriptionParagraphsService.php | 4 +\n app/Component/ParticipantSpeech/Services/ParticipantSpeechesCreator.php | 33 +\n app/Component/ParticipantSpeech/Services/ParticipantSpeechesDeleter.php | 15 +\n app/Component/ParticipantSpeech/Services/ParticipantSpeechesProvider.php | 51 +-\n app/Component/ParticipantSpeech/Services/ParticipantSpeechesUploader.php | 36 +\n app/Component/ProphetAi/Exceptions/InsufficientTranscriptException.php | 11 +\n app/Component/Transcription/DTO/Http/Transcription/AssemblyAI/AssemblyAI/NoAssemblyIdException.php | 11 +\n app/Component/Transcription/DTO/Http/Transcription/AssemblyAI/AssemblyAI/SuccessfulResponse.php | 6 +\n app/Component/Transcription/DTO/Http/Transcription/TranscriptionIsNotCorrectFormatException.php | 11 +\n app/Component/Transcription/Diarization/Services/GetNormalizedParticipantSpeechesService.php | 23 +-\n app/Component/Transcription/Diarization/Source/MeetingBotSource.php | 16 +-\n app/Component/Transcription/TranscriptionProcessor/TranscriptionProcessor.php | 3 +\n app/Console/Commands/Activities/ActivityHardDeleteCommand.php | 4 +-\n app/Console/Commands/Activities/Copy.php | 2 +\n app/Console/Commands/Activities/SetupIntegration/TwilioSetS3RecordingCredentialsCommand.php | 119 ++++\n app/Console/Commands/Activities/UpdateActivityElasticSearchDocumentCommand.php | 10 +-\n app/Console/Commands/Crm/BackfillOpportunityUserFromAccountCommand.php | 126 ++++\n app/Console/Commands/Elasticsearch/AsyncUpdateEsActivities.php | 19 -\n app/Console/Commands/Elasticsearch/AsyncUpdateEsEntities.php | 50 +-\n app/Console/Commands/Elasticsearch/ResetAsyncElasticSearchCommand.php | 30 +-\n app/Console/Commands/GeckoExport/GeckoExportParticipantSpeechesCommand.php | 14 +-\n app/Console/Commands/IssueMcpTokenCommand.php | 84 +++\n app/Console/Commands/JiminnyDebugCommand.php | 7 +-\n app/Console/Commands/Tracks/CleanupActivityTracksCommand.php | 2 +-\n app/Console/Kernel.php | 6 +-\n app/Contracts/Services/Calendar/CalendarTrait.php | 80 ++-\n app/Events/AutomatedReports/AutomatedReportGenerated.php | 3 +\n app/Http/Controllers/API/AiCallScoring/AiScorecardController.php | 7 +-\n app/Http/Controllers/API/TeamAiAutomationController.php | 8 +\n app/Http/Controllers/CustomerApi/CustomerApiController.php | 4 +-\n app/Http/Controllers/Kiosk/ActivityController.php | 58 +-\n app/Http/Controllers/Settings/PlaybookController.php | 15 +-\n app/Http/Kernel.php | 23 +\n app/Http/Middleware/McpAuditMiddleware.php | 156 ++++\n app/Http/Middleware/McpTierMiddleware.php | 54 ++\n app/Http/Requests/API/V2/ZapierUploadActivityRequest.php | 28 +-\n app/Jobs/Activity/Import/ImportTwilioVideoSpeechesJob.php | 25 +-\n app/Jobs/Activity/Import/IsActivityReadyForProcessingJob.php | 10 +-\n app/Jobs/Calendar/SetupCalendarSync.php | 21 +-\n app/Jobs/ImportRemoteTrackJob.php | 96 ++-\n app/Jobs/Mailbox/EmailTextRelay.php | 15 +-\n app/Mcp/Contracts/McpCallRepositoryInterface.php | 30 +\n app/Mcp/DTO/ListCallsFilters.php | 29 +\n app/Mcp/Errors/McpError.php | 123 ++++\n app/Mcp/Repositories/McpActivityHydrator.php | 145 ++++\n app/Mcp/Repositories/McpCallRepository.php | 84 +++\n app/Mcp/Repositories/McpElasticCallRepository.php | 171 +++++\n app/Mcp/Servers/JiminnyServer.php | 38 +\n app/Mcp/Tools/ListCallsTool.php | 205 ++++++\n app/Models/Activity.php | 10 +-\n app/Models/Activity/Transcription.php | 17 +-\n app/Models/ElasticSearch/OpportunityElasticSearchTrait.php | 5 +\n app/Models/Participant.php | 1 +\n app/Providers/AppServiceProvider.php | 22 +\n app/Repositories/Crm/ContactRepository.php | 69 +-\n app/Repositories/ParticipantSpeechRepository.php | 13 +-\n app/Services/Activity/ParticipantsService.php | 19 +-\n app/Services/Activity/Twilio/S3RecordingCredentialsService.php | 82 +++\n app/Services/ActivityService.php | 21 +-\n app/Services/Calendar/CalendarActivityService.php | 46 ++\n app/Services/Calendar/Command/ImportParticipants.php | 1 +\n app/Services/Calendar/Command/MapActivityData.php | 106 +--\n app/Services/Calendar/GoogleCalendarService.php | 12 +-\n app/Services/Crm/Close/Processor/OpportunityProcessor.php | 2 +-\n app/Services/Crm/Close/Service.php | 22 +-\n app/Services/Crm/Copper/Service.php | 12 +-\n app/Services/Crm/Hubspot/Service.php | 154 +++-\n app/Services/Crm/Hubspot/ServiceTraits/OpportunitySyncTrait.php | 88 ++-\n app/Services/Crm/IntegrationApp/ServiceTraits/SyncCrmEntitiesTrait.php | 22 +-\n app/Services/Crm/Pipedrive/Service.php | 17 +-\n app/Services/Crm/Salesforce/Service.php | 42 +-\n app/Services/Mail/Office/EmailApiClient.php | 129 +---\n app/Services/RecallAI/Commands/ScheduleBotCommand.php | 39 +-\n app/Services/RecallAI/RecallAIService.php | 22 +-\n composer.json | 3 +-\n composer.lock | 87 ++-\n config/mcp.php | 23 +\n database/migrations/2026_04_30_120000_create_mcp_audit_log_table.php | 36 +\n docs/mcp/explorer/explorer.html | 697 ++++++++++++++++++\n docs/mcp/explorer/explorer.template.html | 697 ++++++++++++++++++\n docs/mcp/explorer/generate.js | 215 ++++++\n docs/mcp/explorer/tool-explorer-meta.json | 11 +\n docs/mcp/tools-list.json | 2536 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++\n docs/mcp/tools.md | 621 ++++++++++++++++\n front-end/package.json | 4 +-\n front-end/src/components/Settings/OrgSettings/AiAutomation/CrmFilling/TemplateFieldForm.vue | 28 +-\n front-end/src/components/Settings/OrgSettings/Playbooks/AddEditPlaybook.vue | 10 +\n front-end/src/components/playback/comments/ActivityComment.less | 10 +-\n front-end/src/components/shared/PromptTester/PromptTester.vue | 12 +-\n front-end/src/components/shared/__tests__/PromptTester.spec.js | 35 +\n front-end/src/components/shared/modals/EntityPickerModal/__tests__/useEntitiesCache.spec.ts | 37 +\n front-end/src/components/shared/modals/EntityPickerModal/useEntitiesCache.ts | 9 +\n front-end/yarn.lock | 16 +-\n phpstan-baseline.neon | 50 --\n routes/api.php | 11 +\n sonar-project.properties | 91 ++-\n tests/Feature/Component/Nudge/ProcessOrganisationImmediateNudgesJobTest.php | 534 ++++++++++++++\n tests/Feature/Jobs/ImportRemoteTrackJobTest.php | 283 +++++++-\n tests/Feature/Mcp/IssueMcpTokenCommandTest.php | 53 ++\n tests/Feature/Mcp/ListCallsToolElasticFeatureTest.php | 155 ++++\n tests/Feature/Mcp/ListCallsToolFeatureTest.php | 352 ++++++++++\n tests/Feature/Mcp/McpTestHelpersTrait.php | 77 ++\n tests/Feature/Services/Team/TeamDeleteHandlers/Retention/RetentionRepositoryHandlerTest.php | 1 +\n tests/Stubs/SentryStub.php | 18 +\n tests/Unit/Component/ActivityAnalytics/Service/CalculateTalkTimeOffsetFromTranscriptionTest.php | 28 +-\n tests/Unit/Component/AiActivityType/Services/AiActivityTypeEligibilityCheckerTest.php | 103 ++-\n tests/Unit/Component/AiAutomation/Actions/PrepareUpdateDtoActionTest.php | 91 +++\n tests/Unit/Component/AiAutomation/Services/CrmFillingEligibilityCheckerTest.php | 124 ++++\n tests/Unit/Component/AiAutomation/TestCrmAiPromptServiceTest.php | 67 +-\n tests/Unit/Component/AiCallScoring/Services/AiCallScoringEligibilityCheckerTest.php | 55 ++\n tests/Unit/Component/ES/ElasticSearchWorkerManagerTest.php | 135 ----\n tests/Unit/Component/ES/Processor/Actions/LoadDocumentsActionTest.php | 220 ++++++\n tests/Unit/Component/ES/Processor/EntityQueryBuilderTest.php | 21 +-\n tests/Unit/Component/ES/Processor/Traits/SkipActivityTraitTest.php | 51 --\n tests/Unit/Component/ES/Worker/ActivityWorkerTest.php | 174 -----\n tests/Unit/Component/ES/Worker/EntityWorkerTest.php | 97 ---\n tests/Unit/Component/ES/Worker/WorkerAmountTest.php | 116 ---\n tests/Unit/Component/Encoding/Job/AnalyzeTrackChannelsJobTest.php | 52 +-\n tests/Unit/Component/Encoding/Service/GenerateSpeechFromSilenceServiceTest.php | 171 ++---\n tests/Unit/Component/FFMpeg/Services/GetSpeechIntervalsTest.php | 36 +-\n tests/Unit/Component/LanguageDetection/Services/FindSpeechTimeServiceTest.php | 20 +-\n tests/Unit/Component/MobileSettings/MobileSettingsControllerTest.php | 5 +-\n tests/Unit/Component/ParticipantSpeech/Services/ParticipantSpeechesCreatorTest.php | 75 ++\n tests/Unit/Component/ParticipantSpeech/Services/ParticipantSpeechesDeleterTest.php | 63 ++\n tests/Unit/Component/ParticipantSpeech/Services/ParticipantSpeechesProviderTest.php | 134 ++++\n tests/Unit/Component/ParticipantSpeech/Services/ParticipantSpeechesUploaderTest.php | 57 ++\n tests/Unit/Component/Transcription/Diarization/Services/GetNormalizedParticipantSpeechesServiceTest.php | 51 +-\n tests/Unit/Component/Transcription/Diarization/Source/MeetingBotSourceTest.php | 29 +-\n tests/Unit/Contracts/Services/Calendar/CalendarTraitTest.php | 58 +-\n tests/Unit/Http/Controllers/Kiosk/ActivityControllerTest.php | 159 +++++\n tests/Unit/Jobs/Activity/Import/ImportTwilioVideoSpeechesJobTest.php | 22 +-\n tests/Unit/Jobs/Activity/Import/IsActivityReadyForProcessingJobTest.php | 26 +-\n tests/Unit/Jobs/Calendar/SetupCalendarSyncTest.php | 25 -\n tests/Unit/Services/Activity/ParticipantsServiceTest.php | 12 +-\n tests/Unit/Services/Activity/Twilio/S3RecordingCredentialsServiceTest.php | 180 +++++\n tests/Unit/Services/ActivityServiceTest.php | 132 ++++\n tests/Unit/Services/Calendar/CalendarActivityServiceTest.php | 150 +++-\n tests/Unit/Services/Calendar/Command/ImportParticipantsTest.php | 6 +-\n tests/Unit/Services/Calendar/Command/MapActivityDataTest.php | 78 +-\n tests/Unit/Services/Calendar/GoogleCalendarServiceTest.php | 116 +++\n tests/Unit/Services/Crm/Close/ServiceTest.php | 165 +++++\n tests/Unit/Services/Crm/Hubspot/ServiceTest.php | 272 ++++++-\n tests/Unit/Services/Crm/Hubspot/ServiceTraits/OpportunitySyncTest.php | 25 +-\n tests/Unit/Services/Crm/Hubspot/ServiceTraits/OpportunitySyncTraitMatchActivitiesTest.php | 3 +-\n tests/Unit/Services/Crm/IntegrationApp/ServiceTraits/SyncCrmEntitiesTraitOpportunitiesTest.php | 40 ++\n tests/Unit/Services/Crm/Pipedrive/ImportOpportunityMatchActivitiesTest.php | 2 +\n tests/Unit/Services/Crm/Salesforce/ServiceTest.php | 139 ++++\n tests/Unit/Services/Mail/Office/EmailApiClientTest.php | 195 ++---\n tests/Unit/Services/RecallAI/RecallAIServiceTest.php | 24 +-\n 175 files changed, 12562 insertions(+), 2162 deletions(-)\n create mode 120000 CLAUDE.md\n create mode 100644 app/Component/AiAutomation/Services/CrmFillingEligibilityChecker.php\n delete mode 100644 app/Component/ES/ElasticSearchWorkerManager.php\n delete mode 100644 app/Component/ES/Processor/Traits/SkipActivityTrait.php\n delete mode 100644 app/Component/ES/Worker/ActivityWorker.php\n delete mode 100644 app/Component/ES/Worker/EntityWorker.php\n delete mode 100644 app/Component/ES/Worker/WorkerAmount.php\n delete mode 100644 app/Component/ES/Worker/WorkerInterface.php\n create mode 100644 app/Component/ProphetAi/Exceptions/InsufficientTranscriptException.php\n create mode 100644 app/Component/Transcription/DTO/Http/Transcription/AssemblyAI/AssemblyAI/NoAssemblyIdException.php\n create mode 100644 app/Component/Transcription/DTO/Http/Transcription/TranscriptionIsNotCorrectFormatException.php\n create mode 100644 app/Console/Commands/Activities/SetupIntegration/TwilioSetS3RecordingCredentialsCommand.php\n create mode 100644 app/Console/Commands/Crm/BackfillOpportunityUserFromAccountCommand.php\n delete mode 100644 app/Console/Commands/Elasticsearch/AsyncUpdateEsActivities.php\n create mode 100644 app/Console/Commands/IssueMcpTokenCommand.php\n create mode 100644 app/Http/Middleware/McpAuditMiddleware.php\n create mode 100644 app/Http/Middleware/McpTierMiddleware.php\n create mode 100644 app/Mcp/Contracts/McpCallRepositoryInterface.php\n create mode 100644 app/Mcp/DTO/ListCallsFilters.php\n create mode 100644 app/Mcp/Errors/McpError.php\n create mode 100644 app/Mcp/Repositories/McpActivityHydrator.php\n create mode 100644 app/Mcp/Repositories/McpCallRepository.php\n create mode 100644 app/Mcp/Repositories/McpElasticCallRepository.php\n create mode 100644 app/Mcp/Servers/JiminnyServer.php\n create mode 100644 app/Mcp/Tools/ListCallsTool.php\n create mode 100644 app/Services/Activity/Twilio/S3RecordingCredentialsService.php\n create mode 100644 config/mcp.php\n create mode 100644 database/migrations/2026_04_30_120000_create_mcp_audit_log_table.php\n create mode 100644 docs/mcp/explorer/explorer.html\n create mode 100644 docs/mcp/explorer/explorer.template.html\n create mode 100644 docs/mcp/explorer/generate.js\n create mode 100644 docs/mcp/explorer/tool-explorer-meta.json\n create mode 100644 docs/mcp/tools-list.json\n create mode 100644 docs/mcp/tools.md\n create mode 100644 front-end/src/components/shared/modals/EntityPickerModal/__tests__/useEntitiesCache.spec.ts\n create mode 100644 tests/Feature/Component/Nudge/ProcessOrganisationImmediateNudgesJobTest.php\n create mode 100644 tests/Feature/Mcp/IssueMcpTokenCommandTest.php\n create mode 100644 tests/Feature/Mcp/ListCallsToolElasticFeatureTest.php\n create mode 100644 tests/Feature/Mcp/ListCallsToolFeatureTest.php\n create mode 100644 tests/Feature/Mcp/McpTestHelpersTrait.php\n create mode 100644 tests/Stubs/SentryStub.php\n create mode 100644 tests/Unit/Component/AiAutomation/Services/CrmFillingEligibilityCheckerTest.php\n delete mode 100644 tests/Unit/Component/ES/ElasticSearchWorkerManagerTest.php\n create mode 100644 tests/Unit/Component/ES/Processor/Actions/LoadDocumentsActionTest.php\n delete mode 100644 tests/Unit/Component/ES/Processor/Traits/SkipActivityTraitTest.php\n delete mode 100644 tests/Unit/Component/ES/Worker/ActivityWorkerTest.php\n delete mode 100644 tests/Unit/Component/ES/Worker/EntityWorkerTest.php\n delete mode 100644 tests/Unit/Component/ES/Worker/WorkerAmountTest.php\n create mode 100644 tests/Unit/Component/ParticipantSpeech/Services/ParticipantSpeechesCreatorTest.php\n create mode 100644 tests/Unit/Http/Controllers/Kiosk/ActivityControllerTest.php\n create mode 100644 tests/Unit/Services/Activity/Twilio/S3RecordingCredentialsServiceTest.php\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20725-handle-HS-search-rate-limit) $ git status\nOn branch master\nYour branch is behind 'origin/master' by 114 commits, and can be fast-forwarded.\n (use \"git pull\" to update your local branch)\n\nChanges not staged for commit:\n (use \"git add <file>...\" to update what will be committed)\n (use \"git restore <file>...\" to discard changes in working directory)\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tmodified: .env.local\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tmodified: app/Component/SCIM/Constants.php\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tmodified: app/Component/SCIM/ScimProvisioning.php\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tmodified: app/Component/Twilio/Conference/ConferenceManager/SoftPhoneManager.php\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tmodified: app/Console/Commands/JiminnyDebugCommand.php\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tmodified: app/DTO/SCIM/AAD/Request/CoreUserRequest.php\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tmodified: app/DTO/SCIM/AAD/Response/CoreUser.php\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tmodified: app/Services/Telephony/TextMessagingService.php\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tmodified: config/logging.php\n\nUntracked files:\n (use \"git add <file>...\" to include in what will be committed)\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\t.env.nikilocal\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\t.env.other\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tWEBHOOK_FILTERING_IMPLEMENTATION.md\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tapp/Component/SCIM/Mutators/Attributes/User/RoleAttr.php\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tapp/Console/Commands/Crm/Hubspot/SimulateWebhooksCommand.php\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tapp/Console/Commands/Reports/CreateMockAskJiminnyReportResultCommand.php\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tapp/Rules/ListenerRoleCannotHaveAdminOrManagerPermissionRule.php\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tids.txt\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tpublic/favicon.ico\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\traw_sql_query.sql\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\ttests/Unit/Component/SCIM/Mutators/Attributes/User/RoleAttrTest.php\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\ttests/Unit/Policies/CanAccessAiReportsTest.php\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\ttests/Unit/Rules/ListenerRoleCannotHaveAdminOrManagerPermissionRuleTest.php\n\nno changes added to commit (use \"git add\" and/or \"git commit -a\")\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (master) $ git pull\nremote: Enumerating objects: 306, done.\nremote: Counting objects: 100% (299/299), done.\nremote: Compressing objects: 100% (183/183), done.\nremote: Total 306 (delta 213), reused 171 (delta 116), pack-reused 7 (from 1)\nReceiving objects: 100% (306/306), 80.12 KiB | 1000.00 KiB/s, done.\nResolving deltas: 100% (213/213), completed with 53 local objects.\nFrom github.com:jiminny/app\n 90bca4e4b2..5604af40cf master -> origin/master\n 4e7078fd8b..0b8343d179 JY-18091-upgrade-to-php-8-5 -> origin/JY-18091-upgrade-to-php-8-5\n 098eeaa087..d5a447e492 JY-20613-allow-owner-role-on-team-setup -> origin/JY-20613-allow-owner-role-on-team-setup\n c3a76ace91..af65249d0f JY-20749-user-can-view-recorded-meetings -> origin/JY-20749-user-can-view-recorded-meetings\n d94a285ae7..7ce96cb5fe JY-20808-low-priority-indexing-queue -> origin/JY-20808-low-priority-indexing-queue\n * [new branch] JY-20842-remove-partial-updater -> origin/JY-20842-remove-partial-updater\n * [new branch] JY-20920-fix-participant-flip -> origin/JY-20920-fix-participant-flip\n * [new branch] secfix/npm-20260519 -> origin/secfix/npm-20260519\nUpdating cb4ebf0c36..5604af40cf\nFast-forward\n app/Component/ES/ChunkSize.php | 54 +++++++++++++++++++\n app/Component/ES/Processor/DTOs/SelectionList.php | 4 +-\n app/Component/ES/Processor/TargetEntitiesSelector.php | 19 ++++---\n app/Component/MeetingBot/Service/ParticipantMatcher.php | 46 ++++++++++++----\n app/Exceptions/RateLimitException.php | 19 ++++++-\n app/Http/Middleware/McpTierMiddleware.php | 27 ++--------\n app/Jobs/Crm/MatchActivityCrmData.php | 47 ++++++++++++----\n app/Jobs/Middleware/HandleHubspotRateLimit.php | 42 +++++++++++++++\n app/Mcp/Servers/JiminnyServer.php | 2 +\n app/Mcp/Tools/GetMeTool.php | 157 +++++++++++++++++++++++++++++++++++++++++++++++++++++\n app/Models/Feature/FeatureEnum.php | 1 +\n app/Services/Activity/HubSpot/ProviderResolver.php | 4 +-\n app/Services/Activity/HubSpot/ProviderResolverInterface.php | 2 +-\n app/Services/Activity/HubSpot/Providers/Provider.php | 2 +-\n app/Services/Activity/HubSpot/Providers/ProviderKixie.php | 2 +-\n app/Services/Activity/HubSpot/Providers/ProviderOrum.php | 2 +-\n app/Services/Activity/HubSpot/Providers/ProviderTwilio.php | 2 +-\n app/Services/Activity/HubSpot/Providers/ProviderTwilioFlex.php | 5 +-\n app/Services/Activity/HubSpot/Service.php | 97 +++++++++++++++++++++++++++------\n app/Services/Crm/Hubspot/Client.php | 132 +++++++++++++++++++++++++++++++++++++++++++++\n app/Services/Crm/Hubspot/HubspotClientInterface.php | 15 ++++++\n app/Services/Crm/Hubspot/Pagination/HubspotPaginationService.php | 21 ++++----\n app/Services/Crm/Hubspot/Pagination/PaginationState.php | 2 +-\n database/migrations/2026_05_13_124153_create_mcp_feature_flag.php | 25 +++++++++\n tests/Feature/Mcp/GetMeToolFeatureTest.php | 140 +++++++++++++++++++++++++++++++++++++++++++++++\n tests/Feature/Mcp/ListCallsToolFeatureTest.php | 2 +-\n tests/Feature/Mcp/McpTestHelpersTrait.php | 19 ++++++-\n tests/Unit/Component/ES/ChunkSizeTest.php | 50 +++++++++++++++++\n tests/Unit/Component/ES/Processor/DTOs/SelectionListTest.php | 27 +++++++---\n tests/Unit/Component/ES/Processor/TargetEntitiesSelectorTest.php | 39 ++++++++------\n tests/Unit/Component/MeetingBot/Service/ParticipantMatcherTest.php | 68 ++++++++++++++++++++++-\n tests/Unit/Exceptions/RateLimitExceptionTest.php | 56 +++++++++++++++++++\n tests/Unit/Jobs/Crm/MatchActivityCrmDataTest.php | 8 +--\n tests/Unit/Jobs/Middleware/HandleHubspotRateLimitTest.php | 151 +++++++++++++++++++++++++++++++++++++++++++++++++++\n tests/Unit/Services/Activity/HubSpot/ServiceTest.php | 109 +++++++++++++++++++++++++++++++++++++\n tests/Unit/Services/Crm/Hubspot/ClientTest.php | 250 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++\n tests/Unit/Services/Crm/Hubspot/Pagination/HubspotPaginationServiceTest.php | 283 +++++++++++++++++++++---------------------------------------------------------------------------\n 37 files changed, 1587 insertions(+), 344 deletions(-)\n create mode 100644 app/Component/ES/ChunkSize.php\n create mode 100644 app/Jobs/Middleware/HandleHubspotRateLimit.php\n create mode 100644 app/Mcp/Tools/GetMeTool.php\n create mode 100644 database/migrations/2026_05_13_124153_create_mcp_feature_flag.php\n create mode 100644 tests/Feature/Mcp/GetMeToolFeatureTest.php\n create mode 100644 tests/Unit/Component/ES/ChunkSizeTest.php\n create mode 100644 tests/Unit/Exceptions/RateLimitExceptionTest.php\n create mode 100644 tests/Unit/Jobs/Middleware/HandleHubspotRateLimitTest.php\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (master) $ git pull\nAlready up to date.\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (master) $ co -b JY-20676-delete-report-related-objects\nSwitched to a new branch 'JY-20676-delete-report-related-objects'\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20676-delete-report-related-objects) $ csfix\ndocker exec -it docker_lamp_1 ./vendor/bin/php-cs-fixer fix --config=.php-cs-fixer.dist.php -v --using-cache=no --diff \nPHP CS Fixer 3.87.1 Alexander by Fabien Potencier, Dariusz Ruminski and contributors.\nPHP runtime: 8.3.30\nRunning analysis on 7 cores with 10 files per process.\nParallel runner is an experimental feature and may be unstable, use it at your own risk. Feedback highly appreciated!\nLoaded config default from \".php-cs-fixer.dist.php\".\n 5690/5690 [▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓] 100%\n\n 1) app/Console/Commands/JiminnyDebugCommand.php (statement_indentation, blank_line_before_statement)\n ---------- begin diff ----------\n--- /home/jiminny/app/Console/Commands/JiminnyDebugCommand.php\n+++ /home/jiminny/app/Console/Commands/JiminnyDebugCommand.php\n@@ -23,6 +23,7 @@\n \n if ($action === 'redis-set') {\n $this->testRedisSet();\n+\n return;\n }\n \n@@ -45,7 +46,7 @@\n $ttl = 60;\n \n try {\n-// $result = Redis::set($testKey, $testValue, 'EX', $ttl, 'NX');\n+ // $result = Redis::set($testKey, $testValue, 'EX', $ttl, 'NX');\n $result = Redis::set($testKey, $testValue, ['nx', 'ex' => $ttl]);\n \n if ($result) {\n\n ----------- end diff -----------\n\n\nFixed 1 of 5690 files in 50.673 seconds, 67.00 MB memory used\n\nWhat's next:\n Try Docker Debug for seamless, persistent debugging tools in any container or image → docker debug docker_lamp_1\n Learn more at https://docs.docker.com/go/debug-cli/\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20676-delete-report-related-objects) $ ;xd\ndocker exec -it docker_lamp_1 bash -c \"mv /usr/local/etc/php/conf.d/xdebug.ini ~/xdebug.ini\"\n\nWhat's next:\n Try Docker Debug for seamless, persistent debugging tools in any container or image → docker debug docker_lamp_1\n Learn more at https://docs.docker.com/go/debug-cli/\ndocker exec -it docker_lamp_1 supervisorctl restart all\njiminny-worker-processing-2:jiminny-worker-processing-2_00: stopped\njiminny-worker-processing-3:jiminny-worker-processing-3_00: stopped\njiminny-worker-processing-4:jiminny-worker-processing-4_00: stopped\njiminny-worker-processing-5:jiminny-worker-processing-5_00: stopped\njiminny-worker-processing-delayed:jiminny-worker-processing-delayed_00: stopped\nworker-analytics:worker-analytics_00: stopped\nworker-crm-update:worker-crm-update_00: stopped\nworker-download:worker-download_00: stopped\nworker-nudges:worker-nudges_00: stopped\nworker-calendar:worker-calendar_00: stopped\nworker-audio:worker-audio_00: stopped\njiminny-worker-processing-1:jiminny-worker-processing-1_00: stopped\nworker:worker_00: stopped\nworker-conferences:worker-conferences_00: stopped\nworker-crm-sync:worker-crm-sync_00: stopped\nworker-emails:worker-emails_00: stopped\nworker-es-update:worker-es-update_00: stopped\nartisan-schedule:artisan-schedule_00: stopped\nartisan-schedule:artisan-schedule_00: started\njiminny-worker-processing-1:jiminny-worker-processing-1_00: started\njiminny-worker-processing-2:jiminny-worker-processing-2_00: started\njiminny-worker-processing-3:jiminny-worker-processing-3_00: started\njiminny-worker-processing-4:jiminny-worker-processing-4_00: started\njiminny-worker-processing-5:jiminny-worker-processing-5_00: started\njiminny-worker-processing-delayed:jiminny-worker-processing-delayed_00: started\nworker:worker_00: started\nworker-analytics:worker-analytics_00: started\nworker-audio:worker-audio_00: started\nworker-calendar:worker-calendar_00: started\nworker-conferences:worker-conferences_00: started\nworker-crm-sync:worker-crm-sync_00: started\nworker-crm-update:worker-crm-update_00: started\nworker-download:worker-download_00: started\nworker-emails:worker-emails_00: started\nworker-es-update:worker-es-update_00: started\nworker-nudges:worker-nudges_00: started\n\nWhat's next:\n Try Docker Debug for seamless, persistent debugging tools in any container or image → docker debug docker_lamp_1\n Learn more at https://docs.docker.com/go/debug-cli/\ndocker exec -it docker_lamp_1 php -v\nPHP 8.3.30 (cli) (built: Mar 16 2026 22:32:32) (NTS)\nCopyright (c) The PHP Group\nZend Engine v4.3.30, Copyright (c) Zend Technologies\n with Zend OPcache v8.3.30, Copyright (c), by Zend Technologies\n\nWhat's next:\n Try Docker Debug for seamless, persistent debugging tools in any container or image → docker debug docker_lamp_1\n Learn more at https://docs.docker.com/go/debug-cli/\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20676-delete-report-related-objects) $ git status\nOn branch JY-20676-delete-report-related-objects\nChanges not staged for commit:\n (use \"git add <file>...\" to update what will be committed)\n (use \"git restore <file>...\" to discard changes in working directory)\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tmodified: .env.local\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tmodified: app/Console/Commands/JiminnyDebugCommand.php\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tmodified: config/logging.php\n\nUntracked files:\n (use \"git add <file>...\" to include in what will be committed)\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\t.env.nikilocal\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\t.env.other\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tWEBHOOK_FILTERING_IMPLEMENTATION.md\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tapp/Console/Commands/Crm/Hubspot/SimulateWebhooksCommand.php\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tapp/Console/Commands/Reports/CreateMockAskJiminnyReportResultCommand.php\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tids.txt\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tpublic/favicon.ico\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\traw_sql_query.sql\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\ttests/Unit/Policies/CanAccessAiReportsTest.php\n\nno changes added to commit (use \"git add\" and/or \"git commit -a\")\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20676-delete-report-related-objects) $ git push -u origin JY-20676-delete-report-related-objects\nEnumerating objects: 45, done.\nCounting objects: 100% (45/45), done.\nDelta compression using up to 8 threads\nCompressing objects: 100% (24/24), done.\nWriting objects: 100% (24/24), 3.62 KiB | 3.62 MiB/s, done.\nTotal 24 (delta 19), reused 0 (delta 0), pack-reused 0\nremote: Resolving deltas: 100% (19/19), completed with 19 local objects.\nremote: \nremote: Create a pull request for 'JY-20676-delete-report-related-objects' on GitHub by visiting:\nremote: https://github.com/jiminny/app/pull/new/JY-20676-delete-report-related-objects\nremote: \nTo github.com:jiminny/app.git\n * [new branch] JY-20676-delete-report-related-objects -> JY-20676-delete-report-related-objects\nbranch 'JY-20676-delete-report-related-objects' set up to track 'origin/JY-20676-delete-report-related-objects'.\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20676-delete-report-related-objects) $ csfix\ndocker exec -it docker_lamp_1 ./vendor/bin/php-cs-fixer fix --config=.php-cs-fixer.dist.php -v --using-cache=no --diff \nPHP CS Fixer 3.87.1 Alexander by Fabien Potencier, Dariusz Ruminski and contributors.\nPHP runtime: 8.3.30\nRunning analysis on 7 cores with 10 files per process.\nParallel runner is an experimental feature and may be unstable, use it at your own risk. Feedback highly appreciated!\nLoaded config default from \".php-cs-fixer.dist.php\".\n 5690/5690 [▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓] 100%\n\n 1) app/Http/Controllers/API/V2/AskJiminnyReportsController.php (blank_line_before_statement)\n ---------- begin diff ----------\n--- /home/jiminny/app/Http/Controllers/API/V2/AskJiminnyReportsController.php\n+++ /home/jiminny/app/Http/Controllers/API/V2/AskJiminnyReportsController.php\n@@ -140,6 +140,7 @@\n if ($enabled && $report->isAskJiminnyReport() && ! $report->canExecute()) {\n $error = 'This report is missing a saved search or prompt. ' .\n 'Edit the report to complete the setup before enabling it.';\n+\n return new JsonResponse(\n ['error' => $error],\n Response::HTTP_UNPROCESSABLE_ENTITY\n\n ----------- end diff -----------\n\n\nFixed 1 of 5690 files in 71.757 seconds, 60.00 MB memory used\n\nWhat's next:\n Try Docker Debug for seamless, persistent debugging tools in any container or image → docker debug docker_lamp_1\n Learn more at https://docs.docker.com/go/debug-cli/\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20676-delete-report-related-objects) $ git pull\nremote: Enumerating objects: 158, done.\nremote: Counting objects: 100% (103/103), done.\nremote: Compressing objects: 100% (37/37), done.\nremote: Total 158 (delta 80), reused 74 (delta 66), pack-reused 55 (from 3)\nReceiving objects: 100% (158/158), 80.59 KiB | 982.00 KiB/s, done.\nResolving deltas: 100% (85/85), completed with 45 local objects.\nFrom github.com:jiminny/app\n 02a33811ee..c6ce5e2440 JY-20676-delete-report-related-objects -> origin/JY-20676-delete-report-related-objects\n 7ce96cb5fe..6c59f04358 JY-20808-low-priority-indexing-queue -> origin/JY-20808-low-priority-indexing-queue\n 3906a9238a..2b5e6ea62b JY-20835-mcp-enable-users-to-get-a-list-of-deals-and-their-details -> origin/JY-20835-mcp-enable-users-to-get-a-list-of-deals-and-their-details\n 5604af40cf..ea3519f0e2 master -> origin/master\n * [new branch] switch-eu-assembly -> origin/switch-eu-assembly\nUpdating 02a33811ee..c6ce5e2440\nFast-forward\n app/Component/ES/ElasticSearchDocumentPartialUpdater.php | 48 ---\n app/Component/ParticipantSpeech/Services/ParticipantAttributionService.php | 4 +-\n app/Component/Settings/AutoScoring/Services/UpdateAutoScoreService.php | 20 +-\n app/Component/Transcription/Service/StorageService.php | 8 +-\n front-end/package.json | 2 +-\n front-end/src/components/DealInsights/Modals/AskAnythingModal.vue | 23 ++\n front-end/src/components/shared/AskAnything/AskAnythingPromptFormItem.vue | 2 +\n front-end/src/components/shared/AskAnything/AskAnythingSettingsDrawer.vue | 23 +-\n front-end/src/components/shared/AskAnything/__mocks__/AskAnythingSettingsDrawer.mocks.js | 1 +\n front-end/src/components/shared/AskAnything/__tests__/AskAnythingSettingsDrawer.spec.js | 135 ++++---\n front-end/src/components/shared/AskAnything/__tests__/__snapshots__/AskAnythingSettingsDrawer.spec.js.html | 1235 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++\n front-end/src/components/shared/AskAnything/__tests__/__snapshots__/AskAnythingSettingsDrawer.spec.js.snap | 1382 ----------------------------------------------------------------\n front-end/src/components/shared/AskAnything/prompts.js | 1 +\n front-end/src/components/shared/AskAnything/useAskAnything.js | 1 +\n front-end/yarn.lock | 8 +-\n tests/Unit/Component/ES/ElasticSearchDocumentPartialUpdaterTest.php | 42 --\n tests/Unit/Component/Settings/AutoScoring/Services/UpdateAutoScoreServiceTest.php | 86 ++--\n tests/Unit/Component/Transcription/Service/StorageServiceTest.php | 29 +-\n 18 files changed, 1448 insertions(+), 1602 deletions(-)\n delete mode 100644 app/Component/ES/ElasticSearchDocumentPartialUpdater.php\n create mode 100644 front-end/src/components/shared/AskAnything/__tests__/__snapshots__/AskAnythingSettingsDrawer.spec.js.html\n delete mode 100644 front-end/src/components/shared/AskAnything/__tests__/__snapshots__/AskAnythingSettingsDrawer.spec.js.snap\n delete mode 100644 tests/Unit/Component/ES/ElasticSearchDocumentPartialUpdaterTest.php\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20676-delete-report-related-objects) $","depth":4,"on_screen":true,"value":"Last login: Mon May 18 09:17:28 on ttys007\n\nPoetry could not find a pyproject.toml file in /Users/lukas/jiminny/app or its parents\n\nPoetry could not find a pyproject.toml file in /Users/lukas/jiminny/app or its parents\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (pipedrive-sdk-poc) $ co master\nerror: Your local changes to the following files would be overwritten by checkout:\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tPIPEDRIVE_V2_MIGRATION_TICKETS.md\nPlease commit your changes or stash them before you switch branches.\nAborting\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (pipedrive-sdk-poc) $ git pull\nremote: Enumerating objects: 1047, done.\nremote: Counting objects: 100% (832/832), done.\nremote: Compressing objects: 100% (298/298), done.\nremote: Total 1047 (delta 634), reused 596 (delta 534), pack-reused 215 (from 3)\nReceiving objects: 100% (1047/1047), 353.16 KiB | 1.56 MiB/s, done.\nResolving deltas: 100% (687/687), completed with 107 local objects.\nFrom github.com:jiminny/app\n 907c54896c..34656c53ed pipedrive-sdk-poc -> origin/pipedrive-sdk-poc\n 03325ec50f..4e7078fd8b JY-18091-upgrade-to-php-8-5 -> origin/JY-18091-upgrade-to-php-8-5\n e7d231e163..bc6a3fce6b JY-20725-handle-HS-search-rate-limit -> origin/JY-20725-handle-HS-search-rate-limit\n * [new branch] JY-20749-user-can-view-recorded-meetings -> origin/JY-20749-user-can-view-recorded-meetings\n 98ca281a04..e0351be069 JY-20808-low-priority-indexing-queue -> origin/JY-20808-low-priority-indexing-queue\n 569abb5149..3906a9238a JY-20835-mcp-enable-users-to-get-a-list-of-deals-and-their-details -> origin/JY-20835-mcp-enable-users-to-get-a-list-of-deals-and-their-details\n ad6c2a86e8..50eb6afba9 JY-20846-mcp-enable-the-ai-to-know-details-about-the-user -> origin/JY-20846-mcp-enable-the-ai-to-know-details-about-the-user\n * [new branch] JY-20893-chunk-control-per-update-target -> origin/JY-20893-chunk-control-per-update-target\n 31c62924a5..cb4ebf0c36 master -> origin/master\nUpdating 907c54896c..34656c53ed\nFast-forward\n PIPEDRIVE_V2_MIGRATION_TICKETS.md | 52 ++++++++++++++++++++++++++++++++++++++++++++++++++++\n 1 file changed, 52 insertions(+)\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (pipedrive-sdk-poc) $ co master\nM\u0000\u0000\u0000\u0000\u0000\u0000\t.env.local\nM\u0000\u0000\u0000\u0000\u0000\u0000\tconfig/logging.php\nSwitched to branch 'master'\nYour branch is behind 'origin/master' by 31 commits, and can be fast-forwarded.\n (use \"git pull\" to update your local branch)\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (master) $ git pull\nUpdating 31c62924a5..cb4ebf0c36\nFast-forward\n app/Component/ES/Processor/Traits/SelectEntityListTrait.php | 20 ------\n app/Services/Calendar/CalendarActivityService.php | 46 +++++++++++++\n app/Services/Calendar/Command/MapActivityData.php | 106 +++-------------------------\n docs/mcp/explorer/explorer.html | 104 +++++++++++++++++++++++++---\n docs/mcp/explorer/explorer.template.html | 102 ++++++++++++++++++++++++---\n docs/mcp/tools-list.json | 373 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++-------\n docs/mcp/tools.md | 117 +++++++++++++++++++++++--------\n tests/Unit/Component/ES/AsyncUpdateElasticSearchTest.php | 16 +----\n tests/Unit/Component/ES/Listeners/UpdateMultipleTargetsListenerTest.php | 10 ---\n tests/Unit/Component/ES/Listeners/UpdateSingleTargetListenerTest.php | 6 --\n tests/Unit/Component/ES/Processor/TargetEntitiesSelectorTest.php | 9 ---\n tests/Unit/Component/ES/Processor/Traits/SelectEntityListTraitTest.php | 15 ++--\n tests/Unit/Component/ES/UpdateProcessManagerTest.php | 2 -\n tests/Unit/Services/Calendar/CalendarActivityServiceTest.php | 150 ++++++++++++++++++++++++++++++++++++++--\n tests/Unit/Services/Calendar/Command/MapActivityDataTest.php | 78 ++-------------------\n 15 files changed, 832 insertions(+), 322 deletions(-)\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (master) $ co -b JY-20613-allow-owner-role-on-team-setup\nSwitched to a new branch 'JY-20613-allow-owner-role-on-team-setup'\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20613-allow-owner-role-on-team-setup) $ csfix\ndocker exec -it docker_lamp_1 ./vendor/bin/php-cs-fixer fix --config=.php-cs-fixer.dist.php -v --using-cache=no --diff \nPHP CS Fixer 3.87.1 Alexander by Fabien Potencier, Dariusz Ruminski and contributors.\nPHP runtime: 8.3.30\nRunning analysis on 7 cores with 10 files per process.\nParallel runner is an experimental feature and may be unstable, use it at your own risk. Feedback highly appreciated!\nLoaded config default from \".php-cs-fixer.dist.php\".\n 5682/5682 [▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓] 100%\n\n\nFixed 0 of 5682 files in 56.978 seconds, 67.00 MB memory used\n\nWhat's next:\n Try Docker Debug for seamless, persistent debugging tools in any container or image → docker debug docker_lamp_1\n Learn more at https://docs.docker.com/go/debug-cli/\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20613-allow-owner-role-on-team-setup) $ ;xd\ndocker exec -it docker_lamp_1 bash -c \"mv /usr/local/etc/php/conf.d/xdebug.ini ~/xdebug.ini\"\n\nWhat's next:\n Try Docker Debug for seamless, persistent debugging tools in any container or image → docker debug docker_lamp_1\n Learn more at https://docs.docker.com/go/debug-cli/\ndocker exec -it docker_lamp_1 supervisorctl restart all\njiminny-worker-processing-2:jiminny-worker-processing-2_00: stopped\njiminny-worker-processing-3:jiminny-worker-processing-3_00: stopped\njiminny-worker-processing-4:jiminny-worker-processing-4_00: stopped\njiminny-worker-processing-5:jiminny-worker-processing-5_00: stopped\njiminny-worker-processing-delayed:jiminny-worker-processing-delayed_00: stopped\nworker-analytics:worker-analytics_00: stopped\nworker-crm-update:worker-crm-update_00: stopped\nworker-download:worker-download_00: stopped\nworker-nudges:worker-nudges_00: stopped\nartisan-schedule:artisan-schedule_00: stopped\nworker-emails:worker-emails_00: stopped\nworker-calendar:worker-calendar_00: stopped\nworker:worker_00: stopped\nworker-conferences:worker-conferences_00: stopped\nworker-crm-sync:worker-crm-sync_00: stopped\njiminny-worker-processing-1:jiminny-worker-processing-1_00: stopped\nworker-audio:worker-audio_00: stopped\nworker-es-update:worker-es-update_00: stopped\nartisan-schedule:artisan-schedule_00: started\njiminny-worker-processing-1:jiminny-worker-processing-1_00: started\njiminny-worker-processing-2:jiminny-worker-processing-2_00: started\njiminny-worker-processing-3:jiminny-worker-processing-3_00: started\njiminny-worker-processing-4:jiminny-worker-processing-4_00: started\njiminny-worker-processing-5:jiminny-worker-processing-5_00: started\njiminny-worker-processing-delayed:jiminny-worker-processing-delayed_00: started\nworker:worker_00: started\nworker-analytics:worker-analytics_00: started\nworker-audio:worker-audio_00: started\nworker-calendar:worker-calendar_00: started\nworker-conferences:worker-conferences_00: started\nworker-crm-sync:worker-crm-sync_00: started\nworker-crm-update:worker-crm-update_00: started\nworker-download:worker-download_00: started\nworker-emails:worker-emails_00: started\nworker-es-update:worker-es-update_00: started\nworker-nudges:worker-nudges_00: started\n\nWhat's next:\n Try Docker Debug for seamless, persistent debugging tools in any container or image → docker debug docker_lamp_1\n Learn more at https://docs.docker.com/go/debug-cli/\ndocker exec -it docker_lamp_1 php -v\nPHP 8.3.30 (cli) (built: Mar 16 2026 22:32:32) (NTS)\nCopyright (c) The PHP Group\nZend Engine v4.3.30, Copyright (c) Zend Technologies\n with Zend OPcache v8.3.30, Copyright (c), by Zend Technologies\n\nWhat's next:\n Try Docker Debug for seamless, persistent debugging tools in any container or image → docker debug docker_lamp_1\n Learn more at https://docs.docker.com/go/debug-cli/\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20613-allow-owner-role-on-team-setup) $ csfix\ndocker exec -it docker_lamp_1 ./vendor/bin/php-cs-fixer fix --config=.php-cs-fixer.dist.php -v --using-cache=no --diff \nPHP CS Fixer 3.87.1 Alexander by Fabien Potencier, Dariusz Ruminski and contributors.\nPHP runtime: 8.3.30\nRunning analysis on 7 cores with 10 files per process.\nParallel runner is an experimental feature and may be unstable, use it at your own risk. Feedback highly appreciated!\nLoaded config default from \".php-cs-fixer.dist.php\".\n 5682/5682 [▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓] 100%\n\n\nFixed 0 of 5682 files in 49.910 seconds, 60.00 MB memory used\n\nWhat's next:\n Try Docker Debug for seamless, persistent debugging tools in any container or image → docker debug docker_lamp_1\n Learn more at https://docs.docker.com/go/debug-cli/\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20613-allow-owner-role-on-team-setup) $ git status\nOn branch JY-20613-allow-owner-role-on-team-setup\nYour branch is ahead of 'origin/JY-20613-allow-owner-role-on-team-setup' by 1 commit.\n (use \"git push\" to publish your local commits)\n\nChanges not staged for commit:\n (use \"git add <file>...\" to update what will be committed)\n (use \"git restore <file>...\" to discard changes in working directory)\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tmodified: .env.local\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tmodified: config/logging.php\n\nUntracked files:\n (use \"git add <file>...\" to include in what will be committed)\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\t.env.nikilocal\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\t.env.other\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tWEBHOOK_FILTERING_IMPLEMENTATION.md\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tapp/Console/Commands/Crm/Hubspot/SimulateWebhooksCommand.php\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tapp/Console/Commands/Reports/CreateMockAskJiminnyReportResultCommand.php\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tids.txt\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tpublic/favicon.ico\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\traw_sql_query.sql\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\ttests/Unit/Policies/CanAccessAiReportsTest.php\n\nno changes added to commit (use \"git add\" and/or \"git commit -a\")\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20613-allow-owner-role-on-team-setup) $ git pull\nremote: Enumerating objects: 248, done.\nremote: Counting objects: 100% (128/128), done.\nremote: Compressing objects: 100% (23/23), done.\nremote: Total 59 (delta 43), reused 44 (delta 33), pack-reused 0 (from 0)\nUnpacking objects: 100% (59/59), 10.48 KiB | 228.00 KiB/s, done.\nFrom github.com:jiminny/app\n b7df560451..190239dfd4 JY-20613-allow-owner-role-on-team-setup -> origin/JY-20613-allow-owner-role-on-team-setup\n e0351be069..d94a285ae7 JY-20808-low-priority-indexing-queue -> origin/JY-20808-low-priority-indexing-queue\n * [new branch] JY-20920-fix-participant-matcher -> origin/JY-20920-fix-participant-matcher\n cb4ebf0c36..90bca4e4b2 master -> origin/master\nMerge made by the 'ort' strategy.\n app/Component/ES/ChunkSize.php | 54 +++++++++++++++++++++++++++\n app/Component/ES/Processor/DTOs/SelectionList.php | 4 +-\n app/Component/ES/Processor/TargetEntitiesSelector.php | 19 ++++++----\n app/Http/Middleware/McpTierMiddleware.php | 27 +++-----------\n app/Mcp/Servers/JiminnyServer.php | 2 +\n app/Mcp/Tools/GetMeTool.php | 157 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++\n app/Models/Feature/FeatureEnum.php | 1 +\n database/migrations/2026_05_13_124153_create_mcp_feature_flag.php | 25 +++++++++++++\n front-end/src/components/Settings/Kiosk/modals/EditTeamModal/EditTeamModal.vue | 52 ++++++++++++++++++--------\n front-end/src/components/Settings/Kiosk/modals/EditTeamModal/__tests__/EditTeamModal.spec.js | 14 +++++++\n tests/Feature/Mcp/GetMeToolFeatureTest.php | 140 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++\n tests/Feature/Mcp/ListCallsToolFeatureTest.php | 2 +-\n tests/Feature/Mcp/McpTestHelpersTrait.php | 19 +++++++++-\n tests/Unit/Component/ES/ChunkSizeTest.php | 50 +++++++++++++++++++++++++\n tests/Unit/Component/ES/Processor/DTOs/SelectionListTest.php | 27 ++++++++++----\n tests/Unit/Component/ES/Processor/TargetEntitiesSelectorTest.php | 39 +++++++++++---------\n 16 files changed, 557 insertions(+), 75 deletions(-)\n create mode 100644 app/Component/ES/ChunkSize.php\n create mode 100644 app/Mcp/Tools/GetMeTool.php\n create mode 100644 database/migrations/2026_05_13_124153_create_mcp_feature_flag.php\n create mode 100644 tests/Feature/Mcp/GetMeToolFeatureTest.php\n create mode 100644 tests/Unit/Component/ES/ChunkSizeTest.php\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20613-allow-owner-role-on-team-setup) $ git push\nEnumerating objects: 40, done.\nCounting objects: 100% (34/34), done.\nDelta compression using up to 8 threads\nCompressing objects: 100% (18/18), done.\nWriting objects: 100% (18/18), 1.58 KiB | 1.58 MiB/s, done.\nTotal 18 (delta 15), reused 0 (delta 0), pack-reused 0\nremote: Resolving deltas: 100% (15/15), completed with 13 local objects.\nTo github.com:jiminny/app.git\n 190239dfd4..ec1b261264 JY-20613-allow-owner-role-on-team-setup -> JY-20613-allow-owner-role-on-team-setup\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20613-allow-owner-role-on-team-setup) $ gbr\n* JY-20613-allow-owner-role-on-team-setup\n pipedrive-sdk-poc\n master\n JY-20903-update_activity-stage-on-opportunity-change\n JY-20904-fix-update-es-on-activity-command\n JY-20891-improve-sms-text-relays\n JY-20725-handle-HS-search-rate-limit\n JY-20818-move-AJ-reports-to-separated-datadog-metric\n JY-20773-fix-automated-reports-user-pilot-tracking\n JY-20157-AJ-report-not-send-notification\n JY-20508-notify-before-AJ-report-expiration\n JY-20372-ai-reports-promotion-pages\n JY-20352-sync-opportunities-without-a-local-owner-user-id-is-null\n JY-20738-debug-AJ-tracking-UP\n a\n JY-18909-automated-reports-ask-jiminny\n JY-20692-fix-integration-app-token-auth-response-change\n JY-20553-debug-crm-sync-delays\n JY-20698-fix-SF-activity-types-on-new-playbook\n JY-20543-AJ-report-tracking\n JY-20384-handle-auto-sync-with-no-access-to-event-type\n JY-20458-ask-jiminny-user-definitions\n JY-19666-fix-import-contacts-account-association\n JY-19666-HS-import-contacts-and-accounts-batch-job\n JY-20458-Ask-Jiminny-Reports\n JY-20200-batch-update-CRM-objects-Salesforce\n JY-19666-HS-webhooks-add-contact-and-company\n JY-20348-trigger-setup-DI-layout-on-team-creation\n JY-20326-refactor-info-message-in-command\n JY-20317-fix-auto-log-delay-issue-on-all-channels-disabled\n JY-20312-remove-on-update-change-last-synced-at-crm-configurations\n JY-20306-SF-skip-auto-sync-for-task-based-playbook\n JY-20192-remove-deleted-team-from-saved-search-filters\n JY-20197-import-opportunity-batch-job\n JY-20293-enable-status-field-for-pipedrive-deals\n JY-20191-remove-commands-interactive-prompts\n JY-20118-change-default-sync-strategy\n JY-20183-add-cache-on-auto-log-delay\n JY-20197-add-import-opportunity-batch-job\n 20118-hs-opportunity-make-webhook-strategy-default\n JY-20118-make-default-hs-opportunity-sync-strategy-webhook-based\n JY-20196-handle-opportunity-without-note\n JY-20118-improve-opportunity-import\n JY-20189-handle-activity-search-on-deleted-groups\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20613-allow-owner-role-on-team-setup) $ co JY-20725-handle-HS-search-rate-limit\nM\u0000\u0000\u0000\u0000\u0000\u0000\t.env.local\nM\u0000\u0000\u0000\u0000\u0000\u0000\tconfig/logging.php\nSwitched to branch 'JY-20725-handle-HS-search-rate-limit'\nYour branch is behind 'origin/JY-20725-handle-HS-search-rate-limit' by 439 commits, and can be fast-forwarded.\n (use \"git pull\" to update your local branch)\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20725-handle-HS-search-rate-limit) $ git pull\nUpdating 0f3e438941..bc6a3fce6b\nFast-forward\n .gitignore | 3 +-\n .windsurfrules | 168 ++---\n CLAUDE.md | 1 +\n app/Component/ActivityAnalytics/Service/CalculateTalkTimeOffsetsFromTranscription.php | 24 +-\n app/Component/AiActivityType/Services/AiActivityTypeEligibilityChecker.php | 28 +-\n app/Component/AiAutomation/Actions/PrepareUpdateDtoAction.php | 32 +-\n app/Component/AiAutomation/Services/CrmFillingEligibilityChecker.php | 47 ++\n app/Component/AiAutomation/TestCrmAiPromptService.php | 14 +\n app/Component/AiCallScoring/Services/AiCallScoringEligibilityChecker.php | 9 +\n app/Component/ES/ElasticSearchDocumentPartialUpdater.php | 13 +-\n app/Component/ES/ElasticSearchWorkerManager.php | 86 ---\n app/Component/ES/Processor/Actions/LoadDocumentsAction.php | 80 +--\n app/Component/ES/Processor/EntityQueryBuilder.php | 12 +-\n app/Component/ES/Processor/TargetEntitiesSelector.php | 2 +-\n app/Component/ES/Processor/Traits/SkipActivityTrait.php | 25 -\n app/Component/ES/Repositories/EsResetActivityRepository.php | 11 +-\n app/Component/ES/Worker/ActivityWorker.php | 73 --\n app/Component/ES/Worker/EntityWorker.php | 44 --\n app/Component/ES/Worker/WorkerAmount.php | 60 --\n app/Component/ES/Worker/WorkerInterface.php | 15 -\n app/Component/ElasticSearch/Contract/Searchable.php | 4 +\n app/Component/Encoding/Job/AnalyzeTrackChannelsJob.php | 20 +-\n app/Component/Encoding/Service/GenerateSpeechFromSilenceService.php | 85 ++-\n app/Component/FFMpeg/Services/GetSpeechIntervalsService.php | 18 +-\n app/Component/LanguageDetection/Services/FindSpeechTimeService.php | 22 +-\n app/Component/Nudge/Job/ProcessOrganisationImmediateNudgesJob.php | 218 +++++-\n app/Component/ParagraphBreaker/Services/TranscriptionParagraphsService.php | 4 +\n app/Component/ParticipantSpeech/Services/ParticipantSpeechesCreator.php | 33 +\n app/Component/ParticipantSpeech/Services/ParticipantSpeechesDeleter.php | 15 +\n app/Component/ParticipantSpeech/Services/ParticipantSpeechesProvider.php | 51 +-\n app/Component/ParticipantSpeech/Services/ParticipantSpeechesUploader.php | 36 +\n app/Component/ProphetAi/Exceptions/InsufficientTranscriptException.php | 11 +\n app/Component/Transcription/DTO/Http/Transcription/AssemblyAI/AssemblyAI/NoAssemblyIdException.php | 11 +\n app/Component/Transcription/DTO/Http/Transcription/AssemblyAI/AssemblyAI/SuccessfulResponse.php | 6 +\n app/Component/Transcription/DTO/Http/Transcription/TranscriptionIsNotCorrectFormatException.php | 11 +\n app/Component/Transcription/Diarization/Services/GetNormalizedParticipantSpeechesService.php | 23 +-\n app/Component/Transcription/Diarization/Source/MeetingBotSource.php | 16 +-\n app/Component/Transcription/TranscriptionProcessor/TranscriptionProcessor.php | 3 +\n app/Console/Commands/Activities/ActivityHardDeleteCommand.php | 4 +-\n app/Console/Commands/Activities/Copy.php | 2 +\n app/Console/Commands/Activities/SetupIntegration/TwilioSetS3RecordingCredentialsCommand.php | 119 ++++\n app/Console/Commands/Activities/UpdateActivityElasticSearchDocumentCommand.php | 10 +-\n app/Console/Commands/Crm/BackfillOpportunityUserFromAccountCommand.php | 126 ++++\n app/Console/Commands/Elasticsearch/AsyncUpdateEsActivities.php | 19 -\n app/Console/Commands/Elasticsearch/AsyncUpdateEsEntities.php | 50 +-\n app/Console/Commands/Elasticsearch/ResetAsyncElasticSearchCommand.php | 30 +-\n app/Console/Commands/GeckoExport/GeckoExportParticipantSpeechesCommand.php | 14 +-\n app/Console/Commands/IssueMcpTokenCommand.php | 84 +++\n app/Console/Commands/JiminnyDebugCommand.php | 7 +-\n app/Console/Commands/Tracks/CleanupActivityTracksCommand.php | 2 +-\n app/Console/Kernel.php | 6 +-\n app/Contracts/Services/Calendar/CalendarTrait.php | 80 ++-\n app/Events/AutomatedReports/AutomatedReportGenerated.php | 3 +\n app/Http/Controllers/API/AiCallScoring/AiScorecardController.php | 7 +-\n app/Http/Controllers/API/TeamAiAutomationController.php | 8 +\n app/Http/Controllers/CustomerApi/CustomerApiController.php | 4 +-\n app/Http/Controllers/Kiosk/ActivityController.php | 58 +-\n app/Http/Controllers/Settings/PlaybookController.php | 15 +-\n app/Http/Kernel.php | 23 +\n app/Http/Middleware/McpAuditMiddleware.php | 156 ++++\n app/Http/Middleware/McpTierMiddleware.php | 54 ++\n app/Http/Requests/API/V2/ZapierUploadActivityRequest.php | 28 +-\n app/Jobs/Activity/Import/ImportTwilioVideoSpeechesJob.php | 25 +-\n app/Jobs/Activity/Import/IsActivityReadyForProcessingJob.php | 10 +-\n app/Jobs/Calendar/SetupCalendarSync.php | 21 +-\n app/Jobs/ImportRemoteTrackJob.php | 96 ++-\n app/Jobs/Mailbox/EmailTextRelay.php | 15 +-\n app/Mcp/Contracts/McpCallRepositoryInterface.php | 30 +\n app/Mcp/DTO/ListCallsFilters.php | 29 +\n app/Mcp/Errors/McpError.php | 123 ++++\n app/Mcp/Repositories/McpActivityHydrator.php | 145 ++++\n app/Mcp/Repositories/McpCallRepository.php | 84 +++\n app/Mcp/Repositories/McpElasticCallRepository.php | 171 +++++\n app/Mcp/Servers/JiminnyServer.php | 38 +\n app/Mcp/Tools/ListCallsTool.php | 205 ++++++\n app/Models/Activity.php | 10 +-\n app/Models/Activity/Transcription.php | 17 +-\n app/Models/ElasticSearch/OpportunityElasticSearchTrait.php | 5 +\n app/Models/Participant.php | 1 +\n app/Providers/AppServiceProvider.php | 22 +\n app/Repositories/Crm/ContactRepository.php | 69 +-\n app/Repositories/ParticipantSpeechRepository.php | 13 +-\n app/Services/Activity/ParticipantsService.php | 19 +-\n app/Services/Activity/Twilio/S3RecordingCredentialsService.php | 82 +++\n app/Services/ActivityService.php | 21 +-\n app/Services/Calendar/CalendarActivityService.php | 46 ++\n app/Services/Calendar/Command/ImportParticipants.php | 1 +\n app/Services/Calendar/Command/MapActivityData.php | 106 +--\n app/Services/Calendar/GoogleCalendarService.php | 12 +-\n app/Services/Crm/Close/Processor/OpportunityProcessor.php | 2 +-\n app/Services/Crm/Close/Service.php | 22 +-\n app/Services/Crm/Copper/Service.php | 12 +-\n app/Services/Crm/Hubspot/Service.php | 154 +++-\n app/Services/Crm/Hubspot/ServiceTraits/OpportunitySyncTrait.php | 88 ++-\n app/Services/Crm/IntegrationApp/ServiceTraits/SyncCrmEntitiesTrait.php | 22 +-\n app/Services/Crm/Pipedrive/Service.php | 17 +-\n app/Services/Crm/Salesforce/Service.php | 42 +-\n app/Services/Mail/Office/EmailApiClient.php | 129 +---\n app/Services/RecallAI/Commands/ScheduleBotCommand.php | 39 +-\n app/Services/RecallAI/RecallAIService.php | 22 +-\n composer.json | 3 +-\n composer.lock | 87 ++-\n config/mcp.php | 23 +\n database/migrations/2026_04_30_120000_create_mcp_audit_log_table.php | 36 +\n docs/mcp/explorer/explorer.html | 697 ++++++++++++++++++\n docs/mcp/explorer/explorer.template.html | 697 ++++++++++++++++++\n docs/mcp/explorer/generate.js | 215 ++++++\n docs/mcp/explorer/tool-explorer-meta.json | 11 +\n docs/mcp/tools-list.json | 2536 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++\n docs/mcp/tools.md | 621 ++++++++++++++++\n front-end/package.json | 4 +-\n front-end/src/components/Settings/OrgSettings/AiAutomation/CrmFilling/TemplateFieldForm.vue | 28 +-\n front-end/src/components/Settings/OrgSettings/Playbooks/AddEditPlaybook.vue | 10 +\n front-end/src/components/playback/comments/ActivityComment.less | 10 +-\n front-end/src/components/shared/PromptTester/PromptTester.vue | 12 +-\n front-end/src/components/shared/__tests__/PromptTester.spec.js | 35 +\n front-end/src/components/shared/modals/EntityPickerModal/__tests__/useEntitiesCache.spec.ts | 37 +\n front-end/src/components/shared/modals/EntityPickerModal/useEntitiesCache.ts | 9 +\n front-end/yarn.lock | 16 +-\n phpstan-baseline.neon | 50 --\n routes/api.php | 11 +\n sonar-project.properties | 91 ++-\n tests/Feature/Component/Nudge/ProcessOrganisationImmediateNudgesJobTest.php | 534 ++++++++++++++\n tests/Feature/Jobs/ImportRemoteTrackJobTest.php | 283 +++++++-\n tests/Feature/Mcp/IssueMcpTokenCommandTest.php | 53 ++\n tests/Feature/Mcp/ListCallsToolElasticFeatureTest.php | 155 ++++\n tests/Feature/Mcp/ListCallsToolFeatureTest.php | 352 ++++++++++\n tests/Feature/Mcp/McpTestHelpersTrait.php | 77 ++\n tests/Feature/Services/Team/TeamDeleteHandlers/Retention/RetentionRepositoryHandlerTest.php | 1 +\n tests/Stubs/SentryStub.php | 18 +\n tests/Unit/Component/ActivityAnalytics/Service/CalculateTalkTimeOffsetFromTranscriptionTest.php | 28 +-\n tests/Unit/Component/AiActivityType/Services/AiActivityTypeEligibilityCheckerTest.php | 103 ++-\n tests/Unit/Component/AiAutomation/Actions/PrepareUpdateDtoActionTest.php | 91 +++\n tests/Unit/Component/AiAutomation/Services/CrmFillingEligibilityCheckerTest.php | 124 ++++\n tests/Unit/Component/AiAutomation/TestCrmAiPromptServiceTest.php | 67 +-\n tests/Unit/Component/AiCallScoring/Services/AiCallScoringEligibilityCheckerTest.php | 55 ++\n tests/Unit/Component/ES/ElasticSearchWorkerManagerTest.php | 135 ----\n tests/Unit/Component/ES/Processor/Actions/LoadDocumentsActionTest.php | 220 ++++++\n tests/Unit/Component/ES/Processor/EntityQueryBuilderTest.php | 21 +-\n tests/Unit/Component/ES/Processor/Traits/SkipActivityTraitTest.php | 51 --\n tests/Unit/Component/ES/Worker/ActivityWorkerTest.php | 174 -----\n tests/Unit/Component/ES/Worker/EntityWorkerTest.php | 97 ---\n tests/Unit/Component/ES/Worker/WorkerAmountTest.php | 116 ---\n tests/Unit/Component/Encoding/Job/AnalyzeTrackChannelsJobTest.php | 52 +-\n tests/Unit/Component/Encoding/Service/GenerateSpeechFromSilenceServiceTest.php | 171 ++---\n tests/Unit/Component/FFMpeg/Services/GetSpeechIntervalsTest.php | 36 +-\n tests/Unit/Component/LanguageDetection/Services/FindSpeechTimeServiceTest.php | 20 +-\n tests/Unit/Component/MobileSettings/MobileSettingsControllerTest.php | 5 +-\n tests/Unit/Component/ParticipantSpeech/Services/ParticipantSpeechesCreatorTest.php | 75 ++\n tests/Unit/Component/ParticipantSpeech/Services/ParticipantSpeechesDeleterTest.php | 63 ++\n tests/Unit/Component/ParticipantSpeech/Services/ParticipantSpeechesProviderTest.php | 134 ++++\n tests/Unit/Component/ParticipantSpeech/Services/ParticipantSpeechesUploaderTest.php | 57 ++\n tests/Unit/Component/Transcription/Diarization/Services/GetNormalizedParticipantSpeechesServiceTest.php | 51 +-\n tests/Unit/Component/Transcription/Diarization/Source/MeetingBotSourceTest.php | 29 +-\n tests/Unit/Contracts/Services/Calendar/CalendarTraitTest.php | 58 +-\n tests/Unit/Http/Controllers/Kiosk/ActivityControllerTest.php | 159 +++++\n tests/Unit/Jobs/Activity/Import/ImportTwilioVideoSpeechesJobTest.php | 22 +-\n tests/Unit/Jobs/Activity/Import/IsActivityReadyForProcessingJobTest.php | 26 +-\n tests/Unit/Jobs/Calendar/SetupCalendarSyncTest.php | 25 -\n tests/Unit/Services/Activity/ParticipantsServiceTest.php | 12 +-\n tests/Unit/Services/Activity/Twilio/S3RecordingCredentialsServiceTest.php | 180 +++++\n tests/Unit/Services/ActivityServiceTest.php | 132 ++++\n tests/Unit/Services/Calendar/CalendarActivityServiceTest.php | 150 +++-\n tests/Unit/Services/Calendar/Command/ImportParticipantsTest.php | 6 +-\n tests/Unit/Services/Calendar/Command/MapActivityDataTest.php | 78 +-\n tests/Unit/Services/Calendar/GoogleCalendarServiceTest.php | 116 +++\n tests/Unit/Services/Crm/Close/ServiceTest.php | 165 +++++\n tests/Unit/Services/Crm/Hubspot/ServiceTest.php | 272 ++++++-\n tests/Unit/Services/Crm/Hubspot/ServiceTraits/OpportunitySyncTest.php | 25 +-\n tests/Unit/Services/Crm/Hubspot/ServiceTraits/OpportunitySyncTraitMatchActivitiesTest.php | 3 +-\n tests/Unit/Services/Crm/IntegrationApp/ServiceTraits/SyncCrmEntitiesTraitOpportunitiesTest.php | 40 ++\n tests/Unit/Services/Crm/Pipedrive/ImportOpportunityMatchActivitiesTest.php | 2 +\n tests/Unit/Services/Crm/Salesforce/ServiceTest.php | 139 ++++\n tests/Unit/Services/Mail/Office/EmailApiClientTest.php | 195 ++---\n tests/Unit/Services/RecallAI/RecallAIServiceTest.php | 24 +-\n 175 files changed, 12562 insertions(+), 2162 deletions(-)\n create mode 120000 CLAUDE.md\n create mode 100644 app/Component/AiAutomation/Services/CrmFillingEligibilityChecker.php\n delete mode 100644 app/Component/ES/ElasticSearchWorkerManager.php\n delete mode 100644 app/Component/ES/Processor/Traits/SkipActivityTrait.php\n delete mode 100644 app/Component/ES/Worker/ActivityWorker.php\n delete mode 100644 app/Component/ES/Worker/EntityWorker.php\n delete mode 100644 app/Component/ES/Worker/WorkerAmount.php\n delete mode 100644 app/Component/ES/Worker/WorkerInterface.php\n create mode 100644 app/Component/ProphetAi/Exceptions/InsufficientTranscriptException.php\n create mode 100644 app/Component/Transcription/DTO/Http/Transcription/AssemblyAI/AssemblyAI/NoAssemblyIdException.php\n create mode 100644 app/Component/Transcription/DTO/Http/Transcription/TranscriptionIsNotCorrectFormatException.php\n create mode 100644 app/Console/Commands/Activities/SetupIntegration/TwilioSetS3RecordingCredentialsCommand.php\n create mode 100644 app/Console/Commands/Crm/BackfillOpportunityUserFromAccountCommand.php\n delete mode 100644 app/Console/Commands/Elasticsearch/AsyncUpdateEsActivities.php\n create mode 100644 app/Console/Commands/IssueMcpTokenCommand.php\n create mode 100644 app/Http/Middleware/McpAuditMiddleware.php\n create mode 100644 app/Http/Middleware/McpTierMiddleware.php\n create mode 100644 app/Mcp/Contracts/McpCallRepositoryInterface.php\n create mode 100644 app/Mcp/DTO/ListCallsFilters.php\n create mode 100644 app/Mcp/Errors/McpError.php\n create mode 100644 app/Mcp/Repositories/McpActivityHydrator.php\n create mode 100644 app/Mcp/Repositories/McpCallRepository.php\n create mode 100644 app/Mcp/Repositories/McpElasticCallRepository.php\n create mode 100644 app/Mcp/Servers/JiminnyServer.php\n create mode 100644 app/Mcp/Tools/ListCallsTool.php\n create mode 100644 app/Services/Activity/Twilio/S3RecordingCredentialsService.php\n create mode 100644 config/mcp.php\n create mode 100644 database/migrations/2026_04_30_120000_create_mcp_audit_log_table.php\n create mode 100644 docs/mcp/explorer/explorer.html\n create mode 100644 docs/mcp/explorer/explorer.template.html\n create mode 100644 docs/mcp/explorer/generate.js\n create mode 100644 docs/mcp/explorer/tool-explorer-meta.json\n create mode 100644 docs/mcp/tools-list.json\n create mode 100644 docs/mcp/tools.md\n create mode 100644 front-end/src/components/shared/modals/EntityPickerModal/__tests__/useEntitiesCache.spec.ts\n create mode 100644 tests/Feature/Component/Nudge/ProcessOrganisationImmediateNudgesJobTest.php\n create mode 100644 tests/Feature/Mcp/IssueMcpTokenCommandTest.php\n create mode 100644 tests/Feature/Mcp/ListCallsToolElasticFeatureTest.php\n create mode 100644 tests/Feature/Mcp/ListCallsToolFeatureTest.php\n create mode 100644 tests/Feature/Mcp/McpTestHelpersTrait.php\n create mode 100644 tests/Stubs/SentryStub.php\n create mode 100644 tests/Unit/Component/AiAutomation/Services/CrmFillingEligibilityCheckerTest.php\n delete mode 100644 tests/Unit/Component/ES/ElasticSearchWorkerManagerTest.php\n create mode 100644 tests/Unit/Component/ES/Processor/Actions/LoadDocumentsActionTest.php\n delete mode 100644 tests/Unit/Component/ES/Processor/Traits/SkipActivityTraitTest.php\n delete mode 100644 tests/Unit/Component/ES/Worker/ActivityWorkerTest.php\n delete mode 100644 tests/Unit/Component/ES/Worker/EntityWorkerTest.php\n delete mode 100644 tests/Unit/Component/ES/Worker/WorkerAmountTest.php\n create mode 100644 tests/Unit/Component/ParticipantSpeech/Services/ParticipantSpeechesCreatorTest.php\n create mode 100644 tests/Unit/Http/Controllers/Kiosk/ActivityControllerTest.php\n create mode 100644 tests/Unit/Services/Activity/Twilio/S3RecordingCredentialsServiceTest.php\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20725-handle-HS-search-rate-limit) $ git status\nOn branch master\nYour branch is behind 'origin/master' by 114 commits, and can be fast-forwarded.\n (use \"git pull\" to update your local branch)\n\nChanges not staged for commit:\n (use \"git add <file>...\" to update what will be committed)\n (use \"git restore <file>...\" to discard changes in working directory)\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tmodified: .env.local\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tmodified: app/Component/SCIM/Constants.php\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tmodified: app/Component/SCIM/ScimProvisioning.php\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tmodified: app/Component/Twilio/Conference/ConferenceManager/SoftPhoneManager.php\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tmodified: app/Console/Commands/JiminnyDebugCommand.php\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tmodified: app/DTO/SCIM/AAD/Request/CoreUserRequest.php\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tmodified: app/DTO/SCIM/AAD/Response/CoreUser.php\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tmodified: app/Services/Telephony/TextMessagingService.php\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tmodified: config/logging.php\n\nUntracked files:\n (use \"git add <file>...\" to include in what will be committed)\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\t.env.nikilocal\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\t.env.other\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tWEBHOOK_FILTERING_IMPLEMENTATION.md\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tapp/Component/SCIM/Mutators/Attributes/User/RoleAttr.php\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tapp/Console/Commands/Crm/Hubspot/SimulateWebhooksCommand.php\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tapp/Console/Commands/Reports/CreateMockAskJiminnyReportResultCommand.php\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tapp/Rules/ListenerRoleCannotHaveAdminOrManagerPermissionRule.php\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tids.txt\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tpublic/favicon.ico\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\traw_sql_query.sql\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\ttests/Unit/Component/SCIM/Mutators/Attributes/User/RoleAttrTest.php\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\ttests/Unit/Policies/CanAccessAiReportsTest.php\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\ttests/Unit/Rules/ListenerRoleCannotHaveAdminOrManagerPermissionRuleTest.php\n\nno changes added to commit (use \"git add\" and/or \"git commit -a\")\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (master) $ git pull\nremote: Enumerating objects: 306, done.\nremote: Counting objects: 100% (299/299), done.\nremote: Compressing objects: 100% (183/183), done.\nremote: Total 306 (delta 213), reused 171 (delta 116), pack-reused 7 (from 1)\nReceiving objects: 100% (306/306), 80.12 KiB | 1000.00 KiB/s, done.\nResolving deltas: 100% (213/213), completed with 53 local objects.\nFrom github.com:jiminny/app\n 90bca4e4b2..5604af40cf master -> origin/master\n 4e7078fd8b..0b8343d179 JY-18091-upgrade-to-php-8-5 -> origin/JY-18091-upgrade-to-php-8-5\n 098eeaa087..d5a447e492 JY-20613-allow-owner-role-on-team-setup -> origin/JY-20613-allow-owner-role-on-team-setup\n c3a76ace91..af65249d0f JY-20749-user-can-view-recorded-meetings -> origin/JY-20749-user-can-view-recorded-meetings\n d94a285ae7..7ce96cb5fe JY-20808-low-priority-indexing-queue -> origin/JY-20808-low-priority-indexing-queue\n * [new branch] JY-20842-remove-partial-updater -> origin/JY-20842-remove-partial-updater\n * [new branch] JY-20920-fix-participant-flip -> origin/JY-20920-fix-participant-flip\n * [new branch] secfix/npm-20260519 -> origin/secfix/npm-20260519\nUpdating cb4ebf0c36..5604af40cf\nFast-forward\n app/Component/ES/ChunkSize.php | 54 +++++++++++++++++++\n app/Component/ES/Processor/DTOs/SelectionList.php | 4 +-\n app/Component/ES/Processor/TargetEntitiesSelector.php | 19 ++++---\n app/Component/MeetingBot/Service/ParticipantMatcher.php | 46 ++++++++++++----\n app/Exceptions/RateLimitException.php | 19 ++++++-\n app/Http/Middleware/McpTierMiddleware.php | 27 ++--------\n app/Jobs/Crm/MatchActivityCrmData.php | 47 ++++++++++++----\n app/Jobs/Middleware/HandleHubspotRateLimit.php | 42 +++++++++++++++\n app/Mcp/Servers/JiminnyServer.php | 2 +\n app/Mcp/Tools/GetMeTool.php | 157 +++++++++++++++++++++++++++++++++++++++++++++++++++++\n app/Models/Feature/FeatureEnum.php | 1 +\n app/Services/Activity/HubSpot/ProviderResolver.php | 4 +-\n app/Services/Activity/HubSpot/ProviderResolverInterface.php | 2 +-\n app/Services/Activity/HubSpot/Providers/Provider.php | 2 +-\n app/Services/Activity/HubSpot/Providers/ProviderKixie.php | 2 +-\n app/Services/Activity/HubSpot/Providers/ProviderOrum.php | 2 +-\n app/Services/Activity/HubSpot/Providers/ProviderTwilio.php | 2 +-\n app/Services/Activity/HubSpot/Providers/ProviderTwilioFlex.php | 5 +-\n app/Services/Activity/HubSpot/Service.php | 97 +++++++++++++++++++++++++++------\n app/Services/Crm/Hubspot/Client.php | 132 +++++++++++++++++++++++++++++++++++++++++++++\n app/Services/Crm/Hubspot/HubspotClientInterface.php | 15 ++++++\n app/Services/Crm/Hubspot/Pagination/HubspotPaginationService.php | 21 ++++----\n app/Services/Crm/Hubspot/Pagination/PaginationState.php | 2 +-\n database/migrations/2026_05_13_124153_create_mcp_feature_flag.php | 25 +++++++++\n tests/Feature/Mcp/GetMeToolFeatureTest.php | 140 +++++++++++++++++++++++++++++++++++++++++++++++\n tests/Feature/Mcp/ListCallsToolFeatureTest.php | 2 +-\n tests/Feature/Mcp/McpTestHelpersTrait.php | 19 ++++++-\n tests/Unit/Component/ES/ChunkSizeTest.php | 50 +++++++++++++++++\n tests/Unit/Component/ES/Processor/DTOs/SelectionListTest.php | 27 +++++++---\n tests/Unit/Component/ES/Processor/TargetEntitiesSelectorTest.php | 39 ++++++++------\n tests/Unit/Component/MeetingBot/Service/ParticipantMatcherTest.php | 68 ++++++++++++++++++++++-\n tests/Unit/Exceptions/RateLimitExceptionTest.php | 56 +++++++++++++++++++\n tests/Unit/Jobs/Crm/MatchActivityCrmDataTest.php | 8 +--\n tests/Unit/Jobs/Middleware/HandleHubspotRateLimitTest.php | 151 +++++++++++++++++++++++++++++++++++++++++++++++++++\n tests/Unit/Services/Activity/HubSpot/ServiceTest.php | 109 +++++++++++++++++++++++++++++++++++++\n tests/Unit/Services/Crm/Hubspot/ClientTest.php | 250 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++\n tests/Unit/Services/Crm/Hubspot/Pagination/HubspotPaginationServiceTest.php | 283 +++++++++++++++++++++---------------------------------------------------------------------------\n 37 files changed, 1587 insertions(+), 344 deletions(-)\n create mode 100644 app/Component/ES/ChunkSize.php\n create mode 100644 app/Jobs/Middleware/HandleHubspotRateLimit.php\n create mode 100644 app/Mcp/Tools/GetMeTool.php\n create mode 100644 database/migrations/2026_05_13_124153_create_mcp_feature_flag.php\n create mode 100644 tests/Feature/Mcp/GetMeToolFeatureTest.php\n create mode 100644 tests/Unit/Component/ES/ChunkSizeTest.php\n create mode 100644 tests/Unit/Exceptions/RateLimitExceptionTest.php\n create mode 100644 tests/Unit/Jobs/Middleware/HandleHubspotRateLimitTest.php\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (master) $ git pull\nAlready up to date.\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (master) $ co -b JY-20676-delete-report-related-objects\nSwitched to a new branch 'JY-20676-delete-report-related-objects'\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20676-delete-report-related-objects) $ csfix\ndocker exec -it docker_lamp_1 ./vendor/bin/php-cs-fixer fix --config=.php-cs-fixer.dist.php -v --using-cache=no --diff \nPHP CS Fixer 3.87.1 Alexander by Fabien Potencier, Dariusz Ruminski and contributors.\nPHP runtime: 8.3.30\nRunning analysis on 7 cores with 10 files per process.\nParallel runner is an experimental feature and may be unstable, use it at your own risk. Feedback highly appreciated!\nLoaded config default from \".php-cs-fixer.dist.php\".\n 5690/5690 [▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓] 100%\n\n 1) app/Console/Commands/JiminnyDebugCommand.php (statement_indentation, blank_line_before_statement)\n ---------- begin diff ----------\n--- /home/jiminny/app/Console/Commands/JiminnyDebugCommand.php\n+++ /home/jiminny/app/Console/Commands/JiminnyDebugCommand.php\n@@ -23,6 +23,7 @@\n \n if ($action === 'redis-set') {\n $this->testRedisSet();\n+\n return;\n }\n \n@@ -45,7 +46,7 @@\n $ttl = 60;\n \n try {\n-// $result = Redis::set($testKey, $testValue, 'EX', $ttl, 'NX');\n+ // $result = Redis::set($testKey, $testValue, 'EX', $ttl, 'NX');\n $result = Redis::set($testKey, $testValue, ['nx', 'ex' => $ttl]);\n \n if ($result) {\n\n ----------- end diff -----------\n\n\nFixed 1 of 5690 files in 50.673 seconds, 67.00 MB memory used\n\nWhat's next:\n Try Docker Debug for seamless, persistent debugging tools in any container or image → docker debug docker_lamp_1\n Learn more at https://docs.docker.com/go/debug-cli/\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20676-delete-report-related-objects) $ ;xd\ndocker exec -it docker_lamp_1 bash -c \"mv /usr/local/etc/php/conf.d/xdebug.ini ~/xdebug.ini\"\n\nWhat's next:\n Try Docker Debug for seamless, persistent debugging tools in any container or image → docker debug docker_lamp_1\n Learn more at https://docs.docker.com/go/debug-cli/\ndocker exec -it docker_lamp_1 supervisorctl restart all\njiminny-worker-processing-2:jiminny-worker-processing-2_00: stopped\njiminny-worker-processing-3:jiminny-worker-processing-3_00: stopped\njiminny-worker-processing-4:jiminny-worker-processing-4_00: stopped\njiminny-worker-processing-5:jiminny-worker-processing-5_00: stopped\njiminny-worker-processing-delayed:jiminny-worker-processing-delayed_00: stopped\nworker-analytics:worker-analytics_00: stopped\nworker-crm-update:worker-crm-update_00: stopped\nworker-download:worker-download_00: stopped\nworker-nudges:worker-nudges_00: stopped\nworker-calendar:worker-calendar_00: stopped\nworker-audio:worker-audio_00: stopped\njiminny-worker-processing-1:jiminny-worker-processing-1_00: stopped\nworker:worker_00: stopped\nworker-conferences:worker-conferences_00: stopped\nworker-crm-sync:worker-crm-sync_00: stopped\nworker-emails:worker-emails_00: stopped\nworker-es-update:worker-es-update_00: stopped\nartisan-schedule:artisan-schedule_00: stopped\nartisan-schedule:artisan-schedule_00: started\njiminny-worker-processing-1:jiminny-worker-processing-1_00: started\njiminny-worker-processing-2:jiminny-worker-processing-2_00: started\njiminny-worker-processing-3:jiminny-worker-processing-3_00: started\njiminny-worker-processing-4:jiminny-worker-processing-4_00: started\njiminny-worker-processing-5:jiminny-worker-processing-5_00: started\njiminny-worker-processing-delayed:jiminny-worker-processing-delayed_00: started\nworker:worker_00: started\nworker-analytics:worker-analytics_00: started\nworker-audio:worker-audio_00: started\nworker-calendar:worker-calendar_00: started\nworker-conferences:worker-conferences_00: started\nworker-crm-sync:worker-crm-sync_00: started\nworker-crm-update:worker-crm-update_00: started\nworker-download:worker-download_00: started\nworker-emails:worker-emails_00: started\nworker-es-update:worker-es-update_00: started\nworker-nudges:worker-nudges_00: started\n\nWhat's next:\n Try Docker Debug for seamless, persistent debugging tools in any container or image → docker debug docker_lamp_1\n Learn more at https://docs.docker.com/go/debug-cli/\ndocker exec -it docker_lamp_1 php -v\nPHP 8.3.30 (cli) (built: Mar 16 2026 22:32:32) (NTS)\nCopyright (c) The PHP Group\nZend Engine v4.3.30, Copyright (c) Zend Technologies\n with Zend OPcache v8.3.30, Copyright (c), by Zend Technologies\n\nWhat's next:\n Try Docker Debug for seamless, persistent debugging tools in any container or image → docker debug docker_lamp_1\n Learn more at https://docs.docker.com/go/debug-cli/\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20676-delete-report-related-objects) $ git status\nOn branch JY-20676-delete-report-related-objects\nChanges not staged for commit:\n (use \"git add <file>...\" to update what will be committed)\n (use \"git restore <file>...\" to discard changes in working directory)\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tmodified: .env.local\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tmodified: app/Console/Commands/JiminnyDebugCommand.php\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tmodified: config/logging.php\n\nUntracked files:\n (use \"git add <file>...\" to include in what will be committed)\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\t.env.nikilocal\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\t.env.other\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tWEBHOOK_FILTERING_IMPLEMENTATION.md\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tapp/Console/Commands/Crm/Hubspot/SimulateWebhooksCommand.php\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tapp/Console/Commands/Reports/CreateMockAskJiminnyReportResultCommand.php\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tids.txt\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tpublic/favicon.ico\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\traw_sql_query.sql\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\ttests/Unit/Policies/CanAccessAiReportsTest.php\n\nno changes added to commit (use \"git add\" and/or \"git commit -a\")\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20676-delete-report-related-objects) $ git push -u origin JY-20676-delete-report-related-objects\nEnumerating objects: 45, done.\nCounting objects: 100% (45/45), done.\nDelta compression using up to 8 threads\nCompressing objects: 100% (24/24), done.\nWriting objects: 100% (24/24), 3.62 KiB | 3.62 MiB/s, done.\nTotal 24 (delta 19), reused 0 (delta 0), pack-reused 0\nremote: Resolving deltas: 100% (19/19), completed with 19 local objects.\nremote: \nremote: Create a pull request for 'JY-20676-delete-report-related-objects' on GitHub by visiting:\nremote: https://github.com/jiminny/app/pull/new/JY-20676-delete-report-related-objects\nremote: \nTo github.com:jiminny/app.git\n * [new branch] JY-20676-delete-report-related-objects -> JY-20676-delete-report-related-objects\nbranch 'JY-20676-delete-report-related-objects' set up to track 'origin/JY-20676-delete-report-related-objects'.\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20676-delete-report-related-objects) $ csfix\ndocker exec -it docker_lamp_1 ./vendor/bin/php-cs-fixer fix --config=.php-cs-fixer.dist.php -v --using-cache=no --diff \nPHP CS Fixer 3.87.1 Alexander by Fabien Potencier, Dariusz Ruminski and contributors.\nPHP runtime: 8.3.30\nRunning analysis on 7 cores with 10 files per process.\nParallel runner is an experimental feature and may be unstable, use it at your own risk. Feedback highly appreciated!\nLoaded config default from \".php-cs-fixer.dist.php\".\n 5690/5690 [▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓] 100%\n\n 1) app/Http/Controllers/API/V2/AskJiminnyReportsController.php (blank_line_before_statement)\n ---------- begin diff ----------\n--- /home/jiminny/app/Http/Controllers/API/V2/AskJiminnyReportsController.php\n+++ /home/jiminny/app/Http/Controllers/API/V2/AskJiminnyReportsController.php\n@@ -140,6 +140,7 @@\n if ($enabled && $report->isAskJiminnyReport() && ! $report->canExecute()) {\n $error = 'This report is missing a saved search or prompt. ' .\n 'Edit the report to complete the setup before enabling it.';\n+\n return new JsonResponse(\n ['error' => $error],\n Response::HTTP_UNPROCESSABLE_ENTITY\n\n ----------- end diff -----------\n\n\nFixed 1 of 5690 files in 71.757 seconds, 60.00 MB memory used\n\nWhat's next:\n Try Docker Debug for seamless, persistent debugging tools in any container or image → docker debug docker_lamp_1\n Learn more at https://docs.docker.com/go/debug-cli/\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20676-delete-report-related-objects) $ git pull\nremote: Enumerating objects: 158, done.\nremote: Counting objects: 100% (103/103), done.\nremote: Compressing objects: 100% (37/37), done.\nremote: Total 158 (delta 80), reused 74 (delta 66), pack-reused 55 (from 3)\nReceiving objects: 100% (158/158), 80.59 KiB | 982.00 KiB/s, done.\nResolving deltas: 100% (85/85), completed with 45 local objects.\nFrom github.com:jiminny/app\n 02a33811ee..c6ce5e2440 JY-20676-delete-report-related-objects -> origin/JY-20676-delete-report-related-objects\n 7ce96cb5fe..6c59f04358 JY-20808-low-priority-indexing-queue -> origin/JY-20808-low-priority-indexing-queue\n 3906a9238a..2b5e6ea62b JY-20835-mcp-enable-users-to-get-a-list-of-deals-and-their-details -> origin/JY-20835-mcp-enable-users-to-get-a-list-of-deals-and-their-details\n 5604af40cf..ea3519f0e2 master -> origin/master\n * [new branch] switch-eu-assembly -> origin/switch-eu-assembly\nUpdating 02a33811ee..c6ce5e2440\nFast-forward\n app/Component/ES/ElasticSearchDocumentPartialUpdater.php | 48 ---\n app/Component/ParticipantSpeech/Services/ParticipantAttributionService.php | 4 +-\n app/Component/Settings/AutoScoring/Services/UpdateAutoScoreService.php | 20 +-\n app/Component/Transcription/Service/StorageService.php | 8 +-\n front-end/package.json | 2 +-\n front-end/src/components/DealInsights/Modals/AskAnythingModal.vue | 23 ++\n front-end/src/components/shared/AskAnything/AskAnythingPromptFormItem.vue | 2 +\n front-end/src/components/shared/AskAnything/AskAnythingSettingsDrawer.vue | 23 +-\n front-end/src/components/shared/AskAnything/__mocks__/AskAnythingSettingsDrawer.mocks.js | 1 +\n front-end/src/components/shared/AskAnything/__tests__/AskAnythingSettingsDrawer.spec.js | 135 ++++---\n front-end/src/components/shared/AskAnything/__tests__/__snapshots__/AskAnythingSettingsDrawer.spec.js.html | 1235 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++\n front-end/src/components/shared/AskAnything/__tests__/__snapshots__/AskAnythingSettingsDrawer.spec.js.snap | 1382 ----------------------------------------------------------------\n front-end/src/components/shared/AskAnything/prompts.js | 1 +\n front-end/src/components/shared/AskAnything/useAskAnything.js | 1 +\n front-end/yarn.lock | 8 +-\n tests/Unit/Component/ES/ElasticSearchDocumentPartialUpdaterTest.php | 42 --\n tests/Unit/Component/Settings/AutoScoring/Services/UpdateAutoScoreServiceTest.php | 86 ++--\n tests/Unit/Component/Transcription/Service/StorageServiceTest.php | 29 +-\n 18 files changed, 1448 insertions(+), 1602 deletions(-)\n delete mode 100644 app/Component/ES/ElasticSearchDocumentPartialUpdater.php\n create mode 100644 front-end/src/components/shared/AskAnything/__tests__/__snapshots__/AskAnythingSettingsDrawer.spec.js.html\n delete mode 100644 front-end/src/components/shared/AskAnything/__tests__/__snapshots__/AskAnythingSettingsDrawer.spec.js.snap\n delete mode 100644 tests/Unit/Component/ES/ElasticSearchDocumentPartialUpdaterTest.php\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20676-delete-report-related-objects) $","is_focused":true},{"role":"AXRadioButton","text":"DOCKER","depth":2,"bounds":{"left":0.27027926,"top":1.0,"width":0.094913565,"height":-0.042298436},"on_screen":true,"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.27227393,"top":1.0,"width":0.005319149,"height":-0.04549086},"on_screen":true,"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"DEV (docker)","depth":2,"bounds":{"left":0.36519283,"top":1.0,"width":0.094913565,"height":-0.042298436},"on_screen":true,"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.3671875,"top":1.0,"width":0.005319149,"height":-0.04549086},"on_screen":true,"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"APP (-zsh)","depth":2,"bounds":{"left":0.46010637,"top":1.0,"width":0.09474734,"height":-0.042298436},"on_screen":true,"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.46210107,"top":1.0,"width":0.005319149,"height":-0.04549086},"on_screen":true,"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false}]...
|
2802650493718167367
|
-1358120912881272742
|
click
|
accessibility
|
NULL
|
Last login: Mon May 18 09:17:28 on ttys007
Poetry Last login: Mon May 18 09:17:28 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 (pipedrive-sdk-poc) $ co master
error: Your local changes to the following files would be overwritten by checkout:
PIPEDRIVE_V2_MIGRATION_TICKETS.md
Please commit your changes or stash them before you switch branches.
Aborting
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (pipedrive-sdk-poc) $ git pull
remote: Enumerating objects: 1047, done.
remote: Counting objects: 100% (832/832), done.
remote: Compressing objects: 100% (298/298), done.
remote: Total 1047 (delta 634), reused 596 (delta 534), pack-reused 215 (from 3)
Receiving objects: 100% (1047/1047), 353.16 KiB | 1.56 MiB/s, done.
Resolving deltas: 100% (687/687), completed with 107 local objects.
From github.com:jiminny/app
907c54896c..34656c53ed pipedrive-sdk-poc -> origin/pipedrive-sdk-poc
03325ec50f..4e7078fd8b JY-18091-upgrade-to-php-8-5 -> origin/JY-18091-upgrade-to-php-8-5
e7d231e163..bc6a3fce6b JY-20725-handle-HS-search-rate-limit -> origin/JY-20725-handle-HS-search-rate-limit
* [new branch] JY-20749-user-can-view-recorded-meetings -> origin/JY-20749-user-can-view-recorded-meetings
98ca281a04..e0351be069 JY-20808-low-priority-indexing-queue -> origin/JY-20808-low-priority-indexing-queue
569abb5149..3906a9238a JY-20835-mcp-enable-users-to-get-a-list-of-deals-and-their-details -> origin/JY-20835-mcp-enable-users-to-get-a-list-of-deals-and-their-details
ad6c2a86e8..50eb6afba9 JY-20846-mcp-enable-the-ai-to-know-details-about-the-user -> origin/JY-20846-mcp-enable-the-ai-to-know-details-about-the-user
* [new branch] JY-20893-chunk-control-per-update-target -> origin/JY-20893-chunk-control-per-update-target
31c62924a5..cb4ebf0c36 master -> origin/master
Updating 907c54896c..34656c53ed
Fast-forward
PIPEDRIVE_V2_MIGRATION_TICKETS.md | 52 ++++++++++++++++++++++++++++++++++++++++++++++++++++
1 file changed, 52 insertions(+)
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (pipedrive-sdk-poc) $ co master
M .env.local
M config/logging.php
Switched to branch 'master'
Your branch is behind 'origin/master' by 31 commits, and can be fast-forwarded.
(use "git pull" to update your local branch)
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (master) $ git pull
Updating 31c62924a5..cb4ebf0c36
Fast-forward
app/Component/ES/Processor/Traits/SelectEntityListTrait.php | 20 ------
app/Services/Calendar/CalendarActivityService.php | 46 +++++++++++++
app/Services/Calendar/Command/MapActivityData.php | 106 +++-------------------------
docs/mcp/explorer/explorer.html | 104 +++++++++++++++++++++++++---
docs/mcp/explorer/explorer.template.html | 102 ++++++++++++++++++++++++---
docs/mcp/tools-list.json | 373 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++-------
docs/mcp/tools.md | 117 +++++++++++++++++++++++--------
tests/Unit/Component/ES/AsyncUpdateElasticSearchTest.php | 16 +----
tests/Unit/Component/ES/Listeners/UpdateMultipleTargetsListenerTest.php | 10 ---
tests/Unit/Component/ES/Listeners/UpdateSingleTargetListenerTest.php | 6 --
tests/Unit/Component/ES/Processor/TargetEntitiesSelectorTest.php | 9 ---
tests/Unit/Component/ES/Processor/Traits/SelectEntityListTraitTest.php | 15 ++--
tests/Unit/Component/ES/UpdateProcessManagerTest.php | 2 -
tests/Unit/Services/Calendar/CalendarActivityServiceTest.php | 150 ++++++++++++++++++++++++++++++++++++++--
tests/Unit/Services/Calendar/Command/MapActivityDataTest.php | 78 ++-------------------
15 files changed, 832 insertions(+), 322 deletions(-)
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (master) $ co -b JY-20613-allow-owner-role-on-team-setup
Switched to a new branch 'JY-20613-allow-owner-role-on-team-setup'
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20613-allow-owner-role-on-team-setup) $ csfix
docker exec -it docker_lamp_1 ./vendor/bin/php-cs-fixer fix --config=.php-cs-fixer.dist.php -v --using-cache=no --diff
PHP CS Fixer 3.87.1 Alexander by Fabien Potencier, Dariusz Ruminski and contributors.
PHP runtime: 8.3.30
Running 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!
Loaded config default from ".php-cs-fixer.dist.php".
5682/5682 [▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓] 100%
Fixed 0 of 5682 files in 56.978 seconds, 67.00 MB memory used
What's next:
Try Docker Debug for seamless, persistent debugging tools in any container or image → docker debug docker_lamp_1
Learn more at [URL_WITH_CREDENTIALS] ~/jiminny/app (JY-20613-allow-owner-role-on-team-setup) $ csfix
docker exec -it docker_lamp_1 ./vendor/bin/php-cs-fixer fix --config=.php-cs-fixer.dist.php -v --using-cache=no --diff
PHP CS Fixer 3.87.1 Alexander by Fabien Potencier, Dariusz Ruminski and contributors.
PHP runtime: 8.3.30
Running 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!
Loaded config default from ".php-cs-fixer.dist.php".
5682/5682 [▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓] 100%
Fixed 0 of 5682 files in 49.910 seconds, 60.00 MB memory used
What's next:
Try Docker Debug for seamless, persistent debugging tools in any container or image → docker debug docker_lamp_1
Learn more at [URL_WITH_CREDENTIALS] ~/jiminny/app (JY-20613-allow-owner-role-on-team-setup) $ git pull
remote: Enumerating objects: 248, done.
remote: Counting objects: 100% (128/128), done.
remote: Compressing objects: 100% (23/23), done.
remote: Total 59 (delta 43), reused 44 (delta 33), pack-reused 0 (from 0)
Unpacking objects: 100% (59/59), 10.48 KiB | 228.00 KiB/s, done.
From github.com:jiminny/app
b7df560451..190239dfd4 JY-20613-allow-owner-role-on-team-setup -> origin/JY-20613-allow-owner-role-on-team-setup
e0351be069..d94a285ae7 JY-20808-low-priority-indexing-queue -> origin/JY-20808-low-priority-indexing-queue
* [new branch] JY-20920-fix-participant-matcher -> origin/JY-20920-fix-participant-matcher
cb4ebf0c36..90bca4e4b2 master -> origin/master
Merge made by the 'ort' strategy.
app/Component/ES/ChunkSize.php | 54 +++++++++++++++++++++++++++
app/Component/ES/Processor/DTOs/SelectionList.php | 4 +-
app/Component/ES/Processor/TargetEntitiesSelector.php | 19 ++++++----
app/Http/Middleware/McpTierMiddleware.php | 27 +++-----------
app/Mcp/Servers/JiminnyServer.php | 2 +
app/Mcp/Tools/GetMeTool.php | 157 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
app/Models/Feature/FeatureEnum.php | 1 +
database/migrations/2026_05_13_124153_create_mcp_feature_flag.php | 25 +++++++++++++
front-end/src/components/Settings/Kiosk/modals/EditTeamModal/EditTeamModal.vue | 52 ++++++++++++++++++--------
front-end/src/components/Settings/Kiosk/modals/EditTeamModal/__tests__/EditTeamModal.spec.js | 14 +++++++
tests/Feature/Mcp/GetMeToolFeatureTest.php | 140 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
tests/Feature/Mcp/ListCallsToolFeatureTest.php | 2 +-
tests/Feature/Mcp/McpTestHelpersTrait.php | 19 +++++++++-
tests/Unit/Component/ES/ChunkSizeTest.php | 50 +++++++++++++++++++++++++
tests/Unit/Component/ES/Processor/DTOs/SelectionListTest.php | 27 ++++++++++----
tests/Unit/Component/ES/Processor/TargetEntitiesSelectorTest.php | 39 +++++++++++---------
16 files changed, 557 insertions(+), 75 deletions(-)
create mode 100644 app/Component/ES/ChunkSize.php
create mode 100644 app/Mcp/Tools/GetMeTool.php
create mode 100644 database/migrations/2026_05_13_124153_create_mcp_feature_flag.php
create mode 100644 tests/Feature/Mcp/GetMeToolFeatureTest.php
create mode 100644 tests/Unit/Component/ES/ChunkSizeTest.php
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20613-allow-owner-role-on-team-setup) $ git push
Enumerating objects: 40, done.
Counting objects: 100% (34/34), done.
Delta compression using up to 8 threads
Compressing objects: 100% (18/18), done.
Writing objects: 100% (18/18), 1.58 KiB | 1.58 MiB/s, done.
Total 18 (delta 15), reused 0 (delta 0), pack-reused 0
remote: Resolving deltas: 100% (15/15), completed with 13 local objects.
To github.com:jiminny/app.git
190239dfd4..ec1b261264 JY-20613-allow-owner-role-on-team-setup -> JY-20613-allow-owner-role-on-team-setup
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20613-allow-owner-role-on-team-setup) $ gbr
* JY-20613-allow-owner-role-on-team-setup
pipedrive-sdk-poc
master
JY-20903-update_activity-stage-on-opportunity-change
JY-20904-fix-update-es-on-activity-command
JY-20891-improve-sms-text-relays
JY-20725-handle-HS-search-rate-limit
JY-20818-move-AJ-reports-to-separated-datadog-metric
JY-20773-fix-automated-reports-user-pilot-tracking
JY-20157-AJ-report-not-send-notification
JY-20508-notify-before-AJ-report-expiration
JY-20372-ai-reports-promotion-pages
JY-20352-sync-opportunities-without-a-local-owner-user-id-is-null
JY-20738-debug-AJ-tracking-UP
a
JY-18909-automated-reports-ask-jiminny
JY-20692-fix-integration-app-[API_KEY]
JY-20553-debug-crm-sync-delays
JY-20698-fix-SF-activity-types-on-new-playbook
JY-20543-AJ-report-tracking
JY-20384-handle-auto-sync-with-no-access-to-event-type
JY-20458-ask-jiminny-user-definitions
JY-19666-fix-import-contacts-account-association
JY-19666-HS-import-contacts-and-accounts-batch-job
JY-20458-Ask-Jiminny-Reports
JY-20200-batch-update-CRM-objects-Salesforce
JY-19666-HS-webhooks-add-contact-and-company
JY-20348-trigger-setup-DI-layout-on-team-creation
JY-20326-refactor-info-message-in-command
JY-20317-fix-auto-log-delay-issue-on-all-channels-disabled
JY-20312-remove-on-update-change-last-synced-at-crm-configurations
JY-20306-SF-skip-auto-sync-for-task-based-playbook
JY-20192-remove-deleted-team-from-saved-search-filters
JY-20197-import-opportunity-batch-job
JY-20293-enable-status-field-for-pipedrive-deals
JY-20191-remove-commands-interactive-prompts
JY-20118-change-default-sync-strategy
JY-20183-add-cache-on-auto-log-delay
JY-20197-add-import-opportunity-batch-job
20118-hs-opportunity-make-webhook-strategy-default
JY-20118-make-default-hs-opportunity-sync-strategy-webhook-based
JY-20196-handle-opportunity-without-note
JY-20118-improve-opportunity-import
JY-20189-handle-activity-search-on-deleted-groups
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20613-allow-owner-role-on-team-setup) $ co JY-20725-handle-HS-search-rate-limit
M .env.local
M config/logging.php
Switched to branch 'JY-20725-handle-HS-search-rate-limit'
Your branch is behind 'origin/JY-20725-handle-HS-search-rate-limit' by 439 commits, and can be fast-forwarded.
(use "git pull" to update your local branch)
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20725-handle-HS-search-rate-limit) $ git pull
Updating 0f3e438941..bc6a3fce6b
Fast-forward
.gitignore | 3 +-
.windsurfrules | 168 ++---
CLAUDE.md | 1 +
app/Component/ActivityAnalytics/Service/CalculateTalkTimeOffsetsFromTranscription.php | 24 +-
app/Component/AiActivityType/Services/AiActivityTypeEligibilityChecker.php | 28 +-
app/Component/AiAutomation/Actions/PrepareUpdateDtoAction.php | 32 +-
app/Component/AiAutomation/Services/CrmFillingEligibilityChecker.php | 47 ++
app/Component/AiAutomation/TestCrmAiPromptService.php | 14 +
app/Component/AiCallScoring/Services/AiCallScoringEligibilityChecker.php | 9 +
app/Component/ES/ElasticSearchDocumentPartialUpdater.php | 13 +-
app/Component/ES/ElasticSearchWorkerManager.php | 86 ---
app/Component/ES/Processor/Actions/LoadDocumentsAction.php | 80 +--
app/Component/ES/Processor/EntityQueryBuilder.php | 12 +-
app/Component/ES/Processor/TargetEntitiesSelector.php | 2 +-
app/Component/ES/Processor/Traits/SkipActivityTrait.php | 25 -
app/Component/ES/Repositories/EsResetActivityRepository.php | 11 +-
app/Component/ES/Worker/ActivityWorker.php | 73 --
app/Component/ES/Worker/EntityWorker.php | 44 --
app/Component/ES/Worker/WorkerAmount.php | 60 --
app/Component/ES/Worker/WorkerInterface.php | 15 -
app/Component/ElasticSearch/Contract/Searchable.php | 4 +
app/Component/Encoding/Job/AnalyzeTrackChannelsJob.php | 20 +-
app/Component/Encoding/Service/GenerateSpeechFromSilenceService.php | 85 ++-
app/Component/FFMpeg/Services/GetSpeechIntervalsService.php | 18 +-
app/Component/LanguageDetection/Services/FindSpeechTimeService.php | 22 +-
app/Component/Nudge/Job/ProcessOrganisationImmediateNudgesJob.php | 218 +++++-
app/Component/ParagraphBreaker/Services/TranscriptionParagraphsService.php | 4 +
app/Component/ParticipantSpeech/Services/ParticipantSpeechesCreator.php | 33 +
app/Component/ParticipantSpeech/Services/ParticipantSpeechesDeleter.php | 15 +
app/Component/ParticipantSpeech/Services/ParticipantSpeechesProvider.php | 51 +-
app/Component/ParticipantSpeech/Services/ParticipantSpeechesUploader.php | 36 +
app/Component/ProphetAi/Exceptions/InsufficientTranscriptException.php | 11 +
app/Component/Transcription/DTO/Http/Transcription/AssemblyAI/AssemblyAI/NoAssemblyIdException.php | 11 +
app/Component/Transcription/DTO/Http/Transcription/AssemblyAI/AssemblyAI/SuccessfulResponse.php | 6 +
app/Component/Transcription/DTO/Http/Transcription/TranscriptionIsNotCorrectFormatException.php | 11 +
app/Component/Transcription/Diarization/Services/GetNormalizedParticipantSpeechesService.php | 23 +-
app/Component/Transcription/Diarization/Source/MeetingBotSource.php | 16 +-
app/Component/Transcription/TranscriptionProcessor/TranscriptionProcessor.php | 3 +
app/Console/Commands/Activities/ActivityHardDeleteCommand.php | 4 +-
app/Console/Commands/Activities/Copy.php | 2 +
app/Console/Commands/Activities/SetupIntegration/TwilioSetS3RecordingCredentialsCommand.php | 119 ++++
app/Console/Commands/Activities/UpdateActivityElasticSearchDocumentCommand.php | 10 +-
app/Console/Commands/Crm/BackfillOpportunityUserFromAccountCommand.php | 126 ++++
app/Console/Commands/Elasticsearch/AsyncUpdateEsActivities.php | 19 -
app/Console/Commands/Elasticsearch/AsyncUpdateEsEntities.php | 50 +-
app/Console/Commands/Elasticsearch/ResetAsyncElasticSearchCommand.php | 30 +-
app/Console/Commands/GeckoExport/GeckoExportParticipantSpeechesCommand.php | 14 +-
app/Console/Commands/IssueMcpTokenCommand.php | 84 +++
app/Console/Commands/JiminnyDebugCommand.php | 7 +-
app/Console/Commands/Tracks/CleanupActivityTracksCommand.php | 2 +-
app/Console/Kernel.php | 6 +-
app/Contracts/Services/Calendar/CalendarTrait.php | 80 ++-
app/Events/AutomatedReports/AutomatedReportGenerated.php | 3 +
app/Http/Controllers/API/AiCallScoring/AiScorecardController.php | 7 +-
app/Http/Controllers/API/TeamAiAutomationController.php | 8 +
app/Http/Controllers/CustomerApi/CustomerApiController.php | 4 +-
app/Http/Controllers/Kiosk/ActivityController.php | 58 +-
app/Http/Controllers/Settings/PlaybookController.php | 15 +-
app/Http/Kernel.php | 23 +
app/Http/Middleware/McpAuditMiddleware.php | 156 ++++
app/Http/Middleware/McpTierMiddleware.php | 54 ++
app/Http/Requests/API/V2/ZapierUploadActivityRequest.php | 28 +-
app/Jobs/Activity/Import/ImportTwilioVideoSpeechesJob.php | 25 +-
app/Jobs/Activity/Import/IsActivityReadyForProcessingJob.php | 10 +-
app/Jobs/Calendar/SetupCalendarSync.php | 21 +-
app/Jobs/ImportRemoteTrackJob.php | 96 ++-
app/Jobs/Mailbox/EmailTextRelay.php | 15 +-
app/Mcp/Contracts/McpCallRepositoryInterface.php | 30 +
app/Mcp/DTO/ListCallsFilters.php | 29 +
app/Mcp/Errors/McpError.php | 123 ++++
app/Mcp/Repositories/McpActivityHydrator.php | 145 ++++
app/Mcp/Repositories/McpCallRepository.php | 84 +++
app/Mcp/Repositories/McpElasticCallRepository.php | 171 +++++
app/Mcp/Servers/JiminnyServer.php | 38 +
app/Mcp/Tools/ListCallsTool.php | 205 ++++++
app/Models/Activity.php | 10 +-
app/Models/Activity/Transcription.php | 17 +-
app/Models/ElasticSearch/OpportunityElasticSearchTrait.php | 5 +
app/Models/Participant.php | 1 +
app/Providers/AppServiceProvider.php | 22 +
app/Repositories/Crm/ContactRepository.php | 69 +-
app/Repositories/ParticipantSpeechRepository.php | 13 +-
app/Services/Activity/ParticipantsService.php | 19 +-
app/Services/Activity/Twilio/S3RecordingCredentialsService.php | 82 +++
app/Services/ActivityService.php | 21 +-
app/Services/Calendar/CalendarActivityService.php | 46 ++
app/Services/Calendar/Command/ImportParticipants.php | 1 +
app/Services/Calendar/Command/MapActivityData.php | 106 +--
app/Services/Calendar/GoogleCalendarService.php | 12 +-
app/Services/Crm/Close/Processor/OpportunityProcessor.php | 2 +-
app/Services/Crm/Close/Service.php | 22 +-
app/Services/Crm/Copper/Service.php | 12 +-
app/Services/Crm/Hubspot/Service.php | 154 +++-
app/Services/Crm/Hubspot/ServiceTraits/OpportunitySyncTrait.php | 88 ++-
app/Services/Crm/IntegrationApp/ServiceTraits/SyncCrmEntitiesTrait.php | 22 +-
app/Services/Crm/Pipedrive/Service.php | 17 +-
app/Services/Crm/Salesforce/Service.php | 42 +-
app/Services/Mail/Office/EmailApiClient.php | 129 +---
app/Services/RecallAI/Commands/ScheduleBotCommand.php | 39 +-
app/Services/RecallAI/RecallAIService.php | 22 +-
composer.json | 3 +-
composer.lock | 87 ++-
config/mcp.php | 23 +
database/migrations/2026_04_30_120000_create_mcp_audit_log_table.php | 36 +
docs/mcp/explorer/explorer.html | 697 ++++++++++++++++++
docs/mcp/explorer/explorer.template.html | 697 ++++++++++++++++++
docs/mcp/explorer/generate.js | 215 ++++++
docs/mcp/explorer/tool-explorer-meta.json | 11 +
docs/mcp/tools-list.json | 2536 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
docs/mcp/tools.md | 621 ++++++++++++++++
front-end/package.json | 4 +-
front-end/src/components/Settings/OrgSettings/AiAutomation/CrmFilling/TemplateFieldForm.vue | 28 +-
front-end/src/components/Settings/OrgSettings/Playbooks/AddEditPlaybook.vue | 10 +
front-end/src/components/playback/comments/ActivityComment.less | 10 +-
front-end/src/components/shared/PromptTester/PromptTester.vue | 12 +-
front-end/src/components/shared/__tests__/PromptTester.spec.js | 35 +
front-end/src/components/shared/modals/EntityPickerModal/__tests__/useEntitiesCache.spec.ts | 37 +
front-end/src/components/shared/modals/EntityPickerModal/useEntitiesCache.ts | 9 +
front-end/yarn.lock | 16 +-
phpstan-baseline.neon | 50 --
routes/api.php | 11 +
sonar-project.properties | 91 ++-
tests/Feature/Component/Nudge/ProcessOrganisationImmediateNudgesJobTest.php | 534 ++++++++++++++
tests/Feature/Jobs/ImportRemoteTrackJobTest.php | 283 +++++++-
tests/Feature/Mcp/IssueMcpTokenCommandTest.php | 53 ++
tests/Feature/Mcp/ListCallsToolElasticFeatureTest.php | 155 ++++
tests/Feature/Mcp/ListCallsToolFeatureTest.php | 352 ++++++++++
tests/Feature/Mcp/McpTestHelpersTrait.php | 77 ++
tests/Feature/Services/Team/TeamDeleteHandlers/Retention/RetentionRepositoryHandlerTest.php | 1 +
tests/Stubs/SentryStub.php | 18 +
tests/Unit/Component/ActivityAnalytics/Service/CalculateTalkTimeOffsetFromTranscriptionTest.php | 28 +-
tests/Unit/Component/AiActivityType/Services/AiActivityTypeEligibilityCheckerTest.php | 103 ++-
tests/Unit/Component/AiAutomation/Actions/PrepareUpdateDtoActionTest.php | 91 +++
tests/Unit/Component/AiAutomation/Services/CrmFillingEligibilityCheckerTest.php | 124 ++++
tests/Unit/Component/AiAutomation/TestCrmAiPromptServiceTest.php | 67 +-
tests/Unit/Component/AiCallScoring/Services/AiCallScoringEligibilityCheckerTest.php | 55 ++
tests/Unit/Component/ES/ElasticSearchWorkerManagerTest.php | 135 ----
tests/Unit/Component/ES/Processor/Actions/LoadDocumentsActionTest.php | 220 ++++++
tests/Unit/Component/ES/Processor/EntityQueryBuilderTest.php | 21 +-
tests/Unit/Component/ES/Processor/Traits/SkipActivityTraitTest.php | 51 --
tests/Unit/Component/ES/Worker/ActivityWorkerTest.php | 174 -----
tests/Unit/Component/ES/Worker/EntityWorkerTest.php | 97 ---
tests/Unit/Component/ES/Worker/WorkerAmountTest.php | 116 ---
tests/Unit/Component/Encoding/Job/AnalyzeTrackChannelsJobTest.php | 52 +-
tests/Unit/Component/Encoding/Service/GenerateSpeechFromSilenceServiceTest.php | 171 ++---
tests/Unit/Component/FFMpeg/Services/GetSpeechIntervalsTest.php | 36 +-
tests/Unit/Component/LanguageDetection/Services/FindSpeechTimeServiceTest.php | 20 +-
tests/Unit/Component/MobileSettings/MobileSettingsControllerTest.php | 5 +-
tests/Unit/Component/ParticipantSpeech/Services/ParticipantSpeechesCreatorTest.php | 75 ++
tests/Unit/Component/ParticipantSpeech/Services/ParticipantSpeechesDeleterTest.php | 63 ++
tests/Unit/Component/ParticipantSpeech/Services/ParticipantSpeechesProviderTest.php | 134 ++++
tests/Unit/Component/ParticipantSpeech/Services/ParticipantSpeechesUploaderTest.php | 57 ++
tests/Unit/Component/Transcription/Diarization/Services/GetNormalizedParticipantSpeechesServiceTest.php | 51 +-
tests/Unit/Component/Transcription/Diarization/Source/MeetingBotSourceTest.php | 29 +-
tests/Unit/Contracts/Services/Calendar/CalendarTraitTest.php | 58 +-
tests/Unit/Http/Controllers/Kiosk/ActivityControllerTest.php | 159 +++++
tests/Unit/Jobs/Activity/Import/ImportTwilioVideoSpeechesJobTest.php | 22 +-
tests/Unit/Jobs/Activity/Import/IsActivityReadyForProcessingJobTest.php | 26 +-
tests/Unit/Jobs/Calendar/SetupCalendarSyncTest.php | 25 -
tests/Unit/Services/Activity/ParticipantsServiceTest.php | 12 +-
tests/Unit/Services/Activity/Twilio/S3RecordingCredentialsServiceTest.php | 180 +++++
tests/Unit/Services/ActivityServiceTest.php | 132 ++++
tests/Unit/Services/Calendar/CalendarActivityServiceTest.php | 150 +++-
tests/Unit/Services/Calendar/Command/ImportParticipantsTest.php | 6 +-
tests/Unit/Services/Calendar/Command/MapActivityDataTest.php | 78 +-
tests/Unit/Services/Calendar/GoogleCalendarServiceTest.php | 116 +++
tests/Unit/Services/Crm/Close/ServiceTest.php | 165 +++++
tests/Unit/Services/Crm/Hubspot/ServiceTest.php | 272 ++++++-
tests/Unit/Services/Crm/Hubspot/ServiceTraits/OpportunitySyncTest.php | 25 +-
tests/Unit/Services/Crm/Hubspot/ServiceTraits/OpportunitySyncTraitMatchActivitiesTest.php | 3 +-
tests/Unit/Services/Crm/IntegrationApp/ServiceTraits/SyncCrmEntitiesTraitOpportunitiesTest.php | 40 ++
tests/Unit/Services/Crm/Pipedrive/ImportOpportunityMatchActivitiesTest.php | 2 +
tests/Unit/Services/Crm/Salesforce/ServiceTest.php | 139 ++++
tests/Unit/Services/Mail/Office/EmailApiClientTest.php | 195 ++---
tests/Unit/Services/RecallAI/RecallAIServiceTest.php | 24 +-
175 files changed, 12562 insertions(+), 2162 deletions(-)
create mode 120000 CLAUDE.md
create mode 100644 app/Component/AiAutomation/Services/CrmFillingEligibilityChecker.php
delete mode 100644 app/Component/ES/ElasticSearchWorkerManager.php
delete mode 100644 app/Component/ES/Processor/Traits/SkipActivityTrait.php
delete mode 100644 app/Component/ES/Worker/ActivityWorker.php
delete mode 100644 app/Component/ES/Worker/EntityWorker.php
delete mode 100644 app/Component/ES/Worker/WorkerAmount.php
delete mode 100644 app/Component/ES/Worker/WorkerInterface.php
create mode 100644 app/Component/ProphetAi/Exceptions/InsufficientTranscriptException.php
create mode 100644 app/Component/Transcription/DTO/Http/Transcription/AssemblyAI/AssemblyAI/NoAssemblyIdException.php
create mode 100644 app/Component/Transcription/DTO/Http/Transcription/TranscriptionIsNotCorrectFormatException.php
create mode 100644 app/Console/Commands/Activities/SetupIntegration/TwilioSetS3RecordingCredentialsCommand.php
create mode 100644 app/Console/Commands/Crm/BackfillOpportunityUserFromAccountCommand.php
delete mode 100644 app/Console/Commands/Elasticsearch/AsyncUpdateEsActivities.php
create mode 100644 app/Console/Commands/IssueMcpTokenCommand.php
create mode 100644 app/Http/Middleware/McpAuditMiddleware.php
create mode 100644 app/Http/Middleware/McpTierMiddleware.php
create mode 100644 app/Mcp/Contracts/McpCallRepositoryInterface.php
create mode 100644 app/Mcp/DTO/ListCallsFilters.php
create mode 100644 app/Mcp/Errors/McpError.php
create mode 100644 app/Mcp/Repositories/McpActivityHydrator.php
create mode 100644 app/Mcp/Repositories/McpCallRepository.php
create mode 100644 app/Mcp/Repositories/McpElasticCallRepository.php
create mode 100644 app/Mcp/Servers/JiminnyServer.php
create mode 100644 app/Mcp/Tools/ListCallsTool.php
create mode 100644 app/Services/Activity/Twilio/S3RecordingCredentialsService.php
create mode 100644 config/mcp.php
create mode 100644 database/migrations/2026_04_30_120000_create_mcp_audit_log_table.php
create mode 100644 docs/mcp/explorer/explorer.html
create mode 100644 docs/mcp/explorer/explorer.template.html
create mode 100644 docs/mcp/explorer/generate.js
create mode 100644 docs/mcp/explorer/tool-explorer-meta.json
create mode 100644 docs/mcp/tools-list.json
create mode 100644 docs/mcp/tools.md
create mode 100644 front-end/src/components/shared/modals/EntityPickerModal/__tests__/useEntitiesCache.spec.ts
create mode 100644 tests/Feature/Component/Nudge/ProcessOrganisationImmediateNudgesJobTest.php
create mode 100644 tests/Feature/Mcp/IssueMcpTokenCommandTest.php
create mode 100644 tests/Feature/Mcp/ListCallsToolElasticFeatureTest.php
create mode 100644 tests/Feature/Mcp/ListCallsToolFeatureTest.php
create mode 100644 tests/Feature/Mcp/McpTestHelpersTrait.php
create mode 100644 tests/Stubs/SentryStub.php
create mode 100644 tests/Unit/Component/AiAutomation/Services/CrmFillingEligibilityCheckerTest.php
delete mode 100644 tests/Unit/Component/ES/ElasticSearchWorkerManagerTest.php
create mode 100644 tests/Unit/Component/ES/Processor/Actions/LoadDocumentsActionTest.php
delete mode 100644 tests/Unit/Component/ES/Processor/Traits/SkipActivityTraitTest.php
delete mode 100644 tests/Unit/Component/ES/Worker/ActivityWorkerTest.php
delete mode 100644 tests/Unit/Component/ES/Worker/EntityWorkerTest.php
delete mode 100644 tests/Unit/Component/ES/Worker/WorkerAmountTest.php
create mode 100644 tests/Unit/Component/ParticipantSpeech/Services/ParticipantSpeechesCreatorTest.php
create mode 100644 tests/Unit/Http/Controllers/Kiosk/ActivityControllerTest.php
create mode 100644 tests/Unit/Services/Activity/Twilio/S3RecordingCredentialsServiceTest.php
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20725-handle-HS-search-rate-limit) $ git status
On branch master
Your branch is behind 'origin/master' by 114 commits, and can be fast-forwarded.
(use "git pull" to update your local branch)
Changes not staged for commit:
(use "git add <file>..." to update what will be committed)
(use "git restore <file>..." to discard changes in working directory)
modified: .env.local
modified: app/Component/SCIM/Constants.php
modified: app/Component/SCIM/ScimProvisioning.php
modified: app/Component/Twilio/Conference/ConferenceManager/SoftPhoneManager.php
modified: app/Console/Commands/JiminnyDebugCommand.php
modified: app/DTO/SCIM/AAD/Request/CoreUserRequest.php
modified: app/DTO/SCIM/AAD/Response/CoreUser.php
modified: app/Services/Telephony/TextMessagingService.php
modified: config/logging.php
Untracked files:
(use "git add <file>..." to include in what will be committed)
.env.nikilocal
.env.other
WEBHOOK_FILTERING_IMPLEMENTATION.md
app/Component/SCIM/Mutators/Attributes/User/RoleAttr.php
app/Console/Commands/Crm/Hubspot/SimulateWebhooksCommand.php
app/Console/Commands/Reports/CreateMockAskJiminnyReportResultCommand.php
app/Rules/ListenerRoleCannotHaveAdminOrManagerPermissionRule.php
ids.txt
public/favicon.ico
raw_sql_query.sql
tests/Unit/Component/SCIM/Mutators/Attributes/User/RoleAttrTest.php
tests/Unit/Policies/CanAccessAiReportsTest.php
tests/Unit/Rules/ListenerRoleCannotHaveAdminOrManagerPermissionRuleTest.php
no changes added to commit (use "git add" and/or "git commit -a")
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (master) $ git pull
remote: Enumerating objects: 306, done.
remote: Counting objects: 100% (299/299), done.
remote: Compressing objects: 100% (183/183), done.
remote: Total 306 (delta 213), reused 171 (delta 116), pack-reused 7 (from 1)
Receiving objects: 100% (306/306), 80.12 KiB | 1000.00 KiB/s, done.
Resolving deltas: 100% (213/213), completed with 53 local objects.
From github.com:jiminny/app
90bca4e4b2..5604af40cf master -> origin/master
4e7078fd8b..0b8343d179 JY-18091-upgrade-to-php-8-5 -> origin/JY-18091-upgrade-to-php-8-5
098eeaa087..d5a447e492 JY-20613-allow-owner-role-on-team-setup -> origin/JY-20613-allow-owner-role-on-team-setup
c3a76ace91..af65249d0f JY-20749-user-can-view-recorded-meetings -> origin/JY-20749-user-can-view-recorded-meetings
d94a285ae7..7ce96cb5fe JY-20808-low-priority-indexing-queue -> origin/JY-20808-low-priority-indexing-queue
* [new branch] JY-20842-remove-partial-updater -> origin/JY-20842-remove-partial-updater
* [new branch] JY-20920-fix-participant-flip -> origin/JY-20920-fix-participant-flip
* [new branch] secfix/npm-20260519 -> origin/secfix/npm-20260519
Updating cb4ebf0c36..5604af40cf
Fast-forward
app/Component/ES/ChunkSize.php | 54 +++++++++++++++++++
app/Component/ES/Processor/DTOs/SelectionList.php | 4 +-
app/Component/ES/Processor/TargetEntitiesSelector.php | 19 ++++---
app/Component/MeetingBot/Service/ParticipantMatcher.php | 46 ++++++++++++----
app/Exceptions/RateLimitException.php | 19 ++++++-
app/Http/Middleware/McpTierMiddleware.php | 27 ++--------
app/Jobs/Crm/MatchActivityCrmData.php | 47 ++++++++++++----
app/Jobs/Middleware/HandleHubspotRateLimit.php | 42 +++++++++++++++
app/Mcp/Servers/JiminnyServer.php | 2 +
app/Mcp/Tools/GetMeTool.php | 157 +++++++++++++++++++++++++++++++++++++++++++++++++++++
app/Models/Feature/FeatureEnum.php | 1 +
app/Services/Activity/HubSpot/ProviderResolver.php | 4 +-
app/Services/Activity/HubSpot/ProviderResolverInterface.php | 2 +-
app/Services/Activity/HubSpot/Providers/Provider.php | 2 +-
app/Services/Activity/HubSpot/Providers/ProviderKixie.php | 2 +-
app/Services/Activity/HubSpot/Providers/ProviderOrum.php | 2 +-
app/Services/Activity/HubSpot/Providers/ProviderTwilio.php | 2 +-
app/Services/Activity/HubSpot/Providers/ProviderTwilioFlex.php | 5 +-
app/Services/Activity/HubSpot/Service.php | 97 +++++++++++++++++++++++++++------
app/Services/Crm/Hubspot/Client.php | 132 +++++++++++++++++++++++++++++++++++++++++++++
app/Services/Crm/Hubspot/HubspotClientInterface.php | 15 ++++++
app/Services/Crm/Hubspot/Pagination/HubspotPaginationService.php | 21 ++++----
app/Services/Crm/Hubspot/Pagination/PaginationState.php | 2 +-
database/migrations/2026_05_13_124153_create_mcp_feature_flag.php | 25 +++++++++
tests/Feature/Mcp/GetMeToolFeatureTest.php | 140 +++++++++++++++++++++++++++++++++++++++++++++++
tests/Feature/Mcp/ListCallsToolFeatureTest.php | 2 +-
tests/Feature/Mcp/McpTestHelpersTrait.php | 19 ++++++-
tests/Unit/Component/ES/ChunkSizeTest.php | 50 +++++++++++++++++
tests/Unit/Component/ES/Processor/DTOs/SelectionListTest.php | 27 +++++++---
tests/Unit/Component/ES/Processor/TargetEntitiesSelectorTest.php | 39 ++++++++------
tests/Unit/Component/MeetingBot/Service/ParticipantMatcherTest.php | 68 ++++++++++++++++++++++-
tests/Unit/Exceptions/RateLimitExceptionTest.php | 56 +++++++++++++++++++
tests/Unit/Jobs/Crm/MatchActivityCrmDataTest.php | 8 +--
tests/Unit/Jobs/Middleware/HandleHubspotRateLimitTest.php | 151 +++++++++++++++++++++++++++++++++++++++++++++++++++
tests/Unit/Services/Activity/HubSpot/ServiceTest.php | 109 +++++++++++++++++++++++++++++++++++++
tests/Unit/Services/Crm/Hubspot/ClientTest.php | 250 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
tests/Unit/Services/Crm/Hubspot/Pagination/HubspotPaginationServiceTest.php | 283 +++++++++++++++++++++---------------------------------------------------------------------------
37 files changed, 1587 insertions(+), 344 deletions(-)
create mode 100644 app/Component/ES/ChunkSize.php
create mode 100644 app/Jobs/Middleware/HandleHubspotRateLimit.php
create mode 100644 app/Mcp/Tools/GetMeTool.php
create mode 100644 database/migrations/2026_05_13_124153_create_mcp_feature_flag.php
create mode 100644 tests/Feature/Mcp/GetMeToolFeatureTest.php
create mode 100644 tests/Unit/Component/ES/ChunkSizeTest.php
create mode 100644 tests/Unit/Exceptions/RateLimitExceptionTest.php
create mode 100644 tests/Unit/Jobs/Middleware/HandleHubspotRateLimitTest.php
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (master) $ git pull
Already up to date.
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (master) $ co -b JY-20676-delete-report-related-objects
Switched to a new branch 'JY-20676-delete-report-related-objects'
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20676-delete-report-related-objects) $ csfix
docker exec -it docker_lamp_1 ./vendor/bin/php-cs-fixer fix --config=.php-cs-fixer.dist.php -v --using-cache=no --diff
PHP CS Fixer 3.87.1 Alexander by Fabien Potencier, Dariusz Ruminski and contributors.
PHP runtime: 8.3.30
Running 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!
Loaded config default from ".php-cs-fixer.dist.php".
5690/5690 [▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓] 100%
1) app/Console/Commands/JiminnyDebugCommand.php (statement_indentation, blank_line_before_statement)
---------- begin diff ----------
--- /home/jiminny/app/Console/Commands/JiminnyDebugCommand.php
+++ /home/jiminny/app/Console/Commands/JiminnyDebugCommand.php
@@ -23,6 +23,7 @@
if ($action === 'redis-set') {
$this->testRedisSet();
+
return;
}
@@ -45,7 +46,7 @@
$ttl = 60;
try {
-// $result = Redis::set($testKey, $testValue, 'EX', $ttl, 'NX');
+ // $result = Redis::set($testKey, $testValue, 'EX', $ttl, 'NX');
$result = Redis::set($testKey, $testValue, ['nx', 'ex' => $ttl]);
if ($result) {
----------- end diff -----------
Fixed 1 of 5690 files i...
|
NULL
|
NULL
|
NULL
|
NULL
|
|
58067
|
2044
|
1
|
2026-05-19T11:31:21.362207+00:00
|
/Users/lukas/.screenpipe/data/data/2026-05-19/1779 /Users/lukas/.screenpipe/data/data/2026-05-19/1779190281362_m1.jpg...
|
iTerm2
|
APP (-zsh)
|
1
|
NULL
|
monitor_1
|
NULL
|
NULL
|
NULL
|
NULL
|
Last login: Mon May 18 09:17:28 on ttys007
Poetry Last login: Mon May 18 09:17:28 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 (pipedrive-sdk-poc) $ co master
error: Your local changes to the following files would be overwritten by checkout:
PIPEDRIVE_V2_MIGRATION_TICKETS.md
Please commit your changes or stash them before you switch branches.
Aborting
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (pipedrive-sdk-poc) $ git pull
remote: Enumerating objects: 1047, done.
remote: Counting objects: 100% (832/832), done.
remote: Compressing objects: 100% (298/298), done.
remote: Total 1047 (delta 634), reused 596 (delta 534), pack-reused 215 (from 3)
Receiving objects: 100% (1047/1047), 353.16 KiB | 1.56 MiB/s, done.
Resolving deltas: 100% (687/687), completed with 107 local objects.
From github.com:jiminny/app
907c54896c..34656c53ed pipedrive-sdk-poc -> origin/pipedrive-sdk-poc
03325ec50f..4e7078fd8b JY-18091-upgrade-to-php-8-5 -> origin/JY-18091-upgrade-to-php-8-5
e7d231e163..bc6a3fce6b JY-20725-handle-HS-search-rate-limit -> origin/JY-20725-handle-HS-search-rate-limit
* [new branch] JY-20749-user-can-view-recorded-meetings -> origin/JY-20749-user-can-view-recorded-meetings
98ca281a04..e0351be069 JY-20808-low-priority-indexing-queue -> origin/JY-20808-low-priority-indexing-queue
569abb5149..3906a9238a JY-20835-mcp-enable-users-to-get-a-list-of-deals-and-their-details -> origin/JY-20835-mcp-enable-users-to-get-a-list-of-deals-and-their-details
ad6c2a86e8..50eb6afba9 JY-20846-mcp-enable-the-ai-to-know-details-about-the-user -> origin/JY-20846-mcp-enable-the-ai-to-know-details-about-the-user
* [new branch] JY-20893-chunk-control-per-update-target -> origin/JY-20893-chunk-control-per-update-target
31c62924a5..cb4ebf0c36 master -> origin/master
Updating 907c54896c..34656c53ed
Fast-forward
PIPEDRIVE_V2_MIGRATION_TICKETS.md | 52 ++++++++++++++++++++++++++++++++++++++++++++++++++++
1 file changed, 52 insertions(+)
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (pipedrive-sdk-poc) $ co master
M .env.local
M config/logging.php
Switched to branch 'master'
Your branch is behind 'origin/master' by 31 commits, and can be fast-forwarded.
(use "git pull" to update your local branch)
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (master) $ git pull
Updating 31c62924a5..cb4ebf0c36
Fast-forward
app/Component/ES/Processor/Traits/SelectEntityListTrait.php | 20 ------
app/Services/Calendar/CalendarActivityService.php | 46 +++++++++++++
app/Services/Calendar/Command/MapActivityData.php | 106 +++-------------------------
docs/mcp/explorer/explorer.html | 104 +++++++++++++++++++++++++---
docs/mcp/explorer/explorer.template.html | 102 ++++++++++++++++++++++++---
docs/mcp/tools-list.json | 373 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++-------
docs/mcp/tools.md | 117 +++++++++++++++++++++++--------
tests/Unit/Component/ES/AsyncUpdateElasticSearchTest.php | 16 +----
tests/Unit/Component/ES/Listeners/UpdateMultipleTargetsListenerTest.php | 10 ---
tests/Unit/Component/ES/Listeners/UpdateSingleTargetListenerTest.php | 6 --
tests/Unit/Component/ES/Processor/TargetEntitiesSelectorTest.php | 9 ---
tests/Unit/Component/ES/Processor/Traits/SelectEntityListTraitTest.php | 15 ++--
tests/Unit/Component/ES/UpdateProcessManagerTest.php | 2 -
tests/Unit/Services/Calendar/CalendarActivityServiceTest.php | 150 ++++++++++++++++++++++++++++++++++++++--
tests/Unit/Services/Calendar/Command/MapActivityDataTest.php | 78 ++-------------------
15 files changed, 832 insertions(+), 322 deletions(-)
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (master) $ co -b JY-20613-allow-owner-role-on-team-setup
Switched to a new branch 'JY-20613-allow-owner-role-on-team-setup'
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20613-allow-owner-role-on-team-setup) $ csfix
docker exec -it docker_lamp_1 ./vendor/bin/php-cs-fixer fix --config=.php-cs-fixer.dist.php -v --using-cache=no --diff
PHP CS Fixer 3.87.1 Alexander by Fabien Potencier, Dariusz Ruminski and contributors.
PHP runtime: 8.3.30
Running 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!
Loaded config default from ".php-cs-fixer.dist.php".
5682/5682 [▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓] 100%
Fixed 0 of 5682 files in 56.978 seconds, 67.00 MB memory used
What's next:
Try Docker Debug for seamless, persistent debugging tools in any container or image → docker debug docker_lamp_1
Learn more at [URL_WITH_CREDENTIALS] ~/jiminny/app (JY-20613-allow-owner-role-on-team-setup) $ csfix
docker exec -it docker_lamp_1 ./vendor/bin/php-cs-fixer fix --config=.php-cs-fixer.dist.php -v --using-cache=no --diff
PHP CS Fixer 3.87.1 Alexander by Fabien Potencier, Dariusz Ruminski and contributors.
PHP runtime: 8.3.30
Running 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!
Loaded config default from ".php-cs-fixer.dist.php".
5682/5682 [▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓] 100%
Fixed 0 of 5682 files in 49.910 seconds, 60.00 MB memory used
What's next:
Try Docker Debug for seamless, persistent debugging tools in any container or image → docker debug docker_lamp_1
Learn more at [URL_WITH_CREDENTIALS] ~/jiminny/app (JY-20613-allow-owner-role-on-team-setup) $ git pull
remote: Enumerating objects: 248, done.
remote: Counting objects: 100% (128/128), done.
remote: Compressing objects: 100% (23/23), done.
remote: Total 59 (delta 43), reused 44 (delta 33), pack-reused 0 (from 0)
Unpacking objects: 100% (59/59), 10.48 KiB | 228.00 KiB/s, done.
From github.com:jiminny/app
b7df560451..190239dfd4 JY-20613-allow-owner-role-on-team-setup -> origin/JY-20613-allow-owner-role-on-team-setup
e0351be069..d94a285ae7 JY-20808-low-priority-indexing-queue -> origin/JY-20808-low-priority-indexing-queue
* [new branch] JY-20920-fix-participant-matcher -> origin/JY-20920-fix-participant-matcher
cb4ebf0c36..90bca4e4b2 master -> origin/master
Merge made by the 'ort' strategy.
app/Component/ES/ChunkSize.php | 54 +++++++++++++++++++++++++++
app/Component/ES/Processor/DTOs/SelectionList.php | 4 +-
app/Component/ES/Processor/TargetEntitiesSelector.php | 19 ++++++----
app/Http/Middleware/McpTierMiddleware.php | 27 +++-----------
app/Mcp/Servers/JiminnyServer.php | 2 +
app/Mcp/Tools/GetMeTool.php | 157 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
app/Models/Feature/FeatureEnum.php | 1 +
database/migrations/2026_05_13_124153_create_mcp_feature_flag.php | 25 +++++++++++++
front-end/src/components/Settings/Kiosk/modals/EditTeamModal/EditTeamModal.vue | 52 ++++++++++++++++++--------
front-end/src/components/Settings/Kiosk/modals/EditTeamModal/__tests__/EditTeamModal.spec.js | 14 +++++++
tests/Feature/Mcp/GetMeToolFeatureTest.php | 140 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
tests/Feature/Mcp/ListCallsToolFeatureTest.php | 2 +-
tests/Feature/Mcp/McpTestHelpersTrait.php | 19 +++++++++-
tests/Unit/Component/ES/ChunkSizeTest.php | 50 +++++++++++++++++++++++++
tests/Unit/Component/ES/Processor/DTOs/SelectionListTest.php | 27 ++++++++++----
tests/Unit/Component/ES/Processor/TargetEntitiesSelectorTest.php | 39 +++++++++++---------
16 files changed, 557 insertions(+), 75 deletions(-)
create mode 100644 app/Component/ES/ChunkSize.php
create mode 100644 app/Mcp/Tools/GetMeTool.php
create mode 100644 database/migrations/2026_05_13_124153_create_mcp_feature_flag.php
create mode 100644 tests/Feature/Mcp/GetMeToolFeatureTest.php
create mode 100644 tests/Unit/Component/ES/ChunkSizeTest.php
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20613-allow-owner-role-on-team-setup) $ git push
Enumerating objects: 40, done.
Counting objects: 100% (34/34), done.
Delta compression using up to 8 threads
Compressing objects: 100% (18/18), done.
Writing objects: 100% (18/18), 1.58 KiB | 1.58 MiB/s, done.
Total 18 (delta 15), reused 0 (delta 0), pack-reused 0
remote: Resolving deltas: 100% (15/15), completed with 13 local objects.
To github.com:jiminny/app.git
190239dfd4..ec1b261264 JY-20613-allow-owner-role-on-team-setup -> JY-20613-allow-owner-role-on-team-setup
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20613-allow-owner-role-on-team-setup) $ gbr
* JY-20613-allow-owner-role-on-team-setup
pipedrive-sdk-poc
master
JY-20903-update_activity-stage-on-opportunity-change
JY-20904-fix-update-es-on-activity-command
JY-20891-improve-sms-text-relays
JY-20725-handle-HS-search-rate-limit
JY-20818-move-AJ-reports-to-separated-datadog-metric
JY-20773-fix-automated-reports-user-pilot-tracking
JY-20157-AJ-report-not-send-notification
JY-20508-notify-before-AJ-report-expiration
JY-20372-ai-reports-promotion-pages
JY-20352-sync-opportunities-without-a-local-owner-user-id-is-null
JY-20738-debug-AJ-tracking-UP
a
JY-18909-automated-reports-ask-jiminny
JY-20692-fix-integration-app-[API_KEY]
JY-20553-debug-crm-sync-delays
JY-20698-fix-SF-activity-types-on-new-playbook
JY-20543-AJ-report-tracking
JY-20384-handle-auto-sync-with-no-access-to-event-type
JY-20458-ask-jiminny-user-definitions
JY-19666-fix-import-contacts-account-association
JY-19666-HS-import-contacts-and-accounts-batch-job
JY-20458-Ask-Jiminny-Reports
JY-20200-batch-update-CRM-objects-Salesforce
JY-19666-HS-webhooks-add-contact-and-company
JY-20348-trigger-setup-DI-layout-on-team-creation
JY-20326-refactor-info-message-in-command
JY-20317-fix-auto-log-delay-issue-on-all-channels-disabled
JY-20312-remove-on-update-change-last-synced-at-crm-configurations
JY-20306-SF-skip-auto-sync-for-task-based-playbook
JY-20192-remove-deleted-team-from-saved-search-filters
JY-20197-import-opportunity-batch-job
JY-20293-enable-status-field-for-pipedrive-deals
JY-20191-remove-commands-interactive-prompts
JY-20118-change-default-sync-strategy
JY-20183-add-cache-on-auto-log-delay
JY-20197-add-import-opportunity-batch-job
20118-hs-opportunity-make-webhook-strategy-default
JY-20118-make-default-hs-opportunity-sync-strategy-webhook-based
JY-20196-handle-opportunity-without-note
JY-20118-improve-opportunity-import
JY-20189-handle-activity-search-on-deleted-groups
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20613-allow-owner-role-on-team-setup) $ co JY-20725-handle-HS-search-rate-limit
M .env.local
M config/logging.php
Switched to branch 'JY-20725-handle-HS-search-rate-limit'
Your branch is behind 'origin/JY-20725-handle-HS-search-rate-limit' by 439 commits, and can be fast-forwarded.
(use "git pull" to update your local branch)
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20725-handle-HS-search-rate-limit) $ git pull
Updating 0f3e438941..bc6a3fce6b
Fast-forward
.gitignore | 3 +-
.windsurfrules | 168 ++---
CLAUDE.md | 1 +
app/Component/ActivityAnalytics/Service/CalculateTalkTimeOffsetsFromTranscription.php | 24 +-
app/Component/AiActivityType/Services/AiActivityTypeEligibilityChecker.php | 28 +-
app/Component/AiAutomation/Actions/PrepareUpdateDtoAction.php | 32 +-
app/Component/AiAutomation/Services/CrmFillingEligibilityChecker.php | 47 ++
app/Component/AiAutomation/TestCrmAiPromptService.php | 14 +
app/Component/AiCallScoring/Services/AiCallScoringEligibilityChecker.php | 9 +
app/Component/ES/ElasticSearchDocumentPartialUpdater.php | 13 +-
app/Component/ES/ElasticSearchWorkerManager.php | 86 ---
app/Component/ES/Processor/Actions/LoadDocumentsAction.php | 80 +--
app/Component/ES/Processor/EntityQueryBuilder.php | 12 +-
app/Component/ES/Processor/TargetEntitiesSelector.php | 2 +-
app/Component/ES/Processor/Traits/SkipActivityTrait.php | 25 -
app/Component/ES/Repositories/EsResetActivityRepository.php | 11 +-
app/Component/ES/Worker/ActivityWorker.php | 73 --
app/Component/ES/Worker/EntityWorker.php | 44 --
app/Component/ES/Worker/WorkerAmount.php | 60 --
app/Component/ES/Worker/WorkerInterface.php | 15 -
app/Component/ElasticSearch/Contract/Searchable.php | 4 +
app/Component/Encoding/Job/AnalyzeTrackChannelsJob.php | 20 +-
app/Component/Encoding/Service/GenerateSpeechFromSilenceService.php | 85 ++-
app/Component/FFMpeg/Services/GetSpeechIntervalsService.php | 18 +-
app/Component/LanguageDetection/Services/FindSpeechTimeService.php | 22 +-
app/Component/Nudge/Job/ProcessOrganisationImmediateNudgesJob.php | 218 +++++-
app/Component/ParagraphBreaker/Services/TranscriptionParagraphsService.php | 4 +
app/Component/ParticipantSpeech/Services/ParticipantSpeechesCreator.php | 33 +
app/Component/ParticipantSpeech/Services/ParticipantSpeechesDeleter.php | 15 +
app/Component/ParticipantSpeech/Services/ParticipantSpeechesProvider.php | 51 +-
app/Component/ParticipantSpeech/Services/ParticipantSpeechesUploader.php | 36 +
app/Component/ProphetAi/Exceptions/InsufficientTranscriptException.php | 11 +
app/Component/Transcription/DTO/Http/Transcription/AssemblyAI/AssemblyAI/NoAssemblyIdException.php | 11 +
app/Component/Transcription/DTO/Http/Transcription/AssemblyAI/AssemblyAI/SuccessfulResponse.php | 6 +
app/Component/Transcription/DTO/Http/Transcription/TranscriptionIsNotCorrectFormatException.php | 11 +
app/Component/Transcription/Diarization/Services/GetNormalizedParticipantSpeechesService.php | 23 +-
app/Component/Transcription/Diarization/Source/MeetingBotSource.php | 16 +-
app/Component/Transcription/TranscriptionProcessor/TranscriptionProcessor.php | 3 +
app/Console/Commands/Activities/ActivityHardDeleteCommand.php | 4 +-
app/Console/Commands/Activities/Copy.php | 2 +
app/Console/Commands/Activities/SetupIntegration/TwilioSetS3RecordingCredentialsCommand.php | 119 ++++
app/Console/Commands/Activities/UpdateActivityElasticSearchDocumentCommand.php | 10 +-
app/Console/Commands/Crm/BackfillOpportunityUserFromAccountCommand.php | 126 ++++
app/Console/Commands/Elasticsearch/AsyncUpdateEsActivities.php | 19 -
app/Console/Commands/Elasticsearch/AsyncUpdateEsEntities.php | 50 +-
app/Console/Commands/Elasticsearch/ResetAsyncElasticSearchCommand.php | 30 +-
app/Console/Commands/GeckoExport/GeckoExportParticipantSpeechesCommand.php | 14 +-
app/Console/Commands/IssueMcpTokenCommand.php | 84 +++
app/Console/Commands/JiminnyDebugCommand.php | 7 +-
app/Console/Commands/Tracks/CleanupActivityTracksCommand.php | 2 +-
app/Console/Kernel.php | 6 +-
app/Contracts/Services/Calendar/CalendarTrait.php | 80 ++-
app/Events/AutomatedReports/AutomatedReportGenerated.php | 3 +
app/Http/Controllers/API/AiCallScoring/AiScorecardController.php | 7 +-
app/Http/Controllers/API/TeamAiAutomationController.php | 8 +
app/Http/Controllers/CustomerApi/CustomerApiController.php | 4 +-
app/Http/Controllers/Kiosk/ActivityController.php | 58 +-
app/Http/Controllers/Settings/PlaybookController.php | 15 +-
app/Http/Kernel.php | 23 +
app/Http/Middleware/McpAuditMiddleware.php | 156 ++++
app/Http/Middleware/McpTierMiddleware.php | 54 ++
app/Http/Requests/API/V2/ZapierUploadActivityRequest.php | 28 +-
app/Jobs/Activity/Import/ImportTwilioVideoSpeechesJob.php | 25 +-
app/Jobs/Activity/Import/IsActivityReadyForProcessingJob.php | 10 +-
app/Jobs/Calendar/SetupCalendarSync.php | 21 +-
app/Jobs/ImportRemoteTrackJob.php | 96 ++-
app/Jobs/Mailbox/EmailTextRelay.php | 15 +-
app/Mcp/Contracts/McpCallRepositoryInterface.php | 30 +
app/Mcp/DTO/ListCallsFilters.php | 29 +
app/Mcp/Errors/McpError.php | 123 ++++
app/Mcp/Repositories/McpActivityHydrator.php | 145 ++++
app/Mcp/Repositories/McpCallRepository.php | 84 +++
app/Mcp/Repositories/McpElasticCallRepository.php | 171 +++++
app/Mcp/Servers/JiminnyServer.php | 38 +
app/Mcp/Tools/ListCallsTool.php | 205 ++++++
app/Models/Activity.php | 10 +-
app/Models/Activity/Transcription.php | 17 +-
app/Models/ElasticSearch/OpportunityElasticSearchTrait.php | 5 +
app/Models/Participant.php | 1 +
app/Providers/AppServiceProvider.php | 22 +
app/Repositories/Crm/ContactRepository.php | 69 +-
app/Repositories/ParticipantSpeechRepository.php | 13 +-
app/Services/Activity/ParticipantsService.php | 19 +-
app/Services/Activity/Twilio/S3RecordingCredentialsService.php | 82 +++
app/Services/ActivityService.php | 21 +-
app/Services/Calendar/CalendarActivityService.php | 46 ++
app/Services/Calendar/Command/ImportParticipants.php | 1 +
app/Services/Calendar/Command/MapActivityData.php | 106 +--
app/Services/Calendar/GoogleCalendarService.php | 12 +-
app/Services/Crm/Close/Processor/OpportunityProcessor.php | 2 +-
app/Services/Crm/Close/Service.php | 22 +-
app/Services/Crm/Copper/Service.php | 12 +-
app/Services/Crm/Hubspot/Service.php | 154 +++-
app/Services/Crm/Hubspot/ServiceTraits/OpportunitySyncTrait.php | 88 ++-
app/Services/Crm/IntegrationApp/ServiceTraits/SyncCrmEntitiesTrait.php | 22 +-
app/Services/Crm/Pipedrive/Service.php | 17 +-
app/Services/Crm/Salesforce/Service.php | 42 +-
app/Services/Mail/Office/EmailApiClient.php | 129 +---
app/Services/RecallAI/Commands/ScheduleBotCommand.php | 39 +-
app/Services/RecallAI/RecallAIService.php | 22 +-
composer.json | 3 +-
composer.lock | 87 ++-
config/mcp.php | 23 +
database/migrations/2026_04_30_120000_create_mcp_audit_log_table.php | 36 +
docs/mcp/explorer/explorer.html | 697 ++++++++++++++++++
docs/mcp/explorer/explorer.template.html | 697 ++++++++++++++++++
docs/mcp/explorer/generate.js | 215 ++++++
docs/mcp/explorer/tool-explorer-meta.json | 11 +
docs/mcp/tools-list.json | 2536 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
docs/mcp/tools.md | 621 ++++++++++++++++
front-end/package.json | 4 +-
front-end/src/components/Settings/OrgSettings/AiAutomation/CrmFilling/TemplateFieldForm.vue | 28 +-
front-end/src/components/Settings/OrgSettings/Playbooks/AddEditPlaybook.vue | 10 +
front-end/src/components/playback/comments/ActivityComment.less | 10 +-
front-end/src/components/shared/PromptTester/PromptTester.vue | 12 +-
front-end/src/components/shared/__tests__/PromptTester.spec.js | 35 +
front-end/src/components/shared/modals/EntityPickerModal/__tests__/useEntitiesCache.spec.ts | 37 +
front-end/src/components/shared/modals/EntityPickerModal/useEntitiesCache.ts | 9 +
front-end/yarn.lock | 16 +-
phpstan-baseline.neon | 50 --
routes/api.php | 11 +
sonar-project.properties | 91 ++-
tests/Feature/Component/Nudge/ProcessOrganisationImmediateNudgesJobTest.php | 534 ++++++++++++++
tests/Feature/Jobs/ImportRemoteTrackJobTest.php | 283 +++++++-
tests/Feature/Mcp/IssueMcpTokenCommandTest.php | 53 ++
tests/Feature/Mcp/ListCallsToolElasticFeatureTest.php | 155 ++++
tests/Feature/Mcp/ListCallsToolFeatureTest.php | 352 ++++++++++
tests/Feature/Mcp/McpTestHelpersTrait.php | 77 ++
tests/Feature/Services/Team/TeamDeleteHandlers/Retention/RetentionRepositoryHandlerTest.php | 1 +
tests/Stubs/SentryStub.php | 18 +
tests/Unit/Component/ActivityAnalytics/Service/CalculateTalkTimeOffsetFromTranscriptionTest.php | 28 +-
tests/Unit/Component/AiActivityType/Services/AiActivityTypeEligibilityCheckerTest.php | 103 ++-
tests/Unit/Component/AiAutomation/Actions/PrepareUpdateDtoActionTest.php | 91 +++
tests/Unit/Component/AiAutomation/Services/CrmFillingEligibilityCheckerTest.php | 124 ++++
tests/Unit/Component/AiAutomation/TestCrmAiPromptServiceTest.php | 67 +-
tests/Unit/Component/AiCallScoring/Services/AiCallScoringEligibilityCheckerTest.php | 55 ++
tests/Unit/Component/ES/ElasticSearchWorkerManagerTest.php | 135 ----
tests/Unit/Component/ES/Processor/Actions/LoadDocumentsActionTest.php | 220 ++++++
tests/Unit/Component/ES/Processor/EntityQueryBuilderTest.php | 21 +-
tests/Unit/Component/ES/Processor/Traits/SkipActivityTraitTest.php | 51 --
tests/Unit/Component/ES/Worker/ActivityWorkerTest.php | 174 -----
tests/Unit/Component/ES/Worker/EntityWorkerTest.php | 97 ---
tests/Unit/Component/ES/Worker/WorkerAmountTest.php | 116 ---
tests/Unit/Component/Encoding/Job/AnalyzeTrackChannelsJobTest.php | 52 +-
tests/Unit/Component/Encoding/Service/GenerateSpeechFromSilenceServiceTest.php | 171 ++---
tests/Unit/Component/FFMpeg/Services/GetSpeechIntervalsTest.php | 36 +-
tests/Unit/Component/LanguageDetection/Services/FindSpeechTimeServiceTest.php | 20 +-
tests/Unit/Component/MobileSettings/MobileSettingsControllerTest.php | 5 +-
tests/Unit/Component/ParticipantSpeech/Services/ParticipantSpeechesCreatorTest.php | 75 ++
tests/Unit/Component/ParticipantSpeech/Services/ParticipantSpeechesDeleterTest.php | 63 ++
tests/Unit/Component/ParticipantSpeech/Services/ParticipantSpeechesProviderTest.php | 134 ++++
tests/Unit/Component/ParticipantSpeech/Services/ParticipantSpeechesUploaderTest.php | 57 ++
tests/Unit/Component/Transcription/Diarization/Services/GetNormalizedParticipantSpeechesServiceTest.php | 51 +-
tests/Unit/Component/Transcription/Diarization/Source/MeetingBotSourceTest.php | 29 +-
tests/Unit/Contracts/Services/Calendar/CalendarTraitTest.php | 58 +-
tests/Unit/Http/Controllers/Kiosk/ActivityControllerTest.php | 159 +++++
tests/Unit/Jobs/Activity/Import/ImportTwilioVideoSpeechesJobTest.php | 22 +-
tests/Unit/Jobs/Activity/Import/IsActivityReadyForProcessingJobTest.php | 26 +-
tests/Unit/Jobs/Calendar/SetupCalendarSyncTest.php | 25 -
tests/Unit/Services/Activity/ParticipantsServiceTest.php | 12 +-
tests/Unit/Services/Activity/Twilio/S3RecordingCredentialsServiceTest.php | 180 +++++
tests/Unit/Services/ActivityServiceTest.php | 132 ++++
tests/Unit/Services/Calendar/CalendarActivityServiceTest.php | 150 +++-
tests/Unit/Services/Calendar/Command/ImportParticipantsTest.php | 6 +-
tests/Unit/Services/Calendar/Command/MapActivityDataTest.php | 78 +-
tests/Unit/Services/Calendar/GoogleCalendarServiceTest.php | 116 +++
tests/Unit/Services/Crm/Close/ServiceTest.php | 165 +++++
tests/Unit/Services/Crm/Hubspot/ServiceTest.php | 272 ++++++-
tests/Unit/Services/Crm/Hubspot/ServiceTraits/OpportunitySyncTest.php | 25 +-
tests/Unit/Services/Crm/Hubspot/ServiceTraits/OpportunitySyncTraitMatchActivitiesTest.php | 3 +-
tests/Unit/Services/Crm/IntegrationApp/ServiceTraits/SyncCrmEntitiesTraitOpportunitiesTest.php | 40 ++
tests/Unit/Services/Crm/Pipedrive/ImportOpportunityMatchActivitiesTest.php | 2 +
tests/Unit/Services/Crm/Salesforce/ServiceTest.php | 139 ++++
tests/Unit/Services/Mail/Office/EmailApiClientTest.php | 195 ++---
tests/Unit/Services/RecallAI/RecallAIServiceTest.php | 24 +-
175 files changed, 12562 insertions(+), 2162 deletions(-)
create mode 120000 CLAUDE.md
create mode 100644 app/Component/AiAutomation/Services/CrmFillingEligibilityChecker.php
delete mode 100644 app/Component/ES/ElasticSearchWorkerManager.php
delete mode 100644 app/Component/ES/Processor/Traits/SkipActivityTrait.php
delete mode 100644 app/Component/ES/Worker/ActivityWorker.php
delete mode 100644 app/Component/ES/Worker/EntityWorker.php
delete mode 100644 app/Component/ES/Worker/WorkerAmount.php
delete mode 100644 app/Component/ES/Worker/WorkerInterface.php
create mode 100644 app/Component/ProphetAi/Exceptions/InsufficientTranscriptException.php
create mode 100644 app/Component/Transcription/DTO/Http/Transcription/AssemblyAI/AssemblyAI/NoAssemblyIdException.php
create mode 100644 app/Component/Transcription/DTO/Http/Transcription/TranscriptionIsNotCorrectFormatException.php
create mode 100644 app/Console/Commands/Activities/SetupIntegration/TwilioSetS3RecordingCredentialsCommand.php
create mode 100644 app/Console/Commands/Crm/BackfillOpportunityUserFromAccountCommand.php
delete mode 100644 app/Console/Commands/Elasticsearch/AsyncUpdateEsActivities.php
create mode 100644 app/Console/Commands/IssueMcpTokenCommand.php
create mode 100644 app/Http/Middleware/McpAuditMiddleware.php
create mode 100644 app/Http/Middleware/McpTierMiddleware.php
create mode 100644 app/Mcp/Contracts/McpCallRepositoryInterface.php
create mode 100644 app/Mcp/DTO/ListCallsFilters.php
create mode 100644 app/Mcp/Errors/McpError.php
create mode 100644 app/Mcp/Repositories/McpActivityHydrator.php
create mode 100644 app/Mcp/Repositories/McpCallRepository.php
create mode 100644 app/Mcp/Repositories/McpElasticCallRepository.php
create mode 100644 app/Mcp/Servers/JiminnyServer.php
create mode 100644 app/Mcp/Tools/ListCallsTool.php
create mode 100644 app/Services/Activity/Twilio/S3RecordingCredentialsService.php
create mode 100644 config/mcp.php
create mode 100644 database/migrations/2026_04_30_120000_create_mcp_audit_log_table.php
create mode 100644 docs/mcp/explorer/explorer.html
create mode 100644 docs/mcp/explorer/explorer.template.html
create mode 100644 docs/mcp/explorer/generate.js
create mode 100644 docs/mcp/explorer/tool-explorer-meta.json
create mode 100644 docs/mcp/tools-list.json
create mode 100644 docs/mcp/tools.md
create mode 100644 front-end/src/components/shared/modals/EntityPickerModal/__tests__/useEntitiesCache.spec.ts
create mode 100644 tests/Feature/Component/Nudge/ProcessOrganisationImmediateNudgesJobTest.php
create mode 100644 tests/Feature/Mcp/IssueMcpTokenCommandTest.php
create mode 100644 tests/Feature/Mcp/ListCallsToolElasticFeatureTest.php
create mode 100644 tests/Feature/Mcp/ListCallsToolFeatureTest.php
create mode 100644 tests/Feature/Mcp/McpTestHelpersTrait.php
create mode 100644 tests/Stubs/SentryStub.php
create mode 100644 tests/Unit/Component/AiAutomation/Services/CrmFillingEligibilityCheckerTest.php
delete mode 100644 tests/Unit/Component/ES/ElasticSearchWorkerManagerTest.php
create mode 100644 tests/Unit/Component/ES/Processor/Actions/LoadDocumentsActionTest.php
delete mode 100644 tests/Unit/Component/ES/Processor/Traits/SkipActivityTraitTest.php
delete mode 100644 tests/Unit/Component/ES/Worker/ActivityWorkerTest.php
delete mode 100644 tests/Unit/Component/ES/Worker/EntityWorkerTest.php
delete mode 100644 tests/Unit/Component/ES/Worker/WorkerAmountTest.php
create mode 100644 tests/Unit/Component/ParticipantSpeech/Services/ParticipantSpeechesCreatorTest.php
create mode 100644 tests/Unit/Http/Controllers/Kiosk/ActivityControllerTest.php
create mode 100644 tests/Unit/Services/Activity/Twilio/S3RecordingCredentialsServiceTest.php
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20725-handle-HS-search-rate-limit) $ git status
On branch master
Your branch is behind 'origin/master' by 114 commits, and can be fast-forwarded.
(use "git pull" to update your local branch)
Changes not staged for commit:
(use "git add <file>..." to update what will be committed)
(use "git restore <file>..." to discard changes in working directory)
modified: .env.local
modified: app/Component/SCIM/Constants.php
modified: app/Component/SCIM/ScimProvisioning.php
modified: app/Component/Twilio/Conference/ConferenceManager/SoftPhoneManager.php
modified: app/Console/Commands/JiminnyDebugCommand.php
modified: app/DTO/SCIM/AAD/Request/CoreUserRequest.php
modified: app/DTO/SCIM/AAD/Response/CoreUser.php
modified: app/Services/Telephony/TextMessagingService.php
modified: config/logging.php
Untracked files:
(use "git add <file>..." to include in what will be committed)
.env.nikilocal
.env.other
WEBHOOK_FILTERING_IMPLEMENTATION.md
app/Component/SCIM/Mutators/Attributes/User/RoleAttr.php
app/Console/Commands/Crm/Hubspot/SimulateWebhooksCommand.php
app/Console/Commands/Reports/CreateMockAskJiminnyReportResultCommand.php
app/Rules/ListenerRoleCannotHaveAdminOrManagerPermissionRule.php
ids.txt
public/favicon.ico
raw_sql_query.sql
tests/Unit/Component/SCIM/Mutators/Attributes/User/RoleAttrTest.php
tests/Unit/Policies/CanAccessAiReportsTest.php
tests/Unit/Rules/ListenerRoleCannotHaveAdminOrManagerPermissionRuleTest.php
no changes added to commit (use "git add" and/or "git commit -a")
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (master) $ git pull
remote: Enumerating objects: 306, done.
remote: Counting objects: 100% (299/299), done.
remote: Compressing objects: 100% (183/183), done.
remote: Total 306 (delta 213), reused 171 (delta 116), pack-reused 7 (from 1)
Receiving objects: 100% (306/306), 80.12 KiB | 1000.00 KiB/s, done.
Resolving deltas: 100% (213/213), completed with 53 local objects.
From github.com:jiminny/app
90bca4e4b2..5604af40cf master -> origin/master
4e7078fd8b..0b8343d179 JY-18091-upgrade-to-php-8-5 -> origin/JY-18091-upgrade-to-php-8-5
098eeaa087..d5a447e492 JY-20613-allow-owner-role-on-team-setup -> origin/JY-20613-allow-owner-role-on-team-setup
c3a76ace91..af65249d0f JY-20749-user-can-view-recorded-meetings -> origin/JY-20749-user-can-view-recorded-meetings
d94a285ae7..7ce96cb5fe JY-20808-low-priority-indexing-queue -> origin/JY-20808-low-priority-indexing-queue
* [new branch] JY-20842-remove-partial-updater -> origin/JY-20842-remove-partial-updater
* [new branch] JY-20920-fix-participant-flip -> origin/JY-20920-fix-participant-flip
* [new branch] secfix/npm-20260519 -> origin/secfix/npm-20260519
Updating cb4ebf0c36..5604af40cf
Fast-forward
app/Component/ES/ChunkSize.php | 54 +++++++++++++++++++
app/Component/ES/Processor/DTOs/SelectionList.php | 4 +-
app/Component/ES/Processor/TargetEntitiesSelector.php | 19 ++++---
app/Component/MeetingBot/Service/ParticipantMatcher.php | 46 ++++++++++++----
app/Exceptions/RateLimitException.php | 19 ++++++-
app/Http/Middleware/McpTierMiddleware.php | 27 ++--------
app/Jobs/Crm/MatchActivityCrmData.php | 47 ++++++++++++----
app/Jobs/Middleware/HandleHubspotRateLimit.php | 42 +++++++++++++++
app/Mcp/Servers/JiminnyServer.php | 2 +
app/Mcp/Tools/GetMeTool.php | 157 +++++++++++++++++++++++++++++++++++++++++++++++++++++
app/Models/Feature/FeatureEnum.php | 1 +
app/Services/Activity/HubSpot/ProviderResolver.php | 4 +-
app/Services/Activity/HubSpot/ProviderResolverInterface.php | 2 +-
app/Services/Activity/HubSpot/Providers/Provider.php | 2 +-
app/Services/Activity/HubSpot/Providers/ProviderKixie.php | 2 +-
app/Services/Activity/HubSpot/Providers/ProviderOrum.php | 2 +-
app/Services/Activity/HubSpot/Providers/ProviderTwilio.php | 2 +-
app/Services/Activity/HubSpot/Providers/ProviderTwilioFlex.php | 5 +-
app/Services/Activity/HubSpot/Service.php | 97 +++++++++++++++++++++++++++------
app/Services/Crm/Hubspot/Client.php | 132 +++++++++++++++++++++++++++++++++++++++++++++
app/Services/Crm/Hubspot/HubspotClientInterface.php | 15 ++++++
app/Services/Crm/Hubspot/Pagination/HubspotPaginationService.php | 21 ++++----
app/Services/Crm/Hubspot/Pagination/PaginationState.php | 2 +-
database/migrations/2026_05_13_124153_create_mcp_feature_flag.php | 25 +++++++++
tests/Feature/Mcp/GetMeToolFeatureTest.php | 140 +++++++++++++++++++++++++++++++++++++++++++++++
tests/Feature/Mcp/ListCallsToolFeatureTest.php | 2 +-
tests/Feature/Mcp/McpTestHelpersTrait.php | 19 ++++++-
tests/Unit/Component/ES/ChunkSizeTest.php | 50 +++++++++++++++++
tests/Unit/Component/ES/Processor/DTOs/SelectionListTest.php | 27 +++++++---
tests/Unit/Component/ES/Processor/TargetEntitiesSelectorTest.php | 39 ++++++++------
tests/Unit/Component/MeetingBot/Service/ParticipantMatcherTest.php | 68 ++++++++++++++++++++++-
tests/Unit/Exceptions/RateLimitExceptionTest.php | 56 +++++++++++++++++++
tests/Unit/Jobs/Crm/MatchActivityCrmDataTest.php | 8 +--
tests/Unit/Jobs/Middleware/HandleHubspotRateLimitTest.php | 151 +++++++++++++++++++++++++++++++++++++++++++++++++++
tests/Unit/Services/Activity/HubSpot/ServiceTest.php | 109 +++++++++++++++++++++++++++++++++++++
tests/Unit/Services/Crm/Hubspot/ClientTest.php | 250 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
tests/Unit/Services/Crm/Hubspot/Pagination/HubspotPaginationServiceTest.php | 283 +++++++++++++++++++++---------------------------------------------------------------------------
37 files changed, 1587 insertions(+), 344 deletions(-)
create mode 100644 app/Component/ES/ChunkSize.php
create mode 100644 app/Jobs/Middleware/HandleHubspotRateLimit.php
create mode 100644 app/Mcp/Tools/GetMeTool.php
create mode 100644 database/migrations/2026_05_13_124153_create_mcp_feature_flag.php
create mode 100644 tests/Feature/Mcp/GetMeToolFeatureTest.php
create mode 100644 tests/Unit/Component/ES/ChunkSizeTest.php
create mode 100644 tests/Unit/Exceptions/RateLimitExceptionTest.php
create mode 100644 tests/Unit/Jobs/Middleware/HandleHubspotRateLimitTest.php
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (master) $ git pull
Already up to date.
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (master) $ co -b JY-20676-delete-report-related-objects
Switched to a new branch 'JY-20676-delete-report-related-objects'
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20676-delete-report-related-objects) $ csfix
docker exec -it docker_lamp_1 ./vendor/bin/php-cs-fixer fix --config=.php-cs-fixer.dist.php -v --using-cache=no --diff
PHP CS Fixer 3.87.1 Alexander by Fabien Potencier, Dariusz Ruminski and contributors.
PHP runtime: 8.3.30
Running 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!
Loaded config default from ".php-cs-fixer.dist.php".
5690/5690 [▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓] 100%
1) app/Console/Commands/JiminnyDebugCommand.php (statement_indentation, blank_line_before_statement)
---------- begin diff ----------
--- /home/jiminny/app/Console/Commands/JiminnyDebugCommand.php
+++ /home/jiminny/app/Console/Commands/JiminnyDebugCommand.php
@@ -23,6 +23,7 @@
if ($action === 'redis-set') {
$this->testRedisSet();
+
return;
}
@@ -45,7 +46,7 @@
$ttl = 60;
try {
-// $result = Redis::set($testKey, $testValue, 'EX', $ttl, 'NX');
+ // $result = Redis::set($testKey, $testValue, 'EX', $ttl, 'NX');
$result = Redis::set($testKey, $testValue, ['nx', 'ex' => $ttl]);
if ($result) {
----------- end diff -----------
Fixed 1 of 5690 files i...
|
[{"role":"AXTextArea","text [{"role":"AXTextArea","text":"Last login: Mon May 18 09:17:28 on ttys007\n\nPoetry could not find a pyproject.toml file in /Users/lukas/jiminny/app or its parents\n\nPoetry could not find a pyproject.toml file in /Users/lukas/jiminny/app or its parents\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (pipedrive-sdk-poc) $ co master\nerror: Your local changes to the following files would be overwritten by checkout:\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tPIPEDRIVE_V2_MIGRATION_TICKETS.md\nPlease commit your changes or stash them before you switch branches.\nAborting\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (pipedrive-sdk-poc) $ git pull\nremote: Enumerating objects: 1047, done.\nremote: Counting objects: 100% (832/832), done.\nremote: Compressing objects: 100% (298/298), done.\nremote: Total 1047 (delta 634), reused 596 (delta 534), pack-reused 215 (from 3)\nReceiving objects: 100% (1047/1047), 353.16 KiB | 1.56 MiB/s, done.\nResolving deltas: 100% (687/687), completed with 107 local objects.\nFrom github.com:jiminny/app\n 907c54896c..34656c53ed pipedrive-sdk-poc -> origin/pipedrive-sdk-poc\n 03325ec50f..4e7078fd8b JY-18091-upgrade-to-php-8-5 -> origin/JY-18091-upgrade-to-php-8-5\n e7d231e163..bc6a3fce6b JY-20725-handle-HS-search-rate-limit -> origin/JY-20725-handle-HS-search-rate-limit\n * [new branch] JY-20749-user-can-view-recorded-meetings -> origin/JY-20749-user-can-view-recorded-meetings\n 98ca281a04..e0351be069 JY-20808-low-priority-indexing-queue -> origin/JY-20808-low-priority-indexing-queue\n 569abb5149..3906a9238a JY-20835-mcp-enable-users-to-get-a-list-of-deals-and-their-details -> origin/JY-20835-mcp-enable-users-to-get-a-list-of-deals-and-their-details\n ad6c2a86e8..50eb6afba9 JY-20846-mcp-enable-the-ai-to-know-details-about-the-user -> origin/JY-20846-mcp-enable-the-ai-to-know-details-about-the-user\n * [new branch] JY-20893-chunk-control-per-update-target -> origin/JY-20893-chunk-control-per-update-target\n 31c62924a5..cb4ebf0c36 master -> origin/master\nUpdating 907c54896c..34656c53ed\nFast-forward\n PIPEDRIVE_V2_MIGRATION_TICKETS.md | 52 ++++++++++++++++++++++++++++++++++++++++++++++++++++\n 1 file changed, 52 insertions(+)\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (pipedrive-sdk-poc) $ co master\nM\u0000\u0000\u0000\u0000\u0000\u0000\t.env.local\nM\u0000\u0000\u0000\u0000\u0000\u0000\tconfig/logging.php\nSwitched to branch 'master'\nYour branch is behind 'origin/master' by 31 commits, and can be fast-forwarded.\n (use \"git pull\" to update your local branch)\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (master) $ git pull\nUpdating 31c62924a5..cb4ebf0c36\nFast-forward\n app/Component/ES/Processor/Traits/SelectEntityListTrait.php | 20 ------\n app/Services/Calendar/CalendarActivityService.php | 46 +++++++++++++\n app/Services/Calendar/Command/MapActivityData.php | 106 +++-------------------------\n docs/mcp/explorer/explorer.html | 104 +++++++++++++++++++++++++---\n docs/mcp/explorer/explorer.template.html | 102 ++++++++++++++++++++++++---\n docs/mcp/tools-list.json | 373 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++-------\n docs/mcp/tools.md | 117 +++++++++++++++++++++++--------\n tests/Unit/Component/ES/AsyncUpdateElasticSearchTest.php | 16 +----\n tests/Unit/Component/ES/Listeners/UpdateMultipleTargetsListenerTest.php | 10 ---\n tests/Unit/Component/ES/Listeners/UpdateSingleTargetListenerTest.php | 6 --\n tests/Unit/Component/ES/Processor/TargetEntitiesSelectorTest.php | 9 ---\n tests/Unit/Component/ES/Processor/Traits/SelectEntityListTraitTest.php | 15 ++--\n tests/Unit/Component/ES/UpdateProcessManagerTest.php | 2 -\n tests/Unit/Services/Calendar/CalendarActivityServiceTest.php | 150 ++++++++++++++++++++++++++++++++++++++--\n tests/Unit/Services/Calendar/Command/MapActivityDataTest.php | 78 ++-------------------\n 15 files changed, 832 insertions(+), 322 deletions(-)\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (master) $ co -b JY-20613-allow-owner-role-on-team-setup\nSwitched to a new branch 'JY-20613-allow-owner-role-on-team-setup'\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20613-allow-owner-role-on-team-setup) $ csfix\ndocker exec -it docker_lamp_1 ./vendor/bin/php-cs-fixer fix --config=.php-cs-fixer.dist.php -v --using-cache=no --diff \nPHP CS Fixer 3.87.1 Alexander by Fabien Potencier, Dariusz Ruminski and contributors.\nPHP runtime: 8.3.30\nRunning analysis on 7 cores with 10 files per process.\nParallel runner is an experimental feature and may be unstable, use it at your own risk. Feedback highly appreciated!\nLoaded config default from \".php-cs-fixer.dist.php\".\n 5682/5682 [▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓] 100%\n\n\nFixed 0 of 5682 files in 56.978 seconds, 67.00 MB memory used\n\nWhat's next:\n Try Docker Debug for seamless, persistent debugging tools in any container or image → docker debug docker_lamp_1\n Learn more at https://docs.docker.com/go/debug-cli/\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20613-allow-owner-role-on-team-setup) $ ;xd\ndocker exec -it docker_lamp_1 bash -c \"mv /usr/local/etc/php/conf.d/xdebug.ini ~/xdebug.ini\"\n\nWhat's next:\n Try Docker Debug for seamless, persistent debugging tools in any container or image → docker debug docker_lamp_1\n Learn more at https://docs.docker.com/go/debug-cli/\ndocker exec -it docker_lamp_1 supervisorctl restart all\njiminny-worker-processing-2:jiminny-worker-processing-2_00: stopped\njiminny-worker-processing-3:jiminny-worker-processing-3_00: stopped\njiminny-worker-processing-4:jiminny-worker-processing-4_00: stopped\njiminny-worker-processing-5:jiminny-worker-processing-5_00: stopped\njiminny-worker-processing-delayed:jiminny-worker-processing-delayed_00: stopped\nworker-analytics:worker-analytics_00: stopped\nworker-crm-update:worker-crm-update_00: stopped\nworker-download:worker-download_00: stopped\nworker-nudges:worker-nudges_00: stopped\nartisan-schedule:artisan-schedule_00: stopped\nworker-emails:worker-emails_00: stopped\nworker-calendar:worker-calendar_00: stopped\nworker:worker_00: stopped\nworker-conferences:worker-conferences_00: stopped\nworker-crm-sync:worker-crm-sync_00: stopped\njiminny-worker-processing-1:jiminny-worker-processing-1_00: stopped\nworker-audio:worker-audio_00: stopped\nworker-es-update:worker-es-update_00: stopped\nartisan-schedule:artisan-schedule_00: started\njiminny-worker-processing-1:jiminny-worker-processing-1_00: started\njiminny-worker-processing-2:jiminny-worker-processing-2_00: started\njiminny-worker-processing-3:jiminny-worker-processing-3_00: started\njiminny-worker-processing-4:jiminny-worker-processing-4_00: started\njiminny-worker-processing-5:jiminny-worker-processing-5_00: started\njiminny-worker-processing-delayed:jiminny-worker-processing-delayed_00: started\nworker:worker_00: started\nworker-analytics:worker-analytics_00: started\nworker-audio:worker-audio_00: started\nworker-calendar:worker-calendar_00: started\nworker-conferences:worker-conferences_00: started\nworker-crm-sync:worker-crm-sync_00: started\nworker-crm-update:worker-crm-update_00: started\nworker-download:worker-download_00: started\nworker-emails:worker-emails_00: started\nworker-es-update:worker-es-update_00: started\nworker-nudges:worker-nudges_00: started\n\nWhat's next:\n Try Docker Debug for seamless, persistent debugging tools in any container or image → docker debug docker_lamp_1\n Learn more at https://docs.docker.com/go/debug-cli/\ndocker exec -it docker_lamp_1 php -v\nPHP 8.3.30 (cli) (built: Mar 16 2026 22:32:32) (NTS)\nCopyright (c) The PHP Group\nZend Engine v4.3.30, Copyright (c) Zend Technologies\n with Zend OPcache v8.3.30, Copyright (c), by Zend Technologies\n\nWhat's next:\n Try Docker Debug for seamless, persistent debugging tools in any container or image → docker debug docker_lamp_1\n Learn more at https://docs.docker.com/go/debug-cli/\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20613-allow-owner-role-on-team-setup) $ csfix\ndocker exec -it docker_lamp_1 ./vendor/bin/php-cs-fixer fix --config=.php-cs-fixer.dist.php -v --using-cache=no --diff \nPHP CS Fixer 3.87.1 Alexander by Fabien Potencier, Dariusz Ruminski and contributors.\nPHP runtime: 8.3.30\nRunning analysis on 7 cores with 10 files per process.\nParallel runner is an experimental feature and may be unstable, use it at your own risk. Feedback highly appreciated!\nLoaded config default from \".php-cs-fixer.dist.php\".\n 5682/5682 [▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓] 100%\n\n\nFixed 0 of 5682 files in 49.910 seconds, 60.00 MB memory used\n\nWhat's next:\n Try Docker Debug for seamless, persistent debugging tools in any container or image → docker debug docker_lamp_1\n Learn more at https://docs.docker.com/go/debug-cli/\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20613-allow-owner-role-on-team-setup) $ git status\nOn branch JY-20613-allow-owner-role-on-team-setup\nYour branch is ahead of 'origin/JY-20613-allow-owner-role-on-team-setup' by 1 commit.\n (use \"git push\" to publish your local commits)\n\nChanges not staged for commit:\n (use \"git add <file>...\" to update what will be committed)\n (use \"git restore <file>...\" to discard changes in working directory)\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tmodified: .env.local\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tmodified: config/logging.php\n\nUntracked files:\n (use \"git add <file>...\" to include in what will be committed)\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\t.env.nikilocal\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\t.env.other\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tWEBHOOK_FILTERING_IMPLEMENTATION.md\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tapp/Console/Commands/Crm/Hubspot/SimulateWebhooksCommand.php\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tapp/Console/Commands/Reports/CreateMockAskJiminnyReportResultCommand.php\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tids.txt\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tpublic/favicon.ico\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\traw_sql_query.sql\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\ttests/Unit/Policies/CanAccessAiReportsTest.php\n\nno changes added to commit (use \"git add\" and/or \"git commit -a\")\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20613-allow-owner-role-on-team-setup) $ git pull\nremote: Enumerating objects: 248, done.\nremote: Counting objects: 100% (128/128), done.\nremote: Compressing objects: 100% (23/23), done.\nremote: Total 59 (delta 43), reused 44 (delta 33), pack-reused 0 (from 0)\nUnpacking objects: 100% (59/59), 10.48 KiB | 228.00 KiB/s, done.\nFrom github.com:jiminny/app\n b7df560451..190239dfd4 JY-20613-allow-owner-role-on-team-setup -> origin/JY-20613-allow-owner-role-on-team-setup\n e0351be069..d94a285ae7 JY-20808-low-priority-indexing-queue -> origin/JY-20808-low-priority-indexing-queue\n * [new branch] JY-20920-fix-participant-matcher -> origin/JY-20920-fix-participant-matcher\n cb4ebf0c36..90bca4e4b2 master -> origin/master\nMerge made by the 'ort' strategy.\n app/Component/ES/ChunkSize.php | 54 +++++++++++++++++++++++++++\n app/Component/ES/Processor/DTOs/SelectionList.php | 4 +-\n app/Component/ES/Processor/TargetEntitiesSelector.php | 19 ++++++----\n app/Http/Middleware/McpTierMiddleware.php | 27 +++-----------\n app/Mcp/Servers/JiminnyServer.php | 2 +\n app/Mcp/Tools/GetMeTool.php | 157 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++\n app/Models/Feature/FeatureEnum.php | 1 +\n database/migrations/2026_05_13_124153_create_mcp_feature_flag.php | 25 +++++++++++++\n front-end/src/components/Settings/Kiosk/modals/EditTeamModal/EditTeamModal.vue | 52 ++++++++++++++++++--------\n front-end/src/components/Settings/Kiosk/modals/EditTeamModal/__tests__/EditTeamModal.spec.js | 14 +++++++\n tests/Feature/Mcp/GetMeToolFeatureTest.php | 140 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++\n tests/Feature/Mcp/ListCallsToolFeatureTest.php | 2 +-\n tests/Feature/Mcp/McpTestHelpersTrait.php | 19 +++++++++-\n tests/Unit/Component/ES/ChunkSizeTest.php | 50 +++++++++++++++++++++++++\n tests/Unit/Component/ES/Processor/DTOs/SelectionListTest.php | 27 ++++++++++----\n tests/Unit/Component/ES/Processor/TargetEntitiesSelectorTest.php | 39 +++++++++++---------\n 16 files changed, 557 insertions(+), 75 deletions(-)\n create mode 100644 app/Component/ES/ChunkSize.php\n create mode 100644 app/Mcp/Tools/GetMeTool.php\n create mode 100644 database/migrations/2026_05_13_124153_create_mcp_feature_flag.php\n create mode 100644 tests/Feature/Mcp/GetMeToolFeatureTest.php\n create mode 100644 tests/Unit/Component/ES/ChunkSizeTest.php\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20613-allow-owner-role-on-team-setup) $ git push\nEnumerating objects: 40, done.\nCounting objects: 100% (34/34), done.\nDelta compression using up to 8 threads\nCompressing objects: 100% (18/18), done.\nWriting objects: 100% (18/18), 1.58 KiB | 1.58 MiB/s, done.\nTotal 18 (delta 15), reused 0 (delta 0), pack-reused 0\nremote: Resolving deltas: 100% (15/15), completed with 13 local objects.\nTo github.com:jiminny/app.git\n 190239dfd4..ec1b261264 JY-20613-allow-owner-role-on-team-setup -> JY-20613-allow-owner-role-on-team-setup\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20613-allow-owner-role-on-team-setup) $ gbr\n* JY-20613-allow-owner-role-on-team-setup\n pipedrive-sdk-poc\n master\n JY-20903-update_activity-stage-on-opportunity-change\n JY-20904-fix-update-es-on-activity-command\n JY-20891-improve-sms-text-relays\n JY-20725-handle-HS-search-rate-limit\n JY-20818-move-AJ-reports-to-separated-datadog-metric\n JY-20773-fix-automated-reports-user-pilot-tracking\n JY-20157-AJ-report-not-send-notification\n JY-20508-notify-before-AJ-report-expiration\n JY-20372-ai-reports-promotion-pages\n JY-20352-sync-opportunities-without-a-local-owner-user-id-is-null\n JY-20738-debug-AJ-tracking-UP\n a\n JY-18909-automated-reports-ask-jiminny\n JY-20692-fix-integration-app-token-auth-response-change\n JY-20553-debug-crm-sync-delays\n JY-20698-fix-SF-activity-types-on-new-playbook\n JY-20543-AJ-report-tracking\n JY-20384-handle-auto-sync-with-no-access-to-event-type\n JY-20458-ask-jiminny-user-definitions\n JY-19666-fix-import-contacts-account-association\n JY-19666-HS-import-contacts-and-accounts-batch-job\n JY-20458-Ask-Jiminny-Reports\n JY-20200-batch-update-CRM-objects-Salesforce\n JY-19666-HS-webhooks-add-contact-and-company\n JY-20348-trigger-setup-DI-layout-on-team-creation\n JY-20326-refactor-info-message-in-command\n JY-20317-fix-auto-log-delay-issue-on-all-channels-disabled\n JY-20312-remove-on-update-change-last-synced-at-crm-configurations\n JY-20306-SF-skip-auto-sync-for-task-based-playbook\n JY-20192-remove-deleted-team-from-saved-search-filters\n JY-20197-import-opportunity-batch-job\n JY-20293-enable-status-field-for-pipedrive-deals\n JY-20191-remove-commands-interactive-prompts\n JY-20118-change-default-sync-strategy\n JY-20183-add-cache-on-auto-log-delay\n JY-20197-add-import-opportunity-batch-job\n 20118-hs-opportunity-make-webhook-strategy-default\n JY-20118-make-default-hs-opportunity-sync-strategy-webhook-based\n JY-20196-handle-opportunity-without-note\n JY-20118-improve-opportunity-import\n JY-20189-handle-activity-search-on-deleted-groups\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20613-allow-owner-role-on-team-setup) $ co JY-20725-handle-HS-search-rate-limit\nM\u0000\u0000\u0000\u0000\u0000\u0000\t.env.local\nM\u0000\u0000\u0000\u0000\u0000\u0000\tconfig/logging.php\nSwitched to branch 'JY-20725-handle-HS-search-rate-limit'\nYour branch is behind 'origin/JY-20725-handle-HS-search-rate-limit' by 439 commits, and can be fast-forwarded.\n (use \"git pull\" to update your local branch)\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20725-handle-HS-search-rate-limit) $ git pull\nUpdating 0f3e438941..bc6a3fce6b\nFast-forward\n .gitignore | 3 +-\n .windsurfrules | 168 ++---\n CLAUDE.md | 1 +\n app/Component/ActivityAnalytics/Service/CalculateTalkTimeOffsetsFromTranscription.php | 24 +-\n app/Component/AiActivityType/Services/AiActivityTypeEligibilityChecker.php | 28 +-\n app/Component/AiAutomation/Actions/PrepareUpdateDtoAction.php | 32 +-\n app/Component/AiAutomation/Services/CrmFillingEligibilityChecker.php | 47 ++\n app/Component/AiAutomation/TestCrmAiPromptService.php | 14 +\n app/Component/AiCallScoring/Services/AiCallScoringEligibilityChecker.php | 9 +\n app/Component/ES/ElasticSearchDocumentPartialUpdater.php | 13 +-\n app/Component/ES/ElasticSearchWorkerManager.php | 86 ---\n app/Component/ES/Processor/Actions/LoadDocumentsAction.php | 80 +--\n app/Component/ES/Processor/EntityQueryBuilder.php | 12 +-\n app/Component/ES/Processor/TargetEntitiesSelector.php | 2 +-\n app/Component/ES/Processor/Traits/SkipActivityTrait.php | 25 -\n app/Component/ES/Repositories/EsResetActivityRepository.php | 11 +-\n app/Component/ES/Worker/ActivityWorker.php | 73 --\n app/Component/ES/Worker/EntityWorker.php | 44 --\n app/Component/ES/Worker/WorkerAmount.php | 60 --\n app/Component/ES/Worker/WorkerInterface.php | 15 -\n app/Component/ElasticSearch/Contract/Searchable.php | 4 +\n app/Component/Encoding/Job/AnalyzeTrackChannelsJob.php | 20 +-\n app/Component/Encoding/Service/GenerateSpeechFromSilenceService.php | 85 ++-\n app/Component/FFMpeg/Services/GetSpeechIntervalsService.php | 18 +-\n app/Component/LanguageDetection/Services/FindSpeechTimeService.php | 22 +-\n app/Component/Nudge/Job/ProcessOrganisationImmediateNudgesJob.php | 218 +++++-\n app/Component/ParagraphBreaker/Services/TranscriptionParagraphsService.php | 4 +\n app/Component/ParticipantSpeech/Services/ParticipantSpeechesCreator.php | 33 +\n app/Component/ParticipantSpeech/Services/ParticipantSpeechesDeleter.php | 15 +\n app/Component/ParticipantSpeech/Services/ParticipantSpeechesProvider.php | 51 +-\n app/Component/ParticipantSpeech/Services/ParticipantSpeechesUploader.php | 36 +\n app/Component/ProphetAi/Exceptions/InsufficientTranscriptException.php | 11 +\n app/Component/Transcription/DTO/Http/Transcription/AssemblyAI/AssemblyAI/NoAssemblyIdException.php | 11 +\n app/Component/Transcription/DTO/Http/Transcription/AssemblyAI/AssemblyAI/SuccessfulResponse.php | 6 +\n app/Component/Transcription/DTO/Http/Transcription/TranscriptionIsNotCorrectFormatException.php | 11 +\n app/Component/Transcription/Diarization/Services/GetNormalizedParticipantSpeechesService.php | 23 +-\n app/Component/Transcription/Diarization/Source/MeetingBotSource.php | 16 +-\n app/Component/Transcription/TranscriptionProcessor/TranscriptionProcessor.php | 3 +\n app/Console/Commands/Activities/ActivityHardDeleteCommand.php | 4 +-\n app/Console/Commands/Activities/Copy.php | 2 +\n app/Console/Commands/Activities/SetupIntegration/TwilioSetS3RecordingCredentialsCommand.php | 119 ++++\n app/Console/Commands/Activities/UpdateActivityElasticSearchDocumentCommand.php | 10 +-\n app/Console/Commands/Crm/BackfillOpportunityUserFromAccountCommand.php | 126 ++++\n app/Console/Commands/Elasticsearch/AsyncUpdateEsActivities.php | 19 -\n app/Console/Commands/Elasticsearch/AsyncUpdateEsEntities.php | 50 +-\n app/Console/Commands/Elasticsearch/ResetAsyncElasticSearchCommand.php | 30 +-\n app/Console/Commands/GeckoExport/GeckoExportParticipantSpeechesCommand.php | 14 +-\n app/Console/Commands/IssueMcpTokenCommand.php | 84 +++\n app/Console/Commands/JiminnyDebugCommand.php | 7 +-\n app/Console/Commands/Tracks/CleanupActivityTracksCommand.php | 2 +-\n app/Console/Kernel.php | 6 +-\n app/Contracts/Services/Calendar/CalendarTrait.php | 80 ++-\n app/Events/AutomatedReports/AutomatedReportGenerated.php | 3 +\n app/Http/Controllers/API/AiCallScoring/AiScorecardController.php | 7 +-\n app/Http/Controllers/API/TeamAiAutomationController.php | 8 +\n app/Http/Controllers/CustomerApi/CustomerApiController.php | 4 +-\n app/Http/Controllers/Kiosk/ActivityController.php | 58 +-\n app/Http/Controllers/Settings/PlaybookController.php | 15 +-\n app/Http/Kernel.php | 23 +\n app/Http/Middleware/McpAuditMiddleware.php | 156 ++++\n app/Http/Middleware/McpTierMiddleware.php | 54 ++\n app/Http/Requests/API/V2/ZapierUploadActivityRequest.php | 28 +-\n app/Jobs/Activity/Import/ImportTwilioVideoSpeechesJob.php | 25 +-\n app/Jobs/Activity/Import/IsActivityReadyForProcessingJob.php | 10 +-\n app/Jobs/Calendar/SetupCalendarSync.php | 21 +-\n app/Jobs/ImportRemoteTrackJob.php | 96 ++-\n app/Jobs/Mailbox/EmailTextRelay.php | 15 +-\n app/Mcp/Contracts/McpCallRepositoryInterface.php | 30 +\n app/Mcp/DTO/ListCallsFilters.php | 29 +\n app/Mcp/Errors/McpError.php | 123 ++++\n app/Mcp/Repositories/McpActivityHydrator.php | 145 ++++\n app/Mcp/Repositories/McpCallRepository.php | 84 +++\n app/Mcp/Repositories/McpElasticCallRepository.php | 171 +++++\n app/Mcp/Servers/JiminnyServer.php | 38 +\n app/Mcp/Tools/ListCallsTool.php | 205 ++++++\n app/Models/Activity.php | 10 +-\n app/Models/Activity/Transcription.php | 17 +-\n app/Models/ElasticSearch/OpportunityElasticSearchTrait.php | 5 +\n app/Models/Participant.php | 1 +\n app/Providers/AppServiceProvider.php | 22 +\n app/Repositories/Crm/ContactRepository.php | 69 +-\n app/Repositories/ParticipantSpeechRepository.php | 13 +-\n app/Services/Activity/ParticipantsService.php | 19 +-\n app/Services/Activity/Twilio/S3RecordingCredentialsService.php | 82 +++\n app/Services/ActivityService.php | 21 +-\n app/Services/Calendar/CalendarActivityService.php | 46 ++\n app/Services/Calendar/Command/ImportParticipants.php | 1 +\n app/Services/Calendar/Command/MapActivityData.php | 106 +--\n app/Services/Calendar/GoogleCalendarService.php | 12 +-\n app/Services/Crm/Close/Processor/OpportunityProcessor.php | 2 +-\n app/Services/Crm/Close/Service.php | 22 +-\n app/Services/Crm/Copper/Service.php | 12 +-\n app/Services/Crm/Hubspot/Service.php | 154 +++-\n app/Services/Crm/Hubspot/ServiceTraits/OpportunitySyncTrait.php | 88 ++-\n app/Services/Crm/IntegrationApp/ServiceTraits/SyncCrmEntitiesTrait.php | 22 +-\n app/Services/Crm/Pipedrive/Service.php | 17 +-\n app/Services/Crm/Salesforce/Service.php | 42 +-\n app/Services/Mail/Office/EmailApiClient.php | 129 +---\n app/Services/RecallAI/Commands/ScheduleBotCommand.php | 39 +-\n app/Services/RecallAI/RecallAIService.php | 22 +-\n composer.json | 3 +-\n composer.lock | 87 ++-\n config/mcp.php | 23 +\n database/migrations/2026_04_30_120000_create_mcp_audit_log_table.php | 36 +\n docs/mcp/explorer/explorer.html | 697 ++++++++++++++++++\n docs/mcp/explorer/explorer.template.html | 697 ++++++++++++++++++\n docs/mcp/explorer/generate.js | 215 ++++++\n docs/mcp/explorer/tool-explorer-meta.json | 11 +\n docs/mcp/tools-list.json | 2536 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++\n docs/mcp/tools.md | 621 ++++++++++++++++\n front-end/package.json | 4 +-\n front-end/src/components/Settings/OrgSettings/AiAutomation/CrmFilling/TemplateFieldForm.vue | 28 +-\n front-end/src/components/Settings/OrgSettings/Playbooks/AddEditPlaybook.vue | 10 +\n front-end/src/components/playback/comments/ActivityComment.less | 10 +-\n front-end/src/components/shared/PromptTester/PromptTester.vue | 12 +-\n front-end/src/components/shared/__tests__/PromptTester.spec.js | 35 +\n front-end/src/components/shared/modals/EntityPickerModal/__tests__/useEntitiesCache.spec.ts | 37 +\n front-end/src/components/shared/modals/EntityPickerModal/useEntitiesCache.ts | 9 +\n front-end/yarn.lock | 16 +-\n phpstan-baseline.neon | 50 --\n routes/api.php | 11 +\n sonar-project.properties | 91 ++-\n tests/Feature/Component/Nudge/ProcessOrganisationImmediateNudgesJobTest.php | 534 ++++++++++++++\n tests/Feature/Jobs/ImportRemoteTrackJobTest.php | 283 +++++++-\n tests/Feature/Mcp/IssueMcpTokenCommandTest.php | 53 ++\n tests/Feature/Mcp/ListCallsToolElasticFeatureTest.php | 155 ++++\n tests/Feature/Mcp/ListCallsToolFeatureTest.php | 352 ++++++++++\n tests/Feature/Mcp/McpTestHelpersTrait.php | 77 ++\n tests/Feature/Services/Team/TeamDeleteHandlers/Retention/RetentionRepositoryHandlerTest.php | 1 +\n tests/Stubs/SentryStub.php | 18 +\n tests/Unit/Component/ActivityAnalytics/Service/CalculateTalkTimeOffsetFromTranscriptionTest.php | 28 +-\n tests/Unit/Component/AiActivityType/Services/AiActivityTypeEligibilityCheckerTest.php | 103 ++-\n tests/Unit/Component/AiAutomation/Actions/PrepareUpdateDtoActionTest.php | 91 +++\n tests/Unit/Component/AiAutomation/Services/CrmFillingEligibilityCheckerTest.php | 124 ++++\n tests/Unit/Component/AiAutomation/TestCrmAiPromptServiceTest.php | 67 +-\n tests/Unit/Component/AiCallScoring/Services/AiCallScoringEligibilityCheckerTest.php | 55 ++\n tests/Unit/Component/ES/ElasticSearchWorkerManagerTest.php | 135 ----\n tests/Unit/Component/ES/Processor/Actions/LoadDocumentsActionTest.php | 220 ++++++\n tests/Unit/Component/ES/Processor/EntityQueryBuilderTest.php | 21 +-\n tests/Unit/Component/ES/Processor/Traits/SkipActivityTraitTest.php | 51 --\n tests/Unit/Component/ES/Worker/ActivityWorkerTest.php | 174 -----\n tests/Unit/Component/ES/Worker/EntityWorkerTest.php | 97 ---\n tests/Unit/Component/ES/Worker/WorkerAmountTest.php | 116 ---\n tests/Unit/Component/Encoding/Job/AnalyzeTrackChannelsJobTest.php | 52 +-\n tests/Unit/Component/Encoding/Service/GenerateSpeechFromSilenceServiceTest.php | 171 ++---\n tests/Unit/Component/FFMpeg/Services/GetSpeechIntervalsTest.php | 36 +-\n tests/Unit/Component/LanguageDetection/Services/FindSpeechTimeServiceTest.php | 20 +-\n tests/Unit/Component/MobileSettings/MobileSettingsControllerTest.php | 5 +-\n tests/Unit/Component/ParticipantSpeech/Services/ParticipantSpeechesCreatorTest.php | 75 ++\n tests/Unit/Component/ParticipantSpeech/Services/ParticipantSpeechesDeleterTest.php | 63 ++\n tests/Unit/Component/ParticipantSpeech/Services/ParticipantSpeechesProviderTest.php | 134 ++++\n tests/Unit/Component/ParticipantSpeech/Services/ParticipantSpeechesUploaderTest.php | 57 ++\n tests/Unit/Component/Transcription/Diarization/Services/GetNormalizedParticipantSpeechesServiceTest.php | 51 +-\n tests/Unit/Component/Transcription/Diarization/Source/MeetingBotSourceTest.php | 29 +-\n tests/Unit/Contracts/Services/Calendar/CalendarTraitTest.php | 58 +-\n tests/Unit/Http/Controllers/Kiosk/ActivityControllerTest.php | 159 +++++\n tests/Unit/Jobs/Activity/Import/ImportTwilioVideoSpeechesJobTest.php | 22 +-\n tests/Unit/Jobs/Activity/Import/IsActivityReadyForProcessingJobTest.php | 26 +-\n tests/Unit/Jobs/Calendar/SetupCalendarSyncTest.php | 25 -\n tests/Unit/Services/Activity/ParticipantsServiceTest.php | 12 +-\n tests/Unit/Services/Activity/Twilio/S3RecordingCredentialsServiceTest.php | 180 +++++\n tests/Unit/Services/ActivityServiceTest.php | 132 ++++\n tests/Unit/Services/Calendar/CalendarActivityServiceTest.php | 150 +++-\n tests/Unit/Services/Calendar/Command/ImportParticipantsTest.php | 6 +-\n tests/Unit/Services/Calendar/Command/MapActivityDataTest.php | 78 +-\n tests/Unit/Services/Calendar/GoogleCalendarServiceTest.php | 116 +++\n tests/Unit/Services/Crm/Close/ServiceTest.php | 165 +++++\n tests/Unit/Services/Crm/Hubspot/ServiceTest.php | 272 ++++++-\n tests/Unit/Services/Crm/Hubspot/ServiceTraits/OpportunitySyncTest.php | 25 +-\n tests/Unit/Services/Crm/Hubspot/ServiceTraits/OpportunitySyncTraitMatchActivitiesTest.php | 3 +-\n tests/Unit/Services/Crm/IntegrationApp/ServiceTraits/SyncCrmEntitiesTraitOpportunitiesTest.php | 40 ++\n tests/Unit/Services/Crm/Pipedrive/ImportOpportunityMatchActivitiesTest.php | 2 +\n tests/Unit/Services/Crm/Salesforce/ServiceTest.php | 139 ++++\n tests/Unit/Services/Mail/Office/EmailApiClientTest.php | 195 ++---\n tests/Unit/Services/RecallAI/RecallAIServiceTest.php | 24 +-\n 175 files changed, 12562 insertions(+), 2162 deletions(-)\n create mode 120000 CLAUDE.md\n create mode 100644 app/Component/AiAutomation/Services/CrmFillingEligibilityChecker.php\n delete mode 100644 app/Component/ES/ElasticSearchWorkerManager.php\n delete mode 100644 app/Component/ES/Processor/Traits/SkipActivityTrait.php\n delete mode 100644 app/Component/ES/Worker/ActivityWorker.php\n delete mode 100644 app/Component/ES/Worker/EntityWorker.php\n delete mode 100644 app/Component/ES/Worker/WorkerAmount.php\n delete mode 100644 app/Component/ES/Worker/WorkerInterface.php\n create mode 100644 app/Component/ProphetAi/Exceptions/InsufficientTranscriptException.php\n create mode 100644 app/Component/Transcription/DTO/Http/Transcription/AssemblyAI/AssemblyAI/NoAssemblyIdException.php\n create mode 100644 app/Component/Transcription/DTO/Http/Transcription/TranscriptionIsNotCorrectFormatException.php\n create mode 100644 app/Console/Commands/Activities/SetupIntegration/TwilioSetS3RecordingCredentialsCommand.php\n create mode 100644 app/Console/Commands/Crm/BackfillOpportunityUserFromAccountCommand.php\n delete mode 100644 app/Console/Commands/Elasticsearch/AsyncUpdateEsActivities.php\n create mode 100644 app/Console/Commands/IssueMcpTokenCommand.php\n create mode 100644 app/Http/Middleware/McpAuditMiddleware.php\n create mode 100644 app/Http/Middleware/McpTierMiddleware.php\n create mode 100644 app/Mcp/Contracts/McpCallRepositoryInterface.php\n create mode 100644 app/Mcp/DTO/ListCallsFilters.php\n create mode 100644 app/Mcp/Errors/McpError.php\n create mode 100644 app/Mcp/Repositories/McpActivityHydrator.php\n create mode 100644 app/Mcp/Repositories/McpCallRepository.php\n create mode 100644 app/Mcp/Repositories/McpElasticCallRepository.php\n create mode 100644 app/Mcp/Servers/JiminnyServer.php\n create mode 100644 app/Mcp/Tools/ListCallsTool.php\n create mode 100644 app/Services/Activity/Twilio/S3RecordingCredentialsService.php\n create mode 100644 config/mcp.php\n create mode 100644 database/migrations/2026_04_30_120000_create_mcp_audit_log_table.php\n create mode 100644 docs/mcp/explorer/explorer.html\n create mode 100644 docs/mcp/explorer/explorer.template.html\n create mode 100644 docs/mcp/explorer/generate.js\n create mode 100644 docs/mcp/explorer/tool-explorer-meta.json\n create mode 100644 docs/mcp/tools-list.json\n create mode 100644 docs/mcp/tools.md\n create mode 100644 front-end/src/components/shared/modals/EntityPickerModal/__tests__/useEntitiesCache.spec.ts\n create mode 100644 tests/Feature/Component/Nudge/ProcessOrganisationImmediateNudgesJobTest.php\n create mode 100644 tests/Feature/Mcp/IssueMcpTokenCommandTest.php\n create mode 100644 tests/Feature/Mcp/ListCallsToolElasticFeatureTest.php\n create mode 100644 tests/Feature/Mcp/ListCallsToolFeatureTest.php\n create mode 100644 tests/Feature/Mcp/McpTestHelpersTrait.php\n create mode 100644 tests/Stubs/SentryStub.php\n create mode 100644 tests/Unit/Component/AiAutomation/Services/CrmFillingEligibilityCheckerTest.php\n delete mode 100644 tests/Unit/Component/ES/ElasticSearchWorkerManagerTest.php\n create mode 100644 tests/Unit/Component/ES/Processor/Actions/LoadDocumentsActionTest.php\n delete mode 100644 tests/Unit/Component/ES/Processor/Traits/SkipActivityTraitTest.php\n delete mode 100644 tests/Unit/Component/ES/Worker/ActivityWorkerTest.php\n delete mode 100644 tests/Unit/Component/ES/Worker/EntityWorkerTest.php\n delete mode 100644 tests/Unit/Component/ES/Worker/WorkerAmountTest.php\n create mode 100644 tests/Unit/Component/ParticipantSpeech/Services/ParticipantSpeechesCreatorTest.php\n create mode 100644 tests/Unit/Http/Controllers/Kiosk/ActivityControllerTest.php\n create mode 100644 tests/Unit/Services/Activity/Twilio/S3RecordingCredentialsServiceTest.php\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20725-handle-HS-search-rate-limit) $ git status\nOn branch master\nYour branch is behind 'origin/master' by 114 commits, and can be fast-forwarded.\n (use \"git pull\" to update your local branch)\n\nChanges not staged for commit:\n (use \"git add <file>...\" to update what will be committed)\n (use \"git restore <file>...\" to discard changes in working directory)\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tmodified: .env.local\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tmodified: app/Component/SCIM/Constants.php\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tmodified: app/Component/SCIM/ScimProvisioning.php\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tmodified: app/Component/Twilio/Conference/ConferenceManager/SoftPhoneManager.php\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tmodified: app/Console/Commands/JiminnyDebugCommand.php\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tmodified: app/DTO/SCIM/AAD/Request/CoreUserRequest.php\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tmodified: app/DTO/SCIM/AAD/Response/CoreUser.php\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tmodified: app/Services/Telephony/TextMessagingService.php\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tmodified: config/logging.php\n\nUntracked files:\n (use \"git add <file>...\" to include in what will be committed)\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\t.env.nikilocal\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\t.env.other\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tWEBHOOK_FILTERING_IMPLEMENTATION.md\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tapp/Component/SCIM/Mutators/Attributes/User/RoleAttr.php\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tapp/Console/Commands/Crm/Hubspot/SimulateWebhooksCommand.php\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tapp/Console/Commands/Reports/CreateMockAskJiminnyReportResultCommand.php\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tapp/Rules/ListenerRoleCannotHaveAdminOrManagerPermissionRule.php\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tids.txt\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tpublic/favicon.ico\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\traw_sql_query.sql\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\ttests/Unit/Component/SCIM/Mutators/Attributes/User/RoleAttrTest.php\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\ttests/Unit/Policies/CanAccessAiReportsTest.php\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\ttests/Unit/Rules/ListenerRoleCannotHaveAdminOrManagerPermissionRuleTest.php\n\nno changes added to commit (use \"git add\" and/or \"git commit -a\")\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (master) $ git pull\nremote: Enumerating objects: 306, done.\nremote: Counting objects: 100% (299/299), done.\nremote: Compressing objects: 100% (183/183), done.\nremote: Total 306 (delta 213), reused 171 (delta 116), pack-reused 7 (from 1)\nReceiving objects: 100% (306/306), 80.12 KiB | 1000.00 KiB/s, done.\nResolving deltas: 100% (213/213), completed with 53 local objects.\nFrom github.com:jiminny/app\n 90bca4e4b2..5604af40cf master -> origin/master\n 4e7078fd8b..0b8343d179 JY-18091-upgrade-to-php-8-5 -> origin/JY-18091-upgrade-to-php-8-5\n 098eeaa087..d5a447e492 JY-20613-allow-owner-role-on-team-setup -> origin/JY-20613-allow-owner-role-on-team-setup\n c3a76ace91..af65249d0f JY-20749-user-can-view-recorded-meetings -> origin/JY-20749-user-can-view-recorded-meetings\n d94a285ae7..7ce96cb5fe JY-20808-low-priority-indexing-queue -> origin/JY-20808-low-priority-indexing-queue\n * [new branch] JY-20842-remove-partial-updater -> origin/JY-20842-remove-partial-updater\n * [new branch] JY-20920-fix-participant-flip -> origin/JY-20920-fix-participant-flip\n * [new branch] secfix/npm-20260519 -> origin/secfix/npm-20260519\nUpdating cb4ebf0c36..5604af40cf\nFast-forward\n app/Component/ES/ChunkSize.php | 54 +++++++++++++++++++\n app/Component/ES/Processor/DTOs/SelectionList.php | 4 +-\n app/Component/ES/Processor/TargetEntitiesSelector.php | 19 ++++---\n app/Component/MeetingBot/Service/ParticipantMatcher.php | 46 ++++++++++++----\n app/Exceptions/RateLimitException.php | 19 ++++++-\n app/Http/Middleware/McpTierMiddleware.php | 27 ++--------\n app/Jobs/Crm/MatchActivityCrmData.php | 47 ++++++++++++----\n app/Jobs/Middleware/HandleHubspotRateLimit.php | 42 +++++++++++++++\n app/Mcp/Servers/JiminnyServer.php | 2 +\n app/Mcp/Tools/GetMeTool.php | 157 +++++++++++++++++++++++++++++++++++++++++++++++++++++\n app/Models/Feature/FeatureEnum.php | 1 +\n app/Services/Activity/HubSpot/ProviderResolver.php | 4 +-\n app/Services/Activity/HubSpot/ProviderResolverInterface.php | 2 +-\n app/Services/Activity/HubSpot/Providers/Provider.php | 2 +-\n app/Services/Activity/HubSpot/Providers/ProviderKixie.php | 2 +-\n app/Services/Activity/HubSpot/Providers/ProviderOrum.php | 2 +-\n app/Services/Activity/HubSpot/Providers/ProviderTwilio.php | 2 +-\n app/Services/Activity/HubSpot/Providers/ProviderTwilioFlex.php | 5 +-\n app/Services/Activity/HubSpot/Service.php | 97 +++++++++++++++++++++++++++------\n app/Services/Crm/Hubspot/Client.php | 132 +++++++++++++++++++++++++++++++++++++++++++++\n app/Services/Crm/Hubspot/HubspotClientInterface.php | 15 ++++++\n app/Services/Crm/Hubspot/Pagination/HubspotPaginationService.php | 21 ++++----\n app/Services/Crm/Hubspot/Pagination/PaginationState.php | 2 +-\n database/migrations/2026_05_13_124153_create_mcp_feature_flag.php | 25 +++++++++\n tests/Feature/Mcp/GetMeToolFeatureTest.php | 140 +++++++++++++++++++++++++++++++++++++++++++++++\n tests/Feature/Mcp/ListCallsToolFeatureTest.php | 2 +-\n tests/Feature/Mcp/McpTestHelpersTrait.php | 19 ++++++-\n tests/Unit/Component/ES/ChunkSizeTest.php | 50 +++++++++++++++++\n tests/Unit/Component/ES/Processor/DTOs/SelectionListTest.php | 27 +++++++---\n tests/Unit/Component/ES/Processor/TargetEntitiesSelectorTest.php | 39 ++++++++------\n tests/Unit/Component/MeetingBot/Service/ParticipantMatcherTest.php | 68 ++++++++++++++++++++++-\n tests/Unit/Exceptions/RateLimitExceptionTest.php | 56 +++++++++++++++++++\n tests/Unit/Jobs/Crm/MatchActivityCrmDataTest.php | 8 +--\n tests/Unit/Jobs/Middleware/HandleHubspotRateLimitTest.php | 151 +++++++++++++++++++++++++++++++++++++++++++++++++++\n tests/Unit/Services/Activity/HubSpot/ServiceTest.php | 109 +++++++++++++++++++++++++++++++++++++\n tests/Unit/Services/Crm/Hubspot/ClientTest.php | 250 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++\n tests/Unit/Services/Crm/Hubspot/Pagination/HubspotPaginationServiceTest.php | 283 +++++++++++++++++++++---------------------------------------------------------------------------\n 37 files changed, 1587 insertions(+), 344 deletions(-)\n create mode 100644 app/Component/ES/ChunkSize.php\n create mode 100644 app/Jobs/Middleware/HandleHubspotRateLimit.php\n create mode 100644 app/Mcp/Tools/GetMeTool.php\n create mode 100644 database/migrations/2026_05_13_124153_create_mcp_feature_flag.php\n create mode 100644 tests/Feature/Mcp/GetMeToolFeatureTest.php\n create mode 100644 tests/Unit/Component/ES/ChunkSizeTest.php\n create mode 100644 tests/Unit/Exceptions/RateLimitExceptionTest.php\n create mode 100644 tests/Unit/Jobs/Middleware/HandleHubspotRateLimitTest.php\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (master) $ git pull\nAlready up to date.\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (master) $ co -b JY-20676-delete-report-related-objects\nSwitched to a new branch 'JY-20676-delete-report-related-objects'\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20676-delete-report-related-objects) $ csfix\ndocker exec -it docker_lamp_1 ./vendor/bin/php-cs-fixer fix --config=.php-cs-fixer.dist.php -v --using-cache=no --diff \nPHP CS Fixer 3.87.1 Alexander by Fabien Potencier, Dariusz Ruminski and contributors.\nPHP runtime: 8.3.30\nRunning analysis on 7 cores with 10 files per process.\nParallel runner is an experimental feature and may be unstable, use it at your own risk. Feedback highly appreciated!\nLoaded config default from \".php-cs-fixer.dist.php\".\n 5690/5690 [▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓] 100%\n\n 1) app/Console/Commands/JiminnyDebugCommand.php (statement_indentation, blank_line_before_statement)\n ---------- begin diff ----------\n--- /home/jiminny/app/Console/Commands/JiminnyDebugCommand.php\n+++ /home/jiminny/app/Console/Commands/JiminnyDebugCommand.php\n@@ -23,6 +23,7 @@\n \n if ($action === 'redis-set') {\n $this->testRedisSet();\n+\n return;\n }\n \n@@ -45,7 +46,7 @@\n $ttl = 60;\n \n try {\n-// $result = Redis::set($testKey, $testValue, 'EX', $ttl, 'NX');\n+ // $result = Redis::set($testKey, $testValue, 'EX', $ttl, 'NX');\n $result = Redis::set($testKey, $testValue, ['nx', 'ex' => $ttl]);\n \n if ($result) {\n\n ----------- end diff -----------\n\n\nFixed 1 of 5690 files in 50.673 seconds, 67.00 MB memory used\n\nWhat's next:\n Try Docker Debug for seamless, persistent debugging tools in any container or image → docker debug docker_lamp_1\n Learn more at https://docs.docker.com/go/debug-cli/\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20676-delete-report-related-objects) $ ;xd\ndocker exec -it docker_lamp_1 bash -c \"mv /usr/local/etc/php/conf.d/xdebug.ini ~/xdebug.ini\"\n\nWhat's next:\n Try Docker Debug for seamless, persistent debugging tools in any container or image → docker debug docker_lamp_1\n Learn more at https://docs.docker.com/go/debug-cli/\ndocker exec -it docker_lamp_1 supervisorctl restart all\njiminny-worker-processing-2:jiminny-worker-processing-2_00: stopped\njiminny-worker-processing-3:jiminny-worker-processing-3_00: stopped\njiminny-worker-processing-4:jiminny-worker-processing-4_00: stopped\njiminny-worker-processing-5:jiminny-worker-processing-5_00: stopped\njiminny-worker-processing-delayed:jiminny-worker-processing-delayed_00: stopped\nworker-analytics:worker-analytics_00: stopped\nworker-crm-update:worker-crm-update_00: stopped\nworker-download:worker-download_00: stopped\nworker-nudges:worker-nudges_00: stopped\nworker-calendar:worker-calendar_00: stopped\nworker-audio:worker-audio_00: stopped\njiminny-worker-processing-1:jiminny-worker-processing-1_00: stopped\nworker:worker_00: stopped\nworker-conferences:worker-conferences_00: stopped\nworker-crm-sync:worker-crm-sync_00: stopped\nworker-emails:worker-emails_00: stopped\nworker-es-update:worker-es-update_00: stopped\nartisan-schedule:artisan-schedule_00: stopped\nartisan-schedule:artisan-schedule_00: started\njiminny-worker-processing-1:jiminny-worker-processing-1_00: started\njiminny-worker-processing-2:jiminny-worker-processing-2_00: started\njiminny-worker-processing-3:jiminny-worker-processing-3_00: started\njiminny-worker-processing-4:jiminny-worker-processing-4_00: started\njiminny-worker-processing-5:jiminny-worker-processing-5_00: started\njiminny-worker-processing-delayed:jiminny-worker-processing-delayed_00: started\nworker:worker_00: started\nworker-analytics:worker-analytics_00: started\nworker-audio:worker-audio_00: started\nworker-calendar:worker-calendar_00: started\nworker-conferences:worker-conferences_00: started\nworker-crm-sync:worker-crm-sync_00: started\nworker-crm-update:worker-crm-update_00: started\nworker-download:worker-download_00: started\nworker-emails:worker-emails_00: started\nworker-es-update:worker-es-update_00: started\nworker-nudges:worker-nudges_00: started\n\nWhat's next:\n Try Docker Debug for seamless, persistent debugging tools in any container or image → docker debug docker_lamp_1\n Learn more at https://docs.docker.com/go/debug-cli/\ndocker exec -it docker_lamp_1 php -v\nPHP 8.3.30 (cli) (built: Mar 16 2026 22:32:32) (NTS)\nCopyright (c) The PHP Group\nZend Engine v4.3.30, Copyright (c) Zend Technologies\n with Zend OPcache v8.3.30, Copyright (c), by Zend Technologies\n\nWhat's next:\n Try Docker Debug for seamless, persistent debugging tools in any container or image → docker debug docker_lamp_1\n Learn more at https://docs.docker.com/go/debug-cli/\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20676-delete-report-related-objects) $ git status\nOn branch JY-20676-delete-report-related-objects\nChanges not staged for commit:\n (use \"git add <file>...\" to update what will be committed)\n (use \"git restore <file>...\" to discard changes in working directory)\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tmodified: .env.local\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tmodified: app/Console/Commands/JiminnyDebugCommand.php\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tmodified: config/logging.php\n\nUntracked files:\n (use \"git add <file>...\" to include in what will be committed)\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\t.env.nikilocal\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\t.env.other\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tWEBHOOK_FILTERING_IMPLEMENTATION.md\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tapp/Console/Commands/Crm/Hubspot/SimulateWebhooksCommand.php\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tapp/Console/Commands/Reports/CreateMockAskJiminnyReportResultCommand.php\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tids.txt\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tpublic/favicon.ico\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\traw_sql_query.sql\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\ttests/Unit/Policies/CanAccessAiReportsTest.php\n\nno changes added to commit (use \"git add\" and/or \"git commit -a\")\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20676-delete-report-related-objects) $ git push -u origin JY-20676-delete-report-related-objects\nEnumerating objects: 45, done.\nCounting objects: 100% (45/45), done.\nDelta compression using up to 8 threads\nCompressing objects: 100% (24/24), done.\nWriting objects: 100% (24/24), 3.62 KiB | 3.62 MiB/s, done.\nTotal 24 (delta 19), reused 0 (delta 0), pack-reused 0\nremote: Resolving deltas: 100% (19/19), completed with 19 local objects.\nremote: \nremote: Create a pull request for 'JY-20676-delete-report-related-objects' on GitHub by visiting:\nremote: https://github.com/jiminny/app/pull/new/JY-20676-delete-report-related-objects\nremote: \nTo github.com:jiminny/app.git\n * [new branch] JY-20676-delete-report-related-objects -> JY-20676-delete-report-related-objects\nbranch 'JY-20676-delete-report-related-objects' set up to track 'origin/JY-20676-delete-report-related-objects'.\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20676-delete-report-related-objects) $ csfix\ndocker exec -it docker_lamp_1 ./vendor/bin/php-cs-fixer fix --config=.php-cs-fixer.dist.php -v --using-cache=no --diff \nPHP CS Fixer 3.87.1 Alexander by Fabien Potencier, Dariusz Ruminski and contributors.\nPHP runtime: 8.3.30\nRunning analysis on 7 cores with 10 files per process.\nParallel runner is an experimental feature and may be unstable, use it at your own risk. Feedback highly appreciated!\nLoaded config default from \".php-cs-fixer.dist.php\".\n 5690/5690 [▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓] 100%\n\n 1) app/Http/Controllers/API/V2/AskJiminnyReportsController.php (blank_line_before_statement)\n ---------- begin diff ----------\n--- /home/jiminny/app/Http/Controllers/API/V2/AskJiminnyReportsController.php\n+++ /home/jiminny/app/Http/Controllers/API/V2/AskJiminnyReportsController.php\n@@ -140,6 +140,7 @@\n if ($enabled && $report->isAskJiminnyReport() && ! $report->canExecute()) {\n $error = 'This report is missing a saved search or prompt. ' .\n 'Edit the report to complete the setup before enabling it.';\n+\n return new JsonResponse(\n ['error' => $error],\n Response::HTTP_UNPROCESSABLE_ENTITY\n\n ----------- end diff -----------\n\n\nFixed 1 of 5690 files in 71.757 seconds, 60.00 MB memory used\n\nWhat's next:\n Try Docker Debug for seamless, persistent debugging tools in any container or image → docker debug docker_lamp_1\n Learn more at https://docs.docker.com/go/debug-cli/\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20676-delete-report-related-objects) $ git pull\nremote: Enumerating objects: 158, done.\nremote: Counting objects: 100% (103/103), done.\nremote: Compressing objects: 100% (37/37), done.\nremote: Total 158 (delta 80), reused 74 (delta 66), pack-reused 55 (from 3)\nReceiving objects: 100% (158/158), 80.59 KiB | 982.00 KiB/s, done.\nResolving deltas: 100% (85/85), completed with 45 local objects.\nFrom github.com:jiminny/app\n 02a33811ee..c6ce5e2440 JY-20676-delete-report-related-objects -> origin/JY-20676-delete-report-related-objects\n 7ce96cb5fe..6c59f04358 JY-20808-low-priority-indexing-queue -> origin/JY-20808-low-priority-indexing-queue\n 3906a9238a..2b5e6ea62b JY-20835-mcp-enable-users-to-get-a-list-of-deals-and-their-details -> origin/JY-20835-mcp-enable-users-to-get-a-list-of-deals-and-their-details\n 5604af40cf..ea3519f0e2 master -> origin/master\n * [new branch] switch-eu-assembly -> origin/switch-eu-assembly\nUpdating 02a33811ee..c6ce5e2440\nFast-forward\n app/Component/ES/ElasticSearchDocumentPartialUpdater.php | 48 ---\n app/Component/ParticipantSpeech/Services/ParticipantAttributionService.php | 4 +-\n app/Component/Settings/AutoScoring/Services/UpdateAutoScoreService.php | 20 +-\n app/Component/Transcription/Service/StorageService.php | 8 +-\n front-end/package.json | 2 +-\n front-end/src/components/DealInsights/Modals/AskAnythingModal.vue | 23 ++\n front-end/src/components/shared/AskAnything/AskAnythingPromptFormItem.vue | 2 +\n front-end/src/components/shared/AskAnything/AskAnythingSettingsDrawer.vue | 23 +-\n front-end/src/components/shared/AskAnything/__mocks__/AskAnythingSettingsDrawer.mocks.js | 1 +\n front-end/src/components/shared/AskAnything/__tests__/AskAnythingSettingsDrawer.spec.js | 135 ++++---\n front-end/src/components/shared/AskAnything/__tests__/__snapshots__/AskAnythingSettingsDrawer.spec.js.html | 1235 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++\n front-end/src/components/shared/AskAnything/__tests__/__snapshots__/AskAnythingSettingsDrawer.spec.js.snap | 1382 ----------------------------------------------------------------\n front-end/src/components/shared/AskAnything/prompts.js | 1 +\n front-end/src/components/shared/AskAnything/useAskAnything.js | 1 +\n front-end/yarn.lock | 8 +-\n tests/Unit/Component/ES/ElasticSearchDocumentPartialUpdaterTest.php | 42 --\n tests/Unit/Component/Settings/AutoScoring/Services/UpdateAutoScoreServiceTest.php | 86 ++--\n tests/Unit/Component/Transcription/Service/StorageServiceTest.php | 29 +-\n 18 files changed, 1448 insertions(+), 1602 deletions(-)\n delete mode 100644 app/Component/ES/ElasticSearchDocumentPartialUpdater.php\n create mode 100644 front-end/src/components/shared/AskAnything/__tests__/__snapshots__/AskAnythingSettingsDrawer.spec.js.html\n delete mode 100644 front-end/src/components/shared/AskAnything/__tests__/__snapshots__/AskAnythingSettingsDrawer.spec.js.snap\n delete mode 100644 tests/Unit/Component/ES/ElasticSearchDocumentPartialUpdaterTest.php\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20676-delete-report-related-objects) $ csfix\ndocker exec -it docker_lamp_1 ./vendor/bin/php-cs-fixer fix --config=.php-cs-fixer.dist.php -v --using-cache=no --diff","depth":4,"on_screen":true,"value":"Last login: Mon May 18 09:17:28 on ttys007\n\nPoetry could not find a pyproject.toml file in /Users/lukas/jiminny/app or its parents\n\nPoetry could not find a pyproject.toml file in /Users/lukas/jiminny/app or its parents\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (pipedrive-sdk-poc) $ co master\nerror: Your local changes to the following files would be overwritten by checkout:\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tPIPEDRIVE_V2_MIGRATION_TICKETS.md\nPlease commit your changes or stash them before you switch branches.\nAborting\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (pipedrive-sdk-poc) $ git pull\nremote: Enumerating objects: 1047, done.\nremote: Counting objects: 100% (832/832), done.\nremote: Compressing objects: 100% (298/298), done.\nremote: Total 1047 (delta 634), reused 596 (delta 534), pack-reused 215 (from 3)\nReceiving objects: 100% (1047/1047), 353.16 KiB | 1.56 MiB/s, done.\nResolving deltas: 100% (687/687), completed with 107 local objects.\nFrom github.com:jiminny/app\n 907c54896c..34656c53ed pipedrive-sdk-poc -> origin/pipedrive-sdk-poc\n 03325ec50f..4e7078fd8b JY-18091-upgrade-to-php-8-5 -> origin/JY-18091-upgrade-to-php-8-5\n e7d231e163..bc6a3fce6b JY-20725-handle-HS-search-rate-limit -> origin/JY-20725-handle-HS-search-rate-limit\n * [new branch] JY-20749-user-can-view-recorded-meetings -> origin/JY-20749-user-can-view-recorded-meetings\n 98ca281a04..e0351be069 JY-20808-low-priority-indexing-queue -> origin/JY-20808-low-priority-indexing-queue\n 569abb5149..3906a9238a JY-20835-mcp-enable-users-to-get-a-list-of-deals-and-their-details -> origin/JY-20835-mcp-enable-users-to-get-a-list-of-deals-and-their-details\n ad6c2a86e8..50eb6afba9 JY-20846-mcp-enable-the-ai-to-know-details-about-the-user -> origin/JY-20846-mcp-enable-the-ai-to-know-details-about-the-user\n * [new branch] JY-20893-chunk-control-per-update-target -> origin/JY-20893-chunk-control-per-update-target\n 31c62924a5..cb4ebf0c36 master -> origin/master\nUpdating 907c54896c..34656c53ed\nFast-forward\n PIPEDRIVE_V2_MIGRATION_TICKETS.md | 52 ++++++++++++++++++++++++++++++++++++++++++++++++++++\n 1 file changed, 52 insertions(+)\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (pipedrive-sdk-poc) $ co master\nM\u0000\u0000\u0000\u0000\u0000\u0000\t.env.local\nM\u0000\u0000\u0000\u0000\u0000\u0000\tconfig/logging.php\nSwitched to branch 'master'\nYour branch is behind 'origin/master' by 31 commits, and can be fast-forwarded.\n (use \"git pull\" to update your local branch)\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (master) $ git pull\nUpdating 31c62924a5..cb4ebf0c36\nFast-forward\n app/Component/ES/Processor/Traits/SelectEntityListTrait.php | 20 ------\n app/Services/Calendar/CalendarActivityService.php | 46 +++++++++++++\n app/Services/Calendar/Command/MapActivityData.php | 106 +++-------------------------\n docs/mcp/explorer/explorer.html | 104 +++++++++++++++++++++++++---\n docs/mcp/explorer/explorer.template.html | 102 ++++++++++++++++++++++++---\n docs/mcp/tools-list.json | 373 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++-------\n docs/mcp/tools.md | 117 +++++++++++++++++++++++--------\n tests/Unit/Component/ES/AsyncUpdateElasticSearchTest.php | 16 +----\n tests/Unit/Component/ES/Listeners/UpdateMultipleTargetsListenerTest.php | 10 ---\n tests/Unit/Component/ES/Listeners/UpdateSingleTargetListenerTest.php | 6 --\n tests/Unit/Component/ES/Processor/TargetEntitiesSelectorTest.php | 9 ---\n tests/Unit/Component/ES/Processor/Traits/SelectEntityListTraitTest.php | 15 ++--\n tests/Unit/Component/ES/UpdateProcessManagerTest.php | 2 -\n tests/Unit/Services/Calendar/CalendarActivityServiceTest.php | 150 ++++++++++++++++++++++++++++++++++++++--\n tests/Unit/Services/Calendar/Command/MapActivityDataTest.php | 78 ++-------------------\n 15 files changed, 832 insertions(+), 322 deletions(-)\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (master) $ co -b JY-20613-allow-owner-role-on-team-setup\nSwitched to a new branch 'JY-20613-allow-owner-role-on-team-setup'\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20613-allow-owner-role-on-team-setup) $ csfix\ndocker exec -it docker_lamp_1 ./vendor/bin/php-cs-fixer fix --config=.php-cs-fixer.dist.php -v --using-cache=no --diff \nPHP CS Fixer 3.87.1 Alexander by Fabien Potencier, Dariusz Ruminski and contributors.\nPHP runtime: 8.3.30\nRunning analysis on 7 cores with 10 files per process.\nParallel runner is an experimental feature and may be unstable, use it at your own risk. Feedback highly appreciated!\nLoaded config default from \".php-cs-fixer.dist.php\".\n 5682/5682 [▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓] 100%\n\n\nFixed 0 of 5682 files in 56.978 seconds, 67.00 MB memory used\n\nWhat's next:\n Try Docker Debug for seamless, persistent debugging tools in any container or image → docker debug docker_lamp_1\n Learn more at https://docs.docker.com/go/debug-cli/\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20613-allow-owner-role-on-team-setup) $ ;xd\ndocker exec -it docker_lamp_1 bash -c \"mv /usr/local/etc/php/conf.d/xdebug.ini ~/xdebug.ini\"\n\nWhat's next:\n Try Docker Debug for seamless, persistent debugging tools in any container or image → docker debug docker_lamp_1\n Learn more at https://docs.docker.com/go/debug-cli/\ndocker exec -it docker_lamp_1 supervisorctl restart all\njiminny-worker-processing-2:jiminny-worker-processing-2_00: stopped\njiminny-worker-processing-3:jiminny-worker-processing-3_00: stopped\njiminny-worker-processing-4:jiminny-worker-processing-4_00: stopped\njiminny-worker-processing-5:jiminny-worker-processing-5_00: stopped\njiminny-worker-processing-delayed:jiminny-worker-processing-delayed_00: stopped\nworker-analytics:worker-analytics_00: stopped\nworker-crm-update:worker-crm-update_00: stopped\nworker-download:worker-download_00: stopped\nworker-nudges:worker-nudges_00: stopped\nartisan-schedule:artisan-schedule_00: stopped\nworker-emails:worker-emails_00: stopped\nworker-calendar:worker-calendar_00: stopped\nworker:worker_00: stopped\nworker-conferences:worker-conferences_00: stopped\nworker-crm-sync:worker-crm-sync_00: stopped\njiminny-worker-processing-1:jiminny-worker-processing-1_00: stopped\nworker-audio:worker-audio_00: stopped\nworker-es-update:worker-es-update_00: stopped\nartisan-schedule:artisan-schedule_00: started\njiminny-worker-processing-1:jiminny-worker-processing-1_00: started\njiminny-worker-processing-2:jiminny-worker-processing-2_00: started\njiminny-worker-processing-3:jiminny-worker-processing-3_00: started\njiminny-worker-processing-4:jiminny-worker-processing-4_00: started\njiminny-worker-processing-5:jiminny-worker-processing-5_00: started\njiminny-worker-processing-delayed:jiminny-worker-processing-delayed_00: started\nworker:worker_00: started\nworker-analytics:worker-analytics_00: started\nworker-audio:worker-audio_00: started\nworker-calendar:worker-calendar_00: started\nworker-conferences:worker-conferences_00: started\nworker-crm-sync:worker-crm-sync_00: started\nworker-crm-update:worker-crm-update_00: started\nworker-download:worker-download_00: started\nworker-emails:worker-emails_00: started\nworker-es-update:worker-es-update_00: started\nworker-nudges:worker-nudges_00: started\n\nWhat's next:\n Try Docker Debug for seamless, persistent debugging tools in any container or image → docker debug docker_lamp_1\n Learn more at https://docs.docker.com/go/debug-cli/\ndocker exec -it docker_lamp_1 php -v\nPHP 8.3.30 (cli) (built: Mar 16 2026 22:32:32) (NTS)\nCopyright (c) The PHP Group\nZend Engine v4.3.30, Copyright (c) Zend Technologies\n with Zend OPcache v8.3.30, Copyright (c), by Zend Technologies\n\nWhat's next:\n Try Docker Debug for seamless, persistent debugging tools in any container or image → docker debug docker_lamp_1\n Learn more at https://docs.docker.com/go/debug-cli/\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20613-allow-owner-role-on-team-setup) $ csfix\ndocker exec -it docker_lamp_1 ./vendor/bin/php-cs-fixer fix --config=.php-cs-fixer.dist.php -v --using-cache=no --diff \nPHP CS Fixer 3.87.1 Alexander by Fabien Potencier, Dariusz Ruminski and contributors.\nPHP runtime: 8.3.30\nRunning analysis on 7 cores with 10 files per process.\nParallel runner is an experimental feature and may be unstable, use it at your own risk. Feedback highly appreciated!\nLoaded config default from \".php-cs-fixer.dist.php\".\n 5682/5682 [▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓] 100%\n\n\nFixed 0 of 5682 files in 49.910 seconds, 60.00 MB memory used\n\nWhat's next:\n Try Docker Debug for seamless, persistent debugging tools in any container or image → docker debug docker_lamp_1\n Learn more at https://docs.docker.com/go/debug-cli/\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20613-allow-owner-role-on-team-setup) $ git status\nOn branch JY-20613-allow-owner-role-on-team-setup\nYour branch is ahead of 'origin/JY-20613-allow-owner-role-on-team-setup' by 1 commit.\n (use \"git push\" to publish your local commits)\n\nChanges not staged for commit:\n (use \"git add <file>...\" to update what will be committed)\n (use \"git restore <file>...\" to discard changes in working directory)\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tmodified: .env.local\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tmodified: config/logging.php\n\nUntracked files:\n (use \"git add <file>...\" to include in what will be committed)\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\t.env.nikilocal\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\t.env.other\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tWEBHOOK_FILTERING_IMPLEMENTATION.md\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tapp/Console/Commands/Crm/Hubspot/SimulateWebhooksCommand.php\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tapp/Console/Commands/Reports/CreateMockAskJiminnyReportResultCommand.php\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tids.txt\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tpublic/favicon.ico\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\traw_sql_query.sql\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\ttests/Unit/Policies/CanAccessAiReportsTest.php\n\nno changes added to commit (use \"git add\" and/or \"git commit -a\")\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20613-allow-owner-role-on-team-setup) $ git pull\nremote: Enumerating objects: 248, done.\nremote: Counting objects: 100% (128/128), done.\nremote: Compressing objects: 100% (23/23), done.\nremote: Total 59 (delta 43), reused 44 (delta 33), pack-reused 0 (from 0)\nUnpacking objects: 100% (59/59), 10.48 KiB | 228.00 KiB/s, done.\nFrom github.com:jiminny/app\n b7df560451..190239dfd4 JY-20613-allow-owner-role-on-team-setup -> origin/JY-20613-allow-owner-role-on-team-setup\n e0351be069..d94a285ae7 JY-20808-low-priority-indexing-queue -> origin/JY-20808-low-priority-indexing-queue\n * [new branch] JY-20920-fix-participant-matcher -> origin/JY-20920-fix-participant-matcher\n cb4ebf0c36..90bca4e4b2 master -> origin/master\nMerge made by the 'ort' strategy.\n app/Component/ES/ChunkSize.php | 54 +++++++++++++++++++++++++++\n app/Component/ES/Processor/DTOs/SelectionList.php | 4 +-\n app/Component/ES/Processor/TargetEntitiesSelector.php | 19 ++++++----\n app/Http/Middleware/McpTierMiddleware.php | 27 +++-----------\n app/Mcp/Servers/JiminnyServer.php | 2 +\n app/Mcp/Tools/GetMeTool.php | 157 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++\n app/Models/Feature/FeatureEnum.php | 1 +\n database/migrations/2026_05_13_124153_create_mcp_feature_flag.php | 25 +++++++++++++\n front-end/src/components/Settings/Kiosk/modals/EditTeamModal/EditTeamModal.vue | 52 ++++++++++++++++++--------\n front-end/src/components/Settings/Kiosk/modals/EditTeamModal/__tests__/EditTeamModal.spec.js | 14 +++++++\n tests/Feature/Mcp/GetMeToolFeatureTest.php | 140 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++\n tests/Feature/Mcp/ListCallsToolFeatureTest.php | 2 +-\n tests/Feature/Mcp/McpTestHelpersTrait.php | 19 +++++++++-\n tests/Unit/Component/ES/ChunkSizeTest.php | 50 +++++++++++++++++++++++++\n tests/Unit/Component/ES/Processor/DTOs/SelectionListTest.php | 27 ++++++++++----\n tests/Unit/Component/ES/Processor/TargetEntitiesSelectorTest.php | 39 +++++++++++---------\n 16 files changed, 557 insertions(+), 75 deletions(-)\n create mode 100644 app/Component/ES/ChunkSize.php\n create mode 100644 app/Mcp/Tools/GetMeTool.php\n create mode 100644 database/migrations/2026_05_13_124153_create_mcp_feature_flag.php\n create mode 100644 tests/Feature/Mcp/GetMeToolFeatureTest.php\n create mode 100644 tests/Unit/Component/ES/ChunkSizeTest.php\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20613-allow-owner-role-on-team-setup) $ git push\nEnumerating objects: 40, done.\nCounting objects: 100% (34/34), done.\nDelta compression using up to 8 threads\nCompressing objects: 100% (18/18), done.\nWriting objects: 100% (18/18), 1.58 KiB | 1.58 MiB/s, done.\nTotal 18 (delta 15), reused 0 (delta 0), pack-reused 0\nremote: Resolving deltas: 100% (15/15), completed with 13 local objects.\nTo github.com:jiminny/app.git\n 190239dfd4..ec1b261264 JY-20613-allow-owner-role-on-team-setup -> JY-20613-allow-owner-role-on-team-setup\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20613-allow-owner-role-on-team-setup) $ gbr\n* JY-20613-allow-owner-role-on-team-setup\n pipedrive-sdk-poc\n master\n JY-20903-update_activity-stage-on-opportunity-change\n JY-20904-fix-update-es-on-activity-command\n JY-20891-improve-sms-text-relays\n JY-20725-handle-HS-search-rate-limit\n JY-20818-move-AJ-reports-to-separated-datadog-metric\n JY-20773-fix-automated-reports-user-pilot-tracking\n JY-20157-AJ-report-not-send-notification\n JY-20508-notify-before-AJ-report-expiration\n JY-20372-ai-reports-promotion-pages\n JY-20352-sync-opportunities-without-a-local-owner-user-id-is-null\n JY-20738-debug-AJ-tracking-UP\n a\n JY-18909-automated-reports-ask-jiminny\n JY-20692-fix-integration-app-token-auth-response-change\n JY-20553-debug-crm-sync-delays\n JY-20698-fix-SF-activity-types-on-new-playbook\n JY-20543-AJ-report-tracking\n JY-20384-handle-auto-sync-with-no-access-to-event-type\n JY-20458-ask-jiminny-user-definitions\n JY-19666-fix-import-contacts-account-association\n JY-19666-HS-import-contacts-and-accounts-batch-job\n JY-20458-Ask-Jiminny-Reports\n JY-20200-batch-update-CRM-objects-Salesforce\n JY-19666-HS-webhooks-add-contact-and-company\n JY-20348-trigger-setup-DI-layout-on-team-creation\n JY-20326-refactor-info-message-in-command\n JY-20317-fix-auto-log-delay-issue-on-all-channels-disabled\n JY-20312-remove-on-update-change-last-synced-at-crm-configurations\n JY-20306-SF-skip-auto-sync-for-task-based-playbook\n JY-20192-remove-deleted-team-from-saved-search-filters\n JY-20197-import-opportunity-batch-job\n JY-20293-enable-status-field-for-pipedrive-deals\n JY-20191-remove-commands-interactive-prompts\n JY-20118-change-default-sync-strategy\n JY-20183-add-cache-on-auto-log-delay\n JY-20197-add-import-opportunity-batch-job\n 20118-hs-opportunity-make-webhook-strategy-default\n JY-20118-make-default-hs-opportunity-sync-strategy-webhook-based\n JY-20196-handle-opportunity-without-note\n JY-20118-improve-opportunity-import\n JY-20189-handle-activity-search-on-deleted-groups\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20613-allow-owner-role-on-team-setup) $ co JY-20725-handle-HS-search-rate-limit\nM\u0000\u0000\u0000\u0000\u0000\u0000\t.env.local\nM\u0000\u0000\u0000\u0000\u0000\u0000\tconfig/logging.php\nSwitched to branch 'JY-20725-handle-HS-search-rate-limit'\nYour branch is behind 'origin/JY-20725-handle-HS-search-rate-limit' by 439 commits, and can be fast-forwarded.\n (use \"git pull\" to update your local branch)\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20725-handle-HS-search-rate-limit) $ git pull\nUpdating 0f3e438941..bc6a3fce6b\nFast-forward\n .gitignore | 3 +-\n .windsurfrules | 168 ++---\n CLAUDE.md | 1 +\n app/Component/ActivityAnalytics/Service/CalculateTalkTimeOffsetsFromTranscription.php | 24 +-\n app/Component/AiActivityType/Services/AiActivityTypeEligibilityChecker.php | 28 +-\n app/Component/AiAutomation/Actions/PrepareUpdateDtoAction.php | 32 +-\n app/Component/AiAutomation/Services/CrmFillingEligibilityChecker.php | 47 ++\n app/Component/AiAutomation/TestCrmAiPromptService.php | 14 +\n app/Component/AiCallScoring/Services/AiCallScoringEligibilityChecker.php | 9 +\n app/Component/ES/ElasticSearchDocumentPartialUpdater.php | 13 +-\n app/Component/ES/ElasticSearchWorkerManager.php | 86 ---\n app/Component/ES/Processor/Actions/LoadDocumentsAction.php | 80 +--\n app/Component/ES/Processor/EntityQueryBuilder.php | 12 +-\n app/Component/ES/Processor/TargetEntitiesSelector.php | 2 +-\n app/Component/ES/Processor/Traits/SkipActivityTrait.php | 25 -\n app/Component/ES/Repositories/EsResetActivityRepository.php | 11 +-\n app/Component/ES/Worker/ActivityWorker.php | 73 --\n app/Component/ES/Worker/EntityWorker.php | 44 --\n app/Component/ES/Worker/WorkerAmount.php | 60 --\n app/Component/ES/Worker/WorkerInterface.php | 15 -\n app/Component/ElasticSearch/Contract/Searchable.php | 4 +\n app/Component/Encoding/Job/AnalyzeTrackChannelsJob.php | 20 +-\n app/Component/Encoding/Service/GenerateSpeechFromSilenceService.php | 85 ++-\n app/Component/FFMpeg/Services/GetSpeechIntervalsService.php | 18 +-\n app/Component/LanguageDetection/Services/FindSpeechTimeService.php | 22 +-\n app/Component/Nudge/Job/ProcessOrganisationImmediateNudgesJob.php | 218 +++++-\n app/Component/ParagraphBreaker/Services/TranscriptionParagraphsService.php | 4 +\n app/Component/ParticipantSpeech/Services/ParticipantSpeechesCreator.php | 33 +\n app/Component/ParticipantSpeech/Services/ParticipantSpeechesDeleter.php | 15 +\n app/Component/ParticipantSpeech/Services/ParticipantSpeechesProvider.php | 51 +-\n app/Component/ParticipantSpeech/Services/ParticipantSpeechesUploader.php | 36 +\n app/Component/ProphetAi/Exceptions/InsufficientTranscriptException.php | 11 +\n app/Component/Transcription/DTO/Http/Transcription/AssemblyAI/AssemblyAI/NoAssemblyIdException.php | 11 +\n app/Component/Transcription/DTO/Http/Transcription/AssemblyAI/AssemblyAI/SuccessfulResponse.php | 6 +\n app/Component/Transcription/DTO/Http/Transcription/TranscriptionIsNotCorrectFormatException.php | 11 +\n app/Component/Transcription/Diarization/Services/GetNormalizedParticipantSpeechesService.php | 23 +-\n app/Component/Transcription/Diarization/Source/MeetingBotSource.php | 16 +-\n app/Component/Transcription/TranscriptionProcessor/TranscriptionProcessor.php | 3 +\n app/Console/Commands/Activities/ActivityHardDeleteCommand.php | 4 +-\n app/Console/Commands/Activities/Copy.php | 2 +\n app/Console/Commands/Activities/SetupIntegration/TwilioSetS3RecordingCredentialsCommand.php | 119 ++++\n app/Console/Commands/Activities/UpdateActivityElasticSearchDocumentCommand.php | 10 +-\n app/Console/Commands/Crm/BackfillOpportunityUserFromAccountCommand.php | 126 ++++\n app/Console/Commands/Elasticsearch/AsyncUpdateEsActivities.php | 19 -\n app/Console/Commands/Elasticsearch/AsyncUpdateEsEntities.php | 50 +-\n app/Console/Commands/Elasticsearch/ResetAsyncElasticSearchCommand.php | 30 +-\n app/Console/Commands/GeckoExport/GeckoExportParticipantSpeechesCommand.php | 14 +-\n app/Console/Commands/IssueMcpTokenCommand.php | 84 +++\n app/Console/Commands/JiminnyDebugCommand.php | 7 +-\n app/Console/Commands/Tracks/CleanupActivityTracksCommand.php | 2 +-\n app/Console/Kernel.php | 6 +-\n app/Contracts/Services/Calendar/CalendarTrait.php | 80 ++-\n app/Events/AutomatedReports/AutomatedReportGenerated.php | 3 +\n app/Http/Controllers/API/AiCallScoring/AiScorecardController.php | 7 +-\n app/Http/Controllers/API/TeamAiAutomationController.php | 8 +\n app/Http/Controllers/CustomerApi/CustomerApiController.php | 4 +-\n app/Http/Controllers/Kiosk/ActivityController.php | 58 +-\n app/Http/Controllers/Settings/PlaybookController.php | 15 +-\n app/Http/Kernel.php | 23 +\n app/Http/Middleware/McpAuditMiddleware.php | 156 ++++\n app/Http/Middleware/McpTierMiddleware.php | 54 ++\n app/Http/Requests/API/V2/ZapierUploadActivityRequest.php | 28 +-\n app/Jobs/Activity/Import/ImportTwilioVideoSpeechesJob.php | 25 +-\n app/Jobs/Activity/Import/IsActivityReadyForProcessingJob.php | 10 +-\n app/Jobs/Calendar/SetupCalendarSync.php | 21 +-\n app/Jobs/ImportRemoteTrackJob.php | 96 ++-\n app/Jobs/Mailbox/EmailTextRelay.php | 15 +-\n app/Mcp/Contracts/McpCallRepositoryInterface.php | 30 +\n app/Mcp/DTO/ListCallsFilters.php | 29 +\n app/Mcp/Errors/McpError.php | 123 ++++\n app/Mcp/Repositories/McpActivityHydrator.php | 145 ++++\n app/Mcp/Repositories/McpCallRepository.php | 84 +++\n app/Mcp/Repositories/McpElasticCallRepository.php | 171 +++++\n app/Mcp/Servers/JiminnyServer.php | 38 +\n app/Mcp/Tools/ListCallsTool.php | 205 ++++++\n app/Models/Activity.php | 10 +-\n app/Models/Activity/Transcription.php | 17 +-\n app/Models/ElasticSearch/OpportunityElasticSearchTrait.php | 5 +\n app/Models/Participant.php | 1 +\n app/Providers/AppServiceProvider.php | 22 +\n app/Repositories/Crm/ContactRepository.php | 69 +-\n app/Repositories/ParticipantSpeechRepository.php | 13 +-\n app/Services/Activity/ParticipantsService.php | 19 +-\n app/Services/Activity/Twilio/S3RecordingCredentialsService.php | 82 +++\n app/Services/ActivityService.php | 21 +-\n app/Services/Calendar/CalendarActivityService.php | 46 ++\n app/Services/Calendar/Command/ImportParticipants.php | 1 +\n app/Services/Calendar/Command/MapActivityData.php | 106 +--\n app/Services/Calendar/GoogleCalendarService.php | 12 +-\n app/Services/Crm/Close/Processor/OpportunityProcessor.php | 2 +-\n app/Services/Crm/Close/Service.php | 22 +-\n app/Services/Crm/Copper/Service.php | 12 +-\n app/Services/Crm/Hubspot/Service.php | 154 +++-\n app/Services/Crm/Hubspot/ServiceTraits/OpportunitySyncTrait.php | 88 ++-\n app/Services/Crm/IntegrationApp/ServiceTraits/SyncCrmEntitiesTrait.php | 22 +-\n app/Services/Crm/Pipedrive/Service.php | 17 +-\n app/Services/Crm/Salesforce/Service.php | 42 +-\n app/Services/Mail/Office/EmailApiClient.php | 129 +---\n app/Services/RecallAI/Commands/ScheduleBotCommand.php | 39 +-\n app/Services/RecallAI/RecallAIService.php | 22 +-\n composer.json | 3 +-\n composer.lock | 87 ++-\n config/mcp.php | 23 +\n database/migrations/2026_04_30_120000_create_mcp_audit_log_table.php | 36 +\n docs/mcp/explorer/explorer.html | 697 ++++++++++++++++++\n docs/mcp/explorer/explorer.template.html | 697 ++++++++++++++++++\n docs/mcp/explorer/generate.js | 215 ++++++\n docs/mcp/explorer/tool-explorer-meta.json | 11 +\n docs/mcp/tools-list.json | 2536 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++\n docs/mcp/tools.md | 621 ++++++++++++++++\n front-end/package.json | 4 +-\n front-end/src/components/Settings/OrgSettings/AiAutomation/CrmFilling/TemplateFieldForm.vue | 28 +-\n front-end/src/components/Settings/OrgSettings/Playbooks/AddEditPlaybook.vue | 10 +\n front-end/src/components/playback/comments/ActivityComment.less | 10 +-\n front-end/src/components/shared/PromptTester/PromptTester.vue | 12 +-\n front-end/src/components/shared/__tests__/PromptTester.spec.js | 35 +\n front-end/src/components/shared/modals/EntityPickerModal/__tests__/useEntitiesCache.spec.ts | 37 +\n front-end/src/components/shared/modals/EntityPickerModal/useEntitiesCache.ts | 9 +\n front-end/yarn.lock | 16 +-\n phpstan-baseline.neon | 50 --\n routes/api.php | 11 +\n sonar-project.properties | 91 ++-\n tests/Feature/Component/Nudge/ProcessOrganisationImmediateNudgesJobTest.php | 534 ++++++++++++++\n tests/Feature/Jobs/ImportRemoteTrackJobTest.php | 283 +++++++-\n tests/Feature/Mcp/IssueMcpTokenCommandTest.php | 53 ++\n tests/Feature/Mcp/ListCallsToolElasticFeatureTest.php | 155 ++++\n tests/Feature/Mcp/ListCallsToolFeatureTest.php | 352 ++++++++++\n tests/Feature/Mcp/McpTestHelpersTrait.php | 77 ++\n tests/Feature/Services/Team/TeamDeleteHandlers/Retention/RetentionRepositoryHandlerTest.php | 1 +\n tests/Stubs/SentryStub.php | 18 +\n tests/Unit/Component/ActivityAnalytics/Service/CalculateTalkTimeOffsetFromTranscriptionTest.php | 28 +-\n tests/Unit/Component/AiActivityType/Services/AiActivityTypeEligibilityCheckerTest.php | 103 ++-\n tests/Unit/Component/AiAutomation/Actions/PrepareUpdateDtoActionTest.php | 91 +++\n tests/Unit/Component/AiAutomation/Services/CrmFillingEligibilityCheckerTest.php | 124 ++++\n tests/Unit/Component/AiAutomation/TestCrmAiPromptServiceTest.php | 67 +-\n tests/Unit/Component/AiCallScoring/Services/AiCallScoringEligibilityCheckerTest.php | 55 ++\n tests/Unit/Component/ES/ElasticSearchWorkerManagerTest.php | 135 ----\n tests/Unit/Component/ES/Processor/Actions/LoadDocumentsActionTest.php | 220 ++++++\n tests/Unit/Component/ES/Processor/EntityQueryBuilderTest.php | 21 +-\n tests/Unit/Component/ES/Processor/Traits/SkipActivityTraitTest.php | 51 --\n tests/Unit/Component/ES/Worker/ActivityWorkerTest.php | 174 -----\n tests/Unit/Component/ES/Worker/EntityWorkerTest.php | 97 ---\n tests/Unit/Component/ES/Worker/WorkerAmountTest.php | 116 ---\n tests/Unit/Component/Encoding/Job/AnalyzeTrackChannelsJobTest.php | 52 +-\n tests/Unit/Component/Encoding/Service/GenerateSpeechFromSilenceServiceTest.php | 171 ++---\n tests/Unit/Component/FFMpeg/Services/GetSpeechIntervalsTest.php | 36 +-\n tests/Unit/Component/LanguageDetection/Services/FindSpeechTimeServiceTest.php | 20 +-\n tests/Unit/Component/MobileSettings/MobileSettingsControllerTest.php | 5 +-\n tests/Unit/Component/ParticipantSpeech/Services/ParticipantSpeechesCreatorTest.php | 75 ++\n tests/Unit/Component/ParticipantSpeech/Services/ParticipantSpeechesDeleterTest.php | 63 ++\n tests/Unit/Component/ParticipantSpeech/Services/ParticipantSpeechesProviderTest.php | 134 ++++\n tests/Unit/Component/ParticipantSpeech/Services/ParticipantSpeechesUploaderTest.php | 57 ++\n tests/Unit/Component/Transcription/Diarization/Services/GetNormalizedParticipantSpeechesServiceTest.php | 51 +-\n tests/Unit/Component/Transcription/Diarization/Source/MeetingBotSourceTest.php | 29 +-\n tests/Unit/Contracts/Services/Calendar/CalendarTraitTest.php | 58 +-\n tests/Unit/Http/Controllers/Kiosk/ActivityControllerTest.php | 159 +++++\n tests/Unit/Jobs/Activity/Import/ImportTwilioVideoSpeechesJobTest.php | 22 +-\n tests/Unit/Jobs/Activity/Import/IsActivityReadyForProcessingJobTest.php | 26 +-\n tests/Unit/Jobs/Calendar/SetupCalendarSyncTest.php | 25 -\n tests/Unit/Services/Activity/ParticipantsServiceTest.php | 12 +-\n tests/Unit/Services/Activity/Twilio/S3RecordingCredentialsServiceTest.php | 180 +++++\n tests/Unit/Services/ActivityServiceTest.php | 132 ++++\n tests/Unit/Services/Calendar/CalendarActivityServiceTest.php | 150 +++-\n tests/Unit/Services/Calendar/Command/ImportParticipantsTest.php | 6 +-\n tests/Unit/Services/Calendar/Command/MapActivityDataTest.php | 78 +-\n tests/Unit/Services/Calendar/GoogleCalendarServiceTest.php | 116 +++\n tests/Unit/Services/Crm/Close/ServiceTest.php | 165 +++++\n tests/Unit/Services/Crm/Hubspot/ServiceTest.php | 272 ++++++-\n tests/Unit/Services/Crm/Hubspot/ServiceTraits/OpportunitySyncTest.php | 25 +-\n tests/Unit/Services/Crm/Hubspot/ServiceTraits/OpportunitySyncTraitMatchActivitiesTest.php | 3 +-\n tests/Unit/Services/Crm/IntegrationApp/ServiceTraits/SyncCrmEntitiesTraitOpportunitiesTest.php | 40 ++\n tests/Unit/Services/Crm/Pipedrive/ImportOpportunityMatchActivitiesTest.php | 2 +\n tests/Unit/Services/Crm/Salesforce/ServiceTest.php | 139 ++++\n tests/Unit/Services/Mail/Office/EmailApiClientTest.php | 195 ++---\n tests/Unit/Services/RecallAI/RecallAIServiceTest.php | 24 +-\n 175 files changed, 12562 insertions(+), 2162 deletions(-)\n create mode 120000 CLAUDE.md\n create mode 100644 app/Component/AiAutomation/Services/CrmFillingEligibilityChecker.php\n delete mode 100644 app/Component/ES/ElasticSearchWorkerManager.php\n delete mode 100644 app/Component/ES/Processor/Traits/SkipActivityTrait.php\n delete mode 100644 app/Component/ES/Worker/ActivityWorker.php\n delete mode 100644 app/Component/ES/Worker/EntityWorker.php\n delete mode 100644 app/Component/ES/Worker/WorkerAmount.php\n delete mode 100644 app/Component/ES/Worker/WorkerInterface.php\n create mode 100644 app/Component/ProphetAi/Exceptions/InsufficientTranscriptException.php\n create mode 100644 app/Component/Transcription/DTO/Http/Transcription/AssemblyAI/AssemblyAI/NoAssemblyIdException.php\n create mode 100644 app/Component/Transcription/DTO/Http/Transcription/TranscriptionIsNotCorrectFormatException.php\n create mode 100644 app/Console/Commands/Activities/SetupIntegration/TwilioSetS3RecordingCredentialsCommand.php\n create mode 100644 app/Console/Commands/Crm/BackfillOpportunityUserFromAccountCommand.php\n delete mode 100644 app/Console/Commands/Elasticsearch/AsyncUpdateEsActivities.php\n create mode 100644 app/Console/Commands/IssueMcpTokenCommand.php\n create mode 100644 app/Http/Middleware/McpAuditMiddleware.php\n create mode 100644 app/Http/Middleware/McpTierMiddleware.php\n create mode 100644 app/Mcp/Contracts/McpCallRepositoryInterface.php\n create mode 100644 app/Mcp/DTO/ListCallsFilters.php\n create mode 100644 app/Mcp/Errors/McpError.php\n create mode 100644 app/Mcp/Repositories/McpActivityHydrator.php\n create mode 100644 app/Mcp/Repositories/McpCallRepository.php\n create mode 100644 app/Mcp/Repositories/McpElasticCallRepository.php\n create mode 100644 app/Mcp/Servers/JiminnyServer.php\n create mode 100644 app/Mcp/Tools/ListCallsTool.php\n create mode 100644 app/Services/Activity/Twilio/S3RecordingCredentialsService.php\n create mode 100644 config/mcp.php\n create mode 100644 database/migrations/2026_04_30_120000_create_mcp_audit_log_table.php\n create mode 100644 docs/mcp/explorer/explorer.html\n create mode 100644 docs/mcp/explorer/explorer.template.html\n create mode 100644 docs/mcp/explorer/generate.js\n create mode 100644 docs/mcp/explorer/tool-explorer-meta.json\n create mode 100644 docs/mcp/tools-list.json\n create mode 100644 docs/mcp/tools.md\n create mode 100644 front-end/src/components/shared/modals/EntityPickerModal/__tests__/useEntitiesCache.spec.ts\n create mode 100644 tests/Feature/Component/Nudge/ProcessOrganisationImmediateNudgesJobTest.php\n create mode 100644 tests/Feature/Mcp/IssueMcpTokenCommandTest.php\n create mode 100644 tests/Feature/Mcp/ListCallsToolElasticFeatureTest.php\n create mode 100644 tests/Feature/Mcp/ListCallsToolFeatureTest.php\n create mode 100644 tests/Feature/Mcp/McpTestHelpersTrait.php\n create mode 100644 tests/Stubs/SentryStub.php\n create mode 100644 tests/Unit/Component/AiAutomation/Services/CrmFillingEligibilityCheckerTest.php\n delete mode 100644 tests/Unit/Component/ES/ElasticSearchWorkerManagerTest.php\n create mode 100644 tests/Unit/Component/ES/Processor/Actions/LoadDocumentsActionTest.php\n delete mode 100644 tests/Unit/Component/ES/Processor/Traits/SkipActivityTraitTest.php\n delete mode 100644 tests/Unit/Component/ES/Worker/ActivityWorkerTest.php\n delete mode 100644 tests/Unit/Component/ES/Worker/EntityWorkerTest.php\n delete mode 100644 tests/Unit/Component/ES/Worker/WorkerAmountTest.php\n create mode 100644 tests/Unit/Component/ParticipantSpeech/Services/ParticipantSpeechesCreatorTest.php\n create mode 100644 tests/Unit/Http/Controllers/Kiosk/ActivityControllerTest.php\n create mode 100644 tests/Unit/Services/Activity/Twilio/S3RecordingCredentialsServiceTest.php\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20725-handle-HS-search-rate-limit) $ git status\nOn branch master\nYour branch is behind 'origin/master' by 114 commits, and can be fast-forwarded.\n (use \"git pull\" to update your local branch)\n\nChanges not staged for commit:\n (use \"git add <file>...\" to update what will be committed)\n (use \"git restore <file>...\" to discard changes in working directory)\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tmodified: .env.local\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tmodified: app/Component/SCIM/Constants.php\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tmodified: app/Component/SCIM/ScimProvisioning.php\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tmodified: app/Component/Twilio/Conference/ConferenceManager/SoftPhoneManager.php\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tmodified: app/Console/Commands/JiminnyDebugCommand.php\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tmodified: app/DTO/SCIM/AAD/Request/CoreUserRequest.php\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tmodified: app/DTO/SCIM/AAD/Response/CoreUser.php\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tmodified: app/Services/Telephony/TextMessagingService.php\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tmodified: config/logging.php\n\nUntracked files:\n (use \"git add <file>...\" to include in what will be committed)\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\t.env.nikilocal\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\t.env.other\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tWEBHOOK_FILTERING_IMPLEMENTATION.md\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tapp/Component/SCIM/Mutators/Attributes/User/RoleAttr.php\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tapp/Console/Commands/Crm/Hubspot/SimulateWebhooksCommand.php\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tapp/Console/Commands/Reports/CreateMockAskJiminnyReportResultCommand.php\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tapp/Rules/ListenerRoleCannotHaveAdminOrManagerPermissionRule.php\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tids.txt\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tpublic/favicon.ico\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\traw_sql_query.sql\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\ttests/Unit/Component/SCIM/Mutators/Attributes/User/RoleAttrTest.php\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\ttests/Unit/Policies/CanAccessAiReportsTest.php\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\ttests/Unit/Rules/ListenerRoleCannotHaveAdminOrManagerPermissionRuleTest.php\n\nno changes added to commit (use \"git add\" and/or \"git commit -a\")\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (master) $ git pull\nremote: Enumerating objects: 306, done.\nremote: Counting objects: 100% (299/299), done.\nremote: Compressing objects: 100% (183/183), done.\nremote: Total 306 (delta 213), reused 171 (delta 116), pack-reused 7 (from 1)\nReceiving objects: 100% (306/306), 80.12 KiB | 1000.00 KiB/s, done.\nResolving deltas: 100% (213/213), completed with 53 local objects.\nFrom github.com:jiminny/app\n 90bca4e4b2..5604af40cf master -> origin/master\n 4e7078fd8b..0b8343d179 JY-18091-upgrade-to-php-8-5 -> origin/JY-18091-upgrade-to-php-8-5\n 098eeaa087..d5a447e492 JY-20613-allow-owner-role-on-team-setup -> origin/JY-20613-allow-owner-role-on-team-setup\n c3a76ace91..af65249d0f JY-20749-user-can-view-recorded-meetings -> origin/JY-20749-user-can-view-recorded-meetings\n d94a285ae7..7ce96cb5fe JY-20808-low-priority-indexing-queue -> origin/JY-20808-low-priority-indexing-queue\n * [new branch] JY-20842-remove-partial-updater -> origin/JY-20842-remove-partial-updater\n * [new branch] JY-20920-fix-participant-flip -> origin/JY-20920-fix-participant-flip\n * [new branch] secfix/npm-20260519 -> origin/secfix/npm-20260519\nUpdating cb4ebf0c36..5604af40cf\nFast-forward\n app/Component/ES/ChunkSize.php | 54 +++++++++++++++++++\n app/Component/ES/Processor/DTOs/SelectionList.php | 4 +-\n app/Component/ES/Processor/TargetEntitiesSelector.php | 19 ++++---\n app/Component/MeetingBot/Service/ParticipantMatcher.php | 46 ++++++++++++----\n app/Exceptions/RateLimitException.php | 19 ++++++-\n app/Http/Middleware/McpTierMiddleware.php | 27 ++--------\n app/Jobs/Crm/MatchActivityCrmData.php | 47 ++++++++++++----\n app/Jobs/Middleware/HandleHubspotRateLimit.php | 42 +++++++++++++++\n app/Mcp/Servers/JiminnyServer.php | 2 +\n app/Mcp/Tools/GetMeTool.php | 157 +++++++++++++++++++++++++++++++++++++++++++++++++++++\n app/Models/Feature/FeatureEnum.php | 1 +\n app/Services/Activity/HubSpot/ProviderResolver.php | 4 +-\n app/Services/Activity/HubSpot/ProviderResolverInterface.php | 2 +-\n app/Services/Activity/HubSpot/Providers/Provider.php | 2 +-\n app/Services/Activity/HubSpot/Providers/ProviderKixie.php | 2 +-\n app/Services/Activity/HubSpot/Providers/ProviderOrum.php | 2 +-\n app/Services/Activity/HubSpot/Providers/ProviderTwilio.php | 2 +-\n app/Services/Activity/HubSpot/Providers/ProviderTwilioFlex.php | 5 +-\n app/Services/Activity/HubSpot/Service.php | 97 +++++++++++++++++++++++++++------\n app/Services/Crm/Hubspot/Client.php | 132 +++++++++++++++++++++++++++++++++++++++++++++\n app/Services/Crm/Hubspot/HubspotClientInterface.php | 15 ++++++\n app/Services/Crm/Hubspot/Pagination/HubspotPaginationService.php | 21 ++++----\n app/Services/Crm/Hubspot/Pagination/PaginationState.php | 2 +-\n database/migrations/2026_05_13_124153_create_mcp_feature_flag.php | 25 +++++++++\n tests/Feature/Mcp/GetMeToolFeatureTest.php | 140 +++++++++++++++++++++++++++++++++++++++++++++++\n tests/Feature/Mcp/ListCallsToolFeatureTest.php | 2 +-\n tests/Feature/Mcp/McpTestHelpersTrait.php | 19 ++++++-\n tests/Unit/Component/ES/ChunkSizeTest.php | 50 +++++++++++++++++\n tests/Unit/Component/ES/Processor/DTOs/SelectionListTest.php | 27 +++++++---\n tests/Unit/Component/ES/Processor/TargetEntitiesSelectorTest.php | 39 ++++++++------\n tests/Unit/Component/MeetingBot/Service/ParticipantMatcherTest.php | 68 ++++++++++++++++++++++-\n tests/Unit/Exceptions/RateLimitExceptionTest.php | 56 +++++++++++++++++++\n tests/Unit/Jobs/Crm/MatchActivityCrmDataTest.php | 8 +--\n tests/Unit/Jobs/Middleware/HandleHubspotRateLimitTest.php | 151 +++++++++++++++++++++++++++++++++++++++++++++++++++\n tests/Unit/Services/Activity/HubSpot/ServiceTest.php | 109 +++++++++++++++++++++++++++++++++++++\n tests/Unit/Services/Crm/Hubspot/ClientTest.php | 250 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++\n tests/Unit/Services/Crm/Hubspot/Pagination/HubspotPaginationServiceTest.php | 283 +++++++++++++++++++++---------------------------------------------------------------------------\n 37 files changed, 1587 insertions(+), 344 deletions(-)\n create mode 100644 app/Component/ES/ChunkSize.php\n create mode 100644 app/Jobs/Middleware/HandleHubspotRateLimit.php\n create mode 100644 app/Mcp/Tools/GetMeTool.php\n create mode 100644 database/migrations/2026_05_13_124153_create_mcp_feature_flag.php\n create mode 100644 tests/Feature/Mcp/GetMeToolFeatureTest.php\n create mode 100644 tests/Unit/Component/ES/ChunkSizeTest.php\n create mode 100644 tests/Unit/Exceptions/RateLimitExceptionTest.php\n create mode 100644 tests/Unit/Jobs/Middleware/HandleHubspotRateLimitTest.php\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (master) $ git pull\nAlready up to date.\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (master) $ co -b JY-20676-delete-report-related-objects\nSwitched to a new branch 'JY-20676-delete-report-related-objects'\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20676-delete-report-related-objects) $ csfix\ndocker exec -it docker_lamp_1 ./vendor/bin/php-cs-fixer fix --config=.php-cs-fixer.dist.php -v --using-cache=no --diff \nPHP CS Fixer 3.87.1 Alexander by Fabien Potencier, Dariusz Ruminski and contributors.\nPHP runtime: 8.3.30\nRunning analysis on 7 cores with 10 files per process.\nParallel runner is an experimental feature and may be unstable, use it at your own risk. Feedback highly appreciated!\nLoaded config default from \".php-cs-fixer.dist.php\".\n 5690/5690 [▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓] 100%\n\n 1) app/Console/Commands/JiminnyDebugCommand.php (statement_indentation, blank_line_before_statement)\n ---------- begin diff ----------\n--- /home/jiminny/app/Console/Commands/JiminnyDebugCommand.php\n+++ /home/jiminny/app/Console/Commands/JiminnyDebugCommand.php\n@@ -23,6 +23,7 @@\n \n if ($action === 'redis-set') {\n $this->testRedisSet();\n+\n return;\n }\n \n@@ -45,7 +46,7 @@\n $ttl = 60;\n \n try {\n-// $result = Redis::set($testKey, $testValue, 'EX', $ttl, 'NX');\n+ // $result = Redis::set($testKey, $testValue, 'EX', $ttl, 'NX');\n $result = Redis::set($testKey, $testValue, ['nx', 'ex' => $ttl]);\n \n if ($result) {\n\n ----------- end diff -----------\n\n\nFixed 1 of 5690 files in 50.673 seconds, 67.00 MB memory used\n\nWhat's next:\n Try Docker Debug for seamless, persistent debugging tools in any container or image → docker debug docker_lamp_1\n Learn more at https://docs.docker.com/go/debug-cli/\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20676-delete-report-related-objects) $ ;xd\ndocker exec -it docker_lamp_1 bash -c \"mv /usr/local/etc/php/conf.d/xdebug.ini ~/xdebug.ini\"\n\nWhat's next:\n Try Docker Debug for seamless, persistent debugging tools in any container or image → docker debug docker_lamp_1\n Learn more at https://docs.docker.com/go/debug-cli/\ndocker exec -it docker_lamp_1 supervisorctl restart all\njiminny-worker-processing-2:jiminny-worker-processing-2_00: stopped\njiminny-worker-processing-3:jiminny-worker-processing-3_00: stopped\njiminny-worker-processing-4:jiminny-worker-processing-4_00: stopped\njiminny-worker-processing-5:jiminny-worker-processing-5_00: stopped\njiminny-worker-processing-delayed:jiminny-worker-processing-delayed_00: stopped\nworker-analytics:worker-analytics_00: stopped\nworker-crm-update:worker-crm-update_00: stopped\nworker-download:worker-download_00: stopped\nworker-nudges:worker-nudges_00: stopped\nworker-calendar:worker-calendar_00: stopped\nworker-audio:worker-audio_00: stopped\njiminny-worker-processing-1:jiminny-worker-processing-1_00: stopped\nworker:worker_00: stopped\nworker-conferences:worker-conferences_00: stopped\nworker-crm-sync:worker-crm-sync_00: stopped\nworker-emails:worker-emails_00: stopped\nworker-es-update:worker-es-update_00: stopped\nartisan-schedule:artisan-schedule_00: stopped\nartisan-schedule:artisan-schedule_00: started\njiminny-worker-processing-1:jiminny-worker-processing-1_00: started\njiminny-worker-processing-2:jiminny-worker-processing-2_00: started\njiminny-worker-processing-3:jiminny-worker-processing-3_00: started\njiminny-worker-processing-4:jiminny-worker-processing-4_00: started\njiminny-worker-processing-5:jiminny-worker-processing-5_00: started\njiminny-worker-processing-delayed:jiminny-worker-processing-delayed_00: started\nworker:worker_00: started\nworker-analytics:worker-analytics_00: started\nworker-audio:worker-audio_00: started\nworker-calendar:worker-calendar_00: started\nworker-conferences:worker-conferences_00: started\nworker-crm-sync:worker-crm-sync_00: started\nworker-crm-update:worker-crm-update_00: started\nworker-download:worker-download_00: started\nworker-emails:worker-emails_00: started\nworker-es-update:worker-es-update_00: started\nworker-nudges:worker-nudges_00: started\n\nWhat's next:\n Try Docker Debug for seamless, persistent debugging tools in any container or image → docker debug docker_lamp_1\n Learn more at https://docs.docker.com/go/debug-cli/\ndocker exec -it docker_lamp_1 php -v\nPHP 8.3.30 (cli) (built: Mar 16 2026 22:32:32) (NTS)\nCopyright (c) The PHP Group\nZend Engine v4.3.30, Copyright (c) Zend Technologies\n with Zend OPcache v8.3.30, Copyright (c), by Zend Technologies\n\nWhat's next:\n Try Docker Debug for seamless, persistent debugging tools in any container or image → docker debug docker_lamp_1\n Learn more at https://docs.docker.com/go/debug-cli/\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20676-delete-report-related-objects) $ git status\nOn branch JY-20676-delete-report-related-objects\nChanges not staged for commit:\n (use \"git add <file>...\" to update what will be committed)\n (use \"git restore <file>...\" to discard changes in working directory)\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tmodified: .env.local\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tmodified: app/Console/Commands/JiminnyDebugCommand.php\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tmodified: config/logging.php\n\nUntracked files:\n (use \"git add <file>...\" to include in what will be committed)\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\t.env.nikilocal\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\t.env.other\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tWEBHOOK_FILTERING_IMPLEMENTATION.md\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tapp/Console/Commands/Crm/Hubspot/SimulateWebhooksCommand.php\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tapp/Console/Commands/Reports/CreateMockAskJiminnyReportResultCommand.php\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tids.txt\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tpublic/favicon.ico\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\traw_sql_query.sql\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\ttests/Unit/Policies/CanAccessAiReportsTest.php\n\nno changes added to commit (use \"git add\" and/or \"git commit -a\")\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20676-delete-report-related-objects) $ git push -u origin JY-20676-delete-report-related-objects\nEnumerating objects: 45, done.\nCounting objects: 100% (45/45), done.\nDelta compression using up to 8 threads\nCompressing objects: 100% (24/24), done.\nWriting objects: 100% (24/24), 3.62 KiB | 3.62 MiB/s, done.\nTotal 24 (delta 19), reused 0 (delta 0), pack-reused 0\nremote: Resolving deltas: 100% (19/19), completed with 19 local objects.\nremote: \nremote: Create a pull request for 'JY-20676-delete-report-related-objects' on GitHub by visiting:\nremote: https://github.com/jiminny/app/pull/new/JY-20676-delete-report-related-objects\nremote: \nTo github.com:jiminny/app.git\n * [new branch] JY-20676-delete-report-related-objects -> JY-20676-delete-report-related-objects\nbranch 'JY-20676-delete-report-related-objects' set up to track 'origin/JY-20676-delete-report-related-objects'.\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20676-delete-report-related-objects) $ csfix\ndocker exec -it docker_lamp_1 ./vendor/bin/php-cs-fixer fix --config=.php-cs-fixer.dist.php -v --using-cache=no --diff \nPHP CS Fixer 3.87.1 Alexander by Fabien Potencier, Dariusz Ruminski and contributors.\nPHP runtime: 8.3.30\nRunning analysis on 7 cores with 10 files per process.\nParallel runner is an experimental feature and may be unstable, use it at your own risk. Feedback highly appreciated!\nLoaded config default from \".php-cs-fixer.dist.php\".\n 5690/5690 [▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓] 100%\n\n 1) app/Http/Controllers/API/V2/AskJiminnyReportsController.php (blank_line_before_statement)\n ---------- begin diff ----------\n--- /home/jiminny/app/Http/Controllers/API/V2/AskJiminnyReportsController.php\n+++ /home/jiminny/app/Http/Controllers/API/V2/AskJiminnyReportsController.php\n@@ -140,6 +140,7 @@\n if ($enabled && $report->isAskJiminnyReport() && ! $report->canExecute()) {\n $error = 'This report is missing a saved search or prompt. ' .\n 'Edit the report to complete the setup before enabling it.';\n+\n return new JsonResponse(\n ['error' => $error],\n Response::HTTP_UNPROCESSABLE_ENTITY\n\n ----------- end diff -----------\n\n\nFixed 1 of 5690 files in 71.757 seconds, 60.00 MB memory used\n\nWhat's next:\n Try Docker Debug for seamless, persistent debugging tools in any container or image → docker debug docker_lamp_1\n Learn more at https://docs.docker.com/go/debug-cli/\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20676-delete-report-related-objects) $ git pull\nremote: Enumerating objects: 158, done.\nremote: Counting objects: 100% (103/103), done.\nremote: Compressing objects: 100% (37/37), done.\nremote: Total 158 (delta 80), reused 74 (delta 66), pack-reused 55 (from 3)\nReceiving objects: 100% (158/158), 80.59 KiB | 982.00 KiB/s, done.\nResolving deltas: 100% (85/85), completed with 45 local objects.\nFrom github.com:jiminny/app\n 02a33811ee..c6ce5e2440 JY-20676-delete-report-related-objects -> origin/JY-20676-delete-report-related-objects\n 7ce96cb5fe..6c59f04358 JY-20808-low-priority-indexing-queue -> origin/JY-20808-low-priority-indexing-queue\n 3906a9238a..2b5e6ea62b JY-20835-mcp-enable-users-to-get-a-list-of-deals-and-their-details -> origin/JY-20835-mcp-enable-users-to-get-a-list-of-deals-and-their-details\n 5604af40cf..ea3519f0e2 master -> origin/master\n * [new branch] switch-eu-assembly -> origin/switch-eu-assembly\nUpdating 02a33811ee..c6ce5e2440\nFast-forward\n app/Component/ES/ElasticSearchDocumentPartialUpdater.php | 48 ---\n app/Component/ParticipantSpeech/Services/ParticipantAttributionService.php | 4 +-\n app/Component/Settings/AutoScoring/Services/UpdateAutoScoreService.php | 20 +-\n app/Component/Transcription/Service/StorageService.php | 8 +-\n front-end/package.json | 2 +-\n front-end/src/components/DealInsights/Modals/AskAnythingModal.vue | 23 ++\n front-end/src/components/shared/AskAnything/AskAnythingPromptFormItem.vue | 2 +\n front-end/src/components/shared/AskAnything/AskAnythingSettingsDrawer.vue | 23 +-\n front-end/src/components/shared/AskAnything/__mocks__/AskAnythingSettingsDrawer.mocks.js | 1 +\n front-end/src/components/shared/AskAnything/__tests__/AskAnythingSettingsDrawer.spec.js | 135 ++++---\n front-end/src/components/shared/AskAnything/__tests__/__snapshots__/AskAnythingSettingsDrawer.spec.js.html | 1235 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++\n front-end/src/components/shared/AskAnything/__tests__/__snapshots__/AskAnythingSettingsDrawer.spec.js.snap | 1382 ----------------------------------------------------------------\n front-end/src/components/shared/AskAnything/prompts.js | 1 +\n front-end/src/components/shared/AskAnything/useAskAnything.js | 1 +\n front-end/yarn.lock | 8 +-\n tests/Unit/Component/ES/ElasticSearchDocumentPartialUpdaterTest.php | 42 --\n tests/Unit/Component/Settings/AutoScoring/Services/UpdateAutoScoreServiceTest.php | 86 ++--\n tests/Unit/Component/Transcription/Service/StorageServiceTest.php | 29 +-\n 18 files changed, 1448 insertions(+), 1602 deletions(-)\n delete mode 100644 app/Component/ES/ElasticSearchDocumentPartialUpdater.php\n create mode 100644 front-end/src/components/shared/AskAnything/__tests__/__snapshots__/AskAnythingSettingsDrawer.spec.js.html\n delete mode 100644 front-end/src/components/shared/AskAnything/__tests__/__snapshots__/AskAnythingSettingsDrawer.spec.js.snap\n delete mode 100644 tests/Unit/Component/ES/ElasticSearchDocumentPartialUpdaterTest.php\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20676-delete-report-related-objects) $ csfix\ndocker exec -it docker_lamp_1 ./vendor/bin/php-cs-fixer fix --config=.php-cs-fixer.dist.php -v --using-cache=no --diff","is_focused":true},{"role":"AXRadioButton","text":"DOCKER","depth":2,"bounds":{"left":0.0,"top":0.05888889,"width":0.19826388,"height":0.026666667},"on_screen":true,"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.004166667,"top":0.06333333,"width":0.011111111,"height":0.017777778},"on_screen":true,"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"DEV (docker)","depth":2,"bounds":{"left":0.19826388,"top":0.05888889,"width":0.19826388,"height":0.026666667},"on_screen":true,"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.20243056,"top":0.06333333,"width":0.011111111,"height":0.017777778},"on_screen":true,"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"APP (-zsh)","depth":2,"bounds":{"left":0.39652777,"top":0.05888889,"width":0.19791667,"height":0.026666667},"on_screen":true,"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.40069443,"top":0.06333333,"width":0.011111111,"height":0.017777778},"on_screen":true,"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"screenpipe\"","depth":2,"bounds":{"left":0.59444445,"top":0.05888889,"width":0.19791667,"height":0.026666667},"on_screen":true,"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.5986111,"top":0.06333333,"width":0.011111111,"height":0.017777778},"on_screen":true,"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"-zsh","depth":2,"bounds":{"left":0.79236114,"top":0.05888889,"width":0.19791667,"height":0.026666667},"on_screen":true,"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.7965278,"top":0.06333333,"width":0.011111111,"height":0.017777778},"on_screen":true,"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"⌥⌘1","depth":1,"bounds":{"left":0.9618056,"top":0.032222223,"width":0.038194418,"height":0.018888889},"on_screen":true,"automation_id":"_NS:8","role_description":"text"},{"role":"AXStaticText","text":"APP (-zsh)","depth":1,"bounds":{"left":0.47777778,"top":0.033333335,"width":0.05138889,"height":0.017777778},"on_screen":true,"role_description":"text"}]...
|
2802650493718167367
|
-1358120912881272742
|
click
|
accessibility
|
NULL
|
Last login: Mon May 18 09:17:28 on ttys007
Poetry Last login: Mon May 18 09:17:28 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 (pipedrive-sdk-poc) $ co master
error: Your local changes to the following files would be overwritten by checkout:
PIPEDRIVE_V2_MIGRATION_TICKETS.md
Please commit your changes or stash them before you switch branches.
Aborting
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (pipedrive-sdk-poc) $ git pull
remote: Enumerating objects: 1047, done.
remote: Counting objects: 100% (832/832), done.
remote: Compressing objects: 100% (298/298), done.
remote: Total 1047 (delta 634), reused 596 (delta 534), pack-reused 215 (from 3)
Receiving objects: 100% (1047/1047), 353.16 KiB | 1.56 MiB/s, done.
Resolving deltas: 100% (687/687), completed with 107 local objects.
From github.com:jiminny/app
907c54896c..34656c53ed pipedrive-sdk-poc -> origin/pipedrive-sdk-poc
03325ec50f..4e7078fd8b JY-18091-upgrade-to-php-8-5 -> origin/JY-18091-upgrade-to-php-8-5
e7d231e163..bc6a3fce6b JY-20725-handle-HS-search-rate-limit -> origin/JY-20725-handle-HS-search-rate-limit
* [new branch] JY-20749-user-can-view-recorded-meetings -> origin/JY-20749-user-can-view-recorded-meetings
98ca281a04..e0351be069 JY-20808-low-priority-indexing-queue -> origin/JY-20808-low-priority-indexing-queue
569abb5149..3906a9238a JY-20835-mcp-enable-users-to-get-a-list-of-deals-and-their-details -> origin/JY-20835-mcp-enable-users-to-get-a-list-of-deals-and-their-details
ad6c2a86e8..50eb6afba9 JY-20846-mcp-enable-the-ai-to-know-details-about-the-user -> origin/JY-20846-mcp-enable-the-ai-to-know-details-about-the-user
* [new branch] JY-20893-chunk-control-per-update-target -> origin/JY-20893-chunk-control-per-update-target
31c62924a5..cb4ebf0c36 master -> origin/master
Updating 907c54896c..34656c53ed
Fast-forward
PIPEDRIVE_V2_MIGRATION_TICKETS.md | 52 ++++++++++++++++++++++++++++++++++++++++++++++++++++
1 file changed, 52 insertions(+)
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (pipedrive-sdk-poc) $ co master
M .env.local
M config/logging.php
Switched to branch 'master'
Your branch is behind 'origin/master' by 31 commits, and can be fast-forwarded.
(use "git pull" to update your local branch)
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (master) $ git pull
Updating 31c62924a5..cb4ebf0c36
Fast-forward
app/Component/ES/Processor/Traits/SelectEntityListTrait.php | 20 ------
app/Services/Calendar/CalendarActivityService.php | 46 +++++++++++++
app/Services/Calendar/Command/MapActivityData.php | 106 +++-------------------------
docs/mcp/explorer/explorer.html | 104 +++++++++++++++++++++++++---
docs/mcp/explorer/explorer.template.html | 102 ++++++++++++++++++++++++---
docs/mcp/tools-list.json | 373 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++-------
docs/mcp/tools.md | 117 +++++++++++++++++++++++--------
tests/Unit/Component/ES/AsyncUpdateElasticSearchTest.php | 16 +----
tests/Unit/Component/ES/Listeners/UpdateMultipleTargetsListenerTest.php | 10 ---
tests/Unit/Component/ES/Listeners/UpdateSingleTargetListenerTest.php | 6 --
tests/Unit/Component/ES/Processor/TargetEntitiesSelectorTest.php | 9 ---
tests/Unit/Component/ES/Processor/Traits/SelectEntityListTraitTest.php | 15 ++--
tests/Unit/Component/ES/UpdateProcessManagerTest.php | 2 -
tests/Unit/Services/Calendar/CalendarActivityServiceTest.php | 150 ++++++++++++++++++++++++++++++++++++++--
tests/Unit/Services/Calendar/Command/MapActivityDataTest.php | 78 ++-------------------
15 files changed, 832 insertions(+), 322 deletions(-)
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (master) $ co -b JY-20613-allow-owner-role-on-team-setup
Switched to a new branch 'JY-20613-allow-owner-role-on-team-setup'
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20613-allow-owner-role-on-team-setup) $ csfix
docker exec -it docker_lamp_1 ./vendor/bin/php-cs-fixer fix --config=.php-cs-fixer.dist.php -v --using-cache=no --diff
PHP CS Fixer 3.87.1 Alexander by Fabien Potencier, Dariusz Ruminski and contributors.
PHP runtime: 8.3.30
Running 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!
Loaded config default from ".php-cs-fixer.dist.php".
5682/5682 [▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓] 100%
Fixed 0 of 5682 files in 56.978 seconds, 67.00 MB memory used
What's next:
Try Docker Debug for seamless, persistent debugging tools in any container or image → docker debug docker_lamp_1
Learn more at [URL_WITH_CREDENTIALS] ~/jiminny/app (JY-20613-allow-owner-role-on-team-setup) $ csfix
docker exec -it docker_lamp_1 ./vendor/bin/php-cs-fixer fix --config=.php-cs-fixer.dist.php -v --using-cache=no --diff
PHP CS Fixer 3.87.1 Alexander by Fabien Potencier, Dariusz Ruminski and contributors.
PHP runtime: 8.3.30
Running 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!
Loaded config default from ".php-cs-fixer.dist.php".
5682/5682 [▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓] 100%
Fixed 0 of 5682 files in 49.910 seconds, 60.00 MB memory used
What's next:
Try Docker Debug for seamless, persistent debugging tools in any container or image → docker debug docker_lamp_1
Learn more at [URL_WITH_CREDENTIALS] ~/jiminny/app (JY-20613-allow-owner-role-on-team-setup) $ git pull
remote: Enumerating objects: 248, done.
remote: Counting objects: 100% (128/128), done.
remote: Compressing objects: 100% (23/23), done.
remote: Total 59 (delta 43), reused 44 (delta 33), pack-reused 0 (from 0)
Unpacking objects: 100% (59/59), 10.48 KiB | 228.00 KiB/s, done.
From github.com:jiminny/app
b7df560451..190239dfd4 JY-20613-allow-owner-role-on-team-setup -> origin/JY-20613-allow-owner-role-on-team-setup
e0351be069..d94a285ae7 JY-20808-low-priority-indexing-queue -> origin/JY-20808-low-priority-indexing-queue
* [new branch] JY-20920-fix-participant-matcher -> origin/JY-20920-fix-participant-matcher
cb4ebf0c36..90bca4e4b2 master -> origin/master
Merge made by the 'ort' strategy.
app/Component/ES/ChunkSize.php | 54 +++++++++++++++++++++++++++
app/Component/ES/Processor/DTOs/SelectionList.php | 4 +-
app/Component/ES/Processor/TargetEntitiesSelector.php | 19 ++++++----
app/Http/Middleware/McpTierMiddleware.php | 27 +++-----------
app/Mcp/Servers/JiminnyServer.php | 2 +
app/Mcp/Tools/GetMeTool.php | 157 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
app/Models/Feature/FeatureEnum.php | 1 +
database/migrations/2026_05_13_124153_create_mcp_feature_flag.php | 25 +++++++++++++
front-end/src/components/Settings/Kiosk/modals/EditTeamModal/EditTeamModal.vue | 52 ++++++++++++++++++--------
front-end/src/components/Settings/Kiosk/modals/EditTeamModal/__tests__/EditTeamModal.spec.js | 14 +++++++
tests/Feature/Mcp/GetMeToolFeatureTest.php | 140 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
tests/Feature/Mcp/ListCallsToolFeatureTest.php | 2 +-
tests/Feature/Mcp/McpTestHelpersTrait.php | 19 +++++++++-
tests/Unit/Component/ES/ChunkSizeTest.php | 50 +++++++++++++++++++++++++
tests/Unit/Component/ES/Processor/DTOs/SelectionListTest.php | 27 ++++++++++----
tests/Unit/Component/ES/Processor/TargetEntitiesSelectorTest.php | 39 +++++++++++---------
16 files changed, 557 insertions(+), 75 deletions(-)
create mode 100644 app/Component/ES/ChunkSize.php
create mode 100644 app/Mcp/Tools/GetMeTool.php
create mode 100644 database/migrations/2026_05_13_124153_create_mcp_feature_flag.php
create mode 100644 tests/Feature/Mcp/GetMeToolFeatureTest.php
create mode 100644 tests/Unit/Component/ES/ChunkSizeTest.php
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20613-allow-owner-role-on-team-setup) $ git push
Enumerating objects: 40, done.
Counting objects: 100% (34/34), done.
Delta compression using up to 8 threads
Compressing objects: 100% (18/18), done.
Writing objects: 100% (18/18), 1.58 KiB | 1.58 MiB/s, done.
Total 18 (delta 15), reused 0 (delta 0), pack-reused 0
remote: Resolving deltas: 100% (15/15), completed with 13 local objects.
To github.com:jiminny/app.git
190239dfd4..ec1b261264 JY-20613-allow-owner-role-on-team-setup -> JY-20613-allow-owner-role-on-team-setup
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20613-allow-owner-role-on-team-setup) $ gbr
* JY-20613-allow-owner-role-on-team-setup
pipedrive-sdk-poc
master
JY-20903-update_activity-stage-on-opportunity-change
JY-20904-fix-update-es-on-activity-command
JY-20891-improve-sms-text-relays
JY-20725-handle-HS-search-rate-limit
JY-20818-move-AJ-reports-to-separated-datadog-metric
JY-20773-fix-automated-reports-user-pilot-tracking
JY-20157-AJ-report-not-send-notification
JY-20508-notify-before-AJ-report-expiration
JY-20372-ai-reports-promotion-pages
JY-20352-sync-opportunities-without-a-local-owner-user-id-is-null
JY-20738-debug-AJ-tracking-UP
a
JY-18909-automated-reports-ask-jiminny
JY-20692-fix-integration-app-[API_KEY]
JY-20553-debug-crm-sync-delays
JY-20698-fix-SF-activity-types-on-new-playbook
JY-20543-AJ-report-tracking
JY-20384-handle-auto-sync-with-no-access-to-event-type
JY-20458-ask-jiminny-user-definitions
JY-19666-fix-import-contacts-account-association
JY-19666-HS-import-contacts-and-accounts-batch-job
JY-20458-Ask-Jiminny-Reports
JY-20200-batch-update-CRM-objects-Salesforce
JY-19666-HS-webhooks-add-contact-and-company
JY-20348-trigger-setup-DI-layout-on-team-creation
JY-20326-refactor-info-message-in-command
JY-20317-fix-auto-log-delay-issue-on-all-channels-disabled
JY-20312-remove-on-update-change-last-synced-at-crm-configurations
JY-20306-SF-skip-auto-sync-for-task-based-playbook
JY-20192-remove-deleted-team-from-saved-search-filters
JY-20197-import-opportunity-batch-job
JY-20293-enable-status-field-for-pipedrive-deals
JY-20191-remove-commands-interactive-prompts
JY-20118-change-default-sync-strategy
JY-20183-add-cache-on-auto-log-delay
JY-20197-add-import-opportunity-batch-job
20118-hs-opportunity-make-webhook-strategy-default
JY-20118-make-default-hs-opportunity-sync-strategy-webhook-based
JY-20196-handle-opportunity-without-note
JY-20118-improve-opportunity-import
JY-20189-handle-activity-search-on-deleted-groups
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20613-allow-owner-role-on-team-setup) $ co JY-20725-handle-HS-search-rate-limit
M .env.local
M config/logging.php
Switched to branch 'JY-20725-handle-HS-search-rate-limit'
Your branch is behind 'origin/JY-20725-handle-HS-search-rate-limit' by 439 commits, and can be fast-forwarded.
(use "git pull" to update your local branch)
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20725-handle-HS-search-rate-limit) $ git pull
Updating 0f3e438941..bc6a3fce6b
Fast-forward
.gitignore | 3 +-
.windsurfrules | 168 ++---
CLAUDE.md | 1 +
app/Component/ActivityAnalytics/Service/CalculateTalkTimeOffsetsFromTranscription.php | 24 +-
app/Component/AiActivityType/Services/AiActivityTypeEligibilityChecker.php | 28 +-
app/Component/AiAutomation/Actions/PrepareUpdateDtoAction.php | 32 +-
app/Component/AiAutomation/Services/CrmFillingEligibilityChecker.php | 47 ++
app/Component/AiAutomation/TestCrmAiPromptService.php | 14 +
app/Component/AiCallScoring/Services/AiCallScoringEligibilityChecker.php | 9 +
app/Component/ES/ElasticSearchDocumentPartialUpdater.php | 13 +-
app/Component/ES/ElasticSearchWorkerManager.php | 86 ---
app/Component/ES/Processor/Actions/LoadDocumentsAction.php | 80 +--
app/Component/ES/Processor/EntityQueryBuilder.php | 12 +-
app/Component/ES/Processor/TargetEntitiesSelector.php | 2 +-
app/Component/ES/Processor/Traits/SkipActivityTrait.php | 25 -
app/Component/ES/Repositories/EsResetActivityRepository.php | 11 +-
app/Component/ES/Worker/ActivityWorker.php | 73 --
app/Component/ES/Worker/EntityWorker.php | 44 --
app/Component/ES/Worker/WorkerAmount.php | 60 --
app/Component/ES/Worker/WorkerInterface.php | 15 -
app/Component/ElasticSearch/Contract/Searchable.php | 4 +
app/Component/Encoding/Job/AnalyzeTrackChannelsJob.php | 20 +-
app/Component/Encoding/Service/GenerateSpeechFromSilenceService.php | 85 ++-
app/Component/FFMpeg/Services/GetSpeechIntervalsService.php | 18 +-
app/Component/LanguageDetection/Services/FindSpeechTimeService.php | 22 +-
app/Component/Nudge/Job/ProcessOrganisationImmediateNudgesJob.php | 218 +++++-
app/Component/ParagraphBreaker/Services/TranscriptionParagraphsService.php | 4 +
app/Component/ParticipantSpeech/Services/ParticipantSpeechesCreator.php | 33 +
app/Component/ParticipantSpeech/Services/ParticipantSpeechesDeleter.php | 15 +
app/Component/ParticipantSpeech/Services/ParticipantSpeechesProvider.php | 51 +-
app/Component/ParticipantSpeech/Services/ParticipantSpeechesUploader.php | 36 +
app/Component/ProphetAi/Exceptions/InsufficientTranscriptException.php | 11 +
app/Component/Transcription/DTO/Http/Transcription/AssemblyAI/AssemblyAI/NoAssemblyIdException.php | 11 +
app/Component/Transcription/DTO/Http/Transcription/AssemblyAI/AssemblyAI/SuccessfulResponse.php | 6 +
app/Component/Transcription/DTO/Http/Transcription/TranscriptionIsNotCorrectFormatException.php | 11 +
app/Component/Transcription/Diarization/Services/GetNormalizedParticipantSpeechesService.php | 23 +-
app/Component/Transcription/Diarization/Source/MeetingBotSource.php | 16 +-
app/Component/Transcription/TranscriptionProcessor/TranscriptionProcessor.php | 3 +
app/Console/Commands/Activities/ActivityHardDeleteCommand.php | 4 +-
app/Console/Commands/Activities/Copy.php | 2 +
app/Console/Commands/Activities/SetupIntegration/TwilioSetS3RecordingCredentialsCommand.php | 119 ++++
app/Console/Commands/Activities/UpdateActivityElasticSearchDocumentCommand.php | 10 +-
app/Console/Commands/Crm/BackfillOpportunityUserFromAccountCommand.php | 126 ++++
app/Console/Commands/Elasticsearch/AsyncUpdateEsActivities.php | 19 -
app/Console/Commands/Elasticsearch/AsyncUpdateEsEntities.php | 50 +-
app/Console/Commands/Elasticsearch/ResetAsyncElasticSearchCommand.php | 30 +-
app/Console/Commands/GeckoExport/GeckoExportParticipantSpeechesCommand.php | 14 +-
app/Console/Commands/IssueMcpTokenCommand.php | 84 +++
app/Console/Commands/JiminnyDebugCommand.php | 7 +-
app/Console/Commands/Tracks/CleanupActivityTracksCommand.php | 2 +-
app/Console/Kernel.php | 6 +-
app/Contracts/Services/Calendar/CalendarTrait.php | 80 ++-
app/Events/AutomatedReports/AutomatedReportGenerated.php | 3 +
app/Http/Controllers/API/AiCallScoring/AiScorecardController.php | 7 +-
app/Http/Controllers/API/TeamAiAutomationController.php | 8 +
app/Http/Controllers/CustomerApi/CustomerApiController.php | 4 +-
app/Http/Controllers/Kiosk/ActivityController.php | 58 +-
app/Http/Controllers/Settings/PlaybookController.php | 15 +-
app/Http/Kernel.php | 23 +
app/Http/Middleware/McpAuditMiddleware.php | 156 ++++
app/Http/Middleware/McpTierMiddleware.php | 54 ++
app/Http/Requests/API/V2/ZapierUploadActivityRequest.php | 28 +-
app/Jobs/Activity/Import/ImportTwilioVideoSpeechesJob.php | 25 +-
app/Jobs/Activity/Import/IsActivityReadyForProcessingJob.php | 10 +-
app/Jobs/Calendar/SetupCalendarSync.php | 21 +-
app/Jobs/ImportRemoteTrackJob.php | 96 ++-
app/Jobs/Mailbox/EmailTextRelay.php | 15 +-
app/Mcp/Contracts/McpCallRepositoryInterface.php | 30 +
app/Mcp/DTO/ListCallsFilters.php | 29 +
app/Mcp/Errors/McpError.php | 123 ++++
app/Mcp/Repositories/McpActivityHydrator.php | 145 ++++
app/Mcp/Repositories/McpCallRepository.php | 84 +++
app/Mcp/Repositories/McpElasticCallRepository.php | 171 +++++
app/Mcp/Servers/JiminnyServer.php | 38 +
app/Mcp/Tools/ListCallsTool.php | 205 ++++++
app/Models/Activity.php | 10 +-
app/Models/Activity/Transcription.php | 17 +-
app/Models/ElasticSearch/OpportunityElasticSearchTrait.php | 5 +
app/Models/Participant.php | 1 +
app/Providers/AppServiceProvider.php | 22 +
app/Repositories/Crm/ContactRepository.php | 69 +-
app/Repositories/ParticipantSpeechRepository.php | 13 +-
app/Services/Activity/ParticipantsService.php | 19 +-
app/Services/Activity/Twilio/S3RecordingCredentialsService.php | 82 +++
app/Services/ActivityService.php | 21 +-
app/Services/Calendar/CalendarActivityService.php | 46 ++
app/Services/Calendar/Command/ImportParticipants.php | 1 +
app/Services/Calendar/Command/MapActivityData.php | 106 +--
app/Services/Calendar/GoogleCalendarService.php | 12 +-
app/Services/Crm/Close/Processor/OpportunityProcessor.php | 2 +-
app/Services/Crm/Close/Service.php | 22 +-
app/Services/Crm/Copper/Service.php | 12 +-
app/Services/Crm/Hubspot/Service.php | 154 +++-
app/Services/Crm/Hubspot/ServiceTraits/OpportunitySyncTrait.php | 88 ++-
app/Services/Crm/IntegrationApp/ServiceTraits/SyncCrmEntitiesTrait.php | 22 +-
app/Services/Crm/Pipedrive/Service.php | 17 +-
app/Services/Crm/Salesforce/Service.php | 42 +-
app/Services/Mail/Office/EmailApiClient.php | 129 +---
app/Services/RecallAI/Commands/ScheduleBotCommand.php | 39 +-
app/Services/RecallAI/RecallAIService.php | 22 +-
composer.json | 3 +-
composer.lock | 87 ++-
config/mcp.php | 23 +
database/migrations/2026_04_30_120000_create_mcp_audit_log_table.php | 36 +
docs/mcp/explorer/explorer.html | 697 ++++++++++++++++++
docs/mcp/explorer/explorer.template.html | 697 ++++++++++++++++++
docs/mcp/explorer/generate.js | 215 ++++++
docs/mcp/explorer/tool-explorer-meta.json | 11 +
docs/mcp/tools-list.json | 2536 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
docs/mcp/tools.md | 621 ++++++++++++++++
front-end/package.json | 4 +-
front-end/src/components/Settings/OrgSettings/AiAutomation/CrmFilling/TemplateFieldForm.vue | 28 +-
front-end/src/components/Settings/OrgSettings/Playbooks/AddEditPlaybook.vue | 10 +
front-end/src/components/playback/comments/ActivityComment.less | 10 +-
front-end/src/components/shared/PromptTester/PromptTester.vue | 12 +-
front-end/src/components/shared/__tests__/PromptTester.spec.js | 35 +
front-end/src/components/shared/modals/EntityPickerModal/__tests__/useEntitiesCache.spec.ts | 37 +
front-end/src/components/shared/modals/EntityPickerModal/useEntitiesCache.ts | 9 +
front-end/yarn.lock | 16 +-
phpstan-baseline.neon | 50 --
routes/api.php | 11 +
sonar-project.properties | 91 ++-
tests/Feature/Component/Nudge/ProcessOrganisationImmediateNudgesJobTest.php | 534 ++++++++++++++
tests/Feature/Jobs/ImportRemoteTrackJobTest.php | 283 +++++++-
tests/Feature/Mcp/IssueMcpTokenCommandTest.php | 53 ++
tests/Feature/Mcp/ListCallsToolElasticFeatureTest.php | 155 ++++
tests/Feature/Mcp/ListCallsToolFeatureTest.php | 352 ++++++++++
tests/Feature/Mcp/McpTestHelpersTrait.php | 77 ++
tests/Feature/Services/Team/TeamDeleteHandlers/Retention/RetentionRepositoryHandlerTest.php | 1 +
tests/Stubs/SentryStub.php | 18 +
tests/Unit/Component/ActivityAnalytics/Service/CalculateTalkTimeOffsetFromTranscriptionTest.php | 28 +-
tests/Unit/Component/AiActivityType/Services/AiActivityTypeEligibilityCheckerTest.php | 103 ++-
tests/Unit/Component/AiAutomation/Actions/PrepareUpdateDtoActionTest.php | 91 +++
tests/Unit/Component/AiAutomation/Services/CrmFillingEligibilityCheckerTest.php | 124 ++++
tests/Unit/Component/AiAutomation/TestCrmAiPromptServiceTest.php | 67 +-
tests/Unit/Component/AiCallScoring/Services/AiCallScoringEligibilityCheckerTest.php | 55 ++
tests/Unit/Component/ES/ElasticSearchWorkerManagerTest.php | 135 ----
tests/Unit/Component/ES/Processor/Actions/LoadDocumentsActionTest.php | 220 ++++++
tests/Unit/Component/ES/Processor/EntityQueryBuilderTest.php | 21 +-
tests/Unit/Component/ES/Processor/Traits/SkipActivityTraitTest.php | 51 --
tests/Unit/Component/ES/Worker/ActivityWorkerTest.php | 174 -----
tests/Unit/Component/ES/Worker/EntityWorkerTest.php | 97 ---
tests/Unit/Component/ES/Worker/WorkerAmountTest.php | 116 ---
tests/Unit/Component/Encoding/Job/AnalyzeTrackChannelsJobTest.php | 52 +-
tests/Unit/Component/Encoding/Service/GenerateSpeechFromSilenceServiceTest.php | 171 ++---
tests/Unit/Component/FFMpeg/Services/GetSpeechIntervalsTest.php | 36 +-
tests/Unit/Component/LanguageDetection/Services/FindSpeechTimeServiceTest.php | 20 +-
tests/Unit/Component/MobileSettings/MobileSettingsControllerTest.php | 5 +-
tests/Unit/Component/ParticipantSpeech/Services/ParticipantSpeechesCreatorTest.php | 75 ++
tests/Unit/Component/ParticipantSpeech/Services/ParticipantSpeechesDeleterTest.php | 63 ++
tests/Unit/Component/ParticipantSpeech/Services/ParticipantSpeechesProviderTest.php | 134 ++++
tests/Unit/Component/ParticipantSpeech/Services/ParticipantSpeechesUploaderTest.php | 57 ++
tests/Unit/Component/Transcription/Diarization/Services/GetNormalizedParticipantSpeechesServiceTest.php | 51 +-
tests/Unit/Component/Transcription/Diarization/Source/MeetingBotSourceTest.php | 29 +-
tests/Unit/Contracts/Services/Calendar/CalendarTraitTest.php | 58 +-
tests/Unit/Http/Controllers/Kiosk/ActivityControllerTest.php | 159 +++++
tests/Unit/Jobs/Activity/Import/ImportTwilioVideoSpeechesJobTest.php | 22 +-
tests/Unit/Jobs/Activity/Import/IsActivityReadyForProcessingJobTest.php | 26 +-
tests/Unit/Jobs/Calendar/SetupCalendarSyncTest.php | 25 -
tests/Unit/Services/Activity/ParticipantsServiceTest.php | 12 +-
tests/Unit/Services/Activity/Twilio/S3RecordingCredentialsServiceTest.php | 180 +++++
tests/Unit/Services/ActivityServiceTest.php | 132 ++++
tests/Unit/Services/Calendar/CalendarActivityServiceTest.php | 150 +++-
tests/Unit/Services/Calendar/Command/ImportParticipantsTest.php | 6 +-
tests/Unit/Services/Calendar/Command/MapActivityDataTest.php | 78 +-
tests/Unit/Services/Calendar/GoogleCalendarServiceTest.php | 116 +++
tests/Unit/Services/Crm/Close/ServiceTest.php | 165 +++++
tests/Unit/Services/Crm/Hubspot/ServiceTest.php | 272 ++++++-
tests/Unit/Services/Crm/Hubspot/ServiceTraits/OpportunitySyncTest.php | 25 +-
tests/Unit/Services/Crm/Hubspot/ServiceTraits/OpportunitySyncTraitMatchActivitiesTest.php | 3 +-
tests/Unit/Services/Crm/IntegrationApp/ServiceTraits/SyncCrmEntitiesTraitOpportunitiesTest.php | 40 ++
tests/Unit/Services/Crm/Pipedrive/ImportOpportunityMatchActivitiesTest.php | 2 +
tests/Unit/Services/Crm/Salesforce/ServiceTest.php | 139 ++++
tests/Unit/Services/Mail/Office/EmailApiClientTest.php | 195 ++---
tests/Unit/Services/RecallAI/RecallAIServiceTest.php | 24 +-
175 files changed, 12562 insertions(+), 2162 deletions(-)
create mode 120000 CLAUDE.md
create mode 100644 app/Component/AiAutomation/Services/CrmFillingEligibilityChecker.php
delete mode 100644 app/Component/ES/ElasticSearchWorkerManager.php
delete mode 100644 app/Component/ES/Processor/Traits/SkipActivityTrait.php
delete mode 100644 app/Component/ES/Worker/ActivityWorker.php
delete mode 100644 app/Component/ES/Worker/EntityWorker.php
delete mode 100644 app/Component/ES/Worker/WorkerAmount.php
delete mode 100644 app/Component/ES/Worker/WorkerInterface.php
create mode 100644 app/Component/ProphetAi/Exceptions/InsufficientTranscriptException.php
create mode 100644 app/Component/Transcription/DTO/Http/Transcription/AssemblyAI/AssemblyAI/NoAssemblyIdException.php
create mode 100644 app/Component/Transcription/DTO/Http/Transcription/TranscriptionIsNotCorrectFormatException.php
create mode 100644 app/Console/Commands/Activities/SetupIntegration/TwilioSetS3RecordingCredentialsCommand.php
create mode 100644 app/Console/Commands/Crm/BackfillOpportunityUserFromAccountCommand.php
delete mode 100644 app/Console/Commands/Elasticsearch/AsyncUpdateEsActivities.php
create mode 100644 app/Console/Commands/IssueMcpTokenCommand.php
create mode 100644 app/Http/Middleware/McpAuditMiddleware.php
create mode 100644 app/Http/Middleware/McpTierMiddleware.php
create mode 100644 app/Mcp/Contracts/McpCallRepositoryInterface.php
create mode 100644 app/Mcp/DTO/ListCallsFilters.php
create mode 100644 app/Mcp/Errors/McpError.php
create mode 100644 app/Mcp/Repositories/McpActivityHydrator.php
create mode 100644 app/Mcp/Repositories/McpCallRepository.php
create mode 100644 app/Mcp/Repositories/McpElasticCallRepository.php
create mode 100644 app/Mcp/Servers/JiminnyServer.php
create mode 100644 app/Mcp/Tools/ListCallsTool.php
create mode 100644 app/Services/Activity/Twilio/S3RecordingCredentialsService.php
create mode 100644 config/mcp.php
create mode 100644 database/migrations/2026_04_30_120000_create_mcp_audit_log_table.php
create mode 100644 docs/mcp/explorer/explorer.html
create mode 100644 docs/mcp/explorer/explorer.template.html
create mode 100644 docs/mcp/explorer/generate.js
create mode 100644 docs/mcp/explorer/tool-explorer-meta.json
create mode 100644 docs/mcp/tools-list.json
create mode 100644 docs/mcp/tools.md
create mode 100644 front-end/src/components/shared/modals/EntityPickerModal/__tests__/useEntitiesCache.spec.ts
create mode 100644 tests/Feature/Component/Nudge/ProcessOrganisationImmediateNudgesJobTest.php
create mode 100644 tests/Feature/Mcp/IssueMcpTokenCommandTest.php
create mode 100644 tests/Feature/Mcp/ListCallsToolElasticFeatureTest.php
create mode 100644 tests/Feature/Mcp/ListCallsToolFeatureTest.php
create mode 100644 tests/Feature/Mcp/McpTestHelpersTrait.php
create mode 100644 tests/Stubs/SentryStub.php
create mode 100644 tests/Unit/Component/AiAutomation/Services/CrmFillingEligibilityCheckerTest.php
delete mode 100644 tests/Unit/Component/ES/ElasticSearchWorkerManagerTest.php
create mode 100644 tests/Unit/Component/ES/Processor/Actions/LoadDocumentsActionTest.php
delete mode 100644 tests/Unit/Component/ES/Processor/Traits/SkipActivityTraitTest.php
delete mode 100644 tests/Unit/Component/ES/Worker/ActivityWorkerTest.php
delete mode 100644 tests/Unit/Component/ES/Worker/EntityWorkerTest.php
delete mode 100644 tests/Unit/Component/ES/Worker/WorkerAmountTest.php
create mode 100644 tests/Unit/Component/ParticipantSpeech/Services/ParticipantSpeechesCreatorTest.php
create mode 100644 tests/Unit/Http/Controllers/Kiosk/ActivityControllerTest.php
create mode 100644 tests/Unit/Services/Activity/Twilio/S3RecordingCredentialsServiceTest.php
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20725-handle-HS-search-rate-limit) $ git status
On branch master
Your branch is behind 'origin/master' by 114 commits, and can be fast-forwarded.
(use "git pull" to update your local branch)
Changes not staged for commit:
(use "git add <file>..." to update what will be committed)
(use "git restore <file>..." to discard changes in working directory)
modified: .env.local
modified: app/Component/SCIM/Constants.php
modified: app/Component/SCIM/ScimProvisioning.php
modified: app/Component/Twilio/Conference/ConferenceManager/SoftPhoneManager.php
modified: app/Console/Commands/JiminnyDebugCommand.php
modified: app/DTO/SCIM/AAD/Request/CoreUserRequest.php
modified: app/DTO/SCIM/AAD/Response/CoreUser.php
modified: app/Services/Telephony/TextMessagingService.php
modified: config/logging.php
Untracked files:
(use "git add <file>..." to include in what will be committed)
.env.nikilocal
.env.other
WEBHOOK_FILTERING_IMPLEMENTATION.md
app/Component/SCIM/Mutators/Attributes/User/RoleAttr.php
app/Console/Commands/Crm/Hubspot/SimulateWebhooksCommand.php
app/Console/Commands/Reports/CreateMockAskJiminnyReportResultCommand.php
app/Rules/ListenerRoleCannotHaveAdminOrManagerPermissionRule.php
ids.txt
public/favicon.ico
raw_sql_query.sql
tests/Unit/Component/SCIM/Mutators/Attributes/User/RoleAttrTest.php
tests/Unit/Policies/CanAccessAiReportsTest.php
tests/Unit/Rules/ListenerRoleCannotHaveAdminOrManagerPermissionRuleTest.php
no changes added to commit (use "git add" and/or "git commit -a")
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (master) $ git pull
remote: Enumerating objects: 306, done.
remote: Counting objects: 100% (299/299), done.
remote: Compressing objects: 100% (183/183), done.
remote: Total 306 (delta 213), reused 171 (delta 116), pack-reused 7 (from 1)
Receiving objects: 100% (306/306), 80.12 KiB | 1000.00 KiB/s, done.
Resolving deltas: 100% (213/213), completed with 53 local objects.
From github.com:jiminny/app
90bca4e4b2..5604af40cf master -> origin/master
4e7078fd8b..0b8343d179 JY-18091-upgrade-to-php-8-5 -> origin/JY-18091-upgrade-to-php-8-5
098eeaa087..d5a447e492 JY-20613-allow-owner-role-on-team-setup -> origin/JY-20613-allow-owner-role-on-team-setup
c3a76ace91..af65249d0f JY-20749-user-can-view-recorded-meetings -> origin/JY-20749-user-can-view-recorded-meetings
d94a285ae7..7ce96cb5fe JY-20808-low-priority-indexing-queue -> origin/JY-20808-low-priority-indexing-queue
* [new branch] JY-20842-remove-partial-updater -> origin/JY-20842-remove-partial-updater
* [new branch] JY-20920-fix-participant-flip -> origin/JY-20920-fix-participant-flip
* [new branch] secfix/npm-20260519 -> origin/secfix/npm-20260519
Updating cb4ebf0c36..5604af40cf
Fast-forward
app/Component/ES/ChunkSize.php | 54 +++++++++++++++++++
app/Component/ES/Processor/DTOs/SelectionList.php | 4 +-
app/Component/ES/Processor/TargetEntitiesSelector.php | 19 ++++---
app/Component/MeetingBot/Service/ParticipantMatcher.php | 46 ++++++++++++----
app/Exceptions/RateLimitException.php | 19 ++++++-
app/Http/Middleware/McpTierMiddleware.php | 27 ++--------
app/Jobs/Crm/MatchActivityCrmData.php | 47 ++++++++++++----
app/Jobs/Middleware/HandleHubspotRateLimit.php | 42 +++++++++++++++
app/Mcp/Servers/JiminnyServer.php | 2 +
app/Mcp/Tools/GetMeTool.php | 157 +++++++++++++++++++++++++++++++++++++++++++++++++++++
app/Models/Feature/FeatureEnum.php | 1 +
app/Services/Activity/HubSpot/ProviderResolver.php | 4 +-
app/Services/Activity/HubSpot/ProviderResolverInterface.php | 2 +-
app/Services/Activity/HubSpot/Providers/Provider.php | 2 +-
app/Services/Activity/HubSpot/Providers/ProviderKixie.php | 2 +-
app/Services/Activity/HubSpot/Providers/ProviderOrum.php | 2 +-
app/Services/Activity/HubSpot/Providers/ProviderTwilio.php | 2 +-
app/Services/Activity/HubSpot/Providers/ProviderTwilioFlex.php | 5 +-
app/Services/Activity/HubSpot/Service.php | 97 +++++++++++++++++++++++++++------
app/Services/Crm/Hubspot/Client.php | 132 +++++++++++++++++++++++++++++++++++++++++++++
app/Services/Crm/Hubspot/HubspotClientInterface.php | 15 ++++++
app/Services/Crm/Hubspot/Pagination/HubspotPaginationService.php | 21 ++++----
app/Services/Crm/Hubspot/Pagination/PaginationState.php | 2 +-
database/migrations/2026_05_13_124153_create_mcp_feature_flag.php | 25 +++++++++
tests/Feature/Mcp/GetMeToolFeatureTest.php | 140 +++++++++++++++++++++++++++++++++++++++++++++++
tests/Feature/Mcp/ListCallsToolFeatureTest.php | 2 +-
tests/Feature/Mcp/McpTestHelpersTrait.php | 19 ++++++-
tests/Unit/Component/ES/ChunkSizeTest.php | 50 +++++++++++++++++
tests/Unit/Component/ES/Processor/DTOs/SelectionListTest.php | 27 +++++++---
tests/Unit/Component/ES/Processor/TargetEntitiesSelectorTest.php | 39 ++++++++------
tests/Unit/Component/MeetingBot/Service/ParticipantMatcherTest.php | 68 ++++++++++++++++++++++-
tests/Unit/Exceptions/RateLimitExceptionTest.php | 56 +++++++++++++++++++
tests/Unit/Jobs/Crm/MatchActivityCrmDataTest.php | 8 +--
tests/Unit/Jobs/Middleware/HandleHubspotRateLimitTest.php | 151 +++++++++++++++++++++++++++++++++++++++++++++++++++
tests/Unit/Services/Activity/HubSpot/ServiceTest.php | 109 +++++++++++++++++++++++++++++++++++++
tests/Unit/Services/Crm/Hubspot/ClientTest.php | 250 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
tests/Unit/Services/Crm/Hubspot/Pagination/HubspotPaginationServiceTest.php | 283 +++++++++++++++++++++---------------------------------------------------------------------------
37 files changed, 1587 insertions(+), 344 deletions(-)
create mode 100644 app/Component/ES/ChunkSize.php
create mode 100644 app/Jobs/Middleware/HandleHubspotRateLimit.php
create mode 100644 app/Mcp/Tools/GetMeTool.php
create mode 100644 database/migrations/2026_05_13_124153_create_mcp_feature_flag.php
create mode 100644 tests/Feature/Mcp/GetMeToolFeatureTest.php
create mode 100644 tests/Unit/Component/ES/ChunkSizeTest.php
create mode 100644 tests/Unit/Exceptions/RateLimitExceptionTest.php
create mode 100644 tests/Unit/Jobs/Middleware/HandleHubspotRateLimitTest.php
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (master) $ git pull
Already up to date.
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (master) $ co -b JY-20676-delete-report-related-objects
Switched to a new branch 'JY-20676-delete-report-related-objects'
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20676-delete-report-related-objects) $ csfix
docker exec -it docker_lamp_1 ./vendor/bin/php-cs-fixer fix --config=.php-cs-fixer.dist.php -v --using-cache=no --diff
PHP CS Fixer 3.87.1 Alexander by Fabien Potencier, Dariusz Ruminski and contributors.
PHP runtime: 8.3.30
Running 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!
Loaded config default from ".php-cs-fixer.dist.php".
5690/5690 [▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓] 100%
1) app/Console/Commands/JiminnyDebugCommand.php (statement_indentation, blank_line_before_statement)
---------- begin diff ----------
--- /home/jiminny/app/Console/Commands/JiminnyDebugCommand.php
+++ /home/jiminny/app/Console/Commands/JiminnyDebugCommand.php
@@ -23,6 +23,7 @@
if ($action === 'redis-set') {
$this->testRedisSet();
+
return;
}
@@ -45,7 +46,7 @@
$ttl = 60;
try {
-// $result = Redis::set($testKey, $testValue, 'EX', $ttl, 'NX');
+ // $result = Redis::set($testKey, $testValue, 'EX', $ttl, 'NX');
$result = Redis::set($testKey, $testValue, ['nx', 'ex' => $ttl]);
if ($result) {
----------- end diff -----------
Fixed 1 of 5690 files i...
|
NULL
|
NULL
|
NULL
|
NULL
|
|
58068
|
2045
|
2
|
2026-05-19T11:31:49.508377+00:00
|
/Users/lukas/.screenpipe/data/data/2026-05-19/1779 /Users/lukas/.screenpipe/data/data/2026-05-19/1779190309508_m2.jpg...
|
iTerm2
|
APP (docker)
|
1
|
NULL
|
monitor_2
|
NULL
|
NULL
|
NULL
|
NULL
|
Last login: Mon May 18 09:17:28 on ttys007
Poetry Last login: Mon May 18 09:17:28 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 (pipedrive-sdk-poc) $ co master
error: Your local changes to the following files would be overwritten by checkout:
PIPEDRIVE_V2_MIGRATION_TICKETS.md
Please commit your changes or stash them before you switch branches.
Aborting
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (pipedrive-sdk-poc) $ git pull
remote: Enumerating objects: 1047, done.
remote: Counting objects: 100% (832/832), done.
remote: Compressing objects: 100% (298/298), done.
remote: Total 1047 (delta 634), reused 596 (delta 534), pack-reused 215 (from 3)
Receiving objects: 100% (1047/1047), 353.16 KiB | 1.56 MiB/s, done.
Resolving deltas: 100% (687/687), completed with 107 local objects.
From github.com:jiminny/app
907c54896c..34656c53ed pipedrive-sdk-poc -> origin/pipedrive-sdk-poc
03325ec50f..4e7078fd8b JY-18091-upgrade-to-php-8-5 -> origin/JY-18091-upgrade-to-php-8-5
e7d231e163..bc6a3fce6b JY-20725-handle-HS-search-rate-limit -> origin/JY-20725-handle-HS-search-rate-limit
* [new branch] JY-20749-user-can-view-recorded-meetings -> origin/JY-20749-user-can-view-recorded-meetings
98ca281a04..e0351be069 JY-20808-low-priority-indexing-queue -> origin/JY-20808-low-priority-indexing-queue
569abb5149..3906a9238a JY-20835-mcp-enable-users-to-get-a-list-of-deals-and-their-details -> origin/JY-20835-mcp-enable-users-to-get-a-list-of-deals-and-their-details
ad6c2a86e8..50eb6afba9 JY-20846-mcp-enable-the-ai-to-know-details-about-the-user -> origin/JY-20846-mcp-enable-the-ai-to-know-details-about-the-user
* [new branch] JY-20893-chunk-control-per-update-target -> origin/JY-20893-chunk-control-per-update-target
31c62924a5..cb4ebf0c36 master -> origin/master
Updating 907c54896c..34656c53ed
Fast-forward
PIPEDRIVE_V2_MIGRATION_TICKETS.md | 52 ++++++++++++++++++++++++++++++++++++++++++++++++++++
1 file changed, 52 insertions(+)
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (pipedrive-sdk-poc) $ co master
M .env.local
M config/logging.php
Switched to branch 'master'
Your branch is behind 'origin/master' by 31 commits, and can be fast-forwarded.
(use "git pull" to update your local branch)
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (master) $ git pull
Updating 31c62924a5..cb4ebf0c36
Fast-forward
app/Component/ES/Processor/Traits/SelectEntityListTrait.php | 20 ------
app/Services/Calendar/CalendarActivityService.php | 46 +++++++++++++
app/Services/Calendar/Command/MapActivityData.php | 106 +++-------------------------
docs/mcp/explorer/explorer.html | 104 +++++++++++++++++++++++++---
docs/mcp/explorer/explorer.template.html | 102 ++++++++++++++++++++++++---
docs/mcp/tools-list.json | 373 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++-------
docs/mcp/tools.md | 117 +++++++++++++++++++++++--------
tests/Unit/Component/ES/AsyncUpdateElasticSearchTest.php | 16 +----
tests/Unit/Component/ES/Listeners/UpdateMultipleTargetsListenerTest.php | 10 ---
tests/Unit/Component/ES/Listeners/UpdateSingleTargetListenerTest.php | 6 --
tests/Unit/Component/ES/Processor/TargetEntitiesSelectorTest.php | 9 ---
tests/Unit/Component/ES/Processor/Traits/SelectEntityListTraitTest.php | 15 ++--
tests/Unit/Component/ES/UpdateProcessManagerTest.php | 2 -
tests/Unit/Services/Calendar/CalendarActivityServiceTest.php | 150 ++++++++++++++++++++++++++++++++++++++--
tests/Unit/Services/Calendar/Command/MapActivityDataTest.php | 78 ++-------------------
15 files changed, 832 insertions(+), 322 deletions(-)
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (master) $ co -b JY-20613-allow-owner-role-on-team-setup
Switched to a new branch 'JY-20613-allow-owner-role-on-team-setup'
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20613-allow-owner-role-on-team-setup) $ csfix
docker exec -it docker_lamp_1 ./vendor/bin/php-cs-fixer fix --config=.php-cs-fixer.dist.php -v --using-cache=no --diff
PHP CS Fixer 3.87.1 Alexander by Fabien Potencier, Dariusz Ruminski and contributors.
PHP runtime: 8.3.30
Running 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!
Loaded config default from ".php-cs-fixer.dist.php".
5682/5682 [▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓] 100%
Fixed 0 of 5682 files in 56.978 seconds, 67.00 MB memory used
What's next:
Try Docker Debug for seamless, persistent debugging tools in any container or image → docker debug docker_lamp_1
Learn more at [URL_WITH_CREDENTIALS] ~/jiminny/app (JY-20613-allow-owner-role-on-team-setup) $ csfix
docker exec -it docker_lamp_1 ./vendor/bin/php-cs-fixer fix --config=.php-cs-fixer.dist.php -v --using-cache=no --diff
PHP CS Fixer 3.87.1 Alexander by Fabien Potencier, Dariusz Ruminski and contributors.
PHP runtime: 8.3.30
Running 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!
Loaded config default from ".php-cs-fixer.dist.php".
5682/5682 [▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓] 100%
Fixed 0 of 5682 files in 49.910 seconds, 60.00 MB memory used
What's next:
Try Docker Debug for seamless, persistent debugging tools in any container or image → docker debug docker_lamp_1
Learn more at [URL_WITH_CREDENTIALS] ~/jiminny/app (JY-20613-allow-owner-role-on-team-setup) $ git pull
remote: Enumerating objects: 248, done.
remote: Counting objects: 100% (128/128), done.
remote: Compressing objects: 100% (23/23), done.
remote: Total 59 (delta 43), reused 44 (delta 33), pack-reused 0 (from 0)
Unpacking objects: 100% (59/59), 10.48 KiB | 228.00 KiB/s, done.
From github.com:jiminny/app
b7df560451..190239dfd4 JY-20613-allow-owner-role-on-team-setup -> origin/JY-20613-allow-owner-role-on-team-setup
e0351be069..d94a285ae7 JY-20808-low-priority-indexing-queue -> origin/JY-20808-low-priority-indexing-queue
* [new branch] JY-20920-fix-participant-matcher -> origin/JY-20920-fix-participant-matcher
cb4ebf0c36..90bca4e4b2 master -> origin/master
Merge made by the 'ort' strategy.
app/Component/ES/ChunkSize.php | 54 +++++++++++++++++++++++++++
app/Component/ES/Processor/DTOs/SelectionList.php | 4 +-
app/Component/ES/Processor/TargetEntitiesSelector.php | 19 ++++++----
app/Http/Middleware/McpTierMiddleware.php | 27 +++-----------
app/Mcp/Servers/JiminnyServer.php | 2 +
app/Mcp/Tools/GetMeTool.php | 157 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
app/Models/Feature/FeatureEnum.php | 1 +
database/migrations/2026_05_13_124153_create_mcp_feature_flag.php | 25 +++++++++++++
front-end/src/components/Settings/Kiosk/modals/EditTeamModal/EditTeamModal.vue | 52 ++++++++++++++++++--------
front-end/src/components/Settings/Kiosk/modals/EditTeamModal/__tests__/EditTeamModal.spec.js | 14 +++++++
tests/Feature/Mcp/GetMeToolFeatureTest.php | 140 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
tests/Feature/Mcp/ListCallsToolFeatureTest.php | 2 +-
tests/Feature/Mcp/McpTestHelpersTrait.php | 19 +++++++++-
tests/Unit/Component/ES/ChunkSizeTest.php | 50 +++++++++++++++++++++++++
tests/Unit/Component/ES/Processor/DTOs/SelectionListTest.php | 27 ++++++++++----
tests/Unit/Component/ES/Processor/TargetEntitiesSelectorTest.php | 39 +++++++++++---------
16 files changed, 557 insertions(+), 75 deletions(-)
create mode 100644 app/Component/ES/ChunkSize.php
create mode 100644 app/Mcp/Tools/GetMeTool.php
create mode 100644 database/migrations/2026_05_13_124153_create_mcp_feature_flag.php
create mode 100644 tests/Feature/Mcp/GetMeToolFeatureTest.php
create mode 100644 tests/Unit/Component/ES/ChunkSizeTest.php
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20613-allow-owner-role-on-team-setup) $ git push
Enumerating objects: 40, done.
Counting objects: 100% (34/34), done.
Delta compression using up to 8 threads
Compressing objects: 100% (18/18), done.
Writing objects: 100% (18/18), 1.58 KiB | 1.58 MiB/s, done.
Total 18 (delta 15), reused 0 (delta 0), pack-reused 0
remote: Resolving deltas: 100% (15/15), completed with 13 local objects.
To github.com:jiminny/app.git
190239dfd4..ec1b261264 JY-20613-allow-owner-role-on-team-setup -> JY-20613-allow-owner-role-on-team-setup
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20613-allow-owner-role-on-team-setup) $ gbr
* JY-20613-allow-owner-role-on-team-setup
pipedrive-sdk-poc
master
JY-20903-update_activity-stage-on-opportunity-change
JY-20904-fix-update-es-on-activity-command
JY-20891-improve-sms-text-relays
JY-20725-handle-HS-search-rate-limit
JY-20818-move-AJ-reports-to-separated-datadog-metric
JY-20773-fix-automated-reports-user-pilot-tracking
JY-20157-AJ-report-not-send-notification
JY-20508-notify-before-AJ-report-expiration
JY-20372-ai-reports-promotion-pages
JY-20352-sync-opportunities-without-a-local-owner-user-id-is-null
JY-20738-debug-AJ-tracking-UP
a
JY-18909-automated-reports-ask-jiminny
JY-20692-fix-integration-app-[API_KEY]
JY-20553-debug-crm-sync-delays
JY-20698-fix-SF-activity-types-on-new-playbook
JY-20543-AJ-report-tracking
JY-20384-handle-auto-sync-with-no-access-to-event-type
JY-20458-ask-jiminny-user-definitions
JY-19666-fix-import-contacts-account-association
JY-19666-HS-import-contacts-and-accounts-batch-job
JY-20458-Ask-Jiminny-Reports
JY-20200-batch-update-CRM-objects-Salesforce
JY-19666-HS-webhooks-add-contact-and-company
JY-20348-trigger-setup-DI-layout-on-team-creation
JY-20326-refactor-info-message-in-command
JY-20317-fix-auto-log-delay-issue-on-all-channels-disabled
JY-20312-remove-on-update-change-last-synced-at-crm-configurations
JY-20306-SF-skip-auto-sync-for-task-based-playbook
JY-20192-remove-deleted-team-from-saved-search-filters
JY-20197-import-opportunity-batch-job
JY-20293-enable-status-field-for-pipedrive-deals
JY-20191-remove-commands-interactive-prompts
JY-20118-change-default-sync-strategy
JY-20183-add-cache-on-auto-log-delay
JY-20197-add-import-opportunity-batch-job
20118-hs-opportunity-make-webhook-strategy-default
JY-20118-make-default-hs-opportunity-sync-strategy-webhook-based
JY-20196-handle-opportunity-without-note
JY-20118-improve-opportunity-import
JY-20189-handle-activity-search-on-deleted-groups
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20613-allow-owner-role-on-team-setup) $ co JY-20725-handle-HS-search-rate-limit
M .env.local
M config/logging.php
Switched to branch 'JY-20725-handle-HS-search-rate-limit'
Your branch is behind 'origin/JY-20725-handle-HS-search-rate-limit' by 439 commits, and can be fast-forwarded.
(use "git pull" to update your local branch)
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20725-handle-HS-search-rate-limit) $ git pull
Updating 0f3e438941..bc6a3fce6b
Fast-forward
.gitignore | 3 +-
.windsurfrules | 168 ++---
CLAUDE.md | 1 +
app/Component/ActivityAnalytics/Service/CalculateTalkTimeOffsetsFromTranscription.php | 24 +-
app/Component/AiActivityType/Services/AiActivityTypeEligibilityChecker.php | 28 +-
app/Component/AiAutomation/Actions/PrepareUpdateDtoAction.php | 32 +-
app/Component/AiAutomation/Services/CrmFillingEligibilityChecker.php | 47 ++
app/Component/AiAutomation/TestCrmAiPromptService.php | 14 +
app/Component/AiCallScoring/Services/AiCallScoringEligibilityChecker.php | 9 +
app/Component/ES/ElasticSearchDocumentPartialUpdater.php | 13 +-
app/Component/ES/ElasticSearchWorkerManager.php | 86 ---
app/Component/ES/Processor/Actions/LoadDocumentsAction.php | 80 +--
app/Component/ES/Processor/EntityQueryBuilder.php | 12 +-
app/Component/ES/Processor/TargetEntitiesSelector.php | 2 +-
app/Component/ES/Processor/Traits/SkipActivityTrait.php | 25 -
app/Component/ES/Repositories/EsResetActivityRepository.php | 11 +-
app/Component/ES/Worker/ActivityWorker.php | 73 --
app/Component/ES/Worker/EntityWorker.php | 44 --
app/Component/ES/Worker/WorkerAmount.php | 60 --
app/Component/ES/Worker/WorkerInterface.php | 15 -
app/Component/ElasticSearch/Contract/Searchable.php | 4 +
app/Component/Encoding/Job/AnalyzeTrackChannelsJob.php | 20 +-
app/Component/Encoding/Service/GenerateSpeechFromSilenceService.php | 85 ++-
app/Component/FFMpeg/Services/GetSpeechIntervalsService.php | 18 +-
app/Component/LanguageDetection/Services/FindSpeechTimeService.php | 22 +-
app/Component/Nudge/Job/ProcessOrganisationImmediateNudgesJob.php | 218 +++++-
app/Component/ParagraphBreaker/Services/TranscriptionParagraphsService.php | 4 +
app/Component/ParticipantSpeech/Services/ParticipantSpeechesCreator.php | 33 +
app/Component/ParticipantSpeech/Services/ParticipantSpeechesDeleter.php | 15 +
app/Component/ParticipantSpeech/Services/ParticipantSpeechesProvider.php | 51 +-
app/Component/ParticipantSpeech/Services/ParticipantSpeechesUploader.php | 36 +
app/Component/ProphetAi/Exceptions/InsufficientTranscriptException.php | 11 +
app/Component/Transcription/DTO/Http/Transcription/AssemblyAI/AssemblyAI/NoAssemblyIdException.php | 11 +
app/Component/Transcription/DTO/Http/Transcription/AssemblyAI/AssemblyAI/SuccessfulResponse.php | 6 +
app/Component/Transcription/DTO/Http/Transcription/TranscriptionIsNotCorrectFormatException.php | 11 +
app/Component/Transcription/Diarization/Services/GetNormalizedParticipantSpeechesService.php | 23 +-
app/Component/Transcription/Diarization/Source/MeetingBotSource.php | 16 +-
app/Component/Transcription/TranscriptionProcessor/TranscriptionProcessor.php | 3 +
app/Console/Commands/Activities/ActivityHardDeleteCommand.php | 4 +-
app/Console/Commands/Activities/Copy.php | 2 +
app/Console/Commands/Activities/SetupIntegration/TwilioSetS3RecordingCredentialsCommand.php | 119 ++++
app/Console/Commands/Activities/UpdateActivityElasticSearchDocumentCommand.php | 10 +-
app/Console/Commands/Crm/BackfillOpportunityUserFromAccountCommand.php | 126 ++++
app/Console/Commands/Elasticsearch/AsyncUpdateEsActivities.php | 19 -
app/Console/Commands/Elasticsearch/AsyncUpdateEsEntities.php | 50 +-
app/Console/Commands/Elasticsearch/ResetAsyncElasticSearchCommand.php | 30 +-
app/Console/Commands/GeckoExport/GeckoExportParticipantSpeechesCommand.php | 14 +-
app/Console/Commands/IssueMcpTokenCommand.php | 84 +++
app/Console/Commands/JiminnyDebugCommand.php | 7 +-
app/Console/Commands/Tracks/CleanupActivityTracksCommand.php | 2 +-
app/Console/Kernel.php | 6 +-
app/Contracts/Services/Calendar/CalendarTrait.php | 80 ++-
app/Events/AutomatedReports/AutomatedReportGenerated.php | 3 +
app/Http/Controllers/API/AiCallScoring/AiScorecardController.php | 7 +-
app/Http/Controllers/API/TeamAiAutomationController.php | 8 +
app/Http/Controllers/CustomerApi/CustomerApiController.php | 4 +-
app/Http/Controllers/Kiosk/ActivityController.php | 58 +-
app/Http/Controllers/Settings/PlaybookController.php | 15 +-
app/Http/Kernel.php | 23 +
app/Http/Middleware/McpAuditMiddleware.php | 156 ++++
app/Http/Middleware/McpTierMiddleware.php | 54 ++
app/Http/Requests/API/V2/ZapierUploadActivityRequest.php | 28 +-
app/Jobs/Activity/Import/ImportTwilioVideoSpeechesJob.php | 25 +-
app/Jobs/Activity/Import/IsActivityReadyForProcessingJob.php | 10 +-
app/Jobs/Calendar/SetupCalendarSync.php | 21 +-
app/Jobs/ImportRemoteTrackJob.php | 96 ++-
app/Jobs/Mailbox/EmailTextRelay.php | 15 +-
app/Mcp/Contracts/McpCallRepositoryInterface.php | 30 +
app/Mcp/DTO/ListCallsFilters.php | 29 +
app/Mcp/Errors/McpError.php | 123 ++++
app/Mcp/Repositories/McpActivityHydrator.php | 145 ++++
app/Mcp/Repositories/McpCallRepository.php | 84 +++
app/Mcp/Repositories/McpElasticCallRepository.php | 171 +++++
app/Mcp/Servers/JiminnyServer.php | 38 +
app/Mcp/Tools/ListCallsTool.php | 205 ++++++
app/Models/Activity.php | 10 +-
app/Models/Activity/Transcription.php | 17 +-
app/Models/ElasticSearch/OpportunityElasticSearchTrait.php | 5 +
app/Models/Participant.php | 1 +
app/Providers/AppServiceProvider.php | 22 +
app/Repositories/Crm/ContactRepository.php | 69 +-
app/Repositories/ParticipantSpeechRepository.php | 13 +-
app/Services/Activity/ParticipantsService.php | 19 +-
app/Services/Activity/Twilio/S3RecordingCredentialsService.php | 82 +++
app/Services/ActivityService.php | 21 +-
app/Services/Calendar/CalendarActivityService.php | 46 ++
app/Services/Calendar/Command/ImportParticipants.php | 1 +
app/Services/Calendar/Command/MapActivityData.php | 106 +--
app/Services/Calendar/GoogleCalendarService.php | 12 +-
app/Services/Crm/Close/Processor/OpportunityProcessor.php | 2 +-
app/Services/Crm/Close/Service.php | 22 +-
app/Services/Crm/Copper/Service.php | 12 +-
app/Services/Crm/Hubspot/Service.php | 154 +++-
app/Services/Crm/Hubspot/ServiceTraits/OpportunitySyncTrait.php | 88 ++-
app/Services/Crm/IntegrationApp/ServiceTraits/SyncCrmEntitiesTrait.php | 22 +-
app/Services/Crm/Pipedrive/Service.php | 17 +-
app/Services/Crm/Salesforce/Service.php | 42 +-
app/Services/Mail/Office/EmailApiClient.php | 129 +---
app/Services/RecallAI/Commands/ScheduleBotCommand.php | 39 +-
app/Services/RecallAI/RecallAIService.php | 22 +-
composer.json | 3 +-
composer.lock | 87 ++-
config/mcp.php | 23 +
database/migrations/2026_04_30_120000_create_mcp_audit_log_table.php | 36 +
docs/mcp/explorer/explorer.html | 697 ++++++++++++++++++
docs/mcp/explorer/explorer.template.html | 697 ++++++++++++++++++
docs/mcp/explorer/generate.js | 215 ++++++
docs/mcp/explorer/tool-explorer-meta.json | 11 +
docs/mcp/tools-list.json | 2536 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
docs/mcp/tools.md | 621 ++++++++++++++++
front-end/package.json | 4 +-
front-end/src/components/Settings/OrgSettings/AiAutomation/CrmFilling/TemplateFieldForm.vue | 28 +-
front-end/src/components/Settings/OrgSettings/Playbooks/AddEditPlaybook.vue | 10 +
front-end/src/components/playback/comments/ActivityComment.less | 10 +-
front-end/src/components/shared/PromptTester/PromptTester.vue | 12 +-
front-end/src/components/shared/__tests__/PromptTester.spec.js | 35 +
front-end/src/components/shared/modals/EntityPickerModal/__tests__/useEntitiesCache.spec.ts | 37 +
front-end/src/components/shared/modals/EntityPickerModal/useEntitiesCache.ts | 9 +
front-end/yarn.lock | 16 +-
phpstan-baseline.neon | 50 --
routes/api.php | 11 +
sonar-project.properties | 91 ++-
tests/Feature/Component/Nudge/ProcessOrganisationImmediateNudgesJobTest.php | 534 ++++++++++++++
tests/Feature/Jobs/ImportRemoteTrackJobTest.php | 283 +++++++-
tests/Feature/Mcp/IssueMcpTokenCommandTest.php | 53 ++
tests/Feature/Mcp/ListCallsToolElasticFeatureTest.php | 155 ++++
tests/Feature/Mcp/ListCallsToolFeatureTest.php | 352 ++++++++++
tests/Feature/Mcp/McpTestHelpersTrait.php | 77 ++
tests/Feature/Services/Team/TeamDeleteHandlers/Retention/RetentionRepositoryHandlerTest.php | 1 +
tests/Stubs/SentryStub.php | 18 +
tests/Unit/Component/ActivityAnalytics/Service/CalculateTalkTimeOffsetFromTranscriptionTest.php | 28 +-
tests/Unit/Component/AiActivityType/Services/AiActivityTypeEligibilityCheckerTest.php | 103 ++-
tests/Unit/Component/AiAutomation/Actions/PrepareUpdateDtoActionTest.php | 91 +++
tests/Unit/Component/AiAutomation/Services/CrmFillingEligibilityCheckerTest.php | 124 ++++
tests/Unit/Component/AiAutomation/TestCrmAiPromptServiceTest.php | 67 +-
tests/Unit/Component/AiCallScoring/Services/AiCallScoringEligibilityCheckerTest.php | 55 ++
tests/Unit/Component/ES/ElasticSearchWorkerManagerTest.php | 135 ----
tests/Unit/Component/ES/Processor/Actions/LoadDocumentsActionTest.php | 220 ++++++
tests/Unit/Component/ES/Processor/EntityQueryBuilderTest.php | 21 +-
tests/Unit/Component/ES/Processor/Traits/SkipActivityTraitTest.php | 51 --
tests/Unit/Component/ES/Worker/ActivityWorkerTest.php | 174 -----
tests/Unit/Component/ES/Worker/EntityWorkerTest.php | 97 ---
tests/Unit/Component/ES/Worker/WorkerAmountTest.php | 116 ---
tests/Unit/Component/Encoding/Job/AnalyzeTrackChannelsJobTest.php | 52 +-
tests/Unit/Component/Encoding/Service/GenerateSpeechFromSilenceServiceTest.php | 171 ++---
tests/Unit/Component/FFMpeg/Services/GetSpeechIntervalsTest.php | 36 +-
tests/Unit/Component/LanguageDetection/Services/FindSpeechTimeServiceTest.php | 20 +-
tests/Unit/Component/MobileSettings/MobileSettingsControllerTest.php | 5 +-
tests/Unit/Component/ParticipantSpeech/Services/ParticipantSpeechesCreatorTest.php | 75 ++
tests/Unit/Component/ParticipantSpeech/Services/ParticipantSpeechesDeleterTest.php | 63 ++
tests/Unit/Component/ParticipantSpeech/Services/ParticipantSpeechesProviderTest.php | 134 ++++
tests/Unit/Component/ParticipantSpeech/Services/ParticipantSpeechesUploaderTest.php | 57 ++
tests/Unit/Component/Transcription/Diarization/Services/GetNormalizedParticipantSpeechesServiceTest.php | 51 +-
tests/Unit/Component/Transcription/Diarization/Source/MeetingBotSourceTest.php | 29 +-
tests/Unit/Contracts/Services/Calendar/CalendarTraitTest.php | 58 +-
tests/Unit/Http/Controllers/Kiosk/ActivityControllerTest.php | 159 +++++
tests/Unit/Jobs/Activity/Import/ImportTwilioVideoSpeechesJobTest.php | 22 +-
tests/Unit/Jobs/Activity/Import/IsActivityReadyForProcessingJobTest.php | 26 +-
tests/Unit/Jobs/Calendar/SetupCalendarSyncTest.php | 25 -
tests/Unit/Services/Activity/ParticipantsServiceTest.php | 12 +-
tests/Unit/Services/Activity/Twilio/S3RecordingCredentialsServiceTest.php | 180 +++++
tests/Unit/Services/ActivityServiceTest.php | 132 ++++
tests/Unit/Services/Calendar/CalendarActivityServiceTest.php | 150 +++-
tests/Unit/Services/Calendar/Command/ImportParticipantsTest.php | 6 +-
tests/Unit/Services/Calendar/Command/MapActivityDataTest.php | 78 +-
tests/Unit/Services/Calendar/GoogleCalendarServiceTest.php | 116 +++
tests/Unit/Services/Crm/Close/ServiceTest.php | 165 +++++
tests/Unit/Services/Crm/Hubspot/ServiceTest.php | 272 ++++++-
tests/Unit/Services/Crm/Hubspot/ServiceTraits/OpportunitySyncTest.php | 25 +-
tests/Unit/Services/Crm/Hubspot/ServiceTraits/OpportunitySyncTraitMatchActivitiesTest.php | 3 +-
tests/Unit/Services/Crm/IntegrationApp/ServiceTraits/SyncCrmEntitiesTraitOpportunitiesTest.php | 40 ++
tests/Unit/Services/Crm/Pipedrive/ImportOpportunityMatchActivitiesTest.php | 2 +
tests/Unit/Services/Crm/Salesforce/ServiceTest.php | 139 ++++
tests/Unit/Services/Mail/Office/EmailApiClientTest.php | 195 ++---
tests/Unit/Services/RecallAI/RecallAIServiceTest.php | 24 +-
175 files changed, 12562 insertions(+), 2162 deletions(-)
create mode 120000 CLAUDE.md
create mode 100644 app/Component/AiAutomation/Services/CrmFillingEligibilityChecker.php
delete mode 100644 app/Component/ES/ElasticSearchWorkerManager.php
delete mode 100644 app/Component/ES/Processor/Traits/SkipActivityTrait.php
delete mode 100644 app/Component/ES/Worker/ActivityWorker.php
delete mode 100644 app/Component/ES/Worker/EntityWorker.php
delete mode 100644 app/Component/ES/Worker/WorkerAmount.php
delete mode 100644 app/Component/ES/Worker/WorkerInterface.php
create mode 100644 app/Component/ProphetAi/Exceptions/InsufficientTranscriptException.php
create mode 100644 app/Component/Transcription/DTO/Http/Transcription/AssemblyAI/AssemblyAI/NoAssemblyIdException.php
create mode 100644 app/Component/Transcription/DTO/Http/Transcription/TranscriptionIsNotCorrectFormatException.php
create mode 100644 app/Console/Commands/Activities/SetupIntegration/TwilioSetS3RecordingCredentialsCommand.php
create mode 100644 app/Console/Commands/Crm/BackfillOpportunityUserFromAccountCommand.php
delete mode 100644 app/Console/Commands/Elasticsearch/AsyncUpdateEsActivities.php
create mode 100644 app/Console/Commands/IssueMcpTokenCommand.php
create mode 100644 app/Http/Middleware/McpAuditMiddleware.php
create mode 100644 app/Http/Middleware/McpTierMiddleware.php
create mode 100644 app/Mcp/Contracts/McpCallRepositoryInterface.php
create mode 100644 app/Mcp/DTO/ListCallsFilters.php
create mode 100644 app/Mcp/Errors/McpError.php
create mode 100644 app/Mcp/Repositories/McpActivityHydrator.php
create mode 100644 app/Mcp/Repositories/McpCallRepository.php
create mode 100644 app/Mcp/Repositories/McpElasticCallRepository.php
create mode 100644 app/Mcp/Servers/JiminnyServer.php
create mode 100644 app/Mcp/Tools/ListCallsTool.php
create mode 100644 app/Services/Activity/Twilio/S3RecordingCredentialsService.php
create mode 100644 config/mcp.php
create mode 100644 database/migrations/2026_04_30_120000_create_mcp_audit_log_table.php
create mode 100644 docs/mcp/explorer/explorer.html
create mode 100644 docs/mcp/explorer/explorer.template.html
create mode 100644 docs/mcp/explorer/generate.js
create mode 100644 docs/mcp/explorer/tool-explorer-meta.json
create mode 100644 docs/mcp/tools-list.json
create mode 100644 docs/mcp/tools.md
create mode 100644 front-end/src/components/shared/modals/EntityPickerModal/__tests__/useEntitiesCache.spec.ts
create mode 100644 tests/Feature/Component/Nudge/ProcessOrganisationImmediateNudgesJobTest.php
create mode 100644 tests/Feature/Mcp/IssueMcpTokenCommandTest.php
create mode 100644 tests/Feature/Mcp/ListCallsToolElasticFeatureTest.php
create mode 100644 tests/Feature/Mcp/ListCallsToolFeatureTest.php
create mode 100644 tests/Feature/Mcp/McpTestHelpersTrait.php
create mode 100644 tests/Stubs/SentryStub.php
create mode 100644 tests/Unit/Component/AiAutomation/Services/CrmFillingEligibilityCheckerTest.php
delete mode 100644 tests/Unit/Component/ES/ElasticSearchWorkerManagerTest.php
create mode 100644 tests/Unit/Component/ES/Processor/Actions/LoadDocumentsActionTest.php
delete mode 100644 tests/Unit/Component/ES/Processor/Traits/SkipActivityTraitTest.php
delete mode 100644 tests/Unit/Component/ES/Worker/ActivityWorkerTest.php
delete mode 100644 tests/Unit/Component/ES/Worker/EntityWorkerTest.php
delete mode 100644 tests/Unit/Component/ES/Worker/WorkerAmountTest.php
create mode 100644 tests/Unit/Component/ParticipantSpeech/Services/ParticipantSpeechesCreatorTest.php
create mode 100644 tests/Unit/Http/Controllers/Kiosk/ActivityControllerTest.php
create mode 100644 tests/Unit/Services/Activity/Twilio/S3RecordingCredentialsServiceTest.php
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20725-handle-HS-search-rate-limit) $ git status
On branch master
Your branch is behind 'origin/master' by 114 commits, and can be fast-forwarded.
(use "git pull" to update your local branch)
Changes not staged for commit:
(use "git add <file>..." to update what will be committed)
(use "git restore <file>..." to discard changes in working directory)
modified: .env.local
modified: app/Component/SCIM/Constants.php
modified: app/Component/SCIM/ScimProvisioning.php
modified: app/Component/Twilio/Conference/ConferenceManager/SoftPhoneManager.php
modified: app/Console/Commands/JiminnyDebugCommand.php
modified: app/DTO/SCIM/AAD/Request/CoreUserRequest.php
modified: app/DTO/SCIM/AAD/Response/CoreUser.php
modified: app/Services/Telephony/TextMessagingService.php
modified: config/logging.php
Untracked files:
(use "git add <file>..." to include in what will be committed)
.env.nikilocal
.env.other
WEBHOOK_FILTERING_IMPLEMENTATION.md
app/Component/SCIM/Mutators/Attributes/User/RoleAttr.php
app/Console/Commands/Crm/Hubspot/SimulateWebhooksCommand.php
app/Console/Commands/Reports/CreateMockAskJiminnyReportResultCommand.php
app/Rules/ListenerRoleCannotHaveAdminOrManagerPermissionRule.php
ids.txt
public/favicon.ico
raw_sql_query.sql
tests/Unit/Component/SCIM/Mutators/Attributes/User/RoleAttrTest.php
tests/Unit/Policies/CanAccessAiReportsTest.php
tests/Unit/Rules/ListenerRoleCannotHaveAdminOrManagerPermissionRuleTest.php
no changes added to commit (use "git add" and/or "git commit -a")
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (master) $ git pull
remote: Enumerating objects: 306, done.
remote: Counting objects: 100% (299/299), done.
remote: Compressing objects: 100% (183/183), done.
remote: Total 306 (delta 213), reused 171 (delta 116), pack-reused 7 (from 1)
Receiving objects: 100% (306/306), 80.12 KiB | 1000.00 KiB/s, done.
Resolving deltas: 100% (213/213), completed with 53 local objects.
From github.com:jiminny/app
90bca4e4b2..5604af40cf master -> origin/master
4e7078fd8b..0b8343d179 JY-18091-upgrade-to-php-8-5 -> origin/JY-18091-upgrade-to-php-8-5
098eeaa087..d5a447e492 JY-20613-allow-owner-role-on-team-setup -> origin/JY-20613-allow-owner-role-on-team-setup
c3a76ace91..af65249d0f JY-20749-user-can-view-recorded-meetings -> origin/JY-20749-user-can-view-recorded-meetings
d94a285ae7..7ce96cb5fe JY-20808-low-priority-indexing-queue -> origin/JY-20808-low-priority-indexing-queue
* [new branch] JY-20842-remove-partial-updater -> origin/JY-20842-remove-partial-updater
* [new branch] JY-20920-fix-participant-flip -> origin/JY-20920-fix-participant-flip
* [new branch] secfix/npm-20260519 -> origin/secfix/npm-20260519
Updating cb4ebf0c36..5604af40cf
Fast-forward
app/Component/ES/ChunkSize.php | 54 +++++++++++++++++++
app/Component/ES/Processor/DTOs/SelectionList.php | 4 +-
app/Component/ES/Processor/TargetEntitiesSelector.php | 19 ++++---
app/Component/MeetingBot/Service/ParticipantMatcher.php | 46 ++++++++++++----
app/Exceptions/RateLimitException.php | 19 ++++++-
app/Http/Middleware/McpTierMiddleware.php | 27 ++--------
app/Jobs/Crm/MatchActivityCrmData.php | 47 ++++++++++++----
app/Jobs/Middleware/HandleHubspotRateLimit.php | 42 +++++++++++++++
app/Mcp/Servers/JiminnyServer.php | 2 +
app/Mcp/Tools/GetMeTool.php | 157 +++++++++++++++++++++++++++++++++++++++++++++++++++++
app/Models/Feature/FeatureEnum.php | 1 +
app/Services/Activity/HubSpot/ProviderResolver.php | 4 +-
app/Services/Activity/HubSpot/ProviderResolverInterface.php | 2 +-
app/Services/Activity/HubSpot/Providers/Provider.php | 2 +-
app/Services/Activity/HubSpot/Providers/ProviderKixie.php | 2 +-
app/Services/Activity/HubSpot/Providers/ProviderOrum.php | 2 +-
app/Services/Activity/HubSpot/Providers/ProviderTwilio.php | 2 +-
app/Services/Activity/HubSpot/Providers/ProviderTwilioFlex.php | 5 +-
app/Services/Activity/HubSpot/Service.php | 97 +++++++++++++++++++++++++++------
app/Services/Crm/Hubspot/Client.php | 132 +++++++++++++++++++++++++++++++++++++++++++++
app/Services/Crm/Hubspot/HubspotClientInterface.php | 15 ++++++
app/Services/Crm/Hubspot/Pagination/HubspotPaginationService.php | 21 ++++----
app/Services/Crm/Hubspot/Pagination/PaginationState.php | 2 +-
database/migrations/2026_05_13_124153_create_mcp_feature_flag.php | 25 +++++++++
tests/Feature/Mcp/GetMeToolFeatureTest.php | 140 +++++++++++++++++++++++++++++++++++++++++++++++
tests/Feature/Mcp/ListCallsToolFeatureTest.php | 2 +-
tests/Feature/Mcp/McpTestHelpersTrait.php | 19 ++++++-
tests/Unit/Component/ES/ChunkSizeTest.php | 50 +++++++++++++++++
tests/Unit/Component/ES/Processor/DTOs/SelectionListTest.php | 27 +++++++---
tests/Unit/Component/ES/Processor/TargetEntitiesSelectorTest.php | 39 ++++++++------
tests/Unit/Component/MeetingBot/Service/ParticipantMatcherTest.php | 68 ++++++++++++++++++++++-
tests/Unit/Exceptions/RateLimitExceptionTest.php | 56 +++++++++++++++++++
tests/Unit/Jobs/Crm/MatchActivityCrmDataTest.php | 8 +--
tests/Unit/Jobs/Middleware/HandleHubspotRateLimitTest.php | 151 +++++++++++++++++++++++++++++++++++++++++++++++++++
tests/Unit/Services/Activity/HubSpot/ServiceTest.php | 109 +++++++++++++++++++++++++++++++++++++
tests/Unit/Services/Crm/Hubspot/ClientTest.php | 250 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
tests/Unit/Services/Crm/Hubspot/Pagination/HubspotPaginationServiceTest.php | 283 +++++++++++++++++++++---------------------------------------------------------------------------
37 files changed, 1587 insertions(+), 344 deletions(-)
create mode 100644 app/Component/ES/ChunkSize.php
create mode 100644 app/Jobs/Middleware/HandleHubspotRateLimit.php
create mode 100644 app/Mcp/Tools/GetMeTool.php
create mode 100644 database/migrations/2026_05_13_124153_create_mcp_feature_flag.php
create mode 100644 tests/Feature/Mcp/GetMeToolFeatureTest.php
create mode 100644 tests/Unit/Component/ES/ChunkSizeTest.php
create mode 100644 tests/Unit/Exceptions/RateLimitExceptionTest.php
create mode 100644 tests/Unit/Jobs/Middleware/HandleHubspotRateLimitTest.php
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (master) $ git pull
Already up to date.
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (master) $ co -b JY-20676-delete-report-related-objects
Switched to a new branch 'JY-20676-delete-report-related-objects'
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20676-delete-report-related-objects) $ csfix
docker exec -it docker_lamp_1 ./vendor/bin/php-cs-fixer fix --config=.php-cs-fixer.dist.php -v --using-cache=no --diff
PHP CS Fixer 3.87.1 Alexander by Fabien Potencier, Dariusz Ruminski and contributors.
PHP runtime: 8.3.30
Running 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!
Loaded config default from ".php-cs-fixer.dist.php".
5690/5690 [▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓] 100%
1) app/Console/Commands/JiminnyDebugCommand.php (statement_indentation, blank_line_before_statement)
---------- begin diff ----------
--- /home/jiminny/app/Console/Commands/JiminnyDebugCommand.php
+++ /home/jiminny/app/Console/Commands/JiminnyDebugCommand.php
@@ -23,6 +23,7 @@
if ($action === 'redis-set') {
$this->testRedisSet();
+
return;
}
@@ -45,7 +46,7 @@
$ttl = 60;
try {
-// $result = Redis::set($testKey, $testValue, 'EX', $ttl, 'NX');
+ // $result = Redis::set($testKey, $testValue, 'EX', $ttl, 'NX');
$result = Redis::set($testKey, $testValue, ['nx', 'ex' => $ttl]);
if ($result) {
----------- end diff -----------
Fixed 1 of 5690 files i...
|
[{"role":"AXTextArea","text [{"role":"AXTextArea","text":"Last login: Mon May 18 09:17:28 on ttys007\n\nPoetry could not find a pyproject.toml file in /Users/lukas/jiminny/app or its parents\n\nPoetry could not find a pyproject.toml file in /Users/lukas/jiminny/app or its parents\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (pipedrive-sdk-poc) $ co master\nerror: Your local changes to the following files would be overwritten by checkout:\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tPIPEDRIVE_V2_MIGRATION_TICKETS.md\nPlease commit your changes or stash them before you switch branches.\nAborting\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (pipedrive-sdk-poc) $ git pull\nremote: Enumerating objects: 1047, done.\nremote: Counting objects: 100% (832/832), done.\nremote: Compressing objects: 100% (298/298), done.\nremote: Total 1047 (delta 634), reused 596 (delta 534), pack-reused 215 (from 3)\nReceiving objects: 100% (1047/1047), 353.16 KiB | 1.56 MiB/s, done.\nResolving deltas: 100% (687/687), completed with 107 local objects.\nFrom github.com:jiminny/app\n 907c54896c..34656c53ed pipedrive-sdk-poc -> origin/pipedrive-sdk-poc\n 03325ec50f..4e7078fd8b JY-18091-upgrade-to-php-8-5 -> origin/JY-18091-upgrade-to-php-8-5\n e7d231e163..bc6a3fce6b JY-20725-handle-HS-search-rate-limit -> origin/JY-20725-handle-HS-search-rate-limit\n * [new branch] JY-20749-user-can-view-recorded-meetings -> origin/JY-20749-user-can-view-recorded-meetings\n 98ca281a04..e0351be069 JY-20808-low-priority-indexing-queue -> origin/JY-20808-low-priority-indexing-queue\n 569abb5149..3906a9238a JY-20835-mcp-enable-users-to-get-a-list-of-deals-and-their-details -> origin/JY-20835-mcp-enable-users-to-get-a-list-of-deals-and-their-details\n ad6c2a86e8..50eb6afba9 JY-20846-mcp-enable-the-ai-to-know-details-about-the-user -> origin/JY-20846-mcp-enable-the-ai-to-know-details-about-the-user\n * [new branch] JY-20893-chunk-control-per-update-target -> origin/JY-20893-chunk-control-per-update-target\n 31c62924a5..cb4ebf0c36 master -> origin/master\nUpdating 907c54896c..34656c53ed\nFast-forward\n PIPEDRIVE_V2_MIGRATION_TICKETS.md | 52 ++++++++++++++++++++++++++++++++++++++++++++++++++++\n 1 file changed, 52 insertions(+)\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (pipedrive-sdk-poc) $ co master\nM\u0000\u0000\u0000\u0000\u0000\u0000\t.env.local\nM\u0000\u0000\u0000\u0000\u0000\u0000\tconfig/logging.php\nSwitched to branch 'master'\nYour branch is behind 'origin/master' by 31 commits, and can be fast-forwarded.\n (use \"git pull\" to update your local branch)\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (master) $ git pull\nUpdating 31c62924a5..cb4ebf0c36\nFast-forward\n app/Component/ES/Processor/Traits/SelectEntityListTrait.php | 20 ------\n app/Services/Calendar/CalendarActivityService.php | 46 +++++++++++++\n app/Services/Calendar/Command/MapActivityData.php | 106 +++-------------------------\n docs/mcp/explorer/explorer.html | 104 +++++++++++++++++++++++++---\n docs/mcp/explorer/explorer.template.html | 102 ++++++++++++++++++++++++---\n docs/mcp/tools-list.json | 373 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++-------\n docs/mcp/tools.md | 117 +++++++++++++++++++++++--------\n tests/Unit/Component/ES/AsyncUpdateElasticSearchTest.php | 16 +----\n tests/Unit/Component/ES/Listeners/UpdateMultipleTargetsListenerTest.php | 10 ---\n tests/Unit/Component/ES/Listeners/UpdateSingleTargetListenerTest.php | 6 --\n tests/Unit/Component/ES/Processor/TargetEntitiesSelectorTest.php | 9 ---\n tests/Unit/Component/ES/Processor/Traits/SelectEntityListTraitTest.php | 15 ++--\n tests/Unit/Component/ES/UpdateProcessManagerTest.php | 2 -\n tests/Unit/Services/Calendar/CalendarActivityServiceTest.php | 150 ++++++++++++++++++++++++++++++++++++++--\n tests/Unit/Services/Calendar/Command/MapActivityDataTest.php | 78 ++-------------------\n 15 files changed, 832 insertions(+), 322 deletions(-)\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (master) $ co -b JY-20613-allow-owner-role-on-team-setup\nSwitched to a new branch 'JY-20613-allow-owner-role-on-team-setup'\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20613-allow-owner-role-on-team-setup) $ csfix\ndocker exec -it docker_lamp_1 ./vendor/bin/php-cs-fixer fix --config=.php-cs-fixer.dist.php -v --using-cache=no --diff \nPHP CS Fixer 3.87.1 Alexander by Fabien Potencier, Dariusz Ruminski and contributors.\nPHP runtime: 8.3.30\nRunning analysis on 7 cores with 10 files per process.\nParallel runner is an experimental feature and may be unstable, use it at your own risk. Feedback highly appreciated!\nLoaded config default from \".php-cs-fixer.dist.php\".\n 5682/5682 [▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓] 100%\n\n\nFixed 0 of 5682 files in 56.978 seconds, 67.00 MB memory used\n\nWhat's next:\n Try Docker Debug for seamless, persistent debugging tools in any container or image → docker debug docker_lamp_1\n Learn more at https://docs.docker.com/go/debug-cli/\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20613-allow-owner-role-on-team-setup) $ ;xd\ndocker exec -it docker_lamp_1 bash -c \"mv /usr/local/etc/php/conf.d/xdebug.ini ~/xdebug.ini\"\n\nWhat's next:\n Try Docker Debug for seamless, persistent debugging tools in any container or image → docker debug docker_lamp_1\n Learn more at https://docs.docker.com/go/debug-cli/\ndocker exec -it docker_lamp_1 supervisorctl restart all\njiminny-worker-processing-2:jiminny-worker-processing-2_00: stopped\njiminny-worker-processing-3:jiminny-worker-processing-3_00: stopped\njiminny-worker-processing-4:jiminny-worker-processing-4_00: stopped\njiminny-worker-processing-5:jiminny-worker-processing-5_00: stopped\njiminny-worker-processing-delayed:jiminny-worker-processing-delayed_00: stopped\nworker-analytics:worker-analytics_00: stopped\nworker-crm-update:worker-crm-update_00: stopped\nworker-download:worker-download_00: stopped\nworker-nudges:worker-nudges_00: stopped\nartisan-schedule:artisan-schedule_00: stopped\nworker-emails:worker-emails_00: stopped\nworker-calendar:worker-calendar_00: stopped\nworker:worker_00: stopped\nworker-conferences:worker-conferences_00: stopped\nworker-crm-sync:worker-crm-sync_00: stopped\njiminny-worker-processing-1:jiminny-worker-processing-1_00: stopped\nworker-audio:worker-audio_00: stopped\nworker-es-update:worker-es-update_00: stopped\nartisan-schedule:artisan-schedule_00: started\njiminny-worker-processing-1:jiminny-worker-processing-1_00: started\njiminny-worker-processing-2:jiminny-worker-processing-2_00: started\njiminny-worker-processing-3:jiminny-worker-processing-3_00: started\njiminny-worker-processing-4:jiminny-worker-processing-4_00: started\njiminny-worker-processing-5:jiminny-worker-processing-5_00: started\njiminny-worker-processing-delayed:jiminny-worker-processing-delayed_00: started\nworker:worker_00: started\nworker-analytics:worker-analytics_00: started\nworker-audio:worker-audio_00: started\nworker-calendar:worker-calendar_00: started\nworker-conferences:worker-conferences_00: started\nworker-crm-sync:worker-crm-sync_00: started\nworker-crm-update:worker-crm-update_00: started\nworker-download:worker-download_00: started\nworker-emails:worker-emails_00: started\nworker-es-update:worker-es-update_00: started\nworker-nudges:worker-nudges_00: started\n\nWhat's next:\n Try Docker Debug for seamless, persistent debugging tools in any container or image → docker debug docker_lamp_1\n Learn more at https://docs.docker.com/go/debug-cli/\ndocker exec -it docker_lamp_1 php -v\nPHP 8.3.30 (cli) (built: Mar 16 2026 22:32:32) (NTS)\nCopyright (c) The PHP Group\nZend Engine v4.3.30, Copyright (c) Zend Technologies\n with Zend OPcache v8.3.30, Copyright (c), by Zend Technologies\n\nWhat's next:\n Try Docker Debug for seamless, persistent debugging tools in any container or image → docker debug docker_lamp_1\n Learn more at https://docs.docker.com/go/debug-cli/\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20613-allow-owner-role-on-team-setup) $ csfix\ndocker exec -it docker_lamp_1 ./vendor/bin/php-cs-fixer fix --config=.php-cs-fixer.dist.php -v --using-cache=no --diff \nPHP CS Fixer 3.87.1 Alexander by Fabien Potencier, Dariusz Ruminski and contributors.\nPHP runtime: 8.3.30\nRunning analysis on 7 cores with 10 files per process.\nParallel runner is an experimental feature and may be unstable, use it at your own risk. Feedback highly appreciated!\nLoaded config default from \".php-cs-fixer.dist.php\".\n 5682/5682 [▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓] 100%\n\n\nFixed 0 of 5682 files in 49.910 seconds, 60.00 MB memory used\n\nWhat's next:\n Try Docker Debug for seamless, persistent debugging tools in any container or image → docker debug docker_lamp_1\n Learn more at https://docs.docker.com/go/debug-cli/\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20613-allow-owner-role-on-team-setup) $ git status\nOn branch JY-20613-allow-owner-role-on-team-setup\nYour branch is ahead of 'origin/JY-20613-allow-owner-role-on-team-setup' by 1 commit.\n (use \"git push\" to publish your local commits)\n\nChanges not staged for commit:\n (use \"git add <file>...\" to update what will be committed)\n (use \"git restore <file>...\" to discard changes in working directory)\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tmodified: .env.local\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tmodified: config/logging.php\n\nUntracked files:\n (use \"git add <file>...\" to include in what will be committed)\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\t.env.nikilocal\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\t.env.other\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tWEBHOOK_FILTERING_IMPLEMENTATION.md\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tapp/Console/Commands/Crm/Hubspot/SimulateWebhooksCommand.php\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tapp/Console/Commands/Reports/CreateMockAskJiminnyReportResultCommand.php\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tids.txt\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tpublic/favicon.ico\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\traw_sql_query.sql\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\ttests/Unit/Policies/CanAccessAiReportsTest.php\n\nno changes added to commit (use \"git add\" and/or \"git commit -a\")\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20613-allow-owner-role-on-team-setup) $ git pull\nremote: Enumerating objects: 248, done.\nremote: Counting objects: 100% (128/128), done.\nremote: Compressing objects: 100% (23/23), done.\nremote: Total 59 (delta 43), reused 44 (delta 33), pack-reused 0 (from 0)\nUnpacking objects: 100% (59/59), 10.48 KiB | 228.00 KiB/s, done.\nFrom github.com:jiminny/app\n b7df560451..190239dfd4 JY-20613-allow-owner-role-on-team-setup -> origin/JY-20613-allow-owner-role-on-team-setup\n e0351be069..d94a285ae7 JY-20808-low-priority-indexing-queue -> origin/JY-20808-low-priority-indexing-queue\n * [new branch] JY-20920-fix-participant-matcher -> origin/JY-20920-fix-participant-matcher\n cb4ebf0c36..90bca4e4b2 master -> origin/master\nMerge made by the 'ort' strategy.\n app/Component/ES/ChunkSize.php | 54 +++++++++++++++++++++++++++\n app/Component/ES/Processor/DTOs/SelectionList.php | 4 +-\n app/Component/ES/Processor/TargetEntitiesSelector.php | 19 ++++++----\n app/Http/Middleware/McpTierMiddleware.php | 27 +++-----------\n app/Mcp/Servers/JiminnyServer.php | 2 +\n app/Mcp/Tools/GetMeTool.php | 157 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++\n app/Models/Feature/FeatureEnum.php | 1 +\n database/migrations/2026_05_13_124153_create_mcp_feature_flag.php | 25 +++++++++++++\n front-end/src/components/Settings/Kiosk/modals/EditTeamModal/EditTeamModal.vue | 52 ++++++++++++++++++--------\n front-end/src/components/Settings/Kiosk/modals/EditTeamModal/__tests__/EditTeamModal.spec.js | 14 +++++++\n tests/Feature/Mcp/GetMeToolFeatureTest.php | 140 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++\n tests/Feature/Mcp/ListCallsToolFeatureTest.php | 2 +-\n tests/Feature/Mcp/McpTestHelpersTrait.php | 19 +++++++++-\n tests/Unit/Component/ES/ChunkSizeTest.php | 50 +++++++++++++++++++++++++\n tests/Unit/Component/ES/Processor/DTOs/SelectionListTest.php | 27 ++++++++++----\n tests/Unit/Component/ES/Processor/TargetEntitiesSelectorTest.php | 39 +++++++++++---------\n 16 files changed, 557 insertions(+), 75 deletions(-)\n create mode 100644 app/Component/ES/ChunkSize.php\n create mode 100644 app/Mcp/Tools/GetMeTool.php\n create mode 100644 database/migrations/2026_05_13_124153_create_mcp_feature_flag.php\n create mode 100644 tests/Feature/Mcp/GetMeToolFeatureTest.php\n create mode 100644 tests/Unit/Component/ES/ChunkSizeTest.php\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20613-allow-owner-role-on-team-setup) $ git push\nEnumerating objects: 40, done.\nCounting objects: 100% (34/34), done.\nDelta compression using up to 8 threads\nCompressing objects: 100% (18/18), done.\nWriting objects: 100% (18/18), 1.58 KiB | 1.58 MiB/s, done.\nTotal 18 (delta 15), reused 0 (delta 0), pack-reused 0\nremote: Resolving deltas: 100% (15/15), completed with 13 local objects.\nTo github.com:jiminny/app.git\n 190239dfd4..ec1b261264 JY-20613-allow-owner-role-on-team-setup -> JY-20613-allow-owner-role-on-team-setup\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20613-allow-owner-role-on-team-setup) $ gbr\n* JY-20613-allow-owner-role-on-team-setup\n pipedrive-sdk-poc\n master\n JY-20903-update_activity-stage-on-opportunity-change\n JY-20904-fix-update-es-on-activity-command\n JY-20891-improve-sms-text-relays\n JY-20725-handle-HS-search-rate-limit\n JY-20818-move-AJ-reports-to-separated-datadog-metric\n JY-20773-fix-automated-reports-user-pilot-tracking\n JY-20157-AJ-report-not-send-notification\n JY-20508-notify-before-AJ-report-expiration\n JY-20372-ai-reports-promotion-pages\n JY-20352-sync-opportunities-without-a-local-owner-user-id-is-null\n JY-20738-debug-AJ-tracking-UP\n a\n JY-18909-automated-reports-ask-jiminny\n JY-20692-fix-integration-app-token-auth-response-change\n JY-20553-debug-crm-sync-delays\n JY-20698-fix-SF-activity-types-on-new-playbook\n JY-20543-AJ-report-tracking\n JY-20384-handle-auto-sync-with-no-access-to-event-type\n JY-20458-ask-jiminny-user-definitions\n JY-19666-fix-import-contacts-account-association\n JY-19666-HS-import-contacts-and-accounts-batch-job\n JY-20458-Ask-Jiminny-Reports\n JY-20200-batch-update-CRM-objects-Salesforce\n JY-19666-HS-webhooks-add-contact-and-company\n JY-20348-trigger-setup-DI-layout-on-team-creation\n JY-20326-refactor-info-message-in-command\n JY-20317-fix-auto-log-delay-issue-on-all-channels-disabled\n JY-20312-remove-on-update-change-last-synced-at-crm-configurations\n JY-20306-SF-skip-auto-sync-for-task-based-playbook\n JY-20192-remove-deleted-team-from-saved-search-filters\n JY-20197-import-opportunity-batch-job\n JY-20293-enable-status-field-for-pipedrive-deals\n JY-20191-remove-commands-interactive-prompts\n JY-20118-change-default-sync-strategy\n JY-20183-add-cache-on-auto-log-delay\n JY-20197-add-import-opportunity-batch-job\n 20118-hs-opportunity-make-webhook-strategy-default\n JY-20118-make-default-hs-opportunity-sync-strategy-webhook-based\n JY-20196-handle-opportunity-without-note\n JY-20118-improve-opportunity-import\n JY-20189-handle-activity-search-on-deleted-groups\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20613-allow-owner-role-on-team-setup) $ co JY-20725-handle-HS-search-rate-limit\nM\u0000\u0000\u0000\u0000\u0000\u0000\t.env.local\nM\u0000\u0000\u0000\u0000\u0000\u0000\tconfig/logging.php\nSwitched to branch 'JY-20725-handle-HS-search-rate-limit'\nYour branch is behind 'origin/JY-20725-handle-HS-search-rate-limit' by 439 commits, and can be fast-forwarded.\n (use \"git pull\" to update your local branch)\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20725-handle-HS-search-rate-limit) $ git pull\nUpdating 0f3e438941..bc6a3fce6b\nFast-forward\n .gitignore | 3 +-\n .windsurfrules | 168 ++---\n CLAUDE.md | 1 +\n app/Component/ActivityAnalytics/Service/CalculateTalkTimeOffsetsFromTranscription.php | 24 +-\n app/Component/AiActivityType/Services/AiActivityTypeEligibilityChecker.php | 28 +-\n app/Component/AiAutomation/Actions/PrepareUpdateDtoAction.php | 32 +-\n app/Component/AiAutomation/Services/CrmFillingEligibilityChecker.php | 47 ++\n app/Component/AiAutomation/TestCrmAiPromptService.php | 14 +\n app/Component/AiCallScoring/Services/AiCallScoringEligibilityChecker.php | 9 +\n app/Component/ES/ElasticSearchDocumentPartialUpdater.php | 13 +-\n app/Component/ES/ElasticSearchWorkerManager.php | 86 ---\n app/Component/ES/Processor/Actions/LoadDocumentsAction.php | 80 +--\n app/Component/ES/Processor/EntityQueryBuilder.php | 12 +-\n app/Component/ES/Processor/TargetEntitiesSelector.php | 2 +-\n app/Component/ES/Processor/Traits/SkipActivityTrait.php | 25 -\n app/Component/ES/Repositories/EsResetActivityRepository.php | 11 +-\n app/Component/ES/Worker/ActivityWorker.php | 73 --\n app/Component/ES/Worker/EntityWorker.php | 44 --\n app/Component/ES/Worker/WorkerAmount.php | 60 --\n app/Component/ES/Worker/WorkerInterface.php | 15 -\n app/Component/ElasticSearch/Contract/Searchable.php | 4 +\n app/Component/Encoding/Job/AnalyzeTrackChannelsJob.php | 20 +-\n app/Component/Encoding/Service/GenerateSpeechFromSilenceService.php | 85 ++-\n app/Component/FFMpeg/Services/GetSpeechIntervalsService.php | 18 +-\n app/Component/LanguageDetection/Services/FindSpeechTimeService.php | 22 +-\n app/Component/Nudge/Job/ProcessOrganisationImmediateNudgesJob.php | 218 +++++-\n app/Component/ParagraphBreaker/Services/TranscriptionParagraphsService.php | 4 +\n app/Component/ParticipantSpeech/Services/ParticipantSpeechesCreator.php | 33 +\n app/Component/ParticipantSpeech/Services/ParticipantSpeechesDeleter.php | 15 +\n app/Component/ParticipantSpeech/Services/ParticipantSpeechesProvider.php | 51 +-\n app/Component/ParticipantSpeech/Services/ParticipantSpeechesUploader.php | 36 +\n app/Component/ProphetAi/Exceptions/InsufficientTranscriptException.php | 11 +\n app/Component/Transcription/DTO/Http/Transcription/AssemblyAI/AssemblyAI/NoAssemblyIdException.php | 11 +\n app/Component/Transcription/DTO/Http/Transcription/AssemblyAI/AssemblyAI/SuccessfulResponse.php | 6 +\n app/Component/Transcription/DTO/Http/Transcription/TranscriptionIsNotCorrectFormatException.php | 11 +\n app/Component/Transcription/Diarization/Services/GetNormalizedParticipantSpeechesService.php | 23 +-\n app/Component/Transcription/Diarization/Source/MeetingBotSource.php | 16 +-\n app/Component/Transcription/TranscriptionProcessor/TranscriptionProcessor.php | 3 +\n app/Console/Commands/Activities/ActivityHardDeleteCommand.php | 4 +-\n app/Console/Commands/Activities/Copy.php | 2 +\n app/Console/Commands/Activities/SetupIntegration/TwilioSetS3RecordingCredentialsCommand.php | 119 ++++\n app/Console/Commands/Activities/UpdateActivityElasticSearchDocumentCommand.php | 10 +-\n app/Console/Commands/Crm/BackfillOpportunityUserFromAccountCommand.php | 126 ++++\n app/Console/Commands/Elasticsearch/AsyncUpdateEsActivities.php | 19 -\n app/Console/Commands/Elasticsearch/AsyncUpdateEsEntities.php | 50 +-\n app/Console/Commands/Elasticsearch/ResetAsyncElasticSearchCommand.php | 30 +-\n app/Console/Commands/GeckoExport/GeckoExportParticipantSpeechesCommand.php | 14 +-\n app/Console/Commands/IssueMcpTokenCommand.php | 84 +++\n app/Console/Commands/JiminnyDebugCommand.php | 7 +-\n app/Console/Commands/Tracks/CleanupActivityTracksCommand.php | 2 +-\n app/Console/Kernel.php | 6 +-\n app/Contracts/Services/Calendar/CalendarTrait.php | 80 ++-\n app/Events/AutomatedReports/AutomatedReportGenerated.php | 3 +\n app/Http/Controllers/API/AiCallScoring/AiScorecardController.php | 7 +-\n app/Http/Controllers/API/TeamAiAutomationController.php | 8 +\n app/Http/Controllers/CustomerApi/CustomerApiController.php | 4 +-\n app/Http/Controllers/Kiosk/ActivityController.php | 58 +-\n app/Http/Controllers/Settings/PlaybookController.php | 15 +-\n app/Http/Kernel.php | 23 +\n app/Http/Middleware/McpAuditMiddleware.php | 156 ++++\n app/Http/Middleware/McpTierMiddleware.php | 54 ++\n app/Http/Requests/API/V2/ZapierUploadActivityRequest.php | 28 +-\n app/Jobs/Activity/Import/ImportTwilioVideoSpeechesJob.php | 25 +-\n app/Jobs/Activity/Import/IsActivityReadyForProcessingJob.php | 10 +-\n app/Jobs/Calendar/SetupCalendarSync.php | 21 +-\n app/Jobs/ImportRemoteTrackJob.php | 96 ++-\n app/Jobs/Mailbox/EmailTextRelay.php | 15 +-\n app/Mcp/Contracts/McpCallRepositoryInterface.php | 30 +\n app/Mcp/DTO/ListCallsFilters.php | 29 +\n app/Mcp/Errors/McpError.php | 123 ++++\n app/Mcp/Repositories/McpActivityHydrator.php | 145 ++++\n app/Mcp/Repositories/McpCallRepository.php | 84 +++\n app/Mcp/Repositories/McpElasticCallRepository.php | 171 +++++\n app/Mcp/Servers/JiminnyServer.php | 38 +\n app/Mcp/Tools/ListCallsTool.php | 205 ++++++\n app/Models/Activity.php | 10 +-\n app/Models/Activity/Transcription.php | 17 +-\n app/Models/ElasticSearch/OpportunityElasticSearchTrait.php | 5 +\n app/Models/Participant.php | 1 +\n app/Providers/AppServiceProvider.php | 22 +\n app/Repositories/Crm/ContactRepository.php | 69 +-\n app/Repositories/ParticipantSpeechRepository.php | 13 +-\n app/Services/Activity/ParticipantsService.php | 19 +-\n app/Services/Activity/Twilio/S3RecordingCredentialsService.php | 82 +++\n app/Services/ActivityService.php | 21 +-\n app/Services/Calendar/CalendarActivityService.php | 46 ++\n app/Services/Calendar/Command/ImportParticipants.php | 1 +\n app/Services/Calendar/Command/MapActivityData.php | 106 +--\n app/Services/Calendar/GoogleCalendarService.php | 12 +-\n app/Services/Crm/Close/Processor/OpportunityProcessor.php | 2 +-\n app/Services/Crm/Close/Service.php | 22 +-\n app/Services/Crm/Copper/Service.php | 12 +-\n app/Services/Crm/Hubspot/Service.php | 154 +++-\n app/Services/Crm/Hubspot/ServiceTraits/OpportunitySyncTrait.php | 88 ++-\n app/Services/Crm/IntegrationApp/ServiceTraits/SyncCrmEntitiesTrait.php | 22 +-\n app/Services/Crm/Pipedrive/Service.php | 17 +-\n app/Services/Crm/Salesforce/Service.php | 42 +-\n app/Services/Mail/Office/EmailApiClient.php | 129 +---\n app/Services/RecallAI/Commands/ScheduleBotCommand.php | 39 +-\n app/Services/RecallAI/RecallAIService.php | 22 +-\n composer.json | 3 +-\n composer.lock | 87 ++-\n config/mcp.php | 23 +\n database/migrations/2026_04_30_120000_create_mcp_audit_log_table.php | 36 +\n docs/mcp/explorer/explorer.html | 697 ++++++++++++++++++\n docs/mcp/explorer/explorer.template.html | 697 ++++++++++++++++++\n docs/mcp/explorer/generate.js | 215 ++++++\n docs/mcp/explorer/tool-explorer-meta.json | 11 +\n docs/mcp/tools-list.json | 2536 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++\n docs/mcp/tools.md | 621 ++++++++++++++++\n front-end/package.json | 4 +-\n front-end/src/components/Settings/OrgSettings/AiAutomation/CrmFilling/TemplateFieldForm.vue | 28 +-\n front-end/src/components/Settings/OrgSettings/Playbooks/AddEditPlaybook.vue | 10 +\n front-end/src/components/playback/comments/ActivityComment.less | 10 +-\n front-end/src/components/shared/PromptTester/PromptTester.vue | 12 +-\n front-end/src/components/shared/__tests__/PromptTester.spec.js | 35 +\n front-end/src/components/shared/modals/EntityPickerModal/__tests__/useEntitiesCache.spec.ts | 37 +\n front-end/src/components/shared/modals/EntityPickerModal/useEntitiesCache.ts | 9 +\n front-end/yarn.lock | 16 +-\n phpstan-baseline.neon | 50 --\n routes/api.php | 11 +\n sonar-project.properties | 91 ++-\n tests/Feature/Component/Nudge/ProcessOrganisationImmediateNudgesJobTest.php | 534 ++++++++++++++\n tests/Feature/Jobs/ImportRemoteTrackJobTest.php | 283 +++++++-\n tests/Feature/Mcp/IssueMcpTokenCommandTest.php | 53 ++\n tests/Feature/Mcp/ListCallsToolElasticFeatureTest.php | 155 ++++\n tests/Feature/Mcp/ListCallsToolFeatureTest.php | 352 ++++++++++\n tests/Feature/Mcp/McpTestHelpersTrait.php | 77 ++\n tests/Feature/Services/Team/TeamDeleteHandlers/Retention/RetentionRepositoryHandlerTest.php | 1 +\n tests/Stubs/SentryStub.php | 18 +\n tests/Unit/Component/ActivityAnalytics/Service/CalculateTalkTimeOffsetFromTranscriptionTest.php | 28 +-\n tests/Unit/Component/AiActivityType/Services/AiActivityTypeEligibilityCheckerTest.php | 103 ++-\n tests/Unit/Component/AiAutomation/Actions/PrepareUpdateDtoActionTest.php | 91 +++\n tests/Unit/Component/AiAutomation/Services/CrmFillingEligibilityCheckerTest.php | 124 ++++\n tests/Unit/Component/AiAutomation/TestCrmAiPromptServiceTest.php | 67 +-\n tests/Unit/Component/AiCallScoring/Services/AiCallScoringEligibilityCheckerTest.php | 55 ++\n tests/Unit/Component/ES/ElasticSearchWorkerManagerTest.php | 135 ----\n tests/Unit/Component/ES/Processor/Actions/LoadDocumentsActionTest.php | 220 ++++++\n tests/Unit/Component/ES/Processor/EntityQueryBuilderTest.php | 21 +-\n tests/Unit/Component/ES/Processor/Traits/SkipActivityTraitTest.php | 51 --\n tests/Unit/Component/ES/Worker/ActivityWorkerTest.php | 174 -----\n tests/Unit/Component/ES/Worker/EntityWorkerTest.php | 97 ---\n tests/Unit/Component/ES/Worker/WorkerAmountTest.php | 116 ---\n tests/Unit/Component/Encoding/Job/AnalyzeTrackChannelsJobTest.php | 52 +-\n tests/Unit/Component/Encoding/Service/GenerateSpeechFromSilenceServiceTest.php | 171 ++---\n tests/Unit/Component/FFMpeg/Services/GetSpeechIntervalsTest.php | 36 +-\n tests/Unit/Component/LanguageDetection/Services/FindSpeechTimeServiceTest.php | 20 +-\n tests/Unit/Component/MobileSettings/MobileSettingsControllerTest.php | 5 +-\n tests/Unit/Component/ParticipantSpeech/Services/ParticipantSpeechesCreatorTest.php | 75 ++\n tests/Unit/Component/ParticipantSpeech/Services/ParticipantSpeechesDeleterTest.php | 63 ++\n tests/Unit/Component/ParticipantSpeech/Services/ParticipantSpeechesProviderTest.php | 134 ++++\n tests/Unit/Component/ParticipantSpeech/Services/ParticipantSpeechesUploaderTest.php | 57 ++\n tests/Unit/Component/Transcription/Diarization/Services/GetNormalizedParticipantSpeechesServiceTest.php | 51 +-\n tests/Unit/Component/Transcription/Diarization/Source/MeetingBotSourceTest.php | 29 +-\n tests/Unit/Contracts/Services/Calendar/CalendarTraitTest.php | 58 +-\n tests/Unit/Http/Controllers/Kiosk/ActivityControllerTest.php | 159 +++++\n tests/Unit/Jobs/Activity/Import/ImportTwilioVideoSpeechesJobTest.php | 22 +-\n tests/Unit/Jobs/Activity/Import/IsActivityReadyForProcessingJobTest.php | 26 +-\n tests/Unit/Jobs/Calendar/SetupCalendarSyncTest.php | 25 -\n tests/Unit/Services/Activity/ParticipantsServiceTest.php | 12 +-\n tests/Unit/Services/Activity/Twilio/S3RecordingCredentialsServiceTest.php | 180 +++++\n tests/Unit/Services/ActivityServiceTest.php | 132 ++++\n tests/Unit/Services/Calendar/CalendarActivityServiceTest.php | 150 +++-\n tests/Unit/Services/Calendar/Command/ImportParticipantsTest.php | 6 +-\n tests/Unit/Services/Calendar/Command/MapActivityDataTest.php | 78 +-\n tests/Unit/Services/Calendar/GoogleCalendarServiceTest.php | 116 +++\n tests/Unit/Services/Crm/Close/ServiceTest.php | 165 +++++\n tests/Unit/Services/Crm/Hubspot/ServiceTest.php | 272 ++++++-\n tests/Unit/Services/Crm/Hubspot/ServiceTraits/OpportunitySyncTest.php | 25 +-\n tests/Unit/Services/Crm/Hubspot/ServiceTraits/OpportunitySyncTraitMatchActivitiesTest.php | 3 +-\n tests/Unit/Services/Crm/IntegrationApp/ServiceTraits/SyncCrmEntitiesTraitOpportunitiesTest.php | 40 ++\n tests/Unit/Services/Crm/Pipedrive/ImportOpportunityMatchActivitiesTest.php | 2 +\n tests/Unit/Services/Crm/Salesforce/ServiceTest.php | 139 ++++\n tests/Unit/Services/Mail/Office/EmailApiClientTest.php | 195 ++---\n tests/Unit/Services/RecallAI/RecallAIServiceTest.php | 24 +-\n 175 files changed, 12562 insertions(+), 2162 deletions(-)\n create mode 120000 CLAUDE.md\n create mode 100644 app/Component/AiAutomation/Services/CrmFillingEligibilityChecker.php\n delete mode 100644 app/Component/ES/ElasticSearchWorkerManager.php\n delete mode 100644 app/Component/ES/Processor/Traits/SkipActivityTrait.php\n delete mode 100644 app/Component/ES/Worker/ActivityWorker.php\n delete mode 100644 app/Component/ES/Worker/EntityWorker.php\n delete mode 100644 app/Component/ES/Worker/WorkerAmount.php\n delete mode 100644 app/Component/ES/Worker/WorkerInterface.php\n create mode 100644 app/Component/ProphetAi/Exceptions/InsufficientTranscriptException.php\n create mode 100644 app/Component/Transcription/DTO/Http/Transcription/AssemblyAI/AssemblyAI/NoAssemblyIdException.php\n create mode 100644 app/Component/Transcription/DTO/Http/Transcription/TranscriptionIsNotCorrectFormatException.php\n create mode 100644 app/Console/Commands/Activities/SetupIntegration/TwilioSetS3RecordingCredentialsCommand.php\n create mode 100644 app/Console/Commands/Crm/BackfillOpportunityUserFromAccountCommand.php\n delete mode 100644 app/Console/Commands/Elasticsearch/AsyncUpdateEsActivities.php\n create mode 100644 app/Console/Commands/IssueMcpTokenCommand.php\n create mode 100644 app/Http/Middleware/McpAuditMiddleware.php\n create mode 100644 app/Http/Middleware/McpTierMiddleware.php\n create mode 100644 app/Mcp/Contracts/McpCallRepositoryInterface.php\n create mode 100644 app/Mcp/DTO/ListCallsFilters.php\n create mode 100644 app/Mcp/Errors/McpError.php\n create mode 100644 app/Mcp/Repositories/McpActivityHydrator.php\n create mode 100644 app/Mcp/Repositories/McpCallRepository.php\n create mode 100644 app/Mcp/Repositories/McpElasticCallRepository.php\n create mode 100644 app/Mcp/Servers/JiminnyServer.php\n create mode 100644 app/Mcp/Tools/ListCallsTool.php\n create mode 100644 app/Services/Activity/Twilio/S3RecordingCredentialsService.php\n create mode 100644 config/mcp.php\n create mode 100644 database/migrations/2026_04_30_120000_create_mcp_audit_log_table.php\n create mode 100644 docs/mcp/explorer/explorer.html\n create mode 100644 docs/mcp/explorer/explorer.template.html\n create mode 100644 docs/mcp/explorer/generate.js\n create mode 100644 docs/mcp/explorer/tool-explorer-meta.json\n create mode 100644 docs/mcp/tools-list.json\n create mode 100644 docs/mcp/tools.md\n create mode 100644 front-end/src/components/shared/modals/EntityPickerModal/__tests__/useEntitiesCache.spec.ts\n create mode 100644 tests/Feature/Component/Nudge/ProcessOrganisationImmediateNudgesJobTest.php\n create mode 100644 tests/Feature/Mcp/IssueMcpTokenCommandTest.php\n create mode 100644 tests/Feature/Mcp/ListCallsToolElasticFeatureTest.php\n create mode 100644 tests/Feature/Mcp/ListCallsToolFeatureTest.php\n create mode 100644 tests/Feature/Mcp/McpTestHelpersTrait.php\n create mode 100644 tests/Stubs/SentryStub.php\n create mode 100644 tests/Unit/Component/AiAutomation/Services/CrmFillingEligibilityCheckerTest.php\n delete mode 100644 tests/Unit/Component/ES/ElasticSearchWorkerManagerTest.php\n create mode 100644 tests/Unit/Component/ES/Processor/Actions/LoadDocumentsActionTest.php\n delete mode 100644 tests/Unit/Component/ES/Processor/Traits/SkipActivityTraitTest.php\n delete mode 100644 tests/Unit/Component/ES/Worker/ActivityWorkerTest.php\n delete mode 100644 tests/Unit/Component/ES/Worker/EntityWorkerTest.php\n delete mode 100644 tests/Unit/Component/ES/Worker/WorkerAmountTest.php\n create mode 100644 tests/Unit/Component/ParticipantSpeech/Services/ParticipantSpeechesCreatorTest.php\n create mode 100644 tests/Unit/Http/Controllers/Kiosk/ActivityControllerTest.php\n create mode 100644 tests/Unit/Services/Activity/Twilio/S3RecordingCredentialsServiceTest.php\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20725-handle-HS-search-rate-limit) $ git status\nOn branch master\nYour branch is behind 'origin/master' by 114 commits, and can be fast-forwarded.\n (use \"git pull\" to update your local branch)\n\nChanges not staged for commit:\n (use \"git add <file>...\" to update what will be committed)\n (use \"git restore <file>...\" to discard changes in working directory)\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tmodified: .env.local\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tmodified: app/Component/SCIM/Constants.php\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tmodified: app/Component/SCIM/ScimProvisioning.php\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tmodified: app/Component/Twilio/Conference/ConferenceManager/SoftPhoneManager.php\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tmodified: app/Console/Commands/JiminnyDebugCommand.php\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tmodified: app/DTO/SCIM/AAD/Request/CoreUserRequest.php\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tmodified: app/DTO/SCIM/AAD/Response/CoreUser.php\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tmodified: app/Services/Telephony/TextMessagingService.php\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tmodified: config/logging.php\n\nUntracked files:\n (use \"git add <file>...\" to include in what will be committed)\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\t.env.nikilocal\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\t.env.other\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tWEBHOOK_FILTERING_IMPLEMENTATION.md\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tapp/Component/SCIM/Mutators/Attributes/User/RoleAttr.php\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tapp/Console/Commands/Crm/Hubspot/SimulateWebhooksCommand.php\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tapp/Console/Commands/Reports/CreateMockAskJiminnyReportResultCommand.php\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tapp/Rules/ListenerRoleCannotHaveAdminOrManagerPermissionRule.php\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tids.txt\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tpublic/favicon.ico\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\traw_sql_query.sql\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\ttests/Unit/Component/SCIM/Mutators/Attributes/User/RoleAttrTest.php\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\ttests/Unit/Policies/CanAccessAiReportsTest.php\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\ttests/Unit/Rules/ListenerRoleCannotHaveAdminOrManagerPermissionRuleTest.php\n\nno changes added to commit (use \"git add\" and/or \"git commit -a\")\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (master) $ git pull\nremote: Enumerating objects: 306, done.\nremote: Counting objects: 100% (299/299), done.\nremote: Compressing objects: 100% (183/183), done.\nremote: Total 306 (delta 213), reused 171 (delta 116), pack-reused 7 (from 1)\nReceiving objects: 100% (306/306), 80.12 KiB | 1000.00 KiB/s, done.\nResolving deltas: 100% (213/213), completed with 53 local objects.\nFrom github.com:jiminny/app\n 90bca4e4b2..5604af40cf master -> origin/master\n 4e7078fd8b..0b8343d179 JY-18091-upgrade-to-php-8-5 -> origin/JY-18091-upgrade-to-php-8-5\n 098eeaa087..d5a447e492 JY-20613-allow-owner-role-on-team-setup -> origin/JY-20613-allow-owner-role-on-team-setup\n c3a76ace91..af65249d0f JY-20749-user-can-view-recorded-meetings -> origin/JY-20749-user-can-view-recorded-meetings\n d94a285ae7..7ce96cb5fe JY-20808-low-priority-indexing-queue -> origin/JY-20808-low-priority-indexing-queue\n * [new branch] JY-20842-remove-partial-updater -> origin/JY-20842-remove-partial-updater\n * [new branch] JY-20920-fix-participant-flip -> origin/JY-20920-fix-participant-flip\n * [new branch] secfix/npm-20260519 -> origin/secfix/npm-20260519\nUpdating cb4ebf0c36..5604af40cf\nFast-forward\n app/Component/ES/ChunkSize.php | 54 +++++++++++++++++++\n app/Component/ES/Processor/DTOs/SelectionList.php | 4 +-\n app/Component/ES/Processor/TargetEntitiesSelector.php | 19 ++++---\n app/Component/MeetingBot/Service/ParticipantMatcher.php | 46 ++++++++++++----\n app/Exceptions/RateLimitException.php | 19 ++++++-\n app/Http/Middleware/McpTierMiddleware.php | 27 ++--------\n app/Jobs/Crm/MatchActivityCrmData.php | 47 ++++++++++++----\n app/Jobs/Middleware/HandleHubspotRateLimit.php | 42 +++++++++++++++\n app/Mcp/Servers/JiminnyServer.php | 2 +\n app/Mcp/Tools/GetMeTool.php | 157 +++++++++++++++++++++++++++++++++++++++++++++++++++++\n app/Models/Feature/FeatureEnum.php | 1 +\n app/Services/Activity/HubSpot/ProviderResolver.php | 4 +-\n app/Services/Activity/HubSpot/ProviderResolverInterface.php | 2 +-\n app/Services/Activity/HubSpot/Providers/Provider.php | 2 +-\n app/Services/Activity/HubSpot/Providers/ProviderKixie.php | 2 +-\n app/Services/Activity/HubSpot/Providers/ProviderOrum.php | 2 +-\n app/Services/Activity/HubSpot/Providers/ProviderTwilio.php | 2 +-\n app/Services/Activity/HubSpot/Providers/ProviderTwilioFlex.php | 5 +-\n app/Services/Activity/HubSpot/Service.php | 97 +++++++++++++++++++++++++++------\n app/Services/Crm/Hubspot/Client.php | 132 +++++++++++++++++++++++++++++++++++++++++++++\n app/Services/Crm/Hubspot/HubspotClientInterface.php | 15 ++++++\n app/Services/Crm/Hubspot/Pagination/HubspotPaginationService.php | 21 ++++----\n app/Services/Crm/Hubspot/Pagination/PaginationState.php | 2 +-\n database/migrations/2026_05_13_124153_create_mcp_feature_flag.php | 25 +++++++++\n tests/Feature/Mcp/GetMeToolFeatureTest.php | 140 +++++++++++++++++++++++++++++++++++++++++++++++\n tests/Feature/Mcp/ListCallsToolFeatureTest.php | 2 +-\n tests/Feature/Mcp/McpTestHelpersTrait.php | 19 ++++++-\n tests/Unit/Component/ES/ChunkSizeTest.php | 50 +++++++++++++++++\n tests/Unit/Component/ES/Processor/DTOs/SelectionListTest.php | 27 +++++++---\n tests/Unit/Component/ES/Processor/TargetEntitiesSelectorTest.php | 39 ++++++++------\n tests/Unit/Component/MeetingBot/Service/ParticipantMatcherTest.php | 68 ++++++++++++++++++++++-\n tests/Unit/Exceptions/RateLimitExceptionTest.php | 56 +++++++++++++++++++\n tests/Unit/Jobs/Crm/MatchActivityCrmDataTest.php | 8 +--\n tests/Unit/Jobs/Middleware/HandleHubspotRateLimitTest.php | 151 +++++++++++++++++++++++++++++++++++++++++++++++++++\n tests/Unit/Services/Activity/HubSpot/ServiceTest.php | 109 +++++++++++++++++++++++++++++++++++++\n tests/Unit/Services/Crm/Hubspot/ClientTest.php | 250 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++\n tests/Unit/Services/Crm/Hubspot/Pagination/HubspotPaginationServiceTest.php | 283 +++++++++++++++++++++---------------------------------------------------------------------------\n 37 files changed, 1587 insertions(+), 344 deletions(-)\n create mode 100644 app/Component/ES/ChunkSize.php\n create mode 100644 app/Jobs/Middleware/HandleHubspotRateLimit.php\n create mode 100644 app/Mcp/Tools/GetMeTool.php\n create mode 100644 database/migrations/2026_05_13_124153_create_mcp_feature_flag.php\n create mode 100644 tests/Feature/Mcp/GetMeToolFeatureTest.php\n create mode 100644 tests/Unit/Component/ES/ChunkSizeTest.php\n create mode 100644 tests/Unit/Exceptions/RateLimitExceptionTest.php\n create mode 100644 tests/Unit/Jobs/Middleware/HandleHubspotRateLimitTest.php\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (master) $ git pull\nAlready up to date.\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (master) $ co -b JY-20676-delete-report-related-objects\nSwitched to a new branch 'JY-20676-delete-report-related-objects'\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20676-delete-report-related-objects) $ csfix\ndocker exec -it docker_lamp_1 ./vendor/bin/php-cs-fixer fix --config=.php-cs-fixer.dist.php -v --using-cache=no --diff \nPHP CS Fixer 3.87.1 Alexander by Fabien Potencier, Dariusz Ruminski and contributors.\nPHP runtime: 8.3.30\nRunning analysis on 7 cores with 10 files per process.\nParallel runner is an experimental feature and may be unstable, use it at your own risk. Feedback highly appreciated!\nLoaded config default from \".php-cs-fixer.dist.php\".\n 5690/5690 [▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓] 100%\n\n 1) app/Console/Commands/JiminnyDebugCommand.php (statement_indentation, blank_line_before_statement)\n ---------- begin diff ----------\n--- /home/jiminny/app/Console/Commands/JiminnyDebugCommand.php\n+++ /home/jiminny/app/Console/Commands/JiminnyDebugCommand.php\n@@ -23,6 +23,7 @@\n \n if ($action === 'redis-set') {\n $this->testRedisSet();\n+\n return;\n }\n \n@@ -45,7 +46,7 @@\n $ttl = 60;\n \n try {\n-// $result = Redis::set($testKey, $testValue, 'EX', $ttl, 'NX');\n+ // $result = Redis::set($testKey, $testValue, 'EX', $ttl, 'NX');\n $result = Redis::set($testKey, $testValue, ['nx', 'ex' => $ttl]);\n \n if ($result) {\n\n ----------- end diff -----------\n\n\nFixed 1 of 5690 files in 50.673 seconds, 67.00 MB memory used\n\nWhat's next:\n Try Docker Debug for seamless, persistent debugging tools in any container or image → docker debug docker_lamp_1\n Learn more at https://docs.docker.com/go/debug-cli/\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20676-delete-report-related-objects) $ ;xd\ndocker exec -it docker_lamp_1 bash -c \"mv /usr/local/etc/php/conf.d/xdebug.ini ~/xdebug.ini\"\n\nWhat's next:\n Try Docker Debug for seamless, persistent debugging tools in any container or image → docker debug docker_lamp_1\n Learn more at https://docs.docker.com/go/debug-cli/\ndocker exec -it docker_lamp_1 supervisorctl restart all\njiminny-worker-processing-2:jiminny-worker-processing-2_00: stopped\njiminny-worker-processing-3:jiminny-worker-processing-3_00: stopped\njiminny-worker-processing-4:jiminny-worker-processing-4_00: stopped\njiminny-worker-processing-5:jiminny-worker-processing-5_00: stopped\njiminny-worker-processing-delayed:jiminny-worker-processing-delayed_00: stopped\nworker-analytics:worker-analytics_00: stopped\nworker-crm-update:worker-crm-update_00: stopped\nworker-download:worker-download_00: stopped\nworker-nudges:worker-nudges_00: stopped\nworker-calendar:worker-calendar_00: stopped\nworker-audio:worker-audio_00: stopped\njiminny-worker-processing-1:jiminny-worker-processing-1_00: stopped\nworker:worker_00: stopped\nworker-conferences:worker-conferences_00: stopped\nworker-crm-sync:worker-crm-sync_00: stopped\nworker-emails:worker-emails_00: stopped\nworker-es-update:worker-es-update_00: stopped\nartisan-schedule:artisan-schedule_00: stopped\nartisan-schedule:artisan-schedule_00: started\njiminny-worker-processing-1:jiminny-worker-processing-1_00: started\njiminny-worker-processing-2:jiminny-worker-processing-2_00: started\njiminny-worker-processing-3:jiminny-worker-processing-3_00: started\njiminny-worker-processing-4:jiminny-worker-processing-4_00: started\njiminny-worker-processing-5:jiminny-worker-processing-5_00: started\njiminny-worker-processing-delayed:jiminny-worker-processing-delayed_00: started\nworker:worker_00: started\nworker-analytics:worker-analytics_00: started\nworker-audio:worker-audio_00: started\nworker-calendar:worker-calendar_00: started\nworker-conferences:worker-conferences_00: started\nworker-crm-sync:worker-crm-sync_00: started\nworker-crm-update:worker-crm-update_00: started\nworker-download:worker-download_00: started\nworker-emails:worker-emails_00: started\nworker-es-update:worker-es-update_00: started\nworker-nudges:worker-nudges_00: started\n\nWhat's next:\n Try Docker Debug for seamless, persistent debugging tools in any container or image → docker debug docker_lamp_1\n Learn more at https://docs.docker.com/go/debug-cli/\ndocker exec -it docker_lamp_1 php -v\nPHP 8.3.30 (cli) (built: Mar 16 2026 22:32:32) (NTS)\nCopyright (c) The PHP Group\nZend Engine v4.3.30, Copyright (c) Zend Technologies\n with Zend OPcache v8.3.30, Copyright (c), by Zend Technologies\n\nWhat's next:\n Try Docker Debug for seamless, persistent debugging tools in any container or image → docker debug docker_lamp_1\n Learn more at https://docs.docker.com/go/debug-cli/\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20676-delete-report-related-objects) $ git status\nOn branch JY-20676-delete-report-related-objects\nChanges not staged for commit:\n (use \"git add <file>...\" to update what will be committed)\n (use \"git restore <file>...\" to discard changes in working directory)\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tmodified: .env.local\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tmodified: app/Console/Commands/JiminnyDebugCommand.php\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tmodified: config/logging.php\n\nUntracked files:\n (use \"git add <file>...\" to include in what will be committed)\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\t.env.nikilocal\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\t.env.other\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tWEBHOOK_FILTERING_IMPLEMENTATION.md\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tapp/Console/Commands/Crm/Hubspot/SimulateWebhooksCommand.php\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tapp/Console/Commands/Reports/CreateMockAskJiminnyReportResultCommand.php\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tids.txt\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tpublic/favicon.ico\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\traw_sql_query.sql\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\ttests/Unit/Policies/CanAccessAiReportsTest.php\n\nno changes added to commit (use \"git add\" and/or \"git commit -a\")\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20676-delete-report-related-objects) $ git push -u origin JY-20676-delete-report-related-objects\nEnumerating objects: 45, done.\nCounting objects: 100% (45/45), done.\nDelta compression using up to 8 threads\nCompressing objects: 100% (24/24), done.\nWriting objects: 100% (24/24), 3.62 KiB | 3.62 MiB/s, done.\nTotal 24 (delta 19), reused 0 (delta 0), pack-reused 0\nremote: Resolving deltas: 100% (19/19), completed with 19 local objects.\nremote: \nremote: Create a pull request for 'JY-20676-delete-report-related-objects' on GitHub by visiting:\nremote: https://github.com/jiminny/app/pull/new/JY-20676-delete-report-related-objects\nremote: \nTo github.com:jiminny/app.git\n * [new branch] JY-20676-delete-report-related-objects -> JY-20676-delete-report-related-objects\nbranch 'JY-20676-delete-report-related-objects' set up to track 'origin/JY-20676-delete-report-related-objects'.\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20676-delete-report-related-objects) $ csfix\ndocker exec -it docker_lamp_1 ./vendor/bin/php-cs-fixer fix --config=.php-cs-fixer.dist.php -v --using-cache=no --diff \nPHP CS Fixer 3.87.1 Alexander by Fabien Potencier, Dariusz Ruminski and contributors.\nPHP runtime: 8.3.30\nRunning analysis on 7 cores with 10 files per process.\nParallel runner is an experimental feature and may be unstable, use it at your own risk. Feedback highly appreciated!\nLoaded config default from \".php-cs-fixer.dist.php\".\n 5690/5690 [▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓] 100%\n\n 1) app/Http/Controllers/API/V2/AskJiminnyReportsController.php (blank_line_before_statement)\n ---------- begin diff ----------\n--- /home/jiminny/app/Http/Controllers/API/V2/AskJiminnyReportsController.php\n+++ /home/jiminny/app/Http/Controllers/API/V2/AskJiminnyReportsController.php\n@@ -140,6 +140,7 @@\n if ($enabled && $report->isAskJiminnyReport() && ! $report->canExecute()) {\n $error = 'This report is missing a saved search or prompt. ' .\n 'Edit the report to complete the setup before enabling it.';\n+\n return new JsonResponse(\n ['error' => $error],\n Response::HTTP_UNPROCESSABLE_ENTITY\n\n ----------- end diff -----------\n\n\nFixed 1 of 5690 files in 71.757 seconds, 60.00 MB memory used\n\nWhat's next:\n Try Docker Debug for seamless, persistent debugging tools in any container or image → docker debug docker_lamp_1\n Learn more at https://docs.docker.com/go/debug-cli/\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20676-delete-report-related-objects) $ git pull\nremote: Enumerating objects: 158, done.\nremote: Counting objects: 100% (103/103), done.\nremote: Compressing objects: 100% (37/37), done.\nremote: Total 158 (delta 80), reused 74 (delta 66), pack-reused 55 (from 3)\nReceiving objects: 100% (158/158), 80.59 KiB | 982.00 KiB/s, done.\nResolving deltas: 100% (85/85), completed with 45 local objects.\nFrom github.com:jiminny/app\n 02a33811ee..c6ce5e2440 JY-20676-delete-report-related-objects -> origin/JY-20676-delete-report-related-objects\n 7ce96cb5fe..6c59f04358 JY-20808-low-priority-indexing-queue -> origin/JY-20808-low-priority-indexing-queue\n 3906a9238a..2b5e6ea62b JY-20835-mcp-enable-users-to-get-a-list-of-deals-and-their-details -> origin/JY-20835-mcp-enable-users-to-get-a-list-of-deals-and-their-details\n 5604af40cf..ea3519f0e2 master -> origin/master\n * [new branch] switch-eu-assembly -> origin/switch-eu-assembly\nUpdating 02a33811ee..c6ce5e2440\nFast-forward\n app/Component/ES/ElasticSearchDocumentPartialUpdater.php | 48 ---\n app/Component/ParticipantSpeech/Services/ParticipantAttributionService.php | 4 +-\n app/Component/Settings/AutoScoring/Services/UpdateAutoScoreService.php | 20 +-\n app/Component/Transcription/Service/StorageService.php | 8 +-\n front-end/package.json | 2 +-\n front-end/src/components/DealInsights/Modals/AskAnythingModal.vue | 23 ++\n front-end/src/components/shared/AskAnything/AskAnythingPromptFormItem.vue | 2 +\n front-end/src/components/shared/AskAnything/AskAnythingSettingsDrawer.vue | 23 +-\n front-end/src/components/shared/AskAnything/__mocks__/AskAnythingSettingsDrawer.mocks.js | 1 +\n front-end/src/components/shared/AskAnything/__tests__/AskAnythingSettingsDrawer.spec.js | 135 ++++---\n front-end/src/components/shared/AskAnything/__tests__/__snapshots__/AskAnythingSettingsDrawer.spec.js.html | 1235 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++\n front-end/src/components/shared/AskAnything/__tests__/__snapshots__/AskAnythingSettingsDrawer.spec.js.snap | 1382 ----------------------------------------------------------------\n front-end/src/components/shared/AskAnything/prompts.js | 1 +\n front-end/src/components/shared/AskAnything/useAskAnything.js | 1 +\n front-end/yarn.lock | 8 +-\n tests/Unit/Component/ES/ElasticSearchDocumentPartialUpdaterTest.php | 42 --\n tests/Unit/Component/Settings/AutoScoring/Services/UpdateAutoScoreServiceTest.php | 86 ++--\n tests/Unit/Component/Transcription/Service/StorageServiceTest.php | 29 +-\n 18 files changed, 1448 insertions(+), 1602 deletions(-)\n delete mode 100644 app/Component/ES/ElasticSearchDocumentPartialUpdater.php\n create mode 100644 front-end/src/components/shared/AskAnything/__tests__/__snapshots__/AskAnythingSettingsDrawer.spec.js.html\n delete mode 100644 front-end/src/components/shared/AskAnything/__tests__/__snapshots__/AskAnythingSettingsDrawer.spec.js.snap\n delete mode 100644 tests/Unit/Component/ES/ElasticSearchDocumentPartialUpdaterTest.php\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20676-delete-report-related-objects) $ csfix\ndocker exec -it docker_lamp_1 ./vendor/bin/php-cs-fixer fix --config=.php-cs-fixer.dist.php -v --using-cache=no --diff \nPHP CS Fixer 3.87.1 Alexander by Fabien Potencier, Dariusz Ruminski and contributors.\nPHP runtime: 8.3.30\nRunning analysis on 7 cores with 10 files per process.\nParallel runner is an experimental feature and may be unstable, use it at your own risk. Feedback highly appreciated!\nLoaded config default from \".php-cs-fixer.dist.php\".","depth":4,"on_screen":true,"value":"Last login: Mon May 18 09:17:28 on ttys007\n\nPoetry could not find a pyproject.toml file in /Users/lukas/jiminny/app or its parents\n\nPoetry could not find a pyproject.toml file in /Users/lukas/jiminny/app or its parents\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (pipedrive-sdk-poc) $ co master\nerror: Your local changes to the following files would be overwritten by checkout:\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tPIPEDRIVE_V2_MIGRATION_TICKETS.md\nPlease commit your changes or stash them before you switch branches.\nAborting\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (pipedrive-sdk-poc) $ git pull\nremote: Enumerating objects: 1047, done.\nremote: Counting objects: 100% (832/832), done.\nremote: Compressing objects: 100% (298/298), done.\nremote: Total 1047 (delta 634), reused 596 (delta 534), pack-reused 215 (from 3)\nReceiving objects: 100% (1047/1047), 353.16 KiB | 1.56 MiB/s, done.\nResolving deltas: 100% (687/687), completed with 107 local objects.\nFrom github.com:jiminny/app\n 907c54896c..34656c53ed pipedrive-sdk-poc -> origin/pipedrive-sdk-poc\n 03325ec50f..4e7078fd8b JY-18091-upgrade-to-php-8-5 -> origin/JY-18091-upgrade-to-php-8-5\n e7d231e163..bc6a3fce6b JY-20725-handle-HS-search-rate-limit -> origin/JY-20725-handle-HS-search-rate-limit\n * [new branch] JY-20749-user-can-view-recorded-meetings -> origin/JY-20749-user-can-view-recorded-meetings\n 98ca281a04..e0351be069 JY-20808-low-priority-indexing-queue -> origin/JY-20808-low-priority-indexing-queue\n 569abb5149..3906a9238a JY-20835-mcp-enable-users-to-get-a-list-of-deals-and-their-details -> origin/JY-20835-mcp-enable-users-to-get-a-list-of-deals-and-their-details\n ad6c2a86e8..50eb6afba9 JY-20846-mcp-enable-the-ai-to-know-details-about-the-user -> origin/JY-20846-mcp-enable-the-ai-to-know-details-about-the-user\n * [new branch] JY-20893-chunk-control-per-update-target -> origin/JY-20893-chunk-control-per-update-target\n 31c62924a5..cb4ebf0c36 master -> origin/master\nUpdating 907c54896c..34656c53ed\nFast-forward\n PIPEDRIVE_V2_MIGRATION_TICKETS.md | 52 ++++++++++++++++++++++++++++++++++++++++++++++++++++\n 1 file changed, 52 insertions(+)\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (pipedrive-sdk-poc) $ co master\nM\u0000\u0000\u0000\u0000\u0000\u0000\t.env.local\nM\u0000\u0000\u0000\u0000\u0000\u0000\tconfig/logging.php\nSwitched to branch 'master'\nYour branch is behind 'origin/master' by 31 commits, and can be fast-forwarded.\n (use \"git pull\" to update your local branch)\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (master) $ git pull\nUpdating 31c62924a5..cb4ebf0c36\nFast-forward\n app/Component/ES/Processor/Traits/SelectEntityListTrait.php | 20 ------\n app/Services/Calendar/CalendarActivityService.php | 46 +++++++++++++\n app/Services/Calendar/Command/MapActivityData.php | 106 +++-------------------------\n docs/mcp/explorer/explorer.html | 104 +++++++++++++++++++++++++---\n docs/mcp/explorer/explorer.template.html | 102 ++++++++++++++++++++++++---\n docs/mcp/tools-list.json | 373 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++-------\n docs/mcp/tools.md | 117 +++++++++++++++++++++++--------\n tests/Unit/Component/ES/AsyncUpdateElasticSearchTest.php | 16 +----\n tests/Unit/Component/ES/Listeners/UpdateMultipleTargetsListenerTest.php | 10 ---\n tests/Unit/Component/ES/Listeners/UpdateSingleTargetListenerTest.php | 6 --\n tests/Unit/Component/ES/Processor/TargetEntitiesSelectorTest.php | 9 ---\n tests/Unit/Component/ES/Processor/Traits/SelectEntityListTraitTest.php | 15 ++--\n tests/Unit/Component/ES/UpdateProcessManagerTest.php | 2 -\n tests/Unit/Services/Calendar/CalendarActivityServiceTest.php | 150 ++++++++++++++++++++++++++++++++++++++--\n tests/Unit/Services/Calendar/Command/MapActivityDataTest.php | 78 ++-------------------\n 15 files changed, 832 insertions(+), 322 deletions(-)\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (master) $ co -b JY-20613-allow-owner-role-on-team-setup\nSwitched to a new branch 'JY-20613-allow-owner-role-on-team-setup'\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20613-allow-owner-role-on-team-setup) $ csfix\ndocker exec -it docker_lamp_1 ./vendor/bin/php-cs-fixer fix --config=.php-cs-fixer.dist.php -v --using-cache=no --diff \nPHP CS Fixer 3.87.1 Alexander by Fabien Potencier, Dariusz Ruminski and contributors.\nPHP runtime: 8.3.30\nRunning analysis on 7 cores with 10 files per process.\nParallel runner is an experimental feature and may be unstable, use it at your own risk. Feedback highly appreciated!\nLoaded config default from \".php-cs-fixer.dist.php\".\n 5682/5682 [▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓] 100%\n\n\nFixed 0 of 5682 files in 56.978 seconds, 67.00 MB memory used\n\nWhat's next:\n Try Docker Debug for seamless, persistent debugging tools in any container or image → docker debug docker_lamp_1\n Learn more at https://docs.docker.com/go/debug-cli/\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20613-allow-owner-role-on-team-setup) $ ;xd\ndocker exec -it docker_lamp_1 bash -c \"mv /usr/local/etc/php/conf.d/xdebug.ini ~/xdebug.ini\"\n\nWhat's next:\n Try Docker Debug for seamless, persistent debugging tools in any container or image → docker debug docker_lamp_1\n Learn more at https://docs.docker.com/go/debug-cli/\ndocker exec -it docker_lamp_1 supervisorctl restart all\njiminny-worker-processing-2:jiminny-worker-processing-2_00: stopped\njiminny-worker-processing-3:jiminny-worker-processing-3_00: stopped\njiminny-worker-processing-4:jiminny-worker-processing-4_00: stopped\njiminny-worker-processing-5:jiminny-worker-processing-5_00: stopped\njiminny-worker-processing-delayed:jiminny-worker-processing-delayed_00: stopped\nworker-analytics:worker-analytics_00: stopped\nworker-crm-update:worker-crm-update_00: stopped\nworker-download:worker-download_00: stopped\nworker-nudges:worker-nudges_00: stopped\nartisan-schedule:artisan-schedule_00: stopped\nworker-emails:worker-emails_00: stopped\nworker-calendar:worker-calendar_00: stopped\nworker:worker_00: stopped\nworker-conferences:worker-conferences_00: stopped\nworker-crm-sync:worker-crm-sync_00: stopped\njiminny-worker-processing-1:jiminny-worker-processing-1_00: stopped\nworker-audio:worker-audio_00: stopped\nworker-es-update:worker-es-update_00: stopped\nartisan-schedule:artisan-schedule_00: started\njiminny-worker-processing-1:jiminny-worker-processing-1_00: started\njiminny-worker-processing-2:jiminny-worker-processing-2_00: started\njiminny-worker-processing-3:jiminny-worker-processing-3_00: started\njiminny-worker-processing-4:jiminny-worker-processing-4_00: started\njiminny-worker-processing-5:jiminny-worker-processing-5_00: started\njiminny-worker-processing-delayed:jiminny-worker-processing-delayed_00: started\nworker:worker_00: started\nworker-analytics:worker-analytics_00: started\nworker-audio:worker-audio_00: started\nworker-calendar:worker-calendar_00: started\nworker-conferences:worker-conferences_00: started\nworker-crm-sync:worker-crm-sync_00: started\nworker-crm-update:worker-crm-update_00: started\nworker-download:worker-download_00: started\nworker-emails:worker-emails_00: started\nworker-es-update:worker-es-update_00: started\nworker-nudges:worker-nudges_00: started\n\nWhat's next:\n Try Docker Debug for seamless, persistent debugging tools in any container or image → docker debug docker_lamp_1\n Learn more at https://docs.docker.com/go/debug-cli/\ndocker exec -it docker_lamp_1 php -v\nPHP 8.3.30 (cli) (built: Mar 16 2026 22:32:32) (NTS)\nCopyright (c) The PHP Group\nZend Engine v4.3.30, Copyright (c) Zend Technologies\n with Zend OPcache v8.3.30, Copyright (c), by Zend Technologies\n\nWhat's next:\n Try Docker Debug for seamless, persistent debugging tools in any container or image → docker debug docker_lamp_1\n Learn more at https://docs.docker.com/go/debug-cli/\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20613-allow-owner-role-on-team-setup) $ csfix\ndocker exec -it docker_lamp_1 ./vendor/bin/php-cs-fixer fix --config=.php-cs-fixer.dist.php -v --using-cache=no --diff \nPHP CS Fixer 3.87.1 Alexander by Fabien Potencier, Dariusz Ruminski and contributors.\nPHP runtime: 8.3.30\nRunning analysis on 7 cores with 10 files per process.\nParallel runner is an experimental feature and may be unstable, use it at your own risk. Feedback highly appreciated!\nLoaded config default from \".php-cs-fixer.dist.php\".\n 5682/5682 [▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓] 100%\n\n\nFixed 0 of 5682 files in 49.910 seconds, 60.00 MB memory used\n\nWhat's next:\n Try Docker Debug for seamless, persistent debugging tools in any container or image → docker debug docker_lamp_1\n Learn more at https://docs.docker.com/go/debug-cli/\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20613-allow-owner-role-on-team-setup) $ git status\nOn branch JY-20613-allow-owner-role-on-team-setup\nYour branch is ahead of 'origin/JY-20613-allow-owner-role-on-team-setup' by 1 commit.\n (use \"git push\" to publish your local commits)\n\nChanges not staged for commit:\n (use \"git add <file>...\" to update what will be committed)\n (use \"git restore <file>...\" to discard changes in working directory)\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tmodified: .env.local\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tmodified: config/logging.php\n\nUntracked files:\n (use \"git add <file>...\" to include in what will be committed)\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\t.env.nikilocal\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\t.env.other\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tWEBHOOK_FILTERING_IMPLEMENTATION.md\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tapp/Console/Commands/Crm/Hubspot/SimulateWebhooksCommand.php\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tapp/Console/Commands/Reports/CreateMockAskJiminnyReportResultCommand.php\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tids.txt\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tpublic/favicon.ico\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\traw_sql_query.sql\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\ttests/Unit/Policies/CanAccessAiReportsTest.php\n\nno changes added to commit (use \"git add\" and/or \"git commit -a\")\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20613-allow-owner-role-on-team-setup) $ git pull\nremote: Enumerating objects: 248, done.\nremote: Counting objects: 100% (128/128), done.\nremote: Compressing objects: 100% (23/23), done.\nremote: Total 59 (delta 43), reused 44 (delta 33), pack-reused 0 (from 0)\nUnpacking objects: 100% (59/59), 10.48 KiB | 228.00 KiB/s, done.\nFrom github.com:jiminny/app\n b7df560451..190239dfd4 JY-20613-allow-owner-role-on-team-setup -> origin/JY-20613-allow-owner-role-on-team-setup\n e0351be069..d94a285ae7 JY-20808-low-priority-indexing-queue -> origin/JY-20808-low-priority-indexing-queue\n * [new branch] JY-20920-fix-participant-matcher -> origin/JY-20920-fix-participant-matcher\n cb4ebf0c36..90bca4e4b2 master -> origin/master\nMerge made by the 'ort' strategy.\n app/Component/ES/ChunkSize.php | 54 +++++++++++++++++++++++++++\n app/Component/ES/Processor/DTOs/SelectionList.php | 4 +-\n app/Component/ES/Processor/TargetEntitiesSelector.php | 19 ++++++----\n app/Http/Middleware/McpTierMiddleware.php | 27 +++-----------\n app/Mcp/Servers/JiminnyServer.php | 2 +\n app/Mcp/Tools/GetMeTool.php | 157 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++\n app/Models/Feature/FeatureEnum.php | 1 +\n database/migrations/2026_05_13_124153_create_mcp_feature_flag.php | 25 +++++++++++++\n front-end/src/components/Settings/Kiosk/modals/EditTeamModal/EditTeamModal.vue | 52 ++++++++++++++++++--------\n front-end/src/components/Settings/Kiosk/modals/EditTeamModal/__tests__/EditTeamModal.spec.js | 14 +++++++\n tests/Feature/Mcp/GetMeToolFeatureTest.php | 140 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++\n tests/Feature/Mcp/ListCallsToolFeatureTest.php | 2 +-\n tests/Feature/Mcp/McpTestHelpersTrait.php | 19 +++++++++-\n tests/Unit/Component/ES/ChunkSizeTest.php | 50 +++++++++++++++++++++++++\n tests/Unit/Component/ES/Processor/DTOs/SelectionListTest.php | 27 ++++++++++----\n tests/Unit/Component/ES/Processor/TargetEntitiesSelectorTest.php | 39 +++++++++++---------\n 16 files changed, 557 insertions(+), 75 deletions(-)\n create mode 100644 app/Component/ES/ChunkSize.php\n create mode 100644 app/Mcp/Tools/GetMeTool.php\n create mode 100644 database/migrations/2026_05_13_124153_create_mcp_feature_flag.php\n create mode 100644 tests/Feature/Mcp/GetMeToolFeatureTest.php\n create mode 100644 tests/Unit/Component/ES/ChunkSizeTest.php\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20613-allow-owner-role-on-team-setup) $ git push\nEnumerating objects: 40, done.\nCounting objects: 100% (34/34), done.\nDelta compression using up to 8 threads\nCompressing objects: 100% (18/18), done.\nWriting objects: 100% (18/18), 1.58 KiB | 1.58 MiB/s, done.\nTotal 18 (delta 15), reused 0 (delta 0), pack-reused 0\nremote: Resolving deltas: 100% (15/15), completed with 13 local objects.\nTo github.com:jiminny/app.git\n 190239dfd4..ec1b261264 JY-20613-allow-owner-role-on-team-setup -> JY-20613-allow-owner-role-on-team-setup\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20613-allow-owner-role-on-team-setup) $ gbr\n* JY-20613-allow-owner-role-on-team-setup\n pipedrive-sdk-poc\n master\n JY-20903-update_activity-stage-on-opportunity-change\n JY-20904-fix-update-es-on-activity-command\n JY-20891-improve-sms-text-relays\n JY-20725-handle-HS-search-rate-limit\n JY-20818-move-AJ-reports-to-separated-datadog-metric\n JY-20773-fix-automated-reports-user-pilot-tracking\n JY-20157-AJ-report-not-send-notification\n JY-20508-notify-before-AJ-report-expiration\n JY-20372-ai-reports-promotion-pages\n JY-20352-sync-opportunities-without-a-local-owner-user-id-is-null\n JY-20738-debug-AJ-tracking-UP\n a\n JY-18909-automated-reports-ask-jiminny\n JY-20692-fix-integration-app-token-auth-response-change\n JY-20553-debug-crm-sync-delays\n JY-20698-fix-SF-activity-types-on-new-playbook\n JY-20543-AJ-report-tracking\n JY-20384-handle-auto-sync-with-no-access-to-event-type\n JY-20458-ask-jiminny-user-definitions\n JY-19666-fix-import-contacts-account-association\n JY-19666-HS-import-contacts-and-accounts-batch-job\n JY-20458-Ask-Jiminny-Reports\n JY-20200-batch-update-CRM-objects-Salesforce\n JY-19666-HS-webhooks-add-contact-and-company\n JY-20348-trigger-setup-DI-layout-on-team-creation\n JY-20326-refactor-info-message-in-command\n JY-20317-fix-auto-log-delay-issue-on-all-channels-disabled\n JY-20312-remove-on-update-change-last-synced-at-crm-configurations\n JY-20306-SF-skip-auto-sync-for-task-based-playbook\n JY-20192-remove-deleted-team-from-saved-search-filters\n JY-20197-import-opportunity-batch-job\n JY-20293-enable-status-field-for-pipedrive-deals\n JY-20191-remove-commands-interactive-prompts\n JY-20118-change-default-sync-strategy\n JY-20183-add-cache-on-auto-log-delay\n JY-20197-add-import-opportunity-batch-job\n 20118-hs-opportunity-make-webhook-strategy-default\n JY-20118-make-default-hs-opportunity-sync-strategy-webhook-based\n JY-20196-handle-opportunity-without-note\n JY-20118-improve-opportunity-import\n JY-20189-handle-activity-search-on-deleted-groups\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20613-allow-owner-role-on-team-setup) $ co JY-20725-handle-HS-search-rate-limit\nM\u0000\u0000\u0000\u0000\u0000\u0000\t.env.local\nM\u0000\u0000\u0000\u0000\u0000\u0000\tconfig/logging.php\nSwitched to branch 'JY-20725-handle-HS-search-rate-limit'\nYour branch is behind 'origin/JY-20725-handle-HS-search-rate-limit' by 439 commits, and can be fast-forwarded.\n (use \"git pull\" to update your local branch)\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20725-handle-HS-search-rate-limit) $ git pull\nUpdating 0f3e438941..bc6a3fce6b\nFast-forward\n .gitignore | 3 +-\n .windsurfrules | 168 ++---\n CLAUDE.md | 1 +\n app/Component/ActivityAnalytics/Service/CalculateTalkTimeOffsetsFromTranscription.php | 24 +-\n app/Component/AiActivityType/Services/AiActivityTypeEligibilityChecker.php | 28 +-\n app/Component/AiAutomation/Actions/PrepareUpdateDtoAction.php | 32 +-\n app/Component/AiAutomation/Services/CrmFillingEligibilityChecker.php | 47 ++\n app/Component/AiAutomation/TestCrmAiPromptService.php | 14 +\n app/Component/AiCallScoring/Services/AiCallScoringEligibilityChecker.php | 9 +\n app/Component/ES/ElasticSearchDocumentPartialUpdater.php | 13 +-\n app/Component/ES/ElasticSearchWorkerManager.php | 86 ---\n app/Component/ES/Processor/Actions/LoadDocumentsAction.php | 80 +--\n app/Component/ES/Processor/EntityQueryBuilder.php | 12 +-\n app/Component/ES/Processor/TargetEntitiesSelector.php | 2 +-\n app/Component/ES/Processor/Traits/SkipActivityTrait.php | 25 -\n app/Component/ES/Repositories/EsResetActivityRepository.php | 11 +-\n app/Component/ES/Worker/ActivityWorker.php | 73 --\n app/Component/ES/Worker/EntityWorker.php | 44 --\n app/Component/ES/Worker/WorkerAmount.php | 60 --\n app/Component/ES/Worker/WorkerInterface.php | 15 -\n app/Component/ElasticSearch/Contract/Searchable.php | 4 +\n app/Component/Encoding/Job/AnalyzeTrackChannelsJob.php | 20 +-\n app/Component/Encoding/Service/GenerateSpeechFromSilenceService.php | 85 ++-\n app/Component/FFMpeg/Services/GetSpeechIntervalsService.php | 18 +-\n app/Component/LanguageDetection/Services/FindSpeechTimeService.php | 22 +-\n app/Component/Nudge/Job/ProcessOrganisationImmediateNudgesJob.php | 218 +++++-\n app/Component/ParagraphBreaker/Services/TranscriptionParagraphsService.php | 4 +\n app/Component/ParticipantSpeech/Services/ParticipantSpeechesCreator.php | 33 +\n app/Component/ParticipantSpeech/Services/ParticipantSpeechesDeleter.php | 15 +\n app/Component/ParticipantSpeech/Services/ParticipantSpeechesProvider.php | 51 +-\n app/Component/ParticipantSpeech/Services/ParticipantSpeechesUploader.php | 36 +\n app/Component/ProphetAi/Exceptions/InsufficientTranscriptException.php | 11 +\n app/Component/Transcription/DTO/Http/Transcription/AssemblyAI/AssemblyAI/NoAssemblyIdException.php | 11 +\n app/Component/Transcription/DTO/Http/Transcription/AssemblyAI/AssemblyAI/SuccessfulResponse.php | 6 +\n app/Component/Transcription/DTO/Http/Transcription/TranscriptionIsNotCorrectFormatException.php | 11 +\n app/Component/Transcription/Diarization/Services/GetNormalizedParticipantSpeechesService.php | 23 +-\n app/Component/Transcription/Diarization/Source/MeetingBotSource.php | 16 +-\n app/Component/Transcription/TranscriptionProcessor/TranscriptionProcessor.php | 3 +\n app/Console/Commands/Activities/ActivityHardDeleteCommand.php | 4 +-\n app/Console/Commands/Activities/Copy.php | 2 +\n app/Console/Commands/Activities/SetupIntegration/TwilioSetS3RecordingCredentialsCommand.php | 119 ++++\n app/Console/Commands/Activities/UpdateActivityElasticSearchDocumentCommand.php | 10 +-\n app/Console/Commands/Crm/BackfillOpportunityUserFromAccountCommand.php | 126 ++++\n app/Console/Commands/Elasticsearch/AsyncUpdateEsActivities.php | 19 -\n app/Console/Commands/Elasticsearch/AsyncUpdateEsEntities.php | 50 +-\n app/Console/Commands/Elasticsearch/ResetAsyncElasticSearchCommand.php | 30 +-\n app/Console/Commands/GeckoExport/GeckoExportParticipantSpeechesCommand.php | 14 +-\n app/Console/Commands/IssueMcpTokenCommand.php | 84 +++\n app/Console/Commands/JiminnyDebugCommand.php | 7 +-\n app/Console/Commands/Tracks/CleanupActivityTracksCommand.php | 2 +-\n app/Console/Kernel.php | 6 +-\n app/Contracts/Services/Calendar/CalendarTrait.php | 80 ++-\n app/Events/AutomatedReports/AutomatedReportGenerated.php | 3 +\n app/Http/Controllers/API/AiCallScoring/AiScorecardController.php | 7 +-\n app/Http/Controllers/API/TeamAiAutomationController.php | 8 +\n app/Http/Controllers/CustomerApi/CustomerApiController.php | 4 +-\n app/Http/Controllers/Kiosk/ActivityController.php | 58 +-\n app/Http/Controllers/Settings/PlaybookController.php | 15 +-\n app/Http/Kernel.php | 23 +\n app/Http/Middleware/McpAuditMiddleware.php | 156 ++++\n app/Http/Middleware/McpTierMiddleware.php | 54 ++\n app/Http/Requests/API/V2/ZapierUploadActivityRequest.php | 28 +-\n app/Jobs/Activity/Import/ImportTwilioVideoSpeechesJob.php | 25 +-\n app/Jobs/Activity/Import/IsActivityReadyForProcessingJob.php | 10 +-\n app/Jobs/Calendar/SetupCalendarSync.php | 21 +-\n app/Jobs/ImportRemoteTrackJob.php | 96 ++-\n app/Jobs/Mailbox/EmailTextRelay.php | 15 +-\n app/Mcp/Contracts/McpCallRepositoryInterface.php | 30 +\n app/Mcp/DTO/ListCallsFilters.php | 29 +\n app/Mcp/Errors/McpError.php | 123 ++++\n app/Mcp/Repositories/McpActivityHydrator.php | 145 ++++\n app/Mcp/Repositories/McpCallRepository.php | 84 +++\n app/Mcp/Repositories/McpElasticCallRepository.php | 171 +++++\n app/Mcp/Servers/JiminnyServer.php | 38 +\n app/Mcp/Tools/ListCallsTool.php | 205 ++++++\n app/Models/Activity.php | 10 +-\n app/Models/Activity/Transcription.php | 17 +-\n app/Models/ElasticSearch/OpportunityElasticSearchTrait.php | 5 +\n app/Models/Participant.php | 1 +\n app/Providers/AppServiceProvider.php | 22 +\n app/Repositories/Crm/ContactRepository.php | 69 +-\n app/Repositories/ParticipantSpeechRepository.php | 13 +-\n app/Services/Activity/ParticipantsService.php | 19 +-\n app/Services/Activity/Twilio/S3RecordingCredentialsService.php | 82 +++\n app/Services/ActivityService.php | 21 +-\n app/Services/Calendar/CalendarActivityService.php | 46 ++\n app/Services/Calendar/Command/ImportParticipants.php | 1 +\n app/Services/Calendar/Command/MapActivityData.php | 106 +--\n app/Services/Calendar/GoogleCalendarService.php | 12 +-\n app/Services/Crm/Close/Processor/OpportunityProcessor.php | 2 +-\n app/Services/Crm/Close/Service.php | 22 +-\n app/Services/Crm/Copper/Service.php | 12 +-\n app/Services/Crm/Hubspot/Service.php | 154 +++-\n app/Services/Crm/Hubspot/ServiceTraits/OpportunitySyncTrait.php | 88 ++-\n app/Services/Crm/IntegrationApp/ServiceTraits/SyncCrmEntitiesTrait.php | 22 +-\n app/Services/Crm/Pipedrive/Service.php | 17 +-\n app/Services/Crm/Salesforce/Service.php | 42 +-\n app/Services/Mail/Office/EmailApiClient.php | 129 +---\n app/Services/RecallAI/Commands/ScheduleBotCommand.php | 39 +-\n app/Services/RecallAI/RecallAIService.php | 22 +-\n composer.json | 3 +-\n composer.lock | 87 ++-\n config/mcp.php | 23 +\n database/migrations/2026_04_30_120000_create_mcp_audit_log_table.php | 36 +\n docs/mcp/explorer/explorer.html | 697 ++++++++++++++++++\n docs/mcp/explorer/explorer.template.html | 697 ++++++++++++++++++\n docs/mcp/explorer/generate.js | 215 ++++++\n docs/mcp/explorer/tool-explorer-meta.json | 11 +\n docs/mcp/tools-list.json | 2536 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++\n docs/mcp/tools.md | 621 ++++++++++++++++\n front-end/package.json | 4 +-\n front-end/src/components/Settings/OrgSettings/AiAutomation/CrmFilling/TemplateFieldForm.vue | 28 +-\n front-end/src/components/Settings/OrgSettings/Playbooks/AddEditPlaybook.vue | 10 +\n front-end/src/components/playback/comments/ActivityComment.less | 10 +-\n front-end/src/components/shared/PromptTester/PromptTester.vue | 12 +-\n front-end/src/components/shared/__tests__/PromptTester.spec.js | 35 +\n front-end/src/components/shared/modals/EntityPickerModal/__tests__/useEntitiesCache.spec.ts | 37 +\n front-end/src/components/shared/modals/EntityPickerModal/useEntitiesCache.ts | 9 +\n front-end/yarn.lock | 16 +-\n phpstan-baseline.neon | 50 --\n routes/api.php | 11 +\n sonar-project.properties | 91 ++-\n tests/Feature/Component/Nudge/ProcessOrganisationImmediateNudgesJobTest.php | 534 ++++++++++++++\n tests/Feature/Jobs/ImportRemoteTrackJobTest.php | 283 +++++++-\n tests/Feature/Mcp/IssueMcpTokenCommandTest.php | 53 ++\n tests/Feature/Mcp/ListCallsToolElasticFeatureTest.php | 155 ++++\n tests/Feature/Mcp/ListCallsToolFeatureTest.php | 352 ++++++++++\n tests/Feature/Mcp/McpTestHelpersTrait.php | 77 ++\n tests/Feature/Services/Team/TeamDeleteHandlers/Retention/RetentionRepositoryHandlerTest.php | 1 +\n tests/Stubs/SentryStub.php | 18 +\n tests/Unit/Component/ActivityAnalytics/Service/CalculateTalkTimeOffsetFromTranscriptionTest.php | 28 +-\n tests/Unit/Component/AiActivityType/Services/AiActivityTypeEligibilityCheckerTest.php | 103 ++-\n tests/Unit/Component/AiAutomation/Actions/PrepareUpdateDtoActionTest.php | 91 +++\n tests/Unit/Component/AiAutomation/Services/CrmFillingEligibilityCheckerTest.php | 124 ++++\n tests/Unit/Component/AiAutomation/TestCrmAiPromptServiceTest.php | 67 +-\n tests/Unit/Component/AiCallScoring/Services/AiCallScoringEligibilityCheckerTest.php | 55 ++\n tests/Unit/Component/ES/ElasticSearchWorkerManagerTest.php | 135 ----\n tests/Unit/Component/ES/Processor/Actions/LoadDocumentsActionTest.php | 220 ++++++\n tests/Unit/Component/ES/Processor/EntityQueryBuilderTest.php | 21 +-\n tests/Unit/Component/ES/Processor/Traits/SkipActivityTraitTest.php | 51 --\n tests/Unit/Component/ES/Worker/ActivityWorkerTest.php | 174 -----\n tests/Unit/Component/ES/Worker/EntityWorkerTest.php | 97 ---\n tests/Unit/Component/ES/Worker/WorkerAmountTest.php | 116 ---\n tests/Unit/Component/Encoding/Job/AnalyzeTrackChannelsJobTest.php | 52 +-\n tests/Unit/Component/Encoding/Service/GenerateSpeechFromSilenceServiceTest.php | 171 ++---\n tests/Unit/Component/FFMpeg/Services/GetSpeechIntervalsTest.php | 36 +-\n tests/Unit/Component/LanguageDetection/Services/FindSpeechTimeServiceTest.php | 20 +-\n tests/Unit/Component/MobileSettings/MobileSettingsControllerTest.php | 5 +-\n tests/Unit/Component/ParticipantSpeech/Services/ParticipantSpeechesCreatorTest.php | 75 ++\n tests/Unit/Component/ParticipantSpeech/Services/ParticipantSpeechesDeleterTest.php | 63 ++\n tests/Unit/Component/ParticipantSpeech/Services/ParticipantSpeechesProviderTest.php | 134 ++++\n tests/Unit/Component/ParticipantSpeech/Services/ParticipantSpeechesUploaderTest.php | 57 ++\n tests/Unit/Component/Transcription/Diarization/Services/GetNormalizedParticipantSpeechesServiceTest.php | 51 +-\n tests/Unit/Component/Transcription/Diarization/Source/MeetingBotSourceTest.php | 29 +-\n tests/Unit/Contracts/Services/Calendar/CalendarTraitTest.php | 58 +-\n tests/Unit/Http/Controllers/Kiosk/ActivityControllerTest.php | 159 +++++\n tests/Unit/Jobs/Activity/Import/ImportTwilioVideoSpeechesJobTest.php | 22 +-\n tests/Unit/Jobs/Activity/Import/IsActivityReadyForProcessingJobTest.php | 26 +-\n tests/Unit/Jobs/Calendar/SetupCalendarSyncTest.php | 25 -\n tests/Unit/Services/Activity/ParticipantsServiceTest.php | 12 +-\n tests/Unit/Services/Activity/Twilio/S3RecordingCredentialsServiceTest.php | 180 +++++\n tests/Unit/Services/ActivityServiceTest.php | 132 ++++\n tests/Unit/Services/Calendar/CalendarActivityServiceTest.php | 150 +++-\n tests/Unit/Services/Calendar/Command/ImportParticipantsTest.php | 6 +-\n tests/Unit/Services/Calendar/Command/MapActivityDataTest.php | 78 +-\n tests/Unit/Services/Calendar/GoogleCalendarServiceTest.php | 116 +++\n tests/Unit/Services/Crm/Close/ServiceTest.php | 165 +++++\n tests/Unit/Services/Crm/Hubspot/ServiceTest.php | 272 ++++++-\n tests/Unit/Services/Crm/Hubspot/ServiceTraits/OpportunitySyncTest.php | 25 +-\n tests/Unit/Services/Crm/Hubspot/ServiceTraits/OpportunitySyncTraitMatchActivitiesTest.php | 3 +-\n tests/Unit/Services/Crm/IntegrationApp/ServiceTraits/SyncCrmEntitiesTraitOpportunitiesTest.php | 40 ++\n tests/Unit/Services/Crm/Pipedrive/ImportOpportunityMatchActivitiesTest.php | 2 +\n tests/Unit/Services/Crm/Salesforce/ServiceTest.php | 139 ++++\n tests/Unit/Services/Mail/Office/EmailApiClientTest.php | 195 ++---\n tests/Unit/Services/RecallAI/RecallAIServiceTest.php | 24 +-\n 175 files changed, 12562 insertions(+), 2162 deletions(-)\n create mode 120000 CLAUDE.md\n create mode 100644 app/Component/AiAutomation/Services/CrmFillingEligibilityChecker.php\n delete mode 100644 app/Component/ES/ElasticSearchWorkerManager.php\n delete mode 100644 app/Component/ES/Processor/Traits/SkipActivityTrait.php\n delete mode 100644 app/Component/ES/Worker/ActivityWorker.php\n delete mode 100644 app/Component/ES/Worker/EntityWorker.php\n delete mode 100644 app/Component/ES/Worker/WorkerAmount.php\n delete mode 100644 app/Component/ES/Worker/WorkerInterface.php\n create mode 100644 app/Component/ProphetAi/Exceptions/InsufficientTranscriptException.php\n create mode 100644 app/Component/Transcription/DTO/Http/Transcription/AssemblyAI/AssemblyAI/NoAssemblyIdException.php\n create mode 100644 app/Component/Transcription/DTO/Http/Transcription/TranscriptionIsNotCorrectFormatException.php\n create mode 100644 app/Console/Commands/Activities/SetupIntegration/TwilioSetS3RecordingCredentialsCommand.php\n create mode 100644 app/Console/Commands/Crm/BackfillOpportunityUserFromAccountCommand.php\n delete mode 100644 app/Console/Commands/Elasticsearch/AsyncUpdateEsActivities.php\n create mode 100644 app/Console/Commands/IssueMcpTokenCommand.php\n create mode 100644 app/Http/Middleware/McpAuditMiddleware.php\n create mode 100644 app/Http/Middleware/McpTierMiddleware.php\n create mode 100644 app/Mcp/Contracts/McpCallRepositoryInterface.php\n create mode 100644 app/Mcp/DTO/ListCallsFilters.php\n create mode 100644 app/Mcp/Errors/McpError.php\n create mode 100644 app/Mcp/Repositories/McpActivityHydrator.php\n create mode 100644 app/Mcp/Repositories/McpCallRepository.php\n create mode 100644 app/Mcp/Repositories/McpElasticCallRepository.php\n create mode 100644 app/Mcp/Servers/JiminnyServer.php\n create mode 100644 app/Mcp/Tools/ListCallsTool.php\n create mode 100644 app/Services/Activity/Twilio/S3RecordingCredentialsService.php\n create mode 100644 config/mcp.php\n create mode 100644 database/migrations/2026_04_30_120000_create_mcp_audit_log_table.php\n create mode 100644 docs/mcp/explorer/explorer.html\n create mode 100644 docs/mcp/explorer/explorer.template.html\n create mode 100644 docs/mcp/explorer/generate.js\n create mode 100644 docs/mcp/explorer/tool-explorer-meta.json\n create mode 100644 docs/mcp/tools-list.json\n create mode 100644 docs/mcp/tools.md\n create mode 100644 front-end/src/components/shared/modals/EntityPickerModal/__tests__/useEntitiesCache.spec.ts\n create mode 100644 tests/Feature/Component/Nudge/ProcessOrganisationImmediateNudgesJobTest.php\n create mode 100644 tests/Feature/Mcp/IssueMcpTokenCommandTest.php\n create mode 100644 tests/Feature/Mcp/ListCallsToolElasticFeatureTest.php\n create mode 100644 tests/Feature/Mcp/ListCallsToolFeatureTest.php\n create mode 100644 tests/Feature/Mcp/McpTestHelpersTrait.php\n create mode 100644 tests/Stubs/SentryStub.php\n create mode 100644 tests/Unit/Component/AiAutomation/Services/CrmFillingEligibilityCheckerTest.php\n delete mode 100644 tests/Unit/Component/ES/ElasticSearchWorkerManagerTest.php\n create mode 100644 tests/Unit/Component/ES/Processor/Actions/LoadDocumentsActionTest.php\n delete mode 100644 tests/Unit/Component/ES/Processor/Traits/SkipActivityTraitTest.php\n delete mode 100644 tests/Unit/Component/ES/Worker/ActivityWorkerTest.php\n delete mode 100644 tests/Unit/Component/ES/Worker/EntityWorkerTest.php\n delete mode 100644 tests/Unit/Component/ES/Worker/WorkerAmountTest.php\n create mode 100644 tests/Unit/Component/ParticipantSpeech/Services/ParticipantSpeechesCreatorTest.php\n create mode 100644 tests/Unit/Http/Controllers/Kiosk/ActivityControllerTest.php\n create mode 100644 tests/Unit/Services/Activity/Twilio/S3RecordingCredentialsServiceTest.php\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20725-handle-HS-search-rate-limit) $ git status\nOn branch master\nYour branch is behind 'origin/master' by 114 commits, and can be fast-forwarded.\n (use \"git pull\" to update your local branch)\n\nChanges not staged for commit:\n (use \"git add <file>...\" to update what will be committed)\n (use \"git restore <file>...\" to discard changes in working directory)\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tmodified: .env.local\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tmodified: app/Component/SCIM/Constants.php\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tmodified: app/Component/SCIM/ScimProvisioning.php\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tmodified: app/Component/Twilio/Conference/ConferenceManager/SoftPhoneManager.php\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tmodified: app/Console/Commands/JiminnyDebugCommand.php\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tmodified: app/DTO/SCIM/AAD/Request/CoreUserRequest.php\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tmodified: app/DTO/SCIM/AAD/Response/CoreUser.php\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tmodified: app/Services/Telephony/TextMessagingService.php\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tmodified: config/logging.php\n\nUntracked files:\n (use \"git add <file>...\" to include in what will be committed)\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\t.env.nikilocal\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\t.env.other\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tWEBHOOK_FILTERING_IMPLEMENTATION.md\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tapp/Component/SCIM/Mutators/Attributes/User/RoleAttr.php\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tapp/Console/Commands/Crm/Hubspot/SimulateWebhooksCommand.php\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tapp/Console/Commands/Reports/CreateMockAskJiminnyReportResultCommand.php\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tapp/Rules/ListenerRoleCannotHaveAdminOrManagerPermissionRule.php\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tids.txt\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tpublic/favicon.ico\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\traw_sql_query.sql\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\ttests/Unit/Component/SCIM/Mutators/Attributes/User/RoleAttrTest.php\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\ttests/Unit/Policies/CanAccessAiReportsTest.php\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\ttests/Unit/Rules/ListenerRoleCannotHaveAdminOrManagerPermissionRuleTest.php\n\nno changes added to commit (use \"git add\" and/or \"git commit -a\")\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (master) $ git pull\nremote: Enumerating objects: 306, done.\nremote: Counting objects: 100% (299/299), done.\nremote: Compressing objects: 100% (183/183), done.\nremote: Total 306 (delta 213), reused 171 (delta 116), pack-reused 7 (from 1)\nReceiving objects: 100% (306/306), 80.12 KiB | 1000.00 KiB/s, done.\nResolving deltas: 100% (213/213), completed with 53 local objects.\nFrom github.com:jiminny/app\n 90bca4e4b2..5604af40cf master -> origin/master\n 4e7078fd8b..0b8343d179 JY-18091-upgrade-to-php-8-5 -> origin/JY-18091-upgrade-to-php-8-5\n 098eeaa087..d5a447e492 JY-20613-allow-owner-role-on-team-setup -> origin/JY-20613-allow-owner-role-on-team-setup\n c3a76ace91..af65249d0f JY-20749-user-can-view-recorded-meetings -> origin/JY-20749-user-can-view-recorded-meetings\n d94a285ae7..7ce96cb5fe JY-20808-low-priority-indexing-queue -> origin/JY-20808-low-priority-indexing-queue\n * [new branch] JY-20842-remove-partial-updater -> origin/JY-20842-remove-partial-updater\n * [new branch] JY-20920-fix-participant-flip -> origin/JY-20920-fix-participant-flip\n * [new branch] secfix/npm-20260519 -> origin/secfix/npm-20260519\nUpdating cb4ebf0c36..5604af40cf\nFast-forward\n app/Component/ES/ChunkSize.php | 54 +++++++++++++++++++\n app/Component/ES/Processor/DTOs/SelectionList.php | 4 +-\n app/Component/ES/Processor/TargetEntitiesSelector.php | 19 ++++---\n app/Component/MeetingBot/Service/ParticipantMatcher.php | 46 ++++++++++++----\n app/Exceptions/RateLimitException.php | 19 ++++++-\n app/Http/Middleware/McpTierMiddleware.php | 27 ++--------\n app/Jobs/Crm/MatchActivityCrmData.php | 47 ++++++++++++----\n app/Jobs/Middleware/HandleHubspotRateLimit.php | 42 +++++++++++++++\n app/Mcp/Servers/JiminnyServer.php | 2 +\n app/Mcp/Tools/GetMeTool.php | 157 +++++++++++++++++++++++++++++++++++++++++++++++++++++\n app/Models/Feature/FeatureEnum.php | 1 +\n app/Services/Activity/HubSpot/ProviderResolver.php | 4 +-\n app/Services/Activity/HubSpot/ProviderResolverInterface.php | 2 +-\n app/Services/Activity/HubSpot/Providers/Provider.php | 2 +-\n app/Services/Activity/HubSpot/Providers/ProviderKixie.php | 2 +-\n app/Services/Activity/HubSpot/Providers/ProviderOrum.php | 2 +-\n app/Services/Activity/HubSpot/Providers/ProviderTwilio.php | 2 +-\n app/Services/Activity/HubSpot/Providers/ProviderTwilioFlex.php | 5 +-\n app/Services/Activity/HubSpot/Service.php | 97 +++++++++++++++++++++++++++------\n app/Services/Crm/Hubspot/Client.php | 132 +++++++++++++++++++++++++++++++++++++++++++++\n app/Services/Crm/Hubspot/HubspotClientInterface.php | 15 ++++++\n app/Services/Crm/Hubspot/Pagination/HubspotPaginationService.php | 21 ++++----\n app/Services/Crm/Hubspot/Pagination/PaginationState.php | 2 +-\n database/migrations/2026_05_13_124153_create_mcp_feature_flag.php | 25 +++++++++\n tests/Feature/Mcp/GetMeToolFeatureTest.php | 140 +++++++++++++++++++++++++++++++++++++++++++++++\n tests/Feature/Mcp/ListCallsToolFeatureTest.php | 2 +-\n tests/Feature/Mcp/McpTestHelpersTrait.php | 19 ++++++-\n tests/Unit/Component/ES/ChunkSizeTest.php | 50 +++++++++++++++++\n tests/Unit/Component/ES/Processor/DTOs/SelectionListTest.php | 27 +++++++---\n tests/Unit/Component/ES/Processor/TargetEntitiesSelectorTest.php | 39 ++++++++------\n tests/Unit/Component/MeetingBot/Service/ParticipantMatcherTest.php | 68 ++++++++++++++++++++++-\n tests/Unit/Exceptions/RateLimitExceptionTest.php | 56 +++++++++++++++++++\n tests/Unit/Jobs/Crm/MatchActivityCrmDataTest.php | 8 +--\n tests/Unit/Jobs/Middleware/HandleHubspotRateLimitTest.php | 151 +++++++++++++++++++++++++++++++++++++++++++++++++++\n tests/Unit/Services/Activity/HubSpot/ServiceTest.php | 109 +++++++++++++++++++++++++++++++++++++\n tests/Unit/Services/Crm/Hubspot/ClientTest.php | 250 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++\n tests/Unit/Services/Crm/Hubspot/Pagination/HubspotPaginationServiceTest.php | 283 +++++++++++++++++++++---------------------------------------------------------------------------\n 37 files changed, 1587 insertions(+), 344 deletions(-)\n create mode 100644 app/Component/ES/ChunkSize.php\n create mode 100644 app/Jobs/Middleware/HandleHubspotRateLimit.php\n create mode 100644 app/Mcp/Tools/GetMeTool.php\n create mode 100644 database/migrations/2026_05_13_124153_create_mcp_feature_flag.php\n create mode 100644 tests/Feature/Mcp/GetMeToolFeatureTest.php\n create mode 100644 tests/Unit/Component/ES/ChunkSizeTest.php\n create mode 100644 tests/Unit/Exceptions/RateLimitExceptionTest.php\n create mode 100644 tests/Unit/Jobs/Middleware/HandleHubspotRateLimitTest.php\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (master) $ git pull\nAlready up to date.\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (master) $ co -b JY-20676-delete-report-related-objects\nSwitched to a new branch 'JY-20676-delete-report-related-objects'\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20676-delete-report-related-objects) $ csfix\ndocker exec -it docker_lamp_1 ./vendor/bin/php-cs-fixer fix --config=.php-cs-fixer.dist.php -v --using-cache=no --diff \nPHP CS Fixer 3.87.1 Alexander by Fabien Potencier, Dariusz Ruminski and contributors.\nPHP runtime: 8.3.30\nRunning analysis on 7 cores with 10 files per process.\nParallel runner is an experimental feature and may be unstable, use it at your own risk. Feedback highly appreciated!\nLoaded config default from \".php-cs-fixer.dist.php\".\n 5690/5690 [▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓] 100%\n\n 1) app/Console/Commands/JiminnyDebugCommand.php (statement_indentation, blank_line_before_statement)\n ---------- begin diff ----------\n--- /home/jiminny/app/Console/Commands/JiminnyDebugCommand.php\n+++ /home/jiminny/app/Console/Commands/JiminnyDebugCommand.php\n@@ -23,6 +23,7 @@\n \n if ($action === 'redis-set') {\n $this->testRedisSet();\n+\n return;\n }\n \n@@ -45,7 +46,7 @@\n $ttl = 60;\n \n try {\n-// $result = Redis::set($testKey, $testValue, 'EX', $ttl, 'NX');\n+ // $result = Redis::set($testKey, $testValue, 'EX', $ttl, 'NX');\n $result = Redis::set($testKey, $testValue, ['nx', 'ex' => $ttl]);\n \n if ($result) {\n\n ----------- end diff -----------\n\n\nFixed 1 of 5690 files in 50.673 seconds, 67.00 MB memory used\n\nWhat's next:\n Try Docker Debug for seamless, persistent debugging tools in any container or image → docker debug docker_lamp_1\n Learn more at https://docs.docker.com/go/debug-cli/\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20676-delete-report-related-objects) $ ;xd\ndocker exec -it docker_lamp_1 bash -c \"mv /usr/local/etc/php/conf.d/xdebug.ini ~/xdebug.ini\"\n\nWhat's next:\n Try Docker Debug for seamless, persistent debugging tools in any container or image → docker debug docker_lamp_1\n Learn more at https://docs.docker.com/go/debug-cli/\ndocker exec -it docker_lamp_1 supervisorctl restart all\njiminny-worker-processing-2:jiminny-worker-processing-2_00: stopped\njiminny-worker-processing-3:jiminny-worker-processing-3_00: stopped\njiminny-worker-processing-4:jiminny-worker-processing-4_00: stopped\njiminny-worker-processing-5:jiminny-worker-processing-5_00: stopped\njiminny-worker-processing-delayed:jiminny-worker-processing-delayed_00: stopped\nworker-analytics:worker-analytics_00: stopped\nworker-crm-update:worker-crm-update_00: stopped\nworker-download:worker-download_00: stopped\nworker-nudges:worker-nudges_00: stopped\nworker-calendar:worker-calendar_00: stopped\nworker-audio:worker-audio_00: stopped\njiminny-worker-processing-1:jiminny-worker-processing-1_00: stopped\nworker:worker_00: stopped\nworker-conferences:worker-conferences_00: stopped\nworker-crm-sync:worker-crm-sync_00: stopped\nworker-emails:worker-emails_00: stopped\nworker-es-update:worker-es-update_00: stopped\nartisan-schedule:artisan-schedule_00: stopped\nartisan-schedule:artisan-schedule_00: started\njiminny-worker-processing-1:jiminny-worker-processing-1_00: started\njiminny-worker-processing-2:jiminny-worker-processing-2_00: started\njiminny-worker-processing-3:jiminny-worker-processing-3_00: started\njiminny-worker-processing-4:jiminny-worker-processing-4_00: started\njiminny-worker-processing-5:jiminny-worker-processing-5_00: started\njiminny-worker-processing-delayed:jiminny-worker-processing-delayed_00: started\nworker:worker_00: started\nworker-analytics:worker-analytics_00: started\nworker-audio:worker-audio_00: started\nworker-calendar:worker-calendar_00: started\nworker-conferences:worker-conferences_00: started\nworker-crm-sync:worker-crm-sync_00: started\nworker-crm-update:worker-crm-update_00: started\nworker-download:worker-download_00: started\nworker-emails:worker-emails_00: started\nworker-es-update:worker-es-update_00: started\nworker-nudges:worker-nudges_00: started\n\nWhat's next:\n Try Docker Debug for seamless, persistent debugging tools in any container or image → docker debug docker_lamp_1\n Learn more at https://docs.docker.com/go/debug-cli/\ndocker exec -it docker_lamp_1 php -v\nPHP 8.3.30 (cli) (built: Mar 16 2026 22:32:32) (NTS)\nCopyright (c) The PHP Group\nZend Engine v4.3.30, Copyright (c) Zend Technologies\n with Zend OPcache v8.3.30, Copyright (c), by Zend Technologies\n\nWhat's next:\n Try Docker Debug for seamless, persistent debugging tools in any container or image → docker debug docker_lamp_1\n Learn more at https://docs.docker.com/go/debug-cli/\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20676-delete-report-related-objects) $ git status\nOn branch JY-20676-delete-report-related-objects\nChanges not staged for commit:\n (use \"git add <file>...\" to update what will be committed)\n (use \"git restore <file>...\" to discard changes in working directory)\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tmodified: .env.local\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tmodified: app/Console/Commands/JiminnyDebugCommand.php\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tmodified: config/logging.php\n\nUntracked files:\n (use \"git add <file>...\" to include in what will be committed)\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\t.env.nikilocal\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\t.env.other\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tWEBHOOK_FILTERING_IMPLEMENTATION.md\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tapp/Console/Commands/Crm/Hubspot/SimulateWebhooksCommand.php\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tapp/Console/Commands/Reports/CreateMockAskJiminnyReportResultCommand.php\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tids.txt\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tpublic/favicon.ico\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\traw_sql_query.sql\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\ttests/Unit/Policies/CanAccessAiReportsTest.php\n\nno changes added to commit (use \"git add\" and/or \"git commit -a\")\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20676-delete-report-related-objects) $ git push -u origin JY-20676-delete-report-related-objects\nEnumerating objects: 45, done.\nCounting objects: 100% (45/45), done.\nDelta compression using up to 8 threads\nCompressing objects: 100% (24/24), done.\nWriting objects: 100% (24/24), 3.62 KiB | 3.62 MiB/s, done.\nTotal 24 (delta 19), reused 0 (delta 0), pack-reused 0\nremote: Resolving deltas: 100% (19/19), completed with 19 local objects.\nremote: \nremote: Create a pull request for 'JY-20676-delete-report-related-objects' on GitHub by visiting:\nremote: https://github.com/jiminny/app/pull/new/JY-20676-delete-report-related-objects\nremote: \nTo github.com:jiminny/app.git\n * [new branch] JY-20676-delete-report-related-objects -> JY-20676-delete-report-related-objects\nbranch 'JY-20676-delete-report-related-objects' set up to track 'origin/JY-20676-delete-report-related-objects'.\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20676-delete-report-related-objects) $ csfix\ndocker exec -it docker_lamp_1 ./vendor/bin/php-cs-fixer fix --config=.php-cs-fixer.dist.php -v --using-cache=no --diff \nPHP CS Fixer 3.87.1 Alexander by Fabien Potencier, Dariusz Ruminski and contributors.\nPHP runtime: 8.3.30\nRunning analysis on 7 cores with 10 files per process.\nParallel runner is an experimental feature and may be unstable, use it at your own risk. Feedback highly appreciated!\nLoaded config default from \".php-cs-fixer.dist.php\".\n 5690/5690 [▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓] 100%\n\n 1) app/Http/Controllers/API/V2/AskJiminnyReportsController.php (blank_line_before_statement)\n ---------- begin diff ----------\n--- /home/jiminny/app/Http/Controllers/API/V2/AskJiminnyReportsController.php\n+++ /home/jiminny/app/Http/Controllers/API/V2/AskJiminnyReportsController.php\n@@ -140,6 +140,7 @@\n if ($enabled && $report->isAskJiminnyReport() && ! $report->canExecute()) {\n $error = 'This report is missing a saved search or prompt. ' .\n 'Edit the report to complete the setup before enabling it.';\n+\n return new JsonResponse(\n ['error' => $error],\n Response::HTTP_UNPROCESSABLE_ENTITY\n\n ----------- end diff -----------\n\n\nFixed 1 of 5690 files in 71.757 seconds, 60.00 MB memory used\n\nWhat's next:\n Try Docker Debug for seamless, persistent debugging tools in any container or image → docker debug docker_lamp_1\n Learn more at https://docs.docker.com/go/debug-cli/\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20676-delete-report-related-objects) $ git pull\nremote: Enumerating objects: 158, done.\nremote: Counting objects: 100% (103/103), done.\nremote: Compressing objects: 100% (37/37), done.\nremote: Total 158 (delta 80), reused 74 (delta 66), pack-reused 55 (from 3)\nReceiving objects: 100% (158/158), 80.59 KiB | 982.00 KiB/s, done.\nResolving deltas: 100% (85/85), completed with 45 local objects.\nFrom github.com:jiminny/app\n 02a33811ee..c6ce5e2440 JY-20676-delete-report-related-objects -> origin/JY-20676-delete-report-related-objects\n 7ce96cb5fe..6c59f04358 JY-20808-low-priority-indexing-queue -> origin/JY-20808-low-priority-indexing-queue\n 3906a9238a..2b5e6ea62b JY-20835-mcp-enable-users-to-get-a-list-of-deals-and-their-details -> origin/JY-20835-mcp-enable-users-to-get-a-list-of-deals-and-their-details\n 5604af40cf..ea3519f0e2 master -> origin/master\n * [new branch] switch-eu-assembly -> origin/switch-eu-assembly\nUpdating 02a33811ee..c6ce5e2440\nFast-forward\n app/Component/ES/ElasticSearchDocumentPartialUpdater.php | 48 ---\n app/Component/ParticipantSpeech/Services/ParticipantAttributionService.php | 4 +-\n app/Component/Settings/AutoScoring/Services/UpdateAutoScoreService.php | 20 +-\n app/Component/Transcription/Service/StorageService.php | 8 +-\n front-end/package.json | 2 +-\n front-end/src/components/DealInsights/Modals/AskAnythingModal.vue | 23 ++\n front-end/src/components/shared/AskAnything/AskAnythingPromptFormItem.vue | 2 +\n front-end/src/components/shared/AskAnything/AskAnythingSettingsDrawer.vue | 23 +-\n front-end/src/components/shared/AskAnything/__mocks__/AskAnythingSettingsDrawer.mocks.js | 1 +\n front-end/src/components/shared/AskAnything/__tests__/AskAnythingSettingsDrawer.spec.js | 135 ++++---\n front-end/src/components/shared/AskAnything/__tests__/__snapshots__/AskAnythingSettingsDrawer.spec.js.html | 1235 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++\n front-end/src/components/shared/AskAnything/__tests__/__snapshots__/AskAnythingSettingsDrawer.spec.js.snap | 1382 ----------------------------------------------------------------\n front-end/src/components/shared/AskAnything/prompts.js | 1 +\n front-end/src/components/shared/AskAnything/useAskAnything.js | 1 +\n front-end/yarn.lock | 8 +-\n tests/Unit/Component/ES/ElasticSearchDocumentPartialUpdaterTest.php | 42 --\n tests/Unit/Component/Settings/AutoScoring/Services/UpdateAutoScoreServiceTest.php | 86 ++--\n tests/Unit/Component/Transcription/Service/StorageServiceTest.php | 29 +-\n 18 files changed, 1448 insertions(+), 1602 deletions(-)\n delete mode 100644 app/Component/ES/ElasticSearchDocumentPartialUpdater.php\n create mode 100644 front-end/src/components/shared/AskAnything/__tests__/__snapshots__/AskAnythingSettingsDrawer.spec.js.html\n delete mode 100644 front-end/src/components/shared/AskAnything/__tests__/__snapshots__/AskAnythingSettingsDrawer.spec.js.snap\n delete mode 100644 tests/Unit/Component/ES/ElasticSearchDocumentPartialUpdaterTest.php\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20676-delete-report-related-objects) $ csfix\ndocker exec -it docker_lamp_1 ./vendor/bin/php-cs-fixer fix --config=.php-cs-fixer.dist.php -v --using-cache=no --diff \nPHP CS Fixer 3.87.1 Alexander by Fabien Potencier, Dariusz Ruminski and contributors.\nPHP runtime: 8.3.30\nRunning analysis on 7 cores with 10 files per process.\nParallel runner is an experimental feature and may be unstable, use it at your own risk. Feedback highly appreciated!\nLoaded config default from \".php-cs-fixer.dist.php\".","is_focused":true},{"role":"AXRadioButton","text":"DOCKER","depth":2,"bounds":{"left":0.27027926,"top":1.0,"width":0.094913565,"height":-0.042298436},"on_screen":true,"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.27227393,"top":1.0,"width":0.005319149,"height":-0.04549086},"on_screen":true,"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"DEV (docker)","depth":2,"bounds":{"left":0.36519283,"top":1.0,"width":0.094913565,"height":-0.042298436},"on_screen":true,"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.3671875,"top":1.0,"width":0.005319149,"height":-0.04549086},"on_screen":true,"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"APP (docker)","depth":2,"bounds":{"left":0.46010637,"top":1.0,"width":0.09474734,"height":-0.042298436},"on_screen":true,"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.46210107,"top":1.0,"width":0.005319149,"height":-0.04549086},"on_screen":true,"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"screenpipe\"","depth":2,"bounds":{"left":0.55485374,"top":1.0,"width":0.09474734,"height":-0.042298436},"on_screen":true,"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.5568484,"top":1.0,"width":0.005319149,"height":-0.04549086},"on_screen":true,"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"-zsh","depth":2,"bounds":{"left":0.64960104,"top":1.0,"width":0.09474734,"height":-0.042298436},"on_screen":true,"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.6515958,"top":1.0,"width":0.005319149,"height":-0.04549086},"on_screen":true,"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"⌥⌘1","depth":1,"bounds":{"left":0.7307181,"top":1.0,"width":0.01861702,"height":-0.023144484},"on_screen":true,"automation_id":"_NS:8","role_description":"text"},{"role":"AXStaticText","text":"APP (docker)","depth":1,"bounds":{"left":0.49634308,"top":1.0,"width":0.029920213,"height":-0.02394259},"on_screen":true,"role_description":"text"}]...
|
2802650493718167367
|
-1358120912881272742
|
idle
|
accessibility
|
NULL
|
Last login: Mon May 18 09:17:28 on ttys007
Poetry Last login: Mon May 18 09:17:28 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 (pipedrive-sdk-poc) $ co master
error: Your local changes to the following files would be overwritten by checkout:
PIPEDRIVE_V2_MIGRATION_TICKETS.md
Please commit your changes or stash them before you switch branches.
Aborting
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (pipedrive-sdk-poc) $ git pull
remote: Enumerating objects: 1047, done.
remote: Counting objects: 100% (832/832), done.
remote: Compressing objects: 100% (298/298), done.
remote: Total 1047 (delta 634), reused 596 (delta 534), pack-reused 215 (from 3)
Receiving objects: 100% (1047/1047), 353.16 KiB | 1.56 MiB/s, done.
Resolving deltas: 100% (687/687), completed with 107 local objects.
From github.com:jiminny/app
907c54896c..34656c53ed pipedrive-sdk-poc -> origin/pipedrive-sdk-poc
03325ec50f..4e7078fd8b JY-18091-upgrade-to-php-8-5 -> origin/JY-18091-upgrade-to-php-8-5
e7d231e163..bc6a3fce6b JY-20725-handle-HS-search-rate-limit -> origin/JY-20725-handle-HS-search-rate-limit
* [new branch] JY-20749-user-can-view-recorded-meetings -> origin/JY-20749-user-can-view-recorded-meetings
98ca281a04..e0351be069 JY-20808-low-priority-indexing-queue -> origin/JY-20808-low-priority-indexing-queue
569abb5149..3906a9238a JY-20835-mcp-enable-users-to-get-a-list-of-deals-and-their-details -> origin/JY-20835-mcp-enable-users-to-get-a-list-of-deals-and-their-details
ad6c2a86e8..50eb6afba9 JY-20846-mcp-enable-the-ai-to-know-details-about-the-user -> origin/JY-20846-mcp-enable-the-ai-to-know-details-about-the-user
* [new branch] JY-20893-chunk-control-per-update-target -> origin/JY-20893-chunk-control-per-update-target
31c62924a5..cb4ebf0c36 master -> origin/master
Updating 907c54896c..34656c53ed
Fast-forward
PIPEDRIVE_V2_MIGRATION_TICKETS.md | 52 ++++++++++++++++++++++++++++++++++++++++++++++++++++
1 file changed, 52 insertions(+)
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (pipedrive-sdk-poc) $ co master
M .env.local
M config/logging.php
Switched to branch 'master'
Your branch is behind 'origin/master' by 31 commits, and can be fast-forwarded.
(use "git pull" to update your local branch)
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (master) $ git pull
Updating 31c62924a5..cb4ebf0c36
Fast-forward
app/Component/ES/Processor/Traits/SelectEntityListTrait.php | 20 ------
app/Services/Calendar/CalendarActivityService.php | 46 +++++++++++++
app/Services/Calendar/Command/MapActivityData.php | 106 +++-------------------------
docs/mcp/explorer/explorer.html | 104 +++++++++++++++++++++++++---
docs/mcp/explorer/explorer.template.html | 102 ++++++++++++++++++++++++---
docs/mcp/tools-list.json | 373 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++-------
docs/mcp/tools.md | 117 +++++++++++++++++++++++--------
tests/Unit/Component/ES/AsyncUpdateElasticSearchTest.php | 16 +----
tests/Unit/Component/ES/Listeners/UpdateMultipleTargetsListenerTest.php | 10 ---
tests/Unit/Component/ES/Listeners/UpdateSingleTargetListenerTest.php | 6 --
tests/Unit/Component/ES/Processor/TargetEntitiesSelectorTest.php | 9 ---
tests/Unit/Component/ES/Processor/Traits/SelectEntityListTraitTest.php | 15 ++--
tests/Unit/Component/ES/UpdateProcessManagerTest.php | 2 -
tests/Unit/Services/Calendar/CalendarActivityServiceTest.php | 150 ++++++++++++++++++++++++++++++++++++++--
tests/Unit/Services/Calendar/Command/MapActivityDataTest.php | 78 ++-------------------
15 files changed, 832 insertions(+), 322 deletions(-)
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (master) $ co -b JY-20613-allow-owner-role-on-team-setup
Switched to a new branch 'JY-20613-allow-owner-role-on-team-setup'
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20613-allow-owner-role-on-team-setup) $ csfix
docker exec -it docker_lamp_1 ./vendor/bin/php-cs-fixer fix --config=.php-cs-fixer.dist.php -v --using-cache=no --diff
PHP CS Fixer 3.87.1 Alexander by Fabien Potencier, Dariusz Ruminski and contributors.
PHP runtime: 8.3.30
Running 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!
Loaded config default from ".php-cs-fixer.dist.php".
5682/5682 [▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓] 100%
Fixed 0 of 5682 files in 56.978 seconds, 67.00 MB memory used
What's next:
Try Docker Debug for seamless, persistent debugging tools in any container or image → docker debug docker_lamp_1
Learn more at [URL_WITH_CREDENTIALS] ~/jiminny/app (JY-20613-allow-owner-role-on-team-setup) $ csfix
docker exec -it docker_lamp_1 ./vendor/bin/php-cs-fixer fix --config=.php-cs-fixer.dist.php -v --using-cache=no --diff
PHP CS Fixer 3.87.1 Alexander by Fabien Potencier, Dariusz Ruminski and contributors.
PHP runtime: 8.3.30
Running 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!
Loaded config default from ".php-cs-fixer.dist.php".
5682/5682 [▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓] 100%
Fixed 0 of 5682 files in 49.910 seconds, 60.00 MB memory used
What's next:
Try Docker Debug for seamless, persistent debugging tools in any container or image → docker debug docker_lamp_1
Learn more at [URL_WITH_CREDENTIALS] ~/jiminny/app (JY-20613-allow-owner-role-on-team-setup) $ git pull
remote: Enumerating objects: 248, done.
remote: Counting objects: 100% (128/128), done.
remote: Compressing objects: 100% (23/23), done.
remote: Total 59 (delta 43), reused 44 (delta 33), pack-reused 0 (from 0)
Unpacking objects: 100% (59/59), 10.48 KiB | 228.00 KiB/s, done.
From github.com:jiminny/app
b7df560451..190239dfd4 JY-20613-allow-owner-role-on-team-setup -> origin/JY-20613-allow-owner-role-on-team-setup
e0351be069..d94a285ae7 JY-20808-low-priority-indexing-queue -> origin/JY-20808-low-priority-indexing-queue
* [new branch] JY-20920-fix-participant-matcher -> origin/JY-20920-fix-participant-matcher
cb4ebf0c36..90bca4e4b2 master -> origin/master
Merge made by the 'ort' strategy.
app/Component/ES/ChunkSize.php | 54 +++++++++++++++++++++++++++
app/Component/ES/Processor/DTOs/SelectionList.php | 4 +-
app/Component/ES/Processor/TargetEntitiesSelector.php | 19 ++++++----
app/Http/Middleware/McpTierMiddleware.php | 27 +++-----------
app/Mcp/Servers/JiminnyServer.php | 2 +
app/Mcp/Tools/GetMeTool.php | 157 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
app/Models/Feature/FeatureEnum.php | 1 +
database/migrations/2026_05_13_124153_create_mcp_feature_flag.php | 25 +++++++++++++
front-end/src/components/Settings/Kiosk/modals/EditTeamModal/EditTeamModal.vue | 52 ++++++++++++++++++--------
front-end/src/components/Settings/Kiosk/modals/EditTeamModal/__tests__/EditTeamModal.spec.js | 14 +++++++
tests/Feature/Mcp/GetMeToolFeatureTest.php | 140 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
tests/Feature/Mcp/ListCallsToolFeatureTest.php | 2 +-
tests/Feature/Mcp/McpTestHelpersTrait.php | 19 +++++++++-
tests/Unit/Component/ES/ChunkSizeTest.php | 50 +++++++++++++++++++++++++
tests/Unit/Component/ES/Processor/DTOs/SelectionListTest.php | 27 ++++++++++----
tests/Unit/Component/ES/Processor/TargetEntitiesSelectorTest.php | 39 +++++++++++---------
16 files changed, 557 insertions(+), 75 deletions(-)
create mode 100644 app/Component/ES/ChunkSize.php
create mode 100644 app/Mcp/Tools/GetMeTool.php
create mode 100644 database/migrations/2026_05_13_124153_create_mcp_feature_flag.php
create mode 100644 tests/Feature/Mcp/GetMeToolFeatureTest.php
create mode 100644 tests/Unit/Component/ES/ChunkSizeTest.php
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20613-allow-owner-role-on-team-setup) $ git push
Enumerating objects: 40, done.
Counting objects: 100% (34/34), done.
Delta compression using up to 8 threads
Compressing objects: 100% (18/18), done.
Writing objects: 100% (18/18), 1.58 KiB | 1.58 MiB/s, done.
Total 18 (delta 15), reused 0 (delta 0), pack-reused 0
remote: Resolving deltas: 100% (15/15), completed with 13 local objects.
To github.com:jiminny/app.git
190239dfd4..ec1b261264 JY-20613-allow-owner-role-on-team-setup -> JY-20613-allow-owner-role-on-team-setup
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20613-allow-owner-role-on-team-setup) $ gbr
* JY-20613-allow-owner-role-on-team-setup
pipedrive-sdk-poc
master
JY-20903-update_activity-stage-on-opportunity-change
JY-20904-fix-update-es-on-activity-command
JY-20891-improve-sms-text-relays
JY-20725-handle-HS-search-rate-limit
JY-20818-move-AJ-reports-to-separated-datadog-metric
JY-20773-fix-automated-reports-user-pilot-tracking
JY-20157-AJ-report-not-send-notification
JY-20508-notify-before-AJ-report-expiration
JY-20372-ai-reports-promotion-pages
JY-20352-sync-opportunities-without-a-local-owner-user-id-is-null
JY-20738-debug-AJ-tracking-UP
a
JY-18909-automated-reports-ask-jiminny
JY-20692-fix-integration-app-[API_KEY]
JY-20553-debug-crm-sync-delays
JY-20698-fix-SF-activity-types-on-new-playbook
JY-20543-AJ-report-tracking
JY-20384-handle-auto-sync-with-no-access-to-event-type
JY-20458-ask-jiminny-user-definitions
JY-19666-fix-import-contacts-account-association
JY-19666-HS-import-contacts-and-accounts-batch-job
JY-20458-Ask-Jiminny-Reports
JY-20200-batch-update-CRM-objects-Salesforce
JY-19666-HS-webhooks-add-contact-and-company
JY-20348-trigger-setup-DI-layout-on-team-creation
JY-20326-refactor-info-message-in-command
JY-20317-fix-auto-log-delay-issue-on-all-channels-disabled
JY-20312-remove-on-update-change-last-synced-at-crm-configurations
JY-20306-SF-skip-auto-sync-for-task-based-playbook
JY-20192-remove-deleted-team-from-saved-search-filters
JY-20197-import-opportunity-batch-job
JY-20293-enable-status-field-for-pipedrive-deals
JY-20191-remove-commands-interactive-prompts
JY-20118-change-default-sync-strategy
JY-20183-add-cache-on-auto-log-delay
JY-20197-add-import-opportunity-batch-job
20118-hs-opportunity-make-webhook-strategy-default
JY-20118-make-default-hs-opportunity-sync-strategy-webhook-based
JY-20196-handle-opportunity-without-note
JY-20118-improve-opportunity-import
JY-20189-handle-activity-search-on-deleted-groups
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20613-allow-owner-role-on-team-setup) $ co JY-20725-handle-HS-search-rate-limit
M .env.local
M config/logging.php
Switched to branch 'JY-20725-handle-HS-search-rate-limit'
Your branch is behind 'origin/JY-20725-handle-HS-search-rate-limit' by 439 commits, and can be fast-forwarded.
(use "git pull" to update your local branch)
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20725-handle-HS-search-rate-limit) $ git pull
Updating 0f3e438941..bc6a3fce6b
Fast-forward
.gitignore | 3 +-
.windsurfrules | 168 ++---
CLAUDE.md | 1 +
app/Component/ActivityAnalytics/Service/CalculateTalkTimeOffsetsFromTranscription.php | 24 +-
app/Component/AiActivityType/Services/AiActivityTypeEligibilityChecker.php | 28 +-
app/Component/AiAutomation/Actions/PrepareUpdateDtoAction.php | 32 +-
app/Component/AiAutomation/Services/CrmFillingEligibilityChecker.php | 47 ++
app/Component/AiAutomation/TestCrmAiPromptService.php | 14 +
app/Component/AiCallScoring/Services/AiCallScoringEligibilityChecker.php | 9 +
app/Component/ES/ElasticSearchDocumentPartialUpdater.php | 13 +-
app/Component/ES/ElasticSearchWorkerManager.php | 86 ---
app/Component/ES/Processor/Actions/LoadDocumentsAction.php | 80 +--
app/Component/ES/Processor/EntityQueryBuilder.php | 12 +-
app/Component/ES/Processor/TargetEntitiesSelector.php | 2 +-
app/Component/ES/Processor/Traits/SkipActivityTrait.php | 25 -
app/Component/ES/Repositories/EsResetActivityRepository.php | 11 +-
app/Component/ES/Worker/ActivityWorker.php | 73 --
app/Component/ES/Worker/EntityWorker.php | 44 --
app/Component/ES/Worker/WorkerAmount.php | 60 --
app/Component/ES/Worker/WorkerInterface.php | 15 -
app/Component/ElasticSearch/Contract/Searchable.php | 4 +
app/Component/Encoding/Job/AnalyzeTrackChannelsJob.php | 20 +-
app/Component/Encoding/Service/GenerateSpeechFromSilenceService.php | 85 ++-
app/Component/FFMpeg/Services/GetSpeechIntervalsService.php | 18 +-
app/Component/LanguageDetection/Services/FindSpeechTimeService.php | 22 +-
app/Component/Nudge/Job/ProcessOrganisationImmediateNudgesJob.php | 218 +++++-
app/Component/ParagraphBreaker/Services/TranscriptionParagraphsService.php | 4 +
app/Component/ParticipantSpeech/Services/ParticipantSpeechesCreator.php | 33 +
app/Component/ParticipantSpeech/Services/ParticipantSpeechesDeleter.php | 15 +
app/Component/ParticipantSpeech/Services/ParticipantSpeechesProvider.php | 51 +-
app/Component/ParticipantSpeech/Services/ParticipantSpeechesUploader.php | 36 +
app/Component/ProphetAi/Exceptions/InsufficientTranscriptException.php | 11 +
app/Component/Transcription/DTO/Http/Transcription/AssemblyAI/AssemblyAI/NoAssemblyIdException.php | 11 +
app/Component/Transcription/DTO/Http/Transcription/AssemblyAI/AssemblyAI/SuccessfulResponse.php | 6 +
app/Component/Transcription/DTO/Http/Transcription/TranscriptionIsNotCorrectFormatException.php | 11 +
app/Component/Transcription/Diarization/Services/GetNormalizedParticipantSpeechesService.php | 23 +-
app/Component/Transcription/Diarization/Source/MeetingBotSource.php | 16 +-
app/Component/Transcription/TranscriptionProcessor/TranscriptionProcessor.php | 3 +
app/Console/Commands/Activities/ActivityHardDeleteCommand.php | 4 +-
app/Console/Commands/Activities/Copy.php | 2 +
app/Console/Commands/Activities/SetupIntegration/TwilioSetS3RecordingCredentialsCommand.php | 119 ++++
app/Console/Commands/Activities/UpdateActivityElasticSearchDocumentCommand.php | 10 +-
app/Console/Commands/Crm/BackfillOpportunityUserFromAccountCommand.php | 126 ++++
app/Console/Commands/Elasticsearch/AsyncUpdateEsActivities.php | 19 -
app/Console/Commands/Elasticsearch/AsyncUpdateEsEntities.php | 50 +-
app/Console/Commands/Elasticsearch/ResetAsyncElasticSearchCommand.php | 30 +-
app/Console/Commands/GeckoExport/GeckoExportParticipantSpeechesCommand.php | 14 +-
app/Console/Commands/IssueMcpTokenCommand.php | 84 +++
app/Console/Commands/JiminnyDebugCommand.php | 7 +-
app/Console/Commands/Tracks/CleanupActivityTracksCommand.php | 2 +-
app/Console/Kernel.php | 6 +-
app/Contracts/Services/Calendar/CalendarTrait.php | 80 ++-
app/Events/AutomatedReports/AutomatedReportGenerated.php | 3 +
app/Http/Controllers/API/AiCallScoring/AiScorecardController.php | 7 +-
app/Http/Controllers/API/TeamAiAutomationController.php | 8 +
app/Http/Controllers/CustomerApi/CustomerApiController.php | 4 +-
app/Http/Controllers/Kiosk/ActivityController.php | 58 +-
app/Http/Controllers/Settings/PlaybookController.php | 15 +-
app/Http/Kernel.php | 23 +
app/Http/Middleware/McpAuditMiddleware.php | 156 ++++
app/Http/Middleware/McpTierMiddleware.php | 54 ++
app/Http/Requests/API/V2/ZapierUploadActivityRequest.php | 28 +-
app/Jobs/Activity/Import/ImportTwilioVideoSpeechesJob.php | 25 +-
app/Jobs/Activity/Import/IsActivityReadyForProcessingJob.php | 10 +-
app/Jobs/Calendar/SetupCalendarSync.php | 21 +-
app/Jobs/ImportRemoteTrackJob.php | 96 ++-
app/Jobs/Mailbox/EmailTextRelay.php | 15 +-
app/Mcp/Contracts/McpCallRepositoryInterface.php | 30 +
app/Mcp/DTO/ListCallsFilters.php | 29 +
app/Mcp/Errors/McpError.php | 123 ++++
app/Mcp/Repositories/McpActivityHydrator.php | 145 ++++
app/Mcp/Repositories/McpCallRepository.php | 84 +++
app/Mcp/Repositories/McpElasticCallRepository.php | 171 +++++
app/Mcp/Servers/JiminnyServer.php | 38 +
app/Mcp/Tools/ListCallsTool.php | 205 ++++++
app/Models/Activity.php | 10 +-
app/Models/Activity/Transcription.php | 17 +-
app/Models/ElasticSearch/OpportunityElasticSearchTrait.php | 5 +
app/Models/Participant.php | 1 +
app/Providers/AppServiceProvider.php | 22 +
app/Repositories/Crm/ContactRepository.php | 69 +-
app/Repositories/ParticipantSpeechRepository.php | 13 +-
app/Services/Activity/ParticipantsService.php | 19 +-
app/Services/Activity/Twilio/S3RecordingCredentialsService.php | 82 +++
app/Services/ActivityService.php | 21 +-
app/Services/Calendar/CalendarActivityService.php | 46 ++
app/Services/Calendar/Command/ImportParticipants.php | 1 +
app/Services/Calendar/Command/MapActivityData.php | 106 +--
app/Services/Calendar/GoogleCalendarService.php | 12 +-
app/Services/Crm/Close/Processor/OpportunityProcessor.php | 2 +-
app/Services/Crm/Close/Service.php | 22 +-
app/Services/Crm/Copper/Service.php | 12 +-
app/Services/Crm/Hubspot/Service.php | 154 +++-
app/Services/Crm/Hubspot/ServiceTraits/OpportunitySyncTrait.php | 88 ++-
app/Services/Crm/IntegrationApp/ServiceTraits/SyncCrmEntitiesTrait.php | 22 +-
app/Services/Crm/Pipedrive/Service.php | 17 +-
app/Services/Crm/Salesforce/Service.php | 42 +-
app/Services/Mail/Office/EmailApiClient.php | 129 +---
app/Services/RecallAI/Commands/ScheduleBotCommand.php | 39 +-
app/Services/RecallAI/RecallAIService.php | 22 +-
composer.json | 3 +-
composer.lock | 87 ++-
config/mcp.php | 23 +
database/migrations/2026_04_30_120000_create_mcp_audit_log_table.php | 36 +
docs/mcp/explorer/explorer.html | 697 ++++++++++++++++++
docs/mcp/explorer/explorer.template.html | 697 ++++++++++++++++++
docs/mcp/explorer/generate.js | 215 ++++++
docs/mcp/explorer/tool-explorer-meta.json | 11 +
docs/mcp/tools-list.json | 2536 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
docs/mcp/tools.md | 621 ++++++++++++++++
front-end/package.json | 4 +-
front-end/src/components/Settings/OrgSettings/AiAutomation/CrmFilling/TemplateFieldForm.vue | 28 +-
front-end/src/components/Settings/OrgSettings/Playbooks/AddEditPlaybook.vue | 10 +
front-end/src/components/playback/comments/ActivityComment.less | 10 +-
front-end/src/components/shared/PromptTester/PromptTester.vue | 12 +-
front-end/src/components/shared/__tests__/PromptTester.spec.js | 35 +
front-end/src/components/shared/modals/EntityPickerModal/__tests__/useEntitiesCache.spec.ts | 37 +
front-end/src/components/shared/modals/EntityPickerModal/useEntitiesCache.ts | 9 +
front-end/yarn.lock | 16 +-
phpstan-baseline.neon | 50 --
routes/api.php | 11 +
sonar-project.properties | 91 ++-
tests/Feature/Component/Nudge/ProcessOrganisationImmediateNudgesJobTest.php | 534 ++++++++++++++
tests/Feature/Jobs/ImportRemoteTrackJobTest.php | 283 +++++++-
tests/Feature/Mcp/IssueMcpTokenCommandTest.php | 53 ++
tests/Feature/Mcp/ListCallsToolElasticFeatureTest.php | 155 ++++
tests/Feature/Mcp/ListCallsToolFeatureTest.php | 352 ++++++++++
tests/Feature/Mcp/McpTestHelpersTrait.php | 77 ++
tests/Feature/Services/Team/TeamDeleteHandlers/Retention/RetentionRepositoryHandlerTest.php | 1 +
tests/Stubs/SentryStub.php | 18 +
tests/Unit/Component/ActivityAnalytics/Service/CalculateTalkTimeOffsetFromTranscriptionTest.php | 28 +-
tests/Unit/Component/AiActivityType/Services/AiActivityTypeEligibilityCheckerTest.php | 103 ++-
tests/Unit/Component/AiAutomation/Actions/PrepareUpdateDtoActionTest.php | 91 +++
tests/Unit/Component/AiAutomation/Services/CrmFillingEligibilityCheckerTest.php | 124 ++++
tests/Unit/Component/AiAutomation/TestCrmAiPromptServiceTest.php | 67 +-
tests/Unit/Component/AiCallScoring/Services/AiCallScoringEligibilityCheckerTest.php | 55 ++
tests/Unit/Component/ES/ElasticSearchWorkerManagerTest.php | 135 ----
tests/Unit/Component/ES/Processor/Actions/LoadDocumentsActionTest.php | 220 ++++++
tests/Unit/Component/ES/Processor/EntityQueryBuilderTest.php | 21 +-
tests/Unit/Component/ES/Processor/Traits/SkipActivityTraitTest.php | 51 --
tests/Unit/Component/ES/Worker/ActivityWorkerTest.php | 174 -----
tests/Unit/Component/ES/Worker/EntityWorkerTest.php | 97 ---
tests/Unit/Component/ES/Worker/WorkerAmountTest.php | 116 ---
tests/Unit/Component/Encoding/Job/AnalyzeTrackChannelsJobTest.php | 52 +-
tests/Unit/Component/Encoding/Service/GenerateSpeechFromSilenceServiceTest.php | 171 ++---
tests/Unit/Component/FFMpeg/Services/GetSpeechIntervalsTest.php | 36 +-
tests/Unit/Component/LanguageDetection/Services/FindSpeechTimeServiceTest.php | 20 +-
tests/Unit/Component/MobileSettings/MobileSettingsControllerTest.php | 5 +-
tests/Unit/Component/ParticipantSpeech/Services/ParticipantSpeechesCreatorTest.php | 75 ++
tests/Unit/Component/ParticipantSpeech/Services/ParticipantSpeechesDeleterTest.php | 63 ++
tests/Unit/Component/ParticipantSpeech/Services/ParticipantSpeechesProviderTest.php | 134 ++++
tests/Unit/Component/ParticipantSpeech/Services/ParticipantSpeechesUploaderTest.php | 57 ++
tests/Unit/Component/Transcription/Diarization/Services/GetNormalizedParticipantSpeechesServiceTest.php | 51 +-
tests/Unit/Component/Transcription/Diarization/Source/MeetingBotSourceTest.php | 29 +-
tests/Unit/Contracts/Services/Calendar/CalendarTraitTest.php | 58 +-
tests/Unit/Http/Controllers/Kiosk/ActivityControllerTest.php | 159 +++++
tests/Unit/Jobs/Activity/Import/ImportTwilioVideoSpeechesJobTest.php | 22 +-
tests/Unit/Jobs/Activity/Import/IsActivityReadyForProcessingJobTest.php | 26 +-
tests/Unit/Jobs/Calendar/SetupCalendarSyncTest.php | 25 -
tests/Unit/Services/Activity/ParticipantsServiceTest.php | 12 +-
tests/Unit/Services/Activity/Twilio/S3RecordingCredentialsServiceTest.php | 180 +++++
tests/Unit/Services/ActivityServiceTest.php | 132 ++++
tests/Unit/Services/Calendar/CalendarActivityServiceTest.php | 150 +++-
tests/Unit/Services/Calendar/Command/ImportParticipantsTest.php | 6 +-
tests/Unit/Services/Calendar/Command/MapActivityDataTest.php | 78 +-
tests/Unit/Services/Calendar/GoogleCalendarServiceTest.php | 116 +++
tests/Unit/Services/Crm/Close/ServiceTest.php | 165 +++++
tests/Unit/Services/Crm/Hubspot/ServiceTest.php | 272 ++++++-
tests/Unit/Services/Crm/Hubspot/ServiceTraits/OpportunitySyncTest.php | 25 +-
tests/Unit/Services/Crm/Hubspot/ServiceTraits/OpportunitySyncTraitMatchActivitiesTest.php | 3 +-
tests/Unit/Services/Crm/IntegrationApp/ServiceTraits/SyncCrmEntitiesTraitOpportunitiesTest.php | 40 ++
tests/Unit/Services/Crm/Pipedrive/ImportOpportunityMatchActivitiesTest.php | 2 +
tests/Unit/Services/Crm/Salesforce/ServiceTest.php | 139 ++++
tests/Unit/Services/Mail/Office/EmailApiClientTest.php | 195 ++---
tests/Unit/Services/RecallAI/RecallAIServiceTest.php | 24 +-
175 files changed, 12562 insertions(+), 2162 deletions(-)
create mode 120000 CLAUDE.md
create mode 100644 app/Component/AiAutomation/Services/CrmFillingEligibilityChecker.php
delete mode 100644 app/Component/ES/ElasticSearchWorkerManager.php
delete mode 100644 app/Component/ES/Processor/Traits/SkipActivityTrait.php
delete mode 100644 app/Component/ES/Worker/ActivityWorker.php
delete mode 100644 app/Component/ES/Worker/EntityWorker.php
delete mode 100644 app/Component/ES/Worker/WorkerAmount.php
delete mode 100644 app/Component/ES/Worker/WorkerInterface.php
create mode 100644 app/Component/ProphetAi/Exceptions/InsufficientTranscriptException.php
create mode 100644 app/Component/Transcription/DTO/Http/Transcription/AssemblyAI/AssemblyAI/NoAssemblyIdException.php
create mode 100644 app/Component/Transcription/DTO/Http/Transcription/TranscriptionIsNotCorrectFormatException.php
create mode 100644 app/Console/Commands/Activities/SetupIntegration/TwilioSetS3RecordingCredentialsCommand.php
create mode 100644 app/Console/Commands/Crm/BackfillOpportunityUserFromAccountCommand.php
delete mode 100644 app/Console/Commands/Elasticsearch/AsyncUpdateEsActivities.php
create mode 100644 app/Console/Commands/IssueMcpTokenCommand.php
create mode 100644 app/Http/Middleware/McpAuditMiddleware.php
create mode 100644 app/Http/Middleware/McpTierMiddleware.php
create mode 100644 app/Mcp/Contracts/McpCallRepositoryInterface.php
create mode 100644 app/Mcp/DTO/ListCallsFilters.php
create mode 100644 app/Mcp/Errors/McpError.php
create mode 100644 app/Mcp/Repositories/McpActivityHydrator.php
create mode 100644 app/Mcp/Repositories/McpCallRepository.php
create mode 100644 app/Mcp/Repositories/McpElasticCallRepository.php
create mode 100644 app/Mcp/Servers/JiminnyServer.php
create mode 100644 app/Mcp/Tools/ListCallsTool.php
create mode 100644 app/Services/Activity/Twilio/S3RecordingCredentialsService.php
create mode 100644 config/mcp.php
create mode 100644 database/migrations/2026_04_30_120000_create_mcp_audit_log_table.php
create mode 100644 docs/mcp/explorer/explorer.html
create mode 100644 docs/mcp/explorer/explorer.template.html
create mode 100644 docs/mcp/explorer/generate.js
create mode 100644 docs/mcp/explorer/tool-explorer-meta.json
create mode 100644 docs/mcp/tools-list.json
create mode 100644 docs/mcp/tools.md
create mode 100644 front-end/src/components/shared/modals/EntityPickerModal/__tests__/useEntitiesCache.spec.ts
create mode 100644 tests/Feature/Component/Nudge/ProcessOrganisationImmediateNudgesJobTest.php
create mode 100644 tests/Feature/Mcp/IssueMcpTokenCommandTest.php
create mode 100644 tests/Feature/Mcp/ListCallsToolElasticFeatureTest.php
create mode 100644 tests/Feature/Mcp/ListCallsToolFeatureTest.php
create mode 100644 tests/Feature/Mcp/McpTestHelpersTrait.php
create mode 100644 tests/Stubs/SentryStub.php
create mode 100644 tests/Unit/Component/AiAutomation/Services/CrmFillingEligibilityCheckerTest.php
delete mode 100644 tests/Unit/Component/ES/ElasticSearchWorkerManagerTest.php
create mode 100644 tests/Unit/Component/ES/Processor/Actions/LoadDocumentsActionTest.php
delete mode 100644 tests/Unit/Component/ES/Processor/Traits/SkipActivityTraitTest.php
delete mode 100644 tests/Unit/Component/ES/Worker/ActivityWorkerTest.php
delete mode 100644 tests/Unit/Component/ES/Worker/EntityWorkerTest.php
delete mode 100644 tests/Unit/Component/ES/Worker/WorkerAmountTest.php
create mode 100644 tests/Unit/Component/ParticipantSpeech/Services/ParticipantSpeechesCreatorTest.php
create mode 100644 tests/Unit/Http/Controllers/Kiosk/ActivityControllerTest.php
create mode 100644 tests/Unit/Services/Activity/Twilio/S3RecordingCredentialsServiceTest.php
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20725-handle-HS-search-rate-limit) $ git status
On branch master
Your branch is behind 'origin/master' by 114 commits, and can be fast-forwarded.
(use "git pull" to update your local branch)
Changes not staged for commit:
(use "git add <file>..." to update what will be committed)
(use "git restore <file>..." to discard changes in working directory)
modified: .env.local
modified: app/Component/SCIM/Constants.php
modified: app/Component/SCIM/ScimProvisioning.php
modified: app/Component/Twilio/Conference/ConferenceManager/SoftPhoneManager.php
modified: app/Console/Commands/JiminnyDebugCommand.php
modified: app/DTO/SCIM/AAD/Request/CoreUserRequest.php
modified: app/DTO/SCIM/AAD/Response/CoreUser.php
modified: app/Services/Telephony/TextMessagingService.php
modified: config/logging.php
Untracked files:
(use "git add <file>..." to include in what will be committed)
.env.nikilocal
.env.other
WEBHOOK_FILTERING_IMPLEMENTATION.md
app/Component/SCIM/Mutators/Attributes/User/RoleAttr.php
app/Console/Commands/Crm/Hubspot/SimulateWebhooksCommand.php
app/Console/Commands/Reports/CreateMockAskJiminnyReportResultCommand.php
app/Rules/ListenerRoleCannotHaveAdminOrManagerPermissionRule.php
ids.txt
public/favicon.ico
raw_sql_query.sql
tests/Unit/Component/SCIM/Mutators/Attributes/User/RoleAttrTest.php
tests/Unit/Policies/CanAccessAiReportsTest.php
tests/Unit/Rules/ListenerRoleCannotHaveAdminOrManagerPermissionRuleTest.php
no changes added to commit (use "git add" and/or "git commit -a")
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (master) $ git pull
remote: Enumerating objects: 306, done.
remote: Counting objects: 100% (299/299), done.
remote: Compressing objects: 100% (183/183), done.
remote: Total 306 (delta 213), reused 171 (delta 116), pack-reused 7 (from 1)
Receiving objects: 100% (306/306), 80.12 KiB | 1000.00 KiB/s, done.
Resolving deltas: 100% (213/213), completed with 53 local objects.
From github.com:jiminny/app
90bca4e4b2..5604af40cf master -> origin/master
4e7078fd8b..0b8343d179 JY-18091-upgrade-to-php-8-5 -> origin/JY-18091-upgrade-to-php-8-5
098eeaa087..d5a447e492 JY-20613-allow-owner-role-on-team-setup -> origin/JY-20613-allow-owner-role-on-team-setup
c3a76ace91..af65249d0f JY-20749-user-can-view-recorded-meetings -> origin/JY-20749-user-can-view-recorded-meetings
d94a285ae7..7ce96cb5fe JY-20808-low-priority-indexing-queue -> origin/JY-20808-low-priority-indexing-queue
* [new branch] JY-20842-remove-partial-updater -> origin/JY-20842-remove-partial-updater
* [new branch] JY-20920-fix-participant-flip -> origin/JY-20920-fix-participant-flip
* [new branch] secfix/npm-20260519 -> origin/secfix/npm-20260519
Updating cb4ebf0c36..5604af40cf
Fast-forward
app/Component/ES/ChunkSize.php | 54 +++++++++++++++++++
app/Component/ES/Processor/DTOs/SelectionList.php | 4 +-
app/Component/ES/Processor/TargetEntitiesSelector.php | 19 ++++---
app/Component/MeetingBot/Service/ParticipantMatcher.php | 46 ++++++++++++----
app/Exceptions/RateLimitException.php | 19 ++++++-
app/Http/Middleware/McpTierMiddleware.php | 27 ++--------
app/Jobs/Crm/MatchActivityCrmData.php | 47 ++++++++++++----
app/Jobs/Middleware/HandleHubspotRateLimit.php | 42 +++++++++++++++
app/Mcp/Servers/JiminnyServer.php | 2 +
app/Mcp/Tools/GetMeTool.php | 157 +++++++++++++++++++++++++++++++++++++++++++++++++++++
app/Models/Feature/FeatureEnum.php | 1 +
app/Services/Activity/HubSpot/ProviderResolver.php | 4 +-
app/Services/Activity/HubSpot/ProviderResolverInterface.php | 2 +-
app/Services/Activity/HubSpot/Providers/Provider.php | 2 +-
app/Services/Activity/HubSpot/Providers/ProviderKixie.php | 2 +-
app/Services/Activity/HubSpot/Providers/ProviderOrum.php | 2 +-
app/Services/Activity/HubSpot/Providers/ProviderTwilio.php | 2 +-
app/Services/Activity/HubSpot/Providers/ProviderTwilioFlex.php | 5 +-
app/Services/Activity/HubSpot/Service.php | 97 +++++++++++++++++++++++++++------
app/Services/Crm/Hubspot/Client.php | 132 +++++++++++++++++++++++++++++++++++++++++++++
app/Services/Crm/Hubspot/HubspotClientInterface.php | 15 ++++++
app/Services/Crm/Hubspot/Pagination/HubspotPaginationService.php | 21 ++++----
app/Services/Crm/Hubspot/Pagination/PaginationState.php | 2 +-
database/migrations/2026_05_13_124153_create_mcp_feature_flag.php | 25 +++++++++
tests/Feature/Mcp/GetMeToolFeatureTest.php | 140 +++++++++++++++++++++++++++++++++++++++++++++++
tests/Feature/Mcp/ListCallsToolFeatureTest.php | 2 +-
tests/Feature/Mcp/McpTestHelpersTrait.php | 19 ++++++-
tests/Unit/Component/ES/ChunkSizeTest.php | 50 +++++++++++++++++
tests/Unit/Component/ES/Processor/DTOs/SelectionListTest.php | 27 +++++++---
tests/Unit/Component/ES/Processor/TargetEntitiesSelectorTest.php | 39 ++++++++------
tests/Unit/Component/MeetingBot/Service/ParticipantMatcherTest.php | 68 ++++++++++++++++++++++-
tests/Unit/Exceptions/RateLimitExceptionTest.php | 56 +++++++++++++++++++
tests/Unit/Jobs/Crm/MatchActivityCrmDataTest.php | 8 +--
tests/Unit/Jobs/Middleware/HandleHubspotRateLimitTest.php | 151 +++++++++++++++++++++++++++++++++++++++++++++++++++
tests/Unit/Services/Activity/HubSpot/ServiceTest.php | 109 +++++++++++++++++++++++++++++++++++++
tests/Unit/Services/Crm/Hubspot/ClientTest.php | 250 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
tests/Unit/Services/Crm/Hubspot/Pagination/HubspotPaginationServiceTest.php | 283 +++++++++++++++++++++---------------------------------------------------------------------------
37 files changed, 1587 insertions(+), 344 deletions(-)
create mode 100644 app/Component/ES/ChunkSize.php
create mode 100644 app/Jobs/Middleware/HandleHubspotRateLimit.php
create mode 100644 app/Mcp/Tools/GetMeTool.php
create mode 100644 database/migrations/2026_05_13_124153_create_mcp_feature_flag.php
create mode 100644 tests/Feature/Mcp/GetMeToolFeatureTest.php
create mode 100644 tests/Unit/Component/ES/ChunkSizeTest.php
create mode 100644 tests/Unit/Exceptions/RateLimitExceptionTest.php
create mode 100644 tests/Unit/Jobs/Middleware/HandleHubspotRateLimitTest.php
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (master) $ git pull
Already up to date.
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (master) $ co -b JY-20676-delete-report-related-objects
Switched to a new branch 'JY-20676-delete-report-related-objects'
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20676-delete-report-related-objects) $ csfix
docker exec -it docker_lamp_1 ./vendor/bin/php-cs-fixer fix --config=.php-cs-fixer.dist.php -v --using-cache=no --diff
PHP CS Fixer 3.87.1 Alexander by Fabien Potencier, Dariusz Ruminski and contributors.
PHP runtime: 8.3.30
Running 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!
Loaded config default from ".php-cs-fixer.dist.php".
5690/5690 [▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓] 100%
1) app/Console/Commands/JiminnyDebugCommand.php (statement_indentation, blank_line_before_statement)
---------- begin diff ----------
--- /home/jiminny/app/Console/Commands/JiminnyDebugCommand.php
+++ /home/jiminny/app/Console/Commands/JiminnyDebugCommand.php
@@ -23,6 +23,7 @@
if ($action === 'redis-set') {
$this->testRedisSet();
+
return;
}
@@ -45,7 +46,7 @@
$ttl = 60;
try {
-// $result = Redis::set($testKey, $testValue, 'EX', $ttl, 'NX');
+ // $result = Redis::set($testKey, $testValue, 'EX', $ttl, 'NX');
$result = Redis::set($testKey, $testValue, ['nx', 'ex' => $ttl]);
if ($result) {
----------- end diff -----------
Fixed 1 of 5690 files i...
|
58065
|
NULL
|
NULL
|
NULL
|
|
58069
|
2044
|
2
|
2026-05-19T11:32:01.201517+00:00
|
/Users/lukas/.screenpipe/data/data/2026-05-19/1779 /Users/lukas/.screenpipe/data/data/2026-05-19/1779190321201_m1.jpg...
|
iTerm2
|
APP (docker)
|
1
|
NULL
|
monitor_1
|
NULL
|
NULL
|
NULL
|
NULL
|
Last login: Mon May 18 09:17:28 on ttys007
Poetry Last login: Mon May 18 09:17:28 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 (pipedrive-sdk-poc) $ co master
error: Your local changes to the following files would be overwritten by checkout:
PIPEDRIVE_V2_MIGRATION_TICKETS.md
Please commit your changes or stash them before you switch branches.
Aborting
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (pipedrive-sdk-poc) $ git pull
remote: Enumerating objects: 1047, done.
remote: Counting objects: 100% (832/832), done.
remote: Compressing objects: 100% (298/298), done.
remote: Total 1047 (delta 634), reused 596 (delta 534), pack-reused 215 (from 3)
Receiving objects: 100% (1047/1047), 353.16 KiB | 1.56 MiB/s, done.
Resolving deltas: 100% (687/687), completed with 107 local objects.
From github.com:jiminny/app
907c54896c..34656c53ed pipedrive-sdk-poc -> origin/pipedrive-sdk-poc
03325ec50f..4e7078fd8b JY-18091-upgrade-to-php-8-5 -> origin/JY-18091-upgrade-to-php-8-5
e7d231e163..bc6a3fce6b JY-20725-handle-HS-search-rate-limit -> origin/JY-20725-handle-HS-search-rate-limit
* [new branch] JY-20749-user-can-view-recorded-meetings -> origin/JY-20749-user-can-view-recorded-meetings
98ca281a04..e0351be069 JY-20808-low-priority-indexing-queue -> origin/JY-20808-low-priority-indexing-queue
569abb5149..3906a9238a JY-20835-mcp-enable-users-to-get-a-list-of-deals-and-their-details -> origin/JY-20835-mcp-enable-users-to-get-a-list-of-deals-and-their-details
ad6c2a86e8..50eb6afba9 JY-20846-mcp-enable-the-ai-to-know-details-about-the-user -> origin/JY-20846-mcp-enable-the-ai-to-know-details-about-the-user
* [new branch] JY-20893-chunk-control-per-update-target -> origin/JY-20893-chunk-control-per-update-target
31c62924a5..cb4ebf0c36 master -> origin/master
Updating 907c54896c..34656c53ed
Fast-forward
PIPEDRIVE_V2_MIGRATION_TICKETS.md | 52 ++++++++++++++++++++++++++++++++++++++++++++++++++++
1 file changed, 52 insertions(+)
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (pipedrive-sdk-poc) $ co master
M .env.local
M config/logging.php
Switched to branch 'master'
Your branch is behind 'origin/master' by 31 commits, and can be fast-forwarded.
(use "git pull" to update your local branch)
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (master) $ git pull
Updating 31c62924a5..cb4ebf0c36
Fast-forward
app/Component/ES/Processor/Traits/SelectEntityListTrait.php | 20 ------
app/Services/Calendar/CalendarActivityService.php | 46 +++++++++++++
app/Services/Calendar/Command/MapActivityData.php | 106 +++-------------------------
docs/mcp/explorer/explorer.html | 104 +++++++++++++++++++++++++---
docs/mcp/explorer/explorer.template.html | 102 ++++++++++++++++++++++++---
docs/mcp/tools-list.json | 373 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++-------
docs/mcp/tools.md | 117 +++++++++++++++++++++++--------
tests/Unit/Component/ES/AsyncUpdateElasticSearchTest.php | 16 +----
tests/Unit/Component/ES/Listeners/UpdateMultipleTargetsListenerTest.php | 10 ---
tests/Unit/Component/ES/Listeners/UpdateSingleTargetListenerTest.php | 6 --
tests/Unit/Component/ES/Processor/TargetEntitiesSelectorTest.php | 9 ---
tests/Unit/Component/ES/Processor/Traits/SelectEntityListTraitTest.php | 15 ++--
tests/Unit/Component/ES/UpdateProcessManagerTest.php | 2 -
tests/Unit/Services/Calendar/CalendarActivityServiceTest.php | 150 ++++++++++++++++++++++++++++++++++++++--
tests/Unit/Services/Calendar/Command/MapActivityDataTest.php | 78 ++-------------------
15 files changed, 832 insertions(+), 322 deletions(-)
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (master) $ co -b JY-20613-allow-owner-role-on-team-setup
Switched to a new branch 'JY-20613-allow-owner-role-on-team-setup'
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20613-allow-owner-role-on-team-setup) $ csfix
docker exec -it docker_lamp_1 ./vendor/bin/php-cs-fixer fix --config=.php-cs-fixer.dist.php -v --using-cache=no --diff
PHP CS Fixer 3.87.1 Alexander by Fabien Potencier, Dariusz Ruminski and contributors.
PHP runtime: 8.3.30
Running 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!
Loaded config default from ".php-cs-fixer.dist.php".
5682/5682 [▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓] 100%
Fixed 0 of 5682 files in 56.978 seconds, 67.00 MB memory used
What's next:
Try Docker Debug for seamless, persistent debugging tools in any container or image → docker debug docker_lamp_1
Learn more at [URL_WITH_CREDENTIALS] ~/jiminny/app (JY-20613-allow-owner-role-on-team-setup) $ csfix
docker exec -it docker_lamp_1 ./vendor/bin/php-cs-fixer fix --config=.php-cs-fixer.dist.php -v --using-cache=no --diff
PHP CS Fixer 3.87.1 Alexander by Fabien Potencier, Dariusz Ruminski and contributors.
PHP runtime: 8.3.30
Running 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!
Loaded config default from ".php-cs-fixer.dist.php".
5682/5682 [▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓] 100%
Fixed 0 of 5682 files in 49.910 seconds, 60.00 MB memory used
What's next:
Try Docker Debug for seamless, persistent debugging tools in any container or image → docker debug docker_lamp_1
Learn more at [URL_WITH_CREDENTIALS] ~/jiminny/app (JY-20613-allow-owner-role-on-team-setup) $ git pull
remote: Enumerating objects: 248, done.
remote: Counting objects: 100% (128/128), done.
remote: Compressing objects: 100% (23/23), done.
remote: Total 59 (delta 43), reused 44 (delta 33), pack-reused 0 (from 0)
Unpacking objects: 100% (59/59), 10.48 KiB | 228.00 KiB/s, done.
From github.com:jiminny/app
b7df560451..190239dfd4 JY-20613-allow-owner-role-on-team-setup -> origin/JY-20613-allow-owner-role-on-team-setup
e0351be069..d94a285ae7 JY-20808-low-priority-indexing-queue -> origin/JY-20808-low-priority-indexing-queue
* [new branch] JY-20920-fix-participant-matcher -> origin/JY-20920-fix-participant-matcher
cb4ebf0c36..90bca4e4b2 master -> origin/master
Merge made by the 'ort' strategy.
app/Component/ES/ChunkSize.php | 54 +++++++++++++++++++++++++++
app/Component/ES/Processor/DTOs/SelectionList.php | 4 +-
app/Component/ES/Processor/TargetEntitiesSelector.php | 19 ++++++----
app/Http/Middleware/McpTierMiddleware.php | 27 +++-----------
app/Mcp/Servers/JiminnyServer.php | 2 +
app/Mcp/Tools/GetMeTool.php | 157 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
app/Models/Feature/FeatureEnum.php | 1 +
database/migrations/2026_05_13_124153_create_mcp_feature_flag.php | 25 +++++++++++++
front-end/src/components/Settings/Kiosk/modals/EditTeamModal/EditTeamModal.vue | 52 ++++++++++++++++++--------
front-end/src/components/Settings/Kiosk/modals/EditTeamModal/__tests__/EditTeamModal.spec.js | 14 +++++++
tests/Feature/Mcp/GetMeToolFeatureTest.php | 140 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
tests/Feature/Mcp/ListCallsToolFeatureTest.php | 2 +-
tests/Feature/Mcp/McpTestHelpersTrait.php | 19 +++++++++-
tests/Unit/Component/ES/ChunkSizeTest.php | 50 +++++++++++++++++++++++++
tests/Unit/Component/ES/Processor/DTOs/SelectionListTest.php | 27 ++++++++++----
tests/Unit/Component/ES/Processor/TargetEntitiesSelectorTest.php | 39 +++++++++++---------
16 files changed, 557 insertions(+), 75 deletions(-)
create mode 100644 app/Component/ES/ChunkSize.php
create mode 100644 app/Mcp/Tools/GetMeTool.php
create mode 100644 database/migrations/2026_05_13_124153_create_mcp_feature_flag.php
create mode 100644 tests/Feature/Mcp/GetMeToolFeatureTest.php
create mode 100644 tests/Unit/Component/ES/ChunkSizeTest.php
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20613-allow-owner-role-on-team-setup) $ git push
Enumerating objects: 40, done.
Counting objects: 100% (34/34), done.
Delta compression using up to 8 threads
Compressing objects: 100% (18/18), done.
Writing objects: 100% (18/18), 1.58 KiB | 1.58 MiB/s, done.
Total 18 (delta 15), reused 0 (delta 0), pack-reused 0
remote: Resolving deltas: 100% (15/15), completed with 13 local objects.
To github.com:jiminny/app.git
190239dfd4..ec1b261264 JY-20613-allow-owner-role-on-team-setup -> JY-20613-allow-owner-role-on-team-setup
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20613-allow-owner-role-on-team-setup) $ gbr
* JY-20613-allow-owner-role-on-team-setup
pipedrive-sdk-poc
master
JY-20903-update_activity-stage-on-opportunity-change
JY-20904-fix-update-es-on-activity-command
JY-20891-improve-sms-text-relays
JY-20725-handle-HS-search-rate-limit
JY-20818-move-AJ-reports-to-separated-datadog-metric
JY-20773-fix-automated-reports-user-pilot-tracking
JY-20157-AJ-report-not-send-notification
JY-20508-notify-before-AJ-report-expiration
JY-20372-ai-reports-promotion-pages
JY-20352-sync-opportunities-without-a-local-owner-user-id-is-null
JY-20738-debug-AJ-tracking-UP
a
JY-18909-automated-reports-ask-jiminny
JY-20692-fix-integration-app-[API_KEY]
JY-20553-debug-crm-sync-delays
JY-20698-fix-SF-activity-types-on-new-playbook
JY-20543-AJ-report-tracking
JY-20384-handle-auto-sync-with-no-access-to-event-type
JY-20458-ask-jiminny-user-definitions
JY-19666-fix-import-contacts-account-association
JY-19666-HS-import-contacts-and-accounts-batch-job
JY-20458-Ask-Jiminny-Reports
JY-20200-batch-update-CRM-objects-Salesforce
JY-19666-HS-webhooks-add-contact-and-company
JY-20348-trigger-setup-DI-layout-on-team-creation
JY-20326-refactor-info-message-in-command
JY-20317-fix-auto-log-delay-issue-on-all-channels-disabled
JY-20312-remove-on-update-change-last-synced-at-crm-configurations
JY-20306-SF-skip-auto-sync-for-task-based-playbook
JY-20192-remove-deleted-team-from-saved-search-filters
JY-20197-import-opportunity-batch-job
JY-20293-enable-status-field-for-pipedrive-deals
JY-20191-remove-commands-interactive-prompts
JY-20118-change-default-sync-strategy
JY-20183-add-cache-on-auto-log-delay
JY-20197-add-import-opportunity-batch-job
20118-hs-opportunity-make-webhook-strategy-default
JY-20118-make-default-hs-opportunity-sync-strategy-webhook-based
JY-20196-handle-opportunity-without-note
JY-20118-improve-opportunity-import
JY-20189-handle-activity-search-on-deleted-groups
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20613-allow-owner-role-on-team-setup) $ co JY-20725-handle-HS-search-rate-limit
M .env.local
M config/logging.php
Switched to branch 'JY-20725-handle-HS-search-rate-limit'
Your branch is behind 'origin/JY-20725-handle-HS-search-rate-limit' by 439 commits, and can be fast-forwarded.
(use "git pull" to update your local branch)
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20725-handle-HS-search-rate-limit) $ git pull
Updating 0f3e438941..bc6a3fce6b
Fast-forward
.gitignore | 3 +-
.windsurfrules | 168 ++---
CLAUDE.md | 1 +
app/Component/ActivityAnalytics/Service/CalculateTalkTimeOffsetsFromTranscription.php | 24 +-
app/Component/AiActivityType/Services/AiActivityTypeEligibilityChecker.php | 28 +-
app/Component/AiAutomation/Actions/PrepareUpdateDtoAction.php | 32 +-
app/Component/AiAutomation/Services/CrmFillingEligibilityChecker.php | 47 ++
app/Component/AiAutomation/TestCrmAiPromptService.php | 14 +
app/Component/AiCallScoring/Services/AiCallScoringEligibilityChecker.php | 9 +
app/Component/ES/ElasticSearchDocumentPartialUpdater.php | 13 +-
app/Component/ES/ElasticSearchWorkerManager.php | 86 ---
app/Component/ES/Processor/Actions/LoadDocumentsAction.php | 80 +--
app/Component/ES/Processor/EntityQueryBuilder.php | 12 +-
app/Component/ES/Processor/TargetEntitiesSelector.php | 2 +-
app/Component/ES/Processor/Traits/SkipActivityTrait.php | 25 -
app/Component/ES/Repositories/EsResetActivityRepository.php | 11 +-
app/Component/ES/Worker/ActivityWorker.php | 73 --
app/Component/ES/Worker/EntityWorker.php | 44 --
app/Component/ES/Worker/WorkerAmount.php | 60 --
app/Component/ES/Worker/WorkerInterface.php | 15 -
app/Component/ElasticSearch/Contract/Searchable.php | 4 +
app/Component/Encoding/Job/AnalyzeTrackChannelsJob.php | 20 +-
app/Component/Encoding/Service/GenerateSpeechFromSilenceService.php | 85 ++-
app/Component/FFMpeg/Services/GetSpeechIntervalsService.php | 18 +-
app/Component/LanguageDetection/Services/FindSpeechTimeService.php | 22 +-
app/Component/Nudge/Job/ProcessOrganisationImmediateNudgesJob.php | 218 +++++-
app/Component/ParagraphBreaker/Services/TranscriptionParagraphsService.php | 4 +
app/Component/ParticipantSpeech/Services/ParticipantSpeechesCreator.php | 33 +
app/Component/ParticipantSpeech/Services/ParticipantSpeechesDeleter.php | 15 +
app/Component/ParticipantSpeech/Services/ParticipantSpeechesProvider.php | 51 +-
app/Component/ParticipantSpeech/Services/ParticipantSpeechesUploader.php | 36 +
app/Component/ProphetAi/Exceptions/InsufficientTranscriptException.php | 11 +
app/Component/Transcription/DTO/Http/Transcription/AssemblyAI/AssemblyAI/NoAssemblyIdException.php | 11 +
app/Component/Transcription/DTO/Http/Transcription/AssemblyAI/AssemblyAI/SuccessfulResponse.php | 6 +
app/Component/Transcription/DTO/Http/Transcription/TranscriptionIsNotCorrectFormatException.php | 11 +
app/Component/Transcription/Diarization/Services/GetNormalizedParticipantSpeechesService.php | 23 +-
app/Component/Transcription/Diarization/Source/MeetingBotSource.php | 16 +-
app/Component/Transcription/TranscriptionProcessor/TranscriptionProcessor.php | 3 +
app/Console/Commands/Activities/ActivityHardDeleteCommand.php | 4 +-
app/Console/Commands/Activities/Copy.php | 2 +
app/Console/Commands/Activities/SetupIntegration/TwilioSetS3RecordingCredentialsCommand.php | 119 ++++
app/Console/Commands/Activities/UpdateActivityElasticSearchDocumentCommand.php | 10 +-
app/Console/Commands/Crm/BackfillOpportunityUserFromAccountCommand.php | 126 ++++
app/Console/Commands/Elasticsearch/AsyncUpdateEsActivities.php | 19 -
app/Console/Commands/Elasticsearch/AsyncUpdateEsEntities.php | 50 +-
app/Console/Commands/Elasticsearch/ResetAsyncElasticSearchCommand.php | 30 +-
app/Console/Commands/GeckoExport/GeckoExportParticipantSpeechesCommand.php | 14 +-
app/Console/Commands/IssueMcpTokenCommand.php | 84 +++
app/Console/Commands/JiminnyDebugCommand.php | 7 +-
app/Console/Commands/Tracks/CleanupActivityTracksCommand.php | 2 +-
app/Console/Kernel.php | 6 +-
app/Contracts/Services/Calendar/CalendarTrait.php | 80 ++-
app/Events/AutomatedReports/AutomatedReportGenerated.php | 3 +
app/Http/Controllers/API/AiCallScoring/AiScorecardController.php | 7 +-
app/Http/Controllers/API/TeamAiAutomationController.php | 8 +
app/Http/Controllers/CustomerApi/CustomerApiController.php | 4 +-
app/Http/Controllers/Kiosk/ActivityController.php | 58 +-
app/Http/Controllers/Settings/PlaybookController.php | 15 +-
app/Http/Kernel.php | 23 +
app/Http/Middleware/McpAuditMiddleware.php | 156 ++++
app/Http/Middleware/McpTierMiddleware.php | 54 ++
app/Http/Requests/API/V2/ZapierUploadActivityRequest.php | 28 +-
app/Jobs/Activity/Import/ImportTwilioVideoSpeechesJob.php | 25 +-
app/Jobs/Activity/Import/IsActivityReadyForProcessingJob.php | 10 +-
app/Jobs/Calendar/SetupCalendarSync.php | 21 +-
app/Jobs/ImportRemoteTrackJob.php | 96 ++-
app/Jobs/Mailbox/EmailTextRelay.php | 15 +-
app/Mcp/Contracts/McpCallRepositoryInterface.php | 30 +
app/Mcp/DTO/ListCallsFilters.php | 29 +
app/Mcp/Errors/McpError.php | 123 ++++
app/Mcp/Repositories/McpActivityHydrator.php | 145 ++++
app/Mcp/Repositories/McpCallRepository.php | 84 +++
app/Mcp/Repositories/McpElasticCallRepository.php | 171 +++++
app/Mcp/Servers/JiminnyServer.php | 38 +
app/Mcp/Tools/ListCallsTool.php | 205 ++++++
app/Models/Activity.php | 10 +-
app/Models/Activity/Transcription.php | 17 +-
app/Models/ElasticSearch/OpportunityElasticSearchTrait.php | 5 +
app/Models/Participant.php | 1 +
app/Providers/AppServiceProvider.php | 22 +
app/Repositories/Crm/ContactRepository.php | 69 +-
app/Repositories/ParticipantSpeechRepository.php | 13 +-
app/Services/Activity/ParticipantsService.php | 19 +-
app/Services/Activity/Twilio/S3RecordingCredentialsService.php | 82 +++
app/Services/ActivityService.php | 21 +-
app/Services/Calendar/CalendarActivityService.php | 46 ++
app/Services/Calendar/Command/ImportParticipants.php | 1 +
app/Services/Calendar/Command/MapActivityData.php | 106 +--
app/Services/Calendar/GoogleCalendarService.php | 12 +-
app/Services/Crm/Close/Processor/OpportunityProcessor.php | 2 +-
app/Services/Crm/Close/Service.php | 22 +-
app/Services/Crm/Copper/Service.php | 12 +-
app/Services/Crm/Hubspot/Service.php | 154 +++-
app/Services/Crm/Hubspot/ServiceTraits/OpportunitySyncTrait.php | 88 ++-
app/Services/Crm/IntegrationApp/ServiceTraits/SyncCrmEntitiesTrait.php | 22 +-
app/Services/Crm/Pipedrive/Service.php | 17 +-
app/Services/Crm/Salesforce/Service.php | 42 +-
app/Services/Mail/Office/EmailApiClient.php | 129 +---
app/Services/RecallAI/Commands/ScheduleBotCommand.php | 39 +-
app/Services/RecallAI/RecallAIService.php | 22 +-
composer.json | 3 +-
composer.lock | 87 ++-
config/mcp.php | 23 +
database/migrations/2026_04_30_120000_create_mcp_audit_log_table.php | 36 +
docs/mcp/explorer/explorer.html | 697 ++++++++++++++++++
docs/mcp/explorer/explorer.template.html | 697 ++++++++++++++++++
docs/mcp/explorer/generate.js | 215 ++++++
docs/mcp/explorer/tool-explorer-meta.json | 11 +
docs/mcp/tools-list.json | 2536 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
docs/mcp/tools.md | 621 ++++++++++++++++
front-end/package.json | 4 +-
front-end/src/components/Settings/OrgSettings/AiAutomation/CrmFilling/TemplateFieldForm.vue | 28 +-
front-end/src/components/Settings/OrgSettings/Playbooks/AddEditPlaybook.vue | 10 +
front-end/src/components/playback/comments/ActivityComment.less | 10 +-
front-end/src/components/shared/PromptTester/PromptTester.vue | 12 +-
front-end/src/components/shared/__tests__/PromptTester.spec.js | 35 +
front-end/src/components/shared/modals/EntityPickerModal/__tests__/useEntitiesCache.spec.ts | 37 +
front-end/src/components/shared/modals/EntityPickerModal/useEntitiesCache.ts | 9 +
front-end/yarn.lock | 16 +-
phpstan-baseline.neon | 50 --
routes/api.php | 11 +
sonar-project.properties | 91 ++-
tests/Feature/Component/Nudge/ProcessOrganisationImmediateNudgesJobTest.php | 534 ++++++++++++++
tests/Feature/Jobs/ImportRemoteTrackJobTest.php | 283 +++++++-
tests/Feature/Mcp/IssueMcpTokenCommandTest.php | 53 ++
tests/Feature/Mcp/ListCallsToolElasticFeatureTest.php | 155 ++++
tests/Feature/Mcp/ListCallsToolFeatureTest.php | 352 ++++++++++
tests/Feature/Mcp/McpTestHelpersTrait.php | 77 ++
tests/Feature/Services/Team/TeamDeleteHandlers/Retention/RetentionRepositoryHandlerTest.php | 1 +
tests/Stubs/SentryStub.php | 18 +
tests/Unit/Component/ActivityAnalytics/Service/CalculateTalkTimeOffsetFromTranscriptionTest.php | 28 +-
tests/Unit/Component/AiActivityType/Services/AiActivityTypeEligibilityCheckerTest.php | 103 ++-
tests/Unit/Component/AiAutomation/Actions/PrepareUpdateDtoActionTest.php | 91 +++
tests/Unit/Component/AiAutomation/Services/CrmFillingEligibilityCheckerTest.php | 124 ++++
tests/Unit/Component/AiAutomation/TestCrmAiPromptServiceTest.php | 67 +-
tests/Unit/Component/AiCallScoring/Services/AiCallScoringEligibilityCheckerTest.php | 55 ++
tests/Unit/Component/ES/ElasticSearchWorkerManagerTest.php | 135 ----
tests/Unit/Component/ES/Processor/Actions/LoadDocumentsActionTest.php | 220 ++++++
tests/Unit/Component/ES/Processor/EntityQueryBuilderTest.php | 21 +-
tests/Unit/Component/ES/Processor/Traits/SkipActivityTraitTest.php | 51 --
tests/Unit/Component/ES/Worker/ActivityWorkerTest.php | 174 -----
tests/Unit/Component/ES/Worker/EntityWorkerTest.php | 97 ---
tests/Unit/Component/ES/Worker/WorkerAmountTest.php | 116 ---
tests/Unit/Component/Encoding/Job/AnalyzeTrackChannelsJobTest.php | 52 +-
tests/Unit/Component/Encoding/Service/GenerateSpeechFromSilenceServiceTest.php | 171 ++---
tests/Unit/Component/FFMpeg/Services/GetSpeechIntervalsTest.php | 36 +-
tests/Unit/Component/LanguageDetection/Services/FindSpeechTimeServiceTest.php | 20 +-
tests/Unit/Component/MobileSettings/MobileSettingsControllerTest.php | 5 +-
tests/Unit/Component/ParticipantSpeech/Services/ParticipantSpeechesCreatorTest.php | 75 ++
tests/Unit/Component/ParticipantSpeech/Services/ParticipantSpeechesDeleterTest.php | 63 ++
tests/Unit/Component/ParticipantSpeech/Services/ParticipantSpeechesProviderTest.php | 134 ++++
tests/Unit/Component/ParticipantSpeech/Services/ParticipantSpeechesUploaderTest.php | 57 ++
tests/Unit/Component/Transcription/Diarization/Services/GetNormalizedParticipantSpeechesServiceTest.php | 51 +-
tests/Unit/Component/Transcription/Diarization/Source/MeetingBotSourceTest.php | 29 +-
tests/Unit/Contracts/Services/Calendar/CalendarTraitTest.php | 58 +-
tests/Unit/Http/Controllers/Kiosk/ActivityControllerTest.php | 159 +++++
tests/Unit/Jobs/Activity/Import/ImportTwilioVideoSpeechesJobTest.php | 22 +-
tests/Unit/Jobs/Activity/Import/IsActivityReadyForProcessingJobTest.php | 26 +-
tests/Unit/Jobs/Calendar/SetupCalendarSyncTest.php | 25 -
tests/Unit/Services/Activity/ParticipantsServiceTest.php | 12 +-
tests/Unit/Services/Activity/Twilio/S3RecordingCredentialsServiceTest.php | 180 +++++
tests/Unit/Services/ActivityServiceTest.php | 132 ++++
tests/Unit/Services/Calendar/CalendarActivityServiceTest.php | 150 +++-
tests/Unit/Services/Calendar/Command/ImportParticipantsTest.php | 6 +-
tests/Unit/Services/Calendar/Command/MapActivityDataTest.php | 78 +-
tests/Unit/Services/Calendar/GoogleCalendarServiceTest.php | 116 +++
tests/Unit/Services/Crm/Close/ServiceTest.php | 165 +++++
tests/Unit/Services/Crm/Hubspot/ServiceTest.php | 272 ++++++-
tests/Unit/Services/Crm/Hubspot/ServiceTraits/OpportunitySyncTest.php | 25 +-
tests/Unit/Services/Crm/Hubspot/ServiceTraits/OpportunitySyncTraitMatchActivitiesTest.php | 3 +-
tests/Unit/Services/Crm/IntegrationApp/ServiceTraits/SyncCrmEntitiesTraitOpportunitiesTest.php | 40 ++
tests/Unit/Services/Crm/Pipedrive/ImportOpportunityMatchActivitiesTest.php | 2 +
tests/Unit/Services/Crm/Salesforce/ServiceTest.php | 139 ++++
tests/Unit/Services/Mail/Office/EmailApiClientTest.php | 195 ++---
tests/Unit/Services/RecallAI/RecallAIServiceTest.php | 24 +-
175 files changed, 12562 insertions(+), 2162 deletions(-)
create mode 120000 CLAUDE.md
create mode 100644 app/Component/AiAutomation/Services/CrmFillingEligibilityChecker.php
delete mode 100644 app/Component/ES/ElasticSearchWorkerManager.php
delete mode 100644 app/Component/ES/Processor/Traits/SkipActivityTrait.php
delete mode 100644 app/Component/ES/Worker/ActivityWorker.php
delete mode 100644 app/Component/ES/Worker/EntityWorker.php
delete mode 100644 app/Component/ES/Worker/WorkerAmount.php
delete mode 100644 app/Component/ES/Worker/WorkerInterface.php
create mode 100644 app/Component/ProphetAi/Exceptions/InsufficientTranscriptException.php
create mode 100644 app/Component/Transcription/DTO/Http/Transcription/AssemblyAI/AssemblyAI/NoAssemblyIdException.php
create mode 100644 app/Component/Transcription/DTO/Http/Transcription/TranscriptionIsNotCorrectFormatException.php
create mode 100644 app/Console/Commands/Activities/SetupIntegration/TwilioSetS3RecordingCredentialsCommand.php
create mode 100644 app/Console/Commands/Crm/BackfillOpportunityUserFromAccountCommand.php
delete mode 100644 app/Console/Commands/Elasticsearch/AsyncUpdateEsActivities.php
create mode 100644 app/Console/Commands/IssueMcpTokenCommand.php
create mode 100644 app/Http/Middleware/McpAuditMiddleware.php
create mode 100644 app/Http/Middleware/McpTierMiddleware.php
create mode 100644 app/Mcp/Contracts/McpCallRepositoryInterface.php
create mode 100644 app/Mcp/DTO/ListCallsFilters.php
create mode 100644 app/Mcp/Errors/McpError.php
create mode 100644 app/Mcp/Repositories/McpActivityHydrator.php
create mode 100644 app/Mcp/Repositories/McpCallRepository.php
create mode 100644 app/Mcp/Repositories/McpElasticCallRepository.php
create mode 100644 app/Mcp/Servers/JiminnyServer.php
create mode 100644 app/Mcp/Tools/ListCallsTool.php
create mode 100644 app/Services/Activity/Twilio/S3RecordingCredentialsService.php
create mode 100644 config/mcp.php
create mode 100644 database/migrations/2026_04_30_120000_create_mcp_audit_log_table.php
create mode 100644 docs/mcp/explorer/explorer.html
create mode 100644 docs/mcp/explorer/explorer.template.html
create mode 100644 docs/mcp/explorer/generate.js
create mode 100644 docs/mcp/explorer/tool-explorer-meta.json
create mode 100644 docs/mcp/tools-list.json
create mode 100644 docs/mcp/tools.md
create mode 100644 front-end/src/components/shared/modals/EntityPickerModal/__tests__/useEntitiesCache.spec.ts
create mode 100644 tests/Feature/Component/Nudge/ProcessOrganisationImmediateNudgesJobTest.php
create mode 100644 tests/Feature/Mcp/IssueMcpTokenCommandTest.php
create mode 100644 tests/Feature/Mcp/ListCallsToolElasticFeatureTest.php
create mode 100644 tests/Feature/Mcp/ListCallsToolFeatureTest.php
create mode 100644 tests/Feature/Mcp/McpTestHelpersTrait.php
create mode 100644 tests/Stubs/SentryStub.php
create mode 100644 tests/Unit/Component/AiAutomation/Services/CrmFillingEligibilityCheckerTest.php
delete mode 100644 tests/Unit/Component/ES/ElasticSearchWorkerManagerTest.php
create mode 100644 tests/Unit/Component/ES/Processor/Actions/LoadDocumentsActionTest.php
delete mode 100644 tests/Unit/Component/ES/Processor/Traits/SkipActivityTraitTest.php
delete mode 100644 tests/Unit/Component/ES/Worker/ActivityWorkerTest.php
delete mode 100644 tests/Unit/Component/ES/Worker/EntityWorkerTest.php
delete mode 100644 tests/Unit/Component/ES/Worker/WorkerAmountTest.php
create mode 100644 tests/Unit/Component/ParticipantSpeech/Services/ParticipantSpeechesCreatorTest.php
create mode 100644 tests/Unit/Http/Controllers/Kiosk/ActivityControllerTest.php
create mode 100644 tests/Unit/Services/Activity/Twilio/S3RecordingCredentialsServiceTest.php
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20725-handle-HS-search-rate-limit) $ git status
On branch master
Your branch is behind 'origin/master' by 114 commits, and can be fast-forwarded.
(use "git pull" to update your local branch)
Changes not staged for commit:
(use "git add <file>..." to update what will be committed)
(use "git restore <file>..." to discard changes in working directory)
modified: .env.local
modified: app/Component/SCIM/Constants.php
modified: app/Component/SCIM/ScimProvisioning.php
modified: app/Component/Twilio/Conference/ConferenceManager/SoftPhoneManager.php
modified: app/Console/Commands/JiminnyDebugCommand.php
modified: app/DTO/SCIM/AAD/Request/CoreUserRequest.php
modified: app/DTO/SCIM/AAD/Response/CoreUser.php
modified: app/Services/Telephony/TextMessagingService.php
modified: config/logging.php
Untracked files:
(use "git add <file>..." to include in what will be committed)
.env.nikilocal
.env.other
WEBHOOK_FILTERING_IMPLEMENTATION.md
app/Component/SCIM/Mutators/Attributes/User/RoleAttr.php
app/Console/Commands/Crm/Hubspot/SimulateWebhooksCommand.php
app/Console/Commands/Reports/CreateMockAskJiminnyReportResultCommand.php
app/Rules/ListenerRoleCannotHaveAdminOrManagerPermissionRule.php
ids.txt
public/favicon.ico
raw_sql_query.sql
tests/Unit/Component/SCIM/Mutators/Attributes/User/RoleAttrTest.php
tests/Unit/Policies/CanAccessAiReportsTest.php
tests/Unit/Rules/ListenerRoleCannotHaveAdminOrManagerPermissionRuleTest.php
no changes added to commit (use "git add" and/or "git commit -a")
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (master) $ git pull
remote: Enumerating objects: 306, done.
remote: Counting objects: 100% (299/299), done.
remote: Compressing objects: 100% (183/183), done.
remote: Total 306 (delta 213), reused 171 (delta 116), pack-reused 7 (from 1)
Receiving objects: 100% (306/306), 80.12 KiB | 1000.00 KiB/s, done.
Resolving deltas: 100% (213/213), completed with 53 local objects.
From github.com:jiminny/app
90bca4e4b2..5604af40cf master -> origin/master
4e7078fd8b..0b8343d179 JY-18091-upgrade-to-php-8-5 -> origin/JY-18091-upgrade-to-php-8-5
098eeaa087..d5a447e492 JY-20613-allow-owner-role-on-team-setup -> origin/JY-20613-allow-owner-role-on-team-setup
c3a76ace91..af65249d0f JY-20749-user-can-view-recorded-meetings -> origin/JY-20749-user-can-view-recorded-meetings
d94a285ae7..7ce96cb5fe JY-20808-low-priority-indexing-queue -> origin/JY-20808-low-priority-indexing-queue
* [new branch] JY-20842-remove-partial-updater -> origin/JY-20842-remove-partial-updater
* [new branch] JY-20920-fix-participant-flip -> origin/JY-20920-fix-participant-flip
* [new branch] secfix/npm-20260519 -> origin/secfix/npm-20260519
Updating cb4ebf0c36..5604af40cf
Fast-forward
app/Component/ES/ChunkSize.php | 54 +++++++++++++++++++
app/Component/ES/Processor/DTOs/SelectionList.php | 4 +-
app/Component/ES/Processor/TargetEntitiesSelector.php | 19 ++++---
app/Component/MeetingBot/Service/ParticipantMatcher.php | 46 ++++++++++++----
app/Exceptions/RateLimitException.php | 19 ++++++-
app/Http/Middleware/McpTierMiddleware.php | 27 ++--------
app/Jobs/Crm/MatchActivityCrmData.php | 47 ++++++++++++----
app/Jobs/Middleware/HandleHubspotRateLimit.php | 42 +++++++++++++++
app/Mcp/Servers/JiminnyServer.php | 2 +
app/Mcp/Tools/GetMeTool.php | 157 +++++++++++++++++++++++++++++++++++++++++++++++++++++
app/Models/Feature/FeatureEnum.php | 1 +
app/Services/Activity/HubSpot/ProviderResolver.php | 4 +-
app/Services/Activity/HubSpot/ProviderResolverInterface.php | 2 +-
app/Services/Activity/HubSpot/Providers/Provider.php | 2 +-
app/Services/Activity/HubSpot/Providers/ProviderKixie.php | 2 +-
app/Services/Activity/HubSpot/Providers/ProviderOrum.php | 2 +-
app/Services/Activity/HubSpot/Providers/ProviderTwilio.php | 2 +-
app/Services/Activity/HubSpot/Providers/ProviderTwilioFlex.php | 5 +-
app/Services/Activity/HubSpot/Service.php | 97 +++++++++++++++++++++++++++------
app/Services/Crm/Hubspot/Client.php | 132 +++++++++++++++++++++++++++++++++++++++++++++
app/Services/Crm/Hubspot/HubspotClientInterface.php | 15 ++++++
app/Services/Crm/Hubspot/Pagination/HubspotPaginationService.php | 21 ++++----
app/Services/Crm/Hubspot/Pagination/PaginationState.php | 2 +-
database/migrations/2026_05_13_124153_create_mcp_feature_flag.php | 25 +++++++++
tests/Feature/Mcp/GetMeToolFeatureTest.php | 140 +++++++++++++++++++++++++++++++++++++++++++++++
tests/Feature/Mcp/ListCallsToolFeatureTest.php | 2 +-
tests/Feature/Mcp/McpTestHelpersTrait.php | 19 ++++++-
tests/Unit/Component/ES/ChunkSizeTest.php | 50 +++++++++++++++++
tests/Unit/Component/ES/Processor/DTOs/SelectionListTest.php | 27 +++++++---
tests/Unit/Component/ES/Processor/TargetEntitiesSelectorTest.php | 39 ++++++++------
tests/Unit/Component/MeetingBot/Service/ParticipantMatcherTest.php | 68 ++++++++++++++++++++++-
tests/Unit/Exceptions/RateLimitExceptionTest.php | 56 +++++++++++++++++++
tests/Unit/Jobs/Crm/MatchActivityCrmDataTest.php | 8 +--
tests/Unit/Jobs/Middleware/HandleHubspotRateLimitTest.php | 151 +++++++++++++++++++++++++++++++++++++++++++++++++++
tests/Unit/Services/Activity/HubSpot/ServiceTest.php | 109 +++++++++++++++++++++++++++++++++++++
tests/Unit/Services/Crm/Hubspot/ClientTest.php | 250 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
tests/Unit/Services/Crm/Hubspot/Pagination/HubspotPaginationServiceTest.php | 283 +++++++++++++++++++++---------------------------------------------------------------------------
37 files changed, 1587 insertions(+), 344 deletions(-)
create mode 100644 app/Component/ES/ChunkSize.php
create mode 100644 app/Jobs/Middleware/HandleHubspotRateLimit.php
create mode 100644 app/Mcp/Tools/GetMeTool.php
create mode 100644 database/migrations/2026_05_13_124153_create_mcp_feature_flag.php
create mode 100644 tests/Feature/Mcp/GetMeToolFeatureTest.php
create mode 100644 tests/Unit/Component/ES/ChunkSizeTest.php
create mode 100644 tests/Unit/Exceptions/RateLimitExceptionTest.php
create mode 100644 tests/Unit/Jobs/Middleware/HandleHubspotRateLimitTest.php
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (master) $ git pull
Already up to date.
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (master) $ co -b JY-20676-delete-report-related-objects
Switched to a new branch 'JY-20676-delete-report-related-objects'
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20676-delete-report-related-objects) $ csfix
docker exec -it docker_lamp_1 ./vendor/bin/php-cs-fixer fix --config=.php-cs-fixer.dist.php -v --using-cache=no --diff
PHP CS Fixer 3.87.1 Alexander by Fabien Potencier, Dariusz Ruminski and contributors.
PHP runtime: 8.3.30
Running 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!
Loaded config default from ".php-cs-fixer.dist.php".
5690/5690 [▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓] 100%
1) app/Console/Commands/JiminnyDebugCommand.php (statement_indentation, blank_line_before_statement)
---------- begin diff ----------
--- /home/jiminny/app/Console/Commands/JiminnyDebugCommand.php
+++ /home/jiminny/app/Console/Commands/JiminnyDebugCommand.php
@@ -23,6 +23,7 @@
if ($action === 'redis-set') {
$this->testRedisSet();
+
return;
}
@@ -45,7 +46,7 @@
$ttl = 60;
try {
-// $result = Redis::set($testKey, $testValue, 'EX', $ttl, 'NX');
+ // $result = Redis::set($testKey, $testValue, 'EX', $ttl, 'NX');
$result = Redis::set($testKey, $testValue, ['nx', 'ex' => $ttl]);
if ($result) {
----------- end diff -----------
Fixed 1 of 5690 files i...
|
[{"role":"AXTextArea","text [{"role":"AXTextArea","text":"Last login: Mon May 18 09:17:28 on ttys007\n\nPoetry could not find a pyproject.toml file in /Users/lukas/jiminny/app or its parents\n\nPoetry could not find a pyproject.toml file in /Users/lukas/jiminny/app or its parents\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (pipedrive-sdk-poc) $ co master\nerror: Your local changes to the following files would be overwritten by checkout:\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tPIPEDRIVE_V2_MIGRATION_TICKETS.md\nPlease commit your changes or stash them before you switch branches.\nAborting\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (pipedrive-sdk-poc) $ git pull\nremote: Enumerating objects: 1047, done.\nremote: Counting objects: 100% (832/832), done.\nremote: Compressing objects: 100% (298/298), done.\nremote: Total 1047 (delta 634), reused 596 (delta 534), pack-reused 215 (from 3)\nReceiving objects: 100% (1047/1047), 353.16 KiB | 1.56 MiB/s, done.\nResolving deltas: 100% (687/687), completed with 107 local objects.\nFrom github.com:jiminny/app\n 907c54896c..34656c53ed pipedrive-sdk-poc -> origin/pipedrive-sdk-poc\n 03325ec50f..4e7078fd8b JY-18091-upgrade-to-php-8-5 -> origin/JY-18091-upgrade-to-php-8-5\n e7d231e163..bc6a3fce6b JY-20725-handle-HS-search-rate-limit -> origin/JY-20725-handle-HS-search-rate-limit\n * [new branch] JY-20749-user-can-view-recorded-meetings -> origin/JY-20749-user-can-view-recorded-meetings\n 98ca281a04..e0351be069 JY-20808-low-priority-indexing-queue -> origin/JY-20808-low-priority-indexing-queue\n 569abb5149..3906a9238a JY-20835-mcp-enable-users-to-get-a-list-of-deals-and-their-details -> origin/JY-20835-mcp-enable-users-to-get-a-list-of-deals-and-their-details\n ad6c2a86e8..50eb6afba9 JY-20846-mcp-enable-the-ai-to-know-details-about-the-user -> origin/JY-20846-mcp-enable-the-ai-to-know-details-about-the-user\n * [new branch] JY-20893-chunk-control-per-update-target -> origin/JY-20893-chunk-control-per-update-target\n 31c62924a5..cb4ebf0c36 master -> origin/master\nUpdating 907c54896c..34656c53ed\nFast-forward\n PIPEDRIVE_V2_MIGRATION_TICKETS.md | 52 ++++++++++++++++++++++++++++++++++++++++++++++++++++\n 1 file changed, 52 insertions(+)\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (pipedrive-sdk-poc) $ co master\nM\u0000\u0000\u0000\u0000\u0000\u0000\t.env.local\nM\u0000\u0000\u0000\u0000\u0000\u0000\tconfig/logging.php\nSwitched to branch 'master'\nYour branch is behind 'origin/master' by 31 commits, and can be fast-forwarded.\n (use \"git pull\" to update your local branch)\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (master) $ git pull\nUpdating 31c62924a5..cb4ebf0c36\nFast-forward\n app/Component/ES/Processor/Traits/SelectEntityListTrait.php | 20 ------\n app/Services/Calendar/CalendarActivityService.php | 46 +++++++++++++\n app/Services/Calendar/Command/MapActivityData.php | 106 +++-------------------------\n docs/mcp/explorer/explorer.html | 104 +++++++++++++++++++++++++---\n docs/mcp/explorer/explorer.template.html | 102 ++++++++++++++++++++++++---\n docs/mcp/tools-list.json | 373 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++-------\n docs/mcp/tools.md | 117 +++++++++++++++++++++++--------\n tests/Unit/Component/ES/AsyncUpdateElasticSearchTest.php | 16 +----\n tests/Unit/Component/ES/Listeners/UpdateMultipleTargetsListenerTest.php | 10 ---\n tests/Unit/Component/ES/Listeners/UpdateSingleTargetListenerTest.php | 6 --\n tests/Unit/Component/ES/Processor/TargetEntitiesSelectorTest.php | 9 ---\n tests/Unit/Component/ES/Processor/Traits/SelectEntityListTraitTest.php | 15 ++--\n tests/Unit/Component/ES/UpdateProcessManagerTest.php | 2 -\n tests/Unit/Services/Calendar/CalendarActivityServiceTest.php | 150 ++++++++++++++++++++++++++++++++++++++--\n tests/Unit/Services/Calendar/Command/MapActivityDataTest.php | 78 ++-------------------\n 15 files changed, 832 insertions(+), 322 deletions(-)\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (master) $ co -b JY-20613-allow-owner-role-on-team-setup\nSwitched to a new branch 'JY-20613-allow-owner-role-on-team-setup'\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20613-allow-owner-role-on-team-setup) $ csfix\ndocker exec -it docker_lamp_1 ./vendor/bin/php-cs-fixer fix --config=.php-cs-fixer.dist.php -v --using-cache=no --diff \nPHP CS Fixer 3.87.1 Alexander by Fabien Potencier, Dariusz Ruminski and contributors.\nPHP runtime: 8.3.30\nRunning analysis on 7 cores with 10 files per process.\nParallel runner is an experimental feature and may be unstable, use it at your own risk. Feedback highly appreciated!\nLoaded config default from \".php-cs-fixer.dist.php\".\n 5682/5682 [▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓] 100%\n\n\nFixed 0 of 5682 files in 56.978 seconds, 67.00 MB memory used\n\nWhat's next:\n Try Docker Debug for seamless, persistent debugging tools in any container or image → docker debug docker_lamp_1\n Learn more at https://docs.docker.com/go/debug-cli/\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20613-allow-owner-role-on-team-setup) $ ;xd\ndocker exec -it docker_lamp_1 bash -c \"mv /usr/local/etc/php/conf.d/xdebug.ini ~/xdebug.ini\"\n\nWhat's next:\n Try Docker Debug for seamless, persistent debugging tools in any container or image → docker debug docker_lamp_1\n Learn more at https://docs.docker.com/go/debug-cli/\ndocker exec -it docker_lamp_1 supervisorctl restart all\njiminny-worker-processing-2:jiminny-worker-processing-2_00: stopped\njiminny-worker-processing-3:jiminny-worker-processing-3_00: stopped\njiminny-worker-processing-4:jiminny-worker-processing-4_00: stopped\njiminny-worker-processing-5:jiminny-worker-processing-5_00: stopped\njiminny-worker-processing-delayed:jiminny-worker-processing-delayed_00: stopped\nworker-analytics:worker-analytics_00: stopped\nworker-crm-update:worker-crm-update_00: stopped\nworker-download:worker-download_00: stopped\nworker-nudges:worker-nudges_00: stopped\nartisan-schedule:artisan-schedule_00: stopped\nworker-emails:worker-emails_00: stopped\nworker-calendar:worker-calendar_00: stopped\nworker:worker_00: stopped\nworker-conferences:worker-conferences_00: stopped\nworker-crm-sync:worker-crm-sync_00: stopped\njiminny-worker-processing-1:jiminny-worker-processing-1_00: stopped\nworker-audio:worker-audio_00: stopped\nworker-es-update:worker-es-update_00: stopped\nartisan-schedule:artisan-schedule_00: started\njiminny-worker-processing-1:jiminny-worker-processing-1_00: started\njiminny-worker-processing-2:jiminny-worker-processing-2_00: started\njiminny-worker-processing-3:jiminny-worker-processing-3_00: started\njiminny-worker-processing-4:jiminny-worker-processing-4_00: started\njiminny-worker-processing-5:jiminny-worker-processing-5_00: started\njiminny-worker-processing-delayed:jiminny-worker-processing-delayed_00: started\nworker:worker_00: started\nworker-analytics:worker-analytics_00: started\nworker-audio:worker-audio_00: started\nworker-calendar:worker-calendar_00: started\nworker-conferences:worker-conferences_00: started\nworker-crm-sync:worker-crm-sync_00: started\nworker-crm-update:worker-crm-update_00: started\nworker-download:worker-download_00: started\nworker-emails:worker-emails_00: started\nworker-es-update:worker-es-update_00: started\nworker-nudges:worker-nudges_00: started\n\nWhat's next:\n Try Docker Debug for seamless, persistent debugging tools in any container or image → docker debug docker_lamp_1\n Learn more at https://docs.docker.com/go/debug-cli/\ndocker exec -it docker_lamp_1 php -v\nPHP 8.3.30 (cli) (built: Mar 16 2026 22:32:32) (NTS)\nCopyright (c) The PHP Group\nZend Engine v4.3.30, Copyright (c) Zend Technologies\n with Zend OPcache v8.3.30, Copyright (c), by Zend Technologies\n\nWhat's next:\n Try Docker Debug for seamless, persistent debugging tools in any container or image → docker debug docker_lamp_1\n Learn more at https://docs.docker.com/go/debug-cli/\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20613-allow-owner-role-on-team-setup) $ csfix\ndocker exec -it docker_lamp_1 ./vendor/bin/php-cs-fixer fix --config=.php-cs-fixer.dist.php -v --using-cache=no --diff \nPHP CS Fixer 3.87.1 Alexander by Fabien Potencier, Dariusz Ruminski and contributors.\nPHP runtime: 8.3.30\nRunning analysis on 7 cores with 10 files per process.\nParallel runner is an experimental feature and may be unstable, use it at your own risk. Feedback highly appreciated!\nLoaded config default from \".php-cs-fixer.dist.php\".\n 5682/5682 [▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓] 100%\n\n\nFixed 0 of 5682 files in 49.910 seconds, 60.00 MB memory used\n\nWhat's next:\n Try Docker Debug for seamless, persistent debugging tools in any container or image → docker debug docker_lamp_1\n Learn more at https://docs.docker.com/go/debug-cli/\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20613-allow-owner-role-on-team-setup) $ git status\nOn branch JY-20613-allow-owner-role-on-team-setup\nYour branch is ahead of 'origin/JY-20613-allow-owner-role-on-team-setup' by 1 commit.\n (use \"git push\" to publish your local commits)\n\nChanges not staged for commit:\n (use \"git add <file>...\" to update what will be committed)\n (use \"git restore <file>...\" to discard changes in working directory)\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tmodified: .env.local\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tmodified: config/logging.php\n\nUntracked files:\n (use \"git add <file>...\" to include in what will be committed)\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\t.env.nikilocal\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\t.env.other\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tWEBHOOK_FILTERING_IMPLEMENTATION.md\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tapp/Console/Commands/Crm/Hubspot/SimulateWebhooksCommand.php\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tapp/Console/Commands/Reports/CreateMockAskJiminnyReportResultCommand.php\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tids.txt\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tpublic/favicon.ico\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\traw_sql_query.sql\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\ttests/Unit/Policies/CanAccessAiReportsTest.php\n\nno changes added to commit (use \"git add\" and/or \"git commit -a\")\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20613-allow-owner-role-on-team-setup) $ git pull\nremote: Enumerating objects: 248, done.\nremote: Counting objects: 100% (128/128), done.\nremote: Compressing objects: 100% (23/23), done.\nremote: Total 59 (delta 43), reused 44 (delta 33), pack-reused 0 (from 0)\nUnpacking objects: 100% (59/59), 10.48 KiB | 228.00 KiB/s, done.\nFrom github.com:jiminny/app\n b7df560451..190239dfd4 JY-20613-allow-owner-role-on-team-setup -> origin/JY-20613-allow-owner-role-on-team-setup\n e0351be069..d94a285ae7 JY-20808-low-priority-indexing-queue -> origin/JY-20808-low-priority-indexing-queue\n * [new branch] JY-20920-fix-participant-matcher -> origin/JY-20920-fix-participant-matcher\n cb4ebf0c36..90bca4e4b2 master -> origin/master\nMerge made by the 'ort' strategy.\n app/Component/ES/ChunkSize.php | 54 +++++++++++++++++++++++++++\n app/Component/ES/Processor/DTOs/SelectionList.php | 4 +-\n app/Component/ES/Processor/TargetEntitiesSelector.php | 19 ++++++----\n app/Http/Middleware/McpTierMiddleware.php | 27 +++-----------\n app/Mcp/Servers/JiminnyServer.php | 2 +\n app/Mcp/Tools/GetMeTool.php | 157 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++\n app/Models/Feature/FeatureEnum.php | 1 +\n database/migrations/2026_05_13_124153_create_mcp_feature_flag.php | 25 +++++++++++++\n front-end/src/components/Settings/Kiosk/modals/EditTeamModal/EditTeamModal.vue | 52 ++++++++++++++++++--------\n front-end/src/components/Settings/Kiosk/modals/EditTeamModal/__tests__/EditTeamModal.spec.js | 14 +++++++\n tests/Feature/Mcp/GetMeToolFeatureTest.php | 140 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++\n tests/Feature/Mcp/ListCallsToolFeatureTest.php | 2 +-\n tests/Feature/Mcp/McpTestHelpersTrait.php | 19 +++++++++-\n tests/Unit/Component/ES/ChunkSizeTest.php | 50 +++++++++++++++++++++++++\n tests/Unit/Component/ES/Processor/DTOs/SelectionListTest.php | 27 ++++++++++----\n tests/Unit/Component/ES/Processor/TargetEntitiesSelectorTest.php | 39 +++++++++++---------\n 16 files changed, 557 insertions(+), 75 deletions(-)\n create mode 100644 app/Component/ES/ChunkSize.php\n create mode 100644 app/Mcp/Tools/GetMeTool.php\n create mode 100644 database/migrations/2026_05_13_124153_create_mcp_feature_flag.php\n create mode 100644 tests/Feature/Mcp/GetMeToolFeatureTest.php\n create mode 100644 tests/Unit/Component/ES/ChunkSizeTest.php\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20613-allow-owner-role-on-team-setup) $ git push\nEnumerating objects: 40, done.\nCounting objects: 100% (34/34), done.\nDelta compression using up to 8 threads\nCompressing objects: 100% (18/18), done.\nWriting objects: 100% (18/18), 1.58 KiB | 1.58 MiB/s, done.\nTotal 18 (delta 15), reused 0 (delta 0), pack-reused 0\nremote: Resolving deltas: 100% (15/15), completed with 13 local objects.\nTo github.com:jiminny/app.git\n 190239dfd4..ec1b261264 JY-20613-allow-owner-role-on-team-setup -> JY-20613-allow-owner-role-on-team-setup\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20613-allow-owner-role-on-team-setup) $ gbr\n* JY-20613-allow-owner-role-on-team-setup\n pipedrive-sdk-poc\n master\n JY-20903-update_activity-stage-on-opportunity-change\n JY-20904-fix-update-es-on-activity-command\n JY-20891-improve-sms-text-relays\n JY-20725-handle-HS-search-rate-limit\n JY-20818-move-AJ-reports-to-separated-datadog-metric\n JY-20773-fix-automated-reports-user-pilot-tracking\n JY-20157-AJ-report-not-send-notification\n JY-20508-notify-before-AJ-report-expiration\n JY-20372-ai-reports-promotion-pages\n JY-20352-sync-opportunities-without-a-local-owner-user-id-is-null\n JY-20738-debug-AJ-tracking-UP\n a\n JY-18909-automated-reports-ask-jiminny\n JY-20692-fix-integration-app-token-auth-response-change\n JY-20553-debug-crm-sync-delays\n JY-20698-fix-SF-activity-types-on-new-playbook\n JY-20543-AJ-report-tracking\n JY-20384-handle-auto-sync-with-no-access-to-event-type\n JY-20458-ask-jiminny-user-definitions\n JY-19666-fix-import-contacts-account-association\n JY-19666-HS-import-contacts-and-accounts-batch-job\n JY-20458-Ask-Jiminny-Reports\n JY-20200-batch-update-CRM-objects-Salesforce\n JY-19666-HS-webhooks-add-contact-and-company\n JY-20348-trigger-setup-DI-layout-on-team-creation\n JY-20326-refactor-info-message-in-command\n JY-20317-fix-auto-log-delay-issue-on-all-channels-disabled\n JY-20312-remove-on-update-change-last-synced-at-crm-configurations\n JY-20306-SF-skip-auto-sync-for-task-based-playbook\n JY-20192-remove-deleted-team-from-saved-search-filters\n JY-20197-import-opportunity-batch-job\n JY-20293-enable-status-field-for-pipedrive-deals\n JY-20191-remove-commands-interactive-prompts\n JY-20118-change-default-sync-strategy\n JY-20183-add-cache-on-auto-log-delay\n JY-20197-add-import-opportunity-batch-job\n 20118-hs-opportunity-make-webhook-strategy-default\n JY-20118-make-default-hs-opportunity-sync-strategy-webhook-based\n JY-20196-handle-opportunity-without-note\n JY-20118-improve-opportunity-import\n JY-20189-handle-activity-search-on-deleted-groups\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20613-allow-owner-role-on-team-setup) $ co JY-20725-handle-HS-search-rate-limit\nM\u0000\u0000\u0000\u0000\u0000\u0000\t.env.local\nM\u0000\u0000\u0000\u0000\u0000\u0000\tconfig/logging.php\nSwitched to branch 'JY-20725-handle-HS-search-rate-limit'\nYour branch is behind 'origin/JY-20725-handle-HS-search-rate-limit' by 439 commits, and can be fast-forwarded.\n (use \"git pull\" to update your local branch)\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20725-handle-HS-search-rate-limit) $ git pull\nUpdating 0f3e438941..bc6a3fce6b\nFast-forward\n .gitignore | 3 +-\n .windsurfrules | 168 ++---\n CLAUDE.md | 1 +\n app/Component/ActivityAnalytics/Service/CalculateTalkTimeOffsetsFromTranscription.php | 24 +-\n app/Component/AiActivityType/Services/AiActivityTypeEligibilityChecker.php | 28 +-\n app/Component/AiAutomation/Actions/PrepareUpdateDtoAction.php | 32 +-\n app/Component/AiAutomation/Services/CrmFillingEligibilityChecker.php | 47 ++\n app/Component/AiAutomation/TestCrmAiPromptService.php | 14 +\n app/Component/AiCallScoring/Services/AiCallScoringEligibilityChecker.php | 9 +\n app/Component/ES/ElasticSearchDocumentPartialUpdater.php | 13 +-\n app/Component/ES/ElasticSearchWorkerManager.php | 86 ---\n app/Component/ES/Processor/Actions/LoadDocumentsAction.php | 80 +--\n app/Component/ES/Processor/EntityQueryBuilder.php | 12 +-\n app/Component/ES/Processor/TargetEntitiesSelector.php | 2 +-\n app/Component/ES/Processor/Traits/SkipActivityTrait.php | 25 -\n app/Component/ES/Repositories/EsResetActivityRepository.php | 11 +-\n app/Component/ES/Worker/ActivityWorker.php | 73 --\n app/Component/ES/Worker/EntityWorker.php | 44 --\n app/Component/ES/Worker/WorkerAmount.php | 60 --\n app/Component/ES/Worker/WorkerInterface.php | 15 -\n app/Component/ElasticSearch/Contract/Searchable.php | 4 +\n app/Component/Encoding/Job/AnalyzeTrackChannelsJob.php | 20 +-\n app/Component/Encoding/Service/GenerateSpeechFromSilenceService.php | 85 ++-\n app/Component/FFMpeg/Services/GetSpeechIntervalsService.php | 18 +-\n app/Component/LanguageDetection/Services/FindSpeechTimeService.php | 22 +-\n app/Component/Nudge/Job/ProcessOrganisationImmediateNudgesJob.php | 218 +++++-\n app/Component/ParagraphBreaker/Services/TranscriptionParagraphsService.php | 4 +\n app/Component/ParticipantSpeech/Services/ParticipantSpeechesCreator.php | 33 +\n app/Component/ParticipantSpeech/Services/ParticipantSpeechesDeleter.php | 15 +\n app/Component/ParticipantSpeech/Services/ParticipantSpeechesProvider.php | 51 +-\n app/Component/ParticipantSpeech/Services/ParticipantSpeechesUploader.php | 36 +\n app/Component/ProphetAi/Exceptions/InsufficientTranscriptException.php | 11 +\n app/Component/Transcription/DTO/Http/Transcription/AssemblyAI/AssemblyAI/NoAssemblyIdException.php | 11 +\n app/Component/Transcription/DTO/Http/Transcription/AssemblyAI/AssemblyAI/SuccessfulResponse.php | 6 +\n app/Component/Transcription/DTO/Http/Transcription/TranscriptionIsNotCorrectFormatException.php | 11 +\n app/Component/Transcription/Diarization/Services/GetNormalizedParticipantSpeechesService.php | 23 +-\n app/Component/Transcription/Diarization/Source/MeetingBotSource.php | 16 +-\n app/Component/Transcription/TranscriptionProcessor/TranscriptionProcessor.php | 3 +\n app/Console/Commands/Activities/ActivityHardDeleteCommand.php | 4 +-\n app/Console/Commands/Activities/Copy.php | 2 +\n app/Console/Commands/Activities/SetupIntegration/TwilioSetS3RecordingCredentialsCommand.php | 119 ++++\n app/Console/Commands/Activities/UpdateActivityElasticSearchDocumentCommand.php | 10 +-\n app/Console/Commands/Crm/BackfillOpportunityUserFromAccountCommand.php | 126 ++++\n app/Console/Commands/Elasticsearch/AsyncUpdateEsActivities.php | 19 -\n app/Console/Commands/Elasticsearch/AsyncUpdateEsEntities.php | 50 +-\n app/Console/Commands/Elasticsearch/ResetAsyncElasticSearchCommand.php | 30 +-\n app/Console/Commands/GeckoExport/GeckoExportParticipantSpeechesCommand.php | 14 +-\n app/Console/Commands/IssueMcpTokenCommand.php | 84 +++\n app/Console/Commands/JiminnyDebugCommand.php | 7 +-\n app/Console/Commands/Tracks/CleanupActivityTracksCommand.php | 2 +-\n app/Console/Kernel.php | 6 +-\n app/Contracts/Services/Calendar/CalendarTrait.php | 80 ++-\n app/Events/AutomatedReports/AutomatedReportGenerated.php | 3 +\n app/Http/Controllers/API/AiCallScoring/AiScorecardController.php | 7 +-\n app/Http/Controllers/API/TeamAiAutomationController.php | 8 +\n app/Http/Controllers/CustomerApi/CustomerApiController.php | 4 +-\n app/Http/Controllers/Kiosk/ActivityController.php | 58 +-\n app/Http/Controllers/Settings/PlaybookController.php | 15 +-\n app/Http/Kernel.php | 23 +\n app/Http/Middleware/McpAuditMiddleware.php | 156 ++++\n app/Http/Middleware/McpTierMiddleware.php | 54 ++\n app/Http/Requests/API/V2/ZapierUploadActivityRequest.php | 28 +-\n app/Jobs/Activity/Import/ImportTwilioVideoSpeechesJob.php | 25 +-\n app/Jobs/Activity/Import/IsActivityReadyForProcessingJob.php | 10 +-\n app/Jobs/Calendar/SetupCalendarSync.php | 21 +-\n app/Jobs/ImportRemoteTrackJob.php | 96 ++-\n app/Jobs/Mailbox/EmailTextRelay.php | 15 +-\n app/Mcp/Contracts/McpCallRepositoryInterface.php | 30 +\n app/Mcp/DTO/ListCallsFilters.php | 29 +\n app/Mcp/Errors/McpError.php | 123 ++++\n app/Mcp/Repositories/McpActivityHydrator.php | 145 ++++\n app/Mcp/Repositories/McpCallRepository.php | 84 +++\n app/Mcp/Repositories/McpElasticCallRepository.php | 171 +++++\n app/Mcp/Servers/JiminnyServer.php | 38 +\n app/Mcp/Tools/ListCallsTool.php | 205 ++++++\n app/Models/Activity.php | 10 +-\n app/Models/Activity/Transcription.php | 17 +-\n app/Models/ElasticSearch/OpportunityElasticSearchTrait.php | 5 +\n app/Models/Participant.php | 1 +\n app/Providers/AppServiceProvider.php | 22 +\n app/Repositories/Crm/ContactRepository.php | 69 +-\n app/Repositories/ParticipantSpeechRepository.php | 13 +-\n app/Services/Activity/ParticipantsService.php | 19 +-\n app/Services/Activity/Twilio/S3RecordingCredentialsService.php | 82 +++\n app/Services/ActivityService.php | 21 +-\n app/Services/Calendar/CalendarActivityService.php | 46 ++\n app/Services/Calendar/Command/ImportParticipants.php | 1 +\n app/Services/Calendar/Command/MapActivityData.php | 106 +--\n app/Services/Calendar/GoogleCalendarService.php | 12 +-\n app/Services/Crm/Close/Processor/OpportunityProcessor.php | 2 +-\n app/Services/Crm/Close/Service.php | 22 +-\n app/Services/Crm/Copper/Service.php | 12 +-\n app/Services/Crm/Hubspot/Service.php | 154 +++-\n app/Services/Crm/Hubspot/ServiceTraits/OpportunitySyncTrait.php | 88 ++-\n app/Services/Crm/IntegrationApp/ServiceTraits/SyncCrmEntitiesTrait.php | 22 +-\n app/Services/Crm/Pipedrive/Service.php | 17 +-\n app/Services/Crm/Salesforce/Service.php | 42 +-\n app/Services/Mail/Office/EmailApiClient.php | 129 +---\n app/Services/RecallAI/Commands/ScheduleBotCommand.php | 39 +-\n app/Services/RecallAI/RecallAIService.php | 22 +-\n composer.json | 3 +-\n composer.lock | 87 ++-\n config/mcp.php | 23 +\n database/migrations/2026_04_30_120000_create_mcp_audit_log_table.php | 36 +\n docs/mcp/explorer/explorer.html | 697 ++++++++++++++++++\n docs/mcp/explorer/explorer.template.html | 697 ++++++++++++++++++\n docs/mcp/explorer/generate.js | 215 ++++++\n docs/mcp/explorer/tool-explorer-meta.json | 11 +\n docs/mcp/tools-list.json | 2536 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++\n docs/mcp/tools.md | 621 ++++++++++++++++\n front-end/package.json | 4 +-\n front-end/src/components/Settings/OrgSettings/AiAutomation/CrmFilling/TemplateFieldForm.vue | 28 +-\n front-end/src/components/Settings/OrgSettings/Playbooks/AddEditPlaybook.vue | 10 +\n front-end/src/components/playback/comments/ActivityComment.less | 10 +-\n front-end/src/components/shared/PromptTester/PromptTester.vue | 12 +-\n front-end/src/components/shared/__tests__/PromptTester.spec.js | 35 +\n front-end/src/components/shared/modals/EntityPickerModal/__tests__/useEntitiesCache.spec.ts | 37 +\n front-end/src/components/shared/modals/EntityPickerModal/useEntitiesCache.ts | 9 +\n front-end/yarn.lock | 16 +-\n phpstan-baseline.neon | 50 --\n routes/api.php | 11 +\n sonar-project.properties | 91 ++-\n tests/Feature/Component/Nudge/ProcessOrganisationImmediateNudgesJobTest.php | 534 ++++++++++++++\n tests/Feature/Jobs/ImportRemoteTrackJobTest.php | 283 +++++++-\n tests/Feature/Mcp/IssueMcpTokenCommandTest.php | 53 ++\n tests/Feature/Mcp/ListCallsToolElasticFeatureTest.php | 155 ++++\n tests/Feature/Mcp/ListCallsToolFeatureTest.php | 352 ++++++++++\n tests/Feature/Mcp/McpTestHelpersTrait.php | 77 ++\n tests/Feature/Services/Team/TeamDeleteHandlers/Retention/RetentionRepositoryHandlerTest.php | 1 +\n tests/Stubs/SentryStub.php | 18 +\n tests/Unit/Component/ActivityAnalytics/Service/CalculateTalkTimeOffsetFromTranscriptionTest.php | 28 +-\n tests/Unit/Component/AiActivityType/Services/AiActivityTypeEligibilityCheckerTest.php | 103 ++-\n tests/Unit/Component/AiAutomation/Actions/PrepareUpdateDtoActionTest.php | 91 +++\n tests/Unit/Component/AiAutomation/Services/CrmFillingEligibilityCheckerTest.php | 124 ++++\n tests/Unit/Component/AiAutomation/TestCrmAiPromptServiceTest.php | 67 +-\n tests/Unit/Component/AiCallScoring/Services/AiCallScoringEligibilityCheckerTest.php | 55 ++\n tests/Unit/Component/ES/ElasticSearchWorkerManagerTest.php | 135 ----\n tests/Unit/Component/ES/Processor/Actions/LoadDocumentsActionTest.php | 220 ++++++\n tests/Unit/Component/ES/Processor/EntityQueryBuilderTest.php | 21 +-\n tests/Unit/Component/ES/Processor/Traits/SkipActivityTraitTest.php | 51 --\n tests/Unit/Component/ES/Worker/ActivityWorkerTest.php | 174 -----\n tests/Unit/Component/ES/Worker/EntityWorkerTest.php | 97 ---\n tests/Unit/Component/ES/Worker/WorkerAmountTest.php | 116 ---\n tests/Unit/Component/Encoding/Job/AnalyzeTrackChannelsJobTest.php | 52 +-\n tests/Unit/Component/Encoding/Service/GenerateSpeechFromSilenceServiceTest.php | 171 ++---\n tests/Unit/Component/FFMpeg/Services/GetSpeechIntervalsTest.php | 36 +-\n tests/Unit/Component/LanguageDetection/Services/FindSpeechTimeServiceTest.php | 20 +-\n tests/Unit/Component/MobileSettings/MobileSettingsControllerTest.php | 5 +-\n tests/Unit/Component/ParticipantSpeech/Services/ParticipantSpeechesCreatorTest.php | 75 ++\n tests/Unit/Component/ParticipantSpeech/Services/ParticipantSpeechesDeleterTest.php | 63 ++\n tests/Unit/Component/ParticipantSpeech/Services/ParticipantSpeechesProviderTest.php | 134 ++++\n tests/Unit/Component/ParticipantSpeech/Services/ParticipantSpeechesUploaderTest.php | 57 ++\n tests/Unit/Component/Transcription/Diarization/Services/GetNormalizedParticipantSpeechesServiceTest.php | 51 +-\n tests/Unit/Component/Transcription/Diarization/Source/MeetingBotSourceTest.php | 29 +-\n tests/Unit/Contracts/Services/Calendar/CalendarTraitTest.php | 58 +-\n tests/Unit/Http/Controllers/Kiosk/ActivityControllerTest.php | 159 +++++\n tests/Unit/Jobs/Activity/Import/ImportTwilioVideoSpeechesJobTest.php | 22 +-\n tests/Unit/Jobs/Activity/Import/IsActivityReadyForProcessingJobTest.php | 26 +-\n tests/Unit/Jobs/Calendar/SetupCalendarSyncTest.php | 25 -\n tests/Unit/Services/Activity/ParticipantsServiceTest.php | 12 +-\n tests/Unit/Services/Activity/Twilio/S3RecordingCredentialsServiceTest.php | 180 +++++\n tests/Unit/Services/ActivityServiceTest.php | 132 ++++\n tests/Unit/Services/Calendar/CalendarActivityServiceTest.php | 150 +++-\n tests/Unit/Services/Calendar/Command/ImportParticipantsTest.php | 6 +-\n tests/Unit/Services/Calendar/Command/MapActivityDataTest.php | 78 +-\n tests/Unit/Services/Calendar/GoogleCalendarServiceTest.php | 116 +++\n tests/Unit/Services/Crm/Close/ServiceTest.php | 165 +++++\n tests/Unit/Services/Crm/Hubspot/ServiceTest.php | 272 ++++++-\n tests/Unit/Services/Crm/Hubspot/ServiceTraits/OpportunitySyncTest.php | 25 +-\n tests/Unit/Services/Crm/Hubspot/ServiceTraits/OpportunitySyncTraitMatchActivitiesTest.php | 3 +-\n tests/Unit/Services/Crm/IntegrationApp/ServiceTraits/SyncCrmEntitiesTraitOpportunitiesTest.php | 40 ++\n tests/Unit/Services/Crm/Pipedrive/ImportOpportunityMatchActivitiesTest.php | 2 +\n tests/Unit/Services/Crm/Salesforce/ServiceTest.php | 139 ++++\n tests/Unit/Services/Mail/Office/EmailApiClientTest.php | 195 ++---\n tests/Unit/Services/RecallAI/RecallAIServiceTest.php | 24 +-\n 175 files changed, 12562 insertions(+), 2162 deletions(-)\n create mode 120000 CLAUDE.md\n create mode 100644 app/Component/AiAutomation/Services/CrmFillingEligibilityChecker.php\n delete mode 100644 app/Component/ES/ElasticSearchWorkerManager.php\n delete mode 100644 app/Component/ES/Processor/Traits/SkipActivityTrait.php\n delete mode 100644 app/Component/ES/Worker/ActivityWorker.php\n delete mode 100644 app/Component/ES/Worker/EntityWorker.php\n delete mode 100644 app/Component/ES/Worker/WorkerAmount.php\n delete mode 100644 app/Component/ES/Worker/WorkerInterface.php\n create mode 100644 app/Component/ProphetAi/Exceptions/InsufficientTranscriptException.php\n create mode 100644 app/Component/Transcription/DTO/Http/Transcription/AssemblyAI/AssemblyAI/NoAssemblyIdException.php\n create mode 100644 app/Component/Transcription/DTO/Http/Transcription/TranscriptionIsNotCorrectFormatException.php\n create mode 100644 app/Console/Commands/Activities/SetupIntegration/TwilioSetS3RecordingCredentialsCommand.php\n create mode 100644 app/Console/Commands/Crm/BackfillOpportunityUserFromAccountCommand.php\n delete mode 100644 app/Console/Commands/Elasticsearch/AsyncUpdateEsActivities.php\n create mode 100644 app/Console/Commands/IssueMcpTokenCommand.php\n create mode 100644 app/Http/Middleware/McpAuditMiddleware.php\n create mode 100644 app/Http/Middleware/McpTierMiddleware.php\n create mode 100644 app/Mcp/Contracts/McpCallRepositoryInterface.php\n create mode 100644 app/Mcp/DTO/ListCallsFilters.php\n create mode 100644 app/Mcp/Errors/McpError.php\n create mode 100644 app/Mcp/Repositories/McpActivityHydrator.php\n create mode 100644 app/Mcp/Repositories/McpCallRepository.php\n create mode 100644 app/Mcp/Repositories/McpElasticCallRepository.php\n create mode 100644 app/Mcp/Servers/JiminnyServer.php\n create mode 100644 app/Mcp/Tools/ListCallsTool.php\n create mode 100644 app/Services/Activity/Twilio/S3RecordingCredentialsService.php\n create mode 100644 config/mcp.php\n create mode 100644 database/migrations/2026_04_30_120000_create_mcp_audit_log_table.php\n create mode 100644 docs/mcp/explorer/explorer.html\n create mode 100644 docs/mcp/explorer/explorer.template.html\n create mode 100644 docs/mcp/explorer/generate.js\n create mode 100644 docs/mcp/explorer/tool-explorer-meta.json\n create mode 100644 docs/mcp/tools-list.json\n create mode 100644 docs/mcp/tools.md\n create mode 100644 front-end/src/components/shared/modals/EntityPickerModal/__tests__/useEntitiesCache.spec.ts\n create mode 100644 tests/Feature/Component/Nudge/ProcessOrganisationImmediateNudgesJobTest.php\n create mode 100644 tests/Feature/Mcp/IssueMcpTokenCommandTest.php\n create mode 100644 tests/Feature/Mcp/ListCallsToolElasticFeatureTest.php\n create mode 100644 tests/Feature/Mcp/ListCallsToolFeatureTest.php\n create mode 100644 tests/Feature/Mcp/McpTestHelpersTrait.php\n create mode 100644 tests/Stubs/SentryStub.php\n create mode 100644 tests/Unit/Component/AiAutomation/Services/CrmFillingEligibilityCheckerTest.php\n delete mode 100644 tests/Unit/Component/ES/ElasticSearchWorkerManagerTest.php\n create mode 100644 tests/Unit/Component/ES/Processor/Actions/LoadDocumentsActionTest.php\n delete mode 100644 tests/Unit/Component/ES/Processor/Traits/SkipActivityTraitTest.php\n delete mode 100644 tests/Unit/Component/ES/Worker/ActivityWorkerTest.php\n delete mode 100644 tests/Unit/Component/ES/Worker/EntityWorkerTest.php\n delete mode 100644 tests/Unit/Component/ES/Worker/WorkerAmountTest.php\n create mode 100644 tests/Unit/Component/ParticipantSpeech/Services/ParticipantSpeechesCreatorTest.php\n create mode 100644 tests/Unit/Http/Controllers/Kiosk/ActivityControllerTest.php\n create mode 100644 tests/Unit/Services/Activity/Twilio/S3RecordingCredentialsServiceTest.php\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20725-handle-HS-search-rate-limit) $ git status\nOn branch master\nYour branch is behind 'origin/master' by 114 commits, and can be fast-forwarded.\n (use \"git pull\" to update your local branch)\n\nChanges not staged for commit:\n (use \"git add <file>...\" to update what will be committed)\n (use \"git restore <file>...\" to discard changes in working directory)\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tmodified: .env.local\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tmodified: app/Component/SCIM/Constants.php\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tmodified: app/Component/SCIM/ScimProvisioning.php\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tmodified: app/Component/Twilio/Conference/ConferenceManager/SoftPhoneManager.php\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tmodified: app/Console/Commands/JiminnyDebugCommand.php\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tmodified: app/DTO/SCIM/AAD/Request/CoreUserRequest.php\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tmodified: app/DTO/SCIM/AAD/Response/CoreUser.php\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tmodified: app/Services/Telephony/TextMessagingService.php\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tmodified: config/logging.php\n\nUntracked files:\n (use \"git add <file>...\" to include in what will be committed)\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\t.env.nikilocal\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\t.env.other\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tWEBHOOK_FILTERING_IMPLEMENTATION.md\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tapp/Component/SCIM/Mutators/Attributes/User/RoleAttr.php\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tapp/Console/Commands/Crm/Hubspot/SimulateWebhooksCommand.php\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tapp/Console/Commands/Reports/CreateMockAskJiminnyReportResultCommand.php\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tapp/Rules/ListenerRoleCannotHaveAdminOrManagerPermissionRule.php\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tids.txt\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tpublic/favicon.ico\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\traw_sql_query.sql\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\ttests/Unit/Component/SCIM/Mutators/Attributes/User/RoleAttrTest.php\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\ttests/Unit/Policies/CanAccessAiReportsTest.php\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\ttests/Unit/Rules/ListenerRoleCannotHaveAdminOrManagerPermissionRuleTest.php\n\nno changes added to commit (use \"git add\" and/or \"git commit -a\")\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (master) $ git pull\nremote: Enumerating objects: 306, done.\nremote: Counting objects: 100% (299/299), done.\nremote: Compressing objects: 100% (183/183), done.\nremote: Total 306 (delta 213), reused 171 (delta 116), pack-reused 7 (from 1)\nReceiving objects: 100% (306/306), 80.12 KiB | 1000.00 KiB/s, done.\nResolving deltas: 100% (213/213), completed with 53 local objects.\nFrom github.com:jiminny/app\n 90bca4e4b2..5604af40cf master -> origin/master\n 4e7078fd8b..0b8343d179 JY-18091-upgrade-to-php-8-5 -> origin/JY-18091-upgrade-to-php-8-5\n 098eeaa087..d5a447e492 JY-20613-allow-owner-role-on-team-setup -> origin/JY-20613-allow-owner-role-on-team-setup\n c3a76ace91..af65249d0f JY-20749-user-can-view-recorded-meetings -> origin/JY-20749-user-can-view-recorded-meetings\n d94a285ae7..7ce96cb5fe JY-20808-low-priority-indexing-queue -> origin/JY-20808-low-priority-indexing-queue\n * [new branch] JY-20842-remove-partial-updater -> origin/JY-20842-remove-partial-updater\n * [new branch] JY-20920-fix-participant-flip -> origin/JY-20920-fix-participant-flip\n * [new branch] secfix/npm-20260519 -> origin/secfix/npm-20260519\nUpdating cb4ebf0c36..5604af40cf\nFast-forward\n app/Component/ES/ChunkSize.php | 54 +++++++++++++++++++\n app/Component/ES/Processor/DTOs/SelectionList.php | 4 +-\n app/Component/ES/Processor/TargetEntitiesSelector.php | 19 ++++---\n app/Component/MeetingBot/Service/ParticipantMatcher.php | 46 ++++++++++++----\n app/Exceptions/RateLimitException.php | 19 ++++++-\n app/Http/Middleware/McpTierMiddleware.php | 27 ++--------\n app/Jobs/Crm/MatchActivityCrmData.php | 47 ++++++++++++----\n app/Jobs/Middleware/HandleHubspotRateLimit.php | 42 +++++++++++++++\n app/Mcp/Servers/JiminnyServer.php | 2 +\n app/Mcp/Tools/GetMeTool.php | 157 +++++++++++++++++++++++++++++++++++++++++++++++++++++\n app/Models/Feature/FeatureEnum.php | 1 +\n app/Services/Activity/HubSpot/ProviderResolver.php | 4 +-\n app/Services/Activity/HubSpot/ProviderResolverInterface.php | 2 +-\n app/Services/Activity/HubSpot/Providers/Provider.php | 2 +-\n app/Services/Activity/HubSpot/Providers/ProviderKixie.php | 2 +-\n app/Services/Activity/HubSpot/Providers/ProviderOrum.php | 2 +-\n app/Services/Activity/HubSpot/Providers/ProviderTwilio.php | 2 +-\n app/Services/Activity/HubSpot/Providers/ProviderTwilioFlex.php | 5 +-\n app/Services/Activity/HubSpot/Service.php | 97 +++++++++++++++++++++++++++------\n app/Services/Crm/Hubspot/Client.php | 132 +++++++++++++++++++++++++++++++++++++++++++++\n app/Services/Crm/Hubspot/HubspotClientInterface.php | 15 ++++++\n app/Services/Crm/Hubspot/Pagination/HubspotPaginationService.php | 21 ++++----\n app/Services/Crm/Hubspot/Pagination/PaginationState.php | 2 +-\n database/migrations/2026_05_13_124153_create_mcp_feature_flag.php | 25 +++++++++\n tests/Feature/Mcp/GetMeToolFeatureTest.php | 140 +++++++++++++++++++++++++++++++++++++++++++++++\n tests/Feature/Mcp/ListCallsToolFeatureTest.php | 2 +-\n tests/Feature/Mcp/McpTestHelpersTrait.php | 19 ++++++-\n tests/Unit/Component/ES/ChunkSizeTest.php | 50 +++++++++++++++++\n tests/Unit/Component/ES/Processor/DTOs/SelectionListTest.php | 27 +++++++---\n tests/Unit/Component/ES/Processor/TargetEntitiesSelectorTest.php | 39 ++++++++------\n tests/Unit/Component/MeetingBot/Service/ParticipantMatcherTest.php | 68 ++++++++++++++++++++++-\n tests/Unit/Exceptions/RateLimitExceptionTest.php | 56 +++++++++++++++++++\n tests/Unit/Jobs/Crm/MatchActivityCrmDataTest.php | 8 +--\n tests/Unit/Jobs/Middleware/HandleHubspotRateLimitTest.php | 151 +++++++++++++++++++++++++++++++++++++++++++++++++++\n tests/Unit/Services/Activity/HubSpot/ServiceTest.php | 109 +++++++++++++++++++++++++++++++++++++\n tests/Unit/Services/Crm/Hubspot/ClientTest.php | 250 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++\n tests/Unit/Services/Crm/Hubspot/Pagination/HubspotPaginationServiceTest.php | 283 +++++++++++++++++++++---------------------------------------------------------------------------\n 37 files changed, 1587 insertions(+), 344 deletions(-)\n create mode 100644 app/Component/ES/ChunkSize.php\n create mode 100644 app/Jobs/Middleware/HandleHubspotRateLimit.php\n create mode 100644 app/Mcp/Tools/GetMeTool.php\n create mode 100644 database/migrations/2026_05_13_124153_create_mcp_feature_flag.php\n create mode 100644 tests/Feature/Mcp/GetMeToolFeatureTest.php\n create mode 100644 tests/Unit/Component/ES/ChunkSizeTest.php\n create mode 100644 tests/Unit/Exceptions/RateLimitExceptionTest.php\n create mode 100644 tests/Unit/Jobs/Middleware/HandleHubspotRateLimitTest.php\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (master) $ git pull\nAlready up to date.\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (master) $ co -b JY-20676-delete-report-related-objects\nSwitched to a new branch 'JY-20676-delete-report-related-objects'\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20676-delete-report-related-objects) $ csfix\ndocker exec -it docker_lamp_1 ./vendor/bin/php-cs-fixer fix --config=.php-cs-fixer.dist.php -v --using-cache=no --diff \nPHP CS Fixer 3.87.1 Alexander by Fabien Potencier, Dariusz Ruminski and contributors.\nPHP runtime: 8.3.30\nRunning analysis on 7 cores with 10 files per process.\nParallel runner is an experimental feature and may be unstable, use it at your own risk. Feedback highly appreciated!\nLoaded config default from \".php-cs-fixer.dist.php\".\n 5690/5690 [▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓] 100%\n\n 1) app/Console/Commands/JiminnyDebugCommand.php (statement_indentation, blank_line_before_statement)\n ---------- begin diff ----------\n--- /home/jiminny/app/Console/Commands/JiminnyDebugCommand.php\n+++ /home/jiminny/app/Console/Commands/JiminnyDebugCommand.php\n@@ -23,6 +23,7 @@\n \n if ($action === 'redis-set') {\n $this->testRedisSet();\n+\n return;\n }\n \n@@ -45,7 +46,7 @@\n $ttl = 60;\n \n try {\n-// $result = Redis::set($testKey, $testValue, 'EX', $ttl, 'NX');\n+ // $result = Redis::set($testKey, $testValue, 'EX', $ttl, 'NX');\n $result = Redis::set($testKey, $testValue, ['nx', 'ex' => $ttl]);\n \n if ($result) {\n\n ----------- end diff -----------\n\n\nFixed 1 of 5690 files in 50.673 seconds, 67.00 MB memory used\n\nWhat's next:\n Try Docker Debug for seamless, persistent debugging tools in any container or image → docker debug docker_lamp_1\n Learn more at https://docs.docker.com/go/debug-cli/\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20676-delete-report-related-objects) $ ;xd\ndocker exec -it docker_lamp_1 bash -c \"mv /usr/local/etc/php/conf.d/xdebug.ini ~/xdebug.ini\"\n\nWhat's next:\n Try Docker Debug for seamless, persistent debugging tools in any container or image → docker debug docker_lamp_1\n Learn more at https://docs.docker.com/go/debug-cli/\ndocker exec -it docker_lamp_1 supervisorctl restart all\njiminny-worker-processing-2:jiminny-worker-processing-2_00: stopped\njiminny-worker-processing-3:jiminny-worker-processing-3_00: stopped\njiminny-worker-processing-4:jiminny-worker-processing-4_00: stopped\njiminny-worker-processing-5:jiminny-worker-processing-5_00: stopped\njiminny-worker-processing-delayed:jiminny-worker-processing-delayed_00: stopped\nworker-analytics:worker-analytics_00: stopped\nworker-crm-update:worker-crm-update_00: stopped\nworker-download:worker-download_00: stopped\nworker-nudges:worker-nudges_00: stopped\nworker-calendar:worker-calendar_00: stopped\nworker-audio:worker-audio_00: stopped\njiminny-worker-processing-1:jiminny-worker-processing-1_00: stopped\nworker:worker_00: stopped\nworker-conferences:worker-conferences_00: stopped\nworker-crm-sync:worker-crm-sync_00: stopped\nworker-emails:worker-emails_00: stopped\nworker-es-update:worker-es-update_00: stopped\nartisan-schedule:artisan-schedule_00: stopped\nartisan-schedule:artisan-schedule_00: started\njiminny-worker-processing-1:jiminny-worker-processing-1_00: started\njiminny-worker-processing-2:jiminny-worker-processing-2_00: started\njiminny-worker-processing-3:jiminny-worker-processing-3_00: started\njiminny-worker-processing-4:jiminny-worker-processing-4_00: started\njiminny-worker-processing-5:jiminny-worker-processing-5_00: started\njiminny-worker-processing-delayed:jiminny-worker-processing-delayed_00: started\nworker:worker_00: started\nworker-analytics:worker-analytics_00: started\nworker-audio:worker-audio_00: started\nworker-calendar:worker-calendar_00: started\nworker-conferences:worker-conferences_00: started\nworker-crm-sync:worker-crm-sync_00: started\nworker-crm-update:worker-crm-update_00: started\nworker-download:worker-download_00: started\nworker-emails:worker-emails_00: started\nworker-es-update:worker-es-update_00: started\nworker-nudges:worker-nudges_00: started\n\nWhat's next:\n Try Docker Debug for seamless, persistent debugging tools in any container or image → docker debug docker_lamp_1\n Learn more at https://docs.docker.com/go/debug-cli/\ndocker exec -it docker_lamp_1 php -v\nPHP 8.3.30 (cli) (built: Mar 16 2026 22:32:32) (NTS)\nCopyright (c) The PHP Group\nZend Engine v4.3.30, Copyright (c) Zend Technologies\n with Zend OPcache v8.3.30, Copyright (c), by Zend Technologies\n\nWhat's next:\n Try Docker Debug for seamless, persistent debugging tools in any container or image → docker debug docker_lamp_1\n Learn more at https://docs.docker.com/go/debug-cli/\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20676-delete-report-related-objects) $ git status\nOn branch JY-20676-delete-report-related-objects\nChanges not staged for commit:\n (use \"git add <file>...\" to update what will be committed)\n (use \"git restore <file>...\" to discard changes in working directory)\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tmodified: .env.local\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tmodified: app/Console/Commands/JiminnyDebugCommand.php\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tmodified: config/logging.php\n\nUntracked files:\n (use \"git add <file>...\" to include in what will be committed)\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\t.env.nikilocal\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\t.env.other\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tWEBHOOK_FILTERING_IMPLEMENTATION.md\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tapp/Console/Commands/Crm/Hubspot/SimulateWebhooksCommand.php\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tapp/Console/Commands/Reports/CreateMockAskJiminnyReportResultCommand.php\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tids.txt\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tpublic/favicon.ico\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\traw_sql_query.sql\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\ttests/Unit/Policies/CanAccessAiReportsTest.php\n\nno changes added to commit (use \"git add\" and/or \"git commit -a\")\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20676-delete-report-related-objects) $ git push -u origin JY-20676-delete-report-related-objects\nEnumerating objects: 45, done.\nCounting objects: 100% (45/45), done.\nDelta compression using up to 8 threads\nCompressing objects: 100% (24/24), done.\nWriting objects: 100% (24/24), 3.62 KiB | 3.62 MiB/s, done.\nTotal 24 (delta 19), reused 0 (delta 0), pack-reused 0\nremote: Resolving deltas: 100% (19/19), completed with 19 local objects.\nremote: \nremote: Create a pull request for 'JY-20676-delete-report-related-objects' on GitHub by visiting:\nremote: https://github.com/jiminny/app/pull/new/JY-20676-delete-report-related-objects\nremote: \nTo github.com:jiminny/app.git\n * [new branch] JY-20676-delete-report-related-objects -> JY-20676-delete-report-related-objects\nbranch 'JY-20676-delete-report-related-objects' set up to track 'origin/JY-20676-delete-report-related-objects'.\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20676-delete-report-related-objects) $ csfix\ndocker exec -it docker_lamp_1 ./vendor/bin/php-cs-fixer fix --config=.php-cs-fixer.dist.php -v --using-cache=no --diff \nPHP CS Fixer 3.87.1 Alexander by Fabien Potencier, Dariusz Ruminski and contributors.\nPHP runtime: 8.3.30\nRunning analysis on 7 cores with 10 files per process.\nParallel runner is an experimental feature and may be unstable, use it at your own risk. Feedback highly appreciated!\nLoaded config default from \".php-cs-fixer.dist.php\".\n 5690/5690 [▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓] 100%\n\n 1) app/Http/Controllers/API/V2/AskJiminnyReportsController.php (blank_line_before_statement)\n ---------- begin diff ----------\n--- /home/jiminny/app/Http/Controllers/API/V2/AskJiminnyReportsController.php\n+++ /home/jiminny/app/Http/Controllers/API/V2/AskJiminnyReportsController.php\n@@ -140,6 +140,7 @@\n if ($enabled && $report->isAskJiminnyReport() && ! $report->canExecute()) {\n $error = 'This report is missing a saved search or prompt. ' .\n 'Edit the report to complete the setup before enabling it.';\n+\n return new JsonResponse(\n ['error' => $error],\n Response::HTTP_UNPROCESSABLE_ENTITY\n\n ----------- end diff -----------\n\n\nFixed 1 of 5690 files in 71.757 seconds, 60.00 MB memory used\n\nWhat's next:\n Try Docker Debug for seamless, persistent debugging tools in any container or image → docker debug docker_lamp_1\n Learn more at https://docs.docker.com/go/debug-cli/\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20676-delete-report-related-objects) $ git pull\nremote: Enumerating objects: 158, done.\nremote: Counting objects: 100% (103/103), done.\nremote: Compressing objects: 100% (37/37), done.\nremote: Total 158 (delta 80), reused 74 (delta 66), pack-reused 55 (from 3)\nReceiving objects: 100% (158/158), 80.59 KiB | 982.00 KiB/s, done.\nResolving deltas: 100% (85/85), completed with 45 local objects.\nFrom github.com:jiminny/app\n 02a33811ee..c6ce5e2440 JY-20676-delete-report-related-objects -> origin/JY-20676-delete-report-related-objects\n 7ce96cb5fe..6c59f04358 JY-20808-low-priority-indexing-queue -> origin/JY-20808-low-priority-indexing-queue\n 3906a9238a..2b5e6ea62b JY-20835-mcp-enable-users-to-get-a-list-of-deals-and-their-details -> origin/JY-20835-mcp-enable-users-to-get-a-list-of-deals-and-their-details\n 5604af40cf..ea3519f0e2 master -> origin/master\n * [new branch] switch-eu-assembly -> origin/switch-eu-assembly\nUpdating 02a33811ee..c6ce5e2440\nFast-forward\n app/Component/ES/ElasticSearchDocumentPartialUpdater.php | 48 ---\n app/Component/ParticipantSpeech/Services/ParticipantAttributionService.php | 4 +-\n app/Component/Settings/AutoScoring/Services/UpdateAutoScoreService.php | 20 +-\n app/Component/Transcription/Service/StorageService.php | 8 +-\n front-end/package.json | 2 +-\n front-end/src/components/DealInsights/Modals/AskAnythingModal.vue | 23 ++\n front-end/src/components/shared/AskAnything/AskAnythingPromptFormItem.vue | 2 +\n front-end/src/components/shared/AskAnything/AskAnythingSettingsDrawer.vue | 23 +-\n front-end/src/components/shared/AskAnything/__mocks__/AskAnythingSettingsDrawer.mocks.js | 1 +\n front-end/src/components/shared/AskAnything/__tests__/AskAnythingSettingsDrawer.spec.js | 135 ++++---\n front-end/src/components/shared/AskAnything/__tests__/__snapshots__/AskAnythingSettingsDrawer.spec.js.html | 1235 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++\n front-end/src/components/shared/AskAnything/__tests__/__snapshots__/AskAnythingSettingsDrawer.spec.js.snap | 1382 ----------------------------------------------------------------\n front-end/src/components/shared/AskAnything/prompts.js | 1 +\n front-end/src/components/shared/AskAnything/useAskAnything.js | 1 +\n front-end/yarn.lock | 8 +-\n tests/Unit/Component/ES/ElasticSearchDocumentPartialUpdaterTest.php | 42 --\n tests/Unit/Component/Settings/AutoScoring/Services/UpdateAutoScoreServiceTest.php | 86 ++--\n tests/Unit/Component/Transcription/Service/StorageServiceTest.php | 29 +-\n 18 files changed, 1448 insertions(+), 1602 deletions(-)\n delete mode 100644 app/Component/ES/ElasticSearchDocumentPartialUpdater.php\n create mode 100644 front-end/src/components/shared/AskAnything/__tests__/__snapshots__/AskAnythingSettingsDrawer.spec.js.html\n delete mode 100644 front-end/src/components/shared/AskAnything/__tests__/__snapshots__/AskAnythingSettingsDrawer.spec.js.snap\n delete mode 100644 tests/Unit/Component/ES/ElasticSearchDocumentPartialUpdaterTest.php\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20676-delete-report-related-objects) $ csfix\ndocker exec -it docker_lamp_1 ./vendor/bin/php-cs-fixer fix --config=.php-cs-fixer.dist.php -v --using-cache=no --diff \nPHP CS Fixer 3.87.1 Alexander by Fabien Potencier, Dariusz Ruminski and contributors.\nPHP runtime: 8.3.30\nRunning analysis on 7 cores with 10 files per process.\nParallel runner is an experimental feature and may be unstable, use it at your own risk. Feedback highly appreciated!\nLoaded config default from \".php-cs-fixer.dist.php\".","depth":4,"on_screen":true,"value":"Last login: Mon May 18 09:17:28 on ttys007\n\nPoetry could not find a pyproject.toml file in /Users/lukas/jiminny/app or its parents\n\nPoetry could not find a pyproject.toml file in /Users/lukas/jiminny/app or its parents\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (pipedrive-sdk-poc) $ co master\nerror: Your local changes to the following files would be overwritten by checkout:\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tPIPEDRIVE_V2_MIGRATION_TICKETS.md\nPlease commit your changes or stash them before you switch branches.\nAborting\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (pipedrive-sdk-poc) $ git pull\nremote: Enumerating objects: 1047, done.\nremote: Counting objects: 100% (832/832), done.\nremote: Compressing objects: 100% (298/298), done.\nremote: Total 1047 (delta 634), reused 596 (delta 534), pack-reused 215 (from 3)\nReceiving objects: 100% (1047/1047), 353.16 KiB | 1.56 MiB/s, done.\nResolving deltas: 100% (687/687), completed with 107 local objects.\nFrom github.com:jiminny/app\n 907c54896c..34656c53ed pipedrive-sdk-poc -> origin/pipedrive-sdk-poc\n 03325ec50f..4e7078fd8b JY-18091-upgrade-to-php-8-5 -> origin/JY-18091-upgrade-to-php-8-5\n e7d231e163..bc6a3fce6b JY-20725-handle-HS-search-rate-limit -> origin/JY-20725-handle-HS-search-rate-limit\n * [new branch] JY-20749-user-can-view-recorded-meetings -> origin/JY-20749-user-can-view-recorded-meetings\n 98ca281a04..e0351be069 JY-20808-low-priority-indexing-queue -> origin/JY-20808-low-priority-indexing-queue\n 569abb5149..3906a9238a JY-20835-mcp-enable-users-to-get-a-list-of-deals-and-their-details -> origin/JY-20835-mcp-enable-users-to-get-a-list-of-deals-and-their-details\n ad6c2a86e8..50eb6afba9 JY-20846-mcp-enable-the-ai-to-know-details-about-the-user -> origin/JY-20846-mcp-enable-the-ai-to-know-details-about-the-user\n * [new branch] JY-20893-chunk-control-per-update-target -> origin/JY-20893-chunk-control-per-update-target\n 31c62924a5..cb4ebf0c36 master -> origin/master\nUpdating 907c54896c..34656c53ed\nFast-forward\n PIPEDRIVE_V2_MIGRATION_TICKETS.md | 52 ++++++++++++++++++++++++++++++++++++++++++++++++++++\n 1 file changed, 52 insertions(+)\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (pipedrive-sdk-poc) $ co master\nM\u0000\u0000\u0000\u0000\u0000\u0000\t.env.local\nM\u0000\u0000\u0000\u0000\u0000\u0000\tconfig/logging.php\nSwitched to branch 'master'\nYour branch is behind 'origin/master' by 31 commits, and can be fast-forwarded.\n (use \"git pull\" to update your local branch)\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (master) $ git pull\nUpdating 31c62924a5..cb4ebf0c36\nFast-forward\n app/Component/ES/Processor/Traits/SelectEntityListTrait.php | 20 ------\n app/Services/Calendar/CalendarActivityService.php | 46 +++++++++++++\n app/Services/Calendar/Command/MapActivityData.php | 106 +++-------------------------\n docs/mcp/explorer/explorer.html | 104 +++++++++++++++++++++++++---\n docs/mcp/explorer/explorer.template.html | 102 ++++++++++++++++++++++++---\n docs/mcp/tools-list.json | 373 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++-------\n docs/mcp/tools.md | 117 +++++++++++++++++++++++--------\n tests/Unit/Component/ES/AsyncUpdateElasticSearchTest.php | 16 +----\n tests/Unit/Component/ES/Listeners/UpdateMultipleTargetsListenerTest.php | 10 ---\n tests/Unit/Component/ES/Listeners/UpdateSingleTargetListenerTest.php | 6 --\n tests/Unit/Component/ES/Processor/TargetEntitiesSelectorTest.php | 9 ---\n tests/Unit/Component/ES/Processor/Traits/SelectEntityListTraitTest.php | 15 ++--\n tests/Unit/Component/ES/UpdateProcessManagerTest.php | 2 -\n tests/Unit/Services/Calendar/CalendarActivityServiceTest.php | 150 ++++++++++++++++++++++++++++++++++++++--\n tests/Unit/Services/Calendar/Command/MapActivityDataTest.php | 78 ++-------------------\n 15 files changed, 832 insertions(+), 322 deletions(-)\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (master) $ co -b JY-20613-allow-owner-role-on-team-setup\nSwitched to a new branch 'JY-20613-allow-owner-role-on-team-setup'\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20613-allow-owner-role-on-team-setup) $ csfix\ndocker exec -it docker_lamp_1 ./vendor/bin/php-cs-fixer fix --config=.php-cs-fixer.dist.php -v --using-cache=no --diff \nPHP CS Fixer 3.87.1 Alexander by Fabien Potencier, Dariusz Ruminski and contributors.\nPHP runtime: 8.3.30\nRunning analysis on 7 cores with 10 files per process.\nParallel runner is an experimental feature and may be unstable, use it at your own risk. Feedback highly appreciated!\nLoaded config default from \".php-cs-fixer.dist.php\".\n 5682/5682 [▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓] 100%\n\n\nFixed 0 of 5682 files in 56.978 seconds, 67.00 MB memory used\n\nWhat's next:\n Try Docker Debug for seamless, persistent debugging tools in any container or image → docker debug docker_lamp_1\n Learn more at https://docs.docker.com/go/debug-cli/\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20613-allow-owner-role-on-team-setup) $ ;xd\ndocker exec -it docker_lamp_1 bash -c \"mv /usr/local/etc/php/conf.d/xdebug.ini ~/xdebug.ini\"\n\nWhat's next:\n Try Docker Debug for seamless, persistent debugging tools in any container or image → docker debug docker_lamp_1\n Learn more at https://docs.docker.com/go/debug-cli/\ndocker exec -it docker_lamp_1 supervisorctl restart all\njiminny-worker-processing-2:jiminny-worker-processing-2_00: stopped\njiminny-worker-processing-3:jiminny-worker-processing-3_00: stopped\njiminny-worker-processing-4:jiminny-worker-processing-4_00: stopped\njiminny-worker-processing-5:jiminny-worker-processing-5_00: stopped\njiminny-worker-processing-delayed:jiminny-worker-processing-delayed_00: stopped\nworker-analytics:worker-analytics_00: stopped\nworker-crm-update:worker-crm-update_00: stopped\nworker-download:worker-download_00: stopped\nworker-nudges:worker-nudges_00: stopped\nartisan-schedule:artisan-schedule_00: stopped\nworker-emails:worker-emails_00: stopped\nworker-calendar:worker-calendar_00: stopped\nworker:worker_00: stopped\nworker-conferences:worker-conferences_00: stopped\nworker-crm-sync:worker-crm-sync_00: stopped\njiminny-worker-processing-1:jiminny-worker-processing-1_00: stopped\nworker-audio:worker-audio_00: stopped\nworker-es-update:worker-es-update_00: stopped\nartisan-schedule:artisan-schedule_00: started\njiminny-worker-processing-1:jiminny-worker-processing-1_00: started\njiminny-worker-processing-2:jiminny-worker-processing-2_00: started\njiminny-worker-processing-3:jiminny-worker-processing-3_00: started\njiminny-worker-processing-4:jiminny-worker-processing-4_00: started\njiminny-worker-processing-5:jiminny-worker-processing-5_00: started\njiminny-worker-processing-delayed:jiminny-worker-processing-delayed_00: started\nworker:worker_00: started\nworker-analytics:worker-analytics_00: started\nworker-audio:worker-audio_00: started\nworker-calendar:worker-calendar_00: started\nworker-conferences:worker-conferences_00: started\nworker-crm-sync:worker-crm-sync_00: started\nworker-crm-update:worker-crm-update_00: started\nworker-download:worker-download_00: started\nworker-emails:worker-emails_00: started\nworker-es-update:worker-es-update_00: started\nworker-nudges:worker-nudges_00: started\n\nWhat's next:\n Try Docker Debug for seamless, persistent debugging tools in any container or image → docker debug docker_lamp_1\n Learn more at https://docs.docker.com/go/debug-cli/\ndocker exec -it docker_lamp_1 php -v\nPHP 8.3.30 (cli) (built: Mar 16 2026 22:32:32) (NTS)\nCopyright (c) The PHP Group\nZend Engine v4.3.30, Copyright (c) Zend Technologies\n with Zend OPcache v8.3.30, Copyright (c), by Zend Technologies\n\nWhat's next:\n Try Docker Debug for seamless, persistent debugging tools in any container or image → docker debug docker_lamp_1\n Learn more at https://docs.docker.com/go/debug-cli/\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20613-allow-owner-role-on-team-setup) $ csfix\ndocker exec -it docker_lamp_1 ./vendor/bin/php-cs-fixer fix --config=.php-cs-fixer.dist.php -v --using-cache=no --diff \nPHP CS Fixer 3.87.1 Alexander by Fabien Potencier, Dariusz Ruminski and contributors.\nPHP runtime: 8.3.30\nRunning analysis on 7 cores with 10 files per process.\nParallel runner is an experimental feature and may be unstable, use it at your own risk. Feedback highly appreciated!\nLoaded config default from \".php-cs-fixer.dist.php\".\n 5682/5682 [▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓] 100%\n\n\nFixed 0 of 5682 files in 49.910 seconds, 60.00 MB memory used\n\nWhat's next:\n Try Docker Debug for seamless, persistent debugging tools in any container or image → docker debug docker_lamp_1\n Learn more at https://docs.docker.com/go/debug-cli/\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20613-allow-owner-role-on-team-setup) $ git status\nOn branch JY-20613-allow-owner-role-on-team-setup\nYour branch is ahead of 'origin/JY-20613-allow-owner-role-on-team-setup' by 1 commit.\n (use \"git push\" to publish your local commits)\n\nChanges not staged for commit:\n (use \"git add <file>...\" to update what will be committed)\n (use \"git restore <file>...\" to discard changes in working directory)\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tmodified: .env.local\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tmodified: config/logging.php\n\nUntracked files:\n (use \"git add <file>...\" to include in what will be committed)\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\t.env.nikilocal\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\t.env.other\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tWEBHOOK_FILTERING_IMPLEMENTATION.md\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tapp/Console/Commands/Crm/Hubspot/SimulateWebhooksCommand.php\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tapp/Console/Commands/Reports/CreateMockAskJiminnyReportResultCommand.php\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tids.txt\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tpublic/favicon.ico\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\traw_sql_query.sql\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\ttests/Unit/Policies/CanAccessAiReportsTest.php\n\nno changes added to commit (use \"git add\" and/or \"git commit -a\")\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20613-allow-owner-role-on-team-setup) $ git pull\nremote: Enumerating objects: 248, done.\nremote: Counting objects: 100% (128/128), done.\nremote: Compressing objects: 100% (23/23), done.\nremote: Total 59 (delta 43), reused 44 (delta 33), pack-reused 0 (from 0)\nUnpacking objects: 100% (59/59), 10.48 KiB | 228.00 KiB/s, done.\nFrom github.com:jiminny/app\n b7df560451..190239dfd4 JY-20613-allow-owner-role-on-team-setup -> origin/JY-20613-allow-owner-role-on-team-setup\n e0351be069..d94a285ae7 JY-20808-low-priority-indexing-queue -> origin/JY-20808-low-priority-indexing-queue\n * [new branch] JY-20920-fix-participant-matcher -> origin/JY-20920-fix-participant-matcher\n cb4ebf0c36..90bca4e4b2 master -> origin/master\nMerge made by the 'ort' strategy.\n app/Component/ES/ChunkSize.php | 54 +++++++++++++++++++++++++++\n app/Component/ES/Processor/DTOs/SelectionList.php | 4 +-\n app/Component/ES/Processor/TargetEntitiesSelector.php | 19 ++++++----\n app/Http/Middleware/McpTierMiddleware.php | 27 +++-----------\n app/Mcp/Servers/JiminnyServer.php | 2 +\n app/Mcp/Tools/GetMeTool.php | 157 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++\n app/Models/Feature/FeatureEnum.php | 1 +\n database/migrations/2026_05_13_124153_create_mcp_feature_flag.php | 25 +++++++++++++\n front-end/src/components/Settings/Kiosk/modals/EditTeamModal/EditTeamModal.vue | 52 ++++++++++++++++++--------\n front-end/src/components/Settings/Kiosk/modals/EditTeamModal/__tests__/EditTeamModal.spec.js | 14 +++++++\n tests/Feature/Mcp/GetMeToolFeatureTest.php | 140 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++\n tests/Feature/Mcp/ListCallsToolFeatureTest.php | 2 +-\n tests/Feature/Mcp/McpTestHelpersTrait.php | 19 +++++++++-\n tests/Unit/Component/ES/ChunkSizeTest.php | 50 +++++++++++++++++++++++++\n tests/Unit/Component/ES/Processor/DTOs/SelectionListTest.php | 27 ++++++++++----\n tests/Unit/Component/ES/Processor/TargetEntitiesSelectorTest.php | 39 +++++++++++---------\n 16 files changed, 557 insertions(+), 75 deletions(-)\n create mode 100644 app/Component/ES/ChunkSize.php\n create mode 100644 app/Mcp/Tools/GetMeTool.php\n create mode 100644 database/migrations/2026_05_13_124153_create_mcp_feature_flag.php\n create mode 100644 tests/Feature/Mcp/GetMeToolFeatureTest.php\n create mode 100644 tests/Unit/Component/ES/ChunkSizeTest.php\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20613-allow-owner-role-on-team-setup) $ git push\nEnumerating objects: 40, done.\nCounting objects: 100% (34/34), done.\nDelta compression using up to 8 threads\nCompressing objects: 100% (18/18), done.\nWriting objects: 100% (18/18), 1.58 KiB | 1.58 MiB/s, done.\nTotal 18 (delta 15), reused 0 (delta 0), pack-reused 0\nremote: Resolving deltas: 100% (15/15), completed with 13 local objects.\nTo github.com:jiminny/app.git\n 190239dfd4..ec1b261264 JY-20613-allow-owner-role-on-team-setup -> JY-20613-allow-owner-role-on-team-setup\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20613-allow-owner-role-on-team-setup) $ gbr\n* JY-20613-allow-owner-role-on-team-setup\n pipedrive-sdk-poc\n master\n JY-20903-update_activity-stage-on-opportunity-change\n JY-20904-fix-update-es-on-activity-command\n JY-20891-improve-sms-text-relays\n JY-20725-handle-HS-search-rate-limit\n JY-20818-move-AJ-reports-to-separated-datadog-metric\n JY-20773-fix-automated-reports-user-pilot-tracking\n JY-20157-AJ-report-not-send-notification\n JY-20508-notify-before-AJ-report-expiration\n JY-20372-ai-reports-promotion-pages\n JY-20352-sync-opportunities-without-a-local-owner-user-id-is-null\n JY-20738-debug-AJ-tracking-UP\n a\n JY-18909-automated-reports-ask-jiminny\n JY-20692-fix-integration-app-token-auth-response-change\n JY-20553-debug-crm-sync-delays\n JY-20698-fix-SF-activity-types-on-new-playbook\n JY-20543-AJ-report-tracking\n JY-20384-handle-auto-sync-with-no-access-to-event-type\n JY-20458-ask-jiminny-user-definitions\n JY-19666-fix-import-contacts-account-association\n JY-19666-HS-import-contacts-and-accounts-batch-job\n JY-20458-Ask-Jiminny-Reports\n JY-20200-batch-update-CRM-objects-Salesforce\n JY-19666-HS-webhooks-add-contact-and-company\n JY-20348-trigger-setup-DI-layout-on-team-creation\n JY-20326-refactor-info-message-in-command\n JY-20317-fix-auto-log-delay-issue-on-all-channels-disabled\n JY-20312-remove-on-update-change-last-synced-at-crm-configurations\n JY-20306-SF-skip-auto-sync-for-task-based-playbook\n JY-20192-remove-deleted-team-from-saved-search-filters\n JY-20197-import-opportunity-batch-job\n JY-20293-enable-status-field-for-pipedrive-deals\n JY-20191-remove-commands-interactive-prompts\n JY-20118-change-default-sync-strategy\n JY-20183-add-cache-on-auto-log-delay\n JY-20197-add-import-opportunity-batch-job\n 20118-hs-opportunity-make-webhook-strategy-default\n JY-20118-make-default-hs-opportunity-sync-strategy-webhook-based\n JY-20196-handle-opportunity-without-note\n JY-20118-improve-opportunity-import\n JY-20189-handle-activity-search-on-deleted-groups\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20613-allow-owner-role-on-team-setup) $ co JY-20725-handle-HS-search-rate-limit\nM\u0000\u0000\u0000\u0000\u0000\u0000\t.env.local\nM\u0000\u0000\u0000\u0000\u0000\u0000\tconfig/logging.php\nSwitched to branch 'JY-20725-handle-HS-search-rate-limit'\nYour branch is behind 'origin/JY-20725-handle-HS-search-rate-limit' by 439 commits, and can be fast-forwarded.\n (use \"git pull\" to update your local branch)\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20725-handle-HS-search-rate-limit) $ git pull\nUpdating 0f3e438941..bc6a3fce6b\nFast-forward\n .gitignore | 3 +-\n .windsurfrules | 168 ++---\n CLAUDE.md | 1 +\n app/Component/ActivityAnalytics/Service/CalculateTalkTimeOffsetsFromTranscription.php | 24 +-\n app/Component/AiActivityType/Services/AiActivityTypeEligibilityChecker.php | 28 +-\n app/Component/AiAutomation/Actions/PrepareUpdateDtoAction.php | 32 +-\n app/Component/AiAutomation/Services/CrmFillingEligibilityChecker.php | 47 ++\n app/Component/AiAutomation/TestCrmAiPromptService.php | 14 +\n app/Component/AiCallScoring/Services/AiCallScoringEligibilityChecker.php | 9 +\n app/Component/ES/ElasticSearchDocumentPartialUpdater.php | 13 +-\n app/Component/ES/ElasticSearchWorkerManager.php | 86 ---\n app/Component/ES/Processor/Actions/LoadDocumentsAction.php | 80 +--\n app/Component/ES/Processor/EntityQueryBuilder.php | 12 +-\n app/Component/ES/Processor/TargetEntitiesSelector.php | 2 +-\n app/Component/ES/Processor/Traits/SkipActivityTrait.php | 25 -\n app/Component/ES/Repositories/EsResetActivityRepository.php | 11 +-\n app/Component/ES/Worker/ActivityWorker.php | 73 --\n app/Component/ES/Worker/EntityWorker.php | 44 --\n app/Component/ES/Worker/WorkerAmount.php | 60 --\n app/Component/ES/Worker/WorkerInterface.php | 15 -\n app/Component/ElasticSearch/Contract/Searchable.php | 4 +\n app/Component/Encoding/Job/AnalyzeTrackChannelsJob.php | 20 +-\n app/Component/Encoding/Service/GenerateSpeechFromSilenceService.php | 85 ++-\n app/Component/FFMpeg/Services/GetSpeechIntervalsService.php | 18 +-\n app/Component/LanguageDetection/Services/FindSpeechTimeService.php | 22 +-\n app/Component/Nudge/Job/ProcessOrganisationImmediateNudgesJob.php | 218 +++++-\n app/Component/ParagraphBreaker/Services/TranscriptionParagraphsService.php | 4 +\n app/Component/ParticipantSpeech/Services/ParticipantSpeechesCreator.php | 33 +\n app/Component/ParticipantSpeech/Services/ParticipantSpeechesDeleter.php | 15 +\n app/Component/ParticipantSpeech/Services/ParticipantSpeechesProvider.php | 51 +-\n app/Component/ParticipantSpeech/Services/ParticipantSpeechesUploader.php | 36 +\n app/Component/ProphetAi/Exceptions/InsufficientTranscriptException.php | 11 +\n app/Component/Transcription/DTO/Http/Transcription/AssemblyAI/AssemblyAI/NoAssemblyIdException.php | 11 +\n app/Component/Transcription/DTO/Http/Transcription/AssemblyAI/AssemblyAI/SuccessfulResponse.php | 6 +\n app/Component/Transcription/DTO/Http/Transcription/TranscriptionIsNotCorrectFormatException.php | 11 +\n app/Component/Transcription/Diarization/Services/GetNormalizedParticipantSpeechesService.php | 23 +-\n app/Component/Transcription/Diarization/Source/MeetingBotSource.php | 16 +-\n app/Component/Transcription/TranscriptionProcessor/TranscriptionProcessor.php | 3 +\n app/Console/Commands/Activities/ActivityHardDeleteCommand.php | 4 +-\n app/Console/Commands/Activities/Copy.php | 2 +\n app/Console/Commands/Activities/SetupIntegration/TwilioSetS3RecordingCredentialsCommand.php | 119 ++++\n app/Console/Commands/Activities/UpdateActivityElasticSearchDocumentCommand.php | 10 +-\n app/Console/Commands/Crm/BackfillOpportunityUserFromAccountCommand.php | 126 ++++\n app/Console/Commands/Elasticsearch/AsyncUpdateEsActivities.php | 19 -\n app/Console/Commands/Elasticsearch/AsyncUpdateEsEntities.php | 50 +-\n app/Console/Commands/Elasticsearch/ResetAsyncElasticSearchCommand.php | 30 +-\n app/Console/Commands/GeckoExport/GeckoExportParticipantSpeechesCommand.php | 14 +-\n app/Console/Commands/IssueMcpTokenCommand.php | 84 +++\n app/Console/Commands/JiminnyDebugCommand.php | 7 +-\n app/Console/Commands/Tracks/CleanupActivityTracksCommand.php | 2 +-\n app/Console/Kernel.php | 6 +-\n app/Contracts/Services/Calendar/CalendarTrait.php | 80 ++-\n app/Events/AutomatedReports/AutomatedReportGenerated.php | 3 +\n app/Http/Controllers/API/AiCallScoring/AiScorecardController.php | 7 +-\n app/Http/Controllers/API/TeamAiAutomationController.php | 8 +\n app/Http/Controllers/CustomerApi/CustomerApiController.php | 4 +-\n app/Http/Controllers/Kiosk/ActivityController.php | 58 +-\n app/Http/Controllers/Settings/PlaybookController.php | 15 +-\n app/Http/Kernel.php | 23 +\n app/Http/Middleware/McpAuditMiddleware.php | 156 ++++\n app/Http/Middleware/McpTierMiddleware.php | 54 ++\n app/Http/Requests/API/V2/ZapierUploadActivityRequest.php | 28 +-\n app/Jobs/Activity/Import/ImportTwilioVideoSpeechesJob.php | 25 +-\n app/Jobs/Activity/Import/IsActivityReadyForProcessingJob.php | 10 +-\n app/Jobs/Calendar/SetupCalendarSync.php | 21 +-\n app/Jobs/ImportRemoteTrackJob.php | 96 ++-\n app/Jobs/Mailbox/EmailTextRelay.php | 15 +-\n app/Mcp/Contracts/McpCallRepositoryInterface.php | 30 +\n app/Mcp/DTO/ListCallsFilters.php | 29 +\n app/Mcp/Errors/McpError.php | 123 ++++\n app/Mcp/Repositories/McpActivityHydrator.php | 145 ++++\n app/Mcp/Repositories/McpCallRepository.php | 84 +++\n app/Mcp/Repositories/McpElasticCallRepository.php | 171 +++++\n app/Mcp/Servers/JiminnyServer.php | 38 +\n app/Mcp/Tools/ListCallsTool.php | 205 ++++++\n app/Models/Activity.php | 10 +-\n app/Models/Activity/Transcription.php | 17 +-\n app/Models/ElasticSearch/OpportunityElasticSearchTrait.php | 5 +\n app/Models/Participant.php | 1 +\n app/Providers/AppServiceProvider.php | 22 +\n app/Repositories/Crm/ContactRepository.php | 69 +-\n app/Repositories/ParticipantSpeechRepository.php | 13 +-\n app/Services/Activity/ParticipantsService.php | 19 +-\n app/Services/Activity/Twilio/S3RecordingCredentialsService.php | 82 +++\n app/Services/ActivityService.php | 21 +-\n app/Services/Calendar/CalendarActivityService.php | 46 ++\n app/Services/Calendar/Command/ImportParticipants.php | 1 +\n app/Services/Calendar/Command/MapActivityData.php | 106 +--\n app/Services/Calendar/GoogleCalendarService.php | 12 +-\n app/Services/Crm/Close/Processor/OpportunityProcessor.php | 2 +-\n app/Services/Crm/Close/Service.php | 22 +-\n app/Services/Crm/Copper/Service.php | 12 +-\n app/Services/Crm/Hubspot/Service.php | 154 +++-\n app/Services/Crm/Hubspot/ServiceTraits/OpportunitySyncTrait.php | 88 ++-\n app/Services/Crm/IntegrationApp/ServiceTraits/SyncCrmEntitiesTrait.php | 22 +-\n app/Services/Crm/Pipedrive/Service.php | 17 +-\n app/Services/Crm/Salesforce/Service.php | 42 +-\n app/Services/Mail/Office/EmailApiClient.php | 129 +---\n app/Services/RecallAI/Commands/ScheduleBotCommand.php | 39 +-\n app/Services/RecallAI/RecallAIService.php | 22 +-\n composer.json | 3 +-\n composer.lock | 87 ++-\n config/mcp.php | 23 +\n database/migrations/2026_04_30_120000_create_mcp_audit_log_table.php | 36 +\n docs/mcp/explorer/explorer.html | 697 ++++++++++++++++++\n docs/mcp/explorer/explorer.template.html | 697 ++++++++++++++++++\n docs/mcp/explorer/generate.js | 215 ++++++\n docs/mcp/explorer/tool-explorer-meta.json | 11 +\n docs/mcp/tools-list.json | 2536 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++\n docs/mcp/tools.md | 621 ++++++++++++++++\n front-end/package.json | 4 +-\n front-end/src/components/Settings/OrgSettings/AiAutomation/CrmFilling/TemplateFieldForm.vue | 28 +-\n front-end/src/components/Settings/OrgSettings/Playbooks/AddEditPlaybook.vue | 10 +\n front-end/src/components/playback/comments/ActivityComment.less | 10 +-\n front-end/src/components/shared/PromptTester/PromptTester.vue | 12 +-\n front-end/src/components/shared/__tests__/PromptTester.spec.js | 35 +\n front-end/src/components/shared/modals/EntityPickerModal/__tests__/useEntitiesCache.spec.ts | 37 +\n front-end/src/components/shared/modals/EntityPickerModal/useEntitiesCache.ts | 9 +\n front-end/yarn.lock | 16 +-\n phpstan-baseline.neon | 50 --\n routes/api.php | 11 +\n sonar-project.properties | 91 ++-\n tests/Feature/Component/Nudge/ProcessOrganisationImmediateNudgesJobTest.php | 534 ++++++++++++++\n tests/Feature/Jobs/ImportRemoteTrackJobTest.php | 283 +++++++-\n tests/Feature/Mcp/IssueMcpTokenCommandTest.php | 53 ++\n tests/Feature/Mcp/ListCallsToolElasticFeatureTest.php | 155 ++++\n tests/Feature/Mcp/ListCallsToolFeatureTest.php | 352 ++++++++++\n tests/Feature/Mcp/McpTestHelpersTrait.php | 77 ++\n tests/Feature/Services/Team/TeamDeleteHandlers/Retention/RetentionRepositoryHandlerTest.php | 1 +\n tests/Stubs/SentryStub.php | 18 +\n tests/Unit/Component/ActivityAnalytics/Service/CalculateTalkTimeOffsetFromTranscriptionTest.php | 28 +-\n tests/Unit/Component/AiActivityType/Services/AiActivityTypeEligibilityCheckerTest.php | 103 ++-\n tests/Unit/Component/AiAutomation/Actions/PrepareUpdateDtoActionTest.php | 91 +++\n tests/Unit/Component/AiAutomation/Services/CrmFillingEligibilityCheckerTest.php | 124 ++++\n tests/Unit/Component/AiAutomation/TestCrmAiPromptServiceTest.php | 67 +-\n tests/Unit/Component/AiCallScoring/Services/AiCallScoringEligibilityCheckerTest.php | 55 ++\n tests/Unit/Component/ES/ElasticSearchWorkerManagerTest.php | 135 ----\n tests/Unit/Component/ES/Processor/Actions/LoadDocumentsActionTest.php | 220 ++++++\n tests/Unit/Component/ES/Processor/EntityQueryBuilderTest.php | 21 +-\n tests/Unit/Component/ES/Processor/Traits/SkipActivityTraitTest.php | 51 --\n tests/Unit/Component/ES/Worker/ActivityWorkerTest.php | 174 -----\n tests/Unit/Component/ES/Worker/EntityWorkerTest.php | 97 ---\n tests/Unit/Component/ES/Worker/WorkerAmountTest.php | 116 ---\n tests/Unit/Component/Encoding/Job/AnalyzeTrackChannelsJobTest.php | 52 +-\n tests/Unit/Component/Encoding/Service/GenerateSpeechFromSilenceServiceTest.php | 171 ++---\n tests/Unit/Component/FFMpeg/Services/GetSpeechIntervalsTest.php | 36 +-\n tests/Unit/Component/LanguageDetection/Services/FindSpeechTimeServiceTest.php | 20 +-\n tests/Unit/Component/MobileSettings/MobileSettingsControllerTest.php | 5 +-\n tests/Unit/Component/ParticipantSpeech/Services/ParticipantSpeechesCreatorTest.php | 75 ++\n tests/Unit/Component/ParticipantSpeech/Services/ParticipantSpeechesDeleterTest.php | 63 ++\n tests/Unit/Component/ParticipantSpeech/Services/ParticipantSpeechesProviderTest.php | 134 ++++\n tests/Unit/Component/ParticipantSpeech/Services/ParticipantSpeechesUploaderTest.php | 57 ++\n tests/Unit/Component/Transcription/Diarization/Services/GetNormalizedParticipantSpeechesServiceTest.php | 51 +-\n tests/Unit/Component/Transcription/Diarization/Source/MeetingBotSourceTest.php | 29 +-\n tests/Unit/Contracts/Services/Calendar/CalendarTraitTest.php | 58 +-\n tests/Unit/Http/Controllers/Kiosk/ActivityControllerTest.php | 159 +++++\n tests/Unit/Jobs/Activity/Import/ImportTwilioVideoSpeechesJobTest.php | 22 +-\n tests/Unit/Jobs/Activity/Import/IsActivityReadyForProcessingJobTest.php | 26 +-\n tests/Unit/Jobs/Calendar/SetupCalendarSyncTest.php | 25 -\n tests/Unit/Services/Activity/ParticipantsServiceTest.php | 12 +-\n tests/Unit/Services/Activity/Twilio/S3RecordingCredentialsServiceTest.php | 180 +++++\n tests/Unit/Services/ActivityServiceTest.php | 132 ++++\n tests/Unit/Services/Calendar/CalendarActivityServiceTest.php | 150 +++-\n tests/Unit/Services/Calendar/Command/ImportParticipantsTest.php | 6 +-\n tests/Unit/Services/Calendar/Command/MapActivityDataTest.php | 78 +-\n tests/Unit/Services/Calendar/GoogleCalendarServiceTest.php | 116 +++\n tests/Unit/Services/Crm/Close/ServiceTest.php | 165 +++++\n tests/Unit/Services/Crm/Hubspot/ServiceTest.php | 272 ++++++-\n tests/Unit/Services/Crm/Hubspot/ServiceTraits/OpportunitySyncTest.php | 25 +-\n tests/Unit/Services/Crm/Hubspot/ServiceTraits/OpportunitySyncTraitMatchActivitiesTest.php | 3 +-\n tests/Unit/Services/Crm/IntegrationApp/ServiceTraits/SyncCrmEntitiesTraitOpportunitiesTest.php | 40 ++\n tests/Unit/Services/Crm/Pipedrive/ImportOpportunityMatchActivitiesTest.php | 2 +\n tests/Unit/Services/Crm/Salesforce/ServiceTest.php | 139 ++++\n tests/Unit/Services/Mail/Office/EmailApiClientTest.php | 195 ++---\n tests/Unit/Services/RecallAI/RecallAIServiceTest.php | 24 +-\n 175 files changed, 12562 insertions(+), 2162 deletions(-)\n create mode 120000 CLAUDE.md\n create mode 100644 app/Component/AiAutomation/Services/CrmFillingEligibilityChecker.php\n delete mode 100644 app/Component/ES/ElasticSearchWorkerManager.php\n delete mode 100644 app/Component/ES/Processor/Traits/SkipActivityTrait.php\n delete mode 100644 app/Component/ES/Worker/ActivityWorker.php\n delete mode 100644 app/Component/ES/Worker/EntityWorker.php\n delete mode 100644 app/Component/ES/Worker/WorkerAmount.php\n delete mode 100644 app/Component/ES/Worker/WorkerInterface.php\n create mode 100644 app/Component/ProphetAi/Exceptions/InsufficientTranscriptException.php\n create mode 100644 app/Component/Transcription/DTO/Http/Transcription/AssemblyAI/AssemblyAI/NoAssemblyIdException.php\n create mode 100644 app/Component/Transcription/DTO/Http/Transcription/TranscriptionIsNotCorrectFormatException.php\n create mode 100644 app/Console/Commands/Activities/SetupIntegration/TwilioSetS3RecordingCredentialsCommand.php\n create mode 100644 app/Console/Commands/Crm/BackfillOpportunityUserFromAccountCommand.php\n delete mode 100644 app/Console/Commands/Elasticsearch/AsyncUpdateEsActivities.php\n create mode 100644 app/Console/Commands/IssueMcpTokenCommand.php\n create mode 100644 app/Http/Middleware/McpAuditMiddleware.php\n create mode 100644 app/Http/Middleware/McpTierMiddleware.php\n create mode 100644 app/Mcp/Contracts/McpCallRepositoryInterface.php\n create mode 100644 app/Mcp/DTO/ListCallsFilters.php\n create mode 100644 app/Mcp/Errors/McpError.php\n create mode 100644 app/Mcp/Repositories/McpActivityHydrator.php\n create mode 100644 app/Mcp/Repositories/McpCallRepository.php\n create mode 100644 app/Mcp/Repositories/McpElasticCallRepository.php\n create mode 100644 app/Mcp/Servers/JiminnyServer.php\n create mode 100644 app/Mcp/Tools/ListCallsTool.php\n create mode 100644 app/Services/Activity/Twilio/S3RecordingCredentialsService.php\n create mode 100644 config/mcp.php\n create mode 100644 database/migrations/2026_04_30_120000_create_mcp_audit_log_table.php\n create mode 100644 docs/mcp/explorer/explorer.html\n create mode 100644 docs/mcp/explorer/explorer.template.html\n create mode 100644 docs/mcp/explorer/generate.js\n create mode 100644 docs/mcp/explorer/tool-explorer-meta.json\n create mode 100644 docs/mcp/tools-list.json\n create mode 100644 docs/mcp/tools.md\n create mode 100644 front-end/src/components/shared/modals/EntityPickerModal/__tests__/useEntitiesCache.spec.ts\n create mode 100644 tests/Feature/Component/Nudge/ProcessOrganisationImmediateNudgesJobTest.php\n create mode 100644 tests/Feature/Mcp/IssueMcpTokenCommandTest.php\n create mode 100644 tests/Feature/Mcp/ListCallsToolElasticFeatureTest.php\n create mode 100644 tests/Feature/Mcp/ListCallsToolFeatureTest.php\n create mode 100644 tests/Feature/Mcp/McpTestHelpersTrait.php\n create mode 100644 tests/Stubs/SentryStub.php\n create mode 100644 tests/Unit/Component/AiAutomation/Services/CrmFillingEligibilityCheckerTest.php\n delete mode 100644 tests/Unit/Component/ES/ElasticSearchWorkerManagerTest.php\n create mode 100644 tests/Unit/Component/ES/Processor/Actions/LoadDocumentsActionTest.php\n delete mode 100644 tests/Unit/Component/ES/Processor/Traits/SkipActivityTraitTest.php\n delete mode 100644 tests/Unit/Component/ES/Worker/ActivityWorkerTest.php\n delete mode 100644 tests/Unit/Component/ES/Worker/EntityWorkerTest.php\n delete mode 100644 tests/Unit/Component/ES/Worker/WorkerAmountTest.php\n create mode 100644 tests/Unit/Component/ParticipantSpeech/Services/ParticipantSpeechesCreatorTest.php\n create mode 100644 tests/Unit/Http/Controllers/Kiosk/ActivityControllerTest.php\n create mode 100644 tests/Unit/Services/Activity/Twilio/S3RecordingCredentialsServiceTest.php\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20725-handle-HS-search-rate-limit) $ git status\nOn branch master\nYour branch is behind 'origin/master' by 114 commits, and can be fast-forwarded.\n (use \"git pull\" to update your local branch)\n\nChanges not staged for commit:\n (use \"git add <file>...\" to update what will be committed)\n (use \"git restore <file>...\" to discard changes in working directory)\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tmodified: .env.local\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tmodified: app/Component/SCIM/Constants.php\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tmodified: app/Component/SCIM/ScimProvisioning.php\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tmodified: app/Component/Twilio/Conference/ConferenceManager/SoftPhoneManager.php\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tmodified: app/Console/Commands/JiminnyDebugCommand.php\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tmodified: app/DTO/SCIM/AAD/Request/CoreUserRequest.php\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tmodified: app/DTO/SCIM/AAD/Response/CoreUser.php\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tmodified: app/Services/Telephony/TextMessagingService.php\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tmodified: config/logging.php\n\nUntracked files:\n (use \"git add <file>...\" to include in what will be committed)\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\t.env.nikilocal\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\t.env.other\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tWEBHOOK_FILTERING_IMPLEMENTATION.md\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tapp/Component/SCIM/Mutators/Attributes/User/RoleAttr.php\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tapp/Console/Commands/Crm/Hubspot/SimulateWebhooksCommand.php\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tapp/Console/Commands/Reports/CreateMockAskJiminnyReportResultCommand.php\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tapp/Rules/ListenerRoleCannotHaveAdminOrManagerPermissionRule.php\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tids.txt\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tpublic/favicon.ico\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\traw_sql_query.sql\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\ttests/Unit/Component/SCIM/Mutators/Attributes/User/RoleAttrTest.php\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\ttests/Unit/Policies/CanAccessAiReportsTest.php\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\ttests/Unit/Rules/ListenerRoleCannotHaveAdminOrManagerPermissionRuleTest.php\n\nno changes added to commit (use \"git add\" and/or \"git commit -a\")\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (master) $ git pull\nremote: Enumerating objects: 306, done.\nremote: Counting objects: 100% (299/299), done.\nremote: Compressing objects: 100% (183/183), done.\nremote: Total 306 (delta 213), reused 171 (delta 116), pack-reused 7 (from 1)\nReceiving objects: 100% (306/306), 80.12 KiB | 1000.00 KiB/s, done.\nResolving deltas: 100% (213/213), completed with 53 local objects.\nFrom github.com:jiminny/app\n 90bca4e4b2..5604af40cf master -> origin/master\n 4e7078fd8b..0b8343d179 JY-18091-upgrade-to-php-8-5 -> origin/JY-18091-upgrade-to-php-8-5\n 098eeaa087..d5a447e492 JY-20613-allow-owner-role-on-team-setup -> origin/JY-20613-allow-owner-role-on-team-setup\n c3a76ace91..af65249d0f JY-20749-user-can-view-recorded-meetings -> origin/JY-20749-user-can-view-recorded-meetings\n d94a285ae7..7ce96cb5fe JY-20808-low-priority-indexing-queue -> origin/JY-20808-low-priority-indexing-queue\n * [new branch] JY-20842-remove-partial-updater -> origin/JY-20842-remove-partial-updater\n * [new branch] JY-20920-fix-participant-flip -> origin/JY-20920-fix-participant-flip\n * [new branch] secfix/npm-20260519 -> origin/secfix/npm-20260519\nUpdating cb4ebf0c36..5604af40cf\nFast-forward\n app/Component/ES/ChunkSize.php | 54 +++++++++++++++++++\n app/Component/ES/Processor/DTOs/SelectionList.php | 4 +-\n app/Component/ES/Processor/TargetEntitiesSelector.php | 19 ++++---\n app/Component/MeetingBot/Service/ParticipantMatcher.php | 46 ++++++++++++----\n app/Exceptions/RateLimitException.php | 19 ++++++-\n app/Http/Middleware/McpTierMiddleware.php | 27 ++--------\n app/Jobs/Crm/MatchActivityCrmData.php | 47 ++++++++++++----\n app/Jobs/Middleware/HandleHubspotRateLimit.php | 42 +++++++++++++++\n app/Mcp/Servers/JiminnyServer.php | 2 +\n app/Mcp/Tools/GetMeTool.php | 157 +++++++++++++++++++++++++++++++++++++++++++++++++++++\n app/Models/Feature/FeatureEnum.php | 1 +\n app/Services/Activity/HubSpot/ProviderResolver.php | 4 +-\n app/Services/Activity/HubSpot/ProviderResolverInterface.php | 2 +-\n app/Services/Activity/HubSpot/Providers/Provider.php | 2 +-\n app/Services/Activity/HubSpot/Providers/ProviderKixie.php | 2 +-\n app/Services/Activity/HubSpot/Providers/ProviderOrum.php | 2 +-\n app/Services/Activity/HubSpot/Providers/ProviderTwilio.php | 2 +-\n app/Services/Activity/HubSpot/Providers/ProviderTwilioFlex.php | 5 +-\n app/Services/Activity/HubSpot/Service.php | 97 +++++++++++++++++++++++++++------\n app/Services/Crm/Hubspot/Client.php | 132 +++++++++++++++++++++++++++++++++++++++++++++\n app/Services/Crm/Hubspot/HubspotClientInterface.php | 15 ++++++\n app/Services/Crm/Hubspot/Pagination/HubspotPaginationService.php | 21 ++++----\n app/Services/Crm/Hubspot/Pagination/PaginationState.php | 2 +-\n database/migrations/2026_05_13_124153_create_mcp_feature_flag.php | 25 +++++++++\n tests/Feature/Mcp/GetMeToolFeatureTest.php | 140 +++++++++++++++++++++++++++++++++++++++++++++++\n tests/Feature/Mcp/ListCallsToolFeatureTest.php | 2 +-\n tests/Feature/Mcp/McpTestHelpersTrait.php | 19 ++++++-\n tests/Unit/Component/ES/ChunkSizeTest.php | 50 +++++++++++++++++\n tests/Unit/Component/ES/Processor/DTOs/SelectionListTest.php | 27 +++++++---\n tests/Unit/Component/ES/Processor/TargetEntitiesSelectorTest.php | 39 ++++++++------\n tests/Unit/Component/MeetingBot/Service/ParticipantMatcherTest.php | 68 ++++++++++++++++++++++-\n tests/Unit/Exceptions/RateLimitExceptionTest.php | 56 +++++++++++++++++++\n tests/Unit/Jobs/Crm/MatchActivityCrmDataTest.php | 8 +--\n tests/Unit/Jobs/Middleware/HandleHubspotRateLimitTest.php | 151 +++++++++++++++++++++++++++++++++++++++++++++++++++\n tests/Unit/Services/Activity/HubSpot/ServiceTest.php | 109 +++++++++++++++++++++++++++++++++++++\n tests/Unit/Services/Crm/Hubspot/ClientTest.php | 250 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++\n tests/Unit/Services/Crm/Hubspot/Pagination/HubspotPaginationServiceTest.php | 283 +++++++++++++++++++++---------------------------------------------------------------------------\n 37 files changed, 1587 insertions(+), 344 deletions(-)\n create mode 100644 app/Component/ES/ChunkSize.php\n create mode 100644 app/Jobs/Middleware/HandleHubspotRateLimit.php\n create mode 100644 app/Mcp/Tools/GetMeTool.php\n create mode 100644 database/migrations/2026_05_13_124153_create_mcp_feature_flag.php\n create mode 100644 tests/Feature/Mcp/GetMeToolFeatureTest.php\n create mode 100644 tests/Unit/Component/ES/ChunkSizeTest.php\n create mode 100644 tests/Unit/Exceptions/RateLimitExceptionTest.php\n create mode 100644 tests/Unit/Jobs/Middleware/HandleHubspotRateLimitTest.php\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (master) $ git pull\nAlready up to date.\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (master) $ co -b JY-20676-delete-report-related-objects\nSwitched to a new branch 'JY-20676-delete-report-related-objects'\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20676-delete-report-related-objects) $ csfix\ndocker exec -it docker_lamp_1 ./vendor/bin/php-cs-fixer fix --config=.php-cs-fixer.dist.php -v --using-cache=no --diff \nPHP CS Fixer 3.87.1 Alexander by Fabien Potencier, Dariusz Ruminski and contributors.\nPHP runtime: 8.3.30\nRunning analysis on 7 cores with 10 files per process.\nParallel runner is an experimental feature and may be unstable, use it at your own risk. Feedback highly appreciated!\nLoaded config default from \".php-cs-fixer.dist.php\".\n 5690/5690 [▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓] 100%\n\n 1) app/Console/Commands/JiminnyDebugCommand.php (statement_indentation, blank_line_before_statement)\n ---------- begin diff ----------\n--- /home/jiminny/app/Console/Commands/JiminnyDebugCommand.php\n+++ /home/jiminny/app/Console/Commands/JiminnyDebugCommand.php\n@@ -23,6 +23,7 @@\n \n if ($action === 'redis-set') {\n $this->testRedisSet();\n+\n return;\n }\n \n@@ -45,7 +46,7 @@\n $ttl = 60;\n \n try {\n-// $result = Redis::set($testKey, $testValue, 'EX', $ttl, 'NX');\n+ // $result = Redis::set($testKey, $testValue, 'EX', $ttl, 'NX');\n $result = Redis::set($testKey, $testValue, ['nx', 'ex' => $ttl]);\n \n if ($result) {\n\n ----------- end diff -----------\n\n\nFixed 1 of 5690 files in 50.673 seconds, 67.00 MB memory used\n\nWhat's next:\n Try Docker Debug for seamless, persistent debugging tools in any container or image → docker debug docker_lamp_1\n Learn more at https://docs.docker.com/go/debug-cli/\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20676-delete-report-related-objects) $ ;xd\ndocker exec -it docker_lamp_1 bash -c \"mv /usr/local/etc/php/conf.d/xdebug.ini ~/xdebug.ini\"\n\nWhat's next:\n Try Docker Debug for seamless, persistent debugging tools in any container or image → docker debug docker_lamp_1\n Learn more at https://docs.docker.com/go/debug-cli/\ndocker exec -it docker_lamp_1 supervisorctl restart all\njiminny-worker-processing-2:jiminny-worker-processing-2_00: stopped\njiminny-worker-processing-3:jiminny-worker-processing-3_00: stopped\njiminny-worker-processing-4:jiminny-worker-processing-4_00: stopped\njiminny-worker-processing-5:jiminny-worker-processing-5_00: stopped\njiminny-worker-processing-delayed:jiminny-worker-processing-delayed_00: stopped\nworker-analytics:worker-analytics_00: stopped\nworker-crm-update:worker-crm-update_00: stopped\nworker-download:worker-download_00: stopped\nworker-nudges:worker-nudges_00: stopped\nworker-calendar:worker-calendar_00: stopped\nworker-audio:worker-audio_00: stopped\njiminny-worker-processing-1:jiminny-worker-processing-1_00: stopped\nworker:worker_00: stopped\nworker-conferences:worker-conferences_00: stopped\nworker-crm-sync:worker-crm-sync_00: stopped\nworker-emails:worker-emails_00: stopped\nworker-es-update:worker-es-update_00: stopped\nartisan-schedule:artisan-schedule_00: stopped\nartisan-schedule:artisan-schedule_00: started\njiminny-worker-processing-1:jiminny-worker-processing-1_00: started\njiminny-worker-processing-2:jiminny-worker-processing-2_00: started\njiminny-worker-processing-3:jiminny-worker-processing-3_00: started\njiminny-worker-processing-4:jiminny-worker-processing-4_00: started\njiminny-worker-processing-5:jiminny-worker-processing-5_00: started\njiminny-worker-processing-delayed:jiminny-worker-processing-delayed_00: started\nworker:worker_00: started\nworker-analytics:worker-analytics_00: started\nworker-audio:worker-audio_00: started\nworker-calendar:worker-calendar_00: started\nworker-conferences:worker-conferences_00: started\nworker-crm-sync:worker-crm-sync_00: started\nworker-crm-update:worker-crm-update_00: started\nworker-download:worker-download_00: started\nworker-emails:worker-emails_00: started\nworker-es-update:worker-es-update_00: started\nworker-nudges:worker-nudges_00: started\n\nWhat's next:\n Try Docker Debug for seamless, persistent debugging tools in any container or image → docker debug docker_lamp_1\n Learn more at https://docs.docker.com/go/debug-cli/\ndocker exec -it docker_lamp_1 php -v\nPHP 8.3.30 (cli) (built: Mar 16 2026 22:32:32) (NTS)\nCopyright (c) The PHP Group\nZend Engine v4.3.30, Copyright (c) Zend Technologies\n with Zend OPcache v8.3.30, Copyright (c), by Zend Technologies\n\nWhat's next:\n Try Docker Debug for seamless, persistent debugging tools in any container or image → docker debug docker_lamp_1\n Learn more at https://docs.docker.com/go/debug-cli/\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20676-delete-report-related-objects) $ git status\nOn branch JY-20676-delete-report-related-objects\nChanges not staged for commit:\n (use \"git add <file>...\" to update what will be committed)\n (use \"git restore <file>...\" to discard changes in working directory)\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tmodified: .env.local\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tmodified: app/Console/Commands/JiminnyDebugCommand.php\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tmodified: config/logging.php\n\nUntracked files:\n (use \"git add <file>...\" to include in what will be committed)\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\t.env.nikilocal\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\t.env.other\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tWEBHOOK_FILTERING_IMPLEMENTATION.md\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tapp/Console/Commands/Crm/Hubspot/SimulateWebhooksCommand.php\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tapp/Console/Commands/Reports/CreateMockAskJiminnyReportResultCommand.php\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tids.txt\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tpublic/favicon.ico\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\traw_sql_query.sql\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\ttests/Unit/Policies/CanAccessAiReportsTest.php\n\nno changes added to commit (use \"git add\" and/or \"git commit -a\")\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20676-delete-report-related-objects) $ git push -u origin JY-20676-delete-report-related-objects\nEnumerating objects: 45, done.\nCounting objects: 100% (45/45), done.\nDelta compression using up to 8 threads\nCompressing objects: 100% (24/24), done.\nWriting objects: 100% (24/24), 3.62 KiB | 3.62 MiB/s, done.\nTotal 24 (delta 19), reused 0 (delta 0), pack-reused 0\nremote: Resolving deltas: 100% (19/19), completed with 19 local objects.\nremote: \nremote: Create a pull request for 'JY-20676-delete-report-related-objects' on GitHub by visiting:\nremote: https://github.com/jiminny/app/pull/new/JY-20676-delete-report-related-objects\nremote: \nTo github.com:jiminny/app.git\n * [new branch] JY-20676-delete-report-related-objects -> JY-20676-delete-report-related-objects\nbranch 'JY-20676-delete-report-related-objects' set up to track 'origin/JY-20676-delete-report-related-objects'.\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20676-delete-report-related-objects) $ csfix\ndocker exec -it docker_lamp_1 ./vendor/bin/php-cs-fixer fix --config=.php-cs-fixer.dist.php -v --using-cache=no --diff \nPHP CS Fixer 3.87.1 Alexander by Fabien Potencier, Dariusz Ruminski and contributors.\nPHP runtime: 8.3.30\nRunning analysis on 7 cores with 10 files per process.\nParallel runner is an experimental feature and may be unstable, use it at your own risk. Feedback highly appreciated!\nLoaded config default from \".php-cs-fixer.dist.php\".\n 5690/5690 [▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓] 100%\n\n 1) app/Http/Controllers/API/V2/AskJiminnyReportsController.php (blank_line_before_statement)\n ---------- begin diff ----------\n--- /home/jiminny/app/Http/Controllers/API/V2/AskJiminnyReportsController.php\n+++ /home/jiminny/app/Http/Controllers/API/V2/AskJiminnyReportsController.php\n@@ -140,6 +140,7 @@\n if ($enabled && $report->isAskJiminnyReport() && ! $report->canExecute()) {\n $error = 'This report is missing a saved search or prompt. ' .\n 'Edit the report to complete the setup before enabling it.';\n+\n return new JsonResponse(\n ['error' => $error],\n Response::HTTP_UNPROCESSABLE_ENTITY\n\n ----------- end diff -----------\n\n\nFixed 1 of 5690 files in 71.757 seconds, 60.00 MB memory used\n\nWhat's next:\n Try Docker Debug for seamless, persistent debugging tools in any container or image → docker debug docker_lamp_1\n Learn more at https://docs.docker.com/go/debug-cli/\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20676-delete-report-related-objects) $ git pull\nremote: Enumerating objects: 158, done.\nremote: Counting objects: 100% (103/103), done.\nremote: Compressing objects: 100% (37/37), done.\nremote: Total 158 (delta 80), reused 74 (delta 66), pack-reused 55 (from 3)\nReceiving objects: 100% (158/158), 80.59 KiB | 982.00 KiB/s, done.\nResolving deltas: 100% (85/85), completed with 45 local objects.\nFrom github.com:jiminny/app\n 02a33811ee..c6ce5e2440 JY-20676-delete-report-related-objects -> origin/JY-20676-delete-report-related-objects\n 7ce96cb5fe..6c59f04358 JY-20808-low-priority-indexing-queue -> origin/JY-20808-low-priority-indexing-queue\n 3906a9238a..2b5e6ea62b JY-20835-mcp-enable-users-to-get-a-list-of-deals-and-their-details -> origin/JY-20835-mcp-enable-users-to-get-a-list-of-deals-and-their-details\n 5604af40cf..ea3519f0e2 master -> origin/master\n * [new branch] switch-eu-assembly -> origin/switch-eu-assembly\nUpdating 02a33811ee..c6ce5e2440\nFast-forward\n app/Component/ES/ElasticSearchDocumentPartialUpdater.php | 48 ---\n app/Component/ParticipantSpeech/Services/ParticipantAttributionService.php | 4 +-\n app/Component/Settings/AutoScoring/Services/UpdateAutoScoreService.php | 20 +-\n app/Component/Transcription/Service/StorageService.php | 8 +-\n front-end/package.json | 2 +-\n front-end/src/components/DealInsights/Modals/AskAnythingModal.vue | 23 ++\n front-end/src/components/shared/AskAnything/AskAnythingPromptFormItem.vue | 2 +\n front-end/src/components/shared/AskAnything/AskAnythingSettingsDrawer.vue | 23 +-\n front-end/src/components/shared/AskAnything/__mocks__/AskAnythingSettingsDrawer.mocks.js | 1 +\n front-end/src/components/shared/AskAnything/__tests__/AskAnythingSettingsDrawer.spec.js | 135 ++++---\n front-end/src/components/shared/AskAnything/__tests__/__snapshots__/AskAnythingSettingsDrawer.spec.js.html | 1235 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++\n front-end/src/components/shared/AskAnything/__tests__/__snapshots__/AskAnythingSettingsDrawer.spec.js.snap | 1382 ----------------------------------------------------------------\n front-end/src/components/shared/AskAnything/prompts.js | 1 +\n front-end/src/components/shared/AskAnything/useAskAnything.js | 1 +\n front-end/yarn.lock | 8 +-\n tests/Unit/Component/ES/ElasticSearchDocumentPartialUpdaterTest.php | 42 --\n tests/Unit/Component/Settings/AutoScoring/Services/UpdateAutoScoreServiceTest.php | 86 ++--\n tests/Unit/Component/Transcription/Service/StorageServiceTest.php | 29 +-\n 18 files changed, 1448 insertions(+), 1602 deletions(-)\n delete mode 100644 app/Component/ES/ElasticSearchDocumentPartialUpdater.php\n create mode 100644 front-end/src/components/shared/AskAnything/__tests__/__snapshots__/AskAnythingSettingsDrawer.spec.js.html\n delete mode 100644 front-end/src/components/shared/AskAnything/__tests__/__snapshots__/AskAnythingSettingsDrawer.spec.js.snap\n delete mode 100644 tests/Unit/Component/ES/ElasticSearchDocumentPartialUpdaterTest.php\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20676-delete-report-related-objects) $ csfix\ndocker exec -it docker_lamp_1 ./vendor/bin/php-cs-fixer fix --config=.php-cs-fixer.dist.php -v --using-cache=no --diff \nPHP CS Fixer 3.87.1 Alexander by Fabien Potencier, Dariusz Ruminski and contributors.\nPHP runtime: 8.3.30\nRunning analysis on 7 cores with 10 files per process.\nParallel runner is an experimental feature and may be unstable, use it at your own risk. Feedback highly appreciated!\nLoaded config default from \".php-cs-fixer.dist.php\".","is_focused":true},{"role":"AXRadioButton","text":"DOCKER","depth":2,"bounds":{"left":0.0,"top":0.05888889,"width":0.19826388,"height":0.026666667},"on_screen":true,"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.004166667,"top":0.06333333,"width":0.011111111,"height":0.017777778},"on_screen":true,"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"DEV (docker)","depth":2,"bounds":{"left":0.19826388,"top":0.05888889,"width":0.19826388,"height":0.026666667},"on_screen":true,"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.20243056,"top":0.06333333,"width":0.011111111,"height":0.017777778},"on_screen":true,"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"APP (docker)","depth":2,"bounds":{"left":0.39652777,"top":0.05888889,"width":0.19791667,"height":0.026666667},"on_screen":true,"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.40069443,"top":0.06333333,"width":0.011111111,"height":0.017777778},"on_screen":true,"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"screenpipe\"","depth":2,"bounds":{"left":0.59444445,"top":0.05888889,"width":0.19791667,"height":0.026666667},"on_screen":true,"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.5986111,"top":0.06333333,"width":0.011111111,"height":0.017777778},"on_screen":true,"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"-zsh","depth":2,"bounds":{"left":0.79236114,"top":0.05888889,"width":0.19791667,"height":0.026666667},"on_screen":true,"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.7965278,"top":0.06333333,"width":0.011111111,"height":0.017777778},"on_screen":true,"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"⌥⌘1","depth":1,"bounds":{"left":0.9618056,"top":0.032222223,"width":0.038194418,"height":0.018888889},"on_screen":true,"automation_id":"_NS:8","role_description":"text"},{"role":"AXStaticText","text":"APP (docker)","depth":1,"bounds":{"left":0.4722222,"top":0.033333335,"width":0.0625,"height":0.017777778},"on_screen":true,"role_description":"text"}]...
|
2802650493718167367
|
-1358120912881272742
|
click
|
accessibility
|
NULL
|
Last login: Mon May 18 09:17:28 on ttys007
Poetry Last login: Mon May 18 09:17:28 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 (pipedrive-sdk-poc) $ co master
error: Your local changes to the following files would be overwritten by checkout:
PIPEDRIVE_V2_MIGRATION_TICKETS.md
Please commit your changes or stash them before you switch branches.
Aborting
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (pipedrive-sdk-poc) $ git pull
remote: Enumerating objects: 1047, done.
remote: Counting objects: 100% (832/832), done.
remote: Compressing objects: 100% (298/298), done.
remote: Total 1047 (delta 634), reused 596 (delta 534), pack-reused 215 (from 3)
Receiving objects: 100% (1047/1047), 353.16 KiB | 1.56 MiB/s, done.
Resolving deltas: 100% (687/687), completed with 107 local objects.
From github.com:jiminny/app
907c54896c..34656c53ed pipedrive-sdk-poc -> origin/pipedrive-sdk-poc
03325ec50f..4e7078fd8b JY-18091-upgrade-to-php-8-5 -> origin/JY-18091-upgrade-to-php-8-5
e7d231e163..bc6a3fce6b JY-20725-handle-HS-search-rate-limit -> origin/JY-20725-handle-HS-search-rate-limit
* [new branch] JY-20749-user-can-view-recorded-meetings -> origin/JY-20749-user-can-view-recorded-meetings
98ca281a04..e0351be069 JY-20808-low-priority-indexing-queue -> origin/JY-20808-low-priority-indexing-queue
569abb5149..3906a9238a JY-20835-mcp-enable-users-to-get-a-list-of-deals-and-their-details -> origin/JY-20835-mcp-enable-users-to-get-a-list-of-deals-and-their-details
ad6c2a86e8..50eb6afba9 JY-20846-mcp-enable-the-ai-to-know-details-about-the-user -> origin/JY-20846-mcp-enable-the-ai-to-know-details-about-the-user
* [new branch] JY-20893-chunk-control-per-update-target -> origin/JY-20893-chunk-control-per-update-target
31c62924a5..cb4ebf0c36 master -> origin/master
Updating 907c54896c..34656c53ed
Fast-forward
PIPEDRIVE_V2_MIGRATION_TICKETS.md | 52 ++++++++++++++++++++++++++++++++++++++++++++++++++++
1 file changed, 52 insertions(+)
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (pipedrive-sdk-poc) $ co master
M .env.local
M config/logging.php
Switched to branch 'master'
Your branch is behind 'origin/master' by 31 commits, and can be fast-forwarded.
(use "git pull" to update your local branch)
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (master) $ git pull
Updating 31c62924a5..cb4ebf0c36
Fast-forward
app/Component/ES/Processor/Traits/SelectEntityListTrait.php | 20 ------
app/Services/Calendar/CalendarActivityService.php | 46 +++++++++++++
app/Services/Calendar/Command/MapActivityData.php | 106 +++-------------------------
docs/mcp/explorer/explorer.html | 104 +++++++++++++++++++++++++---
docs/mcp/explorer/explorer.template.html | 102 ++++++++++++++++++++++++---
docs/mcp/tools-list.json | 373 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++-------
docs/mcp/tools.md | 117 +++++++++++++++++++++++--------
tests/Unit/Component/ES/AsyncUpdateElasticSearchTest.php | 16 +----
tests/Unit/Component/ES/Listeners/UpdateMultipleTargetsListenerTest.php | 10 ---
tests/Unit/Component/ES/Listeners/UpdateSingleTargetListenerTest.php | 6 --
tests/Unit/Component/ES/Processor/TargetEntitiesSelectorTest.php | 9 ---
tests/Unit/Component/ES/Processor/Traits/SelectEntityListTraitTest.php | 15 ++--
tests/Unit/Component/ES/UpdateProcessManagerTest.php | 2 -
tests/Unit/Services/Calendar/CalendarActivityServiceTest.php | 150 ++++++++++++++++++++++++++++++++++++++--
tests/Unit/Services/Calendar/Command/MapActivityDataTest.php | 78 ++-------------------
15 files changed, 832 insertions(+), 322 deletions(-)
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (master) $ co -b JY-20613-allow-owner-role-on-team-setup
Switched to a new branch 'JY-20613-allow-owner-role-on-team-setup'
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20613-allow-owner-role-on-team-setup) $ csfix
docker exec -it docker_lamp_1 ./vendor/bin/php-cs-fixer fix --config=.php-cs-fixer.dist.php -v --using-cache=no --diff
PHP CS Fixer 3.87.1 Alexander by Fabien Potencier, Dariusz Ruminski and contributors.
PHP runtime: 8.3.30
Running 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!
Loaded config default from ".php-cs-fixer.dist.php".
5682/5682 [▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓] 100%
Fixed 0 of 5682 files in 56.978 seconds, 67.00 MB memory used
What's next:
Try Docker Debug for seamless, persistent debugging tools in any container or image → docker debug docker_lamp_1
Learn more at [URL_WITH_CREDENTIALS] ~/jiminny/app (JY-20613-allow-owner-role-on-team-setup) $ csfix
docker exec -it docker_lamp_1 ./vendor/bin/php-cs-fixer fix --config=.php-cs-fixer.dist.php -v --using-cache=no --diff
PHP CS Fixer 3.87.1 Alexander by Fabien Potencier, Dariusz Ruminski and contributors.
PHP runtime: 8.3.30
Running 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!
Loaded config default from ".php-cs-fixer.dist.php".
5682/5682 [▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓] 100%
Fixed 0 of 5682 files in 49.910 seconds, 60.00 MB memory used
What's next:
Try Docker Debug for seamless, persistent debugging tools in any container or image → docker debug docker_lamp_1
Learn more at [URL_WITH_CREDENTIALS] ~/jiminny/app (JY-20613-allow-owner-role-on-team-setup) $ git pull
remote: Enumerating objects: 248, done.
remote: Counting objects: 100% (128/128), done.
remote: Compressing objects: 100% (23/23), done.
remote: Total 59 (delta 43), reused 44 (delta 33), pack-reused 0 (from 0)
Unpacking objects: 100% (59/59), 10.48 KiB | 228.00 KiB/s, done.
From github.com:jiminny/app
b7df560451..190239dfd4 JY-20613-allow-owner-role-on-team-setup -> origin/JY-20613-allow-owner-role-on-team-setup
e0351be069..d94a285ae7 JY-20808-low-priority-indexing-queue -> origin/JY-20808-low-priority-indexing-queue
* [new branch] JY-20920-fix-participant-matcher -> origin/JY-20920-fix-participant-matcher
cb4ebf0c36..90bca4e4b2 master -> origin/master
Merge made by the 'ort' strategy.
app/Component/ES/ChunkSize.php | 54 +++++++++++++++++++++++++++
app/Component/ES/Processor/DTOs/SelectionList.php | 4 +-
app/Component/ES/Processor/TargetEntitiesSelector.php | 19 ++++++----
app/Http/Middleware/McpTierMiddleware.php | 27 +++-----------
app/Mcp/Servers/JiminnyServer.php | 2 +
app/Mcp/Tools/GetMeTool.php | 157 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
app/Models/Feature/FeatureEnum.php | 1 +
database/migrations/2026_05_13_124153_create_mcp_feature_flag.php | 25 +++++++++++++
front-end/src/components/Settings/Kiosk/modals/EditTeamModal/EditTeamModal.vue | 52 ++++++++++++++++++--------
front-end/src/components/Settings/Kiosk/modals/EditTeamModal/__tests__/EditTeamModal.spec.js | 14 +++++++
tests/Feature/Mcp/GetMeToolFeatureTest.php | 140 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
tests/Feature/Mcp/ListCallsToolFeatureTest.php | 2 +-
tests/Feature/Mcp/McpTestHelpersTrait.php | 19 +++++++++-
tests/Unit/Component/ES/ChunkSizeTest.php | 50 +++++++++++++++++++++++++
tests/Unit/Component/ES/Processor/DTOs/SelectionListTest.php | 27 ++++++++++----
tests/Unit/Component/ES/Processor/TargetEntitiesSelectorTest.php | 39 +++++++++++---------
16 files changed, 557 insertions(+), 75 deletions(-)
create mode 100644 app/Component/ES/ChunkSize.php
create mode 100644 app/Mcp/Tools/GetMeTool.php
create mode 100644 database/migrations/2026_05_13_124153_create_mcp_feature_flag.php
create mode 100644 tests/Feature/Mcp/GetMeToolFeatureTest.php
create mode 100644 tests/Unit/Component/ES/ChunkSizeTest.php
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20613-allow-owner-role-on-team-setup) $ git push
Enumerating objects: 40, done.
Counting objects: 100% (34/34), done.
Delta compression using up to 8 threads
Compressing objects: 100% (18/18), done.
Writing objects: 100% (18/18), 1.58 KiB | 1.58 MiB/s, done.
Total 18 (delta 15), reused 0 (delta 0), pack-reused 0
remote: Resolving deltas: 100% (15/15), completed with 13 local objects.
To github.com:jiminny/app.git
190239dfd4..ec1b261264 JY-20613-allow-owner-role-on-team-setup -> JY-20613-allow-owner-role-on-team-setup
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20613-allow-owner-role-on-team-setup) $ gbr
* JY-20613-allow-owner-role-on-team-setup
pipedrive-sdk-poc
master
JY-20903-update_activity-stage-on-opportunity-change
JY-20904-fix-update-es-on-activity-command
JY-20891-improve-sms-text-relays
JY-20725-handle-HS-search-rate-limit
JY-20818-move-AJ-reports-to-separated-datadog-metric
JY-20773-fix-automated-reports-user-pilot-tracking
JY-20157-AJ-report-not-send-notification
JY-20508-notify-before-AJ-report-expiration
JY-20372-ai-reports-promotion-pages
JY-20352-sync-opportunities-without-a-local-owner-user-id-is-null
JY-20738-debug-AJ-tracking-UP
a
JY-18909-automated-reports-ask-jiminny
JY-20692-fix-integration-app-[API_KEY]
JY-20553-debug-crm-sync-delays
JY-20698-fix-SF-activity-types-on-new-playbook
JY-20543-AJ-report-tracking
JY-20384-handle-auto-sync-with-no-access-to-event-type
JY-20458-ask-jiminny-user-definitions
JY-19666-fix-import-contacts-account-association
JY-19666-HS-import-contacts-and-accounts-batch-job
JY-20458-Ask-Jiminny-Reports
JY-20200-batch-update-CRM-objects-Salesforce
JY-19666-HS-webhooks-add-contact-and-company
JY-20348-trigger-setup-DI-layout-on-team-creation
JY-20326-refactor-info-message-in-command
JY-20317-fix-auto-log-delay-issue-on-all-channels-disabled
JY-20312-remove-on-update-change-last-synced-at-crm-configurations
JY-20306-SF-skip-auto-sync-for-task-based-playbook
JY-20192-remove-deleted-team-from-saved-search-filters
JY-20197-import-opportunity-batch-job
JY-20293-enable-status-field-for-pipedrive-deals
JY-20191-remove-commands-interactive-prompts
JY-20118-change-default-sync-strategy
JY-20183-add-cache-on-auto-log-delay
JY-20197-add-import-opportunity-batch-job
20118-hs-opportunity-make-webhook-strategy-default
JY-20118-make-default-hs-opportunity-sync-strategy-webhook-based
JY-20196-handle-opportunity-without-note
JY-20118-improve-opportunity-import
JY-20189-handle-activity-search-on-deleted-groups
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20613-allow-owner-role-on-team-setup) $ co JY-20725-handle-HS-search-rate-limit
M .env.local
M config/logging.php
Switched to branch 'JY-20725-handle-HS-search-rate-limit'
Your branch is behind 'origin/JY-20725-handle-HS-search-rate-limit' by 439 commits, and can be fast-forwarded.
(use "git pull" to update your local branch)
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20725-handle-HS-search-rate-limit) $ git pull
Updating 0f3e438941..bc6a3fce6b
Fast-forward
.gitignore | 3 +-
.windsurfrules | 168 ++---
CLAUDE.md | 1 +
app/Component/ActivityAnalytics/Service/CalculateTalkTimeOffsetsFromTranscription.php | 24 +-
app/Component/AiActivityType/Services/AiActivityTypeEligibilityChecker.php | 28 +-
app/Component/AiAutomation/Actions/PrepareUpdateDtoAction.php | 32 +-
app/Component/AiAutomation/Services/CrmFillingEligibilityChecker.php | 47 ++
app/Component/AiAutomation/TestCrmAiPromptService.php | 14 +
app/Component/AiCallScoring/Services/AiCallScoringEligibilityChecker.php | 9 +
app/Component/ES/ElasticSearchDocumentPartialUpdater.php | 13 +-
app/Component/ES/ElasticSearchWorkerManager.php | 86 ---
app/Component/ES/Processor/Actions/LoadDocumentsAction.php | 80 +--
app/Component/ES/Processor/EntityQueryBuilder.php | 12 +-
app/Component/ES/Processor/TargetEntitiesSelector.php | 2 +-
app/Component/ES/Processor/Traits/SkipActivityTrait.php | 25 -
app/Component/ES/Repositories/EsResetActivityRepository.php | 11 +-
app/Component/ES/Worker/ActivityWorker.php | 73 --
app/Component/ES/Worker/EntityWorker.php | 44 --
app/Component/ES/Worker/WorkerAmount.php | 60 --
app/Component/ES/Worker/WorkerInterface.php | 15 -
app/Component/ElasticSearch/Contract/Searchable.php | 4 +
app/Component/Encoding/Job/AnalyzeTrackChannelsJob.php | 20 +-
app/Component/Encoding/Service/GenerateSpeechFromSilenceService.php | 85 ++-
app/Component/FFMpeg/Services/GetSpeechIntervalsService.php | 18 +-
app/Component/LanguageDetection/Services/FindSpeechTimeService.php | 22 +-
app/Component/Nudge/Job/ProcessOrganisationImmediateNudgesJob.php | 218 +++++-
app/Component/ParagraphBreaker/Services/TranscriptionParagraphsService.php | 4 +
app/Component/ParticipantSpeech/Services/ParticipantSpeechesCreator.php | 33 +
app/Component/ParticipantSpeech/Services/ParticipantSpeechesDeleter.php | 15 +
app/Component/ParticipantSpeech/Services/ParticipantSpeechesProvider.php | 51 +-
app/Component/ParticipantSpeech/Services/ParticipantSpeechesUploader.php | 36 +
app/Component/ProphetAi/Exceptions/InsufficientTranscriptException.php | 11 +
app/Component/Transcription/DTO/Http/Transcription/AssemblyAI/AssemblyAI/NoAssemblyIdException.php | 11 +
app/Component/Transcription/DTO/Http/Transcription/AssemblyAI/AssemblyAI/SuccessfulResponse.php | 6 +
app/Component/Transcription/DTO/Http/Transcription/TranscriptionIsNotCorrectFormatException.php | 11 +
app/Component/Transcription/Diarization/Services/GetNormalizedParticipantSpeechesService.php | 23 +-
app/Component/Transcription/Diarization/Source/MeetingBotSource.php | 16 +-
app/Component/Transcription/TranscriptionProcessor/TranscriptionProcessor.php | 3 +
app/Console/Commands/Activities/ActivityHardDeleteCommand.php | 4 +-
app/Console/Commands/Activities/Copy.php | 2 +
app/Console/Commands/Activities/SetupIntegration/TwilioSetS3RecordingCredentialsCommand.php | 119 ++++
app/Console/Commands/Activities/UpdateActivityElasticSearchDocumentCommand.php | 10 +-
app/Console/Commands/Crm/BackfillOpportunityUserFromAccountCommand.php | 126 ++++
app/Console/Commands/Elasticsearch/AsyncUpdateEsActivities.php | 19 -
app/Console/Commands/Elasticsearch/AsyncUpdateEsEntities.php | 50 +-
app/Console/Commands/Elasticsearch/ResetAsyncElasticSearchCommand.php | 30 +-
app/Console/Commands/GeckoExport/GeckoExportParticipantSpeechesCommand.php | 14 +-
app/Console/Commands/IssueMcpTokenCommand.php | 84 +++
app/Console/Commands/JiminnyDebugCommand.php | 7 +-
app/Console/Commands/Tracks/CleanupActivityTracksCommand.php | 2 +-
app/Console/Kernel.php | 6 +-
app/Contracts/Services/Calendar/CalendarTrait.php | 80 ++-
app/Events/AutomatedReports/AutomatedReportGenerated.php | 3 +
app/Http/Controllers/API/AiCallScoring/AiScorecardController.php | 7 +-
app/Http/Controllers/API/TeamAiAutomationController.php | 8 +
app/Http/Controllers/CustomerApi/CustomerApiController.php | 4 +-
app/Http/Controllers/Kiosk/ActivityController.php | 58 +-
app/Http/Controllers/Settings/PlaybookController.php | 15 +-
app/Http/Kernel.php | 23 +
app/Http/Middleware/McpAuditMiddleware.php | 156 ++++
app/Http/Middleware/McpTierMiddleware.php | 54 ++
app/Http/Requests/API/V2/ZapierUploadActivityRequest.php | 28 +-
app/Jobs/Activity/Import/ImportTwilioVideoSpeechesJob.php | 25 +-
app/Jobs/Activity/Import/IsActivityReadyForProcessingJob.php | 10 +-
app/Jobs/Calendar/SetupCalendarSync.php | 21 +-
app/Jobs/ImportRemoteTrackJob.php | 96 ++-
app/Jobs/Mailbox/EmailTextRelay.php | 15 +-
app/Mcp/Contracts/McpCallRepositoryInterface.php | 30 +
app/Mcp/DTO/ListCallsFilters.php | 29 +
app/Mcp/Errors/McpError.php | 123 ++++
app/Mcp/Repositories/McpActivityHydrator.php | 145 ++++
app/Mcp/Repositories/McpCallRepository.php | 84 +++
app/Mcp/Repositories/McpElasticCallRepository.php | 171 +++++
app/Mcp/Servers/JiminnyServer.php | 38 +
app/Mcp/Tools/ListCallsTool.php | 205 ++++++
app/Models/Activity.php | 10 +-
app/Models/Activity/Transcription.php | 17 +-
app/Models/ElasticSearch/OpportunityElasticSearchTrait.php | 5 +
app/Models/Participant.php | 1 +
app/Providers/AppServiceProvider.php | 22 +
app/Repositories/Crm/ContactRepository.php | 69 +-
app/Repositories/ParticipantSpeechRepository.php | 13 +-
app/Services/Activity/ParticipantsService.php | 19 +-
app/Services/Activity/Twilio/S3RecordingCredentialsService.php | 82 +++
app/Services/ActivityService.php | 21 +-
app/Services/Calendar/CalendarActivityService.php | 46 ++
app/Services/Calendar/Command/ImportParticipants.php | 1 +
app/Services/Calendar/Command/MapActivityData.php | 106 +--
app/Services/Calendar/GoogleCalendarService.php | 12 +-
app/Services/Crm/Close/Processor/OpportunityProcessor.php | 2 +-
app/Services/Crm/Close/Service.php | 22 +-
app/Services/Crm/Copper/Service.php | 12 +-
app/Services/Crm/Hubspot/Service.php | 154 +++-
app/Services/Crm/Hubspot/ServiceTraits/OpportunitySyncTrait.php | 88 ++-
app/Services/Crm/IntegrationApp/ServiceTraits/SyncCrmEntitiesTrait.php | 22 +-
app/Services/Crm/Pipedrive/Service.php | 17 +-
app/Services/Crm/Salesforce/Service.php | 42 +-
app/Services/Mail/Office/EmailApiClient.php | 129 +---
app/Services/RecallAI/Commands/ScheduleBotCommand.php | 39 +-
app/Services/RecallAI/RecallAIService.php | 22 +-
composer.json | 3 +-
composer.lock | 87 ++-
config/mcp.php | 23 +
database/migrations/2026_04_30_120000_create_mcp_audit_log_table.php | 36 +
docs/mcp/explorer/explorer.html | 697 ++++++++++++++++++
docs/mcp/explorer/explorer.template.html | 697 ++++++++++++++++++
docs/mcp/explorer/generate.js | 215 ++++++
docs/mcp/explorer/tool-explorer-meta.json | 11 +
docs/mcp/tools-list.json | 2536 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
docs/mcp/tools.md | 621 ++++++++++++++++
front-end/package.json | 4 +-
front-end/src/components/Settings/OrgSettings/AiAutomation/CrmFilling/TemplateFieldForm.vue | 28 +-
front-end/src/components/Settings/OrgSettings/Playbooks/AddEditPlaybook.vue | 10 +
front-end/src/components/playback/comments/ActivityComment.less | 10 +-
front-end/src/components/shared/PromptTester/PromptTester.vue | 12 +-
front-end/src/components/shared/__tests__/PromptTester.spec.js | 35 +
front-end/src/components/shared/modals/EntityPickerModal/__tests__/useEntitiesCache.spec.ts | 37 +
front-end/src/components/shared/modals/EntityPickerModal/useEntitiesCache.ts | 9 +
front-end/yarn.lock | 16 +-
phpstan-baseline.neon | 50 --
routes/api.php | 11 +
sonar-project.properties | 91 ++-
tests/Feature/Component/Nudge/ProcessOrganisationImmediateNudgesJobTest.php | 534 ++++++++++++++
tests/Feature/Jobs/ImportRemoteTrackJobTest.php | 283 +++++++-
tests/Feature/Mcp/IssueMcpTokenCommandTest.php | 53 ++
tests/Feature/Mcp/ListCallsToolElasticFeatureTest.php | 155 ++++
tests/Feature/Mcp/ListCallsToolFeatureTest.php | 352 ++++++++++
tests/Feature/Mcp/McpTestHelpersTrait.php | 77 ++
tests/Feature/Services/Team/TeamDeleteHandlers/Retention/RetentionRepositoryHandlerTest.php | 1 +
tests/Stubs/SentryStub.php | 18 +
tests/Unit/Component/ActivityAnalytics/Service/CalculateTalkTimeOffsetFromTranscriptionTest.php | 28 +-
tests/Unit/Component/AiActivityType/Services/AiActivityTypeEligibilityCheckerTest.php | 103 ++-
tests/Unit/Component/AiAutomation/Actions/PrepareUpdateDtoActionTest.php | 91 +++
tests/Unit/Component/AiAutomation/Services/CrmFillingEligibilityCheckerTest.php | 124 ++++
tests/Unit/Component/AiAutomation/TestCrmAiPromptServiceTest.php | 67 +-
tests/Unit/Component/AiCallScoring/Services/AiCallScoringEligibilityCheckerTest.php | 55 ++
tests/Unit/Component/ES/ElasticSearchWorkerManagerTest.php | 135 ----
tests/Unit/Component/ES/Processor/Actions/LoadDocumentsActionTest.php | 220 ++++++
tests/Unit/Component/ES/Processor/EntityQueryBuilderTest.php | 21 +-
tests/Unit/Component/ES/Processor/Traits/SkipActivityTraitTest.php | 51 --
tests/Unit/Component/ES/Worker/ActivityWorkerTest.php | 174 -----
tests/Unit/Component/ES/Worker/EntityWorkerTest.php | 97 ---
tests/Unit/Component/ES/Worker/WorkerAmountTest.php | 116 ---
tests/Unit/Component/Encoding/Job/AnalyzeTrackChannelsJobTest.php | 52 +-
tests/Unit/Component/Encoding/Service/GenerateSpeechFromSilenceServiceTest.php | 171 ++---
tests/Unit/Component/FFMpeg/Services/GetSpeechIntervalsTest.php | 36 +-
tests/Unit/Component/LanguageDetection/Services/FindSpeechTimeServiceTest.php | 20 +-
tests/Unit/Component/MobileSettings/MobileSettingsControllerTest.php | 5 +-
tests/Unit/Component/ParticipantSpeech/Services/ParticipantSpeechesCreatorTest.php | 75 ++
tests/Unit/Component/ParticipantSpeech/Services/ParticipantSpeechesDeleterTest.php | 63 ++
tests/Unit/Component/ParticipantSpeech/Services/ParticipantSpeechesProviderTest.php | 134 ++++
tests/Unit/Component/ParticipantSpeech/Services/ParticipantSpeechesUploaderTest.php | 57 ++
tests/Unit/Component/Transcription/Diarization/Services/GetNormalizedParticipantSpeechesServiceTest.php | 51 +-
tests/Unit/Component/Transcription/Diarization/Source/MeetingBotSourceTest.php | 29 +-
tests/Unit/Contracts/Services/Calendar/CalendarTraitTest.php | 58 +-
tests/Unit/Http/Controllers/Kiosk/ActivityControllerTest.php | 159 +++++
tests/Unit/Jobs/Activity/Import/ImportTwilioVideoSpeechesJobTest.php | 22 +-
tests/Unit/Jobs/Activity/Import/IsActivityReadyForProcessingJobTest.php | 26 +-
tests/Unit/Jobs/Calendar/SetupCalendarSyncTest.php | 25 -
tests/Unit/Services/Activity/ParticipantsServiceTest.php | 12 +-
tests/Unit/Services/Activity/Twilio/S3RecordingCredentialsServiceTest.php | 180 +++++
tests/Unit/Services/ActivityServiceTest.php | 132 ++++
tests/Unit/Services/Calendar/CalendarActivityServiceTest.php | 150 +++-
tests/Unit/Services/Calendar/Command/ImportParticipantsTest.php | 6 +-
tests/Unit/Services/Calendar/Command/MapActivityDataTest.php | 78 +-
tests/Unit/Services/Calendar/GoogleCalendarServiceTest.php | 116 +++
tests/Unit/Services/Crm/Close/ServiceTest.php | 165 +++++
tests/Unit/Services/Crm/Hubspot/ServiceTest.php | 272 ++++++-
tests/Unit/Services/Crm/Hubspot/ServiceTraits/OpportunitySyncTest.php | 25 +-
tests/Unit/Services/Crm/Hubspot/ServiceTraits/OpportunitySyncTraitMatchActivitiesTest.php | 3 +-
tests/Unit/Services/Crm/IntegrationApp/ServiceTraits/SyncCrmEntitiesTraitOpportunitiesTest.php | 40 ++
tests/Unit/Services/Crm/Pipedrive/ImportOpportunityMatchActivitiesTest.php | 2 +
tests/Unit/Services/Crm/Salesforce/ServiceTest.php | 139 ++++
tests/Unit/Services/Mail/Office/EmailApiClientTest.php | 195 ++---
tests/Unit/Services/RecallAI/RecallAIServiceTest.php | 24 +-
175 files changed, 12562 insertions(+), 2162 deletions(-)
create mode 120000 CLAUDE.md
create mode 100644 app/Component/AiAutomation/Services/CrmFillingEligibilityChecker.php
delete mode 100644 app/Component/ES/ElasticSearchWorkerManager.php
delete mode 100644 app/Component/ES/Processor/Traits/SkipActivityTrait.php
delete mode 100644 app/Component/ES/Worker/ActivityWorker.php
delete mode 100644 app/Component/ES/Worker/EntityWorker.php
delete mode 100644 app/Component/ES/Worker/WorkerAmount.php
delete mode 100644 app/Component/ES/Worker/WorkerInterface.php
create mode 100644 app/Component/ProphetAi/Exceptions/InsufficientTranscriptException.php
create mode 100644 app/Component/Transcription/DTO/Http/Transcription/AssemblyAI/AssemblyAI/NoAssemblyIdException.php
create mode 100644 app/Component/Transcription/DTO/Http/Transcription/TranscriptionIsNotCorrectFormatException.php
create mode 100644 app/Console/Commands/Activities/SetupIntegration/TwilioSetS3RecordingCredentialsCommand.php
create mode 100644 app/Console/Commands/Crm/BackfillOpportunityUserFromAccountCommand.php
delete mode 100644 app/Console/Commands/Elasticsearch/AsyncUpdateEsActivities.php
create mode 100644 app/Console/Commands/IssueMcpTokenCommand.php
create mode 100644 app/Http/Middleware/McpAuditMiddleware.php
create mode 100644 app/Http/Middleware/McpTierMiddleware.php
create mode 100644 app/Mcp/Contracts/McpCallRepositoryInterface.php
create mode 100644 app/Mcp/DTO/ListCallsFilters.php
create mode 100644 app/Mcp/Errors/McpError.php
create mode 100644 app/Mcp/Repositories/McpActivityHydrator.php
create mode 100644 app/Mcp/Repositories/McpCallRepository.php
create mode 100644 app/Mcp/Repositories/McpElasticCallRepository.php
create mode 100644 app/Mcp/Servers/JiminnyServer.php
create mode 100644 app/Mcp/Tools/ListCallsTool.php
create mode 100644 app/Services/Activity/Twilio/S3RecordingCredentialsService.php
create mode 100644 config/mcp.php
create mode 100644 database/migrations/2026_04_30_120000_create_mcp_audit_log_table.php
create mode 100644 docs/mcp/explorer/explorer.html
create mode 100644 docs/mcp/explorer/explorer.template.html
create mode 100644 docs/mcp/explorer/generate.js
create mode 100644 docs/mcp/explorer/tool-explorer-meta.json
create mode 100644 docs/mcp/tools-list.json
create mode 100644 docs/mcp/tools.md
create mode 100644 front-end/src/components/shared/modals/EntityPickerModal/__tests__/useEntitiesCache.spec.ts
create mode 100644 tests/Feature/Component/Nudge/ProcessOrganisationImmediateNudgesJobTest.php
create mode 100644 tests/Feature/Mcp/IssueMcpTokenCommandTest.php
create mode 100644 tests/Feature/Mcp/ListCallsToolElasticFeatureTest.php
create mode 100644 tests/Feature/Mcp/ListCallsToolFeatureTest.php
create mode 100644 tests/Feature/Mcp/McpTestHelpersTrait.php
create mode 100644 tests/Stubs/SentryStub.php
create mode 100644 tests/Unit/Component/AiAutomation/Services/CrmFillingEligibilityCheckerTest.php
delete mode 100644 tests/Unit/Component/ES/ElasticSearchWorkerManagerTest.php
create mode 100644 tests/Unit/Component/ES/Processor/Actions/LoadDocumentsActionTest.php
delete mode 100644 tests/Unit/Component/ES/Processor/Traits/SkipActivityTraitTest.php
delete mode 100644 tests/Unit/Component/ES/Worker/ActivityWorkerTest.php
delete mode 100644 tests/Unit/Component/ES/Worker/EntityWorkerTest.php
delete mode 100644 tests/Unit/Component/ES/Worker/WorkerAmountTest.php
create mode 100644 tests/Unit/Component/ParticipantSpeech/Services/ParticipantSpeechesCreatorTest.php
create mode 100644 tests/Unit/Http/Controllers/Kiosk/ActivityControllerTest.php
create mode 100644 tests/Unit/Services/Activity/Twilio/S3RecordingCredentialsServiceTest.php
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20725-handle-HS-search-rate-limit) $ git status
On branch master
Your branch is behind 'origin/master' by 114 commits, and can be fast-forwarded.
(use "git pull" to update your local branch)
Changes not staged for commit:
(use "git add <file>..." to update what will be committed)
(use "git restore <file>..." to discard changes in working directory)
modified: .env.local
modified: app/Component/SCIM/Constants.php
modified: app/Component/SCIM/ScimProvisioning.php
modified: app/Component/Twilio/Conference/ConferenceManager/SoftPhoneManager.php
modified: app/Console/Commands/JiminnyDebugCommand.php
modified: app/DTO/SCIM/AAD/Request/CoreUserRequest.php
modified: app/DTO/SCIM/AAD/Response/CoreUser.php
modified: app/Services/Telephony/TextMessagingService.php
modified: config/logging.php
Untracked files:
(use "git add <file>..." to include in what will be committed)
.env.nikilocal
.env.other
WEBHOOK_FILTERING_IMPLEMENTATION.md
app/Component/SCIM/Mutators/Attributes/User/RoleAttr.php
app/Console/Commands/Crm/Hubspot/SimulateWebhooksCommand.php
app/Console/Commands/Reports/CreateMockAskJiminnyReportResultCommand.php
app/Rules/ListenerRoleCannotHaveAdminOrManagerPermissionRule.php
ids.txt
public/favicon.ico
raw_sql_query.sql
tests/Unit/Component/SCIM/Mutators/Attributes/User/RoleAttrTest.php
tests/Unit/Policies/CanAccessAiReportsTest.php
tests/Unit/Rules/ListenerRoleCannotHaveAdminOrManagerPermissionRuleTest.php
no changes added to commit (use "git add" and/or "git commit -a")
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (master) $ git pull
remote: Enumerating objects: 306, done.
remote: Counting objects: 100% (299/299), done.
remote: Compressing objects: 100% (183/183), done.
remote: Total 306 (delta 213), reused 171 (delta 116), pack-reused 7 (from 1)
Receiving objects: 100% (306/306), 80.12 KiB | 1000.00 KiB/s, done.
Resolving deltas: 100% (213/213), completed with 53 local objects.
From github.com:jiminny/app
90bca4e4b2..5604af40cf master -> origin/master
4e7078fd8b..0b8343d179 JY-18091-upgrade-to-php-8-5 -> origin/JY-18091-upgrade-to-php-8-5
098eeaa087..d5a447e492 JY-20613-allow-owner-role-on-team-setup -> origin/JY-20613-allow-owner-role-on-team-setup
c3a76ace91..af65249d0f JY-20749-user-can-view-recorded-meetings -> origin/JY-20749-user-can-view-recorded-meetings
d94a285ae7..7ce96cb5fe JY-20808-low-priority-indexing-queue -> origin/JY-20808-low-priority-indexing-queue
* [new branch] JY-20842-remove-partial-updater -> origin/JY-20842-remove-partial-updater
* [new branch] JY-20920-fix-participant-flip -> origin/JY-20920-fix-participant-flip
* [new branch] secfix/npm-20260519 -> origin/secfix/npm-20260519
Updating cb4ebf0c36..5604af40cf
Fast-forward
app/Component/ES/ChunkSize.php | 54 +++++++++++++++++++
app/Component/ES/Processor/DTOs/SelectionList.php | 4 +-
app/Component/ES/Processor/TargetEntitiesSelector.php | 19 ++++---
app/Component/MeetingBot/Service/ParticipantMatcher.php | 46 ++++++++++++----
app/Exceptions/RateLimitException.php | 19 ++++++-
app/Http/Middleware/McpTierMiddleware.php | 27 ++--------
app/Jobs/Crm/MatchActivityCrmData.php | 47 ++++++++++++----
app/Jobs/Middleware/HandleHubspotRateLimit.php | 42 +++++++++++++++
app/Mcp/Servers/JiminnyServer.php | 2 +
app/Mcp/Tools/GetMeTool.php | 157 +++++++++++++++++++++++++++++++++++++++++++++++++++++
app/Models/Feature/FeatureEnum.php | 1 +
app/Services/Activity/HubSpot/ProviderResolver.php | 4 +-
app/Services/Activity/HubSpot/ProviderResolverInterface.php | 2 +-
app/Services/Activity/HubSpot/Providers/Provider.php | 2 +-
app/Services/Activity/HubSpot/Providers/ProviderKixie.php | 2 +-
app/Services/Activity/HubSpot/Providers/ProviderOrum.php | 2 +-
app/Services/Activity/HubSpot/Providers/ProviderTwilio.php | 2 +-
app/Services/Activity/HubSpot/Providers/ProviderTwilioFlex.php | 5 +-
app/Services/Activity/HubSpot/Service.php | 97 +++++++++++++++++++++++++++------
app/Services/Crm/Hubspot/Client.php | 132 +++++++++++++++++++++++++++++++++++++++++++++
app/Services/Crm/Hubspot/HubspotClientInterface.php | 15 ++++++
app/Services/Crm/Hubspot/Pagination/HubspotPaginationService.php | 21 ++++----
app/Services/Crm/Hubspot/Pagination/PaginationState.php | 2 +-
database/migrations/2026_05_13_124153_create_mcp_feature_flag.php | 25 +++++++++
tests/Feature/Mcp/GetMeToolFeatureTest.php | 140 +++++++++++++++++++++++++++++++++++++++++++++++
tests/Feature/Mcp/ListCallsToolFeatureTest.php | 2 +-
tests/Feature/Mcp/McpTestHelpersTrait.php | 19 ++++++-
tests/Unit/Component/ES/ChunkSizeTest.php | 50 +++++++++++++++++
tests/Unit/Component/ES/Processor/DTOs/SelectionListTest.php | 27 +++++++---
tests/Unit/Component/ES/Processor/TargetEntitiesSelectorTest.php | 39 ++++++++------
tests/Unit/Component/MeetingBot/Service/ParticipantMatcherTest.php | 68 ++++++++++++++++++++++-
tests/Unit/Exceptions/RateLimitExceptionTest.php | 56 +++++++++++++++++++
tests/Unit/Jobs/Crm/MatchActivityCrmDataTest.php | 8 +--
tests/Unit/Jobs/Middleware/HandleHubspotRateLimitTest.php | 151 +++++++++++++++++++++++++++++++++++++++++++++++++++
tests/Unit/Services/Activity/HubSpot/ServiceTest.php | 109 +++++++++++++++++++++++++++++++++++++
tests/Unit/Services/Crm/Hubspot/ClientTest.php | 250 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
tests/Unit/Services/Crm/Hubspot/Pagination/HubspotPaginationServiceTest.php | 283 +++++++++++++++++++++---------------------------------------------------------------------------
37 files changed, 1587 insertions(+), 344 deletions(-)
create mode 100644 app/Component/ES/ChunkSize.php
create mode 100644 app/Jobs/Middleware/HandleHubspotRateLimit.php
create mode 100644 app/Mcp/Tools/GetMeTool.php
create mode 100644 database/migrations/2026_05_13_124153_create_mcp_feature_flag.php
create mode 100644 tests/Feature/Mcp/GetMeToolFeatureTest.php
create mode 100644 tests/Unit/Component/ES/ChunkSizeTest.php
create mode 100644 tests/Unit/Exceptions/RateLimitExceptionTest.php
create mode 100644 tests/Unit/Jobs/Middleware/HandleHubspotRateLimitTest.php
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (master) $ git pull
Already up to date.
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (master) $ co -b JY-20676-delete-report-related-objects
Switched to a new branch 'JY-20676-delete-report-related-objects'
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20676-delete-report-related-objects) $ csfix
docker exec -it docker_lamp_1 ./vendor/bin/php-cs-fixer fix --config=.php-cs-fixer.dist.php -v --using-cache=no --diff
PHP CS Fixer 3.87.1 Alexander by Fabien Potencier, Dariusz Ruminski and contributors.
PHP runtime: 8.3.30
Running 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!
Loaded config default from ".php-cs-fixer.dist.php".
5690/5690 [▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓] 100%
1) app/Console/Commands/JiminnyDebugCommand.php (statement_indentation, blank_line_before_statement)
---------- begin diff ----------
--- /home/jiminny/app/Console/Commands/JiminnyDebugCommand.php
+++ /home/jiminny/app/Console/Commands/JiminnyDebugCommand.php
@@ -23,6 +23,7 @@
if ($action === 'redis-set') {
$this->testRedisSet();
+
return;
}
@@ -45,7 +46,7 @@
$ttl = 60;
try {
-// $result = Redis::set($testKey, $testValue, 'EX', $ttl, 'NX');
+ // $result = Redis::set($testKey, $testValue, 'EX', $ttl, 'NX');
$result = Redis::set($testKey, $testValue, ['nx', 'ex' => $ttl]);
if ($result) {
----------- end diff -----------
Fixed 1 of 5690 files i...
|
58067
|
NULL
|
NULL
|
NULL
|
|
58071
|
2045
|
3
|
2026-05-19T11:32:01.337047+00:00
|
/Users/lukas/.screenpipe/data/data/2026-05-19/1779 /Users/lukas/.screenpipe/data/data/2026-05-19/1779190321337_m2.jpg...
|
PhpStorm
|
faVsco.js – AskAnythingPromptService.php
|
1
|
NULL
|
monitor_2
|
NULL
|
NULL
|
NULL
|
NULL
|
PnostormcodeFV faVsco.js°9 JY-20676-delete-report- PnostormcodeFV faVsco.js°9 JY-20676-delete-report-related-objeroledeyCActivityController.ongphp api.php© AskAnythingController.php© AskAnythingPromptDto.php© AskAnythingPromptService.php XAsKAnytIngkepository.ongC) AutomatedReportsServicelest.onp( Events©ASKAnythingPromptDto.png© AsKAnytningPromptservice.ongc Historyservice.ong© AskJiminnyReportsController.php© AutomatedF©) AskAnythingPromptServiceTest.phpD AskJiminnyAiWAWSu cachew countryDatabase→ DatadogDatettimeDealinsiahtsN DealRisks1N GlasticSearchM EloquentEncoding• Encryption1M Sakenm FeaturerlagsD FFMpegD FileSystemcong_ cuzzienutou reyPolntsKIOSK_ LanquageDetectionW LOCKSW Math_Mediapioeline2 MobileSettinas/ Model2 NotificationNudaelIM ParagranhBreakeM PartitionedCookieM PlavbackPadeM PlavlistProphetM PronhetAfM DrosnorWorkdM AuoncMDoutorclass ASkAnyth1ngPromptServicepublic function get(User $user, AskAnythingPromptTarget $target): arraysprompts = sthis->askanyth1nqrepos1tory->t1ndPromptsByUserAndlarqetaStarget1+ soromots->1sNot Emotv00*Spromots->LoadCountcrautomatedRenorts')s$promptDtos = [J:foreach ($prompts as $prompt) 1Cownerllund = nuinif (Sprompt->get0wner !== null) {SownerUuid = Sprompt->get0wner->getUuidO:Schanelisens = null+// Provide users and groups only if owner of the prompt is current usenif ($prompt->get0wnerId() === $user->getId) {[$shareUsers, SshareGroups] = Sthis->qetReceiverUuids(Sprompt):SpromptDtos[] = new AskAnythingPromptDto(Sprompt->qetuu1doSprompt->getTitleoSpromot->getContentOspromot->aetHasReportsolneturn Soromntltos:* Ananam annauectrinas Cchanollconclluidd* @param array<string> $shareGroupsUuidsnublie funation enontoUser Suserstring Stitle• lue 1y May 14.32*0'+0 ..© Search.phpRenect=custom.log= laravel.log4 SF jiminny@localhost] x4 HS_local [jiminny@localhost]& console [PROD]# console [euyA console [STAGING]182_ . © CoachingFeedbackCoachUserln.phpTx: AutovSo jiminny v021 A1 A18 V2 V6 ^SELECT ar.id, ar.uuid, ar.mediatype, ar.status, a.typeFROM automated_report_results arJOIN automated_reports a ON a.id = ar.reportidWHERE a.type ='ask_jiminny'LIMIT 10;SELECT * FROM automated reports where id = 71;SELECT * FROM automated report results where report id = 71:UPDATE automated reports set playbook categories = NULL where id = 68SELECT * FROM automated report results where id = 275;SELECT * FROM autorated_reports order by za desc;SELECT * FROMautomated_reportresults order by 1d desc:select * from activity_searches here user_id = 143;select * fronSELECTautomated_renort_results.*FROMautomated_revort_resultsiautomated remort results', renort id' =automated reoorts'.'1diANDautomated renort results' generated at' IS NOT NUILLI"automated_report_results'."sent_at' IS NOT NULLANDautomated renorts' team id = 1AND JSON_CONTAINS(' automated_reports'. 'recipients', 143, '$."users"')SELECT * FROM automated_reports where id = 67:SELECT * FROM automated_reports where id = 42;SELECT * FROM users WHERE id = 143; # group 28select * from teams where id = 3143;select * from crm_configurations where id = 500:select * from users where name = 'Integration Account': # 1695SELECT * FROM social accounts WHERE sociable id = 1695:select * from activities where crm_configuration id = 39and recording state = 'recorded' and duration › 60and status = 'completed' and actual start time >= '2025-12-01':SELECT * FROM activities WHERE uuid to bin('458cf915-6914-4000-b083-568763262956') = uuid:select * from leads›SELECT * FROM activities WHERE uuid to bin('{43cf158-e60d-46e5-92f8-c4e0594a3219') = uuid: # 422003SELECT * FROM activities WHERE id IN (16,422003):SSIECT * SROM activitios whenp status ='failed';Socket fail to connect to host:address=(host=localhost) (port=3306)(tvpe=primarv). Connection refusedCascade•ASK Jiminny Report@AskAnythingRepository-php#L94-100 is ther eany danger in this? Will that modify existign functionality?IS loadCount('automatedReports') here risky?Short answer: No real risk for existing callers, but there are a couple of subtle things worth knowing.What it actuallv chandesLoadcount does two things to the returned collection:1. Runs one extra query: SELECT ask_anything_prompt_id, COUNT(*) FROM automated_reports WHERE ask_anything_promp+idIN GROUP BY ask anvthing promot 1d2. Adds a single attribute automated_reports_count to each prompt model in the collection.That's it. It doesn't• Modity any column already on the model• Touch the database (no writes)• Aftect relationships, scopes, or queries built later from these models.• Persist anything when the model is saved (counts aren't in sfillable and aren't in any DB column, so a subsequent sores itPotential concerns1. Extra query for every caller of findPromptsByUserAndTarget. Currently this method is called from:• AskAnythingPromptService::get() - needs the count (the whole point),• Anvwhere else?¡et me check — if other call sites don't need the count they nav one eytra querv for nothinglSearched findPromntsRvllserAndTaraet in ann (4)Thought for 5sfindPromptsByUserAndTarget is also called from ReorderAskAnvthinaPromptsRequest.php:31-32 and :61-63 - bothignore prompts beyond their UUID/count, so they'd now pay one unnecessary COUNT(*) GROUP BY query each (twice per2. JSON leakage - if any code path returns these models directly (instead of through a DTO/transformer), the responsewould suddenly contain automated_reports_count. After grepping, prompts always go through AskAnythingPromptDto, sono leak. But it's a tootgun tor tuture code3. save() after - counts are not fillable and not real columns, so a subsequent save() ignores them. No corruption riskRecommendationThe cleanest fix is to move loadCount out of the repository and into the service that actually needs it. Repositoriesshould return raw data: eader-loadina ic a caller concernlAckAnvthinaRenocitorv nhnlAskAnvthinaPromotService.ohvAsk anvthing 884-D)<> Code Claude Qnus 4.7 MediumW Windsurf Teams27-1 UTE.RPo 4 st...
|
NULL
|
-252317941815019964
|
NULL
|
click
|
ocr
|
NULL
|
PnostormcodeFV faVsco.js°9 JY-20676-delete-report- PnostormcodeFV faVsco.js°9 JY-20676-delete-report-related-objeroledeyCActivityController.ongphp api.php© AskAnythingController.php© AskAnythingPromptDto.php© AskAnythingPromptService.php XAsKAnytIngkepository.ongC) AutomatedReportsServicelest.onp( Events©ASKAnythingPromptDto.png© AsKAnytningPromptservice.ongc Historyservice.ong© AskJiminnyReportsController.php© AutomatedF©) AskAnythingPromptServiceTest.phpD AskJiminnyAiWAWSu cachew countryDatabase→ DatadogDatettimeDealinsiahtsN DealRisks1N GlasticSearchM EloquentEncoding• Encryption1M Sakenm FeaturerlagsD FFMpegD FileSystemcong_ cuzzienutou reyPolntsKIOSK_ LanquageDetectionW LOCKSW Math_Mediapioeline2 MobileSettinas/ Model2 NotificationNudaelIM ParagranhBreakeM PartitionedCookieM PlavbackPadeM PlavlistProphetM PronhetAfM DrosnorWorkdM AuoncMDoutorclass ASkAnyth1ngPromptServicepublic function get(User $user, AskAnythingPromptTarget $target): arraysprompts = sthis->askanyth1nqrepos1tory->t1ndPromptsByUserAndlarqetaStarget1+ soromots->1sNot Emotv00*Spromots->LoadCountcrautomatedRenorts')s$promptDtos = [J:foreach ($prompts as $prompt) 1Cownerllund = nuinif (Sprompt->get0wner !== null) {SownerUuid = Sprompt->get0wner->getUuidO:Schanelisens = null+// Provide users and groups only if owner of the prompt is current usenif ($prompt->get0wnerId() === $user->getId) {[$shareUsers, SshareGroups] = Sthis->qetReceiverUuids(Sprompt):SpromptDtos[] = new AskAnythingPromptDto(Sprompt->qetuu1doSprompt->getTitleoSpromot->getContentOspromot->aetHasReportsolneturn Soromntltos:* Ananam annauectrinas Cchanollconclluidd* @param array<string> $shareGroupsUuidsnublie funation enontoUser Suserstring Stitle• lue 1y May 14.32*0'+0 ..© Search.phpRenect=custom.log= laravel.log4 SF jiminny@localhost] x4 HS_local [jiminny@localhost]& console [PROD]# console [euyA console [STAGING]182_ . © CoachingFeedbackCoachUserln.phpTx: AutovSo jiminny v021 A1 A18 V2 V6 ^SELECT ar.id, ar.uuid, ar.mediatype, ar.status, a.typeFROM automated_report_results arJOIN automated_reports a ON a.id = ar.reportidWHERE a.type ='ask_jiminny'LIMIT 10;SELECT * FROM automated reports where id = 71;SELECT * FROM automated report results where report id = 71:UPDATE automated reports set playbook categories = NULL where id = 68SELECT * FROM automated report results where id = 275;SELECT * FROM autorated_reports order by za desc;SELECT * FROMautomated_reportresults order by 1d desc:select * from activity_searches here user_id = 143;select * fronSELECTautomated_renort_results.*FROMautomated_revort_resultsiautomated remort results', renort id' =automated reoorts'.'1diANDautomated renort results' generated at' IS NOT NUILLI"automated_report_results'."sent_at' IS NOT NULLANDautomated renorts' team id = 1AND JSON_CONTAINS(' automated_reports'. 'recipients', 143, '$."users"')SELECT * FROM automated_reports where id = 67:SELECT * FROM automated_reports where id = 42;SELECT * FROM users WHERE id = 143; # group 28select * from teams where id = 3143;select * from crm_configurations where id = 500:select * from users where name = 'Integration Account': # 1695SELECT * FROM social accounts WHERE sociable id = 1695:select * from activities where crm_configuration id = 39and recording state = 'recorded' and duration › 60and status = 'completed' and actual start time >= '2025-12-01':SELECT * FROM activities WHERE uuid to bin('458cf915-6914-4000-b083-568763262956') = uuid:select * from leads›SELECT * FROM activities WHERE uuid to bin('{43cf158-e60d-46e5-92f8-c4e0594a3219') = uuid: # 422003SELECT * FROM activities WHERE id IN (16,422003):SSIECT * SROM activitios whenp status ='failed';Socket fail to connect to host:address=(host=localhost) (port=3306)(tvpe=primarv). Connection refusedCascade•ASK Jiminny Report@AskAnythingRepository-php#L94-100 is ther eany danger in this? Will that modify existign functionality?IS loadCount('automatedReports') here risky?Short answer: No real risk for existing callers, but there are a couple of subtle things worth knowing.What it actuallv chandesLoadcount does two things to the returned collection:1. Runs one extra query: SELECT ask_anything_prompt_id, COUNT(*) FROM automated_reports WHERE ask_anything_promp+idIN GROUP BY ask anvthing promot 1d2. Adds a single attribute automated_reports_count to each prompt model in the collection.That's it. It doesn't• Modity any column already on the model• Touch the database (no writes)• Aftect relationships, scopes, or queries built later from these models.• Persist anything when the model is saved (counts aren't in sfillable and aren't in any DB column, so a subsequent sores itPotential concerns1. Extra query for every caller of findPromptsByUserAndTarget. Currently this method is called from:• AskAnythingPromptService::get() - needs the count (the whole point),• Anvwhere else?¡et me check — if other call sites don't need the count they nav one eytra querv for nothinglSearched findPromntsRvllserAndTaraet in ann (4)Thought for 5sfindPromptsByUserAndTarget is also called from ReorderAskAnvthinaPromptsRequest.php:31-32 and :61-63 - bothignore prompts beyond their UUID/count, so they'd now pay one unnecessary COUNT(*) GROUP BY query each (twice per2. JSON leakage - if any code path returns these models directly (instead of through a DTO/transformer), the responsewould suddenly contain automated_reports_count. After grepping, prompts always go through AskAnythingPromptDto, sono leak. But it's a tootgun tor tuture code3. save() after - counts are not fillable and not real columns, so a subsequent save() ignores them. No corruption riskRecommendationThe cleanest fix is to move loadCount out of the repository and into the service that actually needs it. Repositoriesshould return raw data: eader-loadina ic a caller concernlAckAnvthinaRenocitorv nhnlAskAnvthinaPromotService.ohvAsk anvthing 884-D)<> Code Claude Qnus 4.7 MediumW Windsurf Teams27-1 UTE.RPo 4 st...
|
58065
|
NULL
|
NULL
|
NULL
|
|
58070
|
2044
|
3
|
2026-05-19T11:32:02.148535+00:00
|
/Users/lukas/.screenpipe/data/data/2026-05-19/1779 /Users/lukas/.screenpipe/data/data/2026-05-19/1779190322148_m1.jpg...
|
PhpStorm
|
faVsco.js – AskAnythingPromptService.php
|
1
|
NULL
|
monitor_1
|
NULL
|
NULL
|
NULL
|
NULL
|
iTerm2•ShellEditViewSessionScriptsProfilesWindow iTerm2•ShellEditViewSessionScriptsProfilesWindowHelp(allSupport Daily • in 28 m100% C4 8• Tue 19 May 14:32:02DOCKER• ₴1DEV (docker)Fixed 1 of 5690files in 71.757 seconds, 60.00 MBmemoryused₴82APP (docker)APP (docker)181*3screenpipe"0 ₴4-zsh85What's next:Try Docker Debug for seamless, persistent debugging tools in any container or image + docker debug docker_lamp_1Learn moreat [URL_WITH_CREDENTIALS] ~/jiminny/app (JY-20676-delete-report-related-objects) $csfixdocker exec -it docker_lamp_1 ./vendor/bin/php-cs-fixer fix--config=.php-cs-fixer.dist.php -v --using-cache=no --diff...
|
NULL
|
-1969873311967556258
|
NULL
|
visual_change
|
ocr
|
NULL
|
iTerm2•ShellEditViewSessionScriptsProfilesWindow iTerm2•ShellEditViewSessionScriptsProfilesWindowHelp(allSupport Daily • in 28 m100% C4 8• Tue 19 May 14:32:02DOCKER• ₴1DEV (docker)Fixed 1 of 5690files in 71.757 seconds, 60.00 MBmemoryused₴82APP (docker)APP (docker)181*3screenpipe"0 ₴4-zsh85What's next:Try Docker Debug for seamless, persistent debugging tools in any container or image + docker debug docker_lamp_1Learn moreat [URL_WITH_CREDENTIALS] ~/jiminny/app (JY-20676-delete-report-related-objects) $csfixdocker exec -it docker_lamp_1 ./vendor/bin/php-cs-fixer fix--config=.php-cs-fixer.dist.php -v --using-cache=no --diff...
|
58067
|
NULL
|
NULL
|
NULL
|
|
58072
|
2045
|
4
|
2026-05-19T11:32:25.507807+00:00
|
/Users/lukas/.screenpipe/data/data/2026-05-19/1779 /Users/lukas/.screenpipe/data/data/2026-05-19/1779190345507_m2.jpg...
|
PhpStorm
|
faVsco.js – AskAnythingPromptService.php
|
1
|
NULL
|
monitor_2
|
NULL
|
NULL
|
NULL
|
NULL
|
PhostormVIewINavicarecodeKeractormelpFV faVsco.js° PhostormVIewINavicarecodeKeractormelpFV faVsco.js°9 JY-20676-delete-report-related-objroledeyCActivityController.ongphp api.php© AskAnythingController.php© AskAnythingPromptDto.php© AskAnythingPromptService.php XAsKAnytIngkepository.ongC) AutomatedReportsServicelest.onp( Events©ASKAnythingPromptDto.png© AsKAnytningPromptservice.ongc Historyservice.ong© AskJiminnyReportsController.php© AutomatedReportsService.php©) AskAnythingPromptServiceTest.phpD AskJiminnyAiclass ASkAnyth1ngPromptServ1ceWAWSu cachew countryDatabase→ DatadogDatettimeDealinsiahtsN DealRisks1N GlasticSearchM EloquentEncoding• Encryption1M Sakenm FeaturerlagsD FFMpegD FileSystemcong_ cuzzienutou reyPolntsKIOSK_ LanquageDetectionW LOCKSW Math_Mediapioeline2 MobileSettinas/ Model2 NotificationNudaelIM ParagranhBreake1 PartitionedCookieM PlavbackPadeM PlavlistProphetM PronhetAfM DrosnorWorkdM Auoncpublic function get(User Suser, AskAnythingPromptTarget $target): array$prompts = $this->askAnythingRepository->findPromptsByUserAndTarget(suser$targetif ($prompts->isNotEmpty0) {sprompts->Loadlount relations:aucomateakeports"r$promptDtos = [1foreach (Sprompts as Sprompt) {if (Sprompt->qet0wner@ |== null) {SownerUuid = Soromot->qetowner@->qetluido:ssharelsens = nullSshareGrouns = [URL_WITH_CREDENTIALS] array<string> $shareUsersUvids* Aparam arrau<string> SshareGrouoslluidsT 20f4 editsAccept File &- X Reiect File + * €nublic function created© Search.phpRenect=custom.log= laravel.log4 SF jiminny@localhost] x4 HS_local [jiminny@localhost]A console [STAGING] © CoachingFeedbackCoachUserln.phpTx: AutovSELECT ar.id, ar.uuid, ar.mediatype, ar.status, a.typeFROM automated_report_results arJOIN automated_reports a ON a.id = ar.report.idWHERE a.type ='ask_jiminny'LIMIT 10;SELECT * FROM automated reports where id = 71;SELECT * FROM automated report results where report id = 71:UPDATE automated reports set playbook categories = NULL where id = 68SELECT * FROM automated report results where id = 275;SELECT * FROM automated_reports order by za desc;SELECT * FROMautomated_reportresults order by 1d desc:select * from activity_searches here user_id = 143;select * fromSELECTautomated report results.* FROM 'automated report resultsiautomated renort results'. renort id =automated renorts'.'1diANDautomated_report_results.generated_at IS NOT NULLautomated_report_results.sent_at IS NOT NULLANDautomated renorts' 'team id = 1AND JSON_CONTAINS(' automated_reports'. 'recipients', 143, '$."users"')SELECT * FROM automated_reports where id = 67:SELECT * FROM automated_reports where id = 42;SELECT * FROM users WHERE id = 143; # group 28select * from teams where id = 3143;select * from crm_configurations where id = 500:select * from users where name = 'Integration Account': # 1695SELECT * FROM social accounts WHERE sociable id = 1695:select * from activities where crm_configuration id = 39and recording state = 'recorded' and duration › 60and status = 'completed' and actual start time >= '2025-12-01':SELECT * FROM activities WHERE uuid to bin('458cf915-b914-4000-b083-568763262956') = uuidiselect * from leads›SELECT * FROM activities WHERE uuid to bin('{43cf158-e60d-46e5-92f8-c4e0594a3219') = uuid: # 422003SELECT * FROM activities WHERE id IN (16,422003):SSIECT * SROM activitios whenp status ='failed':Socket fail to connect to host:address=(host=localhost) (port=3306)(tvpe=primarv). Connection refused"suppont Dally • In 20m100% 5• Tue 19 May 14:32:25AskAnythingPromptServiceTest v& console [PROD]& console [EU]Cascade•ASK Jiminny Report+0 ..So jiminny v2. Adds a single attribute automated_reports_count to each prompt model in the collection.That's it. It doesn't:aalbl8XL XbA•Modily any column already on the model• Touch the database (no writes).• Affect relationships, scopes, or queries built later from these models.• Persist anvthina when the model is saved ((counts aren't in Sfillable and aren't in anv DB column. so a subsequent s.ave() ignores it).Potential concerns1. Extra querv for everv caller of findPromotsBvlserAndTaraet. Currentiv this method is called from:• AskAnvthinaPromotService::aet( — needs the count (the whole point)• Anywhere else?Let me check — if other call sites don't need the count. they oav one extra auerv for nothinalSearched findPromotsBvUserAndTaraet in aoo (4)findPromptsByUserAndTarget is also called from ReorderAskAnythingPromptsRequest.php:31-32 and :61-63 - bothignore prompts beyond their UUID/count, so they'd now pay one unnecessary COUNT(*) GROUP BY query each (twice per2. JSON leakage - if any code path returns these models directly (instead of through a DTO/transformer), the responsewould suddenly contain automated reports count . After areppina, promots alwavs ao throuah AskAnvthingPromotDto.sono leak. But it's a footgun for future code3, cave() after — counts are not fillable and not real columns, so a subsequent save() ianores them. No corruntion riskRecommendationThe cleanest fix is to move loadCount out of the repository and into the service that actually needs it. Repositoriesshould return raw data: eager-loadina is a caller concern!"AskAnvthinaRepositorv.oho+1-7• AskAnythingPromptService.phcSearched use Illuminate.*Collection in tests/Unit/Component/AskAnything/AskAnythingPromptServiceTest.php (1) |ThinkinaI'm seeing the issue with the test - when loadCount is called on a collection of mocks, it tries to get the first model andcall newQueryWithoutRelationships() on it, which returns null by default, then the method chain breaks trying to workwith that null valuelI'm weighina several options: movina the logic back to the repository (simpler but loses the optimization), stubbing newouerywithoutRelationships on each mock (tedious), wrapping in try/catch (inelegant), or checking if the count is alreadyloaded before callina loadCount . The cleanest path seems to be detecting whether the collection already has the countdata londod rathor than alwave attomntina to load itlbonent/AskAnvthina/M.AskAnvthingPromotService.ohvAsk anvthina (884-L)< CodeClaude Qnus 4.7 MediumReiect allAccent alliWN Windsurf Teams28-26UTF.8io 4 space:...
|
NULL
|
-5615605855517853979
|
NULL
|
click
|
ocr
|
NULL
|
PhostormVIewINavicarecodeKeractormelpFV faVsco.js° PhostormVIewINavicarecodeKeractormelpFV faVsco.js°9 JY-20676-delete-report-related-objroledeyCActivityController.ongphp api.php© AskAnythingController.php© AskAnythingPromptDto.php© AskAnythingPromptService.php XAsKAnytIngkepository.ongC) AutomatedReportsServicelest.onp( Events©ASKAnythingPromptDto.png© AsKAnytningPromptservice.ongc Historyservice.ong© AskJiminnyReportsController.php© AutomatedReportsService.php©) AskAnythingPromptServiceTest.phpD AskJiminnyAiclass ASkAnyth1ngPromptServ1ceWAWSu cachew countryDatabase→ DatadogDatettimeDealinsiahtsN DealRisks1N GlasticSearchM EloquentEncoding• Encryption1M Sakenm FeaturerlagsD FFMpegD FileSystemcong_ cuzzienutou reyPolntsKIOSK_ LanquageDetectionW LOCKSW Math_Mediapioeline2 MobileSettinas/ Model2 NotificationNudaelIM ParagranhBreake1 PartitionedCookieM PlavbackPadeM PlavlistProphetM PronhetAfM DrosnorWorkdM Auoncpublic function get(User Suser, AskAnythingPromptTarget $target): array$prompts = $this->askAnythingRepository->findPromptsByUserAndTarget(suser$targetif ($prompts->isNotEmpty0) {sprompts->Loadlount relations:aucomateakeports"r$promptDtos = [1foreach (Sprompts as Sprompt) {if (Sprompt->qet0wner@ |== null) {SownerUuid = Soromot->qetowner@->qetluido:ssharelsens = nullSshareGrouns = [URL_WITH_CREDENTIALS] array<string> $shareUsersUvids* Aparam arrau<string> SshareGrouoslluidsT 20f4 editsAccept File &- X Reiect File + * €nublic function created© Search.phpRenect=custom.log= laravel.log4 SF jiminny@localhost] x4 HS_local [jiminny@localhost]A console [STAGING] © CoachingFeedbackCoachUserln.phpTx: AutovSELECT ar.id, ar.uuid, ar.mediatype, ar.status, a.typeFROM automated_report_results arJOIN automated_reports a ON a.id = ar.report.idWHERE a.type ='ask_jiminny'LIMIT 10;SELECT * FROM automated reports where id = 71;SELECT * FROM automated report results where report id = 71:UPDATE automated reports set playbook categories = NULL where id = 68SELECT * FROM automated report results where id = 275;SELECT * FROM automated_reports order by za desc;SELECT * FROMautomated_reportresults order by 1d desc:select * from activity_searches here user_id = 143;select * fromSELECTautomated report results.* FROM 'automated report resultsiautomated renort results'. renort id =automated renorts'.'1diANDautomated_report_results.generated_at IS NOT NULLautomated_report_results.sent_at IS NOT NULLANDautomated renorts' 'team id = 1AND JSON_CONTAINS(' automated_reports'. 'recipients', 143, '$."users"')SELECT * FROM automated_reports where id = 67:SELECT * FROM automated_reports where id = 42;SELECT * FROM users WHERE id = 143; # group 28select * from teams where id = 3143;select * from crm_configurations where id = 500:select * from users where name = 'Integration Account': # 1695SELECT * FROM social accounts WHERE sociable id = 1695:select * from activities where crm_configuration id = 39and recording state = 'recorded' and duration › 60and status = 'completed' and actual start time >= '2025-12-01':SELECT * FROM activities WHERE uuid to bin('458cf915-b914-4000-b083-568763262956') = uuidiselect * from leads›SELECT * FROM activities WHERE uuid to bin('{43cf158-e60d-46e5-92f8-c4e0594a3219') = uuid: # 422003SELECT * FROM activities WHERE id IN (16,422003):SSIECT * SROM activitios whenp status ='failed':Socket fail to connect to host:address=(host=localhost) (port=3306)(tvpe=primarv). Connection refused"suppont Dally • In 20m100% 5• Tue 19 May 14:32:25AskAnythingPromptServiceTest v& console [PROD]& console [EU]Cascade•ASK Jiminny Report+0 ..So jiminny v2. Adds a single attribute automated_reports_count to each prompt model in the collection.That's it. It doesn't:aalbl8XL XbA•Modily any column already on the model• Touch the database (no writes).• Affect relationships, scopes, or queries built later from these models.• Persist anvthina when the model is saved ((counts aren't in Sfillable and aren't in anv DB column. so a subsequent s.ave() ignores it).Potential concerns1. Extra querv for everv caller of findPromotsBvlserAndTaraet. Currentiv this method is called from:• AskAnvthinaPromotService::aet( — needs the count (the whole point)• Anywhere else?Let me check — if other call sites don't need the count. they oav one extra auerv for nothinalSearched findPromotsBvUserAndTaraet in aoo (4)findPromptsByUserAndTarget is also called from ReorderAskAnythingPromptsRequest.php:31-32 and :61-63 - bothignore prompts beyond their UUID/count, so they'd now pay one unnecessary COUNT(*) GROUP BY query each (twice per2. JSON leakage - if any code path returns these models directly (instead of through a DTO/transformer), the responsewould suddenly contain automated reports count . After areppina, promots alwavs ao throuah AskAnvthingPromotDto.sono leak. But it's a footgun for future code3, cave() after — counts are not fillable and not real columns, so a subsequent save() ianores them. No corruntion riskRecommendationThe cleanest fix is to move loadCount out of the repository and into the service that actually needs it. Repositoriesshould return raw data: eager-loadina is a caller concern!"AskAnvthinaRepositorv.oho+1-7• AskAnythingPromptService.phcSearched use Illuminate.*Collection in tests/Unit/Component/AskAnything/AskAnythingPromptServiceTest.php (1) |ThinkinaI'm seeing the issue with the test - when loadCount is called on a collection of mocks, it tries to get the first model andcall newQueryWithoutRelationships() on it, which returns null by default, then the method chain breaks trying to workwith that null valuelI'm weighina several options: movina the logic back to the repository (simpler but loses the optimization), stubbing newouerywithoutRelationships on each mock (tedious), wrapping in try/catch (inelegant), or checking if the count is alreadyloaded before callina loadCount . The cleanest path seems to be detecting whether the collection already has the countdata londod rathor than alwave attomntina to load itlbonent/AskAnvthina/M.AskAnvthingPromotService.ohvAsk anvthina (884-L)< CodeClaude Qnus 4.7 MediumReiect allAccent alliWN Windsurf Teams28-26UTF.8io 4 space:...
|
NULL
|
NULL
|
NULL
|
NULL
|
|
58073
|
2044
|
4
|
2026-05-19T11:32:30.931846+00:00
|
/Users/lukas/.screenpipe/data/data/2026-05-19/1779 /Users/lukas/.screenpipe/data/data/2026-05-19/1779190350931_m1.jpg...
|
PhpStorm
|
faVsco.js – AskAnythingPromptService.php
|
1
|
NULL
|
monitor_1
|
NULL
|
NULL
|
NULL
|
NULL
|
Project: faVsco.js, menu
|
[{"role":"AXButton","text" [{"role":"AXButton","text":"Project: faVsco.js, menu","depth":5,"on_screen":true,"help_text":"~/jiminny/app","role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false}]...
|
8043719072324535154
|
-8628527368849355612
|
click
|
hybrid
|
NULL
|
Project: faVsco.js, menu
iTerm2• 0ShellEditViewS Project: faVsco.js, menu
iTerm2• 0ShellEditViewSessionScriptsProfilesWindowHelp(allSupport Daily • in 28 m100% C4 8• Tue 19 May 14:32:30DOCKER• ₴1DEV (docker)Fixed 1 of 5690files in 71.757 seconds, 60.00 MBmemoryused₴82APP (docker)APP (docker)181*3screenpipe"0 ₴4-zsh85What's next:Try Docker Debug for seamless, persistent debugging tools in any container or image + docker debug docker_lamp_1Learn moreat [URL_WITH_CREDENTIALS] ~/jiminny/app (JY-20676-delete-report-related-objects) $csfixdocker exec -it docker_lamp_1 ./vendor/bin/php-cs-fixer fix--config=.php-cs-fixer.dist.php -v --using-cache=no --diff...
|
NULL
|
NULL
|
NULL
|
NULL
|
|
58074
|
2045
|
5
|
2026-05-19T11:32:36.965793+00:00
|
/Users/lukas/.screenpipe/data/data/2026-05-19/1779 /Users/lukas/.screenpipe/data/data/2026-05-19/1779190356965_m2.jpg...
|
PhpStorm
|
faVsco.js – AskAnythingPromptService.php
|
1
|
NULL
|
monitor_2
|
NULL
|
NULL
|
NULL
|
NULL
|
PhostormVIewINavicarecodeWindowFV faVsco.js°9 JY-2 PhostormVIewINavicarecodeWindowFV faVsco.js°9 JY-20676-delete-report-related-objeProiect vC ActivityController.ongphp api.php© AskAnythingController.php© AskAnythingPromptDto.php© AskAnythingPromptService.php XAsKAnytIngkepository.ongch AutomatedReportsServicelest.onp( Events©ASKAnythingPromptDto.png© AsKAnytningPromptservice.ongc Historyservice.ong© AskJiminnyReportsController.phg_ ASKJIminnyAlWAWSu cachew countryDatabase→ DatadogDatettimeDealinsiahtsN DealRisks1N GlasticSearchM EloquentEncoding• Encryption1M Sakenm FeaturerlagsD FFMpegD FileSystemD Gong_ cuzzienutou reyPolntsKIOSK_ LanquageDetectionW LOCKSW Math_Mediapioeline2 MobileSettinasNudaelIM ParagranhBreake1 PartitionedCookieM PlavbackPadeM PlavlistProphetM PronhetAfM DrosnorWorkdM Auonc© AutomatedReportsService.php©) AskAnythingPromptServiceTest.php<?phpdeclare(strict types=1):namesoace Jaminnv comoonent Askanvthino?› use ...class AskAnythingPromptServicepublic function __construct(private readonly AskAnythingRepository $askAnythingRepository.private readonly UserRepository $userRepository,private readonly GroupRepositoryInterface $groupRepository.4...}* @return array<AskAnythingPromptDto>public function get(User Suser. AskAnythingPromptTarget Starget): array$prompts = Sthis->askAnythingRepository->findPromptsByUserAndTarget(stargetsoromotitos =foreach (Sprompts as Spromot) {if (soromot->aetOwnero == nulb <SownerUuid = Soromot->aetowner@->cetluido:SshareGrouns = nwu.Provide usens and arouns onlv if ownen of the nromnt is current usenif ($prompt->getOwnerId() === $user->getId()) {Scharelisens. SchaneGrounsl = Sthis->aetReceiverlluidsSnromnt)•Snnomn+0tocll = now AckAnvthinaPromnt0toflSnnomnt-Sao+lluid?$prompt->qetTitleO.Snnomn+-sao+Contont()starget.© Search.php=custom.log= laravel.log4 SF jiminny@localhost] x4 HS_local [jiminny@localhost]& console [PROD]# console [euyA console [STAGING] © CoachingFeedbackCoachUserln.phpTx: AutovSo jiminny vaalbl8XL XbASELECT ar.id, ar.uuid, ar.mediatype, ar.status, a.typeFROM automated_report_results arJOIN automated_reports a ON a.id = ar.reportidWHERE a.type = 'ask_jiminny'LIMIT 10;SELECT * FROM automated_reports where id = 71:SELECT * FROM automated_reresults where report id = 71:UPDATE automated reports set playbook categories = NULL where id = 68stlell * rkuM aucomaced.rport results where 10 = 215SELECT * FROM autorated_reports order by za desc,SELECT * FROMautomated_reportresults order by 1d desc:select * from activity_searches here user_id = 143;select * fromSELECTautomated_report_results.* FROMautomated_revortresultsiautomated remort results', renort id' =automated reoorts'.'1diANDautomated_report_results.generated_at IS NOT NULLAND automated_report_results.sent_at IS NOT NULLANDIautomated renorts' 'team id = 1AND JSON_CONTAINS(' automated_reports'. 'recipients', 143, '$."users"')SELECT * FROM automated_reports where id = 67:SELECT * FROM automated_reports where id = 42;SELECT * FROM users WHERE id = 143; # group 28select * from teams where id = 3143;select * from crm_configurations where id = 500:select * from users where name = 'Integration Account': # 1695SELECT * FROM social accounts WHERE sociable id = 1695:select * from activities where crm_configuration id = 39and recording state = 'recorded' and duration › 60and status = 'completed' and actual start time >= '2025-12-01':SELECT * FROM activities WHERE uuid to bin('458cf915-6914-4000-b083-568763262956') = uuid:select * from leads›SELECT * FROM activities WHERE uuid to bin('{43cf158-e60d-46e5-92f8-c4e0594a3219') = uuid: # 422003SELECT * FROM activities WHERE id IN (16,422003);SELECT * FROM activities where status = 'failed':Socket fail to connect to host:address=(host=localhost) (port=3306)(tvpe=primarv). Connection refused"suppont Dally • In 2o m100% 5• Tue 19 May 14:32:36AskAnythingPromptServiceTestCascadeASk Jiminny Repor+0 ..loadcount does two things to the returned collection:1. Runs one extra query: SELECT ask_anything_prompt id, COUNT(*) FROM automated reports WHERE ask anything_prompRdin ..) okour br ask anychingprompr.to.2. Adds a single attribute automated_reports_count to each prompt model in the collection.wThat's it. It doesn't:• Modify any column already on the model•louch tne database (no writes.• Arrect relationshios, scooes, or queries ouilt later from these models.• Persist anything when the model is saved (counts aren't in sfillable and aren't in any DB column, so a subsequent save() ignores it).Potential concerns1. Extra query tor every caller of tindPromptsByUserAndlarget. currently this method is called trom:• AskAnythingPromptService::get() — needs the count (the whole point).• Anywhere else?Let me check -—it other call sites don't need the count, they pay one extra query for nothingt in app (4)Thouaht for 5sianore prompts beyond their Uuld count, so they'd now pay one unnecessary COUNT* GROUP BY query each (twice perreorder request)2. JSON leakage - if any code path returns these models directly (instead of through a DTO/transformer), the responsewould suddenly contain automated reports count. After grepping, prompts always go through AskAnythingPromptDto, sono leak. But it's a footaun for future code3. save() after — counts are not fillable and not real columns, so a subsequent save() ignores them. No corruption riskRecommendationThe cleanest fix is to move loadCount out of the repository and into the service that actually needs it. Repositoriesshould return raw data: eager-loading is a caller concern.M AckAnvthinaRenocitorv.nhnl+1-71• AskAnythingPromptService.phpSearched use llluminate.*Collection in tests/Unit/Comoonent/AskAnvthina/AskAnvthinaPromotServiceTest.oho (1)1Thought for 1/STest compatibility issue: loadCount on a Collection of PHPUnit mocks would crash because it tries to call newQueryWithoutRelationshios() on the first model. Repository placement avoided that because the test mocks the repository callentirely.Let me revert to the renository anbroach but add a claritvina comment cince the imnact is minimal 12 small COUNT queriec)on the reorder endpoint. not a full N+1):AskAnythingPromptService.phpView allaoo/Comoonent/AskAnvthina/M.AskAnvthingPromotService.ohv +7%* Reiect allAccent alliAsk anvthina (&4-L)<> Code Claude Qnus 4.7 MediumW Windsurf Teamc1-1.UTE.9io 4 space:...
|
NULL
|
-8628002813613271341
|
NULL
|
visual_change
|
ocr
|
NULL
|
PhostormVIewINavicarecodeWindowFV faVsco.js°9 JY-2 PhostormVIewINavicarecodeWindowFV faVsco.js°9 JY-20676-delete-report-related-objeProiect vC ActivityController.ongphp api.php© AskAnythingController.php© AskAnythingPromptDto.php© AskAnythingPromptService.php XAsKAnytIngkepository.ongch AutomatedReportsServicelest.onp( Events©ASKAnythingPromptDto.png© AsKAnytningPromptservice.ongc Historyservice.ong© AskJiminnyReportsController.phg_ ASKJIminnyAlWAWSu cachew countryDatabase→ DatadogDatettimeDealinsiahtsN DealRisks1N GlasticSearchM EloquentEncoding• Encryption1M Sakenm FeaturerlagsD FFMpegD FileSystemD Gong_ cuzzienutou reyPolntsKIOSK_ LanquageDetectionW LOCKSW Math_Mediapioeline2 MobileSettinasNudaelIM ParagranhBreake1 PartitionedCookieM PlavbackPadeM PlavlistProphetM PronhetAfM DrosnorWorkdM Auonc© AutomatedReportsService.php©) AskAnythingPromptServiceTest.php<?phpdeclare(strict types=1):namesoace Jaminnv comoonent Askanvthino?› use ...class AskAnythingPromptServicepublic function __construct(private readonly AskAnythingRepository $askAnythingRepository.private readonly UserRepository $userRepository,private readonly GroupRepositoryInterface $groupRepository.4...}* @return array<AskAnythingPromptDto>public function get(User Suser. AskAnythingPromptTarget Starget): array$prompts = Sthis->askAnythingRepository->findPromptsByUserAndTarget(stargetsoromotitos =foreach (Sprompts as Spromot) {if (soromot->aetOwnero == nulb <SownerUuid = Soromot->aetowner@->cetluido:SshareGrouns = nwu.Provide usens and arouns onlv if ownen of the nromnt is current usenif ($prompt->getOwnerId() === $user->getId()) {Scharelisens. SchaneGrounsl = Sthis->aetReceiverlluidsSnromnt)•Snnomn+0tocll = now AckAnvthinaPromnt0toflSnnomnt-Sao+lluid?$prompt->qetTitleO.Snnomn+-sao+Contont()starget.© Search.php=custom.log= laravel.log4 SF jiminny@localhost] x4 HS_local [jiminny@localhost]& console [PROD]# console [euyA console [STAGING] © CoachingFeedbackCoachUserln.phpTx: AutovSo jiminny vaalbl8XL XbASELECT ar.id, ar.uuid, ar.mediatype, ar.status, a.typeFROM automated_report_results arJOIN automated_reports a ON a.id = ar.reportidWHERE a.type = 'ask_jiminny'LIMIT 10;SELECT * FROM automated_reports where id = 71:SELECT * FROM automated_reresults where report id = 71:UPDATE automated reports set playbook categories = NULL where id = 68stlell * rkuM aucomaced.rport results where 10 = 215SELECT * FROM autorated_reports order by za desc,SELECT * FROMautomated_reportresults order by 1d desc:select * from activity_searches here user_id = 143;select * fromSELECTautomated_report_results.* FROMautomated_revortresultsiautomated remort results', renort id' =automated reoorts'.'1diANDautomated_report_results.generated_at IS NOT NULLAND automated_report_results.sent_at IS NOT NULLANDIautomated renorts' 'team id = 1AND JSON_CONTAINS(' automated_reports'. 'recipients', 143, '$."users"')SELECT * FROM automated_reports where id = 67:SELECT * FROM automated_reports where id = 42;SELECT * FROM users WHERE id = 143; # group 28select * from teams where id = 3143;select * from crm_configurations where id = 500:select * from users where name = 'Integration Account': # 1695SELECT * FROM social accounts WHERE sociable id = 1695:select * from activities where crm_configuration id = 39and recording state = 'recorded' and duration › 60and status = 'completed' and actual start time >= '2025-12-01':SELECT * FROM activities WHERE uuid to bin('458cf915-6914-4000-b083-568763262956') = uuid:select * from leads›SELECT * FROM activities WHERE uuid to bin('{43cf158-e60d-46e5-92f8-c4e0594a3219') = uuid: # 422003SELECT * FROM activities WHERE id IN (16,422003);SELECT * FROM activities where status = 'failed':Socket fail to connect to host:address=(host=localhost) (port=3306)(tvpe=primarv). Connection refused"suppont Dally • In 2o m100% 5• Tue 19 May 14:32:36AskAnythingPromptServiceTestCascadeASk Jiminny Repor+0 ..loadcount does two things to the returned collection:1. Runs one extra query: SELECT ask_anything_prompt id, COUNT(*) FROM automated reports WHERE ask anything_prompRdin ..) okour br ask anychingprompr.to.2. Adds a single attribute automated_reports_count to each prompt model in the collection.wThat's it. It doesn't:• Modify any column already on the model•louch tne database (no writes.• Arrect relationshios, scooes, or queries ouilt later from these models.• Persist anything when the model is saved (counts aren't in sfillable and aren't in any DB column, so a subsequent save() ignores it).Potential concerns1. Extra query tor every caller of tindPromptsByUserAndlarget. currently this method is called trom:• AskAnythingPromptService::get() — needs the count (the whole point).• Anywhere else?Let me check -—it other call sites don't need the count, they pay one extra query for nothingt in app (4)Thouaht for 5sianore prompts beyond their Uuld count, so they'd now pay one unnecessary COUNT* GROUP BY query each (twice perreorder request)2. JSON leakage - if any code path returns these models directly (instead of through a DTO/transformer), the responsewould suddenly contain automated reports count. After grepping, prompts always go through AskAnythingPromptDto, sono leak. But it's a footaun for future code3. save() after — counts are not fillable and not real columns, so a subsequent save() ignores them. No corruption riskRecommendationThe cleanest fix is to move loadCount out of the repository and into the service that actually needs it. Repositoriesshould return raw data: eager-loading is a caller concern.M AckAnvthinaRenocitorv.nhnl+1-71• AskAnythingPromptService.phpSearched use llluminate.*Collection in tests/Unit/Comoonent/AskAnvthina/AskAnvthinaPromotServiceTest.oho (1)1Thought for 1/STest compatibility issue: loadCount on a Collection of PHPUnit mocks would crash because it tries to call newQueryWithoutRelationshios() on the first model. Repository placement avoided that because the test mocks the repository callentirely.Let me revert to the renository anbroach but add a claritvina comment cince the imnact is minimal 12 small COUNT queriec)on the reorder endpoint. not a full N+1):AskAnythingPromptService.phpView allaoo/Comoonent/AskAnvthina/M.AskAnvthingPromotService.ohv +7%* Reiect allAccent alliAsk anvthina (&4-L)<> Code Claude Qnus 4.7 MediumW Windsurf Teamc1-1.UTE.9io 4 space:...
|
58072
|
NULL
|
NULL
|
NULL
|
|
58075
|
2045
|
6
|
2026-05-19T11:32:53.081982+00:00
|
/Users/lukas/.screenpipe/data/data/2026-05-19/1779 /Users/lukas/.screenpipe/data/data/2026-05-19/1779190373081_m2.jpg...
|
PhpStorm
|
faVsco.js – AskAnythingRepository.php
|
1
|
NULL
|
monitor_2
|
NULL
|
NULL
|
NULL
|
NULL
|
PhostormVIewINavicarecodeLaravelKeractorFV faVsco. PhostormVIewINavicarecodeLaravelKeractorFV faVsco.js°9 JY-20676-delete-report-related-objectsProleteyC ActivityController.ong=custom.log= laravel.logA SF [jiminny@localhost] x4 HS_local [jiminny@localhost]& console [PROD]# console [euy© AskAnythingPromptDto.php( EventsAsKAnytningPromptservice.ong© AskAnythingPromptService.phpAsKAnytingkepository.pnp x) AutomatedReportsservicelest.pnpA console [STAGING]© CoachingFeedbackCoachUserln.php© AskAnythingPromptDto.phpc Historyservice.ongD AskJiminnyAiWAWS0 BillingManagementu cachew countryDatabaseDatadoolDatettimeDealinsiahtsN DealRisks1N GlasticSearchM EloquentEncoding• EncryptionDES1M SakenD FeatureFlagsD FFMpegD FileSystemD Gong_ cuzzienutoC KeyPointsC Kiosk_ LanquageDetectionW LOCKSW MathMedia?ioeline2 MobileSettinas/ Model2 NotificationNudaelIM ParagranhBreaker1 PartitionedCookieM PlavbackPadeM PlavlistProphetM PronhetAfM DrosnorWorkdM Auonc© AskJiminnyReportsController.phg© AutomatedReportsService.php©) AskAnythingPromptServiceTest.php© Search.php107144145)149class ASkAnyth1ngRepos1torv182public function findPromptsByUserAndTarget(User $user,AskAnythingPromptTarget $target): Collectior 183"prompt", function (Bualder squery) use (Starget) 1...r->orderByRaw( sql: 'ISNULL( order ), order)promot id ASC')->get®186->map(function (UserAskAnythingPrompt SuserPrompt) t...5):188 0Remove those oromots that are hidden for the current usen$users0wnedPromptsFiltered = Susers0wnedPrompts->filter(function (AskAnythingPrompt $userPrompt190$defaultNonChangedPrompts = AskAnythingPrompt::where('target', $target)->whereDoesntHave('userPrompts', function (Squery) use (Suser) {...})->ger)1196return SdefaultvonchandedPromots->merdelsusersownedPromotsftlteredhAccept Reject$allPrompts = $defaultNonChangedPrompts->merge(Susers0wnedPromptsFiltered):198if (SallPromots->isNotEmptyO) {sallPromots->Loadcount'automatedRenorts'):• Aparam arrau<liser› Ssharelisers* Aparam arrau<Groun> SshareGroundnublie function cneatePromntlicen SucenAskAnythingPromptTarget $target,etrina Stitlel string Scontent,array sshareusers,218array ssharebroups,: AskAnythingPrompt {...}* dparam arrau<user> sshareusers* dparam arrau<Grouo> SshareGrouos-224_225public function editpromotAskAnvthirtaPrometitSordmps Accept File &+X Reject File 4%€ + 2 of 2 files →strind stitle.Tx: AutovSo jiminny vLAIbl8 XLX0 ASELECT ar.id, ar.uuid, ar.media type, ar.status, a.typeFROM automated_report_results arJOIN automated_reports a ON a.id = ar.reportidWHERE a.type ='ask_jiminny'LIMIT 10;SELECT * FROM automated reports where id = 71;SELECT * FROM automated_report results where report id = 71;UPDATE automated reports set playbook categories = NULL where id = 68SELECT * FROM automated report results where id = 275;SELECT * FROM automated_reports order by 1d desc;SELECT * FROMautomated_reportresults order by 1d desc:select * from activity_searches here user_id = 143;select * fronSELECTautomated_renort_results.*FROMautomated_revort_resultsiautomated remort results', renort id ='automated remorts-'idiautomated_report_results.generated_at IS NOT NULLautomated_report_results.sent_at IS NOT NULLautomated renorts' 'team id = 1AND ISON CONTATNS('automated nenonte' "neciniente'. 147 Id lucengll)SELECT * FROM automated_reports where id = 67:SELECT * FROM automated_reports where id = 42;SELECT * FROM users WHERE id = 143; # group 28select * from teams where id = 3143;select * from crm_configurations where id = 500:select * from users where name = 'Integration Account': # 1695SELECT * FROM social accounts WHERE sociable id = 1695:select * from activities where crm_configuration id = 39and recording state = 'recorded' and duration › 60and status = 'completed' and actual start time >= '2025-12-01':SELECT * FROM activities WHERE uuid to bin('458cf915-6914-4000-b083-568763262956') = uuid:select * from leads:SELECT * FROM activities WHERE uuid to binc'f43cf158-e60d-46e5-92f8-c4e0594a3219') = uuid: # 422003SELECT * FROM activities WHERE id IN (16.422003);SSIECT * SROM activitios whenp statuc ='failed'Socket fail to connect to host:address=(host=localhost) (port=3306)(tvpe=primarv). Connection refusedJ-ohiects // View null reauect (todav 12:17)hell"suppont Dally • In 20m100% 5• Tue 19 May 14:32:52AskAnythingPromptServiceTest v+0 ..Cascade•ASK Jiminny Repori• Modity any column already on the modelTouch the database (no writes)*Artect relationsnips, scopes, or queries ouilt later trom these models.• Persist anything when the model is saved (counts aren't in sfillable and aren't in any DB column, so a subsequent saveo lgnores i0.Porenuial concerns1. Extra query for every caller of findPromptsByUserAndTarget. Currently this method is called from:• AskAnvthinaPromotService::aeto = needs the count (the whole point)Anywhere else?Let me check — if other call sites don't need the count. they pay one extra query for nothina.Thought for 5sT1ndPromptsbyUserAndlarget is also called trom ReorderASKAnyth1ngPromptskequest.php:31-3z and :61-63 — bothignore prompts beyond their UUID/count, so they'd now pay one unnecessary COUNT(*) GROUP BY query each (twice perreorder request)2. JSON leakage - if any code path returns these models directly (instead of through a DTO/transformer), the responsewould suddenly contain automated_reports_count . After grepping, prompts always go through AskAnythingPromptDto, sono leak. butlt's a tooteun tor tuture code.3. save(") after — counts are not fillable and not real columns, so a subsequent save() ianores them. No corruotion riskRecommendationThe cleanest fix is to move loadCount out of the repository and into the service that actually needs it. Repositoriesshould return raw data: eader-loading is a caller concern."AskAnvthinaRepositorv.oho• AskAnvthingPromptService.phnelest.ono (U)Test compatibility issue: loadCount on a Collection of PHPUnit mocks would crash because it tries to call newuervwithoutRelationships() on the first model. Repository placement avoided that because the test mocks the repository calLet me revert to the repository approach but add a clarifying comment, since the impact is minimal (2 small COUNT querieson the reorder endnoint not a full N41).AskAnythingRepositorv.ohg+7 -1epp/component/AsKAnything/AsKAnythingPrompt/Servict/AskAnvthina/ M AskAnvthinaPromotService.ohv +7%* Reiect allAccent alliAsk anvthina (884-L)<> Code Claude Qnus 4.7 MediumW Windsurf Toamc04-1/212 charc & line hreaks)Po 4 spaces...
|
NULL
|
-8322626704019553344
|
NULL
|
visual_change
|
ocr
|
NULL
|
PhostormVIewINavicarecodeLaravelKeractorFV faVsco. PhostormVIewINavicarecodeLaravelKeractorFV faVsco.js°9 JY-20676-delete-report-related-objectsProleteyC ActivityController.ong=custom.log= laravel.logA SF [jiminny@localhost] x4 HS_local [jiminny@localhost]& console [PROD]# console [euy© AskAnythingPromptDto.php( EventsAsKAnytningPromptservice.ong© AskAnythingPromptService.phpAsKAnytingkepository.pnp x) AutomatedReportsservicelest.pnpA console [STAGING]© CoachingFeedbackCoachUserln.php© AskAnythingPromptDto.phpc Historyservice.ongD AskJiminnyAiWAWS0 BillingManagementu cachew countryDatabaseDatadoolDatettimeDealinsiahtsN DealRisks1N GlasticSearchM EloquentEncoding• EncryptionDES1M SakenD FeatureFlagsD FFMpegD FileSystemD Gong_ cuzzienutoC KeyPointsC Kiosk_ LanquageDetectionW LOCKSW MathMedia?ioeline2 MobileSettinas/ Model2 NotificationNudaelIM ParagranhBreaker1 PartitionedCookieM PlavbackPadeM PlavlistProphetM PronhetAfM DrosnorWorkdM Auonc© AskJiminnyReportsController.phg© AutomatedReportsService.php©) AskAnythingPromptServiceTest.php© Search.php107144145)149class ASkAnyth1ngRepos1torv182public function findPromptsByUserAndTarget(User $user,AskAnythingPromptTarget $target): Collectior 183"prompt", function (Bualder squery) use (Starget) 1...r->orderByRaw( sql: 'ISNULL( order ), order)promot id ASC')->get®186->map(function (UserAskAnythingPrompt SuserPrompt) t...5):188 0Remove those oromots that are hidden for the current usen$users0wnedPromptsFiltered = Susers0wnedPrompts->filter(function (AskAnythingPrompt $userPrompt190$defaultNonChangedPrompts = AskAnythingPrompt::where('target', $target)->whereDoesntHave('userPrompts', function (Squery) use (Suser) {...})->ger)1196return SdefaultvonchandedPromots->merdelsusersownedPromotsftlteredhAccept Reject$allPrompts = $defaultNonChangedPrompts->merge(Susers0wnedPromptsFiltered):198if (SallPromots->isNotEmptyO) {sallPromots->Loadcount'automatedRenorts'):• Aparam arrau<liser› Ssharelisers* Aparam arrau<Groun> SshareGroundnublie function cneatePromntlicen SucenAskAnythingPromptTarget $target,etrina Stitlel string Scontent,array sshareusers,218array ssharebroups,: AskAnythingPrompt {...}* dparam arrau<user> sshareusers* dparam arrau<Grouo> SshareGrouos-224_225public function editpromotAskAnvthirtaPrometitSordmps Accept File &+X Reject File 4%€ + 2 of 2 files →strind stitle.Tx: AutovSo jiminny vLAIbl8 XLX0 ASELECT ar.id, ar.uuid, ar.media type, ar.status, a.typeFROM automated_report_results arJOIN automated_reports a ON a.id = ar.reportidWHERE a.type ='ask_jiminny'LIMIT 10;SELECT * FROM automated reports where id = 71;SELECT * FROM automated_report results where report id = 71;UPDATE automated reports set playbook categories = NULL where id = 68SELECT * FROM automated report results where id = 275;SELECT * FROM automated_reports order by 1d desc;SELECT * FROMautomated_reportresults order by 1d desc:select * from activity_searches here user_id = 143;select * fronSELECTautomated_renort_results.*FROMautomated_revort_resultsiautomated remort results', renort id ='automated remorts-'idiautomated_report_results.generated_at IS NOT NULLautomated_report_results.sent_at IS NOT NULLautomated renorts' 'team id = 1AND ISON CONTATNS('automated nenonte' "neciniente'. 147 Id lucengll)SELECT * FROM automated_reports where id = 67:SELECT * FROM automated_reports where id = 42;SELECT * FROM users WHERE id = 143; # group 28select * from teams where id = 3143;select * from crm_configurations where id = 500:select * from users where name = 'Integration Account': # 1695SELECT * FROM social accounts WHERE sociable id = 1695:select * from activities where crm_configuration id = 39and recording state = 'recorded' and duration › 60and status = 'completed' and actual start time >= '2025-12-01':SELECT * FROM activities WHERE uuid to bin('458cf915-6914-4000-b083-568763262956') = uuid:select * from leads:SELECT * FROM activities WHERE uuid to binc'f43cf158-e60d-46e5-92f8-c4e0594a3219') = uuid: # 422003SELECT * FROM activities WHERE id IN (16.422003);SSIECT * SROM activitios whenp statuc ='failed'Socket fail to connect to host:address=(host=localhost) (port=3306)(tvpe=primarv). Connection refusedJ-ohiects // View null reauect (todav 12:17)hell"suppont Dally • In 20m100% 5• Tue 19 May 14:32:52AskAnythingPromptServiceTest v+0 ..Cascade•ASK Jiminny Repori• Modity any column already on the modelTouch the database (no writes)*Artect relationsnips, scopes, or queries ouilt later trom these models.• Persist anything when the model is saved (counts aren't in sfillable and aren't in any DB column, so a subsequent saveo lgnores i0.Porenuial concerns1. Extra query for every caller of findPromptsByUserAndTarget. Currently this method is called from:• AskAnvthinaPromotService::aeto = needs the count (the whole point)Anywhere else?Let me check — if other call sites don't need the count. they pay one extra query for nothina.Thought for 5sT1ndPromptsbyUserAndlarget is also called trom ReorderASKAnyth1ngPromptskequest.php:31-3z and :61-63 — bothignore prompts beyond their UUID/count, so they'd now pay one unnecessary COUNT(*) GROUP BY query each (twice perreorder request)2. JSON leakage - if any code path returns these models directly (instead of through a DTO/transformer), the responsewould suddenly contain automated_reports_count . After grepping, prompts always go through AskAnythingPromptDto, sono leak. butlt's a tooteun tor tuture code.3. save(") after — counts are not fillable and not real columns, so a subsequent save() ianores them. No corruotion riskRecommendationThe cleanest fix is to move loadCount out of the repository and into the service that actually needs it. Repositoriesshould return raw data: eader-loading is a caller concern."AskAnvthinaRepositorv.oho• AskAnvthingPromptService.phnelest.ono (U)Test compatibility issue: loadCount on a Collection of PHPUnit mocks would crash because it tries to call newuervwithoutRelationships() on the first model. Repository placement avoided that because the test mocks the repository calLet me revert to the repository approach but add a clarifying comment, since the impact is minimal (2 small COUNT querieson the reorder endnoint not a full N41).AskAnythingRepositorv.ohg+7 -1epp/component/AsKAnything/AsKAnythingPrompt/Servict/AskAnvthina/ M AskAnvthinaPromotService.ohv +7%* Reiect allAccent alliAsk anvthina (884-L)<> Code Claude Qnus 4.7 MediumW Windsurf Toamc04-1/212 charc & line hreaks)Po 4 spaces...
|
NULL
|
NULL
|
NULL
|
NULL
|
|
58076
|
2044
|
5
|
2026-05-19T11:33:04.051779+00:00
|
/Users/lukas/.screenpipe/data/data/2026-05-19/1779 /Users/lukas/.screenpipe/data/data/2026-05-19/1779190384051_m1.jpg...
|
PhpStorm
|
faVsco.js – AskAnythingRepository.php
|
1
|
NULL
|
monitor_1
|
NULL
|
NULL
|
NULL
|
NULL
|
Project: faVsco.js, menu
JY-20676-delete-report-re Project: faVsco.js, menu
JY-20676-delete-report-related-objects, menu
Start Listening for PHP Debug Connections
AskAnythingPromptServiceTest
Run 'AskAnythingPromptServiceTest'
Debug 'AskAnythingPromptServiceTest'
More Actions
JetBrains AI
Search Everywhere
IDE and Project Settings
Sync Changes
Hide This Notification
Code changed:
Hide
12
Previous Highlighted Error
Next Highlighted Error
<?php
declare(strict_types=1);
namespace Jiminny\Repositories;
use Illuminate\Database\Eloquent\Builder;
use Illuminate\Support\Collection;
use Jiminny\Models\AskAnything\AskAnythingPrompt;
use Jiminny\Models\AskAnything\AskAnythingPromptTarget;
use Jiminny\Models\AskAnything\UserAskAnythingPrompt;
use Jiminny\Models\Group;
use Jiminny\Models\User;
class AskAnythingRepository
{
/**
* @return Collection<UserAskAnythingPrompt>
*/
public function findSharedUsersAndGroupsByPromptId(int $promptId): Collection
{
return UserAskAnythingPrompt::query()
->where('prompt_id', $promptId)
->where('is_removed', false)
->get();
}
public function findSharedPromptByUser(int $promptId, User $user): ?UserAskAnythingPrompt
{
return UserAskAnythingPrompt::with('prompt')
->where('prompt_id', $promptId)
->where('user_id', $user->getId())
->first();
}
public function findSharedPromptByUserGroup(int $promptId, User $user): ?UserAskAnythingPrompt
{
$userGroupId = $user->getGroupId();
return UserAskAnythingPrompt::with('prompt')
->where('prompt_id', $promptId)
->where(static function ($query) use ($userGroupId): void {
if ($userGroupId !== null) {
$query->where('group_id', $userGroupId);
}
})
->first();
}
/**
* @return Collection<AskAnythingPrompt>
*/
public function findPromptsByUserAndTarget(User $user, AskAnythingPromptTarget $target): Collection
{
$userGroupId = $user->getGroupId();
$usersOwnedPrompts = UserAskAnythingPrompt::with('prompt')
->where(static function ($query) use ($user, $userGroupId): void {
$query
->where('user_id', $user->getId());
if ($userGroupId !== null) {
$query->orWhere('group_id', $userGroupId);
}
})
->where('is_removed', false)
->whereHas('prompt', function (Builder $query) use ($target) {
$query->where('target', $target);
})
->orderByRaw('ISNULL(`order`), `order` ASC, `prompt_id` ASC')
->get()
->map(function (UserAskAnythingPrompt $userPrompt) {
return $userPrompt->getPrompt();
});
// Remove those prompts that are hidden for the current user
$usersOwnedPromptsFiltered = $usersOwnedPrompts->filter(function (AskAnythingPrompt $userPrompt) use ($user) {
$promptId = $userPrompt->getId();
$userDisabledPrompt = UserAskAnythingPrompt::query()
->where('prompt_id', $promptId)
->where('is_removed', true)
->where('user_id', $user->getId())
->first();
return $userDisabledPrompt === null;
});
$defaultNonChangedPrompts = AskAnythingPrompt::where('target', $target)
->whereDoesntHave('userPrompts', function ($query) use ($user) {
$query->where('user_id', $user->getId());
})
->whereNull('owner_id')
->get();
$allPrompts = $defaultNonChangedPrompts->merge($usersOwnedPromptsFiltered);
if ($allPrompts->isNotEmpty()) {
$allPrompts->loadCount('automatedReports');
}
return $allPrompts;
}
/**
* @param array<User> $shareUsers
* @param array<Group> $shareGroups
*/
public function createPrompt(
User $user,
AskAnythingPromptTarget $target,
string $title,
string $content,
array $shareUsers,
array $shareGroups,
): AskAnythingPrompt {
$prompt = AskAnythingPrompt::create([
'title' => $title,
'content' => $content,
'target' => $target,
'owner_id' => $user->getId(),
]);
UserAskAnythingPrompt::create([
'user_id' => $user->getId(),
'prompt_id' => $prompt->getId(),
]);
foreach ($shareUsers as $shareUser) {
UserAskAnythingPrompt::create([
'user_id' => $shareUser->getId(),
'prompt_id' => $prompt->getId(),
]);
}
foreach ($shareGroups as $shareGroup) {
UserAskAnythingPrompt::create([
'group_id' => $shareGroup->getId(),
'prompt_id' => $prompt->getId(),
]);
}
return $prompt;
}
/**
* @param array<User> $shareUsers
* @param array<Group> $shareGroups
*/
public function editPrompt(
AskAnythingPrompt $prompt,
string $title,
string $content,
array $shareUsers,
array $shareGroups,
): AskAnythingPrompt {
$prompt->update([
'title' => $title,
'content' => $content,
]);
$previousUserPrompts = UserAskAnythingPrompt::query()
->where('prompt_id', $prompt->getId())
->whereNull('group_id')
->whereNotNull('user_id')
->whereNot('user_id', $prompt->getOwnerId())
->get();
$previousGroupPrompts = UserAskAnythingPrompt::query()
->where('prompt_id', $prompt->getId())
->whereNotNull('group_id')
->whereNull('user_id')
->get();
$shareUserPrompts = [];
foreach ($shareUsers as $shareUser) {
$shareUserPrompts[] = UserAskAnythingPrompt::create([
'user_id' => $shareUser->getId(),
'prompt_id' => $prompt->getId(),
]);
}
$shareGroupPrompts = [];
foreach ($shareGroups as $shareGroup) {
$shareGroupPrompts[] = UserAskAnythingPrompt::create([
'group_id' => $shareGroup->getId(),
'prompt_id' => $prompt->getId(),
]);
}
// Remove those users that are no longer added
$diffUsers = $previousUserPrompts->diff($shareUserPrompts);
foreach ($diffUsers as $previousUserPrompt) {
$previousUserPrompt->delete();
}
// Remove those groups that are no longer added
$diffGroups = $previousGroupPrompts->diff($shareGroupPrompts);
foreach ($diffGroups as $previousGroupPrompt) {
$previousGroupPrompt->delete();
}
return $prompt;
}
public function deletePrompt(AskAnythingPrompt $prompt): void
{
// Also deletes all associations with users
$prompt->delete();
}
public function hidePromptForUser(AskAnythingPrompt $prompt, User $user): AskAnythingPrompt
{
$userPromptSettings = UserAskAnythingPrompt::where('user_id', $user->getId())
->where('prompt_id', $prompt->getId())
->first();
if ($userPromptSettings === null) {
$userPromptSettings = UserAskAnythingPrompt::create([
'user_id' => $user->getId(),
'prompt_id' => $prompt->getId(),
]);
}
$userPromptSettings->update([
'is_removed' => true,
]);
return $prompt;
}
public function getPromptByUuid(string $uuid): ?AskAnythingPrompt
{
return AskAnythingPrompt::where('uuid', AskAnythingPrompt::toOptimized($uuid))->first();
}
public function orderPromptForUser(AskAnythingPrompt $prompt, User $user, int $order): void
{
$userPromptSettings = UserAskAnythingPrompt::where('user_id', $user->getId())
->where('prompt_id', $prompt->getId())
->first();
if ($userPromptSettings === null) {
$userPromptSettings = UserAskAnythingPrompt::create([
'user_id' => $user->getId(),
'prompt_id' => $prompt->getId(),
]);
}
$userPromptSettings->update([
'order' => $order,
]);
}
}
Execute
Explain Plan
Browse Query History
View Parameters
Open Query Execution Settings…
In-Editor Results
Tx: Auto
Cancel Running Statements
Playground
jiminny
Code changed:
Hide
Sync Changes
Hide This Notification
21...
|
[{"role":"AXButton","text" [{"role":"AXButton","text":"Project: faVsco.js, menu","depth":5,"on_screen":true,"help_text":"~/jiminny/app","role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"JY-20676-delete-report-related-objects, menu","depth":5,"on_screen":true,"help_text":"Git Branch: JY-20676-delete-report-related-objects<br/>Some incoming commits are not fetched<br/>","role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Start Listening for PHP Debug Connections","depth":5,"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"AskAnythingPromptServiceTest","depth":6,"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Run 'AskAnythingPromptServiceTest'","depth":6,"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Debug 'AskAnythingPromptServiceTest'","depth":6,"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"More Actions","depth":6,"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"JetBrains AI","depth":5,"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Search Everywhere","depth":5,"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"IDE and Project Settings","depth":5,"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Sync Changes","depth":4,"bounds":{"left":0.0,"top":0.0,"width":0.018055556,"height":0.026666667},"on_screen":false,"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Hide This Notification","depth":4,"bounds":{"left":0.0,"top":0.0,"width":0.018055556,"height":0.026666667},"on_screen":false,"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Code changed:","depth":4,"bounds":{"left":0.0,"top":0.0,"width":0.088194445,"height":0.027777778},"on_screen":false,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Hide","depth":4,"bounds":{"left":0.0,"top":0.0,"width":0.018055556,"height":0.026666667},"on_screen":false,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"12","depth":4,"bounds":{"left":0.0,"top":0.0,"width":0.02013889,"height":0.02111111},"on_screen":false,"role_description":"text"},{"role":"AXButton","text":"Previous Highlighted Error","depth":4,"bounds":{"left":0.0,"top":0.0,"width":0.015277778,"height":0.025555555},"on_screen":false,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Next Highlighted Error","depth":4,"bounds":{"left":0.0,"top":0.0,"width":0.014583333,"height":0.025555555},"on_screen":false,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXTextArea","text":"<?php\n\ndeclare(strict_types=1);\n\nnamespace Jiminny\\Repositories;\n\nuse Illuminate\\Database\\Eloquent\\Builder;\nuse Illuminate\\Support\\Collection;\nuse Jiminny\\Models\\AskAnything\\AskAnythingPrompt;\nuse Jiminny\\Models\\AskAnything\\AskAnythingPromptTarget;\nuse Jiminny\\Models\\AskAnything\\UserAskAnythingPrompt;\nuse Jiminny\\Models\\Group;\nuse Jiminny\\Models\\User;\n\nclass AskAnythingRepository\n{\n /**\n * @return Collection<UserAskAnythingPrompt>\n */\n public function findSharedUsersAndGroupsByPromptId(int $promptId): Collection\n {\n return UserAskAnythingPrompt::query()\n ->where('prompt_id', $promptId)\n ->where('is_removed', false)\n ->get();\n }\n\n public function findSharedPromptByUser(int $promptId, User $user): ?UserAskAnythingPrompt\n {\n return UserAskAnythingPrompt::with('prompt')\n ->where('prompt_id', $promptId)\n ->where('user_id', $user->getId())\n ->first();\n }\n\n public function findSharedPromptByUserGroup(int $promptId, User $user): ?UserAskAnythingPrompt\n {\n $userGroupId = $user->getGroupId();\n\n return UserAskAnythingPrompt::with('prompt')\n ->where('prompt_id', $promptId)\n ->where(static function ($query) use ($userGroupId): void {\n if ($userGroupId !== null) {\n $query->where('group_id', $userGroupId);\n }\n })\n ->first();\n }\n\n /**\n * @return Collection<AskAnythingPrompt>\n */\n public function findPromptsByUserAndTarget(User $user, AskAnythingPromptTarget $target): Collection\n {\n $userGroupId = $user->getGroupId();\n $usersOwnedPrompts = UserAskAnythingPrompt::with('prompt')\n ->where(static function ($query) use ($user, $userGroupId): void {\n $query\n ->where('user_id', $user->getId());\n\n if ($userGroupId !== null) {\n $query->orWhere('group_id', $userGroupId);\n }\n })\n ->where('is_removed', false)\n ->whereHas('prompt', function (Builder $query) use ($target) {\n $query->where('target', $target);\n })\n ->orderByRaw('ISNULL(`order`), `order` ASC, `prompt_id` ASC')\n ->get()\n ->map(function (UserAskAnythingPrompt $userPrompt) {\n return $userPrompt->getPrompt();\n });\n\n // Remove those prompts that are hidden for the current user\n $usersOwnedPromptsFiltered = $usersOwnedPrompts->filter(function (AskAnythingPrompt $userPrompt) use ($user) {\n $promptId = $userPrompt->getId();\n $userDisabledPrompt = UserAskAnythingPrompt::query()\n ->where('prompt_id', $promptId)\n ->where('is_removed', true)\n ->where('user_id', $user->getId())\n ->first();\n\n return $userDisabledPrompt === null;\n });\n\n $defaultNonChangedPrompts = AskAnythingPrompt::where('target', $target)\n ->whereDoesntHave('userPrompts', function ($query) use ($user) {\n $query->where('user_id', $user->getId());\n })\n ->whereNull('owner_id')\n ->get();\n\n $allPrompts = $defaultNonChangedPrompts->merge($usersOwnedPromptsFiltered);\n\n if ($allPrompts->isNotEmpty()) {\n $allPrompts->loadCount('automatedReports');\n }\n\n return $allPrompts;\n }\n\n /**\n * @param array<User> $shareUsers\n * @param array<Group> $shareGroups\n */\n public function createPrompt(\n User $user,\n AskAnythingPromptTarget $target,\n string $title,\n string $content,\n array $shareUsers,\n array $shareGroups,\n ): AskAnythingPrompt {\n $prompt = AskAnythingPrompt::create([\n 'title' => $title,\n 'content' => $content,\n 'target' => $target,\n 'owner_id' => $user->getId(),\n ]);\n\n UserAskAnythingPrompt::create([\n 'user_id' => $user->getId(),\n 'prompt_id' => $prompt->getId(),\n ]);\n\n foreach ($shareUsers as $shareUser) {\n UserAskAnythingPrompt::create([\n 'user_id' => $shareUser->getId(),\n 'prompt_id' => $prompt->getId(),\n ]);\n }\n\n foreach ($shareGroups as $shareGroup) {\n UserAskAnythingPrompt::create([\n 'group_id' => $shareGroup->getId(),\n 'prompt_id' => $prompt->getId(),\n ]);\n }\n\n return $prompt;\n }\n\n /**\n * @param array<User> $shareUsers\n * @param array<Group> $shareGroups\n */\n public function editPrompt(\n AskAnythingPrompt $prompt,\n string $title,\n string $content,\n array $shareUsers,\n array $shareGroups,\n ): AskAnythingPrompt {\n $prompt->update([\n 'title' => $title,\n 'content' => $content,\n ]);\n\n $previousUserPrompts = UserAskAnythingPrompt::query()\n ->where('prompt_id', $prompt->getId())\n ->whereNull('group_id')\n ->whereNotNull('user_id')\n ->whereNot('user_id', $prompt->getOwnerId())\n ->get();\n\n $previousGroupPrompts = UserAskAnythingPrompt::query()\n ->where('prompt_id', $prompt->getId())\n ->whereNotNull('group_id')\n ->whereNull('user_id')\n ->get();\n\n $shareUserPrompts = [];\n foreach ($shareUsers as $shareUser) {\n $shareUserPrompts[] = UserAskAnythingPrompt::create([\n 'user_id' => $shareUser->getId(),\n 'prompt_id' => $prompt->getId(),\n ]);\n }\n\n $shareGroupPrompts = [];\n foreach ($shareGroups as $shareGroup) {\n $shareGroupPrompts[] = UserAskAnythingPrompt::create([\n 'group_id' => $shareGroup->getId(),\n 'prompt_id' => $prompt->getId(),\n ]);\n }\n\n // Remove those users that are no longer added\n $diffUsers = $previousUserPrompts->diff($shareUserPrompts);\n foreach ($diffUsers as $previousUserPrompt) {\n $previousUserPrompt->delete();\n }\n\n // Remove those groups that are no longer added\n $diffGroups = $previousGroupPrompts->diff($shareGroupPrompts);\n foreach ($diffGroups as $previousGroupPrompt) {\n $previousGroupPrompt->delete();\n }\n\n return $prompt;\n }\n\n public function deletePrompt(AskAnythingPrompt $prompt): void\n {\n // Also deletes all associations with users\n $prompt->delete();\n }\n\n public function hidePromptForUser(AskAnythingPrompt $prompt, User $user): AskAnythingPrompt\n {\n $userPromptSettings = UserAskAnythingPrompt::where('user_id', $user->getId())\n ->where('prompt_id', $prompt->getId())\n ->first();\n\n if ($userPromptSettings === null) {\n $userPromptSettings = UserAskAnythingPrompt::create([\n 'user_id' => $user->getId(),\n 'prompt_id' => $prompt->getId(),\n ]);\n }\n\n $userPromptSettings->update([\n 'is_removed' => true,\n ]);\n\n return $prompt;\n }\n\n public function getPromptByUuid(string $uuid): ?AskAnythingPrompt\n {\n return AskAnythingPrompt::where('uuid', AskAnythingPrompt::toOptimized($uuid))->first();\n }\n\n public function orderPromptForUser(AskAnythingPrompt $prompt, User $user, int $order): void\n {\n $userPromptSettings = UserAskAnythingPrompt::where('user_id', $user->getId())\n ->where('prompt_id', $prompt->getId())\n ->first();\n\n if ($userPromptSettings === null) {\n $userPromptSettings = UserAskAnythingPrompt::create([\n 'user_id' => $user->getId(),\n 'prompt_id' => $prompt->getId(),\n ]);\n }\n\n $userPromptSettings->update([\n 'order' => $order,\n ]);\n }\n}","depth":4,"on_screen":true,"value":"<?php\n\ndeclare(strict_types=1);\n\nnamespace Jiminny\\Repositories;\n\nuse Illuminate\\Database\\Eloquent\\Builder;\nuse Illuminate\\Support\\Collection;\nuse Jiminny\\Models\\AskAnything\\AskAnythingPrompt;\nuse Jiminny\\Models\\AskAnything\\AskAnythingPromptTarget;\nuse Jiminny\\Models\\AskAnything\\UserAskAnythingPrompt;\nuse Jiminny\\Models\\Group;\nuse Jiminny\\Models\\User;\n\nclass AskAnythingRepository\n{\n /**\n * @return Collection<UserAskAnythingPrompt>\n */\n public function findSharedUsersAndGroupsByPromptId(int $promptId): Collection\n {\n return UserAskAnythingPrompt::query()\n ->where('prompt_id', $promptId)\n ->where('is_removed', false)\n ->get();\n }\n\n public function findSharedPromptByUser(int $promptId, User $user): ?UserAskAnythingPrompt\n {\n return UserAskAnythingPrompt::with('prompt')\n ->where('prompt_id', $promptId)\n ->where('user_id', $user->getId())\n ->first();\n }\n\n public function findSharedPromptByUserGroup(int $promptId, User $user): ?UserAskAnythingPrompt\n {\n $userGroupId = $user->getGroupId();\n\n return UserAskAnythingPrompt::with('prompt')\n ->where('prompt_id', $promptId)\n ->where(static function ($query) use ($userGroupId): void {\n if ($userGroupId !== null) {\n $query->where('group_id', $userGroupId);\n }\n })\n ->first();\n }\n\n /**\n * @return Collection<AskAnythingPrompt>\n */\n public function findPromptsByUserAndTarget(User $user, AskAnythingPromptTarget $target): Collection\n {\n $userGroupId = $user->getGroupId();\n $usersOwnedPrompts = UserAskAnythingPrompt::with('prompt')\n ->where(static function ($query) use ($user, $userGroupId): void {\n $query\n ->where('user_id', $user->getId());\n\n if ($userGroupId !== null) {\n $query->orWhere('group_id', $userGroupId);\n }\n })\n ->where('is_removed', false)\n ->whereHas('prompt', function (Builder $query) use ($target) {\n $query->where('target', $target);\n })\n ->orderByRaw('ISNULL(`order`), `order` ASC, `prompt_id` ASC')\n ->get()\n ->map(function (UserAskAnythingPrompt $userPrompt) {\n return $userPrompt->getPrompt();\n });\n\n // Remove those prompts that are hidden for the current user\n $usersOwnedPromptsFiltered = $usersOwnedPrompts->filter(function (AskAnythingPrompt $userPrompt) use ($user) {\n $promptId = $userPrompt->getId();\n $userDisabledPrompt = UserAskAnythingPrompt::query()\n ->where('prompt_id', $promptId)\n ->where('is_removed', true)\n ->where('user_id', $user->getId())\n ->first();\n\n return $userDisabledPrompt === null;\n });\n\n $defaultNonChangedPrompts = AskAnythingPrompt::where('target', $target)\n ->whereDoesntHave('userPrompts', function ($query) use ($user) {\n $query->where('user_id', $user->getId());\n })\n ->whereNull('owner_id')\n ->get();\n\n $allPrompts = $defaultNonChangedPrompts->merge($usersOwnedPromptsFiltered);\n\n if ($allPrompts->isNotEmpty()) {\n $allPrompts->loadCount('automatedReports');\n }\n\n return $allPrompts;\n }\n\n /**\n * @param array<User> $shareUsers\n * @param array<Group> $shareGroups\n */\n public function createPrompt(\n User $user,\n AskAnythingPromptTarget $target,\n string $title,\n string $content,\n array $shareUsers,\n array $shareGroups,\n ): AskAnythingPrompt {\n $prompt = AskAnythingPrompt::create([\n 'title' => $title,\n 'content' => $content,\n 'target' => $target,\n 'owner_id' => $user->getId(),\n ]);\n\n UserAskAnythingPrompt::create([\n 'user_id' => $user->getId(),\n 'prompt_id' => $prompt->getId(),\n ]);\n\n foreach ($shareUsers as $shareUser) {\n UserAskAnythingPrompt::create([\n 'user_id' => $shareUser->getId(),\n 'prompt_id' => $prompt->getId(),\n ]);\n }\n\n foreach ($shareGroups as $shareGroup) {\n UserAskAnythingPrompt::create([\n 'group_id' => $shareGroup->getId(),\n 'prompt_id' => $prompt->getId(),\n ]);\n }\n\n return $prompt;\n }\n\n /**\n * @param array<User> $shareUsers\n * @param array<Group> $shareGroups\n */\n public function editPrompt(\n AskAnythingPrompt $prompt,\n string $title,\n string $content,\n array $shareUsers,\n array $shareGroups,\n ): AskAnythingPrompt {\n $prompt->update([\n 'title' => $title,\n 'content' => $content,\n ]);\n\n $previousUserPrompts = UserAskAnythingPrompt::query()\n ->where('prompt_id', $prompt->getId())\n ->whereNull('group_id')\n ->whereNotNull('user_id')\n ->whereNot('user_id', $prompt->getOwnerId())\n ->get();\n\n $previousGroupPrompts = UserAskAnythingPrompt::query()\n ->where('prompt_id', $prompt->getId())\n ->whereNotNull('group_id')\n ->whereNull('user_id')\n ->get();\n\n $shareUserPrompts = [];\n foreach ($shareUsers as $shareUser) {\n $shareUserPrompts[] = UserAskAnythingPrompt::create([\n 'user_id' => $shareUser->getId(),\n 'prompt_id' => $prompt->getId(),\n ]);\n }\n\n $shareGroupPrompts = [];\n foreach ($shareGroups as $shareGroup) {\n $shareGroupPrompts[] = UserAskAnythingPrompt::create([\n 'group_id' => $shareGroup->getId(),\n 'prompt_id' => $prompt->getId(),\n ]);\n }\n\n // Remove those users that are no longer added\n $diffUsers = $previousUserPrompts->diff($shareUserPrompts);\n foreach ($diffUsers as $previousUserPrompt) {\n $previousUserPrompt->delete();\n }\n\n // Remove those groups that are no longer added\n $diffGroups = $previousGroupPrompts->diff($shareGroupPrompts);\n foreach ($diffGroups as $previousGroupPrompt) {\n $previousGroupPrompt->delete();\n }\n\n return $prompt;\n }\n\n public function deletePrompt(AskAnythingPrompt $prompt): void\n {\n // Also deletes all associations with users\n $prompt->delete();\n }\n\n public function hidePromptForUser(AskAnythingPrompt $prompt, User $user): AskAnythingPrompt\n {\n $userPromptSettings = UserAskAnythingPrompt::where('user_id', $user->getId())\n ->where('prompt_id', $prompt->getId())\n ->first();\n\n if ($userPromptSettings === null) {\n $userPromptSettings = UserAskAnythingPrompt::create([\n 'user_id' => $user->getId(),\n 'prompt_id' => $prompt->getId(),\n ]);\n }\n\n $userPromptSettings->update([\n 'is_removed' => true,\n ]);\n\n return $prompt;\n }\n\n public function getPromptByUuid(string $uuid): ?AskAnythingPrompt\n {\n return AskAnythingPrompt::where('uuid', AskAnythingPrompt::toOptimized($uuid))->first();\n }\n\n public function orderPromptForUser(AskAnythingPrompt $prompt, User $user, int $order): void\n {\n $userPromptSettings = UserAskAnythingPrompt::where('user_id', $user->getId())\n ->where('prompt_id', $prompt->getId())\n ->first();\n\n if ($userPromptSettings === null) {\n $userPromptSettings = UserAskAnythingPrompt::create([\n 'user_id' => $user->getId(),\n 'prompt_id' => $prompt->getId(),\n ]);\n }\n\n $userPromptSettings->update([\n 'order' => $order,\n ]);\n }\n}","role_description":"text entry area","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Execute","depth":4,"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Explain Plan","depth":4,"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Browse Query History","depth":4,"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"View Parameters","depth":4,"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Open Query Execution Settings…","depth":4,"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"In-Editor Results","depth":4,"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Tx: Auto","depth":4,"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Cancel Running Statements","depth":4,"on_screen":true,"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Playground","depth":4,"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"jiminny","depth":4,"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Code changed:","depth":4,"bounds":{"left":0.0,"top":0.0,"width":0.088194445,"height":0.027777778},"on_screen":false,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Hide","depth":4,"bounds":{"left":0.0,"top":0.0,"width":0.018055556,"height":0.026666667},"on_screen":false,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Sync Changes","depth":4,"bounds":{"left":0.0,"top":0.0,"width":0.018055556,"height":0.026666667},"on_screen":false,"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Hide This Notification","depth":4,"bounds":{"left":0.0,"top":0.0,"width":0.018055556,"height":0.026666667},"on_screen":false,"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"21","depth":4,"on_screen":true,"role_description":"text"}]...
|
1419839356413898979
|
-358673465768164756
|
idle
|
accessibility
|
NULL
|
Project: faVsco.js, menu
JY-20676-delete-report-re Project: faVsco.js, menu
JY-20676-delete-report-related-objects, menu
Start Listening for PHP Debug Connections
AskAnythingPromptServiceTest
Run 'AskAnythingPromptServiceTest'
Debug 'AskAnythingPromptServiceTest'
More Actions
JetBrains AI
Search Everywhere
IDE and Project Settings
Sync Changes
Hide This Notification
Code changed:
Hide
12
Previous Highlighted Error
Next Highlighted Error
<?php
declare(strict_types=1);
namespace Jiminny\Repositories;
use Illuminate\Database\Eloquent\Builder;
use Illuminate\Support\Collection;
use Jiminny\Models\AskAnything\AskAnythingPrompt;
use Jiminny\Models\AskAnything\AskAnythingPromptTarget;
use Jiminny\Models\AskAnything\UserAskAnythingPrompt;
use Jiminny\Models\Group;
use Jiminny\Models\User;
class AskAnythingRepository
{
/**
* @return Collection<UserAskAnythingPrompt>
*/
public function findSharedUsersAndGroupsByPromptId(int $promptId): Collection
{
return UserAskAnythingPrompt::query()
->where('prompt_id', $promptId)
->where('is_removed', false)
->get();
}
public function findSharedPromptByUser(int $promptId, User $user): ?UserAskAnythingPrompt
{
return UserAskAnythingPrompt::with('prompt')
->where('prompt_id', $promptId)
->where('user_id', $user->getId())
->first();
}
public function findSharedPromptByUserGroup(int $promptId, User $user): ?UserAskAnythingPrompt
{
$userGroupId = $user->getGroupId();
return UserAskAnythingPrompt::with('prompt')
->where('prompt_id', $promptId)
->where(static function ($query) use ($userGroupId): void {
if ($userGroupId !== null) {
$query->where('group_id', $userGroupId);
}
})
->first();
}
/**
* @return Collection<AskAnythingPrompt>
*/
public function findPromptsByUserAndTarget(User $user, AskAnythingPromptTarget $target): Collection
{
$userGroupId = $user->getGroupId();
$usersOwnedPrompts = UserAskAnythingPrompt::with('prompt')
->where(static function ($query) use ($user, $userGroupId): void {
$query
->where('user_id', $user->getId());
if ($userGroupId !== null) {
$query->orWhere('group_id', $userGroupId);
}
})
->where('is_removed', false)
->whereHas('prompt', function (Builder $query) use ($target) {
$query->where('target', $target);
})
->orderByRaw('ISNULL(`order`), `order` ASC, `prompt_id` ASC')
->get()
->map(function (UserAskAnythingPrompt $userPrompt) {
return $userPrompt->getPrompt();
});
// Remove those prompts that are hidden for the current user
$usersOwnedPromptsFiltered = $usersOwnedPrompts->filter(function (AskAnythingPrompt $userPrompt) use ($user) {
$promptId = $userPrompt->getId();
$userDisabledPrompt = UserAskAnythingPrompt::query()
->where('prompt_id', $promptId)
->where('is_removed', true)
->where('user_id', $user->getId())
->first();
return $userDisabledPrompt === null;
});
$defaultNonChangedPrompts = AskAnythingPrompt::where('target', $target)
->whereDoesntHave('userPrompts', function ($query) use ($user) {
$query->where('user_id', $user->getId());
})
->whereNull('owner_id')
->get();
$allPrompts = $defaultNonChangedPrompts->merge($usersOwnedPromptsFiltered);
if ($allPrompts->isNotEmpty()) {
$allPrompts->loadCount('automatedReports');
}
return $allPrompts;
}
/**
* @param array<User> $shareUsers
* @param array<Group> $shareGroups
*/
public function createPrompt(
User $user,
AskAnythingPromptTarget $target,
string $title,
string $content,
array $shareUsers,
array $shareGroups,
): AskAnythingPrompt {
$prompt = AskAnythingPrompt::create([
'title' => $title,
'content' => $content,
'target' => $target,
'owner_id' => $user->getId(),
]);
UserAskAnythingPrompt::create([
'user_id' => $user->getId(),
'prompt_id' => $prompt->getId(),
]);
foreach ($shareUsers as $shareUser) {
UserAskAnythingPrompt::create([
'user_id' => $shareUser->getId(),
'prompt_id' => $prompt->getId(),
]);
}
foreach ($shareGroups as $shareGroup) {
UserAskAnythingPrompt::create([
'group_id' => $shareGroup->getId(),
'prompt_id' => $prompt->getId(),
]);
}
return $prompt;
}
/**
* @param array<User> $shareUsers
* @param array<Group> $shareGroups
*/
public function editPrompt(
AskAnythingPrompt $prompt,
string $title,
string $content,
array $shareUsers,
array $shareGroups,
): AskAnythingPrompt {
$prompt->update([
'title' => $title,
'content' => $content,
]);
$previousUserPrompts = UserAskAnythingPrompt::query()
->where('prompt_id', $prompt->getId())
->whereNull('group_id')
->whereNotNull('user_id')
->whereNot('user_id', $prompt->getOwnerId())
->get();
$previousGroupPrompts = UserAskAnythingPrompt::query()
->where('prompt_id', $prompt->getId())
->whereNotNull('group_id')
->whereNull('user_id')
->get();
$shareUserPrompts = [];
foreach ($shareUsers as $shareUser) {
$shareUserPrompts[] = UserAskAnythingPrompt::create([
'user_id' => $shareUser->getId(),
'prompt_id' => $prompt->getId(),
]);
}
$shareGroupPrompts = [];
foreach ($shareGroups as $shareGroup) {
$shareGroupPrompts[] = UserAskAnythingPrompt::create([
'group_id' => $shareGroup->getId(),
'prompt_id' => $prompt->getId(),
]);
}
// Remove those users that are no longer added
$diffUsers = $previousUserPrompts->diff($shareUserPrompts);
foreach ($diffUsers as $previousUserPrompt) {
$previousUserPrompt->delete();
}
// Remove those groups that are no longer added
$diffGroups = $previousGroupPrompts->diff($shareGroupPrompts);
foreach ($diffGroups as $previousGroupPrompt) {
$previousGroupPrompt->delete();
}
return $prompt;
}
public function deletePrompt(AskAnythingPrompt $prompt): void
{
// Also deletes all associations with users
$prompt->delete();
}
public function hidePromptForUser(AskAnythingPrompt $prompt, User $user): AskAnythingPrompt
{
$userPromptSettings = UserAskAnythingPrompt::where('user_id', $user->getId())
->where('prompt_id', $prompt->getId())
->first();
if ($userPromptSettings === null) {
$userPromptSettings = UserAskAnythingPrompt::create([
'user_id' => $user->getId(),
'prompt_id' => $prompt->getId(),
]);
}
$userPromptSettings->update([
'is_removed' => true,
]);
return $prompt;
}
public function getPromptByUuid(string $uuid): ?AskAnythingPrompt
{
return AskAnythingPrompt::where('uuid', AskAnythingPrompt::toOptimized($uuid))->first();
}
public function orderPromptForUser(AskAnythingPrompt $prompt, User $user, int $order): void
{
$userPromptSettings = UserAskAnythingPrompt::where('user_id', $user->getId())
->where('prompt_id', $prompt->getId())
->first();
if ($userPromptSettings === null) {
$userPromptSettings = UserAskAnythingPrompt::create([
'user_id' => $user->getId(),
'prompt_id' => $prompt->getId(),
]);
}
$userPromptSettings->update([
'order' => $order,
]);
}
}
Execute
Explain Plan
Browse Query History
View Parameters
Open Query Execution Settings…
In-Editor Results
Tx: Auto
Cancel Running Statements
Playground
jiminny
Code changed:
Hide
Sync Changes
Hide This Notification
21...
|
NULL
|
NULL
|
NULL
|
NULL
|
|
58078
|
2045
|
7
|
2026-05-19T11:33:08.033669+00:00
|
/Users/lukas/.screenpipe/data/data/2026-05-19/1779 /Users/lukas/.screenpipe/data/data/2026-05-19/1779190388033_m2.jpg...
|
PhpStorm
|
faVsco.js – AskAnythingRepository.php
|
1
|
NULL
|
monitor_2
|
NULL
|
NULL
|
NULL
|
NULL
|
PhostormViewINavicareCodeLaravelRefactorTOOISWindo PhostormViewINavicareCodeLaravelRefactorTOOISWindowFV faVsco.js°9 JY-20676-delete-report-related-objectsProiect v© EncryptionServiceProvider.php© EventServiceProvider.php© HubspotJournalServiceProvider.php© HubspotWebhookServiceProvider.php© JiminnyServiceProvider.php© PlanhatServiceProvider.php© ProphetHandlerServiceProvider.php© PusherServiceProvider.phpC) @ueueLoqServiceProvider.php© QueueStatsdServiceProvider.phpC) ResponseMacroServiceProvider.pho© RouteServiceProvider.phpc) SsoServiceProvider.pho@ UtilServiceProvider.ohn(C) ViewerGuardServiceProvider.ohoD Queuev RevositoriesAutoScoringM Calendarv Merm© AccountRepository.php(e) ContactRepository.onp(e) ContactRo leRepository.ong© CrmConfigurationRepository.php© CrmEntityRepository.php© FieldDataRepository.php© FieldRepository.php© LayoutEntityRepository.php© LayoutRepository.php© LeadRepository.php© OpportunityRepository.php© ProfileRepository.php© RecordTypeFieldValuesRepository.php@ StageRepositorv.php@ SvncBatchRepositorv.php>M GeographyC) ActiveStreamsReoositorv.oho© ActivityCommentRepository.phpC) ActivitvLoaReoositorv.oho©ActivityMessageRepository.phpC) ActivitvMomentRenositorv.nhnl©ActivityProviderRepository.phpC) [EMAIL]"C) ActivitvShareRenositorv [EMAIL](C) A:PromntRenositorv nhn(0 AckAnvthinaDonocitory nhn© AutomatedReportsRepository.php© CallImportRepositorv.phpiched 1 commit to oriain/IV.20676-delete-renort.=custom.log= laravel.logA SF [jiminny@localhost] x4 HS_local [jiminny@localhost]© AskAnythingPromptService.php© AskAnythingRepository.php XirtsServiceTest.phpA console [STAGING]© CoachingFeedbackCoachUserln.php© AskAnythingPromptDto.php© AskJiminnyReportsController.phg© AutomatedReportsService.php©) AskAn© Search.php105107GЕБЕБВЕВclass ASkAnyth1ngRepos1tory182public function findPromptsByUserAndTarget(User $userAskAnythingPromptTarget $target): Collectior 183"prompt", function (Bualder squery) use (Starget) 1...r->orderByRaw( sql: 'ISNULL( order), order)ASC. promot id ASC')->get®186->map(function (UserAskAnythingPrompt SuserPrompt) t...5):188 0Remove those oromots that are hidden for the current usen$users0wnedPromptsFiltered = Susers0wnedPrompts->filter(function (AskAnythingPrompt $userPrompt190$defaultNonChangedPrompts = AskAnythingPrompt::where('target', $target)->whereDoesntHave('userPrompts', function (Squery) use (Suser) {...})->whereNull('owner_id')->getO:1196return SdefaultvonchandedPromots->merdelsusersownedPromotsstlteredoeAccept Reject$allPrompts = $defaultNonChangedPrompts->merge(Susers0wnedPromptsFiltered):198200if ($allPrompts->isNotEmpty0) {sallPromots->LoadCount'automatedReports'):201203return Sal Promots:204205206207208@param array<User> $shareUsers209210211nublie function cneatePromnt212213licen Sucen214AskAnythingPromptTarget $target,215string Stitlestring Scontentarray $shareUsers,218array $shareGroups): AskAnythingPrompt {...}* dparam arrau<user> sshareusers* Oparam arrau<Grouo> SshareGroups-224_225Tx: AutovSELECT ar.id, ar.uuid, ar.media. type, ar.status, a.typeFROM automated_report_results arJOIN automated_reports a ON a.id = ar.reportidWHERE a.type ='ask_jiminny'LIMIT 10;SELECT * FROM automated reports where id = 71;SELECT * FROM automated_report results where report id = 71;UPDATE automated reports set playbook categories = NULL where id = 68SELECT * FROM automated report results where id = 275;SELECT * FROM automated_reports order by 1d desc;SELECT * FROMautomated_reportresults order by 1d desc:select * from activity_searches here user_id = 143;select * fronSELECTautomated report results.* FROM 'automated report resultsiautomated remort results', renort id' =automated reoorts'.'1diautomated_report_results.generated_at IS NOT NULLautomated_report_results. sent_at IS NOT NULLautomated renorts' 'team id = 1AND ISON CONTATNS('automated nenonte' "neciniente'. 147 Id lucengll)SELECT * FROM automated_reports where id = 67:SELECT * FROM automated_reports where id = 42;SELECT * FROM users WHERE id = 143; # group 28select * from teams where id = 3143;select * from crm_configurations where id = 500:select * from users where name = 'Integration Account': # 1695SELECT * FROM social accounts WHERE sociable id = 1695:select * from activities where crm_configuration id = 39and recording state = 'recorded' and duration > 60and status = 'completed' and actual start time >= '2025-12-01':SELECT * FROM activities WHERE uuid to bin('458cf915-6914-4000-b083-568763262956') = uuid:select * from leads:SELECT * FROM activities WHERE uuid to binc'f43cf158-e60d-46e5-92f8-c4e0594a3219') = uuid: # 422003SELECT * FROM activities WHERE id IN (16.422003);public function editpromot149AskAnvthirtaPrometitSordmps Accept File &+X Reject File 4%€ + 2 of 2 files →strind stitle.iects // View null reauect (todav 12:17)SSIECT * SROM activitios whenp statuc ='failed'Socket fail to connect to host:address=(host=localhost) (port=3306)(tvpe=primarv). Connection refused• suppont Dally • In 21m100% 5• Tue 19 May 14:33:07AskAnythingPromptServiceTest v& console [PROD]# console [eu)CascadeASK Jiminny Report+0 ..So jiminny v• AskAnythingRepository.phg+1 -7021 A1 A18 V2 V6 ^• AskAnythingPromptService.phpwSearched use llluminate.*Collection in tests/Unit/Comoonent/AskAnvthina/AskAnvthinaPromotServicetest.ono (1)1Test compatibility issue: loadCount on a Collection of PHPUnit mocks would crash because it tries to call newQueryWithoutRelationshioso on the tirst model. Repository olacement avoided that because the test mocks the revository calliiLet me revert to the repository approach but add a clarifying comment, since the impact is minimal (2 small COUNT querieson the reorder endpoint, not a full N+1)AskAnythingPromptService.php• AskAnythingRepository.php+7 -11Risks SummaryWhat loadCount does• Adds one extra query: SELECT ask_anything_prompt_id, COUNT(*) FROM automated_reports WHERE ask_anything_promptid IN (...) GROUP BY ask anvthing promot id!• Sets automated reports count (raw int) on each model in the returned collection.• No writes, no model state mutation bevond that attributeWillit modiiv existind behavior?Functionally no, performance-wise slightly:1. AskAnythingPromptService::get() - needs the count. Beneficial.2. ReorderAskAnvthingPromptsRequest (two call sites) — onlv uses pluck("uuid') and ->count() on the collection. Theextra COUNT query runs but the result is unused. Cost: 2 small grouped-COUNT queries per reorder request. Nofunctional chanae3. JSON serialization risk - none, because every response path runs prompts through AskAnythingPromptDto, neverserializes the model directlv. So automated renorts count doesn't leak into anv AP response.4. save() after - automated_reports_count is not in sfillable and not a real DB column. Eloquent ignores it on save.No corruotion risk5. Subsequent relation queries - none affected. Counts are stored as a plain attribute, not a loaded relationWhy I kept it in the repository (not the service)Tests mock the repositorv entirelv with a fake Collection of mocked promots. If loadount is in the service. it tries to callnew@uerywithoutRelatlonships on the first PHPUnit mock and crashes. Putting it in the repository keeps unit tests clean(thev never reach loadCount. ) and keens the eager-load close to the auerv that produced the collection — which is a defIComnonent/AckAnvthina/AckAnvthinaDromntSorvidkAnything/ AskAnythingPromptService.php +7 -2s/M AskAnvthinaRenositorv.ohnlAccent alliAsk anvthing 884-D)<> Code Claude Qnus 4.7 MediumW Windsurf Toams 04-1/212 charc & line hreake)io 4 space:...
|
NULL
|
4628734711069442377
|
NULL
|
click
|
ocr
|
NULL
|
PhostormViewINavicareCodeLaravelRefactorTOOISWindo PhostormViewINavicareCodeLaravelRefactorTOOISWindowFV faVsco.js°9 JY-20676-delete-report-related-objectsProiect v© EncryptionServiceProvider.php© EventServiceProvider.php© HubspotJournalServiceProvider.php© HubspotWebhookServiceProvider.php© JiminnyServiceProvider.php© PlanhatServiceProvider.php© ProphetHandlerServiceProvider.php© PusherServiceProvider.phpC) @ueueLoqServiceProvider.php© QueueStatsdServiceProvider.phpC) ResponseMacroServiceProvider.pho© RouteServiceProvider.phpc) SsoServiceProvider.pho@ UtilServiceProvider.ohn(C) ViewerGuardServiceProvider.ohoD Queuev RevositoriesAutoScoringM Calendarv Merm© AccountRepository.php(e) ContactRepository.onp(e) ContactRo leRepository.ong© CrmConfigurationRepository.php© CrmEntityRepository.php© FieldDataRepository.php© FieldRepository.php© LayoutEntityRepository.php© LayoutRepository.php© LeadRepository.php© OpportunityRepository.php© ProfileRepository.php© RecordTypeFieldValuesRepository.php@ StageRepositorv.php@ SvncBatchRepositorv.php>M GeographyC) ActiveStreamsReoositorv.oho© ActivityCommentRepository.phpC) ActivitvLoaReoositorv.oho©ActivityMessageRepository.phpC) ActivitvMomentRenositorv.nhnl©ActivityProviderRepository.phpC) [EMAIL]"C) ActivitvShareRenositorv [EMAIL](C) A:PromntRenositorv nhn(0 AckAnvthinaDonocitory nhn© AutomatedReportsRepository.php© CallImportRepositorv.phpiched 1 commit to oriain/IV.20676-delete-renort.=custom.log= laravel.logA SF [jiminny@localhost] x4 HS_local [jiminny@localhost]© AskAnythingPromptService.php© AskAnythingRepository.php XirtsServiceTest.phpA console [STAGING]© CoachingFeedbackCoachUserln.php© AskAnythingPromptDto.php© AskJiminnyReportsController.phg© AutomatedReportsService.php©) AskAn© Search.php105107GЕБЕБВЕВclass ASkAnyth1ngRepos1tory182public function findPromptsByUserAndTarget(User $userAskAnythingPromptTarget $target): Collectior 183"prompt", function (Bualder squery) use (Starget) 1...r->orderByRaw( sql: 'ISNULL( order), order)ASC. promot id ASC')->get®186->map(function (UserAskAnythingPrompt SuserPrompt) t...5):188 0Remove those oromots that are hidden for the current usen$users0wnedPromptsFiltered = Susers0wnedPrompts->filter(function (AskAnythingPrompt $userPrompt190$defaultNonChangedPrompts = AskAnythingPrompt::where('target', $target)->whereDoesntHave('userPrompts', function (Squery) use (Suser) {...})->whereNull('owner_id')->getO:1196return SdefaultvonchandedPromots->merdelsusersownedPromotsstlteredoeAccept Reject$allPrompts = $defaultNonChangedPrompts->merge(Susers0wnedPromptsFiltered):198200if ($allPrompts->isNotEmpty0) {sallPromots->LoadCount'automatedReports'):201203return Sal Promots:204205206207208@param array<User> $shareUsers209210211nublie function cneatePromnt212213licen Sucen214AskAnythingPromptTarget $target,215string Stitlestring Scontentarray $shareUsers,218array $shareGroups): AskAnythingPrompt {...}* dparam arrau<user> sshareusers* Oparam arrau<Grouo> SshareGroups-224_225Tx: AutovSELECT ar.id, ar.uuid, ar.media. type, ar.status, a.typeFROM automated_report_results arJOIN automated_reports a ON a.id = ar.reportidWHERE a.type ='ask_jiminny'LIMIT 10;SELECT * FROM automated reports where id = 71;SELECT * FROM automated_report results where report id = 71;UPDATE automated reports set playbook categories = NULL where id = 68SELECT * FROM automated report results where id = 275;SELECT * FROM automated_reports order by 1d desc;SELECT * FROMautomated_reportresults order by 1d desc:select * from activity_searches here user_id = 143;select * fronSELECTautomated report results.* FROM 'automated report resultsiautomated remort results', renort id' =automated reoorts'.'1diautomated_report_results.generated_at IS NOT NULLautomated_report_results. sent_at IS NOT NULLautomated renorts' 'team id = 1AND ISON CONTATNS('automated nenonte' "neciniente'. 147 Id lucengll)SELECT * FROM automated_reports where id = 67:SELECT * FROM automated_reports where id = 42;SELECT * FROM users WHERE id = 143; # group 28select * from teams where id = 3143;select * from crm_configurations where id = 500:select * from users where name = 'Integration Account': # 1695SELECT * FROM social accounts WHERE sociable id = 1695:select * from activities where crm_configuration id = 39and recording state = 'recorded' and duration > 60and status = 'completed' and actual start time >= '2025-12-01':SELECT * FROM activities WHERE uuid to bin('458cf915-6914-4000-b083-568763262956') = uuid:select * from leads:SELECT * FROM activities WHERE uuid to binc'f43cf158-e60d-46e5-92f8-c4e0594a3219') = uuid: # 422003SELECT * FROM activities WHERE id IN (16.422003);public function editpromot149AskAnvthirtaPrometitSordmps Accept File &+X Reject File 4%€ + 2 of 2 files →strind stitle.iects // View null reauect (todav 12:17)SSIECT * SROM activitios whenp statuc ='failed'Socket fail to connect to host:address=(host=localhost) (port=3306)(tvpe=primarv). Connection refused• suppont Dally • In 21m100% 5• Tue 19 May 14:33:07AskAnythingPromptServiceTest v& console [PROD]# console [eu)CascadeASK Jiminny Report+0 ..So jiminny v• AskAnythingRepository.phg+1 -7021 A1 A18 V2 V6 ^• AskAnythingPromptService.phpwSearched use llluminate.*Collection in tests/Unit/Comoonent/AskAnvthina/AskAnvthinaPromotServicetest.ono (1)1Test compatibility issue: loadCount on a Collection of PHPUnit mocks would crash because it tries to call newQueryWithoutRelationshioso on the tirst model. Repository olacement avoided that because the test mocks the revository calliiLet me revert to the repository approach but add a clarifying comment, since the impact is minimal (2 small COUNT querieson the reorder endpoint, not a full N+1)AskAnythingPromptService.php• AskAnythingRepository.php+7 -11Risks SummaryWhat loadCount does• Adds one extra query: SELECT ask_anything_prompt_id, COUNT(*) FROM automated_reports WHERE ask_anything_promptid IN (...) GROUP BY ask anvthing promot id!• Sets automated reports count (raw int) on each model in the returned collection.• No writes, no model state mutation bevond that attributeWillit modiiv existind behavior?Functionally no, performance-wise slightly:1. AskAnythingPromptService::get() - needs the count. Beneficial.2. ReorderAskAnvthingPromptsRequest (two call sites) — onlv uses pluck("uuid') and ->count() on the collection. Theextra COUNT query runs but the result is unused. Cost: 2 small grouped-COUNT queries per reorder request. Nofunctional chanae3. JSON serialization risk - none, because every response path runs prompts through AskAnythingPromptDto, neverserializes the model directlv. So automated renorts count doesn't leak into anv AP response.4. save() after - automated_reports_count is not in sfillable and not a real DB column. Eloquent ignores it on save.No corruotion risk5. Subsequent relation queries - none affected. Counts are stored as a plain attribute, not a loaded relationWhy I kept it in the repository (not the service)Tests mock the repositorv entirelv with a fake Collection of mocked promots. If loadount is in the service. it tries to callnew@uerywithoutRelatlonships on the first PHPUnit mock and crashes. Putting it in the repository keeps unit tests clean(thev never reach loadCount. ) and keens the eager-load close to the auerv that produced the collection — which is a defIComnonent/AckAnvthina/AckAnvthinaDromntSorvidkAnything/ AskAnythingPromptService.php +7 -2s/M AskAnvthinaRenositorv.ohnlAccent alliAsk anvthing 884-D)<> Code Claude Qnus 4.7 MediumW Windsurf Toams 04-1/212 charc & line hreake)io 4 space:...
|
58075
|
NULL
|
NULL
|
NULL
|
|
58077
|
2044
|
6
|
2026-05-19T11:33:08.069553+00:00
|
/Users/lukas/.screenpipe/data/data/2026-05-19/1779 /Users/lukas/.screenpipe/data/data/2026-05-19/1779190388069_m1.jpg...
|
PhpStorm
|
faVsco.js – AskAnythingRepository.php
|
1
|
NULL
|
monitor_1
|
NULL
|
NULL
|
NULL
|
NULL
|
iTerm2• 0ShellEditViewSessionScriptsProfilesWind iTerm2• 0ShellEditViewSessionScriptsProfilesWindowHelpallSupport Daily • in 27 m100% C4 8• Tue 19 May 14:33:07DOCKER• ₴1DEV (docker)Fixed 1 of 5690files in 71.757 seconds, 60.00 MBmemoryused₴82APP (docker)APP (docker)*3screenpipe"0 ₴4-zsh85What's next:Try Docker Debug for seamless, persistent debugging tools in any container or image + docker debug docker_lamp_1Learn moreat [URL_WITH_CREDENTIALS] ~/jiminny/app (JY-20676-delete-report-related-objects) $csfixdocker exec -it docker_lamp_1 ./vendor/bin/php-cs-fixer fix--config=.php-cs-fixer.dist.php -v --using-cache=no --diff...
|
NULL
|
4437647052804331533
|
NULL
|
click
|
ocr
|
NULL
|
iTerm2• 0ShellEditViewSessionScriptsProfilesWind iTerm2• 0ShellEditViewSessionScriptsProfilesWindowHelpallSupport Daily • in 27 m100% C4 8• Tue 19 May 14:33:07DOCKER• ₴1DEV (docker)Fixed 1 of 5690files in 71.757 seconds, 60.00 MBmemoryused₴82APP (docker)APP (docker)*3screenpipe"0 ₴4-zsh85What's next:Try Docker Debug for seamless, persistent debugging tools in any container or image + docker debug docker_lamp_1Learn moreat [URL_WITH_CREDENTIALS] ~/jiminny/app (JY-20676-delete-report-related-objects) $csfixdocker exec -it docker_lamp_1 ./vendor/bin/php-cs-fixer fix--config=.php-cs-fixer.dist.php -v --using-cache=no --diff...
|
58076
|
NULL
|
NULL
|
NULL
|
|
58079
|
2044
|
7
|
2026-05-19T11:33:41.666496+00:00
|
/Users/lukas/.screenpipe/data/data/2026-05-19/1779 /Users/lukas/.screenpipe/data/data/2026-05-19/1779190421666_m1.jpg...
|
PhpStorm
|
faVsco.js – AskAnythingRepository.php
|
1
|
NULL
|
monitor_1
|
NULL
|
NULL
|
NULL
|
NULL
|
Project: faVsco.js, menu
JY-20676-delete-report-re Project: faVsco.js, menu
JY-20676-delete-report-related-objects, menu
Start Listening for PHP Debug Connections
AskAnythingPromptServiceTest
Run 'AskAnythingPromptServiceTest'
Debug 'AskAnythingPromptServiceTest'
More Actions
JetBrains AI
Search Everywhere
IDE and Project Settings
Sync Changes
Hide This Notification
Code changed:
Hide
12
Previous Highlighted Error
Next Highlighted Error
<?php
declare(strict_types=1);
namespace Jiminny\Repositories;
use Illuminate\Database\Eloquent\Builder;
use Illuminate\Support\Collection;
use Jiminny\Models\AskAnything\AskAnythingPrompt;
use Jiminny\Models\AskAnything\AskAnythingPromptTarget;
use Jiminny\Models\AskAnything\UserAskAnythingPrompt;
use Jiminny\Models\Group;
use Jiminny\Models\User;
class AskAnythingRepository
{
/**
* @return Collection<UserAskAnythingPrompt>
*/
public function findSharedUsersAndGroupsByPromptId(int $promptId): Collection
{
return UserAskAnythingPrompt::query()
->where('prompt_id', $promptId)
->where('is_removed', false)
->get();
}
public function findSharedPromptByUser(int $promptId, User $user): ?UserAskAnythingPrompt
{
return UserAskAnythingPrompt::with('prompt')
->where('prompt_id', $promptId)
->where('user_id', $user->getId())
->first();
}
public function findSharedPromptByUserGroup(int $promptId, User $user): ?UserAskAnythingPrompt
{
$userGroupId = $user->getGroupId();
return UserAskAnythingPrompt::with('prompt')
->where('prompt_id', $promptId)
->where(static function ($query) use ($userGroupId): void {
if ($userGroupId !== null) {
$query->where('group_id', $userGroupId);
}
})
->first();
}
/**
* @return Collection<AskAnythingPrompt>
*/
public function findPromptsByUserAndTarget(User $user, AskAnythingPromptTarget $target): Collection
{
$userGroupId = $user->getGroupId();
$usersOwnedPrompts = UserAskAnythingPrompt::with('prompt')
->where(static function ($query) use ($user, $userGroupId): void {
$query
->where('user_id', $user->getId());
if ($userGroupId !== null) {
$query->orWhere('group_id', $userGroupId);
}
})
->where('is_removed', false)
->whereHas('prompt', function (Builder $query) use ($target) {
$query->where('target', $target);
})
->orderByRaw('ISNULL(`order`), `order` ASC, `prompt_id` ASC')
->get()
->map(function (UserAskAnythingPrompt $userPrompt) {
return $userPrompt->getPrompt();
});
// Remove those prompts that are hidden for the current user
$usersOwnedPromptsFiltered = $usersOwnedPrompts->filter(function (AskAnythingPrompt $userPrompt) use ($user) {
$promptId = $userPrompt->getId();
$userDisabledPrompt = UserAskAnythingPrompt::query()
->where('prompt_id', $promptId)
->where('is_removed', true)
->where('user_id', $user->getId())
->first();
return $userDisabledPrompt === null;
});
$defaultNonChangedPrompts = AskAnythingPrompt::where('target', $target)
->whereDoesntHave('userPrompts', function ($query) use ($user) {
$query->where('user_id', $user->getId());
})
->whereNull('owner_id')
->get();
$allPrompts = $defaultNonChangedPrompts->merge($usersOwnedPromptsFiltered);
if ($allPrompts->isNotEmpty()) {
$allPrompts->loadCount('automatedReports');
}
return $allPrompts;
}
/**
* @param array<User> $shareUsers
* @param array<Group> $shareGroups
*/
public function createPrompt(
User $user,
AskAnythingPromptTarget $target,
string $title,
string $content,
array $shareUsers,
array $shareGroups,
): AskAnythingPrompt {
$prompt = AskAnythingPrompt::create([
'title' => $title,
'content' => $content,
'target' => $target,
'owner_id' => $user->getId(),
]);
UserAskAnythingPrompt::create([
'user_id' => $user->getId(),
'prompt_id' => $prompt->getId(),
]);
foreach ($shareUsers as $shareUser) {
UserAskAnythingPrompt::create([
'user_id' => $shareUser->getId(),
'prompt_id' => $prompt->getId(),
]);
}
foreach ($shareGroups as $shareGroup) {
UserAskAnythingPrompt::create([
'group_id' => $shareGroup->getId(),
'prompt_id' => $prompt->getId(),
]);
}
return $prompt;
}
/**
* @param array<User> $shareUsers
* @param array<Group> $shareGroups
*/
public function editPrompt(
AskAnythingPrompt $prompt,
string $title,
string $content,
array $shareUsers,
array $shareGroups,
): AskAnythingPrompt {
$prompt->update([
'title' => $title,
'content' => $content,
]);
$previousUserPrompts = UserAskAnythingPrompt::query()
->where('prompt_id', $prompt->getId())
->whereNull('group_id')
->whereNotNull('user_id')
->whereNot('user_id', $prompt->getOwnerId())
->get();
$previousGroupPrompts = UserAskAnythingPrompt::query()
->where('prompt_id', $prompt->getId())
->whereNotNull('group_id')
->whereNull('user_id')
->get();
$shareUserPrompts = [];
foreach ($shareUsers as $shareUser) {
$shareUserPrompts[] = UserAskAnythingPrompt::create([
'user_id' => $shareUser->getId(),
'prompt_id' => $prompt->getId(),
]);
}
$shareGroupPrompts = [];
foreach ($shareGroups as $shareGroup) {
$shareGroupPrompts[] = UserAskAnythingPrompt::create([
'group_id' => $shareGroup->getId(),
'prompt_id' => $prompt->getId(),
]);
}
// Remove those users that are no longer added
$diffUsers = $previousUserPrompts->diff($shareUserPrompts);
foreach ($diffUsers as $previousUserPrompt) {
$previousUserPrompt->delete();
}
// Remove those groups that are no longer added
$diffGroups = $previousGroupPrompts->diff($shareGroupPrompts);
foreach ($diffGroups as $previousGroupPrompt) {
$previousGroupPrompt->delete();
}
return $prompt;
}
public function deletePrompt(AskAnythingPrompt $prompt): void
{
// Also deletes all associations with users
$prompt->delete();
}
public function hidePromptForUser(AskAnythingPrompt $prompt, User $user): AskAnythingPrompt
{
$userPromptSettings = UserAskAnythingPrompt::where('user_id', $user->getId())
->where('prompt_id', $prompt->getId())
->first();
if ($userPromptSettings === null) {
$userPromptSettings = UserAskAnythingPrompt::create([
'user_id' => $user->getId(),
'prompt_id' => $prompt->getId(),
]);
}
$userPromptSettings->update([
'is_removed' => true,
]);
return $prompt;
}
public function getPromptByUuid(string $uuid): ?AskAnythingPrompt
{
return AskAnythingPrompt::where('uuid', AskAnythingPrompt::toOptimized($uuid))->first();
}
public function orderPromptForUser(AskAnythingPrompt $prompt, User $user, int $order): void
{
$userPromptSettings = UserAskAnythingPrompt::where('user_id', $user->getId())
->where('prompt_id', $prompt->getId())
->first();
if ($userPromptSettings === null) {
$userPromptSettings = UserAskAnythingPrompt::create([
'user_id' => $user->getId(),
'prompt_id' => $prompt->getId(),
]);
}
$userPromptSettings->update([
'order' => $order,
]);
}
}
Execute
Explain Plan
Browse Query History
View Parameters
Open Query Execution Settings…
In-Editor Results
Tx: Auto
Cancel Running Statements
Playground
jiminny
Code changed:
Hide
Sync Changes
Hide This Notification
21
1
18
2
6
Previous Highlighted Error
Next Highlighted Error
SELECT a.id, a.uuid, a.actual_start_time, o.id, o.uuid FROM opportunities o
JOIN activities a ON o.id = a.opportunity_id
WHERE a.crm_configuration_id = 39
AND a.actual_start_time > '2025-10-13'
AND a.type IN ('conference', 'softphone-inbound', 'softphone-outbound')
;
SELECT * FROM activities
WHERE crm_configuration_id = 39 and user_id = 143
and actual_start_time >= '2025-10-13'
AND type IN ('conference', 'softphone-inbound', 'softphone-outbound')
;
SELECT * FROM opportunities WHERE account_id IN (178);
select * from activities where id IN (620137, 620187, 620188, 620189, 620230);
# HS
SELECT * FROM opportunities WHERE id IN (238);
select * from activities where id IN (477,2076);
select * from users;
SELECT COUNT(*) FROM users;
SELECT COUNT(*) FROM activities;
SELECT COUNT(*) FROM opportunities;
UPDATE activities
SET
actual_start_time = '2025-12-19 09:00:00',
actual_end_time = '2025-12-19 10:30:00',
scheduled_start_time = '2025-12-19 09:00:00',
scheduled_end_time = '2025-12-19 10:30:00'
WHERE id IN (407509,407375);
select * from partners;
SELECT id, uuid, type, actual_start_time, user_id, crm_configuration_id
FROM activities
WHERE user_id = 143
AND actual_start_time >= '2025-10-13 00:00:00'
AND actual_start_time <= '2026-01-13 23:59:59'
ORDER BY actual_start_time DESC;
SELECT * FROM activities WHERE uuid_to_bin('78eda160-3086-435f-88a5-bb0c71b6008d') = uuid;
SELECT * FROM crm_layouts where crm_configuration_id = 39;
SELECT * FROM crm_layout_entities WHERE crm_layout_id = 282;
# lead_id
# account_id 177
# contact_id 3969
# opportunity_id
# stage_id 203
SELECT * FROM opportunities WHERE opportunities.crm_configuration_id = id = 282;
SELECT * FROM activities where crm_configuration_id = 39 AND type = 'conference'
AND user_id = 143 and actual_start_time >= '2025-10-13';
SELECT * FROM activities a
# JOIN opportunities o ON a.opportunity_id = o.id
WHERE a.crm_configuration_id = 39 AND a.type = 'conference'
and status = 'completed' and recording_state = 'recorded'
and a.actual_start_time >= '2025-10-13'
AND a.user_id = 143
;
select * from leads
where crm_configuration_id = 39; # 112 -> ac. 178, 109 => op. 1707
SELECT * FROM activities WHERE id IN (356013,616188,616202,616310,407509,407375,356001,356008);
SELECT * FROM activities WHERE id IN (356013,616188,616202,616310);
SELECT * FROM activities WHERE id IN (407509,407375); # leads: 112, 109 | status - 198
SELECT * FROM activities WHERE id IN (356001, 356008); # contacts:
SELECT * FROM opportunities WHERE id IN (1707);
SELECT * FROM stages where id IN (204, 198);
SELECT * FROM opportunities WHERE account_id IN (178);
SELECT * FROM opportunities WHERE crm_configuration_id = 39 AND created_at > '2025-01-01';
SELECT * FROM contacts WHERE account_id IN (178); # 4118 Musaibe, 4448 Ceco Personal
SELECT * FROM activities where crm_configuration_id = 39
AND opportunity_id IS NULL
AND is_internal = false
and status = 'completed' and recording_state = 'recorded'
AND actual_start_time >= '2025-10-13'
AND (lead_id IS NOT NULL OR contact_id IS NOT NULL OR account_id IS NOT NULL)
# AND lead_id IN (112, 109)
;
SELECT * FROM crm_profiles WHERE user_id = 143;
select * from inboxes; # 212
select * from users where id = 143; # 143
select * from inbox_email_batches where inbox_id = 212
and updated_at >= '2026-01-28 00:00:00' order by id desc;
select * from inbox_emails where inbox_id = 212
and batch_id = 95885 order by id desc;
select * from email_messages where origin_user_id = 143;
select * from activities where user_id = 143 and updated_at >= '2026-01-28 00:00:00';
select * from participants where activity_id = 620247;
select * from crm_profiles where user_id = 143;
SELECT * FROM activities WHERE uuid_to_bin('458cf915-b914-4000-b083-5687b32b2956') = uuid; # 356001
select * from transcription where activity_id = 356001; # 6943
select * from ai_prompts where transcription_id = 6943;
SELECT * FROM activity_summary_logs where activity_id = 356001;
SELECT * FROM social_accounts WHERE sociable_id = 143;
# [PASSWORD_DOTS]
SELECT * FROM activities WHERE uuid_to_bin('0164a4fb-cb95-454e-9edd-4d804e4999bd') = uuid;
# 422515 softphone tr. 8100
SELECT * FROM activities WHERE uuid_to_bin('7520add8-8d87-41a5-98e5-fc4edf96f21e') = uuid;
# 407509 conference tr. 7670 crmId: 00UD1000002J9aTMAS
select * from ai_prompts where transcription_id IN (8100, 7670);
select * from activity_summary_logs where activity_id = 407509;
select * from sidekick_settings;
select * from default_activity_types;
SELECT * FROM contacts WHERE crm_configuration_id = 39 and email = '[EMAIL]';
SELECT * FROM leads WHERE crm_configuration_id = 39 and email = '[EMAIL]';
SELECT * FROM activity_searches where user_id = 143;
SELECT * FROM groups where team_id = 1;
select * from teams where id = 1;
select * from groups where team_id = 1; # 1150 - 7e75f8025c22
select id, name, group_id, status, deleted_at, email
from users where team_id = 1 order by group_id desc ;
select * from activity_searches where id in (1977, 1978, 1979);
select * from activity_search_filters where activity_search_id IN (1977, 1978, 1979);
select * from activity_search_filters where filter = 'group_id' and value = '443f26b8-8512-437e-a9f9-7e75f8025c22'; # 10268, 10272, 10277
select * from nudges where activity_search_id IN (1977, 1978, 1979); # 877, 878, 879
INSERT INTO `activity_search_filters`
(`activity_search_id`, `filter`, `value`) VALUES
(1977, 'group_id', '443f26b8-8512-437e-a9f9-7e75f8025c22'),
(1978, 'group_id', '443f26b8-8512-437e-a9f9-7e75f8025c22'),
(1979, 'group_id', '443f26b8-8512-437e-a9f9-7e75f8025c22')
;
select * from crm_configurations where id = 39;
select sa.* from users u JOIN social_accounts sa on u.id = sa.sociable_id
where u.team_id = 1;
SELECT * FROM social_accounts WHERE sociable_id = 1635;
SELECT * FROM users WHERE id = 1635;
select * from teams where id = 1;
select * from users where team_id = 1;
select * from team_features where team_id = 1;
select * from features;
SELECT * FROM activity_searches where id = 1982; # 1981
SELECT * FROM activity_search_filters WHERE activity_search_id = 1982;
SELECT * FROM activities WHERE uuid_to_bin('e916569b-086c-4bd1-94d7-5e3802c27ccf') = uuid;
SELECT * FROM groups WHERE id = 1439;
SELECT * FROM users WHERE group_id = 1439;
select * from permissions; # 158
select * from roles;
select * from permission_role;
select * from teams where id = 1;
select * from groups g JOIN playbooks p on g.playbook_id = p.id where g.team_id = 1;
select * from groups where id = 28;
select * from playbooks where team_id = 1;
select * from playbooks where id = 179;
select * from playbook_categories where id = 1391;
select * from users where id = 143;
select * from crm_profiles where user_id = 143;
select * from activities where crm_configuration_id = 39 and type = 'conference'
and crm_provider_id IS NOT NULL ORDER by id desc;
select * from activities where id = 422003; # 00UO400000pB6fpMAC
SELECT ar.id, ar.uuid, ar.media_type, ar.status, a.type
FROM automated_report_results ar
JOIN automated_reports a ON a.id = ar.report_id
WHERE a.type = 'ask_jiminny'
LIMIT 10;
SELECT * FROM automated_reports where id = 71;
SELECT * FROM automated_report_results where report_id = 71;
UPDATE automated_reports set playbook_categories = NULL where id = 68;
SELECT * FROM automated_report_results where id = 275;
SELECT * FROM automated_reports order by id desc;
SELECT * FROM automated_report_results order by id desc;
select * from activity_searches where user_id = 143;
select * from ask_anything_prompts;
SELECT `automated_report_results`.* FROM `automated_report_results`
INNER JOIN `automated_reports`
ON `automated_report_results`.`report_id` = `automated_reports`.`id`
WHERE 1=1
AND `automated_report_results`.`generated_at` IS NOT NULL
# AND `automated_report_results`.`sent_at` IS NOT NULL
AND `automated_reports`.`team_id` = 1
AND JSON_CONTAINS(`automated_reports`.`recipients`, 143, '$."users"')
;
SELECT * FROM automated_reports where id = 67;
SELECT * FROM automated_reports where id = 42;
SELECT * FROM users WHERE id = 143; # group 28
select * from teams where id = 3143;
select * from crm_configurations where id = 500;
select * from users where name = 'Integration Account'; # 1695
SELECT * FROM social_accounts WHERE sociable_id = 1695;
select * from activities where crm_configuration_id = 39
and recording_state = 'recorded' and duration > 60
and status = 'completed' and actual_start_time >= '2025-12-01';
SELECT * FROM activities WHERE uuid_to_bin('458cf915-b914-4000-b083-5687b32b2956') = uuid;
select * from leads;
SELECT * FROM activities WHERE uuid_to_bin('f43cf158-e60d-46e5-92f8-c4e0594a3219') = uuid; # 422003
SELECT * FROM activities WHERE id IN (16,422003);
SELECT * FROM activities where status = 'failed';
SELECT * FROM tracks WHERE activity_id = 422003;
SELECT
a.*
FROM activities a
JOIN users u ON a.user_id = u.id
WHERE
a.status = 'completed'
AND uuid_to_bin('641f1acb-16b8-42d1-8726-df52979dad0e') = u.uuid
AND a.deleted_at IS NULL
AND EXISTS (
SELECT 1 FROM tracks t
WHERE t.activity_id = a.id
AND t.type IN ('audio', 'video')
)
ORDER BY a.actual_start_time DESC
LIMIT 25;
select * from teams where id = 19;
select * from crm_configurations where provider = 'pipedrive';
SELECT
CONCAT(u.id, CASE WHEN u.id = t.owner_id THEN ' (owner)' ELSE '' END) AS user_id,
u.email,
sa.*,
t.owner_id FROM social_accounts sa
JOIN users u on u.id = sa.sociable_id
JOIN teams t on t.id = u.team_id
WHERE u.team_id = 19 and sa.provider = 'pipedrive';
SELECT * FROM social_accounts WHERE id = 1116;
UPDATE social_accounts SET provider_user_token = 'v1u:AQIBAHj-LzTNK2yuuuaLqifzhWb9crUNKTpk4FlQ9rjnXqp_6AEQhDhDQVa1nvWCHEvnpvSEAAAAfjB8BgkqhkiG9w0BBwagbzBtAgEAMGgGCSqGSIb3DQEHATAeBglghkgBZQMEAS4wEQQMnG8KNcZLIjEnlRPxAgEQgDsGPIcKjsMU7Qel36BtM5FCQa56mYUy24_AAoqd12yjVFkq6egLqS0inp-5G4JE7frJURMV8VTw_fY14g:rYyABXmXsBhEdYU_dfmDH8GF-vzSseJXE5bds_zAyVdAwlTXOPdTl9i4PS4jVofLvpq7IRgvEt2BzGhR6cWiQXHHD0AtayQOkZm262ClFCsMYtKGfep0Jq1n0eiRIVqT9gAY7rWvhpEDF8oAlgnRGmqx-euIkpzE79sPXh4OjNx_yUIaanjyplGpBBJ_NiACd1sMlZmseyUyyU_gldqlCBAuK9hhATc9icgg7zuoc7nKBBrlg49tRtzEagDh6xbFBpzfCp7kE_7n4TLWfWHLPMzu-bktjwA969G9sFRmoH1GjPA0a2odDT4dk1_1ouBrB1NcTT2hQUqH-_RzDW2nWmeoVHA',
provider_refresh_token = '5034113:[TELEGRAM_TOKEN]b2bfc',
expires = 1779091997,
state = 'connected'
WHERE id = 1116;
"provider_user_token": "v1u:AQIBAHj-LzTNK2yuuuaLqifzhWb9crUNKTpk4FlQ9rjnXqp_6AEQhDhDQVa1nvWCHEvnpvSEAAAAfjB8BgkqhkiG9w0BBwagbzBtAgEAMGgGCSqGSIb3DQEHATAeBglghkgBZQMEAS4wEQQMnG8KNcZLIjEnlRPxAgEQgDsGPIcKjsMU7Qel36BtM5FCQa56mYUy24_AAoqd12yjVFkq6egLqS0inp-5G4JE7frJURMV8VTw_fY14g:rYyABXmXsBhEdYU_dfmDH8GF-vzSseJXE5bds_zAyVdAwlTXOPdTl9i4PS4jVofLvpq7IRgvEt2BzGhR6cWiQXHHD0AtayQOkZm262ClFCsMYtKGfep0Jq1n0eiRIVqT9gAY7rWvhpEDF8oAlgnRGmqx-euIkpzE79sPXh4OjNx_yUIaanjyplGpBBJ_NiACd1sMlZmseyUyyU_gldqlCBAuK9hhATc9icgg7zuoc7nKBBrlg49tRtzEagDh6xbFBpzfCp7kE_7n4TLWfWHLPMzu-bktjwA969G9sFRmoH1GjPA0a2odDT4dk1_1ouBrB1NcTT2hQUqH-_RzDW2nWmeoVHA",
"provider_refresh_token": "5034113:[TELEGRAM_TOKEN]b2bfc",
"expires": 1779091997,
Socket fail to connect to host:address=(host=localhost)(port=3306)(type=primary). Connection refused
Project
Project...
|
[{"role":"AXButton","text" [{"role":"AXButton","text":"Project: faVsco.js, menu","depth":5,"on_screen":true,"help_text":"~/jiminny/app","role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"JY-20676-delete-report-related-objects, menu","depth":5,"on_screen":true,"help_text":"Git Branch: JY-20676-delete-report-related-objects<br/>Some incoming commits are not fetched<br/>","role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Start Listening for PHP Debug Connections","depth":5,"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"AskAnythingPromptServiceTest","depth":6,"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Run 'AskAnythingPromptServiceTest'","depth":6,"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Debug 'AskAnythingPromptServiceTest'","depth":6,"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"More Actions","depth":6,"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"JetBrains AI","depth":5,"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Search Everywhere","depth":5,"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"IDE and Project Settings","depth":5,"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Sync Changes","depth":4,"bounds":{"left":0.0,"top":0.0,"width":0.018055556,"height":0.026666667},"on_screen":false,"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Hide This Notification","depth":4,"bounds":{"left":0.0,"top":0.0,"width":0.018055556,"height":0.026666667},"on_screen":false,"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Code changed:","depth":4,"bounds":{"left":0.0,"top":0.0,"width":0.088194445,"height":0.027777778},"on_screen":false,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Hide","depth":4,"bounds":{"left":0.0,"top":0.0,"width":0.018055556,"height":0.026666667},"on_screen":false,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"12","depth":4,"bounds":{"left":0.0,"top":0.0,"width":0.02013889,"height":0.02111111},"on_screen":false,"role_description":"text"},{"role":"AXButton","text":"Previous Highlighted Error","depth":4,"bounds":{"left":0.0,"top":0.0,"width":0.015277778,"height":0.025555555},"on_screen":false,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Next Highlighted Error","depth":4,"bounds":{"left":0.0,"top":0.0,"width":0.014583333,"height":0.025555555},"on_screen":false,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXTextArea","text":"<?php\n\ndeclare(strict_types=1);\n\nnamespace Jiminny\\Repositories;\n\nuse Illuminate\\Database\\Eloquent\\Builder;\nuse Illuminate\\Support\\Collection;\nuse Jiminny\\Models\\AskAnything\\AskAnythingPrompt;\nuse Jiminny\\Models\\AskAnything\\AskAnythingPromptTarget;\nuse Jiminny\\Models\\AskAnything\\UserAskAnythingPrompt;\nuse Jiminny\\Models\\Group;\nuse Jiminny\\Models\\User;\n\nclass AskAnythingRepository\n{\n /**\n * @return Collection<UserAskAnythingPrompt>\n */\n public function findSharedUsersAndGroupsByPromptId(int $promptId): Collection\n {\n return UserAskAnythingPrompt::query()\n ->where('prompt_id', $promptId)\n ->where('is_removed', false)\n ->get();\n }\n\n public function findSharedPromptByUser(int $promptId, User $user): ?UserAskAnythingPrompt\n {\n return UserAskAnythingPrompt::with('prompt')\n ->where('prompt_id', $promptId)\n ->where('user_id', $user->getId())\n ->first();\n }\n\n public function findSharedPromptByUserGroup(int $promptId, User $user): ?UserAskAnythingPrompt\n {\n $userGroupId = $user->getGroupId();\n\n return UserAskAnythingPrompt::with('prompt')\n ->where('prompt_id', $promptId)\n ->where(static function ($query) use ($userGroupId): void {\n if ($userGroupId !== null) {\n $query->where('group_id', $userGroupId);\n }\n })\n ->first();\n }\n\n /**\n * @return Collection<AskAnythingPrompt>\n */\n public function findPromptsByUserAndTarget(User $user, AskAnythingPromptTarget $target): Collection\n {\n $userGroupId = $user->getGroupId();\n $usersOwnedPrompts = UserAskAnythingPrompt::with('prompt')\n ->where(static function ($query) use ($user, $userGroupId): void {\n $query\n ->where('user_id', $user->getId());\n\n if ($userGroupId !== null) {\n $query->orWhere('group_id', $userGroupId);\n }\n })\n ->where('is_removed', false)\n ->whereHas('prompt', function (Builder $query) use ($target) {\n $query->where('target', $target);\n })\n ->orderByRaw('ISNULL(`order`), `order` ASC, `prompt_id` ASC')\n ->get()\n ->map(function (UserAskAnythingPrompt $userPrompt) {\n return $userPrompt->getPrompt();\n });\n\n // Remove those prompts that are hidden for the current user\n $usersOwnedPromptsFiltered = $usersOwnedPrompts->filter(function (AskAnythingPrompt $userPrompt) use ($user) {\n $promptId = $userPrompt->getId();\n $userDisabledPrompt = UserAskAnythingPrompt::query()\n ->where('prompt_id', $promptId)\n ->where('is_removed', true)\n ->where('user_id', $user->getId())\n ->first();\n\n return $userDisabledPrompt === null;\n });\n\n $defaultNonChangedPrompts = AskAnythingPrompt::where('target', $target)\n ->whereDoesntHave('userPrompts', function ($query) use ($user) {\n $query->where('user_id', $user->getId());\n })\n ->whereNull('owner_id')\n ->get();\n\n $allPrompts = $defaultNonChangedPrompts->merge($usersOwnedPromptsFiltered);\n\n if ($allPrompts->isNotEmpty()) {\n $allPrompts->loadCount('automatedReports');\n }\n\n return $allPrompts;\n }\n\n /**\n * @param array<User> $shareUsers\n * @param array<Group> $shareGroups\n */\n public function createPrompt(\n User $user,\n AskAnythingPromptTarget $target,\n string $title,\n string $content,\n array $shareUsers,\n array $shareGroups,\n ): AskAnythingPrompt {\n $prompt = AskAnythingPrompt::create([\n 'title' => $title,\n 'content' => $content,\n 'target' => $target,\n 'owner_id' => $user->getId(),\n ]);\n\n UserAskAnythingPrompt::create([\n 'user_id' => $user->getId(),\n 'prompt_id' => $prompt->getId(),\n ]);\n\n foreach ($shareUsers as $shareUser) {\n UserAskAnythingPrompt::create([\n 'user_id' => $shareUser->getId(),\n 'prompt_id' => $prompt->getId(),\n ]);\n }\n\n foreach ($shareGroups as $shareGroup) {\n UserAskAnythingPrompt::create([\n 'group_id' => $shareGroup->getId(),\n 'prompt_id' => $prompt->getId(),\n ]);\n }\n\n return $prompt;\n }\n\n /**\n * @param array<User> $shareUsers\n * @param array<Group> $shareGroups\n */\n public function editPrompt(\n AskAnythingPrompt $prompt,\n string $title,\n string $content,\n array $shareUsers,\n array $shareGroups,\n ): AskAnythingPrompt {\n $prompt->update([\n 'title' => $title,\n 'content' => $content,\n ]);\n\n $previousUserPrompts = UserAskAnythingPrompt::query()\n ->where('prompt_id', $prompt->getId())\n ->whereNull('group_id')\n ->whereNotNull('user_id')\n ->whereNot('user_id', $prompt->getOwnerId())\n ->get();\n\n $previousGroupPrompts = UserAskAnythingPrompt::query()\n ->where('prompt_id', $prompt->getId())\n ->whereNotNull('group_id')\n ->whereNull('user_id')\n ->get();\n\n $shareUserPrompts = [];\n foreach ($shareUsers as $shareUser) {\n $shareUserPrompts[] = UserAskAnythingPrompt::create([\n 'user_id' => $shareUser->getId(),\n 'prompt_id' => $prompt->getId(),\n ]);\n }\n\n $shareGroupPrompts = [];\n foreach ($shareGroups as $shareGroup) {\n $shareGroupPrompts[] = UserAskAnythingPrompt::create([\n 'group_id' => $shareGroup->getId(),\n 'prompt_id' => $prompt->getId(),\n ]);\n }\n\n // Remove those users that are no longer added\n $diffUsers = $previousUserPrompts->diff($shareUserPrompts);\n foreach ($diffUsers as $previousUserPrompt) {\n $previousUserPrompt->delete();\n }\n\n // Remove those groups that are no longer added\n $diffGroups = $previousGroupPrompts->diff($shareGroupPrompts);\n foreach ($diffGroups as $previousGroupPrompt) {\n $previousGroupPrompt->delete();\n }\n\n return $prompt;\n }\n\n public function deletePrompt(AskAnythingPrompt $prompt): void\n {\n // Also deletes all associations with users\n $prompt->delete();\n }\n\n public function hidePromptForUser(AskAnythingPrompt $prompt, User $user): AskAnythingPrompt\n {\n $userPromptSettings = UserAskAnythingPrompt::where('user_id', $user->getId())\n ->where('prompt_id', $prompt->getId())\n ->first();\n\n if ($userPromptSettings === null) {\n $userPromptSettings = UserAskAnythingPrompt::create([\n 'user_id' => $user->getId(),\n 'prompt_id' => $prompt->getId(),\n ]);\n }\n\n $userPromptSettings->update([\n 'is_removed' => true,\n ]);\n\n return $prompt;\n }\n\n public function getPromptByUuid(string $uuid): ?AskAnythingPrompt\n {\n return AskAnythingPrompt::where('uuid', AskAnythingPrompt::toOptimized($uuid))->first();\n }\n\n public function orderPromptForUser(AskAnythingPrompt $prompt, User $user, int $order): void\n {\n $userPromptSettings = UserAskAnythingPrompt::where('user_id', $user->getId())\n ->where('prompt_id', $prompt->getId())\n ->first();\n\n if ($userPromptSettings === null) {\n $userPromptSettings = UserAskAnythingPrompt::create([\n 'user_id' => $user->getId(),\n 'prompt_id' => $prompt->getId(),\n ]);\n }\n\n $userPromptSettings->update([\n 'order' => $order,\n ]);\n }\n}","depth":4,"on_screen":true,"value":"<?php\n\ndeclare(strict_types=1);\n\nnamespace Jiminny\\Repositories;\n\nuse Illuminate\\Database\\Eloquent\\Builder;\nuse Illuminate\\Support\\Collection;\nuse Jiminny\\Models\\AskAnything\\AskAnythingPrompt;\nuse Jiminny\\Models\\AskAnything\\AskAnythingPromptTarget;\nuse Jiminny\\Models\\AskAnything\\UserAskAnythingPrompt;\nuse Jiminny\\Models\\Group;\nuse Jiminny\\Models\\User;\n\nclass AskAnythingRepository\n{\n /**\n * @return Collection<UserAskAnythingPrompt>\n */\n public function findSharedUsersAndGroupsByPromptId(int $promptId): Collection\n {\n return UserAskAnythingPrompt::query()\n ->where('prompt_id', $promptId)\n ->where('is_removed', false)\n ->get();\n }\n\n public function findSharedPromptByUser(int $promptId, User $user): ?UserAskAnythingPrompt\n {\n return UserAskAnythingPrompt::with('prompt')\n ->where('prompt_id', $promptId)\n ->where('user_id', $user->getId())\n ->first();\n }\n\n public function findSharedPromptByUserGroup(int $promptId, User $user): ?UserAskAnythingPrompt\n {\n $userGroupId = $user->getGroupId();\n\n return UserAskAnythingPrompt::with('prompt')\n ->where('prompt_id', $promptId)\n ->where(static function ($query) use ($userGroupId): void {\n if ($userGroupId !== null) {\n $query->where('group_id', $userGroupId);\n }\n })\n ->first();\n }\n\n /**\n * @return Collection<AskAnythingPrompt>\n */\n public function findPromptsByUserAndTarget(User $user, AskAnythingPromptTarget $target): Collection\n {\n $userGroupId = $user->getGroupId();\n $usersOwnedPrompts = UserAskAnythingPrompt::with('prompt')\n ->where(static function ($query) use ($user, $userGroupId): void {\n $query\n ->where('user_id', $user->getId());\n\n if ($userGroupId !== null) {\n $query->orWhere('group_id', $userGroupId);\n }\n })\n ->where('is_removed', false)\n ->whereHas('prompt', function (Builder $query) use ($target) {\n $query->where('target', $target);\n })\n ->orderByRaw('ISNULL(`order`), `order` ASC, `prompt_id` ASC')\n ->get()\n ->map(function (UserAskAnythingPrompt $userPrompt) {\n return $userPrompt->getPrompt();\n });\n\n // Remove those prompts that are hidden for the current user\n $usersOwnedPromptsFiltered = $usersOwnedPrompts->filter(function (AskAnythingPrompt $userPrompt) use ($user) {\n $promptId = $userPrompt->getId();\n $userDisabledPrompt = UserAskAnythingPrompt::query()\n ->where('prompt_id', $promptId)\n ->where('is_removed', true)\n ->where('user_id', $user->getId())\n ->first();\n\n return $userDisabledPrompt === null;\n });\n\n $defaultNonChangedPrompts = AskAnythingPrompt::where('target', $target)\n ->whereDoesntHave('userPrompts', function ($query) use ($user) {\n $query->where('user_id', $user->getId());\n })\n ->whereNull('owner_id')\n ->get();\n\n $allPrompts = $defaultNonChangedPrompts->merge($usersOwnedPromptsFiltered);\n\n if ($allPrompts->isNotEmpty()) {\n $allPrompts->loadCount('automatedReports');\n }\n\n return $allPrompts;\n }\n\n /**\n * @param array<User> $shareUsers\n * @param array<Group> $shareGroups\n */\n public function createPrompt(\n User $user,\n AskAnythingPromptTarget $target,\n string $title,\n string $content,\n array $shareUsers,\n array $shareGroups,\n ): AskAnythingPrompt {\n $prompt = AskAnythingPrompt::create([\n 'title' => $title,\n 'content' => $content,\n 'target' => $target,\n 'owner_id' => $user->getId(),\n ]);\n\n UserAskAnythingPrompt::create([\n 'user_id' => $user->getId(),\n 'prompt_id' => $prompt->getId(),\n ]);\n\n foreach ($shareUsers as $shareUser) {\n UserAskAnythingPrompt::create([\n 'user_id' => $shareUser->getId(),\n 'prompt_id' => $prompt->getId(),\n ]);\n }\n\n foreach ($shareGroups as $shareGroup) {\n UserAskAnythingPrompt::create([\n 'group_id' => $shareGroup->getId(),\n 'prompt_id' => $prompt->getId(),\n ]);\n }\n\n return $prompt;\n }\n\n /**\n * @param array<User> $shareUsers\n * @param array<Group> $shareGroups\n */\n public function editPrompt(\n AskAnythingPrompt $prompt,\n string $title,\n string $content,\n array $shareUsers,\n array $shareGroups,\n ): AskAnythingPrompt {\n $prompt->update([\n 'title' => $title,\n 'content' => $content,\n ]);\n\n $previousUserPrompts = UserAskAnythingPrompt::query()\n ->where('prompt_id', $prompt->getId())\n ->whereNull('group_id')\n ->whereNotNull('user_id')\n ->whereNot('user_id', $prompt->getOwnerId())\n ->get();\n\n $previousGroupPrompts = UserAskAnythingPrompt::query()\n ->where('prompt_id', $prompt->getId())\n ->whereNotNull('group_id')\n ->whereNull('user_id')\n ->get();\n\n $shareUserPrompts = [];\n foreach ($shareUsers as $shareUser) {\n $shareUserPrompts[] = UserAskAnythingPrompt::create([\n 'user_id' => $shareUser->getId(),\n 'prompt_id' => $prompt->getId(),\n ]);\n }\n\n $shareGroupPrompts = [];\n foreach ($shareGroups as $shareGroup) {\n $shareGroupPrompts[] = UserAskAnythingPrompt::create([\n 'group_id' => $shareGroup->getId(),\n 'prompt_id' => $prompt->getId(),\n ]);\n }\n\n // Remove those users that are no longer added\n $diffUsers = $previousUserPrompts->diff($shareUserPrompts);\n foreach ($diffUsers as $previousUserPrompt) {\n $previousUserPrompt->delete();\n }\n\n // Remove those groups that are no longer added\n $diffGroups = $previousGroupPrompts->diff($shareGroupPrompts);\n foreach ($diffGroups as $previousGroupPrompt) {\n $previousGroupPrompt->delete();\n }\n\n return $prompt;\n }\n\n public function deletePrompt(AskAnythingPrompt $prompt): void\n {\n // Also deletes all associations with users\n $prompt->delete();\n }\n\n public function hidePromptForUser(AskAnythingPrompt $prompt, User $user): AskAnythingPrompt\n {\n $userPromptSettings = UserAskAnythingPrompt::where('user_id', $user->getId())\n ->where('prompt_id', $prompt->getId())\n ->first();\n\n if ($userPromptSettings === null) {\n $userPromptSettings = UserAskAnythingPrompt::create([\n 'user_id' => $user->getId(),\n 'prompt_id' => $prompt->getId(),\n ]);\n }\n\n $userPromptSettings->update([\n 'is_removed' => true,\n ]);\n\n return $prompt;\n }\n\n public function getPromptByUuid(string $uuid): ?AskAnythingPrompt\n {\n return AskAnythingPrompt::where('uuid', AskAnythingPrompt::toOptimized($uuid))->first();\n }\n\n public function orderPromptForUser(AskAnythingPrompt $prompt, User $user, int $order): void\n {\n $userPromptSettings = UserAskAnythingPrompt::where('user_id', $user->getId())\n ->where('prompt_id', $prompt->getId())\n ->first();\n\n if ($userPromptSettings === null) {\n $userPromptSettings = UserAskAnythingPrompt::create([\n 'user_id' => $user->getId(),\n 'prompt_id' => $prompt->getId(),\n ]);\n }\n\n $userPromptSettings->update([\n 'order' => $order,\n ]);\n }\n}","role_description":"text entry area","is_enabled":true,"is_focused":true,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Execute","depth":4,"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Explain Plan","depth":4,"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Browse Query History","depth":4,"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"View Parameters","depth":4,"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Open Query Execution Settings…","depth":4,"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"In-Editor Results","depth":4,"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Tx: Auto","depth":4,"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Cancel Running Statements","depth":4,"on_screen":true,"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Playground","depth":4,"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"jiminny","depth":4,"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Code changed:","depth":4,"bounds":{"left":0.0,"top":0.0,"width":0.088194445,"height":0.027777778},"on_screen":false,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Hide","depth":4,"bounds":{"left":0.0,"top":0.0,"width":0.018055556,"height":0.026666667},"on_screen":false,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Sync Changes","depth":4,"bounds":{"left":0.0,"top":0.0,"width":0.018055556,"height":0.026666667},"on_screen":false,"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Hide This Notification","depth":4,"bounds":{"left":0.0,"top":0.0,"width":0.018055556,"height":0.026666667},"on_screen":false,"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"21","depth":4,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"1","depth":4,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"18","depth":4,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"2","depth":4,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"6","depth":4,"on_screen":true,"role_description":"text"},{"role":"AXButton","text":"Previous Highlighted Error","depth":4,"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Next Highlighted Error","depth":4,"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXTextArea","text":"SELECT a.id, a.uuid, a.actual_start_time, o.id, o.uuid FROM opportunities o\nJOIN activities a ON o.id = a.opportunity_id\nWHERE a.crm_configuration_id = 39\nAND a.actual_start_time > '2025-10-13'\nAND a.type IN ('conference', 'softphone-inbound', 'softphone-outbound')\n;\n\nSELECT * FROM activities\nWHERE crm_configuration_id = 39 and user_id = 143\nand actual_start_time >= '2025-10-13'\nAND type IN ('conference', 'softphone-inbound', 'softphone-outbound')\n;\n\nSELECT * FROM opportunities WHERE account_id IN (178);\nselect * from activities where id IN (620137, 620187, 620188, 620189, 620230);\n\n# HS\nSELECT * FROM opportunities WHERE id IN (238);\nselect * from activities where id IN (477,2076);\n\nselect * from users;\n\nSELECT COUNT(*) FROM users;\nSELECT COUNT(*) FROM activities;\nSELECT COUNT(*) FROM opportunities;\n\nUPDATE activities\nSET\n actual_start_time = '2025-12-19 09:00:00',\n actual_end_time = '2025-12-19 10:30:00',\n scheduled_start_time = '2025-12-19 09:00:00',\n scheduled_end_time = '2025-12-19 10:30:00'\nWHERE id IN (407509,407375);\n\nselect * from partners;\n\nSELECT id, uuid, type, actual_start_time, user_id, crm_configuration_id\nFROM activities\nWHERE user_id = 143\nAND actual_start_time >= '2025-10-13 00:00:00'\nAND actual_start_time <= '2026-01-13 23:59:59'\nORDER BY actual_start_time DESC;\n\nSELECT * FROM activities WHERE uuid_to_bin('78eda160-3086-435f-88a5-bb0c71b6008d') = uuid;\nSELECT * FROM crm_layouts where crm_configuration_id = 39;\nSELECT * FROM crm_layout_entities WHERE crm_layout_id = 282;\n# lead_id\n# account_id 177\n# contact_id 3969\n# opportunity_id\n# stage_id 203\n\nSELECT * FROM opportunities WHERE opportunities.crm_configuration_id = id = 282;\n\nSELECT * FROM activities where crm_configuration_id = 39 AND type = 'conference'\nAND user_id = 143 and actual_start_time >= '2025-10-13';\n\nSELECT * FROM activities a\n# JOIN opportunities o ON a.opportunity_id = o.id\nWHERE a.crm_configuration_id = 39 AND a.type = 'conference'\nand status = 'completed' and recording_state = 'recorded'\nand a.actual_start_time >= '2025-10-13'\nAND a.user_id = 143\n;\n\nselect * from leads\nwhere crm_configuration_id = 39; # 112 -> ac. 178, 109 => op. 1707\n\nSELECT * FROM activities WHERE id IN (356013,616188,616202,616310,407509,407375,356001,356008);\nSELECT * FROM activities WHERE id IN (356013,616188,616202,616310);\nSELECT * FROM activities WHERE id IN (407509,407375); # leads: 112, 109 | status - 198\nSELECT * FROM activities WHERE id IN (356001, 356008); # contacts:\n\nSELECT * FROM opportunities WHERE id IN (1707);\nSELECT * FROM stages where id IN (204, 198);\nSELECT * FROM opportunities WHERE account_id IN (178);\nSELECT * FROM opportunities WHERE crm_configuration_id = 39 AND created_at > '2025-01-01';\nSELECT * FROM contacts WHERE account_id IN (178); # 4118 Musaibe, 4448 Ceco Personal\n\nSELECT * FROM activities where crm_configuration_id = 39\nAND opportunity_id IS NULL\nAND is_internal = false\nand status = 'completed' and recording_state = 'recorded'\nAND actual_start_time >= '2025-10-13'\nAND (lead_id IS NOT NULL OR contact_id IS NOT NULL OR account_id IS NOT NULL)\n# AND lead_id IN (112, 109)\n;\n\nSELECT * FROM crm_profiles WHERE user_id = 143;\n\nselect * from inboxes; # 212\nselect * from users where id = 143; # 143\nselect * from inbox_email_batches where inbox_id = 212\nand updated_at >= '2026-01-28 00:00:00' order by id desc;\nselect * from inbox_emails where inbox_id = 212\nand batch_id = 95885 order by id desc;\nselect * from email_messages where origin_user_id = 143;\nselect * from activities where user_id = 143 and updated_at >= '2026-01-28 00:00:00';\nselect * from participants where activity_id = 620247;\n\nselect * from crm_profiles where user_id = 143;\n\nSELECT * FROM activities WHERE uuid_to_bin('458cf915-b914-4000-b083-5687b32b2956') = uuid; # 356001\nselect * from transcription where activity_id = 356001; # 6943\nselect * from ai_prompts where transcription_id = 6943;\nSELECT * FROM activity_summary_logs where activity_id = 356001;\n\nSELECT * FROM social_accounts WHERE sociable_id = 143;\n\n# ************************************************************************************\nSELECT * FROM activities WHERE uuid_to_bin('0164a4fb-cb95-454e-9edd-4d804e4999bd') = uuid;\n# 422515 softphone tr. 8100\n\nSELECT * FROM activities WHERE uuid_to_bin('7520add8-8d87-41a5-98e5-fc4edf96f21e') = uuid;\n# 407509 conference tr. 7670 crmId: 00UD1000002J9aTMAS\n\nselect * from ai_prompts where transcription_id IN (8100, 7670);\nselect * from activity_summary_logs where activity_id = 407509;\n\nselect * from sidekick_settings;\nselect * from default_activity_types;\n\nSELECT * FROM contacts WHERE crm_configuration_id = 39 and email = 'm.kogoj@gmx.at';\nSELECT * FROM leads WHERE crm_configuration_id = 39 and email = 'm.kogoj@gmx.at';\n\nSELECT * FROM activity_searches where user_id = 143;\nSELECT * FROM groups where team_id = 1;\n\nselect * from teams where id = 1;\nselect * from groups where team_id = 1; # 1150 - 7e75f8025c22\nselect id, name, group_id, status, deleted_at, email\nfrom users where team_id = 1 order by group_id desc ;\n\nselect * from activity_searches where id in (1977, 1978, 1979);\nselect * from activity_search_filters where activity_search_id IN (1977, 1978, 1979);\nselect * from activity_search_filters where filter = 'group_id' and value = '443f26b8-8512-437e-a9f9-7e75f8025c22'; # 10268, 10272, 10277\nselect * from nudges where activity_search_id IN (1977, 1978, 1979); # 877, 878, 879\n\nINSERT INTO `activity_search_filters`\n(`activity_search_id`, `filter`, `value`) VALUES\n(1977, 'group_id', '443f26b8-8512-437e-a9f9-7e75f8025c22'),\n(1978, 'group_id', '443f26b8-8512-437e-a9f9-7e75f8025c22'),\n(1979, 'group_id', '443f26b8-8512-437e-a9f9-7e75f8025c22')\n;\n\nselect * from crm_configurations where id = 39;\n\n\nselect sa.* from users u JOIN social_accounts sa on u.id = sa.sociable_id\nwhere u.team_id = 1;\nSELECT * FROM social_accounts WHERE sociable_id = 1635;\nSELECT * FROM users WHERE id = 1635;\n\nselect * from teams where id = 1;\nselect * from users where team_id = 1;\nselect * from team_features where team_id = 1;\nselect * from features;\n\nSELECT * FROM activity_searches where id = 1982; # 1981\nSELECT * FROM activity_search_filters WHERE activity_search_id = 1982;\n\nSELECT * FROM activities WHERE uuid_to_bin('e916569b-086c-4bd1-94d7-5e3802c27ccf') = uuid;\nSELECT * FROM groups WHERE id = 1439;\nSELECT * FROM users WHERE group_id = 1439;\n\nselect * from permissions; # 158\nselect * from roles;\nselect * from permission_role;\n\nselect * from teams where id = 1;\nselect * from groups g JOIN playbooks p on g.playbook_id = p.id where g.team_id = 1;\nselect * from groups where id = 28;\nselect * from playbooks where team_id = 1;\nselect * from playbooks where id = 179;\nselect * from playbook_categories where id = 1391;\nselect * from users where id = 143;\nselect * from crm_profiles where user_id = 143;\nselect * from activities where crm_configuration_id = 39 and type = 'conference'\nand crm_provider_id IS NOT NULL ORDER by id desc;\nselect * from activities where id = 422003; # 00UO400000pB6fpMAC\n\nSELECT ar.id, ar.uuid, ar.media_type, ar.status, a.type\nFROM automated_report_results ar\nJOIN automated_reports a ON a.id = ar.report_id\nWHERE a.type = 'ask_jiminny'\nLIMIT 10;\n\nSELECT * FROM automated_reports where id = 71;\nSELECT * FROM automated_report_results where report_id = 71;\nUPDATE automated_reports set playbook_categories = NULL where id = 68;\nSELECT * FROM automated_report_results where id = 275;\n\nSELECT * FROM automated_reports order by id desc;\nSELECT * FROM automated_report_results order by id desc;\nselect * from activity_searches where user_id = 143;\nselect * from ask_anything_prompts;\n\nSELECT `automated_report_results`.* FROM `automated_report_results`\nINNER JOIN `automated_reports`\n ON `automated_report_results`.`report_id` = `automated_reports`.`id`\nWHERE 1=1\n AND `automated_report_results`.`generated_at` IS NOT NULL\n# AND `automated_report_results`.`sent_at` IS NOT NULL\n AND `automated_reports`.`team_id` = 1\n AND JSON_CONTAINS(`automated_reports`.`recipients`, 143, '$.\"users\"')\n;\n\nSELECT * FROM automated_reports where id = 67;\nSELECT * FROM automated_reports where id = 42;\nSELECT * FROM users WHERE id = 143; # group 28\n\nselect * from teams where id = 3143;\nselect * from crm_configurations where id = 500;\nselect * from users where name = 'Integration Account'; # 1695\nSELECT * FROM social_accounts WHERE sociable_id = 1695;\n\nselect * from activities where crm_configuration_id = 39\nand recording_state = 'recorded' and duration > 60\nand status = 'completed' and actual_start_time >= '2025-12-01';\n\nSELECT * FROM activities WHERE uuid_to_bin('458cf915-b914-4000-b083-5687b32b2956') = uuid;\n\nselect * from leads;\n\nSELECT * FROM activities WHERE uuid_to_bin('f43cf158-e60d-46e5-92f8-c4e0594a3219') = uuid; # 422003\nSELECT * FROM activities WHERE id IN (16,422003);\nSELECT * FROM activities where status = 'failed';\n\nSELECT * FROM tracks WHERE activity_id = 422003;\n\nSELECT\n a.*\nFROM activities a\nJOIN users u ON a.user_id = u.id\nWHERE\n a.status = 'completed'\n AND uuid_to_bin('641f1acb-16b8-42d1-8726-df52979dad0e') = u.uuid\n AND a.deleted_at IS NULL\n AND EXISTS (\n SELECT 1 FROM tracks t\n WHERE t.activity_id = a.id\n AND t.type IN ('audio', 'video')\n )\nORDER BY a.actual_start_time DESC\nLIMIT 25;\n\nselect * from teams where id = 19;\nselect * from crm_configurations where provider = 'pipedrive';\nSELECT\n CONCAT(u.id, CASE WHEN u.id = t.owner_id THEN ' (owner)' ELSE '' END) AS user_id,\n u.email,\n sa.*,\n t.owner_id FROM social_accounts sa\nJOIN users u on u.id = sa.sociable_id\nJOIN teams t on t.id = u.team_id\nWHERE u.team_id = 19 and sa.provider = 'pipedrive';\n\nSELECT * FROM social_accounts WHERE id = 1116;\n\nUPDATE social_accounts SET provider_user_token = 'v1u:AQIBAHj-LzTNK2yuuuaLqifzhWb9crUNKTpk4FlQ9rjnXqp_6AEQhDhDQVa1nvWCHEvnpvSEAAAAfjB8BgkqhkiG9w0BBwagbzBtAgEAMGgGCSqGSIb3DQEHATAeBglghkgBZQMEAS4wEQQMnG8KNcZLIjEnlRPxAgEQgDsGPIcKjsMU7Qel36BtM5FCQa56mYUy24_AAoqd12yjVFkq6egLqS0inp-5G4JE7frJURMV8VTw_fY14g:rYyABXmXsBhEdYU_dfmDH8GF-vzSseJXE5bds_zAyVdAwlTXOPdTl9i4PS4jVofLvpq7IRgvEt2BzGhR6cWiQXHHD0AtayQOkZm262ClFCsMYtKGfep0Jq1n0eiRIVqT9gAY7rWvhpEDF8oAlgnRGmqx-euIkpzE79sPXh4OjNx_yUIaanjyplGpBBJ_NiACd1sMlZmseyUyyU_gldqlCBAuK9hhATc9icgg7zuoc7nKBBrlg49tRtzEagDh6xbFBpzfCp7kE_7n4TLWfWHLPMzu-bktjwA969G9sFRmoH1GjPA0a2odDT4dk1_1ouBrB1NcTT2hQUqH-_RzDW2nWmeoVHA',\nprovider_refresh_token = '5034113:19555731:87c14258f0c813d02767ee975f6044d46b6b2bfc',\nexpires = 1779091997,\nstate = 'connected'\nWHERE id = 1116;\n\n \"provider_user_token\": \"v1u:AQIBAHj-LzTNK2yuuuaLqifzhWb9crUNKTpk4FlQ9rjnXqp_6AEQhDhDQVa1nvWCHEvnpvSEAAAAfjB8BgkqhkiG9w0BBwagbzBtAgEAMGgGCSqGSIb3DQEHATAeBglghkgBZQMEAS4wEQQMnG8KNcZLIjEnlRPxAgEQgDsGPIcKjsMU7Qel36BtM5FCQa56mYUy24_AAoqd12yjVFkq6egLqS0inp-5G4JE7frJURMV8VTw_fY14g:rYyABXmXsBhEdYU_dfmDH8GF-vzSseJXE5bds_zAyVdAwlTXOPdTl9i4PS4jVofLvpq7IRgvEt2BzGhR6cWiQXHHD0AtayQOkZm262ClFCsMYtKGfep0Jq1n0eiRIVqT9gAY7rWvhpEDF8oAlgnRGmqx-euIkpzE79sPXh4OjNx_yUIaanjyplGpBBJ_NiACd1sMlZmseyUyyU_gldqlCBAuK9hhATc9icgg7zuoc7nKBBrlg49tRtzEagDh6xbFBpzfCp7kE_7n4TLWfWHLPMzu-bktjwA969G9sFRmoH1GjPA0a2odDT4dk1_1ouBrB1NcTT2hQUqH-_RzDW2nWmeoVHA\",\n \"provider_refresh_token\": \"5034113:19555731:87c14258f0c813d02767ee975f6044d46b6b2bfc\",\n \"expires\": 1779091997,","depth":4,"on_screen":true,"value":"SELECT a.id, a.uuid, a.actual_start_time, o.id, o.uuid FROM opportunities o\nJOIN activities a ON o.id = a.opportunity_id\nWHERE a.crm_configuration_id = 39\nAND a.actual_start_time > '2025-10-13'\nAND a.type IN ('conference', 'softphone-inbound', 'softphone-outbound')\n;\n\nSELECT * FROM activities\nWHERE crm_configuration_id = 39 and user_id = 143\nand actual_start_time >= '2025-10-13'\nAND type IN ('conference', 'softphone-inbound', 'softphone-outbound')\n;\n\nSELECT * FROM opportunities WHERE account_id IN (178);\nselect * from activities where id IN (620137, 620187, 620188, 620189, 620230);\n\n# HS\nSELECT * FROM opportunities WHERE id IN (238);\nselect * from activities where id IN (477,2076);\n\nselect * from users;\n\nSELECT COUNT(*) FROM users;\nSELECT COUNT(*) FROM activities;\nSELECT COUNT(*) FROM opportunities;\n\nUPDATE activities\nSET\n actual_start_time = '2025-12-19 09:00:00',\n actual_end_time = '2025-12-19 10:30:00',\n scheduled_start_time = '2025-12-19 09:00:00',\n scheduled_end_time = '2025-12-19 10:30:00'\nWHERE id IN (407509,407375);\n\nselect * from partners;\n\nSELECT id, uuid, type, actual_start_time, user_id, crm_configuration_id\nFROM activities\nWHERE user_id = 143\nAND actual_start_time >= '2025-10-13 00:00:00'\nAND actual_start_time <= '2026-01-13 23:59:59'\nORDER BY actual_start_time DESC;\n\nSELECT * FROM activities WHERE uuid_to_bin('78eda160-3086-435f-88a5-bb0c71b6008d') = uuid;\nSELECT * FROM crm_layouts where crm_configuration_id = 39;\nSELECT * FROM crm_layout_entities WHERE crm_layout_id = 282;\n# lead_id\n# account_id 177\n# contact_id 3969\n# opportunity_id\n# stage_id 203\n\nSELECT * FROM opportunities WHERE opportunities.crm_configuration_id = id = 282;\n\nSELECT * FROM activities where crm_configuration_id = 39 AND type = 'conference'\nAND user_id = 143 and actual_start_time >= '2025-10-13';\n\nSELECT * FROM activities a\n# JOIN opportunities o ON a.opportunity_id = o.id\nWHERE a.crm_configuration_id = 39 AND a.type = 'conference'\nand status = 'completed' and recording_state = 'recorded'\nand a.actual_start_time >= '2025-10-13'\nAND a.user_id = 143\n;\n\nselect * from leads\nwhere crm_configuration_id = 39; # 112 -> ac. 178, 109 => op. 1707\n\nSELECT * FROM activities WHERE id IN (356013,616188,616202,616310,407509,407375,356001,356008);\nSELECT * FROM activities WHERE id IN (356013,616188,616202,616310);\nSELECT * FROM activities WHERE id IN (407509,407375); # leads: 112, 109 | status - 198\nSELECT * FROM activities WHERE id IN (356001, 356008); # contacts:\n\nSELECT * FROM opportunities WHERE id IN (1707);\nSELECT * FROM stages where id IN (204, 198);\nSELECT * FROM opportunities WHERE account_id IN (178);\nSELECT * FROM opportunities WHERE crm_configuration_id = 39 AND created_at > '2025-01-01';\nSELECT * FROM contacts WHERE account_id IN (178); # 4118 Musaibe, 4448 Ceco Personal\n\nSELECT * FROM activities where crm_configuration_id = 39\nAND opportunity_id IS NULL\nAND is_internal = false\nand status = 'completed' and recording_state = 'recorded'\nAND actual_start_time >= '2025-10-13'\nAND (lead_id IS NOT NULL OR contact_id IS NOT NULL OR account_id IS NOT NULL)\n# AND lead_id IN (112, 109)\n;\n\nSELECT * FROM crm_profiles WHERE user_id = 143;\n\nselect * from inboxes; # 212\nselect * from users where id = 143; # 143\nselect * from inbox_email_batches where inbox_id = 212\nand updated_at >= '2026-01-28 00:00:00' order by id desc;\nselect * from inbox_emails where inbox_id = 212\nand batch_id = 95885 order by id desc;\nselect * from email_messages where origin_user_id = 143;\nselect * from activities where user_id = 143 and updated_at >= '2026-01-28 00:00:00';\nselect * from participants where activity_id = 620247;\n\nselect * from crm_profiles where user_id = 143;\n\nSELECT * FROM activities WHERE uuid_to_bin('458cf915-b914-4000-b083-5687b32b2956') = uuid; # 356001\nselect * from transcription where activity_id = 356001; # 6943\nselect * from ai_prompts where transcription_id = 6943;\nSELECT * FROM activity_summary_logs where activity_id = 356001;\n\nSELECT * FROM social_accounts WHERE sociable_id = 143;\n\n# ************************************************************************************\nSELECT * FROM activities WHERE uuid_to_bin('0164a4fb-cb95-454e-9edd-4d804e4999bd') = uuid;\n# 422515 softphone tr. 8100\n\nSELECT * FROM activities WHERE uuid_to_bin('7520add8-8d87-41a5-98e5-fc4edf96f21e') = uuid;\n# 407509 conference tr. 7670 crmId: 00UD1000002J9aTMAS\n\nselect * from ai_prompts where transcription_id IN (8100, 7670);\nselect * from activity_summary_logs where activity_id = 407509;\n\nselect * from sidekick_settings;\nselect * from default_activity_types;\n\nSELECT * FROM contacts WHERE crm_configuration_id = 39 and email = 'm.kogoj@gmx.at';\nSELECT * FROM leads WHERE crm_configuration_id = 39 and email = 'm.kogoj@gmx.at';\n\nSELECT * FROM activity_searches where user_id = 143;\nSELECT * FROM groups where team_id = 1;\n\nselect * from teams where id = 1;\nselect * from groups where team_id = 1; # 1150 - 7e75f8025c22\nselect id, name, group_id, status, deleted_at, email\nfrom users where team_id = 1 order by group_id desc ;\n\nselect * from activity_searches where id in (1977, 1978, 1979);\nselect * from activity_search_filters where activity_search_id IN (1977, 1978, 1979);\nselect * from activity_search_filters where filter = 'group_id' and value = '443f26b8-8512-437e-a9f9-7e75f8025c22'; # 10268, 10272, 10277\nselect * from nudges where activity_search_id IN (1977, 1978, 1979); # 877, 878, 879\n\nINSERT INTO `activity_search_filters`\n(`activity_search_id`, `filter`, `value`) VALUES\n(1977, 'group_id', '443f26b8-8512-437e-a9f9-7e75f8025c22'),\n(1978, 'group_id', '443f26b8-8512-437e-a9f9-7e75f8025c22'),\n(1979, 'group_id', '443f26b8-8512-437e-a9f9-7e75f8025c22')\n;\n\nselect * from crm_configurations where id = 39;\n\n\nselect sa.* from users u JOIN social_accounts sa on u.id = sa.sociable_id\nwhere u.team_id = 1;\nSELECT * FROM social_accounts WHERE sociable_id = 1635;\nSELECT * FROM users WHERE id = 1635;\n\nselect * from teams where id = 1;\nselect * from users where team_id = 1;\nselect * from team_features where team_id = 1;\nselect * from features;\n\nSELECT * FROM activity_searches where id = 1982; # 1981\nSELECT * FROM activity_search_filters WHERE activity_search_id = 1982;\n\nSELECT * FROM activities WHERE uuid_to_bin('e916569b-086c-4bd1-94d7-5e3802c27ccf') = uuid;\nSELECT * FROM groups WHERE id = 1439;\nSELECT * FROM users WHERE group_id = 1439;\n\nselect * from permissions; # 158\nselect * from roles;\nselect * from permission_role;\n\nselect * from teams where id = 1;\nselect * from groups g JOIN playbooks p on g.playbook_id = p.id where g.team_id = 1;\nselect * from groups where id = 28;\nselect * from playbooks where team_id = 1;\nselect * from playbooks where id = 179;\nselect * from playbook_categories where id = 1391;\nselect * from users where id = 143;\nselect * from crm_profiles where user_id = 143;\nselect * from activities where crm_configuration_id = 39 and type = 'conference'\nand crm_provider_id IS NOT NULL ORDER by id desc;\nselect * from activities where id = 422003; # 00UO400000pB6fpMAC\n\nSELECT ar.id, ar.uuid, ar.media_type, ar.status, a.type\nFROM automated_report_results ar\nJOIN automated_reports a ON a.id = ar.report_id\nWHERE a.type = 'ask_jiminny'\nLIMIT 10;\n\nSELECT * FROM automated_reports where id = 71;\nSELECT * FROM automated_report_results where report_id = 71;\nUPDATE automated_reports set playbook_categories = NULL where id = 68;\nSELECT * FROM automated_report_results where id = 275;\n\nSELECT * FROM automated_reports order by id desc;\nSELECT * FROM automated_report_results order by id desc;\nselect * from activity_searches where user_id = 143;\nselect * from ask_anything_prompts;\n\nSELECT `automated_report_results`.* FROM `automated_report_results`\nINNER JOIN `automated_reports`\n ON `automated_report_results`.`report_id` = `automated_reports`.`id`\nWHERE 1=1\n AND `automated_report_results`.`generated_at` IS NOT NULL\n# AND `automated_report_results`.`sent_at` IS NOT NULL\n AND `automated_reports`.`team_id` = 1\n AND JSON_CONTAINS(`automated_reports`.`recipients`, 143, '$.\"users\"')\n;\n\nSELECT * FROM automated_reports where id = 67;\nSELECT * FROM automated_reports where id = 42;\nSELECT * FROM users WHERE id = 143; # group 28\n\nselect * from teams where id = 3143;\nselect * from crm_configurations where id = 500;\nselect * from users where name = 'Integration Account'; # 1695\nSELECT * FROM social_accounts WHERE sociable_id = 1695;\n\nselect * from activities where crm_configuration_id = 39\nand recording_state = 'recorded' and duration > 60\nand status = 'completed' and actual_start_time >= '2025-12-01';\n\nSELECT * FROM activities WHERE uuid_to_bin('458cf915-b914-4000-b083-5687b32b2956') = uuid;\n\nselect * from leads;\n\nSELECT * FROM activities WHERE uuid_to_bin('f43cf158-e60d-46e5-92f8-c4e0594a3219') = uuid; # 422003\nSELECT * FROM activities WHERE id IN (16,422003);\nSELECT * FROM activities where status = 'failed';\n\nSELECT * FROM tracks WHERE activity_id = 422003;\n\nSELECT\n a.*\nFROM activities a\nJOIN users u ON a.user_id = u.id\nWHERE\n a.status = 'completed'\n AND uuid_to_bin('641f1acb-16b8-42d1-8726-df52979dad0e') = u.uuid\n AND a.deleted_at IS NULL\n AND EXISTS (\n SELECT 1 FROM tracks t\n WHERE t.activity_id = a.id\n AND t.type IN ('audio', 'video')\n )\nORDER BY a.actual_start_time DESC\nLIMIT 25;\n\nselect * from teams where id = 19;\nselect * from crm_configurations where provider = 'pipedrive';\nSELECT\n CONCAT(u.id, CASE WHEN u.id = t.owner_id THEN ' (owner)' ELSE '' END) AS user_id,\n u.email,\n sa.*,\n t.owner_id FROM social_accounts sa\nJOIN users u on u.id = sa.sociable_id\nJOIN teams t on t.id = u.team_id\nWHERE u.team_id = 19 and sa.provider = 'pipedrive';\n\nSELECT * FROM social_accounts WHERE id = 1116;\n\nUPDATE social_accounts SET provider_user_token = 'v1u:AQIBAHj-LzTNK2yuuuaLqifzhWb9crUNKTpk4FlQ9rjnXqp_6AEQhDhDQVa1nvWCHEvnpvSEAAAAfjB8BgkqhkiG9w0BBwagbzBtAgEAMGgGCSqGSIb3DQEHATAeBglghkgBZQMEAS4wEQQMnG8KNcZLIjEnlRPxAgEQgDsGPIcKjsMU7Qel36BtM5FCQa56mYUy24_AAoqd12yjVFkq6egLqS0inp-5G4JE7frJURMV8VTw_fY14g:rYyABXmXsBhEdYU_dfmDH8GF-vzSseJXE5bds_zAyVdAwlTXOPdTl9i4PS4jVofLvpq7IRgvEt2BzGhR6cWiQXHHD0AtayQOkZm262ClFCsMYtKGfep0Jq1n0eiRIVqT9gAY7rWvhpEDF8oAlgnRGmqx-euIkpzE79sPXh4OjNx_yUIaanjyplGpBBJ_NiACd1sMlZmseyUyyU_gldqlCBAuK9hhATc9icgg7zuoc7nKBBrlg49tRtzEagDh6xbFBpzfCp7kE_7n4TLWfWHLPMzu-bktjwA969G9sFRmoH1GjPA0a2odDT4dk1_1ouBrB1NcTT2hQUqH-_RzDW2nWmeoVHA',\nprovider_refresh_token = '5034113:19555731:87c14258f0c813d02767ee975f6044d46b6b2bfc',\nexpires = 1779091997,\nstate = 'connected'\nWHERE id = 1116;\n\n \"provider_user_token\": \"v1u:AQIBAHj-LzTNK2yuuuaLqifzhWb9crUNKTpk4FlQ9rjnXqp_6AEQhDhDQVa1nvWCHEvnpvSEAAAAfjB8BgkqhkiG9w0BBwagbzBtAgEAMGgGCSqGSIb3DQEHATAeBglghkgBZQMEAS4wEQQMnG8KNcZLIjEnlRPxAgEQgDsGPIcKjsMU7Qel36BtM5FCQa56mYUy24_AAoqd12yjVFkq6egLqS0inp-5G4JE7frJURMV8VTw_fY14g:rYyABXmXsBhEdYU_dfmDH8GF-vzSseJXE5bds_zAyVdAwlTXOPdTl9i4PS4jVofLvpq7IRgvEt2BzGhR6cWiQXHHD0AtayQOkZm262ClFCsMYtKGfep0Jq1n0eiRIVqT9gAY7rWvhpEDF8oAlgnRGmqx-euIkpzE79sPXh4OjNx_yUIaanjyplGpBBJ_NiACd1sMlZmseyUyyU_gldqlCBAuK9hhATc9icgg7zuoc7nKBBrlg49tRtzEagDh6xbFBpzfCp7kE_7n4TLWfWHLPMzu-bktjwA969G9sFRmoH1GjPA0a2odDT4dk1_1ouBrB1NcTT2hQUqH-_RzDW2nWmeoVHA\",\n \"provider_refresh_token\": \"5034113:19555731:87c14258f0c813d02767ee975f6044d46b6b2bfc\",\n \"expires\": 1779091997,","role_description":"text entry area","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXTextField","text":"Socket fail to connect to host:address=(host=localhost)(port=3306)(type=primary). Connection refused","depth":3,"bounds":{"left":0.3263889,"top":0.0,"width":0.6125,"height":0.018888889},"on_screen":true,"value":"Socket fail to connect to host:address=(host=localhost)(port=3306)(type=primary). Connection refused","role_description":"text field","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"Project","depth":3,"on_screen":false,"role_description":"text"},{"role":"AXButton","text":"Project","depth":3,"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false}]...
|
6055445667453558413
|
6902677987857438285
|
idle
|
accessibility
|
NULL
|
Project: faVsco.js, menu
JY-20676-delete-report-re Project: faVsco.js, menu
JY-20676-delete-report-related-objects, menu
Start Listening for PHP Debug Connections
AskAnythingPromptServiceTest
Run 'AskAnythingPromptServiceTest'
Debug 'AskAnythingPromptServiceTest'
More Actions
JetBrains AI
Search Everywhere
IDE and Project Settings
Sync Changes
Hide This Notification
Code changed:
Hide
12
Previous Highlighted Error
Next Highlighted Error
<?php
declare(strict_types=1);
namespace Jiminny\Repositories;
use Illuminate\Database\Eloquent\Builder;
use Illuminate\Support\Collection;
use Jiminny\Models\AskAnything\AskAnythingPrompt;
use Jiminny\Models\AskAnything\AskAnythingPromptTarget;
use Jiminny\Models\AskAnything\UserAskAnythingPrompt;
use Jiminny\Models\Group;
use Jiminny\Models\User;
class AskAnythingRepository
{
/**
* @return Collection<UserAskAnythingPrompt>
*/
public function findSharedUsersAndGroupsByPromptId(int $promptId): Collection
{
return UserAskAnythingPrompt::query()
->where('prompt_id', $promptId)
->where('is_removed', false)
->get();
}
public function findSharedPromptByUser(int $promptId, User $user): ?UserAskAnythingPrompt
{
return UserAskAnythingPrompt::with('prompt')
->where('prompt_id', $promptId)
->where('user_id', $user->getId())
->first();
}
public function findSharedPromptByUserGroup(int $promptId, User $user): ?UserAskAnythingPrompt
{
$userGroupId = $user->getGroupId();
return UserAskAnythingPrompt::with('prompt')
->where('prompt_id', $promptId)
->where(static function ($query) use ($userGroupId): void {
if ($userGroupId !== null) {
$query->where('group_id', $userGroupId);
}
})
->first();
}
/**
* @return Collection<AskAnythingPrompt>
*/
public function findPromptsByUserAndTarget(User $user, AskAnythingPromptTarget $target): Collection
{
$userGroupId = $user->getGroupId();
$usersOwnedPrompts = UserAskAnythingPrompt::with('prompt')
->where(static function ($query) use ($user, $userGroupId): void {
$query
->where('user_id', $user->getId());
if ($userGroupId !== null) {
$query->orWhere('group_id', $userGroupId);
}
})
->where('is_removed', false)
->whereHas('prompt', function (Builder $query) use ($target) {
$query->where('target', $target);
})
->orderByRaw('ISNULL(`order`), `order` ASC, `prompt_id` ASC')
->get()
->map(function (UserAskAnythingPrompt $userPrompt) {
return $userPrompt->getPrompt();
});
// Remove those prompts that are hidden for the current user
$usersOwnedPromptsFiltered = $usersOwnedPrompts->filter(function (AskAnythingPrompt $userPrompt) use ($user) {
$promptId = $userPrompt->getId();
$userDisabledPrompt = UserAskAnythingPrompt::query()
->where('prompt_id', $promptId)
->where('is_removed', true)
->where('user_id', $user->getId())
->first();
return $userDisabledPrompt === null;
});
$defaultNonChangedPrompts = AskAnythingPrompt::where('target', $target)
->whereDoesntHave('userPrompts', function ($query) use ($user) {
$query->where('user_id', $user->getId());
})
->whereNull('owner_id')
->get();
$allPrompts = $defaultNonChangedPrompts->merge($usersOwnedPromptsFiltered);
if ($allPrompts->isNotEmpty()) {
$allPrompts->loadCount('automatedReports');
}
return $allPrompts;
}
/**
* @param array<User> $shareUsers
* @param array<Group> $shareGroups
*/
public function createPrompt(
User $user,
AskAnythingPromptTarget $target,
string $title,
string $content,
array $shareUsers,
array $shareGroups,
): AskAnythingPrompt {
$prompt = AskAnythingPrompt::create([
'title' => $title,
'content' => $content,
'target' => $target,
'owner_id' => $user->getId(),
]);
UserAskAnythingPrompt::create([
'user_id' => $user->getId(),
'prompt_id' => $prompt->getId(),
]);
foreach ($shareUsers as $shareUser) {
UserAskAnythingPrompt::create([
'user_id' => $shareUser->getId(),
'prompt_id' => $prompt->getId(),
]);
}
foreach ($shareGroups as $shareGroup) {
UserAskAnythingPrompt::create([
'group_id' => $shareGroup->getId(),
'prompt_id' => $prompt->getId(),
]);
}
return $prompt;
}
/**
* @param array<User> $shareUsers
* @param array<Group> $shareGroups
*/
public function editPrompt(
AskAnythingPrompt $prompt,
string $title,
string $content,
array $shareUsers,
array $shareGroups,
): AskAnythingPrompt {
$prompt->update([
'title' => $title,
'content' => $content,
]);
$previousUserPrompts = UserAskAnythingPrompt::query()
->where('prompt_id', $prompt->getId())
->whereNull('group_id')
->whereNotNull('user_id')
->whereNot('user_id', $prompt->getOwnerId())
->get();
$previousGroupPrompts = UserAskAnythingPrompt::query()
->where('prompt_id', $prompt->getId())
->whereNotNull('group_id')
->whereNull('user_id')
->get();
$shareUserPrompts = [];
foreach ($shareUsers as $shareUser) {
$shareUserPrompts[] = UserAskAnythingPrompt::create([
'user_id' => $shareUser->getId(),
'prompt_id' => $prompt->getId(),
]);
}
$shareGroupPrompts = [];
foreach ($shareGroups as $shareGroup) {
$shareGroupPrompts[] = UserAskAnythingPrompt::create([
'group_id' => $shareGroup->getId(),
'prompt_id' => $prompt->getId(),
]);
}
// Remove those users that are no longer added
$diffUsers = $previousUserPrompts->diff($shareUserPrompts);
foreach ($diffUsers as $previousUserPrompt) {
$previousUserPrompt->delete();
}
// Remove those groups that are no longer added
$diffGroups = $previousGroupPrompts->diff($shareGroupPrompts);
foreach ($diffGroups as $previousGroupPrompt) {
$previousGroupPrompt->delete();
}
return $prompt;
}
public function deletePrompt(AskAnythingPrompt $prompt): void
{
// Also deletes all associations with users
$prompt->delete();
}
public function hidePromptForUser(AskAnythingPrompt $prompt, User $user): AskAnythingPrompt
{
$userPromptSettings = UserAskAnythingPrompt::where('user_id', $user->getId())
->where('prompt_id', $prompt->getId())
->first();
if ($userPromptSettings === null) {
$userPromptSettings = UserAskAnythingPrompt::create([
'user_id' => $user->getId(),
'prompt_id' => $prompt->getId(),
]);
}
$userPromptSettings->update([
'is_removed' => true,
]);
return $prompt;
}
public function getPromptByUuid(string $uuid): ?AskAnythingPrompt
{
return AskAnythingPrompt::where('uuid', AskAnythingPrompt::toOptimized($uuid))->first();
}
public function orderPromptForUser(AskAnythingPrompt $prompt, User $user, int $order): void
{
$userPromptSettings = UserAskAnythingPrompt::where('user_id', $user->getId())
->where('prompt_id', $prompt->getId())
->first();
if ($userPromptSettings === null) {
$userPromptSettings = UserAskAnythingPrompt::create([
'user_id' => $user->getId(),
'prompt_id' => $prompt->getId(),
]);
}
$userPromptSettings->update([
'order' => $order,
]);
}
}
Execute
Explain Plan
Browse Query History
View Parameters
Open Query Execution Settings…
In-Editor Results
Tx: Auto
Cancel Running Statements
Playground
jiminny
Code changed:
Hide
Sync Changes
Hide This Notification
21
1
18
2
6
Previous Highlighted Error
Next Highlighted Error
SELECT a.id, a.uuid, a.actual_start_time, o.id, o.uuid FROM opportunities o
JOIN activities a ON o.id = a.opportunity_id
WHERE a.crm_configuration_id = 39
AND a.actual_start_time > '2025-10-13'
AND a.type IN ('conference', 'softphone-inbound', 'softphone-outbound')
;
SELECT * FROM activities
WHERE crm_configuration_id = 39 and user_id = 143
and actual_start_time >= '2025-10-13'
AND type IN ('conference', 'softphone-inbound', 'softphone-outbound')
;
SELECT * FROM opportunities WHERE account_id IN (178);
select * from activities where id IN (620137, 620187, 620188, 620189, 620230);
# HS
SELECT * FROM opportunities WHERE id IN (238);
select * from activities where id IN (477,2076);
select * from users;
SELECT COUNT(*) FROM users;
SELECT COUNT(*) FROM activities;
SELECT COUNT(*) FROM opportunities;
UPDATE activities
SET
actual_start_time = '2025-12-19 09:00:00',
actual_end_time = '2025-12-19 10:30:00',
scheduled_start_time = '2025-12-19 09:00:00',
scheduled_end_time = '2025-12-19 10:30:00'
WHERE id IN (407509,407375);
select * from partners;
SELECT id, uuid, type, actual_start_time, user_id, crm_configuration_id
FROM activities
WHERE user_id = 143
AND actual_start_time >= '2025-10-13 00:00:00'
AND actual_start_time <= '2026-01-13 23:59:59'
ORDER BY actual_start_time DESC;
SELECT * FROM activities WHERE uuid_to_bin('78eda160-3086-435f-88a5-bb0c71b6008d') = uuid;
SELECT * FROM crm_layouts where crm_configuration_id = 39;
SELECT * FROM crm_layout_entities WHERE crm_layout_id = 282;
# lead_id
# account_id 177
# contact_id 3969
# opportunity_id
# stage_id 203
SELECT * FROM opportunities WHERE opportunities.crm_configuration_id = id = 282;
SELECT * FROM activities where crm_configuration_id = 39 AND type = 'conference'
AND user_id = 143 and actual_start_time >= '2025-10-13';
SELECT * FROM activities a
# JOIN opportunities o ON a.opportunity_id = o.id
WHERE a.crm_configuration_id = 39 AND a.type = 'conference'
and status = 'completed' and recording_state = 'recorded'
and a.actual_start_time >= '2025-10-13'
AND a.user_id = 143
;
select * from leads
where crm_configuration_id = 39; # 112 -> ac. 178, 109 => op. 1707
SELECT * FROM activities WHERE id IN (356013,616188,616202,616310,407509,407375,356001,356008);
SELECT * FROM activities WHERE id IN (356013,616188,616202,616310);
SELECT * FROM activities WHERE id IN (407509,407375); # leads: 112, 109 | status - 198
SELECT * FROM activities WHERE id IN (356001, 356008); # contacts:
SELECT * FROM opportunities WHERE id IN (1707);
SELECT * FROM stages where id IN (204, 198);
SELECT * FROM opportunities WHERE account_id IN (178);
SELECT * FROM opportunities WHERE crm_configuration_id = 39 AND created_at > '2025-01-01';
SELECT * FROM contacts WHERE account_id IN (178); # 4118 Musaibe, 4448 Ceco Personal
SELECT * FROM activities where crm_configuration_id = 39
AND opportunity_id IS NULL
AND is_internal = false
and status = 'completed' and recording_state = 'recorded'
AND actual_start_time >= '2025-10-13'
AND (lead_id IS NOT NULL OR contact_id IS NOT NULL OR account_id IS NOT NULL)
# AND lead_id IN (112, 109)
;
SELECT * FROM crm_profiles WHERE user_id = 143;
select * from inboxes; # 212
select * from users where id = 143; # 143
select * from inbox_email_batches where inbox_id = 212
and updated_at >= '2026-01-28 00:00:00' order by id desc;
select * from inbox_emails where inbox_id = 212
and batch_id = 95885 order by id desc;
select * from email_messages where origin_user_id = 143;
select * from activities where user_id = 143 and updated_at >= '2026-01-28 00:00:00';
select * from participants where activity_id = 620247;
select * from crm_profiles where user_id = 143;
SELECT * FROM activities WHERE uuid_to_bin('458cf915-b914-4000-b083-5687b32b2956') = uuid; # 356001
select * from transcription where activity_id = 356001; # 6943
select * from ai_prompts where transcription_id = 6943;
SELECT * FROM activity_summary_logs where activity_id = 356001;
SELECT * FROM social_accounts WHERE sociable_id = 143;
# [PASSWORD_DOTS]
SELECT * FROM activities WHERE uuid_to_bin('0164a4fb-cb95-454e-9edd-4d804e4999bd') = uuid;
# 422515 softphone tr. 8100
SELECT * FROM activities WHERE uuid_to_bin('7520add8-8d87-41a5-98e5-fc4edf96f21e') = uuid;
# 407509 conference tr. 7670 crmId: 00UD1000002J9aTMAS
select * from ai_prompts where transcription_id IN (8100, 7670);
select * from activity_summary_logs where activity_id = 407509;
select * from sidekick_settings;
select * from default_activity_types;
SELECT * FROM contacts WHERE crm_configuration_id = 39 and email = '[EMAIL]';
SELECT * FROM leads WHERE crm_configuration_id = 39 and email = '[EMAIL]';
SELECT * FROM activity_searches where user_id = 143;
SELECT * FROM groups where team_id = 1;
select * from teams where id = 1;
select * from groups where team_id = 1; # 1150 - 7e75f8025c22
select id, name, group_id, status, deleted_at, email
from users where team_id = 1 order by group_id desc ;
select * from activity_searches where id in (1977, 1978, 1979);
select * from activity_search_filters where activity_search_id IN (1977, 1978, 1979);
select * from activity_search_filters where filter = 'group_id' and value = '443f26b8-8512-437e-a9f9-7e75f8025c22'; # 10268, 10272, 10277
select * from nudges where activity_search_id IN (1977, 1978, 1979); # 877, 878, 879
INSERT INTO `activity_search_filters`
(`activity_search_id`, `filter`, `value`) VALUES
(1977, 'group_id', '443f26b8-8512-437e-a9f9-7e75f8025c22'),
(1978, 'group_id', '443f26b8-8512-437e-a9f9-7e75f8025c22'),
(1979, 'group_id', '443f26b8-8512-437e-a9f9-7e75f8025c22')
;
select * from crm_configurations where id = 39;
select sa.* from users u JOIN social_accounts sa on u.id = sa.sociable_id
where u.team_id = 1;
SELECT * FROM social_accounts WHERE sociable_id = 1635;
SELECT * FROM users WHERE id = 1635;
select * from teams where id = 1;
select * from users where team_id = 1;
select * from team_features where team_id = 1;
select * from features;
SELECT * FROM activity_searches where id = 1982; # 1981
SELECT * FROM activity_search_filters WHERE activity_search_id = 1982;
SELECT * FROM activities WHERE uuid_to_bin('e916569b-086c-4bd1-94d7-5e3802c27ccf') = uuid;
SELECT * FROM groups WHERE id = 1439;
SELECT * FROM users WHERE group_id = 1439;
select * from permissions; # 158
select * from roles;
select * from permission_role;
select * from teams where id = 1;
select * from groups g JOIN playbooks p on g.playbook_id = p.id where g.team_id = 1;
select * from groups where id = 28;
select * from playbooks where team_id = 1;
select * from playbooks where id = 179;
select * from playbook_categories where id = 1391;
select * from users where id = 143;
select * from crm_profiles where user_id = 143;
select * from activities where crm_configuration_id = 39 and type = 'conference'
and crm_provider_id IS NOT NULL ORDER by id desc;
select * from activities where id = 422003; # 00UO400000pB6fpMAC
SELECT ar.id, ar.uuid, ar.media_type, ar.status, a.type
FROM automated_report_results ar
JOIN automated_reports a ON a.id = ar.report_id
WHERE a.type = 'ask_jiminny'
LIMIT 10;
SELECT * FROM automated_reports where id = 71;
SELECT * FROM automated_report_results where report_id = 71;
UPDATE automated_reports set playbook_categories = NULL where id = 68;
SELECT * FROM automated_report_results where id = 275;
SELECT * FROM automated_reports order by id desc;
SELECT * FROM automated_report_results order by id desc;
select * from activity_searches where user_id = 143;
select * from ask_anything_prompts;
SELECT `automated_report_results`.* FROM `automated_report_results`
INNER JOIN `automated_reports`
ON `automated_report_results`.`report_id` = `automated_reports`.`id`
WHERE 1=1
AND `automated_report_results`.`generated_at` IS NOT NULL
# AND `automated_report_results`.`sent_at` IS NOT NULL
AND `automated_reports`.`team_id` = 1
AND JSON_CONTAINS(`automated_reports`.`recipients`, 143, '$."users"')
;
SELECT * FROM automated_reports where id = 67;
SELECT * FROM automated_reports where id = 42;
SELECT * FROM users WHERE id = 143; # group 28
select * from teams where id = 3143;
select * from crm_configurations where id = 500;
select * from users where name = 'Integration Account'; # 1695
SELECT * FROM social_accounts WHERE sociable_id = 1695;
select * from activities where crm_configuration_id = 39
and recording_state = 'recorded' and duration > 60
and status = 'completed' and actual_start_time >= '2025-12-01';
SELECT * FROM activities WHERE uuid_to_bin('458cf915-b914-4000-b083-5687b32b2956') = uuid;
select * from leads;
SELECT * FROM activities WHERE uuid_to_bin('f43cf158-e60d-46e5-92f8-c4e0594a3219') = uuid; # 422003
SELECT * FROM activities WHERE id IN (16,422003);
SELECT * FROM activities where status = 'failed';
SELECT * FROM tracks WHERE activity_id = 422003;
SELECT
a.*
FROM activities a
JOIN users u ON a.user_id = u.id
WHERE
a.status = 'completed'
AND uuid_to_bin('641f1acb-16b8-42d1-8726-df52979dad0e') = u.uuid
AND a.deleted_at IS NULL
AND EXISTS (
SELECT 1 FROM tracks t
WHERE t.activity_id = a.id
AND t.type IN ('audio', 'video')
)
ORDER BY a.actual_start_time DESC
LIMIT 25;
select * from teams where id = 19;
select * from crm_configurations where provider = 'pipedrive';
SELECT
CONCAT(u.id, CASE WHEN u.id = t.owner_id THEN ' (owner)' ELSE '' END) AS user_id,
u.email,
sa.*,
t.owner_id FROM social_accounts sa
JOIN users u on u.id = sa.sociable_id
JOIN teams t on t.id = u.team_id
WHERE u.team_id = 19 and sa.provider = 'pipedrive';
SELECT * FROM social_accounts WHERE id = 1116;
UPDATE social_accounts SET provider_user_token = 'v1u:AQIBAHj-LzTNK2yuuuaLqifzhWb9crUNKTpk4FlQ9rjnXqp_6AEQhDhDQVa1nvWCHEvnpvSEAAAAfjB8BgkqhkiG9w0BBwagbzBtAgEAMGgGCSqGSIb3DQEHATAeBglghkgBZQMEAS4wEQQMnG8KNcZLIjEnlRPxAgEQgDsGPIcKjsMU7Qel36BtM5FCQa56mYUy24_AAoqd12yjVFkq6egLqS0inp-5G4JE7frJURMV8VTw_fY14g:rYyABXmXsBhEdYU_dfmDH8GF-vzSseJXE5bds_zAyVdAwlTXOPdTl9i4PS4jVofLvpq7IRgvEt2BzGhR6cWiQXHHD0AtayQOkZm262ClFCsMYtKGfep0Jq1n0eiRIVqT9gAY7rWvhpEDF8oAlgnRGmqx-euIkpzE79sPXh4OjNx_yUIaanjyplGpBBJ_NiACd1sMlZmseyUyyU_gldqlCBAuK9hhATc9icgg7zuoc7nKBBrlg49tRtzEagDh6xbFBpzfCp7kE_7n4TLWfWHLPMzu-bktjwA969G9sFRmoH1GjPA0a2odDT4dk1_1ouBrB1NcTT2hQUqH-_RzDW2nWmeoVHA',
provider_refresh_token = '5034113:[TELEGRAM_TOKEN]b2bfc',
expires = 1779091997,
state = 'connected'
WHERE id = 1116;
"provider_user_token": "v1u:AQIBAHj-LzTNK2yuuuaLqifzhWb9crUNKTpk4FlQ9rjnXqp_6AEQhDhDQVa1nvWCHEvnpvSEAAAAfjB8BgkqhkiG9w0BBwagbzBtAgEAMGgGCSqGSIb3DQEHATAeBglghkgBZQMEAS4wEQQMnG8KNcZLIjEnlRPxAgEQgDsGPIcKjsMU7Qel36BtM5FCQa56mYUy24_AAoqd12yjVFkq6egLqS0inp-5G4JE7frJURMV8VTw_fY14g:rYyABXmXsBhEdYU_dfmDH8GF-vzSseJXE5bds_zAyVdAwlTXOPdTl9i4PS4jVofLvpq7IRgvEt2BzGhR6cWiQXHHD0AtayQOkZm262ClFCsMYtKGfep0Jq1n0eiRIVqT9gAY7rWvhpEDF8oAlgnRGmqx-euIkpzE79sPXh4OjNx_yUIaanjyplGpBBJ_NiACd1sMlZmseyUyyU_gldqlCBAuK9hhATc9icgg7zuoc7nKBBrlg49tRtzEagDh6xbFBpzfCp7kE_7n4TLWfWHLPMzu-bktjwA969G9sFRmoH1GjPA0a2odDT4dk1_1ouBrB1NcTT2hQUqH-_RzDW2nWmeoVHA",
"provider_refresh_token": "5034113:[TELEGRAM_TOKEN]b2bfc",
"expires": 1779091997,
Socket fail to connect to host:address=(host=localhost)(port=3306)(type=primary). Connection refused
Project
Project...
|
NULL
|
NULL
|
NULL
|
NULL
|
|
58080
|
2045
|
8
|
2026-05-19T11:33:44.245963+00:00
|
/Users/lukas/.screenpipe/data/data/2026-05-19/1779 /Users/lukas/.screenpipe/data/data/2026-05-19/1779190424245_m2.jpg...
|
PhpStorm
|
faVsco.js – AskAnythingRepository.php
|
1
|
NULL
|
monitor_2
|
NULL
|
NULL
|
NULL
|
NULL
|
Project: faVsco.js, menu
JY-20676-delete-report-re Project: faVsco.js, menu
JY-20676-delete-report-related-objects, menu
Start Listening for PHP Debug Connections
AskAnythingPromptServiceTest
Run 'AskAnythingPromptServiceTest'
Debug 'AskAnythingPromptServiceTest'
More Actions
JetBrains AI
Search Everywhere
IDE and Project Settings
Sync Changes
Hide This Notification
Code changed:
Hide
12
Previous Highlighted Error
Next Highlighted Error
<?php
declare(strict_types=1);
namespace Jiminny\Repositories;
use Illuminate\Database\Eloquent\Builder;
use Illuminate\Support\Collection;
use Jiminny\Models\AskAnything\AskAnythingPrompt;
use Jiminny\Models\AskAnything\AskAnythingPromptTarget;
use Jiminny\Models\AskAnything\UserAskAnythingPrompt;
use Jiminny\Models\Group;
use Jiminny\Models\User;
class AskAnythingRepository
{
/**
* @return Collection<UserAskAnythingPrompt>
*/
public function findSharedUsersAndGroupsByPromptId(int $promptId): Collection
{
return UserAskAnythingPrompt::query()
->where('prompt_id', $promptId)
->where('is_removed', false)
->get();
}
public function findSharedPromptByUser(int $promptId, User $user): ?UserAskAnythingPrompt
{
return UserAskAnythingPrompt::with('prompt')
->where('prompt_id', $promptId)
->where('user_id', $user->getId())
->first();
}
public function findSharedPromptByUserGroup(int $promptId, User $user): ?UserAskAnythingPrompt
{
$userGroupId = $user->getGroupId();
return UserAskAnythingPrompt::with('prompt')
->where('prompt_id', $promptId)
->where(static function ($query) use ($userGroupId): void {
if ($userGroupId !== null) {
$query->where('group_id', $userGroupId);
}
})
->first();
}
/**
* @return Collection<AskAnythingPrompt>
*/
public function findPromptsByUserAndTarget(User $user, AskAnythingPromptTarget $target): Collection
{
$userGroupId = $user->getGroupId();
$usersOwnedPrompts = UserAskAnythingPrompt::with('prompt')
->where(static function ($query) use ($user, $userGroupId): void {
$query
->where('user_id', $user->getId());
if ($userGroupId !== null) {
$query->orWhere('group_id', $userGroupId);
}
})
->where('is_removed', false)
->whereHas('prompt', function (Builder $query) use ($target) {
$query->where('target', $target);
})
->orderByRaw('ISNULL(`order`), `order` ASC, `prompt_id` ASC')
->get()
->map(function (UserAskAnythingPrompt $userPrompt) {
return $userPrompt->getPrompt();
});
// Remove those prompts that are hidden for the current user
$usersOwnedPromptsFiltered = $usersOwnedPrompts->filter(function (AskAnythingPrompt $userPrompt) use ($user) {
$promptId = $userPrompt->getId();
$userDisabledPrompt = UserAskAnythingPrompt::query()
->where('prompt_id', $promptId)
->where('is_removed', true)
->where('user_id', $user->getId())
->first();
return $userDisabledPrompt === null;
});
$defaultNonChangedPrompts = AskAnythingPrompt::where('target', $target)
->whereDoesntHave('userPrompts', function ($query) use ($user) {
$query->where('user_id', $user->getId());
})
->whereNull('owner_id')
->get();
$allPrompts = $defaultNonChangedPrompts->merge($usersOwnedPromptsFiltered);
if ($allPrompts->isNotEmpty()) {
$allPrompts->loadCount('automatedReports');
}
return $allPrompts;
}
/**
* @param array<User> $shareUsers
* @param array<Group> $shareGroups
*/
public function createPrompt(
User $user,
AskAnythingPromptTarget $target,
string $title,
string $content,
array $shareUsers,
array $shareGroups,
): AskAnythingPrompt {
$prompt = AskAnythingPrompt::create([
'title' => $title,
'content' => $content,
'target' => $target,
'owner_id' => $user->getId(),
]);
UserAskAnythingPrompt::create([
'user_id' => $user->getId(),
'prompt_id' => $prompt->getId(),
]);
foreach ($shareUsers as $shareUser) {
UserAskAnythingPrompt::create([
'user_id' => $shareUser->getId(),
'prompt_id' => $prompt->getId(),
]);
}
foreach ($shareGroups as $shareGroup) {
UserAskAnythingPrompt::create([
'group_id' => $shareGroup->getId(),
'prompt_id' => $prompt->getId(),
]);
}
return $prompt;
}
/**
* @param array<User> $shareUsers
* @param array<Group> $shareGroups
*/
public function editPrompt(
AskAnythingPrompt $prompt,
string $title,
string $content,
array $shareUsers,
array $shareGroups,
): AskAnythingPrompt {
$prompt->update([
'title' => $title,
'content' => $content,
]);
$previousUserPrompts = UserAskAnythingPrompt::query()
->where('prompt_id', $prompt->getId())
->whereNull('group_id')
->whereNotNull('user_id')
->whereNot('user_id', $prompt->getOwnerId())
->get();
$previousGroupPrompts = UserAskAnythingPrompt::query()
->where('prompt_id', $prompt->getId())
->whereNotNull('group_id')
->whereNull('user_id')
->get();
$shareUserPrompts = [];
foreach ($shareUsers as $shareUser) {
$shareUserPrompts[] = UserAskAnythingPrompt::create([
'user_id' => $shareUser->getId(),
'prompt_id' => $prompt->getId(),
]);
}
$shareGroupPrompts = [];
foreach ($shareGroups as $shareGroup) {
$shareGroupPrompts[] = UserAskAnythingPrompt::create([
'group_id' => $shareGroup->getId(),
'prompt_id' => $prompt->getId(),
]);
}
// Remove those users that are no longer added
$diffUsers = $previousUserPrompts->diff($shareUserPrompts);
foreach ($diffUsers as $previousUserPrompt) {
$previousUserPrompt->delete();
}
// Remove those groups that are no longer added
$diffGroups = $previousGroupPrompts->diff($shareGroupPrompts);
foreach ($diffGroups as $previousGroupPrompt) {
$previousGroupPrompt->delete();
}
return $prompt;
}
public function deletePrompt(AskAnythingPrompt $prompt): void
{
// Also deletes all associations with users
$prompt->delete();
}
public function hidePromptForUser(AskAnythingPrompt $prompt, User $user): AskAnythingPrompt
{
$userPromptSettings = UserAskAnythingPrompt::where('user_id', $user->getId())
->where('prompt_id', $prompt->getId())
->first();
if ($userPromptSettings === null) {
$userPromptSettings = UserAskAnythingPrompt::create([
'user_id' => $user->getId(),
'prompt_id' => $prompt->getId(),
]);
}
$userPromptSettings->update([
'is_removed' => true,
]);
return $prompt;
}
public function getPromptByUuid(string $uuid): ?AskAnythingPrompt
{
return AskAnythingPrompt::where('uuid', AskAnythingPrompt::toOptimized($uuid))->first();
}
public function orderPromptForUser(AskAnythingPrompt $prompt, User $user, int $order): void
{
$userPromptSettings = UserAskAnythingPrompt::where('user_id', $user->getId())
->where('prompt_id', $prompt->getId())
->first();
if ($userPromptSettings === null) {
$userPromptSettings = UserAskAnythingPrompt::create([
'user_id' => $user->getId(),
'prompt_id' => $prompt->getId(),
]);
}
$userPromptSettings->update([
'order' => $order,
]);
}
}
Execute
Explain Plan
Browse Query History
View Parameters
Open Query Execution Settings…
In-Editor Results
Tx: Auto
Cancel Running Statements
Playground
jiminny
Code changed:
Hide
Sync Changes
Hide This Notification
21
1
18
2
6
Previous Highlighted Error
Next Highlighted Error
SELECT a.id, a.uuid, a.actual_start_time, o.id, o.uuid FROM opportunities o
JOIN activities a ON o.id = a.opportunity_id
WHERE a.crm_configuration_id = 39
AND a.actual_start_time > '2025-10-13'
AND a.type IN ('conference', 'softphone-inbound', 'softphone-outbound')
;
SELECT * FROM activities
WHERE crm_configuration_id = 39 and user_id = 143
and actual_start_time >= '2025-10-13'
AND type IN ('conference', 'softphone-inbound', 'softphone-outbound')
;
SELECT * FROM opportunities WHERE account_id IN (178);
select * from activities where id IN (620137, 620187, 620188, 620189, 620230);
# HS
SELECT * FROM opportunities WHERE id IN (238);
select * from activities where id IN (477,2076);
select * from users;
SELECT COUNT(*) FROM users;
SELECT COUNT(*) FROM activities;
SELECT COUNT(*) FROM opportunities;
UPDATE activities
SET
actual_start_time = '2025-12-19 09:00:00',
actual_end_time = '2025-12-19 10:30:00',
scheduled_start_time = '2025-12-19 09:00:00',
scheduled_end_time = '2025-12-19 10:30:00'
WHERE id IN (407509,407375);
select * from partners;
SELECT id, uuid, type, actual_start_time, user_id, crm_configuration_id
FROM activities
WHERE user_id = 143
AND actual_start_time >= '2025-10-13 00:00:00'
AND actual_start_time <= '2026-01-13 23:59:59'
ORDER BY actual_start_time DESC;
SELECT * FROM activities WHERE uuid_to_bin('78eda160-3086-435f-88a5-bb0c71b6008d') = uuid;
SELECT * FROM crm_layouts where crm_configuration_id = 39;
SELECT * FROM crm_layout_entities WHERE crm_layout_id = 282;
# lead_id
# account_id 177
# contact_id 3969
# opportunity_id
# stage_id 203
SELECT * FROM opportunities WHERE opportunities.crm_configuration_id = id = 282;
SELECT * FROM activities where crm_configuration_id = 39 AND type = 'conference'
AND user_id = 143 and actual_start_time >= '2025-10-13';
SELECT * FROM activities a
# JOIN opportunities o ON a.opportunity_id = o.id
WHERE a.crm_configuration_id = 39 AND a.type = 'conference'
and status = 'completed' and recording_state = 'recorded'
and a.actual_start_time >= '2025-10-13'
AND a.user_id = 143
;
select * from leads
where crm_configuration_id = 39; # 112 -> ac. 178, 109 => op. 1707
SELECT * FROM activities WHERE id IN (356013,616188,616202,616310,407509,407375,356001,356008);
SELECT * FROM activities WHERE id IN (356013,616188,616202,616310);
SELECT * FROM activities WHERE id IN (407509,407375); # leads: 112, 109 | status - 198
SELECT * FROM activities WHERE id IN (356001, 356008); # contacts:
SELECT * FROM opportunities WHERE id IN (1707);
SELECT * FROM stages where id IN (204, 198);
SELECT * FROM opportunities WHERE account_id IN (178);
SELECT * FROM opportunities WHERE crm_configuration_id = 39 AND created_at > '2025-01-01';
SELECT * FROM contacts WHERE account_id IN (178); # 4118 Musaibe, 4448 Ceco Personal
SELECT * FROM activities where crm_configuration_id = 39
AND opportunity_id IS NULL
AND is_internal = false
and status = 'completed' and recording_state = 'recorded'
AND actual_start_time >= '2025-10-13'
AND (lead_id IS NOT NULL OR contact_id IS NOT NULL OR account_id IS NOT NULL)
# AND lead_id IN (112, 109)
;
SELECT * FROM crm_profiles WHERE user_id = 143;
select * from inboxes; # 212
select * from users where id = 143; # 143
select * from inbox_email_batches where inbox_id = 212
and updated_at >= '2026-01-28 00:00:00' order by id desc;
select * from inbox_emails where inbox_id = 212
and batch_id = 95885 order by id desc;
select * from email_messages where origin_user_id = 143;
select * from activities where user_id = 143 and updated_at >= '2026-01-28 00:00:00';
select * from participants where activity_id = 620247;
select * from crm_profiles where user_id = 143;
SELECT * FROM activities WHERE uuid_to_bin('458cf915-b914-4000-b083-5687b32b2956') = uuid; # 356001
select * from transcription where activity_id = 356001; # 6943
select * from ai_prompts where transcription_id = 6943;
SELECT * FROM activity_summary_logs where activity_id = 356001;
SELECT * FROM social_accounts WHERE sociable_id = 143;
# [PASSWORD_DOTS]
SELECT * FROM activities WHERE uuid_to_bin('0164a4fb-cb95-454e-9edd-4d804e4999bd') = uuid;
# 422515 softphone tr. 8100
SELECT * FROM activities WHERE uuid_to_bin('7520add8-8d87-41a5-98e5-fc4edf96f21e') = uuid;
# 407509 conference tr. 7670 crmId: 00UD1000002J9aTMAS
select * from ai_prompts where transcription_id IN (8100, 7670);
select * from activity_summary_logs where activity_id = 407509;
select * from sidekick_settings;
select * from default_activity_types;
SELECT * FROM contacts WHERE crm_configuration_id = 39 and email = '[EMAIL]';
SELECT * FROM leads WHERE crm_configuration_id = 39 and email = '[EMAIL]';
SELECT * FROM activity_searches where user_id = 143;
SELECT * FROM groups where team_id = 1;
select * from teams where id = 1;
select * from groups where team_id = 1; # 1150 - 7e75f8025c22
select id, name, group_id, status, deleted_at, email
from users where team_id = 1 order by group_id desc ;
select * from activity_searches where id in (1977, 1978, 1979);
select * from activity_search_filters where activity_search_id IN (1977, 1978, 1979);
select * from activity_search_filters where filter = 'group_id' and value = '443f26b8-8512-437e-a9f9-7e75f8025c22'; # 10268, 10272, 10277
select * from nudges where activity_search_id IN (1977, 1978, 1979); # 877, 878, 879
INSERT INTO `activity_search_filters`
(`activity_search_id`, `filter`, `value`) VALUES
(1977, 'group_id', '443f26b8-8512-437e-a9f9-7e75f8025c22'),
(1978, 'group_id', '443f26b8-8512-437e-a9f9-7e75f8025c22'),
(1979, 'group_id', '443f26b8-8512-437e-a9f9-7e75f8025c22')
;
select * from crm_configurations where id = 39;
select sa.* from users u JOIN social_accounts sa on u.id = sa.sociable_id
where u.team_id = 1;
SELECT * FROM social_accounts WHERE sociable_id = 1635;
SELECT * FROM users WHERE id = 1635;
select * from teams where id = 1;
select * from users where team_id = 1;
select * from team_features where team_id = 1;
select * from features;
SELECT * FROM activity_searches where id = 1982; # 1981
SELECT * FROM activity_search_filters WHERE activity_search_id = 1982;
SELECT * FROM activities WHERE uuid_to_bin('e916569b-086c-4bd1-94d7-5e3802c27ccf') = uuid;
SELECT * FROM groups WHERE id = 1439;
SELECT * FROM users WHERE group_id = 1439;
select * from permissions; # 158
select * from roles;
select * from permission_role;
select * from teams where id = 1;
select * from groups g JOIN playbooks p on g.playbook_id = p.id where g.team_id = 1;
select * from groups where id = 28;
select * from playbooks where team_id = 1;
select * from playbooks where id = 179;
select * from playbook_categories where id = 1391;
select * from users where id = 143;
select * from crm_profiles where user_id = 143;
select * from activities where crm_configuration_id = 39 and type = 'conference'
and crm_provider_id IS NOT NULL ORDER by id desc;
select * from activities where id = 422003; # 00UO400000pB6fpMAC
SELECT ar.id, ar.uuid, ar.media_type, ar.status, a.type
FROM automated_report_results ar
JOIN automated_reports a ON a.id = ar.report_id
WHERE a.type = 'ask_jiminny'
LIMIT 10;
SELECT * FROM automated_reports where id = 71;
SELECT * FROM automated_report_results where report_id = 71;
UPDATE automated_reports set playbook_categories = NULL where id = 68;
SELECT * FROM automated_report_results where id = 275;
SELECT * FROM automated_reports order by id desc;
SELECT * FROM automated_report_results order by id desc;
select * from activity_searches where user_id = 143;
select * from ask_anything_prompts;
SELECT `automated_report_results`.* FROM `automated_report_results`
INNER JOIN `automated_reports`
ON `automated_report_results`.`report_id` = `automated_reports`.`id`
WHERE 1=1
AND `automated_report_results`.`generated_at` IS NOT NULL
# AND `automated_report_results`.`sent_at` IS NOT NULL
AND `automated_reports`.`team_id` = 1
AND JSON_CONTAINS(`automated_reports`.`recipients`, 143, '$."users"')
;
SELECT * FROM automated_reports where id = 67;
SELECT * FROM automated_reports where id = 42;
SELECT * FROM users WHERE id = 143; # group 28
select * from teams where id = 3143;
select * from crm_configurations where id = 500;
select * from users where name = 'Integration Account'; # 1695
SELECT * FROM social_accounts WHERE sociable_id = 1695;
select * from activities where crm_configuration_id = 39
and recording_state = 'recorded' and duration > 60
and status = 'completed' and actual_start_time >= '2025-12-01';
SELECT * FROM activities WHERE uuid_to_bin('458cf915-b914-4000-b083-5687b32b2956') = uuid;
select * from leads;
SELECT * FROM activities WHERE uuid_to_bin('f43cf158-e60d-46e5-92f8-c4e0594a3219') = uuid; # 422003
SELECT * FROM activities WHERE id IN (16,422003);
SELECT * FROM activities where status = 'failed';
SELECT * FROM tracks WHERE activity_id = 422003;
SELECT
a.*
FROM activities a
JOIN users u ON a.user_id = u.id
WHERE
a.status = 'completed'
AND uuid_to_bin('641f1acb-16b8-42d1-8726-df52979dad0e') = u.uuid
AND a.deleted_at IS NULL
AND EXISTS (
SELECT 1 FROM tracks t
WHERE t.activity_id = a.id
AND t.type IN ('audio', 'video')
)
ORDER BY a.actual_start_time DESC
LIMIT 25;
select * from teams where id = 19;
select * from crm_configurations where provider = 'pipedrive';
SELECT
CONCAT(u.id, CASE WHEN u.id = t.owner_id THEN ' (owner)' ELSE '' END) AS user_id,
u.email,
sa.*,
t.owner_id FROM social_accounts sa
JOIN users u on u.id = sa.sociable_id
JOIN teams t on t.id = u.team_id
WHERE u.team_id = 19 and sa.provider = 'pipedrive';
SELECT * FROM social_accounts WHERE id = 1116;
UPDATE social_accounts SET provider_user_token = 'v1u:AQIBAHj-LzTNK2yuuuaLqifzhWb9crUNKTpk4FlQ9rjnXqp_6AEQhDhDQVa1nvWCHEvnpvSEAAAAfjB8BgkqhkiG9w0BBwagbzBtAgEAMGgGCSqGSIb3DQEHATAeBglghkgBZQMEAS4wEQQMnG8KNcZLIjEnlRPxAgEQgDsGPIcKjsMU7Qel36BtM5FCQa56mYUy24_AAoqd12yjVFkq6egLqS0inp-5G4JE7frJURMV8VTw_fY14g:rYyABXmXsBhEdYU_dfmDH8GF-vzSseJXE5bds_zAyVdAwlTXOPdTl9i4PS4jVofLvpq7IRgvEt2BzGhR6cWiQXHHD0AtayQOkZm262ClFCsMYtKGfep0Jq1n0eiRIVqT9gAY7rWvhpEDF8oAlgnRGmqx-euIkpzE79sPXh4OjNx_yUIaanjyplGpBBJ_NiACd1sMlZmseyUyyU_gldqlCBAuK9hhATc9icgg7zuoc7nKBBrlg49tRtzEagDh6xbFBpzfCp7kE_7n4TLWfWHLPMzu-bktjwA969G9sFRmoH1GjPA0a2odDT4dk1_1ouBrB1NcTT2hQUqH-_RzDW2nWmeoVHA',
provider_refresh_token = '5034113:[TELEGRAM_TOKEN]b2bfc',
expires = 1779091997,
state = 'connected'
WHERE id = 1116;
"provider_user_token": "v1u:AQIBAHj-LzTNK2yuuuaLqifzhWb9crUNKTpk4FlQ9rjnXqp_6AEQhDhDQVa1nvWCHEvnpvSEAAAAfjB8BgkqhkiG9w0BBwagbzBtAgEAMGgGCSqGSIb3DQEHATAeBglghkgBZQMEAS4wEQQMnG8KNcZLIjEnlRPxAgEQgDsGPIcKjsMU7Qel36BtM5FCQa56mYUy24_AAoqd12yjVFkq6egLqS0inp-5G4JE7frJURMV8VTw_fY14g:rYyABXmXsBhEdYU_dfmDH8GF-vzSseJXE5bds_zAyVdAwlTXOPdTl9i4PS4jVofLvpq7IRgvEt2BzGhR6cWiQXHHD0AtayQOkZm262ClFCsMYtKGfep0Jq1n0eiRIVqT9gAY7rWvhpEDF8oAlgnRGmqx-euIkpzE79sPXh4OjNx_yUIaanjyplGpBBJ_NiACd1sMlZmseyUyyU_gldqlCBAuK9hhATc9icgg7zuoc7nKBBrlg49tRtzEagDh6xbFBpzfCp7kE_7n4TLWfWHLPMzu-bktjwA969G9sFRmoH1GjPA0a2odDT4dk1_1ouBrB1NcTT2hQUqH-_RzDW2nWmeoVHA",
"provider_refresh_token": "5034113:[TELEGRAM_TOKEN]b2bfc",
"expires": 1779091997,
Socket fail to connect to host:address=(host=localhost)(port=3306)(type=primary). Connection refused
Project
Project
New File or Directory…
Expand Selected
Collapse All
Options
Hide...
|
[{"role":"AXButton","text" [{"role":"AXButton","text":"Project: faVsco.js, menu","depth":5,"bounds":{"left":0.025930852,"top":0.019952115,"width":0.03856383,"height":0.025538707},"on_screen":true,"help_text":"~/jiminny/app","role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"JY-20676-delete-report-related-objects, menu","depth":5,"bounds":{"left":0.064494684,"top":0.019952115,"width":0.10405585,"height":0.025538707},"on_screen":true,"help_text":"Git Branch: JY-20676-delete-report-related-objects<br/>Some incoming commits are not fetched<br/>","role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Start Listening for PHP Debug Connections","depth":5,"bounds":{"left":0.8194814,"top":0.019952115,"width":0.011303191,"height":0.025538707},"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"AskAnythingPromptServiceTest","depth":6,"bounds":{"left":0.83477396,"top":0.019952115,"width":0.080784574,"height":0.025538707},"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Run 'AskAnythingPromptServiceTest'","depth":6,"bounds":{"left":0.9155585,"top":0.019952115,"width":0.011303191,"height":0.025538707},"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Debug 'AskAnythingPromptServiceTest'","depth":6,"bounds":{"left":0.9268617,"top":0.019952115,"width":0.011303191,"height":0.025538707},"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"More Actions","depth":6,"bounds":{"left":0.9381649,"top":0.019952115,"width":0.011303191,"height":0.025538707},"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"JetBrains AI","depth":5,"bounds":{"left":0.96609044,"top":0.019952115,"width":0.011303191,"height":0.025538707},"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Search Everywhere","depth":5,"bounds":{"left":0.9773936,"top":0.019952115,"width":0.011303191,"height":0.025538707},"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"IDE and Project Settings","depth":5,"bounds":{"left":0.9886968,"top":0.019952115,"width":0.011303186,"height":0.025538707},"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Sync Changes","depth":4,"bounds":{"left":0.27027926,"top":1.0,"width":0.008643617,"height":0.0},"on_screen":false,"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Hide This Notification","depth":4,"bounds":{"left":0.27027926,"top":1.0,"width":0.008643617,"height":0.0},"on_screen":false,"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Code changed:","depth":4,"bounds":{"left":0.27027926,"top":1.0,"width":0.042220745,"height":0.0},"on_screen":false,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Hide","depth":4,"bounds":{"left":0.27027926,"top":1.0,"width":0.008643617,"height":0.0},"on_screen":false,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"12","depth":4,"bounds":{"left":0.27027926,"top":1.0,"width":0.009640957,"height":0.0},"on_screen":false,"role_description":"text"},{"role":"AXButton","text":"Previous Highlighted Error","depth":4,"bounds":{"left":0.27027926,"top":1.0,"width":0.00731383,"height":0.0},"on_screen":false,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Next Highlighted Error","depth":4,"bounds":{"left":0.27027926,"top":1.0,"width":0.006981383,"height":0.0},"on_screen":false,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXTextArea","text":"<?php\n\ndeclare(strict_types=1);\n\nnamespace Jiminny\\Repositories;\n\nuse Illuminate\\Database\\Eloquent\\Builder;\nuse Illuminate\\Support\\Collection;\nuse Jiminny\\Models\\AskAnything\\AskAnythingPrompt;\nuse Jiminny\\Models\\AskAnything\\AskAnythingPromptTarget;\nuse Jiminny\\Models\\AskAnything\\UserAskAnythingPrompt;\nuse Jiminny\\Models\\Group;\nuse Jiminny\\Models\\User;\n\nclass AskAnythingRepository\n{\n /**\n * @return Collection<UserAskAnythingPrompt>\n */\n public function findSharedUsersAndGroupsByPromptId(int $promptId): Collection\n {\n return UserAskAnythingPrompt::query()\n ->where('prompt_id', $promptId)\n ->where('is_removed', false)\n ->get();\n }\n\n public function findSharedPromptByUser(int $promptId, User $user): ?UserAskAnythingPrompt\n {\n return UserAskAnythingPrompt::with('prompt')\n ->where('prompt_id', $promptId)\n ->where('user_id', $user->getId())\n ->first();\n }\n\n public function findSharedPromptByUserGroup(int $promptId, User $user): ?UserAskAnythingPrompt\n {\n $userGroupId = $user->getGroupId();\n\n return UserAskAnythingPrompt::with('prompt')\n ->where('prompt_id', $promptId)\n ->where(static function ($query) use ($userGroupId): void {\n if ($userGroupId !== null) {\n $query->where('group_id', $userGroupId);\n }\n })\n ->first();\n }\n\n /**\n * @return Collection<AskAnythingPrompt>\n */\n public function findPromptsByUserAndTarget(User $user, AskAnythingPromptTarget $target): Collection\n {\n $userGroupId = $user->getGroupId();\n $usersOwnedPrompts = UserAskAnythingPrompt::with('prompt')\n ->where(static function ($query) use ($user, $userGroupId): void {\n $query\n ->where('user_id', $user->getId());\n\n if ($userGroupId !== null) {\n $query->orWhere('group_id', $userGroupId);\n }\n })\n ->where('is_removed', false)\n ->whereHas('prompt', function (Builder $query) use ($target) {\n $query->where('target', $target);\n })\n ->orderByRaw('ISNULL(`order`), `order` ASC, `prompt_id` ASC')\n ->get()\n ->map(function (UserAskAnythingPrompt $userPrompt) {\n return $userPrompt->getPrompt();\n });\n\n // Remove those prompts that are hidden for the current user\n $usersOwnedPromptsFiltered = $usersOwnedPrompts->filter(function (AskAnythingPrompt $userPrompt) use ($user) {\n $promptId = $userPrompt->getId();\n $userDisabledPrompt = UserAskAnythingPrompt::query()\n ->where('prompt_id', $promptId)\n ->where('is_removed', true)\n ->where('user_id', $user->getId())\n ->first();\n\n return $userDisabledPrompt === null;\n });\n\n $defaultNonChangedPrompts = AskAnythingPrompt::where('target', $target)\n ->whereDoesntHave('userPrompts', function ($query) use ($user) {\n $query->where('user_id', $user->getId());\n })\n ->whereNull('owner_id')\n ->get();\n\n $allPrompts = $defaultNonChangedPrompts->merge($usersOwnedPromptsFiltered);\n\n if ($allPrompts->isNotEmpty()) {\n $allPrompts->loadCount('automatedReports');\n }\n\n return $allPrompts;\n }\n\n /**\n * @param array<User> $shareUsers\n * @param array<Group> $shareGroups\n */\n public function createPrompt(\n User $user,\n AskAnythingPromptTarget $target,\n string $title,\n string $content,\n array $shareUsers,\n array $shareGroups,\n ): AskAnythingPrompt {\n $prompt = AskAnythingPrompt::create([\n 'title' => $title,\n 'content' => $content,\n 'target' => $target,\n 'owner_id' => $user->getId(),\n ]);\n\n UserAskAnythingPrompt::create([\n 'user_id' => $user->getId(),\n 'prompt_id' => $prompt->getId(),\n ]);\n\n foreach ($shareUsers as $shareUser) {\n UserAskAnythingPrompt::create([\n 'user_id' => $shareUser->getId(),\n 'prompt_id' => $prompt->getId(),\n ]);\n }\n\n foreach ($shareGroups as $shareGroup) {\n UserAskAnythingPrompt::create([\n 'group_id' => $shareGroup->getId(),\n 'prompt_id' => $prompt->getId(),\n ]);\n }\n\n return $prompt;\n }\n\n /**\n * @param array<User> $shareUsers\n * @param array<Group> $shareGroups\n */\n public function editPrompt(\n AskAnythingPrompt $prompt,\n string $title,\n string $content,\n array $shareUsers,\n array $shareGroups,\n ): AskAnythingPrompt {\n $prompt->update([\n 'title' => $title,\n 'content' => $content,\n ]);\n\n $previousUserPrompts = UserAskAnythingPrompt::query()\n ->where('prompt_id', $prompt->getId())\n ->whereNull('group_id')\n ->whereNotNull('user_id')\n ->whereNot('user_id', $prompt->getOwnerId())\n ->get();\n\n $previousGroupPrompts = UserAskAnythingPrompt::query()\n ->where('prompt_id', $prompt->getId())\n ->whereNotNull('group_id')\n ->whereNull('user_id')\n ->get();\n\n $shareUserPrompts = [];\n foreach ($shareUsers as $shareUser) {\n $shareUserPrompts[] = UserAskAnythingPrompt::create([\n 'user_id' => $shareUser->getId(),\n 'prompt_id' => $prompt->getId(),\n ]);\n }\n\n $shareGroupPrompts = [];\n foreach ($shareGroups as $shareGroup) {\n $shareGroupPrompts[] = UserAskAnythingPrompt::create([\n 'group_id' => $shareGroup->getId(),\n 'prompt_id' => $prompt->getId(),\n ]);\n }\n\n // Remove those users that are no longer added\n $diffUsers = $previousUserPrompts->diff($shareUserPrompts);\n foreach ($diffUsers as $previousUserPrompt) {\n $previousUserPrompt->delete();\n }\n\n // Remove those groups that are no longer added\n $diffGroups = $previousGroupPrompts->diff($shareGroupPrompts);\n foreach ($diffGroups as $previousGroupPrompt) {\n $previousGroupPrompt->delete();\n }\n\n return $prompt;\n }\n\n public function deletePrompt(AskAnythingPrompt $prompt): void\n {\n // Also deletes all associations with users\n $prompt->delete();\n }\n\n public function hidePromptForUser(AskAnythingPrompt $prompt, User $user): AskAnythingPrompt\n {\n $userPromptSettings = UserAskAnythingPrompt::where('user_id', $user->getId())\n ->where('prompt_id', $prompt->getId())\n ->first();\n\n if ($userPromptSettings === null) {\n $userPromptSettings = UserAskAnythingPrompt::create([\n 'user_id' => $user->getId(),\n 'prompt_id' => $prompt->getId(),\n ]);\n }\n\n $userPromptSettings->update([\n 'is_removed' => true,\n ]);\n\n return $prompt;\n }\n\n public function getPromptByUuid(string $uuid): ?AskAnythingPrompt\n {\n return AskAnythingPrompt::where('uuid', AskAnythingPrompt::toOptimized($uuid))->first();\n }\n\n public function orderPromptForUser(AskAnythingPrompt $prompt, User $user, int $order): void\n {\n $userPromptSettings = UserAskAnythingPrompt::where('user_id', $user->getId())\n ->where('prompt_id', $prompt->getId())\n ->first();\n\n if ($userPromptSettings === null) {\n $userPromptSettings = UserAskAnythingPrompt::create([\n 'user_id' => $user->getId(),\n 'prompt_id' => $prompt->getId(),\n ]);\n }\n\n $userPromptSettings->update([\n 'order' => $order,\n ]);\n }\n}","depth":4,"on_screen":true,"value":"<?php\n\ndeclare(strict_types=1);\n\nnamespace Jiminny\\Repositories;\n\nuse Illuminate\\Database\\Eloquent\\Builder;\nuse Illuminate\\Support\\Collection;\nuse Jiminny\\Models\\AskAnything\\AskAnythingPrompt;\nuse Jiminny\\Models\\AskAnything\\AskAnythingPromptTarget;\nuse Jiminny\\Models\\AskAnything\\UserAskAnythingPrompt;\nuse Jiminny\\Models\\Group;\nuse Jiminny\\Models\\User;\n\nclass AskAnythingRepository\n{\n /**\n * @return Collection<UserAskAnythingPrompt>\n */\n public function findSharedUsersAndGroupsByPromptId(int $promptId): Collection\n {\n return UserAskAnythingPrompt::query()\n ->where('prompt_id', $promptId)\n ->where('is_removed', false)\n ->get();\n }\n\n public function findSharedPromptByUser(int $promptId, User $user): ?UserAskAnythingPrompt\n {\n return UserAskAnythingPrompt::with('prompt')\n ->where('prompt_id', $promptId)\n ->where('user_id', $user->getId())\n ->first();\n }\n\n public function findSharedPromptByUserGroup(int $promptId, User $user): ?UserAskAnythingPrompt\n {\n $userGroupId = $user->getGroupId();\n\n return UserAskAnythingPrompt::with('prompt')\n ->where('prompt_id', $promptId)\n ->where(static function ($query) use ($userGroupId): void {\n if ($userGroupId !== null) {\n $query->where('group_id', $userGroupId);\n }\n })\n ->first();\n }\n\n /**\n * @return Collection<AskAnythingPrompt>\n */\n public function findPromptsByUserAndTarget(User $user, AskAnythingPromptTarget $target): Collection\n {\n $userGroupId = $user->getGroupId();\n $usersOwnedPrompts = UserAskAnythingPrompt::with('prompt')\n ->where(static function ($query) use ($user, $userGroupId): void {\n $query\n ->where('user_id', $user->getId());\n\n if ($userGroupId !== null) {\n $query->orWhere('group_id', $userGroupId);\n }\n })\n ->where('is_removed', false)\n ->whereHas('prompt', function (Builder $query) use ($target) {\n $query->where('target', $target);\n })\n ->orderByRaw('ISNULL(`order`), `order` ASC, `prompt_id` ASC')\n ->get()\n ->map(function (UserAskAnythingPrompt $userPrompt) {\n return $userPrompt->getPrompt();\n });\n\n // Remove those prompts that are hidden for the current user\n $usersOwnedPromptsFiltered = $usersOwnedPrompts->filter(function (AskAnythingPrompt $userPrompt) use ($user) {\n $promptId = $userPrompt->getId();\n $userDisabledPrompt = UserAskAnythingPrompt::query()\n ->where('prompt_id', $promptId)\n ->where('is_removed', true)\n ->where('user_id', $user->getId())\n ->first();\n\n return $userDisabledPrompt === null;\n });\n\n $defaultNonChangedPrompts = AskAnythingPrompt::where('target', $target)\n ->whereDoesntHave('userPrompts', function ($query) use ($user) {\n $query->where('user_id', $user->getId());\n })\n ->whereNull('owner_id')\n ->get();\n\n $allPrompts = $defaultNonChangedPrompts->merge($usersOwnedPromptsFiltered);\n\n if ($allPrompts->isNotEmpty()) {\n $allPrompts->loadCount('automatedReports');\n }\n\n return $allPrompts;\n }\n\n /**\n * @param array<User> $shareUsers\n * @param array<Group> $shareGroups\n */\n public function createPrompt(\n User $user,\n AskAnythingPromptTarget $target,\n string $title,\n string $content,\n array $shareUsers,\n array $shareGroups,\n ): AskAnythingPrompt {\n $prompt = AskAnythingPrompt::create([\n 'title' => $title,\n 'content' => $content,\n 'target' => $target,\n 'owner_id' => $user->getId(),\n ]);\n\n UserAskAnythingPrompt::create([\n 'user_id' => $user->getId(),\n 'prompt_id' => $prompt->getId(),\n ]);\n\n foreach ($shareUsers as $shareUser) {\n UserAskAnythingPrompt::create([\n 'user_id' => $shareUser->getId(),\n 'prompt_id' => $prompt->getId(),\n ]);\n }\n\n foreach ($shareGroups as $shareGroup) {\n UserAskAnythingPrompt::create([\n 'group_id' => $shareGroup->getId(),\n 'prompt_id' => $prompt->getId(),\n ]);\n }\n\n return $prompt;\n }\n\n /**\n * @param array<User> $shareUsers\n * @param array<Group> $shareGroups\n */\n public function editPrompt(\n AskAnythingPrompt $prompt,\n string $title,\n string $content,\n array $shareUsers,\n array $shareGroups,\n ): AskAnythingPrompt {\n $prompt->update([\n 'title' => $title,\n 'content' => $content,\n ]);\n\n $previousUserPrompts = UserAskAnythingPrompt::query()\n ->where('prompt_id', $prompt->getId())\n ->whereNull('group_id')\n ->whereNotNull('user_id')\n ->whereNot('user_id', $prompt->getOwnerId())\n ->get();\n\n $previousGroupPrompts = UserAskAnythingPrompt::query()\n ->where('prompt_id', $prompt->getId())\n ->whereNotNull('group_id')\n ->whereNull('user_id')\n ->get();\n\n $shareUserPrompts = [];\n foreach ($shareUsers as $shareUser) {\n $shareUserPrompts[] = UserAskAnythingPrompt::create([\n 'user_id' => $shareUser->getId(),\n 'prompt_id' => $prompt->getId(),\n ]);\n }\n\n $shareGroupPrompts = [];\n foreach ($shareGroups as $shareGroup) {\n $shareGroupPrompts[] = UserAskAnythingPrompt::create([\n 'group_id' => $shareGroup->getId(),\n 'prompt_id' => $prompt->getId(),\n ]);\n }\n\n // Remove those users that are no longer added\n $diffUsers = $previousUserPrompts->diff($shareUserPrompts);\n foreach ($diffUsers as $previousUserPrompt) {\n $previousUserPrompt->delete();\n }\n\n // Remove those groups that are no longer added\n $diffGroups = $previousGroupPrompts->diff($shareGroupPrompts);\n foreach ($diffGroups as $previousGroupPrompt) {\n $previousGroupPrompt->delete();\n }\n\n return $prompt;\n }\n\n public function deletePrompt(AskAnythingPrompt $prompt): void\n {\n // Also deletes all associations with users\n $prompt->delete();\n }\n\n public function hidePromptForUser(AskAnythingPrompt $prompt, User $user): AskAnythingPrompt\n {\n $userPromptSettings = UserAskAnythingPrompt::where('user_id', $user->getId())\n ->where('prompt_id', $prompt->getId())\n ->first();\n\n if ($userPromptSettings === null) {\n $userPromptSettings = UserAskAnythingPrompt::create([\n 'user_id' => $user->getId(),\n 'prompt_id' => $prompt->getId(),\n ]);\n }\n\n $userPromptSettings->update([\n 'is_removed' => true,\n ]);\n\n return $prompt;\n }\n\n public function getPromptByUuid(string $uuid): ?AskAnythingPrompt\n {\n return AskAnythingPrompt::where('uuid', AskAnythingPrompt::toOptimized($uuid))->first();\n }\n\n public function orderPromptForUser(AskAnythingPrompt $prompt, User $user, int $order): void\n {\n $userPromptSettings = UserAskAnythingPrompt::where('user_id', $user->getId())\n ->where('prompt_id', $prompt->getId())\n ->first();\n\n if ($userPromptSettings === null) {\n $userPromptSettings = UserAskAnythingPrompt::create([\n 'user_id' => $user->getId(),\n 'prompt_id' => $prompt->getId(),\n ]);\n }\n\n $userPromptSettings->update([\n 'order' => $order,\n ]);\n }\n}","role_description":"text entry area","is_enabled":true,"is_focused":true,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Execute","depth":4,"bounds":{"left":0.42785904,"top":0.09896249,"width":0.008643617,"height":0.01915403},"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Explain Plan","depth":4,"bounds":{"left":0.43650267,"top":0.09896249,"width":0.008643617,"height":0.01915403},"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Browse Query History","depth":4,"bounds":{"left":0.4474734,"top":0.09896249,"width":0.008643617,"height":0.01915403},"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"View Parameters","depth":4,"bounds":{"left":0.45611703,"top":0.09896249,"width":0.008643617,"height":0.01915403},"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Open Query Execution Settings…","depth":4,"bounds":{"left":0.46476063,"top":0.09896249,"width":0.008643617,"height":0.01915403},"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"In-Editor Results","depth":4,"bounds":{"left":0.47573137,"top":0.09896249,"width":0.008643617,"height":0.01915403},"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Tx: Auto","depth":4,"bounds":{"left":0.4867021,"top":0.09896249,"width":0.024268618,"height":0.01915403},"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Cancel Running Statements","depth":4,"bounds":{"left":0.51329786,"top":0.09896249,"width":0.008643617,"height":0.01915403},"on_screen":true,"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Playground","depth":4,"bounds":{"left":0.5242686,"top":0.09896249,"width":0.029587766,"height":0.01915403},"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"jiminny","depth":4,"bounds":{"left":0.70611703,"top":0.09896249,"width":0.02825798,"height":0.01915403},"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Code changed:","depth":4,"bounds":{"left":0.27027926,"top":1.0,"width":0.042220745,"height":0.0},"on_screen":false,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Hide","depth":4,"bounds":{"left":0.27027926,"top":1.0,"width":0.008643617,"height":0.0},"on_screen":false,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Sync Changes","depth":4,"bounds":{"left":0.27027926,"top":1.0,"width":0.008643617,"height":0.0},"on_screen":false,"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Hide This Notification","depth":4,"bounds":{"left":0.27027926,"top":1.0,"width":0.008643617,"height":0.0},"on_screen":false,"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"21","depth":4,"bounds":{"left":0.66921544,"top":0.123703115,"width":0.009640957,"height":0.015163607},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"1","depth":4,"bounds":{"left":0.68085104,"top":0.123703115,"width":0.00731383,"height":0.015163607},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"18","depth":4,"bounds":{"left":0.69015956,"top":0.123703115,"width":0.009640957,"height":0.015163607},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"2","depth":4,"bounds":{"left":0.7017952,"top":0.123703115,"width":0.007978723,"height":0.015163607},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"6","depth":4,"bounds":{"left":0.7117686,"top":0.123703115,"width":0.007978723,"height":0.015163607},"on_screen":true,"role_description":"text"},{"role":"AXButton","text":"Previous Highlighted Error","depth":4,"bounds":{"left":0.72140956,"top":0.12210695,"width":0.00731383,"height":0.018355945},"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Next Highlighted Error","depth":4,"bounds":{"left":0.7287234,"top":0.12210695,"width":0.006981383,"height":0.018355945},"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXTextArea","text":"SELECT a.id, a.uuid, a.actual_start_time, o.id, o.uuid FROM opportunities o\nJOIN activities a ON o.id = a.opportunity_id\nWHERE a.crm_configuration_id = 39\nAND a.actual_start_time > '2025-10-13'\nAND a.type IN ('conference', 'softphone-inbound', 'softphone-outbound')\n;\n\nSELECT * FROM activities\nWHERE crm_configuration_id = 39 and user_id = 143\nand actual_start_time >= '2025-10-13'\nAND type IN ('conference', 'softphone-inbound', 'softphone-outbound')\n;\n\nSELECT * FROM opportunities WHERE account_id IN (178);\nselect * from activities where id IN (620137, 620187, 620188, 620189, 620230);\n\n# HS\nSELECT * FROM opportunities WHERE id IN (238);\nselect * from activities where id IN (477,2076);\n\nselect * from users;\n\nSELECT COUNT(*) FROM users;\nSELECT COUNT(*) FROM activities;\nSELECT COUNT(*) FROM opportunities;\n\nUPDATE activities\nSET\n actual_start_time = '2025-12-19 09:00:00',\n actual_end_time = '2025-12-19 10:30:00',\n scheduled_start_time = '2025-12-19 09:00:00',\n scheduled_end_time = '2025-12-19 10:30:00'\nWHERE id IN (407509,407375);\n\nselect * from partners;\n\nSELECT id, uuid, type, actual_start_time, user_id, crm_configuration_id\nFROM activities\nWHERE user_id = 143\nAND actual_start_time >= '2025-10-13 00:00:00'\nAND actual_start_time <= '2026-01-13 23:59:59'\nORDER BY actual_start_time DESC;\n\nSELECT * FROM activities WHERE uuid_to_bin('78eda160-3086-435f-88a5-bb0c71b6008d') = uuid;\nSELECT * FROM crm_layouts where crm_configuration_id = 39;\nSELECT * FROM crm_layout_entities WHERE crm_layout_id = 282;\n# lead_id\n# account_id 177\n# contact_id 3969\n# opportunity_id\n# stage_id 203\n\nSELECT * FROM opportunities WHERE opportunities.crm_configuration_id = id = 282;\n\nSELECT * FROM activities where crm_configuration_id = 39 AND type = 'conference'\nAND user_id = 143 and actual_start_time >= '2025-10-13';\n\nSELECT * FROM activities a\n# JOIN opportunities o ON a.opportunity_id = o.id\nWHERE a.crm_configuration_id = 39 AND a.type = 'conference'\nand status = 'completed' and recording_state = 'recorded'\nand a.actual_start_time >= '2025-10-13'\nAND a.user_id = 143\n;\n\nselect * from leads\nwhere crm_configuration_id = 39; # 112 -> ac. 178, 109 => op. 1707\n\nSELECT * FROM activities WHERE id IN (356013,616188,616202,616310,407509,407375,356001,356008);\nSELECT * FROM activities WHERE id IN (356013,616188,616202,616310);\nSELECT * FROM activities WHERE id IN (407509,407375); # leads: 112, 109 | status - 198\nSELECT * FROM activities WHERE id IN (356001, 356008); # contacts:\n\nSELECT * FROM opportunities WHERE id IN (1707);\nSELECT * FROM stages where id IN (204, 198);\nSELECT * FROM opportunities WHERE account_id IN (178);\nSELECT * FROM opportunities WHERE crm_configuration_id = 39 AND created_at > '2025-01-01';\nSELECT * FROM contacts WHERE account_id IN (178); # 4118 Musaibe, 4448 Ceco Personal\n\nSELECT * FROM activities where crm_configuration_id = 39\nAND opportunity_id IS NULL\nAND is_internal = false\nand status = 'completed' and recording_state = 'recorded'\nAND actual_start_time >= '2025-10-13'\nAND (lead_id IS NOT NULL OR contact_id IS NOT NULL OR account_id IS NOT NULL)\n# AND lead_id IN (112, 109)\n;\n\nSELECT * FROM crm_profiles WHERE user_id = 143;\n\nselect * from inboxes; # 212\nselect * from users where id = 143; # 143\nselect * from inbox_email_batches where inbox_id = 212\nand updated_at >= '2026-01-28 00:00:00' order by id desc;\nselect * from inbox_emails where inbox_id = 212\nand batch_id = 95885 order by id desc;\nselect * from email_messages where origin_user_id = 143;\nselect * from activities where user_id = 143 and updated_at >= '2026-01-28 00:00:00';\nselect * from participants where activity_id = 620247;\n\nselect * from crm_profiles where user_id = 143;\n\nSELECT * FROM activities WHERE uuid_to_bin('458cf915-b914-4000-b083-5687b32b2956') = uuid; # 356001\nselect * from transcription where activity_id = 356001; # 6943\nselect * from ai_prompts where transcription_id = 6943;\nSELECT * FROM activity_summary_logs where activity_id = 356001;\n\nSELECT * FROM social_accounts WHERE sociable_id = 143;\n\n# ************************************************************************************\nSELECT * FROM activities WHERE uuid_to_bin('0164a4fb-cb95-454e-9edd-4d804e4999bd') = uuid;\n# 422515 softphone tr. 8100\n\nSELECT * FROM activities WHERE uuid_to_bin('7520add8-8d87-41a5-98e5-fc4edf96f21e') = uuid;\n# 407509 conference tr. 7670 crmId: 00UD1000002J9aTMAS\n\nselect * from ai_prompts where transcription_id IN (8100, 7670);\nselect * from activity_summary_logs where activity_id = 407509;\n\nselect * from sidekick_settings;\nselect * from default_activity_types;\n\nSELECT * FROM contacts WHERE crm_configuration_id = 39 and email = 'm.kogoj@gmx.at';\nSELECT * FROM leads WHERE crm_configuration_id = 39 and email = 'm.kogoj@gmx.at';\n\nSELECT * FROM activity_searches where user_id = 143;\nSELECT * FROM groups where team_id = 1;\n\nselect * from teams where id = 1;\nselect * from groups where team_id = 1; # 1150 - 7e75f8025c22\nselect id, name, group_id, status, deleted_at, email\nfrom users where team_id = 1 order by group_id desc ;\n\nselect * from activity_searches where id in (1977, 1978, 1979);\nselect * from activity_search_filters where activity_search_id IN (1977, 1978, 1979);\nselect * from activity_search_filters where filter = 'group_id' and value = '443f26b8-8512-437e-a9f9-7e75f8025c22'; # 10268, 10272, 10277\nselect * from nudges where activity_search_id IN (1977, 1978, 1979); # 877, 878, 879\n\nINSERT INTO `activity_search_filters`\n(`activity_search_id`, `filter`, `value`) VALUES\n(1977, 'group_id', '443f26b8-8512-437e-a9f9-7e75f8025c22'),\n(1978, 'group_id', '443f26b8-8512-437e-a9f9-7e75f8025c22'),\n(1979, 'group_id', '443f26b8-8512-437e-a9f9-7e75f8025c22')\n;\n\nselect * from crm_configurations where id = 39;\n\n\nselect sa.* from users u JOIN social_accounts sa on u.id = sa.sociable_id\nwhere u.team_id = 1;\nSELECT * FROM social_accounts WHERE sociable_id = 1635;\nSELECT * FROM users WHERE id = 1635;\n\nselect * from teams where id = 1;\nselect * from users where team_id = 1;\nselect * from team_features where team_id = 1;\nselect * from features;\n\nSELECT * FROM activity_searches where id = 1982; # 1981\nSELECT * FROM activity_search_filters WHERE activity_search_id = 1982;\n\nSELECT * FROM activities WHERE uuid_to_bin('e916569b-086c-4bd1-94d7-5e3802c27ccf') = uuid;\nSELECT * FROM groups WHERE id = 1439;\nSELECT * FROM users WHERE group_id = 1439;\n\nselect * from permissions; # 158\nselect * from roles;\nselect * from permission_role;\n\nselect * from teams where id = 1;\nselect * from groups g JOIN playbooks p on g.playbook_id = p.id where g.team_id = 1;\nselect * from groups where id = 28;\nselect * from playbooks where team_id = 1;\nselect * from playbooks where id = 179;\nselect * from playbook_categories where id = 1391;\nselect * from users where id = 143;\nselect * from crm_profiles where user_id = 143;\nselect * from activities where crm_configuration_id = 39 and type = 'conference'\nand crm_provider_id IS NOT NULL ORDER by id desc;\nselect * from activities where id = 422003; # 00UO400000pB6fpMAC\n\nSELECT ar.id, ar.uuid, ar.media_type, ar.status, a.type\nFROM automated_report_results ar\nJOIN automated_reports a ON a.id = ar.report_id\nWHERE a.type = 'ask_jiminny'\nLIMIT 10;\n\nSELECT * FROM automated_reports where id = 71;\nSELECT * FROM automated_report_results where report_id = 71;\nUPDATE automated_reports set playbook_categories = NULL where id = 68;\nSELECT * FROM automated_report_results where id = 275;\n\nSELECT * FROM automated_reports order by id desc;\nSELECT * FROM automated_report_results order by id desc;\nselect * from activity_searches where user_id = 143;\nselect * from ask_anything_prompts;\n\nSELECT `automated_report_results`.* FROM `automated_report_results`\nINNER JOIN `automated_reports`\n ON `automated_report_results`.`report_id` = `automated_reports`.`id`\nWHERE 1=1\n AND `automated_report_results`.`generated_at` IS NOT NULL\n# AND `automated_report_results`.`sent_at` IS NOT NULL\n AND `automated_reports`.`team_id` = 1\n AND JSON_CONTAINS(`automated_reports`.`recipients`, 143, '$.\"users\"')\n;\n\nSELECT * FROM automated_reports where id = 67;\nSELECT * FROM automated_reports where id = 42;\nSELECT * FROM users WHERE id = 143; # group 28\n\nselect * from teams where id = 3143;\nselect * from crm_configurations where id = 500;\nselect * from users where name = 'Integration Account'; # 1695\nSELECT * FROM social_accounts WHERE sociable_id = 1695;\n\nselect * from activities where crm_configuration_id = 39\nand recording_state = 'recorded' and duration > 60\nand status = 'completed' and actual_start_time >= '2025-12-01';\n\nSELECT * FROM activities WHERE uuid_to_bin('458cf915-b914-4000-b083-5687b32b2956') = uuid;\n\nselect * from leads;\n\nSELECT * FROM activities WHERE uuid_to_bin('f43cf158-e60d-46e5-92f8-c4e0594a3219') = uuid; # 422003\nSELECT * FROM activities WHERE id IN (16,422003);\nSELECT * FROM activities where status = 'failed';\n\nSELECT * FROM tracks WHERE activity_id = 422003;\n\nSELECT\n a.*\nFROM activities a\nJOIN users u ON a.user_id = u.id\nWHERE\n a.status = 'completed'\n AND uuid_to_bin('641f1acb-16b8-42d1-8726-df52979dad0e') = u.uuid\n AND a.deleted_at IS NULL\n AND EXISTS (\n SELECT 1 FROM tracks t\n WHERE t.activity_id = a.id\n AND t.type IN ('audio', 'video')\n )\nORDER BY a.actual_start_time DESC\nLIMIT 25;\n\nselect * from teams where id = 19;\nselect * from crm_configurations where provider = 'pipedrive';\nSELECT\n CONCAT(u.id, CASE WHEN u.id = t.owner_id THEN ' (owner)' ELSE '' END) AS user_id,\n u.email,\n sa.*,\n t.owner_id FROM social_accounts sa\nJOIN users u on u.id = sa.sociable_id\nJOIN teams t on t.id = u.team_id\nWHERE u.team_id = 19 and sa.provider = 'pipedrive';\n\nSELECT * FROM social_accounts WHERE id = 1116;\n\nUPDATE social_accounts SET provider_user_token = 'v1u:AQIBAHj-LzTNK2yuuuaLqifzhWb9crUNKTpk4FlQ9rjnXqp_6AEQhDhDQVa1nvWCHEvnpvSEAAAAfjB8BgkqhkiG9w0BBwagbzBtAgEAMGgGCSqGSIb3DQEHATAeBglghkgBZQMEAS4wEQQMnG8KNcZLIjEnlRPxAgEQgDsGPIcKjsMU7Qel36BtM5FCQa56mYUy24_AAoqd12yjVFkq6egLqS0inp-5G4JE7frJURMV8VTw_fY14g:rYyABXmXsBhEdYU_dfmDH8GF-vzSseJXE5bds_zAyVdAwlTXOPdTl9i4PS4jVofLvpq7IRgvEt2BzGhR6cWiQXHHD0AtayQOkZm262ClFCsMYtKGfep0Jq1n0eiRIVqT9gAY7rWvhpEDF8oAlgnRGmqx-euIkpzE79sPXh4OjNx_yUIaanjyplGpBBJ_NiACd1sMlZmseyUyyU_gldqlCBAuK9hhATc9icgg7zuoc7nKBBrlg49tRtzEagDh6xbFBpzfCp7kE_7n4TLWfWHLPMzu-bktjwA969G9sFRmoH1GjPA0a2odDT4dk1_1ouBrB1NcTT2hQUqH-_RzDW2nWmeoVHA',\nprovider_refresh_token = '5034113:19555731:87c14258f0c813d02767ee975f6044d46b6b2bfc',\nexpires = 1779091997,\nstate = 'connected'\nWHERE id = 1116;\n\n \"provider_user_token\": \"v1u:AQIBAHj-LzTNK2yuuuaLqifzhWb9crUNKTpk4FlQ9rjnXqp_6AEQhDhDQVa1nvWCHEvnpvSEAAAAfjB8BgkqhkiG9w0BBwagbzBtAgEAMGgGCSqGSIb3DQEHATAeBglghkgBZQMEAS4wEQQMnG8KNcZLIjEnlRPxAgEQgDsGPIcKjsMU7Qel36BtM5FCQa56mYUy24_AAoqd12yjVFkq6egLqS0inp-5G4JE7frJURMV8VTw_fY14g:rYyABXmXsBhEdYU_dfmDH8GF-vzSseJXE5bds_zAyVdAwlTXOPdTl9i4PS4jVofLvpq7IRgvEt2BzGhR6cWiQXHHD0AtayQOkZm262ClFCsMYtKGfep0Jq1n0eiRIVqT9gAY7rWvhpEDF8oAlgnRGmqx-euIkpzE79sPXh4OjNx_yUIaanjyplGpBBJ_NiACd1sMlZmseyUyyU_gldqlCBAuK9hhATc9icgg7zuoc7nKBBrlg49tRtzEagDh6xbFBpzfCp7kE_7n4TLWfWHLPMzu-bktjwA969G9sFRmoH1GjPA0a2odDT4dk1_1ouBrB1NcTT2hQUqH-_RzDW2nWmeoVHA\",\n \"provider_refresh_token\": \"5034113:19555731:87c14258f0c813d02767ee975f6044d46b6b2bfc\",\n \"expires\": 1779091997,","depth":4,"on_screen":true,"value":"SELECT a.id, a.uuid, a.actual_start_time, o.id, o.uuid FROM opportunities o\nJOIN activities a ON o.id = a.opportunity_id\nWHERE a.crm_configuration_id = 39\nAND a.actual_start_time > '2025-10-13'\nAND a.type IN ('conference', 'softphone-inbound', 'softphone-outbound')\n;\n\nSELECT * FROM activities\nWHERE crm_configuration_id = 39 and user_id = 143\nand actual_start_time >= '2025-10-13'\nAND type IN ('conference', 'softphone-inbound', 'softphone-outbound')\n;\n\nSELECT * FROM opportunities WHERE account_id IN (178);\nselect * from activities where id IN (620137, 620187, 620188, 620189, 620230);\n\n# HS\nSELECT * FROM opportunities WHERE id IN (238);\nselect * from activities where id IN (477,2076);\n\nselect * from users;\n\nSELECT COUNT(*) FROM users;\nSELECT COUNT(*) FROM activities;\nSELECT COUNT(*) FROM opportunities;\n\nUPDATE activities\nSET\n actual_start_time = '2025-12-19 09:00:00',\n actual_end_time = '2025-12-19 10:30:00',\n scheduled_start_time = '2025-12-19 09:00:00',\n scheduled_end_time = '2025-12-19 10:30:00'\nWHERE id IN (407509,407375);\n\nselect * from partners;\n\nSELECT id, uuid, type, actual_start_time, user_id, crm_configuration_id\nFROM activities\nWHERE user_id = 143\nAND actual_start_time >= '2025-10-13 00:00:00'\nAND actual_start_time <= '2026-01-13 23:59:59'\nORDER BY actual_start_time DESC;\n\nSELECT * FROM activities WHERE uuid_to_bin('78eda160-3086-435f-88a5-bb0c71b6008d') = uuid;\nSELECT * FROM crm_layouts where crm_configuration_id = 39;\nSELECT * FROM crm_layout_entities WHERE crm_layout_id = 282;\n# lead_id\n# account_id 177\n# contact_id 3969\n# opportunity_id\n# stage_id 203\n\nSELECT * FROM opportunities WHERE opportunities.crm_configuration_id = id = 282;\n\nSELECT * FROM activities where crm_configuration_id = 39 AND type = 'conference'\nAND user_id = 143 and actual_start_time >= '2025-10-13';\n\nSELECT * FROM activities a\n# JOIN opportunities o ON a.opportunity_id = o.id\nWHERE a.crm_configuration_id = 39 AND a.type = 'conference'\nand status = 'completed' and recording_state = 'recorded'\nand a.actual_start_time >= '2025-10-13'\nAND a.user_id = 143\n;\n\nselect * from leads\nwhere crm_configuration_id = 39; # 112 -> ac. 178, 109 => op. 1707\n\nSELECT * FROM activities WHERE id IN (356013,616188,616202,616310,407509,407375,356001,356008);\nSELECT * FROM activities WHERE id IN (356013,616188,616202,616310);\nSELECT * FROM activities WHERE id IN (407509,407375); # leads: 112, 109 | status - 198\nSELECT * FROM activities WHERE id IN (356001, 356008); # contacts:\n\nSELECT * FROM opportunities WHERE id IN (1707);\nSELECT * FROM stages where id IN (204, 198);\nSELECT * FROM opportunities WHERE account_id IN (178);\nSELECT * FROM opportunities WHERE crm_configuration_id = 39 AND created_at > '2025-01-01';\nSELECT * FROM contacts WHERE account_id IN (178); # 4118 Musaibe, 4448 Ceco Personal\n\nSELECT * FROM activities where crm_configuration_id = 39\nAND opportunity_id IS NULL\nAND is_internal = false\nand status = 'completed' and recording_state = 'recorded'\nAND actual_start_time >= '2025-10-13'\nAND (lead_id IS NOT NULL OR contact_id IS NOT NULL OR account_id IS NOT NULL)\n# AND lead_id IN (112, 109)\n;\n\nSELECT * FROM crm_profiles WHERE user_id = 143;\n\nselect * from inboxes; # 212\nselect * from users where id = 143; # 143\nselect * from inbox_email_batches where inbox_id = 212\nand updated_at >= '2026-01-28 00:00:00' order by id desc;\nselect * from inbox_emails where inbox_id = 212\nand batch_id = 95885 order by id desc;\nselect * from email_messages where origin_user_id = 143;\nselect * from activities where user_id = 143 and updated_at >= '2026-01-28 00:00:00';\nselect * from participants where activity_id = 620247;\n\nselect * from crm_profiles where user_id = 143;\n\nSELECT * FROM activities WHERE uuid_to_bin('458cf915-b914-4000-b083-5687b32b2956') = uuid; # 356001\nselect * from transcription where activity_id = 356001; # 6943\nselect * from ai_prompts where transcription_id = 6943;\nSELECT * FROM activity_summary_logs where activity_id = 356001;\n\nSELECT * FROM social_accounts WHERE sociable_id = 143;\n\n# ************************************************************************************\nSELECT * FROM activities WHERE uuid_to_bin('0164a4fb-cb95-454e-9edd-4d804e4999bd') = uuid;\n# 422515 softphone tr. 8100\n\nSELECT * FROM activities WHERE uuid_to_bin('7520add8-8d87-41a5-98e5-fc4edf96f21e') = uuid;\n# 407509 conference tr. 7670 crmId: 00UD1000002J9aTMAS\n\nselect * from ai_prompts where transcription_id IN (8100, 7670);\nselect * from activity_summary_logs where activity_id = 407509;\n\nselect * from sidekick_settings;\nselect * from default_activity_types;\n\nSELECT * FROM contacts WHERE crm_configuration_id = 39 and email = 'm.kogoj@gmx.at';\nSELECT * FROM leads WHERE crm_configuration_id = 39 and email = 'm.kogoj@gmx.at';\n\nSELECT * FROM activity_searches where user_id = 143;\nSELECT * FROM groups where team_id = 1;\n\nselect * from teams where id = 1;\nselect * from groups where team_id = 1; # 1150 - 7e75f8025c22\nselect id, name, group_id, status, deleted_at, email\nfrom users where team_id = 1 order by group_id desc ;\n\nselect * from activity_searches where id in (1977, 1978, 1979);\nselect * from activity_search_filters where activity_search_id IN (1977, 1978, 1979);\nselect * from activity_search_filters where filter = 'group_id' and value = '443f26b8-8512-437e-a9f9-7e75f8025c22'; # 10268, 10272, 10277\nselect * from nudges where activity_search_id IN (1977, 1978, 1979); # 877, 878, 879\n\nINSERT INTO `activity_search_filters`\n(`activity_search_id`, `filter`, `value`) VALUES\n(1977, 'group_id', '443f26b8-8512-437e-a9f9-7e75f8025c22'),\n(1978, 'group_id', '443f26b8-8512-437e-a9f9-7e75f8025c22'),\n(1979, 'group_id', '443f26b8-8512-437e-a9f9-7e75f8025c22')\n;\n\nselect * from crm_configurations where id = 39;\n\n\nselect sa.* from users u JOIN social_accounts sa on u.id = sa.sociable_id\nwhere u.team_id = 1;\nSELECT * FROM social_accounts WHERE sociable_id = 1635;\nSELECT * FROM users WHERE id = 1635;\n\nselect * from teams where id = 1;\nselect * from users where team_id = 1;\nselect * from team_features where team_id = 1;\nselect * from features;\n\nSELECT * FROM activity_searches where id = 1982; # 1981\nSELECT * FROM activity_search_filters WHERE activity_search_id = 1982;\n\nSELECT * FROM activities WHERE uuid_to_bin('e916569b-086c-4bd1-94d7-5e3802c27ccf') = uuid;\nSELECT * FROM groups WHERE id = 1439;\nSELECT * FROM users WHERE group_id = 1439;\n\nselect * from permissions; # 158\nselect * from roles;\nselect * from permission_role;\n\nselect * from teams where id = 1;\nselect * from groups g JOIN playbooks p on g.playbook_id = p.id where g.team_id = 1;\nselect * from groups where id = 28;\nselect * from playbooks where team_id = 1;\nselect * from playbooks where id = 179;\nselect * from playbook_categories where id = 1391;\nselect * from users where id = 143;\nselect * from crm_profiles where user_id = 143;\nselect * from activities where crm_configuration_id = 39 and type = 'conference'\nand crm_provider_id IS NOT NULL ORDER by id desc;\nselect * from activities where id = 422003; # 00UO400000pB6fpMAC\n\nSELECT ar.id, ar.uuid, ar.media_type, ar.status, a.type\nFROM automated_report_results ar\nJOIN automated_reports a ON a.id = ar.report_id\nWHERE a.type = 'ask_jiminny'\nLIMIT 10;\n\nSELECT * FROM automated_reports where id = 71;\nSELECT * FROM automated_report_results where report_id = 71;\nUPDATE automated_reports set playbook_categories = NULL where id = 68;\nSELECT * FROM automated_report_results where id = 275;\n\nSELECT * FROM automated_reports order by id desc;\nSELECT * FROM automated_report_results order by id desc;\nselect * from activity_searches where user_id = 143;\nselect * from ask_anything_prompts;\n\nSELECT `automated_report_results`.* FROM `automated_report_results`\nINNER JOIN `automated_reports`\n ON `automated_report_results`.`report_id` = `automated_reports`.`id`\nWHERE 1=1\n AND `automated_report_results`.`generated_at` IS NOT NULL\n# AND `automated_report_results`.`sent_at` IS NOT NULL\n AND `automated_reports`.`team_id` = 1\n AND JSON_CONTAINS(`automated_reports`.`recipients`, 143, '$.\"users\"')\n;\n\nSELECT * FROM automated_reports where id = 67;\nSELECT * FROM automated_reports where id = 42;\nSELECT * FROM users WHERE id = 143; # group 28\n\nselect * from teams where id = 3143;\nselect * from crm_configurations where id = 500;\nselect * from users where name = 'Integration Account'; # 1695\nSELECT * FROM social_accounts WHERE sociable_id = 1695;\n\nselect * from activities where crm_configuration_id = 39\nand recording_state = 'recorded' and duration > 60\nand status = 'completed' and actual_start_time >= '2025-12-01';\n\nSELECT * FROM activities WHERE uuid_to_bin('458cf915-b914-4000-b083-5687b32b2956') = uuid;\n\nselect * from leads;\n\nSELECT * FROM activities WHERE uuid_to_bin('f43cf158-e60d-46e5-92f8-c4e0594a3219') = uuid; # 422003\nSELECT * FROM activities WHERE id IN (16,422003);\nSELECT * FROM activities where status = 'failed';\n\nSELECT * FROM tracks WHERE activity_id = 422003;\n\nSELECT\n a.*\nFROM activities a\nJOIN users u ON a.user_id = u.id\nWHERE\n a.status = 'completed'\n AND uuid_to_bin('641f1acb-16b8-42d1-8726-df52979dad0e') = u.uuid\n AND a.deleted_at IS NULL\n AND EXISTS (\n SELECT 1 FROM tracks t\n WHERE t.activity_id = a.id\n AND t.type IN ('audio', 'video')\n )\nORDER BY a.actual_start_time DESC\nLIMIT 25;\n\nselect * from teams where id = 19;\nselect * from crm_configurations where provider = 'pipedrive';\nSELECT\n CONCAT(u.id, CASE WHEN u.id = t.owner_id THEN ' (owner)' ELSE '' END) AS user_id,\n u.email,\n sa.*,\n t.owner_id FROM social_accounts sa\nJOIN users u on u.id = sa.sociable_id\nJOIN teams t on t.id = u.team_id\nWHERE u.team_id = 19 and sa.provider = 'pipedrive';\n\nSELECT * FROM social_accounts WHERE id = 1116;\n\nUPDATE social_accounts SET provider_user_token = 'v1u:AQIBAHj-LzTNK2yuuuaLqifzhWb9crUNKTpk4FlQ9rjnXqp_6AEQhDhDQVa1nvWCHEvnpvSEAAAAfjB8BgkqhkiG9w0BBwagbzBtAgEAMGgGCSqGSIb3DQEHATAeBglghkgBZQMEAS4wEQQMnG8KNcZLIjEnlRPxAgEQgDsGPIcKjsMU7Qel36BtM5FCQa56mYUy24_AAoqd12yjVFkq6egLqS0inp-5G4JE7frJURMV8VTw_fY14g:rYyABXmXsBhEdYU_dfmDH8GF-vzSseJXE5bds_zAyVdAwlTXOPdTl9i4PS4jVofLvpq7IRgvEt2BzGhR6cWiQXHHD0AtayQOkZm262ClFCsMYtKGfep0Jq1n0eiRIVqT9gAY7rWvhpEDF8oAlgnRGmqx-euIkpzE79sPXh4OjNx_yUIaanjyplGpBBJ_NiACd1sMlZmseyUyyU_gldqlCBAuK9hhATc9icgg7zuoc7nKBBrlg49tRtzEagDh6xbFBpzfCp7kE_7n4TLWfWHLPMzu-bktjwA969G9sFRmoH1GjPA0a2odDT4dk1_1ouBrB1NcTT2hQUqH-_RzDW2nWmeoVHA',\nprovider_refresh_token = '5034113:19555731:87c14258f0c813d02767ee975f6044d46b6b2bfc',\nexpires = 1779091997,\nstate = 'connected'\nWHERE id = 1116;\n\n \"provider_user_token\": \"v1u:AQIBAHj-LzTNK2yuuuaLqifzhWb9crUNKTpk4FlQ9rjnXqp_6AEQhDhDQVa1nvWCHEvnpvSEAAAAfjB8BgkqhkiG9w0BBwagbzBtAgEAMGgGCSqGSIb3DQEHATAeBglghkgBZQMEAS4wEQQMnG8KNcZLIjEnlRPxAgEQgDsGPIcKjsMU7Qel36BtM5FCQa56mYUy24_AAoqd12yjVFkq6egLqS0inp-5G4JE7frJURMV8VTw_fY14g:rYyABXmXsBhEdYU_dfmDH8GF-vzSseJXE5bds_zAyVdAwlTXOPdTl9i4PS4jVofLvpq7IRgvEt2BzGhR6cWiQXHHD0AtayQOkZm262ClFCsMYtKGfep0Jq1n0eiRIVqT9gAY7rWvhpEDF8oAlgnRGmqx-euIkpzE79sPXh4OjNx_yUIaanjyplGpBBJ_NiACd1sMlZmseyUyyU_gldqlCBAuK9hhATc9icgg7zuoc7nKBBrlg49tRtzEagDh6xbFBpzfCp7kE_7n4TLWfWHLPMzu-bktjwA969G9sFRmoH1GjPA0a2odDT4dk1_1ouBrB1NcTT2hQUqH-_RzDW2nWmeoVHA\",\n \"provider_refresh_token\": \"5034113:19555731:87c14258f0c813d02767ee975f6044d46b6b2bfc\",\n \"expires\": 1779091997,","role_description":"text entry area","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXTextField","text":"Socket fail to connect to host:address=(host=localhost)(port=3306)(type=primary). Connection refused","depth":3,"bounds":{"left":0.42652926,"top":0.9577015,"width":0.29321808,"height":0.013567438},"on_screen":true,"value":"Socket fail to connect to host:address=(host=localhost)(port=3306)(type=primary). Connection refused","role_description":"text field","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"Project","depth":3,"on_screen":false,"role_description":"text"},{"role":"AXButton","text":"Project","depth":3,"bounds":{"left":0.011968086,"top":0.047885075,"width":0.024268618,"height":0.024740623},"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"New File or Directory…","depth":4,"bounds":{"left":0.27027926,"top":1.0,"width":0.008643617,"height":0.0},"on_screen":false,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Expand Selected","depth":4,"bounds":{"left":0.27027926,"top":1.0,"width":0.008643617,"height":0.0},"on_screen":false,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Collapse All","depth":4,"bounds":{"left":0.27027926,"top":1.0,"width":0.008643617,"height":0.0},"on_screen":false,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Options","depth":4,"bounds":{"left":0.27027926,"top":1.0,"width":0.008643617,"height":0.0},"on_screen":false,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Hide","depth":4,"bounds":{"left":0.27027926,"top":1.0,"width":0.008643617,"height":0.0},"on_screen":false,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false}]...
|
-3951396835426018671
|
6902642803485316685
|
idle
|
accessibility
|
NULL
|
Project: faVsco.js, menu
JY-20676-delete-report-re Project: faVsco.js, menu
JY-20676-delete-report-related-objects, menu
Start Listening for PHP Debug Connections
AskAnythingPromptServiceTest
Run 'AskAnythingPromptServiceTest'
Debug 'AskAnythingPromptServiceTest'
More Actions
JetBrains AI
Search Everywhere
IDE and Project Settings
Sync Changes
Hide This Notification
Code changed:
Hide
12
Previous Highlighted Error
Next Highlighted Error
<?php
declare(strict_types=1);
namespace Jiminny\Repositories;
use Illuminate\Database\Eloquent\Builder;
use Illuminate\Support\Collection;
use Jiminny\Models\AskAnything\AskAnythingPrompt;
use Jiminny\Models\AskAnything\AskAnythingPromptTarget;
use Jiminny\Models\AskAnything\UserAskAnythingPrompt;
use Jiminny\Models\Group;
use Jiminny\Models\User;
class AskAnythingRepository
{
/**
* @return Collection<UserAskAnythingPrompt>
*/
public function findSharedUsersAndGroupsByPromptId(int $promptId): Collection
{
return UserAskAnythingPrompt::query()
->where('prompt_id', $promptId)
->where('is_removed', false)
->get();
}
public function findSharedPromptByUser(int $promptId, User $user): ?UserAskAnythingPrompt
{
return UserAskAnythingPrompt::with('prompt')
->where('prompt_id', $promptId)
->where('user_id', $user->getId())
->first();
}
public function findSharedPromptByUserGroup(int $promptId, User $user): ?UserAskAnythingPrompt
{
$userGroupId = $user->getGroupId();
return UserAskAnythingPrompt::with('prompt')
->where('prompt_id', $promptId)
->where(static function ($query) use ($userGroupId): void {
if ($userGroupId !== null) {
$query->where('group_id', $userGroupId);
}
})
->first();
}
/**
* @return Collection<AskAnythingPrompt>
*/
public function findPromptsByUserAndTarget(User $user, AskAnythingPromptTarget $target): Collection
{
$userGroupId = $user->getGroupId();
$usersOwnedPrompts = UserAskAnythingPrompt::with('prompt')
->where(static function ($query) use ($user, $userGroupId): void {
$query
->where('user_id', $user->getId());
if ($userGroupId !== null) {
$query->orWhere('group_id', $userGroupId);
}
})
->where('is_removed', false)
->whereHas('prompt', function (Builder $query) use ($target) {
$query->where('target', $target);
})
->orderByRaw('ISNULL(`order`), `order` ASC, `prompt_id` ASC')
->get()
->map(function (UserAskAnythingPrompt $userPrompt) {
return $userPrompt->getPrompt();
});
// Remove those prompts that are hidden for the current user
$usersOwnedPromptsFiltered = $usersOwnedPrompts->filter(function (AskAnythingPrompt $userPrompt) use ($user) {
$promptId = $userPrompt->getId();
$userDisabledPrompt = UserAskAnythingPrompt::query()
->where('prompt_id', $promptId)
->where('is_removed', true)
->where('user_id', $user->getId())
->first();
return $userDisabledPrompt === null;
});
$defaultNonChangedPrompts = AskAnythingPrompt::where('target', $target)
->whereDoesntHave('userPrompts', function ($query) use ($user) {
$query->where('user_id', $user->getId());
})
->whereNull('owner_id')
->get();
$allPrompts = $defaultNonChangedPrompts->merge($usersOwnedPromptsFiltered);
if ($allPrompts->isNotEmpty()) {
$allPrompts->loadCount('automatedReports');
}
return $allPrompts;
}
/**
* @param array<User> $shareUsers
* @param array<Group> $shareGroups
*/
public function createPrompt(
User $user,
AskAnythingPromptTarget $target,
string $title,
string $content,
array $shareUsers,
array $shareGroups,
): AskAnythingPrompt {
$prompt = AskAnythingPrompt::create([
'title' => $title,
'content' => $content,
'target' => $target,
'owner_id' => $user->getId(),
]);
UserAskAnythingPrompt::create([
'user_id' => $user->getId(),
'prompt_id' => $prompt->getId(),
]);
foreach ($shareUsers as $shareUser) {
UserAskAnythingPrompt::create([
'user_id' => $shareUser->getId(),
'prompt_id' => $prompt->getId(),
]);
}
foreach ($shareGroups as $shareGroup) {
UserAskAnythingPrompt::create([
'group_id' => $shareGroup->getId(),
'prompt_id' => $prompt->getId(),
]);
}
return $prompt;
}
/**
* @param array<User> $shareUsers
* @param array<Group> $shareGroups
*/
public function editPrompt(
AskAnythingPrompt $prompt,
string $title,
string $content,
array $shareUsers,
array $shareGroups,
): AskAnythingPrompt {
$prompt->update([
'title' => $title,
'content' => $content,
]);
$previousUserPrompts = UserAskAnythingPrompt::query()
->where('prompt_id', $prompt->getId())
->whereNull('group_id')
->whereNotNull('user_id')
->whereNot('user_id', $prompt->getOwnerId())
->get();
$previousGroupPrompts = UserAskAnythingPrompt::query()
->where('prompt_id', $prompt->getId())
->whereNotNull('group_id')
->whereNull('user_id')
->get();
$shareUserPrompts = [];
foreach ($shareUsers as $shareUser) {
$shareUserPrompts[] = UserAskAnythingPrompt::create([
'user_id' => $shareUser->getId(),
'prompt_id' => $prompt->getId(),
]);
}
$shareGroupPrompts = [];
foreach ($shareGroups as $shareGroup) {
$shareGroupPrompts[] = UserAskAnythingPrompt::create([
'group_id' => $shareGroup->getId(),
'prompt_id' => $prompt->getId(),
]);
}
// Remove those users that are no longer added
$diffUsers = $previousUserPrompts->diff($shareUserPrompts);
foreach ($diffUsers as $previousUserPrompt) {
$previousUserPrompt->delete();
}
// Remove those groups that are no longer added
$diffGroups = $previousGroupPrompts->diff($shareGroupPrompts);
foreach ($diffGroups as $previousGroupPrompt) {
$previousGroupPrompt->delete();
}
return $prompt;
}
public function deletePrompt(AskAnythingPrompt $prompt): void
{
// Also deletes all associations with users
$prompt->delete();
}
public function hidePromptForUser(AskAnythingPrompt $prompt, User $user): AskAnythingPrompt
{
$userPromptSettings = UserAskAnythingPrompt::where('user_id', $user->getId())
->where('prompt_id', $prompt->getId())
->first();
if ($userPromptSettings === null) {
$userPromptSettings = UserAskAnythingPrompt::create([
'user_id' => $user->getId(),
'prompt_id' => $prompt->getId(),
]);
}
$userPromptSettings->update([
'is_removed' => true,
]);
return $prompt;
}
public function getPromptByUuid(string $uuid): ?AskAnythingPrompt
{
return AskAnythingPrompt::where('uuid', AskAnythingPrompt::toOptimized($uuid))->first();
}
public function orderPromptForUser(AskAnythingPrompt $prompt, User $user, int $order): void
{
$userPromptSettings = UserAskAnythingPrompt::where('user_id', $user->getId())
->where('prompt_id', $prompt->getId())
->first();
if ($userPromptSettings === null) {
$userPromptSettings = UserAskAnythingPrompt::create([
'user_id' => $user->getId(),
'prompt_id' => $prompt->getId(),
]);
}
$userPromptSettings->update([
'order' => $order,
]);
}
}
Execute
Explain Plan
Browse Query History
View Parameters
Open Query Execution Settings…
In-Editor Results
Tx: Auto
Cancel Running Statements
Playground
jiminny
Code changed:
Hide
Sync Changes
Hide This Notification
21
1
18
2
6
Previous Highlighted Error
Next Highlighted Error
SELECT a.id, a.uuid, a.actual_start_time, o.id, o.uuid FROM opportunities o
JOIN activities a ON o.id = a.opportunity_id
WHERE a.crm_configuration_id = 39
AND a.actual_start_time > '2025-10-13'
AND a.type IN ('conference', 'softphone-inbound', 'softphone-outbound')
;
SELECT * FROM activities
WHERE crm_configuration_id = 39 and user_id = 143
and actual_start_time >= '2025-10-13'
AND type IN ('conference', 'softphone-inbound', 'softphone-outbound')
;
SELECT * FROM opportunities WHERE account_id IN (178);
select * from activities where id IN (620137, 620187, 620188, 620189, 620230);
# HS
SELECT * FROM opportunities WHERE id IN (238);
select * from activities where id IN (477,2076);
select * from users;
SELECT COUNT(*) FROM users;
SELECT COUNT(*) FROM activities;
SELECT COUNT(*) FROM opportunities;
UPDATE activities
SET
actual_start_time = '2025-12-19 09:00:00',
actual_end_time = '2025-12-19 10:30:00',
scheduled_start_time = '2025-12-19 09:00:00',
scheduled_end_time = '2025-12-19 10:30:00'
WHERE id IN (407509,407375);
select * from partners;
SELECT id, uuid, type, actual_start_time, user_id, crm_configuration_id
FROM activities
WHERE user_id = 143
AND actual_start_time >= '2025-10-13 00:00:00'
AND actual_start_time <= '2026-01-13 23:59:59'
ORDER BY actual_start_time DESC;
SELECT * FROM activities WHERE uuid_to_bin('78eda160-3086-435f-88a5-bb0c71b6008d') = uuid;
SELECT * FROM crm_layouts where crm_configuration_id = 39;
SELECT * FROM crm_layout_entities WHERE crm_layout_id = 282;
# lead_id
# account_id 177
# contact_id 3969
# opportunity_id
# stage_id 203
SELECT * FROM opportunities WHERE opportunities.crm_configuration_id = id = 282;
SELECT * FROM activities where crm_configuration_id = 39 AND type = 'conference'
AND user_id = 143 and actual_start_time >= '2025-10-13';
SELECT * FROM activities a
# JOIN opportunities o ON a.opportunity_id = o.id
WHERE a.crm_configuration_id = 39 AND a.type = 'conference'
and status = 'completed' and recording_state = 'recorded'
and a.actual_start_time >= '2025-10-13'
AND a.user_id = 143
;
select * from leads
where crm_configuration_id = 39; # 112 -> ac. 178, 109 => op. 1707
SELECT * FROM activities WHERE id IN (356013,616188,616202,616310,407509,407375,356001,356008);
SELECT * FROM activities WHERE id IN (356013,616188,616202,616310);
SELECT * FROM activities WHERE id IN (407509,407375); # leads: 112, 109 | status - 198
SELECT * FROM activities WHERE id IN (356001, 356008); # contacts:
SELECT * FROM opportunities WHERE id IN (1707);
SELECT * FROM stages where id IN (204, 198);
SELECT * FROM opportunities WHERE account_id IN (178);
SELECT * FROM opportunities WHERE crm_configuration_id = 39 AND created_at > '2025-01-01';
SELECT * FROM contacts WHERE account_id IN (178); # 4118 Musaibe, 4448 Ceco Personal
SELECT * FROM activities where crm_configuration_id = 39
AND opportunity_id IS NULL
AND is_internal = false
and status = 'completed' and recording_state = 'recorded'
AND actual_start_time >= '2025-10-13'
AND (lead_id IS NOT NULL OR contact_id IS NOT NULL OR account_id IS NOT NULL)
# AND lead_id IN (112, 109)
;
SELECT * FROM crm_profiles WHERE user_id = 143;
select * from inboxes; # 212
select * from users where id = 143; # 143
select * from inbox_email_batches where inbox_id = 212
and updated_at >= '2026-01-28 00:00:00' order by id desc;
select * from inbox_emails where inbox_id = 212
and batch_id = 95885 order by id desc;
select * from email_messages where origin_user_id = 143;
select * from activities where user_id = 143 and updated_at >= '2026-01-28 00:00:00';
select * from participants where activity_id = 620247;
select * from crm_profiles where user_id = 143;
SELECT * FROM activities WHERE uuid_to_bin('458cf915-b914-4000-b083-5687b32b2956') = uuid; # 356001
select * from transcription where activity_id = 356001; # 6943
select * from ai_prompts where transcription_id = 6943;
SELECT * FROM activity_summary_logs where activity_id = 356001;
SELECT * FROM social_accounts WHERE sociable_id = 143;
# [PASSWORD_DOTS]
SELECT * FROM activities WHERE uuid_to_bin('0164a4fb-cb95-454e-9edd-4d804e4999bd') = uuid;
# 422515 softphone tr. 8100
SELECT * FROM activities WHERE uuid_to_bin('7520add8-8d87-41a5-98e5-fc4edf96f21e') = uuid;
# 407509 conference tr. 7670 crmId: 00UD1000002J9aTMAS
select * from ai_prompts where transcription_id IN (8100, 7670);
select * from activity_summary_logs where activity_id = 407509;
select * from sidekick_settings;
select * from default_activity_types;
SELECT * FROM contacts WHERE crm_configuration_id = 39 and email = '[EMAIL]';
SELECT * FROM leads WHERE crm_configuration_id = 39 and email = '[EMAIL]';
SELECT * FROM activity_searches where user_id = 143;
SELECT * FROM groups where team_id = 1;
select * from teams where id = 1;
select * from groups where team_id = 1; # 1150 - 7e75f8025c22
select id, name, group_id, status, deleted_at, email
from users where team_id = 1 order by group_id desc ;
select * from activity_searches where id in (1977, 1978, 1979);
select * from activity_search_filters where activity_search_id IN (1977, 1978, 1979);
select * from activity_search_filters where filter = 'group_id' and value = '443f26b8-8512-437e-a9f9-7e75f8025c22'; # 10268, 10272, 10277
select * from nudges where activity_search_id IN (1977, 1978, 1979); # 877, 878, 879
INSERT INTO `activity_search_filters`
(`activity_search_id`, `filter`, `value`) VALUES
(1977, 'group_id', '443f26b8-8512-437e-a9f9-7e75f8025c22'),
(1978, 'group_id', '443f26b8-8512-437e-a9f9-7e75f8025c22'),
(1979, 'group_id', '443f26b8-8512-437e-a9f9-7e75f8025c22')
;
select * from crm_configurations where id = 39;
select sa.* from users u JOIN social_accounts sa on u.id = sa.sociable_id
where u.team_id = 1;
SELECT * FROM social_accounts WHERE sociable_id = 1635;
SELECT * FROM users WHERE id = 1635;
select * from teams where id = 1;
select * from users where team_id = 1;
select * from team_features where team_id = 1;
select * from features;
SELECT * FROM activity_searches where id = 1982; # 1981
SELECT * FROM activity_search_filters WHERE activity_search_id = 1982;
SELECT * FROM activities WHERE uuid_to_bin('e916569b-086c-4bd1-94d7-5e3802c27ccf') = uuid;
SELECT * FROM groups WHERE id = 1439;
SELECT * FROM users WHERE group_id = 1439;
select * from permissions; # 158
select * from roles;
select * from permission_role;
select * from teams where id = 1;
select * from groups g JOIN playbooks p on g.playbook_id = p.id where g.team_id = 1;
select * from groups where id = 28;
select * from playbooks where team_id = 1;
select * from playbooks where id = 179;
select * from playbook_categories where id = 1391;
select * from users where id = 143;
select * from crm_profiles where user_id = 143;
select * from activities where crm_configuration_id = 39 and type = 'conference'
and crm_provider_id IS NOT NULL ORDER by id desc;
select * from activities where id = 422003; # 00UO400000pB6fpMAC
SELECT ar.id, ar.uuid, ar.media_type, ar.status, a.type
FROM automated_report_results ar
JOIN automated_reports a ON a.id = ar.report_id
WHERE a.type = 'ask_jiminny'
LIMIT 10;
SELECT * FROM automated_reports where id = 71;
SELECT * FROM automated_report_results where report_id = 71;
UPDATE automated_reports set playbook_categories = NULL where id = 68;
SELECT * FROM automated_report_results where id = 275;
SELECT * FROM automated_reports order by id desc;
SELECT * FROM automated_report_results order by id desc;
select * from activity_searches where user_id = 143;
select * from ask_anything_prompts;
SELECT `automated_report_results`.* FROM `automated_report_results`
INNER JOIN `automated_reports`
ON `automated_report_results`.`report_id` = `automated_reports`.`id`
WHERE 1=1
AND `automated_report_results`.`generated_at` IS NOT NULL
# AND `automated_report_results`.`sent_at` IS NOT NULL
AND `automated_reports`.`team_id` = 1
AND JSON_CONTAINS(`automated_reports`.`recipients`, 143, '$."users"')
;
SELECT * FROM automated_reports where id = 67;
SELECT * FROM automated_reports where id = 42;
SELECT * FROM users WHERE id = 143; # group 28
select * from teams where id = 3143;
select * from crm_configurations where id = 500;
select * from users where name = 'Integration Account'; # 1695
SELECT * FROM social_accounts WHERE sociable_id = 1695;
select * from activities where crm_configuration_id = 39
and recording_state = 'recorded' and duration > 60
and status = 'completed' and actual_start_time >= '2025-12-01';
SELECT * FROM activities WHERE uuid_to_bin('458cf915-b914-4000-b083-5687b32b2956') = uuid;
select * from leads;
SELECT * FROM activities WHERE uuid_to_bin('f43cf158-e60d-46e5-92f8-c4e0594a3219') = uuid; # 422003
SELECT * FROM activities WHERE id IN (16,422003);
SELECT * FROM activities where status = 'failed';
SELECT * FROM tracks WHERE activity_id = 422003;
SELECT
a.*
FROM activities a
JOIN users u ON a.user_id = u.id
WHERE
a.status = 'completed'
AND uuid_to_bin('641f1acb-16b8-42d1-8726-df52979dad0e') = u.uuid
AND a.deleted_at IS NULL
AND EXISTS (
SELECT 1 FROM tracks t
WHERE t.activity_id = a.id
AND t.type IN ('audio', 'video')
)
ORDER BY a.actual_start_time DESC
LIMIT 25;
select * from teams where id = 19;
select * from crm_configurations where provider = 'pipedrive';
SELECT
CONCAT(u.id, CASE WHEN u.id = t.owner_id THEN ' (owner)' ELSE '' END) AS user_id,
u.email,
sa.*,
t.owner_id FROM social_accounts sa
JOIN users u on u.id = sa.sociable_id
JOIN teams t on t.id = u.team_id
WHERE u.team_id = 19 and sa.provider = 'pipedrive';
SELECT * FROM social_accounts WHERE id = 1116;
UPDATE social_accounts SET provider_user_token = 'v1u:AQIBAHj-LzTNK2yuuuaLqifzhWb9crUNKTpk4FlQ9rjnXqp_6AEQhDhDQVa1nvWCHEvnpvSEAAAAfjB8BgkqhkiG9w0BBwagbzBtAgEAMGgGCSqGSIb3DQEHATAeBglghkgBZQMEAS4wEQQMnG8KNcZLIjEnlRPxAgEQgDsGPIcKjsMU7Qel36BtM5FCQa56mYUy24_AAoqd12yjVFkq6egLqS0inp-5G4JE7frJURMV8VTw_fY14g:rYyABXmXsBhEdYU_dfmDH8GF-vzSseJXE5bds_zAyVdAwlTXOPdTl9i4PS4jVofLvpq7IRgvEt2BzGhR6cWiQXHHD0AtayQOkZm262ClFCsMYtKGfep0Jq1n0eiRIVqT9gAY7rWvhpEDF8oAlgnRGmqx-euIkpzE79sPXh4OjNx_yUIaanjyplGpBBJ_NiACd1sMlZmseyUyyU_gldqlCBAuK9hhATc9icgg7zuoc7nKBBrlg49tRtzEagDh6xbFBpzfCp7kE_7n4TLWfWHLPMzu-bktjwA969G9sFRmoH1GjPA0a2odDT4dk1_1ouBrB1NcTT2hQUqH-_RzDW2nWmeoVHA',
provider_refresh_token = '5034113:[TELEGRAM_TOKEN]b2bfc',
expires = 1779091997,
state = 'connected'
WHERE id = 1116;
"provider_user_token": "v1u:AQIBAHj-LzTNK2yuuuaLqifzhWb9crUNKTpk4FlQ9rjnXqp_6AEQhDhDQVa1nvWCHEvnpvSEAAAAfjB8BgkqhkiG9w0BBwagbzBtAgEAMGgGCSqGSIb3DQEHATAeBglghkgBZQMEAS4wEQQMnG8KNcZLIjEnlRPxAgEQgDsGPIcKjsMU7Qel36BtM5FCQa56mYUy24_AAoqd12yjVFkq6egLqS0inp-5G4JE7frJURMV8VTw_fY14g:rYyABXmXsBhEdYU_dfmDH8GF-vzSseJXE5bds_zAyVdAwlTXOPdTl9i4PS4jVofLvpq7IRgvEt2BzGhR6cWiQXHHD0AtayQOkZm262ClFCsMYtKGfep0Jq1n0eiRIVqT9gAY7rWvhpEDF8oAlgnRGmqx-euIkpzE79sPXh4OjNx_yUIaanjyplGpBBJ_NiACd1sMlZmseyUyyU_gldqlCBAuK9hhATc9icgg7zuoc7nKBBrlg49tRtzEagDh6xbFBpzfCp7kE_7n4TLWfWHLPMzu-bktjwA969G9sFRmoH1GjPA0a2odDT4dk1_1ouBrB1NcTT2hQUqH-_RzDW2nWmeoVHA",
"provider_refresh_token": "5034113:[TELEGRAM_TOKEN]b2bfc",
"expires": 1779091997,
Socket fail to connect to host:address=(host=localhost)(port=3306)(type=primary). Connection refused
Project
Project
New File or Directory…
Expand Selected
Collapse All
Options
Hide...
|
NULL
|
NULL
|
NULL
|
NULL
|
|
58081
|
2044
|
8
|
2026-05-19T11:34:12.120201+00:00
|
/Users/lukas/.screenpipe/data/data/2026-05-19/1779 /Users/lukas/.screenpipe/data/data/2026-05-19/1779190452120_m1.jpg...
|
PhpStorm
|
faVsco.js – AskAnythingRepository.php
|
1
|
NULL
|
monitor_1
|
NULL
|
NULL
|
NULL
|
NULL
|
Project: faVsco.js, menu
JY-20676-delete-report-re Project: faVsco.js, menu
JY-20676-delete-report-related-objects, menu
Start Listening for PHP Debug Connections
AskAnythingPromptServiceTest
Run 'AskAnythingPromptServiceTest'
Debug 'AskAnythingPromptServiceTest'
More Actions
JetBrains AI
Search Everywhere
IDE and Project Settings
Sync Changes
Hide This Notification
Code changed:
Hide
12
Previous Highlighted Error
Next Highlighted Error
<?php
declare(strict_types=1);
namespace Jiminny\Repositories;
use Illuminate\Database\Eloquent\Builder;
use Illuminate\Support\Collection;
use Jiminny\Models\AskAnything\AskAnythingPrompt;
use Jiminny\Models\AskAnything\AskAnythingPromptTarget;
use Jiminny\Models\AskAnything\UserAskAnythingPrompt;
use Jiminny\Models\Group;
use Jiminny\Models\User;
class AskAnythingRepository
{
/**
* @return Collection<UserAskAnythingPrompt>
*/
public function findSharedUsersAndGroupsByPromptId(int $promptId): Collection
{
return UserAskAnythingPrompt::query()
->where('prompt_id', $promptId)
->where('is_removed', false)
->get();
}
public function findSharedPromptByUser(int $promptId, User $user): ?UserAskAnythingPrompt
{
return UserAskAnythingPrompt::with('prompt')
->where('prompt_id', $promptId)
->where('user_id', $user->getId())
->first();
}
public function findSharedPromptByUserGroup(int $promptId, User $user): ?UserAskAnythingPrompt
{
$userGroupId = $user->getGroupId();
return UserAskAnythingPrompt::with('prompt')
->where('prompt_id', $promptId)
->where(static function ($query) use ($userGroupId): void {
if ($userGroupId !== null) {
$query->where('group_id', $userGroupId);
}
})
->first();
}
/**
* @return Collection<AskAnythingPrompt>
*/
public function findPromptsByUserAndTarget(User $user, AskAnythingPromptTarget $target): Collection
{
$userGroupId = $user->getGroupId();
$usersOwnedPrompts = UserAskAnythingPrompt::with('prompt')
->where(static function ($query) use ($user, $userGroupId): void {
$query
->where('user_id', $user->getId());
if ($userGroupId !== null) {
$query->orWhere('group_id', $userGroupId);
}
})
->where('is_removed', false)
->whereHas('prompt', function (Builder $query) use ($target) {
$query->where('target', $target);
})
->orderByRaw('ISNULL(`order`), `order` ASC, `prompt_id` ASC')
->get()
->map(function (UserAskAnythingPrompt $userPrompt) {
return $userPrompt->getPrompt();
});
// Remove those prompts that are hidden for the current user
$usersOwnedPromptsFiltered = $usersOwnedPrompts->filter(function (AskAnythingPrompt $userPrompt) use ($user) {
$promptId = $userPrompt->getId();
$userDisabledPrompt = UserAskAnythingPrompt::query()
->where('prompt_id', $promptId)
->where('is_removed', true)
->where('user_id', $user->getId())
->first();
return $userDisabledPrompt === null;
});
$defaultNonChangedPrompts = AskAnythingPrompt::where('target', $target)
->whereDoesntHave('userPrompts', function ($query) use ($user) {
$query->where('user_id', $user->getId());
})
->whereNull('owner_id')
->get();
$allPrompts = $defaultNonChangedPrompts->merge($usersOwnedPromptsFiltered);
if ($allPrompts->isNotEmpty()) {
$allPrompts->loadCount('automatedReports');
}
return $allPrompts;
}
/**
* @param array<User> $shareUsers
* @param array<Group> $shareGroups
*/
public function createPrompt(
User $user,
AskAnythingPromptTarget $target,
string $title,
string $content,
array $shareUsers,
array $shareGroups,
): AskAnythingPrompt {
$prompt = AskAnythingPrompt::create([
'title' => $title,
'content' => $content,
'target' => $target,
'owner_id' => $user->getId(),
]);
UserAskAnythingPrompt::create([
'user_id' => $user->getId(),
'prompt_id' => $prompt->getId(),
]);
foreach ($shareUsers as $shareUser) {
UserAskAnythingPrompt::create([
'user_id' => $shareUser->getId(),
'prompt_id' => $prompt->getId(),
]);
}
foreach ($shareGroups as $shareGroup) {
UserAskAnythingPrompt::create([
'group_id' => $shareGroup->getId(),
'prompt_id' => $prompt->getId(),
]);
}
return $prompt;
}
/**
* @param array<User> $shareUsers
* @param array<Group> $shareGroups
*/
public function editPrompt(
AskAnythingPrompt $prompt,
string $title,
string $content,
array $shareUsers,
array $shareGroups,
): AskAnythingPrompt {
$prompt->update([
'title' => $title,
'content' => $content,
]);
$previousUserPrompts = UserAskAnythingPrompt::query()
->where('prompt_id', $prompt->getId())
->whereNull('group_id')
->whereNotNull('user_id')
->whereNot('user_id', $prompt->getOwnerId())
->get();
$previousGroupPrompts = UserAskAnythingPrompt::query()
->where('prompt_id', $prompt->getId())
->whereNotNull('group_id')
->whereNull('user_id')
->get();
$shareUserPrompts = [];
foreach ($shareUsers as $shareUser) {
$shareUserPrompts[] = UserAskAnythingPrompt::create([
'user_id' => $shareUser->getId(),
'prompt_id' => $prompt->getId(),
]);
}
$shareGroupPrompts = [];
foreach ($shareGroups as $shareGroup) {
$shareGroupPrompts[] = UserAskAnythingPrompt::create([
'group_id' => $shareGroup->getId(),
'prompt_id' => $prompt->getId(),
]);
}
// Remove those users that are no longer added
$diffUsers = $previousUserPrompts->diff($shareUserPrompts);
foreach ($diffUsers as $previousUserPrompt) {
$previousUserPrompt->delete();
}
// Remove those groups that are no longer added
$diffGroups = $previousGroupPrompts->diff($shareGroupPrompts);
foreach ($diffGroups as $previousGroupPrompt) {
$previousGroupPrompt->delete();
}
return $prompt;
}
public function deletePrompt(AskAnythingPrompt $prompt): void
{
// Also deletes all associations with users
$prompt->delete();
}
public function hidePromptForUser(AskAnythingPrompt $prompt, User $user): AskAnythingPrompt
{
$userPromptSettings = UserAskAnythingPrompt::where('user_id', $user->getId())
->where('prompt_id', $prompt->getId())
->first();
if ($userPromptSettings === null) {
$userPromptSettings = UserAskAnythingPrompt::create([
'user_id' => $user->getId(),
'prompt_id' => $prompt->getId(),
]);
}
$userPromptSettings->update([
'is_removed' => true,
]);
return $prompt;
}
public function getPromptByUuid(string $uuid): ?AskAnythingPrompt
{
return AskAnythingPrompt::where('uuid', AskAnythingPrompt::toOptimized($uuid))->first();
}
public function orderPromptForUser(AskAnythingPrompt $prompt, User $user, int $order): void
{
$userPromptSettings = UserAskAnythingPrompt::where('user_id', $user->getId())
->where('prompt_id', $prompt->getId())
->first();
if ($userPromptSettings === null) {
$userPromptSettings = UserAskAnythingPrompt::create([
'user_id' => $user->getId(),
'prompt_id' => $prompt->getId(),
]);
}
$userPromptSettings->update([
'order' => $order,
]);
}
}
Execute
Explain Plan
Browse Query History
View Parameters
Open Query Execution Settings…
In-Editor Results
Tx: Auto
Cancel Running Statements
Playground
jiminny
Code changed:
Hide
Sync Changes
Hide This Notification
21
1
18
2
6
Previous Highlighted Error
Next Highlighted Error
SELECT a.id, a.uuid, a.actual_start_time, o.id, o.uuid FROM opportunities o
JOIN activities a ON o.id = a.opportunity_id
WHERE a.crm_configuration_id = 39
AND a.actual_start_time > '2025-10-13'
AND a.type IN ('conference', 'softphone-inbound', 'softphone-outbound')
;
SELECT * FROM activities
WHERE crm_configuration_id = 39 and user_id = 143
and actual_start_time >= '2025-10-13'
AND type IN ('conference', 'softphone-inbound', 'softphone-outbound')
;
SELECT * FROM opportunities WHERE account_id IN (178);
select * from activities where id IN (620137, 620187, 620188, 620189, 620230);
# HS
SELECT * FROM opportunities WHERE id IN (238);
select * from activities where id IN (477,2076);
select * from users;
SELECT COUNT(*) FROM users;
SELECT COUNT(*) FROM activities;
SELECT COUNT(*) FROM opportunities;
UPDATE activities
SET
actual_start_time = '2025-12-19 09:00:00',
actual_end_time = '2025-12-19 10:30:00',
scheduled_start_time = '2025-12-19 09:00:00',
scheduled_end_time = '2025-12-19 10:30:00'
WHERE id IN (407509,407375);
select * from partners;
SELECT id, uuid, type, actual_start_time, user_id, crm_configuration_id
FROM activities
WHERE user_id = 143
AND actual_start_time >= '2025-10-13 00:00:00'
AND actual_start_time <= '2026-01-13 23:59:59'
ORDER BY actual_start_time DESC;
SELECT * FROM activities WHERE uuid_to_bin('78eda160-3086-435f-88a5-bb0c71b6008d') = uuid;
SELECT * FROM crm_layouts where crm_configuration_id = 39;
SELECT * FROM crm_layout_entities WHERE crm_layout_id = 282;
# lead_id
# account_id 177
# contact_id 3969
# opportunity_id
# stage_id 203
SELECT * FROM opportunities WHERE opportunities.crm_configuration_id = id = 282;
SELECT * FROM activities where crm_configuration_id = 39 AND type = 'conference'
AND user_id = 143 and actual_start_time >= '2025-10-13';
SELECT * FROM activities a
# JOIN opportunities o ON a.opportunity_id = o.id
WHERE a.crm_configuration_id = 39 AND a.type = 'conference'
and status = 'completed' and recording_state = 'recorded'
and a.actual_start_time >= '2025-10-13'
AND a.user_id = 143
;
select * from leads
where crm_configuration_id = 39; # 112 -> ac. 178, 109 => op. 1707
SELECT * FROM activities WHERE id IN (356013,616188,616202,616310,407509,407375,356001,356008);
SELECT * FROM activities WHERE id IN (356013,616188,616202,616310);
SELECT * FROM activities WHERE id IN (407509,407375); # leads: 112, 109 | status - 198
SELECT * FROM activities WHERE id IN (356001, 356008); # contacts:
SELECT * FROM opportunities WHERE id IN (1707);
SELECT * FROM stages where id IN (204, 198);
SELECT * FROM opportunities WHERE account_id IN (178);
SELECT * FROM opportunities WHERE crm_configuration_id = 39 AND created_at > '2025-01-01';
SELECT * FROM contacts WHERE account_id IN (178); # 4118 Musaibe, 4448 Ceco Personal
SELECT * FROM activities where crm_configuration_id = 39
AND opportunity_id IS NULL
AND is_internal = false
and status = 'completed' and recording_state = 'recorded'
AND actual_start_time >= '2025-10-13'
AND (lead_id IS NOT NULL OR contact_id IS NOT NULL OR account_id IS NOT NULL)
# AND lead_id IN (112, 109)
;
SELECT * FROM crm_profiles WHERE user_id = 143;
select * from inboxes; # 212
select * from users where id = 143; # 143
select * from inbox_email_batches where inbox_id = 212
and updated_at >= '2026-01-28 00:00:00' order by id desc;
select * from inbox_emails where inbox_id = 212
and batch_id = 95885 order by id desc;
select * from email_messages where origin_user_id = 143;
select * from activities where user_id = 143 and updated_at >= '2026-01-28 00:00:00';
select * from participants where activity_id = 620247;
select * from crm_profiles where user_id = 143;
SELECT * FROM activities WHERE uuid_to_bin('458cf915-b914-4000-b083-5687b32b2956') = uuid; # 356001
select * from transcription where activity_id = 356001; # 6943
select * from ai_prompts where transcription_id = 6943;
SELECT * FROM activity_summary_logs where activity_id = 356001;
SELECT * FROM social_accounts WHERE sociable_id = 143;
# [PASSWORD_DOTS]
SELECT * FROM activities WHERE uuid_to_bin('0164a4fb-cb95-454e-9edd-4d804e4999bd') = uuid;
# 422515 softphone tr. 8100
SELECT * FROM activities WHERE uuid_to_bin('7520add8-8d87-41a5-98e5-fc4edf96f21e') = uuid;
# 407509 conference tr. 7670 crmId: 00UD1000002J9aTMAS
select * from ai_prompts where transcription_id IN (8100, 7670);
select * from activity_summary_logs where activity_id = 407509;
select * from sidekick_settings;
select * from default_activity_types;
SELECT * FROM contacts WHERE crm_configuration_id = 39 and email = '[EMAIL]';
SELECT * FROM leads WHERE crm_configuration_id = 39 and email = '[EMAIL]';
SELECT * FROM activity_searches where user_id = 143;
SELECT * FROM groups where team_id = 1;
select * from teams where id = 1;
select * from groups where team_id = 1; # 1150 - 7e75f8025c22
select id, name, group_id, status, deleted_at, email
from users where team_id = 1 order by group_id desc ;
select * from activity_searches where id in (1977, 1978, 1979);
select * from activity_search_filters where activity_search_id IN (1977, 1978, 1979);
select * from activity_search_filters where filter = 'group_id' and value = '443f26b8-8512-437e-a9f9-7e75f8025c22'; # 10268, 10272, 10277
select * from nudges where activity_search_id IN (1977, 1978, 1979); # 877, 878, 879
INSERT INTO `activity_search_filters`
(`activity_search_id`, `filter`, `value`) VALUES
(1977, 'group_id', '443f26b8-8512-437e-a9f9-7e75f8025c22'),
(1978, 'group_id', '443f26b8-8512-437e-a9f9-7e75f8025c22'),
(1979, 'group_id', '443f26b8-8512-437e-a9f9-7e75f8025c22')
;
select * from crm_configurations where id = 39;
select sa.* from users u JOIN social_accounts sa on u.id = sa.sociable_id
where u.team_id = 1;
SELECT * FROM social_accounts WHERE sociable_id = 1635;
SELECT * FROM users WHERE id = 1635;
select * from teams where id = 1;
select * from users where team_id = 1;
select * from team_features where team_id = 1;
select * from features;
SELECT * FROM activity_searches where id = 1982; # 1981
SELECT * FROM activity_search_filters WHERE activity_search_id = 1982;
SELECT * FROM activities WHERE uuid_to_bin('e916569b-086c-4bd1-94d7-5e3802c27ccf') = uuid;
SELECT * FROM groups WHERE id = 1439;
SELECT * FROM users WHERE group_id = 1439;
select * from permissions; # 158
select * from roles;
select * from permission_role;
select * from teams where id = 1;
select * from groups g JOIN playbooks p on g.playbook_id = p.id where g.team_id = 1;
select * from groups where id = 28;
select * from playbooks where team_id = 1;
select * from playbooks where id = 179;
select * from playbook_categories where id = 1391;
select * from users where id = 143;
select * from crm_profiles where user_id = 143;
select * from activities where crm_configuration_id = 39 and type = 'conference'
and crm_provider_id IS NOT NULL ORDER by id desc;
select * from activities where id = 422003; # 00UO400000pB6fpMAC
SELECT ar.id, ar.uuid, ar.media_type, ar.status, a.type
FROM automated_report_results ar
JOIN automated_reports a ON a.id = ar.report_id
WHERE a.type = 'ask_jiminny'
LIMIT 10;
SELECT * FROM automated_reports where id = 71;
SELECT * FROM automated_report_results where report_id = 71;
UPDATE automated_reports set playbook_categories = NULL where id = 68;
SELECT * FROM automated_report_results where id = 275;
SELECT * FROM automated_reports order by id desc;
SELECT * FROM automated_report_results order by id desc;
select * from activity_searches where user_id = 143;
select * from ask_anything_prompts;
SELECT `automated_report_results`.* FROM `automated_report_results`
INNER JOIN `automated_reports`
ON `automated_report_results`.`report_id` = `automated_reports`.`id`
WHERE 1=1
AND `automated_report_results`.`generated_at` IS NOT NULL
# AND `automated_report_results`.`sent_at` IS NOT NULL
AND `automated_reports`.`team_id` = 1
AND JSON_CONTAINS(`automated_reports`.`recipients`, 143, '$."users"')
;
SELECT * FROM automated_reports where id = 67;
SELECT * FROM automated_reports where id = 42;
SELECT * FROM users WHERE id = 143; # group 28
select * from teams where id = 3143;
select * from crm_configurations where id = 500;
select * from users where name = 'Integration Account'; # 1695
SELECT * FROM social_accounts WHERE sociable_id = 1695;
select * from activities where crm_configuration_id = 39
and recording_state = 'recorded' and duration > 60
and status = 'completed' and actual_start_time >= '2025-12-01';
SELECT * FROM activities WHERE uuid_to_bin('458cf915-b914-4000-b083-5687b32b2956') = uuid;
select * from leads;
SELECT * FROM activities WHERE uuid_to_bin('f43cf158-e60d-46e5-92f8-c4e0594a3219') = uuid; # 422003
SELECT * FROM activities WHERE id IN (16,422003);
SELECT * FROM activities where status = 'failed';
SELECT * FROM tracks WHERE activity_id = 422003;
SELECT
a.*
FROM activities a
JOIN users u ON a.user_id = u.id
WHERE
a.status = 'completed'
AND uuid_to_bin('641f1acb-16b8-42d1-8726-df52979dad0e') = u.uuid
AND a.deleted_at IS NULL
AND EXISTS (
SELECT 1 FROM tracks t
WHERE t.activity_id = a.id
AND t.type IN ('audio', 'video')
)
ORDER BY a.actual_start_time DESC
LIMIT 25;
select * from teams where id = 19;
select * from crm_configurations where provider = 'pipedrive';
SELECT
CONCAT(u.id, CASE WHEN u.id = t.owner_id THEN ' (owner)' ELSE '' END) AS user_id,
u.email,
sa.*,
t.owner_id FROM social_accounts sa
JOIN users u on u.id = sa.sociable_id
JOIN teams t on t.id = u.team_id
WHERE u.team_id = 19 and sa.provider = 'pipedrive';
SELECT * FROM social_accounts WHERE id = 1116;
UPDATE social_accounts SET provider_user_token = 'v1u:AQIBAHj-LzTNK2yuuuaLqifzhWb9crUNKTpk4FlQ9rjnXqp_6AEQhDhDQVa1nvWCHEvnpvSEAAAAfjB8BgkqhkiG9w0BBwagbzBtAgEAMGgGCSqGSIb3DQEHATAeBglghkgBZQMEAS4wEQQMnG8KNcZLIjEnlRPxAgEQgDsGPIcKjsMU7Qel36BtM5FCQa56mYUy24_AAoqd12yjVFkq6egLqS0inp-5G4JE7frJURMV8VTw_fY14g:rYyABXmXsBhEdYU_dfmDH8GF-vzSseJXE5bds_zAyVdAwlTXOPdTl9i4PS4jVofLvpq7IRgvEt2BzGhR6cWiQXHHD0AtayQOkZm262ClFCsMYtKGfep0Jq1n0eiRIVqT9gAY7rWvhpEDF8oAlgnRGmqx-euIkpzE79sPXh4OjNx_yUIaanjyplGpBBJ_NiACd1sMlZmseyUyyU_gldqlCBAuK9hhATc9icgg7zuoc7nKBBrlg49tRtzEagDh6xbFBpzfCp7kE_7n4TLWfWHLPMzu-bktjwA969G9sFRmoH1GjPA0a2odDT4dk1_1ouBrB1NcTT2hQUqH-_RzDW2nWmeoVHA',
provider_refresh_token = '5034113:[TELEGRAM_TOKEN]b2bfc',
expires = 1779091997,
state = 'connected'
WHERE id = 1116;
"provider_user_token": "v1u:AQIBAHj-LzTNK2yuuuaLqifzhWb9crUNKTpk4FlQ9rjnXqp_6AEQhDhDQVa1nvWCHEvnpvSEAAAAfjB8BgkqhkiG9w0BBwagbzBtAgEAMGgGCSqGSIb3DQEHATAeBglghkgBZQMEAS4wEQQMnG8KNcZLIjEnlRPxAgEQgDsGPIcKjsMU7Qel36BtM5FCQa56mYUy24_AAoqd12yjVFkq6egLqS0inp-5G4JE7frJURMV8VTw_fY14g:rYyABXmXsBhEdYU_dfmDH8GF-vzSseJXE5bds_zAyVdAwlTXOPdTl9i4PS4jVofLvpq7IRgvEt2BzGhR6cWiQXHHD0AtayQOkZm262ClFCsMYtKGfep0Jq1n0eiRIVqT9gAY7rWvhpEDF8oAlgnRGmqx-euIkpzE79sPXh4OjNx_yUIaanjyplGpBBJ_NiACd1sMlZmseyUyyU_gldqlCBAuK9hhATc9icgg7zuoc7nKBBrlg49tRtzEagDh6xbFBpzfCp7kE_7n4TLWfWHLPMzu-bktjwA969G9sFRmoH1GjPA0a2odDT4dk1_1ouBrB1NcTT2hQUqH-_RzDW2nWmeoVHA",
"provider_refresh_token": "5034113:[TELEGRAM_TOKEN]b2bfc",
"expires": 1779091997,
Socket fail to connect to host:address=(host=localhost)(port=3306)(type=primary). Connection refused
Project
Project
New File or Directory…
Expand Selected
Collapse All
Options
Hide...
|
[{"role":"AXButton","text" [{"role":"AXButton","text":"Project: faVsco.js, menu","depth":5,"on_screen":true,"help_text":"~/jiminny/app","role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"JY-20676-delete-report-related-objects, menu","depth":5,"on_screen":true,"help_text":"Git Branch: JY-20676-delete-report-related-objects<br/>Some incoming commits are not fetched<br/>","role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Start Listening for PHP Debug Connections","depth":5,"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"AskAnythingPromptServiceTest","depth":6,"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Run 'AskAnythingPromptServiceTest'","depth":6,"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Debug 'AskAnythingPromptServiceTest'","depth":6,"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"More Actions","depth":6,"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"JetBrains AI","depth":5,"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Search Everywhere","depth":5,"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"IDE and Project Settings","depth":5,"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Sync Changes","depth":4,"bounds":{"left":0.0,"top":0.0,"width":0.018055556,"height":0.026666667},"on_screen":false,"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Hide This Notification","depth":4,"bounds":{"left":0.0,"top":0.0,"width":0.018055556,"height":0.026666667},"on_screen":false,"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Code changed:","depth":4,"bounds":{"left":0.0,"top":0.0,"width":0.088194445,"height":0.027777778},"on_screen":false,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Hide","depth":4,"bounds":{"left":0.0,"top":0.0,"width":0.018055556,"height":0.026666667},"on_screen":false,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"12","depth":4,"bounds":{"left":0.0,"top":0.0,"width":0.02013889,"height":0.02111111},"on_screen":false,"role_description":"text"},{"role":"AXButton","text":"Previous Highlighted Error","depth":4,"bounds":{"left":0.0,"top":0.0,"width":0.015277778,"height":0.025555555},"on_screen":false,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Next Highlighted Error","depth":4,"bounds":{"left":0.0,"top":0.0,"width":0.014583333,"height":0.025555555},"on_screen":false,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXTextArea","text":"<?php\n\ndeclare(strict_types=1);\n\nnamespace Jiminny\\Repositories;\n\nuse Illuminate\\Database\\Eloquent\\Builder;\nuse Illuminate\\Support\\Collection;\nuse Jiminny\\Models\\AskAnything\\AskAnythingPrompt;\nuse Jiminny\\Models\\AskAnything\\AskAnythingPromptTarget;\nuse Jiminny\\Models\\AskAnything\\UserAskAnythingPrompt;\nuse Jiminny\\Models\\Group;\nuse Jiminny\\Models\\User;\n\nclass AskAnythingRepository\n{\n /**\n * @return Collection<UserAskAnythingPrompt>\n */\n public function findSharedUsersAndGroupsByPromptId(int $promptId): Collection\n {\n return UserAskAnythingPrompt::query()\n ->where('prompt_id', $promptId)\n ->where('is_removed', false)\n ->get();\n }\n\n public function findSharedPromptByUser(int $promptId, User $user): ?UserAskAnythingPrompt\n {\n return UserAskAnythingPrompt::with('prompt')\n ->where('prompt_id', $promptId)\n ->where('user_id', $user->getId())\n ->first();\n }\n\n public function findSharedPromptByUserGroup(int $promptId, User $user): ?UserAskAnythingPrompt\n {\n $userGroupId = $user->getGroupId();\n\n return UserAskAnythingPrompt::with('prompt')\n ->where('prompt_id', $promptId)\n ->where(static function ($query) use ($userGroupId): void {\n if ($userGroupId !== null) {\n $query->where('group_id', $userGroupId);\n }\n })\n ->first();\n }\n\n /**\n * @return Collection<AskAnythingPrompt>\n */\n public function findPromptsByUserAndTarget(User $user, AskAnythingPromptTarget $target): Collection\n {\n $userGroupId = $user->getGroupId();\n $usersOwnedPrompts = UserAskAnythingPrompt::with('prompt')\n ->where(static function ($query) use ($user, $userGroupId): void {\n $query\n ->where('user_id', $user->getId());\n\n if ($userGroupId !== null) {\n $query->orWhere('group_id', $userGroupId);\n }\n })\n ->where('is_removed', false)\n ->whereHas('prompt', function (Builder $query) use ($target) {\n $query->where('target', $target);\n })\n ->orderByRaw('ISNULL(`order`), `order` ASC, `prompt_id` ASC')\n ->get()\n ->map(function (UserAskAnythingPrompt $userPrompt) {\n return $userPrompt->getPrompt();\n });\n\n // Remove those prompts that are hidden for the current user\n $usersOwnedPromptsFiltered = $usersOwnedPrompts->filter(function (AskAnythingPrompt $userPrompt) use ($user) {\n $promptId = $userPrompt->getId();\n $userDisabledPrompt = UserAskAnythingPrompt::query()\n ->where('prompt_id', $promptId)\n ->where('is_removed', true)\n ->where('user_id', $user->getId())\n ->first();\n\n return $userDisabledPrompt === null;\n });\n\n $defaultNonChangedPrompts = AskAnythingPrompt::where('target', $target)\n ->whereDoesntHave('userPrompts', function ($query) use ($user) {\n $query->where('user_id', $user->getId());\n })\n ->whereNull('owner_id')\n ->get();\n\n $allPrompts = $defaultNonChangedPrompts->merge($usersOwnedPromptsFiltered);\n\n if ($allPrompts->isNotEmpty()) {\n $allPrompts->loadCount('automatedReports');\n }\n\n return $allPrompts;\n }\n\n /**\n * @param array<User> $shareUsers\n * @param array<Group> $shareGroups\n */\n public function createPrompt(\n User $user,\n AskAnythingPromptTarget $target,\n string $title,\n string $content,\n array $shareUsers,\n array $shareGroups,\n ): AskAnythingPrompt {\n $prompt = AskAnythingPrompt::create([\n 'title' => $title,\n 'content' => $content,\n 'target' => $target,\n 'owner_id' => $user->getId(),\n ]);\n\n UserAskAnythingPrompt::create([\n 'user_id' => $user->getId(),\n 'prompt_id' => $prompt->getId(),\n ]);\n\n foreach ($shareUsers as $shareUser) {\n UserAskAnythingPrompt::create([\n 'user_id' => $shareUser->getId(),\n 'prompt_id' => $prompt->getId(),\n ]);\n }\n\n foreach ($shareGroups as $shareGroup) {\n UserAskAnythingPrompt::create([\n 'group_id' => $shareGroup->getId(),\n 'prompt_id' => $prompt->getId(),\n ]);\n }\n\n return $prompt;\n }\n\n /**\n * @param array<User> $shareUsers\n * @param array<Group> $shareGroups\n */\n public function editPrompt(\n AskAnythingPrompt $prompt,\n string $title,\n string $content,\n array $shareUsers,\n array $shareGroups,\n ): AskAnythingPrompt {\n $prompt->update([\n 'title' => $title,\n 'content' => $content,\n ]);\n\n $previousUserPrompts = UserAskAnythingPrompt::query()\n ->where('prompt_id', $prompt->getId())\n ->whereNull('group_id')\n ->whereNotNull('user_id')\n ->whereNot('user_id', $prompt->getOwnerId())\n ->get();\n\n $previousGroupPrompts = UserAskAnythingPrompt::query()\n ->where('prompt_id', $prompt->getId())\n ->whereNotNull('group_id')\n ->whereNull('user_id')\n ->get();\n\n $shareUserPrompts = [];\n foreach ($shareUsers as $shareUser) {\n $shareUserPrompts[] = UserAskAnythingPrompt::create([\n 'user_id' => $shareUser->getId(),\n 'prompt_id' => $prompt->getId(),\n ]);\n }\n\n $shareGroupPrompts = [];\n foreach ($shareGroups as $shareGroup) {\n $shareGroupPrompts[] = UserAskAnythingPrompt::create([\n 'group_id' => $shareGroup->getId(),\n 'prompt_id' => $prompt->getId(),\n ]);\n }\n\n // Remove those users that are no longer added\n $diffUsers = $previousUserPrompts->diff($shareUserPrompts);\n foreach ($diffUsers as $previousUserPrompt) {\n $previousUserPrompt->delete();\n }\n\n // Remove those groups that are no longer added\n $diffGroups = $previousGroupPrompts->diff($shareGroupPrompts);\n foreach ($diffGroups as $previousGroupPrompt) {\n $previousGroupPrompt->delete();\n }\n\n return $prompt;\n }\n\n public function deletePrompt(AskAnythingPrompt $prompt): void\n {\n // Also deletes all associations with users\n $prompt->delete();\n }\n\n public function hidePromptForUser(AskAnythingPrompt $prompt, User $user): AskAnythingPrompt\n {\n $userPromptSettings = UserAskAnythingPrompt::where('user_id', $user->getId())\n ->where('prompt_id', $prompt->getId())\n ->first();\n\n if ($userPromptSettings === null) {\n $userPromptSettings = UserAskAnythingPrompt::create([\n 'user_id' => $user->getId(),\n 'prompt_id' => $prompt->getId(),\n ]);\n }\n\n $userPromptSettings->update([\n 'is_removed' => true,\n ]);\n\n return $prompt;\n }\n\n public function getPromptByUuid(string $uuid): ?AskAnythingPrompt\n {\n return AskAnythingPrompt::where('uuid', AskAnythingPrompt::toOptimized($uuid))->first();\n }\n\n public function orderPromptForUser(AskAnythingPrompt $prompt, User $user, int $order): void\n {\n $userPromptSettings = UserAskAnythingPrompt::where('user_id', $user->getId())\n ->where('prompt_id', $prompt->getId())\n ->first();\n\n if ($userPromptSettings === null) {\n $userPromptSettings = UserAskAnythingPrompt::create([\n 'user_id' => $user->getId(),\n 'prompt_id' => $prompt->getId(),\n ]);\n }\n\n $userPromptSettings->update([\n 'order' => $order,\n ]);\n }\n}","depth":4,"on_screen":true,"value":"<?php\n\ndeclare(strict_types=1);\n\nnamespace Jiminny\\Repositories;\n\nuse Illuminate\\Database\\Eloquent\\Builder;\nuse Illuminate\\Support\\Collection;\nuse Jiminny\\Models\\AskAnything\\AskAnythingPrompt;\nuse Jiminny\\Models\\AskAnything\\AskAnythingPromptTarget;\nuse Jiminny\\Models\\AskAnything\\UserAskAnythingPrompt;\nuse Jiminny\\Models\\Group;\nuse Jiminny\\Models\\User;\n\nclass AskAnythingRepository\n{\n /**\n * @return Collection<UserAskAnythingPrompt>\n */\n public function findSharedUsersAndGroupsByPromptId(int $promptId): Collection\n {\n return UserAskAnythingPrompt::query()\n ->where('prompt_id', $promptId)\n ->where('is_removed', false)\n ->get();\n }\n\n public function findSharedPromptByUser(int $promptId, User $user): ?UserAskAnythingPrompt\n {\n return UserAskAnythingPrompt::with('prompt')\n ->where('prompt_id', $promptId)\n ->where('user_id', $user->getId())\n ->first();\n }\n\n public function findSharedPromptByUserGroup(int $promptId, User $user): ?UserAskAnythingPrompt\n {\n $userGroupId = $user->getGroupId();\n\n return UserAskAnythingPrompt::with('prompt')\n ->where('prompt_id', $promptId)\n ->where(static function ($query) use ($userGroupId): void {\n if ($userGroupId !== null) {\n $query->where('group_id', $userGroupId);\n }\n })\n ->first();\n }\n\n /**\n * @return Collection<AskAnythingPrompt>\n */\n public function findPromptsByUserAndTarget(User $user, AskAnythingPromptTarget $target): Collection\n {\n $userGroupId = $user->getGroupId();\n $usersOwnedPrompts = UserAskAnythingPrompt::with('prompt')\n ->where(static function ($query) use ($user, $userGroupId): void {\n $query\n ->where('user_id', $user->getId());\n\n if ($userGroupId !== null) {\n $query->orWhere('group_id', $userGroupId);\n }\n })\n ->where('is_removed', false)\n ->whereHas('prompt', function (Builder $query) use ($target) {\n $query->where('target', $target);\n })\n ->orderByRaw('ISNULL(`order`), `order` ASC, `prompt_id` ASC')\n ->get()\n ->map(function (UserAskAnythingPrompt $userPrompt) {\n return $userPrompt->getPrompt();\n });\n\n // Remove those prompts that are hidden for the current user\n $usersOwnedPromptsFiltered = $usersOwnedPrompts->filter(function (AskAnythingPrompt $userPrompt) use ($user) {\n $promptId = $userPrompt->getId();\n $userDisabledPrompt = UserAskAnythingPrompt::query()\n ->where('prompt_id', $promptId)\n ->where('is_removed', true)\n ->where('user_id', $user->getId())\n ->first();\n\n return $userDisabledPrompt === null;\n });\n\n $defaultNonChangedPrompts = AskAnythingPrompt::where('target', $target)\n ->whereDoesntHave('userPrompts', function ($query) use ($user) {\n $query->where('user_id', $user->getId());\n })\n ->whereNull('owner_id')\n ->get();\n\n $allPrompts = $defaultNonChangedPrompts->merge($usersOwnedPromptsFiltered);\n\n if ($allPrompts->isNotEmpty()) {\n $allPrompts->loadCount('automatedReports');\n }\n\n return $allPrompts;\n }\n\n /**\n * @param array<User> $shareUsers\n * @param array<Group> $shareGroups\n */\n public function createPrompt(\n User $user,\n AskAnythingPromptTarget $target,\n string $title,\n string $content,\n array $shareUsers,\n array $shareGroups,\n ): AskAnythingPrompt {\n $prompt = AskAnythingPrompt::create([\n 'title' => $title,\n 'content' => $content,\n 'target' => $target,\n 'owner_id' => $user->getId(),\n ]);\n\n UserAskAnythingPrompt::create([\n 'user_id' => $user->getId(),\n 'prompt_id' => $prompt->getId(),\n ]);\n\n foreach ($shareUsers as $shareUser) {\n UserAskAnythingPrompt::create([\n 'user_id' => $shareUser->getId(),\n 'prompt_id' => $prompt->getId(),\n ]);\n }\n\n foreach ($shareGroups as $shareGroup) {\n UserAskAnythingPrompt::create([\n 'group_id' => $shareGroup->getId(),\n 'prompt_id' => $prompt->getId(),\n ]);\n }\n\n return $prompt;\n }\n\n /**\n * @param array<User> $shareUsers\n * @param array<Group> $shareGroups\n */\n public function editPrompt(\n AskAnythingPrompt $prompt,\n string $title,\n string $content,\n array $shareUsers,\n array $shareGroups,\n ): AskAnythingPrompt {\n $prompt->update([\n 'title' => $title,\n 'content' => $content,\n ]);\n\n $previousUserPrompts = UserAskAnythingPrompt::query()\n ->where('prompt_id', $prompt->getId())\n ->whereNull('group_id')\n ->whereNotNull('user_id')\n ->whereNot('user_id', $prompt->getOwnerId())\n ->get();\n\n $previousGroupPrompts = UserAskAnythingPrompt::query()\n ->where('prompt_id', $prompt->getId())\n ->whereNotNull('group_id')\n ->whereNull('user_id')\n ->get();\n\n $shareUserPrompts = [];\n foreach ($shareUsers as $shareUser) {\n $shareUserPrompts[] = UserAskAnythingPrompt::create([\n 'user_id' => $shareUser->getId(),\n 'prompt_id' => $prompt->getId(),\n ]);\n }\n\n $shareGroupPrompts = [];\n foreach ($shareGroups as $shareGroup) {\n $shareGroupPrompts[] = UserAskAnythingPrompt::create([\n 'group_id' => $shareGroup->getId(),\n 'prompt_id' => $prompt->getId(),\n ]);\n }\n\n // Remove those users that are no longer added\n $diffUsers = $previousUserPrompts->diff($shareUserPrompts);\n foreach ($diffUsers as $previousUserPrompt) {\n $previousUserPrompt->delete();\n }\n\n // Remove those groups that are no longer added\n $diffGroups = $previousGroupPrompts->diff($shareGroupPrompts);\n foreach ($diffGroups as $previousGroupPrompt) {\n $previousGroupPrompt->delete();\n }\n\n return $prompt;\n }\n\n public function deletePrompt(AskAnythingPrompt $prompt): void\n {\n // Also deletes all associations with users\n $prompt->delete();\n }\n\n public function hidePromptForUser(AskAnythingPrompt $prompt, User $user): AskAnythingPrompt\n {\n $userPromptSettings = UserAskAnythingPrompt::where('user_id', $user->getId())\n ->where('prompt_id', $prompt->getId())\n ->first();\n\n if ($userPromptSettings === null) {\n $userPromptSettings = UserAskAnythingPrompt::create([\n 'user_id' => $user->getId(),\n 'prompt_id' => $prompt->getId(),\n ]);\n }\n\n $userPromptSettings->update([\n 'is_removed' => true,\n ]);\n\n return $prompt;\n }\n\n public function getPromptByUuid(string $uuid): ?AskAnythingPrompt\n {\n return AskAnythingPrompt::where('uuid', AskAnythingPrompt::toOptimized($uuid))->first();\n }\n\n public function orderPromptForUser(AskAnythingPrompt $prompt, User $user, int $order): void\n {\n $userPromptSettings = UserAskAnythingPrompt::where('user_id', $user->getId())\n ->where('prompt_id', $prompt->getId())\n ->first();\n\n if ($userPromptSettings === null) {\n $userPromptSettings = UserAskAnythingPrompt::create([\n 'user_id' => $user->getId(),\n 'prompt_id' => $prompt->getId(),\n ]);\n }\n\n $userPromptSettings->update([\n 'order' => $order,\n ]);\n }\n}","role_description":"text entry area","is_enabled":true,"is_focused":true,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Execute","depth":4,"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Explain Plan","depth":4,"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Browse Query History","depth":4,"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"View Parameters","depth":4,"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Open Query Execution Settings…","depth":4,"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"In-Editor Results","depth":4,"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Tx: Auto","depth":4,"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Cancel Running Statements","depth":4,"on_screen":true,"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Playground","depth":4,"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"jiminny","depth":4,"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Code changed:","depth":4,"bounds":{"left":0.0,"top":0.0,"width":0.088194445,"height":0.027777778},"on_screen":false,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Hide","depth":4,"bounds":{"left":0.0,"top":0.0,"width":0.018055556,"height":0.026666667},"on_screen":false,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Sync Changes","depth":4,"bounds":{"left":0.0,"top":0.0,"width":0.018055556,"height":0.026666667},"on_screen":false,"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Hide This Notification","depth":4,"bounds":{"left":0.0,"top":0.0,"width":0.018055556,"height":0.026666667},"on_screen":false,"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"21","depth":4,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"1","depth":4,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"18","depth":4,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"2","depth":4,"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"6","depth":4,"on_screen":true,"role_description":"text"},{"role":"AXButton","text":"Previous Highlighted Error","depth":4,"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Next Highlighted Error","depth":4,"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXTextArea","text":"SELECT a.id, a.uuid, a.actual_start_time, o.id, o.uuid FROM opportunities o\nJOIN activities a ON o.id = a.opportunity_id\nWHERE a.crm_configuration_id = 39\nAND a.actual_start_time > '2025-10-13'\nAND a.type IN ('conference', 'softphone-inbound', 'softphone-outbound')\n;\n\nSELECT * FROM activities\nWHERE crm_configuration_id = 39 and user_id = 143\nand actual_start_time >= '2025-10-13'\nAND type IN ('conference', 'softphone-inbound', 'softphone-outbound')\n;\n\nSELECT * FROM opportunities WHERE account_id IN (178);\nselect * from activities where id IN (620137, 620187, 620188, 620189, 620230);\n\n# HS\nSELECT * FROM opportunities WHERE id IN (238);\nselect * from activities where id IN (477,2076);\n\nselect * from users;\n\nSELECT COUNT(*) FROM users;\nSELECT COUNT(*) FROM activities;\nSELECT COUNT(*) FROM opportunities;\n\nUPDATE activities\nSET\n actual_start_time = '2025-12-19 09:00:00',\n actual_end_time = '2025-12-19 10:30:00',\n scheduled_start_time = '2025-12-19 09:00:00',\n scheduled_end_time = '2025-12-19 10:30:00'\nWHERE id IN (407509,407375);\n\nselect * from partners;\n\nSELECT id, uuid, type, actual_start_time, user_id, crm_configuration_id\nFROM activities\nWHERE user_id = 143\nAND actual_start_time >= '2025-10-13 00:00:00'\nAND actual_start_time <= '2026-01-13 23:59:59'\nORDER BY actual_start_time DESC;\n\nSELECT * FROM activities WHERE uuid_to_bin('78eda160-3086-435f-88a5-bb0c71b6008d') = uuid;\nSELECT * FROM crm_layouts where crm_configuration_id = 39;\nSELECT * FROM crm_layout_entities WHERE crm_layout_id = 282;\n# lead_id\n# account_id 177\n# contact_id 3969\n# opportunity_id\n# stage_id 203\n\nSELECT * FROM opportunities WHERE opportunities.crm_configuration_id = id = 282;\n\nSELECT * FROM activities where crm_configuration_id = 39 AND type = 'conference'\nAND user_id = 143 and actual_start_time >= '2025-10-13';\n\nSELECT * FROM activities a\n# JOIN opportunities o ON a.opportunity_id = o.id\nWHERE a.crm_configuration_id = 39 AND a.type = 'conference'\nand status = 'completed' and recording_state = 'recorded'\nand a.actual_start_time >= '2025-10-13'\nAND a.user_id = 143\n;\n\nselect * from leads\nwhere crm_configuration_id = 39; # 112 -> ac. 178, 109 => op. 1707\n\nSELECT * FROM activities WHERE id IN (356013,616188,616202,616310,407509,407375,356001,356008);\nSELECT * FROM activities WHERE id IN (356013,616188,616202,616310);\nSELECT * FROM activities WHERE id IN (407509,407375); # leads: 112, 109 | status - 198\nSELECT * FROM activities WHERE id IN (356001, 356008); # contacts:\n\nSELECT * FROM opportunities WHERE id IN (1707);\nSELECT * FROM stages where id IN (204, 198);\nSELECT * FROM opportunities WHERE account_id IN (178);\nSELECT * FROM opportunities WHERE crm_configuration_id = 39 AND created_at > '2025-01-01';\nSELECT * FROM contacts WHERE account_id IN (178); # 4118 Musaibe, 4448 Ceco Personal\n\nSELECT * FROM activities where crm_configuration_id = 39\nAND opportunity_id IS NULL\nAND is_internal = false\nand status = 'completed' and recording_state = 'recorded'\nAND actual_start_time >= '2025-10-13'\nAND (lead_id IS NOT NULL OR contact_id IS NOT NULL OR account_id IS NOT NULL)\n# AND lead_id IN (112, 109)\n;\n\nSELECT * FROM crm_profiles WHERE user_id = 143;\n\nselect * from inboxes; # 212\nselect * from users where id = 143; # 143\nselect * from inbox_email_batches where inbox_id = 212\nand updated_at >= '2026-01-28 00:00:00' order by id desc;\nselect * from inbox_emails where inbox_id = 212\nand batch_id = 95885 order by id desc;\nselect * from email_messages where origin_user_id = 143;\nselect * from activities where user_id = 143 and updated_at >= '2026-01-28 00:00:00';\nselect * from participants where activity_id = 620247;\n\nselect * from crm_profiles where user_id = 143;\n\nSELECT * FROM activities WHERE uuid_to_bin('458cf915-b914-4000-b083-5687b32b2956') = uuid; # 356001\nselect * from transcription where activity_id = 356001; # 6943\nselect * from ai_prompts where transcription_id = 6943;\nSELECT * FROM activity_summary_logs where activity_id = 356001;\n\nSELECT * FROM social_accounts WHERE sociable_id = 143;\n\n# ************************************************************************************\nSELECT * FROM activities WHERE uuid_to_bin('0164a4fb-cb95-454e-9edd-4d804e4999bd') = uuid;\n# 422515 softphone tr. 8100\n\nSELECT * FROM activities WHERE uuid_to_bin('7520add8-8d87-41a5-98e5-fc4edf96f21e') = uuid;\n# 407509 conference tr. 7670 crmId: 00UD1000002J9aTMAS\n\nselect * from ai_prompts where transcription_id IN (8100, 7670);\nselect * from activity_summary_logs where activity_id = 407509;\n\nselect * from sidekick_settings;\nselect * from default_activity_types;\n\nSELECT * FROM contacts WHERE crm_configuration_id = 39 and email = 'm.kogoj@gmx.at';\nSELECT * FROM leads WHERE crm_configuration_id = 39 and email = 'm.kogoj@gmx.at';\n\nSELECT * FROM activity_searches where user_id = 143;\nSELECT * FROM groups where team_id = 1;\n\nselect * from teams where id = 1;\nselect * from groups where team_id = 1; # 1150 - 7e75f8025c22\nselect id, name, group_id, status, deleted_at, email\nfrom users where team_id = 1 order by group_id desc ;\n\nselect * from activity_searches where id in (1977, 1978, 1979);\nselect * from activity_search_filters where activity_search_id IN (1977, 1978, 1979);\nselect * from activity_search_filters where filter = 'group_id' and value = '443f26b8-8512-437e-a9f9-7e75f8025c22'; # 10268, 10272, 10277\nselect * from nudges where activity_search_id IN (1977, 1978, 1979); # 877, 878, 879\n\nINSERT INTO `activity_search_filters`\n(`activity_search_id`, `filter`, `value`) VALUES\n(1977, 'group_id', '443f26b8-8512-437e-a9f9-7e75f8025c22'),\n(1978, 'group_id', '443f26b8-8512-437e-a9f9-7e75f8025c22'),\n(1979, 'group_id', '443f26b8-8512-437e-a9f9-7e75f8025c22')\n;\n\nselect * from crm_configurations where id = 39;\n\n\nselect sa.* from users u JOIN social_accounts sa on u.id = sa.sociable_id\nwhere u.team_id = 1;\nSELECT * FROM social_accounts WHERE sociable_id = 1635;\nSELECT * FROM users WHERE id = 1635;\n\nselect * from teams where id = 1;\nselect * from users where team_id = 1;\nselect * from team_features where team_id = 1;\nselect * from features;\n\nSELECT * FROM activity_searches where id = 1982; # 1981\nSELECT * FROM activity_search_filters WHERE activity_search_id = 1982;\n\nSELECT * FROM activities WHERE uuid_to_bin('e916569b-086c-4bd1-94d7-5e3802c27ccf') = uuid;\nSELECT * FROM groups WHERE id = 1439;\nSELECT * FROM users WHERE group_id = 1439;\n\nselect * from permissions; # 158\nselect * from roles;\nselect * from permission_role;\n\nselect * from teams where id = 1;\nselect * from groups g JOIN playbooks p on g.playbook_id = p.id where g.team_id = 1;\nselect * from groups where id = 28;\nselect * from playbooks where team_id = 1;\nselect * from playbooks where id = 179;\nselect * from playbook_categories where id = 1391;\nselect * from users where id = 143;\nselect * from crm_profiles where user_id = 143;\nselect * from activities where crm_configuration_id = 39 and type = 'conference'\nand crm_provider_id IS NOT NULL ORDER by id desc;\nselect * from activities where id = 422003; # 00UO400000pB6fpMAC\n\nSELECT ar.id, ar.uuid, ar.media_type, ar.status, a.type\nFROM automated_report_results ar\nJOIN automated_reports a ON a.id = ar.report_id\nWHERE a.type = 'ask_jiminny'\nLIMIT 10;\n\nSELECT * FROM automated_reports where id = 71;\nSELECT * FROM automated_report_results where report_id = 71;\nUPDATE automated_reports set playbook_categories = NULL where id = 68;\nSELECT * FROM automated_report_results where id = 275;\n\nSELECT * FROM automated_reports order by id desc;\nSELECT * FROM automated_report_results order by id desc;\nselect * from activity_searches where user_id = 143;\nselect * from ask_anything_prompts;\n\nSELECT `automated_report_results`.* FROM `automated_report_results`\nINNER JOIN `automated_reports`\n ON `automated_report_results`.`report_id` = `automated_reports`.`id`\nWHERE 1=1\n AND `automated_report_results`.`generated_at` IS NOT NULL\n# AND `automated_report_results`.`sent_at` IS NOT NULL\n AND `automated_reports`.`team_id` = 1\n AND JSON_CONTAINS(`automated_reports`.`recipients`, 143, '$.\"users\"')\n;\n\nSELECT * FROM automated_reports where id = 67;\nSELECT * FROM automated_reports where id = 42;\nSELECT * FROM users WHERE id = 143; # group 28\n\nselect * from teams where id = 3143;\nselect * from crm_configurations where id = 500;\nselect * from users where name = 'Integration Account'; # 1695\nSELECT * FROM social_accounts WHERE sociable_id = 1695;\n\nselect * from activities where crm_configuration_id = 39\nand recording_state = 'recorded' and duration > 60\nand status = 'completed' and actual_start_time >= '2025-12-01';\n\nSELECT * FROM activities WHERE uuid_to_bin('458cf915-b914-4000-b083-5687b32b2956') = uuid;\n\nselect * from leads;\n\nSELECT * FROM activities WHERE uuid_to_bin('f43cf158-e60d-46e5-92f8-c4e0594a3219') = uuid; # 422003\nSELECT * FROM activities WHERE id IN (16,422003);\nSELECT * FROM activities where status = 'failed';\n\nSELECT * FROM tracks WHERE activity_id = 422003;\n\nSELECT\n a.*\nFROM activities a\nJOIN users u ON a.user_id = u.id\nWHERE\n a.status = 'completed'\n AND uuid_to_bin('641f1acb-16b8-42d1-8726-df52979dad0e') = u.uuid\n AND a.deleted_at IS NULL\n AND EXISTS (\n SELECT 1 FROM tracks t\n WHERE t.activity_id = a.id\n AND t.type IN ('audio', 'video')\n )\nORDER BY a.actual_start_time DESC\nLIMIT 25;\n\nselect * from teams where id = 19;\nselect * from crm_configurations where provider = 'pipedrive';\nSELECT\n CONCAT(u.id, CASE WHEN u.id = t.owner_id THEN ' (owner)' ELSE '' END) AS user_id,\n u.email,\n sa.*,\n t.owner_id FROM social_accounts sa\nJOIN users u on u.id = sa.sociable_id\nJOIN teams t on t.id = u.team_id\nWHERE u.team_id = 19 and sa.provider = 'pipedrive';\n\nSELECT * FROM social_accounts WHERE id = 1116;\n\nUPDATE social_accounts SET provider_user_token = 'v1u:AQIBAHj-LzTNK2yuuuaLqifzhWb9crUNKTpk4FlQ9rjnXqp_6AEQhDhDQVa1nvWCHEvnpvSEAAAAfjB8BgkqhkiG9w0BBwagbzBtAgEAMGgGCSqGSIb3DQEHATAeBglghkgBZQMEAS4wEQQMnG8KNcZLIjEnlRPxAgEQgDsGPIcKjsMU7Qel36BtM5FCQa56mYUy24_AAoqd12yjVFkq6egLqS0inp-5G4JE7frJURMV8VTw_fY14g:rYyABXmXsBhEdYU_dfmDH8GF-vzSseJXE5bds_zAyVdAwlTXOPdTl9i4PS4jVofLvpq7IRgvEt2BzGhR6cWiQXHHD0AtayQOkZm262ClFCsMYtKGfep0Jq1n0eiRIVqT9gAY7rWvhpEDF8oAlgnRGmqx-euIkpzE79sPXh4OjNx_yUIaanjyplGpBBJ_NiACd1sMlZmseyUyyU_gldqlCBAuK9hhATc9icgg7zuoc7nKBBrlg49tRtzEagDh6xbFBpzfCp7kE_7n4TLWfWHLPMzu-bktjwA969G9sFRmoH1GjPA0a2odDT4dk1_1ouBrB1NcTT2hQUqH-_RzDW2nWmeoVHA',\nprovider_refresh_token = '5034113:19555731:87c14258f0c813d02767ee975f6044d46b6b2bfc',\nexpires = 1779091997,\nstate = 'connected'\nWHERE id = 1116;\n\n \"provider_user_token\": \"v1u:AQIBAHj-LzTNK2yuuuaLqifzhWb9crUNKTpk4FlQ9rjnXqp_6AEQhDhDQVa1nvWCHEvnpvSEAAAAfjB8BgkqhkiG9w0BBwagbzBtAgEAMGgGCSqGSIb3DQEHATAeBglghkgBZQMEAS4wEQQMnG8KNcZLIjEnlRPxAgEQgDsGPIcKjsMU7Qel36BtM5FCQa56mYUy24_AAoqd12yjVFkq6egLqS0inp-5G4JE7frJURMV8VTw_fY14g:rYyABXmXsBhEdYU_dfmDH8GF-vzSseJXE5bds_zAyVdAwlTXOPdTl9i4PS4jVofLvpq7IRgvEt2BzGhR6cWiQXHHD0AtayQOkZm262ClFCsMYtKGfep0Jq1n0eiRIVqT9gAY7rWvhpEDF8oAlgnRGmqx-euIkpzE79sPXh4OjNx_yUIaanjyplGpBBJ_NiACd1sMlZmseyUyyU_gldqlCBAuK9hhATc9icgg7zuoc7nKBBrlg49tRtzEagDh6xbFBpzfCp7kE_7n4TLWfWHLPMzu-bktjwA969G9sFRmoH1GjPA0a2odDT4dk1_1ouBrB1NcTT2hQUqH-_RzDW2nWmeoVHA\",\n \"provider_refresh_token\": \"5034113:19555731:87c14258f0c813d02767ee975f6044d46b6b2bfc\",\n \"expires\": 1779091997,","depth":4,"on_screen":true,"value":"SELECT a.id, a.uuid, a.actual_start_time, o.id, o.uuid FROM opportunities o\nJOIN activities a ON o.id = a.opportunity_id\nWHERE a.crm_configuration_id = 39\nAND a.actual_start_time > '2025-10-13'\nAND a.type IN ('conference', 'softphone-inbound', 'softphone-outbound')\n;\n\nSELECT * FROM activities\nWHERE crm_configuration_id = 39 and user_id = 143\nand actual_start_time >= '2025-10-13'\nAND type IN ('conference', 'softphone-inbound', 'softphone-outbound')\n;\n\nSELECT * FROM opportunities WHERE account_id IN (178);\nselect * from activities where id IN (620137, 620187, 620188, 620189, 620230);\n\n# HS\nSELECT * FROM opportunities WHERE id IN (238);\nselect * from activities where id IN (477,2076);\n\nselect * from users;\n\nSELECT COUNT(*) FROM users;\nSELECT COUNT(*) FROM activities;\nSELECT COUNT(*) FROM opportunities;\n\nUPDATE activities\nSET\n actual_start_time = '2025-12-19 09:00:00',\n actual_end_time = '2025-12-19 10:30:00',\n scheduled_start_time = '2025-12-19 09:00:00',\n scheduled_end_time = '2025-12-19 10:30:00'\nWHERE id IN (407509,407375);\n\nselect * from partners;\n\nSELECT id, uuid, type, actual_start_time, user_id, crm_configuration_id\nFROM activities\nWHERE user_id = 143\nAND actual_start_time >= '2025-10-13 00:00:00'\nAND actual_start_time <= '2026-01-13 23:59:59'\nORDER BY actual_start_time DESC;\n\nSELECT * FROM activities WHERE uuid_to_bin('78eda160-3086-435f-88a5-bb0c71b6008d') = uuid;\nSELECT * FROM crm_layouts where crm_configuration_id = 39;\nSELECT * FROM crm_layout_entities WHERE crm_layout_id = 282;\n# lead_id\n# account_id 177\n# contact_id 3969\n# opportunity_id\n# stage_id 203\n\nSELECT * FROM opportunities WHERE opportunities.crm_configuration_id = id = 282;\n\nSELECT * FROM activities where crm_configuration_id = 39 AND type = 'conference'\nAND user_id = 143 and actual_start_time >= '2025-10-13';\n\nSELECT * FROM activities a\n# JOIN opportunities o ON a.opportunity_id = o.id\nWHERE a.crm_configuration_id = 39 AND a.type = 'conference'\nand status = 'completed' and recording_state = 'recorded'\nand a.actual_start_time >= '2025-10-13'\nAND a.user_id = 143\n;\n\nselect * from leads\nwhere crm_configuration_id = 39; # 112 -> ac. 178, 109 => op. 1707\n\nSELECT * FROM activities WHERE id IN (356013,616188,616202,616310,407509,407375,356001,356008);\nSELECT * FROM activities WHERE id IN (356013,616188,616202,616310);\nSELECT * FROM activities WHERE id IN (407509,407375); # leads: 112, 109 | status - 198\nSELECT * FROM activities WHERE id IN (356001, 356008); # contacts:\n\nSELECT * FROM opportunities WHERE id IN (1707);\nSELECT * FROM stages where id IN (204, 198);\nSELECT * FROM opportunities WHERE account_id IN (178);\nSELECT * FROM opportunities WHERE crm_configuration_id = 39 AND created_at > '2025-01-01';\nSELECT * FROM contacts WHERE account_id IN (178); # 4118 Musaibe, 4448 Ceco Personal\n\nSELECT * FROM activities where crm_configuration_id = 39\nAND opportunity_id IS NULL\nAND is_internal = false\nand status = 'completed' and recording_state = 'recorded'\nAND actual_start_time >= '2025-10-13'\nAND (lead_id IS NOT NULL OR contact_id IS NOT NULL OR account_id IS NOT NULL)\n# AND lead_id IN (112, 109)\n;\n\nSELECT * FROM crm_profiles WHERE user_id = 143;\n\nselect * from inboxes; # 212\nselect * from users where id = 143; # 143\nselect * from inbox_email_batches where inbox_id = 212\nand updated_at >= '2026-01-28 00:00:00' order by id desc;\nselect * from inbox_emails where inbox_id = 212\nand batch_id = 95885 order by id desc;\nselect * from email_messages where origin_user_id = 143;\nselect * from activities where user_id = 143 and updated_at >= '2026-01-28 00:00:00';\nselect * from participants where activity_id = 620247;\n\nselect * from crm_profiles where user_id = 143;\n\nSELECT * FROM activities WHERE uuid_to_bin('458cf915-b914-4000-b083-5687b32b2956') = uuid; # 356001\nselect * from transcription where activity_id = 356001; # 6943\nselect * from ai_prompts where transcription_id = 6943;\nSELECT * FROM activity_summary_logs where activity_id = 356001;\n\nSELECT * FROM social_accounts WHERE sociable_id = 143;\n\n# ************************************************************************************\nSELECT * FROM activities WHERE uuid_to_bin('0164a4fb-cb95-454e-9edd-4d804e4999bd') = uuid;\n# 422515 softphone tr. 8100\n\nSELECT * FROM activities WHERE uuid_to_bin('7520add8-8d87-41a5-98e5-fc4edf96f21e') = uuid;\n# 407509 conference tr. 7670 crmId: 00UD1000002J9aTMAS\n\nselect * from ai_prompts where transcription_id IN (8100, 7670);\nselect * from activity_summary_logs where activity_id = 407509;\n\nselect * from sidekick_settings;\nselect * from default_activity_types;\n\nSELECT * FROM contacts WHERE crm_configuration_id = 39 and email = 'm.kogoj@gmx.at';\nSELECT * FROM leads WHERE crm_configuration_id = 39 and email = 'm.kogoj@gmx.at';\n\nSELECT * FROM activity_searches where user_id = 143;\nSELECT * FROM groups where team_id = 1;\n\nselect * from teams where id = 1;\nselect * from groups where team_id = 1; # 1150 - 7e75f8025c22\nselect id, name, group_id, status, deleted_at, email\nfrom users where team_id = 1 order by group_id desc ;\n\nselect * from activity_searches where id in (1977, 1978, 1979);\nselect * from activity_search_filters where activity_search_id IN (1977, 1978, 1979);\nselect * from activity_search_filters where filter = 'group_id' and value = '443f26b8-8512-437e-a9f9-7e75f8025c22'; # 10268, 10272, 10277\nselect * from nudges where activity_search_id IN (1977, 1978, 1979); # 877, 878, 879\n\nINSERT INTO `activity_search_filters`\n(`activity_search_id`, `filter`, `value`) VALUES\n(1977, 'group_id', '443f26b8-8512-437e-a9f9-7e75f8025c22'),\n(1978, 'group_id', '443f26b8-8512-437e-a9f9-7e75f8025c22'),\n(1979, 'group_id', '443f26b8-8512-437e-a9f9-7e75f8025c22')\n;\n\nselect * from crm_configurations where id = 39;\n\n\nselect sa.* from users u JOIN social_accounts sa on u.id = sa.sociable_id\nwhere u.team_id = 1;\nSELECT * FROM social_accounts WHERE sociable_id = 1635;\nSELECT * FROM users WHERE id = 1635;\n\nselect * from teams where id = 1;\nselect * from users where team_id = 1;\nselect * from team_features where team_id = 1;\nselect * from features;\n\nSELECT * FROM activity_searches where id = 1982; # 1981\nSELECT * FROM activity_search_filters WHERE activity_search_id = 1982;\n\nSELECT * FROM activities WHERE uuid_to_bin('e916569b-086c-4bd1-94d7-5e3802c27ccf') = uuid;\nSELECT * FROM groups WHERE id = 1439;\nSELECT * FROM users WHERE group_id = 1439;\n\nselect * from permissions; # 158\nselect * from roles;\nselect * from permission_role;\n\nselect * from teams where id = 1;\nselect * from groups g JOIN playbooks p on g.playbook_id = p.id where g.team_id = 1;\nselect * from groups where id = 28;\nselect * from playbooks where team_id = 1;\nselect * from playbooks where id = 179;\nselect * from playbook_categories where id = 1391;\nselect * from users where id = 143;\nselect * from crm_profiles where user_id = 143;\nselect * from activities where crm_configuration_id = 39 and type = 'conference'\nand crm_provider_id IS NOT NULL ORDER by id desc;\nselect * from activities where id = 422003; # 00UO400000pB6fpMAC\n\nSELECT ar.id, ar.uuid, ar.media_type, ar.status, a.type\nFROM automated_report_results ar\nJOIN automated_reports a ON a.id = ar.report_id\nWHERE a.type = 'ask_jiminny'\nLIMIT 10;\n\nSELECT * FROM automated_reports where id = 71;\nSELECT * FROM automated_report_results where report_id = 71;\nUPDATE automated_reports set playbook_categories = NULL where id = 68;\nSELECT * FROM automated_report_results where id = 275;\n\nSELECT * FROM automated_reports order by id desc;\nSELECT * FROM automated_report_results order by id desc;\nselect * from activity_searches where user_id = 143;\nselect * from ask_anything_prompts;\n\nSELECT `automated_report_results`.* FROM `automated_report_results`\nINNER JOIN `automated_reports`\n ON `automated_report_results`.`report_id` = `automated_reports`.`id`\nWHERE 1=1\n AND `automated_report_results`.`generated_at` IS NOT NULL\n# AND `automated_report_results`.`sent_at` IS NOT NULL\n AND `automated_reports`.`team_id` = 1\n AND JSON_CONTAINS(`automated_reports`.`recipients`, 143, '$.\"users\"')\n;\n\nSELECT * FROM automated_reports where id = 67;\nSELECT * FROM automated_reports where id = 42;\nSELECT * FROM users WHERE id = 143; # group 28\n\nselect * from teams where id = 3143;\nselect * from crm_configurations where id = 500;\nselect * from users where name = 'Integration Account'; # 1695\nSELECT * FROM social_accounts WHERE sociable_id = 1695;\n\nselect * from activities where crm_configuration_id = 39\nand recording_state = 'recorded' and duration > 60\nand status = 'completed' and actual_start_time >= '2025-12-01';\n\nSELECT * FROM activities WHERE uuid_to_bin('458cf915-b914-4000-b083-5687b32b2956') = uuid;\n\nselect * from leads;\n\nSELECT * FROM activities WHERE uuid_to_bin('f43cf158-e60d-46e5-92f8-c4e0594a3219') = uuid; # 422003\nSELECT * FROM activities WHERE id IN (16,422003);\nSELECT * FROM activities where status = 'failed';\n\nSELECT * FROM tracks WHERE activity_id = 422003;\n\nSELECT\n a.*\nFROM activities a\nJOIN users u ON a.user_id = u.id\nWHERE\n a.status = 'completed'\n AND uuid_to_bin('641f1acb-16b8-42d1-8726-df52979dad0e') = u.uuid\n AND a.deleted_at IS NULL\n AND EXISTS (\n SELECT 1 FROM tracks t\n WHERE t.activity_id = a.id\n AND t.type IN ('audio', 'video')\n )\nORDER BY a.actual_start_time DESC\nLIMIT 25;\n\nselect * from teams where id = 19;\nselect * from crm_configurations where provider = 'pipedrive';\nSELECT\n CONCAT(u.id, CASE WHEN u.id = t.owner_id THEN ' (owner)' ELSE '' END) AS user_id,\n u.email,\n sa.*,\n t.owner_id FROM social_accounts sa\nJOIN users u on u.id = sa.sociable_id\nJOIN teams t on t.id = u.team_id\nWHERE u.team_id = 19 and sa.provider = 'pipedrive';\n\nSELECT * FROM social_accounts WHERE id = 1116;\n\nUPDATE social_accounts SET provider_user_token = 'v1u:AQIBAHj-LzTNK2yuuuaLqifzhWb9crUNKTpk4FlQ9rjnXqp_6AEQhDhDQVa1nvWCHEvnpvSEAAAAfjB8BgkqhkiG9w0BBwagbzBtAgEAMGgGCSqGSIb3DQEHATAeBglghkgBZQMEAS4wEQQMnG8KNcZLIjEnlRPxAgEQgDsGPIcKjsMU7Qel36BtM5FCQa56mYUy24_AAoqd12yjVFkq6egLqS0inp-5G4JE7frJURMV8VTw_fY14g:rYyABXmXsBhEdYU_dfmDH8GF-vzSseJXE5bds_zAyVdAwlTXOPdTl9i4PS4jVofLvpq7IRgvEt2BzGhR6cWiQXHHD0AtayQOkZm262ClFCsMYtKGfep0Jq1n0eiRIVqT9gAY7rWvhpEDF8oAlgnRGmqx-euIkpzE79sPXh4OjNx_yUIaanjyplGpBBJ_NiACd1sMlZmseyUyyU_gldqlCBAuK9hhATc9icgg7zuoc7nKBBrlg49tRtzEagDh6xbFBpzfCp7kE_7n4TLWfWHLPMzu-bktjwA969G9sFRmoH1GjPA0a2odDT4dk1_1ouBrB1NcTT2hQUqH-_RzDW2nWmeoVHA',\nprovider_refresh_token = '5034113:19555731:87c14258f0c813d02767ee975f6044d46b6b2bfc',\nexpires = 1779091997,\nstate = 'connected'\nWHERE id = 1116;\n\n \"provider_user_token\": \"v1u:AQIBAHj-LzTNK2yuuuaLqifzhWb9crUNKTpk4FlQ9rjnXqp_6AEQhDhDQVa1nvWCHEvnpvSEAAAAfjB8BgkqhkiG9w0BBwagbzBtAgEAMGgGCSqGSIb3DQEHATAeBglghkgBZQMEAS4wEQQMnG8KNcZLIjEnlRPxAgEQgDsGPIcKjsMU7Qel36BtM5FCQa56mYUy24_AAoqd12yjVFkq6egLqS0inp-5G4JE7frJURMV8VTw_fY14g:rYyABXmXsBhEdYU_dfmDH8GF-vzSseJXE5bds_zAyVdAwlTXOPdTl9i4PS4jVofLvpq7IRgvEt2BzGhR6cWiQXHHD0AtayQOkZm262ClFCsMYtKGfep0Jq1n0eiRIVqT9gAY7rWvhpEDF8oAlgnRGmqx-euIkpzE79sPXh4OjNx_yUIaanjyplGpBBJ_NiACd1sMlZmseyUyyU_gldqlCBAuK9hhATc9icgg7zuoc7nKBBrlg49tRtzEagDh6xbFBpzfCp7kE_7n4TLWfWHLPMzu-bktjwA969G9sFRmoH1GjPA0a2odDT4dk1_1ouBrB1NcTT2hQUqH-_RzDW2nWmeoVHA\",\n \"provider_refresh_token\": \"5034113:19555731:87c14258f0c813d02767ee975f6044d46b6b2bfc\",\n \"expires\": 1779091997,","role_description":"text entry area","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXTextField","text":"Socket fail to connect to host:address=(host=localhost)(port=3306)(type=primary). Connection refused","depth":3,"bounds":{"left":0.3263889,"top":0.0,"width":0.6125,"height":0.018888889},"on_screen":true,"value":"Socket fail to connect to host:address=(host=localhost)(port=3306)(type=primary). Connection refused","role_description":"text field","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"Project","depth":3,"on_screen":false,"role_description":"text"},{"role":"AXButton","text":"Project","depth":3,"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"New File or Directory…","depth":4,"bounds":{"left":0.0,"top":0.0,"width":0.018055556,"height":0.026666667},"on_screen":false,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Expand Selected","depth":4,"bounds":{"left":0.0,"top":0.0,"width":0.018055556,"height":0.026666667},"on_screen":false,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Collapse All","depth":4,"bounds":{"left":0.0,"top":0.0,"width":0.018055556,"height":0.026666667},"on_screen":false,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Options","depth":4,"bounds":{"left":0.0,"top":0.0,"width":0.018055556,"height":0.026666667},"on_screen":false,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Hide","depth":4,"bounds":{"left":0.0,"top":0.0,"width":0.018055556,"height":0.026666667},"on_screen":false,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false}]...
|
-3951396835426018671
|
6902642803485316685
|
idle
|
accessibility
|
NULL
|
Project: faVsco.js, menu
JY-20676-delete-report-re Project: faVsco.js, menu
JY-20676-delete-report-related-objects, menu
Start Listening for PHP Debug Connections
AskAnythingPromptServiceTest
Run 'AskAnythingPromptServiceTest'
Debug 'AskAnythingPromptServiceTest'
More Actions
JetBrains AI
Search Everywhere
IDE and Project Settings
Sync Changes
Hide This Notification
Code changed:
Hide
12
Previous Highlighted Error
Next Highlighted Error
<?php
declare(strict_types=1);
namespace Jiminny\Repositories;
use Illuminate\Database\Eloquent\Builder;
use Illuminate\Support\Collection;
use Jiminny\Models\AskAnything\AskAnythingPrompt;
use Jiminny\Models\AskAnything\AskAnythingPromptTarget;
use Jiminny\Models\AskAnything\UserAskAnythingPrompt;
use Jiminny\Models\Group;
use Jiminny\Models\User;
class AskAnythingRepository
{
/**
* @return Collection<UserAskAnythingPrompt>
*/
public function findSharedUsersAndGroupsByPromptId(int $promptId): Collection
{
return UserAskAnythingPrompt::query()
->where('prompt_id', $promptId)
->where('is_removed', false)
->get();
}
public function findSharedPromptByUser(int $promptId, User $user): ?UserAskAnythingPrompt
{
return UserAskAnythingPrompt::with('prompt')
->where('prompt_id', $promptId)
->where('user_id', $user->getId())
->first();
}
public function findSharedPromptByUserGroup(int $promptId, User $user): ?UserAskAnythingPrompt
{
$userGroupId = $user->getGroupId();
return UserAskAnythingPrompt::with('prompt')
->where('prompt_id', $promptId)
->where(static function ($query) use ($userGroupId): void {
if ($userGroupId !== null) {
$query->where('group_id', $userGroupId);
}
})
->first();
}
/**
* @return Collection<AskAnythingPrompt>
*/
public function findPromptsByUserAndTarget(User $user, AskAnythingPromptTarget $target): Collection
{
$userGroupId = $user->getGroupId();
$usersOwnedPrompts = UserAskAnythingPrompt::with('prompt')
->where(static function ($query) use ($user, $userGroupId): void {
$query
->where('user_id', $user->getId());
if ($userGroupId !== null) {
$query->orWhere('group_id', $userGroupId);
}
})
->where('is_removed', false)
->whereHas('prompt', function (Builder $query) use ($target) {
$query->where('target', $target);
})
->orderByRaw('ISNULL(`order`), `order` ASC, `prompt_id` ASC')
->get()
->map(function (UserAskAnythingPrompt $userPrompt) {
return $userPrompt->getPrompt();
});
// Remove those prompts that are hidden for the current user
$usersOwnedPromptsFiltered = $usersOwnedPrompts->filter(function (AskAnythingPrompt $userPrompt) use ($user) {
$promptId = $userPrompt->getId();
$userDisabledPrompt = UserAskAnythingPrompt::query()
->where('prompt_id', $promptId)
->where('is_removed', true)
->where('user_id', $user->getId())
->first();
return $userDisabledPrompt === null;
});
$defaultNonChangedPrompts = AskAnythingPrompt::where('target', $target)
->whereDoesntHave('userPrompts', function ($query) use ($user) {
$query->where('user_id', $user->getId());
})
->whereNull('owner_id')
->get();
$allPrompts = $defaultNonChangedPrompts->merge($usersOwnedPromptsFiltered);
if ($allPrompts->isNotEmpty()) {
$allPrompts->loadCount('automatedReports');
}
return $allPrompts;
}
/**
* @param array<User> $shareUsers
* @param array<Group> $shareGroups
*/
public function createPrompt(
User $user,
AskAnythingPromptTarget $target,
string $title,
string $content,
array $shareUsers,
array $shareGroups,
): AskAnythingPrompt {
$prompt = AskAnythingPrompt::create([
'title' => $title,
'content' => $content,
'target' => $target,
'owner_id' => $user->getId(),
]);
UserAskAnythingPrompt::create([
'user_id' => $user->getId(),
'prompt_id' => $prompt->getId(),
]);
foreach ($shareUsers as $shareUser) {
UserAskAnythingPrompt::create([
'user_id' => $shareUser->getId(),
'prompt_id' => $prompt->getId(),
]);
}
foreach ($shareGroups as $shareGroup) {
UserAskAnythingPrompt::create([
'group_id' => $shareGroup->getId(),
'prompt_id' => $prompt->getId(),
]);
}
return $prompt;
}
/**
* @param array<User> $shareUsers
* @param array<Group> $shareGroups
*/
public function editPrompt(
AskAnythingPrompt $prompt,
string $title,
string $content,
array $shareUsers,
array $shareGroups,
): AskAnythingPrompt {
$prompt->update([
'title' => $title,
'content' => $content,
]);
$previousUserPrompts = UserAskAnythingPrompt::query()
->where('prompt_id', $prompt->getId())
->whereNull('group_id')
->whereNotNull('user_id')
->whereNot('user_id', $prompt->getOwnerId())
->get();
$previousGroupPrompts = UserAskAnythingPrompt::query()
->where('prompt_id', $prompt->getId())
->whereNotNull('group_id')
->whereNull('user_id')
->get();
$shareUserPrompts = [];
foreach ($shareUsers as $shareUser) {
$shareUserPrompts[] = UserAskAnythingPrompt::create([
'user_id' => $shareUser->getId(),
'prompt_id' => $prompt->getId(),
]);
}
$shareGroupPrompts = [];
foreach ($shareGroups as $shareGroup) {
$shareGroupPrompts[] = UserAskAnythingPrompt::create([
'group_id' => $shareGroup->getId(),
'prompt_id' => $prompt->getId(),
]);
}
// Remove those users that are no longer added
$diffUsers = $previousUserPrompts->diff($shareUserPrompts);
foreach ($diffUsers as $previousUserPrompt) {
$previousUserPrompt->delete();
}
// Remove those groups that are no longer added
$diffGroups = $previousGroupPrompts->diff($shareGroupPrompts);
foreach ($diffGroups as $previousGroupPrompt) {
$previousGroupPrompt->delete();
}
return $prompt;
}
public function deletePrompt(AskAnythingPrompt $prompt): void
{
// Also deletes all associations with users
$prompt->delete();
}
public function hidePromptForUser(AskAnythingPrompt $prompt, User $user): AskAnythingPrompt
{
$userPromptSettings = UserAskAnythingPrompt::where('user_id', $user->getId())
->where('prompt_id', $prompt->getId())
->first();
if ($userPromptSettings === null) {
$userPromptSettings = UserAskAnythingPrompt::create([
'user_id' => $user->getId(),
'prompt_id' => $prompt->getId(),
]);
}
$userPromptSettings->update([
'is_removed' => true,
]);
return $prompt;
}
public function getPromptByUuid(string $uuid): ?AskAnythingPrompt
{
return AskAnythingPrompt::where('uuid', AskAnythingPrompt::toOptimized($uuid))->first();
}
public function orderPromptForUser(AskAnythingPrompt $prompt, User $user, int $order): void
{
$userPromptSettings = UserAskAnythingPrompt::where('user_id', $user->getId())
->where('prompt_id', $prompt->getId())
->first();
if ($userPromptSettings === null) {
$userPromptSettings = UserAskAnythingPrompt::create([
'user_id' => $user->getId(),
'prompt_id' => $prompt->getId(),
]);
}
$userPromptSettings->update([
'order' => $order,
]);
}
}
Execute
Explain Plan
Browse Query History
View Parameters
Open Query Execution Settings…
In-Editor Results
Tx: Auto
Cancel Running Statements
Playground
jiminny
Code changed:
Hide
Sync Changes
Hide This Notification
21
1
18
2
6
Previous Highlighted Error
Next Highlighted Error
SELECT a.id, a.uuid, a.actual_start_time, o.id, o.uuid FROM opportunities o
JOIN activities a ON o.id = a.opportunity_id
WHERE a.crm_configuration_id = 39
AND a.actual_start_time > '2025-10-13'
AND a.type IN ('conference', 'softphone-inbound', 'softphone-outbound')
;
SELECT * FROM activities
WHERE crm_configuration_id = 39 and user_id = 143
and actual_start_time >= '2025-10-13'
AND type IN ('conference', 'softphone-inbound', 'softphone-outbound')
;
SELECT * FROM opportunities WHERE account_id IN (178);
select * from activities where id IN (620137, 620187, 620188, 620189, 620230);
# HS
SELECT * FROM opportunities WHERE id IN (238);
select * from activities where id IN (477,2076);
select * from users;
SELECT COUNT(*) FROM users;
SELECT COUNT(*) FROM activities;
SELECT COUNT(*) FROM opportunities;
UPDATE activities
SET
actual_start_time = '2025-12-19 09:00:00',
actual_end_time = '2025-12-19 10:30:00',
scheduled_start_time = '2025-12-19 09:00:00',
scheduled_end_time = '2025-12-19 10:30:00'
WHERE id IN (407509,407375);
select * from partners;
SELECT id, uuid, type, actual_start_time, user_id, crm_configuration_id
FROM activities
WHERE user_id = 143
AND actual_start_time >= '2025-10-13 00:00:00'
AND actual_start_time <= '2026-01-13 23:59:59'
ORDER BY actual_start_time DESC;
SELECT * FROM activities WHERE uuid_to_bin('78eda160-3086-435f-88a5-bb0c71b6008d') = uuid;
SELECT * FROM crm_layouts where crm_configuration_id = 39;
SELECT * FROM crm_layout_entities WHERE crm_layout_id = 282;
# lead_id
# account_id 177
# contact_id 3969
# opportunity_id
# stage_id 203
SELECT * FROM opportunities WHERE opportunities.crm_configuration_id = id = 282;
SELECT * FROM activities where crm_configuration_id = 39 AND type = 'conference'
AND user_id = 143 and actual_start_time >= '2025-10-13';
SELECT * FROM activities a
# JOIN opportunities o ON a.opportunity_id = o.id
WHERE a.crm_configuration_id = 39 AND a.type = 'conference'
and status = 'completed' and recording_state = 'recorded'
and a.actual_start_time >= '2025-10-13'
AND a.user_id = 143
;
select * from leads
where crm_configuration_id = 39; # 112 -> ac. 178, 109 => op. 1707
SELECT * FROM activities WHERE id IN (356013,616188,616202,616310,407509,407375,356001,356008);
SELECT * FROM activities WHERE id IN (356013,616188,616202,616310);
SELECT * FROM activities WHERE id IN (407509,407375); # leads: 112, 109 | status - 198
SELECT * FROM activities WHERE id IN (356001, 356008); # contacts:
SELECT * FROM opportunities WHERE id IN (1707);
SELECT * FROM stages where id IN (204, 198);
SELECT * FROM opportunities WHERE account_id IN (178);
SELECT * FROM opportunities WHERE crm_configuration_id = 39 AND created_at > '2025-01-01';
SELECT * FROM contacts WHERE account_id IN (178); # 4118 Musaibe, 4448 Ceco Personal
SELECT * FROM activities where crm_configuration_id = 39
AND opportunity_id IS NULL
AND is_internal = false
and status = 'completed' and recording_state = 'recorded'
AND actual_start_time >= '2025-10-13'
AND (lead_id IS NOT NULL OR contact_id IS NOT NULL OR account_id IS NOT NULL)
# AND lead_id IN (112, 109)
;
SELECT * FROM crm_profiles WHERE user_id = 143;
select * from inboxes; # 212
select * from users where id = 143; # 143
select * from inbox_email_batches where inbox_id = 212
and updated_at >= '2026-01-28 00:00:00' order by id desc;
select * from inbox_emails where inbox_id = 212
and batch_id = 95885 order by id desc;
select * from email_messages where origin_user_id = 143;
select * from activities where user_id = 143 and updated_at >= '2026-01-28 00:00:00';
select * from participants where activity_id = 620247;
select * from crm_profiles where user_id = 143;
SELECT * FROM activities WHERE uuid_to_bin('458cf915-b914-4000-b083-5687b32b2956') = uuid; # 356001
select * from transcription where activity_id = 356001; # 6943
select * from ai_prompts where transcription_id = 6943;
SELECT * FROM activity_summary_logs where activity_id = 356001;
SELECT * FROM social_accounts WHERE sociable_id = 143;
# [PASSWORD_DOTS]
SELECT * FROM activities WHERE uuid_to_bin('0164a4fb-cb95-454e-9edd-4d804e4999bd') = uuid;
# 422515 softphone tr. 8100
SELECT * FROM activities WHERE uuid_to_bin('7520add8-8d87-41a5-98e5-fc4edf96f21e') = uuid;
# 407509 conference tr. 7670 crmId: 00UD1000002J9aTMAS
select * from ai_prompts where transcription_id IN (8100, 7670);
select * from activity_summary_logs where activity_id = 407509;
select * from sidekick_settings;
select * from default_activity_types;
SELECT * FROM contacts WHERE crm_configuration_id = 39 and email = '[EMAIL]';
SELECT * FROM leads WHERE crm_configuration_id = 39 and email = '[EMAIL]';
SELECT * FROM activity_searches where user_id = 143;
SELECT * FROM groups where team_id = 1;
select * from teams where id = 1;
select * from groups where team_id = 1; # 1150 - 7e75f8025c22
select id, name, group_id, status, deleted_at, email
from users where team_id = 1 order by group_id desc ;
select * from activity_searches where id in (1977, 1978, 1979);
select * from activity_search_filters where activity_search_id IN (1977, 1978, 1979);
select * from activity_search_filters where filter = 'group_id' and value = '443f26b8-8512-437e-a9f9-7e75f8025c22'; # 10268, 10272, 10277
select * from nudges where activity_search_id IN (1977, 1978, 1979); # 877, 878, 879
INSERT INTO `activity_search_filters`
(`activity_search_id`, `filter`, `value`) VALUES
(1977, 'group_id', '443f26b8-8512-437e-a9f9-7e75f8025c22'),
(1978, 'group_id', '443f26b8-8512-437e-a9f9-7e75f8025c22'),
(1979, 'group_id', '443f26b8-8512-437e-a9f9-7e75f8025c22')
;
select * from crm_configurations where id = 39;
select sa.* from users u JOIN social_accounts sa on u.id = sa.sociable_id
where u.team_id = 1;
SELECT * FROM social_accounts WHERE sociable_id = 1635;
SELECT * FROM users WHERE id = 1635;
select * from teams where id = 1;
select * from users where team_id = 1;
select * from team_features where team_id = 1;
select * from features;
SELECT * FROM activity_searches where id = 1982; # 1981
SELECT * FROM activity_search_filters WHERE activity_search_id = 1982;
SELECT * FROM activities WHERE uuid_to_bin('e916569b-086c-4bd1-94d7-5e3802c27ccf') = uuid;
SELECT * FROM groups WHERE id = 1439;
SELECT * FROM users WHERE group_id = 1439;
select * from permissions; # 158
select * from roles;
select * from permission_role;
select * from teams where id = 1;
select * from groups g JOIN playbooks p on g.playbook_id = p.id where g.team_id = 1;
select * from groups where id = 28;
select * from playbooks where team_id = 1;
select * from playbooks where id = 179;
select * from playbook_categories where id = 1391;
select * from users where id = 143;
select * from crm_profiles where user_id = 143;
select * from activities where crm_configuration_id = 39 and type = 'conference'
and crm_provider_id IS NOT NULL ORDER by id desc;
select * from activities where id = 422003; # 00UO400000pB6fpMAC
SELECT ar.id, ar.uuid, ar.media_type, ar.status, a.type
FROM automated_report_results ar
JOIN automated_reports a ON a.id = ar.report_id
WHERE a.type = 'ask_jiminny'
LIMIT 10;
SELECT * FROM automated_reports where id = 71;
SELECT * FROM automated_report_results where report_id = 71;
UPDATE automated_reports set playbook_categories = NULL where id = 68;
SELECT * FROM automated_report_results where id = 275;
SELECT * FROM automated_reports order by id desc;
SELECT * FROM automated_report_results order by id desc;
select * from activity_searches where user_id = 143;
select * from ask_anything_prompts;
SELECT `automated_report_results`.* FROM `automated_report_results`
INNER JOIN `automated_reports`
ON `automated_report_results`.`report_id` = `automated_reports`.`id`
WHERE 1=1
AND `automated_report_results`.`generated_at` IS NOT NULL
# AND `automated_report_results`.`sent_at` IS NOT NULL
AND `automated_reports`.`team_id` = 1
AND JSON_CONTAINS(`automated_reports`.`recipients`, 143, '$."users"')
;
SELECT * FROM automated_reports where id = 67;
SELECT * FROM automated_reports where id = 42;
SELECT * FROM users WHERE id = 143; # group 28
select * from teams where id = 3143;
select * from crm_configurations where id = 500;
select * from users where name = 'Integration Account'; # 1695
SELECT * FROM social_accounts WHERE sociable_id = 1695;
select * from activities where crm_configuration_id = 39
and recording_state = 'recorded' and duration > 60
and status = 'completed' and actual_start_time >= '2025-12-01';
SELECT * FROM activities WHERE uuid_to_bin('458cf915-b914-4000-b083-5687b32b2956') = uuid;
select * from leads;
SELECT * FROM activities WHERE uuid_to_bin('f43cf158-e60d-46e5-92f8-c4e0594a3219') = uuid; # 422003
SELECT * FROM activities WHERE id IN (16,422003);
SELECT * FROM activities where status = 'failed';
SELECT * FROM tracks WHERE activity_id = 422003;
SELECT
a.*
FROM activities a
JOIN users u ON a.user_id = u.id
WHERE
a.status = 'completed'
AND uuid_to_bin('641f1acb-16b8-42d1-8726-df52979dad0e') = u.uuid
AND a.deleted_at IS NULL
AND EXISTS (
SELECT 1 FROM tracks t
WHERE t.activity_id = a.id
AND t.type IN ('audio', 'video')
)
ORDER BY a.actual_start_time DESC
LIMIT 25;
select * from teams where id = 19;
select * from crm_configurations where provider = 'pipedrive';
SELECT
CONCAT(u.id, CASE WHEN u.id = t.owner_id THEN ' (owner)' ELSE '' END) AS user_id,
u.email,
sa.*,
t.owner_id FROM social_accounts sa
JOIN users u on u.id = sa.sociable_id
JOIN teams t on t.id = u.team_id
WHERE u.team_id = 19 and sa.provider = 'pipedrive';
SELECT * FROM social_accounts WHERE id = 1116;
UPDATE social_accounts SET provider_user_token = 'v1u:AQIBAHj-LzTNK2yuuuaLqifzhWb9crUNKTpk4FlQ9rjnXqp_6AEQhDhDQVa1nvWCHEvnpvSEAAAAfjB8BgkqhkiG9w0BBwagbzBtAgEAMGgGCSqGSIb3DQEHATAeBglghkgBZQMEAS4wEQQMnG8KNcZLIjEnlRPxAgEQgDsGPIcKjsMU7Qel36BtM5FCQa56mYUy24_AAoqd12yjVFkq6egLqS0inp-5G4JE7frJURMV8VTw_fY14g:rYyABXmXsBhEdYU_dfmDH8GF-vzSseJXE5bds_zAyVdAwlTXOPdTl9i4PS4jVofLvpq7IRgvEt2BzGhR6cWiQXHHD0AtayQOkZm262ClFCsMYtKGfep0Jq1n0eiRIVqT9gAY7rWvhpEDF8oAlgnRGmqx-euIkpzE79sPXh4OjNx_yUIaanjyplGpBBJ_NiACd1sMlZmseyUyyU_gldqlCBAuK9hhATc9icgg7zuoc7nKBBrlg49tRtzEagDh6xbFBpzfCp7kE_7n4TLWfWHLPMzu-bktjwA969G9sFRmoH1GjPA0a2odDT4dk1_1ouBrB1NcTT2hQUqH-_RzDW2nWmeoVHA',
provider_refresh_token = '5034113:[TELEGRAM_TOKEN]b2bfc',
expires = 1779091997,
state = 'connected'
WHERE id = 1116;
"provider_user_token": "v1u:AQIBAHj-LzTNK2yuuuaLqifzhWb9crUNKTpk4FlQ9rjnXqp_6AEQhDhDQVa1nvWCHEvnpvSEAAAAfjB8BgkqhkiG9w0BBwagbzBtAgEAMGgGCSqGSIb3DQEHATAeBglghkgBZQMEAS4wEQQMnG8KNcZLIjEnlRPxAgEQgDsGPIcKjsMU7Qel36BtM5FCQa56mYUy24_AAoqd12yjVFkq6egLqS0inp-5G4JE7frJURMV8VTw_fY14g:rYyABXmXsBhEdYU_dfmDH8GF-vzSseJXE5bds_zAyVdAwlTXOPdTl9i4PS4jVofLvpq7IRgvEt2BzGhR6cWiQXHHD0AtayQOkZm262ClFCsMYtKGfep0Jq1n0eiRIVqT9gAY7rWvhpEDF8oAlgnRGmqx-euIkpzE79sPXh4OjNx_yUIaanjyplGpBBJ_NiACd1sMlZmseyUyyU_gldqlCBAuK9hhATc9icgg7zuoc7nKBBrlg49tRtzEagDh6xbFBpzfCp7kE_7n4TLWfWHLPMzu-bktjwA969G9sFRmoH1GjPA0a2odDT4dk1_1ouBrB1NcTT2hQUqH-_RzDW2nWmeoVHA",
"provider_refresh_token": "5034113:[TELEGRAM_TOKEN]b2bfc",
"expires": 1779091997,
Socket fail to connect to host:address=(host=localhost)(port=3306)(type=primary). Connection refused
Project
Project
New File or Directory…
Expand Selected
Collapse All
Options
Hide...
|
58079
|
NULL
|
NULL
|
NULL
|
|
58082
|
2045
|
9
|
2026-05-19T11:34:14.585752+00:00
|
/Users/lukas/.screenpipe/data/data/2026-05-19/1779 /Users/lukas/.screenpipe/data/data/2026-05-19/1779190454585_m2.jpg...
|
PhpStorm
|
faVsco.js – AskAnythingRepository.php
|
1
|
NULL
|
monitor_2
|
NULL
|
NULL
|
NULL
|
NULL
|
Project: faVsco.js, menu
JY-20676-delete-report-re Project: faVsco.js, menu
JY-20676-delete-report-related-objects, menu
Start Listening for PHP Debug Connections
AskAnythingPromptServiceTest
Run 'AskAnythingPromptServiceTest'
Debug 'AskAnythingPromptServiceTest'
More Actions
JetBrains AI
Search Everywhere
IDE and Project Settings
Sync Changes
Hide This Notification
Code changed:
Hide
12
Previous Highlighted Error
Next Highlighted Error
<?php
declare(strict_types=1);
namespace Jiminny\Repositories;
use Illuminate\Database\Eloquent\Builder;
use Illuminate\Support\Collection;
use Jiminny\Models\AskAnything\AskAnythingPrompt;
use Jiminny\Models\AskAnything\AskAnythingPromptTarget;
use Jiminny\Models\AskAnything\UserAskAnythingPrompt;
use Jiminny\Models\Group;
use Jiminny\Models\User;
class AskAnythingRepository
{
/**
* @return Collection<UserAskAnythingPrompt>
*/
public function findSharedUsersAndGroupsByPromptId(int $promptId): Collection
{
return UserAskAnythingPrompt::query()
->where('prompt_id', $promptId)
->where('is_removed', false)
->get();
}
public function findSharedPromptByUser(int $promptId, User $user): ?UserAskAnythingPrompt
{
return UserAskAnythingPrompt::with('prompt')
->where('prompt_id', $promptId)
->where('user_id', $user->getId())
->first();
}
public function findSharedPromptByUserGroup(int $promptId, User $user): ?UserAskAnythingPrompt
{
$userGroupId = $user->getGroupId();
return UserAskAnythingPrompt::with('prompt')
->where('prompt_id', $promptId)
->where(static function ($query) use ($userGroupId): void {
if ($userGroupId !== null) {
$query->where('group_id', $userGroupId);
}
})
->first();
}
/**
* @return Collection<AskAnythingPrompt>
*/
public function findPromptsByUserAndTarget(User $user, AskAnythingPromptTarget $target): Collection
{
$userGroupId = $user->getGroupId();
$usersOwnedPrompts = UserAskAnythingPrompt::with('prompt')
->where(static function ($query) use ($user, $userGroupId): void {
$query
->where('user_id', $user->getId());
if ($userGroupId !== null) {
$query->orWhere('group_id', $userGroupId);
}
})
->where('is_removed', false)
->whereHas('prompt', function (Builder $query) use ($target) {
$query->where('target', $target);
})
->orderByRaw('ISNULL(`order`), `order` ASC, `prompt_id` ASC')
->get()
->map(function (UserAskAnythingPrompt $userPrompt) {
return $userPrompt->getPrompt();
});
// Remove those prompts that are hidden for the current user
$usersOwnedPromptsFiltered = $usersOwnedPrompts->filter(function (AskAnythingPrompt $userPrompt) use ($user) {
$promptId = $userPrompt->getId();
$userDisabledPrompt = UserAskAnythingPrompt::query()
->where('prompt_id', $promptId)
->where('is_removed', true)
->where('user_id', $user->getId())
->first();
return $userDisabledPrompt === null;
});
$defaultNonChangedPrompts = AskAnythingPrompt::where('target', $target)
->whereDoesntHave('userPrompts', function ($query) use ($user) {
$query->where('user_id', $user->getId());
})
->whereNull('owner_id')
->get();
$allPrompts = $defaultNonChangedPrompts->merge($usersOwnedPromptsFiltered);
if ($allPrompts->isNotEmpty()) {
$allPrompts->loadCount('automatedReports');
}
return $allPrompts;
}
/**
* @param array<User> $shareUsers
* @param array<Group> $shareGroups
*/
public function createPrompt(
User $user,
AskAnythingPromptTarget $target,
string $title,
string $content,
array $shareUsers,
array $shareGroups,
): AskAnythingPrompt {
$prompt = AskAnythingPrompt::create([
'title' => $title,
'content' => $content,
'target' => $target,
'owner_id' => $user->getId(),
]);
UserAskAnythingPrompt::create([
'user_id' => $user->getId(),
'prompt_id' => $prompt->getId(),
]);
foreach ($shareUsers as $shareUser) {
UserAskAnythingPrompt::create([
'user_id' => $shareUser->getId(),
'prompt_id' => $prompt->getId(),
]);
}
foreach ($shareGroups as $shareGroup) {
UserAskAnythingPrompt::create([
'group_id' => $shareGroup->getId(),
'prompt_id' => $prompt->getId(),
]);
}
return $prompt;
}
/**
* @param array<User> $shareUsers
* @param array<Group> $shareGroups
*/
public function editPrompt(
AskAnythingPrompt $prompt,
string $title,
string $content,
array $shareUsers,
array $shareGroups,
): AskAnythingPrompt {
$prompt->update([
'title' => $title,
'content' => $content,
]);
$previousUserPrompts = UserAskAnythingPrompt::query()
->where('prompt_id', $prompt->getId())
->whereNull('group_id')
->whereNotNull('user_id')
->whereNot('user_id', $prompt->getOwnerId())
->get();
$previousGroupPrompts = UserAskAnythingPrompt::query()
->where('prompt_id', $prompt->getId())
->whereNotNull('group_id')
->whereNull('user_id')
->get();
$shareUserPrompts = [];
foreach ($shareUsers as $shareUser) {
$shareUserPrompts[] = UserAskAnythingPrompt::create([
'user_id' => $shareUser->getId(),
'prompt_id' => $prompt->getId(),
]);
}
$shareGroupPrompts = [];
foreach ($shareGroups as $shareGroup) {
$shareGroupPrompts[] = UserAskAnythingPrompt::create([
'group_id' => $shareGroup->getId(),
'prompt_id' => $prompt->getId(),
]);
}
// Remove those users that are no longer added
$diffUsers = $previousUserPrompts->diff($shareUserPrompts);
foreach ($diffUsers as $previousUserPrompt) {
$previousUserPrompt->delete();
}
// Remove those groups that are no longer added
$diffGroups = $previousGroupPrompts->diff($shareGroupPrompts);
foreach ($diffGroups as $previousGroupPrompt) {
$previousGroupPrompt->delete();
}
return $prompt;
}
public function deletePrompt(AskAnythingPrompt $prompt): void
{
// Also deletes all associations with users
$prompt->delete();
}
public function hidePromptForUser(AskAnythingPrompt $prompt, User $user): AskAnythingPrompt
{
$userPromptSettings = UserAskAnythingPrompt::where('user_id', $user->getId())
->where('prompt_id', $prompt->getId())
->first();
if ($userPromptSettings === null) {
$userPromptSettings = UserAskAnythingPrompt::create([
'user_id' => $user->getId(),
'prompt_id' => $prompt->getId(),
]);
}
$userPromptSettings->update([
'is_removed' => true,
]);
return $prompt;
}
public function getPromptByUuid(string $uuid): ?AskAnythingPrompt
{
return AskAnythingPrompt::where('uuid', AskAnythingPrompt::toOptimized($uuid))->first();
}
public function orderPromptForUser(AskAnythingPrompt $prompt, User $user, int $order): void
{
$userPromptSettings = UserAskAnythingPrompt::where('user_id', $user->getId())
->where('prompt_id', $prompt->getId())
->first();
if ($userPromptSettings === null) {
$userPromptSettings = UserAskAnythingPrompt::create([
'user_id' => $user->getId(),
'prompt_id' => $prompt->getId(),
]);
}
$userPromptSettings->update([
'order' => $order,
]);
}
}
Execute
Explain Plan
Browse Query History
View Parameters
Open Query Execution Settings…
In-Editor Results
Tx: Auto
Cancel Running Statements
Playground
jiminny
Code changed:
Hide
Sync Changes
Hide This Notification
21
1
18
2
6
Previous Highlighted Error
Next Highlighted Error
SELECT a.id, a.uuid, a.actual_start_time, o.id, o.uuid FROM opportunities o
JOIN activities a ON o.id = a.opportunity_id
WHERE a.crm_configuration_id = 39
AND a.actual_start_time > '2025-10-13'
AND a.type IN ('conference', 'softphone-inbound', 'softphone-outbound')
;
SELECT * FROM activities
WHERE crm_configuration_id = 39 and user_id = 143
and actual_start_time >= '2025-10-13'
AND type IN ('conference', 'softphone-inbound', 'softphone-outbound')
;
SELECT * FROM opportunities WHERE account_id IN (178);
select * from activities where id IN (620137, 620187, 620188, 620189, 620230);
# HS
SELECT * FROM opportunities WHERE id IN (238);
select * from activities where id IN (477,2076);
select * from users;
SELECT COUNT(*) FROM users;
SELECT COUNT(*) FROM activities;
SELECT COUNT(*) FROM opportunities;
UPDATE activities
SET
actual_start_time = '2025-12-19 09:00:00',
actual_end_time = '2025-12-19 10:30:00',
scheduled_start_time = '2025-12-19 09:00:00',
scheduled_end_time = '2025-12-19 10:30:00'
WHERE id IN (407509,407375);
select * from partners;
SELECT id, uuid, type, actual_start_time, user_id, crm_configuration_id
FROM activities
WHERE user_id = 143
AND actual_start_time >= '2025-10-13 00:00:00'
AND actual_start_time <= '2026-01-13 23:59:59'
ORDER BY actual_start_time DESC;
SELECT * FROM activities WHERE uuid_to_bin('78eda160-3086-435f-88a5-bb0c71b6008d') = uuid;
SELECT * FROM crm_layouts where crm_configuration_id = 39;
SELECT * FROM crm_layout_entities WHERE crm_layout_id = 282;
# lead_id
# account_id 177
# contact_id 3969
# opportunity_id
# stage_id 203
SELECT * FROM opportunities WHERE opportunities.crm_configuration_id = id = 282;
SELECT * FROM activities where crm_configuration_id = 39 AND type = 'conference'
AND user_id = 143 and actual_start_time >= '2025-10-13';
SELECT * FROM activities a
# JOIN opportunities o ON a.opportunity_id = o.id
WHERE a.crm_configuration_id = 39 AND a.type = 'conference'
and status = 'completed' and recording_state = 'recorded'
and a.actual_start_time >= '2025-10-13'
AND a.user_id = 143
;
select * from leads
where crm_configuration_id = 39; # 112 -> ac. 178, 109 => op. 1707
SELECT * FROM activities WHERE id IN (356013,616188,616202,616310,407509,407375,356001,356008);
SELECT * FROM activities WHERE id IN (356013,616188,616202,616310);
SELECT * FROM activities WHERE id IN (407509,407375); # leads: 112, 109 | status - 198
SELECT * FROM activities WHERE id IN (356001, 356008); # contacts:
SELECT * FROM opportunities WHERE id IN (1707);
SELECT * FROM stages where id IN (204, 198);
SELECT * FROM opportunities WHERE account_id IN (178);
SELECT * FROM opportunities WHERE crm_configuration_id = 39 AND created_at > '2025-01-01';
SELECT * FROM contacts WHERE account_id IN (178); # 4118 Musaibe, 4448 Ceco Personal
SELECT * FROM activities where crm_configuration_id = 39
AND opportunity_id IS NULL
AND is_internal = false
and status = 'completed' and recording_state = 'recorded'
AND actual_start_time >= '2025-10-13'
AND (lead_id IS NOT NULL OR contact_id IS NOT NULL OR account_id IS NOT NULL)
# AND lead_id IN (112, 109)
;
SELECT * FROM crm_profiles WHERE user_id = 143;
select * from inboxes; # 212
select * from users where id = 143; # 143
select * from inbox_email_batches where inbox_id = 212
and updated_at >= '2026-01-28 00:00:00' order by id desc;
select * from inbox_emails where inbox_id = 212
and batch_id = 95885 order by id desc;
select * from email_messages where origin_user_id = 143;
select * from activities where user_id = 143 and updated_at >= '2026-01-28 00:00:00';
select * from participants where activity_id = 620247;
select * from crm_profiles where user_id = 143;
SELECT * FROM activities WHERE uuid_to_bin('458cf915-b914-4000-b083-5687b32b2956') = uuid; # 356001
select * from transcription where activity_id = 356001; # 6943
select * from ai_prompts where transcription_id = 6943;
SELECT * FROM activity_summary_logs where activity_id = 356001;
SELECT * FROM social_accounts WHERE sociable_id = 143;
# [PASSWORD_DOTS]
SELECT * FROM activities WHERE uuid_to_bin('0164a4fb-cb95-454e-9edd-4d804e4999bd') = uuid;
# 422515 softphone tr. 8100
SELECT * FROM activities WHERE uuid_to_bin('7520add8-8d87-41a5-98e5-fc4edf96f21e') = uuid;
# 407509 conference tr. 7670 crmId: 00UD1000002J9aTMAS
select * from ai_prompts where transcription_id IN (8100, 7670);
select * from activity_summary_logs where activity_id = 407509;
select * from sidekick_settings;
select * from default_activity_types;
SELECT * FROM contacts WHERE crm_configuration_id = 39 and email = '[EMAIL]';
SELECT * FROM leads WHERE crm_configuration_id = 39 and email = '[EMAIL]';
SELECT * FROM activity_searches where user_id = 143;
SELECT * FROM groups where team_id = 1;
select * from teams where id = 1;
select * from groups where team_id = 1; # 1150 - 7e75f8025c22
select id, name, group_id, status, deleted_at, email
from users where team_id = 1 order by group_id desc ;
select * from activity_searches where id in (1977, 1978, 1979);
select * from activity_search_filters where activity_search_id IN (1977, 1978, 1979);
select * from activity_search_filters where filter = 'group_id' and value = '443f26b8-8512-437e-a9f9-7e75f8025c22'; # 10268, 10272, 10277
select * from nudges where activity_search_id IN (1977, 1978, 1979); # 877, 878, 879
INSERT INTO `activity_search_filters`
(`activity_search_id`, `filter`, `value`) VALUES
(1977, 'group_id', '443f26b8-8512-437e-a9f9-7e75f8025c22'),
(1978, 'group_id', '443f26b8-8512-437e-a9f9-7e75f8025c22'),
(1979, 'group_id', '443f26b8-8512-437e-a9f9-7e75f8025c22')
;
select * from crm_configurations where id = 39;
select sa.* from users u JOIN social_accounts sa on u.id = sa.sociable_id
where u.team_id = 1;
SELECT * FROM social_accounts WHERE sociable_id = 1635;
SELECT * FROM users WHERE id = 1635;
select * from teams where id = 1;
select * from users where team_id = 1;
select * from team_features where team_id = 1;
select * from features;
SELECT * FROM activity_searches where id = 1982; # 1981
SELECT * FROM activity_search_filters WHERE activity_search_id = 1982;
SELECT * FROM activities WHERE uuid_to_bin('e916569b-086c-4bd1-94d7-5e3802c27ccf') = uuid;
SELECT * FROM groups WHERE id = 1439;
SELECT * FROM users WHERE group_id = 1439;
select * from permissions; # 158
select * from roles;
select * from permission_role;
select * from teams where id = 1;
select * from groups g JOIN playbooks p on g.playbook_id = p.id where g.team_id = 1;
select * from groups where id = 28;
select * from playbooks where team_id = 1;
select * from playbooks where id = 179;
select * from playbook_categories where id = 1391;
select * from users where id = 143;
select * from crm_profiles where user_id = 143;
select * from activities where crm_configuration_id = 39 and type = 'conference'
and crm_provider_id IS NOT NULL ORDER by id desc;
select * from activities where id = 422003; # 00UO400000pB6fpMAC
SELECT ar.id, ar.uuid, ar.media_type, ar.status, a.type
FROM automated_report_results ar
JOIN automated_reports a ON a.id = ar.report_id
WHERE a.type = 'ask_jiminny'
LIMIT 10;
SELECT * FROM automated_reports where id = 71;
SELECT * FROM automated_report_results where report_id = 71;
UPDATE automated_reports set playbook_categories = NULL where id = 68;
SELECT * FROM automated_report_results where id = 275;
SELECT * FROM automated_reports order by id desc;
SELECT * FROM automated_report_results order by id desc;
select * from activity_searches where user_id = 143;
select * from ask_anything_prompts;
SELECT `automated_report_results`.* FROM `automated_report_results`
INNER JOIN `automated_reports`
ON `automated_report_results`.`report_id` = `automated_reports`.`id`
WHERE 1=1
AND `automated_report_results`.`generated_at` IS NOT NULL
# AND `automated_report_results`.`sent_at` IS NOT NULL
AND `automated_reports`.`team_id` = 1
AND JSON_CONTAINS(`automated_reports`.`recipients`, 143, '$."users"')
;
SELECT * FROM automated_reports where id = 67;
SELECT * FROM automated_reports where id = 42;
SELECT * FROM users WHERE id = 143; # group 28
select * from teams where id = 3143;
select * from crm_configurations where id = 500;
select * from users where name = 'Integration Account'; # 1695
SELECT * FROM social_accounts WHERE sociable_id = 1695;
select * from activities where crm_configuration_id = 39
and recording_state = 'recorded' and duration > 60
and status = 'completed' and actual_start_time >= '2025-12-01';
SELECT * FROM activities WHERE uuid_to_bin('458cf915-b914-4000-b083-5687b32b2956') = uuid;
select * from leads;
SELECT * FROM activities WHERE uuid_to_bin('f43cf158-e60d-46e5-92f8-c4e0594a3219') = uuid; # 422003
SELECT * FROM activities WHERE id IN (16,422003);
SELECT * FROM activities where status = 'failed';
SELECT * FROM tracks WHERE activity_id = 422003;
SELECT
a.*
FROM activities a
JOIN users u ON a.user_id = u.id
WHERE
a.status = 'completed'
AND uuid_to_bin('641f1acb-16b8-42d1-8726-df52979dad0e') = u.uuid
AND a.deleted_at IS NULL
AND EXISTS (
SELECT 1 FROM tracks t
WHERE t.activity_id = a.id
AND t.type IN ('audio', 'video')
)
ORDER BY a.actual_start_time DESC
LIMIT 25;
select * from teams where id = 19;
select * from crm_configurations where provider = 'pipedrive';
SELECT
CONCAT(u.id, CASE WHEN u.id = t.owner_id THEN ' (owner)' ELSE '' END) AS user_id,
u.email,
sa.*,
t.owner_id FROM social_accounts sa
JOIN users u on u.id = sa.sociable_id
JOIN teams t on t.id = u.team_id
WHERE u.team_id = 19 and sa.provider = 'pipedrive';
SELECT * FROM social_accounts WHERE id = 1116;
UPDATE social_accounts SET provider_user_token = 'v1u:AQIBAHj-LzTNK2yuuuaLqifzhWb9crUNKTpk4FlQ9rjnXqp_6AEQhDhDQVa1nvWCHEvnpvSEAAAAfjB8BgkqhkiG9w0BBwagbzBtAgEAMGgGCSqGSIb3DQEHATAeBglghkgBZQMEAS4wEQQMnG8KNcZLIjEnlRPxAgEQgDsGPIcKjsMU7Qel36BtM5FCQa56mYUy24_AAoqd12yjVFkq6egLqS0inp-5G4JE7frJURMV8VTw_fY14g:rYyABXmXsBhEdYU_dfmDH8GF-vzSseJXE5bds_zAyVdAwlTXOPdTl9i4PS4jVofLvpq7IRgvEt2BzGhR6cWiQXHHD0AtayQOkZm262ClFCsMYtKGfep0Jq1n0eiRIVqT9gAY7rWvhpEDF8oAlgnRGmqx-euIkpzE79sPXh4OjNx_yUIaanjyplGpBBJ_NiACd1sMlZmseyUyyU_gldqlCBAuK9hhATc9icgg7zuoc7nKBBrlg49tRtzEagDh6xbFBpzfCp7kE_7n4TLWfWHLPMzu-bktjwA969G9sFRmoH1GjPA0a2odDT4dk1_1ouBrB1NcTT2hQUqH-_RzDW2nWmeoVHA',
provider_refresh_token = '5034113:[TELEGRAM_TOKEN]b2bfc',
expires = 1779091997,
state = 'connected'
WHERE id = 1116;
"provider_user_token": "v1u:AQIBAHj-LzTNK2yuuuaLqifzhWb9crUNKTpk4FlQ9rjnXqp_6AEQhDhDQVa1nvWCHEvnpvSEAAAAfjB8BgkqhkiG9w0BBwagbzBtAgEAMGgGCSqGSIb3DQEHATAeBglghkgBZQMEAS4wEQQMnG8KNcZLIjEnlRPxAgEQgDsGPIcKjsMU7Qel36BtM5FCQa56mYUy24_AAoqd12yjVFkq6egLqS0inp-5G4JE7frJURMV8VTw_fY14g:rYyABXmXsBhEdYU_dfmDH8GF-vzSseJXE5bds_zAyVdAwlTXOPdTl9i4PS4jVofLvpq7IRgvEt2BzGhR6cWiQXHHD0AtayQOkZm262ClFCsMYtKGfep0Jq1n0eiRIVqT9gAY7rWvhpEDF8oAlgnRGmqx-euIkpzE79sPXh4OjNx_yUIaanjyplGpBBJ_NiACd1sMlZmseyUyyU_gldqlCBAuK9hhATc9icgg7zuoc7nKBBrlg49tRtzEagDh6xbFBpzfCp7kE_7n4TLWfWHLPMzu-bktjwA969G9sFRmoH1GjPA0a2odDT4dk1_1ouBrB1NcTT2hQUqH-_RzDW2nWmeoVHA",
"provider_refresh_token": "5034113:[TELEGRAM_TOKEN]b2bfc",
"expires": 1779091997,
Socket fail to connect to host:address=(host=localhost)(port=3306)(type=primary). Connection refused
Project
Project
New File or Directory…
Expand Selected
Collapse All
Options
Hide...
|
[{"role":"AXButton","text" [{"role":"AXButton","text":"Project: faVsco.js, menu","depth":5,"bounds":{"left":0.025930852,"top":0.019952115,"width":0.03856383,"height":0.025538707},"on_screen":true,"help_text":"~/jiminny/app","role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"JY-20676-delete-report-related-objects, menu","depth":5,"bounds":{"left":0.064494684,"top":0.019952115,"width":0.10405585,"height":0.025538707},"on_screen":true,"help_text":"Git Branch: JY-20676-delete-report-related-objects<br/>Some incoming commits are not fetched<br/>","role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Start Listening for PHP Debug Connections","depth":5,"bounds":{"left":0.8194814,"top":0.019952115,"width":0.011303191,"height":0.025538707},"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"AskAnythingPromptServiceTest","depth":6,"bounds":{"left":0.83477396,"top":0.019952115,"width":0.080784574,"height":0.025538707},"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Run 'AskAnythingPromptServiceTest'","depth":6,"bounds":{"left":0.9155585,"top":0.019952115,"width":0.011303191,"height":0.025538707},"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Debug 'AskAnythingPromptServiceTest'","depth":6,"bounds":{"left":0.9268617,"top":0.019952115,"width":0.011303191,"height":0.025538707},"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"More Actions","depth":6,"bounds":{"left":0.9381649,"top":0.019952115,"width":0.011303191,"height":0.025538707},"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"JetBrains AI","depth":5,"bounds":{"left":0.96609044,"top":0.019952115,"width":0.011303191,"height":0.025538707},"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Search Everywhere","depth":5,"bounds":{"left":0.9773936,"top":0.019952115,"width":0.011303191,"height":0.025538707},"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"IDE and Project Settings","depth":5,"bounds":{"left":0.9886968,"top":0.019952115,"width":0.011303186,"height":0.025538707},"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Sync Changes","depth":4,"bounds":{"left":0.27027926,"top":1.0,"width":0.008643617,"height":0.0},"on_screen":false,"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Hide This Notification","depth":4,"bounds":{"left":0.27027926,"top":1.0,"width":0.008643617,"height":0.0},"on_screen":false,"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Code changed:","depth":4,"bounds":{"left":0.27027926,"top":1.0,"width":0.042220745,"height":0.0},"on_screen":false,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Hide","depth":4,"bounds":{"left":0.27027926,"top":1.0,"width":0.008643617,"height":0.0},"on_screen":false,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"12","depth":4,"bounds":{"left":0.27027926,"top":1.0,"width":0.009640957,"height":0.0},"on_screen":false,"role_description":"text"},{"role":"AXButton","text":"Previous Highlighted Error","depth":4,"bounds":{"left":0.27027926,"top":1.0,"width":0.00731383,"height":0.0},"on_screen":false,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Next Highlighted Error","depth":4,"bounds":{"left":0.27027926,"top":1.0,"width":0.006981383,"height":0.0},"on_screen":false,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXTextArea","text":"<?php\n\ndeclare(strict_types=1);\n\nnamespace Jiminny\\Repositories;\n\nuse Illuminate\\Database\\Eloquent\\Builder;\nuse Illuminate\\Support\\Collection;\nuse Jiminny\\Models\\AskAnything\\AskAnythingPrompt;\nuse Jiminny\\Models\\AskAnything\\AskAnythingPromptTarget;\nuse Jiminny\\Models\\AskAnything\\UserAskAnythingPrompt;\nuse Jiminny\\Models\\Group;\nuse Jiminny\\Models\\User;\n\nclass AskAnythingRepository\n{\n /**\n * @return Collection<UserAskAnythingPrompt>\n */\n public function findSharedUsersAndGroupsByPromptId(int $promptId): Collection\n {\n return UserAskAnythingPrompt::query()\n ->where('prompt_id', $promptId)\n ->where('is_removed', false)\n ->get();\n }\n\n public function findSharedPromptByUser(int $promptId, User $user): ?UserAskAnythingPrompt\n {\n return UserAskAnythingPrompt::with('prompt')\n ->where('prompt_id', $promptId)\n ->where('user_id', $user->getId())\n ->first();\n }\n\n public function findSharedPromptByUserGroup(int $promptId, User $user): ?UserAskAnythingPrompt\n {\n $userGroupId = $user->getGroupId();\n\n return UserAskAnythingPrompt::with('prompt')\n ->where('prompt_id', $promptId)\n ->where(static function ($query) use ($userGroupId): void {\n if ($userGroupId !== null) {\n $query->where('group_id', $userGroupId);\n }\n })\n ->first();\n }\n\n /**\n * @return Collection<AskAnythingPrompt>\n */\n public function findPromptsByUserAndTarget(User $user, AskAnythingPromptTarget $target): Collection\n {\n $userGroupId = $user->getGroupId();\n $usersOwnedPrompts = UserAskAnythingPrompt::with('prompt')\n ->where(static function ($query) use ($user, $userGroupId): void {\n $query\n ->where('user_id', $user->getId());\n\n if ($userGroupId !== null) {\n $query->orWhere('group_id', $userGroupId);\n }\n })\n ->where('is_removed', false)\n ->whereHas('prompt', function (Builder $query) use ($target) {\n $query->where('target', $target);\n })\n ->orderByRaw('ISNULL(`order`), `order` ASC, `prompt_id` ASC')\n ->get()\n ->map(function (UserAskAnythingPrompt $userPrompt) {\n return $userPrompt->getPrompt();\n });\n\n // Remove those prompts that are hidden for the current user\n $usersOwnedPromptsFiltered = $usersOwnedPrompts->filter(function (AskAnythingPrompt $userPrompt) use ($user) {\n $promptId = $userPrompt->getId();\n $userDisabledPrompt = UserAskAnythingPrompt::query()\n ->where('prompt_id', $promptId)\n ->where('is_removed', true)\n ->where('user_id', $user->getId())\n ->first();\n\n return $userDisabledPrompt === null;\n });\n\n $defaultNonChangedPrompts = AskAnythingPrompt::where('target', $target)\n ->whereDoesntHave('userPrompts', function ($query) use ($user) {\n $query->where('user_id', $user->getId());\n })\n ->whereNull('owner_id')\n ->get();\n\n $allPrompts = $defaultNonChangedPrompts->merge($usersOwnedPromptsFiltered);\n\n if ($allPrompts->isNotEmpty()) {\n $allPrompts->loadCount('automatedReports');\n }\n\n return $allPrompts;\n }\n\n /**\n * @param array<User> $shareUsers\n * @param array<Group> $shareGroups\n */\n public function createPrompt(\n User $user,\n AskAnythingPromptTarget $target,\n string $title,\n string $content,\n array $shareUsers,\n array $shareGroups,\n ): AskAnythingPrompt {\n $prompt = AskAnythingPrompt::create([\n 'title' => $title,\n 'content' => $content,\n 'target' => $target,\n 'owner_id' => $user->getId(),\n ]);\n\n UserAskAnythingPrompt::create([\n 'user_id' => $user->getId(),\n 'prompt_id' => $prompt->getId(),\n ]);\n\n foreach ($shareUsers as $shareUser) {\n UserAskAnythingPrompt::create([\n 'user_id' => $shareUser->getId(),\n 'prompt_id' => $prompt->getId(),\n ]);\n }\n\n foreach ($shareGroups as $shareGroup) {\n UserAskAnythingPrompt::create([\n 'group_id' => $shareGroup->getId(),\n 'prompt_id' => $prompt->getId(),\n ]);\n }\n\n return $prompt;\n }\n\n /**\n * @param array<User> $shareUsers\n * @param array<Group> $shareGroups\n */\n public function editPrompt(\n AskAnythingPrompt $prompt,\n string $title,\n string $content,\n array $shareUsers,\n array $shareGroups,\n ): AskAnythingPrompt {\n $prompt->update([\n 'title' => $title,\n 'content' => $content,\n ]);\n\n $previousUserPrompts = UserAskAnythingPrompt::query()\n ->where('prompt_id', $prompt->getId())\n ->whereNull('group_id')\n ->whereNotNull('user_id')\n ->whereNot('user_id', $prompt->getOwnerId())\n ->get();\n\n $previousGroupPrompts = UserAskAnythingPrompt::query()\n ->where('prompt_id', $prompt->getId())\n ->whereNotNull('group_id')\n ->whereNull('user_id')\n ->get();\n\n $shareUserPrompts = [];\n foreach ($shareUsers as $shareUser) {\n $shareUserPrompts[] = UserAskAnythingPrompt::create([\n 'user_id' => $shareUser->getId(),\n 'prompt_id' => $prompt->getId(),\n ]);\n }\n\n $shareGroupPrompts = [];\n foreach ($shareGroups as $shareGroup) {\n $shareGroupPrompts[] = UserAskAnythingPrompt::create([\n 'group_id' => $shareGroup->getId(),\n 'prompt_id' => $prompt->getId(),\n ]);\n }\n\n // Remove those users that are no longer added\n $diffUsers = $previousUserPrompts->diff($shareUserPrompts);\n foreach ($diffUsers as $previousUserPrompt) {\n $previousUserPrompt->delete();\n }\n\n // Remove those groups that are no longer added\n $diffGroups = $previousGroupPrompts->diff($shareGroupPrompts);\n foreach ($diffGroups as $previousGroupPrompt) {\n $previousGroupPrompt->delete();\n }\n\n return $prompt;\n }\n\n public function deletePrompt(AskAnythingPrompt $prompt): void\n {\n // Also deletes all associations with users\n $prompt->delete();\n }\n\n public function hidePromptForUser(AskAnythingPrompt $prompt, User $user): AskAnythingPrompt\n {\n $userPromptSettings = UserAskAnythingPrompt::where('user_id', $user->getId())\n ->where('prompt_id', $prompt->getId())\n ->first();\n\n if ($userPromptSettings === null) {\n $userPromptSettings = UserAskAnythingPrompt::create([\n 'user_id' => $user->getId(),\n 'prompt_id' => $prompt->getId(),\n ]);\n }\n\n $userPromptSettings->update([\n 'is_removed' => true,\n ]);\n\n return $prompt;\n }\n\n public function getPromptByUuid(string $uuid): ?AskAnythingPrompt\n {\n return AskAnythingPrompt::where('uuid', AskAnythingPrompt::toOptimized($uuid))->first();\n }\n\n public function orderPromptForUser(AskAnythingPrompt $prompt, User $user, int $order): void\n {\n $userPromptSettings = UserAskAnythingPrompt::where('user_id', $user->getId())\n ->where('prompt_id', $prompt->getId())\n ->first();\n\n if ($userPromptSettings === null) {\n $userPromptSettings = UserAskAnythingPrompt::create([\n 'user_id' => $user->getId(),\n 'prompt_id' => $prompt->getId(),\n ]);\n }\n\n $userPromptSettings->update([\n 'order' => $order,\n ]);\n }\n}","depth":4,"on_screen":true,"value":"<?php\n\ndeclare(strict_types=1);\n\nnamespace Jiminny\\Repositories;\n\nuse Illuminate\\Database\\Eloquent\\Builder;\nuse Illuminate\\Support\\Collection;\nuse Jiminny\\Models\\AskAnything\\AskAnythingPrompt;\nuse Jiminny\\Models\\AskAnything\\AskAnythingPromptTarget;\nuse Jiminny\\Models\\AskAnything\\UserAskAnythingPrompt;\nuse Jiminny\\Models\\Group;\nuse Jiminny\\Models\\User;\n\nclass AskAnythingRepository\n{\n /**\n * @return Collection<UserAskAnythingPrompt>\n */\n public function findSharedUsersAndGroupsByPromptId(int $promptId): Collection\n {\n return UserAskAnythingPrompt::query()\n ->where('prompt_id', $promptId)\n ->where('is_removed', false)\n ->get();\n }\n\n public function findSharedPromptByUser(int $promptId, User $user): ?UserAskAnythingPrompt\n {\n return UserAskAnythingPrompt::with('prompt')\n ->where('prompt_id', $promptId)\n ->where('user_id', $user->getId())\n ->first();\n }\n\n public function findSharedPromptByUserGroup(int $promptId, User $user): ?UserAskAnythingPrompt\n {\n $userGroupId = $user->getGroupId();\n\n return UserAskAnythingPrompt::with('prompt')\n ->where('prompt_id', $promptId)\n ->where(static function ($query) use ($userGroupId): void {\n if ($userGroupId !== null) {\n $query->where('group_id', $userGroupId);\n }\n })\n ->first();\n }\n\n /**\n * @return Collection<AskAnythingPrompt>\n */\n public function findPromptsByUserAndTarget(User $user, AskAnythingPromptTarget $target): Collection\n {\n $userGroupId = $user->getGroupId();\n $usersOwnedPrompts = UserAskAnythingPrompt::with('prompt')\n ->where(static function ($query) use ($user, $userGroupId): void {\n $query\n ->where('user_id', $user->getId());\n\n if ($userGroupId !== null) {\n $query->orWhere('group_id', $userGroupId);\n }\n })\n ->where('is_removed', false)\n ->whereHas('prompt', function (Builder $query) use ($target) {\n $query->where('target', $target);\n })\n ->orderByRaw('ISNULL(`order`), `order` ASC, `prompt_id` ASC')\n ->get()\n ->map(function (UserAskAnythingPrompt $userPrompt) {\n return $userPrompt->getPrompt();\n });\n\n // Remove those prompts that are hidden for the current user\n $usersOwnedPromptsFiltered = $usersOwnedPrompts->filter(function (AskAnythingPrompt $userPrompt) use ($user) {\n $promptId = $userPrompt->getId();\n $userDisabledPrompt = UserAskAnythingPrompt::query()\n ->where('prompt_id', $promptId)\n ->where('is_removed', true)\n ->where('user_id', $user->getId())\n ->first();\n\n return $userDisabledPrompt === null;\n });\n\n $defaultNonChangedPrompts = AskAnythingPrompt::where('target', $target)\n ->whereDoesntHave('userPrompts', function ($query) use ($user) {\n $query->where('user_id', $user->getId());\n })\n ->whereNull('owner_id')\n ->get();\n\n $allPrompts = $defaultNonChangedPrompts->merge($usersOwnedPromptsFiltered);\n\n if ($allPrompts->isNotEmpty()) {\n $allPrompts->loadCount('automatedReports');\n }\n\n return $allPrompts;\n }\n\n /**\n * @param array<User> $shareUsers\n * @param array<Group> $shareGroups\n */\n public function createPrompt(\n User $user,\n AskAnythingPromptTarget $target,\n string $title,\n string $content,\n array $shareUsers,\n array $shareGroups,\n ): AskAnythingPrompt {\n $prompt = AskAnythingPrompt::create([\n 'title' => $title,\n 'content' => $content,\n 'target' => $target,\n 'owner_id' => $user->getId(),\n ]);\n\n UserAskAnythingPrompt::create([\n 'user_id' => $user->getId(),\n 'prompt_id' => $prompt->getId(),\n ]);\n\n foreach ($shareUsers as $shareUser) {\n UserAskAnythingPrompt::create([\n 'user_id' => $shareUser->getId(),\n 'prompt_id' => $prompt->getId(),\n ]);\n }\n\n foreach ($shareGroups as $shareGroup) {\n UserAskAnythingPrompt::create([\n 'group_id' => $shareGroup->getId(),\n 'prompt_id' => $prompt->getId(),\n ]);\n }\n\n return $prompt;\n }\n\n /**\n * @param array<User> $shareUsers\n * @param array<Group> $shareGroups\n */\n public function editPrompt(\n AskAnythingPrompt $prompt,\n string $title,\n string $content,\n array $shareUsers,\n array $shareGroups,\n ): AskAnythingPrompt {\n $prompt->update([\n 'title' => $title,\n 'content' => $content,\n ]);\n\n $previousUserPrompts = UserAskAnythingPrompt::query()\n ->where('prompt_id', $prompt->getId())\n ->whereNull('group_id')\n ->whereNotNull('user_id')\n ->whereNot('user_id', $prompt->getOwnerId())\n ->get();\n\n $previousGroupPrompts = UserAskAnythingPrompt::query()\n ->where('prompt_id', $prompt->getId())\n ->whereNotNull('group_id')\n ->whereNull('user_id')\n ->get();\n\n $shareUserPrompts = [];\n foreach ($shareUsers as $shareUser) {\n $shareUserPrompts[] = UserAskAnythingPrompt::create([\n 'user_id' => $shareUser->getId(),\n 'prompt_id' => $prompt->getId(),\n ]);\n }\n\n $shareGroupPrompts = [];\n foreach ($shareGroups as $shareGroup) {\n $shareGroupPrompts[] = UserAskAnythingPrompt::create([\n 'group_id' => $shareGroup->getId(),\n 'prompt_id' => $prompt->getId(),\n ]);\n }\n\n // Remove those users that are no longer added\n $diffUsers = $previousUserPrompts->diff($shareUserPrompts);\n foreach ($diffUsers as $previousUserPrompt) {\n $previousUserPrompt->delete();\n }\n\n // Remove those groups that are no longer added\n $diffGroups = $previousGroupPrompts->diff($shareGroupPrompts);\n foreach ($diffGroups as $previousGroupPrompt) {\n $previousGroupPrompt->delete();\n }\n\n return $prompt;\n }\n\n public function deletePrompt(AskAnythingPrompt $prompt): void\n {\n // Also deletes all associations with users\n $prompt->delete();\n }\n\n public function hidePromptForUser(AskAnythingPrompt $prompt, User $user): AskAnythingPrompt\n {\n $userPromptSettings = UserAskAnythingPrompt::where('user_id', $user->getId())\n ->where('prompt_id', $prompt->getId())\n ->first();\n\n if ($userPromptSettings === null) {\n $userPromptSettings = UserAskAnythingPrompt::create([\n 'user_id' => $user->getId(),\n 'prompt_id' => $prompt->getId(),\n ]);\n }\n\n $userPromptSettings->update([\n 'is_removed' => true,\n ]);\n\n return $prompt;\n }\n\n public function getPromptByUuid(string $uuid): ?AskAnythingPrompt\n {\n return AskAnythingPrompt::where('uuid', AskAnythingPrompt::toOptimized($uuid))->first();\n }\n\n public function orderPromptForUser(AskAnythingPrompt $prompt, User $user, int $order): void\n {\n $userPromptSettings = UserAskAnythingPrompt::where('user_id', $user->getId())\n ->where('prompt_id', $prompt->getId())\n ->first();\n\n if ($userPromptSettings === null) {\n $userPromptSettings = UserAskAnythingPrompt::create([\n 'user_id' => $user->getId(),\n 'prompt_id' => $prompt->getId(),\n ]);\n }\n\n $userPromptSettings->update([\n 'order' => $order,\n ]);\n }\n}","role_description":"text entry area","is_enabled":true,"is_focused":true,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Execute","depth":4,"bounds":{"left":0.42785904,"top":0.09896249,"width":0.008643617,"height":0.01915403},"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Explain Plan","depth":4,"bounds":{"left":0.43650267,"top":0.09896249,"width":0.008643617,"height":0.01915403},"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Browse Query History","depth":4,"bounds":{"left":0.4474734,"top":0.09896249,"width":0.008643617,"height":0.01915403},"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"View Parameters","depth":4,"bounds":{"left":0.45611703,"top":0.09896249,"width":0.008643617,"height":0.01915403},"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Open Query Execution Settings…","depth":4,"bounds":{"left":0.46476063,"top":0.09896249,"width":0.008643617,"height":0.01915403},"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"In-Editor Results","depth":4,"bounds":{"left":0.47573137,"top":0.09896249,"width":0.008643617,"height":0.01915403},"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Tx: Auto","depth":4,"bounds":{"left":0.4867021,"top":0.09896249,"width":0.024268618,"height":0.01915403},"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Cancel Running Statements","depth":4,"bounds":{"left":0.51329786,"top":0.09896249,"width":0.008643617,"height":0.01915403},"on_screen":true,"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Playground","depth":4,"bounds":{"left":0.5242686,"top":0.09896249,"width":0.029587766,"height":0.01915403},"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"jiminny","depth":4,"bounds":{"left":0.70611703,"top":0.09896249,"width":0.02825798,"height":0.01915403},"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Code changed:","depth":4,"bounds":{"left":0.27027926,"top":1.0,"width":0.042220745,"height":0.0},"on_screen":false,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Hide","depth":4,"bounds":{"left":0.27027926,"top":1.0,"width":0.008643617,"height":0.0},"on_screen":false,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Sync Changes","depth":4,"bounds":{"left":0.27027926,"top":1.0,"width":0.008643617,"height":0.0},"on_screen":false,"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Hide This Notification","depth":4,"bounds":{"left":0.27027926,"top":1.0,"width":0.008643617,"height":0.0},"on_screen":false,"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"21","depth":4,"bounds":{"left":0.66921544,"top":0.123703115,"width":0.009640957,"height":0.015163607},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"1","depth":4,"bounds":{"left":0.68085104,"top":0.123703115,"width":0.00731383,"height":0.015163607},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"18","depth":4,"bounds":{"left":0.69015956,"top":0.123703115,"width":0.009640957,"height":0.015163607},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"2","depth":4,"bounds":{"left":0.7017952,"top":0.123703115,"width":0.007978723,"height":0.015163607},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"6","depth":4,"bounds":{"left":0.7117686,"top":0.123703115,"width":0.007978723,"height":0.015163607},"on_screen":true,"role_description":"text"},{"role":"AXButton","text":"Previous Highlighted Error","depth":4,"bounds":{"left":0.72140956,"top":0.12210695,"width":0.00731383,"height":0.018355945},"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Next Highlighted Error","depth":4,"bounds":{"left":0.7287234,"top":0.12210695,"width":0.006981383,"height":0.018355945},"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXTextArea","text":"SELECT a.id, a.uuid, a.actual_start_time, o.id, o.uuid FROM opportunities o\nJOIN activities a ON o.id = a.opportunity_id\nWHERE a.crm_configuration_id = 39\nAND a.actual_start_time > '2025-10-13'\nAND a.type IN ('conference', 'softphone-inbound', 'softphone-outbound')\n;\n\nSELECT * FROM activities\nWHERE crm_configuration_id = 39 and user_id = 143\nand actual_start_time >= '2025-10-13'\nAND type IN ('conference', 'softphone-inbound', 'softphone-outbound')\n;\n\nSELECT * FROM opportunities WHERE account_id IN (178);\nselect * from activities where id IN (620137, 620187, 620188, 620189, 620230);\n\n# HS\nSELECT * FROM opportunities WHERE id IN (238);\nselect * from activities where id IN (477,2076);\n\nselect * from users;\n\nSELECT COUNT(*) FROM users;\nSELECT COUNT(*) FROM activities;\nSELECT COUNT(*) FROM opportunities;\n\nUPDATE activities\nSET\n actual_start_time = '2025-12-19 09:00:00',\n actual_end_time = '2025-12-19 10:30:00',\n scheduled_start_time = '2025-12-19 09:00:00',\n scheduled_end_time = '2025-12-19 10:30:00'\nWHERE id IN (407509,407375);\n\nselect * from partners;\n\nSELECT id, uuid, type, actual_start_time, user_id, crm_configuration_id\nFROM activities\nWHERE user_id = 143\nAND actual_start_time >= '2025-10-13 00:00:00'\nAND actual_start_time <= '2026-01-13 23:59:59'\nORDER BY actual_start_time DESC;\n\nSELECT * FROM activities WHERE uuid_to_bin('78eda160-3086-435f-88a5-bb0c71b6008d') = uuid;\nSELECT * FROM crm_layouts where crm_configuration_id = 39;\nSELECT * FROM crm_layout_entities WHERE crm_layout_id = 282;\n# lead_id\n# account_id 177\n# contact_id 3969\n# opportunity_id\n# stage_id 203\n\nSELECT * FROM opportunities WHERE opportunities.crm_configuration_id = id = 282;\n\nSELECT * FROM activities where crm_configuration_id = 39 AND type = 'conference'\nAND user_id = 143 and actual_start_time >= '2025-10-13';\n\nSELECT * FROM activities a\n# JOIN opportunities o ON a.opportunity_id = o.id\nWHERE a.crm_configuration_id = 39 AND a.type = 'conference'\nand status = 'completed' and recording_state = 'recorded'\nand a.actual_start_time >= '2025-10-13'\nAND a.user_id = 143\n;\n\nselect * from leads\nwhere crm_configuration_id = 39; # 112 -> ac. 178, 109 => op. 1707\n\nSELECT * FROM activities WHERE id IN (356013,616188,616202,616310,407509,407375,356001,356008);\nSELECT * FROM activities WHERE id IN (356013,616188,616202,616310);\nSELECT * FROM activities WHERE id IN (407509,407375); # leads: 112, 109 | status - 198\nSELECT * FROM activities WHERE id IN (356001, 356008); # contacts:\n\nSELECT * FROM opportunities WHERE id IN (1707);\nSELECT * FROM stages where id IN (204, 198);\nSELECT * FROM opportunities WHERE account_id IN (178);\nSELECT * FROM opportunities WHERE crm_configuration_id = 39 AND created_at > '2025-01-01';\nSELECT * FROM contacts WHERE account_id IN (178); # 4118 Musaibe, 4448 Ceco Personal\n\nSELECT * FROM activities where crm_configuration_id = 39\nAND opportunity_id IS NULL\nAND is_internal = false\nand status = 'completed' and recording_state = 'recorded'\nAND actual_start_time >= '2025-10-13'\nAND (lead_id IS NOT NULL OR contact_id IS NOT NULL OR account_id IS NOT NULL)\n# AND lead_id IN (112, 109)\n;\n\nSELECT * FROM crm_profiles WHERE user_id = 143;\n\nselect * from inboxes; # 212\nselect * from users where id = 143; # 143\nselect * from inbox_email_batches where inbox_id = 212\nand updated_at >= '2026-01-28 00:00:00' order by id desc;\nselect * from inbox_emails where inbox_id = 212\nand batch_id = 95885 order by id desc;\nselect * from email_messages where origin_user_id = 143;\nselect * from activities where user_id = 143 and updated_at >= '2026-01-28 00:00:00';\nselect * from participants where activity_id = 620247;\n\nselect * from crm_profiles where user_id = 143;\n\nSELECT * FROM activities WHERE uuid_to_bin('458cf915-b914-4000-b083-5687b32b2956') = uuid; # 356001\nselect * from transcription where activity_id = 356001; # 6943\nselect * from ai_prompts where transcription_id = 6943;\nSELECT * FROM activity_summary_logs where activity_id = 356001;\n\nSELECT * FROM social_accounts WHERE sociable_id = 143;\n\n# ************************************************************************************\nSELECT * FROM activities WHERE uuid_to_bin('0164a4fb-cb95-454e-9edd-4d804e4999bd') = uuid;\n# 422515 softphone tr. 8100\n\nSELECT * FROM activities WHERE uuid_to_bin('7520add8-8d87-41a5-98e5-fc4edf96f21e') = uuid;\n# 407509 conference tr. 7670 crmId: 00UD1000002J9aTMAS\n\nselect * from ai_prompts where transcription_id IN (8100, 7670);\nselect * from activity_summary_logs where activity_id = 407509;\n\nselect * from sidekick_settings;\nselect * from default_activity_types;\n\nSELECT * FROM contacts WHERE crm_configuration_id = 39 and email = 'm.kogoj@gmx.at';\nSELECT * FROM leads WHERE crm_configuration_id = 39 and email = 'm.kogoj@gmx.at';\n\nSELECT * FROM activity_searches where user_id = 143;\nSELECT * FROM groups where team_id = 1;\n\nselect * from teams where id = 1;\nselect * from groups where team_id = 1; # 1150 - 7e75f8025c22\nselect id, name, group_id, status, deleted_at, email\nfrom users where team_id = 1 order by group_id desc ;\n\nselect * from activity_searches where id in (1977, 1978, 1979);\nselect * from activity_search_filters where activity_search_id IN (1977, 1978, 1979);\nselect * from activity_search_filters where filter = 'group_id' and value = '443f26b8-8512-437e-a9f9-7e75f8025c22'; # 10268, 10272, 10277\nselect * from nudges where activity_search_id IN (1977, 1978, 1979); # 877, 878, 879\n\nINSERT INTO `activity_search_filters`\n(`activity_search_id`, `filter`, `value`) VALUES\n(1977, 'group_id', '443f26b8-8512-437e-a9f9-7e75f8025c22'),\n(1978, 'group_id', '443f26b8-8512-437e-a9f9-7e75f8025c22'),\n(1979, 'group_id', '443f26b8-8512-437e-a9f9-7e75f8025c22')\n;\n\nselect * from crm_configurations where id = 39;\n\n\nselect sa.* from users u JOIN social_accounts sa on u.id = sa.sociable_id\nwhere u.team_id = 1;\nSELECT * FROM social_accounts WHERE sociable_id = 1635;\nSELECT * FROM users WHERE id = 1635;\n\nselect * from teams where id = 1;\nselect * from users where team_id = 1;\nselect * from team_features where team_id = 1;\nselect * from features;\n\nSELECT * FROM activity_searches where id = 1982; # 1981\nSELECT * FROM activity_search_filters WHERE activity_search_id = 1982;\n\nSELECT * FROM activities WHERE uuid_to_bin('e916569b-086c-4bd1-94d7-5e3802c27ccf') = uuid;\nSELECT * FROM groups WHERE id = 1439;\nSELECT * FROM users WHERE group_id = 1439;\n\nselect * from permissions; # 158\nselect * from roles;\nselect * from permission_role;\n\nselect * from teams where id = 1;\nselect * from groups g JOIN playbooks p on g.playbook_id = p.id where g.team_id = 1;\nselect * from groups where id = 28;\nselect * from playbooks where team_id = 1;\nselect * from playbooks where id = 179;\nselect * from playbook_categories where id = 1391;\nselect * from users where id = 143;\nselect * from crm_profiles where user_id = 143;\nselect * from activities where crm_configuration_id = 39 and type = 'conference'\nand crm_provider_id IS NOT NULL ORDER by id desc;\nselect * from activities where id = 422003; # 00UO400000pB6fpMAC\n\nSELECT ar.id, ar.uuid, ar.media_type, ar.status, a.type\nFROM automated_report_results ar\nJOIN automated_reports a ON a.id = ar.report_id\nWHERE a.type = 'ask_jiminny'\nLIMIT 10;\n\nSELECT * FROM automated_reports where id = 71;\nSELECT * FROM automated_report_results where report_id = 71;\nUPDATE automated_reports set playbook_categories = NULL where id = 68;\nSELECT * FROM automated_report_results where id = 275;\n\nSELECT * FROM automated_reports order by id desc;\nSELECT * FROM automated_report_results order by id desc;\nselect * from activity_searches where user_id = 143;\nselect * from ask_anything_prompts;\n\nSELECT `automated_report_results`.* FROM `automated_report_results`\nINNER JOIN `automated_reports`\n ON `automated_report_results`.`report_id` = `automated_reports`.`id`\nWHERE 1=1\n AND `automated_report_results`.`generated_at` IS NOT NULL\n# AND `automated_report_results`.`sent_at` IS NOT NULL\n AND `automated_reports`.`team_id` = 1\n AND JSON_CONTAINS(`automated_reports`.`recipients`, 143, '$.\"users\"')\n;\n\nSELECT * FROM automated_reports where id = 67;\nSELECT * FROM automated_reports where id = 42;\nSELECT * FROM users WHERE id = 143; # group 28\n\nselect * from teams where id = 3143;\nselect * from crm_configurations where id = 500;\nselect * from users where name = 'Integration Account'; # 1695\nSELECT * FROM social_accounts WHERE sociable_id = 1695;\n\nselect * from activities where crm_configuration_id = 39\nand recording_state = 'recorded' and duration > 60\nand status = 'completed' and actual_start_time >= '2025-12-01';\n\nSELECT * FROM activities WHERE uuid_to_bin('458cf915-b914-4000-b083-5687b32b2956') = uuid;\n\nselect * from leads;\n\nSELECT * FROM activities WHERE uuid_to_bin('f43cf158-e60d-46e5-92f8-c4e0594a3219') = uuid; # 422003\nSELECT * FROM activities WHERE id IN (16,422003);\nSELECT * FROM activities where status = 'failed';\n\nSELECT * FROM tracks WHERE activity_id = 422003;\n\nSELECT\n a.*\nFROM activities a\nJOIN users u ON a.user_id = u.id\nWHERE\n a.status = 'completed'\n AND uuid_to_bin('641f1acb-16b8-42d1-8726-df52979dad0e') = u.uuid\n AND a.deleted_at IS NULL\n AND EXISTS (\n SELECT 1 FROM tracks t\n WHERE t.activity_id = a.id\n AND t.type IN ('audio', 'video')\n )\nORDER BY a.actual_start_time DESC\nLIMIT 25;\n\nselect * from teams where id = 19;\nselect * from crm_configurations where provider = 'pipedrive';\nSELECT\n CONCAT(u.id, CASE WHEN u.id = t.owner_id THEN ' (owner)' ELSE '' END) AS user_id,\n u.email,\n sa.*,\n t.owner_id FROM social_accounts sa\nJOIN users u on u.id = sa.sociable_id\nJOIN teams t on t.id = u.team_id\nWHERE u.team_id = 19 and sa.provider = 'pipedrive';\n\nSELECT * FROM social_accounts WHERE id = 1116;\n\nUPDATE social_accounts SET provider_user_token = 'v1u:AQIBAHj-LzTNK2yuuuaLqifzhWb9crUNKTpk4FlQ9rjnXqp_6AEQhDhDQVa1nvWCHEvnpvSEAAAAfjB8BgkqhkiG9w0BBwagbzBtAgEAMGgGCSqGSIb3DQEHATAeBglghkgBZQMEAS4wEQQMnG8KNcZLIjEnlRPxAgEQgDsGPIcKjsMU7Qel36BtM5FCQa56mYUy24_AAoqd12yjVFkq6egLqS0inp-5G4JE7frJURMV8VTw_fY14g:rYyABXmXsBhEdYU_dfmDH8GF-vzSseJXE5bds_zAyVdAwlTXOPdTl9i4PS4jVofLvpq7IRgvEt2BzGhR6cWiQXHHD0AtayQOkZm262ClFCsMYtKGfep0Jq1n0eiRIVqT9gAY7rWvhpEDF8oAlgnRGmqx-euIkpzE79sPXh4OjNx_yUIaanjyplGpBBJ_NiACd1sMlZmseyUyyU_gldqlCBAuK9hhATc9icgg7zuoc7nKBBrlg49tRtzEagDh6xbFBpzfCp7kE_7n4TLWfWHLPMzu-bktjwA969G9sFRmoH1GjPA0a2odDT4dk1_1ouBrB1NcTT2hQUqH-_RzDW2nWmeoVHA',\nprovider_refresh_token = '5034113:19555731:87c14258f0c813d02767ee975f6044d46b6b2bfc',\nexpires = 1779091997,\nstate = 'connected'\nWHERE id = 1116;\n\n \"provider_user_token\": \"v1u:AQIBAHj-LzTNK2yuuuaLqifzhWb9crUNKTpk4FlQ9rjnXqp_6AEQhDhDQVa1nvWCHEvnpvSEAAAAfjB8BgkqhkiG9w0BBwagbzBtAgEAMGgGCSqGSIb3DQEHATAeBglghkgBZQMEAS4wEQQMnG8KNcZLIjEnlRPxAgEQgDsGPIcKjsMU7Qel36BtM5FCQa56mYUy24_AAoqd12yjVFkq6egLqS0inp-5G4JE7frJURMV8VTw_fY14g:rYyABXmXsBhEdYU_dfmDH8GF-vzSseJXE5bds_zAyVdAwlTXOPdTl9i4PS4jVofLvpq7IRgvEt2BzGhR6cWiQXHHD0AtayQOkZm262ClFCsMYtKGfep0Jq1n0eiRIVqT9gAY7rWvhpEDF8oAlgnRGmqx-euIkpzE79sPXh4OjNx_yUIaanjyplGpBBJ_NiACd1sMlZmseyUyyU_gldqlCBAuK9hhATc9icgg7zuoc7nKBBrlg49tRtzEagDh6xbFBpzfCp7kE_7n4TLWfWHLPMzu-bktjwA969G9sFRmoH1GjPA0a2odDT4dk1_1ouBrB1NcTT2hQUqH-_RzDW2nWmeoVHA\",\n \"provider_refresh_token\": \"5034113:19555731:87c14258f0c813d02767ee975f6044d46b6b2bfc\",\n \"expires\": 1779091997,","depth":4,"on_screen":true,"value":"SELECT a.id, a.uuid, a.actual_start_time, o.id, o.uuid FROM opportunities o\nJOIN activities a ON o.id = a.opportunity_id\nWHERE a.crm_configuration_id = 39\nAND a.actual_start_time > '2025-10-13'\nAND a.type IN ('conference', 'softphone-inbound', 'softphone-outbound')\n;\n\nSELECT * FROM activities\nWHERE crm_configuration_id = 39 and user_id = 143\nand actual_start_time >= '2025-10-13'\nAND type IN ('conference', 'softphone-inbound', 'softphone-outbound')\n;\n\nSELECT * FROM opportunities WHERE account_id IN (178);\nselect * from activities where id IN (620137, 620187, 620188, 620189, 620230);\n\n# HS\nSELECT * FROM opportunities WHERE id IN (238);\nselect * from activities where id IN (477,2076);\n\nselect * from users;\n\nSELECT COUNT(*) FROM users;\nSELECT COUNT(*) FROM activities;\nSELECT COUNT(*) FROM opportunities;\n\nUPDATE activities\nSET\n actual_start_time = '2025-12-19 09:00:00',\n actual_end_time = '2025-12-19 10:30:00',\n scheduled_start_time = '2025-12-19 09:00:00',\n scheduled_end_time = '2025-12-19 10:30:00'\nWHERE id IN (407509,407375);\n\nselect * from partners;\n\nSELECT id, uuid, type, actual_start_time, user_id, crm_configuration_id\nFROM activities\nWHERE user_id = 143\nAND actual_start_time >= '2025-10-13 00:00:00'\nAND actual_start_time <= '2026-01-13 23:59:59'\nORDER BY actual_start_time DESC;\n\nSELECT * FROM activities WHERE uuid_to_bin('78eda160-3086-435f-88a5-bb0c71b6008d') = uuid;\nSELECT * FROM crm_layouts where crm_configuration_id = 39;\nSELECT * FROM crm_layout_entities WHERE crm_layout_id = 282;\n# lead_id\n# account_id 177\n# contact_id 3969\n# opportunity_id\n# stage_id 203\n\nSELECT * FROM opportunities WHERE opportunities.crm_configuration_id = id = 282;\n\nSELECT * FROM activities where crm_configuration_id = 39 AND type = 'conference'\nAND user_id = 143 and actual_start_time >= '2025-10-13';\n\nSELECT * FROM activities a\n# JOIN opportunities o ON a.opportunity_id = o.id\nWHERE a.crm_configuration_id = 39 AND a.type = 'conference'\nand status = 'completed' and recording_state = 'recorded'\nand a.actual_start_time >= '2025-10-13'\nAND a.user_id = 143\n;\n\nselect * from leads\nwhere crm_configuration_id = 39; # 112 -> ac. 178, 109 => op. 1707\n\nSELECT * FROM activities WHERE id IN (356013,616188,616202,616310,407509,407375,356001,356008);\nSELECT * FROM activities WHERE id IN (356013,616188,616202,616310);\nSELECT * FROM activities WHERE id IN (407509,407375); # leads: 112, 109 | status - 198\nSELECT * FROM activities WHERE id IN (356001, 356008); # contacts:\n\nSELECT * FROM opportunities WHERE id IN (1707);\nSELECT * FROM stages where id IN (204, 198);\nSELECT * FROM opportunities WHERE account_id IN (178);\nSELECT * FROM opportunities WHERE crm_configuration_id = 39 AND created_at > '2025-01-01';\nSELECT * FROM contacts WHERE account_id IN (178); # 4118 Musaibe, 4448 Ceco Personal\n\nSELECT * FROM activities where crm_configuration_id = 39\nAND opportunity_id IS NULL\nAND is_internal = false\nand status = 'completed' and recording_state = 'recorded'\nAND actual_start_time >= '2025-10-13'\nAND (lead_id IS NOT NULL OR contact_id IS NOT NULL OR account_id IS NOT NULL)\n# AND lead_id IN (112, 109)\n;\n\nSELECT * FROM crm_profiles WHERE user_id = 143;\n\nselect * from inboxes; # 212\nselect * from users where id = 143; # 143\nselect * from inbox_email_batches where inbox_id = 212\nand updated_at >= '2026-01-28 00:00:00' order by id desc;\nselect * from inbox_emails where inbox_id = 212\nand batch_id = 95885 order by id desc;\nselect * from email_messages where origin_user_id = 143;\nselect * from activities where user_id = 143 and updated_at >= '2026-01-28 00:00:00';\nselect * from participants where activity_id = 620247;\n\nselect * from crm_profiles where user_id = 143;\n\nSELECT * FROM activities WHERE uuid_to_bin('458cf915-b914-4000-b083-5687b32b2956') = uuid; # 356001\nselect * from transcription where activity_id = 356001; # 6943\nselect * from ai_prompts where transcription_id = 6943;\nSELECT * FROM activity_summary_logs where activity_id = 356001;\n\nSELECT * FROM social_accounts WHERE sociable_id = 143;\n\n# ************************************************************************************\nSELECT * FROM activities WHERE uuid_to_bin('0164a4fb-cb95-454e-9edd-4d804e4999bd') = uuid;\n# 422515 softphone tr. 8100\n\nSELECT * FROM activities WHERE uuid_to_bin('7520add8-8d87-41a5-98e5-fc4edf96f21e') = uuid;\n# 407509 conference tr. 7670 crmId: 00UD1000002J9aTMAS\n\nselect * from ai_prompts where transcription_id IN (8100, 7670);\nselect * from activity_summary_logs where activity_id = 407509;\n\nselect * from sidekick_settings;\nselect * from default_activity_types;\n\nSELECT * FROM contacts WHERE crm_configuration_id = 39 and email = 'm.kogoj@gmx.at';\nSELECT * FROM leads WHERE crm_configuration_id = 39 and email = 'm.kogoj@gmx.at';\n\nSELECT * FROM activity_searches where user_id = 143;\nSELECT * FROM groups where team_id = 1;\n\nselect * from teams where id = 1;\nselect * from groups where team_id = 1; # 1150 - 7e75f8025c22\nselect id, name, group_id, status, deleted_at, email\nfrom users where team_id = 1 order by group_id desc ;\n\nselect * from activity_searches where id in (1977, 1978, 1979);\nselect * from activity_search_filters where activity_search_id IN (1977, 1978, 1979);\nselect * from activity_search_filters where filter = 'group_id' and value = '443f26b8-8512-437e-a9f9-7e75f8025c22'; # 10268, 10272, 10277\nselect * from nudges where activity_search_id IN (1977, 1978, 1979); # 877, 878, 879\n\nINSERT INTO `activity_search_filters`\n(`activity_search_id`, `filter`, `value`) VALUES\n(1977, 'group_id', '443f26b8-8512-437e-a9f9-7e75f8025c22'),\n(1978, 'group_id', '443f26b8-8512-437e-a9f9-7e75f8025c22'),\n(1979, 'group_id', '443f26b8-8512-437e-a9f9-7e75f8025c22')\n;\n\nselect * from crm_configurations where id = 39;\n\n\nselect sa.* from users u JOIN social_accounts sa on u.id = sa.sociable_id\nwhere u.team_id = 1;\nSELECT * FROM social_accounts WHERE sociable_id = 1635;\nSELECT * FROM users WHERE id = 1635;\n\nselect * from teams where id = 1;\nselect * from users where team_id = 1;\nselect * from team_features where team_id = 1;\nselect * from features;\n\nSELECT * FROM activity_searches where id = 1982; # 1981\nSELECT * FROM activity_search_filters WHERE activity_search_id = 1982;\n\nSELECT * FROM activities WHERE uuid_to_bin('e916569b-086c-4bd1-94d7-5e3802c27ccf') = uuid;\nSELECT * FROM groups WHERE id = 1439;\nSELECT * FROM users WHERE group_id = 1439;\n\nselect * from permissions; # 158\nselect * from roles;\nselect * from permission_role;\n\nselect * from teams where id = 1;\nselect * from groups g JOIN playbooks p on g.playbook_id = p.id where g.team_id = 1;\nselect * from groups where id = 28;\nselect * from playbooks where team_id = 1;\nselect * from playbooks where id = 179;\nselect * from playbook_categories where id = 1391;\nselect * from users where id = 143;\nselect * from crm_profiles where user_id = 143;\nselect * from activities where crm_configuration_id = 39 and type = 'conference'\nand crm_provider_id IS NOT NULL ORDER by id desc;\nselect * from activities where id = 422003; # 00UO400000pB6fpMAC\n\nSELECT ar.id, ar.uuid, ar.media_type, ar.status, a.type\nFROM automated_report_results ar\nJOIN automated_reports a ON a.id = ar.report_id\nWHERE a.type = 'ask_jiminny'\nLIMIT 10;\n\nSELECT * FROM automated_reports where id = 71;\nSELECT * FROM automated_report_results where report_id = 71;\nUPDATE automated_reports set playbook_categories = NULL where id = 68;\nSELECT * FROM automated_report_results where id = 275;\n\nSELECT * FROM automated_reports order by id desc;\nSELECT * FROM automated_report_results order by id desc;\nselect * from activity_searches where user_id = 143;\nselect * from ask_anything_prompts;\n\nSELECT `automated_report_results`.* FROM `automated_report_results`\nINNER JOIN `automated_reports`\n ON `automated_report_results`.`report_id` = `automated_reports`.`id`\nWHERE 1=1\n AND `automated_report_results`.`generated_at` IS NOT NULL\n# AND `automated_report_results`.`sent_at` IS NOT NULL\n AND `automated_reports`.`team_id` = 1\n AND JSON_CONTAINS(`automated_reports`.`recipients`, 143, '$.\"users\"')\n;\n\nSELECT * FROM automated_reports where id = 67;\nSELECT * FROM automated_reports where id = 42;\nSELECT * FROM users WHERE id = 143; # group 28\n\nselect * from teams where id = 3143;\nselect * from crm_configurations where id = 500;\nselect * from users where name = 'Integration Account'; # 1695\nSELECT * FROM social_accounts WHERE sociable_id = 1695;\n\nselect * from activities where crm_configuration_id = 39\nand recording_state = 'recorded' and duration > 60\nand status = 'completed' and actual_start_time >= '2025-12-01';\n\nSELECT * FROM activities WHERE uuid_to_bin('458cf915-b914-4000-b083-5687b32b2956') = uuid;\n\nselect * from leads;\n\nSELECT * FROM activities WHERE uuid_to_bin('f43cf158-e60d-46e5-92f8-c4e0594a3219') = uuid; # 422003\nSELECT * FROM activities WHERE id IN (16,422003);\nSELECT * FROM activities where status = 'failed';\n\nSELECT * FROM tracks WHERE activity_id = 422003;\n\nSELECT\n a.*\nFROM activities a\nJOIN users u ON a.user_id = u.id\nWHERE\n a.status = 'completed'\n AND uuid_to_bin('641f1acb-16b8-42d1-8726-df52979dad0e') = u.uuid\n AND a.deleted_at IS NULL\n AND EXISTS (\n SELECT 1 FROM tracks t\n WHERE t.activity_id = a.id\n AND t.type IN ('audio', 'video')\n )\nORDER BY a.actual_start_time DESC\nLIMIT 25;\n\nselect * from teams where id = 19;\nselect * from crm_configurations where provider = 'pipedrive';\nSELECT\n CONCAT(u.id, CASE WHEN u.id = t.owner_id THEN ' (owner)' ELSE '' END) AS user_id,\n u.email,\n sa.*,\n t.owner_id FROM social_accounts sa\nJOIN users u on u.id = sa.sociable_id\nJOIN teams t on t.id = u.team_id\nWHERE u.team_id = 19 and sa.provider = 'pipedrive';\n\nSELECT * FROM social_accounts WHERE id = 1116;\n\nUPDATE social_accounts SET provider_user_token = 'v1u:AQIBAHj-LzTNK2yuuuaLqifzhWb9crUNKTpk4FlQ9rjnXqp_6AEQhDhDQVa1nvWCHEvnpvSEAAAAfjB8BgkqhkiG9w0BBwagbzBtAgEAMGgGCSqGSIb3DQEHATAeBglghkgBZQMEAS4wEQQMnG8KNcZLIjEnlRPxAgEQgDsGPIcKjsMU7Qel36BtM5FCQa56mYUy24_AAoqd12yjVFkq6egLqS0inp-5G4JE7frJURMV8VTw_fY14g:rYyABXmXsBhEdYU_dfmDH8GF-vzSseJXE5bds_zAyVdAwlTXOPdTl9i4PS4jVofLvpq7IRgvEt2BzGhR6cWiQXHHD0AtayQOkZm262ClFCsMYtKGfep0Jq1n0eiRIVqT9gAY7rWvhpEDF8oAlgnRGmqx-euIkpzE79sPXh4OjNx_yUIaanjyplGpBBJ_NiACd1sMlZmseyUyyU_gldqlCBAuK9hhATc9icgg7zuoc7nKBBrlg49tRtzEagDh6xbFBpzfCp7kE_7n4TLWfWHLPMzu-bktjwA969G9sFRmoH1GjPA0a2odDT4dk1_1ouBrB1NcTT2hQUqH-_RzDW2nWmeoVHA',\nprovider_refresh_token = '5034113:19555731:87c14258f0c813d02767ee975f6044d46b6b2bfc',\nexpires = 1779091997,\nstate = 'connected'\nWHERE id = 1116;\n\n \"provider_user_token\": \"v1u:AQIBAHj-LzTNK2yuuuaLqifzhWb9crUNKTpk4FlQ9rjnXqp_6AEQhDhDQVa1nvWCHEvnpvSEAAAAfjB8BgkqhkiG9w0BBwagbzBtAgEAMGgGCSqGSIb3DQEHATAeBglghkgBZQMEAS4wEQQMnG8KNcZLIjEnlRPxAgEQgDsGPIcKjsMU7Qel36BtM5FCQa56mYUy24_AAoqd12yjVFkq6egLqS0inp-5G4JE7frJURMV8VTw_fY14g:rYyABXmXsBhEdYU_dfmDH8GF-vzSseJXE5bds_zAyVdAwlTXOPdTl9i4PS4jVofLvpq7IRgvEt2BzGhR6cWiQXHHD0AtayQOkZm262ClFCsMYtKGfep0Jq1n0eiRIVqT9gAY7rWvhpEDF8oAlgnRGmqx-euIkpzE79sPXh4OjNx_yUIaanjyplGpBBJ_NiACd1sMlZmseyUyyU_gldqlCBAuK9hhATc9icgg7zuoc7nKBBrlg49tRtzEagDh6xbFBpzfCp7kE_7n4TLWfWHLPMzu-bktjwA969G9sFRmoH1GjPA0a2odDT4dk1_1ouBrB1NcTT2hQUqH-_RzDW2nWmeoVHA\",\n \"provider_refresh_token\": \"5034113:19555731:87c14258f0c813d02767ee975f6044d46b6b2bfc\",\n \"expires\": 1779091997,","role_description":"text entry area","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXTextField","text":"Socket fail to connect to host:address=(host=localhost)(port=3306)(type=primary). Connection refused","depth":3,"bounds":{"left":0.42652926,"top":0.9577015,"width":0.29321808,"height":0.013567438},"on_screen":true,"value":"Socket fail to connect to host:address=(host=localhost)(port=3306)(type=primary). Connection refused","role_description":"text field","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"Project","depth":3,"on_screen":false,"role_description":"text"},{"role":"AXButton","text":"Project","depth":3,"bounds":{"left":0.011968086,"top":0.047885075,"width":0.024268618,"height":0.024740623},"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"New File or Directory…","depth":4,"bounds":{"left":0.27027926,"top":1.0,"width":0.008643617,"height":0.0},"on_screen":false,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Expand Selected","depth":4,"bounds":{"left":0.27027926,"top":1.0,"width":0.008643617,"height":0.0},"on_screen":false,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Collapse All","depth":4,"bounds":{"left":0.27027926,"top":1.0,"width":0.008643617,"height":0.0},"on_screen":false,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Options","depth":4,"bounds":{"left":0.27027926,"top":1.0,"width":0.008643617,"height":0.0},"on_screen":false,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Hide","depth":4,"bounds":{"left":0.27027926,"top":1.0,"width":0.008643617,"height":0.0},"on_screen":false,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false}]...
|
-3951396835426018671
|
6902642803485316685
|
idle
|
accessibility
|
NULL
|
Project: faVsco.js, menu
JY-20676-delete-report-re Project: faVsco.js, menu
JY-20676-delete-report-related-objects, menu
Start Listening for PHP Debug Connections
AskAnythingPromptServiceTest
Run 'AskAnythingPromptServiceTest'
Debug 'AskAnythingPromptServiceTest'
More Actions
JetBrains AI
Search Everywhere
IDE and Project Settings
Sync Changes
Hide This Notification
Code changed:
Hide
12
Previous Highlighted Error
Next Highlighted Error
<?php
declare(strict_types=1);
namespace Jiminny\Repositories;
use Illuminate\Database\Eloquent\Builder;
use Illuminate\Support\Collection;
use Jiminny\Models\AskAnything\AskAnythingPrompt;
use Jiminny\Models\AskAnything\AskAnythingPromptTarget;
use Jiminny\Models\AskAnything\UserAskAnythingPrompt;
use Jiminny\Models\Group;
use Jiminny\Models\User;
class AskAnythingRepository
{
/**
* @return Collection<UserAskAnythingPrompt>
*/
public function findSharedUsersAndGroupsByPromptId(int $promptId): Collection
{
return UserAskAnythingPrompt::query()
->where('prompt_id', $promptId)
->where('is_removed', false)
->get();
}
public function findSharedPromptByUser(int $promptId, User $user): ?UserAskAnythingPrompt
{
return UserAskAnythingPrompt::with('prompt')
->where('prompt_id', $promptId)
->where('user_id', $user->getId())
->first();
}
public function findSharedPromptByUserGroup(int $promptId, User $user): ?UserAskAnythingPrompt
{
$userGroupId = $user->getGroupId();
return UserAskAnythingPrompt::with('prompt')
->where('prompt_id', $promptId)
->where(static function ($query) use ($userGroupId): void {
if ($userGroupId !== null) {
$query->where('group_id', $userGroupId);
}
})
->first();
}
/**
* @return Collection<AskAnythingPrompt>
*/
public function findPromptsByUserAndTarget(User $user, AskAnythingPromptTarget $target): Collection
{
$userGroupId = $user->getGroupId();
$usersOwnedPrompts = UserAskAnythingPrompt::with('prompt')
->where(static function ($query) use ($user, $userGroupId): void {
$query
->where('user_id', $user->getId());
if ($userGroupId !== null) {
$query->orWhere('group_id', $userGroupId);
}
})
->where('is_removed', false)
->whereHas('prompt', function (Builder $query) use ($target) {
$query->where('target', $target);
})
->orderByRaw('ISNULL(`order`), `order` ASC, `prompt_id` ASC')
->get()
->map(function (UserAskAnythingPrompt $userPrompt) {
return $userPrompt->getPrompt();
});
// Remove those prompts that are hidden for the current user
$usersOwnedPromptsFiltered = $usersOwnedPrompts->filter(function (AskAnythingPrompt $userPrompt) use ($user) {
$promptId = $userPrompt->getId();
$userDisabledPrompt = UserAskAnythingPrompt::query()
->where('prompt_id', $promptId)
->where('is_removed', true)
->where('user_id', $user->getId())
->first();
return $userDisabledPrompt === null;
});
$defaultNonChangedPrompts = AskAnythingPrompt::where('target', $target)
->whereDoesntHave('userPrompts', function ($query) use ($user) {
$query->where('user_id', $user->getId());
})
->whereNull('owner_id')
->get();
$allPrompts = $defaultNonChangedPrompts->merge($usersOwnedPromptsFiltered);
if ($allPrompts->isNotEmpty()) {
$allPrompts->loadCount('automatedReports');
}
return $allPrompts;
}
/**
* @param array<User> $shareUsers
* @param array<Group> $shareGroups
*/
public function createPrompt(
User $user,
AskAnythingPromptTarget $target,
string $title,
string $content,
array $shareUsers,
array $shareGroups,
): AskAnythingPrompt {
$prompt = AskAnythingPrompt::create([
'title' => $title,
'content' => $content,
'target' => $target,
'owner_id' => $user->getId(),
]);
UserAskAnythingPrompt::create([
'user_id' => $user->getId(),
'prompt_id' => $prompt->getId(),
]);
foreach ($shareUsers as $shareUser) {
UserAskAnythingPrompt::create([
'user_id' => $shareUser->getId(),
'prompt_id' => $prompt->getId(),
]);
}
foreach ($shareGroups as $shareGroup) {
UserAskAnythingPrompt::create([
'group_id' => $shareGroup->getId(),
'prompt_id' => $prompt->getId(),
]);
}
return $prompt;
}
/**
* @param array<User> $shareUsers
* @param array<Group> $shareGroups
*/
public function editPrompt(
AskAnythingPrompt $prompt,
string $title,
string $content,
array $shareUsers,
array $shareGroups,
): AskAnythingPrompt {
$prompt->update([
'title' => $title,
'content' => $content,
]);
$previousUserPrompts = UserAskAnythingPrompt::query()
->where('prompt_id', $prompt->getId())
->whereNull('group_id')
->whereNotNull('user_id')
->whereNot('user_id', $prompt->getOwnerId())
->get();
$previousGroupPrompts = UserAskAnythingPrompt::query()
->where('prompt_id', $prompt->getId())
->whereNotNull('group_id')
->whereNull('user_id')
->get();
$shareUserPrompts = [];
foreach ($shareUsers as $shareUser) {
$shareUserPrompts[] = UserAskAnythingPrompt::create([
'user_id' => $shareUser->getId(),
'prompt_id' => $prompt->getId(),
]);
}
$shareGroupPrompts = [];
foreach ($shareGroups as $shareGroup) {
$shareGroupPrompts[] = UserAskAnythingPrompt::create([
'group_id' => $shareGroup->getId(),
'prompt_id' => $prompt->getId(),
]);
}
// Remove those users that are no longer added
$diffUsers = $previousUserPrompts->diff($shareUserPrompts);
foreach ($diffUsers as $previousUserPrompt) {
$previousUserPrompt->delete();
}
// Remove those groups that are no longer added
$diffGroups = $previousGroupPrompts->diff($shareGroupPrompts);
foreach ($diffGroups as $previousGroupPrompt) {
$previousGroupPrompt->delete();
}
return $prompt;
}
public function deletePrompt(AskAnythingPrompt $prompt): void
{
// Also deletes all associations with users
$prompt->delete();
}
public function hidePromptForUser(AskAnythingPrompt $prompt, User $user): AskAnythingPrompt
{
$userPromptSettings = UserAskAnythingPrompt::where('user_id', $user->getId())
->where('prompt_id', $prompt->getId())
->first();
if ($userPromptSettings === null) {
$userPromptSettings = UserAskAnythingPrompt::create([
'user_id' => $user->getId(),
'prompt_id' => $prompt->getId(),
]);
}
$userPromptSettings->update([
'is_removed' => true,
]);
return $prompt;
}
public function getPromptByUuid(string $uuid): ?AskAnythingPrompt
{
return AskAnythingPrompt::where('uuid', AskAnythingPrompt::toOptimized($uuid))->first();
}
public function orderPromptForUser(AskAnythingPrompt $prompt, User $user, int $order): void
{
$userPromptSettings = UserAskAnythingPrompt::where('user_id', $user->getId())
->where('prompt_id', $prompt->getId())
->first();
if ($userPromptSettings === null) {
$userPromptSettings = UserAskAnythingPrompt::create([
'user_id' => $user->getId(),
'prompt_id' => $prompt->getId(),
]);
}
$userPromptSettings->update([
'order' => $order,
]);
}
}
Execute
Explain Plan
Browse Query History
View Parameters
Open Query Execution Settings…
In-Editor Results
Tx: Auto
Cancel Running Statements
Playground
jiminny
Code changed:
Hide
Sync Changes
Hide This Notification
21
1
18
2
6
Previous Highlighted Error
Next Highlighted Error
SELECT a.id, a.uuid, a.actual_start_time, o.id, o.uuid FROM opportunities o
JOIN activities a ON o.id = a.opportunity_id
WHERE a.crm_configuration_id = 39
AND a.actual_start_time > '2025-10-13'
AND a.type IN ('conference', 'softphone-inbound', 'softphone-outbound')
;
SELECT * FROM activities
WHERE crm_configuration_id = 39 and user_id = 143
and actual_start_time >= '2025-10-13'
AND type IN ('conference', 'softphone-inbound', 'softphone-outbound')
;
SELECT * FROM opportunities WHERE account_id IN (178);
select * from activities where id IN (620137, 620187, 620188, 620189, 620230);
# HS
SELECT * FROM opportunities WHERE id IN (238);
select * from activities where id IN (477,2076);
select * from users;
SELECT COUNT(*) FROM users;
SELECT COUNT(*) FROM activities;
SELECT COUNT(*) FROM opportunities;
UPDATE activities
SET
actual_start_time = '2025-12-19 09:00:00',
actual_end_time = '2025-12-19 10:30:00',
scheduled_start_time = '2025-12-19 09:00:00',
scheduled_end_time = '2025-12-19 10:30:00'
WHERE id IN (407509,407375);
select * from partners;
SELECT id, uuid, type, actual_start_time, user_id, crm_configuration_id
FROM activities
WHERE user_id = 143
AND actual_start_time >= '2025-10-13 00:00:00'
AND actual_start_time <= '2026-01-13 23:59:59'
ORDER BY actual_start_time DESC;
SELECT * FROM activities WHERE uuid_to_bin('78eda160-3086-435f-88a5-bb0c71b6008d') = uuid;
SELECT * FROM crm_layouts where crm_configuration_id = 39;
SELECT * FROM crm_layout_entities WHERE crm_layout_id = 282;
# lead_id
# account_id 177
# contact_id 3969
# opportunity_id
# stage_id 203
SELECT * FROM opportunities WHERE opportunities.crm_configuration_id = id = 282;
SELECT * FROM activities where crm_configuration_id = 39 AND type = 'conference'
AND user_id = 143 and actual_start_time >= '2025-10-13';
SELECT * FROM activities a
# JOIN opportunities o ON a.opportunity_id = o.id
WHERE a.crm_configuration_id = 39 AND a.type = 'conference'
and status = 'completed' and recording_state = 'recorded'
and a.actual_start_time >= '2025-10-13'
AND a.user_id = 143
;
select * from leads
where crm_configuration_id = 39; # 112 -> ac. 178, 109 => op. 1707
SELECT * FROM activities WHERE id IN (356013,616188,616202,616310,407509,407375,356001,356008);
SELECT * FROM activities WHERE id IN (356013,616188,616202,616310);
SELECT * FROM activities WHERE id IN (407509,407375); # leads: 112, 109 | status - 198
SELECT * FROM activities WHERE id IN (356001, 356008); # contacts:
SELECT * FROM opportunities WHERE id IN (1707);
SELECT * FROM stages where id IN (204, 198);
SELECT * FROM opportunities WHERE account_id IN (178);
SELECT * FROM opportunities WHERE crm_configuration_id = 39 AND created_at > '2025-01-01';
SELECT * FROM contacts WHERE account_id IN (178); # 4118 Musaibe, 4448 Ceco Personal
SELECT * FROM activities where crm_configuration_id = 39
AND opportunity_id IS NULL
AND is_internal = false
and status = 'completed' and recording_state = 'recorded'
AND actual_start_time >= '2025-10-13'
AND (lead_id IS NOT NULL OR contact_id IS NOT NULL OR account_id IS NOT NULL)
# AND lead_id IN (112, 109)
;
SELECT * FROM crm_profiles WHERE user_id = 143;
select * from inboxes; # 212
select * from users where id = 143; # 143
select * from inbox_email_batches where inbox_id = 212
and updated_at >= '2026-01-28 00:00:00' order by id desc;
select * from inbox_emails where inbox_id = 212
and batch_id = 95885 order by id desc;
select * from email_messages where origin_user_id = 143;
select * from activities where user_id = 143 and updated_at >= '2026-01-28 00:00:00';
select * from participants where activity_id = 620247;
select * from crm_profiles where user_id = 143;
SELECT * FROM activities WHERE uuid_to_bin('458cf915-b914-4000-b083-5687b32b2956') = uuid; # 356001
select * from transcription where activity_id = 356001; # 6943
select * from ai_prompts where transcription_id = 6943;
SELECT * FROM activity_summary_logs where activity_id = 356001;
SELECT * FROM social_accounts WHERE sociable_id = 143;
# [PASSWORD_DOTS]
SELECT * FROM activities WHERE uuid_to_bin('0164a4fb-cb95-454e-9edd-4d804e4999bd') = uuid;
# 422515 softphone tr. 8100
SELECT * FROM activities WHERE uuid_to_bin('7520add8-8d87-41a5-98e5-fc4edf96f21e') = uuid;
# 407509 conference tr. 7670 crmId: 00UD1000002J9aTMAS
select * from ai_prompts where transcription_id IN (8100, 7670);
select * from activity_summary_logs where activity_id = 407509;
select * from sidekick_settings;
select * from default_activity_types;
SELECT * FROM contacts WHERE crm_configuration_id = 39 and email = '[EMAIL]';
SELECT * FROM leads WHERE crm_configuration_id = 39 and email = '[EMAIL]';
SELECT * FROM activity_searches where user_id = 143;
SELECT * FROM groups where team_id = 1;
select * from teams where id = 1;
select * from groups where team_id = 1; # 1150 - 7e75f8025c22
select id, name, group_id, status, deleted_at, email
from users where team_id = 1 order by group_id desc ;
select * from activity_searches where id in (1977, 1978, 1979);
select * from activity_search_filters where activity_search_id IN (1977, 1978, 1979);
select * from activity_search_filters where filter = 'group_id' and value = '443f26b8-8512-437e-a9f9-7e75f8025c22'; # 10268, 10272, 10277
select * from nudges where activity_search_id IN (1977, 1978, 1979); # 877, 878, 879
INSERT INTO `activity_search_filters`
(`activity_search_id`, `filter`, `value`) VALUES
(1977, 'group_id', '443f26b8-8512-437e-a9f9-7e75f8025c22'),
(1978, 'group_id', '443f26b8-8512-437e-a9f9-7e75f8025c22'),
(1979, 'group_id', '443f26b8-8512-437e-a9f9-7e75f8025c22')
;
select * from crm_configurations where id = 39;
select sa.* from users u JOIN social_accounts sa on u.id = sa.sociable_id
where u.team_id = 1;
SELECT * FROM social_accounts WHERE sociable_id = 1635;
SELECT * FROM users WHERE id = 1635;
select * from teams where id = 1;
select * from users where team_id = 1;
select * from team_features where team_id = 1;
select * from features;
SELECT * FROM activity_searches where id = 1982; # 1981
SELECT * FROM activity_search_filters WHERE activity_search_id = 1982;
SELECT * FROM activities WHERE uuid_to_bin('e916569b-086c-4bd1-94d7-5e3802c27ccf') = uuid;
SELECT * FROM groups WHERE id = 1439;
SELECT * FROM users WHERE group_id = 1439;
select * from permissions; # 158
select * from roles;
select * from permission_role;
select * from teams where id = 1;
select * from groups g JOIN playbooks p on g.playbook_id = p.id where g.team_id = 1;
select * from groups where id = 28;
select * from playbooks where team_id = 1;
select * from playbooks where id = 179;
select * from playbook_categories where id = 1391;
select * from users where id = 143;
select * from crm_profiles where user_id = 143;
select * from activities where crm_configuration_id = 39 and type = 'conference'
and crm_provider_id IS NOT NULL ORDER by id desc;
select * from activities where id = 422003; # 00UO400000pB6fpMAC
SELECT ar.id, ar.uuid, ar.media_type, ar.status, a.type
FROM automated_report_results ar
JOIN automated_reports a ON a.id = ar.report_id
WHERE a.type = 'ask_jiminny'
LIMIT 10;
SELECT * FROM automated_reports where id = 71;
SELECT * FROM automated_report_results where report_id = 71;
UPDATE automated_reports set playbook_categories = NULL where id = 68;
SELECT * FROM automated_report_results where id = 275;
SELECT * FROM automated_reports order by id desc;
SELECT * FROM automated_report_results order by id desc;
select * from activity_searches where user_id = 143;
select * from ask_anything_prompts;
SELECT `automated_report_results`.* FROM `automated_report_results`
INNER JOIN `automated_reports`
ON `automated_report_results`.`report_id` = `automated_reports`.`id`
WHERE 1=1
AND `automated_report_results`.`generated_at` IS NOT NULL
# AND `automated_report_results`.`sent_at` IS NOT NULL
AND `automated_reports`.`team_id` = 1
AND JSON_CONTAINS(`automated_reports`.`recipients`, 143, '$."users"')
;
SELECT * FROM automated_reports where id = 67;
SELECT * FROM automated_reports where id = 42;
SELECT * FROM users WHERE id = 143; # group 28
select * from teams where id = 3143;
select * from crm_configurations where id = 500;
select * from users where name = 'Integration Account'; # 1695
SELECT * FROM social_accounts WHERE sociable_id = 1695;
select * from activities where crm_configuration_id = 39
and recording_state = 'recorded' and duration > 60
and status = 'completed' and actual_start_time >= '2025-12-01';
SELECT * FROM activities WHERE uuid_to_bin('458cf915-b914-4000-b083-5687b32b2956') = uuid;
select * from leads;
SELECT * FROM activities WHERE uuid_to_bin('f43cf158-e60d-46e5-92f8-c4e0594a3219') = uuid; # 422003
SELECT * FROM activities WHERE id IN (16,422003);
SELECT * FROM activities where status = 'failed';
SELECT * FROM tracks WHERE activity_id = 422003;
SELECT
a.*
FROM activities a
JOIN users u ON a.user_id = u.id
WHERE
a.status = 'completed'
AND uuid_to_bin('641f1acb-16b8-42d1-8726-df52979dad0e') = u.uuid
AND a.deleted_at IS NULL
AND EXISTS (
SELECT 1 FROM tracks t
WHERE t.activity_id = a.id
AND t.type IN ('audio', 'video')
)
ORDER BY a.actual_start_time DESC
LIMIT 25;
select * from teams where id = 19;
select * from crm_configurations where provider = 'pipedrive';
SELECT
CONCAT(u.id, CASE WHEN u.id = t.owner_id THEN ' (owner)' ELSE '' END) AS user_id,
u.email,
sa.*,
t.owner_id FROM social_accounts sa
JOIN users u on u.id = sa.sociable_id
JOIN teams t on t.id = u.team_id
WHERE u.team_id = 19 and sa.provider = 'pipedrive';
SELECT * FROM social_accounts WHERE id = 1116;
UPDATE social_accounts SET provider_user_token = 'v1u:AQIBAHj-LzTNK2yuuuaLqifzhWb9crUNKTpk4FlQ9rjnXqp_6AEQhDhDQVa1nvWCHEvnpvSEAAAAfjB8BgkqhkiG9w0BBwagbzBtAgEAMGgGCSqGSIb3DQEHATAeBglghkgBZQMEAS4wEQQMnG8KNcZLIjEnlRPxAgEQgDsGPIcKjsMU7Qel36BtM5FCQa56mYUy24_AAoqd12yjVFkq6egLqS0inp-5G4JE7frJURMV8VTw_fY14g:rYyABXmXsBhEdYU_dfmDH8GF-vzSseJXE5bds_zAyVdAwlTXOPdTl9i4PS4jVofLvpq7IRgvEt2BzGhR6cWiQXHHD0AtayQOkZm262ClFCsMYtKGfep0Jq1n0eiRIVqT9gAY7rWvhpEDF8oAlgnRGmqx-euIkpzE79sPXh4OjNx_yUIaanjyplGpBBJ_NiACd1sMlZmseyUyyU_gldqlCBAuK9hhATc9icgg7zuoc7nKBBrlg49tRtzEagDh6xbFBpzfCp7kE_7n4TLWfWHLPMzu-bktjwA969G9sFRmoH1GjPA0a2odDT4dk1_1ouBrB1NcTT2hQUqH-_RzDW2nWmeoVHA',
provider_refresh_token = '5034113:[TELEGRAM_TOKEN]b2bfc',
expires = 1779091997,
state = 'connected'
WHERE id = 1116;
"provider_user_token": "v1u:AQIBAHj-LzTNK2yuuuaLqifzhWb9crUNKTpk4FlQ9rjnXqp_6AEQhDhDQVa1nvWCHEvnpvSEAAAAfjB8BgkqhkiG9w0BBwagbzBtAgEAMGgGCSqGSIb3DQEHATAeBglghkgBZQMEAS4wEQQMnG8KNcZLIjEnlRPxAgEQgDsGPIcKjsMU7Qel36BtM5FCQa56mYUy24_AAoqd12yjVFkq6egLqS0inp-5G4JE7frJURMV8VTw_fY14g:rYyABXmXsBhEdYU_dfmDH8GF-vzSseJXE5bds_zAyVdAwlTXOPdTl9i4PS4jVofLvpq7IRgvEt2BzGhR6cWiQXHHD0AtayQOkZm262ClFCsMYtKGfep0Jq1n0eiRIVqT9gAY7rWvhpEDF8oAlgnRGmqx-euIkpzE79sPXh4OjNx_yUIaanjyplGpBBJ_NiACd1sMlZmseyUyyU_gldqlCBAuK9hhATc9icgg7zuoc7nKBBrlg49tRtzEagDh6xbFBpzfCp7kE_7n4TLWfWHLPMzu-bktjwA969G9sFRmoH1GjPA0a2odDT4dk1_1ouBrB1NcTT2hQUqH-_RzDW2nWmeoVHA",
"provider_refresh_token": "5034113:[TELEGRAM_TOKEN]b2bfc",
"expires": 1779091997,
Socket fail to connect to host:address=(host=localhost)(port=3306)(type=primary). Connection refused
Project
Project
New File or Directory…
Expand Selected
Collapse All
Options
Hide...
|
58080
|
NULL
|
NULL
|
NULL
|
|
58084
|
2045
|
10
|
2026-05-19T11:34:23.370227+00:00
|
/Users/lukas/.screenpipe/data/data/2026-05-19/1779 /Users/lukas/.screenpipe/data/data/2026-05-19/1779190463370_m2.jpg...
|
PhpStorm
|
faVsco.js – AskAnythingRepository.php
|
1
|
NULL
|
monitor_2
|
NULL
|
NULL
|
NULL
|
NULL
|
Project: faVsco.js, menu
JY-20676-delete-report-re Project: faVsco.js, menu
JY-20676-delete-report-related-objects, menu...
|
[{"role":"AXButton","text" [{"role":"AXButton","text":"Project: faVsco.js, menu","depth":5,"bounds":{"left":0.025930852,"top":0.019952115,"width":0.03856383,"height":0.025538707},"on_screen":true,"help_text":"~/jiminny/app","role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"JY-20676-delete-report-related-objects, menu","depth":5,"bounds":{"left":0.064494684,"top":0.019952115,"width":0.10405585,"height":0.025538707},"on_screen":true,"help_text":"Git Branch: JY-20676-delete-report-related-objects<br/>Some incoming commits are not fetched<br/>","role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false}]...
|
1961873295031593158
|
-1483003541378331465
|
click
|
hybrid
|
NULL
|
Project: faVsco.js, menu
JY-20676-delete-report-re Project: faVsco.js, menu
JY-20676-delete-report-related-objects, menu
PhostormVIewINavicarecodeFV faVsco.js°9 JY-20676-delete-report-reProiect© EncryptionServiceProvider.php© EventServiceProvider.php© HubspotJournalServiceProvider.php© HubspotWebhookServiceProvider.php© JiminnyServiceProvider.php© PlanhatServiceProvider.php© ProphetHandlerServiceProvider.php© PusherServiceProvider.phpC) @ueueLoqServiceProvider.php© QueueStatsdServiceProvider.phpC) ResponseMacroServiceProvider.php© RouteServiceProvider.phpc) SsoServiceProvider.pho© UtilServiceProvider.ohnC) ViewerGuardServiceProvider.ohoD Queuev RevositoriesMAiAutoScoringM Calendarv Merm© AccountRepository.php(e) ContactRepository.pnp(e) ContactRo leRepository.ong© CrmConfigurationRepository.php© CrmEntityRepository.php© FieldDataRepository.php© FieldRepository.php© LayoutEntityRepository.php© LayoutRepository.php© OpportunityRepository.php© ProfileRepository.php© RecordTypeFieldValuesRepository.php@ StageRepositorv.phpc) suncbatchrenositorv.ono>M GeographyC) ActiveStreamsReoositorv.oho© ActivityCommentRepository.phpC) ActivitvLoaReoositorv.oho©ActivityMessageRepository.phpC) ActivitvMomentRenositorv.nhnl©ActivityProviderRepository.phpC) [EMAIL]"C) ActivitvShareRenositorv [EMAIL](C) A:PromntRenositorv nhn(0 AckAnvthinaDonocitory nhn© AutomatedReportsRepository.php© CallImportRepositorv.phpshed 1 commit to oriain/IV.20676-delete-renolKeractorcustom.log= laravel.log4 SF jiminny@localhost] x4 HS_local [jiminny@localhost]© AskAnythingPromptService.phportcServiceTest.pnoA console [STAGING]© CoachingFeedbackCoachUserln.phpTx: Autov© AskJiminnyRep© AutomatedReportsService.phpC) AskAnyt© Search.php108110147class ASkAnyth1ngRepos1tory182public function findPromptsByUserAndTarget(User $user, AskAnythingPromptTarget $target): Collectior 183'prompt', function (Builder $query) use ($target) {...})->geto->man(function (UserAskAnvthingPromot SuserPromot) {...})•188 0// Remove those prompts that are hidden for the current userSusens0wnedPromotsFiltered = Susens0wnedPromots->filter(function (AskAnvthingPromot $userPromot 191$defaultNonChangedPrompts = AskAnythingPrompt::where('target', $target)->whereDoesntHave('userPrompts', function ($query) use (Suser) {...})->whereNuinownen d!)->getO:1196return SdefaultNonchangedPromots->mergeSusers0wnedPromotsFiltered):Accept Reject198SallPrompts = $defaultNonChanqedPrompts->merge(Susers0wnedPromptsFiltered)201if (SallPrompts->isNotEmpty0) {203204205return sauuPromots206207208209• dparam arrau<iser> Ssharelsers210211212213nublic functiion createPromotd214User $user,AskAnvthinaPromntTaraet Staraetstring $title,etnina Ccontent217218Annav Cchanelicenclarray $shareGroups): AskAnythingPrompt {.,221* @param array<User> SshareUsers* @param array<Group> SshareGroups—225public functioh edifpromotAccept File &+X Reject File +*€ + 2 0f 2 files →SELECT ar.id, ar.uuid, ar.mediatype, ar.status, a.typeFROM automated_report_results arJOIN automated_reports a ON a.id = ar.reportidWHERE a.type ='ask_jiminny'LIMIT 10;SELECT * FROM automated reports where id = 71;SELECT * FROM automated report results where report id = 71;UPDATE automated reports set playbook categories = NULL where id = 68SELECT * FROM automated report results where id = 275;SELECT * FROM automated_reports order by za desc;SELECT * FROMautomated_reportresults order by 1d desc:select * from activity_searches here user_id = 143;SELECTautomated report results.* FROM 'automated report resultsiINNER JOIN automated_reportsautomated remort results', renort id ='automated remorts-'idiANDautomated_report_results.generated_at IS NOT NULLautomated_report_results.sent_at IS NOT NULLautomated renorts' 'team id = 1AND JSON_CONTAINS( automated_reports . recipients, 143, '$."users"')SELECT * FROM automated_reports where id = 67:SELECT * FROM automated_reports where id = 42;SELECT * FROM users WHERE id = 143; # group 28select * from teams where id = 3143;select * from crm_configurations where id = 500:select * from users where name = 'Integration Account': # 1695SELECT * FROM social accounts WHERE sociable id = 1695:select * from activities where crm_configuration id = 39and recording state = 'recorded' and duration > 60and status = 'completed' and actual start time >= '2025-12-01':SELECT * FROM activities WHERE uuid to bin('458cf915-6914-4000-b083-568763262956') = uuid:select * from leads›SELECT * FROM activities WHERE uuid to binc'f43cf158-e60d-46e5-92f8-c4e0594a3219') = uuid: # 422003SELECT * FROM activities WHERE id IN (16.422003);148SSIECT * SROM activitios whenp status ='failed';Socket fail to connect to host:address=(host=localhost) (port=3306)(tvpe=primarv). Connection refusedectc /I View null reauect (todav 12:17)hell"suppont Dally • In 20 m100% 5• Tue 19 May 14:34:23AskAnythingPromptServiceTest& console [PROD]# console [euyCascadeAsk Jiminny Report M+0 ..So jiminny vinate.*Collection in tests/Unit/Component/AskAnything/AskAnythingPromptServiceTest.php (1)aalbl8XL XbATest compatibility issue: LoadCount on a collection of PHPUnit mocks would crash because it tries to call newQuerywithoutketaczonsnips on the uirst model, keposttory piacement avolded that decduse the test mocks the reposttory calentirelyLet me revert to the repository approach but add a clarifying comment, since the impact is minimal (2 small COUNT querieson the reorder endooint, not a full N+1):"AskAnvthinaPromotService.ohvAskAnythingRepository.php+7 -1Risks SummaryWhat loadCount does•Adds one extra query: SELECT ask anything prompt id, COUNT(*) FROM automated reports WHERE ask anything prompt_id IN (...) GROUP BY ask_anything_prompt_id• Sets automated reports count (raw int on each model in the returned collection.• No writes. no model state mutation bevond that attributelWill it modify existing behavior?Functionaliv no, pertormance-wise sliaht.v1. AskAnythingPromptService: :get() - needs the count. Beneficial.2 RearderAckAnvthinaPromntcReauest (two call sites) _ onlv uses nluck(tunsd')and escount( on the collection. Theextra COUNT query runs but the result is unused. Cost: 2 small grouped-COUNT queries per reorder reguest. Nonulnelelnheahllels3. JSON serialization risk - none, because every response path runs prompts through AskAnythingPromptDto. nevercorializec the model directly So antonatod conorte count doecn't loak into anv Apl recnonce4. save() after - automated reports count is not in sfillable and not a real DB column. Eloquent ignores it on save.No corruntion rick5. Subsequent relation queries — none affected. Counts are stored as a plain attribute, not a loaded relationWhy keot it in the revositorv (not the service)Tecte mock the renocitory entirelv with a fake Collection of mocked nromnte lf loadCount ic in the cervice it triec to callthey never reach loadcount and keeps the eager-load close to the query that produced the collection - which is adetensible renositorv concern (returnina data in a usable shane).The only "cost" is two unnecessary lightweight COUNT queries on the reorder endpoint, which is rarely hit and alreadydoes manv other queries — accentable trade-offG..l../M.AskAnvthinaPromntService.ohn t7s/M AskAnvthinaRenositorv.hnAsk anvthina (884-L)<> Code Claude Qnus 4.7 Medium* Reiect alliiAccent allWN Windsurf Toams 110-22UTE.8io 4 spaces...
|
58080
|
NULL
|
NULL
|
NULL
|
|
58083
|
2044
|
9
|
2026-05-19T11:34:23.395366+00:00
|
/Users/lukas/.screenpipe/data/data/2026-05-19/1779 /Users/lukas/.screenpipe/data/data/2026-05-19/1779190463395_m1.jpg...
|
PhpStorm
|
faVsco.js – AskAnythingRepository.php
|
1
|
NULL
|
monitor_1
|
NULL
|
NULL
|
NULL
|
NULL
|
Project: faVsco.js, menu
JY-20676-delete-report-re Project: faVsco.js, menu
JY-20676-delete-report-related-objects, menu
Start Listening for PHP Debug Connections...
|
[{"role":"AXButton","text" [{"role":"AXButton","text":"Project: faVsco.js, menu","depth":5,"on_screen":true,"help_text":"~/jiminny/app","role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"JY-20676-delete-report-related-objects, menu","depth":5,"on_screen":true,"help_text":"Git Branch: JY-20676-delete-report-related-objects<br/>Some incoming commits are not fetched<br/>","role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Start Listening for PHP Debug Connections","depth":5,"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false}]...
|
-6966022010367698874
|
-564708849257816637
|
click
|
hybrid
|
NULL
|
Project: faVsco.js, menu
JY-20676-delete-report-re Project: faVsco.js, menu
JY-20676-delete-report-related-objects, menu
Start Listening for PHP Debug Connections
iTerm2• 0ShellEditViewSessionScriptsProfilesWindowHelp(allSupport Daily • in 26 m100% C4 8• Tue 19 May 14:34:23DOCKER• ₴1DEV (docker)Fixed 1 of 5690files in 71.757 seconds, 60.00 MBmemoryused₴82APP (docker)APP (docker)181*3screenpipe"0 ₴4-zsh85What's next:Try Docker Debug for seamless, persistent debugging tools in any container or image + docker debug docker_lamp_1Learn moreat [URL_WITH_CREDENTIALS] ~/jiminny/app (JY-20676-delete-report-related-objects) $csfixdocker exec -it docker_lamp_1 ./vendor/bin/php-cs-fixer fix--config=.php-cs-fixer.dist.php -v --using-cache=no --diff...
|
NULL
|
NULL
|
NULL
|
NULL
|
|
58086
|
2044
|
10
|
2026-05-19T11:34:25.634254+00:00
|
/Users/lukas/.screenpipe/data/data/2026-05-19/1779 /Users/lukas/.screenpipe/data/data/2026-05-19/1779190465634_m1.jpg...
|
PhpStorm
|
faVsco.js – AskAnythingPromptService.php
|
1
|
NULL
|
monitor_1
|
NULL
|
NULL
|
NULL
|
NULL
|
iTerm2• 0ShellEditViewSessionScriptsProfilesWind iTerm2• 0ShellEditViewSessionScriptsProfilesWindowHelp(allSupport Daily • in 26 m100% C4 8• Tue 19 May 14:34:25DOCKER• ₴1DEV (docker)Fixed 1 of 5690files in 71.757 seconds, 60.00 MBmemoryused₴82APP (docker)APP (docker)*3screenpipe"0 ₴4-zsh85What's next:Try Docker Debug for seamless, persistent debugging tools in any container or image + docker debug docker_lamp_1Learn moreat [URL_WITH_CREDENTIALS] ~/jiminny/app (JY-20676-delete-report-related-objects) $csfixdocker exec -it docker_lamp_1 ./vendor/bin/php-cs-fixer fix--config=.php-cs-fixer.dist.php -v --using-cache=no --diff...
|
NULL
|
-2440711259656243044
|
NULL
|
click
|
ocr
|
NULL
|
iTerm2• 0ShellEditViewSessionScriptsProfilesWind iTerm2• 0ShellEditViewSessionScriptsProfilesWindowHelp(allSupport Daily • in 26 m100% C4 8• Tue 19 May 14:34:25DOCKER• ₴1DEV (docker)Fixed 1 of 5690files in 71.757 seconds, 60.00 MBmemoryused₴82APP (docker)APP (docker)*3screenpipe"0 ₴4-zsh85What's next:Try Docker Debug for seamless, persistent debugging tools in any container or image + docker debug docker_lamp_1Learn moreat [URL_WITH_CREDENTIALS] ~/jiminny/app (JY-20676-delete-report-related-objects) $csfixdocker exec -it docker_lamp_1 ./vendor/bin/php-cs-fixer fix--config=.php-cs-fixer.dist.php -v --using-cache=no --diff...
|
58083
|
NULL
|
NULL
|
NULL
|
|
58085
|
2045
|
11
|
2026-05-19T11:34:27.697241+00:00
|
/Users/lukas/.screenpipe/data/data/2026-05-19/1779 /Users/lukas/.screenpipe/data/data/2026-05-19/1779190467697_m2.jpg...
|
PhpStorm
|
faVsco.js – AskAnythingPromptService.php
|
1
|
NULL
|
monitor_2
|
NULL
|
NULL
|
NULL
|
NULL
|
Project: faVsco.js, menu
JY-20676-delete-report-re Project: faVsco.js, menu
JY-20676-delete-report-related-objects, menu
Start Listening for PHP Debug Connections
AskAnythingPromptServiceTest
Run 'AskAnythingPromptServiceTest'
Debug 'AskAnythingPromptServiceTest'
More Actions
JetBrains AI
Search Everywhere
IDE and Project Settings
Sync Changes
Hide This Notification
Code changed:
Hide
2
2
Previous Highlighted Error
Next Highlighted Error
<?php
declare(strict_types=1);
namespace Jiminny\Component\AskAnything;
use Jiminny\Component\AskAnything\Dtos\AskAnythingPromptDto;
use Jiminny\Contracts\Repositories\GroupRepositoryInterface;
use Jiminny\Exceptions\InvalidArgumentException;
use Jiminny\Models\AskAnything\AskAnythingPrompt;
use Jiminny\Models\AskAnything\AskAnythingPromptTarget;
use Jiminny\Models\AskAnything\UserAskAnythingPrompt;
use Jiminny\Models\Group;
use Jiminny\Models\User;
use Jiminny\Repositories\AskAnythingRepository;
use Jiminny\Repositories\UserRepository;
class AskAnythingPromptService
{
public function __construct(
private readonly AskAnythingRepository $askAnythingRepository,
private readonly UserRepository $userRepository,
private readonly GroupRepositoryInterface $groupRepository,
) {
}
/**
* @return array<AskAnythingPromptDto>
*/
public function get(User $user, AskAnythingPromptTarget $target): array
{
$prompts = $this->askAnythingRepository->findPromptsByUserAndTarget(
$user,
$target
);
$promptDtos = [];
foreach ($prompts as $prompt) {
$ownerUuid = null;
if ($prompt->getOwner() !== null) {
$ownerUuid = $prompt->getOwner()->getUuid();
}
$shareUsers = null;
$shareGroups = null;
// Provide users and groups only if owner of the prompt is current user
if ($prompt->getOwnerId() === $user->getId()) {
[$shareUsers, $shareGroups] = $this->getReceiverUuids($prompt);
}
$promptDtos[] = new AskAnythingPromptDto(
$prompt->getUuid(),
$prompt->getTitle(),
$prompt->getContent(),
$target,
$ownerUuid,
$shareUsers,
$shareGroups,
$prompt->getHasReports(),
);
}
return $promptDtos;
}
/**
* @param array<string> $shareUsersUuids
* @param array<string> $shareGroupsUuids
*/
public function create(
User $user,
string $title,
string $content,
AskAnythingPromptTarget $target,
array $shareUsersUuids,
array $shareGroupsUuids
): AskAnythingPromptDto {
$shareUsers = $shareGroups = [];
foreach ($shareUsersUuids as $userUuid) {
$shareUsers[] = $this->userRepository->findByUuid($userUuid);
}
foreach ($shareGroupsUuids as $groupUuid) {
$shareGroups[] = $this->groupRepository->findByUuid($groupUuid);
}
$prompt = $this->askAnythingRepository->createPrompt(
$user,
$target,
$title,
$content,
$shareUsers,
$shareGroups,
);
return new AskAnythingPromptDto(
$prompt->getUuid(),
$prompt->getTitle(),
$prompt->getContent(),
$target,
$user->getUuid(),
$shareUsersUuids,
$shareGroupsUuids,
false,
);
}
/**
* @param array<string> $shareUsersUuids
* @param array<string> $shareGroupsUuids
*
* @throws InvalidArgumentException
*/
public function edit(
AskAnythingPrompt $prompt,
User $user,
string $title,
string $content,
array $shareUsersUuids,
array $shareGroupsUuids
): AskAnythingPromptDto {
$shareUsers = $shareGroups = [];
foreach ($shareUsersUuids as $userUuid) {
$shareUsers[] = $this->userRepository->findByUuid($userUuid);
}
foreach ($shareGroupsUuids as $groupUuid) {
$shareGroups[] = $this->groupRepository->findByUuid($groupUuid);
}
if ($prompt->isDefaultPrompt()) {
$this->askAnythingRepository->hidePromptForUser($prompt, $user);
$newPrompt = $this->askAnythingRepository->createPrompt(
$user,
$prompt->getTarget(),
$title,
$content,
$shareUsers,
$shareGroups,
);
} elseif ($prompt->getOwnerId() === $user->getId()) {
$newPrompt = $this->askAnythingRepository->editPrompt(
$prompt,
$title,
$content,
$shareUsers,
$shareGroups,
);
} else {
throw new InvalidArgumentException('Edit not allowed for prompt ' . $prompt->getUuid());
}
return new AskAnythingPromptDto(
$newPrompt->getUuid(),
$newPrompt->getTitle(),
$newPrompt->getContent(),
$newPrompt->getTarget(),
$user->getUuid(),
$shareUsersUuids,
$shareGroupsUuids,
);
}
public function delete(
AskAnythingPrompt $prompt,
User $user
): AskAnythingPrompt {
if ($prompt->isDefaultPrompt()) {
$this->askAnythingRepository->hidePromptForUser($prompt, $user);
} elseif ($prompt->getOwnerId() === $user->getId()) {
$userPrompt = $this->askAnythingRepository->findSharedPromptByUser($prompt->getId(), $user);
$userPrompt?->delete();
// For each relation, re-create the prompt for the receiver as their own
$this->recreatePromptsForEachRelation($prompt);
// Finally, delete the prompt
$this->deletePromptIfNoRelations($prompt);
} else {
$userPrompt = $this->askAnythingRepository->findSharedPromptByUser($prompt->getId(), $user);
$groupPrompt = $this->askAnythingRepository->findSharedPromptByUserGroup($prompt->getId(), $user);
// If the prompt is shared directly with the user, then "unshare" it
if ($userPrompt instanceof UserAskAnythingPrompt && $groupPrompt === null) {
$userPrompt->delete();
$this->deletePromptIfNoRelations($prompt);
} elseif ($groupPrompt instanceof UserAskAnythingPrompt) {
// If the prompt is shared with the user and the group, then hide it for this user
$this->askAnythingRepository->hidePromptForUser($prompt, $user);
} else {
throw new InvalidArgumentException('Unknown delete allowance for prompt ' . $prompt->getUuid());
}
}
return $prompt;
}
public function reorder(
User $user,
array $promptUuids,
): void {
foreach ($promptUuids as $index => $promptUuid) {
$prompt = $this->askAnythingRepository->getPromptByUuid($promptUuid);
$this->askAnythingRepository->orderPromptForUser($prompt, $user, $index + 1);
}
}
/**
* @param AskAnythingPrompt $prompt
*
* @return array[array<string>, array<string>]
*/
private function getReceiverUuids(AskAnythingPrompt $prompt): array
{
$shareUsers = [];
$shareGroups = [];
foreach ($this->askAnythingRepository->findSharedUsersAndGroupsByPromptId($prompt->getId()) as $sharedPrompt) {
$sharedUser = $sharedPrompt->getUser();
if ($sharedUser instanceof User && $sharedUser->isStatusActive()) {
$shareUsers[] = $sharedUser->getUuid();
}
$sharedGroup = $sharedPrompt->getGroup();
if ($sharedGroup instanceof Group) {
$shareGroups[] = $sharedGroup->getUuid();
}
}
return [$shareUsers, $shareGroups];
}
private function deletePromptIfNoRelations(AskAnythingPrompt $prompt): void
{
if ($this->askAnythingRepository->findSharedUsersAndGroupsByPromptId($prompt->getId())->isEmpty()) {
// Disable and orphan any AutomatedReports that use this prompt
$prompt->automatedReports()->withTrashed()->update([
'ask_anything_prompt_id' => null,
'status' => false,
]);
// Delete only if there are no other relations to it.
$this->askAnythingRepository->deletePrompt($prompt);
}
}
private function recreatePromptsForEachRelation(AskAnythingPrompt $prompt): void
{
[$sharedUsersIds, $sharedUsersRemovedIds] = $this->recreatePromptsForUserRelations($prompt);
$this->recreatePromptsForGroupRelations($prompt, $sharedUsersIds, $sharedUsersRemovedIds);
}
private function recreatePromptsForUserRelations(AskAnythingPrompt $prompt): array
{
$sharedUsersIds = [];
$sharedUsersRemovedIds = [];
foreach ($this->askAnythingRepository->findSharedUsersAndGroupsByPromptId($prompt->getId()) as $sharedPrompt) {
$sharedUser = $sharedPrompt->getUser();
if ($sharedPrompt->isRemoved() === true) {
$sharedUsersRemovedIds[] = $sharedUser->getId();
}
if ($sharedPrompt->isRemoved() !== true && $sharedUser instanceof User && $sharedUser->isStatusActive()) {
$sharedUsersIds[] = $sharedUser->getId();
$this->askAnythingRepository->createPrompt(
$sharedUser,
$prompt->getTarget(),
$prompt->getTitle(),
$prompt->getContent(),
[],
[],
);
$sharedPrompt->delete();
}
}
return [$sharedUsersIds, $sharedUsersRemovedIds];
}
private function recreatePromptsForGroupRelations(AskAnythingPrompt $prompt, array $sharedUsersIds, array $sharedUsersRemovedIds): void
{
foreach ($this->askAnythingRepository->findSharedUsersAndGroupsByPromptId($prompt->getId()) as $sharedPrompt) {
$sharedGroup = $sharedPrompt->getGroup();
if ($sharedGroup instanceof Group) {
foreach ($sharedGroup->getMembers() as $member) {
if (! in_array($member->getId(), $sharedUsersIds)
&& ! in_array($member->getId(), $sharedUsersRemovedIds)) {
$sharedUsersIds[] = $member->getId();
$this->askAnythingRepository->createPrompt(
$member,
$prompt->getTarget(),
$prompt->getTitle(),
$prompt->getContent(),
[],
[],
);
}
}
$sharedPrompt->delete();
}
}
}
}
Execute
Explain Plan
Browse Query History
View Parameters
Open Query Execution Settings…
In-Editor Results
Tx: Auto
Cancel Running Statements
Playground
jiminny
Code changed:
Hide
Sync Changes
Hide This Notification
21
1
18
2
6...
|
[{"role":"AXButton","text" [{"role":"AXButton","text":"Project: faVsco.js, menu","depth":5,"bounds":{"left":0.025930852,"top":0.019952115,"width":0.03856383,"height":0.025538707},"on_screen":true,"help_text":"~/jiminny/app","role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"JY-20676-delete-report-related-objects, menu","depth":5,"bounds":{"left":0.064494684,"top":0.019952115,"width":0.10405585,"height":0.025538707},"on_screen":true,"help_text":"Git Branch: JY-20676-delete-report-related-objects<br/>Some incoming commits are not fetched<br/>","role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Start Listening for PHP Debug Connections","depth":5,"bounds":{"left":0.8194814,"top":0.019952115,"width":0.011303191,"height":0.025538707},"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"AskAnythingPromptServiceTest","depth":6,"bounds":{"left":0.83477396,"top":0.019952115,"width":0.080784574,"height":0.025538707},"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Run 'AskAnythingPromptServiceTest'","depth":6,"bounds":{"left":0.9155585,"top":0.019952115,"width":0.011303191,"height":0.025538707},"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Debug 'AskAnythingPromptServiceTest'","depth":6,"bounds":{"left":0.9268617,"top":0.019952115,"width":0.011303191,"height":0.025538707},"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"More Actions","depth":6,"bounds":{"left":0.9381649,"top":0.019952115,"width":0.011303191,"height":0.025538707},"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"JetBrains AI","depth":5,"bounds":{"left":0.96609044,"top":0.019952115,"width":0.011303191,"height":0.025538707},"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Search Everywhere","depth":5,"bounds":{"left":0.9773936,"top":0.019952115,"width":0.011303191,"height":0.025538707},"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"IDE and Project Settings","depth":5,"bounds":{"left":0.9886968,"top":0.019952115,"width":0.011303186,"height":0.025538707},"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Sync Changes","depth":4,"bounds":{"left":0.27027926,"top":1.0,"width":0.008643617,"height":0.0},"on_screen":false,"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Hide This Notification","depth":4,"bounds":{"left":0.27027926,"top":1.0,"width":0.008643617,"height":0.0},"on_screen":false,"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Code changed:","depth":4,"bounds":{"left":0.27027926,"top":1.0,"width":0.042220745,"height":0.0},"on_screen":false,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Hide","depth":4,"bounds":{"left":0.27027926,"top":1.0,"width":0.008643617,"height":0.0},"on_screen":false,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"2","depth":4,"bounds":{"left":0.27027926,"top":1.0,"width":0.007978723,"height":0.0},"on_screen":false,"role_description":"text"},{"role":"AXStaticText","text":"2","depth":4,"bounds":{"left":0.27027926,"top":1.0,"width":0.007978723,"height":0.0},"on_screen":false,"role_description":"text"},{"role":"AXButton","text":"Previous Highlighted Error","depth":4,"bounds":{"left":0.27027926,"top":1.0,"width":0.00731383,"height":0.0},"on_screen":false,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Next Highlighted Error","depth":4,"bounds":{"left":0.27027926,"top":1.0,"width":0.006981383,"height":0.0},"on_screen":false,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXTextArea","text":"<?php\n\ndeclare(strict_types=1);\n\nnamespace Jiminny\\Component\\AskAnything;\n\nuse Jiminny\\Component\\AskAnything\\Dtos\\AskAnythingPromptDto;\nuse Jiminny\\Contracts\\Repositories\\GroupRepositoryInterface;\nuse Jiminny\\Exceptions\\InvalidArgumentException;\nuse Jiminny\\Models\\AskAnything\\AskAnythingPrompt;\nuse Jiminny\\Models\\AskAnything\\AskAnythingPromptTarget;\nuse Jiminny\\Models\\AskAnything\\UserAskAnythingPrompt;\nuse Jiminny\\Models\\Group;\nuse Jiminny\\Models\\User;\nuse Jiminny\\Repositories\\AskAnythingRepository;\nuse Jiminny\\Repositories\\UserRepository;\n\nclass AskAnythingPromptService\n{\n public function __construct(\n private readonly AskAnythingRepository $askAnythingRepository,\n private readonly UserRepository $userRepository,\n private readonly GroupRepositoryInterface $groupRepository,\n ) {\n }\n\n /**\n * @return array<AskAnythingPromptDto>\n */\n public function get(User $user, AskAnythingPromptTarget $target): array\n {\n $prompts = $this->askAnythingRepository->findPromptsByUserAndTarget(\n $user,\n $target\n );\n\n $promptDtos = [];\n foreach ($prompts as $prompt) {\n $ownerUuid = null;\n if ($prompt->getOwner() !== null) {\n $ownerUuid = $prompt->getOwner()->getUuid();\n }\n $shareUsers = null;\n $shareGroups = null;\n\n // Provide users and groups only if owner of the prompt is current user\n if ($prompt->getOwnerId() === $user->getId()) {\n [$shareUsers, $shareGroups] = $this->getReceiverUuids($prompt);\n }\n\n $promptDtos[] = new AskAnythingPromptDto(\n $prompt->getUuid(),\n $prompt->getTitle(),\n $prompt->getContent(),\n $target,\n $ownerUuid,\n $shareUsers,\n $shareGroups,\n $prompt->getHasReports(),\n );\n }\n\n return $promptDtos;\n }\n\n /**\n * @param array<string> $shareUsersUuids\n * @param array<string> $shareGroupsUuids\n */\n public function create(\n User $user,\n string $title,\n string $content,\n AskAnythingPromptTarget $target,\n array $shareUsersUuids,\n array $shareGroupsUuids\n ): AskAnythingPromptDto {\n\n $shareUsers = $shareGroups = [];\n foreach ($shareUsersUuids as $userUuid) {\n $shareUsers[] = $this->userRepository->findByUuid($userUuid);\n }\n foreach ($shareGroupsUuids as $groupUuid) {\n $shareGroups[] = $this->groupRepository->findByUuid($groupUuid);\n }\n\n $prompt = $this->askAnythingRepository->createPrompt(\n $user,\n $target,\n $title,\n $content,\n $shareUsers,\n $shareGroups,\n );\n\n return new AskAnythingPromptDto(\n $prompt->getUuid(),\n $prompt->getTitle(),\n $prompt->getContent(),\n $target,\n $user->getUuid(),\n $shareUsersUuids,\n $shareGroupsUuids,\n false,\n );\n }\n\n /**\n * @param array<string> $shareUsersUuids\n * @param array<string> $shareGroupsUuids\n *\n * @throws InvalidArgumentException\n */\n public function edit(\n AskAnythingPrompt $prompt,\n User $user,\n string $title,\n string $content,\n array $shareUsersUuids,\n array $shareGroupsUuids\n ): AskAnythingPromptDto {\n $shareUsers = $shareGroups = [];\n foreach ($shareUsersUuids as $userUuid) {\n $shareUsers[] = $this->userRepository->findByUuid($userUuid);\n }\n foreach ($shareGroupsUuids as $groupUuid) {\n $shareGroups[] = $this->groupRepository->findByUuid($groupUuid);\n }\n\n if ($prompt->isDefaultPrompt()) {\n $this->askAnythingRepository->hidePromptForUser($prompt, $user);\n\n $newPrompt = $this->askAnythingRepository->createPrompt(\n $user,\n $prompt->getTarget(),\n $title,\n $content,\n $shareUsers,\n $shareGroups,\n );\n } elseif ($prompt->getOwnerId() === $user->getId()) {\n $newPrompt = $this->askAnythingRepository->editPrompt(\n $prompt,\n $title,\n $content,\n $shareUsers,\n $shareGroups,\n );\n } else {\n throw new InvalidArgumentException('Edit not allowed for prompt ' . $prompt->getUuid());\n }\n\n return new AskAnythingPromptDto(\n $newPrompt->getUuid(),\n $newPrompt->getTitle(),\n $newPrompt->getContent(),\n $newPrompt->getTarget(),\n $user->getUuid(),\n $shareUsersUuids,\n $shareGroupsUuids,\n );\n }\n\n public function delete(\n AskAnythingPrompt $prompt,\n User $user\n ): AskAnythingPrompt {\n if ($prompt->isDefaultPrompt()) {\n $this->askAnythingRepository->hidePromptForUser($prompt, $user);\n } elseif ($prompt->getOwnerId() === $user->getId()) {\n $userPrompt = $this->askAnythingRepository->findSharedPromptByUser($prompt->getId(), $user);\n $userPrompt?->delete();\n // For each relation, re-create the prompt for the receiver as their own\n $this->recreatePromptsForEachRelation($prompt);\n\n // Finally, delete the prompt\n $this->deletePromptIfNoRelations($prompt);\n } else {\n $userPrompt = $this->askAnythingRepository->findSharedPromptByUser($prompt->getId(), $user);\n $groupPrompt = $this->askAnythingRepository->findSharedPromptByUserGroup($prompt->getId(), $user);\n\n // If the prompt is shared directly with the user, then \"unshare\" it\n if ($userPrompt instanceof UserAskAnythingPrompt && $groupPrompt === null) {\n $userPrompt->delete();\n $this->deletePromptIfNoRelations($prompt);\n } elseif ($groupPrompt instanceof UserAskAnythingPrompt) {\n // If the prompt is shared with the user and the group, then hide it for this user\n $this->askAnythingRepository->hidePromptForUser($prompt, $user);\n } else {\n throw new InvalidArgumentException('Unknown delete allowance for prompt ' . $prompt->getUuid());\n }\n }\n\n return $prompt;\n }\n\n public function reorder(\n User $user,\n array $promptUuids,\n ): void {\n foreach ($promptUuids as $index => $promptUuid) {\n $prompt = $this->askAnythingRepository->getPromptByUuid($promptUuid);\n $this->askAnythingRepository->orderPromptForUser($prompt, $user, $index + 1);\n }\n }\n\n /**\n * @param AskAnythingPrompt $prompt\n *\n * @return array[array<string>, array<string>]\n */\n private function getReceiverUuids(AskAnythingPrompt $prompt): array\n {\n $shareUsers = [];\n $shareGroups = [];\n foreach ($this->askAnythingRepository->findSharedUsersAndGroupsByPromptId($prompt->getId()) as $sharedPrompt) {\n $sharedUser = $sharedPrompt->getUser();\n if ($sharedUser instanceof User && $sharedUser->isStatusActive()) {\n $shareUsers[] = $sharedUser->getUuid();\n }\n $sharedGroup = $sharedPrompt->getGroup();\n if ($sharedGroup instanceof Group) {\n $shareGroups[] = $sharedGroup->getUuid();\n }\n }\n\n return [$shareUsers, $shareGroups];\n }\n\n private function deletePromptIfNoRelations(AskAnythingPrompt $prompt): void\n {\n if ($this->askAnythingRepository->findSharedUsersAndGroupsByPromptId($prompt->getId())->isEmpty()) {\n // Disable and orphan any AutomatedReports that use this prompt\n $prompt->automatedReports()->withTrashed()->update([\n 'ask_anything_prompt_id' => null,\n 'status' => false,\n ]);\n\n // Delete only if there are no other relations to it.\n $this->askAnythingRepository->deletePrompt($prompt);\n }\n }\n\n private function recreatePromptsForEachRelation(AskAnythingPrompt $prompt): void\n {\n [$sharedUsersIds, $sharedUsersRemovedIds] = $this->recreatePromptsForUserRelations($prompt);\n $this->recreatePromptsForGroupRelations($prompt, $sharedUsersIds, $sharedUsersRemovedIds);\n }\n\n private function recreatePromptsForUserRelations(AskAnythingPrompt $prompt): array\n {\n $sharedUsersIds = [];\n $sharedUsersRemovedIds = [];\n foreach ($this->askAnythingRepository->findSharedUsersAndGroupsByPromptId($prompt->getId()) as $sharedPrompt) {\n $sharedUser = $sharedPrompt->getUser();\n if ($sharedPrompt->isRemoved() === true) {\n $sharedUsersRemovedIds[] = $sharedUser->getId();\n }\n if ($sharedPrompt->isRemoved() !== true && $sharedUser instanceof User && $sharedUser->isStatusActive()) {\n $sharedUsersIds[] = $sharedUser->getId();\n $this->askAnythingRepository->createPrompt(\n $sharedUser,\n $prompt->getTarget(),\n $prompt->getTitle(),\n $prompt->getContent(),\n [],\n [],\n );\n $sharedPrompt->delete();\n }\n }\n\n return [$sharedUsersIds, $sharedUsersRemovedIds];\n }\n\n private function recreatePromptsForGroupRelations(AskAnythingPrompt $prompt, array $sharedUsersIds, array $sharedUsersRemovedIds): void\n {\n foreach ($this->askAnythingRepository->findSharedUsersAndGroupsByPromptId($prompt->getId()) as $sharedPrompt) {\n $sharedGroup = $sharedPrompt->getGroup();\n if ($sharedGroup instanceof Group) {\n foreach ($sharedGroup->getMembers() as $member) {\n if (! in_array($member->getId(), $sharedUsersIds)\n && ! in_array($member->getId(), $sharedUsersRemovedIds)) {\n $sharedUsersIds[] = $member->getId();\n $this->askAnythingRepository->createPrompt(\n $member,\n $prompt->getTarget(),\n $prompt->getTitle(),\n $prompt->getContent(),\n [],\n [],\n );\n }\n }\n $sharedPrompt->delete();\n }\n }\n }\n}","depth":4,"on_screen":true,"value":"<?php\n\ndeclare(strict_types=1);\n\nnamespace Jiminny\\Component\\AskAnything;\n\nuse Jiminny\\Component\\AskAnything\\Dtos\\AskAnythingPromptDto;\nuse Jiminny\\Contracts\\Repositories\\GroupRepositoryInterface;\nuse Jiminny\\Exceptions\\InvalidArgumentException;\nuse Jiminny\\Models\\AskAnything\\AskAnythingPrompt;\nuse Jiminny\\Models\\AskAnything\\AskAnythingPromptTarget;\nuse Jiminny\\Models\\AskAnything\\UserAskAnythingPrompt;\nuse Jiminny\\Models\\Group;\nuse Jiminny\\Models\\User;\nuse Jiminny\\Repositories\\AskAnythingRepository;\nuse Jiminny\\Repositories\\UserRepository;\n\nclass AskAnythingPromptService\n{\n public function __construct(\n private readonly AskAnythingRepository $askAnythingRepository,\n private readonly UserRepository $userRepository,\n private readonly GroupRepositoryInterface $groupRepository,\n ) {\n }\n\n /**\n * @return array<AskAnythingPromptDto>\n */\n public function get(User $user, AskAnythingPromptTarget $target): array\n {\n $prompts = $this->askAnythingRepository->findPromptsByUserAndTarget(\n $user,\n $target\n );\n\n $promptDtos = [];\n foreach ($prompts as $prompt) {\n $ownerUuid = null;\n if ($prompt->getOwner() !== null) {\n $ownerUuid = $prompt->getOwner()->getUuid();\n }\n $shareUsers = null;\n $shareGroups = null;\n\n // Provide users and groups only if owner of the prompt is current user\n if ($prompt->getOwnerId() === $user->getId()) {\n [$shareUsers, $shareGroups] = $this->getReceiverUuids($prompt);\n }\n\n $promptDtos[] = new AskAnythingPromptDto(\n $prompt->getUuid(),\n $prompt->getTitle(),\n $prompt->getContent(),\n $target,\n $ownerUuid,\n $shareUsers,\n $shareGroups,\n $prompt->getHasReports(),\n );\n }\n\n return $promptDtos;\n }\n\n /**\n * @param array<string> $shareUsersUuids\n * @param array<string> $shareGroupsUuids\n */\n public function create(\n User $user,\n string $title,\n string $content,\n AskAnythingPromptTarget $target,\n array $shareUsersUuids,\n array $shareGroupsUuids\n ): AskAnythingPromptDto {\n\n $shareUsers = $shareGroups = [];\n foreach ($shareUsersUuids as $userUuid) {\n $shareUsers[] = $this->userRepository->findByUuid($userUuid);\n }\n foreach ($shareGroupsUuids as $groupUuid) {\n $shareGroups[] = $this->groupRepository->findByUuid($groupUuid);\n }\n\n $prompt = $this->askAnythingRepository->createPrompt(\n $user,\n $target,\n $title,\n $content,\n $shareUsers,\n $shareGroups,\n );\n\n return new AskAnythingPromptDto(\n $prompt->getUuid(),\n $prompt->getTitle(),\n $prompt->getContent(),\n $target,\n $user->getUuid(),\n $shareUsersUuids,\n $shareGroupsUuids,\n false,\n );\n }\n\n /**\n * @param array<string> $shareUsersUuids\n * @param array<string> $shareGroupsUuids\n *\n * @throws InvalidArgumentException\n */\n public function edit(\n AskAnythingPrompt $prompt,\n User $user,\n string $title,\n string $content,\n array $shareUsersUuids,\n array $shareGroupsUuids\n ): AskAnythingPromptDto {\n $shareUsers = $shareGroups = [];\n foreach ($shareUsersUuids as $userUuid) {\n $shareUsers[] = $this->userRepository->findByUuid($userUuid);\n }\n foreach ($shareGroupsUuids as $groupUuid) {\n $shareGroups[] = $this->groupRepository->findByUuid($groupUuid);\n }\n\n if ($prompt->isDefaultPrompt()) {\n $this->askAnythingRepository->hidePromptForUser($prompt, $user);\n\n $newPrompt = $this->askAnythingRepository->createPrompt(\n $user,\n $prompt->getTarget(),\n $title,\n $content,\n $shareUsers,\n $shareGroups,\n );\n } elseif ($prompt->getOwnerId() === $user->getId()) {\n $newPrompt = $this->askAnythingRepository->editPrompt(\n $prompt,\n $title,\n $content,\n $shareUsers,\n $shareGroups,\n );\n } else {\n throw new InvalidArgumentException('Edit not allowed for prompt ' . $prompt->getUuid());\n }\n\n return new AskAnythingPromptDto(\n $newPrompt->getUuid(),\n $newPrompt->getTitle(),\n $newPrompt->getContent(),\n $newPrompt->getTarget(),\n $user->getUuid(),\n $shareUsersUuids,\n $shareGroupsUuids,\n );\n }\n\n public function delete(\n AskAnythingPrompt $prompt,\n User $user\n ): AskAnythingPrompt {\n if ($prompt->isDefaultPrompt()) {\n $this->askAnythingRepository->hidePromptForUser($prompt, $user);\n } elseif ($prompt->getOwnerId() === $user->getId()) {\n $userPrompt = $this->askAnythingRepository->findSharedPromptByUser($prompt->getId(), $user);\n $userPrompt?->delete();\n // For each relation, re-create the prompt for the receiver as their own\n $this->recreatePromptsForEachRelation($prompt);\n\n // Finally, delete the prompt\n $this->deletePromptIfNoRelations($prompt);\n } else {\n $userPrompt = $this->askAnythingRepository->findSharedPromptByUser($prompt->getId(), $user);\n $groupPrompt = $this->askAnythingRepository->findSharedPromptByUserGroup($prompt->getId(), $user);\n\n // If the prompt is shared directly with the user, then \"unshare\" it\n if ($userPrompt instanceof UserAskAnythingPrompt && $groupPrompt === null) {\n $userPrompt->delete();\n $this->deletePromptIfNoRelations($prompt);\n } elseif ($groupPrompt instanceof UserAskAnythingPrompt) {\n // If the prompt is shared with the user and the group, then hide it for this user\n $this->askAnythingRepository->hidePromptForUser($prompt, $user);\n } else {\n throw new InvalidArgumentException('Unknown delete allowance for prompt ' . $prompt->getUuid());\n }\n }\n\n return $prompt;\n }\n\n public function reorder(\n User $user,\n array $promptUuids,\n ): void {\n foreach ($promptUuids as $index => $promptUuid) {\n $prompt = $this->askAnythingRepository->getPromptByUuid($promptUuid);\n $this->askAnythingRepository->orderPromptForUser($prompt, $user, $index + 1);\n }\n }\n\n /**\n * @param AskAnythingPrompt $prompt\n *\n * @return array[array<string>, array<string>]\n */\n private function getReceiverUuids(AskAnythingPrompt $prompt): array\n {\n $shareUsers = [];\n $shareGroups = [];\n foreach ($this->askAnythingRepository->findSharedUsersAndGroupsByPromptId($prompt->getId()) as $sharedPrompt) {\n $sharedUser = $sharedPrompt->getUser();\n if ($sharedUser instanceof User && $sharedUser->isStatusActive()) {\n $shareUsers[] = $sharedUser->getUuid();\n }\n $sharedGroup = $sharedPrompt->getGroup();\n if ($sharedGroup instanceof Group) {\n $shareGroups[] = $sharedGroup->getUuid();\n }\n }\n\n return [$shareUsers, $shareGroups];\n }\n\n private function deletePromptIfNoRelations(AskAnythingPrompt $prompt): void\n {\n if ($this->askAnythingRepository->findSharedUsersAndGroupsByPromptId($prompt->getId())->isEmpty()) {\n // Disable and orphan any AutomatedReports that use this prompt\n $prompt->automatedReports()->withTrashed()->update([\n 'ask_anything_prompt_id' => null,\n 'status' => false,\n ]);\n\n // Delete only if there are no other relations to it.\n $this->askAnythingRepository->deletePrompt($prompt);\n }\n }\n\n private function recreatePromptsForEachRelation(AskAnythingPrompt $prompt): void\n {\n [$sharedUsersIds, $sharedUsersRemovedIds] = $this->recreatePromptsForUserRelations($prompt);\n $this->recreatePromptsForGroupRelations($prompt, $sharedUsersIds, $sharedUsersRemovedIds);\n }\n\n private function recreatePromptsForUserRelations(AskAnythingPrompt $prompt): array\n {\n $sharedUsersIds = [];\n $sharedUsersRemovedIds = [];\n foreach ($this->askAnythingRepository->findSharedUsersAndGroupsByPromptId($prompt->getId()) as $sharedPrompt) {\n $sharedUser = $sharedPrompt->getUser();\n if ($sharedPrompt->isRemoved() === true) {\n $sharedUsersRemovedIds[] = $sharedUser->getId();\n }\n if ($sharedPrompt->isRemoved() !== true && $sharedUser instanceof User && $sharedUser->isStatusActive()) {\n $sharedUsersIds[] = $sharedUser->getId();\n $this->askAnythingRepository->createPrompt(\n $sharedUser,\n $prompt->getTarget(),\n $prompt->getTitle(),\n $prompt->getContent(),\n [],\n [],\n );\n $sharedPrompt->delete();\n }\n }\n\n return [$sharedUsersIds, $sharedUsersRemovedIds];\n }\n\n private function recreatePromptsForGroupRelations(AskAnythingPrompt $prompt, array $sharedUsersIds, array $sharedUsersRemovedIds): void\n {\n foreach ($this->askAnythingRepository->findSharedUsersAndGroupsByPromptId($prompt->getId()) as $sharedPrompt) {\n $sharedGroup = $sharedPrompt->getGroup();\n if ($sharedGroup instanceof Group) {\n foreach ($sharedGroup->getMembers() as $member) {\n if (! in_array($member->getId(), $sharedUsersIds)\n && ! in_array($member->getId(), $sharedUsersRemovedIds)) {\n $sharedUsersIds[] = $member->getId();\n $this->askAnythingRepository->createPrompt(\n $member,\n $prompt->getTarget(),\n $prompt->getTitle(),\n $prompt->getContent(),\n [],\n [],\n );\n }\n }\n $sharedPrompt->delete();\n }\n }\n }\n}","role_description":"text entry area","is_enabled":true,"is_focused":true,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Execute","depth":4,"bounds":{"left":0.42785904,"top":0.09896249,"width":0.008643617,"height":0.01915403},"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Explain Plan","depth":4,"bounds":{"left":0.43650267,"top":0.09896249,"width":0.008643617,"height":0.01915403},"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Browse Query History","depth":4,"bounds":{"left":0.4474734,"top":0.09896249,"width":0.008643617,"height":0.01915403},"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"View Parameters","depth":4,"bounds":{"left":0.45611703,"top":0.09896249,"width":0.008643617,"height":0.01915403},"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Open Query Execution Settings…","depth":4,"bounds":{"left":0.46476063,"top":0.09896249,"width":0.008643617,"height":0.01915403},"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"In-Editor Results","depth":4,"bounds":{"left":0.47573137,"top":0.09896249,"width":0.008643617,"height":0.01915403},"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Tx: Auto","depth":4,"bounds":{"left":0.4867021,"top":0.09896249,"width":0.024268618,"height":0.01915403},"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Cancel Running Statements","depth":4,"bounds":{"left":0.51329786,"top":0.09896249,"width":0.008643617,"height":0.01915403},"on_screen":true,"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Playground","depth":4,"bounds":{"left":0.5242686,"top":0.09896249,"width":0.029587766,"height":0.01915403},"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"jiminny","depth":4,"bounds":{"left":0.70611703,"top":0.09896249,"width":0.02825798,"height":0.01915403},"on_screen":true,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Code changed:","depth":4,"bounds":{"left":0.27027926,"top":1.0,"width":0.042220745,"height":0.0},"on_screen":false,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Hide","depth":4,"bounds":{"left":0.27027926,"top":1.0,"width":0.008643617,"height":0.0},"on_screen":false,"role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Sync Changes","depth":4,"bounds":{"left":0.27027926,"top":1.0,"width":0.008643617,"height":0.0},"on_screen":false,"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Hide This Notification","depth":4,"bounds":{"left":0.27027926,"top":1.0,"width":0.008643617,"height":0.0},"on_screen":false,"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"21","depth":4,"bounds":{"left":0.66921544,"top":0.123703115,"width":0.009640957,"height":0.015163607},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"1","depth":4,"bounds":{"left":0.68085104,"top":0.123703115,"width":0.00731383,"height":0.015163607},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"18","depth":4,"bounds":{"left":0.69015956,"top":0.123703115,"width":0.009640957,"height":0.015163607},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"2","depth":4,"bounds":{"left":0.7017952,"top":0.123703115,"width":0.007978723,"height":0.015163607},"on_screen":true,"role_description":"text"},{"role":"AXStaticText","text":"6","depth":4,"bounds":{"left":0.7117686,"top":0.123703115,"width":0.007978723,"height":0.015163607},"on_screen":true,"role_description":"text"}]...
|
3668762417906777311
|
-8385247806295963138
|
visual_change
|
accessibility
|
NULL
|
Project: faVsco.js, menu
JY-20676-delete-report-re Project: faVsco.js, menu
JY-20676-delete-report-related-objects, menu
Start Listening for PHP Debug Connections
AskAnythingPromptServiceTest
Run 'AskAnythingPromptServiceTest'
Debug 'AskAnythingPromptServiceTest'
More Actions
JetBrains AI
Search Everywhere
IDE and Project Settings
Sync Changes
Hide This Notification
Code changed:
Hide
2
2
Previous Highlighted Error
Next Highlighted Error
<?php
declare(strict_types=1);
namespace Jiminny\Component\AskAnything;
use Jiminny\Component\AskAnything\Dtos\AskAnythingPromptDto;
use Jiminny\Contracts\Repositories\GroupRepositoryInterface;
use Jiminny\Exceptions\InvalidArgumentException;
use Jiminny\Models\AskAnything\AskAnythingPrompt;
use Jiminny\Models\AskAnything\AskAnythingPromptTarget;
use Jiminny\Models\AskAnything\UserAskAnythingPrompt;
use Jiminny\Models\Group;
use Jiminny\Models\User;
use Jiminny\Repositories\AskAnythingRepository;
use Jiminny\Repositories\UserRepository;
class AskAnythingPromptService
{
public function __construct(
private readonly AskAnythingRepository $askAnythingRepository,
private readonly UserRepository $userRepository,
private readonly GroupRepositoryInterface $groupRepository,
) {
}
/**
* @return array<AskAnythingPromptDto>
*/
public function get(User $user, AskAnythingPromptTarget $target): array
{
$prompts = $this->askAnythingRepository->findPromptsByUserAndTarget(
$user,
$target
);
$promptDtos = [];
foreach ($prompts as $prompt) {
$ownerUuid = null;
if ($prompt->getOwner() !== null) {
$ownerUuid = $prompt->getOwner()->getUuid();
}
$shareUsers = null;
$shareGroups = null;
// Provide users and groups only if owner of the prompt is current user
if ($prompt->getOwnerId() === $user->getId()) {
[$shareUsers, $shareGroups] = $this->getReceiverUuids($prompt);
}
$promptDtos[] = new AskAnythingPromptDto(
$prompt->getUuid(),
$prompt->getTitle(),
$prompt->getContent(),
$target,
$ownerUuid,
$shareUsers,
$shareGroups,
$prompt->getHasReports(),
);
}
return $promptDtos;
}
/**
* @param array<string> $shareUsersUuids
* @param array<string> $shareGroupsUuids
*/
public function create(
User $user,
string $title,
string $content,
AskAnythingPromptTarget $target,
array $shareUsersUuids,
array $shareGroupsUuids
): AskAnythingPromptDto {
$shareUsers = $shareGroups = [];
foreach ($shareUsersUuids as $userUuid) {
$shareUsers[] = $this->userRepository->findByUuid($userUuid);
}
foreach ($shareGroupsUuids as $groupUuid) {
$shareGroups[] = $this->groupRepository->findByUuid($groupUuid);
}
$prompt = $this->askAnythingRepository->createPrompt(
$user,
$target,
$title,
$content,
$shareUsers,
$shareGroups,
);
return new AskAnythingPromptDto(
$prompt->getUuid(),
$prompt->getTitle(),
$prompt->getContent(),
$target,
$user->getUuid(),
$shareUsersUuids,
$shareGroupsUuids,
false,
);
}
/**
* @param array<string> $shareUsersUuids
* @param array<string> $shareGroupsUuids
*
* @throws InvalidArgumentException
*/
public function edit(
AskAnythingPrompt $prompt,
User $user,
string $title,
string $content,
array $shareUsersUuids,
array $shareGroupsUuids
): AskAnythingPromptDto {
$shareUsers = $shareGroups = [];
foreach ($shareUsersUuids as $userUuid) {
$shareUsers[] = $this->userRepository->findByUuid($userUuid);
}
foreach ($shareGroupsUuids as $groupUuid) {
$shareGroups[] = $this->groupRepository->findByUuid($groupUuid);
}
if ($prompt->isDefaultPrompt()) {
$this->askAnythingRepository->hidePromptForUser($prompt, $user);
$newPrompt = $this->askAnythingRepository->createPrompt(
$user,
$prompt->getTarget(),
$title,
$content,
$shareUsers,
$shareGroups,
);
} elseif ($prompt->getOwnerId() === $user->getId()) {
$newPrompt = $this->askAnythingRepository->editPrompt(
$prompt,
$title,
$content,
$shareUsers,
$shareGroups,
);
} else {
throw new InvalidArgumentException('Edit not allowed for prompt ' . $prompt->getUuid());
}
return new AskAnythingPromptDto(
$newPrompt->getUuid(),
$newPrompt->getTitle(),
$newPrompt->getContent(),
$newPrompt->getTarget(),
$user->getUuid(),
$shareUsersUuids,
$shareGroupsUuids,
);
}
public function delete(
AskAnythingPrompt $prompt,
User $user
): AskAnythingPrompt {
if ($prompt->isDefaultPrompt()) {
$this->askAnythingRepository->hidePromptForUser($prompt, $user);
} elseif ($prompt->getOwnerId() === $user->getId()) {
$userPrompt = $this->askAnythingRepository->findSharedPromptByUser($prompt->getId(), $user);
$userPrompt?->delete();
// For each relation, re-create the prompt for the receiver as their own
$this->recreatePromptsForEachRelation($prompt);
// Finally, delete the prompt
$this->deletePromptIfNoRelations($prompt);
} else {
$userPrompt = $this->askAnythingRepository->findSharedPromptByUser($prompt->getId(), $user);
$groupPrompt = $this->askAnythingRepository->findSharedPromptByUserGroup($prompt->getId(), $user);
// If the prompt is shared directly with the user, then "unshare" it
if ($userPrompt instanceof UserAskAnythingPrompt && $groupPrompt === null) {
$userPrompt->delete();
$this->deletePromptIfNoRelations($prompt);
} elseif ($groupPrompt instanceof UserAskAnythingPrompt) {
// If the prompt is shared with the user and the group, then hide it for this user
$this->askAnythingRepository->hidePromptForUser($prompt, $user);
} else {
throw new InvalidArgumentException('Unknown delete allowance for prompt ' . $prompt->getUuid());
}
}
return $prompt;
}
public function reorder(
User $user,
array $promptUuids,
): void {
foreach ($promptUuids as $index => $promptUuid) {
$prompt = $this->askAnythingRepository->getPromptByUuid($promptUuid);
$this->askAnythingRepository->orderPromptForUser($prompt, $user, $index + 1);
}
}
/**
* @param AskAnythingPrompt $prompt
*
* @return array[array<string>, array<string>]
*/
private function getReceiverUuids(AskAnythingPrompt $prompt): array
{
$shareUsers = [];
$shareGroups = [];
foreach ($this->askAnythingRepository->findSharedUsersAndGroupsByPromptId($prompt->getId()) as $sharedPrompt) {
$sharedUser = $sharedPrompt->getUser();
if ($sharedUser instanceof User && $sharedUser->isStatusActive()) {
$shareUsers[] = $sharedUser->getUuid();
}
$sharedGroup = $sharedPrompt->getGroup();
if ($sharedGroup instanceof Group) {
$shareGroups[] = $sharedGroup->getUuid();
}
}
return [$shareUsers, $shareGroups];
}
private function deletePromptIfNoRelations(AskAnythingPrompt $prompt): void
{
if ($this->askAnythingRepository->findSharedUsersAndGroupsByPromptId($prompt->getId())->isEmpty()) {
// Disable and orphan any AutomatedReports that use this prompt
$prompt->automatedReports()->withTrashed()->update([
'ask_anything_prompt_id' => null,
'status' => false,
]);
// Delete only if there are no other relations to it.
$this->askAnythingRepository->deletePrompt($prompt);
}
}
private function recreatePromptsForEachRelation(AskAnythingPrompt $prompt): void
{
[$sharedUsersIds, $sharedUsersRemovedIds] = $this->recreatePromptsForUserRelations($prompt);
$this->recreatePromptsForGroupRelations($prompt, $sharedUsersIds, $sharedUsersRemovedIds);
}
private function recreatePromptsForUserRelations(AskAnythingPrompt $prompt): array
{
$sharedUsersIds = [];
$sharedUsersRemovedIds = [];
foreach ($this->askAnythingRepository->findSharedUsersAndGroupsByPromptId($prompt->getId()) as $sharedPrompt) {
$sharedUser = $sharedPrompt->getUser();
if ($sharedPrompt->isRemoved() === true) {
$sharedUsersRemovedIds[] = $sharedUser->getId();
}
if ($sharedPrompt->isRemoved() !== true && $sharedUser instanceof User && $sharedUser->isStatusActive()) {
$sharedUsersIds[] = $sharedUser->getId();
$this->askAnythingRepository->createPrompt(
$sharedUser,
$prompt->getTarget(),
$prompt->getTitle(),
$prompt->getContent(),
[],
[],
);
$sharedPrompt->delete();
}
}
return [$sharedUsersIds, $sharedUsersRemovedIds];
}
private function recreatePromptsForGroupRelations(AskAnythingPrompt $prompt, array $sharedUsersIds, array $sharedUsersRemovedIds): void
{
foreach ($this->askAnythingRepository->findSharedUsersAndGroupsByPromptId($prompt->getId()) as $sharedPrompt) {
$sharedGroup = $sharedPrompt->getGroup();
if ($sharedGroup instanceof Group) {
foreach ($sharedGroup->getMembers() as $member) {
if (! in_array($member->getId(), $sharedUsersIds)
&& ! in_array($member->getId(), $sharedUsersRemovedIds)) {
$sharedUsersIds[] = $member->getId();
$this->askAnythingRepository->createPrompt(
$member,
$prompt->getTarget(),
$prompt->getTitle(),
$prompt->getContent(),
[],
[],
);
}
}
$sharedPrompt->delete();
}
}
}
}
Execute
Explain Plan
Browse Query History
View Parameters
Open Query Execution Settings…
In-Editor Results
Tx: Auto
Cancel Running Statements
Playground
jiminny
Code changed:
Hide
Sync Changes
Hide This Notification
21
1
18
2
6...
|
NULL
|
NULL
|
NULL
|
NULL
|
|
58087
|
2044
|
11
|
2026-05-19T11:34:34.784846+00:00
|
/Users/lukas/.screenpipe/data/data/2026-05-19/1779 /Users/lukas/.screenpipe/data/data/2026-05-19/1779190474784_m1.jpg...
|
Firefox
|
NULL
|
1
|
NULL
|
monitor_1
|
NULL
|
NULL
|
NULL
|
NULL
|
iTerm2• 0ShellEditViewSessionScriptsProfilesWind iTerm2• 0ShellEditViewSessionScriptsProfilesWindowHelp(allSupport Daily • in 26 m100% C4 8• Tue 19 May 14:34:34DOCKER• ₴1DEV (docker)Fixed 1 of 5690files in 71.757 seconds, 60.00 MBmemoryused₴82APP (docker)APP (docker)181*3screenpipe"0 ₴4-zsh85What's next:Try Docker Debug for seamless, persistent debugging tools in any container or image + docker debug docker_lamp_1Learn moreat [URL_WITH_CREDENTIALS] ~/jiminny/app (JY-20676-delete-report-related-objects) $csfixdocker exec -it docker_lamp_1 ./vendor/bin/php-cs-fixer fix--config=.php-cs-fixer.dist.php -v --using-cache=no --diff...
|
NULL
|
4706694012701782308
|
NULL
|
click
|
ocr
|
NULL
|
iTerm2• 0ShellEditViewSessionScriptsProfilesWind iTerm2• 0ShellEditViewSessionScriptsProfilesWindowHelp(allSupport Daily • in 26 m100% C4 8• Tue 19 May 14:34:34DOCKER• ₴1DEV (docker)Fixed 1 of 5690files in 71.757 seconds, 60.00 MBmemoryused₴82APP (docker)APP (docker)181*3screenpipe"0 ₴4-zsh85What's next:Try Docker Debug for seamless, persistent debugging tools in any container or image + docker debug docker_lamp_1Learn moreat [URL_WITH_CREDENTIALS] ~/jiminny/app (JY-20676-delete-report-related-objects) $csfixdocker exec -it docker_lamp_1 ./vendor/bin/php-cs-fixer fix--config=.php-cs-fixer.dist.php -v --using-cache=no --diff...
|
NULL
|
NULL
|
NULL
|
NULL
|
|
58088
|
2045
|
12
|
2026-05-19T11:34:34.827382+00:00
|
/Users/lukas/.screenpipe/data/data/2026-05-19/1779 /Users/lukas/.screenpipe/data/data/2026-05-19/1779190474827_m2.jpg...
|
PhpStorm
|
faVsco.js – AskAnythingPromptService.php
|
1
|
NULL
|
monitor_2
|
NULL
|
NULL
|
NULL
|
NULL
|
iilPhostormVIewINavicarecodeTOOISFV faVsco.js°9 JY iilPhostormVIewINavicarecodeTOOISFV faVsco.js°9 JY-20676-delete-report-related-objProiect vC ActivityController.ong© AskAnythingController.php© AskAnythingPromptDto.phpAskAnytingPromptservice.ongm Events) ASKAnythingPro© AsKAnytningPromptservice.ongc Historyservice.ong© AskJiminnyRe© AutomaD AskJiminnyAiWAWS0 BillingManagementu cachew countryDatabaseDatadoolDateltimeDealinsiahtsN DealRisks1N GlasticSearchM EloquentEncoding• Encryption1M SakenD FeatureFlagsD FFMpegD FileSystemD Gong_ cuzzienutou reyPolntsKIOSK_ LanquageDetectionW LOCKSW Math_MediapioelineM MeetinaBot2 MobileSettinas/ ModelNudaeIM ParagranhBreaker1 PartitionedCookieM PlavbackPadeM PlavlistProphetM PronhetAfM DrosnorWorkdM Auoncclass ASkAnyth1ngPromptServ1cepublic function edit($titlesconcent$shareUsersssharebroups}elseif (Sprompt->get0wnerId@ === Suser-›getIdO) {SnewPrompt = Sthis->askAnythingRepository->editPromotd•else "throw new InvalidAraumentExcentiond messagenpturnnew_AckAnvthingPromnthtol$newPrompt->getUuid,SnewPromnt->aetTitle0lSnewPromnt->aetContento$newPrompt->getTargeto,Suser->getUuid.SchanellsenclluidsCchaneGrouosuulas,public function deletedASkAnythinqPrompt SpromptUser suser): AskAnythingPrompt {...}oublic function reorderdUser Suserarray $promptUuids,D: void s..* Gnaram AckanuthinaPromnt Soromnt* Qreturn arcaularnau<string>. arrau<ctrina>i1 usage+ 1of 3edits J Accept File *++ 1 of 2 files →nnivate function aetReceiverimusiaskanvrhinaPromnt Snnomnt)• annavad-obiects // View null reauect (todav 12:17)=custom.log=laravel.log4 HS_local [jiminny@localhost]& console [PROD]# console [euyA console [STAGING]DGO0BCoachingFeedbackCoachUserin.php© Search.phpSo jiminny v021 A1 A18 V.2 Y6 ^182186SELECT ar.ig, ar.wid, ar.nedidatype, ar.status, a.tYRgER0M automated nenont neculte anJOIN automated_reports a ON a.ig = ar.cepert.idWHERE a.type = 'ask_jiminny'LIMIT 10;188 0190192194Spromot->aetUu 1982022101|211212213214215216217218219SELECT * FROM automated_reports where jd = 71;SCISCT * SPOM automated noresults where repertaid = 71;UPDATE automated_reports set playbook categories = NULL where id = 68SELECT * FROM automated report results where id = 275;Salel * rkum auromateSELECT * FROMorder by id desc:user_id = 143;select * fromSELECT 'automated_report_results'.* FROM 'automated_report_results"automated_report_results'."report_id' = 'automated_reports'.'idANDautomated_report_results'.'generated_at' IS NOT NULLIS NOT NULLAND JSON_CONTAINS( automated_reports . recipients, 143, '$."users"")SELECT * EPOM ucenc WHEPE id = 143• # anoun 29select * from crm_ configurations where id = 500;select * from users where name = 'Integration Account': # 1695SELECT * FROM social accounts WHERE sociable_id = 1695:select * from activities where crm_configuration id = 39and recording_ state = 'recorded' and duration > 60and status = 'completed' and actual start time >= '2025-12-01':SELECT * FROM activities WHERE uuid to bin('458cf915-6914-4000-b083-568763262956') = uuid:222.223)select * from leads›225SELET ROM BEÉVits WERE Le i C 5- 2 43515-e[PHONE]-ctS9Aa3219) = wute; 42003SELECT * FROM activities WHERESFLECT * EPOMSocket fail to connect to host:address=(host=localhost) (port=3306)(tvpe=primarv). Connection refusedhell"suppont Dally • In 20 m100% 5• Tue 19 May 14:34:34AskAnythingPromptServiceTestCascadeAsk Jiminny Report M+0 ..inate.*Collection in tests/Unit/Component/AskAnything/AskAnythingPromptServiceTest.php (1)Test compatibility issue: LoadCount on a collection of PHPUnit mocks would crash because it tries to call newQuerywithoutketaczonsnips on the uirst model, keposttory piacement avolded that decduse the test mocks the reposttory calentirelyLet me revert to the repository approach but add a clarifying comment, since the impact is minimal (2 small COUNT querieson the reorder endooint, not a full N+1):"AskAnvthinaPromotService.ohvAskAnythingRepository.php+7 -1Risks SummaryWhat loadCount does•Adds one extra query: SELECT ask anything prompt id, COUNT(*) FROM automated reports WHERE ask anything prompt_id IN (...) GROUP BY ask_anything_prompt_id• Sets automated reports count (raw int on each model in the returned collection.• No writes. no model state mutation bevond that attributelWill it modify existing behavior?Functionaliv no, pertormance-wise sliaht.v1. AskAnythingPromptService: :get() - needs the count. Beneficial.2ReorderAckAnvthinaPromntcReauest two call sites) — oniv uses nluck("wid') and escount) on the collection. Theextra COUNT query runs but the result is unused. Cost: 2 small grouped-COUNT queries per reorder reguest. Nonulntenelnhenwlntes3. JSON serialization risk - none, because every response path runs prompts through AskAnythingPromptDto. nevercorializec the model directly So antonatod conorte count doecn't loak into anv Apl recnonce4. save() after - automated reports count is not in sfillable and not a real DB column. Eloquent ignores it on save.No corruntion rick5. Subsequent relation queries — none affected. Counts are stored as a plain attribute, not a loaded relationWhy keot it in the revositorv (not the service)Tecte mock the renocitory entirelv with a fake Collection of mocked nromnte lf loadCount ic in the cervice it triec to callthey never reach loadcount and keeps the eager-load close to the query that produced the collection - which is adetensible renositorv concern (returnina data in a usable shane).The only "cost" is two unnecessary lightweight COUNT queries on the reorder endpoint, which is rarely hit and alreadydoes manv other queries — accentable trade-offG..l..kAnvthina/M.AskAnvthinaPromntService.ohn t7es/MAskAnvthinaRenositorv.ohnAsk anvthina (884-L)<> Code Claude Qnus 4.7 MediumReiect alllAccent alliWN Windsurf Toams 50-1UTF.8io 4 spaces...
|
NULL
|
-5171574695813850712
|
NULL
|
click
|
ocr
|
NULL
|
iilPhostormVIewINavicarecodeTOOISFV faVsco.js°9 JY iilPhostormVIewINavicarecodeTOOISFV faVsco.js°9 JY-20676-delete-report-related-objProiect vC ActivityController.ong© AskAnythingController.php© AskAnythingPromptDto.phpAskAnytingPromptservice.ongm Events) ASKAnythingPro© AsKAnytningPromptservice.ongc Historyservice.ong© AskJiminnyRe© AutomaD AskJiminnyAiWAWS0 BillingManagementu cachew countryDatabaseDatadoolDateltimeDealinsiahtsN DealRisks1N GlasticSearchM EloquentEncoding• Encryption1M SakenD FeatureFlagsD FFMpegD FileSystemD Gong_ cuzzienutou reyPolntsKIOSK_ LanquageDetectionW LOCKSW Math_MediapioelineM MeetinaBot2 MobileSettinas/ ModelNudaeIM ParagranhBreaker1 PartitionedCookieM PlavbackPadeM PlavlistProphetM PronhetAfM DrosnorWorkdM Auoncclass ASkAnyth1ngPromptServ1cepublic function edit($titlesconcent$shareUsersssharebroups}elseif (Sprompt->get0wnerId@ === Suser-›getIdO) {SnewPrompt = Sthis->askAnythingRepository->editPromotd•else "throw new InvalidAraumentExcentiond messagenpturnnew_AckAnvthingPromnthtol$newPrompt->getUuid,SnewPromnt->aetTitle0lSnewPromnt->aetContento$newPrompt->getTargeto,Suser->getUuid.SchanellsenclluidsCchaneGrouosuulas,public function deletedASkAnythinqPrompt SpromptUser suser): AskAnythingPrompt {...}oublic function reorderdUser Suserarray $promptUuids,D: void s..* Gnaram AckanuthinaPromnt Soromnt* Qreturn arcaularnau<string>. arrau<ctrina>i1 usage+ 1of 3edits J Accept File *++ 1 of 2 files →nnivate function aetReceiverimusiaskanvrhinaPromnt Snnomnt)• annavad-obiects // View null reauect (todav 12:17)=custom.log=laravel.log4 HS_local [jiminny@localhost]& console [PROD]# console [euyA console [STAGING]DGO0BCoachingFeedbackCoachUserin.php© Search.phpSo jiminny v021 A1 A18 V.2 Y6 ^182186SELECT ar.ig, ar.wid, ar.nedidatype, ar.status, a.tYRgER0M automated nenont neculte anJOIN automated_reports a ON a.ig = ar.cepert.idWHERE a.type = 'ask_jiminny'LIMIT 10;188 0190192194Spromot->aetUu 1982022101|211212213214215216217218219SELECT * FROM automated_reports where jd = 71;SCISCT * SPOM automated noresults where repertaid = 71;UPDATE automated_reports set playbook categories = NULL where id = 68SELECT * FROM automated report results where id = 275;Salel * rkum auromateSELECT * FROMorder by id desc:user_id = 143;select * fromSELECT 'automated_report_results'.* FROM 'automated_report_results"automated_report_results'."report_id' = 'automated_reports'.'idANDautomated_report_results'.'generated_at' IS NOT NULLIS NOT NULLAND JSON_CONTAINS( automated_reports . recipients, 143, '$."users"")SELECT * EPOM ucenc WHEPE id = 143• # anoun 29select * from crm_ configurations where id = 500;select * from users where name = 'Integration Account': # 1695SELECT * FROM social accounts WHERE sociable_id = 1695:select * from activities where crm_configuration id = 39and recording_ state = 'recorded' and duration > 60and status = 'completed' and actual start time >= '2025-12-01':SELECT * FROM activities WHERE uuid to bin('458cf915-6914-4000-b083-568763262956') = uuid:222.223)select * from leads›225SELET ROM BEÉVits WERE Le i C 5- 2 43515-e[PHONE]-ctS9Aa3219) = wute; 42003SELECT * FROM activities WHERESFLECT * EPOMSocket fail to connect to host:address=(host=localhost) (port=3306)(tvpe=primarv). Connection refusedhell"suppont Dally • In 20 m100% 5• Tue 19 May 14:34:34AskAnythingPromptServiceTestCascadeAsk Jiminny Report M+0 ..inate.*Collection in tests/Unit/Component/AskAnything/AskAnythingPromptServiceTest.php (1)Test compatibility issue: LoadCount on a collection of PHPUnit mocks would crash because it tries to call newQuerywithoutketaczonsnips on the uirst model, keposttory piacement avolded that decduse the test mocks the reposttory calentirelyLet me revert to the repository approach but add a clarifying comment, since the impact is minimal (2 small COUNT querieson the reorder endooint, not a full N+1):"AskAnvthinaPromotService.ohvAskAnythingRepository.php+7 -1Risks SummaryWhat loadCount does•Adds one extra query: SELECT ask anything prompt id, COUNT(*) FROM automated reports WHERE ask anything prompt_id IN (...) GROUP BY ask_anything_prompt_id• Sets automated reports count (raw int on each model in the returned collection.• No writes. no model state mutation bevond that attributelWill it modify existing behavior?Functionaliv no, pertormance-wise sliaht.v1. AskAnythingPromptService: :get() - needs the count. Beneficial.2ReorderAckAnvthinaPromntcReauest two call sites) — oniv uses nluck("wid') and escount) on the collection. Theextra COUNT query runs but the result is unused. Cost: 2 small grouped-COUNT queries per reorder reguest. Nonulntenelnhenwlntes3. JSON serialization risk - none, because every response path runs prompts through AskAnythingPromptDto. nevercorializec the model directly So antonatod conorte count doecn't loak into anv Apl recnonce4. save() after - automated reports count is not in sfillable and not a real DB column. Eloquent ignores it on save.No corruntion rick5. Subsequent relation queries — none affected. Counts are stored as a plain attribute, not a loaded relationWhy keot it in the revositorv (not the service)Tecte mock the renocitory entirelv with a fake Collection of mocked nromnte lf loadCount ic in the cervice it triec to callthey never reach loadcount and keeps the eager-load close to the query that produced the collection - which is adetensible renositorv concern (returnina data in a usable shane).The only "cost" is two unnecessary lightweight COUNT queries on the reorder endpoint, which is rarely hit and alreadydoes manv other queries — accentable trade-offG..l..kAnvthina/M.AskAnvthinaPromntService.ohn t7es/MAskAnvthinaRenositorv.ohnAsk anvthina (884-L)<> Code Claude Qnus 4.7 MediumReiect alllAccent alliWN Windsurf Toams 50-1UTF.8io 4 spaces...
|
58085
|
NULL
|
NULL
|
NULL
|
|
58089
|
2044
|
12
|
2026-05-19T11:34:36.987508+00:00
|
/Users/lukas/.screenpipe/data/data/2026-05-19/1779 /Users/lukas/.screenpipe/data/data/2026-05-19/1779190476987_m1.jpg...
|
PhpStorm
|
faVsco.js – AskAnythingPromptService.php
|
1
|
NULL
|
monitor_1
|
NULL
|
NULL
|
NULL
|
NULL
|
iTerm2• 0ShellEditViewSessionScriptsProfilesWind iTerm2• 0ShellEditViewSessionScriptsProfilesWindowHelp(allSupport Daily • in 26 m100% C4 8• Tue 19 May 14:34:36DOCKER• ₴1DEV (docker)Fixed 1 of 5690files in 71.757 seconds, 60.00 MBmemoryused₴82APP (docker)APP (docker)*3screenpipe"0 ₴4-zsh85What's next:Try Docker Debug for seamless, persistent debugging tools in any container or image + docker debug docker_lamp_1Learn moreat [URL_WITH_CREDENTIALS] ~/jiminny/app (JY-20676-delete-report-related-objects) $csfixdocker exec -it docker_lamp_1 ./vendor/bin/php-cs-fixer fix--config=.php-cs-fixer.dist.php -v --using-cache=no --diff...
|
NULL
|
-3292168597203004494
|
NULL
|
click
|
ocr
|
NULL
|
iTerm2• 0ShellEditViewSessionScriptsProfilesWind iTerm2• 0ShellEditViewSessionScriptsProfilesWindowHelp(allSupport Daily • in 26 m100% C4 8• Tue 19 May 14:34:36DOCKER• ₴1DEV (docker)Fixed 1 of 5690files in 71.757 seconds, 60.00 MBmemoryused₴82APP (docker)APP (docker)*3screenpipe"0 ₴4-zsh85What's next:Try Docker Debug for seamless, persistent debugging tools in any container or image + docker debug docker_lamp_1Learn moreat [URL_WITH_CREDENTIALS] ~/jiminny/app (JY-20676-delete-report-related-objects) $csfixdocker exec -it docker_lamp_1 ./vendor/bin/php-cs-fixer fix--config=.php-cs-fixer.dist.php -v --using-cache=no --diff...
|
58087
|
NULL
|
NULL
|
NULL
|
|
58090
|
2045
|
13
|
2026-05-19T11:34:40.732984+00:00
|
/Users/lukas/.screenpipe/data/data/2026-05-19/1779 /Users/lukas/.screenpipe/data/data/2026-05-19/1779190480732_m2.jpg...
|
PhpStorm
|
faVsco.js – AskAnythingRepository.php
|
1
|
NULL
|
monitor_2
|
NULL
|
NULL
|
NULL
|
NULL
|
Project: faVsco.js, menu
|
[{"role":"AXButton","text" [{"role":"AXButton","text":"Project: faVsco.js, menu","depth":5,"bounds":{"left":0.025930852,"top":0.019952115,"width":0.03856383,"height":0.025538707},"on_screen":true,"help_text":"~/jiminny/app","role_description":"button","is_enabled":true,"is_focused":false,"is_selected":false,"is_expanded":false}]...
|
8043719072324535154
|
-8628527368849355612
|
visual_change
|
hybrid
|
NULL
|
Project: faVsco.js, menu
PhpStormProiectViewNaviga Project: faVsco.js, menu
PhpStormProiectViewNavigateCodeLaravelRefactorlooIsWindowHelFV faVsco.js©EncryptionServiceProvider.php(c) EventServiceProvider nhnl© HubspotJournalServiceProvider.php© HubspotWebhookServiceProvider.php© JiminnyServiceProvider.php© PlanhatServiceProvider.php© ProphetHandlerServiceProvider.php© PusherServiceProvider.php© QueueLoaServiceProvider.php© QueueStatsdServiceProvider.php© ResponseMacroServiceProvider.pho© RouteServiceProvider.phpc) SsoServiceProvider.pho@ UtilServiceProvider.ohnC) ViewerGuardServiceProvider.oho> D Queuev RevositoriesDAIAutoScoringM Calendarv Merm© AccountRepository.php© ContactRepository.php© ContactRoleRepository.php© CrmConfigurationRepository.php© CrmEntityRepository.php© FieldDataRepository.php© FieldRepository.php© LayoutEntityRepository.php© LayoutRepository.php© OpportunityRepository.php© ProfileRepository.php© RecordTypeFieldValuesRepository.php@ StageRepositorv.php@ SvncBatchRepositorv.php> M Geogranhv© ActiveStreamsRepositorv.ohp© ActivitvCommentRepositorv.ohp© ActivitvLoaRepositorv.pho©ActivityMessageRepository.phpC) ActivitvMomentRenositorv.nhnl©ActivityProviderRepository.phpC) [EMAIL]) ActivitvShareRenositorv [EMAIL]) A:PromntRenositorv nhn(0 AckAnvthinaDonocitory nhn© AutomatedReportsRepository.php© CallImportRepositorv.phpiched 1 commit to oriain/IV.20676-delecustom.log= laravel.logA SF [jiminny@localhost] x4 HS_local [jiminny@localhost]& console [PROD]& console [EU]© AskAnythingPromptService.phportsservice lest.onpA console [STAGING]© CoachingFeedbackCoachUserln.phpTx: Autov© AskJiminnyReportsController.phg©) AskAny© Search.php8322103class AskAnythingRepository182public function findPromptsByUserAndTarget(User $user, AskAnythingPromptTarget $target): Collectior 183->where(static function (Squery) use (Suser, $userGroupId): void {...})operator talse)function (Builder $query) use (Starget) {...})'prompt id' ASC')186->getO188 0->map(function (UserAskAnythingPrompt SuserPrompt) {...}):// Remove those prompts that are hidden for the current usenSusers0wnedPromptsFiltered = Susers0wnedPrompts->filter(function (AskAnvthingPrompt $userPrompt192SdefaultNonChangedPrompts = AskAnythingPrompt::where('target', Starget)->whereDoesntrave('userPromots', Function ((Squerv) use Suser) ...).1196return SdefaultNonChangedPrompts->merge(Susers0wnedPromptsFiltered):Reriect198199$allPrompts = $defaultNonChangedPrompts->merge(Susers0wnedPromptsFiltered);201if (SallPrompts->isNotEmptyO) {$allPrompts->loadCount('automatedReports'):return SallPrompts:* doaram arrou<trouo› ssharebrouos User suserAskAnvthingPromotTarget Staraet218annav Schanellsensl221): AskAnythingPrompt {...}: @param array<User> $shareUsers* @param array<Group> $shareGroups—225Accept File &~ X Reiect File +* €So jiminny vaalbl8XL XbASELECT ar.id, ar.uuid, ar.mediatype, ar.status, a.typeFROM automated_report_results arJOIN automated_reports a ON a.id = ar.reportidWHERE a.type ='ask_jiminny'LIMIT 10;SELECT * FROM automated reports where id = 71;SELECT * FROM automated report results where report id = 71:UPDATE automated reports set playbook categories = NULL where id = 68SELECT * FROM automated report results where id = 275;SELECT * FROM automated_reports order by 1d desc;SELECT * FROMautomated_reportresults order by 1d desc:select * from activity_searches here user_id = 143;select * fromSELECTautomated report results.* FROM 'automated reportresultsiINNER JOIN automated_reportsautomated remort results', renort id' =automated reoorts'.'1diANDautomated_report_results.generated_at IS NOT NULLautomated_report_results.sent_at IS NOT NULLautomated renorts' 'team id = 1AND JSON_CONTAINS( automated_reports . recipients, 143, '$."users"')SELECT * FROM automated_reports where id = 67:SELECT * FROM automated_reports where id = 42;SELECT * FROM users WHERE id = 143; # group 28select * from teams where id = 3143;select * from crm_configurations where id = 500:select * from users where name = 'Integration Account': # 1695SELECT * FROM social accounts WHERE sociable id = 1695:select * from activities where crm_ configuration id = 39and recording state = 'recorded' and duration > 60and status = 'completed' and actual start time >= '2025-12-01':SELECT * FROM activities WHERE uuid to bin('458cf915-6914-4000-b083-568763262956') = uuid:select * from leads:SELECT * FROM activities WHERE uuid to binc'f43cf158-e60d-46e5-92f8-c4e0594a3219') = uuid: # 422003SELECT * FROM activities WHERE id IN (16.422003)•SELECT * FROM activities where status = 'failed':Socket fail to connect to host:address=(host=localhost) (port=3306)(tvpe=primarv). Connection refusedectc /I View null reauect (todav 12:17)hell"suppont Dally • In 20 m100% 5• Tue 19 May 14:34:40AskAnythingPromptServiceTestCascadeAsk Jiminny Report M+0 ..Searched use Illuminate.*Collection in tests/Unit/Component/AskAnything/AskAnythingPromptServiceTest.php (1)lest compatibility issue: loadcount on a collection or PHPUnit mocks would crash because it tries to call newouerywithoutRelationships() on the first model. Repository placement avoided that because the test mocks the repository calLet me revert to the repository approach but add a clarifying comment, since the impact is minimal (2 small COUNT querieson the reorder endooint. not atull N+inAskAnythingPromptService.php• AskAnythingRepository.php+7 -1Risks SummarvWhar loadcount coes•Adas one extra query: SELECT ask anything prompt 1d, COUNT(*) FROM automated reports WHERE ask anything prompt_id IN (...) GROUP BY ask_anything_prompt_id• Sets automated reports count (raw int) on each model in the returned collection• No writes, no model state mutation bevond that attributeWill it modify existing behavior?Functionally no. pertormance-wise slightly.1. AskAnythingPromptService::get() - needs the count. V Beneficial.2. ReorderAskAnythingPromptsRequest (two call sites) — only uses pluck('uuid') and ->count() on the collection. Theextra count query runs but the result is unused. cost: 2 small grouped-coUNt queries per reorder request. Nofunctional chance3. JSON serialization risk - none, because every response path runs prompts through AskAnythingPromptDto, neverserializes the model directly. So automated_reports_count doesn't leak into any API response.4. save) arter— automated_reports count is notin Stillable and not a real DB column. Eloquent ignores it on save.No corruntion risk5. Subsequent relation queries - none affected. Counts are stored as a plain attribute, not a loaded relationWhy keot it in the revositorv not the service)Tests mock the repository entirely with a fake Collection of mocked prompts. If loadCount is in the service, it tries to callnewQuervwithoutRelationshios. on the first PHPUnit mock and crashes. Putting it in the repository keeps unit tests clean(they never reach loadCount ) and keeps the eager-load close to the query that produced the collection - which is aThe only "cost" is two unnecessary lightweight COUNT queries on the reorder endpoint, which is rarely hit and alreadydoes manv other queries — accentable trade-off1 file with chandesaoo/Repositories/MAskAnvthinaRenositorv.ohn +7Ask anvthina (884-L)<> Code Claude Qnus 4.7 MediumView all* Reiect alliiAccent allW Windsurf Teamc1-1UTE.8Po 4 spaces...
|
NULL
|
NULL
|
NULL
|
NULL
|
|
58092
|
2044
|
13
|
2026-05-19T11:34:43.638435+00:00
|
/Users/lukas/.screenpipe/data/data/2026-05-19/1779 /Users/lukas/.screenpipe/data/data/2026-05-19/1779190483638_m1.jpg...
|
iTerm2
|
APP (docker)
|
1
|
NULL
|
monitor_1
|
NULL
|
NULL
|
NULL
|
NULL
|
iTerm2• 0ShellEditViewSessionScriptsProfilesWind iTerm2• 0ShellEditViewSessionScriptsProfilesWindowHelp(allSupport Daily • in 26 m100% C4 8• Tue 19 May 14:34:43DOCKER• ₴1DEV (docker)Fixed 1 of 5690files in 71.757 seconds, 60.00 MBmemoryused₴82APP (docker)APP (docker)181*3screenpipe"₴84-zsh85What's next:Try Docker Debug for seamless, persistent debugging tools in any container or image + docker debug docker_lamp_1Learn moreat [URL_WITH_CREDENTIALS] ~/jiminny/app (JY-20676-delete-report-related-objects) $csfixdocker exec -it docker_lamp_1 ./vendor/bin/php-cs-fixer fix--config=.php-cs-fixer.dist.php -v --using-cache=no --diff...
|
NULL
|
-5349105975851604379
|
NULL
|
click
|
ocr
|
NULL
|
iTerm2• 0ShellEditViewSessionScriptsProfilesWind iTerm2• 0ShellEditViewSessionScriptsProfilesWindowHelp(allSupport Daily • in 26 m100% C4 8• Tue 19 May 14:34:43DOCKER• ₴1DEV (docker)Fixed 1 of 5690files in 71.757 seconds, 60.00 MBmemoryused₴82APP (docker)APP (docker)181*3screenpipe"₴84-zsh85What's next:Try Docker Debug for seamless, persistent debugging tools in any container or image + docker debug docker_lamp_1Learn moreat [URL_WITH_CREDENTIALS] ~/jiminny/app (JY-20676-delete-report-related-objects) $csfixdocker exec -it docker_lamp_1 ./vendor/bin/php-cs-fixer fix--config=.php-cs-fixer.dist.php -v --using-cache=no --diff...
|
NULL
|
NULL
|
NULL
|
NULL
|
|
58091
|
2045
|
14
|
2026-05-19T11:34:45.831664+00:00
|
/Users/lukas/.screenpipe/data/data/2026-05-19/1779 /Users/lukas/.screenpipe/data/data/2026-05-19/1779190485831_m2.jpg...
|
iTerm2
|
APP (docker)
|
1
|
NULL
|
monitor_2
|
NULL
|
NULL
|
NULL
|
NULL
|
Last login: Mon May 18 09:17:28 on ttys007
Poetry Last login: Mon May 18 09:17:28 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 (pipedrive-sdk-poc) $ co master
error: Your local changes to the following files would be overwritten by checkout:
PIPEDRIVE_V2_MIGRATION_TICKETS.md
Please commit your changes or stash them before you switch branches.
Aborting
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (pipedrive-sdk-poc) $ git pull
remote: Enumerating objects: 1047, done.
remote: Counting objects: 100% (832/832), done.
remote: Compressing objects: 100% (298/298), done.
remote: Total 1047 (delta 634), reused 596 (delta 534), pack-reused 215 (from 3)
Receiving objects: 100% (1047/1047), 353.16 KiB | 1.56 MiB/s, done.
Resolving deltas: 100% (687/687), completed with 107 local objects.
From github.com:jiminny/app
907c54896c..34656c53ed pipedrive-sdk-poc -> origin/pipedrive-sdk-poc
03325ec50f..4e7078fd8b JY-18091-upgrade-to-php-8-5 -> origin/JY-18091-upgrade-to-php-8-5
e7d231e163..bc6a3fce6b JY-20725-handle-HS-search-rate-limit -> origin/JY-20725-handle-HS-search-rate-limit
* [new branch] JY-20749-user-can-view-recorded-meetings -> origin/JY-20749-user-can-view-recorded-meetings
98ca281a04..e0351be069 JY-20808-low-priority-indexing-queue -> origin/JY-20808-low-priority-indexing-queue
569abb5149..3906a9238a JY-20835-mcp-enable-users-to-get-a-list-of-deals-and-their-details -> origin/JY-20835-mcp-enable-users-to-get-a-list-of-deals-and-their-details
ad6c2a86e8..50eb6afba9 JY-20846-mcp-enable-the-ai-to-know-details-about-the-user -> origin/JY-20846-mcp-enable-the-ai-to-know-details-about-the-user
* [new branch] JY-20893-chunk-control-per-update-target -> origin/JY-20893-chunk-control-per-update-target
31c62924a5..cb4ebf0c36 master -> origin/master
Updating 907c54896c..34656c53ed
Fast-forward
PIPEDRIVE_V2_MIGRATION_TICKETS.md | 52 ++++++++++++++++++++++++++++++++++++++++++++++++++++
1 file changed, 52 insertions(+)
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (pipedrive-sdk-poc) $ co master
M .env.local
M config/logging.php
Switched to branch 'master'
Your branch is behind 'origin/master' by 31 commits, and can be fast-forwarded.
(use "git pull" to update your local branch)
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (master) $ git pull
Updating 31c62924a5..cb4ebf0c36
Fast-forward
app/Component/ES/Processor/Traits/SelectEntityListTrait.php | 20 ------
app/Services/Calendar/CalendarActivityService.php | 46 +++++++++++++
app/Services/Calendar/Command/MapActivityData.php | 106 +++-------------------------
docs/mcp/explorer/explorer.html | 104 +++++++++++++++++++++++++---
docs/mcp/explorer/explorer.template.html | 102 ++++++++++++++++++++++++---
docs/mcp/tools-list.json | 373 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++-------
docs/mcp/tools.md | 117 +++++++++++++++++++++++--------
tests/Unit/Component/ES/AsyncUpdateElasticSearchTest.php | 16 +----
tests/Unit/Component/ES/Listeners/UpdateMultipleTargetsListenerTest.php | 10 ---
tests/Unit/Component/ES/Listeners/UpdateSingleTargetListenerTest.php | 6 --
tests/Unit/Component/ES/Processor/TargetEntitiesSelectorTest.php | 9 ---
tests/Unit/Component/ES/Processor/Traits/SelectEntityListTraitTest.php | 15 ++--
tests/Unit/Component/ES/UpdateProcessManagerTest.php | 2 -
tests/Unit/Services/Calendar/CalendarActivityServiceTest.php | 150 ++++++++++++++++++++++++++++++++++++++--
tests/Unit/Services/Calendar/Command/MapActivityDataTest.php | 78 ++-------------------
15 files changed, 832 insertions(+), 322 deletions(-)
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (master) $ co -b JY-20613-allow-owner-role-on-team-setup
Switched to a new branch 'JY-20613-allow-owner-role-on-team-setup'
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20613-allow-owner-role-on-team-setup) $ csfix
docker exec -it docker_lamp_1 ./vendor/bin/php-cs-fixer fix --config=.php-cs-fixer.dist.php -v --using-cache=no --diff
PHP CS Fixer 3.87.1 Alexander by Fabien Potencier, Dariusz Ruminski and contributors.
PHP runtime: 8.3.30
Running 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!
Loaded config default from ".php-cs-fixer.dist.php".
5682/5682 [▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓] 100%
Fixed 0 of 5682 files in 56.978 seconds, 67.00 MB memory used
What's next:
Try Docker Debug for seamless, persistent debugging tools in any container or image → docker debug docker_lamp_1
Learn more at [URL_WITH_CREDENTIALS] ~/jiminny/app (JY-20613-allow-owner-role-on-team-setup) $ csfix
docker exec -it docker_lamp_1 ./vendor/bin/php-cs-fixer fix --config=.php-cs-fixer.dist.php -v --using-cache=no --diff
PHP CS Fixer 3.87.1 Alexander by Fabien Potencier, Dariusz Ruminski and contributors.
PHP runtime: 8.3.30
Running 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!
Loaded config default from ".php-cs-fixer.dist.php".
5682/5682 [▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓] 100%
Fixed 0 of 5682 files in 49.910 seconds, 60.00 MB memory used
What's next:
Try Docker Debug for seamless, persistent debugging tools in any container or image → docker debug docker_lamp_1
Learn more at [URL_WITH_CREDENTIALS] ~/jiminny/app (JY-20613-allow-owner-role-on-team-setup) $ git pull
remote: Enumerating objects: 248, done.
remote: Counting objects: 100% (128/128), done.
remote: Compressing objects: 100% (23/23), done.
remote: Total 59 (delta 43), reused 44 (delta 33), pack-reused 0 (from 0)
Unpacking objects: 100% (59/59), 10.48 KiB | 228.00 KiB/s, done.
From github.com:jiminny/app
b7df560451..190239dfd4 JY-20613-allow-owner-role-on-team-setup -> origin/JY-20613-allow-owner-role-on-team-setup
e0351be069..d94a285ae7 JY-20808-low-priority-indexing-queue -> origin/JY-20808-low-priority-indexing-queue
* [new branch] JY-20920-fix-participant-matcher -> origin/JY-20920-fix-participant-matcher
cb4ebf0c36..90bca4e4b2 master -> origin/master
Merge made by the 'ort' strategy.
app/Component/ES/ChunkSize.php | 54 +++++++++++++++++++++++++++
app/Component/ES/Processor/DTOs/SelectionList.php | 4 +-
app/Component/ES/Processor/TargetEntitiesSelector.php | 19 ++++++----
app/Http/Middleware/McpTierMiddleware.php | 27 +++-----------
app/Mcp/Servers/JiminnyServer.php | 2 +
app/Mcp/Tools/GetMeTool.php | 157 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
app/Models/Feature/FeatureEnum.php | 1 +
database/migrations/2026_05_13_124153_create_mcp_feature_flag.php | 25 +++++++++++++
front-end/src/components/Settings/Kiosk/modals/EditTeamModal/EditTeamModal.vue | 52 ++++++++++++++++++--------
front-end/src/components/Settings/Kiosk/modals/EditTeamModal/__tests__/EditTeamModal.spec.js | 14 +++++++
tests/Feature/Mcp/GetMeToolFeatureTest.php | 140 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
tests/Feature/Mcp/ListCallsToolFeatureTest.php | 2 +-
tests/Feature/Mcp/McpTestHelpersTrait.php | 19 +++++++++-
tests/Unit/Component/ES/ChunkSizeTest.php | 50 +++++++++++++++++++++++++
tests/Unit/Component/ES/Processor/DTOs/SelectionListTest.php | 27 ++++++++++----
tests/Unit/Component/ES/Processor/TargetEntitiesSelectorTest.php | 39 +++++++++++---------
16 files changed, 557 insertions(+), 75 deletions(-)
create mode 100644 app/Component/ES/ChunkSize.php
create mode 100644 app/Mcp/Tools/GetMeTool.php
create mode 100644 database/migrations/2026_05_13_124153_create_mcp_feature_flag.php
create mode 100644 tests/Feature/Mcp/GetMeToolFeatureTest.php
create mode 100644 tests/Unit/Component/ES/ChunkSizeTest.php
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20613-allow-owner-role-on-team-setup) $ git push
Enumerating objects: 40, done.
Counting objects: 100% (34/34), done.
Delta compression using up to 8 threads
Compressing objects: 100% (18/18), done.
Writing objects: 100% (18/18), 1.58 KiB | 1.58 MiB/s, done.
Total 18 (delta 15), reused 0 (delta 0), pack-reused 0
remote: Resolving deltas: 100% (15/15), completed with 13 local objects.
To github.com:jiminny/app.git
190239dfd4..ec1b261264 JY-20613-allow-owner-role-on-team-setup -> JY-20613-allow-owner-role-on-team-setup
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20613-allow-owner-role-on-team-setup) $ gbr
* JY-20613-allow-owner-role-on-team-setup
pipedrive-sdk-poc
master
JY-20903-update_activity-stage-on-opportunity-change
JY-20904-fix-update-es-on-activity-command
JY-20891-improve-sms-text-relays
JY-20725-handle-HS-search-rate-limit
JY-20818-move-AJ-reports-to-separated-datadog-metric
JY-20773-fix-automated-reports-user-pilot-tracking
JY-20157-AJ-report-not-send-notification
JY-20508-notify-before-AJ-report-expiration
JY-20372-ai-reports-promotion-pages
JY-20352-sync-opportunities-without-a-local-owner-user-id-is-null
JY-20738-debug-AJ-tracking-UP
a
JY-18909-automated-reports-ask-jiminny
JY-20692-fix-integration-app-[API_KEY]
JY-20553-debug-crm-sync-delays
JY-20698-fix-SF-activity-types-on-new-playbook
JY-20543-AJ-report-tracking
JY-20384-handle-auto-sync-with-no-access-to-event-type
JY-20458-ask-jiminny-user-definitions
JY-19666-fix-import-contacts-account-association
JY-19666-HS-import-contacts-and-accounts-batch-job
JY-20458-Ask-Jiminny-Reports
JY-20200-batch-update-CRM-objects-Salesforce
JY-19666-HS-webhooks-add-contact-and-company
JY-20348-trigger-setup-DI-layout-on-team-creation
JY-20326-refactor-info-message-in-command
JY-20317-fix-auto-log-delay-issue-on-all-channels-disabled
JY-20312-remove-on-update-change-last-synced-at-crm-configurations
JY-20306-SF-skip-auto-sync-for-task-based-playbook
JY-20192-remove-deleted-team-from-saved-search-filters
JY-20197-import-opportunity-batch-job
JY-20293-enable-status-field-for-pipedrive-deals
JY-20191-remove-commands-interactive-prompts
JY-20118-change-default-sync-strategy
JY-20183-add-cache-on-auto-log-delay
JY-20197-add-import-opportunity-batch-job
20118-hs-opportunity-make-webhook-strategy-default
JY-20118-make-default-hs-opportunity-sync-strategy-webhook-based
JY-20196-handle-opportunity-without-note
JY-20118-improve-opportunity-import
JY-20189-handle-activity-search-on-deleted-groups
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20613-allow-owner-role-on-team-setup) $ co JY-20725-handle-HS-search-rate-limit
M .env.local
M config/logging.php
Switched to branch 'JY-20725-handle-HS-search-rate-limit'
Your branch is behind 'origin/JY-20725-handle-HS-search-rate-limit' by 439 commits, and can be fast-forwarded.
(use "git pull" to update your local branch)
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20725-handle-HS-search-rate-limit) $ git pull
Updating 0f3e438941..bc6a3fce6b
Fast-forward
.gitignore | 3 +-
.windsurfrules | 168 ++---
CLAUDE.md | 1 +
app/Component/ActivityAnalytics/Service/CalculateTalkTimeOffsetsFromTranscription.php | 24 +-
app/Component/AiActivityType/Services/AiActivityTypeEligibilityChecker.php | 28 +-
app/Component/AiAutomation/Actions/PrepareUpdateDtoAction.php | 32 +-
app/Component/AiAutomation/Services/CrmFillingEligibilityChecker.php | 47 ++
app/Component/AiAutomation/TestCrmAiPromptService.php | 14 +
app/Component/AiCallScoring/Services/AiCallScoringEligibilityChecker.php | 9 +
app/Component/ES/ElasticSearchDocumentPartialUpdater.php | 13 +-
app/Component/ES/ElasticSearchWorkerManager.php | 86 ---
app/Component/ES/Processor/Actions/LoadDocumentsAction.php | 80 +--
app/Component/ES/Processor/EntityQueryBuilder.php | 12 +-
app/Component/ES/Processor/TargetEntitiesSelector.php | 2 +-
app/Component/ES/Processor/Traits/SkipActivityTrait.php | 25 -
app/Component/ES/Repositories/EsResetActivityRepository.php | 11 +-
app/Component/ES/Worker/ActivityWorker.php | 73 --
app/Component/ES/Worker/EntityWorker.php | 44 --
app/Component/ES/Worker/WorkerAmount.php | 60 --
app/Component/ES/Worker/WorkerInterface.php | 15 -
app/Component/ElasticSearch/Contract/Searchable.php | 4 +
app/Component/Encoding/Job/AnalyzeTrackChannelsJob.php | 20 +-
app/Component/Encoding/Service/GenerateSpeechFromSilenceService.php | 85 ++-
app/Component/FFMpeg/Services/GetSpeechIntervalsService.php | 18 +-
app/Component/LanguageDetection/Services/FindSpeechTimeService.php | 22 +-
app/Component/Nudge/Job/ProcessOrganisationImmediateNudgesJob.php | 218 +++++-
app/Component/ParagraphBreaker/Services/TranscriptionParagraphsService.php | 4 +
app/Component/ParticipantSpeech/Services/ParticipantSpeechesCreator.php | 33 +
app/Component/ParticipantSpeech/Services/ParticipantSpeechesDeleter.php | 15 +
app/Component/ParticipantSpeech/Services/ParticipantSpeechesProvider.php | 51 +-
app/Component/ParticipantSpeech/Services/ParticipantSpeechesUploader.php | 36 +
app/Component/ProphetAi/Exceptions/InsufficientTranscriptException.php | 11 +
app/Component/Transcription/DTO/Http/Transcription/AssemblyAI/AssemblyAI/NoAssemblyIdException.php | 11 +
app/Component/Transcription/DTO/Http/Transcription/AssemblyAI/AssemblyAI/SuccessfulResponse.php | 6 +
app/Component/Transcription/DTO/Http/Transcription/TranscriptionIsNotCorrectFormatException.php | 11 +
app/Component/Transcription/Diarization/Services/GetNormalizedParticipantSpeechesService.php | 23 +-
app/Component/Transcription/Diarization/Source/MeetingBotSource.php | 16 +-
app/Component/Transcription/TranscriptionProcessor/TranscriptionProcessor.php | 3 +
app/Console/Commands/Activities/ActivityHardDeleteCommand.php | 4 +-
app/Console/Commands/Activities/Copy.php | 2 +
app/Console/Commands/Activities/SetupIntegration/TwilioSetS3RecordingCredentialsCommand.php | 119 ++++
app/Console/Commands/Activities/UpdateActivityElasticSearchDocumentCommand.php | 10 +-
app/Console/Commands/Crm/BackfillOpportunityUserFromAccountCommand.php | 126 ++++
app/Console/Commands/Elasticsearch/AsyncUpdateEsActivities.php | 19 -
app/Console/Commands/Elasticsearch/AsyncUpdateEsEntities.php | 50 +-
app/Console/Commands/Elasticsearch/ResetAsyncElasticSearchCommand.php | 30 +-
app/Console/Commands/GeckoExport/GeckoExportParticipantSpeechesCommand.php | 14 +-
app/Console/Commands/IssueMcpTokenCommand.php | 84 +++
app/Console/Commands/JiminnyDebugCommand.php | 7 +-
app/Console/Commands/Tracks/CleanupActivityTracksCommand.php | 2 +-
app/Console/Kernel.php | 6 +-
app/Contracts/Services/Calendar/CalendarTrait.php | 80 ++-
app/Events/AutomatedReports/AutomatedReportGenerated.php | 3 +
app/Http/Controllers/API/AiCallScoring/AiScorecardController.php | 7 +-
app/Http/Controllers/API/TeamAiAutomationController.php | 8 +
app/Http/Controllers/CustomerApi/CustomerApiController.php | 4 +-
app/Http/Controllers/Kiosk/ActivityController.php | 58 +-
app/Http/Controllers/Settings/PlaybookController.php | 15 +-
app/Http/Kernel.php | 23 +
app/Http/Middleware/McpAuditMiddleware.php | 156 ++++
app/Http/Middleware/McpTierMiddleware.php | 54 ++
app/Http/Requests/API/V2/ZapierUploadActivityRequest.php | 28 +-
app/Jobs/Activity/Import/ImportTwilioVideoSpeechesJob.php | 25 +-
app/Jobs/Activity/Import/IsActivityReadyForProcessingJob.php | 10 +-
app/Jobs/Calendar/SetupCalendarSync.php | 21 +-
app/Jobs/ImportRemoteTrackJob.php | 96 ++-
app/Jobs/Mailbox/EmailTextRelay.php | 15 +-
app/Mcp/Contracts/McpCallRepositoryInterface.php | 30 +
app/Mcp/DTO/ListCallsFilters.php | 29 +
app/Mcp/Errors/McpError.php | 123 ++++
app/Mcp/Repositories/McpActivityHydrator.php | 145 ++++
app/Mcp/Repositories/McpCallRepository.php | 84 +++
app/Mcp/Repositories/McpElasticCallRepository.php | 171 +++++
app/Mcp/Servers/JiminnyServer.php | 38 +
app/Mcp/Tools/ListCallsTool.php | 205 ++++++
app/Models/Activity.php | 10 +-
app/Models/Activity/Transcription.php | 17 +-
app/Models/ElasticSearch/OpportunityElasticSearchTrait.php | 5 +
app/Models/Participant.php | 1 +
app/Providers/AppServiceProvider.php | 22 +
app/Repositories/Crm/ContactRepository.php | 69 +-
app/Repositories/ParticipantSpeechRepository.php | 13 +-
app/Services/Activity/ParticipantsService.php | 19 +-
app/Services/Activity/Twilio/S3RecordingCredentialsService.php | 82 +++
app/Services/ActivityService.php | 21 +-
app/Services/Calendar/CalendarActivityService.php | 46 ++
app/Services/Calendar/Command/ImportParticipants.php | 1 +
app/Services/Calendar/Command/MapActivityData.php | 106 +--
app/Services/Calendar/GoogleCalendarService.php | 12 +-
app/Services/Crm/Close/Processor/OpportunityProcessor.php | 2 +-
app/Services/Crm/Close/Service.php | 22 +-
app/Services/Crm/Copper/Service.php | 12 +-
app/Services/Crm/Hubspot/Service.php | 154 +++-
app/Services/Crm/Hubspot/ServiceTraits/OpportunitySyncTrait.php | 88 ++-
app/Services/Crm/IntegrationApp/ServiceTraits/SyncCrmEntitiesTrait.php | 22 +-
app/Services/Crm/Pipedrive/Service.php | 17 +-
app/Services/Crm/Salesforce/Service.php | 42 +-
app/Services/Mail/Office/EmailApiClient.php | 129 +---
app/Services/RecallAI/Commands/ScheduleBotCommand.php | 39 +-
app/Services/RecallAI/RecallAIService.php | 22 +-
composer.json | 3 +-
composer.lock | 87 ++-
config/mcp.php | 23 +
database/migrations/2026_04_30_120000_create_mcp_audit_log_table.php | 36 +
docs/mcp/explorer/explorer.html | 697 ++++++++++++++++++
docs/mcp/explorer/explorer.template.html | 697 ++++++++++++++++++
docs/mcp/explorer/generate.js | 215 ++++++
docs/mcp/explorer/tool-explorer-meta.json | 11 +
docs/mcp/tools-list.json | 2536 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
docs/mcp/tools.md | 621 ++++++++++++++++
front-end/package.json | 4 +-
front-end/src/components/Settings/OrgSettings/AiAutomation/CrmFilling/TemplateFieldForm.vue | 28 +-
front-end/src/components/Settings/OrgSettings/Playbooks/AddEditPlaybook.vue | 10 +
front-end/src/components/playback/comments/ActivityComment.less | 10 +-
front-end/src/components/shared/PromptTester/PromptTester.vue | 12 +-
front-end/src/components/shared/__tests__/PromptTester.spec.js | 35 +
front-end/src/components/shared/modals/EntityPickerModal/__tests__/useEntitiesCache.spec.ts | 37 +
front-end/src/components/shared/modals/EntityPickerModal/useEntitiesCache.ts | 9 +
front-end/yarn.lock | 16 +-
phpstan-baseline.neon | 50 --
routes/api.php | 11 +
sonar-project.properties | 91 ++-
tests/Feature/Component/Nudge/ProcessOrganisationImmediateNudgesJobTest.php | 534 ++++++++++++++
tests/Feature/Jobs/ImportRemoteTrackJobTest.php | 283 +++++++-
tests/Feature/Mcp/IssueMcpTokenCommandTest.php | 53 ++
tests/Feature/Mcp/ListCallsToolElasticFeatureTest.php | 155 ++++
tests/Feature/Mcp/ListCallsToolFeatureTest.php | 352 ++++++++++
tests/Feature/Mcp/McpTestHelpersTrait.php | 77 ++
tests/Feature/Services/Team/TeamDeleteHandlers/Retention/RetentionRepositoryHandlerTest.php | 1 +
tests/Stubs/SentryStub.php | 18 +
tests/Unit/Component/ActivityAnalytics/Service/CalculateTalkTimeOffsetFromTranscriptionTest.php | 28 +-
tests/Unit/Component/AiActivityType/Services/AiActivityTypeEligibilityCheckerTest.php | 103 ++-
tests/Unit/Component/AiAutomation/Actions/PrepareUpdateDtoActionTest.php | 91 +++
tests/Unit/Component/AiAutomation/Services/CrmFillingEligibilityCheckerTest.php | 124 ++++
tests/Unit/Component/AiAutomation/TestCrmAiPromptServiceTest.php | 67 +-
tests/Unit/Component/AiCallScoring/Services/AiCallScoringEligibilityCheckerTest.php | 55 ++
tests/Unit/Component/ES/ElasticSearchWorkerManagerTest.php | 135 ----
tests/Unit/Component/ES/Processor/Actions/LoadDocumentsActionTest.php | 220 ++++++
tests/Unit/Component/ES/Processor/EntityQueryBuilderTest.php | 21 +-
tests/Unit/Component/ES/Processor/Traits/SkipActivityTraitTest.php | 51 --
tests/Unit/Component/ES/Worker/ActivityWorkerTest.php | 174 -----
tests/Unit/Component/ES/Worker/EntityWorkerTest.php | 97 ---
tests/Unit/Component/ES/Worker/WorkerAmountTest.php | 116 ---
tests/Unit/Component/Encoding/Job/AnalyzeTrackChannelsJobTest.php | 52 +-
tests/Unit/Component/Encoding/Service/GenerateSpeechFromSilenceServiceTest.php | 171 ++---
tests/Unit/Component/FFMpeg/Services/GetSpeechIntervalsTest.php | 36 +-
tests/Unit/Component/LanguageDetection/Services/FindSpeechTimeServiceTest.php | 20 +-
tests/Unit/Component/MobileSettings/MobileSettingsControllerTest.php | 5 +-
tests/Unit/Component/ParticipantSpeech/Services/ParticipantSpeechesCreatorTest.php | 75 ++
tests/Unit/Component/ParticipantSpeech/Services/ParticipantSpeechesDeleterTest.php | 63 ++
tests/Unit/Component/ParticipantSpeech/Services/ParticipantSpeechesProviderTest.php | 134 ++++
tests/Unit/Component/ParticipantSpeech/Services/ParticipantSpeechesUploaderTest.php | 57 ++
tests/Unit/Component/Transcription/Diarization/Services/GetNormalizedParticipantSpeechesServiceTest.php | 51 +-
tests/Unit/Component/Transcription/Diarization/Source/MeetingBotSourceTest.php | 29 +-
tests/Unit/Contracts/Services/Calendar/CalendarTraitTest.php | 58 +-
tests/Unit/Http/Controllers/Kiosk/ActivityControllerTest.php | 159 +++++
tests/Unit/Jobs/Activity/Import/ImportTwilioVideoSpeechesJobTest.php | 22 +-
tests/Unit/Jobs/Activity/Import/IsActivityReadyForProcessingJobTest.php | 26 +-
tests/Unit/Jobs/Calendar/SetupCalendarSyncTest.php | 25 -
tests/Unit/Services/Activity/ParticipantsServiceTest.php | 12 +-
tests/Unit/Services/Activity/Twilio/S3RecordingCredentialsServiceTest.php | 180 +++++
tests/Unit/Services/ActivityServiceTest.php | 132 ++++
tests/Unit/Services/Calendar/CalendarActivityServiceTest.php | 150 +++-
tests/Unit/Services/Calendar/Command/ImportParticipantsTest.php | 6 +-
tests/Unit/Services/Calendar/Command/MapActivityDataTest.php | 78 +-
tests/Unit/Services/Calendar/GoogleCalendarServiceTest.php | 116 +++
tests/Unit/Services/Crm/Close/ServiceTest.php | 165 +++++
tests/Unit/Services/Crm/Hubspot/ServiceTest.php | 272 ++++++-
tests/Unit/Services/Crm/Hubspot/ServiceTraits/OpportunitySyncTest.php | 25 +-
tests/Unit/Services/Crm/Hubspot/ServiceTraits/OpportunitySyncTraitMatchActivitiesTest.php | 3 +-
tests/Unit/Services/Crm/IntegrationApp/ServiceTraits/SyncCrmEntitiesTraitOpportunitiesTest.php | 40 ++
tests/Unit/Services/Crm/Pipedrive/ImportOpportunityMatchActivitiesTest.php | 2 +
tests/Unit/Services/Crm/Salesforce/ServiceTest.php | 139 ++++
tests/Unit/Services/Mail/Office/EmailApiClientTest.php | 195 ++---
tests/Unit/Services/RecallAI/RecallAIServiceTest.php | 24 +-
175 files changed, 12562 insertions(+), 2162 deletions(-)
create mode 120000 CLAUDE.md
create mode 100644 app/Component/AiAutomation/Services/CrmFillingEligibilityChecker.php
delete mode 100644 app/Component/ES/ElasticSearchWorkerManager.php
delete mode 100644 app/Component/ES/Processor/Traits/SkipActivityTrait.php
delete mode 100644 app/Component/ES/Worker/ActivityWorker.php
delete mode 100644 app/Component/ES/Worker/EntityWorker.php
delete mode 100644 app/Component/ES/Worker/WorkerAmount.php
delete mode 100644 app/Component/ES/Worker/WorkerInterface.php
create mode 100644 app/Component/ProphetAi/Exceptions/InsufficientTranscriptException.php
create mode 100644 app/Component/Transcription/DTO/Http/Transcription/AssemblyAI/AssemblyAI/NoAssemblyIdException.php
create mode 100644 app/Component/Transcription/DTO/Http/Transcription/TranscriptionIsNotCorrectFormatException.php
create mode 100644 app/Console/Commands/Activities/SetupIntegration/TwilioSetS3RecordingCredentialsCommand.php
create mode 100644 app/Console/Commands/Crm/BackfillOpportunityUserFromAccountCommand.php
delete mode 100644 app/Console/Commands/Elasticsearch/AsyncUpdateEsActivities.php
create mode 100644 app/Console/Commands/IssueMcpTokenCommand.php
create mode 100644 app/Http/Middleware/McpAuditMiddleware.php
create mode 100644 app/Http/Middleware/McpTierMiddleware.php
create mode 100644 app/Mcp/Contracts/McpCallRepositoryInterface.php
create mode 100644 app/Mcp/DTO/ListCallsFilters.php
create mode 100644 app/Mcp/Errors/McpError.php
create mode 100644 app/Mcp/Repositories/McpActivityHydrator.php
create mode 100644 app/Mcp/Repositories/McpCallRepository.php
create mode 100644 app/Mcp/Repositories/McpElasticCallRepository.php
create mode 100644 app/Mcp/Servers/JiminnyServer.php
create mode 100644 app/Mcp/Tools/ListCallsTool.php
create mode 100644 app/Services/Activity/Twilio/S3RecordingCredentialsService.php
create mode 100644 config/mcp.php
create mode 100644 database/migrations/2026_04_30_120000_create_mcp_audit_log_table.php
create mode 100644 docs/mcp/explorer/explorer.html
create mode 100644 docs/mcp/explorer/explorer.template.html
create mode 100644 docs/mcp/explorer/generate.js
create mode 100644 docs/mcp/explorer/tool-explorer-meta.json
create mode 100644 docs/mcp/tools-list.json
create mode 100644 docs/mcp/tools.md
create mode 100644 front-end/src/components/shared/modals/EntityPickerModal/__tests__/useEntitiesCache.spec.ts
create mode 100644 tests/Feature/Component/Nudge/ProcessOrganisationImmediateNudgesJobTest.php
create mode 100644 tests/Feature/Mcp/IssueMcpTokenCommandTest.php
create mode 100644 tests/Feature/Mcp/ListCallsToolElasticFeatureTest.php
create mode 100644 tests/Feature/Mcp/ListCallsToolFeatureTest.php
create mode 100644 tests/Feature/Mcp/McpTestHelpersTrait.php
create mode 100644 tests/Stubs/SentryStub.php
create mode 100644 tests/Unit/Component/AiAutomation/Services/CrmFillingEligibilityCheckerTest.php
delete mode 100644 tests/Unit/Component/ES/ElasticSearchWorkerManagerTest.php
create mode 100644 tests/Unit/Component/ES/Processor/Actions/LoadDocumentsActionTest.php
delete mode 100644 tests/Unit/Component/ES/Processor/Traits/SkipActivityTraitTest.php
delete mode 100644 tests/Unit/Component/ES/Worker/ActivityWorkerTest.php
delete mode 100644 tests/Unit/Component/ES/Worker/EntityWorkerTest.php
delete mode 100644 tests/Unit/Component/ES/Worker/WorkerAmountTest.php
create mode 100644 tests/Unit/Component/ParticipantSpeech/Services/ParticipantSpeechesCreatorTest.php
create mode 100644 tests/Unit/Http/Controllers/Kiosk/ActivityControllerTest.php
create mode 100644 tests/Unit/Services/Activity/Twilio/S3RecordingCredentialsServiceTest.php
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20725-handle-HS-search-rate-limit) $ git status
On branch master
Your branch is behind 'origin/master' by 114 commits, and can be fast-forwarded.
(use "git pull" to update your local branch)
Changes not staged for commit:
(use "git add <file>..." to update what will be committed)
(use "git restore <file>..." to discard changes in working directory)
modified: .env.local
modified: app/Component/SCIM/Constants.php
modified: app/Component/SCIM/ScimProvisioning.php
modified: app/Component/Twilio/Conference/ConferenceManager/SoftPhoneManager.php
modified: app/Console/Commands/JiminnyDebugCommand.php
modified: app/DTO/SCIM/AAD/Request/CoreUserRequest.php
modified: app/DTO/SCIM/AAD/Response/CoreUser.php
modified: app/Services/Telephony/TextMessagingService.php
modified: config/logging.php
Untracked files:
(use "git add <file>..." to include in what will be committed)
.env.nikilocal
.env.other
WEBHOOK_FILTERING_IMPLEMENTATION.md
app/Component/SCIM/Mutators/Attributes/User/RoleAttr.php
app/Console/Commands/Crm/Hubspot/SimulateWebhooksCommand.php
app/Console/Commands/Reports/CreateMockAskJiminnyReportResultCommand.php
app/Rules/ListenerRoleCannotHaveAdminOrManagerPermissionRule.php
ids.txt
public/favicon.ico
raw_sql_query.sql
tests/Unit/Component/SCIM/Mutators/Attributes/User/RoleAttrTest.php
tests/Unit/Policies/CanAccessAiReportsTest.php
tests/Unit/Rules/ListenerRoleCannotHaveAdminOrManagerPermissionRuleTest.php
no changes added to commit (use "git add" and/or "git commit -a")
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (master) $ git pull
remote: Enumerating objects: 306, done.
remote: Counting objects: 100% (299/299), done.
remote: Compressing objects: 100% (183/183), done.
remote: Total 306 (delta 213), reused 171 (delta 116), pack-reused 7 (from 1)
Receiving objects: 100% (306/306), 80.12 KiB | 1000.00 KiB/s, done.
Resolving deltas: 100% (213/213), completed with 53 local objects.
From github.com:jiminny/app
90bca4e4b2..5604af40cf master -> origin/master
4e7078fd8b..0b8343d179 JY-18091-upgrade-to-php-8-5 -> origin/JY-18091-upgrade-to-php-8-5
098eeaa087..d5a447e492 JY-20613-allow-owner-role-on-team-setup -> origin/JY-20613-allow-owner-role-on-team-setup
c3a76ace91..af65249d0f JY-20749-user-can-view-recorded-meetings -> origin/JY-20749-user-can-view-recorded-meetings
d94a285ae7..7ce96cb5fe JY-20808-low-priority-indexing-queue -> origin/JY-20808-low-priority-indexing-queue
* [new branch] JY-20842-remove-partial-updater -> origin/JY-20842-remove-partial-updater
* [new branch] JY-20920-fix-participant-flip -> origin/JY-20920-fix-participant-flip
* [new branch] secfix/npm-20260519 -> origin/secfix/npm-20260519
Updating cb4ebf0c36..5604af40cf
Fast-forward
app/Component/ES/ChunkSize.php | 54 +++++++++++++++++++
app/Component/ES/Processor/DTOs/SelectionList.php | 4 +-
app/Component/ES/Processor/TargetEntitiesSelector.php | 19 ++++---
app/Component/MeetingBot/Service/ParticipantMatcher.php | 46 ++++++++++++----
app/Exceptions/RateLimitException.php | 19 ++++++-
app/Http/Middleware/McpTierMiddleware.php | 27 ++--------
app/Jobs/Crm/MatchActivityCrmData.php | 47 ++++++++++++----
app/Jobs/Middleware/HandleHubspotRateLimit.php | 42 +++++++++++++++
app/Mcp/Servers/JiminnyServer.php | 2 +
app/Mcp/Tools/GetMeTool.php | 157 +++++++++++++++++++++++++++++++++++++++++++++++++++++
app/Models/Feature/FeatureEnum.php | 1 +
app/Services/Activity/HubSpot/ProviderResolver.php | 4 +-
app/Services/Activity/HubSpot/ProviderResolverInterface.php | 2 +-
app/Services/Activity/HubSpot/Providers/Provider.php | 2 +-
app/Services/Activity/HubSpot/Providers/ProviderKixie.php | 2 +-
app/Services/Activity/HubSpot/Providers/ProviderOrum.php | 2 +-
app/Services/Activity/HubSpot/Providers/ProviderTwilio.php | 2 +-
app/Services/Activity/HubSpot/Providers/ProviderTwilioFlex.php | 5 +-
app/Services/Activity/HubSpot/Service.php | 97 +++++++++++++++++++++++++++------
app/Services/Crm/Hubspot/Client.php | 132 +++++++++++++++++++++++++++++++++++++++++++++
app/Services/Crm/Hubspot/HubspotClientInterface.php | 15 ++++++
app/Services/Crm/Hubspot/Pagination/HubspotPaginationService.php | 21 ++++----
app/Services/Crm/Hubspot/Pagination/PaginationState.php | 2 +-
database/migrations/2026_05_13_124153_create_mcp_feature_flag.php | 25 +++++++++
tests/Feature/Mcp/GetMeToolFeatureTest.php | 140 +++++++++++++++++++++++++++++++++++++++++++++++
tests/Feature/Mcp/ListCallsToolFeatureTest.php | 2 +-
tests/Feature/Mcp/McpTestHelpersTrait.php | 19 ++++++-
tests/Unit/Component/ES/ChunkSizeTest.php | 50 +++++++++++++++++
tests/Unit/Component/ES/Processor/DTOs/SelectionListTest.php | 27 +++++++---
tests/Unit/Component/ES/Processor/TargetEntitiesSelectorTest.php | 39 ++++++++------
tests/Unit/Component/MeetingBot/Service/ParticipantMatcherTest.php | 68 ++++++++++++++++++++++-
tests/Unit/Exceptions/RateLimitExceptionTest.php | 56 +++++++++++++++++++
tests/Unit/Jobs/Crm/MatchActivityCrmDataTest.php | 8 +--
tests/Unit/Jobs/Middleware/HandleHubspotRateLimitTest.php | 151 +++++++++++++++++++++++++++++++++++++++++++++++++++
tests/Unit/Services/Activity/HubSpot/ServiceTest.php | 109 +++++++++++++++++++++++++++++++++++++
tests/Unit/Services/Crm/Hubspot/ClientTest.php | 250 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
tests/Unit/Services/Crm/Hubspot/Pagination/HubspotPaginationServiceTest.php | 283 +++++++++++++++++++++---------------------------------------------------------------------------
37 files changed, 1587 insertions(+), 344 deletions(-)
create mode 100644 app/Component/ES/ChunkSize.php
create mode 100644 app/Jobs/Middleware/HandleHubspotRateLimit.php
create mode 100644 app/Mcp/Tools/GetMeTool.php
create mode 100644 database/migrations/2026_05_13_124153_create_mcp_feature_flag.php
create mode 100644 tests/Feature/Mcp/GetMeToolFeatureTest.php
create mode 100644 tests/Unit/Component/ES/ChunkSizeTest.php
create mode 100644 tests/Unit/Exceptions/RateLimitExceptionTest.php
create mode 100644 tests/Unit/Jobs/Middleware/HandleHubspotRateLimitTest.php
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (master) $ git pull
Already up to date.
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (master) $ co -b JY-20676-delete-report-related-objects
Switched to a new branch 'JY-20676-delete-report-related-objects'
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20676-delete-report-related-objects) $ csfix
docker exec -it docker_lamp_1 ./vendor/bin/php-cs-fixer fix --config=.php-cs-fixer.dist.php -v --using-cache=no --diff
PHP CS Fixer 3.87.1 Alexander by Fabien Potencier, Dariusz Ruminski and contributors.
PHP runtime: 8.3.30
Running 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!
Loaded config default from ".php-cs-fixer.dist.php".
5690/5690 [▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓] 100%
1) app/Console/Commands/JiminnyDebugCommand.php (statement_indentation, blank_line_before_statement)
---------- begin diff ----------
--- /home/jiminny/app/Console/Commands/JiminnyDebugCommand.php
+++ /home/jiminny/app/Console/Commands/JiminnyDebugCommand.php
@@ -23,6 +23,7 @@
if ($action === 'redis-set') {
$this->testRedisSet();
+
return;
}
@@ -45,7 +46,7 @@
$ttl = 60;
try {
-// $result = Redis::set($testKey, $testValue, 'EX', $ttl, 'NX');
+ // $result = Redis::set($testKey, $testValue, 'EX', $ttl, 'NX');
$result = Redis::set($testKey, $testValue, ['nx', 'ex' => $ttl]);
if ($result) {
----------- end diff -----------
Fixed 1 of 5690 files i...
|
[{"role":"AXTextArea","text [{"role":"AXTextArea","text":"Last login: Mon May 18 09:17:28 on ttys007\n\nPoetry could not find a pyproject.toml file in /Users/lukas/jiminny/app or its parents\n\nPoetry could not find a pyproject.toml file in /Users/lukas/jiminny/app or its parents\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (pipedrive-sdk-poc) $ co master\nerror: Your local changes to the following files would be overwritten by checkout:\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tPIPEDRIVE_V2_MIGRATION_TICKETS.md\nPlease commit your changes or stash them before you switch branches.\nAborting\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (pipedrive-sdk-poc) $ git pull\nremote: Enumerating objects: 1047, done.\nremote: Counting objects: 100% (832/832), done.\nremote: Compressing objects: 100% (298/298), done.\nremote: Total 1047 (delta 634), reused 596 (delta 534), pack-reused 215 (from 3)\nReceiving objects: 100% (1047/1047), 353.16 KiB | 1.56 MiB/s, done.\nResolving deltas: 100% (687/687), completed with 107 local objects.\nFrom github.com:jiminny/app\n 907c54896c..34656c53ed pipedrive-sdk-poc -> origin/pipedrive-sdk-poc\n 03325ec50f..4e7078fd8b JY-18091-upgrade-to-php-8-5 -> origin/JY-18091-upgrade-to-php-8-5\n e7d231e163..bc6a3fce6b JY-20725-handle-HS-search-rate-limit -> origin/JY-20725-handle-HS-search-rate-limit\n * [new branch] JY-20749-user-can-view-recorded-meetings -> origin/JY-20749-user-can-view-recorded-meetings\n 98ca281a04..e0351be069 JY-20808-low-priority-indexing-queue -> origin/JY-20808-low-priority-indexing-queue\n 569abb5149..3906a9238a JY-20835-mcp-enable-users-to-get-a-list-of-deals-and-their-details -> origin/JY-20835-mcp-enable-users-to-get-a-list-of-deals-and-their-details\n ad6c2a86e8..50eb6afba9 JY-20846-mcp-enable-the-ai-to-know-details-about-the-user -> origin/JY-20846-mcp-enable-the-ai-to-know-details-about-the-user\n * [new branch] JY-20893-chunk-control-per-update-target -> origin/JY-20893-chunk-control-per-update-target\n 31c62924a5..cb4ebf0c36 master -> origin/master\nUpdating 907c54896c..34656c53ed\nFast-forward\n PIPEDRIVE_V2_MIGRATION_TICKETS.md | 52 ++++++++++++++++++++++++++++++++++++++++++++++++++++\n 1 file changed, 52 insertions(+)\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (pipedrive-sdk-poc) $ co master\nM\u0000\u0000\u0000\u0000\u0000\u0000\t.env.local\nM\u0000\u0000\u0000\u0000\u0000\u0000\tconfig/logging.php\nSwitched to branch 'master'\nYour branch is behind 'origin/master' by 31 commits, and can be fast-forwarded.\n (use \"git pull\" to update your local branch)\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (master) $ git pull\nUpdating 31c62924a5..cb4ebf0c36\nFast-forward\n app/Component/ES/Processor/Traits/SelectEntityListTrait.php | 20 ------\n app/Services/Calendar/CalendarActivityService.php | 46 +++++++++++++\n app/Services/Calendar/Command/MapActivityData.php | 106 +++-------------------------\n docs/mcp/explorer/explorer.html | 104 +++++++++++++++++++++++++---\n docs/mcp/explorer/explorer.template.html | 102 ++++++++++++++++++++++++---\n docs/mcp/tools-list.json | 373 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++-------\n docs/mcp/tools.md | 117 +++++++++++++++++++++++--------\n tests/Unit/Component/ES/AsyncUpdateElasticSearchTest.php | 16 +----\n tests/Unit/Component/ES/Listeners/UpdateMultipleTargetsListenerTest.php | 10 ---\n tests/Unit/Component/ES/Listeners/UpdateSingleTargetListenerTest.php | 6 --\n tests/Unit/Component/ES/Processor/TargetEntitiesSelectorTest.php | 9 ---\n tests/Unit/Component/ES/Processor/Traits/SelectEntityListTraitTest.php | 15 ++--\n tests/Unit/Component/ES/UpdateProcessManagerTest.php | 2 -\n tests/Unit/Services/Calendar/CalendarActivityServiceTest.php | 150 ++++++++++++++++++++++++++++++++++++++--\n tests/Unit/Services/Calendar/Command/MapActivityDataTest.php | 78 ++-------------------\n 15 files changed, 832 insertions(+), 322 deletions(-)\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (master) $ co -b JY-20613-allow-owner-role-on-team-setup\nSwitched to a new branch 'JY-20613-allow-owner-role-on-team-setup'\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20613-allow-owner-role-on-team-setup) $ csfix\ndocker exec -it docker_lamp_1 ./vendor/bin/php-cs-fixer fix --config=.php-cs-fixer.dist.php -v --using-cache=no --diff \nPHP CS Fixer 3.87.1 Alexander by Fabien Potencier, Dariusz Ruminski and contributors.\nPHP runtime: 8.3.30\nRunning analysis on 7 cores with 10 files per process.\nParallel runner is an experimental feature and may be unstable, use it at your own risk. Feedback highly appreciated!\nLoaded config default from \".php-cs-fixer.dist.php\".\n 5682/5682 [▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓] 100%\n\n\nFixed 0 of 5682 files in 56.978 seconds, 67.00 MB memory used\n\nWhat's next:\n Try Docker Debug for seamless, persistent debugging tools in any container or image → docker debug docker_lamp_1\n Learn more at https://docs.docker.com/go/debug-cli/\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20613-allow-owner-role-on-team-setup) $ ;xd\ndocker exec -it docker_lamp_1 bash -c \"mv /usr/local/etc/php/conf.d/xdebug.ini ~/xdebug.ini\"\n\nWhat's next:\n Try Docker Debug for seamless, persistent debugging tools in any container or image → docker debug docker_lamp_1\n Learn more at https://docs.docker.com/go/debug-cli/\ndocker exec -it docker_lamp_1 supervisorctl restart all\njiminny-worker-processing-2:jiminny-worker-processing-2_00: stopped\njiminny-worker-processing-3:jiminny-worker-processing-3_00: stopped\njiminny-worker-processing-4:jiminny-worker-processing-4_00: stopped\njiminny-worker-processing-5:jiminny-worker-processing-5_00: stopped\njiminny-worker-processing-delayed:jiminny-worker-processing-delayed_00: stopped\nworker-analytics:worker-analytics_00: stopped\nworker-crm-update:worker-crm-update_00: stopped\nworker-download:worker-download_00: stopped\nworker-nudges:worker-nudges_00: stopped\nartisan-schedule:artisan-schedule_00: stopped\nworker-emails:worker-emails_00: stopped\nworker-calendar:worker-calendar_00: stopped\nworker:worker_00: stopped\nworker-conferences:worker-conferences_00: stopped\nworker-crm-sync:worker-crm-sync_00: stopped\njiminny-worker-processing-1:jiminny-worker-processing-1_00: stopped\nworker-audio:worker-audio_00: stopped\nworker-es-update:worker-es-update_00: stopped\nartisan-schedule:artisan-schedule_00: started\njiminny-worker-processing-1:jiminny-worker-processing-1_00: started\njiminny-worker-processing-2:jiminny-worker-processing-2_00: started\njiminny-worker-processing-3:jiminny-worker-processing-3_00: started\njiminny-worker-processing-4:jiminny-worker-processing-4_00: started\njiminny-worker-processing-5:jiminny-worker-processing-5_00: started\njiminny-worker-processing-delayed:jiminny-worker-processing-delayed_00: started\nworker:worker_00: started\nworker-analytics:worker-analytics_00: started\nworker-audio:worker-audio_00: started\nworker-calendar:worker-calendar_00: started\nworker-conferences:worker-conferences_00: started\nworker-crm-sync:worker-crm-sync_00: started\nworker-crm-update:worker-crm-update_00: started\nworker-download:worker-download_00: started\nworker-emails:worker-emails_00: started\nworker-es-update:worker-es-update_00: started\nworker-nudges:worker-nudges_00: started\n\nWhat's next:\n Try Docker Debug for seamless, persistent debugging tools in any container or image → docker debug docker_lamp_1\n Learn more at https://docs.docker.com/go/debug-cli/\ndocker exec -it docker_lamp_1 php -v\nPHP 8.3.30 (cli) (built: Mar 16 2026 22:32:32) (NTS)\nCopyright (c) The PHP Group\nZend Engine v4.3.30, Copyright (c) Zend Technologies\n with Zend OPcache v8.3.30, Copyright (c), by Zend Technologies\n\nWhat's next:\n Try Docker Debug for seamless, persistent debugging tools in any container or image → docker debug docker_lamp_1\n Learn more at https://docs.docker.com/go/debug-cli/\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20613-allow-owner-role-on-team-setup) $ csfix\ndocker exec -it docker_lamp_1 ./vendor/bin/php-cs-fixer fix --config=.php-cs-fixer.dist.php -v --using-cache=no --diff \nPHP CS Fixer 3.87.1 Alexander by Fabien Potencier, Dariusz Ruminski and contributors.\nPHP runtime: 8.3.30\nRunning analysis on 7 cores with 10 files per process.\nParallel runner is an experimental feature and may be unstable, use it at your own risk. Feedback highly appreciated!\nLoaded config default from \".php-cs-fixer.dist.php\".\n 5682/5682 [▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓] 100%\n\n\nFixed 0 of 5682 files in 49.910 seconds, 60.00 MB memory used\n\nWhat's next:\n Try Docker Debug for seamless, persistent debugging tools in any container or image → docker debug docker_lamp_1\n Learn more at https://docs.docker.com/go/debug-cli/\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20613-allow-owner-role-on-team-setup) $ git status\nOn branch JY-20613-allow-owner-role-on-team-setup\nYour branch is ahead of 'origin/JY-20613-allow-owner-role-on-team-setup' by 1 commit.\n (use \"git push\" to publish your local commits)\n\nChanges not staged for commit:\n (use \"git add <file>...\" to update what will be committed)\n (use \"git restore <file>...\" to discard changes in working directory)\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tmodified: .env.local\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tmodified: config/logging.php\n\nUntracked files:\n (use \"git add <file>...\" to include in what will be committed)\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\t.env.nikilocal\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\t.env.other\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tWEBHOOK_FILTERING_IMPLEMENTATION.md\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tapp/Console/Commands/Crm/Hubspot/SimulateWebhooksCommand.php\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tapp/Console/Commands/Reports/CreateMockAskJiminnyReportResultCommand.php\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tids.txt\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tpublic/favicon.ico\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\traw_sql_query.sql\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\ttests/Unit/Policies/CanAccessAiReportsTest.php\n\nno changes added to commit (use \"git add\" and/or \"git commit -a\")\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20613-allow-owner-role-on-team-setup) $ git pull\nremote: Enumerating objects: 248, done.\nremote: Counting objects: 100% (128/128), done.\nremote: Compressing objects: 100% (23/23), done.\nremote: Total 59 (delta 43), reused 44 (delta 33), pack-reused 0 (from 0)\nUnpacking objects: 100% (59/59), 10.48 KiB | 228.00 KiB/s, done.\nFrom github.com:jiminny/app\n b7df560451..190239dfd4 JY-20613-allow-owner-role-on-team-setup -> origin/JY-20613-allow-owner-role-on-team-setup\n e0351be069..d94a285ae7 JY-20808-low-priority-indexing-queue -> origin/JY-20808-low-priority-indexing-queue\n * [new branch] JY-20920-fix-participant-matcher -> origin/JY-20920-fix-participant-matcher\n cb4ebf0c36..90bca4e4b2 master -> origin/master\nMerge made by the 'ort' strategy.\n app/Component/ES/ChunkSize.php | 54 +++++++++++++++++++++++++++\n app/Component/ES/Processor/DTOs/SelectionList.php | 4 +-\n app/Component/ES/Processor/TargetEntitiesSelector.php | 19 ++++++----\n app/Http/Middleware/McpTierMiddleware.php | 27 +++-----------\n app/Mcp/Servers/JiminnyServer.php | 2 +\n app/Mcp/Tools/GetMeTool.php | 157 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++\n app/Models/Feature/FeatureEnum.php | 1 +\n database/migrations/2026_05_13_124153_create_mcp_feature_flag.php | 25 +++++++++++++\n front-end/src/components/Settings/Kiosk/modals/EditTeamModal/EditTeamModal.vue | 52 ++++++++++++++++++--------\n front-end/src/components/Settings/Kiosk/modals/EditTeamModal/__tests__/EditTeamModal.spec.js | 14 +++++++\n tests/Feature/Mcp/GetMeToolFeatureTest.php | 140 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++\n tests/Feature/Mcp/ListCallsToolFeatureTest.php | 2 +-\n tests/Feature/Mcp/McpTestHelpersTrait.php | 19 +++++++++-\n tests/Unit/Component/ES/ChunkSizeTest.php | 50 +++++++++++++++++++++++++\n tests/Unit/Component/ES/Processor/DTOs/SelectionListTest.php | 27 ++++++++++----\n tests/Unit/Component/ES/Processor/TargetEntitiesSelectorTest.php | 39 +++++++++++---------\n 16 files changed, 557 insertions(+), 75 deletions(-)\n create mode 100644 app/Component/ES/ChunkSize.php\n create mode 100644 app/Mcp/Tools/GetMeTool.php\n create mode 100644 database/migrations/2026_05_13_124153_create_mcp_feature_flag.php\n create mode 100644 tests/Feature/Mcp/GetMeToolFeatureTest.php\n create mode 100644 tests/Unit/Component/ES/ChunkSizeTest.php\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20613-allow-owner-role-on-team-setup) $ git push\nEnumerating objects: 40, done.\nCounting objects: 100% (34/34), done.\nDelta compression using up to 8 threads\nCompressing objects: 100% (18/18), done.\nWriting objects: 100% (18/18), 1.58 KiB | 1.58 MiB/s, done.\nTotal 18 (delta 15), reused 0 (delta 0), pack-reused 0\nremote: Resolving deltas: 100% (15/15), completed with 13 local objects.\nTo github.com:jiminny/app.git\n 190239dfd4..ec1b261264 JY-20613-allow-owner-role-on-team-setup -> JY-20613-allow-owner-role-on-team-setup\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20613-allow-owner-role-on-team-setup) $ gbr\n* JY-20613-allow-owner-role-on-team-setup\n pipedrive-sdk-poc\n master\n JY-20903-update_activity-stage-on-opportunity-change\n JY-20904-fix-update-es-on-activity-command\n JY-20891-improve-sms-text-relays\n JY-20725-handle-HS-search-rate-limit\n JY-20818-move-AJ-reports-to-separated-datadog-metric\n JY-20773-fix-automated-reports-user-pilot-tracking\n JY-20157-AJ-report-not-send-notification\n JY-20508-notify-before-AJ-report-expiration\n JY-20372-ai-reports-promotion-pages\n JY-20352-sync-opportunities-without-a-local-owner-user-id-is-null\n JY-20738-debug-AJ-tracking-UP\n a\n JY-18909-automated-reports-ask-jiminny\n JY-20692-fix-integration-app-token-auth-response-change\n JY-20553-debug-crm-sync-delays\n JY-20698-fix-SF-activity-types-on-new-playbook\n JY-20543-AJ-report-tracking\n JY-20384-handle-auto-sync-with-no-access-to-event-type\n JY-20458-ask-jiminny-user-definitions\n JY-19666-fix-import-contacts-account-association\n JY-19666-HS-import-contacts-and-accounts-batch-job\n JY-20458-Ask-Jiminny-Reports\n JY-20200-batch-update-CRM-objects-Salesforce\n JY-19666-HS-webhooks-add-contact-and-company\n JY-20348-trigger-setup-DI-layout-on-team-creation\n JY-20326-refactor-info-message-in-command\n JY-20317-fix-auto-log-delay-issue-on-all-channels-disabled\n JY-20312-remove-on-update-change-last-synced-at-crm-configurations\n JY-20306-SF-skip-auto-sync-for-task-based-playbook\n JY-20192-remove-deleted-team-from-saved-search-filters\n JY-20197-import-opportunity-batch-job\n JY-20293-enable-status-field-for-pipedrive-deals\n JY-20191-remove-commands-interactive-prompts\n JY-20118-change-default-sync-strategy\n JY-20183-add-cache-on-auto-log-delay\n JY-20197-add-import-opportunity-batch-job\n 20118-hs-opportunity-make-webhook-strategy-default\n JY-20118-make-default-hs-opportunity-sync-strategy-webhook-based\n JY-20196-handle-opportunity-without-note\n JY-20118-improve-opportunity-import\n JY-20189-handle-activity-search-on-deleted-groups\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20613-allow-owner-role-on-team-setup) $ co JY-20725-handle-HS-search-rate-limit\nM\u0000\u0000\u0000\u0000\u0000\u0000\t.env.local\nM\u0000\u0000\u0000\u0000\u0000\u0000\tconfig/logging.php\nSwitched to branch 'JY-20725-handle-HS-search-rate-limit'\nYour branch is behind 'origin/JY-20725-handle-HS-search-rate-limit' by 439 commits, and can be fast-forwarded.\n (use \"git pull\" to update your local branch)\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20725-handle-HS-search-rate-limit) $ git pull\nUpdating 0f3e438941..bc6a3fce6b\nFast-forward\n .gitignore | 3 +-\n .windsurfrules | 168 ++---\n CLAUDE.md | 1 +\n app/Component/ActivityAnalytics/Service/CalculateTalkTimeOffsetsFromTranscription.php | 24 +-\n app/Component/AiActivityType/Services/AiActivityTypeEligibilityChecker.php | 28 +-\n app/Component/AiAutomation/Actions/PrepareUpdateDtoAction.php | 32 +-\n app/Component/AiAutomation/Services/CrmFillingEligibilityChecker.php | 47 ++\n app/Component/AiAutomation/TestCrmAiPromptService.php | 14 +\n app/Component/AiCallScoring/Services/AiCallScoringEligibilityChecker.php | 9 +\n app/Component/ES/ElasticSearchDocumentPartialUpdater.php | 13 +-\n app/Component/ES/ElasticSearchWorkerManager.php | 86 ---\n app/Component/ES/Processor/Actions/LoadDocumentsAction.php | 80 +--\n app/Component/ES/Processor/EntityQueryBuilder.php | 12 +-\n app/Component/ES/Processor/TargetEntitiesSelector.php | 2 +-\n app/Component/ES/Processor/Traits/SkipActivityTrait.php | 25 -\n app/Component/ES/Repositories/EsResetActivityRepository.php | 11 +-\n app/Component/ES/Worker/ActivityWorker.php | 73 --\n app/Component/ES/Worker/EntityWorker.php | 44 --\n app/Component/ES/Worker/WorkerAmount.php | 60 --\n app/Component/ES/Worker/WorkerInterface.php | 15 -\n app/Component/ElasticSearch/Contract/Searchable.php | 4 +\n app/Component/Encoding/Job/AnalyzeTrackChannelsJob.php | 20 +-\n app/Component/Encoding/Service/GenerateSpeechFromSilenceService.php | 85 ++-\n app/Component/FFMpeg/Services/GetSpeechIntervalsService.php | 18 +-\n app/Component/LanguageDetection/Services/FindSpeechTimeService.php | 22 +-\n app/Component/Nudge/Job/ProcessOrganisationImmediateNudgesJob.php | 218 +++++-\n app/Component/ParagraphBreaker/Services/TranscriptionParagraphsService.php | 4 +\n app/Component/ParticipantSpeech/Services/ParticipantSpeechesCreator.php | 33 +\n app/Component/ParticipantSpeech/Services/ParticipantSpeechesDeleter.php | 15 +\n app/Component/ParticipantSpeech/Services/ParticipantSpeechesProvider.php | 51 +-\n app/Component/ParticipantSpeech/Services/ParticipantSpeechesUploader.php | 36 +\n app/Component/ProphetAi/Exceptions/InsufficientTranscriptException.php | 11 +\n app/Component/Transcription/DTO/Http/Transcription/AssemblyAI/AssemblyAI/NoAssemblyIdException.php | 11 +\n app/Component/Transcription/DTO/Http/Transcription/AssemblyAI/AssemblyAI/SuccessfulResponse.php | 6 +\n app/Component/Transcription/DTO/Http/Transcription/TranscriptionIsNotCorrectFormatException.php | 11 +\n app/Component/Transcription/Diarization/Services/GetNormalizedParticipantSpeechesService.php | 23 +-\n app/Component/Transcription/Diarization/Source/MeetingBotSource.php | 16 +-\n app/Component/Transcription/TranscriptionProcessor/TranscriptionProcessor.php | 3 +\n app/Console/Commands/Activities/ActivityHardDeleteCommand.php | 4 +-\n app/Console/Commands/Activities/Copy.php | 2 +\n app/Console/Commands/Activities/SetupIntegration/TwilioSetS3RecordingCredentialsCommand.php | 119 ++++\n app/Console/Commands/Activities/UpdateActivityElasticSearchDocumentCommand.php | 10 +-\n app/Console/Commands/Crm/BackfillOpportunityUserFromAccountCommand.php | 126 ++++\n app/Console/Commands/Elasticsearch/AsyncUpdateEsActivities.php | 19 -\n app/Console/Commands/Elasticsearch/AsyncUpdateEsEntities.php | 50 +-\n app/Console/Commands/Elasticsearch/ResetAsyncElasticSearchCommand.php | 30 +-\n app/Console/Commands/GeckoExport/GeckoExportParticipantSpeechesCommand.php | 14 +-\n app/Console/Commands/IssueMcpTokenCommand.php | 84 +++\n app/Console/Commands/JiminnyDebugCommand.php | 7 +-\n app/Console/Commands/Tracks/CleanupActivityTracksCommand.php | 2 +-\n app/Console/Kernel.php | 6 +-\n app/Contracts/Services/Calendar/CalendarTrait.php | 80 ++-\n app/Events/AutomatedReports/AutomatedReportGenerated.php | 3 +\n app/Http/Controllers/API/AiCallScoring/AiScorecardController.php | 7 +-\n app/Http/Controllers/API/TeamAiAutomationController.php | 8 +\n app/Http/Controllers/CustomerApi/CustomerApiController.php | 4 +-\n app/Http/Controllers/Kiosk/ActivityController.php | 58 +-\n app/Http/Controllers/Settings/PlaybookController.php | 15 +-\n app/Http/Kernel.php | 23 +\n app/Http/Middleware/McpAuditMiddleware.php | 156 ++++\n app/Http/Middleware/McpTierMiddleware.php | 54 ++\n app/Http/Requests/API/V2/ZapierUploadActivityRequest.php | 28 +-\n app/Jobs/Activity/Import/ImportTwilioVideoSpeechesJob.php | 25 +-\n app/Jobs/Activity/Import/IsActivityReadyForProcessingJob.php | 10 +-\n app/Jobs/Calendar/SetupCalendarSync.php | 21 +-\n app/Jobs/ImportRemoteTrackJob.php | 96 ++-\n app/Jobs/Mailbox/EmailTextRelay.php | 15 +-\n app/Mcp/Contracts/McpCallRepositoryInterface.php | 30 +\n app/Mcp/DTO/ListCallsFilters.php | 29 +\n app/Mcp/Errors/McpError.php | 123 ++++\n app/Mcp/Repositories/McpActivityHydrator.php | 145 ++++\n app/Mcp/Repositories/McpCallRepository.php | 84 +++\n app/Mcp/Repositories/McpElasticCallRepository.php | 171 +++++\n app/Mcp/Servers/JiminnyServer.php | 38 +\n app/Mcp/Tools/ListCallsTool.php | 205 ++++++\n app/Models/Activity.php | 10 +-\n app/Models/Activity/Transcription.php | 17 +-\n app/Models/ElasticSearch/OpportunityElasticSearchTrait.php | 5 +\n app/Models/Participant.php | 1 +\n app/Providers/AppServiceProvider.php | 22 +\n app/Repositories/Crm/ContactRepository.php | 69 +-\n app/Repositories/ParticipantSpeechRepository.php | 13 +-\n app/Services/Activity/ParticipantsService.php | 19 +-\n app/Services/Activity/Twilio/S3RecordingCredentialsService.php | 82 +++\n app/Services/ActivityService.php | 21 +-\n app/Services/Calendar/CalendarActivityService.php | 46 ++\n app/Services/Calendar/Command/ImportParticipants.php | 1 +\n app/Services/Calendar/Command/MapActivityData.php | 106 +--\n app/Services/Calendar/GoogleCalendarService.php | 12 +-\n app/Services/Crm/Close/Processor/OpportunityProcessor.php | 2 +-\n app/Services/Crm/Close/Service.php | 22 +-\n app/Services/Crm/Copper/Service.php | 12 +-\n app/Services/Crm/Hubspot/Service.php | 154 +++-\n app/Services/Crm/Hubspot/ServiceTraits/OpportunitySyncTrait.php | 88 ++-\n app/Services/Crm/IntegrationApp/ServiceTraits/SyncCrmEntitiesTrait.php | 22 +-\n app/Services/Crm/Pipedrive/Service.php | 17 +-\n app/Services/Crm/Salesforce/Service.php | 42 +-\n app/Services/Mail/Office/EmailApiClient.php | 129 +---\n app/Services/RecallAI/Commands/ScheduleBotCommand.php | 39 +-\n app/Services/RecallAI/RecallAIService.php | 22 +-\n composer.json | 3 +-\n composer.lock | 87 ++-\n config/mcp.php | 23 +\n database/migrations/2026_04_30_120000_create_mcp_audit_log_table.php | 36 +\n docs/mcp/explorer/explorer.html | 697 ++++++++++++++++++\n docs/mcp/explorer/explorer.template.html | 697 ++++++++++++++++++\n docs/mcp/explorer/generate.js | 215 ++++++\n docs/mcp/explorer/tool-explorer-meta.json | 11 +\n docs/mcp/tools-list.json | 2536 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++\n docs/mcp/tools.md | 621 ++++++++++++++++\n front-end/package.json | 4 +-\n front-end/src/components/Settings/OrgSettings/AiAutomation/CrmFilling/TemplateFieldForm.vue | 28 +-\n front-end/src/components/Settings/OrgSettings/Playbooks/AddEditPlaybook.vue | 10 +\n front-end/src/components/playback/comments/ActivityComment.less | 10 +-\n front-end/src/components/shared/PromptTester/PromptTester.vue | 12 +-\n front-end/src/components/shared/__tests__/PromptTester.spec.js | 35 +\n front-end/src/components/shared/modals/EntityPickerModal/__tests__/useEntitiesCache.spec.ts | 37 +\n front-end/src/components/shared/modals/EntityPickerModal/useEntitiesCache.ts | 9 +\n front-end/yarn.lock | 16 +-\n phpstan-baseline.neon | 50 --\n routes/api.php | 11 +\n sonar-project.properties | 91 ++-\n tests/Feature/Component/Nudge/ProcessOrganisationImmediateNudgesJobTest.php | 534 ++++++++++++++\n tests/Feature/Jobs/ImportRemoteTrackJobTest.php | 283 +++++++-\n tests/Feature/Mcp/IssueMcpTokenCommandTest.php | 53 ++\n tests/Feature/Mcp/ListCallsToolElasticFeatureTest.php | 155 ++++\n tests/Feature/Mcp/ListCallsToolFeatureTest.php | 352 ++++++++++\n tests/Feature/Mcp/McpTestHelpersTrait.php | 77 ++\n tests/Feature/Services/Team/TeamDeleteHandlers/Retention/RetentionRepositoryHandlerTest.php | 1 +\n tests/Stubs/SentryStub.php | 18 +\n tests/Unit/Component/ActivityAnalytics/Service/CalculateTalkTimeOffsetFromTranscriptionTest.php | 28 +-\n tests/Unit/Component/AiActivityType/Services/AiActivityTypeEligibilityCheckerTest.php | 103 ++-\n tests/Unit/Component/AiAutomation/Actions/PrepareUpdateDtoActionTest.php | 91 +++\n tests/Unit/Component/AiAutomation/Services/CrmFillingEligibilityCheckerTest.php | 124 ++++\n tests/Unit/Component/AiAutomation/TestCrmAiPromptServiceTest.php | 67 +-\n tests/Unit/Component/AiCallScoring/Services/AiCallScoringEligibilityCheckerTest.php | 55 ++\n tests/Unit/Component/ES/ElasticSearchWorkerManagerTest.php | 135 ----\n tests/Unit/Component/ES/Processor/Actions/LoadDocumentsActionTest.php | 220 ++++++\n tests/Unit/Component/ES/Processor/EntityQueryBuilderTest.php | 21 +-\n tests/Unit/Component/ES/Processor/Traits/SkipActivityTraitTest.php | 51 --\n tests/Unit/Component/ES/Worker/ActivityWorkerTest.php | 174 -----\n tests/Unit/Component/ES/Worker/EntityWorkerTest.php | 97 ---\n tests/Unit/Component/ES/Worker/WorkerAmountTest.php | 116 ---\n tests/Unit/Component/Encoding/Job/AnalyzeTrackChannelsJobTest.php | 52 +-\n tests/Unit/Component/Encoding/Service/GenerateSpeechFromSilenceServiceTest.php | 171 ++---\n tests/Unit/Component/FFMpeg/Services/GetSpeechIntervalsTest.php | 36 +-\n tests/Unit/Component/LanguageDetection/Services/FindSpeechTimeServiceTest.php | 20 +-\n tests/Unit/Component/MobileSettings/MobileSettingsControllerTest.php | 5 +-\n tests/Unit/Component/ParticipantSpeech/Services/ParticipantSpeechesCreatorTest.php | 75 ++\n tests/Unit/Component/ParticipantSpeech/Services/ParticipantSpeechesDeleterTest.php | 63 ++\n tests/Unit/Component/ParticipantSpeech/Services/ParticipantSpeechesProviderTest.php | 134 ++++\n tests/Unit/Component/ParticipantSpeech/Services/ParticipantSpeechesUploaderTest.php | 57 ++\n tests/Unit/Component/Transcription/Diarization/Services/GetNormalizedParticipantSpeechesServiceTest.php | 51 +-\n tests/Unit/Component/Transcription/Diarization/Source/MeetingBotSourceTest.php | 29 +-\n tests/Unit/Contracts/Services/Calendar/CalendarTraitTest.php | 58 +-\n tests/Unit/Http/Controllers/Kiosk/ActivityControllerTest.php | 159 +++++\n tests/Unit/Jobs/Activity/Import/ImportTwilioVideoSpeechesJobTest.php | 22 +-\n tests/Unit/Jobs/Activity/Import/IsActivityReadyForProcessingJobTest.php | 26 +-\n tests/Unit/Jobs/Calendar/SetupCalendarSyncTest.php | 25 -\n tests/Unit/Services/Activity/ParticipantsServiceTest.php | 12 +-\n tests/Unit/Services/Activity/Twilio/S3RecordingCredentialsServiceTest.php | 180 +++++\n tests/Unit/Services/ActivityServiceTest.php | 132 ++++\n tests/Unit/Services/Calendar/CalendarActivityServiceTest.php | 150 +++-\n tests/Unit/Services/Calendar/Command/ImportParticipantsTest.php | 6 +-\n tests/Unit/Services/Calendar/Command/MapActivityDataTest.php | 78 +-\n tests/Unit/Services/Calendar/GoogleCalendarServiceTest.php | 116 +++\n tests/Unit/Services/Crm/Close/ServiceTest.php | 165 +++++\n tests/Unit/Services/Crm/Hubspot/ServiceTest.php | 272 ++++++-\n tests/Unit/Services/Crm/Hubspot/ServiceTraits/OpportunitySyncTest.php | 25 +-\n tests/Unit/Services/Crm/Hubspot/ServiceTraits/OpportunitySyncTraitMatchActivitiesTest.php | 3 +-\n tests/Unit/Services/Crm/IntegrationApp/ServiceTraits/SyncCrmEntitiesTraitOpportunitiesTest.php | 40 ++\n tests/Unit/Services/Crm/Pipedrive/ImportOpportunityMatchActivitiesTest.php | 2 +\n tests/Unit/Services/Crm/Salesforce/ServiceTest.php | 139 ++++\n tests/Unit/Services/Mail/Office/EmailApiClientTest.php | 195 ++---\n tests/Unit/Services/RecallAI/RecallAIServiceTest.php | 24 +-\n 175 files changed, 12562 insertions(+), 2162 deletions(-)\n create mode 120000 CLAUDE.md\n create mode 100644 app/Component/AiAutomation/Services/CrmFillingEligibilityChecker.php\n delete mode 100644 app/Component/ES/ElasticSearchWorkerManager.php\n delete mode 100644 app/Component/ES/Processor/Traits/SkipActivityTrait.php\n delete mode 100644 app/Component/ES/Worker/ActivityWorker.php\n delete mode 100644 app/Component/ES/Worker/EntityWorker.php\n delete mode 100644 app/Component/ES/Worker/WorkerAmount.php\n delete mode 100644 app/Component/ES/Worker/WorkerInterface.php\n create mode 100644 app/Component/ProphetAi/Exceptions/InsufficientTranscriptException.php\n create mode 100644 app/Component/Transcription/DTO/Http/Transcription/AssemblyAI/AssemblyAI/NoAssemblyIdException.php\n create mode 100644 app/Component/Transcription/DTO/Http/Transcription/TranscriptionIsNotCorrectFormatException.php\n create mode 100644 app/Console/Commands/Activities/SetupIntegration/TwilioSetS3RecordingCredentialsCommand.php\n create mode 100644 app/Console/Commands/Crm/BackfillOpportunityUserFromAccountCommand.php\n delete mode 100644 app/Console/Commands/Elasticsearch/AsyncUpdateEsActivities.php\n create mode 100644 app/Console/Commands/IssueMcpTokenCommand.php\n create mode 100644 app/Http/Middleware/McpAuditMiddleware.php\n create mode 100644 app/Http/Middleware/McpTierMiddleware.php\n create mode 100644 app/Mcp/Contracts/McpCallRepositoryInterface.php\n create mode 100644 app/Mcp/DTO/ListCallsFilters.php\n create mode 100644 app/Mcp/Errors/McpError.php\n create mode 100644 app/Mcp/Repositories/McpActivityHydrator.php\n create mode 100644 app/Mcp/Repositories/McpCallRepository.php\n create mode 100644 app/Mcp/Repositories/McpElasticCallRepository.php\n create mode 100644 app/Mcp/Servers/JiminnyServer.php\n create mode 100644 app/Mcp/Tools/ListCallsTool.php\n create mode 100644 app/Services/Activity/Twilio/S3RecordingCredentialsService.php\n create mode 100644 config/mcp.php\n create mode 100644 database/migrations/2026_04_30_120000_create_mcp_audit_log_table.php\n create mode 100644 docs/mcp/explorer/explorer.html\n create mode 100644 docs/mcp/explorer/explorer.template.html\n create mode 100644 docs/mcp/explorer/generate.js\n create mode 100644 docs/mcp/explorer/tool-explorer-meta.json\n create mode 100644 docs/mcp/tools-list.json\n create mode 100644 docs/mcp/tools.md\n create mode 100644 front-end/src/components/shared/modals/EntityPickerModal/__tests__/useEntitiesCache.spec.ts\n create mode 100644 tests/Feature/Component/Nudge/ProcessOrganisationImmediateNudgesJobTest.php\n create mode 100644 tests/Feature/Mcp/IssueMcpTokenCommandTest.php\n create mode 100644 tests/Feature/Mcp/ListCallsToolElasticFeatureTest.php\n create mode 100644 tests/Feature/Mcp/ListCallsToolFeatureTest.php\n create mode 100644 tests/Feature/Mcp/McpTestHelpersTrait.php\n create mode 100644 tests/Stubs/SentryStub.php\n create mode 100644 tests/Unit/Component/AiAutomation/Services/CrmFillingEligibilityCheckerTest.php\n delete mode 100644 tests/Unit/Component/ES/ElasticSearchWorkerManagerTest.php\n create mode 100644 tests/Unit/Component/ES/Processor/Actions/LoadDocumentsActionTest.php\n delete mode 100644 tests/Unit/Component/ES/Processor/Traits/SkipActivityTraitTest.php\n delete mode 100644 tests/Unit/Component/ES/Worker/ActivityWorkerTest.php\n delete mode 100644 tests/Unit/Component/ES/Worker/EntityWorkerTest.php\n delete mode 100644 tests/Unit/Component/ES/Worker/WorkerAmountTest.php\n create mode 100644 tests/Unit/Component/ParticipantSpeech/Services/ParticipantSpeechesCreatorTest.php\n create mode 100644 tests/Unit/Http/Controllers/Kiosk/ActivityControllerTest.php\n create mode 100644 tests/Unit/Services/Activity/Twilio/S3RecordingCredentialsServiceTest.php\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20725-handle-HS-search-rate-limit) $ git status\nOn branch master\nYour branch is behind 'origin/master' by 114 commits, and can be fast-forwarded.\n (use \"git pull\" to update your local branch)\n\nChanges not staged for commit:\n (use \"git add <file>...\" to update what will be committed)\n (use \"git restore <file>...\" to discard changes in working directory)\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tmodified: .env.local\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tmodified: app/Component/SCIM/Constants.php\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tmodified: app/Component/SCIM/ScimProvisioning.php\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tmodified: app/Component/Twilio/Conference/ConferenceManager/SoftPhoneManager.php\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tmodified: app/Console/Commands/JiminnyDebugCommand.php\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tmodified: app/DTO/SCIM/AAD/Request/CoreUserRequest.php\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tmodified: app/DTO/SCIM/AAD/Response/CoreUser.php\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tmodified: app/Services/Telephony/TextMessagingService.php\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tmodified: config/logging.php\n\nUntracked files:\n (use \"git add <file>...\" to include in what will be committed)\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\t.env.nikilocal\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\t.env.other\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tWEBHOOK_FILTERING_IMPLEMENTATION.md\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tapp/Component/SCIM/Mutators/Attributes/User/RoleAttr.php\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tapp/Console/Commands/Crm/Hubspot/SimulateWebhooksCommand.php\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tapp/Console/Commands/Reports/CreateMockAskJiminnyReportResultCommand.php\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tapp/Rules/ListenerRoleCannotHaveAdminOrManagerPermissionRule.php\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tids.txt\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tpublic/favicon.ico\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\traw_sql_query.sql\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\ttests/Unit/Component/SCIM/Mutators/Attributes/User/RoleAttrTest.php\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\ttests/Unit/Policies/CanAccessAiReportsTest.php\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\ttests/Unit/Rules/ListenerRoleCannotHaveAdminOrManagerPermissionRuleTest.php\n\nno changes added to commit (use \"git add\" and/or \"git commit -a\")\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (master) $ git pull\nremote: Enumerating objects: 306, done.\nremote: Counting objects: 100% (299/299), done.\nremote: Compressing objects: 100% (183/183), done.\nremote: Total 306 (delta 213), reused 171 (delta 116), pack-reused 7 (from 1)\nReceiving objects: 100% (306/306), 80.12 KiB | 1000.00 KiB/s, done.\nResolving deltas: 100% (213/213), completed with 53 local objects.\nFrom github.com:jiminny/app\n 90bca4e4b2..5604af40cf master -> origin/master\n 4e7078fd8b..0b8343d179 JY-18091-upgrade-to-php-8-5 -> origin/JY-18091-upgrade-to-php-8-5\n 098eeaa087..d5a447e492 JY-20613-allow-owner-role-on-team-setup -> origin/JY-20613-allow-owner-role-on-team-setup\n c3a76ace91..af65249d0f JY-20749-user-can-view-recorded-meetings -> origin/JY-20749-user-can-view-recorded-meetings\n d94a285ae7..7ce96cb5fe JY-20808-low-priority-indexing-queue -> origin/JY-20808-low-priority-indexing-queue\n * [new branch] JY-20842-remove-partial-updater -> origin/JY-20842-remove-partial-updater\n * [new branch] JY-20920-fix-participant-flip -> origin/JY-20920-fix-participant-flip\n * [new branch] secfix/npm-20260519 -> origin/secfix/npm-20260519\nUpdating cb4ebf0c36..5604af40cf\nFast-forward\n app/Component/ES/ChunkSize.php | 54 +++++++++++++++++++\n app/Component/ES/Processor/DTOs/SelectionList.php | 4 +-\n app/Component/ES/Processor/TargetEntitiesSelector.php | 19 ++++---\n app/Component/MeetingBot/Service/ParticipantMatcher.php | 46 ++++++++++++----\n app/Exceptions/RateLimitException.php | 19 ++++++-\n app/Http/Middleware/McpTierMiddleware.php | 27 ++--------\n app/Jobs/Crm/MatchActivityCrmData.php | 47 ++++++++++++----\n app/Jobs/Middleware/HandleHubspotRateLimit.php | 42 +++++++++++++++\n app/Mcp/Servers/JiminnyServer.php | 2 +\n app/Mcp/Tools/GetMeTool.php | 157 +++++++++++++++++++++++++++++++++++++++++++++++++++++\n app/Models/Feature/FeatureEnum.php | 1 +\n app/Services/Activity/HubSpot/ProviderResolver.php | 4 +-\n app/Services/Activity/HubSpot/ProviderResolverInterface.php | 2 +-\n app/Services/Activity/HubSpot/Providers/Provider.php | 2 +-\n app/Services/Activity/HubSpot/Providers/ProviderKixie.php | 2 +-\n app/Services/Activity/HubSpot/Providers/ProviderOrum.php | 2 +-\n app/Services/Activity/HubSpot/Providers/ProviderTwilio.php | 2 +-\n app/Services/Activity/HubSpot/Providers/ProviderTwilioFlex.php | 5 +-\n app/Services/Activity/HubSpot/Service.php | 97 +++++++++++++++++++++++++++------\n app/Services/Crm/Hubspot/Client.php | 132 +++++++++++++++++++++++++++++++++++++++++++++\n app/Services/Crm/Hubspot/HubspotClientInterface.php | 15 ++++++\n app/Services/Crm/Hubspot/Pagination/HubspotPaginationService.php | 21 ++++----\n app/Services/Crm/Hubspot/Pagination/PaginationState.php | 2 +-\n database/migrations/2026_05_13_124153_create_mcp_feature_flag.php | 25 +++++++++\n tests/Feature/Mcp/GetMeToolFeatureTest.php | 140 +++++++++++++++++++++++++++++++++++++++++++++++\n tests/Feature/Mcp/ListCallsToolFeatureTest.php | 2 +-\n tests/Feature/Mcp/McpTestHelpersTrait.php | 19 ++++++-\n tests/Unit/Component/ES/ChunkSizeTest.php | 50 +++++++++++++++++\n tests/Unit/Component/ES/Processor/DTOs/SelectionListTest.php | 27 +++++++---\n tests/Unit/Component/ES/Processor/TargetEntitiesSelectorTest.php | 39 ++++++++------\n tests/Unit/Component/MeetingBot/Service/ParticipantMatcherTest.php | 68 ++++++++++++++++++++++-\n tests/Unit/Exceptions/RateLimitExceptionTest.php | 56 +++++++++++++++++++\n tests/Unit/Jobs/Crm/MatchActivityCrmDataTest.php | 8 +--\n tests/Unit/Jobs/Middleware/HandleHubspotRateLimitTest.php | 151 +++++++++++++++++++++++++++++++++++++++++++++++++++\n tests/Unit/Services/Activity/HubSpot/ServiceTest.php | 109 +++++++++++++++++++++++++++++++++++++\n tests/Unit/Services/Crm/Hubspot/ClientTest.php | 250 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++\n tests/Unit/Services/Crm/Hubspot/Pagination/HubspotPaginationServiceTest.php | 283 +++++++++++++++++++++---------------------------------------------------------------------------\n 37 files changed, 1587 insertions(+), 344 deletions(-)\n create mode 100644 app/Component/ES/ChunkSize.php\n create mode 100644 app/Jobs/Middleware/HandleHubspotRateLimit.php\n create mode 100644 app/Mcp/Tools/GetMeTool.php\n create mode 100644 database/migrations/2026_05_13_124153_create_mcp_feature_flag.php\n create mode 100644 tests/Feature/Mcp/GetMeToolFeatureTest.php\n create mode 100644 tests/Unit/Component/ES/ChunkSizeTest.php\n create mode 100644 tests/Unit/Exceptions/RateLimitExceptionTest.php\n create mode 100644 tests/Unit/Jobs/Middleware/HandleHubspotRateLimitTest.php\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (master) $ git pull\nAlready up to date.\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (master) $ co -b JY-20676-delete-report-related-objects\nSwitched to a new branch 'JY-20676-delete-report-related-objects'\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20676-delete-report-related-objects) $ csfix\ndocker exec -it docker_lamp_1 ./vendor/bin/php-cs-fixer fix --config=.php-cs-fixer.dist.php -v --using-cache=no --diff \nPHP CS Fixer 3.87.1 Alexander by Fabien Potencier, Dariusz Ruminski and contributors.\nPHP runtime: 8.3.30\nRunning analysis on 7 cores with 10 files per process.\nParallel runner is an experimental feature and may be unstable, use it at your own risk. Feedback highly appreciated!\nLoaded config default from \".php-cs-fixer.dist.php\".\n 5690/5690 [▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓] 100%\n\n 1) app/Console/Commands/JiminnyDebugCommand.php (statement_indentation, blank_line_before_statement)\n ---------- begin diff ----------\n--- /home/jiminny/app/Console/Commands/JiminnyDebugCommand.php\n+++ /home/jiminny/app/Console/Commands/JiminnyDebugCommand.php\n@@ -23,6 +23,7 @@\n \n if ($action === 'redis-set') {\n $this->testRedisSet();\n+\n return;\n }\n \n@@ -45,7 +46,7 @@\n $ttl = 60;\n \n try {\n-// $result = Redis::set($testKey, $testValue, 'EX', $ttl, 'NX');\n+ // $result = Redis::set($testKey, $testValue, 'EX', $ttl, 'NX');\n $result = Redis::set($testKey, $testValue, ['nx', 'ex' => $ttl]);\n \n if ($result) {\n\n ----------- end diff -----------\n\n\nFixed 1 of 5690 files in 50.673 seconds, 67.00 MB memory used\n\nWhat's next:\n Try Docker Debug for seamless, persistent debugging tools in any container or image → docker debug docker_lamp_1\n Learn more at https://docs.docker.com/go/debug-cli/\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20676-delete-report-related-objects) $ ;xd\ndocker exec -it docker_lamp_1 bash -c \"mv /usr/local/etc/php/conf.d/xdebug.ini ~/xdebug.ini\"\n\nWhat's next:\n Try Docker Debug for seamless, persistent debugging tools in any container or image → docker debug docker_lamp_1\n Learn more at https://docs.docker.com/go/debug-cli/\ndocker exec -it docker_lamp_1 supervisorctl restart all\njiminny-worker-processing-2:jiminny-worker-processing-2_00: stopped\njiminny-worker-processing-3:jiminny-worker-processing-3_00: stopped\njiminny-worker-processing-4:jiminny-worker-processing-4_00: stopped\njiminny-worker-processing-5:jiminny-worker-processing-5_00: stopped\njiminny-worker-processing-delayed:jiminny-worker-processing-delayed_00: stopped\nworker-analytics:worker-analytics_00: stopped\nworker-crm-update:worker-crm-update_00: stopped\nworker-download:worker-download_00: stopped\nworker-nudges:worker-nudges_00: stopped\nworker-calendar:worker-calendar_00: stopped\nworker-audio:worker-audio_00: stopped\njiminny-worker-processing-1:jiminny-worker-processing-1_00: stopped\nworker:worker_00: stopped\nworker-conferences:worker-conferences_00: stopped\nworker-crm-sync:worker-crm-sync_00: stopped\nworker-emails:worker-emails_00: stopped\nworker-es-update:worker-es-update_00: stopped\nartisan-schedule:artisan-schedule_00: stopped\nartisan-schedule:artisan-schedule_00: started\njiminny-worker-processing-1:jiminny-worker-processing-1_00: started\njiminny-worker-processing-2:jiminny-worker-processing-2_00: started\njiminny-worker-processing-3:jiminny-worker-processing-3_00: started\njiminny-worker-processing-4:jiminny-worker-processing-4_00: started\njiminny-worker-processing-5:jiminny-worker-processing-5_00: started\njiminny-worker-processing-delayed:jiminny-worker-processing-delayed_00: started\nworker:worker_00: started\nworker-analytics:worker-analytics_00: started\nworker-audio:worker-audio_00: started\nworker-calendar:worker-calendar_00: started\nworker-conferences:worker-conferences_00: started\nworker-crm-sync:worker-crm-sync_00: started\nworker-crm-update:worker-crm-update_00: started\nworker-download:worker-download_00: started\nworker-emails:worker-emails_00: started\nworker-es-update:worker-es-update_00: started\nworker-nudges:worker-nudges_00: started\n\nWhat's next:\n Try Docker Debug for seamless, persistent debugging tools in any container or image → docker debug docker_lamp_1\n Learn more at https://docs.docker.com/go/debug-cli/\ndocker exec -it docker_lamp_1 php -v\nPHP 8.3.30 (cli) (built: Mar 16 2026 22:32:32) (NTS)\nCopyright (c) The PHP Group\nZend Engine v4.3.30, Copyright (c) Zend Technologies\n with Zend OPcache v8.3.30, Copyright (c), by Zend Technologies\n\nWhat's next:\n Try Docker Debug for seamless, persistent debugging tools in any container or image → docker debug docker_lamp_1\n Learn more at https://docs.docker.com/go/debug-cli/\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20676-delete-report-related-objects) $ git status\nOn branch JY-20676-delete-report-related-objects\nChanges not staged for commit:\n (use \"git add <file>...\" to update what will be committed)\n (use \"git restore <file>...\" to discard changes in working directory)\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tmodified: .env.local\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tmodified: app/Console/Commands/JiminnyDebugCommand.php\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tmodified: config/logging.php\n\nUntracked files:\n (use \"git add <file>...\" to include in what will be committed)\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\t.env.nikilocal\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\t.env.other\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tWEBHOOK_FILTERING_IMPLEMENTATION.md\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tapp/Console/Commands/Crm/Hubspot/SimulateWebhooksCommand.php\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tapp/Console/Commands/Reports/CreateMockAskJiminnyReportResultCommand.php\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tids.txt\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tpublic/favicon.ico\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\traw_sql_query.sql\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\ttests/Unit/Policies/CanAccessAiReportsTest.php\n\nno changes added to commit (use \"git add\" and/or \"git commit -a\")\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20676-delete-report-related-objects) $ git push -u origin JY-20676-delete-report-related-objects\nEnumerating objects: 45, done.\nCounting objects: 100% (45/45), done.\nDelta compression using up to 8 threads\nCompressing objects: 100% (24/24), done.\nWriting objects: 100% (24/24), 3.62 KiB | 3.62 MiB/s, done.\nTotal 24 (delta 19), reused 0 (delta 0), pack-reused 0\nremote: Resolving deltas: 100% (19/19), completed with 19 local objects.\nremote: \nremote: Create a pull request for 'JY-20676-delete-report-related-objects' on GitHub by visiting:\nremote: https://github.com/jiminny/app/pull/new/JY-20676-delete-report-related-objects\nremote: \nTo github.com:jiminny/app.git\n * [new branch] JY-20676-delete-report-related-objects -> JY-20676-delete-report-related-objects\nbranch 'JY-20676-delete-report-related-objects' set up to track 'origin/JY-20676-delete-report-related-objects'.\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20676-delete-report-related-objects) $ csfix\ndocker exec -it docker_lamp_1 ./vendor/bin/php-cs-fixer fix --config=.php-cs-fixer.dist.php -v --using-cache=no --diff \nPHP CS Fixer 3.87.1 Alexander by Fabien Potencier, Dariusz Ruminski and contributors.\nPHP runtime: 8.3.30\nRunning analysis on 7 cores with 10 files per process.\nParallel runner is an experimental feature and may be unstable, use it at your own risk. Feedback highly appreciated!\nLoaded config default from \".php-cs-fixer.dist.php\".\n 5690/5690 [▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓] 100%\n\n 1) app/Http/Controllers/API/V2/AskJiminnyReportsController.php (blank_line_before_statement)\n ---------- begin diff ----------\n--- /home/jiminny/app/Http/Controllers/API/V2/AskJiminnyReportsController.php\n+++ /home/jiminny/app/Http/Controllers/API/V2/AskJiminnyReportsController.php\n@@ -140,6 +140,7 @@\n if ($enabled && $report->isAskJiminnyReport() && ! $report->canExecute()) {\n $error = 'This report is missing a saved search or prompt. ' .\n 'Edit the report to complete the setup before enabling it.';\n+\n return new JsonResponse(\n ['error' => $error],\n Response::HTTP_UNPROCESSABLE_ENTITY\n\n ----------- end diff -----------\n\n\nFixed 1 of 5690 files in 71.757 seconds, 60.00 MB memory used\n\nWhat's next:\n Try Docker Debug for seamless, persistent debugging tools in any container or image → docker debug docker_lamp_1\n Learn more at https://docs.docker.com/go/debug-cli/\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20676-delete-report-related-objects) $ git pull\nremote: Enumerating objects: 158, done.\nremote: Counting objects: 100% (103/103), done.\nremote: Compressing objects: 100% (37/37), done.\nremote: Total 158 (delta 80), reused 74 (delta 66), pack-reused 55 (from 3)\nReceiving objects: 100% (158/158), 80.59 KiB | 982.00 KiB/s, done.\nResolving deltas: 100% (85/85), completed with 45 local objects.\nFrom github.com:jiminny/app\n 02a33811ee..c6ce5e2440 JY-20676-delete-report-related-objects -> origin/JY-20676-delete-report-related-objects\n 7ce96cb5fe..6c59f04358 JY-20808-low-priority-indexing-queue -> origin/JY-20808-low-priority-indexing-queue\n 3906a9238a..2b5e6ea62b JY-20835-mcp-enable-users-to-get-a-list-of-deals-and-their-details -> origin/JY-20835-mcp-enable-users-to-get-a-list-of-deals-and-their-details\n 5604af40cf..ea3519f0e2 master -> origin/master\n * [new branch] switch-eu-assembly -> origin/switch-eu-assembly\nUpdating 02a33811ee..c6ce5e2440\nFast-forward\n app/Component/ES/ElasticSearchDocumentPartialUpdater.php | 48 ---\n app/Component/ParticipantSpeech/Services/ParticipantAttributionService.php | 4 +-\n app/Component/Settings/AutoScoring/Services/UpdateAutoScoreService.php | 20 +-\n app/Component/Transcription/Service/StorageService.php | 8 +-\n front-end/package.json | 2 +-\n front-end/src/components/DealInsights/Modals/AskAnythingModal.vue | 23 ++\n front-end/src/components/shared/AskAnything/AskAnythingPromptFormItem.vue | 2 +\n front-end/src/components/shared/AskAnything/AskAnythingSettingsDrawer.vue | 23 +-\n front-end/src/components/shared/AskAnything/__mocks__/AskAnythingSettingsDrawer.mocks.js | 1 +\n front-end/src/components/shared/AskAnything/__tests__/AskAnythingSettingsDrawer.spec.js | 135 ++++---\n front-end/src/components/shared/AskAnything/__tests__/__snapshots__/AskAnythingSettingsDrawer.spec.js.html | 1235 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++\n front-end/src/components/shared/AskAnything/__tests__/__snapshots__/AskAnythingSettingsDrawer.spec.js.snap | 1382 ----------------------------------------------------------------\n front-end/src/components/shared/AskAnything/prompts.js | 1 +\n front-end/src/components/shared/AskAnything/useAskAnything.js | 1 +\n front-end/yarn.lock | 8 +-\n tests/Unit/Component/ES/ElasticSearchDocumentPartialUpdaterTest.php | 42 --\n tests/Unit/Component/Settings/AutoScoring/Services/UpdateAutoScoreServiceTest.php | 86 ++--\n tests/Unit/Component/Transcription/Service/StorageServiceTest.php | 29 +-\n 18 files changed, 1448 insertions(+), 1602 deletions(-)\n delete mode 100644 app/Component/ES/ElasticSearchDocumentPartialUpdater.php\n create mode 100644 front-end/src/components/shared/AskAnything/__tests__/__snapshots__/AskAnythingSettingsDrawer.spec.js.html\n delete mode 100644 front-end/src/components/shared/AskAnything/__tests__/__snapshots__/AskAnythingSettingsDrawer.spec.js.snap\n delete mode 100644 tests/Unit/Component/ES/ElasticSearchDocumentPartialUpdaterTest.php\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20676-delete-report-related-objects) $ csfix\ndocker exec -it docker_lamp_1 ./vendor/bin/php-cs-fixer fix --config=.php-cs-fixer.dist.php -v --using-cache=no --diff \nPHP CS Fixer 3.87.1 Alexander by Fabien Potencier, Dariusz Ruminski and contributors.\nPHP runtime: 8.3.30\nRunning analysis on 7 cores with 10 files per process.\nParallel runner is an experimental feature and may be unstable, use it at your own risk. Feedback highly appreciated!\nLoaded config default from \".php-cs-fixer.dist.php\".","depth":4,"on_screen":true,"value":"Last login: Mon May 18 09:17:28 on ttys007\n\nPoetry could not find a pyproject.toml file in /Users/lukas/jiminny/app or its parents\n\nPoetry could not find a pyproject.toml file in /Users/lukas/jiminny/app or its parents\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (pipedrive-sdk-poc) $ co master\nerror: Your local changes to the following files would be overwritten by checkout:\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tPIPEDRIVE_V2_MIGRATION_TICKETS.md\nPlease commit your changes or stash them before you switch branches.\nAborting\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (pipedrive-sdk-poc) $ git pull\nremote: Enumerating objects: 1047, done.\nremote: Counting objects: 100% (832/832), done.\nremote: Compressing objects: 100% (298/298), done.\nremote: Total 1047 (delta 634), reused 596 (delta 534), pack-reused 215 (from 3)\nReceiving objects: 100% (1047/1047), 353.16 KiB | 1.56 MiB/s, done.\nResolving deltas: 100% (687/687), completed with 107 local objects.\nFrom github.com:jiminny/app\n 907c54896c..34656c53ed pipedrive-sdk-poc -> origin/pipedrive-sdk-poc\n 03325ec50f..4e7078fd8b JY-18091-upgrade-to-php-8-5 -> origin/JY-18091-upgrade-to-php-8-5\n e7d231e163..bc6a3fce6b JY-20725-handle-HS-search-rate-limit -> origin/JY-20725-handle-HS-search-rate-limit\n * [new branch] JY-20749-user-can-view-recorded-meetings -> origin/JY-20749-user-can-view-recorded-meetings\n 98ca281a04..e0351be069 JY-20808-low-priority-indexing-queue -> origin/JY-20808-low-priority-indexing-queue\n 569abb5149..3906a9238a JY-20835-mcp-enable-users-to-get-a-list-of-deals-and-their-details -> origin/JY-20835-mcp-enable-users-to-get-a-list-of-deals-and-their-details\n ad6c2a86e8..50eb6afba9 JY-20846-mcp-enable-the-ai-to-know-details-about-the-user -> origin/JY-20846-mcp-enable-the-ai-to-know-details-about-the-user\n * [new branch] JY-20893-chunk-control-per-update-target -> origin/JY-20893-chunk-control-per-update-target\n 31c62924a5..cb4ebf0c36 master -> origin/master\nUpdating 907c54896c..34656c53ed\nFast-forward\n PIPEDRIVE_V2_MIGRATION_TICKETS.md | 52 ++++++++++++++++++++++++++++++++++++++++++++++++++++\n 1 file changed, 52 insertions(+)\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (pipedrive-sdk-poc) $ co master\nM\u0000\u0000\u0000\u0000\u0000\u0000\t.env.local\nM\u0000\u0000\u0000\u0000\u0000\u0000\tconfig/logging.php\nSwitched to branch 'master'\nYour branch is behind 'origin/master' by 31 commits, and can be fast-forwarded.\n (use \"git pull\" to update your local branch)\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (master) $ git pull\nUpdating 31c62924a5..cb4ebf0c36\nFast-forward\n app/Component/ES/Processor/Traits/SelectEntityListTrait.php | 20 ------\n app/Services/Calendar/CalendarActivityService.php | 46 +++++++++++++\n app/Services/Calendar/Command/MapActivityData.php | 106 +++-------------------------\n docs/mcp/explorer/explorer.html | 104 +++++++++++++++++++++++++---\n docs/mcp/explorer/explorer.template.html | 102 ++++++++++++++++++++++++---\n docs/mcp/tools-list.json | 373 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++-------\n docs/mcp/tools.md | 117 +++++++++++++++++++++++--------\n tests/Unit/Component/ES/AsyncUpdateElasticSearchTest.php | 16 +----\n tests/Unit/Component/ES/Listeners/UpdateMultipleTargetsListenerTest.php | 10 ---\n tests/Unit/Component/ES/Listeners/UpdateSingleTargetListenerTest.php | 6 --\n tests/Unit/Component/ES/Processor/TargetEntitiesSelectorTest.php | 9 ---\n tests/Unit/Component/ES/Processor/Traits/SelectEntityListTraitTest.php | 15 ++--\n tests/Unit/Component/ES/UpdateProcessManagerTest.php | 2 -\n tests/Unit/Services/Calendar/CalendarActivityServiceTest.php | 150 ++++++++++++++++++++++++++++++++++++++--\n tests/Unit/Services/Calendar/Command/MapActivityDataTest.php | 78 ++-------------------\n 15 files changed, 832 insertions(+), 322 deletions(-)\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (master) $ co -b JY-20613-allow-owner-role-on-team-setup\nSwitched to a new branch 'JY-20613-allow-owner-role-on-team-setup'\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20613-allow-owner-role-on-team-setup) $ csfix\ndocker exec -it docker_lamp_1 ./vendor/bin/php-cs-fixer fix --config=.php-cs-fixer.dist.php -v --using-cache=no --diff \nPHP CS Fixer 3.87.1 Alexander by Fabien Potencier, Dariusz Ruminski and contributors.\nPHP runtime: 8.3.30\nRunning analysis on 7 cores with 10 files per process.\nParallel runner is an experimental feature and may be unstable, use it at your own risk. Feedback highly appreciated!\nLoaded config default from \".php-cs-fixer.dist.php\".\n 5682/5682 [▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓] 100%\n\n\nFixed 0 of 5682 files in 56.978 seconds, 67.00 MB memory used\n\nWhat's next:\n Try Docker Debug for seamless, persistent debugging tools in any container or image → docker debug docker_lamp_1\n Learn more at https://docs.docker.com/go/debug-cli/\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20613-allow-owner-role-on-team-setup) $ ;xd\ndocker exec -it docker_lamp_1 bash -c \"mv /usr/local/etc/php/conf.d/xdebug.ini ~/xdebug.ini\"\n\nWhat's next:\n Try Docker Debug for seamless, persistent debugging tools in any container or image → docker debug docker_lamp_1\n Learn more at https://docs.docker.com/go/debug-cli/\ndocker exec -it docker_lamp_1 supervisorctl restart all\njiminny-worker-processing-2:jiminny-worker-processing-2_00: stopped\njiminny-worker-processing-3:jiminny-worker-processing-3_00: stopped\njiminny-worker-processing-4:jiminny-worker-processing-4_00: stopped\njiminny-worker-processing-5:jiminny-worker-processing-5_00: stopped\njiminny-worker-processing-delayed:jiminny-worker-processing-delayed_00: stopped\nworker-analytics:worker-analytics_00: stopped\nworker-crm-update:worker-crm-update_00: stopped\nworker-download:worker-download_00: stopped\nworker-nudges:worker-nudges_00: stopped\nartisan-schedule:artisan-schedule_00: stopped\nworker-emails:worker-emails_00: stopped\nworker-calendar:worker-calendar_00: stopped\nworker:worker_00: stopped\nworker-conferences:worker-conferences_00: stopped\nworker-crm-sync:worker-crm-sync_00: stopped\njiminny-worker-processing-1:jiminny-worker-processing-1_00: stopped\nworker-audio:worker-audio_00: stopped\nworker-es-update:worker-es-update_00: stopped\nartisan-schedule:artisan-schedule_00: started\njiminny-worker-processing-1:jiminny-worker-processing-1_00: started\njiminny-worker-processing-2:jiminny-worker-processing-2_00: started\njiminny-worker-processing-3:jiminny-worker-processing-3_00: started\njiminny-worker-processing-4:jiminny-worker-processing-4_00: started\njiminny-worker-processing-5:jiminny-worker-processing-5_00: started\njiminny-worker-processing-delayed:jiminny-worker-processing-delayed_00: started\nworker:worker_00: started\nworker-analytics:worker-analytics_00: started\nworker-audio:worker-audio_00: started\nworker-calendar:worker-calendar_00: started\nworker-conferences:worker-conferences_00: started\nworker-crm-sync:worker-crm-sync_00: started\nworker-crm-update:worker-crm-update_00: started\nworker-download:worker-download_00: started\nworker-emails:worker-emails_00: started\nworker-es-update:worker-es-update_00: started\nworker-nudges:worker-nudges_00: started\n\nWhat's next:\n Try Docker Debug for seamless, persistent debugging tools in any container or image → docker debug docker_lamp_1\n Learn more at https://docs.docker.com/go/debug-cli/\ndocker exec -it docker_lamp_1 php -v\nPHP 8.3.30 (cli) (built: Mar 16 2026 22:32:32) (NTS)\nCopyright (c) The PHP Group\nZend Engine v4.3.30, Copyright (c) Zend Technologies\n with Zend OPcache v8.3.30, Copyright (c), by Zend Technologies\n\nWhat's next:\n Try Docker Debug for seamless, persistent debugging tools in any container or image → docker debug docker_lamp_1\n Learn more at https://docs.docker.com/go/debug-cli/\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20613-allow-owner-role-on-team-setup) $ csfix\ndocker exec -it docker_lamp_1 ./vendor/bin/php-cs-fixer fix --config=.php-cs-fixer.dist.php -v --using-cache=no --diff \nPHP CS Fixer 3.87.1 Alexander by Fabien Potencier, Dariusz Ruminski and contributors.\nPHP runtime: 8.3.30\nRunning analysis on 7 cores with 10 files per process.\nParallel runner is an experimental feature and may be unstable, use it at your own risk. Feedback highly appreciated!\nLoaded config default from \".php-cs-fixer.dist.php\".\n 5682/5682 [▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓] 100%\n\n\nFixed 0 of 5682 files in 49.910 seconds, 60.00 MB memory used\n\nWhat's next:\n Try Docker Debug for seamless, persistent debugging tools in any container or image → docker debug docker_lamp_1\n Learn more at https://docs.docker.com/go/debug-cli/\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20613-allow-owner-role-on-team-setup) $ git status\nOn branch JY-20613-allow-owner-role-on-team-setup\nYour branch is ahead of 'origin/JY-20613-allow-owner-role-on-team-setup' by 1 commit.\n (use \"git push\" to publish your local commits)\n\nChanges not staged for commit:\n (use \"git add <file>...\" to update what will be committed)\n (use \"git restore <file>...\" to discard changes in working directory)\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tmodified: .env.local\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tmodified: config/logging.php\n\nUntracked files:\n (use \"git add <file>...\" to include in what will be committed)\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\t.env.nikilocal\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\t.env.other\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tWEBHOOK_FILTERING_IMPLEMENTATION.md\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tapp/Console/Commands/Crm/Hubspot/SimulateWebhooksCommand.php\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tapp/Console/Commands/Reports/CreateMockAskJiminnyReportResultCommand.php\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tids.txt\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tpublic/favicon.ico\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\traw_sql_query.sql\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\ttests/Unit/Policies/CanAccessAiReportsTest.php\n\nno changes added to commit (use \"git add\" and/or \"git commit -a\")\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20613-allow-owner-role-on-team-setup) $ git pull\nremote: Enumerating objects: 248, done.\nremote: Counting objects: 100% (128/128), done.\nremote: Compressing objects: 100% (23/23), done.\nremote: Total 59 (delta 43), reused 44 (delta 33), pack-reused 0 (from 0)\nUnpacking objects: 100% (59/59), 10.48 KiB | 228.00 KiB/s, done.\nFrom github.com:jiminny/app\n b7df560451..190239dfd4 JY-20613-allow-owner-role-on-team-setup -> origin/JY-20613-allow-owner-role-on-team-setup\n e0351be069..d94a285ae7 JY-20808-low-priority-indexing-queue -> origin/JY-20808-low-priority-indexing-queue\n * [new branch] JY-20920-fix-participant-matcher -> origin/JY-20920-fix-participant-matcher\n cb4ebf0c36..90bca4e4b2 master -> origin/master\nMerge made by the 'ort' strategy.\n app/Component/ES/ChunkSize.php | 54 +++++++++++++++++++++++++++\n app/Component/ES/Processor/DTOs/SelectionList.php | 4 +-\n app/Component/ES/Processor/TargetEntitiesSelector.php | 19 ++++++----\n app/Http/Middleware/McpTierMiddleware.php | 27 +++-----------\n app/Mcp/Servers/JiminnyServer.php | 2 +\n app/Mcp/Tools/GetMeTool.php | 157 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++\n app/Models/Feature/FeatureEnum.php | 1 +\n database/migrations/2026_05_13_124153_create_mcp_feature_flag.php | 25 +++++++++++++\n front-end/src/components/Settings/Kiosk/modals/EditTeamModal/EditTeamModal.vue | 52 ++++++++++++++++++--------\n front-end/src/components/Settings/Kiosk/modals/EditTeamModal/__tests__/EditTeamModal.spec.js | 14 +++++++\n tests/Feature/Mcp/GetMeToolFeatureTest.php | 140 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++\n tests/Feature/Mcp/ListCallsToolFeatureTest.php | 2 +-\n tests/Feature/Mcp/McpTestHelpersTrait.php | 19 +++++++++-\n tests/Unit/Component/ES/ChunkSizeTest.php | 50 +++++++++++++++++++++++++\n tests/Unit/Component/ES/Processor/DTOs/SelectionListTest.php | 27 ++++++++++----\n tests/Unit/Component/ES/Processor/TargetEntitiesSelectorTest.php | 39 +++++++++++---------\n 16 files changed, 557 insertions(+), 75 deletions(-)\n create mode 100644 app/Component/ES/ChunkSize.php\n create mode 100644 app/Mcp/Tools/GetMeTool.php\n create mode 100644 database/migrations/2026_05_13_124153_create_mcp_feature_flag.php\n create mode 100644 tests/Feature/Mcp/GetMeToolFeatureTest.php\n create mode 100644 tests/Unit/Component/ES/ChunkSizeTest.php\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20613-allow-owner-role-on-team-setup) $ git push\nEnumerating objects: 40, done.\nCounting objects: 100% (34/34), done.\nDelta compression using up to 8 threads\nCompressing objects: 100% (18/18), done.\nWriting objects: 100% (18/18), 1.58 KiB | 1.58 MiB/s, done.\nTotal 18 (delta 15), reused 0 (delta 0), pack-reused 0\nremote: Resolving deltas: 100% (15/15), completed with 13 local objects.\nTo github.com:jiminny/app.git\n 190239dfd4..ec1b261264 JY-20613-allow-owner-role-on-team-setup -> JY-20613-allow-owner-role-on-team-setup\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20613-allow-owner-role-on-team-setup) $ gbr\n* JY-20613-allow-owner-role-on-team-setup\n pipedrive-sdk-poc\n master\n JY-20903-update_activity-stage-on-opportunity-change\n JY-20904-fix-update-es-on-activity-command\n JY-20891-improve-sms-text-relays\n JY-20725-handle-HS-search-rate-limit\n JY-20818-move-AJ-reports-to-separated-datadog-metric\n JY-20773-fix-automated-reports-user-pilot-tracking\n JY-20157-AJ-report-not-send-notification\n JY-20508-notify-before-AJ-report-expiration\n JY-20372-ai-reports-promotion-pages\n JY-20352-sync-opportunities-without-a-local-owner-user-id-is-null\n JY-20738-debug-AJ-tracking-UP\n a\n JY-18909-automated-reports-ask-jiminny\n JY-20692-fix-integration-app-token-auth-response-change\n JY-20553-debug-crm-sync-delays\n JY-20698-fix-SF-activity-types-on-new-playbook\n JY-20543-AJ-report-tracking\n JY-20384-handle-auto-sync-with-no-access-to-event-type\n JY-20458-ask-jiminny-user-definitions\n JY-19666-fix-import-contacts-account-association\n JY-19666-HS-import-contacts-and-accounts-batch-job\n JY-20458-Ask-Jiminny-Reports\n JY-20200-batch-update-CRM-objects-Salesforce\n JY-19666-HS-webhooks-add-contact-and-company\n JY-20348-trigger-setup-DI-layout-on-team-creation\n JY-20326-refactor-info-message-in-command\n JY-20317-fix-auto-log-delay-issue-on-all-channels-disabled\n JY-20312-remove-on-update-change-last-synced-at-crm-configurations\n JY-20306-SF-skip-auto-sync-for-task-based-playbook\n JY-20192-remove-deleted-team-from-saved-search-filters\n JY-20197-import-opportunity-batch-job\n JY-20293-enable-status-field-for-pipedrive-deals\n JY-20191-remove-commands-interactive-prompts\n JY-20118-change-default-sync-strategy\n JY-20183-add-cache-on-auto-log-delay\n JY-20197-add-import-opportunity-batch-job\n 20118-hs-opportunity-make-webhook-strategy-default\n JY-20118-make-default-hs-opportunity-sync-strategy-webhook-based\n JY-20196-handle-opportunity-without-note\n JY-20118-improve-opportunity-import\n JY-20189-handle-activity-search-on-deleted-groups\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20613-allow-owner-role-on-team-setup) $ co JY-20725-handle-HS-search-rate-limit\nM\u0000\u0000\u0000\u0000\u0000\u0000\t.env.local\nM\u0000\u0000\u0000\u0000\u0000\u0000\tconfig/logging.php\nSwitched to branch 'JY-20725-handle-HS-search-rate-limit'\nYour branch is behind 'origin/JY-20725-handle-HS-search-rate-limit' by 439 commits, and can be fast-forwarded.\n (use \"git pull\" to update your local branch)\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20725-handle-HS-search-rate-limit) $ git pull\nUpdating 0f3e438941..bc6a3fce6b\nFast-forward\n .gitignore | 3 +-\n .windsurfrules | 168 ++---\n CLAUDE.md | 1 +\n app/Component/ActivityAnalytics/Service/CalculateTalkTimeOffsetsFromTranscription.php | 24 +-\n app/Component/AiActivityType/Services/AiActivityTypeEligibilityChecker.php | 28 +-\n app/Component/AiAutomation/Actions/PrepareUpdateDtoAction.php | 32 +-\n app/Component/AiAutomation/Services/CrmFillingEligibilityChecker.php | 47 ++\n app/Component/AiAutomation/TestCrmAiPromptService.php | 14 +\n app/Component/AiCallScoring/Services/AiCallScoringEligibilityChecker.php | 9 +\n app/Component/ES/ElasticSearchDocumentPartialUpdater.php | 13 +-\n app/Component/ES/ElasticSearchWorkerManager.php | 86 ---\n app/Component/ES/Processor/Actions/LoadDocumentsAction.php | 80 +--\n app/Component/ES/Processor/EntityQueryBuilder.php | 12 +-\n app/Component/ES/Processor/TargetEntitiesSelector.php | 2 +-\n app/Component/ES/Processor/Traits/SkipActivityTrait.php | 25 -\n app/Component/ES/Repositories/EsResetActivityRepository.php | 11 +-\n app/Component/ES/Worker/ActivityWorker.php | 73 --\n app/Component/ES/Worker/EntityWorker.php | 44 --\n app/Component/ES/Worker/WorkerAmount.php | 60 --\n app/Component/ES/Worker/WorkerInterface.php | 15 -\n app/Component/ElasticSearch/Contract/Searchable.php | 4 +\n app/Component/Encoding/Job/AnalyzeTrackChannelsJob.php | 20 +-\n app/Component/Encoding/Service/GenerateSpeechFromSilenceService.php | 85 ++-\n app/Component/FFMpeg/Services/GetSpeechIntervalsService.php | 18 +-\n app/Component/LanguageDetection/Services/FindSpeechTimeService.php | 22 +-\n app/Component/Nudge/Job/ProcessOrganisationImmediateNudgesJob.php | 218 +++++-\n app/Component/ParagraphBreaker/Services/TranscriptionParagraphsService.php | 4 +\n app/Component/ParticipantSpeech/Services/ParticipantSpeechesCreator.php | 33 +\n app/Component/ParticipantSpeech/Services/ParticipantSpeechesDeleter.php | 15 +\n app/Component/ParticipantSpeech/Services/ParticipantSpeechesProvider.php | 51 +-\n app/Component/ParticipantSpeech/Services/ParticipantSpeechesUploader.php | 36 +\n app/Component/ProphetAi/Exceptions/InsufficientTranscriptException.php | 11 +\n app/Component/Transcription/DTO/Http/Transcription/AssemblyAI/AssemblyAI/NoAssemblyIdException.php | 11 +\n app/Component/Transcription/DTO/Http/Transcription/AssemblyAI/AssemblyAI/SuccessfulResponse.php | 6 +\n app/Component/Transcription/DTO/Http/Transcription/TranscriptionIsNotCorrectFormatException.php | 11 +\n app/Component/Transcription/Diarization/Services/GetNormalizedParticipantSpeechesService.php | 23 +-\n app/Component/Transcription/Diarization/Source/MeetingBotSource.php | 16 +-\n app/Component/Transcription/TranscriptionProcessor/TranscriptionProcessor.php | 3 +\n app/Console/Commands/Activities/ActivityHardDeleteCommand.php | 4 +-\n app/Console/Commands/Activities/Copy.php | 2 +\n app/Console/Commands/Activities/SetupIntegration/TwilioSetS3RecordingCredentialsCommand.php | 119 ++++\n app/Console/Commands/Activities/UpdateActivityElasticSearchDocumentCommand.php | 10 +-\n app/Console/Commands/Crm/BackfillOpportunityUserFromAccountCommand.php | 126 ++++\n app/Console/Commands/Elasticsearch/AsyncUpdateEsActivities.php | 19 -\n app/Console/Commands/Elasticsearch/AsyncUpdateEsEntities.php | 50 +-\n app/Console/Commands/Elasticsearch/ResetAsyncElasticSearchCommand.php | 30 +-\n app/Console/Commands/GeckoExport/GeckoExportParticipantSpeechesCommand.php | 14 +-\n app/Console/Commands/IssueMcpTokenCommand.php | 84 +++\n app/Console/Commands/JiminnyDebugCommand.php | 7 +-\n app/Console/Commands/Tracks/CleanupActivityTracksCommand.php | 2 +-\n app/Console/Kernel.php | 6 +-\n app/Contracts/Services/Calendar/CalendarTrait.php | 80 ++-\n app/Events/AutomatedReports/AutomatedReportGenerated.php | 3 +\n app/Http/Controllers/API/AiCallScoring/AiScorecardController.php | 7 +-\n app/Http/Controllers/API/TeamAiAutomationController.php | 8 +\n app/Http/Controllers/CustomerApi/CustomerApiController.php | 4 +-\n app/Http/Controllers/Kiosk/ActivityController.php | 58 +-\n app/Http/Controllers/Settings/PlaybookController.php | 15 +-\n app/Http/Kernel.php | 23 +\n app/Http/Middleware/McpAuditMiddleware.php | 156 ++++\n app/Http/Middleware/McpTierMiddleware.php | 54 ++\n app/Http/Requests/API/V2/ZapierUploadActivityRequest.php | 28 +-\n app/Jobs/Activity/Import/ImportTwilioVideoSpeechesJob.php | 25 +-\n app/Jobs/Activity/Import/IsActivityReadyForProcessingJob.php | 10 +-\n app/Jobs/Calendar/SetupCalendarSync.php | 21 +-\n app/Jobs/ImportRemoteTrackJob.php | 96 ++-\n app/Jobs/Mailbox/EmailTextRelay.php | 15 +-\n app/Mcp/Contracts/McpCallRepositoryInterface.php | 30 +\n app/Mcp/DTO/ListCallsFilters.php | 29 +\n app/Mcp/Errors/McpError.php | 123 ++++\n app/Mcp/Repositories/McpActivityHydrator.php | 145 ++++\n app/Mcp/Repositories/McpCallRepository.php | 84 +++\n app/Mcp/Repositories/McpElasticCallRepository.php | 171 +++++\n app/Mcp/Servers/JiminnyServer.php | 38 +\n app/Mcp/Tools/ListCallsTool.php | 205 ++++++\n app/Models/Activity.php | 10 +-\n app/Models/Activity/Transcription.php | 17 +-\n app/Models/ElasticSearch/OpportunityElasticSearchTrait.php | 5 +\n app/Models/Participant.php | 1 +\n app/Providers/AppServiceProvider.php | 22 +\n app/Repositories/Crm/ContactRepository.php | 69 +-\n app/Repositories/ParticipantSpeechRepository.php | 13 +-\n app/Services/Activity/ParticipantsService.php | 19 +-\n app/Services/Activity/Twilio/S3RecordingCredentialsService.php | 82 +++\n app/Services/ActivityService.php | 21 +-\n app/Services/Calendar/CalendarActivityService.php | 46 ++\n app/Services/Calendar/Command/ImportParticipants.php | 1 +\n app/Services/Calendar/Command/MapActivityData.php | 106 +--\n app/Services/Calendar/GoogleCalendarService.php | 12 +-\n app/Services/Crm/Close/Processor/OpportunityProcessor.php | 2 +-\n app/Services/Crm/Close/Service.php | 22 +-\n app/Services/Crm/Copper/Service.php | 12 +-\n app/Services/Crm/Hubspot/Service.php | 154 +++-\n app/Services/Crm/Hubspot/ServiceTraits/OpportunitySyncTrait.php | 88 ++-\n app/Services/Crm/IntegrationApp/ServiceTraits/SyncCrmEntitiesTrait.php | 22 +-\n app/Services/Crm/Pipedrive/Service.php | 17 +-\n app/Services/Crm/Salesforce/Service.php | 42 +-\n app/Services/Mail/Office/EmailApiClient.php | 129 +---\n app/Services/RecallAI/Commands/ScheduleBotCommand.php | 39 +-\n app/Services/RecallAI/RecallAIService.php | 22 +-\n composer.json | 3 +-\n composer.lock | 87 ++-\n config/mcp.php | 23 +\n database/migrations/2026_04_30_120000_create_mcp_audit_log_table.php | 36 +\n docs/mcp/explorer/explorer.html | 697 ++++++++++++++++++\n docs/mcp/explorer/explorer.template.html | 697 ++++++++++++++++++\n docs/mcp/explorer/generate.js | 215 ++++++\n docs/mcp/explorer/tool-explorer-meta.json | 11 +\n docs/mcp/tools-list.json | 2536 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++\n docs/mcp/tools.md | 621 ++++++++++++++++\n front-end/package.json | 4 +-\n front-end/src/components/Settings/OrgSettings/AiAutomation/CrmFilling/TemplateFieldForm.vue | 28 +-\n front-end/src/components/Settings/OrgSettings/Playbooks/AddEditPlaybook.vue | 10 +\n front-end/src/components/playback/comments/ActivityComment.less | 10 +-\n front-end/src/components/shared/PromptTester/PromptTester.vue | 12 +-\n front-end/src/components/shared/__tests__/PromptTester.spec.js | 35 +\n front-end/src/components/shared/modals/EntityPickerModal/__tests__/useEntitiesCache.spec.ts | 37 +\n front-end/src/components/shared/modals/EntityPickerModal/useEntitiesCache.ts | 9 +\n front-end/yarn.lock | 16 +-\n phpstan-baseline.neon | 50 --\n routes/api.php | 11 +\n sonar-project.properties | 91 ++-\n tests/Feature/Component/Nudge/ProcessOrganisationImmediateNudgesJobTest.php | 534 ++++++++++++++\n tests/Feature/Jobs/ImportRemoteTrackJobTest.php | 283 +++++++-\n tests/Feature/Mcp/IssueMcpTokenCommandTest.php | 53 ++\n tests/Feature/Mcp/ListCallsToolElasticFeatureTest.php | 155 ++++\n tests/Feature/Mcp/ListCallsToolFeatureTest.php | 352 ++++++++++\n tests/Feature/Mcp/McpTestHelpersTrait.php | 77 ++\n tests/Feature/Services/Team/TeamDeleteHandlers/Retention/RetentionRepositoryHandlerTest.php | 1 +\n tests/Stubs/SentryStub.php | 18 +\n tests/Unit/Component/ActivityAnalytics/Service/CalculateTalkTimeOffsetFromTranscriptionTest.php | 28 +-\n tests/Unit/Component/AiActivityType/Services/AiActivityTypeEligibilityCheckerTest.php | 103 ++-\n tests/Unit/Component/AiAutomation/Actions/PrepareUpdateDtoActionTest.php | 91 +++\n tests/Unit/Component/AiAutomation/Services/CrmFillingEligibilityCheckerTest.php | 124 ++++\n tests/Unit/Component/AiAutomation/TestCrmAiPromptServiceTest.php | 67 +-\n tests/Unit/Component/AiCallScoring/Services/AiCallScoringEligibilityCheckerTest.php | 55 ++\n tests/Unit/Component/ES/ElasticSearchWorkerManagerTest.php | 135 ----\n tests/Unit/Component/ES/Processor/Actions/LoadDocumentsActionTest.php | 220 ++++++\n tests/Unit/Component/ES/Processor/EntityQueryBuilderTest.php | 21 +-\n tests/Unit/Component/ES/Processor/Traits/SkipActivityTraitTest.php | 51 --\n tests/Unit/Component/ES/Worker/ActivityWorkerTest.php | 174 -----\n tests/Unit/Component/ES/Worker/EntityWorkerTest.php | 97 ---\n tests/Unit/Component/ES/Worker/WorkerAmountTest.php | 116 ---\n tests/Unit/Component/Encoding/Job/AnalyzeTrackChannelsJobTest.php | 52 +-\n tests/Unit/Component/Encoding/Service/GenerateSpeechFromSilenceServiceTest.php | 171 ++---\n tests/Unit/Component/FFMpeg/Services/GetSpeechIntervalsTest.php | 36 +-\n tests/Unit/Component/LanguageDetection/Services/FindSpeechTimeServiceTest.php | 20 +-\n tests/Unit/Component/MobileSettings/MobileSettingsControllerTest.php | 5 +-\n tests/Unit/Component/ParticipantSpeech/Services/ParticipantSpeechesCreatorTest.php | 75 ++\n tests/Unit/Component/ParticipantSpeech/Services/ParticipantSpeechesDeleterTest.php | 63 ++\n tests/Unit/Component/ParticipantSpeech/Services/ParticipantSpeechesProviderTest.php | 134 ++++\n tests/Unit/Component/ParticipantSpeech/Services/ParticipantSpeechesUploaderTest.php | 57 ++\n tests/Unit/Component/Transcription/Diarization/Services/GetNormalizedParticipantSpeechesServiceTest.php | 51 +-\n tests/Unit/Component/Transcription/Diarization/Source/MeetingBotSourceTest.php | 29 +-\n tests/Unit/Contracts/Services/Calendar/CalendarTraitTest.php | 58 +-\n tests/Unit/Http/Controllers/Kiosk/ActivityControllerTest.php | 159 +++++\n tests/Unit/Jobs/Activity/Import/ImportTwilioVideoSpeechesJobTest.php | 22 +-\n tests/Unit/Jobs/Activity/Import/IsActivityReadyForProcessingJobTest.php | 26 +-\n tests/Unit/Jobs/Calendar/SetupCalendarSyncTest.php | 25 -\n tests/Unit/Services/Activity/ParticipantsServiceTest.php | 12 +-\n tests/Unit/Services/Activity/Twilio/S3RecordingCredentialsServiceTest.php | 180 +++++\n tests/Unit/Services/ActivityServiceTest.php | 132 ++++\n tests/Unit/Services/Calendar/CalendarActivityServiceTest.php | 150 +++-\n tests/Unit/Services/Calendar/Command/ImportParticipantsTest.php | 6 +-\n tests/Unit/Services/Calendar/Command/MapActivityDataTest.php | 78 +-\n tests/Unit/Services/Calendar/GoogleCalendarServiceTest.php | 116 +++\n tests/Unit/Services/Crm/Close/ServiceTest.php | 165 +++++\n tests/Unit/Services/Crm/Hubspot/ServiceTest.php | 272 ++++++-\n tests/Unit/Services/Crm/Hubspot/ServiceTraits/OpportunitySyncTest.php | 25 +-\n tests/Unit/Services/Crm/Hubspot/ServiceTraits/OpportunitySyncTraitMatchActivitiesTest.php | 3 +-\n tests/Unit/Services/Crm/IntegrationApp/ServiceTraits/SyncCrmEntitiesTraitOpportunitiesTest.php | 40 ++\n tests/Unit/Services/Crm/Pipedrive/ImportOpportunityMatchActivitiesTest.php | 2 +\n tests/Unit/Services/Crm/Salesforce/ServiceTest.php | 139 ++++\n tests/Unit/Services/Mail/Office/EmailApiClientTest.php | 195 ++---\n tests/Unit/Services/RecallAI/RecallAIServiceTest.php | 24 +-\n 175 files changed, 12562 insertions(+), 2162 deletions(-)\n create mode 120000 CLAUDE.md\n create mode 100644 app/Component/AiAutomation/Services/CrmFillingEligibilityChecker.php\n delete mode 100644 app/Component/ES/ElasticSearchWorkerManager.php\n delete mode 100644 app/Component/ES/Processor/Traits/SkipActivityTrait.php\n delete mode 100644 app/Component/ES/Worker/ActivityWorker.php\n delete mode 100644 app/Component/ES/Worker/EntityWorker.php\n delete mode 100644 app/Component/ES/Worker/WorkerAmount.php\n delete mode 100644 app/Component/ES/Worker/WorkerInterface.php\n create mode 100644 app/Component/ProphetAi/Exceptions/InsufficientTranscriptException.php\n create mode 100644 app/Component/Transcription/DTO/Http/Transcription/AssemblyAI/AssemblyAI/NoAssemblyIdException.php\n create mode 100644 app/Component/Transcription/DTO/Http/Transcription/TranscriptionIsNotCorrectFormatException.php\n create mode 100644 app/Console/Commands/Activities/SetupIntegration/TwilioSetS3RecordingCredentialsCommand.php\n create mode 100644 app/Console/Commands/Crm/BackfillOpportunityUserFromAccountCommand.php\n delete mode 100644 app/Console/Commands/Elasticsearch/AsyncUpdateEsActivities.php\n create mode 100644 app/Console/Commands/IssueMcpTokenCommand.php\n create mode 100644 app/Http/Middleware/McpAuditMiddleware.php\n create mode 100644 app/Http/Middleware/McpTierMiddleware.php\n create mode 100644 app/Mcp/Contracts/McpCallRepositoryInterface.php\n create mode 100644 app/Mcp/DTO/ListCallsFilters.php\n create mode 100644 app/Mcp/Errors/McpError.php\n create mode 100644 app/Mcp/Repositories/McpActivityHydrator.php\n create mode 100644 app/Mcp/Repositories/McpCallRepository.php\n create mode 100644 app/Mcp/Repositories/McpElasticCallRepository.php\n create mode 100644 app/Mcp/Servers/JiminnyServer.php\n create mode 100644 app/Mcp/Tools/ListCallsTool.php\n create mode 100644 app/Services/Activity/Twilio/S3RecordingCredentialsService.php\n create mode 100644 config/mcp.php\n create mode 100644 database/migrations/2026_04_30_120000_create_mcp_audit_log_table.php\n create mode 100644 docs/mcp/explorer/explorer.html\n create mode 100644 docs/mcp/explorer/explorer.template.html\n create mode 100644 docs/mcp/explorer/generate.js\n create mode 100644 docs/mcp/explorer/tool-explorer-meta.json\n create mode 100644 docs/mcp/tools-list.json\n create mode 100644 docs/mcp/tools.md\n create mode 100644 front-end/src/components/shared/modals/EntityPickerModal/__tests__/useEntitiesCache.spec.ts\n create mode 100644 tests/Feature/Component/Nudge/ProcessOrganisationImmediateNudgesJobTest.php\n create mode 100644 tests/Feature/Mcp/IssueMcpTokenCommandTest.php\n create mode 100644 tests/Feature/Mcp/ListCallsToolElasticFeatureTest.php\n create mode 100644 tests/Feature/Mcp/ListCallsToolFeatureTest.php\n create mode 100644 tests/Feature/Mcp/McpTestHelpersTrait.php\n create mode 100644 tests/Stubs/SentryStub.php\n create mode 100644 tests/Unit/Component/AiAutomation/Services/CrmFillingEligibilityCheckerTest.php\n delete mode 100644 tests/Unit/Component/ES/ElasticSearchWorkerManagerTest.php\n create mode 100644 tests/Unit/Component/ES/Processor/Actions/LoadDocumentsActionTest.php\n delete mode 100644 tests/Unit/Component/ES/Processor/Traits/SkipActivityTraitTest.php\n delete mode 100644 tests/Unit/Component/ES/Worker/ActivityWorkerTest.php\n delete mode 100644 tests/Unit/Component/ES/Worker/EntityWorkerTest.php\n delete mode 100644 tests/Unit/Component/ES/Worker/WorkerAmountTest.php\n create mode 100644 tests/Unit/Component/ParticipantSpeech/Services/ParticipantSpeechesCreatorTest.php\n create mode 100644 tests/Unit/Http/Controllers/Kiosk/ActivityControllerTest.php\n create mode 100644 tests/Unit/Services/Activity/Twilio/S3RecordingCredentialsServiceTest.php\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20725-handle-HS-search-rate-limit) $ git status\nOn branch master\nYour branch is behind 'origin/master' by 114 commits, and can be fast-forwarded.\n (use \"git pull\" to update your local branch)\n\nChanges not staged for commit:\n (use \"git add <file>...\" to update what will be committed)\n (use \"git restore <file>...\" to discard changes in working directory)\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tmodified: .env.local\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tmodified: app/Component/SCIM/Constants.php\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tmodified: app/Component/SCIM/ScimProvisioning.php\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tmodified: app/Component/Twilio/Conference/ConferenceManager/SoftPhoneManager.php\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tmodified: app/Console/Commands/JiminnyDebugCommand.php\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tmodified: app/DTO/SCIM/AAD/Request/CoreUserRequest.php\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tmodified: app/DTO/SCIM/AAD/Response/CoreUser.php\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tmodified: app/Services/Telephony/TextMessagingService.php\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tmodified: config/logging.php\n\nUntracked files:\n (use \"git add <file>...\" to include in what will be committed)\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\t.env.nikilocal\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\t.env.other\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tWEBHOOK_FILTERING_IMPLEMENTATION.md\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tapp/Component/SCIM/Mutators/Attributes/User/RoleAttr.php\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tapp/Console/Commands/Crm/Hubspot/SimulateWebhooksCommand.php\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tapp/Console/Commands/Reports/CreateMockAskJiminnyReportResultCommand.php\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tapp/Rules/ListenerRoleCannotHaveAdminOrManagerPermissionRule.php\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tids.txt\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tpublic/favicon.ico\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\traw_sql_query.sql\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\ttests/Unit/Component/SCIM/Mutators/Attributes/User/RoleAttrTest.php\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\ttests/Unit/Policies/CanAccessAiReportsTest.php\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\ttests/Unit/Rules/ListenerRoleCannotHaveAdminOrManagerPermissionRuleTest.php\n\nno changes added to commit (use \"git add\" and/or \"git commit -a\")\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (master) $ git pull\nremote: Enumerating objects: 306, done.\nremote: Counting objects: 100% (299/299), done.\nremote: Compressing objects: 100% (183/183), done.\nremote: Total 306 (delta 213), reused 171 (delta 116), pack-reused 7 (from 1)\nReceiving objects: 100% (306/306), 80.12 KiB | 1000.00 KiB/s, done.\nResolving deltas: 100% (213/213), completed with 53 local objects.\nFrom github.com:jiminny/app\n 90bca4e4b2..5604af40cf master -> origin/master\n 4e7078fd8b..0b8343d179 JY-18091-upgrade-to-php-8-5 -> origin/JY-18091-upgrade-to-php-8-5\n 098eeaa087..d5a447e492 JY-20613-allow-owner-role-on-team-setup -> origin/JY-20613-allow-owner-role-on-team-setup\n c3a76ace91..af65249d0f JY-20749-user-can-view-recorded-meetings -> origin/JY-20749-user-can-view-recorded-meetings\n d94a285ae7..7ce96cb5fe JY-20808-low-priority-indexing-queue -> origin/JY-20808-low-priority-indexing-queue\n * [new branch] JY-20842-remove-partial-updater -> origin/JY-20842-remove-partial-updater\n * [new branch] JY-20920-fix-participant-flip -> origin/JY-20920-fix-participant-flip\n * [new branch] secfix/npm-20260519 -> origin/secfix/npm-20260519\nUpdating cb4ebf0c36..5604af40cf\nFast-forward\n app/Component/ES/ChunkSize.php | 54 +++++++++++++++++++\n app/Component/ES/Processor/DTOs/SelectionList.php | 4 +-\n app/Component/ES/Processor/TargetEntitiesSelector.php | 19 ++++---\n app/Component/MeetingBot/Service/ParticipantMatcher.php | 46 ++++++++++++----\n app/Exceptions/RateLimitException.php | 19 ++++++-\n app/Http/Middleware/McpTierMiddleware.php | 27 ++--------\n app/Jobs/Crm/MatchActivityCrmData.php | 47 ++++++++++++----\n app/Jobs/Middleware/HandleHubspotRateLimit.php | 42 +++++++++++++++\n app/Mcp/Servers/JiminnyServer.php | 2 +\n app/Mcp/Tools/GetMeTool.php | 157 +++++++++++++++++++++++++++++++++++++++++++++++++++++\n app/Models/Feature/FeatureEnum.php | 1 +\n app/Services/Activity/HubSpot/ProviderResolver.php | 4 +-\n app/Services/Activity/HubSpot/ProviderResolverInterface.php | 2 +-\n app/Services/Activity/HubSpot/Providers/Provider.php | 2 +-\n app/Services/Activity/HubSpot/Providers/ProviderKixie.php | 2 +-\n app/Services/Activity/HubSpot/Providers/ProviderOrum.php | 2 +-\n app/Services/Activity/HubSpot/Providers/ProviderTwilio.php | 2 +-\n app/Services/Activity/HubSpot/Providers/ProviderTwilioFlex.php | 5 +-\n app/Services/Activity/HubSpot/Service.php | 97 +++++++++++++++++++++++++++------\n app/Services/Crm/Hubspot/Client.php | 132 +++++++++++++++++++++++++++++++++++++++++++++\n app/Services/Crm/Hubspot/HubspotClientInterface.php | 15 ++++++\n app/Services/Crm/Hubspot/Pagination/HubspotPaginationService.php | 21 ++++----\n app/Services/Crm/Hubspot/Pagination/PaginationState.php | 2 +-\n database/migrations/2026_05_13_124153_create_mcp_feature_flag.php | 25 +++++++++\n tests/Feature/Mcp/GetMeToolFeatureTest.php | 140 +++++++++++++++++++++++++++++++++++++++++++++++\n tests/Feature/Mcp/ListCallsToolFeatureTest.php | 2 +-\n tests/Feature/Mcp/McpTestHelpersTrait.php | 19 ++++++-\n tests/Unit/Component/ES/ChunkSizeTest.php | 50 +++++++++++++++++\n tests/Unit/Component/ES/Processor/DTOs/SelectionListTest.php | 27 +++++++---\n tests/Unit/Component/ES/Processor/TargetEntitiesSelectorTest.php | 39 ++++++++------\n tests/Unit/Component/MeetingBot/Service/ParticipantMatcherTest.php | 68 ++++++++++++++++++++++-\n tests/Unit/Exceptions/RateLimitExceptionTest.php | 56 +++++++++++++++++++\n tests/Unit/Jobs/Crm/MatchActivityCrmDataTest.php | 8 +--\n tests/Unit/Jobs/Middleware/HandleHubspotRateLimitTest.php | 151 +++++++++++++++++++++++++++++++++++++++++++++++++++\n tests/Unit/Services/Activity/HubSpot/ServiceTest.php | 109 +++++++++++++++++++++++++++++++++++++\n tests/Unit/Services/Crm/Hubspot/ClientTest.php | 250 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++\n tests/Unit/Services/Crm/Hubspot/Pagination/HubspotPaginationServiceTest.php | 283 +++++++++++++++++++++---------------------------------------------------------------------------\n 37 files changed, 1587 insertions(+), 344 deletions(-)\n create mode 100644 app/Component/ES/ChunkSize.php\n create mode 100644 app/Jobs/Middleware/HandleHubspotRateLimit.php\n create mode 100644 app/Mcp/Tools/GetMeTool.php\n create mode 100644 database/migrations/2026_05_13_124153_create_mcp_feature_flag.php\n create mode 100644 tests/Feature/Mcp/GetMeToolFeatureTest.php\n create mode 100644 tests/Unit/Component/ES/ChunkSizeTest.php\n create mode 100644 tests/Unit/Exceptions/RateLimitExceptionTest.php\n create mode 100644 tests/Unit/Jobs/Middleware/HandleHubspotRateLimitTest.php\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (master) $ git pull\nAlready up to date.\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (master) $ co -b JY-20676-delete-report-related-objects\nSwitched to a new branch 'JY-20676-delete-report-related-objects'\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20676-delete-report-related-objects) $ csfix\ndocker exec -it docker_lamp_1 ./vendor/bin/php-cs-fixer fix --config=.php-cs-fixer.dist.php -v --using-cache=no --diff \nPHP CS Fixer 3.87.1 Alexander by Fabien Potencier, Dariusz Ruminski and contributors.\nPHP runtime: 8.3.30\nRunning analysis on 7 cores with 10 files per process.\nParallel runner is an experimental feature and may be unstable, use it at your own risk. Feedback highly appreciated!\nLoaded config default from \".php-cs-fixer.dist.php\".\n 5690/5690 [▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓] 100%\n\n 1) app/Console/Commands/JiminnyDebugCommand.php (statement_indentation, blank_line_before_statement)\n ---------- begin diff ----------\n--- /home/jiminny/app/Console/Commands/JiminnyDebugCommand.php\n+++ /home/jiminny/app/Console/Commands/JiminnyDebugCommand.php\n@@ -23,6 +23,7 @@\n \n if ($action === 'redis-set') {\n $this->testRedisSet();\n+\n return;\n }\n \n@@ -45,7 +46,7 @@\n $ttl = 60;\n \n try {\n-// $result = Redis::set($testKey, $testValue, 'EX', $ttl, 'NX');\n+ // $result = Redis::set($testKey, $testValue, 'EX', $ttl, 'NX');\n $result = Redis::set($testKey, $testValue, ['nx', 'ex' => $ttl]);\n \n if ($result) {\n\n ----------- end diff -----------\n\n\nFixed 1 of 5690 files in 50.673 seconds, 67.00 MB memory used\n\nWhat's next:\n Try Docker Debug for seamless, persistent debugging tools in any container or image → docker debug docker_lamp_1\n Learn more at https://docs.docker.com/go/debug-cli/\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20676-delete-report-related-objects) $ ;xd\ndocker exec -it docker_lamp_1 bash -c \"mv /usr/local/etc/php/conf.d/xdebug.ini ~/xdebug.ini\"\n\nWhat's next:\n Try Docker Debug for seamless, persistent debugging tools in any container or image → docker debug docker_lamp_1\n Learn more at https://docs.docker.com/go/debug-cli/\ndocker exec -it docker_lamp_1 supervisorctl restart all\njiminny-worker-processing-2:jiminny-worker-processing-2_00: stopped\njiminny-worker-processing-3:jiminny-worker-processing-3_00: stopped\njiminny-worker-processing-4:jiminny-worker-processing-4_00: stopped\njiminny-worker-processing-5:jiminny-worker-processing-5_00: stopped\njiminny-worker-processing-delayed:jiminny-worker-processing-delayed_00: stopped\nworker-analytics:worker-analytics_00: stopped\nworker-crm-update:worker-crm-update_00: stopped\nworker-download:worker-download_00: stopped\nworker-nudges:worker-nudges_00: stopped\nworker-calendar:worker-calendar_00: stopped\nworker-audio:worker-audio_00: stopped\njiminny-worker-processing-1:jiminny-worker-processing-1_00: stopped\nworker:worker_00: stopped\nworker-conferences:worker-conferences_00: stopped\nworker-crm-sync:worker-crm-sync_00: stopped\nworker-emails:worker-emails_00: stopped\nworker-es-update:worker-es-update_00: stopped\nartisan-schedule:artisan-schedule_00: stopped\nartisan-schedule:artisan-schedule_00: started\njiminny-worker-processing-1:jiminny-worker-processing-1_00: started\njiminny-worker-processing-2:jiminny-worker-processing-2_00: started\njiminny-worker-processing-3:jiminny-worker-processing-3_00: started\njiminny-worker-processing-4:jiminny-worker-processing-4_00: started\njiminny-worker-processing-5:jiminny-worker-processing-5_00: started\njiminny-worker-processing-delayed:jiminny-worker-processing-delayed_00: started\nworker:worker_00: started\nworker-analytics:worker-analytics_00: started\nworker-audio:worker-audio_00: started\nworker-calendar:worker-calendar_00: started\nworker-conferences:worker-conferences_00: started\nworker-crm-sync:worker-crm-sync_00: started\nworker-crm-update:worker-crm-update_00: started\nworker-download:worker-download_00: started\nworker-emails:worker-emails_00: started\nworker-es-update:worker-es-update_00: started\nworker-nudges:worker-nudges_00: started\n\nWhat's next:\n Try Docker Debug for seamless, persistent debugging tools in any container or image → docker debug docker_lamp_1\n Learn more at https://docs.docker.com/go/debug-cli/\ndocker exec -it docker_lamp_1 php -v\nPHP 8.3.30 (cli) (built: Mar 16 2026 22:32:32) (NTS)\nCopyright (c) The PHP Group\nZend Engine v4.3.30, Copyright (c) Zend Technologies\n with Zend OPcache v8.3.30, Copyright (c), by Zend Technologies\n\nWhat's next:\n Try Docker Debug for seamless, persistent debugging tools in any container or image → docker debug docker_lamp_1\n Learn more at https://docs.docker.com/go/debug-cli/\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20676-delete-report-related-objects) $ git status\nOn branch JY-20676-delete-report-related-objects\nChanges not staged for commit:\n (use \"git add <file>...\" to update what will be committed)\n (use \"git restore <file>...\" to discard changes in working directory)\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tmodified: .env.local\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tmodified: app/Console/Commands/JiminnyDebugCommand.php\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tmodified: config/logging.php\n\nUntracked files:\n (use \"git add <file>...\" to include in what will be committed)\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\t.env.nikilocal\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\t.env.other\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tWEBHOOK_FILTERING_IMPLEMENTATION.md\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tapp/Console/Commands/Crm/Hubspot/SimulateWebhooksCommand.php\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tapp/Console/Commands/Reports/CreateMockAskJiminnyReportResultCommand.php\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tids.txt\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tpublic/favicon.ico\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\traw_sql_query.sql\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\ttests/Unit/Policies/CanAccessAiReportsTest.php\n\nno changes added to commit (use \"git add\" and/or \"git commit -a\")\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20676-delete-report-related-objects) $ git push -u origin JY-20676-delete-report-related-objects\nEnumerating objects: 45, done.\nCounting objects: 100% (45/45), done.\nDelta compression using up to 8 threads\nCompressing objects: 100% (24/24), done.\nWriting objects: 100% (24/24), 3.62 KiB | 3.62 MiB/s, done.\nTotal 24 (delta 19), reused 0 (delta 0), pack-reused 0\nremote: Resolving deltas: 100% (19/19), completed with 19 local objects.\nremote: \nremote: Create a pull request for 'JY-20676-delete-report-related-objects' on GitHub by visiting:\nremote: https://github.com/jiminny/app/pull/new/JY-20676-delete-report-related-objects\nremote: \nTo github.com:jiminny/app.git\n * [new branch] JY-20676-delete-report-related-objects -> JY-20676-delete-report-related-objects\nbranch 'JY-20676-delete-report-related-objects' set up to track 'origin/JY-20676-delete-report-related-objects'.\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20676-delete-report-related-objects) $ csfix\ndocker exec -it docker_lamp_1 ./vendor/bin/php-cs-fixer fix --config=.php-cs-fixer.dist.php -v --using-cache=no --diff \nPHP CS Fixer 3.87.1 Alexander by Fabien Potencier, Dariusz Ruminski and contributors.\nPHP runtime: 8.3.30\nRunning analysis on 7 cores with 10 files per process.\nParallel runner is an experimental feature and may be unstable, use it at your own risk. Feedback highly appreciated!\nLoaded config default from \".php-cs-fixer.dist.php\".\n 5690/5690 [▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓] 100%\n\n 1) app/Http/Controllers/API/V2/AskJiminnyReportsController.php (blank_line_before_statement)\n ---------- begin diff ----------\n--- /home/jiminny/app/Http/Controllers/API/V2/AskJiminnyReportsController.php\n+++ /home/jiminny/app/Http/Controllers/API/V2/AskJiminnyReportsController.php\n@@ -140,6 +140,7 @@\n if ($enabled && $report->isAskJiminnyReport() && ! $report->canExecute()) {\n $error = 'This report is missing a saved search or prompt. ' .\n 'Edit the report to complete the setup before enabling it.';\n+\n return new JsonResponse(\n ['error' => $error],\n Response::HTTP_UNPROCESSABLE_ENTITY\n\n ----------- end diff -----------\n\n\nFixed 1 of 5690 files in 71.757 seconds, 60.00 MB memory used\n\nWhat's next:\n Try Docker Debug for seamless, persistent debugging tools in any container or image → docker debug docker_lamp_1\n Learn more at https://docs.docker.com/go/debug-cli/\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20676-delete-report-related-objects) $ git pull\nremote: Enumerating objects: 158, done.\nremote: Counting objects: 100% (103/103), done.\nremote: Compressing objects: 100% (37/37), done.\nremote: Total 158 (delta 80), reused 74 (delta 66), pack-reused 55 (from 3)\nReceiving objects: 100% (158/158), 80.59 KiB | 982.00 KiB/s, done.\nResolving deltas: 100% (85/85), completed with 45 local objects.\nFrom github.com:jiminny/app\n 02a33811ee..c6ce5e2440 JY-20676-delete-report-related-objects -> origin/JY-20676-delete-report-related-objects\n 7ce96cb5fe..6c59f04358 JY-20808-low-priority-indexing-queue -> origin/JY-20808-low-priority-indexing-queue\n 3906a9238a..2b5e6ea62b JY-20835-mcp-enable-users-to-get-a-list-of-deals-and-their-details -> origin/JY-20835-mcp-enable-users-to-get-a-list-of-deals-and-their-details\n 5604af40cf..ea3519f0e2 master -> origin/master\n * [new branch] switch-eu-assembly -> origin/switch-eu-assembly\nUpdating 02a33811ee..c6ce5e2440\nFast-forward\n app/Component/ES/ElasticSearchDocumentPartialUpdater.php | 48 ---\n app/Component/ParticipantSpeech/Services/ParticipantAttributionService.php | 4 +-\n app/Component/Settings/AutoScoring/Services/UpdateAutoScoreService.php | 20 +-\n app/Component/Transcription/Service/StorageService.php | 8 +-\n front-end/package.json | 2 +-\n front-end/src/components/DealInsights/Modals/AskAnythingModal.vue | 23 ++\n front-end/src/components/shared/AskAnything/AskAnythingPromptFormItem.vue | 2 +\n front-end/src/components/shared/AskAnything/AskAnythingSettingsDrawer.vue | 23 +-\n front-end/src/components/shared/AskAnything/__mocks__/AskAnythingSettingsDrawer.mocks.js | 1 +\n front-end/src/components/shared/AskAnything/__tests__/AskAnythingSettingsDrawer.spec.js | 135 ++++---\n front-end/src/components/shared/AskAnything/__tests__/__snapshots__/AskAnythingSettingsDrawer.spec.js.html | 1235 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++\n front-end/src/components/shared/AskAnything/__tests__/__snapshots__/AskAnythingSettingsDrawer.spec.js.snap | 1382 ----------------------------------------------------------------\n front-end/src/components/shared/AskAnything/prompts.js | 1 +\n front-end/src/components/shared/AskAnything/useAskAnything.js | 1 +\n front-end/yarn.lock | 8 +-\n tests/Unit/Component/ES/ElasticSearchDocumentPartialUpdaterTest.php | 42 --\n tests/Unit/Component/Settings/AutoScoring/Services/UpdateAutoScoreServiceTest.php | 86 ++--\n tests/Unit/Component/Transcription/Service/StorageServiceTest.php | 29 +-\n 18 files changed, 1448 insertions(+), 1602 deletions(-)\n delete mode 100644 app/Component/ES/ElasticSearchDocumentPartialUpdater.php\n create mode 100644 front-end/src/components/shared/AskAnything/__tests__/__snapshots__/AskAnythingSettingsDrawer.spec.js.html\n delete mode 100644 front-end/src/components/shared/AskAnything/__tests__/__snapshots__/AskAnythingSettingsDrawer.spec.js.snap\n delete mode 100644 tests/Unit/Component/ES/ElasticSearchDocumentPartialUpdaterTest.php\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20676-delete-report-related-objects) $ csfix\ndocker exec -it docker_lamp_1 ./vendor/bin/php-cs-fixer fix --config=.php-cs-fixer.dist.php -v --using-cache=no --diff \nPHP CS Fixer 3.87.1 Alexander by Fabien Potencier, Dariusz Ruminski and contributors.\nPHP runtime: 8.3.30\nRunning analysis on 7 cores with 10 files per process.\nParallel runner is an experimental feature and may be unstable, use it at your own risk. Feedback highly appreciated!\nLoaded config default from \".php-cs-fixer.dist.php\".","is_focused":true},{"role":"AXRadioButton","text":"DOCKER","depth":2,"bounds":{"left":0.27027926,"top":1.0,"width":0.094913565,"height":-0.042298436},"on_screen":true,"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.27227393,"top":1.0,"width":0.005319149,"height":-0.04549086},"on_screen":true,"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"DEV (docker)","depth":2,"bounds":{"left":0.36519283,"top":1.0,"width":0.094913565,"height":-0.042298436},"on_screen":true,"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.3671875,"top":1.0,"width":0.005319149,"height":-0.04549086},"on_screen":true,"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"APP (docker)","depth":2,"bounds":{"left":0.46010637,"top":1.0,"width":0.09474734,"height":-0.042298436},"on_screen":true,"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.46210107,"top":1.0,"width":0.005319149,"height":-0.04549086},"on_screen":true,"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"screenpipe\"","depth":2,"bounds":{"left":0.55485374,"top":1.0,"width":0.09474734,"height":-0.042298436},"on_screen":true,"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.5568484,"top":1.0,"width":0.005319149,"height":-0.04549086},"on_screen":true,"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"-zsh","depth":2,"bounds":{"left":0.64960104,"top":1.0,"width":0.09474734,"height":-0.042298436},"on_screen":true,"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.6515958,"top":1.0,"width":0.005319149,"height":-0.04549086},"on_screen":true,"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"⌥⌘1","depth":1,"bounds":{"left":0.7307181,"top":1.0,"width":0.01861702,"height":-0.023144484},"on_screen":true,"automation_id":"_NS:8","role_description":"text"},{"role":"AXStaticText","text":"APP (docker)","depth":1,"bounds":{"left":0.49634308,"top":1.0,"width":0.029920213,"height":-0.02394259},"on_screen":true,"role_description":"text"}]...
|
2802650493718167367
|
-1358120912881272742
|
visual_change
|
accessibility
|
NULL
|
Last login: Mon May 18 09:17:28 on ttys007
Poetry Last login: Mon May 18 09:17:28 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 (pipedrive-sdk-poc) $ co master
error: Your local changes to the following files would be overwritten by checkout:
PIPEDRIVE_V2_MIGRATION_TICKETS.md
Please commit your changes or stash them before you switch branches.
Aborting
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (pipedrive-sdk-poc) $ git pull
remote: Enumerating objects: 1047, done.
remote: Counting objects: 100% (832/832), done.
remote: Compressing objects: 100% (298/298), done.
remote: Total 1047 (delta 634), reused 596 (delta 534), pack-reused 215 (from 3)
Receiving objects: 100% (1047/1047), 353.16 KiB | 1.56 MiB/s, done.
Resolving deltas: 100% (687/687), completed with 107 local objects.
From github.com:jiminny/app
907c54896c..34656c53ed pipedrive-sdk-poc -> origin/pipedrive-sdk-poc
03325ec50f..4e7078fd8b JY-18091-upgrade-to-php-8-5 -> origin/JY-18091-upgrade-to-php-8-5
e7d231e163..bc6a3fce6b JY-20725-handle-HS-search-rate-limit -> origin/JY-20725-handle-HS-search-rate-limit
* [new branch] JY-20749-user-can-view-recorded-meetings -> origin/JY-20749-user-can-view-recorded-meetings
98ca281a04..e0351be069 JY-20808-low-priority-indexing-queue -> origin/JY-20808-low-priority-indexing-queue
569abb5149..3906a9238a JY-20835-mcp-enable-users-to-get-a-list-of-deals-and-their-details -> origin/JY-20835-mcp-enable-users-to-get-a-list-of-deals-and-their-details
ad6c2a86e8..50eb6afba9 JY-20846-mcp-enable-the-ai-to-know-details-about-the-user -> origin/JY-20846-mcp-enable-the-ai-to-know-details-about-the-user
* [new branch] JY-20893-chunk-control-per-update-target -> origin/JY-20893-chunk-control-per-update-target
31c62924a5..cb4ebf0c36 master -> origin/master
Updating 907c54896c..34656c53ed
Fast-forward
PIPEDRIVE_V2_MIGRATION_TICKETS.md | 52 ++++++++++++++++++++++++++++++++++++++++++++++++++++
1 file changed, 52 insertions(+)
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (pipedrive-sdk-poc) $ co master
M .env.local
M config/logging.php
Switched to branch 'master'
Your branch is behind 'origin/master' by 31 commits, and can be fast-forwarded.
(use "git pull" to update your local branch)
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (master) $ git pull
Updating 31c62924a5..cb4ebf0c36
Fast-forward
app/Component/ES/Processor/Traits/SelectEntityListTrait.php | 20 ------
app/Services/Calendar/CalendarActivityService.php | 46 +++++++++++++
app/Services/Calendar/Command/MapActivityData.php | 106 +++-------------------------
docs/mcp/explorer/explorer.html | 104 +++++++++++++++++++++++++---
docs/mcp/explorer/explorer.template.html | 102 ++++++++++++++++++++++++---
docs/mcp/tools-list.json | 373 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++-------
docs/mcp/tools.md | 117 +++++++++++++++++++++++--------
tests/Unit/Component/ES/AsyncUpdateElasticSearchTest.php | 16 +----
tests/Unit/Component/ES/Listeners/UpdateMultipleTargetsListenerTest.php | 10 ---
tests/Unit/Component/ES/Listeners/UpdateSingleTargetListenerTest.php | 6 --
tests/Unit/Component/ES/Processor/TargetEntitiesSelectorTest.php | 9 ---
tests/Unit/Component/ES/Processor/Traits/SelectEntityListTraitTest.php | 15 ++--
tests/Unit/Component/ES/UpdateProcessManagerTest.php | 2 -
tests/Unit/Services/Calendar/CalendarActivityServiceTest.php | 150 ++++++++++++++++++++++++++++++++++++++--
tests/Unit/Services/Calendar/Command/MapActivityDataTest.php | 78 ++-------------------
15 files changed, 832 insertions(+), 322 deletions(-)
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (master) $ co -b JY-20613-allow-owner-role-on-team-setup
Switched to a new branch 'JY-20613-allow-owner-role-on-team-setup'
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20613-allow-owner-role-on-team-setup) $ csfix
docker exec -it docker_lamp_1 ./vendor/bin/php-cs-fixer fix --config=.php-cs-fixer.dist.php -v --using-cache=no --diff
PHP CS Fixer 3.87.1 Alexander by Fabien Potencier, Dariusz Ruminski and contributors.
PHP runtime: 8.3.30
Running 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!
Loaded config default from ".php-cs-fixer.dist.php".
5682/5682 [▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓] 100%
Fixed 0 of 5682 files in 56.978 seconds, 67.00 MB memory used
What's next:
Try Docker Debug for seamless, persistent debugging tools in any container or image → docker debug docker_lamp_1
Learn more at [URL_WITH_CREDENTIALS] ~/jiminny/app (JY-20613-allow-owner-role-on-team-setup) $ csfix
docker exec -it docker_lamp_1 ./vendor/bin/php-cs-fixer fix --config=.php-cs-fixer.dist.php -v --using-cache=no --diff
PHP CS Fixer 3.87.1 Alexander by Fabien Potencier, Dariusz Ruminski and contributors.
PHP runtime: 8.3.30
Running 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!
Loaded config default from ".php-cs-fixer.dist.php".
5682/5682 [▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓] 100%
Fixed 0 of 5682 files in 49.910 seconds, 60.00 MB memory used
What's next:
Try Docker Debug for seamless, persistent debugging tools in any container or image → docker debug docker_lamp_1
Learn more at [URL_WITH_CREDENTIALS] ~/jiminny/app (JY-20613-allow-owner-role-on-team-setup) $ git pull
remote: Enumerating objects: 248, done.
remote: Counting objects: 100% (128/128), done.
remote: Compressing objects: 100% (23/23), done.
remote: Total 59 (delta 43), reused 44 (delta 33), pack-reused 0 (from 0)
Unpacking objects: 100% (59/59), 10.48 KiB | 228.00 KiB/s, done.
From github.com:jiminny/app
b7df560451..190239dfd4 JY-20613-allow-owner-role-on-team-setup -> origin/JY-20613-allow-owner-role-on-team-setup
e0351be069..d94a285ae7 JY-20808-low-priority-indexing-queue -> origin/JY-20808-low-priority-indexing-queue
* [new branch] JY-20920-fix-participant-matcher -> origin/JY-20920-fix-participant-matcher
cb4ebf0c36..90bca4e4b2 master -> origin/master
Merge made by the 'ort' strategy.
app/Component/ES/ChunkSize.php | 54 +++++++++++++++++++++++++++
app/Component/ES/Processor/DTOs/SelectionList.php | 4 +-
app/Component/ES/Processor/TargetEntitiesSelector.php | 19 ++++++----
app/Http/Middleware/McpTierMiddleware.php | 27 +++-----------
app/Mcp/Servers/JiminnyServer.php | 2 +
app/Mcp/Tools/GetMeTool.php | 157 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
app/Models/Feature/FeatureEnum.php | 1 +
database/migrations/2026_05_13_124153_create_mcp_feature_flag.php | 25 +++++++++++++
front-end/src/components/Settings/Kiosk/modals/EditTeamModal/EditTeamModal.vue | 52 ++++++++++++++++++--------
front-end/src/components/Settings/Kiosk/modals/EditTeamModal/__tests__/EditTeamModal.spec.js | 14 +++++++
tests/Feature/Mcp/GetMeToolFeatureTest.php | 140 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
tests/Feature/Mcp/ListCallsToolFeatureTest.php | 2 +-
tests/Feature/Mcp/McpTestHelpersTrait.php | 19 +++++++++-
tests/Unit/Component/ES/ChunkSizeTest.php | 50 +++++++++++++++++++++++++
tests/Unit/Component/ES/Processor/DTOs/SelectionListTest.php | 27 ++++++++++----
tests/Unit/Component/ES/Processor/TargetEntitiesSelectorTest.php | 39 +++++++++++---------
16 files changed, 557 insertions(+), 75 deletions(-)
create mode 100644 app/Component/ES/ChunkSize.php
create mode 100644 app/Mcp/Tools/GetMeTool.php
create mode 100644 database/migrations/2026_05_13_124153_create_mcp_feature_flag.php
create mode 100644 tests/Feature/Mcp/GetMeToolFeatureTest.php
create mode 100644 tests/Unit/Component/ES/ChunkSizeTest.php
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20613-allow-owner-role-on-team-setup) $ git push
Enumerating objects: 40, done.
Counting objects: 100% (34/34), done.
Delta compression using up to 8 threads
Compressing objects: 100% (18/18), done.
Writing objects: 100% (18/18), 1.58 KiB | 1.58 MiB/s, done.
Total 18 (delta 15), reused 0 (delta 0), pack-reused 0
remote: Resolving deltas: 100% (15/15), completed with 13 local objects.
To github.com:jiminny/app.git
190239dfd4..ec1b261264 JY-20613-allow-owner-role-on-team-setup -> JY-20613-allow-owner-role-on-team-setup
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20613-allow-owner-role-on-team-setup) $ gbr
* JY-20613-allow-owner-role-on-team-setup
pipedrive-sdk-poc
master
JY-20903-update_activity-stage-on-opportunity-change
JY-20904-fix-update-es-on-activity-command
JY-20891-improve-sms-text-relays
JY-20725-handle-HS-search-rate-limit
JY-20818-move-AJ-reports-to-separated-datadog-metric
JY-20773-fix-automated-reports-user-pilot-tracking
JY-20157-AJ-report-not-send-notification
JY-20508-notify-before-AJ-report-expiration
JY-20372-ai-reports-promotion-pages
JY-20352-sync-opportunities-without-a-local-owner-user-id-is-null
JY-20738-debug-AJ-tracking-UP
a
JY-18909-automated-reports-ask-jiminny
JY-20692-fix-integration-app-[API_KEY]
JY-20553-debug-crm-sync-delays
JY-20698-fix-SF-activity-types-on-new-playbook
JY-20543-AJ-report-tracking
JY-20384-handle-auto-sync-with-no-access-to-event-type
JY-20458-ask-jiminny-user-definitions
JY-19666-fix-import-contacts-account-association
JY-19666-HS-import-contacts-and-accounts-batch-job
JY-20458-Ask-Jiminny-Reports
JY-20200-batch-update-CRM-objects-Salesforce
JY-19666-HS-webhooks-add-contact-and-company
JY-20348-trigger-setup-DI-layout-on-team-creation
JY-20326-refactor-info-message-in-command
JY-20317-fix-auto-log-delay-issue-on-all-channels-disabled
JY-20312-remove-on-update-change-last-synced-at-crm-configurations
JY-20306-SF-skip-auto-sync-for-task-based-playbook
JY-20192-remove-deleted-team-from-saved-search-filters
JY-20197-import-opportunity-batch-job
JY-20293-enable-status-field-for-pipedrive-deals
JY-20191-remove-commands-interactive-prompts
JY-20118-change-default-sync-strategy
JY-20183-add-cache-on-auto-log-delay
JY-20197-add-import-opportunity-batch-job
20118-hs-opportunity-make-webhook-strategy-default
JY-20118-make-default-hs-opportunity-sync-strategy-webhook-based
JY-20196-handle-opportunity-without-note
JY-20118-improve-opportunity-import
JY-20189-handle-activity-search-on-deleted-groups
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20613-allow-owner-role-on-team-setup) $ co JY-20725-handle-HS-search-rate-limit
M .env.local
M config/logging.php
Switched to branch 'JY-20725-handle-HS-search-rate-limit'
Your branch is behind 'origin/JY-20725-handle-HS-search-rate-limit' by 439 commits, and can be fast-forwarded.
(use "git pull" to update your local branch)
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20725-handle-HS-search-rate-limit) $ git pull
Updating 0f3e438941..bc6a3fce6b
Fast-forward
.gitignore | 3 +-
.windsurfrules | 168 ++---
CLAUDE.md | 1 +
app/Component/ActivityAnalytics/Service/CalculateTalkTimeOffsetsFromTranscription.php | 24 +-
app/Component/AiActivityType/Services/AiActivityTypeEligibilityChecker.php | 28 +-
app/Component/AiAutomation/Actions/PrepareUpdateDtoAction.php | 32 +-
app/Component/AiAutomation/Services/CrmFillingEligibilityChecker.php | 47 ++
app/Component/AiAutomation/TestCrmAiPromptService.php | 14 +
app/Component/AiCallScoring/Services/AiCallScoringEligibilityChecker.php | 9 +
app/Component/ES/ElasticSearchDocumentPartialUpdater.php | 13 +-
app/Component/ES/ElasticSearchWorkerManager.php | 86 ---
app/Component/ES/Processor/Actions/LoadDocumentsAction.php | 80 +--
app/Component/ES/Processor/EntityQueryBuilder.php | 12 +-
app/Component/ES/Processor/TargetEntitiesSelector.php | 2 +-
app/Component/ES/Processor/Traits/SkipActivityTrait.php | 25 -
app/Component/ES/Repositories/EsResetActivityRepository.php | 11 +-
app/Component/ES/Worker/ActivityWorker.php | 73 --
app/Component/ES/Worker/EntityWorker.php | 44 --
app/Component/ES/Worker/WorkerAmount.php | 60 --
app/Component/ES/Worker/WorkerInterface.php | 15 -
app/Component/ElasticSearch/Contract/Searchable.php | 4 +
app/Component/Encoding/Job/AnalyzeTrackChannelsJob.php | 20 +-
app/Component/Encoding/Service/GenerateSpeechFromSilenceService.php | 85 ++-
app/Component/FFMpeg/Services/GetSpeechIntervalsService.php | 18 +-
app/Component/LanguageDetection/Services/FindSpeechTimeService.php | 22 +-
app/Component/Nudge/Job/ProcessOrganisationImmediateNudgesJob.php | 218 +++++-
app/Component/ParagraphBreaker/Services/TranscriptionParagraphsService.php | 4 +
app/Component/ParticipantSpeech/Services/ParticipantSpeechesCreator.php | 33 +
app/Component/ParticipantSpeech/Services/ParticipantSpeechesDeleter.php | 15 +
app/Component/ParticipantSpeech/Services/ParticipantSpeechesProvider.php | 51 +-
app/Component/ParticipantSpeech/Services/ParticipantSpeechesUploader.php | 36 +
app/Component/ProphetAi/Exceptions/InsufficientTranscriptException.php | 11 +
app/Component/Transcription/DTO/Http/Transcription/AssemblyAI/AssemblyAI/NoAssemblyIdException.php | 11 +
app/Component/Transcription/DTO/Http/Transcription/AssemblyAI/AssemblyAI/SuccessfulResponse.php | 6 +
app/Component/Transcription/DTO/Http/Transcription/TranscriptionIsNotCorrectFormatException.php | 11 +
app/Component/Transcription/Diarization/Services/GetNormalizedParticipantSpeechesService.php | 23 +-
app/Component/Transcription/Diarization/Source/MeetingBotSource.php | 16 +-
app/Component/Transcription/TranscriptionProcessor/TranscriptionProcessor.php | 3 +
app/Console/Commands/Activities/ActivityHardDeleteCommand.php | 4 +-
app/Console/Commands/Activities/Copy.php | 2 +
app/Console/Commands/Activities/SetupIntegration/TwilioSetS3RecordingCredentialsCommand.php | 119 ++++
app/Console/Commands/Activities/UpdateActivityElasticSearchDocumentCommand.php | 10 +-
app/Console/Commands/Crm/BackfillOpportunityUserFromAccountCommand.php | 126 ++++
app/Console/Commands/Elasticsearch/AsyncUpdateEsActivities.php | 19 -
app/Console/Commands/Elasticsearch/AsyncUpdateEsEntities.php | 50 +-
app/Console/Commands/Elasticsearch/ResetAsyncElasticSearchCommand.php | 30 +-
app/Console/Commands/GeckoExport/GeckoExportParticipantSpeechesCommand.php | 14 +-
app/Console/Commands/IssueMcpTokenCommand.php | 84 +++
app/Console/Commands/JiminnyDebugCommand.php | 7 +-
app/Console/Commands/Tracks/CleanupActivityTracksCommand.php | 2 +-
app/Console/Kernel.php | 6 +-
app/Contracts/Services/Calendar/CalendarTrait.php | 80 ++-
app/Events/AutomatedReports/AutomatedReportGenerated.php | 3 +
app/Http/Controllers/API/AiCallScoring/AiScorecardController.php | 7 +-
app/Http/Controllers/API/TeamAiAutomationController.php | 8 +
app/Http/Controllers/CustomerApi/CustomerApiController.php | 4 +-
app/Http/Controllers/Kiosk/ActivityController.php | 58 +-
app/Http/Controllers/Settings/PlaybookController.php | 15 +-
app/Http/Kernel.php | 23 +
app/Http/Middleware/McpAuditMiddleware.php | 156 ++++
app/Http/Middleware/McpTierMiddleware.php | 54 ++
app/Http/Requests/API/V2/ZapierUploadActivityRequest.php | 28 +-
app/Jobs/Activity/Import/ImportTwilioVideoSpeechesJob.php | 25 +-
app/Jobs/Activity/Import/IsActivityReadyForProcessingJob.php | 10 +-
app/Jobs/Calendar/SetupCalendarSync.php | 21 +-
app/Jobs/ImportRemoteTrackJob.php | 96 ++-
app/Jobs/Mailbox/EmailTextRelay.php | 15 +-
app/Mcp/Contracts/McpCallRepositoryInterface.php | 30 +
app/Mcp/DTO/ListCallsFilters.php | 29 +
app/Mcp/Errors/McpError.php | 123 ++++
app/Mcp/Repositories/McpActivityHydrator.php | 145 ++++
app/Mcp/Repositories/McpCallRepository.php | 84 +++
app/Mcp/Repositories/McpElasticCallRepository.php | 171 +++++
app/Mcp/Servers/JiminnyServer.php | 38 +
app/Mcp/Tools/ListCallsTool.php | 205 ++++++
app/Models/Activity.php | 10 +-
app/Models/Activity/Transcription.php | 17 +-
app/Models/ElasticSearch/OpportunityElasticSearchTrait.php | 5 +
app/Models/Participant.php | 1 +
app/Providers/AppServiceProvider.php | 22 +
app/Repositories/Crm/ContactRepository.php | 69 +-
app/Repositories/ParticipantSpeechRepository.php | 13 +-
app/Services/Activity/ParticipantsService.php | 19 +-
app/Services/Activity/Twilio/S3RecordingCredentialsService.php | 82 +++
app/Services/ActivityService.php | 21 +-
app/Services/Calendar/CalendarActivityService.php | 46 ++
app/Services/Calendar/Command/ImportParticipants.php | 1 +
app/Services/Calendar/Command/MapActivityData.php | 106 +--
app/Services/Calendar/GoogleCalendarService.php | 12 +-
app/Services/Crm/Close/Processor/OpportunityProcessor.php | 2 +-
app/Services/Crm/Close/Service.php | 22 +-
app/Services/Crm/Copper/Service.php | 12 +-
app/Services/Crm/Hubspot/Service.php | 154 +++-
app/Services/Crm/Hubspot/ServiceTraits/OpportunitySyncTrait.php | 88 ++-
app/Services/Crm/IntegrationApp/ServiceTraits/SyncCrmEntitiesTrait.php | 22 +-
app/Services/Crm/Pipedrive/Service.php | 17 +-
app/Services/Crm/Salesforce/Service.php | 42 +-
app/Services/Mail/Office/EmailApiClient.php | 129 +---
app/Services/RecallAI/Commands/ScheduleBotCommand.php | 39 +-
app/Services/RecallAI/RecallAIService.php | 22 +-
composer.json | 3 +-
composer.lock | 87 ++-
config/mcp.php | 23 +
database/migrations/2026_04_30_120000_create_mcp_audit_log_table.php | 36 +
docs/mcp/explorer/explorer.html | 697 ++++++++++++++++++
docs/mcp/explorer/explorer.template.html | 697 ++++++++++++++++++
docs/mcp/explorer/generate.js | 215 ++++++
docs/mcp/explorer/tool-explorer-meta.json | 11 +
docs/mcp/tools-list.json | 2536 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
docs/mcp/tools.md | 621 ++++++++++++++++
front-end/package.json | 4 +-
front-end/src/components/Settings/OrgSettings/AiAutomation/CrmFilling/TemplateFieldForm.vue | 28 +-
front-end/src/components/Settings/OrgSettings/Playbooks/AddEditPlaybook.vue | 10 +
front-end/src/components/playback/comments/ActivityComment.less | 10 +-
front-end/src/components/shared/PromptTester/PromptTester.vue | 12 +-
front-end/src/components/shared/__tests__/PromptTester.spec.js | 35 +
front-end/src/components/shared/modals/EntityPickerModal/__tests__/useEntitiesCache.spec.ts | 37 +
front-end/src/components/shared/modals/EntityPickerModal/useEntitiesCache.ts | 9 +
front-end/yarn.lock | 16 +-
phpstan-baseline.neon | 50 --
routes/api.php | 11 +
sonar-project.properties | 91 ++-
tests/Feature/Component/Nudge/ProcessOrganisationImmediateNudgesJobTest.php | 534 ++++++++++++++
tests/Feature/Jobs/ImportRemoteTrackJobTest.php | 283 +++++++-
tests/Feature/Mcp/IssueMcpTokenCommandTest.php | 53 ++
tests/Feature/Mcp/ListCallsToolElasticFeatureTest.php | 155 ++++
tests/Feature/Mcp/ListCallsToolFeatureTest.php | 352 ++++++++++
tests/Feature/Mcp/McpTestHelpersTrait.php | 77 ++
tests/Feature/Services/Team/TeamDeleteHandlers/Retention/RetentionRepositoryHandlerTest.php | 1 +
tests/Stubs/SentryStub.php | 18 +
tests/Unit/Component/ActivityAnalytics/Service/CalculateTalkTimeOffsetFromTranscriptionTest.php | 28 +-
tests/Unit/Component/AiActivityType/Services/AiActivityTypeEligibilityCheckerTest.php | 103 ++-
tests/Unit/Component/AiAutomation/Actions/PrepareUpdateDtoActionTest.php | 91 +++
tests/Unit/Component/AiAutomation/Services/CrmFillingEligibilityCheckerTest.php | 124 ++++
tests/Unit/Component/AiAutomation/TestCrmAiPromptServiceTest.php | 67 +-
tests/Unit/Component/AiCallScoring/Services/AiCallScoringEligibilityCheckerTest.php | 55 ++
tests/Unit/Component/ES/ElasticSearchWorkerManagerTest.php | 135 ----
tests/Unit/Component/ES/Processor/Actions/LoadDocumentsActionTest.php | 220 ++++++
tests/Unit/Component/ES/Processor/EntityQueryBuilderTest.php | 21 +-
tests/Unit/Component/ES/Processor/Traits/SkipActivityTraitTest.php | 51 --
tests/Unit/Component/ES/Worker/ActivityWorkerTest.php | 174 -----
tests/Unit/Component/ES/Worker/EntityWorkerTest.php | 97 ---
tests/Unit/Component/ES/Worker/WorkerAmountTest.php | 116 ---
tests/Unit/Component/Encoding/Job/AnalyzeTrackChannelsJobTest.php | 52 +-
tests/Unit/Component/Encoding/Service/GenerateSpeechFromSilenceServiceTest.php | 171 ++---
tests/Unit/Component/FFMpeg/Services/GetSpeechIntervalsTest.php | 36 +-
tests/Unit/Component/LanguageDetection/Services/FindSpeechTimeServiceTest.php | 20 +-
tests/Unit/Component/MobileSettings/MobileSettingsControllerTest.php | 5 +-
tests/Unit/Component/ParticipantSpeech/Services/ParticipantSpeechesCreatorTest.php | 75 ++
tests/Unit/Component/ParticipantSpeech/Services/ParticipantSpeechesDeleterTest.php | 63 ++
tests/Unit/Component/ParticipantSpeech/Services/ParticipantSpeechesProviderTest.php | 134 ++++
tests/Unit/Component/ParticipantSpeech/Services/ParticipantSpeechesUploaderTest.php | 57 ++
tests/Unit/Component/Transcription/Diarization/Services/GetNormalizedParticipantSpeechesServiceTest.php | 51 +-
tests/Unit/Component/Transcription/Diarization/Source/MeetingBotSourceTest.php | 29 +-
tests/Unit/Contracts/Services/Calendar/CalendarTraitTest.php | 58 +-
tests/Unit/Http/Controllers/Kiosk/ActivityControllerTest.php | 159 +++++
tests/Unit/Jobs/Activity/Import/ImportTwilioVideoSpeechesJobTest.php | 22 +-
tests/Unit/Jobs/Activity/Import/IsActivityReadyForProcessingJobTest.php | 26 +-
tests/Unit/Jobs/Calendar/SetupCalendarSyncTest.php | 25 -
tests/Unit/Services/Activity/ParticipantsServiceTest.php | 12 +-
tests/Unit/Services/Activity/Twilio/S3RecordingCredentialsServiceTest.php | 180 +++++
tests/Unit/Services/ActivityServiceTest.php | 132 ++++
tests/Unit/Services/Calendar/CalendarActivityServiceTest.php | 150 +++-
tests/Unit/Services/Calendar/Command/ImportParticipantsTest.php | 6 +-
tests/Unit/Services/Calendar/Command/MapActivityDataTest.php | 78 +-
tests/Unit/Services/Calendar/GoogleCalendarServiceTest.php | 116 +++
tests/Unit/Services/Crm/Close/ServiceTest.php | 165 +++++
tests/Unit/Services/Crm/Hubspot/ServiceTest.php | 272 ++++++-
tests/Unit/Services/Crm/Hubspot/ServiceTraits/OpportunitySyncTest.php | 25 +-
tests/Unit/Services/Crm/Hubspot/ServiceTraits/OpportunitySyncTraitMatchActivitiesTest.php | 3 +-
tests/Unit/Services/Crm/IntegrationApp/ServiceTraits/SyncCrmEntitiesTraitOpportunitiesTest.php | 40 ++
tests/Unit/Services/Crm/Pipedrive/ImportOpportunityMatchActivitiesTest.php | 2 +
tests/Unit/Services/Crm/Salesforce/ServiceTest.php | 139 ++++
tests/Unit/Services/Mail/Office/EmailApiClientTest.php | 195 ++---
tests/Unit/Services/RecallAI/RecallAIServiceTest.php | 24 +-
175 files changed, 12562 insertions(+), 2162 deletions(-)
create mode 120000 CLAUDE.md
create mode 100644 app/Component/AiAutomation/Services/CrmFillingEligibilityChecker.php
delete mode 100644 app/Component/ES/ElasticSearchWorkerManager.php
delete mode 100644 app/Component/ES/Processor/Traits/SkipActivityTrait.php
delete mode 100644 app/Component/ES/Worker/ActivityWorker.php
delete mode 100644 app/Component/ES/Worker/EntityWorker.php
delete mode 100644 app/Component/ES/Worker/WorkerAmount.php
delete mode 100644 app/Component/ES/Worker/WorkerInterface.php
create mode 100644 app/Component/ProphetAi/Exceptions/InsufficientTranscriptException.php
create mode 100644 app/Component/Transcription/DTO/Http/Transcription/AssemblyAI/AssemblyAI/NoAssemblyIdException.php
create mode 100644 app/Component/Transcription/DTO/Http/Transcription/TranscriptionIsNotCorrectFormatException.php
create mode 100644 app/Console/Commands/Activities/SetupIntegration/TwilioSetS3RecordingCredentialsCommand.php
create mode 100644 app/Console/Commands/Crm/BackfillOpportunityUserFromAccountCommand.php
delete mode 100644 app/Console/Commands/Elasticsearch/AsyncUpdateEsActivities.php
create mode 100644 app/Console/Commands/IssueMcpTokenCommand.php
create mode 100644 app/Http/Middleware/McpAuditMiddleware.php
create mode 100644 app/Http/Middleware/McpTierMiddleware.php
create mode 100644 app/Mcp/Contracts/McpCallRepositoryInterface.php
create mode 100644 app/Mcp/DTO/ListCallsFilters.php
create mode 100644 app/Mcp/Errors/McpError.php
create mode 100644 app/Mcp/Repositories/McpActivityHydrator.php
create mode 100644 app/Mcp/Repositories/McpCallRepository.php
create mode 100644 app/Mcp/Repositories/McpElasticCallRepository.php
create mode 100644 app/Mcp/Servers/JiminnyServer.php
create mode 100644 app/Mcp/Tools/ListCallsTool.php
create mode 100644 app/Services/Activity/Twilio/S3RecordingCredentialsService.php
create mode 100644 config/mcp.php
create mode 100644 database/migrations/2026_04_30_120000_create_mcp_audit_log_table.php
create mode 100644 docs/mcp/explorer/explorer.html
create mode 100644 docs/mcp/explorer/explorer.template.html
create mode 100644 docs/mcp/explorer/generate.js
create mode 100644 docs/mcp/explorer/tool-explorer-meta.json
create mode 100644 docs/mcp/tools-list.json
create mode 100644 docs/mcp/tools.md
create mode 100644 front-end/src/components/shared/modals/EntityPickerModal/__tests__/useEntitiesCache.spec.ts
create mode 100644 tests/Feature/Component/Nudge/ProcessOrganisationImmediateNudgesJobTest.php
create mode 100644 tests/Feature/Mcp/IssueMcpTokenCommandTest.php
create mode 100644 tests/Feature/Mcp/ListCallsToolElasticFeatureTest.php
create mode 100644 tests/Feature/Mcp/ListCallsToolFeatureTest.php
create mode 100644 tests/Feature/Mcp/McpTestHelpersTrait.php
create mode 100644 tests/Stubs/SentryStub.php
create mode 100644 tests/Unit/Component/AiAutomation/Services/CrmFillingEligibilityCheckerTest.php
delete mode 100644 tests/Unit/Component/ES/ElasticSearchWorkerManagerTest.php
create mode 100644 tests/Unit/Component/ES/Processor/Actions/LoadDocumentsActionTest.php
delete mode 100644 tests/Unit/Component/ES/Processor/Traits/SkipActivityTraitTest.php
delete mode 100644 tests/Unit/Component/ES/Worker/ActivityWorkerTest.php
delete mode 100644 tests/Unit/Component/ES/Worker/EntityWorkerTest.php
delete mode 100644 tests/Unit/Component/ES/Worker/WorkerAmountTest.php
create mode 100644 tests/Unit/Component/ParticipantSpeech/Services/ParticipantSpeechesCreatorTest.php
create mode 100644 tests/Unit/Http/Controllers/Kiosk/ActivityControllerTest.php
create mode 100644 tests/Unit/Services/Activity/Twilio/S3RecordingCredentialsServiceTest.php
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20725-handle-HS-search-rate-limit) $ git status
On branch master
Your branch is behind 'origin/master' by 114 commits, and can be fast-forwarded.
(use "git pull" to update your local branch)
Changes not staged for commit:
(use "git add <file>..." to update what will be committed)
(use "git restore <file>..." to discard changes in working directory)
modified: .env.local
modified: app/Component/SCIM/Constants.php
modified: app/Component/SCIM/ScimProvisioning.php
modified: app/Component/Twilio/Conference/ConferenceManager/SoftPhoneManager.php
modified: app/Console/Commands/JiminnyDebugCommand.php
modified: app/DTO/SCIM/AAD/Request/CoreUserRequest.php
modified: app/DTO/SCIM/AAD/Response/CoreUser.php
modified: app/Services/Telephony/TextMessagingService.php
modified: config/logging.php
Untracked files:
(use "git add <file>..." to include in what will be committed)
.env.nikilocal
.env.other
WEBHOOK_FILTERING_IMPLEMENTATION.md
app/Component/SCIM/Mutators/Attributes/User/RoleAttr.php
app/Console/Commands/Crm/Hubspot/SimulateWebhooksCommand.php
app/Console/Commands/Reports/CreateMockAskJiminnyReportResultCommand.php
app/Rules/ListenerRoleCannotHaveAdminOrManagerPermissionRule.php
ids.txt
public/favicon.ico
raw_sql_query.sql
tests/Unit/Component/SCIM/Mutators/Attributes/User/RoleAttrTest.php
tests/Unit/Policies/CanAccessAiReportsTest.php
tests/Unit/Rules/ListenerRoleCannotHaveAdminOrManagerPermissionRuleTest.php
no changes added to commit (use "git add" and/or "git commit -a")
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (master) $ git pull
remote: Enumerating objects: 306, done.
remote: Counting objects: 100% (299/299), done.
remote: Compressing objects: 100% (183/183), done.
remote: Total 306 (delta 213), reused 171 (delta 116), pack-reused 7 (from 1)
Receiving objects: 100% (306/306), 80.12 KiB | 1000.00 KiB/s, done.
Resolving deltas: 100% (213/213), completed with 53 local objects.
From github.com:jiminny/app
90bca4e4b2..5604af40cf master -> origin/master
4e7078fd8b..0b8343d179 JY-18091-upgrade-to-php-8-5 -> origin/JY-18091-upgrade-to-php-8-5
098eeaa087..d5a447e492 JY-20613-allow-owner-role-on-team-setup -> origin/JY-20613-allow-owner-role-on-team-setup
c3a76ace91..af65249d0f JY-20749-user-can-view-recorded-meetings -> origin/JY-20749-user-can-view-recorded-meetings
d94a285ae7..7ce96cb5fe JY-20808-low-priority-indexing-queue -> origin/JY-20808-low-priority-indexing-queue
* [new branch] JY-20842-remove-partial-updater -> origin/JY-20842-remove-partial-updater
* [new branch] JY-20920-fix-participant-flip -> origin/JY-20920-fix-participant-flip
* [new branch] secfix/npm-20260519 -> origin/secfix/npm-20260519
Updating cb4ebf0c36..5604af40cf
Fast-forward
app/Component/ES/ChunkSize.php | 54 +++++++++++++++++++
app/Component/ES/Processor/DTOs/SelectionList.php | 4 +-
app/Component/ES/Processor/TargetEntitiesSelector.php | 19 ++++---
app/Component/MeetingBot/Service/ParticipantMatcher.php | 46 ++++++++++++----
app/Exceptions/RateLimitException.php | 19 ++++++-
app/Http/Middleware/McpTierMiddleware.php | 27 ++--------
app/Jobs/Crm/MatchActivityCrmData.php | 47 ++++++++++++----
app/Jobs/Middleware/HandleHubspotRateLimit.php | 42 +++++++++++++++
app/Mcp/Servers/JiminnyServer.php | 2 +
app/Mcp/Tools/GetMeTool.php | 157 +++++++++++++++++++++++++++++++++++++++++++++++++++++
app/Models/Feature/FeatureEnum.php | 1 +
app/Services/Activity/HubSpot/ProviderResolver.php | 4 +-
app/Services/Activity/HubSpot/ProviderResolverInterface.php | 2 +-
app/Services/Activity/HubSpot/Providers/Provider.php | 2 +-
app/Services/Activity/HubSpot/Providers/ProviderKixie.php | 2 +-
app/Services/Activity/HubSpot/Providers/ProviderOrum.php | 2 +-
app/Services/Activity/HubSpot/Providers/ProviderTwilio.php | 2 +-
app/Services/Activity/HubSpot/Providers/ProviderTwilioFlex.php | 5 +-
app/Services/Activity/HubSpot/Service.php | 97 +++++++++++++++++++++++++++------
app/Services/Crm/Hubspot/Client.php | 132 +++++++++++++++++++++++++++++++++++++++++++++
app/Services/Crm/Hubspot/HubspotClientInterface.php | 15 ++++++
app/Services/Crm/Hubspot/Pagination/HubspotPaginationService.php | 21 ++++----
app/Services/Crm/Hubspot/Pagination/PaginationState.php | 2 +-
database/migrations/2026_05_13_124153_create_mcp_feature_flag.php | 25 +++++++++
tests/Feature/Mcp/GetMeToolFeatureTest.php | 140 +++++++++++++++++++++++++++++++++++++++++++++++
tests/Feature/Mcp/ListCallsToolFeatureTest.php | 2 +-
tests/Feature/Mcp/McpTestHelpersTrait.php | 19 ++++++-
tests/Unit/Component/ES/ChunkSizeTest.php | 50 +++++++++++++++++
tests/Unit/Component/ES/Processor/DTOs/SelectionListTest.php | 27 +++++++---
tests/Unit/Component/ES/Processor/TargetEntitiesSelectorTest.php | 39 ++++++++------
tests/Unit/Component/MeetingBot/Service/ParticipantMatcherTest.php | 68 ++++++++++++++++++++++-
tests/Unit/Exceptions/RateLimitExceptionTest.php | 56 +++++++++++++++++++
tests/Unit/Jobs/Crm/MatchActivityCrmDataTest.php | 8 +--
tests/Unit/Jobs/Middleware/HandleHubspotRateLimitTest.php | 151 +++++++++++++++++++++++++++++++++++++++++++++++++++
tests/Unit/Services/Activity/HubSpot/ServiceTest.php | 109 +++++++++++++++++++++++++++++++++++++
tests/Unit/Services/Crm/Hubspot/ClientTest.php | 250 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
tests/Unit/Services/Crm/Hubspot/Pagination/HubspotPaginationServiceTest.php | 283 +++++++++++++++++++++---------------------------------------------------------------------------
37 files changed, 1587 insertions(+), 344 deletions(-)
create mode 100644 app/Component/ES/ChunkSize.php
create mode 100644 app/Jobs/Middleware/HandleHubspotRateLimit.php
create mode 100644 app/Mcp/Tools/GetMeTool.php
create mode 100644 database/migrations/2026_05_13_124153_create_mcp_feature_flag.php
create mode 100644 tests/Feature/Mcp/GetMeToolFeatureTest.php
create mode 100644 tests/Unit/Component/ES/ChunkSizeTest.php
create mode 100644 tests/Unit/Exceptions/RateLimitExceptionTest.php
create mode 100644 tests/Unit/Jobs/Middleware/HandleHubspotRateLimitTest.php
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (master) $ git pull
Already up to date.
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (master) $ co -b JY-20676-delete-report-related-objects
Switched to a new branch 'JY-20676-delete-report-related-objects'
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20676-delete-report-related-objects) $ csfix
docker exec -it docker_lamp_1 ./vendor/bin/php-cs-fixer fix --config=.php-cs-fixer.dist.php -v --using-cache=no --diff
PHP CS Fixer 3.87.1 Alexander by Fabien Potencier, Dariusz Ruminski and contributors.
PHP runtime: 8.3.30
Running 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!
Loaded config default from ".php-cs-fixer.dist.php".
5690/5690 [▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓] 100%
1) app/Console/Commands/JiminnyDebugCommand.php (statement_indentation, blank_line_before_statement)
---------- begin diff ----------
--- /home/jiminny/app/Console/Commands/JiminnyDebugCommand.php
+++ /home/jiminny/app/Console/Commands/JiminnyDebugCommand.php
@@ -23,6 +23,7 @@
if ($action === 'redis-set') {
$this->testRedisSet();
+
return;
}
@@ -45,7 +46,7 @@
$ttl = 60;
try {
-// $result = Redis::set($testKey, $testValue, 'EX', $ttl, 'NX');
+ // $result = Redis::set($testKey, $testValue, 'EX', $ttl, 'NX');
$result = Redis::set($testKey, $testValue, ['nx', 'ex' => $ttl]);
if ($result) {
----------- end diff -----------
Fixed 1 of 5690 files i...
|
NULL
|
NULL
|
NULL
|
NULL
|
|
58093
|
2044
|
14
|
2026-05-19T11:34:46.702907+00:00
|
/Users/lukas/.screenpipe/data/data/2026-05-19/1779 /Users/lukas/.screenpipe/data/data/2026-05-19/1779190486702_m1.jpg...
|
iTerm2
|
APP (docker)
|
1
|
NULL
|
monitor_1
|
NULL
|
NULL
|
NULL
|
NULL
|
Last login: Mon May 18 09:17:28 on ttys007
Poetry Last login: Mon May 18 09:17:28 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 (pipedrive-sdk-poc) $ co master
error: Your local changes to the following files would be overwritten by checkout:
PIPEDRIVE_V2_MIGRATION_TICKETS.md
Please commit your changes or stash them before you switch branches.
Aborting
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (pipedrive-sdk-poc) $ git pull
remote: Enumerating objects: 1047, done.
remote: Counting objects: 100% (832/832), done.
remote: Compressing objects: 100% (298/298), done.
remote: Total 1047 (delta 634), reused 596 (delta 534), pack-reused 215 (from 3)
Receiving objects: 100% (1047/1047), 353.16 KiB | 1.56 MiB/s, done.
Resolving deltas: 100% (687/687), completed with 107 local objects.
From github.com:jiminny/app
907c54896c..34656c53ed pipedrive-sdk-poc -> origin/pipedrive-sdk-poc
03325ec50f..4e7078fd8b JY-18091-upgrade-to-php-8-5 -> origin/JY-18091-upgrade-to-php-8-5
e7d231e163..bc6a3fce6b JY-20725-handle-HS-search-rate-limit -> origin/JY-20725-handle-HS-search-rate-limit
* [new branch] JY-20749-user-can-view-recorded-meetings -> origin/JY-20749-user-can-view-recorded-meetings
98ca281a04..e0351be069 JY-20808-low-priority-indexing-queue -> origin/JY-20808-low-priority-indexing-queue
569abb5149..3906a9238a JY-20835-mcp-enable-users-to-get-a-list-of-deals-and-their-details -> origin/JY-20835-mcp-enable-users-to-get-a-list-of-deals-and-their-details
ad6c2a86e8..50eb6afba9 JY-20846-mcp-enable-the-ai-to-know-details-about-the-user -> origin/JY-20846-mcp-enable-the-ai-to-know-details-about-the-user
* [new branch] JY-20893-chunk-control-per-update-target -> origin/JY-20893-chunk-control-per-update-target
31c62924a5..cb4ebf0c36 master -> origin/master
Updating 907c54896c..34656c53ed
Fast-forward
PIPEDRIVE_V2_MIGRATION_TICKETS.md | 52 ++++++++++++++++++++++++++++++++++++++++++++++++++++
1 file changed, 52 insertions(+)
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (pipedrive-sdk-poc) $ co master
M .env.local
M config/logging.php
Switched to branch 'master'
Your branch is behind 'origin/master' by 31 commits, and can be fast-forwarded.
(use "git pull" to update your local branch)
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (master) $ git pull
Updating 31c62924a5..cb4ebf0c36
Fast-forward
app/Component/ES/Processor/Traits/SelectEntityListTrait.php | 20 ------
app/Services/Calendar/CalendarActivityService.php | 46 +++++++++++++
app/Services/Calendar/Command/MapActivityData.php | 106 +++-------------------------
docs/mcp/explorer/explorer.html | 104 +++++++++++++++++++++++++---
docs/mcp/explorer/explorer.template.html | 102 ++++++++++++++++++++++++---
docs/mcp/tools-list.json | 373 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++-------
docs/mcp/tools.md | 117 +++++++++++++++++++++++--------
tests/Unit/Component/ES/AsyncUpdateElasticSearchTest.php | 16 +----
tests/Unit/Component/ES/Listeners/UpdateMultipleTargetsListenerTest.php | 10 ---
tests/Unit/Component/ES/Listeners/UpdateSingleTargetListenerTest.php | 6 --
tests/Unit/Component/ES/Processor/TargetEntitiesSelectorTest.php | 9 ---
tests/Unit/Component/ES/Processor/Traits/SelectEntityListTraitTest.php | 15 ++--
tests/Unit/Component/ES/UpdateProcessManagerTest.php | 2 -
tests/Unit/Services/Calendar/CalendarActivityServiceTest.php | 150 ++++++++++++++++++++++++++++++++++++++--
tests/Unit/Services/Calendar/Command/MapActivityDataTest.php | 78 ++-------------------
15 files changed, 832 insertions(+), 322 deletions(-)
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (master) $ co -b JY-20613-allow-owner-role-on-team-setup
Switched to a new branch 'JY-20613-allow-owner-role-on-team-setup'
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20613-allow-owner-role-on-team-setup) $ csfix
docker exec -it docker_lamp_1 ./vendor/bin/php-cs-fixer fix --config=.php-cs-fixer.dist.php -v --using-cache=no --diff
PHP CS Fixer 3.87.1 Alexander by Fabien Potencier, Dariusz Ruminski and contributors.
PHP runtime: 8.3.30
Running 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!
Loaded config default from ".php-cs-fixer.dist.php".
5682/5682 [▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓] 100%
Fixed 0 of 5682 files in 56.978 seconds, 67.00 MB memory used
What's next:
Try Docker Debug for seamless, persistent debugging tools in any container or image → docker debug docker_lamp_1
Learn more at [URL_WITH_CREDENTIALS] ~/jiminny/app (JY-20613-allow-owner-role-on-team-setup) $ csfix
docker exec -it docker_lamp_1 ./vendor/bin/php-cs-fixer fix --config=.php-cs-fixer.dist.php -v --using-cache=no --diff
PHP CS Fixer 3.87.1 Alexander by Fabien Potencier, Dariusz Ruminski and contributors.
PHP runtime: 8.3.30
Running 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!
Loaded config default from ".php-cs-fixer.dist.php".
5682/5682 [▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓] 100%
Fixed 0 of 5682 files in 49.910 seconds, 60.00 MB memory used
What's next:
Try Docker Debug for seamless, persistent debugging tools in any container or image → docker debug docker_lamp_1
Learn more at [URL_WITH_CREDENTIALS] ~/jiminny/app (JY-20613-allow-owner-role-on-team-setup) $ git pull
remote: Enumerating objects: 248, done.
remote: Counting objects: 100% (128/128), done.
remote: Compressing objects: 100% (23/23), done.
remote: Total 59 (delta 43), reused 44 (delta 33), pack-reused 0 (from 0)
Unpacking objects: 100% (59/59), 10.48 KiB | 228.00 KiB/s, done.
From github.com:jiminny/app
b7df560451..190239dfd4 JY-20613-allow-owner-role-on-team-setup -> origin/JY-20613-allow-owner-role-on-team-setup
e0351be069..d94a285ae7 JY-20808-low-priority-indexing-queue -> origin/JY-20808-low-priority-indexing-queue
* [new branch] JY-20920-fix-participant-matcher -> origin/JY-20920-fix-participant-matcher
cb4ebf0c36..90bca4e4b2 master -> origin/master
Merge made by the 'ort' strategy.
app/Component/ES/ChunkSize.php | 54 +++++++++++++++++++++++++++
app/Component/ES/Processor/DTOs/SelectionList.php | 4 +-
app/Component/ES/Processor/TargetEntitiesSelector.php | 19 ++++++----
app/Http/Middleware/McpTierMiddleware.php | 27 +++-----------
app/Mcp/Servers/JiminnyServer.php | 2 +
app/Mcp/Tools/GetMeTool.php | 157 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
app/Models/Feature/FeatureEnum.php | 1 +
database/migrations/2026_05_13_124153_create_mcp_feature_flag.php | 25 +++++++++++++
front-end/src/components/Settings/Kiosk/modals/EditTeamModal/EditTeamModal.vue | 52 ++++++++++++++++++--------
front-end/src/components/Settings/Kiosk/modals/EditTeamModal/__tests__/EditTeamModal.spec.js | 14 +++++++
tests/Feature/Mcp/GetMeToolFeatureTest.php | 140 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
tests/Feature/Mcp/ListCallsToolFeatureTest.php | 2 +-
tests/Feature/Mcp/McpTestHelpersTrait.php | 19 +++++++++-
tests/Unit/Component/ES/ChunkSizeTest.php | 50 +++++++++++++++++++++++++
tests/Unit/Component/ES/Processor/DTOs/SelectionListTest.php | 27 ++++++++++----
tests/Unit/Component/ES/Processor/TargetEntitiesSelectorTest.php | 39 +++++++++++---------
16 files changed, 557 insertions(+), 75 deletions(-)
create mode 100644 app/Component/ES/ChunkSize.php
create mode 100644 app/Mcp/Tools/GetMeTool.php
create mode 100644 database/migrations/2026_05_13_124153_create_mcp_feature_flag.php
create mode 100644 tests/Feature/Mcp/GetMeToolFeatureTest.php
create mode 100644 tests/Unit/Component/ES/ChunkSizeTest.php
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20613-allow-owner-role-on-team-setup) $ git push
Enumerating objects: 40, done.
Counting objects: 100% (34/34), done.
Delta compression using up to 8 threads
Compressing objects: 100% (18/18), done.
Writing objects: 100% (18/18), 1.58 KiB | 1.58 MiB/s, done.
Total 18 (delta 15), reused 0 (delta 0), pack-reused 0
remote: Resolving deltas: 100% (15/15), completed with 13 local objects.
To github.com:jiminny/app.git
190239dfd4..ec1b261264 JY-20613-allow-owner-role-on-team-setup -> JY-20613-allow-owner-role-on-team-setup
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20613-allow-owner-role-on-team-setup) $ gbr
* JY-20613-allow-owner-role-on-team-setup
pipedrive-sdk-poc
master
JY-20903-update_activity-stage-on-opportunity-change
JY-20904-fix-update-es-on-activity-command
JY-20891-improve-sms-text-relays
JY-20725-handle-HS-search-rate-limit
JY-20818-move-AJ-reports-to-separated-datadog-metric
JY-20773-fix-automated-reports-user-pilot-tracking
JY-20157-AJ-report-not-send-notification
JY-20508-notify-before-AJ-report-expiration
JY-20372-ai-reports-promotion-pages
JY-20352-sync-opportunities-without-a-local-owner-user-id-is-null
JY-20738-debug-AJ-tracking-UP
a
JY-18909-automated-reports-ask-jiminny
JY-20692-fix-integration-app-[API_KEY]
JY-20553-debug-crm-sync-delays
JY-20698-fix-SF-activity-types-on-new-playbook
JY-20543-AJ-report-tracking
JY-20384-handle-auto-sync-with-no-access-to-event-type
JY-20458-ask-jiminny-user-definitions
JY-19666-fix-import-contacts-account-association
JY-19666-HS-import-contacts-and-accounts-batch-job
JY-20458-Ask-Jiminny-Reports
JY-20200-batch-update-CRM-objects-Salesforce
JY-19666-HS-webhooks-add-contact-and-company
JY-20348-trigger-setup-DI-layout-on-team-creation
JY-20326-refactor-info-message-in-command
JY-20317-fix-auto-log-delay-issue-on-all-channels-disabled
JY-20312-remove-on-update-change-last-synced-at-crm-configurations
JY-20306-SF-skip-auto-sync-for-task-based-playbook
JY-20192-remove-deleted-team-from-saved-search-filters
JY-20197-import-opportunity-batch-job
JY-20293-enable-status-field-for-pipedrive-deals
JY-20191-remove-commands-interactive-prompts
JY-20118-change-default-sync-strategy
JY-20183-add-cache-on-auto-log-delay
JY-20197-add-import-opportunity-batch-job
20118-hs-opportunity-make-webhook-strategy-default
JY-20118-make-default-hs-opportunity-sync-strategy-webhook-based
JY-20196-handle-opportunity-without-note
JY-20118-improve-opportunity-import
JY-20189-handle-activity-search-on-deleted-groups
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20613-allow-owner-role-on-team-setup) $ co JY-20725-handle-HS-search-rate-limit
M .env.local
M config/logging.php
Switched to branch 'JY-20725-handle-HS-search-rate-limit'
Your branch is behind 'origin/JY-20725-handle-HS-search-rate-limit' by 439 commits, and can be fast-forwarded.
(use "git pull" to update your local branch)
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20725-handle-HS-search-rate-limit) $ git pull
Updating 0f3e438941..bc6a3fce6b
Fast-forward
.gitignore | 3 +-
.windsurfrules | 168 ++---
CLAUDE.md | 1 +
app/Component/ActivityAnalytics/Service/CalculateTalkTimeOffsetsFromTranscription.php | 24 +-
app/Component/AiActivityType/Services/AiActivityTypeEligibilityChecker.php | 28 +-
app/Component/AiAutomation/Actions/PrepareUpdateDtoAction.php | 32 +-
app/Component/AiAutomation/Services/CrmFillingEligibilityChecker.php | 47 ++
app/Component/AiAutomation/TestCrmAiPromptService.php | 14 +
app/Component/AiCallScoring/Services/AiCallScoringEligibilityChecker.php | 9 +
app/Component/ES/ElasticSearchDocumentPartialUpdater.php | 13 +-
app/Component/ES/ElasticSearchWorkerManager.php | 86 ---
app/Component/ES/Processor/Actions/LoadDocumentsAction.php | 80 +--
app/Component/ES/Processor/EntityQueryBuilder.php | 12 +-
app/Component/ES/Processor/TargetEntitiesSelector.php | 2 +-
app/Component/ES/Processor/Traits/SkipActivityTrait.php | 25 -
app/Component/ES/Repositories/EsResetActivityRepository.php | 11 +-
app/Component/ES/Worker/ActivityWorker.php | 73 --
app/Component/ES/Worker/EntityWorker.php | 44 --
app/Component/ES/Worker/WorkerAmount.php | 60 --
app/Component/ES/Worker/WorkerInterface.php | 15 -
app/Component/ElasticSearch/Contract/Searchable.php | 4 +
app/Component/Encoding/Job/AnalyzeTrackChannelsJob.php | 20 +-
app/Component/Encoding/Service/GenerateSpeechFromSilenceService.php | 85 ++-
app/Component/FFMpeg/Services/GetSpeechIntervalsService.php | 18 +-
app/Component/LanguageDetection/Services/FindSpeechTimeService.php | 22 +-
app/Component/Nudge/Job/ProcessOrganisationImmediateNudgesJob.php | 218 +++++-
app/Component/ParagraphBreaker/Services/TranscriptionParagraphsService.php | 4 +
app/Component/ParticipantSpeech/Services/ParticipantSpeechesCreator.php | 33 +
app/Component/ParticipantSpeech/Services/ParticipantSpeechesDeleter.php | 15 +
app/Component/ParticipantSpeech/Services/ParticipantSpeechesProvider.php | 51 +-
app/Component/ParticipantSpeech/Services/ParticipantSpeechesUploader.php | 36 +
app/Component/ProphetAi/Exceptions/InsufficientTranscriptException.php | 11 +
app/Component/Transcription/DTO/Http/Transcription/AssemblyAI/AssemblyAI/NoAssemblyIdException.php | 11 +
app/Component/Transcription/DTO/Http/Transcription/AssemblyAI/AssemblyAI/SuccessfulResponse.php | 6 +
app/Component/Transcription/DTO/Http/Transcription/TranscriptionIsNotCorrectFormatException.php | 11 +
app/Component/Transcription/Diarization/Services/GetNormalizedParticipantSpeechesService.php | 23 +-
app/Component/Transcription/Diarization/Source/MeetingBotSource.php | 16 +-
app/Component/Transcription/TranscriptionProcessor/TranscriptionProcessor.php | 3 +
app/Console/Commands/Activities/ActivityHardDeleteCommand.php | 4 +-
app/Console/Commands/Activities/Copy.php | 2 +
app/Console/Commands/Activities/SetupIntegration/TwilioSetS3RecordingCredentialsCommand.php | 119 ++++
app/Console/Commands/Activities/UpdateActivityElasticSearchDocumentCommand.php | 10 +-
app/Console/Commands/Crm/BackfillOpportunityUserFromAccountCommand.php | 126 ++++
app/Console/Commands/Elasticsearch/AsyncUpdateEsActivities.php | 19 -
app/Console/Commands/Elasticsearch/AsyncUpdateEsEntities.php | 50 +-
app/Console/Commands/Elasticsearch/ResetAsyncElasticSearchCommand.php | 30 +-
app/Console/Commands/GeckoExport/GeckoExportParticipantSpeechesCommand.php | 14 +-
app/Console/Commands/IssueMcpTokenCommand.php | 84 +++
app/Console/Commands/JiminnyDebugCommand.php | 7 +-
app/Console/Commands/Tracks/CleanupActivityTracksCommand.php | 2 +-
app/Console/Kernel.php | 6 +-
app/Contracts/Services/Calendar/CalendarTrait.php | 80 ++-
app/Events/AutomatedReports/AutomatedReportGenerated.php | 3 +
app/Http/Controllers/API/AiCallScoring/AiScorecardController.php | 7 +-
app/Http/Controllers/API/TeamAiAutomationController.php | 8 +
app/Http/Controllers/CustomerApi/CustomerApiController.php | 4 +-
app/Http/Controllers/Kiosk/ActivityController.php | 58 +-
app/Http/Controllers/Settings/PlaybookController.php | 15 +-
app/Http/Kernel.php | 23 +
app/Http/Middleware/McpAuditMiddleware.php | 156 ++++
app/Http/Middleware/McpTierMiddleware.php | 54 ++
app/Http/Requests/API/V2/ZapierUploadActivityRequest.php | 28 +-
app/Jobs/Activity/Import/ImportTwilioVideoSpeechesJob.php | 25 +-
app/Jobs/Activity/Import/IsActivityReadyForProcessingJob.php | 10 +-
app/Jobs/Calendar/SetupCalendarSync.php | 21 +-
app/Jobs/ImportRemoteTrackJob.php | 96 ++-
app/Jobs/Mailbox/EmailTextRelay.php | 15 +-
app/Mcp/Contracts/McpCallRepositoryInterface.php | 30 +
app/Mcp/DTO/ListCallsFilters.php | 29 +
app/Mcp/Errors/McpError.php | 123 ++++
app/Mcp/Repositories/McpActivityHydrator.php | 145 ++++
app/Mcp/Repositories/McpCallRepository.php | 84 +++
app/Mcp/Repositories/McpElasticCallRepository.php | 171 +++++
app/Mcp/Servers/JiminnyServer.php | 38 +
app/Mcp/Tools/ListCallsTool.php | 205 ++++++
app/Models/Activity.php | 10 +-
app/Models/Activity/Transcription.php | 17 +-
app/Models/ElasticSearch/OpportunityElasticSearchTrait.php | 5 +
app/Models/Participant.php | 1 +
app/Providers/AppServiceProvider.php | 22 +
app/Repositories/Crm/ContactRepository.php | 69 +-
app/Repositories/ParticipantSpeechRepository.php | 13 +-
app/Services/Activity/ParticipantsService.php | 19 +-
app/Services/Activity/Twilio/S3RecordingCredentialsService.php | 82 +++
app/Services/ActivityService.php | 21 +-
app/Services/Calendar/CalendarActivityService.php | 46 ++
app/Services/Calendar/Command/ImportParticipants.php | 1 +
app/Services/Calendar/Command/MapActivityData.php | 106 +--
app/Services/Calendar/GoogleCalendarService.php | 12 +-
app/Services/Crm/Close/Processor/OpportunityProcessor.php | 2 +-
app/Services/Crm/Close/Service.php | 22 +-
app/Services/Crm/Copper/Service.php | 12 +-
app/Services/Crm/Hubspot/Service.php | 154 +++-
app/Services/Crm/Hubspot/ServiceTraits/OpportunitySyncTrait.php | 88 ++-
app/Services/Crm/IntegrationApp/ServiceTraits/SyncCrmEntitiesTrait.php | 22 +-
app/Services/Crm/Pipedrive/Service.php | 17 +-
app/Services/Crm/Salesforce/Service.php | 42 +-
app/Services/Mail/Office/EmailApiClient.php | 129 +---
app/Services/RecallAI/Commands/ScheduleBotCommand.php | 39 +-
app/Services/RecallAI/RecallAIService.php | 22 +-
composer.json | 3 +-
composer.lock | 87 ++-
config/mcp.php | 23 +
database/migrations/2026_04_30_120000_create_mcp_audit_log_table.php | 36 +
docs/mcp/explorer/explorer.html | 697 ++++++++++++++++++
docs/mcp/explorer/explorer.template.html | 697 ++++++++++++++++++
docs/mcp/explorer/generate.js | 215 ++++++
docs/mcp/explorer/tool-explorer-meta.json | 11 +
docs/mcp/tools-list.json | 2536 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
docs/mcp/tools.md | 621 ++++++++++++++++
front-end/package.json | 4 +-
front-end/src/components/Settings/OrgSettings/AiAutomation/CrmFilling/TemplateFieldForm.vue | 28 +-
front-end/src/components/Settings/OrgSettings/Playbooks/AddEditPlaybook.vue | 10 +
front-end/src/components/playback/comments/ActivityComment.less | 10 +-
front-end/src/components/shared/PromptTester/PromptTester.vue | 12 +-
front-end/src/components/shared/__tests__/PromptTester.spec.js | 35 +
front-end/src/components/shared/modals/EntityPickerModal/__tests__/useEntitiesCache.spec.ts | 37 +
front-end/src/components/shared/modals/EntityPickerModal/useEntitiesCache.ts | 9 +
front-end/yarn.lock | 16 +-
phpstan-baseline.neon | 50 --
routes/api.php | 11 +
sonar-project.properties | 91 ++-
tests/Feature/Component/Nudge/ProcessOrganisationImmediateNudgesJobTest.php | 534 ++++++++++++++
tests/Feature/Jobs/ImportRemoteTrackJobTest.php | 283 +++++++-
tests/Feature/Mcp/IssueMcpTokenCommandTest.php | 53 ++
tests/Feature/Mcp/ListCallsToolElasticFeatureTest.php | 155 ++++
tests/Feature/Mcp/ListCallsToolFeatureTest.php | 352 ++++++++++
tests/Feature/Mcp/McpTestHelpersTrait.php | 77 ++
tests/Feature/Services/Team/TeamDeleteHandlers/Retention/RetentionRepositoryHandlerTest.php | 1 +
tests/Stubs/SentryStub.php | 18 +
tests/Unit/Component/ActivityAnalytics/Service/CalculateTalkTimeOffsetFromTranscriptionTest.php | 28 +-
tests/Unit/Component/AiActivityType/Services/AiActivityTypeEligibilityCheckerTest.php | 103 ++-
tests/Unit/Component/AiAutomation/Actions/PrepareUpdateDtoActionTest.php | 91 +++
tests/Unit/Component/AiAutomation/Services/CrmFillingEligibilityCheckerTest.php | 124 ++++
tests/Unit/Component/AiAutomation/TestCrmAiPromptServiceTest.php | 67 +-
tests/Unit/Component/AiCallScoring/Services/AiCallScoringEligibilityCheckerTest.php | 55 ++
tests/Unit/Component/ES/ElasticSearchWorkerManagerTest.php | 135 ----
tests/Unit/Component/ES/Processor/Actions/LoadDocumentsActionTest.php | 220 ++++++
tests/Unit/Component/ES/Processor/EntityQueryBuilderTest.php | 21 +-
tests/Unit/Component/ES/Processor/Traits/SkipActivityTraitTest.php | 51 --
tests/Unit/Component/ES/Worker/ActivityWorkerTest.php | 174 -----
tests/Unit/Component/ES/Worker/EntityWorkerTest.php | 97 ---
tests/Unit/Component/ES/Worker/WorkerAmountTest.php | 116 ---
tests/Unit/Component/Encoding/Job/AnalyzeTrackChannelsJobTest.php | 52 +-
tests/Unit/Component/Encoding/Service/GenerateSpeechFromSilenceServiceTest.php | 171 ++---
tests/Unit/Component/FFMpeg/Services/GetSpeechIntervalsTest.php | 36 +-
tests/Unit/Component/LanguageDetection/Services/FindSpeechTimeServiceTest.php | 20 +-
tests/Unit/Component/MobileSettings/MobileSettingsControllerTest.php | 5 +-
tests/Unit/Component/ParticipantSpeech/Services/ParticipantSpeechesCreatorTest.php | 75 ++
tests/Unit/Component/ParticipantSpeech/Services/ParticipantSpeechesDeleterTest.php | 63 ++
tests/Unit/Component/ParticipantSpeech/Services/ParticipantSpeechesProviderTest.php | 134 ++++
tests/Unit/Component/ParticipantSpeech/Services/ParticipantSpeechesUploaderTest.php | 57 ++
tests/Unit/Component/Transcription/Diarization/Services/GetNormalizedParticipantSpeechesServiceTest.php | 51 +-
tests/Unit/Component/Transcription/Diarization/Source/MeetingBotSourceTest.php | 29 +-
tests/Unit/Contracts/Services/Calendar/CalendarTraitTest.php | 58 +-
tests/Unit/Http/Controllers/Kiosk/ActivityControllerTest.php | 159 +++++
tests/Unit/Jobs/Activity/Import/ImportTwilioVideoSpeechesJobTest.php | 22 +-
tests/Unit/Jobs/Activity/Import/IsActivityReadyForProcessingJobTest.php | 26 +-
tests/Unit/Jobs/Calendar/SetupCalendarSyncTest.php | 25 -
tests/Unit/Services/Activity/ParticipantsServiceTest.php | 12 +-
tests/Unit/Services/Activity/Twilio/S3RecordingCredentialsServiceTest.php | 180 +++++
tests/Unit/Services/ActivityServiceTest.php | 132 ++++
tests/Unit/Services/Calendar/CalendarActivityServiceTest.php | 150 +++-
tests/Unit/Services/Calendar/Command/ImportParticipantsTest.php | 6 +-
tests/Unit/Services/Calendar/Command/MapActivityDataTest.php | 78 +-
tests/Unit/Services/Calendar/GoogleCalendarServiceTest.php | 116 +++
tests/Unit/Services/Crm/Close/ServiceTest.php | 165 +++++
tests/Unit/Services/Crm/Hubspot/ServiceTest.php | 272 ++++++-
tests/Unit/Services/Crm/Hubspot/ServiceTraits/OpportunitySyncTest.php | 25 +-
tests/Unit/Services/Crm/Hubspot/ServiceTraits/OpportunitySyncTraitMatchActivitiesTest.php | 3 +-
tests/Unit/Services/Crm/IntegrationApp/ServiceTraits/SyncCrmEntitiesTraitOpportunitiesTest.php | 40 ++
tests/Unit/Services/Crm/Pipedrive/ImportOpportunityMatchActivitiesTest.php | 2 +
tests/Unit/Services/Crm/Salesforce/ServiceTest.php | 139 ++++
tests/Unit/Services/Mail/Office/EmailApiClientTest.php | 195 ++---
tests/Unit/Services/RecallAI/RecallAIServiceTest.php | 24 +-
175 files changed, 12562 insertions(+), 2162 deletions(-)
create mode 120000 CLAUDE.md
create mode 100644 app/Component/AiAutomation/Services/CrmFillingEligibilityChecker.php
delete mode 100644 app/Component/ES/ElasticSearchWorkerManager.php
delete mode 100644 app/Component/ES/Processor/Traits/SkipActivityTrait.php
delete mode 100644 app/Component/ES/Worker/ActivityWorker.php
delete mode 100644 app/Component/ES/Worker/EntityWorker.php
delete mode 100644 app/Component/ES/Worker/WorkerAmount.php
delete mode 100644 app/Component/ES/Worker/WorkerInterface.php
create mode 100644 app/Component/ProphetAi/Exceptions/InsufficientTranscriptException.php
create mode 100644 app/Component/Transcription/DTO/Http/Transcription/AssemblyAI/AssemblyAI/NoAssemblyIdException.php
create mode 100644 app/Component/Transcription/DTO/Http/Transcription/TranscriptionIsNotCorrectFormatException.php
create mode 100644 app/Console/Commands/Activities/SetupIntegration/TwilioSetS3RecordingCredentialsCommand.php
create mode 100644 app/Console/Commands/Crm/BackfillOpportunityUserFromAccountCommand.php
delete mode 100644 app/Console/Commands/Elasticsearch/AsyncUpdateEsActivities.php
create mode 100644 app/Console/Commands/IssueMcpTokenCommand.php
create mode 100644 app/Http/Middleware/McpAuditMiddleware.php
create mode 100644 app/Http/Middleware/McpTierMiddleware.php
create mode 100644 app/Mcp/Contracts/McpCallRepositoryInterface.php
create mode 100644 app/Mcp/DTO/ListCallsFilters.php
create mode 100644 app/Mcp/Errors/McpError.php
create mode 100644 app/Mcp/Repositories/McpActivityHydrator.php
create mode 100644 app/Mcp/Repositories/McpCallRepository.php
create mode 100644 app/Mcp/Repositories/McpElasticCallRepository.php
create mode 100644 app/Mcp/Servers/JiminnyServer.php
create mode 100644 app/Mcp/Tools/ListCallsTool.php
create mode 100644 app/Services/Activity/Twilio/S3RecordingCredentialsService.php
create mode 100644 config/mcp.php
create mode 100644 database/migrations/2026_04_30_120000_create_mcp_audit_log_table.php
create mode 100644 docs/mcp/explorer/explorer.html
create mode 100644 docs/mcp/explorer/explorer.template.html
create mode 100644 docs/mcp/explorer/generate.js
create mode 100644 docs/mcp/explorer/tool-explorer-meta.json
create mode 100644 docs/mcp/tools-list.json
create mode 100644 docs/mcp/tools.md
create mode 100644 front-end/src/components/shared/modals/EntityPickerModal/__tests__/useEntitiesCache.spec.ts
create mode 100644 tests/Feature/Component/Nudge/ProcessOrganisationImmediateNudgesJobTest.php
create mode 100644 tests/Feature/Mcp/IssueMcpTokenCommandTest.php
create mode 100644 tests/Feature/Mcp/ListCallsToolElasticFeatureTest.php
create mode 100644 tests/Feature/Mcp/ListCallsToolFeatureTest.php
create mode 100644 tests/Feature/Mcp/McpTestHelpersTrait.php
create mode 100644 tests/Stubs/SentryStub.php
create mode 100644 tests/Unit/Component/AiAutomation/Services/CrmFillingEligibilityCheckerTest.php
delete mode 100644 tests/Unit/Component/ES/ElasticSearchWorkerManagerTest.php
create mode 100644 tests/Unit/Component/ES/Processor/Actions/LoadDocumentsActionTest.php
delete mode 100644 tests/Unit/Component/ES/Processor/Traits/SkipActivityTraitTest.php
delete mode 100644 tests/Unit/Component/ES/Worker/ActivityWorkerTest.php
delete mode 100644 tests/Unit/Component/ES/Worker/EntityWorkerTest.php
delete mode 100644 tests/Unit/Component/ES/Worker/WorkerAmountTest.php
create mode 100644 tests/Unit/Component/ParticipantSpeech/Services/ParticipantSpeechesCreatorTest.php
create mode 100644 tests/Unit/Http/Controllers/Kiosk/ActivityControllerTest.php
create mode 100644 tests/Unit/Services/Activity/Twilio/S3RecordingCredentialsServiceTest.php
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20725-handle-HS-search-rate-limit) $ git status
On branch master
Your branch is behind 'origin/master' by 114 commits, and can be fast-forwarded.
(use "git pull" to update your local branch)
Changes not staged for commit:
(use "git add <file>..." to update what will be committed)
(use "git restore <file>..." to discard changes in working directory)
modified: .env.local
modified: app/Component/SCIM/Constants.php
modified: app/Component/SCIM/ScimProvisioning.php
modified: app/Component/Twilio/Conference/ConferenceManager/SoftPhoneManager.php
modified: app/Console/Commands/JiminnyDebugCommand.php
modified: app/DTO/SCIM/AAD/Request/CoreUserRequest.php
modified: app/DTO/SCIM/AAD/Response/CoreUser.php
modified: app/Services/Telephony/TextMessagingService.php
modified: config/logging.php
Untracked files:
(use "git add <file>..." to include in what will be committed)
.env.nikilocal
.env.other
WEBHOOK_FILTERING_IMPLEMENTATION.md
app/Component/SCIM/Mutators/Attributes/User/RoleAttr.php
app/Console/Commands/Crm/Hubspot/SimulateWebhooksCommand.php
app/Console/Commands/Reports/CreateMockAskJiminnyReportResultCommand.php
app/Rules/ListenerRoleCannotHaveAdminOrManagerPermissionRule.php
ids.txt
public/favicon.ico
raw_sql_query.sql
tests/Unit/Component/SCIM/Mutators/Attributes/User/RoleAttrTest.php
tests/Unit/Policies/CanAccessAiReportsTest.php
tests/Unit/Rules/ListenerRoleCannotHaveAdminOrManagerPermissionRuleTest.php
no changes added to commit (use "git add" and/or "git commit -a")
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (master) $ git pull
remote: Enumerating objects: 306, done.
remote: Counting objects: 100% (299/299), done.
remote: Compressing objects: 100% (183/183), done.
remote: Total 306 (delta 213), reused 171 (delta 116), pack-reused 7 (from 1)
Receiving objects: 100% (306/306), 80.12 KiB | 1000.00 KiB/s, done.
Resolving deltas: 100% (213/213), completed with 53 local objects.
From github.com:jiminny/app
90bca4e4b2..5604af40cf master -> origin/master
4e7078fd8b..0b8343d179 JY-18091-upgrade-to-php-8-5 -> origin/JY-18091-upgrade-to-php-8-5
098eeaa087..d5a447e492 JY-20613-allow-owner-role-on-team-setup -> origin/JY-20613-allow-owner-role-on-team-setup
c3a76ace91..af65249d0f JY-20749-user-can-view-recorded-meetings -> origin/JY-20749-user-can-view-recorded-meetings
d94a285ae7..7ce96cb5fe JY-20808-low-priority-indexing-queue -> origin/JY-20808-low-priority-indexing-queue
* [new branch] JY-20842-remove-partial-updater -> origin/JY-20842-remove-partial-updater
* [new branch] JY-20920-fix-participant-flip -> origin/JY-20920-fix-participant-flip
* [new branch] secfix/npm-20260519 -> origin/secfix/npm-20260519
Updating cb4ebf0c36..5604af40cf
Fast-forward
app/Component/ES/ChunkSize.php | 54 +++++++++++++++++++
app/Component/ES/Processor/DTOs/SelectionList.php | 4 +-
app/Component/ES/Processor/TargetEntitiesSelector.php | 19 ++++---
app/Component/MeetingBot/Service/ParticipantMatcher.php | 46 ++++++++++++----
app/Exceptions/RateLimitException.php | 19 ++++++-
app/Http/Middleware/McpTierMiddleware.php | 27 ++--------
app/Jobs/Crm/MatchActivityCrmData.php | 47 ++++++++++++----
app/Jobs/Middleware/HandleHubspotRateLimit.php | 42 +++++++++++++++
app/Mcp/Servers/JiminnyServer.php | 2 +
app/Mcp/Tools/GetMeTool.php | 157 +++++++++++++++++++++++++++++++++++++++++++++++++++++
app/Models/Feature/FeatureEnum.php | 1 +
app/Services/Activity/HubSpot/ProviderResolver.php | 4 +-
app/Services/Activity/HubSpot/ProviderResolverInterface.php | 2 +-
app/Services/Activity/HubSpot/Providers/Provider.php | 2 +-
app/Services/Activity/HubSpot/Providers/ProviderKixie.php | 2 +-
app/Services/Activity/HubSpot/Providers/ProviderOrum.php | 2 +-
app/Services/Activity/HubSpot/Providers/ProviderTwilio.php | 2 +-
app/Services/Activity/HubSpot/Providers/ProviderTwilioFlex.php | 5 +-
app/Services/Activity/HubSpot/Service.php | 97 +++++++++++++++++++++++++++------
app/Services/Crm/Hubspot/Client.php | 132 +++++++++++++++++++++++++++++++++++++++++++++
app/Services/Crm/Hubspot/HubspotClientInterface.php | 15 ++++++
app/Services/Crm/Hubspot/Pagination/HubspotPaginationService.php | 21 ++++----
app/Services/Crm/Hubspot/Pagination/PaginationState.php | 2 +-
database/migrations/2026_05_13_124153_create_mcp_feature_flag.php | 25 +++++++++
tests/Feature/Mcp/GetMeToolFeatureTest.php | 140 +++++++++++++++++++++++++++++++++++++++++++++++
tests/Feature/Mcp/ListCallsToolFeatureTest.php | 2 +-
tests/Feature/Mcp/McpTestHelpersTrait.php | 19 ++++++-
tests/Unit/Component/ES/ChunkSizeTest.php | 50 +++++++++++++++++
tests/Unit/Component/ES/Processor/DTOs/SelectionListTest.php | 27 +++++++---
tests/Unit/Component/ES/Processor/TargetEntitiesSelectorTest.php | 39 ++++++++------
tests/Unit/Component/MeetingBot/Service/ParticipantMatcherTest.php | 68 ++++++++++++++++++++++-
tests/Unit/Exceptions/RateLimitExceptionTest.php | 56 +++++++++++++++++++
tests/Unit/Jobs/Crm/MatchActivityCrmDataTest.php | 8 +--
tests/Unit/Jobs/Middleware/HandleHubspotRateLimitTest.php | 151 +++++++++++++++++++++++++++++++++++++++++++++++++++
tests/Unit/Services/Activity/HubSpot/ServiceTest.php | 109 +++++++++++++++++++++++++++++++++++++
tests/Unit/Services/Crm/Hubspot/ClientTest.php | 250 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
tests/Unit/Services/Crm/Hubspot/Pagination/HubspotPaginationServiceTest.php | 283 +++++++++++++++++++++---------------------------------------------------------------------------
37 files changed, 1587 insertions(+), 344 deletions(-)
create mode 100644 app/Component/ES/ChunkSize.php
create mode 100644 app/Jobs/Middleware/HandleHubspotRateLimit.php
create mode 100644 app/Mcp/Tools/GetMeTool.php
create mode 100644 database/migrations/2026_05_13_124153_create_mcp_feature_flag.php
create mode 100644 tests/Feature/Mcp/GetMeToolFeatureTest.php
create mode 100644 tests/Unit/Component/ES/ChunkSizeTest.php
create mode 100644 tests/Unit/Exceptions/RateLimitExceptionTest.php
create mode 100644 tests/Unit/Jobs/Middleware/HandleHubspotRateLimitTest.php
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (master) $ git pull
Already up to date.
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (master) $ co -b JY-20676-delete-report-related-objects
Switched to a new branch 'JY-20676-delete-report-related-objects'
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20676-delete-report-related-objects) $ csfix
docker exec -it docker_lamp_1 ./vendor/bin/php-cs-fixer fix --config=.php-cs-fixer.dist.php -v --using-cache=no --diff
PHP CS Fixer 3.87.1 Alexander by Fabien Potencier, Dariusz Ruminski and contributors.
PHP runtime: 8.3.30
Running 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!
Loaded config default from ".php-cs-fixer.dist.php".
5690/5690 [▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓] 100%
1) app/Console/Commands/JiminnyDebugCommand.php (statement_indentation, blank_line_before_statement)
---------- begin diff ----------
--- /home/jiminny/app/Console/Commands/JiminnyDebugCommand.php
+++ /home/jiminny/app/Console/Commands/JiminnyDebugCommand.php
@@ -23,6 +23,7 @@
if ($action === 'redis-set') {
$this->testRedisSet();
+
return;
}
@@ -45,7 +46,7 @@
$ttl = 60;
try {
-// $result = Redis::set($testKey, $testValue, 'EX', $ttl, 'NX');
+ // $result = Redis::set($testKey, $testValue, 'EX', $ttl, 'NX');
$result = Redis::set($testKey, $testValue, ['nx', 'ex' => $ttl]);
if ($result) {
----------- end diff -----------
Fixed 1 of 5690 files i...
|
[{"role":"AXTextArea","text [{"role":"AXTextArea","text":"Last login: Mon May 18 09:17:28 on ttys007\n\nPoetry could not find a pyproject.toml file in /Users/lukas/jiminny/app or its parents\n\nPoetry could not find a pyproject.toml file in /Users/lukas/jiminny/app or its parents\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (pipedrive-sdk-poc) $ co master\nerror: Your local changes to the following files would be overwritten by checkout:\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tPIPEDRIVE_V2_MIGRATION_TICKETS.md\nPlease commit your changes or stash them before you switch branches.\nAborting\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (pipedrive-sdk-poc) $ git pull\nremote: Enumerating objects: 1047, done.\nremote: Counting objects: 100% (832/832), done.\nremote: Compressing objects: 100% (298/298), done.\nremote: Total 1047 (delta 634), reused 596 (delta 534), pack-reused 215 (from 3)\nReceiving objects: 100% (1047/1047), 353.16 KiB | 1.56 MiB/s, done.\nResolving deltas: 100% (687/687), completed with 107 local objects.\nFrom github.com:jiminny/app\n 907c54896c..34656c53ed pipedrive-sdk-poc -> origin/pipedrive-sdk-poc\n 03325ec50f..4e7078fd8b JY-18091-upgrade-to-php-8-5 -> origin/JY-18091-upgrade-to-php-8-5\n e7d231e163..bc6a3fce6b JY-20725-handle-HS-search-rate-limit -> origin/JY-20725-handle-HS-search-rate-limit\n * [new branch] JY-20749-user-can-view-recorded-meetings -> origin/JY-20749-user-can-view-recorded-meetings\n 98ca281a04..e0351be069 JY-20808-low-priority-indexing-queue -> origin/JY-20808-low-priority-indexing-queue\n 569abb5149..3906a9238a JY-20835-mcp-enable-users-to-get-a-list-of-deals-and-their-details -> origin/JY-20835-mcp-enable-users-to-get-a-list-of-deals-and-their-details\n ad6c2a86e8..50eb6afba9 JY-20846-mcp-enable-the-ai-to-know-details-about-the-user -> origin/JY-20846-mcp-enable-the-ai-to-know-details-about-the-user\n * [new branch] JY-20893-chunk-control-per-update-target -> origin/JY-20893-chunk-control-per-update-target\n 31c62924a5..cb4ebf0c36 master -> origin/master\nUpdating 907c54896c..34656c53ed\nFast-forward\n PIPEDRIVE_V2_MIGRATION_TICKETS.md | 52 ++++++++++++++++++++++++++++++++++++++++++++++++++++\n 1 file changed, 52 insertions(+)\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (pipedrive-sdk-poc) $ co master\nM\u0000\u0000\u0000\u0000\u0000\u0000\t.env.local\nM\u0000\u0000\u0000\u0000\u0000\u0000\tconfig/logging.php\nSwitched to branch 'master'\nYour branch is behind 'origin/master' by 31 commits, and can be fast-forwarded.\n (use \"git pull\" to update your local branch)\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (master) $ git pull\nUpdating 31c62924a5..cb4ebf0c36\nFast-forward\n app/Component/ES/Processor/Traits/SelectEntityListTrait.php | 20 ------\n app/Services/Calendar/CalendarActivityService.php | 46 +++++++++++++\n app/Services/Calendar/Command/MapActivityData.php | 106 +++-------------------------\n docs/mcp/explorer/explorer.html | 104 +++++++++++++++++++++++++---\n docs/mcp/explorer/explorer.template.html | 102 ++++++++++++++++++++++++---\n docs/mcp/tools-list.json | 373 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++-------\n docs/mcp/tools.md | 117 +++++++++++++++++++++++--------\n tests/Unit/Component/ES/AsyncUpdateElasticSearchTest.php | 16 +----\n tests/Unit/Component/ES/Listeners/UpdateMultipleTargetsListenerTest.php | 10 ---\n tests/Unit/Component/ES/Listeners/UpdateSingleTargetListenerTest.php | 6 --\n tests/Unit/Component/ES/Processor/TargetEntitiesSelectorTest.php | 9 ---\n tests/Unit/Component/ES/Processor/Traits/SelectEntityListTraitTest.php | 15 ++--\n tests/Unit/Component/ES/UpdateProcessManagerTest.php | 2 -\n tests/Unit/Services/Calendar/CalendarActivityServiceTest.php | 150 ++++++++++++++++++++++++++++++++++++++--\n tests/Unit/Services/Calendar/Command/MapActivityDataTest.php | 78 ++-------------------\n 15 files changed, 832 insertions(+), 322 deletions(-)\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (master) $ co -b JY-20613-allow-owner-role-on-team-setup\nSwitched to a new branch 'JY-20613-allow-owner-role-on-team-setup'\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20613-allow-owner-role-on-team-setup) $ csfix\ndocker exec -it docker_lamp_1 ./vendor/bin/php-cs-fixer fix --config=.php-cs-fixer.dist.php -v --using-cache=no --diff \nPHP CS Fixer 3.87.1 Alexander by Fabien Potencier, Dariusz Ruminski and contributors.\nPHP runtime: 8.3.30\nRunning analysis on 7 cores with 10 files per process.\nParallel runner is an experimental feature and may be unstable, use it at your own risk. Feedback highly appreciated!\nLoaded config default from \".php-cs-fixer.dist.php\".\n 5682/5682 [▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓] 100%\n\n\nFixed 0 of 5682 files in 56.978 seconds, 67.00 MB memory used\n\nWhat's next:\n Try Docker Debug for seamless, persistent debugging tools in any container or image → docker debug docker_lamp_1\n Learn more at https://docs.docker.com/go/debug-cli/\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20613-allow-owner-role-on-team-setup) $ ;xd\ndocker exec -it docker_lamp_1 bash -c \"mv /usr/local/etc/php/conf.d/xdebug.ini ~/xdebug.ini\"\n\nWhat's next:\n Try Docker Debug for seamless, persistent debugging tools in any container or image → docker debug docker_lamp_1\n Learn more at https://docs.docker.com/go/debug-cli/\ndocker exec -it docker_lamp_1 supervisorctl restart all\njiminny-worker-processing-2:jiminny-worker-processing-2_00: stopped\njiminny-worker-processing-3:jiminny-worker-processing-3_00: stopped\njiminny-worker-processing-4:jiminny-worker-processing-4_00: stopped\njiminny-worker-processing-5:jiminny-worker-processing-5_00: stopped\njiminny-worker-processing-delayed:jiminny-worker-processing-delayed_00: stopped\nworker-analytics:worker-analytics_00: stopped\nworker-crm-update:worker-crm-update_00: stopped\nworker-download:worker-download_00: stopped\nworker-nudges:worker-nudges_00: stopped\nartisan-schedule:artisan-schedule_00: stopped\nworker-emails:worker-emails_00: stopped\nworker-calendar:worker-calendar_00: stopped\nworker:worker_00: stopped\nworker-conferences:worker-conferences_00: stopped\nworker-crm-sync:worker-crm-sync_00: stopped\njiminny-worker-processing-1:jiminny-worker-processing-1_00: stopped\nworker-audio:worker-audio_00: stopped\nworker-es-update:worker-es-update_00: stopped\nartisan-schedule:artisan-schedule_00: started\njiminny-worker-processing-1:jiminny-worker-processing-1_00: started\njiminny-worker-processing-2:jiminny-worker-processing-2_00: started\njiminny-worker-processing-3:jiminny-worker-processing-3_00: started\njiminny-worker-processing-4:jiminny-worker-processing-4_00: started\njiminny-worker-processing-5:jiminny-worker-processing-5_00: started\njiminny-worker-processing-delayed:jiminny-worker-processing-delayed_00: started\nworker:worker_00: started\nworker-analytics:worker-analytics_00: started\nworker-audio:worker-audio_00: started\nworker-calendar:worker-calendar_00: started\nworker-conferences:worker-conferences_00: started\nworker-crm-sync:worker-crm-sync_00: started\nworker-crm-update:worker-crm-update_00: started\nworker-download:worker-download_00: started\nworker-emails:worker-emails_00: started\nworker-es-update:worker-es-update_00: started\nworker-nudges:worker-nudges_00: started\n\nWhat's next:\n Try Docker Debug for seamless, persistent debugging tools in any container or image → docker debug docker_lamp_1\n Learn more at https://docs.docker.com/go/debug-cli/\ndocker exec -it docker_lamp_1 php -v\nPHP 8.3.30 (cli) (built: Mar 16 2026 22:32:32) (NTS)\nCopyright (c) The PHP Group\nZend Engine v4.3.30, Copyright (c) Zend Technologies\n with Zend OPcache v8.3.30, Copyright (c), by Zend Technologies\n\nWhat's next:\n Try Docker Debug for seamless, persistent debugging tools in any container or image → docker debug docker_lamp_1\n Learn more at https://docs.docker.com/go/debug-cli/\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20613-allow-owner-role-on-team-setup) $ csfix\ndocker exec -it docker_lamp_1 ./vendor/bin/php-cs-fixer fix --config=.php-cs-fixer.dist.php -v --using-cache=no --diff \nPHP CS Fixer 3.87.1 Alexander by Fabien Potencier, Dariusz Ruminski and contributors.\nPHP runtime: 8.3.30\nRunning analysis on 7 cores with 10 files per process.\nParallel runner is an experimental feature and may be unstable, use it at your own risk. Feedback highly appreciated!\nLoaded config default from \".php-cs-fixer.dist.php\".\n 5682/5682 [▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓] 100%\n\n\nFixed 0 of 5682 files in 49.910 seconds, 60.00 MB memory used\n\nWhat's next:\n Try Docker Debug for seamless, persistent debugging tools in any container or image → docker debug docker_lamp_1\n Learn more at https://docs.docker.com/go/debug-cli/\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20613-allow-owner-role-on-team-setup) $ git status\nOn branch JY-20613-allow-owner-role-on-team-setup\nYour branch is ahead of 'origin/JY-20613-allow-owner-role-on-team-setup' by 1 commit.\n (use \"git push\" to publish your local commits)\n\nChanges not staged for commit:\n (use \"git add <file>...\" to update what will be committed)\n (use \"git restore <file>...\" to discard changes in working directory)\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tmodified: .env.local\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tmodified: config/logging.php\n\nUntracked files:\n (use \"git add <file>...\" to include in what will be committed)\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\t.env.nikilocal\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\t.env.other\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tWEBHOOK_FILTERING_IMPLEMENTATION.md\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tapp/Console/Commands/Crm/Hubspot/SimulateWebhooksCommand.php\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tapp/Console/Commands/Reports/CreateMockAskJiminnyReportResultCommand.php\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tids.txt\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tpublic/favicon.ico\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\traw_sql_query.sql\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\ttests/Unit/Policies/CanAccessAiReportsTest.php\n\nno changes added to commit (use \"git add\" and/or \"git commit -a\")\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20613-allow-owner-role-on-team-setup) $ git pull\nremote: Enumerating objects: 248, done.\nremote: Counting objects: 100% (128/128), done.\nremote: Compressing objects: 100% (23/23), done.\nremote: Total 59 (delta 43), reused 44 (delta 33), pack-reused 0 (from 0)\nUnpacking objects: 100% (59/59), 10.48 KiB | 228.00 KiB/s, done.\nFrom github.com:jiminny/app\n b7df560451..190239dfd4 JY-20613-allow-owner-role-on-team-setup -> origin/JY-20613-allow-owner-role-on-team-setup\n e0351be069..d94a285ae7 JY-20808-low-priority-indexing-queue -> origin/JY-20808-low-priority-indexing-queue\n * [new branch] JY-20920-fix-participant-matcher -> origin/JY-20920-fix-participant-matcher\n cb4ebf0c36..90bca4e4b2 master -> origin/master\nMerge made by the 'ort' strategy.\n app/Component/ES/ChunkSize.php | 54 +++++++++++++++++++++++++++\n app/Component/ES/Processor/DTOs/SelectionList.php | 4 +-\n app/Component/ES/Processor/TargetEntitiesSelector.php | 19 ++++++----\n app/Http/Middleware/McpTierMiddleware.php | 27 +++-----------\n app/Mcp/Servers/JiminnyServer.php | 2 +\n app/Mcp/Tools/GetMeTool.php | 157 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++\n app/Models/Feature/FeatureEnum.php | 1 +\n database/migrations/2026_05_13_124153_create_mcp_feature_flag.php | 25 +++++++++++++\n front-end/src/components/Settings/Kiosk/modals/EditTeamModal/EditTeamModal.vue | 52 ++++++++++++++++++--------\n front-end/src/components/Settings/Kiosk/modals/EditTeamModal/__tests__/EditTeamModal.spec.js | 14 +++++++\n tests/Feature/Mcp/GetMeToolFeatureTest.php | 140 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++\n tests/Feature/Mcp/ListCallsToolFeatureTest.php | 2 +-\n tests/Feature/Mcp/McpTestHelpersTrait.php | 19 +++++++++-\n tests/Unit/Component/ES/ChunkSizeTest.php | 50 +++++++++++++++++++++++++\n tests/Unit/Component/ES/Processor/DTOs/SelectionListTest.php | 27 ++++++++++----\n tests/Unit/Component/ES/Processor/TargetEntitiesSelectorTest.php | 39 +++++++++++---------\n 16 files changed, 557 insertions(+), 75 deletions(-)\n create mode 100644 app/Component/ES/ChunkSize.php\n create mode 100644 app/Mcp/Tools/GetMeTool.php\n create mode 100644 database/migrations/2026_05_13_124153_create_mcp_feature_flag.php\n create mode 100644 tests/Feature/Mcp/GetMeToolFeatureTest.php\n create mode 100644 tests/Unit/Component/ES/ChunkSizeTest.php\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20613-allow-owner-role-on-team-setup) $ git push\nEnumerating objects: 40, done.\nCounting objects: 100% (34/34), done.\nDelta compression using up to 8 threads\nCompressing objects: 100% (18/18), done.\nWriting objects: 100% (18/18), 1.58 KiB | 1.58 MiB/s, done.\nTotal 18 (delta 15), reused 0 (delta 0), pack-reused 0\nremote: Resolving deltas: 100% (15/15), completed with 13 local objects.\nTo github.com:jiminny/app.git\n 190239dfd4..ec1b261264 JY-20613-allow-owner-role-on-team-setup -> JY-20613-allow-owner-role-on-team-setup\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20613-allow-owner-role-on-team-setup) $ gbr\n* JY-20613-allow-owner-role-on-team-setup\n pipedrive-sdk-poc\n master\n JY-20903-update_activity-stage-on-opportunity-change\n JY-20904-fix-update-es-on-activity-command\n JY-20891-improve-sms-text-relays\n JY-20725-handle-HS-search-rate-limit\n JY-20818-move-AJ-reports-to-separated-datadog-metric\n JY-20773-fix-automated-reports-user-pilot-tracking\n JY-20157-AJ-report-not-send-notification\n JY-20508-notify-before-AJ-report-expiration\n JY-20372-ai-reports-promotion-pages\n JY-20352-sync-opportunities-without-a-local-owner-user-id-is-null\n JY-20738-debug-AJ-tracking-UP\n a\n JY-18909-automated-reports-ask-jiminny\n JY-20692-fix-integration-app-token-auth-response-change\n JY-20553-debug-crm-sync-delays\n JY-20698-fix-SF-activity-types-on-new-playbook\n JY-20543-AJ-report-tracking\n JY-20384-handle-auto-sync-with-no-access-to-event-type\n JY-20458-ask-jiminny-user-definitions\n JY-19666-fix-import-contacts-account-association\n JY-19666-HS-import-contacts-and-accounts-batch-job\n JY-20458-Ask-Jiminny-Reports\n JY-20200-batch-update-CRM-objects-Salesforce\n JY-19666-HS-webhooks-add-contact-and-company\n JY-20348-trigger-setup-DI-layout-on-team-creation\n JY-20326-refactor-info-message-in-command\n JY-20317-fix-auto-log-delay-issue-on-all-channels-disabled\n JY-20312-remove-on-update-change-last-synced-at-crm-configurations\n JY-20306-SF-skip-auto-sync-for-task-based-playbook\n JY-20192-remove-deleted-team-from-saved-search-filters\n JY-20197-import-opportunity-batch-job\n JY-20293-enable-status-field-for-pipedrive-deals\n JY-20191-remove-commands-interactive-prompts\n JY-20118-change-default-sync-strategy\n JY-20183-add-cache-on-auto-log-delay\n JY-20197-add-import-opportunity-batch-job\n 20118-hs-opportunity-make-webhook-strategy-default\n JY-20118-make-default-hs-opportunity-sync-strategy-webhook-based\n JY-20196-handle-opportunity-without-note\n JY-20118-improve-opportunity-import\n JY-20189-handle-activity-search-on-deleted-groups\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20613-allow-owner-role-on-team-setup) $ co JY-20725-handle-HS-search-rate-limit\nM\u0000\u0000\u0000\u0000\u0000\u0000\t.env.local\nM\u0000\u0000\u0000\u0000\u0000\u0000\tconfig/logging.php\nSwitched to branch 'JY-20725-handle-HS-search-rate-limit'\nYour branch is behind 'origin/JY-20725-handle-HS-search-rate-limit' by 439 commits, and can be fast-forwarded.\n (use \"git pull\" to update your local branch)\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20725-handle-HS-search-rate-limit) $ git pull\nUpdating 0f3e438941..bc6a3fce6b\nFast-forward\n .gitignore | 3 +-\n .windsurfrules | 168 ++---\n CLAUDE.md | 1 +\n app/Component/ActivityAnalytics/Service/CalculateTalkTimeOffsetsFromTranscription.php | 24 +-\n app/Component/AiActivityType/Services/AiActivityTypeEligibilityChecker.php | 28 +-\n app/Component/AiAutomation/Actions/PrepareUpdateDtoAction.php | 32 +-\n app/Component/AiAutomation/Services/CrmFillingEligibilityChecker.php | 47 ++\n app/Component/AiAutomation/TestCrmAiPromptService.php | 14 +\n app/Component/AiCallScoring/Services/AiCallScoringEligibilityChecker.php | 9 +\n app/Component/ES/ElasticSearchDocumentPartialUpdater.php | 13 +-\n app/Component/ES/ElasticSearchWorkerManager.php | 86 ---\n app/Component/ES/Processor/Actions/LoadDocumentsAction.php | 80 +--\n app/Component/ES/Processor/EntityQueryBuilder.php | 12 +-\n app/Component/ES/Processor/TargetEntitiesSelector.php | 2 +-\n app/Component/ES/Processor/Traits/SkipActivityTrait.php | 25 -\n app/Component/ES/Repositories/EsResetActivityRepository.php | 11 +-\n app/Component/ES/Worker/ActivityWorker.php | 73 --\n app/Component/ES/Worker/EntityWorker.php | 44 --\n app/Component/ES/Worker/WorkerAmount.php | 60 --\n app/Component/ES/Worker/WorkerInterface.php | 15 -\n app/Component/ElasticSearch/Contract/Searchable.php | 4 +\n app/Component/Encoding/Job/AnalyzeTrackChannelsJob.php | 20 +-\n app/Component/Encoding/Service/GenerateSpeechFromSilenceService.php | 85 ++-\n app/Component/FFMpeg/Services/GetSpeechIntervalsService.php | 18 +-\n app/Component/LanguageDetection/Services/FindSpeechTimeService.php | 22 +-\n app/Component/Nudge/Job/ProcessOrganisationImmediateNudgesJob.php | 218 +++++-\n app/Component/ParagraphBreaker/Services/TranscriptionParagraphsService.php | 4 +\n app/Component/ParticipantSpeech/Services/ParticipantSpeechesCreator.php | 33 +\n app/Component/ParticipantSpeech/Services/ParticipantSpeechesDeleter.php | 15 +\n app/Component/ParticipantSpeech/Services/ParticipantSpeechesProvider.php | 51 +-\n app/Component/ParticipantSpeech/Services/ParticipantSpeechesUploader.php | 36 +\n app/Component/ProphetAi/Exceptions/InsufficientTranscriptException.php | 11 +\n app/Component/Transcription/DTO/Http/Transcription/AssemblyAI/AssemblyAI/NoAssemblyIdException.php | 11 +\n app/Component/Transcription/DTO/Http/Transcription/AssemblyAI/AssemblyAI/SuccessfulResponse.php | 6 +\n app/Component/Transcription/DTO/Http/Transcription/TranscriptionIsNotCorrectFormatException.php | 11 +\n app/Component/Transcription/Diarization/Services/GetNormalizedParticipantSpeechesService.php | 23 +-\n app/Component/Transcription/Diarization/Source/MeetingBotSource.php | 16 +-\n app/Component/Transcription/TranscriptionProcessor/TranscriptionProcessor.php | 3 +\n app/Console/Commands/Activities/ActivityHardDeleteCommand.php | 4 +-\n app/Console/Commands/Activities/Copy.php | 2 +\n app/Console/Commands/Activities/SetupIntegration/TwilioSetS3RecordingCredentialsCommand.php | 119 ++++\n app/Console/Commands/Activities/UpdateActivityElasticSearchDocumentCommand.php | 10 +-\n app/Console/Commands/Crm/BackfillOpportunityUserFromAccountCommand.php | 126 ++++\n app/Console/Commands/Elasticsearch/AsyncUpdateEsActivities.php | 19 -\n app/Console/Commands/Elasticsearch/AsyncUpdateEsEntities.php | 50 +-\n app/Console/Commands/Elasticsearch/ResetAsyncElasticSearchCommand.php | 30 +-\n app/Console/Commands/GeckoExport/GeckoExportParticipantSpeechesCommand.php | 14 +-\n app/Console/Commands/IssueMcpTokenCommand.php | 84 +++\n app/Console/Commands/JiminnyDebugCommand.php | 7 +-\n app/Console/Commands/Tracks/CleanupActivityTracksCommand.php | 2 +-\n app/Console/Kernel.php | 6 +-\n app/Contracts/Services/Calendar/CalendarTrait.php | 80 ++-\n app/Events/AutomatedReports/AutomatedReportGenerated.php | 3 +\n app/Http/Controllers/API/AiCallScoring/AiScorecardController.php | 7 +-\n app/Http/Controllers/API/TeamAiAutomationController.php | 8 +\n app/Http/Controllers/CustomerApi/CustomerApiController.php | 4 +-\n app/Http/Controllers/Kiosk/ActivityController.php | 58 +-\n app/Http/Controllers/Settings/PlaybookController.php | 15 +-\n app/Http/Kernel.php | 23 +\n app/Http/Middleware/McpAuditMiddleware.php | 156 ++++\n app/Http/Middleware/McpTierMiddleware.php | 54 ++\n app/Http/Requests/API/V2/ZapierUploadActivityRequest.php | 28 +-\n app/Jobs/Activity/Import/ImportTwilioVideoSpeechesJob.php | 25 +-\n app/Jobs/Activity/Import/IsActivityReadyForProcessingJob.php | 10 +-\n app/Jobs/Calendar/SetupCalendarSync.php | 21 +-\n app/Jobs/ImportRemoteTrackJob.php | 96 ++-\n app/Jobs/Mailbox/EmailTextRelay.php | 15 +-\n app/Mcp/Contracts/McpCallRepositoryInterface.php | 30 +\n app/Mcp/DTO/ListCallsFilters.php | 29 +\n app/Mcp/Errors/McpError.php | 123 ++++\n app/Mcp/Repositories/McpActivityHydrator.php | 145 ++++\n app/Mcp/Repositories/McpCallRepository.php | 84 +++\n app/Mcp/Repositories/McpElasticCallRepository.php | 171 +++++\n app/Mcp/Servers/JiminnyServer.php | 38 +\n app/Mcp/Tools/ListCallsTool.php | 205 ++++++\n app/Models/Activity.php | 10 +-\n app/Models/Activity/Transcription.php | 17 +-\n app/Models/ElasticSearch/OpportunityElasticSearchTrait.php | 5 +\n app/Models/Participant.php | 1 +\n app/Providers/AppServiceProvider.php | 22 +\n app/Repositories/Crm/ContactRepository.php | 69 +-\n app/Repositories/ParticipantSpeechRepository.php | 13 +-\n app/Services/Activity/ParticipantsService.php | 19 +-\n app/Services/Activity/Twilio/S3RecordingCredentialsService.php | 82 +++\n app/Services/ActivityService.php | 21 +-\n app/Services/Calendar/CalendarActivityService.php | 46 ++\n app/Services/Calendar/Command/ImportParticipants.php | 1 +\n app/Services/Calendar/Command/MapActivityData.php | 106 +--\n app/Services/Calendar/GoogleCalendarService.php | 12 +-\n app/Services/Crm/Close/Processor/OpportunityProcessor.php | 2 +-\n app/Services/Crm/Close/Service.php | 22 +-\n app/Services/Crm/Copper/Service.php | 12 +-\n app/Services/Crm/Hubspot/Service.php | 154 +++-\n app/Services/Crm/Hubspot/ServiceTraits/OpportunitySyncTrait.php | 88 ++-\n app/Services/Crm/IntegrationApp/ServiceTraits/SyncCrmEntitiesTrait.php | 22 +-\n app/Services/Crm/Pipedrive/Service.php | 17 +-\n app/Services/Crm/Salesforce/Service.php | 42 +-\n app/Services/Mail/Office/EmailApiClient.php | 129 +---\n app/Services/RecallAI/Commands/ScheduleBotCommand.php | 39 +-\n app/Services/RecallAI/RecallAIService.php | 22 +-\n composer.json | 3 +-\n composer.lock | 87 ++-\n config/mcp.php | 23 +\n database/migrations/2026_04_30_120000_create_mcp_audit_log_table.php | 36 +\n docs/mcp/explorer/explorer.html | 697 ++++++++++++++++++\n docs/mcp/explorer/explorer.template.html | 697 ++++++++++++++++++\n docs/mcp/explorer/generate.js | 215 ++++++\n docs/mcp/explorer/tool-explorer-meta.json | 11 +\n docs/mcp/tools-list.json | 2536 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++\n docs/mcp/tools.md | 621 ++++++++++++++++\n front-end/package.json | 4 +-\n front-end/src/components/Settings/OrgSettings/AiAutomation/CrmFilling/TemplateFieldForm.vue | 28 +-\n front-end/src/components/Settings/OrgSettings/Playbooks/AddEditPlaybook.vue | 10 +\n front-end/src/components/playback/comments/ActivityComment.less | 10 +-\n front-end/src/components/shared/PromptTester/PromptTester.vue | 12 +-\n front-end/src/components/shared/__tests__/PromptTester.spec.js | 35 +\n front-end/src/components/shared/modals/EntityPickerModal/__tests__/useEntitiesCache.spec.ts | 37 +\n front-end/src/components/shared/modals/EntityPickerModal/useEntitiesCache.ts | 9 +\n front-end/yarn.lock | 16 +-\n phpstan-baseline.neon | 50 --\n routes/api.php | 11 +\n sonar-project.properties | 91 ++-\n tests/Feature/Component/Nudge/ProcessOrganisationImmediateNudgesJobTest.php | 534 ++++++++++++++\n tests/Feature/Jobs/ImportRemoteTrackJobTest.php | 283 +++++++-\n tests/Feature/Mcp/IssueMcpTokenCommandTest.php | 53 ++\n tests/Feature/Mcp/ListCallsToolElasticFeatureTest.php | 155 ++++\n tests/Feature/Mcp/ListCallsToolFeatureTest.php | 352 ++++++++++\n tests/Feature/Mcp/McpTestHelpersTrait.php | 77 ++\n tests/Feature/Services/Team/TeamDeleteHandlers/Retention/RetentionRepositoryHandlerTest.php | 1 +\n tests/Stubs/SentryStub.php | 18 +\n tests/Unit/Component/ActivityAnalytics/Service/CalculateTalkTimeOffsetFromTranscriptionTest.php | 28 +-\n tests/Unit/Component/AiActivityType/Services/AiActivityTypeEligibilityCheckerTest.php | 103 ++-\n tests/Unit/Component/AiAutomation/Actions/PrepareUpdateDtoActionTest.php | 91 +++\n tests/Unit/Component/AiAutomation/Services/CrmFillingEligibilityCheckerTest.php | 124 ++++\n tests/Unit/Component/AiAutomation/TestCrmAiPromptServiceTest.php | 67 +-\n tests/Unit/Component/AiCallScoring/Services/AiCallScoringEligibilityCheckerTest.php | 55 ++\n tests/Unit/Component/ES/ElasticSearchWorkerManagerTest.php | 135 ----\n tests/Unit/Component/ES/Processor/Actions/LoadDocumentsActionTest.php | 220 ++++++\n tests/Unit/Component/ES/Processor/EntityQueryBuilderTest.php | 21 +-\n tests/Unit/Component/ES/Processor/Traits/SkipActivityTraitTest.php | 51 --\n tests/Unit/Component/ES/Worker/ActivityWorkerTest.php | 174 -----\n tests/Unit/Component/ES/Worker/EntityWorkerTest.php | 97 ---\n tests/Unit/Component/ES/Worker/WorkerAmountTest.php | 116 ---\n tests/Unit/Component/Encoding/Job/AnalyzeTrackChannelsJobTest.php | 52 +-\n tests/Unit/Component/Encoding/Service/GenerateSpeechFromSilenceServiceTest.php | 171 ++---\n tests/Unit/Component/FFMpeg/Services/GetSpeechIntervalsTest.php | 36 +-\n tests/Unit/Component/LanguageDetection/Services/FindSpeechTimeServiceTest.php | 20 +-\n tests/Unit/Component/MobileSettings/MobileSettingsControllerTest.php | 5 +-\n tests/Unit/Component/ParticipantSpeech/Services/ParticipantSpeechesCreatorTest.php | 75 ++\n tests/Unit/Component/ParticipantSpeech/Services/ParticipantSpeechesDeleterTest.php | 63 ++\n tests/Unit/Component/ParticipantSpeech/Services/ParticipantSpeechesProviderTest.php | 134 ++++\n tests/Unit/Component/ParticipantSpeech/Services/ParticipantSpeechesUploaderTest.php | 57 ++\n tests/Unit/Component/Transcription/Diarization/Services/GetNormalizedParticipantSpeechesServiceTest.php | 51 +-\n tests/Unit/Component/Transcription/Diarization/Source/MeetingBotSourceTest.php | 29 +-\n tests/Unit/Contracts/Services/Calendar/CalendarTraitTest.php | 58 +-\n tests/Unit/Http/Controllers/Kiosk/ActivityControllerTest.php | 159 +++++\n tests/Unit/Jobs/Activity/Import/ImportTwilioVideoSpeechesJobTest.php | 22 +-\n tests/Unit/Jobs/Activity/Import/IsActivityReadyForProcessingJobTest.php | 26 +-\n tests/Unit/Jobs/Calendar/SetupCalendarSyncTest.php | 25 -\n tests/Unit/Services/Activity/ParticipantsServiceTest.php | 12 +-\n tests/Unit/Services/Activity/Twilio/S3RecordingCredentialsServiceTest.php | 180 +++++\n tests/Unit/Services/ActivityServiceTest.php | 132 ++++\n tests/Unit/Services/Calendar/CalendarActivityServiceTest.php | 150 +++-\n tests/Unit/Services/Calendar/Command/ImportParticipantsTest.php | 6 +-\n tests/Unit/Services/Calendar/Command/MapActivityDataTest.php | 78 +-\n tests/Unit/Services/Calendar/GoogleCalendarServiceTest.php | 116 +++\n tests/Unit/Services/Crm/Close/ServiceTest.php | 165 +++++\n tests/Unit/Services/Crm/Hubspot/ServiceTest.php | 272 ++++++-\n tests/Unit/Services/Crm/Hubspot/ServiceTraits/OpportunitySyncTest.php | 25 +-\n tests/Unit/Services/Crm/Hubspot/ServiceTraits/OpportunitySyncTraitMatchActivitiesTest.php | 3 +-\n tests/Unit/Services/Crm/IntegrationApp/ServiceTraits/SyncCrmEntitiesTraitOpportunitiesTest.php | 40 ++\n tests/Unit/Services/Crm/Pipedrive/ImportOpportunityMatchActivitiesTest.php | 2 +\n tests/Unit/Services/Crm/Salesforce/ServiceTest.php | 139 ++++\n tests/Unit/Services/Mail/Office/EmailApiClientTest.php | 195 ++---\n tests/Unit/Services/RecallAI/RecallAIServiceTest.php | 24 +-\n 175 files changed, 12562 insertions(+), 2162 deletions(-)\n create mode 120000 CLAUDE.md\n create mode 100644 app/Component/AiAutomation/Services/CrmFillingEligibilityChecker.php\n delete mode 100644 app/Component/ES/ElasticSearchWorkerManager.php\n delete mode 100644 app/Component/ES/Processor/Traits/SkipActivityTrait.php\n delete mode 100644 app/Component/ES/Worker/ActivityWorker.php\n delete mode 100644 app/Component/ES/Worker/EntityWorker.php\n delete mode 100644 app/Component/ES/Worker/WorkerAmount.php\n delete mode 100644 app/Component/ES/Worker/WorkerInterface.php\n create mode 100644 app/Component/ProphetAi/Exceptions/InsufficientTranscriptException.php\n create mode 100644 app/Component/Transcription/DTO/Http/Transcription/AssemblyAI/AssemblyAI/NoAssemblyIdException.php\n create mode 100644 app/Component/Transcription/DTO/Http/Transcription/TranscriptionIsNotCorrectFormatException.php\n create mode 100644 app/Console/Commands/Activities/SetupIntegration/TwilioSetS3RecordingCredentialsCommand.php\n create mode 100644 app/Console/Commands/Crm/BackfillOpportunityUserFromAccountCommand.php\n delete mode 100644 app/Console/Commands/Elasticsearch/AsyncUpdateEsActivities.php\n create mode 100644 app/Console/Commands/IssueMcpTokenCommand.php\n create mode 100644 app/Http/Middleware/McpAuditMiddleware.php\n create mode 100644 app/Http/Middleware/McpTierMiddleware.php\n create mode 100644 app/Mcp/Contracts/McpCallRepositoryInterface.php\n create mode 100644 app/Mcp/DTO/ListCallsFilters.php\n create mode 100644 app/Mcp/Errors/McpError.php\n create mode 100644 app/Mcp/Repositories/McpActivityHydrator.php\n create mode 100644 app/Mcp/Repositories/McpCallRepository.php\n create mode 100644 app/Mcp/Repositories/McpElasticCallRepository.php\n create mode 100644 app/Mcp/Servers/JiminnyServer.php\n create mode 100644 app/Mcp/Tools/ListCallsTool.php\n create mode 100644 app/Services/Activity/Twilio/S3RecordingCredentialsService.php\n create mode 100644 config/mcp.php\n create mode 100644 database/migrations/2026_04_30_120000_create_mcp_audit_log_table.php\n create mode 100644 docs/mcp/explorer/explorer.html\n create mode 100644 docs/mcp/explorer/explorer.template.html\n create mode 100644 docs/mcp/explorer/generate.js\n create mode 100644 docs/mcp/explorer/tool-explorer-meta.json\n create mode 100644 docs/mcp/tools-list.json\n create mode 100644 docs/mcp/tools.md\n create mode 100644 front-end/src/components/shared/modals/EntityPickerModal/__tests__/useEntitiesCache.spec.ts\n create mode 100644 tests/Feature/Component/Nudge/ProcessOrganisationImmediateNudgesJobTest.php\n create mode 100644 tests/Feature/Mcp/IssueMcpTokenCommandTest.php\n create mode 100644 tests/Feature/Mcp/ListCallsToolElasticFeatureTest.php\n create mode 100644 tests/Feature/Mcp/ListCallsToolFeatureTest.php\n create mode 100644 tests/Feature/Mcp/McpTestHelpersTrait.php\n create mode 100644 tests/Stubs/SentryStub.php\n create mode 100644 tests/Unit/Component/AiAutomation/Services/CrmFillingEligibilityCheckerTest.php\n delete mode 100644 tests/Unit/Component/ES/ElasticSearchWorkerManagerTest.php\n create mode 100644 tests/Unit/Component/ES/Processor/Actions/LoadDocumentsActionTest.php\n delete mode 100644 tests/Unit/Component/ES/Processor/Traits/SkipActivityTraitTest.php\n delete mode 100644 tests/Unit/Component/ES/Worker/ActivityWorkerTest.php\n delete mode 100644 tests/Unit/Component/ES/Worker/EntityWorkerTest.php\n delete mode 100644 tests/Unit/Component/ES/Worker/WorkerAmountTest.php\n create mode 100644 tests/Unit/Component/ParticipantSpeech/Services/ParticipantSpeechesCreatorTest.php\n create mode 100644 tests/Unit/Http/Controllers/Kiosk/ActivityControllerTest.php\n create mode 100644 tests/Unit/Services/Activity/Twilio/S3RecordingCredentialsServiceTest.php\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20725-handle-HS-search-rate-limit) $ git status\nOn branch master\nYour branch is behind 'origin/master' by 114 commits, and can be fast-forwarded.\n (use \"git pull\" to update your local branch)\n\nChanges not staged for commit:\n (use \"git add <file>...\" to update what will be committed)\n (use \"git restore <file>...\" to discard changes in working directory)\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tmodified: .env.local\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tmodified: app/Component/SCIM/Constants.php\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tmodified: app/Component/SCIM/ScimProvisioning.php\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tmodified: app/Component/Twilio/Conference/ConferenceManager/SoftPhoneManager.php\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tmodified: app/Console/Commands/JiminnyDebugCommand.php\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tmodified: app/DTO/SCIM/AAD/Request/CoreUserRequest.php\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tmodified: app/DTO/SCIM/AAD/Response/CoreUser.php\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tmodified: app/Services/Telephony/TextMessagingService.php\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tmodified: config/logging.php\n\nUntracked files:\n (use \"git add <file>...\" to include in what will be committed)\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\t.env.nikilocal\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\t.env.other\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tWEBHOOK_FILTERING_IMPLEMENTATION.md\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tapp/Component/SCIM/Mutators/Attributes/User/RoleAttr.php\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tapp/Console/Commands/Crm/Hubspot/SimulateWebhooksCommand.php\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tapp/Console/Commands/Reports/CreateMockAskJiminnyReportResultCommand.php\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tapp/Rules/ListenerRoleCannotHaveAdminOrManagerPermissionRule.php\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tids.txt\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tpublic/favicon.ico\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\traw_sql_query.sql\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\ttests/Unit/Component/SCIM/Mutators/Attributes/User/RoleAttrTest.php\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\ttests/Unit/Policies/CanAccessAiReportsTest.php\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\ttests/Unit/Rules/ListenerRoleCannotHaveAdminOrManagerPermissionRuleTest.php\n\nno changes added to commit (use \"git add\" and/or \"git commit -a\")\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (master) $ git pull\nremote: Enumerating objects: 306, done.\nremote: Counting objects: 100% (299/299), done.\nremote: Compressing objects: 100% (183/183), done.\nremote: Total 306 (delta 213), reused 171 (delta 116), pack-reused 7 (from 1)\nReceiving objects: 100% (306/306), 80.12 KiB | 1000.00 KiB/s, done.\nResolving deltas: 100% (213/213), completed with 53 local objects.\nFrom github.com:jiminny/app\n 90bca4e4b2..5604af40cf master -> origin/master\n 4e7078fd8b..0b8343d179 JY-18091-upgrade-to-php-8-5 -> origin/JY-18091-upgrade-to-php-8-5\n 098eeaa087..d5a447e492 JY-20613-allow-owner-role-on-team-setup -> origin/JY-20613-allow-owner-role-on-team-setup\n c3a76ace91..af65249d0f JY-20749-user-can-view-recorded-meetings -> origin/JY-20749-user-can-view-recorded-meetings\n d94a285ae7..7ce96cb5fe JY-20808-low-priority-indexing-queue -> origin/JY-20808-low-priority-indexing-queue\n * [new branch] JY-20842-remove-partial-updater -> origin/JY-20842-remove-partial-updater\n * [new branch] JY-20920-fix-participant-flip -> origin/JY-20920-fix-participant-flip\n * [new branch] secfix/npm-20260519 -> origin/secfix/npm-20260519\nUpdating cb4ebf0c36..5604af40cf\nFast-forward\n app/Component/ES/ChunkSize.php | 54 +++++++++++++++++++\n app/Component/ES/Processor/DTOs/SelectionList.php | 4 +-\n app/Component/ES/Processor/TargetEntitiesSelector.php | 19 ++++---\n app/Component/MeetingBot/Service/ParticipantMatcher.php | 46 ++++++++++++----\n app/Exceptions/RateLimitException.php | 19 ++++++-\n app/Http/Middleware/McpTierMiddleware.php | 27 ++--------\n app/Jobs/Crm/MatchActivityCrmData.php | 47 ++++++++++++----\n app/Jobs/Middleware/HandleHubspotRateLimit.php | 42 +++++++++++++++\n app/Mcp/Servers/JiminnyServer.php | 2 +\n app/Mcp/Tools/GetMeTool.php | 157 +++++++++++++++++++++++++++++++++++++++++++++++++++++\n app/Models/Feature/FeatureEnum.php | 1 +\n app/Services/Activity/HubSpot/ProviderResolver.php | 4 +-\n app/Services/Activity/HubSpot/ProviderResolverInterface.php | 2 +-\n app/Services/Activity/HubSpot/Providers/Provider.php | 2 +-\n app/Services/Activity/HubSpot/Providers/ProviderKixie.php | 2 +-\n app/Services/Activity/HubSpot/Providers/ProviderOrum.php | 2 +-\n app/Services/Activity/HubSpot/Providers/ProviderTwilio.php | 2 +-\n app/Services/Activity/HubSpot/Providers/ProviderTwilioFlex.php | 5 +-\n app/Services/Activity/HubSpot/Service.php | 97 +++++++++++++++++++++++++++------\n app/Services/Crm/Hubspot/Client.php | 132 +++++++++++++++++++++++++++++++++++++++++++++\n app/Services/Crm/Hubspot/HubspotClientInterface.php | 15 ++++++\n app/Services/Crm/Hubspot/Pagination/HubspotPaginationService.php | 21 ++++----\n app/Services/Crm/Hubspot/Pagination/PaginationState.php | 2 +-\n database/migrations/2026_05_13_124153_create_mcp_feature_flag.php | 25 +++++++++\n tests/Feature/Mcp/GetMeToolFeatureTest.php | 140 +++++++++++++++++++++++++++++++++++++++++++++++\n tests/Feature/Mcp/ListCallsToolFeatureTest.php | 2 +-\n tests/Feature/Mcp/McpTestHelpersTrait.php | 19 ++++++-\n tests/Unit/Component/ES/ChunkSizeTest.php | 50 +++++++++++++++++\n tests/Unit/Component/ES/Processor/DTOs/SelectionListTest.php | 27 +++++++---\n tests/Unit/Component/ES/Processor/TargetEntitiesSelectorTest.php | 39 ++++++++------\n tests/Unit/Component/MeetingBot/Service/ParticipantMatcherTest.php | 68 ++++++++++++++++++++++-\n tests/Unit/Exceptions/RateLimitExceptionTest.php | 56 +++++++++++++++++++\n tests/Unit/Jobs/Crm/MatchActivityCrmDataTest.php | 8 +--\n tests/Unit/Jobs/Middleware/HandleHubspotRateLimitTest.php | 151 +++++++++++++++++++++++++++++++++++++++++++++++++++\n tests/Unit/Services/Activity/HubSpot/ServiceTest.php | 109 +++++++++++++++++++++++++++++++++++++\n tests/Unit/Services/Crm/Hubspot/ClientTest.php | 250 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++\n tests/Unit/Services/Crm/Hubspot/Pagination/HubspotPaginationServiceTest.php | 283 +++++++++++++++++++++---------------------------------------------------------------------------\n 37 files changed, 1587 insertions(+), 344 deletions(-)\n create mode 100644 app/Component/ES/ChunkSize.php\n create mode 100644 app/Jobs/Middleware/HandleHubspotRateLimit.php\n create mode 100644 app/Mcp/Tools/GetMeTool.php\n create mode 100644 database/migrations/2026_05_13_124153_create_mcp_feature_flag.php\n create mode 100644 tests/Feature/Mcp/GetMeToolFeatureTest.php\n create mode 100644 tests/Unit/Component/ES/ChunkSizeTest.php\n create mode 100644 tests/Unit/Exceptions/RateLimitExceptionTest.php\n create mode 100644 tests/Unit/Jobs/Middleware/HandleHubspotRateLimitTest.php\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (master) $ git pull\nAlready up to date.\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (master) $ co -b JY-20676-delete-report-related-objects\nSwitched to a new branch 'JY-20676-delete-report-related-objects'\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20676-delete-report-related-objects) $ csfix\ndocker exec -it docker_lamp_1 ./vendor/bin/php-cs-fixer fix --config=.php-cs-fixer.dist.php -v --using-cache=no --diff \nPHP CS Fixer 3.87.1 Alexander by Fabien Potencier, Dariusz Ruminski and contributors.\nPHP runtime: 8.3.30\nRunning analysis on 7 cores with 10 files per process.\nParallel runner is an experimental feature and may be unstable, use it at your own risk. Feedback highly appreciated!\nLoaded config default from \".php-cs-fixer.dist.php\".\n 5690/5690 [▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓] 100%\n\n 1) app/Console/Commands/JiminnyDebugCommand.php (statement_indentation, blank_line_before_statement)\n ---------- begin diff ----------\n--- /home/jiminny/app/Console/Commands/JiminnyDebugCommand.php\n+++ /home/jiminny/app/Console/Commands/JiminnyDebugCommand.php\n@@ -23,6 +23,7 @@\n \n if ($action === 'redis-set') {\n $this->testRedisSet();\n+\n return;\n }\n \n@@ -45,7 +46,7 @@\n $ttl = 60;\n \n try {\n-// $result = Redis::set($testKey, $testValue, 'EX', $ttl, 'NX');\n+ // $result = Redis::set($testKey, $testValue, 'EX', $ttl, 'NX');\n $result = Redis::set($testKey, $testValue, ['nx', 'ex' => $ttl]);\n \n if ($result) {\n\n ----------- end diff -----------\n\n\nFixed 1 of 5690 files in 50.673 seconds, 67.00 MB memory used\n\nWhat's next:\n Try Docker Debug for seamless, persistent debugging tools in any container or image → docker debug docker_lamp_1\n Learn more at https://docs.docker.com/go/debug-cli/\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20676-delete-report-related-objects) $ ;xd\ndocker exec -it docker_lamp_1 bash -c \"mv /usr/local/etc/php/conf.d/xdebug.ini ~/xdebug.ini\"\n\nWhat's next:\n Try Docker Debug for seamless, persistent debugging tools in any container or image → docker debug docker_lamp_1\n Learn more at https://docs.docker.com/go/debug-cli/\ndocker exec -it docker_lamp_1 supervisorctl restart all\njiminny-worker-processing-2:jiminny-worker-processing-2_00: stopped\njiminny-worker-processing-3:jiminny-worker-processing-3_00: stopped\njiminny-worker-processing-4:jiminny-worker-processing-4_00: stopped\njiminny-worker-processing-5:jiminny-worker-processing-5_00: stopped\njiminny-worker-processing-delayed:jiminny-worker-processing-delayed_00: stopped\nworker-analytics:worker-analytics_00: stopped\nworker-crm-update:worker-crm-update_00: stopped\nworker-download:worker-download_00: stopped\nworker-nudges:worker-nudges_00: stopped\nworker-calendar:worker-calendar_00: stopped\nworker-audio:worker-audio_00: stopped\njiminny-worker-processing-1:jiminny-worker-processing-1_00: stopped\nworker:worker_00: stopped\nworker-conferences:worker-conferences_00: stopped\nworker-crm-sync:worker-crm-sync_00: stopped\nworker-emails:worker-emails_00: stopped\nworker-es-update:worker-es-update_00: stopped\nartisan-schedule:artisan-schedule_00: stopped\nartisan-schedule:artisan-schedule_00: started\njiminny-worker-processing-1:jiminny-worker-processing-1_00: started\njiminny-worker-processing-2:jiminny-worker-processing-2_00: started\njiminny-worker-processing-3:jiminny-worker-processing-3_00: started\njiminny-worker-processing-4:jiminny-worker-processing-4_00: started\njiminny-worker-processing-5:jiminny-worker-processing-5_00: started\njiminny-worker-processing-delayed:jiminny-worker-processing-delayed_00: started\nworker:worker_00: started\nworker-analytics:worker-analytics_00: started\nworker-audio:worker-audio_00: started\nworker-calendar:worker-calendar_00: started\nworker-conferences:worker-conferences_00: started\nworker-crm-sync:worker-crm-sync_00: started\nworker-crm-update:worker-crm-update_00: started\nworker-download:worker-download_00: started\nworker-emails:worker-emails_00: started\nworker-es-update:worker-es-update_00: started\nworker-nudges:worker-nudges_00: started\n\nWhat's next:\n Try Docker Debug for seamless, persistent debugging tools in any container or image → docker debug docker_lamp_1\n Learn more at https://docs.docker.com/go/debug-cli/\ndocker exec -it docker_lamp_1 php -v\nPHP 8.3.30 (cli) (built: Mar 16 2026 22:32:32) (NTS)\nCopyright (c) The PHP Group\nZend Engine v4.3.30, Copyright (c) Zend Technologies\n with Zend OPcache v8.3.30, Copyright (c), by Zend Technologies\n\nWhat's next:\n Try Docker Debug for seamless, persistent debugging tools in any container or image → docker debug docker_lamp_1\n Learn more at https://docs.docker.com/go/debug-cli/\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20676-delete-report-related-objects) $ git status\nOn branch JY-20676-delete-report-related-objects\nChanges not staged for commit:\n (use \"git add <file>...\" to update what will be committed)\n (use \"git restore <file>...\" to discard changes in working directory)\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tmodified: .env.local\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tmodified: app/Console/Commands/JiminnyDebugCommand.php\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tmodified: config/logging.php\n\nUntracked files:\n (use \"git add <file>...\" to include in what will be committed)\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\t.env.nikilocal\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\t.env.other\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tWEBHOOK_FILTERING_IMPLEMENTATION.md\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tapp/Console/Commands/Crm/Hubspot/SimulateWebhooksCommand.php\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tapp/Console/Commands/Reports/CreateMockAskJiminnyReportResultCommand.php\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tids.txt\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tpublic/favicon.ico\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\traw_sql_query.sql\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\ttests/Unit/Policies/CanAccessAiReportsTest.php\n\nno changes added to commit (use \"git add\" and/or \"git commit -a\")\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20676-delete-report-related-objects) $ git push -u origin JY-20676-delete-report-related-objects\nEnumerating objects: 45, done.\nCounting objects: 100% (45/45), done.\nDelta compression using up to 8 threads\nCompressing objects: 100% (24/24), done.\nWriting objects: 100% (24/24), 3.62 KiB | 3.62 MiB/s, done.\nTotal 24 (delta 19), reused 0 (delta 0), pack-reused 0\nremote: Resolving deltas: 100% (19/19), completed with 19 local objects.\nremote: \nremote: Create a pull request for 'JY-20676-delete-report-related-objects' on GitHub by visiting:\nremote: https://github.com/jiminny/app/pull/new/JY-20676-delete-report-related-objects\nremote: \nTo github.com:jiminny/app.git\n * [new branch] JY-20676-delete-report-related-objects -> JY-20676-delete-report-related-objects\nbranch 'JY-20676-delete-report-related-objects' set up to track 'origin/JY-20676-delete-report-related-objects'.\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20676-delete-report-related-objects) $ csfix\ndocker exec -it docker_lamp_1 ./vendor/bin/php-cs-fixer fix --config=.php-cs-fixer.dist.php -v --using-cache=no --diff \nPHP CS Fixer 3.87.1 Alexander by Fabien Potencier, Dariusz Ruminski and contributors.\nPHP runtime: 8.3.30\nRunning analysis on 7 cores with 10 files per process.\nParallel runner is an experimental feature and may be unstable, use it at your own risk. Feedback highly appreciated!\nLoaded config default from \".php-cs-fixer.dist.php\".\n 5690/5690 [▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓] 100%\n\n 1) app/Http/Controllers/API/V2/AskJiminnyReportsController.php (blank_line_before_statement)\n ---------- begin diff ----------\n--- /home/jiminny/app/Http/Controllers/API/V2/AskJiminnyReportsController.php\n+++ /home/jiminny/app/Http/Controllers/API/V2/AskJiminnyReportsController.php\n@@ -140,6 +140,7 @@\n if ($enabled && $report->isAskJiminnyReport() && ! $report->canExecute()) {\n $error = 'This report is missing a saved search or prompt. ' .\n 'Edit the report to complete the setup before enabling it.';\n+\n return new JsonResponse(\n ['error' => $error],\n Response::HTTP_UNPROCESSABLE_ENTITY\n\n ----------- end diff -----------\n\n\nFixed 1 of 5690 files in 71.757 seconds, 60.00 MB memory used\n\nWhat's next:\n Try Docker Debug for seamless, persistent debugging tools in any container or image → docker debug docker_lamp_1\n Learn more at https://docs.docker.com/go/debug-cli/\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20676-delete-report-related-objects) $ git pull\nremote: Enumerating objects: 158, done.\nremote: Counting objects: 100% (103/103), done.\nremote: Compressing objects: 100% (37/37), done.\nremote: Total 158 (delta 80), reused 74 (delta 66), pack-reused 55 (from 3)\nReceiving objects: 100% (158/158), 80.59 KiB | 982.00 KiB/s, done.\nResolving deltas: 100% (85/85), completed with 45 local objects.\nFrom github.com:jiminny/app\n 02a33811ee..c6ce5e2440 JY-20676-delete-report-related-objects -> origin/JY-20676-delete-report-related-objects\n 7ce96cb5fe..6c59f04358 JY-20808-low-priority-indexing-queue -> origin/JY-20808-low-priority-indexing-queue\n 3906a9238a..2b5e6ea62b JY-20835-mcp-enable-users-to-get-a-list-of-deals-and-their-details -> origin/JY-20835-mcp-enable-users-to-get-a-list-of-deals-and-their-details\n 5604af40cf..ea3519f0e2 master -> origin/master\n * [new branch] switch-eu-assembly -> origin/switch-eu-assembly\nUpdating 02a33811ee..c6ce5e2440\nFast-forward\n app/Component/ES/ElasticSearchDocumentPartialUpdater.php | 48 ---\n app/Component/ParticipantSpeech/Services/ParticipantAttributionService.php | 4 +-\n app/Component/Settings/AutoScoring/Services/UpdateAutoScoreService.php | 20 +-\n app/Component/Transcription/Service/StorageService.php | 8 +-\n front-end/package.json | 2 +-\n front-end/src/components/DealInsights/Modals/AskAnythingModal.vue | 23 ++\n front-end/src/components/shared/AskAnything/AskAnythingPromptFormItem.vue | 2 +\n front-end/src/components/shared/AskAnything/AskAnythingSettingsDrawer.vue | 23 +-\n front-end/src/components/shared/AskAnything/__mocks__/AskAnythingSettingsDrawer.mocks.js | 1 +\n front-end/src/components/shared/AskAnything/__tests__/AskAnythingSettingsDrawer.spec.js | 135 ++++---\n front-end/src/components/shared/AskAnything/__tests__/__snapshots__/AskAnythingSettingsDrawer.spec.js.html | 1235 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++\n front-end/src/components/shared/AskAnything/__tests__/__snapshots__/AskAnythingSettingsDrawer.spec.js.snap | 1382 ----------------------------------------------------------------\n front-end/src/components/shared/AskAnything/prompts.js | 1 +\n front-end/src/components/shared/AskAnything/useAskAnything.js | 1 +\n front-end/yarn.lock | 8 +-\n tests/Unit/Component/ES/ElasticSearchDocumentPartialUpdaterTest.php | 42 --\n tests/Unit/Component/Settings/AutoScoring/Services/UpdateAutoScoreServiceTest.php | 86 ++--\n tests/Unit/Component/Transcription/Service/StorageServiceTest.php | 29 +-\n 18 files changed, 1448 insertions(+), 1602 deletions(-)\n delete mode 100644 app/Component/ES/ElasticSearchDocumentPartialUpdater.php\n create mode 100644 front-end/src/components/shared/AskAnything/__tests__/__snapshots__/AskAnythingSettingsDrawer.spec.js.html\n delete mode 100644 front-end/src/components/shared/AskAnything/__tests__/__snapshots__/AskAnythingSettingsDrawer.spec.js.snap\n delete mode 100644 tests/Unit/Component/ES/ElasticSearchDocumentPartialUpdaterTest.php\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20676-delete-report-related-objects) $ csfix\ndocker exec -it docker_lamp_1 ./vendor/bin/php-cs-fixer fix --config=.php-cs-fixer.dist.php -v --using-cache=no --diff \nPHP CS Fixer 3.87.1 Alexander by Fabien Potencier, Dariusz Ruminski and contributors.\nPHP runtime: 8.3.30\nRunning analysis on 7 cores with 10 files per process.\nParallel runner is an experimental feature and may be unstable, use it at your own risk. Feedback highly appreciated!\nLoaded config default from \".php-cs-fixer.dist.php\".","depth":4,"on_screen":true,"value":"Last login: Mon May 18 09:17:28 on ttys007\n\nPoetry could not find a pyproject.toml file in /Users/lukas/jiminny/app or its parents\n\nPoetry could not find a pyproject.toml file in /Users/lukas/jiminny/app or its parents\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (pipedrive-sdk-poc) $ co master\nerror: Your local changes to the following files would be overwritten by checkout:\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tPIPEDRIVE_V2_MIGRATION_TICKETS.md\nPlease commit your changes or stash them before you switch branches.\nAborting\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (pipedrive-sdk-poc) $ git pull\nremote: Enumerating objects: 1047, done.\nremote: Counting objects: 100% (832/832), done.\nremote: Compressing objects: 100% (298/298), done.\nremote: Total 1047 (delta 634), reused 596 (delta 534), pack-reused 215 (from 3)\nReceiving objects: 100% (1047/1047), 353.16 KiB | 1.56 MiB/s, done.\nResolving deltas: 100% (687/687), completed with 107 local objects.\nFrom github.com:jiminny/app\n 907c54896c..34656c53ed pipedrive-sdk-poc -> origin/pipedrive-sdk-poc\n 03325ec50f..4e7078fd8b JY-18091-upgrade-to-php-8-5 -> origin/JY-18091-upgrade-to-php-8-5\n e7d231e163..bc6a3fce6b JY-20725-handle-HS-search-rate-limit -> origin/JY-20725-handle-HS-search-rate-limit\n * [new branch] JY-20749-user-can-view-recorded-meetings -> origin/JY-20749-user-can-view-recorded-meetings\n 98ca281a04..e0351be069 JY-20808-low-priority-indexing-queue -> origin/JY-20808-low-priority-indexing-queue\n 569abb5149..3906a9238a JY-20835-mcp-enable-users-to-get-a-list-of-deals-and-their-details -> origin/JY-20835-mcp-enable-users-to-get-a-list-of-deals-and-their-details\n ad6c2a86e8..50eb6afba9 JY-20846-mcp-enable-the-ai-to-know-details-about-the-user -> origin/JY-20846-mcp-enable-the-ai-to-know-details-about-the-user\n * [new branch] JY-20893-chunk-control-per-update-target -> origin/JY-20893-chunk-control-per-update-target\n 31c62924a5..cb4ebf0c36 master -> origin/master\nUpdating 907c54896c..34656c53ed\nFast-forward\n PIPEDRIVE_V2_MIGRATION_TICKETS.md | 52 ++++++++++++++++++++++++++++++++++++++++++++++++++++\n 1 file changed, 52 insertions(+)\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (pipedrive-sdk-poc) $ co master\nM\u0000\u0000\u0000\u0000\u0000\u0000\t.env.local\nM\u0000\u0000\u0000\u0000\u0000\u0000\tconfig/logging.php\nSwitched to branch 'master'\nYour branch is behind 'origin/master' by 31 commits, and can be fast-forwarded.\n (use \"git pull\" to update your local branch)\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (master) $ git pull\nUpdating 31c62924a5..cb4ebf0c36\nFast-forward\n app/Component/ES/Processor/Traits/SelectEntityListTrait.php | 20 ------\n app/Services/Calendar/CalendarActivityService.php | 46 +++++++++++++\n app/Services/Calendar/Command/MapActivityData.php | 106 +++-------------------------\n docs/mcp/explorer/explorer.html | 104 +++++++++++++++++++++++++---\n docs/mcp/explorer/explorer.template.html | 102 ++++++++++++++++++++++++---\n docs/mcp/tools-list.json | 373 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++-------\n docs/mcp/tools.md | 117 +++++++++++++++++++++++--------\n tests/Unit/Component/ES/AsyncUpdateElasticSearchTest.php | 16 +----\n tests/Unit/Component/ES/Listeners/UpdateMultipleTargetsListenerTest.php | 10 ---\n tests/Unit/Component/ES/Listeners/UpdateSingleTargetListenerTest.php | 6 --\n tests/Unit/Component/ES/Processor/TargetEntitiesSelectorTest.php | 9 ---\n tests/Unit/Component/ES/Processor/Traits/SelectEntityListTraitTest.php | 15 ++--\n tests/Unit/Component/ES/UpdateProcessManagerTest.php | 2 -\n tests/Unit/Services/Calendar/CalendarActivityServiceTest.php | 150 ++++++++++++++++++++++++++++++++++++++--\n tests/Unit/Services/Calendar/Command/MapActivityDataTest.php | 78 ++-------------------\n 15 files changed, 832 insertions(+), 322 deletions(-)\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (master) $ co -b JY-20613-allow-owner-role-on-team-setup\nSwitched to a new branch 'JY-20613-allow-owner-role-on-team-setup'\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20613-allow-owner-role-on-team-setup) $ csfix\ndocker exec -it docker_lamp_1 ./vendor/bin/php-cs-fixer fix --config=.php-cs-fixer.dist.php -v --using-cache=no --diff \nPHP CS Fixer 3.87.1 Alexander by Fabien Potencier, Dariusz Ruminski and contributors.\nPHP runtime: 8.3.30\nRunning analysis on 7 cores with 10 files per process.\nParallel runner is an experimental feature and may be unstable, use it at your own risk. Feedback highly appreciated!\nLoaded config default from \".php-cs-fixer.dist.php\".\n 5682/5682 [▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓] 100%\n\n\nFixed 0 of 5682 files in 56.978 seconds, 67.00 MB memory used\n\nWhat's next:\n Try Docker Debug for seamless, persistent debugging tools in any container or image → docker debug docker_lamp_1\n Learn more at https://docs.docker.com/go/debug-cli/\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20613-allow-owner-role-on-team-setup) $ ;xd\ndocker exec -it docker_lamp_1 bash -c \"mv /usr/local/etc/php/conf.d/xdebug.ini ~/xdebug.ini\"\n\nWhat's next:\n Try Docker Debug for seamless, persistent debugging tools in any container or image → docker debug docker_lamp_1\n Learn more at https://docs.docker.com/go/debug-cli/\ndocker exec -it docker_lamp_1 supervisorctl restart all\njiminny-worker-processing-2:jiminny-worker-processing-2_00: stopped\njiminny-worker-processing-3:jiminny-worker-processing-3_00: stopped\njiminny-worker-processing-4:jiminny-worker-processing-4_00: stopped\njiminny-worker-processing-5:jiminny-worker-processing-5_00: stopped\njiminny-worker-processing-delayed:jiminny-worker-processing-delayed_00: stopped\nworker-analytics:worker-analytics_00: stopped\nworker-crm-update:worker-crm-update_00: stopped\nworker-download:worker-download_00: stopped\nworker-nudges:worker-nudges_00: stopped\nartisan-schedule:artisan-schedule_00: stopped\nworker-emails:worker-emails_00: stopped\nworker-calendar:worker-calendar_00: stopped\nworker:worker_00: stopped\nworker-conferences:worker-conferences_00: stopped\nworker-crm-sync:worker-crm-sync_00: stopped\njiminny-worker-processing-1:jiminny-worker-processing-1_00: stopped\nworker-audio:worker-audio_00: stopped\nworker-es-update:worker-es-update_00: stopped\nartisan-schedule:artisan-schedule_00: started\njiminny-worker-processing-1:jiminny-worker-processing-1_00: started\njiminny-worker-processing-2:jiminny-worker-processing-2_00: started\njiminny-worker-processing-3:jiminny-worker-processing-3_00: started\njiminny-worker-processing-4:jiminny-worker-processing-4_00: started\njiminny-worker-processing-5:jiminny-worker-processing-5_00: started\njiminny-worker-processing-delayed:jiminny-worker-processing-delayed_00: started\nworker:worker_00: started\nworker-analytics:worker-analytics_00: started\nworker-audio:worker-audio_00: started\nworker-calendar:worker-calendar_00: started\nworker-conferences:worker-conferences_00: started\nworker-crm-sync:worker-crm-sync_00: started\nworker-crm-update:worker-crm-update_00: started\nworker-download:worker-download_00: started\nworker-emails:worker-emails_00: started\nworker-es-update:worker-es-update_00: started\nworker-nudges:worker-nudges_00: started\n\nWhat's next:\n Try Docker Debug for seamless, persistent debugging tools in any container or image → docker debug docker_lamp_1\n Learn more at https://docs.docker.com/go/debug-cli/\ndocker exec -it docker_lamp_1 php -v\nPHP 8.3.30 (cli) (built: Mar 16 2026 22:32:32) (NTS)\nCopyright (c) The PHP Group\nZend Engine v4.3.30, Copyright (c) Zend Technologies\n with Zend OPcache v8.3.30, Copyright (c), by Zend Technologies\n\nWhat's next:\n Try Docker Debug for seamless, persistent debugging tools in any container or image → docker debug docker_lamp_1\n Learn more at https://docs.docker.com/go/debug-cli/\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20613-allow-owner-role-on-team-setup) $ csfix\ndocker exec -it docker_lamp_1 ./vendor/bin/php-cs-fixer fix --config=.php-cs-fixer.dist.php -v --using-cache=no --diff \nPHP CS Fixer 3.87.1 Alexander by Fabien Potencier, Dariusz Ruminski and contributors.\nPHP runtime: 8.3.30\nRunning analysis on 7 cores with 10 files per process.\nParallel runner is an experimental feature and may be unstable, use it at your own risk. Feedback highly appreciated!\nLoaded config default from \".php-cs-fixer.dist.php\".\n 5682/5682 [▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓] 100%\n\n\nFixed 0 of 5682 files in 49.910 seconds, 60.00 MB memory used\n\nWhat's next:\n Try Docker Debug for seamless, persistent debugging tools in any container or image → docker debug docker_lamp_1\n Learn more at https://docs.docker.com/go/debug-cli/\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20613-allow-owner-role-on-team-setup) $ git status\nOn branch JY-20613-allow-owner-role-on-team-setup\nYour branch is ahead of 'origin/JY-20613-allow-owner-role-on-team-setup' by 1 commit.\n (use \"git push\" to publish your local commits)\n\nChanges not staged for commit:\n (use \"git add <file>...\" to update what will be committed)\n (use \"git restore <file>...\" to discard changes in working directory)\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tmodified: .env.local\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tmodified: config/logging.php\n\nUntracked files:\n (use \"git add <file>...\" to include in what will be committed)\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\t.env.nikilocal\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\t.env.other\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tWEBHOOK_FILTERING_IMPLEMENTATION.md\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tapp/Console/Commands/Crm/Hubspot/SimulateWebhooksCommand.php\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tapp/Console/Commands/Reports/CreateMockAskJiminnyReportResultCommand.php\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tids.txt\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tpublic/favicon.ico\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\traw_sql_query.sql\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\ttests/Unit/Policies/CanAccessAiReportsTest.php\n\nno changes added to commit (use \"git add\" and/or \"git commit -a\")\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20613-allow-owner-role-on-team-setup) $ git pull\nremote: Enumerating objects: 248, done.\nremote: Counting objects: 100% (128/128), done.\nremote: Compressing objects: 100% (23/23), done.\nremote: Total 59 (delta 43), reused 44 (delta 33), pack-reused 0 (from 0)\nUnpacking objects: 100% (59/59), 10.48 KiB | 228.00 KiB/s, done.\nFrom github.com:jiminny/app\n b7df560451..190239dfd4 JY-20613-allow-owner-role-on-team-setup -> origin/JY-20613-allow-owner-role-on-team-setup\n e0351be069..d94a285ae7 JY-20808-low-priority-indexing-queue -> origin/JY-20808-low-priority-indexing-queue\n * [new branch] JY-20920-fix-participant-matcher -> origin/JY-20920-fix-participant-matcher\n cb4ebf0c36..90bca4e4b2 master -> origin/master\nMerge made by the 'ort' strategy.\n app/Component/ES/ChunkSize.php | 54 +++++++++++++++++++++++++++\n app/Component/ES/Processor/DTOs/SelectionList.php | 4 +-\n app/Component/ES/Processor/TargetEntitiesSelector.php | 19 ++++++----\n app/Http/Middleware/McpTierMiddleware.php | 27 +++-----------\n app/Mcp/Servers/JiminnyServer.php | 2 +\n app/Mcp/Tools/GetMeTool.php | 157 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++\n app/Models/Feature/FeatureEnum.php | 1 +\n database/migrations/2026_05_13_124153_create_mcp_feature_flag.php | 25 +++++++++++++\n front-end/src/components/Settings/Kiosk/modals/EditTeamModal/EditTeamModal.vue | 52 ++++++++++++++++++--------\n front-end/src/components/Settings/Kiosk/modals/EditTeamModal/__tests__/EditTeamModal.spec.js | 14 +++++++\n tests/Feature/Mcp/GetMeToolFeatureTest.php | 140 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++\n tests/Feature/Mcp/ListCallsToolFeatureTest.php | 2 +-\n tests/Feature/Mcp/McpTestHelpersTrait.php | 19 +++++++++-\n tests/Unit/Component/ES/ChunkSizeTest.php | 50 +++++++++++++++++++++++++\n tests/Unit/Component/ES/Processor/DTOs/SelectionListTest.php | 27 ++++++++++----\n tests/Unit/Component/ES/Processor/TargetEntitiesSelectorTest.php | 39 +++++++++++---------\n 16 files changed, 557 insertions(+), 75 deletions(-)\n create mode 100644 app/Component/ES/ChunkSize.php\n create mode 100644 app/Mcp/Tools/GetMeTool.php\n create mode 100644 database/migrations/2026_05_13_124153_create_mcp_feature_flag.php\n create mode 100644 tests/Feature/Mcp/GetMeToolFeatureTest.php\n create mode 100644 tests/Unit/Component/ES/ChunkSizeTest.php\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20613-allow-owner-role-on-team-setup) $ git push\nEnumerating objects: 40, done.\nCounting objects: 100% (34/34), done.\nDelta compression using up to 8 threads\nCompressing objects: 100% (18/18), done.\nWriting objects: 100% (18/18), 1.58 KiB | 1.58 MiB/s, done.\nTotal 18 (delta 15), reused 0 (delta 0), pack-reused 0\nremote: Resolving deltas: 100% (15/15), completed with 13 local objects.\nTo github.com:jiminny/app.git\n 190239dfd4..ec1b261264 JY-20613-allow-owner-role-on-team-setup -> JY-20613-allow-owner-role-on-team-setup\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20613-allow-owner-role-on-team-setup) $ gbr\n* JY-20613-allow-owner-role-on-team-setup\n pipedrive-sdk-poc\n master\n JY-20903-update_activity-stage-on-opportunity-change\n JY-20904-fix-update-es-on-activity-command\n JY-20891-improve-sms-text-relays\n JY-20725-handle-HS-search-rate-limit\n JY-20818-move-AJ-reports-to-separated-datadog-metric\n JY-20773-fix-automated-reports-user-pilot-tracking\n JY-20157-AJ-report-not-send-notification\n JY-20508-notify-before-AJ-report-expiration\n JY-20372-ai-reports-promotion-pages\n JY-20352-sync-opportunities-without-a-local-owner-user-id-is-null\n JY-20738-debug-AJ-tracking-UP\n a\n JY-18909-automated-reports-ask-jiminny\n JY-20692-fix-integration-app-token-auth-response-change\n JY-20553-debug-crm-sync-delays\n JY-20698-fix-SF-activity-types-on-new-playbook\n JY-20543-AJ-report-tracking\n JY-20384-handle-auto-sync-with-no-access-to-event-type\n JY-20458-ask-jiminny-user-definitions\n JY-19666-fix-import-contacts-account-association\n JY-19666-HS-import-contacts-and-accounts-batch-job\n JY-20458-Ask-Jiminny-Reports\n JY-20200-batch-update-CRM-objects-Salesforce\n JY-19666-HS-webhooks-add-contact-and-company\n JY-20348-trigger-setup-DI-layout-on-team-creation\n JY-20326-refactor-info-message-in-command\n JY-20317-fix-auto-log-delay-issue-on-all-channels-disabled\n JY-20312-remove-on-update-change-last-synced-at-crm-configurations\n JY-20306-SF-skip-auto-sync-for-task-based-playbook\n JY-20192-remove-deleted-team-from-saved-search-filters\n JY-20197-import-opportunity-batch-job\n JY-20293-enable-status-field-for-pipedrive-deals\n JY-20191-remove-commands-interactive-prompts\n JY-20118-change-default-sync-strategy\n JY-20183-add-cache-on-auto-log-delay\n JY-20197-add-import-opportunity-batch-job\n 20118-hs-opportunity-make-webhook-strategy-default\n JY-20118-make-default-hs-opportunity-sync-strategy-webhook-based\n JY-20196-handle-opportunity-without-note\n JY-20118-improve-opportunity-import\n JY-20189-handle-activity-search-on-deleted-groups\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20613-allow-owner-role-on-team-setup) $ co JY-20725-handle-HS-search-rate-limit\nM\u0000\u0000\u0000\u0000\u0000\u0000\t.env.local\nM\u0000\u0000\u0000\u0000\u0000\u0000\tconfig/logging.php\nSwitched to branch 'JY-20725-handle-HS-search-rate-limit'\nYour branch is behind 'origin/JY-20725-handle-HS-search-rate-limit' by 439 commits, and can be fast-forwarded.\n (use \"git pull\" to update your local branch)\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20725-handle-HS-search-rate-limit) $ git pull\nUpdating 0f3e438941..bc6a3fce6b\nFast-forward\n .gitignore | 3 +-\n .windsurfrules | 168 ++---\n CLAUDE.md | 1 +\n app/Component/ActivityAnalytics/Service/CalculateTalkTimeOffsetsFromTranscription.php | 24 +-\n app/Component/AiActivityType/Services/AiActivityTypeEligibilityChecker.php | 28 +-\n app/Component/AiAutomation/Actions/PrepareUpdateDtoAction.php | 32 +-\n app/Component/AiAutomation/Services/CrmFillingEligibilityChecker.php | 47 ++\n app/Component/AiAutomation/TestCrmAiPromptService.php | 14 +\n app/Component/AiCallScoring/Services/AiCallScoringEligibilityChecker.php | 9 +\n app/Component/ES/ElasticSearchDocumentPartialUpdater.php | 13 +-\n app/Component/ES/ElasticSearchWorkerManager.php | 86 ---\n app/Component/ES/Processor/Actions/LoadDocumentsAction.php | 80 +--\n app/Component/ES/Processor/EntityQueryBuilder.php | 12 +-\n app/Component/ES/Processor/TargetEntitiesSelector.php | 2 +-\n app/Component/ES/Processor/Traits/SkipActivityTrait.php | 25 -\n app/Component/ES/Repositories/EsResetActivityRepository.php | 11 +-\n app/Component/ES/Worker/ActivityWorker.php | 73 --\n app/Component/ES/Worker/EntityWorker.php | 44 --\n app/Component/ES/Worker/WorkerAmount.php | 60 --\n app/Component/ES/Worker/WorkerInterface.php | 15 -\n app/Component/ElasticSearch/Contract/Searchable.php | 4 +\n app/Component/Encoding/Job/AnalyzeTrackChannelsJob.php | 20 +-\n app/Component/Encoding/Service/GenerateSpeechFromSilenceService.php | 85 ++-\n app/Component/FFMpeg/Services/GetSpeechIntervalsService.php | 18 +-\n app/Component/LanguageDetection/Services/FindSpeechTimeService.php | 22 +-\n app/Component/Nudge/Job/ProcessOrganisationImmediateNudgesJob.php | 218 +++++-\n app/Component/ParagraphBreaker/Services/TranscriptionParagraphsService.php | 4 +\n app/Component/ParticipantSpeech/Services/ParticipantSpeechesCreator.php | 33 +\n app/Component/ParticipantSpeech/Services/ParticipantSpeechesDeleter.php | 15 +\n app/Component/ParticipantSpeech/Services/ParticipantSpeechesProvider.php | 51 +-\n app/Component/ParticipantSpeech/Services/ParticipantSpeechesUploader.php | 36 +\n app/Component/ProphetAi/Exceptions/InsufficientTranscriptException.php | 11 +\n app/Component/Transcription/DTO/Http/Transcription/AssemblyAI/AssemblyAI/NoAssemblyIdException.php | 11 +\n app/Component/Transcription/DTO/Http/Transcription/AssemblyAI/AssemblyAI/SuccessfulResponse.php | 6 +\n app/Component/Transcription/DTO/Http/Transcription/TranscriptionIsNotCorrectFormatException.php | 11 +\n app/Component/Transcription/Diarization/Services/GetNormalizedParticipantSpeechesService.php | 23 +-\n app/Component/Transcription/Diarization/Source/MeetingBotSource.php | 16 +-\n app/Component/Transcription/TranscriptionProcessor/TranscriptionProcessor.php | 3 +\n app/Console/Commands/Activities/ActivityHardDeleteCommand.php | 4 +-\n app/Console/Commands/Activities/Copy.php | 2 +\n app/Console/Commands/Activities/SetupIntegration/TwilioSetS3RecordingCredentialsCommand.php | 119 ++++\n app/Console/Commands/Activities/UpdateActivityElasticSearchDocumentCommand.php | 10 +-\n app/Console/Commands/Crm/BackfillOpportunityUserFromAccountCommand.php | 126 ++++\n app/Console/Commands/Elasticsearch/AsyncUpdateEsActivities.php | 19 -\n app/Console/Commands/Elasticsearch/AsyncUpdateEsEntities.php | 50 +-\n app/Console/Commands/Elasticsearch/ResetAsyncElasticSearchCommand.php | 30 +-\n app/Console/Commands/GeckoExport/GeckoExportParticipantSpeechesCommand.php | 14 +-\n app/Console/Commands/IssueMcpTokenCommand.php | 84 +++\n app/Console/Commands/JiminnyDebugCommand.php | 7 +-\n app/Console/Commands/Tracks/CleanupActivityTracksCommand.php | 2 +-\n app/Console/Kernel.php | 6 +-\n app/Contracts/Services/Calendar/CalendarTrait.php | 80 ++-\n app/Events/AutomatedReports/AutomatedReportGenerated.php | 3 +\n app/Http/Controllers/API/AiCallScoring/AiScorecardController.php | 7 +-\n app/Http/Controllers/API/TeamAiAutomationController.php | 8 +\n app/Http/Controllers/CustomerApi/CustomerApiController.php | 4 +-\n app/Http/Controllers/Kiosk/ActivityController.php | 58 +-\n app/Http/Controllers/Settings/PlaybookController.php | 15 +-\n app/Http/Kernel.php | 23 +\n app/Http/Middleware/McpAuditMiddleware.php | 156 ++++\n app/Http/Middleware/McpTierMiddleware.php | 54 ++\n app/Http/Requests/API/V2/ZapierUploadActivityRequest.php | 28 +-\n app/Jobs/Activity/Import/ImportTwilioVideoSpeechesJob.php | 25 +-\n app/Jobs/Activity/Import/IsActivityReadyForProcessingJob.php | 10 +-\n app/Jobs/Calendar/SetupCalendarSync.php | 21 +-\n app/Jobs/ImportRemoteTrackJob.php | 96 ++-\n app/Jobs/Mailbox/EmailTextRelay.php | 15 +-\n app/Mcp/Contracts/McpCallRepositoryInterface.php | 30 +\n app/Mcp/DTO/ListCallsFilters.php | 29 +\n app/Mcp/Errors/McpError.php | 123 ++++\n app/Mcp/Repositories/McpActivityHydrator.php | 145 ++++\n app/Mcp/Repositories/McpCallRepository.php | 84 +++\n app/Mcp/Repositories/McpElasticCallRepository.php | 171 +++++\n app/Mcp/Servers/JiminnyServer.php | 38 +\n app/Mcp/Tools/ListCallsTool.php | 205 ++++++\n app/Models/Activity.php | 10 +-\n app/Models/Activity/Transcription.php | 17 +-\n app/Models/ElasticSearch/OpportunityElasticSearchTrait.php | 5 +\n app/Models/Participant.php | 1 +\n app/Providers/AppServiceProvider.php | 22 +\n app/Repositories/Crm/ContactRepository.php | 69 +-\n app/Repositories/ParticipantSpeechRepository.php | 13 +-\n app/Services/Activity/ParticipantsService.php | 19 +-\n app/Services/Activity/Twilio/S3RecordingCredentialsService.php | 82 +++\n app/Services/ActivityService.php | 21 +-\n app/Services/Calendar/CalendarActivityService.php | 46 ++\n app/Services/Calendar/Command/ImportParticipants.php | 1 +\n app/Services/Calendar/Command/MapActivityData.php | 106 +--\n app/Services/Calendar/GoogleCalendarService.php | 12 +-\n app/Services/Crm/Close/Processor/OpportunityProcessor.php | 2 +-\n app/Services/Crm/Close/Service.php | 22 +-\n app/Services/Crm/Copper/Service.php | 12 +-\n app/Services/Crm/Hubspot/Service.php | 154 +++-\n app/Services/Crm/Hubspot/ServiceTraits/OpportunitySyncTrait.php | 88 ++-\n app/Services/Crm/IntegrationApp/ServiceTraits/SyncCrmEntitiesTrait.php | 22 +-\n app/Services/Crm/Pipedrive/Service.php | 17 +-\n app/Services/Crm/Salesforce/Service.php | 42 +-\n app/Services/Mail/Office/EmailApiClient.php | 129 +---\n app/Services/RecallAI/Commands/ScheduleBotCommand.php | 39 +-\n app/Services/RecallAI/RecallAIService.php | 22 +-\n composer.json | 3 +-\n composer.lock | 87 ++-\n config/mcp.php | 23 +\n database/migrations/2026_04_30_120000_create_mcp_audit_log_table.php | 36 +\n docs/mcp/explorer/explorer.html | 697 ++++++++++++++++++\n docs/mcp/explorer/explorer.template.html | 697 ++++++++++++++++++\n docs/mcp/explorer/generate.js | 215 ++++++\n docs/mcp/explorer/tool-explorer-meta.json | 11 +\n docs/mcp/tools-list.json | 2536 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++\n docs/mcp/tools.md | 621 ++++++++++++++++\n front-end/package.json | 4 +-\n front-end/src/components/Settings/OrgSettings/AiAutomation/CrmFilling/TemplateFieldForm.vue | 28 +-\n front-end/src/components/Settings/OrgSettings/Playbooks/AddEditPlaybook.vue | 10 +\n front-end/src/components/playback/comments/ActivityComment.less | 10 +-\n front-end/src/components/shared/PromptTester/PromptTester.vue | 12 +-\n front-end/src/components/shared/__tests__/PromptTester.spec.js | 35 +\n front-end/src/components/shared/modals/EntityPickerModal/__tests__/useEntitiesCache.spec.ts | 37 +\n front-end/src/components/shared/modals/EntityPickerModal/useEntitiesCache.ts | 9 +\n front-end/yarn.lock | 16 +-\n phpstan-baseline.neon | 50 --\n routes/api.php | 11 +\n sonar-project.properties | 91 ++-\n tests/Feature/Component/Nudge/ProcessOrganisationImmediateNudgesJobTest.php | 534 ++++++++++++++\n tests/Feature/Jobs/ImportRemoteTrackJobTest.php | 283 +++++++-\n tests/Feature/Mcp/IssueMcpTokenCommandTest.php | 53 ++\n tests/Feature/Mcp/ListCallsToolElasticFeatureTest.php | 155 ++++\n tests/Feature/Mcp/ListCallsToolFeatureTest.php | 352 ++++++++++\n tests/Feature/Mcp/McpTestHelpersTrait.php | 77 ++\n tests/Feature/Services/Team/TeamDeleteHandlers/Retention/RetentionRepositoryHandlerTest.php | 1 +\n tests/Stubs/SentryStub.php | 18 +\n tests/Unit/Component/ActivityAnalytics/Service/CalculateTalkTimeOffsetFromTranscriptionTest.php | 28 +-\n tests/Unit/Component/AiActivityType/Services/AiActivityTypeEligibilityCheckerTest.php | 103 ++-\n tests/Unit/Component/AiAutomation/Actions/PrepareUpdateDtoActionTest.php | 91 +++\n tests/Unit/Component/AiAutomation/Services/CrmFillingEligibilityCheckerTest.php | 124 ++++\n tests/Unit/Component/AiAutomation/TestCrmAiPromptServiceTest.php | 67 +-\n tests/Unit/Component/AiCallScoring/Services/AiCallScoringEligibilityCheckerTest.php | 55 ++\n tests/Unit/Component/ES/ElasticSearchWorkerManagerTest.php | 135 ----\n tests/Unit/Component/ES/Processor/Actions/LoadDocumentsActionTest.php | 220 ++++++\n tests/Unit/Component/ES/Processor/EntityQueryBuilderTest.php | 21 +-\n tests/Unit/Component/ES/Processor/Traits/SkipActivityTraitTest.php | 51 --\n tests/Unit/Component/ES/Worker/ActivityWorkerTest.php | 174 -----\n tests/Unit/Component/ES/Worker/EntityWorkerTest.php | 97 ---\n tests/Unit/Component/ES/Worker/WorkerAmountTest.php | 116 ---\n tests/Unit/Component/Encoding/Job/AnalyzeTrackChannelsJobTest.php | 52 +-\n tests/Unit/Component/Encoding/Service/GenerateSpeechFromSilenceServiceTest.php | 171 ++---\n tests/Unit/Component/FFMpeg/Services/GetSpeechIntervalsTest.php | 36 +-\n tests/Unit/Component/LanguageDetection/Services/FindSpeechTimeServiceTest.php | 20 +-\n tests/Unit/Component/MobileSettings/MobileSettingsControllerTest.php | 5 +-\n tests/Unit/Component/ParticipantSpeech/Services/ParticipantSpeechesCreatorTest.php | 75 ++\n tests/Unit/Component/ParticipantSpeech/Services/ParticipantSpeechesDeleterTest.php | 63 ++\n tests/Unit/Component/ParticipantSpeech/Services/ParticipantSpeechesProviderTest.php | 134 ++++\n tests/Unit/Component/ParticipantSpeech/Services/ParticipantSpeechesUploaderTest.php | 57 ++\n tests/Unit/Component/Transcription/Diarization/Services/GetNormalizedParticipantSpeechesServiceTest.php | 51 +-\n tests/Unit/Component/Transcription/Diarization/Source/MeetingBotSourceTest.php | 29 +-\n tests/Unit/Contracts/Services/Calendar/CalendarTraitTest.php | 58 +-\n tests/Unit/Http/Controllers/Kiosk/ActivityControllerTest.php | 159 +++++\n tests/Unit/Jobs/Activity/Import/ImportTwilioVideoSpeechesJobTest.php | 22 +-\n tests/Unit/Jobs/Activity/Import/IsActivityReadyForProcessingJobTest.php | 26 +-\n tests/Unit/Jobs/Calendar/SetupCalendarSyncTest.php | 25 -\n tests/Unit/Services/Activity/ParticipantsServiceTest.php | 12 +-\n tests/Unit/Services/Activity/Twilio/S3RecordingCredentialsServiceTest.php | 180 +++++\n tests/Unit/Services/ActivityServiceTest.php | 132 ++++\n tests/Unit/Services/Calendar/CalendarActivityServiceTest.php | 150 +++-\n tests/Unit/Services/Calendar/Command/ImportParticipantsTest.php | 6 +-\n tests/Unit/Services/Calendar/Command/MapActivityDataTest.php | 78 +-\n tests/Unit/Services/Calendar/GoogleCalendarServiceTest.php | 116 +++\n tests/Unit/Services/Crm/Close/ServiceTest.php | 165 +++++\n tests/Unit/Services/Crm/Hubspot/ServiceTest.php | 272 ++++++-\n tests/Unit/Services/Crm/Hubspot/ServiceTraits/OpportunitySyncTest.php | 25 +-\n tests/Unit/Services/Crm/Hubspot/ServiceTraits/OpportunitySyncTraitMatchActivitiesTest.php | 3 +-\n tests/Unit/Services/Crm/IntegrationApp/ServiceTraits/SyncCrmEntitiesTraitOpportunitiesTest.php | 40 ++\n tests/Unit/Services/Crm/Pipedrive/ImportOpportunityMatchActivitiesTest.php | 2 +\n tests/Unit/Services/Crm/Salesforce/ServiceTest.php | 139 ++++\n tests/Unit/Services/Mail/Office/EmailApiClientTest.php | 195 ++---\n tests/Unit/Services/RecallAI/RecallAIServiceTest.php | 24 +-\n 175 files changed, 12562 insertions(+), 2162 deletions(-)\n create mode 120000 CLAUDE.md\n create mode 100644 app/Component/AiAutomation/Services/CrmFillingEligibilityChecker.php\n delete mode 100644 app/Component/ES/ElasticSearchWorkerManager.php\n delete mode 100644 app/Component/ES/Processor/Traits/SkipActivityTrait.php\n delete mode 100644 app/Component/ES/Worker/ActivityWorker.php\n delete mode 100644 app/Component/ES/Worker/EntityWorker.php\n delete mode 100644 app/Component/ES/Worker/WorkerAmount.php\n delete mode 100644 app/Component/ES/Worker/WorkerInterface.php\n create mode 100644 app/Component/ProphetAi/Exceptions/InsufficientTranscriptException.php\n create mode 100644 app/Component/Transcription/DTO/Http/Transcription/AssemblyAI/AssemblyAI/NoAssemblyIdException.php\n create mode 100644 app/Component/Transcription/DTO/Http/Transcription/TranscriptionIsNotCorrectFormatException.php\n create mode 100644 app/Console/Commands/Activities/SetupIntegration/TwilioSetS3RecordingCredentialsCommand.php\n create mode 100644 app/Console/Commands/Crm/BackfillOpportunityUserFromAccountCommand.php\n delete mode 100644 app/Console/Commands/Elasticsearch/AsyncUpdateEsActivities.php\n create mode 100644 app/Console/Commands/IssueMcpTokenCommand.php\n create mode 100644 app/Http/Middleware/McpAuditMiddleware.php\n create mode 100644 app/Http/Middleware/McpTierMiddleware.php\n create mode 100644 app/Mcp/Contracts/McpCallRepositoryInterface.php\n create mode 100644 app/Mcp/DTO/ListCallsFilters.php\n create mode 100644 app/Mcp/Errors/McpError.php\n create mode 100644 app/Mcp/Repositories/McpActivityHydrator.php\n create mode 100644 app/Mcp/Repositories/McpCallRepository.php\n create mode 100644 app/Mcp/Repositories/McpElasticCallRepository.php\n create mode 100644 app/Mcp/Servers/JiminnyServer.php\n create mode 100644 app/Mcp/Tools/ListCallsTool.php\n create mode 100644 app/Services/Activity/Twilio/S3RecordingCredentialsService.php\n create mode 100644 config/mcp.php\n create mode 100644 database/migrations/2026_04_30_120000_create_mcp_audit_log_table.php\n create mode 100644 docs/mcp/explorer/explorer.html\n create mode 100644 docs/mcp/explorer/explorer.template.html\n create mode 100644 docs/mcp/explorer/generate.js\n create mode 100644 docs/mcp/explorer/tool-explorer-meta.json\n create mode 100644 docs/mcp/tools-list.json\n create mode 100644 docs/mcp/tools.md\n create mode 100644 front-end/src/components/shared/modals/EntityPickerModal/__tests__/useEntitiesCache.spec.ts\n create mode 100644 tests/Feature/Component/Nudge/ProcessOrganisationImmediateNudgesJobTest.php\n create mode 100644 tests/Feature/Mcp/IssueMcpTokenCommandTest.php\n create mode 100644 tests/Feature/Mcp/ListCallsToolElasticFeatureTest.php\n create mode 100644 tests/Feature/Mcp/ListCallsToolFeatureTest.php\n create mode 100644 tests/Feature/Mcp/McpTestHelpersTrait.php\n create mode 100644 tests/Stubs/SentryStub.php\n create mode 100644 tests/Unit/Component/AiAutomation/Services/CrmFillingEligibilityCheckerTest.php\n delete mode 100644 tests/Unit/Component/ES/ElasticSearchWorkerManagerTest.php\n create mode 100644 tests/Unit/Component/ES/Processor/Actions/LoadDocumentsActionTest.php\n delete mode 100644 tests/Unit/Component/ES/Processor/Traits/SkipActivityTraitTest.php\n delete mode 100644 tests/Unit/Component/ES/Worker/ActivityWorkerTest.php\n delete mode 100644 tests/Unit/Component/ES/Worker/EntityWorkerTest.php\n delete mode 100644 tests/Unit/Component/ES/Worker/WorkerAmountTest.php\n create mode 100644 tests/Unit/Component/ParticipantSpeech/Services/ParticipantSpeechesCreatorTest.php\n create mode 100644 tests/Unit/Http/Controllers/Kiosk/ActivityControllerTest.php\n create mode 100644 tests/Unit/Services/Activity/Twilio/S3RecordingCredentialsServiceTest.php\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20725-handle-HS-search-rate-limit) $ git status\nOn branch master\nYour branch is behind 'origin/master' by 114 commits, and can be fast-forwarded.\n (use \"git pull\" to update your local branch)\n\nChanges not staged for commit:\n (use \"git add <file>...\" to update what will be committed)\n (use \"git restore <file>...\" to discard changes in working directory)\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tmodified: .env.local\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tmodified: app/Component/SCIM/Constants.php\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tmodified: app/Component/SCIM/ScimProvisioning.php\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tmodified: app/Component/Twilio/Conference/ConferenceManager/SoftPhoneManager.php\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tmodified: app/Console/Commands/JiminnyDebugCommand.php\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tmodified: app/DTO/SCIM/AAD/Request/CoreUserRequest.php\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tmodified: app/DTO/SCIM/AAD/Response/CoreUser.php\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tmodified: app/Services/Telephony/TextMessagingService.php\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tmodified: config/logging.php\n\nUntracked files:\n (use \"git add <file>...\" to include in what will be committed)\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\t.env.nikilocal\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\t.env.other\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tWEBHOOK_FILTERING_IMPLEMENTATION.md\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tapp/Component/SCIM/Mutators/Attributes/User/RoleAttr.php\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tapp/Console/Commands/Crm/Hubspot/SimulateWebhooksCommand.php\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tapp/Console/Commands/Reports/CreateMockAskJiminnyReportResultCommand.php\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tapp/Rules/ListenerRoleCannotHaveAdminOrManagerPermissionRule.php\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tids.txt\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tpublic/favicon.ico\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\traw_sql_query.sql\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\ttests/Unit/Component/SCIM/Mutators/Attributes/User/RoleAttrTest.php\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\ttests/Unit/Policies/CanAccessAiReportsTest.php\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\ttests/Unit/Rules/ListenerRoleCannotHaveAdminOrManagerPermissionRuleTest.php\n\nno changes added to commit (use \"git add\" and/or \"git commit -a\")\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (master) $ git pull\nremote: Enumerating objects: 306, done.\nremote: Counting objects: 100% (299/299), done.\nremote: Compressing objects: 100% (183/183), done.\nremote: Total 306 (delta 213), reused 171 (delta 116), pack-reused 7 (from 1)\nReceiving objects: 100% (306/306), 80.12 KiB | 1000.00 KiB/s, done.\nResolving deltas: 100% (213/213), completed with 53 local objects.\nFrom github.com:jiminny/app\n 90bca4e4b2..5604af40cf master -> origin/master\n 4e7078fd8b..0b8343d179 JY-18091-upgrade-to-php-8-5 -> origin/JY-18091-upgrade-to-php-8-5\n 098eeaa087..d5a447e492 JY-20613-allow-owner-role-on-team-setup -> origin/JY-20613-allow-owner-role-on-team-setup\n c3a76ace91..af65249d0f JY-20749-user-can-view-recorded-meetings -> origin/JY-20749-user-can-view-recorded-meetings\n d94a285ae7..7ce96cb5fe JY-20808-low-priority-indexing-queue -> origin/JY-20808-low-priority-indexing-queue\n * [new branch] JY-20842-remove-partial-updater -> origin/JY-20842-remove-partial-updater\n * [new branch] JY-20920-fix-participant-flip -> origin/JY-20920-fix-participant-flip\n * [new branch] secfix/npm-20260519 -> origin/secfix/npm-20260519\nUpdating cb4ebf0c36..5604af40cf\nFast-forward\n app/Component/ES/ChunkSize.php | 54 +++++++++++++++++++\n app/Component/ES/Processor/DTOs/SelectionList.php | 4 +-\n app/Component/ES/Processor/TargetEntitiesSelector.php | 19 ++++---\n app/Component/MeetingBot/Service/ParticipantMatcher.php | 46 ++++++++++++----\n app/Exceptions/RateLimitException.php | 19 ++++++-\n app/Http/Middleware/McpTierMiddleware.php | 27 ++--------\n app/Jobs/Crm/MatchActivityCrmData.php | 47 ++++++++++++----\n app/Jobs/Middleware/HandleHubspotRateLimit.php | 42 +++++++++++++++\n app/Mcp/Servers/JiminnyServer.php | 2 +\n app/Mcp/Tools/GetMeTool.php | 157 +++++++++++++++++++++++++++++++++++++++++++++++++++++\n app/Models/Feature/FeatureEnum.php | 1 +\n app/Services/Activity/HubSpot/ProviderResolver.php | 4 +-\n app/Services/Activity/HubSpot/ProviderResolverInterface.php | 2 +-\n app/Services/Activity/HubSpot/Providers/Provider.php | 2 +-\n app/Services/Activity/HubSpot/Providers/ProviderKixie.php | 2 +-\n app/Services/Activity/HubSpot/Providers/ProviderOrum.php | 2 +-\n app/Services/Activity/HubSpot/Providers/ProviderTwilio.php | 2 +-\n app/Services/Activity/HubSpot/Providers/ProviderTwilioFlex.php | 5 +-\n app/Services/Activity/HubSpot/Service.php | 97 +++++++++++++++++++++++++++------\n app/Services/Crm/Hubspot/Client.php | 132 +++++++++++++++++++++++++++++++++++++++++++++\n app/Services/Crm/Hubspot/HubspotClientInterface.php | 15 ++++++\n app/Services/Crm/Hubspot/Pagination/HubspotPaginationService.php | 21 ++++----\n app/Services/Crm/Hubspot/Pagination/PaginationState.php | 2 +-\n database/migrations/2026_05_13_124153_create_mcp_feature_flag.php | 25 +++++++++\n tests/Feature/Mcp/GetMeToolFeatureTest.php | 140 +++++++++++++++++++++++++++++++++++++++++++++++\n tests/Feature/Mcp/ListCallsToolFeatureTest.php | 2 +-\n tests/Feature/Mcp/McpTestHelpersTrait.php | 19 ++++++-\n tests/Unit/Component/ES/ChunkSizeTest.php | 50 +++++++++++++++++\n tests/Unit/Component/ES/Processor/DTOs/SelectionListTest.php | 27 +++++++---\n tests/Unit/Component/ES/Processor/TargetEntitiesSelectorTest.php | 39 ++++++++------\n tests/Unit/Component/MeetingBot/Service/ParticipantMatcherTest.php | 68 ++++++++++++++++++++++-\n tests/Unit/Exceptions/RateLimitExceptionTest.php | 56 +++++++++++++++++++\n tests/Unit/Jobs/Crm/MatchActivityCrmDataTest.php | 8 +--\n tests/Unit/Jobs/Middleware/HandleHubspotRateLimitTest.php | 151 +++++++++++++++++++++++++++++++++++++++++++++++++++\n tests/Unit/Services/Activity/HubSpot/ServiceTest.php | 109 +++++++++++++++++++++++++++++++++++++\n tests/Unit/Services/Crm/Hubspot/ClientTest.php | 250 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++\n tests/Unit/Services/Crm/Hubspot/Pagination/HubspotPaginationServiceTest.php | 283 +++++++++++++++++++++---------------------------------------------------------------------------\n 37 files changed, 1587 insertions(+), 344 deletions(-)\n create mode 100644 app/Component/ES/ChunkSize.php\n create mode 100644 app/Jobs/Middleware/HandleHubspotRateLimit.php\n create mode 100644 app/Mcp/Tools/GetMeTool.php\n create mode 100644 database/migrations/2026_05_13_124153_create_mcp_feature_flag.php\n create mode 100644 tests/Feature/Mcp/GetMeToolFeatureTest.php\n create mode 100644 tests/Unit/Component/ES/ChunkSizeTest.php\n create mode 100644 tests/Unit/Exceptions/RateLimitExceptionTest.php\n create mode 100644 tests/Unit/Jobs/Middleware/HandleHubspotRateLimitTest.php\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (master) $ git pull\nAlready up to date.\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (master) $ co -b JY-20676-delete-report-related-objects\nSwitched to a new branch 'JY-20676-delete-report-related-objects'\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20676-delete-report-related-objects) $ csfix\ndocker exec -it docker_lamp_1 ./vendor/bin/php-cs-fixer fix --config=.php-cs-fixer.dist.php -v --using-cache=no --diff \nPHP CS Fixer 3.87.1 Alexander by Fabien Potencier, Dariusz Ruminski and contributors.\nPHP runtime: 8.3.30\nRunning analysis on 7 cores with 10 files per process.\nParallel runner is an experimental feature and may be unstable, use it at your own risk. Feedback highly appreciated!\nLoaded config default from \".php-cs-fixer.dist.php\".\n 5690/5690 [▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓] 100%\n\n 1) app/Console/Commands/JiminnyDebugCommand.php (statement_indentation, blank_line_before_statement)\n ---------- begin diff ----------\n--- /home/jiminny/app/Console/Commands/JiminnyDebugCommand.php\n+++ /home/jiminny/app/Console/Commands/JiminnyDebugCommand.php\n@@ -23,6 +23,7 @@\n \n if ($action === 'redis-set') {\n $this->testRedisSet();\n+\n return;\n }\n \n@@ -45,7 +46,7 @@\n $ttl = 60;\n \n try {\n-// $result = Redis::set($testKey, $testValue, 'EX', $ttl, 'NX');\n+ // $result = Redis::set($testKey, $testValue, 'EX', $ttl, 'NX');\n $result = Redis::set($testKey, $testValue, ['nx', 'ex' => $ttl]);\n \n if ($result) {\n\n ----------- end diff -----------\n\n\nFixed 1 of 5690 files in 50.673 seconds, 67.00 MB memory used\n\nWhat's next:\n Try Docker Debug for seamless, persistent debugging tools in any container or image → docker debug docker_lamp_1\n Learn more at https://docs.docker.com/go/debug-cli/\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20676-delete-report-related-objects) $ ;xd\ndocker exec -it docker_lamp_1 bash -c \"mv /usr/local/etc/php/conf.d/xdebug.ini ~/xdebug.ini\"\n\nWhat's next:\n Try Docker Debug for seamless, persistent debugging tools in any container or image → docker debug docker_lamp_1\n Learn more at https://docs.docker.com/go/debug-cli/\ndocker exec -it docker_lamp_1 supervisorctl restart all\njiminny-worker-processing-2:jiminny-worker-processing-2_00: stopped\njiminny-worker-processing-3:jiminny-worker-processing-3_00: stopped\njiminny-worker-processing-4:jiminny-worker-processing-4_00: stopped\njiminny-worker-processing-5:jiminny-worker-processing-5_00: stopped\njiminny-worker-processing-delayed:jiminny-worker-processing-delayed_00: stopped\nworker-analytics:worker-analytics_00: stopped\nworker-crm-update:worker-crm-update_00: stopped\nworker-download:worker-download_00: stopped\nworker-nudges:worker-nudges_00: stopped\nworker-calendar:worker-calendar_00: stopped\nworker-audio:worker-audio_00: stopped\njiminny-worker-processing-1:jiminny-worker-processing-1_00: stopped\nworker:worker_00: stopped\nworker-conferences:worker-conferences_00: stopped\nworker-crm-sync:worker-crm-sync_00: stopped\nworker-emails:worker-emails_00: stopped\nworker-es-update:worker-es-update_00: stopped\nartisan-schedule:artisan-schedule_00: stopped\nartisan-schedule:artisan-schedule_00: started\njiminny-worker-processing-1:jiminny-worker-processing-1_00: started\njiminny-worker-processing-2:jiminny-worker-processing-2_00: started\njiminny-worker-processing-3:jiminny-worker-processing-3_00: started\njiminny-worker-processing-4:jiminny-worker-processing-4_00: started\njiminny-worker-processing-5:jiminny-worker-processing-5_00: started\njiminny-worker-processing-delayed:jiminny-worker-processing-delayed_00: started\nworker:worker_00: started\nworker-analytics:worker-analytics_00: started\nworker-audio:worker-audio_00: started\nworker-calendar:worker-calendar_00: started\nworker-conferences:worker-conferences_00: started\nworker-crm-sync:worker-crm-sync_00: started\nworker-crm-update:worker-crm-update_00: started\nworker-download:worker-download_00: started\nworker-emails:worker-emails_00: started\nworker-es-update:worker-es-update_00: started\nworker-nudges:worker-nudges_00: started\n\nWhat's next:\n Try Docker Debug for seamless, persistent debugging tools in any container or image → docker debug docker_lamp_1\n Learn more at https://docs.docker.com/go/debug-cli/\ndocker exec -it docker_lamp_1 php -v\nPHP 8.3.30 (cli) (built: Mar 16 2026 22:32:32) (NTS)\nCopyright (c) The PHP Group\nZend Engine v4.3.30, Copyright (c) Zend Technologies\n with Zend OPcache v8.3.30, Copyright (c), by Zend Technologies\n\nWhat's next:\n Try Docker Debug for seamless, persistent debugging tools in any container or image → docker debug docker_lamp_1\n Learn more at https://docs.docker.com/go/debug-cli/\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20676-delete-report-related-objects) $ git status\nOn branch JY-20676-delete-report-related-objects\nChanges not staged for commit:\n (use \"git add <file>...\" to update what will be committed)\n (use \"git restore <file>...\" to discard changes in working directory)\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tmodified: .env.local\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tmodified: app/Console/Commands/JiminnyDebugCommand.php\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tmodified: config/logging.php\n\nUntracked files:\n (use \"git add <file>...\" to include in what will be committed)\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\t.env.nikilocal\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\t.env.other\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tWEBHOOK_FILTERING_IMPLEMENTATION.md\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tapp/Console/Commands/Crm/Hubspot/SimulateWebhooksCommand.php\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tapp/Console/Commands/Reports/CreateMockAskJiminnyReportResultCommand.php\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tids.txt\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tpublic/favicon.ico\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\traw_sql_query.sql\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\ttests/Unit/Policies/CanAccessAiReportsTest.php\n\nno changes added to commit (use \"git add\" and/or \"git commit -a\")\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20676-delete-report-related-objects) $ git push -u origin JY-20676-delete-report-related-objects\nEnumerating objects: 45, done.\nCounting objects: 100% (45/45), done.\nDelta compression using up to 8 threads\nCompressing objects: 100% (24/24), done.\nWriting objects: 100% (24/24), 3.62 KiB | 3.62 MiB/s, done.\nTotal 24 (delta 19), reused 0 (delta 0), pack-reused 0\nremote: Resolving deltas: 100% (19/19), completed with 19 local objects.\nremote: \nremote: Create a pull request for 'JY-20676-delete-report-related-objects' on GitHub by visiting:\nremote: https://github.com/jiminny/app/pull/new/JY-20676-delete-report-related-objects\nremote: \nTo github.com:jiminny/app.git\n * [new branch] JY-20676-delete-report-related-objects -> JY-20676-delete-report-related-objects\nbranch 'JY-20676-delete-report-related-objects' set up to track 'origin/JY-20676-delete-report-related-objects'.\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20676-delete-report-related-objects) $ csfix\ndocker exec -it docker_lamp_1 ./vendor/bin/php-cs-fixer fix --config=.php-cs-fixer.dist.php -v --using-cache=no --diff \nPHP CS Fixer 3.87.1 Alexander by Fabien Potencier, Dariusz Ruminski and contributors.\nPHP runtime: 8.3.30\nRunning analysis on 7 cores with 10 files per process.\nParallel runner is an experimental feature and may be unstable, use it at your own risk. Feedback highly appreciated!\nLoaded config default from \".php-cs-fixer.dist.php\".\n 5690/5690 [▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓] 100%\n\n 1) app/Http/Controllers/API/V2/AskJiminnyReportsController.php (blank_line_before_statement)\n ---------- begin diff ----------\n--- /home/jiminny/app/Http/Controllers/API/V2/AskJiminnyReportsController.php\n+++ /home/jiminny/app/Http/Controllers/API/V2/AskJiminnyReportsController.php\n@@ -140,6 +140,7 @@\n if ($enabled && $report->isAskJiminnyReport() && ! $report->canExecute()) {\n $error = 'This report is missing a saved search or prompt. ' .\n 'Edit the report to complete the setup before enabling it.';\n+\n return new JsonResponse(\n ['error' => $error],\n Response::HTTP_UNPROCESSABLE_ENTITY\n\n ----------- end diff -----------\n\n\nFixed 1 of 5690 files in 71.757 seconds, 60.00 MB memory used\n\nWhat's next:\n Try Docker Debug for seamless, persistent debugging tools in any container or image → docker debug docker_lamp_1\n Learn more at https://docs.docker.com/go/debug-cli/\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20676-delete-report-related-objects) $ git pull\nremote: Enumerating objects: 158, done.\nremote: Counting objects: 100% (103/103), done.\nremote: Compressing objects: 100% (37/37), done.\nremote: Total 158 (delta 80), reused 74 (delta 66), pack-reused 55 (from 3)\nReceiving objects: 100% (158/158), 80.59 KiB | 982.00 KiB/s, done.\nResolving deltas: 100% (85/85), completed with 45 local objects.\nFrom github.com:jiminny/app\n 02a33811ee..c6ce5e2440 JY-20676-delete-report-related-objects -> origin/JY-20676-delete-report-related-objects\n 7ce96cb5fe..6c59f04358 JY-20808-low-priority-indexing-queue -> origin/JY-20808-low-priority-indexing-queue\n 3906a9238a..2b5e6ea62b JY-20835-mcp-enable-users-to-get-a-list-of-deals-and-their-details -> origin/JY-20835-mcp-enable-users-to-get-a-list-of-deals-and-their-details\n 5604af40cf..ea3519f0e2 master -> origin/master\n * [new branch] switch-eu-assembly -> origin/switch-eu-assembly\nUpdating 02a33811ee..c6ce5e2440\nFast-forward\n app/Component/ES/ElasticSearchDocumentPartialUpdater.php | 48 ---\n app/Component/ParticipantSpeech/Services/ParticipantAttributionService.php | 4 +-\n app/Component/Settings/AutoScoring/Services/UpdateAutoScoreService.php | 20 +-\n app/Component/Transcription/Service/StorageService.php | 8 +-\n front-end/package.json | 2 +-\n front-end/src/components/DealInsights/Modals/AskAnythingModal.vue | 23 ++\n front-end/src/components/shared/AskAnything/AskAnythingPromptFormItem.vue | 2 +\n front-end/src/components/shared/AskAnything/AskAnythingSettingsDrawer.vue | 23 +-\n front-end/src/components/shared/AskAnything/__mocks__/AskAnythingSettingsDrawer.mocks.js | 1 +\n front-end/src/components/shared/AskAnything/__tests__/AskAnythingSettingsDrawer.spec.js | 135 ++++---\n front-end/src/components/shared/AskAnything/__tests__/__snapshots__/AskAnythingSettingsDrawer.spec.js.html | 1235 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++\n front-end/src/components/shared/AskAnything/__tests__/__snapshots__/AskAnythingSettingsDrawer.spec.js.snap | 1382 ----------------------------------------------------------------\n front-end/src/components/shared/AskAnything/prompts.js | 1 +\n front-end/src/components/shared/AskAnything/useAskAnything.js | 1 +\n front-end/yarn.lock | 8 +-\n tests/Unit/Component/ES/ElasticSearchDocumentPartialUpdaterTest.php | 42 --\n tests/Unit/Component/Settings/AutoScoring/Services/UpdateAutoScoreServiceTest.php | 86 ++--\n tests/Unit/Component/Transcription/Service/StorageServiceTest.php | 29 +-\n 18 files changed, 1448 insertions(+), 1602 deletions(-)\n delete mode 100644 app/Component/ES/ElasticSearchDocumentPartialUpdater.php\n create mode 100644 front-end/src/components/shared/AskAnything/__tests__/__snapshots__/AskAnythingSettingsDrawer.spec.js.html\n delete mode 100644 front-end/src/components/shared/AskAnything/__tests__/__snapshots__/AskAnythingSettingsDrawer.spec.js.snap\n delete mode 100644 tests/Unit/Component/ES/ElasticSearchDocumentPartialUpdaterTest.php\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20676-delete-report-related-objects) $ csfix\ndocker exec -it docker_lamp_1 ./vendor/bin/php-cs-fixer fix --config=.php-cs-fixer.dist.php -v --using-cache=no --diff \nPHP CS Fixer 3.87.1 Alexander by Fabien Potencier, Dariusz Ruminski and contributors.\nPHP runtime: 8.3.30\nRunning analysis on 7 cores with 10 files per process.\nParallel runner is an experimental feature and may be unstable, use it at your own risk. Feedback highly appreciated!\nLoaded config default from \".php-cs-fixer.dist.php\".","is_focused":true},{"role":"AXRadioButton","text":"DOCKER","depth":2,"bounds":{"left":0.0,"top":0.05888889,"width":0.19826388,"height":0.026666667},"on_screen":true,"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.004166667,"top":0.06333333,"width":0.011111111,"height":0.017777778},"on_screen":true,"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"DEV (docker)","depth":2,"bounds":{"left":0.19826388,"top":0.05888889,"width":0.19826388,"height":0.026666667},"on_screen":true,"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.20243056,"top":0.06333333,"width":0.011111111,"height":0.017777778},"on_screen":true,"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"APP (docker)","depth":2,"bounds":{"left":0.39652777,"top":0.05888889,"width":0.19791667,"height":0.026666667},"on_screen":true,"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.40069443,"top":0.06333333,"width":0.011111111,"height":0.017777778},"on_screen":true,"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"screenpipe\"","depth":2,"bounds":{"left":0.59444445,"top":0.05888889,"width":0.19791667,"height":0.026666667},"on_screen":true,"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.5986111,"top":0.06333333,"width":0.011111111,"height":0.017777778},"on_screen":true,"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"-zsh","depth":2,"bounds":{"left":0.79236114,"top":0.05888889,"width":0.19791667,"height":0.026666667},"on_screen":true,"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.7965278,"top":0.06333333,"width":0.011111111,"height":0.017777778},"on_screen":true,"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"⌥⌘1","depth":1,"bounds":{"left":0.9618056,"top":0.032222223,"width":0.038194418,"height":0.018888889},"on_screen":true,"automation_id":"_NS:8","role_description":"text"},{"role":"AXStaticText","text":"APP (docker)","depth":1,"bounds":{"left":0.4722222,"top":0.033333335,"width":0.0625,"height":0.017777778},"on_screen":true,"role_description":"text"}]...
|
2802650493718167367
|
-1358120912881272742
|
visual_change
|
accessibility
|
NULL
|
Last login: Mon May 18 09:17:28 on ttys007
Poetry Last login: Mon May 18 09:17:28 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 (pipedrive-sdk-poc) $ co master
error: Your local changes to the following files would be overwritten by checkout:
PIPEDRIVE_V2_MIGRATION_TICKETS.md
Please commit your changes or stash them before you switch branches.
Aborting
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (pipedrive-sdk-poc) $ git pull
remote: Enumerating objects: 1047, done.
remote: Counting objects: 100% (832/832), done.
remote: Compressing objects: 100% (298/298), done.
remote: Total 1047 (delta 634), reused 596 (delta 534), pack-reused 215 (from 3)
Receiving objects: 100% (1047/1047), 353.16 KiB | 1.56 MiB/s, done.
Resolving deltas: 100% (687/687), completed with 107 local objects.
From github.com:jiminny/app
907c54896c..34656c53ed pipedrive-sdk-poc -> origin/pipedrive-sdk-poc
03325ec50f..4e7078fd8b JY-18091-upgrade-to-php-8-5 -> origin/JY-18091-upgrade-to-php-8-5
e7d231e163..bc6a3fce6b JY-20725-handle-HS-search-rate-limit -> origin/JY-20725-handle-HS-search-rate-limit
* [new branch] JY-20749-user-can-view-recorded-meetings -> origin/JY-20749-user-can-view-recorded-meetings
98ca281a04..e0351be069 JY-20808-low-priority-indexing-queue -> origin/JY-20808-low-priority-indexing-queue
569abb5149..3906a9238a JY-20835-mcp-enable-users-to-get-a-list-of-deals-and-their-details -> origin/JY-20835-mcp-enable-users-to-get-a-list-of-deals-and-their-details
ad6c2a86e8..50eb6afba9 JY-20846-mcp-enable-the-ai-to-know-details-about-the-user -> origin/JY-20846-mcp-enable-the-ai-to-know-details-about-the-user
* [new branch] JY-20893-chunk-control-per-update-target -> origin/JY-20893-chunk-control-per-update-target
31c62924a5..cb4ebf0c36 master -> origin/master
Updating 907c54896c..34656c53ed
Fast-forward
PIPEDRIVE_V2_MIGRATION_TICKETS.md | 52 ++++++++++++++++++++++++++++++++++++++++++++++++++++
1 file changed, 52 insertions(+)
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (pipedrive-sdk-poc) $ co master
M .env.local
M config/logging.php
Switched to branch 'master'
Your branch is behind 'origin/master' by 31 commits, and can be fast-forwarded.
(use "git pull" to update your local branch)
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (master) $ git pull
Updating 31c62924a5..cb4ebf0c36
Fast-forward
app/Component/ES/Processor/Traits/SelectEntityListTrait.php | 20 ------
app/Services/Calendar/CalendarActivityService.php | 46 +++++++++++++
app/Services/Calendar/Command/MapActivityData.php | 106 +++-------------------------
docs/mcp/explorer/explorer.html | 104 +++++++++++++++++++++++++---
docs/mcp/explorer/explorer.template.html | 102 ++++++++++++++++++++++++---
docs/mcp/tools-list.json | 373 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++-------
docs/mcp/tools.md | 117 +++++++++++++++++++++++--------
tests/Unit/Component/ES/AsyncUpdateElasticSearchTest.php | 16 +----
tests/Unit/Component/ES/Listeners/UpdateMultipleTargetsListenerTest.php | 10 ---
tests/Unit/Component/ES/Listeners/UpdateSingleTargetListenerTest.php | 6 --
tests/Unit/Component/ES/Processor/TargetEntitiesSelectorTest.php | 9 ---
tests/Unit/Component/ES/Processor/Traits/SelectEntityListTraitTest.php | 15 ++--
tests/Unit/Component/ES/UpdateProcessManagerTest.php | 2 -
tests/Unit/Services/Calendar/CalendarActivityServiceTest.php | 150 ++++++++++++++++++++++++++++++++++++++--
tests/Unit/Services/Calendar/Command/MapActivityDataTest.php | 78 ++-------------------
15 files changed, 832 insertions(+), 322 deletions(-)
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (master) $ co -b JY-20613-allow-owner-role-on-team-setup
Switched to a new branch 'JY-20613-allow-owner-role-on-team-setup'
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20613-allow-owner-role-on-team-setup) $ csfix
docker exec -it docker_lamp_1 ./vendor/bin/php-cs-fixer fix --config=.php-cs-fixer.dist.php -v --using-cache=no --diff
PHP CS Fixer 3.87.1 Alexander by Fabien Potencier, Dariusz Ruminski and contributors.
PHP runtime: 8.3.30
Running 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!
Loaded config default from ".php-cs-fixer.dist.php".
5682/5682 [▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓] 100%
Fixed 0 of 5682 files in 56.978 seconds, 67.00 MB memory used
What's next:
Try Docker Debug for seamless, persistent debugging tools in any container or image → docker debug docker_lamp_1
Learn more at [URL_WITH_CREDENTIALS] ~/jiminny/app (JY-20613-allow-owner-role-on-team-setup) $ csfix
docker exec -it docker_lamp_1 ./vendor/bin/php-cs-fixer fix --config=.php-cs-fixer.dist.php -v --using-cache=no --diff
PHP CS Fixer 3.87.1 Alexander by Fabien Potencier, Dariusz Ruminski and contributors.
PHP runtime: 8.3.30
Running 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!
Loaded config default from ".php-cs-fixer.dist.php".
5682/5682 [▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓] 100%
Fixed 0 of 5682 files in 49.910 seconds, 60.00 MB memory used
What's next:
Try Docker Debug for seamless, persistent debugging tools in any container or image → docker debug docker_lamp_1
Learn more at [URL_WITH_CREDENTIALS] ~/jiminny/app (JY-20613-allow-owner-role-on-team-setup) $ git pull
remote: Enumerating objects: 248, done.
remote: Counting objects: 100% (128/128), done.
remote: Compressing objects: 100% (23/23), done.
remote: Total 59 (delta 43), reused 44 (delta 33), pack-reused 0 (from 0)
Unpacking objects: 100% (59/59), 10.48 KiB | 228.00 KiB/s, done.
From github.com:jiminny/app
b7df560451..190239dfd4 JY-20613-allow-owner-role-on-team-setup -> origin/JY-20613-allow-owner-role-on-team-setup
e0351be069..d94a285ae7 JY-20808-low-priority-indexing-queue -> origin/JY-20808-low-priority-indexing-queue
* [new branch] JY-20920-fix-participant-matcher -> origin/JY-20920-fix-participant-matcher
cb4ebf0c36..90bca4e4b2 master -> origin/master
Merge made by the 'ort' strategy.
app/Component/ES/ChunkSize.php | 54 +++++++++++++++++++++++++++
app/Component/ES/Processor/DTOs/SelectionList.php | 4 +-
app/Component/ES/Processor/TargetEntitiesSelector.php | 19 ++++++----
app/Http/Middleware/McpTierMiddleware.php | 27 +++-----------
app/Mcp/Servers/JiminnyServer.php | 2 +
app/Mcp/Tools/GetMeTool.php | 157 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
app/Models/Feature/FeatureEnum.php | 1 +
database/migrations/2026_05_13_124153_create_mcp_feature_flag.php | 25 +++++++++++++
front-end/src/components/Settings/Kiosk/modals/EditTeamModal/EditTeamModal.vue | 52 ++++++++++++++++++--------
front-end/src/components/Settings/Kiosk/modals/EditTeamModal/__tests__/EditTeamModal.spec.js | 14 +++++++
tests/Feature/Mcp/GetMeToolFeatureTest.php | 140 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
tests/Feature/Mcp/ListCallsToolFeatureTest.php | 2 +-
tests/Feature/Mcp/McpTestHelpersTrait.php | 19 +++++++++-
tests/Unit/Component/ES/ChunkSizeTest.php | 50 +++++++++++++++++++++++++
tests/Unit/Component/ES/Processor/DTOs/SelectionListTest.php | 27 ++++++++++----
tests/Unit/Component/ES/Processor/TargetEntitiesSelectorTest.php | 39 +++++++++++---------
16 files changed, 557 insertions(+), 75 deletions(-)
create mode 100644 app/Component/ES/ChunkSize.php
create mode 100644 app/Mcp/Tools/GetMeTool.php
create mode 100644 database/migrations/2026_05_13_124153_create_mcp_feature_flag.php
create mode 100644 tests/Feature/Mcp/GetMeToolFeatureTest.php
create mode 100644 tests/Unit/Component/ES/ChunkSizeTest.php
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20613-allow-owner-role-on-team-setup) $ git push
Enumerating objects: 40, done.
Counting objects: 100% (34/34), done.
Delta compression using up to 8 threads
Compressing objects: 100% (18/18), done.
Writing objects: 100% (18/18), 1.58 KiB | 1.58 MiB/s, done.
Total 18 (delta 15), reused 0 (delta 0), pack-reused 0
remote: Resolving deltas: 100% (15/15), completed with 13 local objects.
To github.com:jiminny/app.git
190239dfd4..ec1b261264 JY-20613-allow-owner-role-on-team-setup -> JY-20613-allow-owner-role-on-team-setup
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20613-allow-owner-role-on-team-setup) $ gbr
* JY-20613-allow-owner-role-on-team-setup
pipedrive-sdk-poc
master
JY-20903-update_activity-stage-on-opportunity-change
JY-20904-fix-update-es-on-activity-command
JY-20891-improve-sms-text-relays
JY-20725-handle-HS-search-rate-limit
JY-20818-move-AJ-reports-to-separated-datadog-metric
JY-20773-fix-automated-reports-user-pilot-tracking
JY-20157-AJ-report-not-send-notification
JY-20508-notify-before-AJ-report-expiration
JY-20372-ai-reports-promotion-pages
JY-20352-sync-opportunities-without-a-local-owner-user-id-is-null
JY-20738-debug-AJ-tracking-UP
a
JY-18909-automated-reports-ask-jiminny
JY-20692-fix-integration-app-[API_KEY]
JY-20553-debug-crm-sync-delays
JY-20698-fix-SF-activity-types-on-new-playbook
JY-20543-AJ-report-tracking
JY-20384-handle-auto-sync-with-no-access-to-event-type
JY-20458-ask-jiminny-user-definitions
JY-19666-fix-import-contacts-account-association
JY-19666-HS-import-contacts-and-accounts-batch-job
JY-20458-Ask-Jiminny-Reports
JY-20200-batch-update-CRM-objects-Salesforce
JY-19666-HS-webhooks-add-contact-and-company
JY-20348-trigger-setup-DI-layout-on-team-creation
JY-20326-refactor-info-message-in-command
JY-20317-fix-auto-log-delay-issue-on-all-channels-disabled
JY-20312-remove-on-update-change-last-synced-at-crm-configurations
JY-20306-SF-skip-auto-sync-for-task-based-playbook
JY-20192-remove-deleted-team-from-saved-search-filters
JY-20197-import-opportunity-batch-job
JY-20293-enable-status-field-for-pipedrive-deals
JY-20191-remove-commands-interactive-prompts
JY-20118-change-default-sync-strategy
JY-20183-add-cache-on-auto-log-delay
JY-20197-add-import-opportunity-batch-job
20118-hs-opportunity-make-webhook-strategy-default
JY-20118-make-default-hs-opportunity-sync-strategy-webhook-based
JY-20196-handle-opportunity-without-note
JY-20118-improve-opportunity-import
JY-20189-handle-activity-search-on-deleted-groups
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20613-allow-owner-role-on-team-setup) $ co JY-20725-handle-HS-search-rate-limit
M .env.local
M config/logging.php
Switched to branch 'JY-20725-handle-HS-search-rate-limit'
Your branch is behind 'origin/JY-20725-handle-HS-search-rate-limit' by 439 commits, and can be fast-forwarded.
(use "git pull" to update your local branch)
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20725-handle-HS-search-rate-limit) $ git pull
Updating 0f3e438941..bc6a3fce6b
Fast-forward
.gitignore | 3 +-
.windsurfrules | 168 ++---
CLAUDE.md | 1 +
app/Component/ActivityAnalytics/Service/CalculateTalkTimeOffsetsFromTranscription.php | 24 +-
app/Component/AiActivityType/Services/AiActivityTypeEligibilityChecker.php | 28 +-
app/Component/AiAutomation/Actions/PrepareUpdateDtoAction.php | 32 +-
app/Component/AiAutomation/Services/CrmFillingEligibilityChecker.php | 47 ++
app/Component/AiAutomation/TestCrmAiPromptService.php | 14 +
app/Component/AiCallScoring/Services/AiCallScoringEligibilityChecker.php | 9 +
app/Component/ES/ElasticSearchDocumentPartialUpdater.php | 13 +-
app/Component/ES/ElasticSearchWorkerManager.php | 86 ---
app/Component/ES/Processor/Actions/LoadDocumentsAction.php | 80 +--
app/Component/ES/Processor/EntityQueryBuilder.php | 12 +-
app/Component/ES/Processor/TargetEntitiesSelector.php | 2 +-
app/Component/ES/Processor/Traits/SkipActivityTrait.php | 25 -
app/Component/ES/Repositories/EsResetActivityRepository.php | 11 +-
app/Component/ES/Worker/ActivityWorker.php | 73 --
app/Component/ES/Worker/EntityWorker.php | 44 --
app/Component/ES/Worker/WorkerAmount.php | 60 --
app/Component/ES/Worker/WorkerInterface.php | 15 -
app/Component/ElasticSearch/Contract/Searchable.php | 4 +
app/Component/Encoding/Job/AnalyzeTrackChannelsJob.php | 20 +-
app/Component/Encoding/Service/GenerateSpeechFromSilenceService.php | 85 ++-
app/Component/FFMpeg/Services/GetSpeechIntervalsService.php | 18 +-
app/Component/LanguageDetection/Services/FindSpeechTimeService.php | 22 +-
app/Component/Nudge/Job/ProcessOrganisationImmediateNudgesJob.php | 218 +++++-
app/Component/ParagraphBreaker/Services/TranscriptionParagraphsService.php | 4 +
app/Component/ParticipantSpeech/Services/ParticipantSpeechesCreator.php | 33 +
app/Component/ParticipantSpeech/Services/ParticipantSpeechesDeleter.php | 15 +
app/Component/ParticipantSpeech/Services/ParticipantSpeechesProvider.php | 51 +-
app/Component/ParticipantSpeech/Services/ParticipantSpeechesUploader.php | 36 +
app/Component/ProphetAi/Exceptions/InsufficientTranscriptException.php | 11 +
app/Component/Transcription/DTO/Http/Transcription/AssemblyAI/AssemblyAI/NoAssemblyIdException.php | 11 +
app/Component/Transcription/DTO/Http/Transcription/AssemblyAI/AssemblyAI/SuccessfulResponse.php | 6 +
app/Component/Transcription/DTO/Http/Transcription/TranscriptionIsNotCorrectFormatException.php | 11 +
app/Component/Transcription/Diarization/Services/GetNormalizedParticipantSpeechesService.php | 23 +-
app/Component/Transcription/Diarization/Source/MeetingBotSource.php | 16 +-
app/Component/Transcription/TranscriptionProcessor/TranscriptionProcessor.php | 3 +
app/Console/Commands/Activities/ActivityHardDeleteCommand.php | 4 +-
app/Console/Commands/Activities/Copy.php | 2 +
app/Console/Commands/Activities/SetupIntegration/TwilioSetS3RecordingCredentialsCommand.php | 119 ++++
app/Console/Commands/Activities/UpdateActivityElasticSearchDocumentCommand.php | 10 +-
app/Console/Commands/Crm/BackfillOpportunityUserFromAccountCommand.php | 126 ++++
app/Console/Commands/Elasticsearch/AsyncUpdateEsActivities.php | 19 -
app/Console/Commands/Elasticsearch/AsyncUpdateEsEntities.php | 50 +-
app/Console/Commands/Elasticsearch/ResetAsyncElasticSearchCommand.php | 30 +-
app/Console/Commands/GeckoExport/GeckoExportParticipantSpeechesCommand.php | 14 +-
app/Console/Commands/IssueMcpTokenCommand.php | 84 +++
app/Console/Commands/JiminnyDebugCommand.php | 7 +-
app/Console/Commands/Tracks/CleanupActivityTracksCommand.php | 2 +-
app/Console/Kernel.php | 6 +-
app/Contracts/Services/Calendar/CalendarTrait.php | 80 ++-
app/Events/AutomatedReports/AutomatedReportGenerated.php | 3 +
app/Http/Controllers/API/AiCallScoring/AiScorecardController.php | 7 +-
app/Http/Controllers/API/TeamAiAutomationController.php | 8 +
app/Http/Controllers/CustomerApi/CustomerApiController.php | 4 +-
app/Http/Controllers/Kiosk/ActivityController.php | 58 +-
app/Http/Controllers/Settings/PlaybookController.php | 15 +-
app/Http/Kernel.php | 23 +
app/Http/Middleware/McpAuditMiddleware.php | 156 ++++
app/Http/Middleware/McpTierMiddleware.php | 54 ++
app/Http/Requests/API/V2/ZapierUploadActivityRequest.php | 28 +-
app/Jobs/Activity/Import/ImportTwilioVideoSpeechesJob.php | 25 +-
app/Jobs/Activity/Import/IsActivityReadyForProcessingJob.php | 10 +-
app/Jobs/Calendar/SetupCalendarSync.php | 21 +-
app/Jobs/ImportRemoteTrackJob.php | 96 ++-
app/Jobs/Mailbox/EmailTextRelay.php | 15 +-
app/Mcp/Contracts/McpCallRepositoryInterface.php | 30 +
app/Mcp/DTO/ListCallsFilters.php | 29 +
app/Mcp/Errors/McpError.php | 123 ++++
app/Mcp/Repositories/McpActivityHydrator.php | 145 ++++
app/Mcp/Repositories/McpCallRepository.php | 84 +++
app/Mcp/Repositories/McpElasticCallRepository.php | 171 +++++
app/Mcp/Servers/JiminnyServer.php | 38 +
app/Mcp/Tools/ListCallsTool.php | 205 ++++++
app/Models/Activity.php | 10 +-
app/Models/Activity/Transcription.php | 17 +-
app/Models/ElasticSearch/OpportunityElasticSearchTrait.php | 5 +
app/Models/Participant.php | 1 +
app/Providers/AppServiceProvider.php | 22 +
app/Repositories/Crm/ContactRepository.php | 69 +-
app/Repositories/ParticipantSpeechRepository.php | 13 +-
app/Services/Activity/ParticipantsService.php | 19 +-
app/Services/Activity/Twilio/S3RecordingCredentialsService.php | 82 +++
app/Services/ActivityService.php | 21 +-
app/Services/Calendar/CalendarActivityService.php | 46 ++
app/Services/Calendar/Command/ImportParticipants.php | 1 +
app/Services/Calendar/Command/MapActivityData.php | 106 +--
app/Services/Calendar/GoogleCalendarService.php | 12 +-
app/Services/Crm/Close/Processor/OpportunityProcessor.php | 2 +-
app/Services/Crm/Close/Service.php | 22 +-
app/Services/Crm/Copper/Service.php | 12 +-
app/Services/Crm/Hubspot/Service.php | 154 +++-
app/Services/Crm/Hubspot/ServiceTraits/OpportunitySyncTrait.php | 88 ++-
app/Services/Crm/IntegrationApp/ServiceTraits/SyncCrmEntitiesTrait.php | 22 +-
app/Services/Crm/Pipedrive/Service.php | 17 +-
app/Services/Crm/Salesforce/Service.php | 42 +-
app/Services/Mail/Office/EmailApiClient.php | 129 +---
app/Services/RecallAI/Commands/ScheduleBotCommand.php | 39 +-
app/Services/RecallAI/RecallAIService.php | 22 +-
composer.json | 3 +-
composer.lock | 87 ++-
config/mcp.php | 23 +
database/migrations/2026_04_30_120000_create_mcp_audit_log_table.php | 36 +
docs/mcp/explorer/explorer.html | 697 ++++++++++++++++++
docs/mcp/explorer/explorer.template.html | 697 ++++++++++++++++++
docs/mcp/explorer/generate.js | 215 ++++++
docs/mcp/explorer/tool-explorer-meta.json | 11 +
docs/mcp/tools-list.json | 2536 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
docs/mcp/tools.md | 621 ++++++++++++++++
front-end/package.json | 4 +-
front-end/src/components/Settings/OrgSettings/AiAutomation/CrmFilling/TemplateFieldForm.vue | 28 +-
front-end/src/components/Settings/OrgSettings/Playbooks/AddEditPlaybook.vue | 10 +
front-end/src/components/playback/comments/ActivityComment.less | 10 +-
front-end/src/components/shared/PromptTester/PromptTester.vue | 12 +-
front-end/src/components/shared/__tests__/PromptTester.spec.js | 35 +
front-end/src/components/shared/modals/EntityPickerModal/__tests__/useEntitiesCache.spec.ts | 37 +
front-end/src/components/shared/modals/EntityPickerModal/useEntitiesCache.ts | 9 +
front-end/yarn.lock | 16 +-
phpstan-baseline.neon | 50 --
routes/api.php | 11 +
sonar-project.properties | 91 ++-
tests/Feature/Component/Nudge/ProcessOrganisationImmediateNudgesJobTest.php | 534 ++++++++++++++
tests/Feature/Jobs/ImportRemoteTrackJobTest.php | 283 +++++++-
tests/Feature/Mcp/IssueMcpTokenCommandTest.php | 53 ++
tests/Feature/Mcp/ListCallsToolElasticFeatureTest.php | 155 ++++
tests/Feature/Mcp/ListCallsToolFeatureTest.php | 352 ++++++++++
tests/Feature/Mcp/McpTestHelpersTrait.php | 77 ++
tests/Feature/Services/Team/TeamDeleteHandlers/Retention/RetentionRepositoryHandlerTest.php | 1 +
tests/Stubs/SentryStub.php | 18 +
tests/Unit/Component/ActivityAnalytics/Service/CalculateTalkTimeOffsetFromTranscriptionTest.php | 28 +-
tests/Unit/Component/AiActivityType/Services/AiActivityTypeEligibilityCheckerTest.php | 103 ++-
tests/Unit/Component/AiAutomation/Actions/PrepareUpdateDtoActionTest.php | 91 +++
tests/Unit/Component/AiAutomation/Services/CrmFillingEligibilityCheckerTest.php | 124 ++++
tests/Unit/Component/AiAutomation/TestCrmAiPromptServiceTest.php | 67 +-
tests/Unit/Component/AiCallScoring/Services/AiCallScoringEligibilityCheckerTest.php | 55 ++
tests/Unit/Component/ES/ElasticSearchWorkerManagerTest.php | 135 ----
tests/Unit/Component/ES/Processor/Actions/LoadDocumentsActionTest.php | 220 ++++++
tests/Unit/Component/ES/Processor/EntityQueryBuilderTest.php | 21 +-
tests/Unit/Component/ES/Processor/Traits/SkipActivityTraitTest.php | 51 --
tests/Unit/Component/ES/Worker/ActivityWorkerTest.php | 174 -----
tests/Unit/Component/ES/Worker/EntityWorkerTest.php | 97 ---
tests/Unit/Component/ES/Worker/WorkerAmountTest.php | 116 ---
tests/Unit/Component/Encoding/Job/AnalyzeTrackChannelsJobTest.php | 52 +-
tests/Unit/Component/Encoding/Service/GenerateSpeechFromSilenceServiceTest.php | 171 ++---
tests/Unit/Component/FFMpeg/Services/GetSpeechIntervalsTest.php | 36 +-
tests/Unit/Component/LanguageDetection/Services/FindSpeechTimeServiceTest.php | 20 +-
tests/Unit/Component/MobileSettings/MobileSettingsControllerTest.php | 5 +-
tests/Unit/Component/ParticipantSpeech/Services/ParticipantSpeechesCreatorTest.php | 75 ++
tests/Unit/Component/ParticipantSpeech/Services/ParticipantSpeechesDeleterTest.php | 63 ++
tests/Unit/Component/ParticipantSpeech/Services/ParticipantSpeechesProviderTest.php | 134 ++++
tests/Unit/Component/ParticipantSpeech/Services/ParticipantSpeechesUploaderTest.php | 57 ++
tests/Unit/Component/Transcription/Diarization/Services/GetNormalizedParticipantSpeechesServiceTest.php | 51 +-
tests/Unit/Component/Transcription/Diarization/Source/MeetingBotSourceTest.php | 29 +-
tests/Unit/Contracts/Services/Calendar/CalendarTraitTest.php | 58 +-
tests/Unit/Http/Controllers/Kiosk/ActivityControllerTest.php | 159 +++++
tests/Unit/Jobs/Activity/Import/ImportTwilioVideoSpeechesJobTest.php | 22 +-
tests/Unit/Jobs/Activity/Import/IsActivityReadyForProcessingJobTest.php | 26 +-
tests/Unit/Jobs/Calendar/SetupCalendarSyncTest.php | 25 -
tests/Unit/Services/Activity/ParticipantsServiceTest.php | 12 +-
tests/Unit/Services/Activity/Twilio/S3RecordingCredentialsServiceTest.php | 180 +++++
tests/Unit/Services/ActivityServiceTest.php | 132 ++++
tests/Unit/Services/Calendar/CalendarActivityServiceTest.php | 150 +++-
tests/Unit/Services/Calendar/Command/ImportParticipantsTest.php | 6 +-
tests/Unit/Services/Calendar/Command/MapActivityDataTest.php | 78 +-
tests/Unit/Services/Calendar/GoogleCalendarServiceTest.php | 116 +++
tests/Unit/Services/Crm/Close/ServiceTest.php | 165 +++++
tests/Unit/Services/Crm/Hubspot/ServiceTest.php | 272 ++++++-
tests/Unit/Services/Crm/Hubspot/ServiceTraits/OpportunitySyncTest.php | 25 +-
tests/Unit/Services/Crm/Hubspot/ServiceTraits/OpportunitySyncTraitMatchActivitiesTest.php | 3 +-
tests/Unit/Services/Crm/IntegrationApp/ServiceTraits/SyncCrmEntitiesTraitOpportunitiesTest.php | 40 ++
tests/Unit/Services/Crm/Pipedrive/ImportOpportunityMatchActivitiesTest.php | 2 +
tests/Unit/Services/Crm/Salesforce/ServiceTest.php | 139 ++++
tests/Unit/Services/Mail/Office/EmailApiClientTest.php | 195 ++---
tests/Unit/Services/RecallAI/RecallAIServiceTest.php | 24 +-
175 files changed, 12562 insertions(+), 2162 deletions(-)
create mode 120000 CLAUDE.md
create mode 100644 app/Component/AiAutomation/Services/CrmFillingEligibilityChecker.php
delete mode 100644 app/Component/ES/ElasticSearchWorkerManager.php
delete mode 100644 app/Component/ES/Processor/Traits/SkipActivityTrait.php
delete mode 100644 app/Component/ES/Worker/ActivityWorker.php
delete mode 100644 app/Component/ES/Worker/EntityWorker.php
delete mode 100644 app/Component/ES/Worker/WorkerAmount.php
delete mode 100644 app/Component/ES/Worker/WorkerInterface.php
create mode 100644 app/Component/ProphetAi/Exceptions/InsufficientTranscriptException.php
create mode 100644 app/Component/Transcription/DTO/Http/Transcription/AssemblyAI/AssemblyAI/NoAssemblyIdException.php
create mode 100644 app/Component/Transcription/DTO/Http/Transcription/TranscriptionIsNotCorrectFormatException.php
create mode 100644 app/Console/Commands/Activities/SetupIntegration/TwilioSetS3RecordingCredentialsCommand.php
create mode 100644 app/Console/Commands/Crm/BackfillOpportunityUserFromAccountCommand.php
delete mode 100644 app/Console/Commands/Elasticsearch/AsyncUpdateEsActivities.php
create mode 100644 app/Console/Commands/IssueMcpTokenCommand.php
create mode 100644 app/Http/Middleware/McpAuditMiddleware.php
create mode 100644 app/Http/Middleware/McpTierMiddleware.php
create mode 100644 app/Mcp/Contracts/McpCallRepositoryInterface.php
create mode 100644 app/Mcp/DTO/ListCallsFilters.php
create mode 100644 app/Mcp/Errors/McpError.php
create mode 100644 app/Mcp/Repositories/McpActivityHydrator.php
create mode 100644 app/Mcp/Repositories/McpCallRepository.php
create mode 100644 app/Mcp/Repositories/McpElasticCallRepository.php
create mode 100644 app/Mcp/Servers/JiminnyServer.php
create mode 100644 app/Mcp/Tools/ListCallsTool.php
create mode 100644 app/Services/Activity/Twilio/S3RecordingCredentialsService.php
create mode 100644 config/mcp.php
create mode 100644 database/migrations/2026_04_30_120000_create_mcp_audit_log_table.php
create mode 100644 docs/mcp/explorer/explorer.html
create mode 100644 docs/mcp/explorer/explorer.template.html
create mode 100644 docs/mcp/explorer/generate.js
create mode 100644 docs/mcp/explorer/tool-explorer-meta.json
create mode 100644 docs/mcp/tools-list.json
create mode 100644 docs/mcp/tools.md
create mode 100644 front-end/src/components/shared/modals/EntityPickerModal/__tests__/useEntitiesCache.spec.ts
create mode 100644 tests/Feature/Component/Nudge/ProcessOrganisationImmediateNudgesJobTest.php
create mode 100644 tests/Feature/Mcp/IssueMcpTokenCommandTest.php
create mode 100644 tests/Feature/Mcp/ListCallsToolElasticFeatureTest.php
create mode 100644 tests/Feature/Mcp/ListCallsToolFeatureTest.php
create mode 100644 tests/Feature/Mcp/McpTestHelpersTrait.php
create mode 100644 tests/Stubs/SentryStub.php
create mode 100644 tests/Unit/Component/AiAutomation/Services/CrmFillingEligibilityCheckerTest.php
delete mode 100644 tests/Unit/Component/ES/ElasticSearchWorkerManagerTest.php
create mode 100644 tests/Unit/Component/ES/Processor/Actions/LoadDocumentsActionTest.php
delete mode 100644 tests/Unit/Component/ES/Processor/Traits/SkipActivityTraitTest.php
delete mode 100644 tests/Unit/Component/ES/Worker/ActivityWorkerTest.php
delete mode 100644 tests/Unit/Component/ES/Worker/EntityWorkerTest.php
delete mode 100644 tests/Unit/Component/ES/Worker/WorkerAmountTest.php
create mode 100644 tests/Unit/Component/ParticipantSpeech/Services/ParticipantSpeechesCreatorTest.php
create mode 100644 tests/Unit/Http/Controllers/Kiosk/ActivityControllerTest.php
create mode 100644 tests/Unit/Services/Activity/Twilio/S3RecordingCredentialsServiceTest.php
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20725-handle-HS-search-rate-limit) $ git status
On branch master
Your branch is behind 'origin/master' by 114 commits, and can be fast-forwarded.
(use "git pull" to update your local branch)
Changes not staged for commit:
(use "git add <file>..." to update what will be committed)
(use "git restore <file>..." to discard changes in working directory)
modified: .env.local
modified: app/Component/SCIM/Constants.php
modified: app/Component/SCIM/ScimProvisioning.php
modified: app/Component/Twilio/Conference/ConferenceManager/SoftPhoneManager.php
modified: app/Console/Commands/JiminnyDebugCommand.php
modified: app/DTO/SCIM/AAD/Request/CoreUserRequest.php
modified: app/DTO/SCIM/AAD/Response/CoreUser.php
modified: app/Services/Telephony/TextMessagingService.php
modified: config/logging.php
Untracked files:
(use "git add <file>..." to include in what will be committed)
.env.nikilocal
.env.other
WEBHOOK_FILTERING_IMPLEMENTATION.md
app/Component/SCIM/Mutators/Attributes/User/RoleAttr.php
app/Console/Commands/Crm/Hubspot/SimulateWebhooksCommand.php
app/Console/Commands/Reports/CreateMockAskJiminnyReportResultCommand.php
app/Rules/ListenerRoleCannotHaveAdminOrManagerPermissionRule.php
ids.txt
public/favicon.ico
raw_sql_query.sql
tests/Unit/Component/SCIM/Mutators/Attributes/User/RoleAttrTest.php
tests/Unit/Policies/CanAccessAiReportsTest.php
tests/Unit/Rules/ListenerRoleCannotHaveAdminOrManagerPermissionRuleTest.php
no changes added to commit (use "git add" and/or "git commit -a")
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (master) $ git pull
remote: Enumerating objects: 306, done.
remote: Counting objects: 100% (299/299), done.
remote: Compressing objects: 100% (183/183), done.
remote: Total 306 (delta 213), reused 171 (delta 116), pack-reused 7 (from 1)
Receiving objects: 100% (306/306), 80.12 KiB | 1000.00 KiB/s, done.
Resolving deltas: 100% (213/213), completed with 53 local objects.
From github.com:jiminny/app
90bca4e4b2..5604af40cf master -> origin/master
4e7078fd8b..0b8343d179 JY-18091-upgrade-to-php-8-5 -> origin/JY-18091-upgrade-to-php-8-5
098eeaa087..d5a447e492 JY-20613-allow-owner-role-on-team-setup -> origin/JY-20613-allow-owner-role-on-team-setup
c3a76ace91..af65249d0f JY-20749-user-can-view-recorded-meetings -> origin/JY-20749-user-can-view-recorded-meetings
d94a285ae7..7ce96cb5fe JY-20808-low-priority-indexing-queue -> origin/JY-20808-low-priority-indexing-queue
* [new branch] JY-20842-remove-partial-updater -> origin/JY-20842-remove-partial-updater
* [new branch] JY-20920-fix-participant-flip -> origin/JY-20920-fix-participant-flip
* [new branch] secfix/npm-20260519 -> origin/secfix/npm-20260519
Updating cb4ebf0c36..5604af40cf
Fast-forward
app/Component/ES/ChunkSize.php | 54 +++++++++++++++++++
app/Component/ES/Processor/DTOs/SelectionList.php | 4 +-
app/Component/ES/Processor/TargetEntitiesSelector.php | 19 ++++---
app/Component/MeetingBot/Service/ParticipantMatcher.php | 46 ++++++++++++----
app/Exceptions/RateLimitException.php | 19 ++++++-
app/Http/Middleware/McpTierMiddleware.php | 27 ++--------
app/Jobs/Crm/MatchActivityCrmData.php | 47 ++++++++++++----
app/Jobs/Middleware/HandleHubspotRateLimit.php | 42 +++++++++++++++
app/Mcp/Servers/JiminnyServer.php | 2 +
app/Mcp/Tools/GetMeTool.php | 157 +++++++++++++++++++++++++++++++++++++++++++++++++++++
app/Models/Feature/FeatureEnum.php | 1 +
app/Services/Activity/HubSpot/ProviderResolver.php | 4 +-
app/Services/Activity/HubSpot/ProviderResolverInterface.php | 2 +-
app/Services/Activity/HubSpot/Providers/Provider.php | 2 +-
app/Services/Activity/HubSpot/Providers/ProviderKixie.php | 2 +-
app/Services/Activity/HubSpot/Providers/ProviderOrum.php | 2 +-
app/Services/Activity/HubSpot/Providers/ProviderTwilio.php | 2 +-
app/Services/Activity/HubSpot/Providers/ProviderTwilioFlex.php | 5 +-
app/Services/Activity/HubSpot/Service.php | 97 +++++++++++++++++++++++++++------
app/Services/Crm/Hubspot/Client.php | 132 +++++++++++++++++++++++++++++++++++++++++++++
app/Services/Crm/Hubspot/HubspotClientInterface.php | 15 ++++++
app/Services/Crm/Hubspot/Pagination/HubspotPaginationService.php | 21 ++++----
app/Services/Crm/Hubspot/Pagination/PaginationState.php | 2 +-
database/migrations/2026_05_13_124153_create_mcp_feature_flag.php | 25 +++++++++
tests/Feature/Mcp/GetMeToolFeatureTest.php | 140 +++++++++++++++++++++++++++++++++++++++++++++++
tests/Feature/Mcp/ListCallsToolFeatureTest.php | 2 +-
tests/Feature/Mcp/McpTestHelpersTrait.php | 19 ++++++-
tests/Unit/Component/ES/ChunkSizeTest.php | 50 +++++++++++++++++
tests/Unit/Component/ES/Processor/DTOs/SelectionListTest.php | 27 +++++++---
tests/Unit/Component/ES/Processor/TargetEntitiesSelectorTest.php | 39 ++++++++------
tests/Unit/Component/MeetingBot/Service/ParticipantMatcherTest.php | 68 ++++++++++++++++++++++-
tests/Unit/Exceptions/RateLimitExceptionTest.php | 56 +++++++++++++++++++
tests/Unit/Jobs/Crm/MatchActivityCrmDataTest.php | 8 +--
tests/Unit/Jobs/Middleware/HandleHubspotRateLimitTest.php | 151 +++++++++++++++++++++++++++++++++++++++++++++++++++
tests/Unit/Services/Activity/HubSpot/ServiceTest.php | 109 +++++++++++++++++++++++++++++++++++++
tests/Unit/Services/Crm/Hubspot/ClientTest.php | 250 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
tests/Unit/Services/Crm/Hubspot/Pagination/HubspotPaginationServiceTest.php | 283 +++++++++++++++++++++---------------------------------------------------------------------------
37 files changed, 1587 insertions(+), 344 deletions(-)
create mode 100644 app/Component/ES/ChunkSize.php
create mode 100644 app/Jobs/Middleware/HandleHubspotRateLimit.php
create mode 100644 app/Mcp/Tools/GetMeTool.php
create mode 100644 database/migrations/2026_05_13_124153_create_mcp_feature_flag.php
create mode 100644 tests/Feature/Mcp/GetMeToolFeatureTest.php
create mode 100644 tests/Unit/Component/ES/ChunkSizeTest.php
create mode 100644 tests/Unit/Exceptions/RateLimitExceptionTest.php
create mode 100644 tests/Unit/Jobs/Middleware/HandleHubspotRateLimitTest.php
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (master) $ git pull
Already up to date.
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (master) $ co -b JY-20676-delete-report-related-objects
Switched to a new branch 'JY-20676-delete-report-related-objects'
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20676-delete-report-related-objects) $ csfix
docker exec -it docker_lamp_1 ./vendor/bin/php-cs-fixer fix --config=.php-cs-fixer.dist.php -v --using-cache=no --diff
PHP CS Fixer 3.87.1 Alexander by Fabien Potencier, Dariusz Ruminski and contributors.
PHP runtime: 8.3.30
Running 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!
Loaded config default from ".php-cs-fixer.dist.php".
5690/5690 [▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓] 100%
1) app/Console/Commands/JiminnyDebugCommand.php (statement_indentation, blank_line_before_statement)
---------- begin diff ----------
--- /home/jiminny/app/Console/Commands/JiminnyDebugCommand.php
+++ /home/jiminny/app/Console/Commands/JiminnyDebugCommand.php
@@ -23,6 +23,7 @@
if ($action === 'redis-set') {
$this->testRedisSet();
+
return;
}
@@ -45,7 +46,7 @@
$ttl = 60;
try {
-// $result = Redis::set($testKey, $testValue, 'EX', $ttl, 'NX');
+ // $result = Redis::set($testKey, $testValue, 'EX', $ttl, 'NX');
$result = Redis::set($testKey, $testValue, ['nx', 'ex' => $ttl]);
if ($result) {
----------- end diff -----------
Fixed 1 of 5690 files i...
|
NULL
|
NULL
|
NULL
|
NULL
|
|
58094
|
2045
|
15
|
2026-05-19T11:35:16.382987+00:00
|
/Users/lukas/.screenpipe/data/data/2026-05-19/1779 /Users/lukas/.screenpipe/data/data/2026-05-19/1779190516382_m2.jpg...
|
iTerm2
|
APP (docker)
|
1
|
NULL
|
monitor_2
|
NULL
|
NULL
|
NULL
|
NULL
|
Last login: Mon May 18 09:17:28 on ttys007
Poetry Last login: Mon May 18 09:17:28 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 (pipedrive-sdk-poc) $ co master
error: Your local changes to the following files would be overwritten by checkout:
PIPEDRIVE_V2_MIGRATION_TICKETS.md
Please commit your changes or stash them before you switch branches.
Aborting
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (pipedrive-sdk-poc) $ git pull
remote: Enumerating objects: 1047, done.
remote: Counting objects: 100% (832/832), done.
remote: Compressing objects: 100% (298/298), done.
remote: Total 1047 (delta 634), reused 596 (delta 534), pack-reused 215 (from 3)
Receiving objects: 100% (1047/1047), 353.16 KiB | 1.56 MiB/s, done.
Resolving deltas: 100% (687/687), completed with 107 local objects.
From github.com:jiminny/app
907c54896c..34656c53ed pipedrive-sdk-poc -> origin/pipedrive-sdk-poc
03325ec50f..4e7078fd8b JY-18091-upgrade-to-php-8-5 -> origin/JY-18091-upgrade-to-php-8-5
e7d231e163..bc6a3fce6b JY-20725-handle-HS-search-rate-limit -> origin/JY-20725-handle-HS-search-rate-limit
* [new branch] JY-20749-user-can-view-recorded-meetings -> origin/JY-20749-user-can-view-recorded-meetings
98ca281a04..e0351be069 JY-20808-low-priority-indexing-queue -> origin/JY-20808-low-priority-indexing-queue
569abb5149..3906a9238a JY-20835-mcp-enable-users-to-get-a-list-of-deals-and-their-details -> origin/JY-20835-mcp-enable-users-to-get-a-list-of-deals-and-their-details
ad6c2a86e8..50eb6afba9 JY-20846-mcp-enable-the-ai-to-know-details-about-the-user -> origin/JY-20846-mcp-enable-the-ai-to-know-details-about-the-user
* [new branch] JY-20893-chunk-control-per-update-target -> origin/JY-20893-chunk-control-per-update-target
31c62924a5..cb4ebf0c36 master -> origin/master
Updating 907c54896c..34656c53ed
Fast-forward
PIPEDRIVE_V2_MIGRATION_TICKETS.md | 52 ++++++++++++++++++++++++++++++++++++++++++++++++++++
1 file changed, 52 insertions(+)
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (pipedrive-sdk-poc) $ co master
M .env.local
M config/logging.php
Switched to branch 'master'
Your branch is behind 'origin/master' by 31 commits, and can be fast-forwarded.
(use "git pull" to update your local branch)
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (master) $ git pull
Updating 31c62924a5..cb4ebf0c36
Fast-forward
app/Component/ES/Processor/Traits/SelectEntityListTrait.php | 20 ------
app/Services/Calendar/CalendarActivityService.php | 46 +++++++++++++
app/Services/Calendar/Command/MapActivityData.php | 106 +++-------------------------
docs/mcp/explorer/explorer.html | 104 +++++++++++++++++++++++++---
docs/mcp/explorer/explorer.template.html | 102 ++++++++++++++++++++++++---
docs/mcp/tools-list.json | 373 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++-------
docs/mcp/tools.md | 117 +++++++++++++++++++++++--------
tests/Unit/Component/ES/AsyncUpdateElasticSearchTest.php | 16 +----
tests/Unit/Component/ES/Listeners/UpdateMultipleTargetsListenerTest.php | 10 ---
tests/Unit/Component/ES/Listeners/UpdateSingleTargetListenerTest.php | 6 --
tests/Unit/Component/ES/Processor/TargetEntitiesSelectorTest.php | 9 ---
tests/Unit/Component/ES/Processor/Traits/SelectEntityListTraitTest.php | 15 ++--
tests/Unit/Component/ES/UpdateProcessManagerTest.php | 2 -
tests/Unit/Services/Calendar/CalendarActivityServiceTest.php | 150 ++++++++++++++++++++++++++++++++++++++--
tests/Unit/Services/Calendar/Command/MapActivityDataTest.php | 78 ++-------------------
15 files changed, 832 insertions(+), 322 deletions(-)
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (master) $ co -b JY-20613-allow-owner-role-on-team-setup
Switched to a new branch 'JY-20613-allow-owner-role-on-team-setup'
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20613-allow-owner-role-on-team-setup) $ csfix
docker exec -it docker_lamp_1 ./vendor/bin/php-cs-fixer fix --config=.php-cs-fixer.dist.php -v --using-cache=no --diff
PHP CS Fixer 3.87.1 Alexander by Fabien Potencier, Dariusz Ruminski and contributors.
PHP runtime: 8.3.30
Running 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!
Loaded config default from ".php-cs-fixer.dist.php".
5682/5682 [▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓] 100%
Fixed 0 of 5682 files in 56.978 seconds, 67.00 MB memory used
What's next:
Try Docker Debug for seamless, persistent debugging tools in any container or image → docker debug docker_lamp_1
Learn more at [URL_WITH_CREDENTIALS] ~/jiminny/app (JY-20613-allow-owner-role-on-team-setup) $ csfix
docker exec -it docker_lamp_1 ./vendor/bin/php-cs-fixer fix --config=.php-cs-fixer.dist.php -v --using-cache=no --diff
PHP CS Fixer 3.87.1 Alexander by Fabien Potencier, Dariusz Ruminski and contributors.
PHP runtime: 8.3.30
Running 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!
Loaded config default from ".php-cs-fixer.dist.php".
5682/5682 [▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓] 100%
Fixed 0 of 5682 files in 49.910 seconds, 60.00 MB memory used
What's next:
Try Docker Debug for seamless, persistent debugging tools in any container or image → docker debug docker_lamp_1
Learn more at [URL_WITH_CREDENTIALS] ~/jiminny/app (JY-20613-allow-owner-role-on-team-setup) $ git pull
remote: Enumerating objects: 248, done.
remote: Counting objects: 100% (128/128), done.
remote: Compressing objects: 100% (23/23), done.
remote: Total 59 (delta 43), reused 44 (delta 33), pack-reused 0 (from 0)
Unpacking objects: 100% (59/59), 10.48 KiB | 228.00 KiB/s, done.
From github.com:jiminny/app
b7df560451..190239dfd4 JY-20613-allow-owner-role-on-team-setup -> origin/JY-20613-allow-owner-role-on-team-setup
e0351be069..d94a285ae7 JY-20808-low-priority-indexing-queue -> origin/JY-20808-low-priority-indexing-queue
* [new branch] JY-20920-fix-participant-matcher -> origin/JY-20920-fix-participant-matcher
cb4ebf0c36..90bca4e4b2 master -> origin/master
Merge made by the 'ort' strategy.
app/Component/ES/ChunkSize.php | 54 +++++++++++++++++++++++++++
app/Component/ES/Processor/DTOs/SelectionList.php | 4 +-
app/Component/ES/Processor/TargetEntitiesSelector.php | 19 ++++++----
app/Http/Middleware/McpTierMiddleware.php | 27 +++-----------
app/Mcp/Servers/JiminnyServer.php | 2 +
app/Mcp/Tools/GetMeTool.php | 157 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
app/Models/Feature/FeatureEnum.php | 1 +
database/migrations/2026_05_13_124153_create_mcp_feature_flag.php | 25 +++++++++++++
front-end/src/components/Settings/Kiosk/modals/EditTeamModal/EditTeamModal.vue | 52 ++++++++++++++++++--------
front-end/src/components/Settings/Kiosk/modals/EditTeamModal/__tests__/EditTeamModal.spec.js | 14 +++++++
tests/Feature/Mcp/GetMeToolFeatureTest.php | 140 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
tests/Feature/Mcp/ListCallsToolFeatureTest.php | 2 +-
tests/Feature/Mcp/McpTestHelpersTrait.php | 19 +++++++++-
tests/Unit/Component/ES/ChunkSizeTest.php | 50 +++++++++++++++++++++++++
tests/Unit/Component/ES/Processor/DTOs/SelectionListTest.php | 27 ++++++++++----
tests/Unit/Component/ES/Processor/TargetEntitiesSelectorTest.php | 39 +++++++++++---------
16 files changed, 557 insertions(+), 75 deletions(-)
create mode 100644 app/Component/ES/ChunkSize.php
create mode 100644 app/Mcp/Tools/GetMeTool.php
create mode 100644 database/migrations/2026_05_13_124153_create_mcp_feature_flag.php
create mode 100644 tests/Feature/Mcp/GetMeToolFeatureTest.php
create mode 100644 tests/Unit/Component/ES/ChunkSizeTest.php
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20613-allow-owner-role-on-team-setup) $ git push
Enumerating objects: 40, done.
Counting objects: 100% (34/34), done.
Delta compression using up to 8 threads
Compressing objects: 100% (18/18), done.
Writing objects: 100% (18/18), 1.58 KiB | 1.58 MiB/s, done.
Total 18 (delta 15), reused 0 (delta 0), pack-reused 0
remote: Resolving deltas: 100% (15/15), completed with 13 local objects.
To github.com:jiminny/app.git
190239dfd4..ec1b261264 JY-20613-allow-owner-role-on-team-setup -> JY-20613-allow-owner-role-on-team-setup
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20613-allow-owner-role-on-team-setup) $ gbr
* JY-20613-allow-owner-role-on-team-setup
pipedrive-sdk-poc
master
JY-20903-update_activity-stage-on-opportunity-change
JY-20904-fix-update-es-on-activity-command
JY-20891-improve-sms-text-relays
JY-20725-handle-HS-search-rate-limit
JY-20818-move-AJ-reports-to-separated-datadog-metric
JY-20773-fix-automated-reports-user-pilot-tracking
JY-20157-AJ-report-not-send-notification
JY-20508-notify-before-AJ-report-expiration
JY-20372-ai-reports-promotion-pages
JY-20352-sync-opportunities-without-a-local-owner-user-id-is-null
JY-20738-debug-AJ-tracking-UP
a
JY-18909-automated-reports-ask-jiminny
JY-20692-fix-integration-app-[API_KEY]
JY-20553-debug-crm-sync-delays
JY-20698-fix-SF-activity-types-on-new-playbook
JY-20543-AJ-report-tracking
JY-20384-handle-auto-sync-with-no-access-to-event-type
JY-20458-ask-jiminny-user-definitions
JY-19666-fix-import-contacts-account-association
JY-19666-HS-import-contacts-and-accounts-batch-job
JY-20458-Ask-Jiminny-Reports
JY-20200-batch-update-CRM-objects-Salesforce
JY-19666-HS-webhooks-add-contact-and-company
JY-20348-trigger-setup-DI-layout-on-team-creation
JY-20326-refactor-info-message-in-command
JY-20317-fix-auto-log-delay-issue-on-all-channels-disabled
JY-20312-remove-on-update-change-last-synced-at-crm-configurations
JY-20306-SF-skip-auto-sync-for-task-based-playbook
JY-20192-remove-deleted-team-from-saved-search-filters
JY-20197-import-opportunity-batch-job
JY-20293-enable-status-field-for-pipedrive-deals
JY-20191-remove-commands-interactive-prompts
JY-20118-change-default-sync-strategy
JY-20183-add-cache-on-auto-log-delay
JY-20197-add-import-opportunity-batch-job
20118-hs-opportunity-make-webhook-strategy-default
JY-20118-make-default-hs-opportunity-sync-strategy-webhook-based
JY-20196-handle-opportunity-without-note
JY-20118-improve-opportunity-import
JY-20189-handle-activity-search-on-deleted-groups
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20613-allow-owner-role-on-team-setup) $ co JY-20725-handle-HS-search-rate-limit
M .env.local
M config/logging.php
Switched to branch 'JY-20725-handle-HS-search-rate-limit'
Your branch is behind 'origin/JY-20725-handle-HS-search-rate-limit' by 439 commits, and can be fast-forwarded.
(use "git pull" to update your local branch)
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20725-handle-HS-search-rate-limit) $ git pull
Updating 0f3e438941..bc6a3fce6b
Fast-forward
.gitignore | 3 +-
.windsurfrules | 168 ++---
CLAUDE.md | 1 +
app/Component/ActivityAnalytics/Service/CalculateTalkTimeOffsetsFromTranscription.php | 24 +-
app/Component/AiActivityType/Services/AiActivityTypeEligibilityChecker.php | 28 +-
app/Component/AiAutomation/Actions/PrepareUpdateDtoAction.php | 32 +-
app/Component/AiAutomation/Services/CrmFillingEligibilityChecker.php | 47 ++
app/Component/AiAutomation/TestCrmAiPromptService.php | 14 +
app/Component/AiCallScoring/Services/AiCallScoringEligibilityChecker.php | 9 +
app/Component/ES/ElasticSearchDocumentPartialUpdater.php | 13 +-
app/Component/ES/ElasticSearchWorkerManager.php | 86 ---
app/Component/ES/Processor/Actions/LoadDocumentsAction.php | 80 +--
app/Component/ES/Processor/EntityQueryBuilder.php | 12 +-
app/Component/ES/Processor/TargetEntitiesSelector.php | 2 +-
app/Component/ES/Processor/Traits/SkipActivityTrait.php | 25 -
app/Component/ES/Repositories/EsResetActivityRepository.php | 11 +-
app/Component/ES/Worker/ActivityWorker.php | 73 --
app/Component/ES/Worker/EntityWorker.php | 44 --
app/Component/ES/Worker/WorkerAmount.php | 60 --
app/Component/ES/Worker/WorkerInterface.php | 15 -
app/Component/ElasticSearch/Contract/Searchable.php | 4 +
app/Component/Encoding/Job/AnalyzeTrackChannelsJob.php | 20 +-
app/Component/Encoding/Service/GenerateSpeechFromSilenceService.php | 85 ++-
app/Component/FFMpeg/Services/GetSpeechIntervalsService.php | 18 +-
app/Component/LanguageDetection/Services/FindSpeechTimeService.php | 22 +-
app/Component/Nudge/Job/ProcessOrganisationImmediateNudgesJob.php | 218 +++++-
app/Component/ParagraphBreaker/Services/TranscriptionParagraphsService.php | 4 +
app/Component/ParticipantSpeech/Services/ParticipantSpeechesCreator.php | 33 +
app/Component/ParticipantSpeech/Services/ParticipantSpeechesDeleter.php | 15 +
app/Component/ParticipantSpeech/Services/ParticipantSpeechesProvider.php | 51 +-
app/Component/ParticipantSpeech/Services/ParticipantSpeechesUploader.php | 36 +
app/Component/ProphetAi/Exceptions/InsufficientTranscriptException.php | 11 +
app/Component/Transcription/DTO/Http/Transcription/AssemblyAI/AssemblyAI/NoAssemblyIdException.php | 11 +
app/Component/Transcription/DTO/Http/Transcription/AssemblyAI/AssemblyAI/SuccessfulResponse.php | 6 +
app/Component/Transcription/DTO/Http/Transcription/TranscriptionIsNotCorrectFormatException.php | 11 +
app/Component/Transcription/Diarization/Services/GetNormalizedParticipantSpeechesService.php | 23 +-
app/Component/Transcription/Diarization/Source/MeetingBotSource.php | 16 +-
app/Component/Transcription/TranscriptionProcessor/TranscriptionProcessor.php | 3 +
app/Console/Commands/Activities/ActivityHardDeleteCommand.php | 4 +-
app/Console/Commands/Activities/Copy.php | 2 +
app/Console/Commands/Activities/SetupIntegration/TwilioSetS3RecordingCredentialsCommand.php | 119 ++++
app/Console/Commands/Activities/UpdateActivityElasticSearchDocumentCommand.php | 10 +-
app/Console/Commands/Crm/BackfillOpportunityUserFromAccountCommand.php | 126 ++++
app/Console/Commands/Elasticsearch/AsyncUpdateEsActivities.php | 19 -
app/Console/Commands/Elasticsearch/AsyncUpdateEsEntities.php | 50 +-
app/Console/Commands/Elasticsearch/ResetAsyncElasticSearchCommand.php | 30 +-
app/Console/Commands/GeckoExport/GeckoExportParticipantSpeechesCommand.php | 14 +-
app/Console/Commands/IssueMcpTokenCommand.php | 84 +++
app/Console/Commands/JiminnyDebugCommand.php | 7 +-
app/Console/Commands/Tracks/CleanupActivityTracksCommand.php | 2 +-
app/Console/Kernel.php | 6 +-
app/Contracts/Services/Calendar/CalendarTrait.php | 80 ++-
app/Events/AutomatedReports/AutomatedReportGenerated.php | 3 +
app/Http/Controllers/API/AiCallScoring/AiScorecardController.php | 7 +-
app/Http/Controllers/API/TeamAiAutomationController.php | 8 +
app/Http/Controllers/CustomerApi/CustomerApiController.php | 4 +-
app/Http/Controllers/Kiosk/ActivityController.php | 58 +-
app/Http/Controllers/Settings/PlaybookController.php | 15 +-
app/Http/Kernel.php | 23 +
app/Http/Middleware/McpAuditMiddleware.php | 156 ++++
app/Http/Middleware/McpTierMiddleware.php | 54 ++
app/Http/Requests/API/V2/ZapierUploadActivityRequest.php | 28 +-
app/Jobs/Activity/Import/ImportTwilioVideoSpeechesJob.php | 25 +-
app/Jobs/Activity/Import/IsActivityReadyForProcessingJob.php | 10 +-
app/Jobs/Calendar/SetupCalendarSync.php | 21 +-
app/Jobs/ImportRemoteTrackJob.php | 96 ++-
app/Jobs/Mailbox/EmailTextRelay.php | 15 +-
app/Mcp/Contracts/McpCallRepositoryInterface.php | 30 +
app/Mcp/DTO/ListCallsFilters.php | 29 +
app/Mcp/Errors/McpError.php | 123 ++++
app/Mcp/Repositories/McpActivityHydrator.php | 145 ++++
app/Mcp/Repositories/McpCallRepository.php | 84 +++
app/Mcp/Repositories/McpElasticCallRepository.php | 171 +++++
app/Mcp/Servers/JiminnyServer.php | 38 +
app/Mcp/Tools/ListCallsTool.php | 205 ++++++
app/Models/Activity.php | 10 +-
app/Models/Activity/Transcription.php | 17 +-
app/Models/ElasticSearch/OpportunityElasticSearchTrait.php | 5 +
app/Models/Participant.php | 1 +
app/Providers/AppServiceProvider.php | 22 +
app/Repositories/Crm/ContactRepository.php | 69 +-
app/Repositories/ParticipantSpeechRepository.php | 13 +-
app/Services/Activity/ParticipantsService.php | 19 +-
app/Services/Activity/Twilio/S3RecordingCredentialsService.php | 82 +++
app/Services/ActivityService.php | 21 +-
app/Services/Calendar/CalendarActivityService.php | 46 ++
app/Services/Calendar/Command/ImportParticipants.php | 1 +
app/Services/Calendar/Command/MapActivityData.php | 106 +--
app/Services/Calendar/GoogleCalendarService.php | 12 +-
app/Services/Crm/Close/Processor/OpportunityProcessor.php | 2 +-
app/Services/Crm/Close/Service.php | 22 +-
app/Services/Crm/Copper/Service.php | 12 +-
app/Services/Crm/Hubspot/Service.php | 154 +++-
app/Services/Crm/Hubspot/ServiceTraits/OpportunitySyncTrait.php | 88 ++-
app/Services/Crm/IntegrationApp/ServiceTraits/SyncCrmEntitiesTrait.php | 22 +-
app/Services/Crm/Pipedrive/Service.php | 17 +-
app/Services/Crm/Salesforce/Service.php | 42 +-
app/Services/Mail/Office/EmailApiClient.php | 129 +---
app/Services/RecallAI/Commands/ScheduleBotCommand.php | 39 +-
app/Services/RecallAI/RecallAIService.php | 22 +-
composer.json | 3 +-
composer.lock | 87 ++-
config/mcp.php | 23 +
database/migrations/2026_04_30_120000_create_mcp_audit_log_table.php | 36 +
docs/mcp/explorer/explorer.html | 697 ++++++++++++++++++
docs/mcp/explorer/explorer.template.html | 697 ++++++++++++++++++
docs/mcp/explorer/generate.js | 215 ++++++
docs/mcp/explorer/tool-explorer-meta.json | 11 +
docs/mcp/tools-list.json | 2536 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
docs/mcp/tools.md | 621 ++++++++++++++++
front-end/package.json | 4 +-
front-end/src/components/Settings/OrgSettings/AiAutomation/CrmFilling/TemplateFieldForm.vue | 28 +-
front-end/src/components/Settings/OrgSettings/Playbooks/AddEditPlaybook.vue | 10 +
front-end/src/components/playback/comments/ActivityComment.less | 10 +-
front-end/src/components/shared/PromptTester/PromptTester.vue | 12 +-
front-end/src/components/shared/__tests__/PromptTester.spec.js | 35 +
front-end/src/components/shared/modals/EntityPickerModal/__tests__/useEntitiesCache.spec.ts | 37 +
front-end/src/components/shared/modals/EntityPickerModal/useEntitiesCache.ts | 9 +
front-end/yarn.lock | 16 +-
phpstan-baseline.neon | 50 --
routes/api.php | 11 +
sonar-project.properties | 91 ++-
tests/Feature/Component/Nudge/ProcessOrganisationImmediateNudgesJobTest.php | 534 ++++++++++++++
tests/Feature/Jobs/ImportRemoteTrackJobTest.php | 283 +++++++-
tests/Feature/Mcp/IssueMcpTokenCommandTest.php | 53 ++
tests/Feature/Mcp/ListCallsToolElasticFeatureTest.php | 155 ++++
tests/Feature/Mcp/ListCallsToolFeatureTest.php | 352 ++++++++++
tests/Feature/Mcp/McpTestHelpersTrait.php | 77 ++
tests/Feature/Services/Team/TeamDeleteHandlers/Retention/RetentionRepositoryHandlerTest.php | 1 +
tests/Stubs/SentryStub.php | 18 +
tests/Unit/Component/ActivityAnalytics/Service/CalculateTalkTimeOffsetFromTranscriptionTest.php | 28 +-
tests/Unit/Component/AiActivityType/Services/AiActivityTypeEligibilityCheckerTest.php | 103 ++-
tests/Unit/Component/AiAutomation/Actions/PrepareUpdateDtoActionTest.php | 91 +++
tests/Unit/Component/AiAutomation/Services/CrmFillingEligibilityCheckerTest.php | 124 ++++
tests/Unit/Component/AiAutomation/TestCrmAiPromptServiceTest.php | 67 +-
tests/Unit/Component/AiCallScoring/Services/AiCallScoringEligibilityCheckerTest.php | 55 ++
tests/Unit/Component/ES/ElasticSearchWorkerManagerTest.php | 135 ----
tests/Unit/Component/ES/Processor/Actions/LoadDocumentsActionTest.php | 220 ++++++
tests/Unit/Component/ES/Processor/EntityQueryBuilderTest.php | 21 +-
tests/Unit/Component/ES/Processor/Traits/SkipActivityTraitTest.php | 51 --
tests/Unit/Component/ES/Worker/ActivityWorkerTest.php | 174 -----
tests/Unit/Component/ES/Worker/EntityWorkerTest.php | 97 ---
tests/Unit/Component/ES/Worker/WorkerAmountTest.php | 116 ---
tests/Unit/Component/Encoding/Job/AnalyzeTrackChannelsJobTest.php | 52 +-
tests/Unit/Component/Encoding/Service/GenerateSpeechFromSilenceServiceTest.php | 171 ++---
tests/Unit/Component/FFMpeg/Services/GetSpeechIntervalsTest.php | 36 +-
tests/Unit/Component/LanguageDetection/Services/FindSpeechTimeServiceTest.php | 20 +-
tests/Unit/Component/MobileSettings/MobileSettingsControllerTest.php | 5 +-
tests/Unit/Component/ParticipantSpeech/Services/ParticipantSpeechesCreatorTest.php | 75 ++
tests/Unit/Component/ParticipantSpeech/Services/ParticipantSpeechesDeleterTest.php | 63 ++
tests/Unit/Component/ParticipantSpeech/Services/ParticipantSpeechesProviderTest.php | 134 ++++
tests/Unit/Component/ParticipantSpeech/Services/ParticipantSpeechesUploaderTest.php | 57 ++
tests/Unit/Component/Transcription/Diarization/Services/GetNormalizedParticipantSpeechesServiceTest.php | 51 +-
tests/Unit/Component/Transcription/Diarization/Source/MeetingBotSourceTest.php | 29 +-
tests/Unit/Contracts/Services/Calendar/CalendarTraitTest.php | 58 +-
tests/Unit/Http/Controllers/Kiosk/ActivityControllerTest.php | 159 +++++
tests/Unit/Jobs/Activity/Import/ImportTwilioVideoSpeechesJobTest.php | 22 +-
tests/Unit/Jobs/Activity/Import/IsActivityReadyForProcessingJobTest.php | 26 +-
tests/Unit/Jobs/Calendar/SetupCalendarSyncTest.php | 25 -
tests/Unit/Services/Activity/ParticipantsServiceTest.php | 12 +-
tests/Unit/Services/Activity/Twilio/S3RecordingCredentialsServiceTest.php | 180 +++++
tests/Unit/Services/ActivityServiceTest.php | 132 ++++
tests/Unit/Services/Calendar/CalendarActivityServiceTest.php | 150 +++-
tests/Unit/Services/Calendar/Command/ImportParticipantsTest.php | 6 +-
tests/Unit/Services/Calendar/Command/MapActivityDataTest.php | 78 +-
tests/Unit/Services/Calendar/GoogleCalendarServiceTest.php | 116 +++
tests/Unit/Services/Crm/Close/ServiceTest.php | 165 +++++
tests/Unit/Services/Crm/Hubspot/ServiceTest.php | 272 ++++++-
tests/Unit/Services/Crm/Hubspot/ServiceTraits/OpportunitySyncTest.php | 25 +-
tests/Unit/Services/Crm/Hubspot/ServiceTraits/OpportunitySyncTraitMatchActivitiesTest.php | 3 +-
tests/Unit/Services/Crm/IntegrationApp/ServiceTraits/SyncCrmEntitiesTraitOpportunitiesTest.php | 40 ++
tests/Unit/Services/Crm/Pipedrive/ImportOpportunityMatchActivitiesTest.php | 2 +
tests/Unit/Services/Crm/Salesforce/ServiceTest.php | 139 ++++
tests/Unit/Services/Mail/Office/EmailApiClientTest.php | 195 ++---
tests/Unit/Services/RecallAI/RecallAIServiceTest.php | 24 +-
175 files changed, 12562 insertions(+), 2162 deletions(-)
create mode 120000 CLAUDE.md
create mode 100644 app/Component/AiAutomation/Services/CrmFillingEligibilityChecker.php
delete mode 100644 app/Component/ES/ElasticSearchWorkerManager.php
delete mode 100644 app/Component/ES/Processor/Traits/SkipActivityTrait.php
delete mode 100644 app/Component/ES/Worker/ActivityWorker.php
delete mode 100644 app/Component/ES/Worker/EntityWorker.php
delete mode 100644 app/Component/ES/Worker/WorkerAmount.php
delete mode 100644 app/Component/ES/Worker/WorkerInterface.php
create mode 100644 app/Component/ProphetAi/Exceptions/InsufficientTranscriptException.php
create mode 100644 app/Component/Transcription/DTO/Http/Transcription/AssemblyAI/AssemblyAI/NoAssemblyIdException.php
create mode 100644 app/Component/Transcription/DTO/Http/Transcription/TranscriptionIsNotCorrectFormatException.php
create mode 100644 app/Console/Commands/Activities/SetupIntegration/TwilioSetS3RecordingCredentialsCommand.php
create mode 100644 app/Console/Commands/Crm/BackfillOpportunityUserFromAccountCommand.php
delete mode 100644 app/Console/Commands/Elasticsearch/AsyncUpdateEsActivities.php
create mode 100644 app/Console/Commands/IssueMcpTokenCommand.php
create mode 100644 app/Http/Middleware/McpAuditMiddleware.php
create mode 100644 app/Http/Middleware/McpTierMiddleware.php
create mode 100644 app/Mcp/Contracts/McpCallRepositoryInterface.php
create mode 100644 app/Mcp/DTO/ListCallsFilters.php
create mode 100644 app/Mcp/Errors/McpError.php
create mode 100644 app/Mcp/Repositories/McpActivityHydrator.php
create mode 100644 app/Mcp/Repositories/McpCallRepository.php
create mode 100644 app/Mcp/Repositories/McpElasticCallRepository.php
create mode 100644 app/Mcp/Servers/JiminnyServer.php
create mode 100644 app/Mcp/Tools/ListCallsTool.php
create mode 100644 app/Services/Activity/Twilio/S3RecordingCredentialsService.php
create mode 100644 config/mcp.php
create mode 100644 database/migrations/2026_04_30_120000_create_mcp_audit_log_table.php
create mode 100644 docs/mcp/explorer/explorer.html
create mode 100644 docs/mcp/explorer/explorer.template.html
create mode 100644 docs/mcp/explorer/generate.js
create mode 100644 docs/mcp/explorer/tool-explorer-meta.json
create mode 100644 docs/mcp/tools-list.json
create mode 100644 docs/mcp/tools.md
create mode 100644 front-end/src/components/shared/modals/EntityPickerModal/__tests__/useEntitiesCache.spec.ts
create mode 100644 tests/Feature/Component/Nudge/ProcessOrganisationImmediateNudgesJobTest.php
create mode 100644 tests/Feature/Mcp/IssueMcpTokenCommandTest.php
create mode 100644 tests/Feature/Mcp/ListCallsToolElasticFeatureTest.php
create mode 100644 tests/Feature/Mcp/ListCallsToolFeatureTest.php
create mode 100644 tests/Feature/Mcp/McpTestHelpersTrait.php
create mode 100644 tests/Stubs/SentryStub.php
create mode 100644 tests/Unit/Component/AiAutomation/Services/CrmFillingEligibilityCheckerTest.php
delete mode 100644 tests/Unit/Component/ES/ElasticSearchWorkerManagerTest.php
create mode 100644 tests/Unit/Component/ES/Processor/Actions/LoadDocumentsActionTest.php
delete mode 100644 tests/Unit/Component/ES/Processor/Traits/SkipActivityTraitTest.php
delete mode 100644 tests/Unit/Component/ES/Worker/ActivityWorkerTest.php
delete mode 100644 tests/Unit/Component/ES/Worker/EntityWorkerTest.php
delete mode 100644 tests/Unit/Component/ES/Worker/WorkerAmountTest.php
create mode 100644 tests/Unit/Component/ParticipantSpeech/Services/ParticipantSpeechesCreatorTest.php
create mode 100644 tests/Unit/Http/Controllers/Kiosk/ActivityControllerTest.php
create mode 100644 tests/Unit/Services/Activity/Twilio/S3RecordingCredentialsServiceTest.php
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20725-handle-HS-search-rate-limit) $ git status
On branch master
Your branch is behind 'origin/master' by 114 commits, and can be fast-forwarded.
(use "git pull" to update your local branch)
Changes not staged for commit:
(use "git add <file>..." to update what will be committed)
(use "git restore <file>..." to discard changes in working directory)
modified: .env.local
modified: app/Component/SCIM/Constants.php
modified: app/Component/SCIM/ScimProvisioning.php
modified: app/Component/Twilio/Conference/ConferenceManager/SoftPhoneManager.php
modified: app/Console/Commands/JiminnyDebugCommand.php
modified: app/DTO/SCIM/AAD/Request/CoreUserRequest.php
modified: app/DTO/SCIM/AAD/Response/CoreUser.php
modified: app/Services/Telephony/TextMessagingService.php
modified: config/logging.php
Untracked files:
(use "git add <file>..." to include in what will be committed)
.env.nikilocal
.env.other
WEBHOOK_FILTERING_IMPLEMENTATION.md
app/Component/SCIM/Mutators/Attributes/User/RoleAttr.php
app/Console/Commands/Crm/Hubspot/SimulateWebhooksCommand.php
app/Console/Commands/Reports/CreateMockAskJiminnyReportResultCommand.php
app/Rules/ListenerRoleCannotHaveAdminOrManagerPermissionRule.php
ids.txt
public/favicon.ico
raw_sql_query.sql
tests/Unit/Component/SCIM/Mutators/Attributes/User/RoleAttrTest.php
tests/Unit/Policies/CanAccessAiReportsTest.php
tests/Unit/Rules/ListenerRoleCannotHaveAdminOrManagerPermissionRuleTest.php
no changes added to commit (use "git add" and/or "git commit -a")
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (master) $ git pull
remote: Enumerating objects: 306, done.
remote: Counting objects: 100% (299/299), done.
remote: Compressing objects: 100% (183/183), done.
remote: Total 306 (delta 213), reused 171 (delta 116), pack-reused 7 (from 1)
Receiving objects: 100% (306/306), 80.12 KiB | 1000.00 KiB/s, done.
Resolving deltas: 100% (213/213), completed with 53 local objects.
From github.com:jiminny/app
90bca4e4b2..5604af40cf master -> origin/master
4e7078fd8b..0b8343d179 JY-18091-upgrade-to-php-8-5 -> origin/JY-18091-upgrade-to-php-8-5
098eeaa087..d5a447e492 JY-20613-allow-owner-role-on-team-setup -> origin/JY-20613-allow-owner-role-on-team-setup
c3a76ace91..af65249d0f JY-20749-user-can-view-recorded-meetings -> origin/JY-20749-user-can-view-recorded-meetings
d94a285ae7..7ce96cb5fe JY-20808-low-priority-indexing-queue -> origin/JY-20808-low-priority-indexing-queue
* [new branch] JY-20842-remove-partial-updater -> origin/JY-20842-remove-partial-updater
* [new branch] JY-20920-fix-participant-flip -> origin/JY-20920-fix-participant-flip
* [new branch] secfix/npm-20260519 -> origin/secfix/npm-20260519
Updating cb4ebf0c36..5604af40cf
Fast-forward
app/Component/ES/ChunkSize.php | 54 +++++++++++++++++++
app/Component/ES/Processor/DTOs/SelectionList.php | 4 +-
app/Component/ES/Processor/TargetEntitiesSelector.php | 19 ++++---
app/Component/MeetingBot/Service/ParticipantMatcher.php | 46 ++++++++++++----
app/Exceptions/RateLimitException.php | 19 ++++++-
app/Http/Middleware/McpTierMiddleware.php | 27 ++--------
app/Jobs/Crm/MatchActivityCrmData.php | 47 ++++++++++++----
app/Jobs/Middleware/HandleHubspotRateLimit.php | 42 +++++++++++++++
app/Mcp/Servers/JiminnyServer.php | 2 +
app/Mcp/Tools/GetMeTool.php | 157 +++++++++++++++++++++++++++++++++++++++++++++++++++++
app/Models/Feature/FeatureEnum.php | 1 +
app/Services/Activity/HubSpot/ProviderResolver.php | 4 +-
app/Services/Activity/HubSpot/ProviderResolverInterface.php | 2 +-
app/Services/Activity/HubSpot/Providers/Provider.php | 2 +-
app/Services/Activity/HubSpot/Providers/ProviderKixie.php | 2 +-
app/Services/Activity/HubSpot/Providers/ProviderOrum.php | 2 +-
app/Services/Activity/HubSpot/Providers/ProviderTwilio.php | 2 +-
app/Services/Activity/HubSpot/Providers/ProviderTwilioFlex.php | 5 +-
app/Services/Activity/HubSpot/Service.php | 97 +++++++++++++++++++++++++++------
app/Services/Crm/Hubspot/Client.php | 132 +++++++++++++++++++++++++++++++++++++++++++++
app/Services/Crm/Hubspot/HubspotClientInterface.php | 15 ++++++
app/Services/Crm/Hubspot/Pagination/HubspotPaginationService.php | 21 ++++----
app/Services/Crm/Hubspot/Pagination/PaginationState.php | 2 +-
database/migrations/2026_05_13_124153_create_mcp_feature_flag.php | 25 +++++++++
tests/Feature/Mcp/GetMeToolFeatureTest.php | 140 +++++++++++++++++++++++++++++++++++++++++++++++
tests/Feature/Mcp/ListCallsToolFeatureTest.php | 2 +-
tests/Feature/Mcp/McpTestHelpersTrait.php | 19 ++++++-
tests/Unit/Component/ES/ChunkSizeTest.php | 50 +++++++++++++++++
tests/Unit/Component/ES/Processor/DTOs/SelectionListTest.php | 27 +++++++---
tests/Unit/Component/ES/Processor/TargetEntitiesSelectorTest.php | 39 ++++++++------
tests/Unit/Component/MeetingBot/Service/ParticipantMatcherTest.php | 68 ++++++++++++++++++++++-
tests/Unit/Exceptions/RateLimitExceptionTest.php | 56 +++++++++++++++++++
tests/Unit/Jobs/Crm/MatchActivityCrmDataTest.php | 8 +--
tests/Unit/Jobs/Middleware/HandleHubspotRateLimitTest.php | 151 +++++++++++++++++++++++++++++++++++++++++++++++++++
tests/Unit/Services/Activity/HubSpot/ServiceTest.php | 109 +++++++++++++++++++++++++++++++++++++
tests/Unit/Services/Crm/Hubspot/ClientTest.php | 250 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
tests/Unit/Services/Crm/Hubspot/Pagination/HubspotPaginationServiceTest.php | 283 +++++++++++++++++++++---------------------------------------------------------------------------
37 files changed, 1587 insertions(+), 344 deletions(-)
create mode 100644 app/Component/ES/ChunkSize.php
create mode 100644 app/Jobs/Middleware/HandleHubspotRateLimit.php
create mode 100644 app/Mcp/Tools/GetMeTool.php
create mode 100644 database/migrations/2026_05_13_124153_create_mcp_feature_flag.php
create mode 100644 tests/Feature/Mcp/GetMeToolFeatureTest.php
create mode 100644 tests/Unit/Component/ES/ChunkSizeTest.php
create mode 100644 tests/Unit/Exceptions/RateLimitExceptionTest.php
create mode 100644 tests/Unit/Jobs/Middleware/HandleHubspotRateLimitTest.php
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (master) $ git pull
Already up to date.
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (master) $ co -b JY-20676-delete-report-related-objects
Switched to a new branch 'JY-20676-delete-report-related-objects'
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20676-delete-report-related-objects) $ csfix
docker exec -it docker_lamp_1 ./vendor/bin/php-cs-fixer fix --config=.php-cs-fixer.dist.php -v --using-cache=no --diff
PHP CS Fixer 3.87.1 Alexander by Fabien Potencier, Dariusz Ruminski and contributors.
PHP runtime: 8.3.30
Running 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!
Loaded config default from ".php-cs-fixer.dist.php".
5690/5690 [▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓] 100%
1) app/Console/Commands/JiminnyDebugCommand.php (statement_indentation, blank_line_before_statement)
---------- begin diff ----------
--- /home/jiminny/app/Console/Commands/JiminnyDebugCommand.php
+++ /home/jiminny/app/Console/Commands/JiminnyDebugCommand.php
@@ -23,6 +23,7 @@
if ($action === 'redis-set') {
$this->testRedisSet();
+
return;
}
@@ -45,7 +46,7 @@
$ttl = 60;
try {
-// $result = Redis::set($testKey, $testValue, 'EX', $ttl, 'NX');
+ // $result = Redis::set($testKey, $testValue, 'EX', $ttl, 'NX');
$result = Redis::set($testKey, $testValue, ['nx', 'ex' => $ttl]);
if ($result) {
----------- end diff -----------
Fixed 1 of 5690 files i...
|
[{"role":"AXTextArea","text [{"role":"AXTextArea","text":"Last login: Mon May 18 09:17:28 on ttys007\n\nPoetry could not find a pyproject.toml file in /Users/lukas/jiminny/app or its parents\n\nPoetry could not find a pyproject.toml file in /Users/lukas/jiminny/app or its parents\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (pipedrive-sdk-poc) $ co master\nerror: Your local changes to the following files would be overwritten by checkout:\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tPIPEDRIVE_V2_MIGRATION_TICKETS.md\nPlease commit your changes or stash them before you switch branches.\nAborting\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (pipedrive-sdk-poc) $ git pull\nremote: Enumerating objects: 1047, done.\nremote: Counting objects: 100% (832/832), done.\nremote: Compressing objects: 100% (298/298), done.\nremote: Total 1047 (delta 634), reused 596 (delta 534), pack-reused 215 (from 3)\nReceiving objects: 100% (1047/1047), 353.16 KiB | 1.56 MiB/s, done.\nResolving deltas: 100% (687/687), completed with 107 local objects.\nFrom github.com:jiminny/app\n 907c54896c..34656c53ed pipedrive-sdk-poc -> origin/pipedrive-sdk-poc\n 03325ec50f..4e7078fd8b JY-18091-upgrade-to-php-8-5 -> origin/JY-18091-upgrade-to-php-8-5\n e7d231e163..bc6a3fce6b JY-20725-handle-HS-search-rate-limit -> origin/JY-20725-handle-HS-search-rate-limit\n * [new branch] JY-20749-user-can-view-recorded-meetings -> origin/JY-20749-user-can-view-recorded-meetings\n 98ca281a04..e0351be069 JY-20808-low-priority-indexing-queue -> origin/JY-20808-low-priority-indexing-queue\n 569abb5149..3906a9238a JY-20835-mcp-enable-users-to-get-a-list-of-deals-and-their-details -> origin/JY-20835-mcp-enable-users-to-get-a-list-of-deals-and-their-details\n ad6c2a86e8..50eb6afba9 JY-20846-mcp-enable-the-ai-to-know-details-about-the-user -> origin/JY-20846-mcp-enable-the-ai-to-know-details-about-the-user\n * [new branch] JY-20893-chunk-control-per-update-target -> origin/JY-20893-chunk-control-per-update-target\n 31c62924a5..cb4ebf0c36 master -> origin/master\nUpdating 907c54896c..34656c53ed\nFast-forward\n PIPEDRIVE_V2_MIGRATION_TICKETS.md | 52 ++++++++++++++++++++++++++++++++++++++++++++++++++++\n 1 file changed, 52 insertions(+)\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (pipedrive-sdk-poc) $ co master\nM\u0000\u0000\u0000\u0000\u0000\u0000\t.env.local\nM\u0000\u0000\u0000\u0000\u0000\u0000\tconfig/logging.php\nSwitched to branch 'master'\nYour branch is behind 'origin/master' by 31 commits, and can be fast-forwarded.\n (use \"git pull\" to update your local branch)\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (master) $ git pull\nUpdating 31c62924a5..cb4ebf0c36\nFast-forward\n app/Component/ES/Processor/Traits/SelectEntityListTrait.php | 20 ------\n app/Services/Calendar/CalendarActivityService.php | 46 +++++++++++++\n app/Services/Calendar/Command/MapActivityData.php | 106 +++-------------------------\n docs/mcp/explorer/explorer.html | 104 +++++++++++++++++++++++++---\n docs/mcp/explorer/explorer.template.html | 102 ++++++++++++++++++++++++---\n docs/mcp/tools-list.json | 373 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++-------\n docs/mcp/tools.md | 117 +++++++++++++++++++++++--------\n tests/Unit/Component/ES/AsyncUpdateElasticSearchTest.php | 16 +----\n tests/Unit/Component/ES/Listeners/UpdateMultipleTargetsListenerTest.php | 10 ---\n tests/Unit/Component/ES/Listeners/UpdateSingleTargetListenerTest.php | 6 --\n tests/Unit/Component/ES/Processor/TargetEntitiesSelectorTest.php | 9 ---\n tests/Unit/Component/ES/Processor/Traits/SelectEntityListTraitTest.php | 15 ++--\n tests/Unit/Component/ES/UpdateProcessManagerTest.php | 2 -\n tests/Unit/Services/Calendar/CalendarActivityServiceTest.php | 150 ++++++++++++++++++++++++++++++++++++++--\n tests/Unit/Services/Calendar/Command/MapActivityDataTest.php | 78 ++-------------------\n 15 files changed, 832 insertions(+), 322 deletions(-)\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (master) $ co -b JY-20613-allow-owner-role-on-team-setup\nSwitched to a new branch 'JY-20613-allow-owner-role-on-team-setup'\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20613-allow-owner-role-on-team-setup) $ csfix\ndocker exec -it docker_lamp_1 ./vendor/bin/php-cs-fixer fix --config=.php-cs-fixer.dist.php -v --using-cache=no --diff \nPHP CS Fixer 3.87.1 Alexander by Fabien Potencier, Dariusz Ruminski and contributors.\nPHP runtime: 8.3.30\nRunning analysis on 7 cores with 10 files per process.\nParallel runner is an experimental feature and may be unstable, use it at your own risk. Feedback highly appreciated!\nLoaded config default from \".php-cs-fixer.dist.php\".\n 5682/5682 [▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓] 100%\n\n\nFixed 0 of 5682 files in 56.978 seconds, 67.00 MB memory used\n\nWhat's next:\n Try Docker Debug for seamless, persistent debugging tools in any container or image → docker debug docker_lamp_1\n Learn more at https://docs.docker.com/go/debug-cli/\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20613-allow-owner-role-on-team-setup) $ ;xd\ndocker exec -it docker_lamp_1 bash -c \"mv /usr/local/etc/php/conf.d/xdebug.ini ~/xdebug.ini\"\n\nWhat's next:\n Try Docker Debug for seamless, persistent debugging tools in any container or image → docker debug docker_lamp_1\n Learn more at https://docs.docker.com/go/debug-cli/\ndocker exec -it docker_lamp_1 supervisorctl restart all\njiminny-worker-processing-2:jiminny-worker-processing-2_00: stopped\njiminny-worker-processing-3:jiminny-worker-processing-3_00: stopped\njiminny-worker-processing-4:jiminny-worker-processing-4_00: stopped\njiminny-worker-processing-5:jiminny-worker-processing-5_00: stopped\njiminny-worker-processing-delayed:jiminny-worker-processing-delayed_00: stopped\nworker-analytics:worker-analytics_00: stopped\nworker-crm-update:worker-crm-update_00: stopped\nworker-download:worker-download_00: stopped\nworker-nudges:worker-nudges_00: stopped\nartisan-schedule:artisan-schedule_00: stopped\nworker-emails:worker-emails_00: stopped\nworker-calendar:worker-calendar_00: stopped\nworker:worker_00: stopped\nworker-conferences:worker-conferences_00: stopped\nworker-crm-sync:worker-crm-sync_00: stopped\njiminny-worker-processing-1:jiminny-worker-processing-1_00: stopped\nworker-audio:worker-audio_00: stopped\nworker-es-update:worker-es-update_00: stopped\nartisan-schedule:artisan-schedule_00: started\njiminny-worker-processing-1:jiminny-worker-processing-1_00: started\njiminny-worker-processing-2:jiminny-worker-processing-2_00: started\njiminny-worker-processing-3:jiminny-worker-processing-3_00: started\njiminny-worker-processing-4:jiminny-worker-processing-4_00: started\njiminny-worker-processing-5:jiminny-worker-processing-5_00: started\njiminny-worker-processing-delayed:jiminny-worker-processing-delayed_00: started\nworker:worker_00: started\nworker-analytics:worker-analytics_00: started\nworker-audio:worker-audio_00: started\nworker-calendar:worker-calendar_00: started\nworker-conferences:worker-conferences_00: started\nworker-crm-sync:worker-crm-sync_00: started\nworker-crm-update:worker-crm-update_00: started\nworker-download:worker-download_00: started\nworker-emails:worker-emails_00: started\nworker-es-update:worker-es-update_00: started\nworker-nudges:worker-nudges_00: started\n\nWhat's next:\n Try Docker Debug for seamless, persistent debugging tools in any container or image → docker debug docker_lamp_1\n Learn more at https://docs.docker.com/go/debug-cli/\ndocker exec -it docker_lamp_1 php -v\nPHP 8.3.30 (cli) (built: Mar 16 2026 22:32:32) (NTS)\nCopyright (c) The PHP Group\nZend Engine v4.3.30, Copyright (c) Zend Technologies\n with Zend OPcache v8.3.30, Copyright (c), by Zend Technologies\n\nWhat's next:\n Try Docker Debug for seamless, persistent debugging tools in any container or image → docker debug docker_lamp_1\n Learn more at https://docs.docker.com/go/debug-cli/\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20613-allow-owner-role-on-team-setup) $ csfix\ndocker exec -it docker_lamp_1 ./vendor/bin/php-cs-fixer fix --config=.php-cs-fixer.dist.php -v --using-cache=no --diff \nPHP CS Fixer 3.87.1 Alexander by Fabien Potencier, Dariusz Ruminski and contributors.\nPHP runtime: 8.3.30\nRunning analysis on 7 cores with 10 files per process.\nParallel runner is an experimental feature and may be unstable, use it at your own risk. Feedback highly appreciated!\nLoaded config default from \".php-cs-fixer.dist.php\".\n 5682/5682 [▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓] 100%\n\n\nFixed 0 of 5682 files in 49.910 seconds, 60.00 MB memory used\n\nWhat's next:\n Try Docker Debug for seamless, persistent debugging tools in any container or image → docker debug docker_lamp_1\n Learn more at https://docs.docker.com/go/debug-cli/\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20613-allow-owner-role-on-team-setup) $ git status\nOn branch JY-20613-allow-owner-role-on-team-setup\nYour branch is ahead of 'origin/JY-20613-allow-owner-role-on-team-setup' by 1 commit.\n (use \"git push\" to publish your local commits)\n\nChanges not staged for commit:\n (use \"git add <file>...\" to update what will be committed)\n (use \"git restore <file>...\" to discard changes in working directory)\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tmodified: .env.local\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tmodified: config/logging.php\n\nUntracked files:\n (use \"git add <file>...\" to include in what will be committed)\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\t.env.nikilocal\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\t.env.other\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tWEBHOOK_FILTERING_IMPLEMENTATION.md\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tapp/Console/Commands/Crm/Hubspot/SimulateWebhooksCommand.php\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tapp/Console/Commands/Reports/CreateMockAskJiminnyReportResultCommand.php\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tids.txt\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tpublic/favicon.ico\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\traw_sql_query.sql\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\ttests/Unit/Policies/CanAccessAiReportsTest.php\n\nno changes added to commit (use \"git add\" and/or \"git commit -a\")\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20613-allow-owner-role-on-team-setup) $ git pull\nremote: Enumerating objects: 248, done.\nremote: Counting objects: 100% (128/128), done.\nremote: Compressing objects: 100% (23/23), done.\nremote: Total 59 (delta 43), reused 44 (delta 33), pack-reused 0 (from 0)\nUnpacking objects: 100% (59/59), 10.48 KiB | 228.00 KiB/s, done.\nFrom github.com:jiminny/app\n b7df560451..190239dfd4 JY-20613-allow-owner-role-on-team-setup -> origin/JY-20613-allow-owner-role-on-team-setup\n e0351be069..d94a285ae7 JY-20808-low-priority-indexing-queue -> origin/JY-20808-low-priority-indexing-queue\n * [new branch] JY-20920-fix-participant-matcher -> origin/JY-20920-fix-participant-matcher\n cb4ebf0c36..90bca4e4b2 master -> origin/master\nMerge made by the 'ort' strategy.\n app/Component/ES/ChunkSize.php | 54 +++++++++++++++++++++++++++\n app/Component/ES/Processor/DTOs/SelectionList.php | 4 +-\n app/Component/ES/Processor/TargetEntitiesSelector.php | 19 ++++++----\n app/Http/Middleware/McpTierMiddleware.php | 27 +++-----------\n app/Mcp/Servers/JiminnyServer.php | 2 +\n app/Mcp/Tools/GetMeTool.php | 157 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++\n app/Models/Feature/FeatureEnum.php | 1 +\n database/migrations/2026_05_13_124153_create_mcp_feature_flag.php | 25 +++++++++++++\n front-end/src/components/Settings/Kiosk/modals/EditTeamModal/EditTeamModal.vue | 52 ++++++++++++++++++--------\n front-end/src/components/Settings/Kiosk/modals/EditTeamModal/__tests__/EditTeamModal.spec.js | 14 +++++++\n tests/Feature/Mcp/GetMeToolFeatureTest.php | 140 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++\n tests/Feature/Mcp/ListCallsToolFeatureTest.php | 2 +-\n tests/Feature/Mcp/McpTestHelpersTrait.php | 19 +++++++++-\n tests/Unit/Component/ES/ChunkSizeTest.php | 50 +++++++++++++++++++++++++\n tests/Unit/Component/ES/Processor/DTOs/SelectionListTest.php | 27 ++++++++++----\n tests/Unit/Component/ES/Processor/TargetEntitiesSelectorTest.php | 39 +++++++++++---------\n 16 files changed, 557 insertions(+), 75 deletions(-)\n create mode 100644 app/Component/ES/ChunkSize.php\n create mode 100644 app/Mcp/Tools/GetMeTool.php\n create mode 100644 database/migrations/2026_05_13_124153_create_mcp_feature_flag.php\n create mode 100644 tests/Feature/Mcp/GetMeToolFeatureTest.php\n create mode 100644 tests/Unit/Component/ES/ChunkSizeTest.php\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20613-allow-owner-role-on-team-setup) $ git push\nEnumerating objects: 40, done.\nCounting objects: 100% (34/34), done.\nDelta compression using up to 8 threads\nCompressing objects: 100% (18/18), done.\nWriting objects: 100% (18/18), 1.58 KiB | 1.58 MiB/s, done.\nTotal 18 (delta 15), reused 0 (delta 0), pack-reused 0\nremote: Resolving deltas: 100% (15/15), completed with 13 local objects.\nTo github.com:jiminny/app.git\n 190239dfd4..ec1b261264 JY-20613-allow-owner-role-on-team-setup -> JY-20613-allow-owner-role-on-team-setup\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20613-allow-owner-role-on-team-setup) $ gbr\n* JY-20613-allow-owner-role-on-team-setup\n pipedrive-sdk-poc\n master\n JY-20903-update_activity-stage-on-opportunity-change\n JY-20904-fix-update-es-on-activity-command\n JY-20891-improve-sms-text-relays\n JY-20725-handle-HS-search-rate-limit\n JY-20818-move-AJ-reports-to-separated-datadog-metric\n JY-20773-fix-automated-reports-user-pilot-tracking\n JY-20157-AJ-report-not-send-notification\n JY-20508-notify-before-AJ-report-expiration\n JY-20372-ai-reports-promotion-pages\n JY-20352-sync-opportunities-without-a-local-owner-user-id-is-null\n JY-20738-debug-AJ-tracking-UP\n a\n JY-18909-automated-reports-ask-jiminny\n JY-20692-fix-integration-app-token-auth-response-change\n JY-20553-debug-crm-sync-delays\n JY-20698-fix-SF-activity-types-on-new-playbook\n JY-20543-AJ-report-tracking\n JY-20384-handle-auto-sync-with-no-access-to-event-type\n JY-20458-ask-jiminny-user-definitions\n JY-19666-fix-import-contacts-account-association\n JY-19666-HS-import-contacts-and-accounts-batch-job\n JY-20458-Ask-Jiminny-Reports\n JY-20200-batch-update-CRM-objects-Salesforce\n JY-19666-HS-webhooks-add-contact-and-company\n JY-20348-trigger-setup-DI-layout-on-team-creation\n JY-20326-refactor-info-message-in-command\n JY-20317-fix-auto-log-delay-issue-on-all-channels-disabled\n JY-20312-remove-on-update-change-last-synced-at-crm-configurations\n JY-20306-SF-skip-auto-sync-for-task-based-playbook\n JY-20192-remove-deleted-team-from-saved-search-filters\n JY-20197-import-opportunity-batch-job\n JY-20293-enable-status-field-for-pipedrive-deals\n JY-20191-remove-commands-interactive-prompts\n JY-20118-change-default-sync-strategy\n JY-20183-add-cache-on-auto-log-delay\n JY-20197-add-import-opportunity-batch-job\n 20118-hs-opportunity-make-webhook-strategy-default\n JY-20118-make-default-hs-opportunity-sync-strategy-webhook-based\n JY-20196-handle-opportunity-without-note\n JY-20118-improve-opportunity-import\n JY-20189-handle-activity-search-on-deleted-groups\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20613-allow-owner-role-on-team-setup) $ co JY-20725-handle-HS-search-rate-limit\nM\u0000\u0000\u0000\u0000\u0000\u0000\t.env.local\nM\u0000\u0000\u0000\u0000\u0000\u0000\tconfig/logging.php\nSwitched to branch 'JY-20725-handle-HS-search-rate-limit'\nYour branch is behind 'origin/JY-20725-handle-HS-search-rate-limit' by 439 commits, and can be fast-forwarded.\n (use \"git pull\" to update your local branch)\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20725-handle-HS-search-rate-limit) $ git pull\nUpdating 0f3e438941..bc6a3fce6b\nFast-forward\n .gitignore | 3 +-\n .windsurfrules | 168 ++---\n CLAUDE.md | 1 +\n app/Component/ActivityAnalytics/Service/CalculateTalkTimeOffsetsFromTranscription.php | 24 +-\n app/Component/AiActivityType/Services/AiActivityTypeEligibilityChecker.php | 28 +-\n app/Component/AiAutomation/Actions/PrepareUpdateDtoAction.php | 32 +-\n app/Component/AiAutomation/Services/CrmFillingEligibilityChecker.php | 47 ++\n app/Component/AiAutomation/TestCrmAiPromptService.php | 14 +\n app/Component/AiCallScoring/Services/AiCallScoringEligibilityChecker.php | 9 +\n app/Component/ES/ElasticSearchDocumentPartialUpdater.php | 13 +-\n app/Component/ES/ElasticSearchWorkerManager.php | 86 ---\n app/Component/ES/Processor/Actions/LoadDocumentsAction.php | 80 +--\n app/Component/ES/Processor/EntityQueryBuilder.php | 12 +-\n app/Component/ES/Processor/TargetEntitiesSelector.php | 2 +-\n app/Component/ES/Processor/Traits/SkipActivityTrait.php | 25 -\n app/Component/ES/Repositories/EsResetActivityRepository.php | 11 +-\n app/Component/ES/Worker/ActivityWorker.php | 73 --\n app/Component/ES/Worker/EntityWorker.php | 44 --\n app/Component/ES/Worker/WorkerAmount.php | 60 --\n app/Component/ES/Worker/WorkerInterface.php | 15 -\n app/Component/ElasticSearch/Contract/Searchable.php | 4 +\n app/Component/Encoding/Job/AnalyzeTrackChannelsJob.php | 20 +-\n app/Component/Encoding/Service/GenerateSpeechFromSilenceService.php | 85 ++-\n app/Component/FFMpeg/Services/GetSpeechIntervalsService.php | 18 +-\n app/Component/LanguageDetection/Services/FindSpeechTimeService.php | 22 +-\n app/Component/Nudge/Job/ProcessOrganisationImmediateNudgesJob.php | 218 +++++-\n app/Component/ParagraphBreaker/Services/TranscriptionParagraphsService.php | 4 +\n app/Component/ParticipantSpeech/Services/ParticipantSpeechesCreator.php | 33 +\n app/Component/ParticipantSpeech/Services/ParticipantSpeechesDeleter.php | 15 +\n app/Component/ParticipantSpeech/Services/ParticipantSpeechesProvider.php | 51 +-\n app/Component/ParticipantSpeech/Services/ParticipantSpeechesUploader.php | 36 +\n app/Component/ProphetAi/Exceptions/InsufficientTranscriptException.php | 11 +\n app/Component/Transcription/DTO/Http/Transcription/AssemblyAI/AssemblyAI/NoAssemblyIdException.php | 11 +\n app/Component/Transcription/DTO/Http/Transcription/AssemblyAI/AssemblyAI/SuccessfulResponse.php | 6 +\n app/Component/Transcription/DTO/Http/Transcription/TranscriptionIsNotCorrectFormatException.php | 11 +\n app/Component/Transcription/Diarization/Services/GetNormalizedParticipantSpeechesService.php | 23 +-\n app/Component/Transcription/Diarization/Source/MeetingBotSource.php | 16 +-\n app/Component/Transcription/TranscriptionProcessor/TranscriptionProcessor.php | 3 +\n app/Console/Commands/Activities/ActivityHardDeleteCommand.php | 4 +-\n app/Console/Commands/Activities/Copy.php | 2 +\n app/Console/Commands/Activities/SetupIntegration/TwilioSetS3RecordingCredentialsCommand.php | 119 ++++\n app/Console/Commands/Activities/UpdateActivityElasticSearchDocumentCommand.php | 10 +-\n app/Console/Commands/Crm/BackfillOpportunityUserFromAccountCommand.php | 126 ++++\n app/Console/Commands/Elasticsearch/AsyncUpdateEsActivities.php | 19 -\n app/Console/Commands/Elasticsearch/AsyncUpdateEsEntities.php | 50 +-\n app/Console/Commands/Elasticsearch/ResetAsyncElasticSearchCommand.php | 30 +-\n app/Console/Commands/GeckoExport/GeckoExportParticipantSpeechesCommand.php | 14 +-\n app/Console/Commands/IssueMcpTokenCommand.php | 84 +++\n app/Console/Commands/JiminnyDebugCommand.php | 7 +-\n app/Console/Commands/Tracks/CleanupActivityTracksCommand.php | 2 +-\n app/Console/Kernel.php | 6 +-\n app/Contracts/Services/Calendar/CalendarTrait.php | 80 ++-\n app/Events/AutomatedReports/AutomatedReportGenerated.php | 3 +\n app/Http/Controllers/API/AiCallScoring/AiScorecardController.php | 7 +-\n app/Http/Controllers/API/TeamAiAutomationController.php | 8 +\n app/Http/Controllers/CustomerApi/CustomerApiController.php | 4 +-\n app/Http/Controllers/Kiosk/ActivityController.php | 58 +-\n app/Http/Controllers/Settings/PlaybookController.php | 15 +-\n app/Http/Kernel.php | 23 +\n app/Http/Middleware/McpAuditMiddleware.php | 156 ++++\n app/Http/Middleware/McpTierMiddleware.php | 54 ++\n app/Http/Requests/API/V2/ZapierUploadActivityRequest.php | 28 +-\n app/Jobs/Activity/Import/ImportTwilioVideoSpeechesJob.php | 25 +-\n app/Jobs/Activity/Import/IsActivityReadyForProcessingJob.php | 10 +-\n app/Jobs/Calendar/SetupCalendarSync.php | 21 +-\n app/Jobs/ImportRemoteTrackJob.php | 96 ++-\n app/Jobs/Mailbox/EmailTextRelay.php | 15 +-\n app/Mcp/Contracts/McpCallRepositoryInterface.php | 30 +\n app/Mcp/DTO/ListCallsFilters.php | 29 +\n app/Mcp/Errors/McpError.php | 123 ++++\n app/Mcp/Repositories/McpActivityHydrator.php | 145 ++++\n app/Mcp/Repositories/McpCallRepository.php | 84 +++\n app/Mcp/Repositories/McpElasticCallRepository.php | 171 +++++\n app/Mcp/Servers/JiminnyServer.php | 38 +\n app/Mcp/Tools/ListCallsTool.php | 205 ++++++\n app/Models/Activity.php | 10 +-\n app/Models/Activity/Transcription.php | 17 +-\n app/Models/ElasticSearch/OpportunityElasticSearchTrait.php | 5 +\n app/Models/Participant.php | 1 +\n app/Providers/AppServiceProvider.php | 22 +\n app/Repositories/Crm/ContactRepository.php | 69 +-\n app/Repositories/ParticipantSpeechRepository.php | 13 +-\n app/Services/Activity/ParticipantsService.php | 19 +-\n app/Services/Activity/Twilio/S3RecordingCredentialsService.php | 82 +++\n app/Services/ActivityService.php | 21 +-\n app/Services/Calendar/CalendarActivityService.php | 46 ++\n app/Services/Calendar/Command/ImportParticipants.php | 1 +\n app/Services/Calendar/Command/MapActivityData.php | 106 +--\n app/Services/Calendar/GoogleCalendarService.php | 12 +-\n app/Services/Crm/Close/Processor/OpportunityProcessor.php | 2 +-\n app/Services/Crm/Close/Service.php | 22 +-\n app/Services/Crm/Copper/Service.php | 12 +-\n app/Services/Crm/Hubspot/Service.php | 154 +++-\n app/Services/Crm/Hubspot/ServiceTraits/OpportunitySyncTrait.php | 88 ++-\n app/Services/Crm/IntegrationApp/ServiceTraits/SyncCrmEntitiesTrait.php | 22 +-\n app/Services/Crm/Pipedrive/Service.php | 17 +-\n app/Services/Crm/Salesforce/Service.php | 42 +-\n app/Services/Mail/Office/EmailApiClient.php | 129 +---\n app/Services/RecallAI/Commands/ScheduleBotCommand.php | 39 +-\n app/Services/RecallAI/RecallAIService.php | 22 +-\n composer.json | 3 +-\n composer.lock | 87 ++-\n config/mcp.php | 23 +\n database/migrations/2026_04_30_120000_create_mcp_audit_log_table.php | 36 +\n docs/mcp/explorer/explorer.html | 697 ++++++++++++++++++\n docs/mcp/explorer/explorer.template.html | 697 ++++++++++++++++++\n docs/mcp/explorer/generate.js | 215 ++++++\n docs/mcp/explorer/tool-explorer-meta.json | 11 +\n docs/mcp/tools-list.json | 2536 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++\n docs/mcp/tools.md | 621 ++++++++++++++++\n front-end/package.json | 4 +-\n front-end/src/components/Settings/OrgSettings/AiAutomation/CrmFilling/TemplateFieldForm.vue | 28 +-\n front-end/src/components/Settings/OrgSettings/Playbooks/AddEditPlaybook.vue | 10 +\n front-end/src/components/playback/comments/ActivityComment.less | 10 +-\n front-end/src/components/shared/PromptTester/PromptTester.vue | 12 +-\n front-end/src/components/shared/__tests__/PromptTester.spec.js | 35 +\n front-end/src/components/shared/modals/EntityPickerModal/__tests__/useEntitiesCache.spec.ts | 37 +\n front-end/src/components/shared/modals/EntityPickerModal/useEntitiesCache.ts | 9 +\n front-end/yarn.lock | 16 +-\n phpstan-baseline.neon | 50 --\n routes/api.php | 11 +\n sonar-project.properties | 91 ++-\n tests/Feature/Component/Nudge/ProcessOrganisationImmediateNudgesJobTest.php | 534 ++++++++++++++\n tests/Feature/Jobs/ImportRemoteTrackJobTest.php | 283 +++++++-\n tests/Feature/Mcp/IssueMcpTokenCommandTest.php | 53 ++\n tests/Feature/Mcp/ListCallsToolElasticFeatureTest.php | 155 ++++\n tests/Feature/Mcp/ListCallsToolFeatureTest.php | 352 ++++++++++\n tests/Feature/Mcp/McpTestHelpersTrait.php | 77 ++\n tests/Feature/Services/Team/TeamDeleteHandlers/Retention/RetentionRepositoryHandlerTest.php | 1 +\n tests/Stubs/SentryStub.php | 18 +\n tests/Unit/Component/ActivityAnalytics/Service/CalculateTalkTimeOffsetFromTranscriptionTest.php | 28 +-\n tests/Unit/Component/AiActivityType/Services/AiActivityTypeEligibilityCheckerTest.php | 103 ++-\n tests/Unit/Component/AiAutomation/Actions/PrepareUpdateDtoActionTest.php | 91 +++\n tests/Unit/Component/AiAutomation/Services/CrmFillingEligibilityCheckerTest.php | 124 ++++\n tests/Unit/Component/AiAutomation/TestCrmAiPromptServiceTest.php | 67 +-\n tests/Unit/Component/AiCallScoring/Services/AiCallScoringEligibilityCheckerTest.php | 55 ++\n tests/Unit/Component/ES/ElasticSearchWorkerManagerTest.php | 135 ----\n tests/Unit/Component/ES/Processor/Actions/LoadDocumentsActionTest.php | 220 ++++++\n tests/Unit/Component/ES/Processor/EntityQueryBuilderTest.php | 21 +-\n tests/Unit/Component/ES/Processor/Traits/SkipActivityTraitTest.php | 51 --\n tests/Unit/Component/ES/Worker/ActivityWorkerTest.php | 174 -----\n tests/Unit/Component/ES/Worker/EntityWorkerTest.php | 97 ---\n tests/Unit/Component/ES/Worker/WorkerAmountTest.php | 116 ---\n tests/Unit/Component/Encoding/Job/AnalyzeTrackChannelsJobTest.php | 52 +-\n tests/Unit/Component/Encoding/Service/GenerateSpeechFromSilenceServiceTest.php | 171 ++---\n tests/Unit/Component/FFMpeg/Services/GetSpeechIntervalsTest.php | 36 +-\n tests/Unit/Component/LanguageDetection/Services/FindSpeechTimeServiceTest.php | 20 +-\n tests/Unit/Component/MobileSettings/MobileSettingsControllerTest.php | 5 +-\n tests/Unit/Component/ParticipantSpeech/Services/ParticipantSpeechesCreatorTest.php | 75 ++\n tests/Unit/Component/ParticipantSpeech/Services/ParticipantSpeechesDeleterTest.php | 63 ++\n tests/Unit/Component/ParticipantSpeech/Services/ParticipantSpeechesProviderTest.php | 134 ++++\n tests/Unit/Component/ParticipantSpeech/Services/ParticipantSpeechesUploaderTest.php | 57 ++\n tests/Unit/Component/Transcription/Diarization/Services/GetNormalizedParticipantSpeechesServiceTest.php | 51 +-\n tests/Unit/Component/Transcription/Diarization/Source/MeetingBotSourceTest.php | 29 +-\n tests/Unit/Contracts/Services/Calendar/CalendarTraitTest.php | 58 +-\n tests/Unit/Http/Controllers/Kiosk/ActivityControllerTest.php | 159 +++++\n tests/Unit/Jobs/Activity/Import/ImportTwilioVideoSpeechesJobTest.php | 22 +-\n tests/Unit/Jobs/Activity/Import/IsActivityReadyForProcessingJobTest.php | 26 +-\n tests/Unit/Jobs/Calendar/SetupCalendarSyncTest.php | 25 -\n tests/Unit/Services/Activity/ParticipantsServiceTest.php | 12 +-\n tests/Unit/Services/Activity/Twilio/S3RecordingCredentialsServiceTest.php | 180 +++++\n tests/Unit/Services/ActivityServiceTest.php | 132 ++++\n tests/Unit/Services/Calendar/CalendarActivityServiceTest.php | 150 +++-\n tests/Unit/Services/Calendar/Command/ImportParticipantsTest.php | 6 +-\n tests/Unit/Services/Calendar/Command/MapActivityDataTest.php | 78 +-\n tests/Unit/Services/Calendar/GoogleCalendarServiceTest.php | 116 +++\n tests/Unit/Services/Crm/Close/ServiceTest.php | 165 +++++\n tests/Unit/Services/Crm/Hubspot/ServiceTest.php | 272 ++++++-\n tests/Unit/Services/Crm/Hubspot/ServiceTraits/OpportunitySyncTest.php | 25 +-\n tests/Unit/Services/Crm/Hubspot/ServiceTraits/OpportunitySyncTraitMatchActivitiesTest.php | 3 +-\n tests/Unit/Services/Crm/IntegrationApp/ServiceTraits/SyncCrmEntitiesTraitOpportunitiesTest.php | 40 ++\n tests/Unit/Services/Crm/Pipedrive/ImportOpportunityMatchActivitiesTest.php | 2 +\n tests/Unit/Services/Crm/Salesforce/ServiceTest.php | 139 ++++\n tests/Unit/Services/Mail/Office/EmailApiClientTest.php | 195 ++---\n tests/Unit/Services/RecallAI/RecallAIServiceTest.php | 24 +-\n 175 files changed, 12562 insertions(+), 2162 deletions(-)\n create mode 120000 CLAUDE.md\n create mode 100644 app/Component/AiAutomation/Services/CrmFillingEligibilityChecker.php\n delete mode 100644 app/Component/ES/ElasticSearchWorkerManager.php\n delete mode 100644 app/Component/ES/Processor/Traits/SkipActivityTrait.php\n delete mode 100644 app/Component/ES/Worker/ActivityWorker.php\n delete mode 100644 app/Component/ES/Worker/EntityWorker.php\n delete mode 100644 app/Component/ES/Worker/WorkerAmount.php\n delete mode 100644 app/Component/ES/Worker/WorkerInterface.php\n create mode 100644 app/Component/ProphetAi/Exceptions/InsufficientTranscriptException.php\n create mode 100644 app/Component/Transcription/DTO/Http/Transcription/AssemblyAI/AssemblyAI/NoAssemblyIdException.php\n create mode 100644 app/Component/Transcription/DTO/Http/Transcription/TranscriptionIsNotCorrectFormatException.php\n create mode 100644 app/Console/Commands/Activities/SetupIntegration/TwilioSetS3RecordingCredentialsCommand.php\n create mode 100644 app/Console/Commands/Crm/BackfillOpportunityUserFromAccountCommand.php\n delete mode 100644 app/Console/Commands/Elasticsearch/AsyncUpdateEsActivities.php\n create mode 100644 app/Console/Commands/IssueMcpTokenCommand.php\n create mode 100644 app/Http/Middleware/McpAuditMiddleware.php\n create mode 100644 app/Http/Middleware/McpTierMiddleware.php\n create mode 100644 app/Mcp/Contracts/McpCallRepositoryInterface.php\n create mode 100644 app/Mcp/DTO/ListCallsFilters.php\n create mode 100644 app/Mcp/Errors/McpError.php\n create mode 100644 app/Mcp/Repositories/McpActivityHydrator.php\n create mode 100644 app/Mcp/Repositories/McpCallRepository.php\n create mode 100644 app/Mcp/Repositories/McpElasticCallRepository.php\n create mode 100644 app/Mcp/Servers/JiminnyServer.php\n create mode 100644 app/Mcp/Tools/ListCallsTool.php\n create mode 100644 app/Services/Activity/Twilio/S3RecordingCredentialsService.php\n create mode 100644 config/mcp.php\n create mode 100644 database/migrations/2026_04_30_120000_create_mcp_audit_log_table.php\n create mode 100644 docs/mcp/explorer/explorer.html\n create mode 100644 docs/mcp/explorer/explorer.template.html\n create mode 100644 docs/mcp/explorer/generate.js\n create mode 100644 docs/mcp/explorer/tool-explorer-meta.json\n create mode 100644 docs/mcp/tools-list.json\n create mode 100644 docs/mcp/tools.md\n create mode 100644 front-end/src/components/shared/modals/EntityPickerModal/__tests__/useEntitiesCache.spec.ts\n create mode 100644 tests/Feature/Component/Nudge/ProcessOrganisationImmediateNudgesJobTest.php\n create mode 100644 tests/Feature/Mcp/IssueMcpTokenCommandTest.php\n create mode 100644 tests/Feature/Mcp/ListCallsToolElasticFeatureTest.php\n create mode 100644 tests/Feature/Mcp/ListCallsToolFeatureTest.php\n create mode 100644 tests/Feature/Mcp/McpTestHelpersTrait.php\n create mode 100644 tests/Stubs/SentryStub.php\n create mode 100644 tests/Unit/Component/AiAutomation/Services/CrmFillingEligibilityCheckerTest.php\n delete mode 100644 tests/Unit/Component/ES/ElasticSearchWorkerManagerTest.php\n create mode 100644 tests/Unit/Component/ES/Processor/Actions/LoadDocumentsActionTest.php\n delete mode 100644 tests/Unit/Component/ES/Processor/Traits/SkipActivityTraitTest.php\n delete mode 100644 tests/Unit/Component/ES/Worker/ActivityWorkerTest.php\n delete mode 100644 tests/Unit/Component/ES/Worker/EntityWorkerTest.php\n delete mode 100644 tests/Unit/Component/ES/Worker/WorkerAmountTest.php\n create mode 100644 tests/Unit/Component/ParticipantSpeech/Services/ParticipantSpeechesCreatorTest.php\n create mode 100644 tests/Unit/Http/Controllers/Kiosk/ActivityControllerTest.php\n create mode 100644 tests/Unit/Services/Activity/Twilio/S3RecordingCredentialsServiceTest.php\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20725-handle-HS-search-rate-limit) $ git status\nOn branch master\nYour branch is behind 'origin/master' by 114 commits, and can be fast-forwarded.\n (use \"git pull\" to update your local branch)\n\nChanges not staged for commit:\n (use \"git add <file>...\" to update what will be committed)\n (use \"git restore <file>...\" to discard changes in working directory)\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tmodified: .env.local\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tmodified: app/Component/SCIM/Constants.php\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tmodified: app/Component/SCIM/ScimProvisioning.php\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tmodified: app/Component/Twilio/Conference/ConferenceManager/SoftPhoneManager.php\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tmodified: app/Console/Commands/JiminnyDebugCommand.php\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tmodified: app/DTO/SCIM/AAD/Request/CoreUserRequest.php\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tmodified: app/DTO/SCIM/AAD/Response/CoreUser.php\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tmodified: app/Services/Telephony/TextMessagingService.php\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tmodified: config/logging.php\n\nUntracked files:\n (use \"git add <file>...\" to include in what will be committed)\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\t.env.nikilocal\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\t.env.other\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tWEBHOOK_FILTERING_IMPLEMENTATION.md\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tapp/Component/SCIM/Mutators/Attributes/User/RoleAttr.php\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tapp/Console/Commands/Crm/Hubspot/SimulateWebhooksCommand.php\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tapp/Console/Commands/Reports/CreateMockAskJiminnyReportResultCommand.php\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tapp/Rules/ListenerRoleCannotHaveAdminOrManagerPermissionRule.php\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tids.txt\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tpublic/favicon.ico\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\traw_sql_query.sql\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\ttests/Unit/Component/SCIM/Mutators/Attributes/User/RoleAttrTest.php\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\ttests/Unit/Policies/CanAccessAiReportsTest.php\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\ttests/Unit/Rules/ListenerRoleCannotHaveAdminOrManagerPermissionRuleTest.php\n\nno changes added to commit (use \"git add\" and/or \"git commit -a\")\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (master) $ git pull\nremote: Enumerating objects: 306, done.\nremote: Counting objects: 100% (299/299), done.\nremote: Compressing objects: 100% (183/183), done.\nremote: Total 306 (delta 213), reused 171 (delta 116), pack-reused 7 (from 1)\nReceiving objects: 100% (306/306), 80.12 KiB | 1000.00 KiB/s, done.\nResolving deltas: 100% (213/213), completed with 53 local objects.\nFrom github.com:jiminny/app\n 90bca4e4b2..5604af40cf master -> origin/master\n 4e7078fd8b..0b8343d179 JY-18091-upgrade-to-php-8-5 -> origin/JY-18091-upgrade-to-php-8-5\n 098eeaa087..d5a447e492 JY-20613-allow-owner-role-on-team-setup -> origin/JY-20613-allow-owner-role-on-team-setup\n c3a76ace91..af65249d0f JY-20749-user-can-view-recorded-meetings -> origin/JY-20749-user-can-view-recorded-meetings\n d94a285ae7..7ce96cb5fe JY-20808-low-priority-indexing-queue -> origin/JY-20808-low-priority-indexing-queue\n * [new branch] JY-20842-remove-partial-updater -> origin/JY-20842-remove-partial-updater\n * [new branch] JY-20920-fix-participant-flip -> origin/JY-20920-fix-participant-flip\n * [new branch] secfix/npm-20260519 -> origin/secfix/npm-20260519\nUpdating cb4ebf0c36..5604af40cf\nFast-forward\n app/Component/ES/ChunkSize.php | 54 +++++++++++++++++++\n app/Component/ES/Processor/DTOs/SelectionList.php | 4 +-\n app/Component/ES/Processor/TargetEntitiesSelector.php | 19 ++++---\n app/Component/MeetingBot/Service/ParticipantMatcher.php | 46 ++++++++++++----\n app/Exceptions/RateLimitException.php | 19 ++++++-\n app/Http/Middleware/McpTierMiddleware.php | 27 ++--------\n app/Jobs/Crm/MatchActivityCrmData.php | 47 ++++++++++++----\n app/Jobs/Middleware/HandleHubspotRateLimit.php | 42 +++++++++++++++\n app/Mcp/Servers/JiminnyServer.php | 2 +\n app/Mcp/Tools/GetMeTool.php | 157 +++++++++++++++++++++++++++++++++++++++++++++++++++++\n app/Models/Feature/FeatureEnum.php | 1 +\n app/Services/Activity/HubSpot/ProviderResolver.php | 4 +-\n app/Services/Activity/HubSpot/ProviderResolverInterface.php | 2 +-\n app/Services/Activity/HubSpot/Providers/Provider.php | 2 +-\n app/Services/Activity/HubSpot/Providers/ProviderKixie.php | 2 +-\n app/Services/Activity/HubSpot/Providers/ProviderOrum.php | 2 +-\n app/Services/Activity/HubSpot/Providers/ProviderTwilio.php | 2 +-\n app/Services/Activity/HubSpot/Providers/ProviderTwilioFlex.php | 5 +-\n app/Services/Activity/HubSpot/Service.php | 97 +++++++++++++++++++++++++++------\n app/Services/Crm/Hubspot/Client.php | 132 +++++++++++++++++++++++++++++++++++++++++++++\n app/Services/Crm/Hubspot/HubspotClientInterface.php | 15 ++++++\n app/Services/Crm/Hubspot/Pagination/HubspotPaginationService.php | 21 ++++----\n app/Services/Crm/Hubspot/Pagination/PaginationState.php | 2 +-\n database/migrations/2026_05_13_124153_create_mcp_feature_flag.php | 25 +++++++++\n tests/Feature/Mcp/GetMeToolFeatureTest.php | 140 +++++++++++++++++++++++++++++++++++++++++++++++\n tests/Feature/Mcp/ListCallsToolFeatureTest.php | 2 +-\n tests/Feature/Mcp/McpTestHelpersTrait.php | 19 ++++++-\n tests/Unit/Component/ES/ChunkSizeTest.php | 50 +++++++++++++++++\n tests/Unit/Component/ES/Processor/DTOs/SelectionListTest.php | 27 +++++++---\n tests/Unit/Component/ES/Processor/TargetEntitiesSelectorTest.php | 39 ++++++++------\n tests/Unit/Component/MeetingBot/Service/ParticipantMatcherTest.php | 68 ++++++++++++++++++++++-\n tests/Unit/Exceptions/RateLimitExceptionTest.php | 56 +++++++++++++++++++\n tests/Unit/Jobs/Crm/MatchActivityCrmDataTest.php | 8 +--\n tests/Unit/Jobs/Middleware/HandleHubspotRateLimitTest.php | 151 +++++++++++++++++++++++++++++++++++++++++++++++++++\n tests/Unit/Services/Activity/HubSpot/ServiceTest.php | 109 +++++++++++++++++++++++++++++++++++++\n tests/Unit/Services/Crm/Hubspot/ClientTest.php | 250 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++\n tests/Unit/Services/Crm/Hubspot/Pagination/HubspotPaginationServiceTest.php | 283 +++++++++++++++++++++---------------------------------------------------------------------------\n 37 files changed, 1587 insertions(+), 344 deletions(-)\n create mode 100644 app/Component/ES/ChunkSize.php\n create mode 100644 app/Jobs/Middleware/HandleHubspotRateLimit.php\n create mode 100644 app/Mcp/Tools/GetMeTool.php\n create mode 100644 database/migrations/2026_05_13_124153_create_mcp_feature_flag.php\n create mode 100644 tests/Feature/Mcp/GetMeToolFeatureTest.php\n create mode 100644 tests/Unit/Component/ES/ChunkSizeTest.php\n create mode 100644 tests/Unit/Exceptions/RateLimitExceptionTest.php\n create mode 100644 tests/Unit/Jobs/Middleware/HandleHubspotRateLimitTest.php\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (master) $ git pull\nAlready up to date.\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (master) $ co -b JY-20676-delete-report-related-objects\nSwitched to a new branch 'JY-20676-delete-report-related-objects'\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20676-delete-report-related-objects) $ csfix\ndocker exec -it docker_lamp_1 ./vendor/bin/php-cs-fixer fix --config=.php-cs-fixer.dist.php -v --using-cache=no --diff \nPHP CS Fixer 3.87.1 Alexander by Fabien Potencier, Dariusz Ruminski and contributors.\nPHP runtime: 8.3.30\nRunning analysis on 7 cores with 10 files per process.\nParallel runner is an experimental feature and may be unstable, use it at your own risk. Feedback highly appreciated!\nLoaded config default from \".php-cs-fixer.dist.php\".\n 5690/5690 [▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓] 100%\n\n 1) app/Console/Commands/JiminnyDebugCommand.php (statement_indentation, blank_line_before_statement)\n ---------- begin diff ----------\n--- /home/jiminny/app/Console/Commands/JiminnyDebugCommand.php\n+++ /home/jiminny/app/Console/Commands/JiminnyDebugCommand.php\n@@ -23,6 +23,7 @@\n \n if ($action === 'redis-set') {\n $this->testRedisSet();\n+\n return;\n }\n \n@@ -45,7 +46,7 @@\n $ttl = 60;\n \n try {\n-// $result = Redis::set($testKey, $testValue, 'EX', $ttl, 'NX');\n+ // $result = Redis::set($testKey, $testValue, 'EX', $ttl, 'NX');\n $result = Redis::set($testKey, $testValue, ['nx', 'ex' => $ttl]);\n \n if ($result) {\n\n ----------- end diff -----------\n\n\nFixed 1 of 5690 files in 50.673 seconds, 67.00 MB memory used\n\nWhat's next:\n Try Docker Debug for seamless, persistent debugging tools in any container or image → docker debug docker_lamp_1\n Learn more at https://docs.docker.com/go/debug-cli/\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20676-delete-report-related-objects) $ ;xd\ndocker exec -it docker_lamp_1 bash -c \"mv /usr/local/etc/php/conf.d/xdebug.ini ~/xdebug.ini\"\n\nWhat's next:\n Try Docker Debug for seamless, persistent debugging tools in any container or image → docker debug docker_lamp_1\n Learn more at https://docs.docker.com/go/debug-cli/\ndocker exec -it docker_lamp_1 supervisorctl restart all\njiminny-worker-processing-2:jiminny-worker-processing-2_00: stopped\njiminny-worker-processing-3:jiminny-worker-processing-3_00: stopped\njiminny-worker-processing-4:jiminny-worker-processing-4_00: stopped\njiminny-worker-processing-5:jiminny-worker-processing-5_00: stopped\njiminny-worker-processing-delayed:jiminny-worker-processing-delayed_00: stopped\nworker-analytics:worker-analytics_00: stopped\nworker-crm-update:worker-crm-update_00: stopped\nworker-download:worker-download_00: stopped\nworker-nudges:worker-nudges_00: stopped\nworker-calendar:worker-calendar_00: stopped\nworker-audio:worker-audio_00: stopped\njiminny-worker-processing-1:jiminny-worker-processing-1_00: stopped\nworker:worker_00: stopped\nworker-conferences:worker-conferences_00: stopped\nworker-crm-sync:worker-crm-sync_00: stopped\nworker-emails:worker-emails_00: stopped\nworker-es-update:worker-es-update_00: stopped\nartisan-schedule:artisan-schedule_00: stopped\nartisan-schedule:artisan-schedule_00: started\njiminny-worker-processing-1:jiminny-worker-processing-1_00: started\njiminny-worker-processing-2:jiminny-worker-processing-2_00: started\njiminny-worker-processing-3:jiminny-worker-processing-3_00: started\njiminny-worker-processing-4:jiminny-worker-processing-4_00: started\njiminny-worker-processing-5:jiminny-worker-processing-5_00: started\njiminny-worker-processing-delayed:jiminny-worker-processing-delayed_00: started\nworker:worker_00: started\nworker-analytics:worker-analytics_00: started\nworker-audio:worker-audio_00: started\nworker-calendar:worker-calendar_00: started\nworker-conferences:worker-conferences_00: started\nworker-crm-sync:worker-crm-sync_00: started\nworker-crm-update:worker-crm-update_00: started\nworker-download:worker-download_00: started\nworker-emails:worker-emails_00: started\nworker-es-update:worker-es-update_00: started\nworker-nudges:worker-nudges_00: started\n\nWhat's next:\n Try Docker Debug for seamless, persistent debugging tools in any container or image → docker debug docker_lamp_1\n Learn more at https://docs.docker.com/go/debug-cli/\ndocker exec -it docker_lamp_1 php -v\nPHP 8.3.30 (cli) (built: Mar 16 2026 22:32:32) (NTS)\nCopyright (c) The PHP Group\nZend Engine v4.3.30, Copyright (c) Zend Technologies\n with Zend OPcache v8.3.30, Copyright (c), by Zend Technologies\n\nWhat's next:\n Try Docker Debug for seamless, persistent debugging tools in any container or image → docker debug docker_lamp_1\n Learn more at https://docs.docker.com/go/debug-cli/\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20676-delete-report-related-objects) $ git status\nOn branch JY-20676-delete-report-related-objects\nChanges not staged for commit:\n (use \"git add <file>...\" to update what will be committed)\n (use \"git restore <file>...\" to discard changes in working directory)\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tmodified: .env.local\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tmodified: app/Console/Commands/JiminnyDebugCommand.php\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tmodified: config/logging.php\n\nUntracked files:\n (use \"git add <file>...\" to include in what will be committed)\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\t.env.nikilocal\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\t.env.other\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tWEBHOOK_FILTERING_IMPLEMENTATION.md\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tapp/Console/Commands/Crm/Hubspot/SimulateWebhooksCommand.php\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tapp/Console/Commands/Reports/CreateMockAskJiminnyReportResultCommand.php\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tids.txt\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tpublic/favicon.ico\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\traw_sql_query.sql\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\ttests/Unit/Policies/CanAccessAiReportsTest.php\n\nno changes added to commit (use \"git add\" and/or \"git commit -a\")\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20676-delete-report-related-objects) $ git push -u origin JY-20676-delete-report-related-objects\nEnumerating objects: 45, done.\nCounting objects: 100% (45/45), done.\nDelta compression using up to 8 threads\nCompressing objects: 100% (24/24), done.\nWriting objects: 100% (24/24), 3.62 KiB | 3.62 MiB/s, done.\nTotal 24 (delta 19), reused 0 (delta 0), pack-reused 0\nremote: Resolving deltas: 100% (19/19), completed with 19 local objects.\nremote: \nremote: Create a pull request for 'JY-20676-delete-report-related-objects' on GitHub by visiting:\nremote: https://github.com/jiminny/app/pull/new/JY-20676-delete-report-related-objects\nremote: \nTo github.com:jiminny/app.git\n * [new branch] JY-20676-delete-report-related-objects -> JY-20676-delete-report-related-objects\nbranch 'JY-20676-delete-report-related-objects' set up to track 'origin/JY-20676-delete-report-related-objects'.\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20676-delete-report-related-objects) $ csfix\ndocker exec -it docker_lamp_1 ./vendor/bin/php-cs-fixer fix --config=.php-cs-fixer.dist.php -v --using-cache=no --diff \nPHP CS Fixer 3.87.1 Alexander by Fabien Potencier, Dariusz Ruminski and contributors.\nPHP runtime: 8.3.30\nRunning analysis on 7 cores with 10 files per process.\nParallel runner is an experimental feature and may be unstable, use it at your own risk. Feedback highly appreciated!\nLoaded config default from \".php-cs-fixer.dist.php\".\n 5690/5690 [▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓] 100%\n\n 1) app/Http/Controllers/API/V2/AskJiminnyReportsController.php (blank_line_before_statement)\n ---------- begin diff ----------\n--- /home/jiminny/app/Http/Controllers/API/V2/AskJiminnyReportsController.php\n+++ /home/jiminny/app/Http/Controllers/API/V2/AskJiminnyReportsController.php\n@@ -140,6 +140,7 @@\n if ($enabled && $report->isAskJiminnyReport() && ! $report->canExecute()) {\n $error = 'This report is missing a saved search or prompt. ' .\n 'Edit the report to complete the setup before enabling it.';\n+\n return new JsonResponse(\n ['error' => $error],\n Response::HTTP_UNPROCESSABLE_ENTITY\n\n ----------- end diff -----------\n\n\nFixed 1 of 5690 files in 71.757 seconds, 60.00 MB memory used\n\nWhat's next:\n Try Docker Debug for seamless, persistent debugging tools in any container or image → docker debug docker_lamp_1\n Learn more at https://docs.docker.com/go/debug-cli/\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20676-delete-report-related-objects) $ git pull\nremote: Enumerating objects: 158, done.\nremote: Counting objects: 100% (103/103), done.\nremote: Compressing objects: 100% (37/37), done.\nremote: Total 158 (delta 80), reused 74 (delta 66), pack-reused 55 (from 3)\nReceiving objects: 100% (158/158), 80.59 KiB | 982.00 KiB/s, done.\nResolving deltas: 100% (85/85), completed with 45 local objects.\nFrom github.com:jiminny/app\n 02a33811ee..c6ce5e2440 JY-20676-delete-report-related-objects -> origin/JY-20676-delete-report-related-objects\n 7ce96cb5fe..6c59f04358 JY-20808-low-priority-indexing-queue -> origin/JY-20808-low-priority-indexing-queue\n 3906a9238a..2b5e6ea62b JY-20835-mcp-enable-users-to-get-a-list-of-deals-and-their-details -> origin/JY-20835-mcp-enable-users-to-get-a-list-of-deals-and-their-details\n 5604af40cf..ea3519f0e2 master -> origin/master\n * [new branch] switch-eu-assembly -> origin/switch-eu-assembly\nUpdating 02a33811ee..c6ce5e2440\nFast-forward\n app/Component/ES/ElasticSearchDocumentPartialUpdater.php | 48 ---\n app/Component/ParticipantSpeech/Services/ParticipantAttributionService.php | 4 +-\n app/Component/Settings/AutoScoring/Services/UpdateAutoScoreService.php | 20 +-\n app/Component/Transcription/Service/StorageService.php | 8 +-\n front-end/package.json | 2 +-\n front-end/src/components/DealInsights/Modals/AskAnythingModal.vue | 23 ++\n front-end/src/components/shared/AskAnything/AskAnythingPromptFormItem.vue | 2 +\n front-end/src/components/shared/AskAnything/AskAnythingSettingsDrawer.vue | 23 +-\n front-end/src/components/shared/AskAnything/__mocks__/AskAnythingSettingsDrawer.mocks.js | 1 +\n front-end/src/components/shared/AskAnything/__tests__/AskAnythingSettingsDrawer.spec.js | 135 ++++---\n front-end/src/components/shared/AskAnything/__tests__/__snapshots__/AskAnythingSettingsDrawer.spec.js.html | 1235 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++\n front-end/src/components/shared/AskAnything/__tests__/__snapshots__/AskAnythingSettingsDrawer.spec.js.snap | 1382 ----------------------------------------------------------------\n front-end/src/components/shared/AskAnything/prompts.js | 1 +\n front-end/src/components/shared/AskAnything/useAskAnything.js | 1 +\n front-end/yarn.lock | 8 +-\n tests/Unit/Component/ES/ElasticSearchDocumentPartialUpdaterTest.php | 42 --\n tests/Unit/Component/Settings/AutoScoring/Services/UpdateAutoScoreServiceTest.php | 86 ++--\n tests/Unit/Component/Transcription/Service/StorageServiceTest.php | 29 +-\n 18 files changed, 1448 insertions(+), 1602 deletions(-)\n delete mode 100644 app/Component/ES/ElasticSearchDocumentPartialUpdater.php\n create mode 100644 front-end/src/components/shared/AskAnything/__tests__/__snapshots__/AskAnythingSettingsDrawer.spec.js.html\n delete mode 100644 front-end/src/components/shared/AskAnything/__tests__/__snapshots__/AskAnythingSettingsDrawer.spec.js.snap\n delete mode 100644 tests/Unit/Component/ES/ElasticSearchDocumentPartialUpdaterTest.php\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20676-delete-report-related-objects) $ csfix\ndocker exec -it docker_lamp_1 ./vendor/bin/php-cs-fixer fix --config=.php-cs-fixer.dist.php -v --using-cache=no --diff \nPHP CS Fixer 3.87.1 Alexander by Fabien Potencier, Dariusz Ruminski and contributors.\nPHP runtime: 8.3.30\nRunning analysis on 7 cores with 10 files per process.\nParallel runner is an experimental feature and may be unstable, use it at your own risk. Feedback highly appreciated!\nLoaded config default from \".php-cs-fixer.dist.php\".\n 0/5688 [░░░░░░░░░░░░░░░░░░░░░░░░░░░░] 0%","depth":4,"on_screen":true,"value":"Last login: Mon May 18 09:17:28 on ttys007\n\nPoetry could not find a pyproject.toml file in /Users/lukas/jiminny/app or its parents\n\nPoetry could not find a pyproject.toml file in /Users/lukas/jiminny/app or its parents\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (pipedrive-sdk-poc) $ co master\nerror: Your local changes to the following files would be overwritten by checkout:\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tPIPEDRIVE_V2_MIGRATION_TICKETS.md\nPlease commit your changes or stash them before you switch branches.\nAborting\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (pipedrive-sdk-poc) $ git pull\nremote: Enumerating objects: 1047, done.\nremote: Counting objects: 100% (832/832), done.\nremote: Compressing objects: 100% (298/298), done.\nremote: Total 1047 (delta 634), reused 596 (delta 534), pack-reused 215 (from 3)\nReceiving objects: 100% (1047/1047), 353.16 KiB | 1.56 MiB/s, done.\nResolving deltas: 100% (687/687), completed with 107 local objects.\nFrom github.com:jiminny/app\n 907c54896c..34656c53ed pipedrive-sdk-poc -> origin/pipedrive-sdk-poc\n 03325ec50f..4e7078fd8b JY-18091-upgrade-to-php-8-5 -> origin/JY-18091-upgrade-to-php-8-5\n e7d231e163..bc6a3fce6b JY-20725-handle-HS-search-rate-limit -> origin/JY-20725-handle-HS-search-rate-limit\n * [new branch] JY-20749-user-can-view-recorded-meetings -> origin/JY-20749-user-can-view-recorded-meetings\n 98ca281a04..e0351be069 JY-20808-low-priority-indexing-queue -> origin/JY-20808-low-priority-indexing-queue\n 569abb5149..3906a9238a JY-20835-mcp-enable-users-to-get-a-list-of-deals-and-their-details -> origin/JY-20835-mcp-enable-users-to-get-a-list-of-deals-and-their-details\n ad6c2a86e8..50eb6afba9 JY-20846-mcp-enable-the-ai-to-know-details-about-the-user -> origin/JY-20846-mcp-enable-the-ai-to-know-details-about-the-user\n * [new branch] JY-20893-chunk-control-per-update-target -> origin/JY-20893-chunk-control-per-update-target\n 31c62924a5..cb4ebf0c36 master -> origin/master\nUpdating 907c54896c..34656c53ed\nFast-forward\n PIPEDRIVE_V2_MIGRATION_TICKETS.md | 52 ++++++++++++++++++++++++++++++++++++++++++++++++++++\n 1 file changed, 52 insertions(+)\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (pipedrive-sdk-poc) $ co master\nM\u0000\u0000\u0000\u0000\u0000\u0000\t.env.local\nM\u0000\u0000\u0000\u0000\u0000\u0000\tconfig/logging.php\nSwitched to branch 'master'\nYour branch is behind 'origin/master' by 31 commits, and can be fast-forwarded.\n (use \"git pull\" to update your local branch)\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (master) $ git pull\nUpdating 31c62924a5..cb4ebf0c36\nFast-forward\n app/Component/ES/Processor/Traits/SelectEntityListTrait.php | 20 ------\n app/Services/Calendar/CalendarActivityService.php | 46 +++++++++++++\n app/Services/Calendar/Command/MapActivityData.php | 106 +++-------------------------\n docs/mcp/explorer/explorer.html | 104 +++++++++++++++++++++++++---\n docs/mcp/explorer/explorer.template.html | 102 ++++++++++++++++++++++++---\n docs/mcp/tools-list.json | 373 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++-------\n docs/mcp/tools.md | 117 +++++++++++++++++++++++--------\n tests/Unit/Component/ES/AsyncUpdateElasticSearchTest.php | 16 +----\n tests/Unit/Component/ES/Listeners/UpdateMultipleTargetsListenerTest.php | 10 ---\n tests/Unit/Component/ES/Listeners/UpdateSingleTargetListenerTest.php | 6 --\n tests/Unit/Component/ES/Processor/TargetEntitiesSelectorTest.php | 9 ---\n tests/Unit/Component/ES/Processor/Traits/SelectEntityListTraitTest.php | 15 ++--\n tests/Unit/Component/ES/UpdateProcessManagerTest.php | 2 -\n tests/Unit/Services/Calendar/CalendarActivityServiceTest.php | 150 ++++++++++++++++++++++++++++++++++++++--\n tests/Unit/Services/Calendar/Command/MapActivityDataTest.php | 78 ++-------------------\n 15 files changed, 832 insertions(+), 322 deletions(-)\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (master) $ co -b JY-20613-allow-owner-role-on-team-setup\nSwitched to a new branch 'JY-20613-allow-owner-role-on-team-setup'\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20613-allow-owner-role-on-team-setup) $ csfix\ndocker exec -it docker_lamp_1 ./vendor/bin/php-cs-fixer fix --config=.php-cs-fixer.dist.php -v --using-cache=no --diff \nPHP CS Fixer 3.87.1 Alexander by Fabien Potencier, Dariusz Ruminski and contributors.\nPHP runtime: 8.3.30\nRunning analysis on 7 cores with 10 files per process.\nParallel runner is an experimental feature and may be unstable, use it at your own risk. Feedback highly appreciated!\nLoaded config default from \".php-cs-fixer.dist.php\".\n 5682/5682 [▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓] 100%\n\n\nFixed 0 of 5682 files in 56.978 seconds, 67.00 MB memory used\n\nWhat's next:\n Try Docker Debug for seamless, persistent debugging tools in any container or image → docker debug docker_lamp_1\n Learn more at https://docs.docker.com/go/debug-cli/\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20613-allow-owner-role-on-team-setup) $ ;xd\ndocker exec -it docker_lamp_1 bash -c \"mv /usr/local/etc/php/conf.d/xdebug.ini ~/xdebug.ini\"\n\nWhat's next:\n Try Docker Debug for seamless, persistent debugging tools in any container or image → docker debug docker_lamp_1\n Learn more at https://docs.docker.com/go/debug-cli/\ndocker exec -it docker_lamp_1 supervisorctl restart all\njiminny-worker-processing-2:jiminny-worker-processing-2_00: stopped\njiminny-worker-processing-3:jiminny-worker-processing-3_00: stopped\njiminny-worker-processing-4:jiminny-worker-processing-4_00: stopped\njiminny-worker-processing-5:jiminny-worker-processing-5_00: stopped\njiminny-worker-processing-delayed:jiminny-worker-processing-delayed_00: stopped\nworker-analytics:worker-analytics_00: stopped\nworker-crm-update:worker-crm-update_00: stopped\nworker-download:worker-download_00: stopped\nworker-nudges:worker-nudges_00: stopped\nartisan-schedule:artisan-schedule_00: stopped\nworker-emails:worker-emails_00: stopped\nworker-calendar:worker-calendar_00: stopped\nworker:worker_00: stopped\nworker-conferences:worker-conferences_00: stopped\nworker-crm-sync:worker-crm-sync_00: stopped\njiminny-worker-processing-1:jiminny-worker-processing-1_00: stopped\nworker-audio:worker-audio_00: stopped\nworker-es-update:worker-es-update_00: stopped\nartisan-schedule:artisan-schedule_00: started\njiminny-worker-processing-1:jiminny-worker-processing-1_00: started\njiminny-worker-processing-2:jiminny-worker-processing-2_00: started\njiminny-worker-processing-3:jiminny-worker-processing-3_00: started\njiminny-worker-processing-4:jiminny-worker-processing-4_00: started\njiminny-worker-processing-5:jiminny-worker-processing-5_00: started\njiminny-worker-processing-delayed:jiminny-worker-processing-delayed_00: started\nworker:worker_00: started\nworker-analytics:worker-analytics_00: started\nworker-audio:worker-audio_00: started\nworker-calendar:worker-calendar_00: started\nworker-conferences:worker-conferences_00: started\nworker-crm-sync:worker-crm-sync_00: started\nworker-crm-update:worker-crm-update_00: started\nworker-download:worker-download_00: started\nworker-emails:worker-emails_00: started\nworker-es-update:worker-es-update_00: started\nworker-nudges:worker-nudges_00: started\n\nWhat's next:\n Try Docker Debug for seamless, persistent debugging tools in any container or image → docker debug docker_lamp_1\n Learn more at https://docs.docker.com/go/debug-cli/\ndocker exec -it docker_lamp_1 php -v\nPHP 8.3.30 (cli) (built: Mar 16 2026 22:32:32) (NTS)\nCopyright (c) The PHP Group\nZend Engine v4.3.30, Copyright (c) Zend Technologies\n with Zend OPcache v8.3.30, Copyright (c), by Zend Technologies\n\nWhat's next:\n Try Docker Debug for seamless, persistent debugging tools in any container or image → docker debug docker_lamp_1\n Learn more at https://docs.docker.com/go/debug-cli/\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20613-allow-owner-role-on-team-setup) $ csfix\ndocker exec -it docker_lamp_1 ./vendor/bin/php-cs-fixer fix --config=.php-cs-fixer.dist.php -v --using-cache=no --diff \nPHP CS Fixer 3.87.1 Alexander by Fabien Potencier, Dariusz Ruminski and contributors.\nPHP runtime: 8.3.30\nRunning analysis on 7 cores with 10 files per process.\nParallel runner is an experimental feature and may be unstable, use it at your own risk. Feedback highly appreciated!\nLoaded config default from \".php-cs-fixer.dist.php\".\n 5682/5682 [▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓] 100%\n\n\nFixed 0 of 5682 files in 49.910 seconds, 60.00 MB memory used\n\nWhat's next:\n Try Docker Debug for seamless, persistent debugging tools in any container or image → docker debug docker_lamp_1\n Learn more at https://docs.docker.com/go/debug-cli/\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20613-allow-owner-role-on-team-setup) $ git status\nOn branch JY-20613-allow-owner-role-on-team-setup\nYour branch is ahead of 'origin/JY-20613-allow-owner-role-on-team-setup' by 1 commit.\n (use \"git push\" to publish your local commits)\n\nChanges not staged for commit:\n (use \"git add <file>...\" to update what will be committed)\n (use \"git restore <file>...\" to discard changes in working directory)\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tmodified: .env.local\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tmodified: config/logging.php\n\nUntracked files:\n (use \"git add <file>...\" to include in what will be committed)\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\t.env.nikilocal\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\t.env.other\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tWEBHOOK_FILTERING_IMPLEMENTATION.md\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tapp/Console/Commands/Crm/Hubspot/SimulateWebhooksCommand.php\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tapp/Console/Commands/Reports/CreateMockAskJiminnyReportResultCommand.php\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tids.txt\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tpublic/favicon.ico\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\traw_sql_query.sql\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\ttests/Unit/Policies/CanAccessAiReportsTest.php\n\nno changes added to commit (use \"git add\" and/or \"git commit -a\")\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20613-allow-owner-role-on-team-setup) $ git pull\nremote: Enumerating objects: 248, done.\nremote: Counting objects: 100% (128/128), done.\nremote: Compressing objects: 100% (23/23), done.\nremote: Total 59 (delta 43), reused 44 (delta 33), pack-reused 0 (from 0)\nUnpacking objects: 100% (59/59), 10.48 KiB | 228.00 KiB/s, done.\nFrom github.com:jiminny/app\n b7df560451..190239dfd4 JY-20613-allow-owner-role-on-team-setup -> origin/JY-20613-allow-owner-role-on-team-setup\n e0351be069..d94a285ae7 JY-20808-low-priority-indexing-queue -> origin/JY-20808-low-priority-indexing-queue\n * [new branch] JY-20920-fix-participant-matcher -> origin/JY-20920-fix-participant-matcher\n cb4ebf0c36..90bca4e4b2 master -> origin/master\nMerge made by the 'ort' strategy.\n app/Component/ES/ChunkSize.php | 54 +++++++++++++++++++++++++++\n app/Component/ES/Processor/DTOs/SelectionList.php | 4 +-\n app/Component/ES/Processor/TargetEntitiesSelector.php | 19 ++++++----\n app/Http/Middleware/McpTierMiddleware.php | 27 +++-----------\n app/Mcp/Servers/JiminnyServer.php | 2 +\n app/Mcp/Tools/GetMeTool.php | 157 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++\n app/Models/Feature/FeatureEnum.php | 1 +\n database/migrations/2026_05_13_124153_create_mcp_feature_flag.php | 25 +++++++++++++\n front-end/src/components/Settings/Kiosk/modals/EditTeamModal/EditTeamModal.vue | 52 ++++++++++++++++++--------\n front-end/src/components/Settings/Kiosk/modals/EditTeamModal/__tests__/EditTeamModal.spec.js | 14 +++++++\n tests/Feature/Mcp/GetMeToolFeatureTest.php | 140 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++\n tests/Feature/Mcp/ListCallsToolFeatureTest.php | 2 +-\n tests/Feature/Mcp/McpTestHelpersTrait.php | 19 +++++++++-\n tests/Unit/Component/ES/ChunkSizeTest.php | 50 +++++++++++++++++++++++++\n tests/Unit/Component/ES/Processor/DTOs/SelectionListTest.php | 27 ++++++++++----\n tests/Unit/Component/ES/Processor/TargetEntitiesSelectorTest.php | 39 +++++++++++---------\n 16 files changed, 557 insertions(+), 75 deletions(-)\n create mode 100644 app/Component/ES/ChunkSize.php\n create mode 100644 app/Mcp/Tools/GetMeTool.php\n create mode 100644 database/migrations/2026_05_13_124153_create_mcp_feature_flag.php\n create mode 100644 tests/Feature/Mcp/GetMeToolFeatureTest.php\n create mode 100644 tests/Unit/Component/ES/ChunkSizeTest.php\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20613-allow-owner-role-on-team-setup) $ git push\nEnumerating objects: 40, done.\nCounting objects: 100% (34/34), done.\nDelta compression using up to 8 threads\nCompressing objects: 100% (18/18), done.\nWriting objects: 100% (18/18), 1.58 KiB | 1.58 MiB/s, done.\nTotal 18 (delta 15), reused 0 (delta 0), pack-reused 0\nremote: Resolving deltas: 100% (15/15), completed with 13 local objects.\nTo github.com:jiminny/app.git\n 190239dfd4..ec1b261264 JY-20613-allow-owner-role-on-team-setup -> JY-20613-allow-owner-role-on-team-setup\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20613-allow-owner-role-on-team-setup) $ gbr\n* JY-20613-allow-owner-role-on-team-setup\n pipedrive-sdk-poc\n master\n JY-20903-update_activity-stage-on-opportunity-change\n JY-20904-fix-update-es-on-activity-command\n JY-20891-improve-sms-text-relays\n JY-20725-handle-HS-search-rate-limit\n JY-20818-move-AJ-reports-to-separated-datadog-metric\n JY-20773-fix-automated-reports-user-pilot-tracking\n JY-20157-AJ-report-not-send-notification\n JY-20508-notify-before-AJ-report-expiration\n JY-20372-ai-reports-promotion-pages\n JY-20352-sync-opportunities-without-a-local-owner-user-id-is-null\n JY-20738-debug-AJ-tracking-UP\n a\n JY-18909-automated-reports-ask-jiminny\n JY-20692-fix-integration-app-token-auth-response-change\n JY-20553-debug-crm-sync-delays\n JY-20698-fix-SF-activity-types-on-new-playbook\n JY-20543-AJ-report-tracking\n JY-20384-handle-auto-sync-with-no-access-to-event-type\n JY-20458-ask-jiminny-user-definitions\n JY-19666-fix-import-contacts-account-association\n JY-19666-HS-import-contacts-and-accounts-batch-job\n JY-20458-Ask-Jiminny-Reports\n JY-20200-batch-update-CRM-objects-Salesforce\n JY-19666-HS-webhooks-add-contact-and-company\n JY-20348-trigger-setup-DI-layout-on-team-creation\n JY-20326-refactor-info-message-in-command\n JY-20317-fix-auto-log-delay-issue-on-all-channels-disabled\n JY-20312-remove-on-update-change-last-synced-at-crm-configurations\n JY-20306-SF-skip-auto-sync-for-task-based-playbook\n JY-20192-remove-deleted-team-from-saved-search-filters\n JY-20197-import-opportunity-batch-job\n JY-20293-enable-status-field-for-pipedrive-deals\n JY-20191-remove-commands-interactive-prompts\n JY-20118-change-default-sync-strategy\n JY-20183-add-cache-on-auto-log-delay\n JY-20197-add-import-opportunity-batch-job\n 20118-hs-opportunity-make-webhook-strategy-default\n JY-20118-make-default-hs-opportunity-sync-strategy-webhook-based\n JY-20196-handle-opportunity-without-note\n JY-20118-improve-opportunity-import\n JY-20189-handle-activity-search-on-deleted-groups\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20613-allow-owner-role-on-team-setup) $ co JY-20725-handle-HS-search-rate-limit\nM\u0000\u0000\u0000\u0000\u0000\u0000\t.env.local\nM\u0000\u0000\u0000\u0000\u0000\u0000\tconfig/logging.php\nSwitched to branch 'JY-20725-handle-HS-search-rate-limit'\nYour branch is behind 'origin/JY-20725-handle-HS-search-rate-limit' by 439 commits, and can be fast-forwarded.\n (use \"git pull\" to update your local branch)\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20725-handle-HS-search-rate-limit) $ git pull\nUpdating 0f3e438941..bc6a3fce6b\nFast-forward\n .gitignore | 3 +-\n .windsurfrules | 168 ++---\n CLAUDE.md | 1 +\n app/Component/ActivityAnalytics/Service/CalculateTalkTimeOffsetsFromTranscription.php | 24 +-\n app/Component/AiActivityType/Services/AiActivityTypeEligibilityChecker.php | 28 +-\n app/Component/AiAutomation/Actions/PrepareUpdateDtoAction.php | 32 +-\n app/Component/AiAutomation/Services/CrmFillingEligibilityChecker.php | 47 ++\n app/Component/AiAutomation/TestCrmAiPromptService.php | 14 +\n app/Component/AiCallScoring/Services/AiCallScoringEligibilityChecker.php | 9 +\n app/Component/ES/ElasticSearchDocumentPartialUpdater.php | 13 +-\n app/Component/ES/ElasticSearchWorkerManager.php | 86 ---\n app/Component/ES/Processor/Actions/LoadDocumentsAction.php | 80 +--\n app/Component/ES/Processor/EntityQueryBuilder.php | 12 +-\n app/Component/ES/Processor/TargetEntitiesSelector.php | 2 +-\n app/Component/ES/Processor/Traits/SkipActivityTrait.php | 25 -\n app/Component/ES/Repositories/EsResetActivityRepository.php | 11 +-\n app/Component/ES/Worker/ActivityWorker.php | 73 --\n app/Component/ES/Worker/EntityWorker.php | 44 --\n app/Component/ES/Worker/WorkerAmount.php | 60 --\n app/Component/ES/Worker/WorkerInterface.php | 15 -\n app/Component/ElasticSearch/Contract/Searchable.php | 4 +\n app/Component/Encoding/Job/AnalyzeTrackChannelsJob.php | 20 +-\n app/Component/Encoding/Service/GenerateSpeechFromSilenceService.php | 85 ++-\n app/Component/FFMpeg/Services/GetSpeechIntervalsService.php | 18 +-\n app/Component/LanguageDetection/Services/FindSpeechTimeService.php | 22 +-\n app/Component/Nudge/Job/ProcessOrganisationImmediateNudgesJob.php | 218 +++++-\n app/Component/ParagraphBreaker/Services/TranscriptionParagraphsService.php | 4 +\n app/Component/ParticipantSpeech/Services/ParticipantSpeechesCreator.php | 33 +\n app/Component/ParticipantSpeech/Services/ParticipantSpeechesDeleter.php | 15 +\n app/Component/ParticipantSpeech/Services/ParticipantSpeechesProvider.php | 51 +-\n app/Component/ParticipantSpeech/Services/ParticipantSpeechesUploader.php | 36 +\n app/Component/ProphetAi/Exceptions/InsufficientTranscriptException.php | 11 +\n app/Component/Transcription/DTO/Http/Transcription/AssemblyAI/AssemblyAI/NoAssemblyIdException.php | 11 +\n app/Component/Transcription/DTO/Http/Transcription/AssemblyAI/AssemblyAI/SuccessfulResponse.php | 6 +\n app/Component/Transcription/DTO/Http/Transcription/TranscriptionIsNotCorrectFormatException.php | 11 +\n app/Component/Transcription/Diarization/Services/GetNormalizedParticipantSpeechesService.php | 23 +-\n app/Component/Transcription/Diarization/Source/MeetingBotSource.php | 16 +-\n app/Component/Transcription/TranscriptionProcessor/TranscriptionProcessor.php | 3 +\n app/Console/Commands/Activities/ActivityHardDeleteCommand.php | 4 +-\n app/Console/Commands/Activities/Copy.php | 2 +\n app/Console/Commands/Activities/SetupIntegration/TwilioSetS3RecordingCredentialsCommand.php | 119 ++++\n app/Console/Commands/Activities/UpdateActivityElasticSearchDocumentCommand.php | 10 +-\n app/Console/Commands/Crm/BackfillOpportunityUserFromAccountCommand.php | 126 ++++\n app/Console/Commands/Elasticsearch/AsyncUpdateEsActivities.php | 19 -\n app/Console/Commands/Elasticsearch/AsyncUpdateEsEntities.php | 50 +-\n app/Console/Commands/Elasticsearch/ResetAsyncElasticSearchCommand.php | 30 +-\n app/Console/Commands/GeckoExport/GeckoExportParticipantSpeechesCommand.php | 14 +-\n app/Console/Commands/IssueMcpTokenCommand.php | 84 +++\n app/Console/Commands/JiminnyDebugCommand.php | 7 +-\n app/Console/Commands/Tracks/CleanupActivityTracksCommand.php | 2 +-\n app/Console/Kernel.php | 6 +-\n app/Contracts/Services/Calendar/CalendarTrait.php | 80 ++-\n app/Events/AutomatedReports/AutomatedReportGenerated.php | 3 +\n app/Http/Controllers/API/AiCallScoring/AiScorecardController.php | 7 +-\n app/Http/Controllers/API/TeamAiAutomationController.php | 8 +\n app/Http/Controllers/CustomerApi/CustomerApiController.php | 4 +-\n app/Http/Controllers/Kiosk/ActivityController.php | 58 +-\n app/Http/Controllers/Settings/PlaybookController.php | 15 +-\n app/Http/Kernel.php | 23 +\n app/Http/Middleware/McpAuditMiddleware.php | 156 ++++\n app/Http/Middleware/McpTierMiddleware.php | 54 ++\n app/Http/Requests/API/V2/ZapierUploadActivityRequest.php | 28 +-\n app/Jobs/Activity/Import/ImportTwilioVideoSpeechesJob.php | 25 +-\n app/Jobs/Activity/Import/IsActivityReadyForProcessingJob.php | 10 +-\n app/Jobs/Calendar/SetupCalendarSync.php | 21 +-\n app/Jobs/ImportRemoteTrackJob.php | 96 ++-\n app/Jobs/Mailbox/EmailTextRelay.php | 15 +-\n app/Mcp/Contracts/McpCallRepositoryInterface.php | 30 +\n app/Mcp/DTO/ListCallsFilters.php | 29 +\n app/Mcp/Errors/McpError.php | 123 ++++\n app/Mcp/Repositories/McpActivityHydrator.php | 145 ++++\n app/Mcp/Repositories/McpCallRepository.php | 84 +++\n app/Mcp/Repositories/McpElasticCallRepository.php | 171 +++++\n app/Mcp/Servers/JiminnyServer.php | 38 +\n app/Mcp/Tools/ListCallsTool.php | 205 ++++++\n app/Models/Activity.php | 10 +-\n app/Models/Activity/Transcription.php | 17 +-\n app/Models/ElasticSearch/OpportunityElasticSearchTrait.php | 5 +\n app/Models/Participant.php | 1 +\n app/Providers/AppServiceProvider.php | 22 +\n app/Repositories/Crm/ContactRepository.php | 69 +-\n app/Repositories/ParticipantSpeechRepository.php | 13 +-\n app/Services/Activity/ParticipantsService.php | 19 +-\n app/Services/Activity/Twilio/S3RecordingCredentialsService.php | 82 +++\n app/Services/ActivityService.php | 21 +-\n app/Services/Calendar/CalendarActivityService.php | 46 ++\n app/Services/Calendar/Command/ImportParticipants.php | 1 +\n app/Services/Calendar/Command/MapActivityData.php | 106 +--\n app/Services/Calendar/GoogleCalendarService.php | 12 +-\n app/Services/Crm/Close/Processor/OpportunityProcessor.php | 2 +-\n app/Services/Crm/Close/Service.php | 22 +-\n app/Services/Crm/Copper/Service.php | 12 +-\n app/Services/Crm/Hubspot/Service.php | 154 +++-\n app/Services/Crm/Hubspot/ServiceTraits/OpportunitySyncTrait.php | 88 ++-\n app/Services/Crm/IntegrationApp/ServiceTraits/SyncCrmEntitiesTrait.php | 22 +-\n app/Services/Crm/Pipedrive/Service.php | 17 +-\n app/Services/Crm/Salesforce/Service.php | 42 +-\n app/Services/Mail/Office/EmailApiClient.php | 129 +---\n app/Services/RecallAI/Commands/ScheduleBotCommand.php | 39 +-\n app/Services/RecallAI/RecallAIService.php | 22 +-\n composer.json | 3 +-\n composer.lock | 87 ++-\n config/mcp.php | 23 +\n database/migrations/2026_04_30_120000_create_mcp_audit_log_table.php | 36 +\n docs/mcp/explorer/explorer.html | 697 ++++++++++++++++++\n docs/mcp/explorer/explorer.template.html | 697 ++++++++++++++++++\n docs/mcp/explorer/generate.js | 215 ++++++\n docs/mcp/explorer/tool-explorer-meta.json | 11 +\n docs/mcp/tools-list.json | 2536 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++\n docs/mcp/tools.md | 621 ++++++++++++++++\n front-end/package.json | 4 +-\n front-end/src/components/Settings/OrgSettings/AiAutomation/CrmFilling/TemplateFieldForm.vue | 28 +-\n front-end/src/components/Settings/OrgSettings/Playbooks/AddEditPlaybook.vue | 10 +\n front-end/src/components/playback/comments/ActivityComment.less | 10 +-\n front-end/src/components/shared/PromptTester/PromptTester.vue | 12 +-\n front-end/src/components/shared/__tests__/PromptTester.spec.js | 35 +\n front-end/src/components/shared/modals/EntityPickerModal/__tests__/useEntitiesCache.spec.ts | 37 +\n front-end/src/components/shared/modals/EntityPickerModal/useEntitiesCache.ts | 9 +\n front-end/yarn.lock | 16 +-\n phpstan-baseline.neon | 50 --\n routes/api.php | 11 +\n sonar-project.properties | 91 ++-\n tests/Feature/Component/Nudge/ProcessOrganisationImmediateNudgesJobTest.php | 534 ++++++++++++++\n tests/Feature/Jobs/ImportRemoteTrackJobTest.php | 283 +++++++-\n tests/Feature/Mcp/IssueMcpTokenCommandTest.php | 53 ++\n tests/Feature/Mcp/ListCallsToolElasticFeatureTest.php | 155 ++++\n tests/Feature/Mcp/ListCallsToolFeatureTest.php | 352 ++++++++++\n tests/Feature/Mcp/McpTestHelpersTrait.php | 77 ++\n tests/Feature/Services/Team/TeamDeleteHandlers/Retention/RetentionRepositoryHandlerTest.php | 1 +\n tests/Stubs/SentryStub.php | 18 +\n tests/Unit/Component/ActivityAnalytics/Service/CalculateTalkTimeOffsetFromTranscriptionTest.php | 28 +-\n tests/Unit/Component/AiActivityType/Services/AiActivityTypeEligibilityCheckerTest.php | 103 ++-\n tests/Unit/Component/AiAutomation/Actions/PrepareUpdateDtoActionTest.php | 91 +++\n tests/Unit/Component/AiAutomation/Services/CrmFillingEligibilityCheckerTest.php | 124 ++++\n tests/Unit/Component/AiAutomation/TestCrmAiPromptServiceTest.php | 67 +-\n tests/Unit/Component/AiCallScoring/Services/AiCallScoringEligibilityCheckerTest.php | 55 ++\n tests/Unit/Component/ES/ElasticSearchWorkerManagerTest.php | 135 ----\n tests/Unit/Component/ES/Processor/Actions/LoadDocumentsActionTest.php | 220 ++++++\n tests/Unit/Component/ES/Processor/EntityQueryBuilderTest.php | 21 +-\n tests/Unit/Component/ES/Processor/Traits/SkipActivityTraitTest.php | 51 --\n tests/Unit/Component/ES/Worker/ActivityWorkerTest.php | 174 -----\n tests/Unit/Component/ES/Worker/EntityWorkerTest.php | 97 ---\n tests/Unit/Component/ES/Worker/WorkerAmountTest.php | 116 ---\n tests/Unit/Component/Encoding/Job/AnalyzeTrackChannelsJobTest.php | 52 +-\n tests/Unit/Component/Encoding/Service/GenerateSpeechFromSilenceServiceTest.php | 171 ++---\n tests/Unit/Component/FFMpeg/Services/GetSpeechIntervalsTest.php | 36 +-\n tests/Unit/Component/LanguageDetection/Services/FindSpeechTimeServiceTest.php | 20 +-\n tests/Unit/Component/MobileSettings/MobileSettingsControllerTest.php | 5 +-\n tests/Unit/Component/ParticipantSpeech/Services/ParticipantSpeechesCreatorTest.php | 75 ++\n tests/Unit/Component/ParticipantSpeech/Services/ParticipantSpeechesDeleterTest.php | 63 ++\n tests/Unit/Component/ParticipantSpeech/Services/ParticipantSpeechesProviderTest.php | 134 ++++\n tests/Unit/Component/ParticipantSpeech/Services/ParticipantSpeechesUploaderTest.php | 57 ++\n tests/Unit/Component/Transcription/Diarization/Services/GetNormalizedParticipantSpeechesServiceTest.php | 51 +-\n tests/Unit/Component/Transcription/Diarization/Source/MeetingBotSourceTest.php | 29 +-\n tests/Unit/Contracts/Services/Calendar/CalendarTraitTest.php | 58 +-\n tests/Unit/Http/Controllers/Kiosk/ActivityControllerTest.php | 159 +++++\n tests/Unit/Jobs/Activity/Import/ImportTwilioVideoSpeechesJobTest.php | 22 +-\n tests/Unit/Jobs/Activity/Import/IsActivityReadyForProcessingJobTest.php | 26 +-\n tests/Unit/Jobs/Calendar/SetupCalendarSyncTest.php | 25 -\n tests/Unit/Services/Activity/ParticipantsServiceTest.php | 12 +-\n tests/Unit/Services/Activity/Twilio/S3RecordingCredentialsServiceTest.php | 180 +++++\n tests/Unit/Services/ActivityServiceTest.php | 132 ++++\n tests/Unit/Services/Calendar/CalendarActivityServiceTest.php | 150 +++-\n tests/Unit/Services/Calendar/Command/ImportParticipantsTest.php | 6 +-\n tests/Unit/Services/Calendar/Command/MapActivityDataTest.php | 78 +-\n tests/Unit/Services/Calendar/GoogleCalendarServiceTest.php | 116 +++\n tests/Unit/Services/Crm/Close/ServiceTest.php | 165 +++++\n tests/Unit/Services/Crm/Hubspot/ServiceTest.php | 272 ++++++-\n tests/Unit/Services/Crm/Hubspot/ServiceTraits/OpportunitySyncTest.php | 25 +-\n tests/Unit/Services/Crm/Hubspot/ServiceTraits/OpportunitySyncTraitMatchActivitiesTest.php | 3 +-\n tests/Unit/Services/Crm/IntegrationApp/ServiceTraits/SyncCrmEntitiesTraitOpportunitiesTest.php | 40 ++\n tests/Unit/Services/Crm/Pipedrive/ImportOpportunityMatchActivitiesTest.php | 2 +\n tests/Unit/Services/Crm/Salesforce/ServiceTest.php | 139 ++++\n tests/Unit/Services/Mail/Office/EmailApiClientTest.php | 195 ++---\n tests/Unit/Services/RecallAI/RecallAIServiceTest.php | 24 +-\n 175 files changed, 12562 insertions(+), 2162 deletions(-)\n create mode 120000 CLAUDE.md\n create mode 100644 app/Component/AiAutomation/Services/CrmFillingEligibilityChecker.php\n delete mode 100644 app/Component/ES/ElasticSearchWorkerManager.php\n delete mode 100644 app/Component/ES/Processor/Traits/SkipActivityTrait.php\n delete mode 100644 app/Component/ES/Worker/ActivityWorker.php\n delete mode 100644 app/Component/ES/Worker/EntityWorker.php\n delete mode 100644 app/Component/ES/Worker/WorkerAmount.php\n delete mode 100644 app/Component/ES/Worker/WorkerInterface.php\n create mode 100644 app/Component/ProphetAi/Exceptions/InsufficientTranscriptException.php\n create mode 100644 app/Component/Transcription/DTO/Http/Transcription/AssemblyAI/AssemblyAI/NoAssemblyIdException.php\n create mode 100644 app/Component/Transcription/DTO/Http/Transcription/TranscriptionIsNotCorrectFormatException.php\n create mode 100644 app/Console/Commands/Activities/SetupIntegration/TwilioSetS3RecordingCredentialsCommand.php\n create mode 100644 app/Console/Commands/Crm/BackfillOpportunityUserFromAccountCommand.php\n delete mode 100644 app/Console/Commands/Elasticsearch/AsyncUpdateEsActivities.php\n create mode 100644 app/Console/Commands/IssueMcpTokenCommand.php\n create mode 100644 app/Http/Middleware/McpAuditMiddleware.php\n create mode 100644 app/Http/Middleware/McpTierMiddleware.php\n create mode 100644 app/Mcp/Contracts/McpCallRepositoryInterface.php\n create mode 100644 app/Mcp/DTO/ListCallsFilters.php\n create mode 100644 app/Mcp/Errors/McpError.php\n create mode 100644 app/Mcp/Repositories/McpActivityHydrator.php\n create mode 100644 app/Mcp/Repositories/McpCallRepository.php\n create mode 100644 app/Mcp/Repositories/McpElasticCallRepository.php\n create mode 100644 app/Mcp/Servers/JiminnyServer.php\n create mode 100644 app/Mcp/Tools/ListCallsTool.php\n create mode 100644 app/Services/Activity/Twilio/S3RecordingCredentialsService.php\n create mode 100644 config/mcp.php\n create mode 100644 database/migrations/2026_04_30_120000_create_mcp_audit_log_table.php\n create mode 100644 docs/mcp/explorer/explorer.html\n create mode 100644 docs/mcp/explorer/explorer.template.html\n create mode 100644 docs/mcp/explorer/generate.js\n create mode 100644 docs/mcp/explorer/tool-explorer-meta.json\n create mode 100644 docs/mcp/tools-list.json\n create mode 100644 docs/mcp/tools.md\n create mode 100644 front-end/src/components/shared/modals/EntityPickerModal/__tests__/useEntitiesCache.spec.ts\n create mode 100644 tests/Feature/Component/Nudge/ProcessOrganisationImmediateNudgesJobTest.php\n create mode 100644 tests/Feature/Mcp/IssueMcpTokenCommandTest.php\n create mode 100644 tests/Feature/Mcp/ListCallsToolElasticFeatureTest.php\n create mode 100644 tests/Feature/Mcp/ListCallsToolFeatureTest.php\n create mode 100644 tests/Feature/Mcp/McpTestHelpersTrait.php\n create mode 100644 tests/Stubs/SentryStub.php\n create mode 100644 tests/Unit/Component/AiAutomation/Services/CrmFillingEligibilityCheckerTest.php\n delete mode 100644 tests/Unit/Component/ES/ElasticSearchWorkerManagerTest.php\n create mode 100644 tests/Unit/Component/ES/Processor/Actions/LoadDocumentsActionTest.php\n delete mode 100644 tests/Unit/Component/ES/Processor/Traits/SkipActivityTraitTest.php\n delete mode 100644 tests/Unit/Component/ES/Worker/ActivityWorkerTest.php\n delete mode 100644 tests/Unit/Component/ES/Worker/EntityWorkerTest.php\n delete mode 100644 tests/Unit/Component/ES/Worker/WorkerAmountTest.php\n create mode 100644 tests/Unit/Component/ParticipantSpeech/Services/ParticipantSpeechesCreatorTest.php\n create mode 100644 tests/Unit/Http/Controllers/Kiosk/ActivityControllerTest.php\n create mode 100644 tests/Unit/Services/Activity/Twilio/S3RecordingCredentialsServiceTest.php\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20725-handle-HS-search-rate-limit) $ git status\nOn branch master\nYour branch is behind 'origin/master' by 114 commits, and can be fast-forwarded.\n (use \"git pull\" to update your local branch)\n\nChanges not staged for commit:\n (use \"git add <file>...\" to update what will be committed)\n (use \"git restore <file>...\" to discard changes in working directory)\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tmodified: .env.local\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tmodified: app/Component/SCIM/Constants.php\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tmodified: app/Component/SCIM/ScimProvisioning.php\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tmodified: app/Component/Twilio/Conference/ConferenceManager/SoftPhoneManager.php\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tmodified: app/Console/Commands/JiminnyDebugCommand.php\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tmodified: app/DTO/SCIM/AAD/Request/CoreUserRequest.php\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tmodified: app/DTO/SCIM/AAD/Response/CoreUser.php\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tmodified: app/Services/Telephony/TextMessagingService.php\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tmodified: config/logging.php\n\nUntracked files:\n (use \"git add <file>...\" to include in what will be committed)\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\t.env.nikilocal\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\t.env.other\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tWEBHOOK_FILTERING_IMPLEMENTATION.md\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tapp/Component/SCIM/Mutators/Attributes/User/RoleAttr.php\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tapp/Console/Commands/Crm/Hubspot/SimulateWebhooksCommand.php\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tapp/Console/Commands/Reports/CreateMockAskJiminnyReportResultCommand.php\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tapp/Rules/ListenerRoleCannotHaveAdminOrManagerPermissionRule.php\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tids.txt\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tpublic/favicon.ico\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\traw_sql_query.sql\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\ttests/Unit/Component/SCIM/Mutators/Attributes/User/RoleAttrTest.php\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\ttests/Unit/Policies/CanAccessAiReportsTest.php\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\ttests/Unit/Rules/ListenerRoleCannotHaveAdminOrManagerPermissionRuleTest.php\n\nno changes added to commit (use \"git add\" and/or \"git commit -a\")\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (master) $ git pull\nremote: Enumerating objects: 306, done.\nremote: Counting objects: 100% (299/299), done.\nremote: Compressing objects: 100% (183/183), done.\nremote: Total 306 (delta 213), reused 171 (delta 116), pack-reused 7 (from 1)\nReceiving objects: 100% (306/306), 80.12 KiB | 1000.00 KiB/s, done.\nResolving deltas: 100% (213/213), completed with 53 local objects.\nFrom github.com:jiminny/app\n 90bca4e4b2..5604af40cf master -> origin/master\n 4e7078fd8b..0b8343d179 JY-18091-upgrade-to-php-8-5 -> origin/JY-18091-upgrade-to-php-8-5\n 098eeaa087..d5a447e492 JY-20613-allow-owner-role-on-team-setup -> origin/JY-20613-allow-owner-role-on-team-setup\n c3a76ace91..af65249d0f JY-20749-user-can-view-recorded-meetings -> origin/JY-20749-user-can-view-recorded-meetings\n d94a285ae7..7ce96cb5fe JY-20808-low-priority-indexing-queue -> origin/JY-20808-low-priority-indexing-queue\n * [new branch] JY-20842-remove-partial-updater -> origin/JY-20842-remove-partial-updater\n * [new branch] JY-20920-fix-participant-flip -> origin/JY-20920-fix-participant-flip\n * [new branch] secfix/npm-20260519 -> origin/secfix/npm-20260519\nUpdating cb4ebf0c36..5604af40cf\nFast-forward\n app/Component/ES/ChunkSize.php | 54 +++++++++++++++++++\n app/Component/ES/Processor/DTOs/SelectionList.php | 4 +-\n app/Component/ES/Processor/TargetEntitiesSelector.php | 19 ++++---\n app/Component/MeetingBot/Service/ParticipantMatcher.php | 46 ++++++++++++----\n app/Exceptions/RateLimitException.php | 19 ++++++-\n app/Http/Middleware/McpTierMiddleware.php | 27 ++--------\n app/Jobs/Crm/MatchActivityCrmData.php | 47 ++++++++++++----\n app/Jobs/Middleware/HandleHubspotRateLimit.php | 42 +++++++++++++++\n app/Mcp/Servers/JiminnyServer.php | 2 +\n app/Mcp/Tools/GetMeTool.php | 157 +++++++++++++++++++++++++++++++++++++++++++++++++++++\n app/Models/Feature/FeatureEnum.php | 1 +\n app/Services/Activity/HubSpot/ProviderResolver.php | 4 +-\n app/Services/Activity/HubSpot/ProviderResolverInterface.php | 2 +-\n app/Services/Activity/HubSpot/Providers/Provider.php | 2 +-\n app/Services/Activity/HubSpot/Providers/ProviderKixie.php | 2 +-\n app/Services/Activity/HubSpot/Providers/ProviderOrum.php | 2 +-\n app/Services/Activity/HubSpot/Providers/ProviderTwilio.php | 2 +-\n app/Services/Activity/HubSpot/Providers/ProviderTwilioFlex.php | 5 +-\n app/Services/Activity/HubSpot/Service.php | 97 +++++++++++++++++++++++++++------\n app/Services/Crm/Hubspot/Client.php | 132 +++++++++++++++++++++++++++++++++++++++++++++\n app/Services/Crm/Hubspot/HubspotClientInterface.php | 15 ++++++\n app/Services/Crm/Hubspot/Pagination/HubspotPaginationService.php | 21 ++++----\n app/Services/Crm/Hubspot/Pagination/PaginationState.php | 2 +-\n database/migrations/2026_05_13_124153_create_mcp_feature_flag.php | 25 +++++++++\n tests/Feature/Mcp/GetMeToolFeatureTest.php | 140 +++++++++++++++++++++++++++++++++++++++++++++++\n tests/Feature/Mcp/ListCallsToolFeatureTest.php | 2 +-\n tests/Feature/Mcp/McpTestHelpersTrait.php | 19 ++++++-\n tests/Unit/Component/ES/ChunkSizeTest.php | 50 +++++++++++++++++\n tests/Unit/Component/ES/Processor/DTOs/SelectionListTest.php | 27 +++++++---\n tests/Unit/Component/ES/Processor/TargetEntitiesSelectorTest.php | 39 ++++++++------\n tests/Unit/Component/MeetingBot/Service/ParticipantMatcherTest.php | 68 ++++++++++++++++++++++-\n tests/Unit/Exceptions/RateLimitExceptionTest.php | 56 +++++++++++++++++++\n tests/Unit/Jobs/Crm/MatchActivityCrmDataTest.php | 8 +--\n tests/Unit/Jobs/Middleware/HandleHubspotRateLimitTest.php | 151 +++++++++++++++++++++++++++++++++++++++++++++++++++\n tests/Unit/Services/Activity/HubSpot/ServiceTest.php | 109 +++++++++++++++++++++++++++++++++++++\n tests/Unit/Services/Crm/Hubspot/ClientTest.php | 250 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++\n tests/Unit/Services/Crm/Hubspot/Pagination/HubspotPaginationServiceTest.php | 283 +++++++++++++++++++++---------------------------------------------------------------------------\n 37 files changed, 1587 insertions(+), 344 deletions(-)\n create mode 100644 app/Component/ES/ChunkSize.php\n create mode 100644 app/Jobs/Middleware/HandleHubspotRateLimit.php\n create mode 100644 app/Mcp/Tools/GetMeTool.php\n create mode 100644 database/migrations/2026_05_13_124153_create_mcp_feature_flag.php\n create mode 100644 tests/Feature/Mcp/GetMeToolFeatureTest.php\n create mode 100644 tests/Unit/Component/ES/ChunkSizeTest.php\n create mode 100644 tests/Unit/Exceptions/RateLimitExceptionTest.php\n create mode 100644 tests/Unit/Jobs/Middleware/HandleHubspotRateLimitTest.php\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (master) $ git pull\nAlready up to date.\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (master) $ co -b JY-20676-delete-report-related-objects\nSwitched to a new branch 'JY-20676-delete-report-related-objects'\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20676-delete-report-related-objects) $ csfix\ndocker exec -it docker_lamp_1 ./vendor/bin/php-cs-fixer fix --config=.php-cs-fixer.dist.php -v --using-cache=no --diff \nPHP CS Fixer 3.87.1 Alexander by Fabien Potencier, Dariusz Ruminski and contributors.\nPHP runtime: 8.3.30\nRunning analysis on 7 cores with 10 files per process.\nParallel runner is an experimental feature and may be unstable, use it at your own risk. Feedback highly appreciated!\nLoaded config default from \".php-cs-fixer.dist.php\".\n 5690/5690 [▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓] 100%\n\n 1) app/Console/Commands/JiminnyDebugCommand.php (statement_indentation, blank_line_before_statement)\n ---------- begin diff ----------\n--- /home/jiminny/app/Console/Commands/JiminnyDebugCommand.php\n+++ /home/jiminny/app/Console/Commands/JiminnyDebugCommand.php\n@@ -23,6 +23,7 @@\n \n if ($action === 'redis-set') {\n $this->testRedisSet();\n+\n return;\n }\n \n@@ -45,7 +46,7 @@\n $ttl = 60;\n \n try {\n-// $result = Redis::set($testKey, $testValue, 'EX', $ttl, 'NX');\n+ // $result = Redis::set($testKey, $testValue, 'EX', $ttl, 'NX');\n $result = Redis::set($testKey, $testValue, ['nx', 'ex' => $ttl]);\n \n if ($result) {\n\n ----------- end diff -----------\n\n\nFixed 1 of 5690 files in 50.673 seconds, 67.00 MB memory used\n\nWhat's next:\n Try Docker Debug for seamless, persistent debugging tools in any container or image → docker debug docker_lamp_1\n Learn more at https://docs.docker.com/go/debug-cli/\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20676-delete-report-related-objects) $ ;xd\ndocker exec -it docker_lamp_1 bash -c \"mv /usr/local/etc/php/conf.d/xdebug.ini ~/xdebug.ini\"\n\nWhat's next:\n Try Docker Debug for seamless, persistent debugging tools in any container or image → docker debug docker_lamp_1\n Learn more at https://docs.docker.com/go/debug-cli/\ndocker exec -it docker_lamp_1 supervisorctl restart all\njiminny-worker-processing-2:jiminny-worker-processing-2_00: stopped\njiminny-worker-processing-3:jiminny-worker-processing-3_00: stopped\njiminny-worker-processing-4:jiminny-worker-processing-4_00: stopped\njiminny-worker-processing-5:jiminny-worker-processing-5_00: stopped\njiminny-worker-processing-delayed:jiminny-worker-processing-delayed_00: stopped\nworker-analytics:worker-analytics_00: stopped\nworker-crm-update:worker-crm-update_00: stopped\nworker-download:worker-download_00: stopped\nworker-nudges:worker-nudges_00: stopped\nworker-calendar:worker-calendar_00: stopped\nworker-audio:worker-audio_00: stopped\njiminny-worker-processing-1:jiminny-worker-processing-1_00: stopped\nworker:worker_00: stopped\nworker-conferences:worker-conferences_00: stopped\nworker-crm-sync:worker-crm-sync_00: stopped\nworker-emails:worker-emails_00: stopped\nworker-es-update:worker-es-update_00: stopped\nartisan-schedule:artisan-schedule_00: stopped\nartisan-schedule:artisan-schedule_00: started\njiminny-worker-processing-1:jiminny-worker-processing-1_00: started\njiminny-worker-processing-2:jiminny-worker-processing-2_00: started\njiminny-worker-processing-3:jiminny-worker-processing-3_00: started\njiminny-worker-processing-4:jiminny-worker-processing-4_00: started\njiminny-worker-processing-5:jiminny-worker-processing-5_00: started\njiminny-worker-processing-delayed:jiminny-worker-processing-delayed_00: started\nworker:worker_00: started\nworker-analytics:worker-analytics_00: started\nworker-audio:worker-audio_00: started\nworker-calendar:worker-calendar_00: started\nworker-conferences:worker-conferences_00: started\nworker-crm-sync:worker-crm-sync_00: started\nworker-crm-update:worker-crm-update_00: started\nworker-download:worker-download_00: started\nworker-emails:worker-emails_00: started\nworker-es-update:worker-es-update_00: started\nworker-nudges:worker-nudges_00: started\n\nWhat's next:\n Try Docker Debug for seamless, persistent debugging tools in any container or image → docker debug docker_lamp_1\n Learn more at https://docs.docker.com/go/debug-cli/\ndocker exec -it docker_lamp_1 php -v\nPHP 8.3.30 (cli) (built: Mar 16 2026 22:32:32) (NTS)\nCopyright (c) The PHP Group\nZend Engine v4.3.30, Copyright (c) Zend Technologies\n with Zend OPcache v8.3.30, Copyright (c), by Zend Technologies\n\nWhat's next:\n Try Docker Debug for seamless, persistent debugging tools in any container or image → docker debug docker_lamp_1\n Learn more at https://docs.docker.com/go/debug-cli/\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20676-delete-report-related-objects) $ git status\nOn branch JY-20676-delete-report-related-objects\nChanges not staged for commit:\n (use \"git add <file>...\" to update what will be committed)\n (use \"git restore <file>...\" to discard changes in working directory)\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tmodified: .env.local\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tmodified: app/Console/Commands/JiminnyDebugCommand.php\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tmodified: config/logging.php\n\nUntracked files:\n (use \"git add <file>...\" to include in what will be committed)\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\t.env.nikilocal\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\t.env.other\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tWEBHOOK_FILTERING_IMPLEMENTATION.md\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tapp/Console/Commands/Crm/Hubspot/SimulateWebhooksCommand.php\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tapp/Console/Commands/Reports/CreateMockAskJiminnyReportResultCommand.php\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tids.txt\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tpublic/favicon.ico\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\traw_sql_query.sql\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\ttests/Unit/Policies/CanAccessAiReportsTest.php\n\nno changes added to commit (use \"git add\" and/or \"git commit -a\")\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20676-delete-report-related-objects) $ git push -u origin JY-20676-delete-report-related-objects\nEnumerating objects: 45, done.\nCounting objects: 100% (45/45), done.\nDelta compression using up to 8 threads\nCompressing objects: 100% (24/24), done.\nWriting objects: 100% (24/24), 3.62 KiB | 3.62 MiB/s, done.\nTotal 24 (delta 19), reused 0 (delta 0), pack-reused 0\nremote: Resolving deltas: 100% (19/19), completed with 19 local objects.\nremote: \nremote: Create a pull request for 'JY-20676-delete-report-related-objects' on GitHub by visiting:\nremote: https://github.com/jiminny/app/pull/new/JY-20676-delete-report-related-objects\nremote: \nTo github.com:jiminny/app.git\n * [new branch] JY-20676-delete-report-related-objects -> JY-20676-delete-report-related-objects\nbranch 'JY-20676-delete-report-related-objects' set up to track 'origin/JY-20676-delete-report-related-objects'.\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20676-delete-report-related-objects) $ csfix\ndocker exec -it docker_lamp_1 ./vendor/bin/php-cs-fixer fix --config=.php-cs-fixer.dist.php -v --using-cache=no --diff \nPHP CS Fixer 3.87.1 Alexander by Fabien Potencier, Dariusz Ruminski and contributors.\nPHP runtime: 8.3.30\nRunning analysis on 7 cores with 10 files per process.\nParallel runner is an experimental feature and may be unstable, use it at your own risk. Feedback highly appreciated!\nLoaded config default from \".php-cs-fixer.dist.php\".\n 5690/5690 [▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓] 100%\n\n 1) app/Http/Controllers/API/V2/AskJiminnyReportsController.php (blank_line_before_statement)\n ---------- begin diff ----------\n--- /home/jiminny/app/Http/Controllers/API/V2/AskJiminnyReportsController.php\n+++ /home/jiminny/app/Http/Controllers/API/V2/AskJiminnyReportsController.php\n@@ -140,6 +140,7 @@\n if ($enabled && $report->isAskJiminnyReport() && ! $report->canExecute()) {\n $error = 'This report is missing a saved search or prompt. ' .\n 'Edit the report to complete the setup before enabling it.';\n+\n return new JsonResponse(\n ['error' => $error],\n Response::HTTP_UNPROCESSABLE_ENTITY\n\n ----------- end diff -----------\n\n\nFixed 1 of 5690 files in 71.757 seconds, 60.00 MB memory used\n\nWhat's next:\n Try Docker Debug for seamless, persistent debugging tools in any container or image → docker debug docker_lamp_1\n Learn more at https://docs.docker.com/go/debug-cli/\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20676-delete-report-related-objects) $ git pull\nremote: Enumerating objects: 158, done.\nremote: Counting objects: 100% (103/103), done.\nremote: Compressing objects: 100% (37/37), done.\nremote: Total 158 (delta 80), reused 74 (delta 66), pack-reused 55 (from 3)\nReceiving objects: 100% (158/158), 80.59 KiB | 982.00 KiB/s, done.\nResolving deltas: 100% (85/85), completed with 45 local objects.\nFrom github.com:jiminny/app\n 02a33811ee..c6ce5e2440 JY-20676-delete-report-related-objects -> origin/JY-20676-delete-report-related-objects\n 7ce96cb5fe..6c59f04358 JY-20808-low-priority-indexing-queue -> origin/JY-20808-low-priority-indexing-queue\n 3906a9238a..2b5e6ea62b JY-20835-mcp-enable-users-to-get-a-list-of-deals-and-their-details -> origin/JY-20835-mcp-enable-users-to-get-a-list-of-deals-and-their-details\n 5604af40cf..ea3519f0e2 master -> origin/master\n * [new branch] switch-eu-assembly -> origin/switch-eu-assembly\nUpdating 02a33811ee..c6ce5e2440\nFast-forward\n app/Component/ES/ElasticSearchDocumentPartialUpdater.php | 48 ---\n app/Component/ParticipantSpeech/Services/ParticipantAttributionService.php | 4 +-\n app/Component/Settings/AutoScoring/Services/UpdateAutoScoreService.php | 20 +-\n app/Component/Transcription/Service/StorageService.php | 8 +-\n front-end/package.json | 2 +-\n front-end/src/components/DealInsights/Modals/AskAnythingModal.vue | 23 ++\n front-end/src/components/shared/AskAnything/AskAnythingPromptFormItem.vue | 2 +\n front-end/src/components/shared/AskAnything/AskAnythingSettingsDrawer.vue | 23 +-\n front-end/src/components/shared/AskAnything/__mocks__/AskAnythingSettingsDrawer.mocks.js | 1 +\n front-end/src/components/shared/AskAnything/__tests__/AskAnythingSettingsDrawer.spec.js | 135 ++++---\n front-end/src/components/shared/AskAnything/__tests__/__snapshots__/AskAnythingSettingsDrawer.spec.js.html | 1235 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++\n front-end/src/components/shared/AskAnything/__tests__/__snapshots__/AskAnythingSettingsDrawer.spec.js.snap | 1382 ----------------------------------------------------------------\n front-end/src/components/shared/AskAnything/prompts.js | 1 +\n front-end/src/components/shared/AskAnything/useAskAnything.js | 1 +\n front-end/yarn.lock | 8 +-\n tests/Unit/Component/ES/ElasticSearchDocumentPartialUpdaterTest.php | 42 --\n tests/Unit/Component/Settings/AutoScoring/Services/UpdateAutoScoreServiceTest.php | 86 ++--\n tests/Unit/Component/Transcription/Service/StorageServiceTest.php | 29 +-\n 18 files changed, 1448 insertions(+), 1602 deletions(-)\n delete mode 100644 app/Component/ES/ElasticSearchDocumentPartialUpdater.php\n create mode 100644 front-end/src/components/shared/AskAnything/__tests__/__snapshots__/AskAnythingSettingsDrawer.spec.js.html\n delete mode 100644 front-end/src/components/shared/AskAnything/__tests__/__snapshots__/AskAnythingSettingsDrawer.spec.js.snap\n delete mode 100644 tests/Unit/Component/ES/ElasticSearchDocumentPartialUpdaterTest.php\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20676-delete-report-related-objects) $ csfix\ndocker exec -it docker_lamp_1 ./vendor/bin/php-cs-fixer fix --config=.php-cs-fixer.dist.php -v --using-cache=no --diff \nPHP CS Fixer 3.87.1 Alexander by Fabien Potencier, Dariusz Ruminski and contributors.\nPHP runtime: 8.3.30\nRunning analysis on 7 cores with 10 files per process.\nParallel runner is an experimental feature and may be unstable, use it at your own risk. Feedback highly appreciated!\nLoaded config default from \".php-cs-fixer.dist.php\".\n 0/5688 [░░░░░░░░░░░░░░░░░░░░░░░░░░░░] 0%","is_focused":true},{"role":"AXRadioButton","text":"DOCKER","depth":2,"bounds":{"left":0.27027926,"top":1.0,"width":0.094913565,"height":-0.042298436},"on_screen":true,"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.27227393,"top":1.0,"width":0.005319149,"height":-0.04549086},"on_screen":true,"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"DEV (docker)","depth":2,"bounds":{"left":0.36519283,"top":1.0,"width":0.094913565,"height":-0.042298436},"on_screen":true,"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.3671875,"top":1.0,"width":0.005319149,"height":-0.04549086},"on_screen":true,"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"APP (docker)","depth":2,"bounds":{"left":0.46010637,"top":1.0,"width":0.09474734,"height":-0.042298436},"on_screen":true,"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.46210107,"top":1.0,"width":0.005319149,"height":-0.04549086},"on_screen":true,"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"screenpipe\"","depth":2,"bounds":{"left":0.55485374,"top":1.0,"width":0.09474734,"height":-0.042298436},"on_screen":true,"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.5568484,"top":1.0,"width":0.005319149,"height":-0.04549086},"on_screen":true,"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"-zsh","depth":2,"bounds":{"left":0.64960104,"top":1.0,"width":0.09474734,"height":-0.042298436},"on_screen":true,"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.6515958,"top":1.0,"width":0.005319149,"height":-0.04549086},"on_screen":true,"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"⌥⌘1","depth":1,"bounds":{"left":0.7307181,"top":1.0,"width":0.01861702,"height":-0.023144484},"on_screen":true,"automation_id":"_NS:8","role_description":"text"},{"role":"AXStaticText","text":"APP (docker)","depth":1,"bounds":{"left":0.49634308,"top":1.0,"width":0.029920213,"height":-0.02394259},"on_screen":true,"role_description":"text"}]...
|
2802650493718167367
|
-1358120912881272742
|
idle
|
accessibility
|
NULL
|
Last login: Mon May 18 09:17:28 on ttys007
Poetry Last login: Mon May 18 09:17:28 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 (pipedrive-sdk-poc) $ co master
error: Your local changes to the following files would be overwritten by checkout:
PIPEDRIVE_V2_MIGRATION_TICKETS.md
Please commit your changes or stash them before you switch branches.
Aborting
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (pipedrive-sdk-poc) $ git pull
remote: Enumerating objects: 1047, done.
remote: Counting objects: 100% (832/832), done.
remote: Compressing objects: 100% (298/298), done.
remote: Total 1047 (delta 634), reused 596 (delta 534), pack-reused 215 (from 3)
Receiving objects: 100% (1047/1047), 353.16 KiB | 1.56 MiB/s, done.
Resolving deltas: 100% (687/687), completed with 107 local objects.
From github.com:jiminny/app
907c54896c..34656c53ed pipedrive-sdk-poc -> origin/pipedrive-sdk-poc
03325ec50f..4e7078fd8b JY-18091-upgrade-to-php-8-5 -> origin/JY-18091-upgrade-to-php-8-5
e7d231e163..bc6a3fce6b JY-20725-handle-HS-search-rate-limit -> origin/JY-20725-handle-HS-search-rate-limit
* [new branch] JY-20749-user-can-view-recorded-meetings -> origin/JY-20749-user-can-view-recorded-meetings
98ca281a04..e0351be069 JY-20808-low-priority-indexing-queue -> origin/JY-20808-low-priority-indexing-queue
569abb5149..3906a9238a JY-20835-mcp-enable-users-to-get-a-list-of-deals-and-their-details -> origin/JY-20835-mcp-enable-users-to-get-a-list-of-deals-and-their-details
ad6c2a86e8..50eb6afba9 JY-20846-mcp-enable-the-ai-to-know-details-about-the-user -> origin/JY-20846-mcp-enable-the-ai-to-know-details-about-the-user
* [new branch] JY-20893-chunk-control-per-update-target -> origin/JY-20893-chunk-control-per-update-target
31c62924a5..cb4ebf0c36 master -> origin/master
Updating 907c54896c..34656c53ed
Fast-forward
PIPEDRIVE_V2_MIGRATION_TICKETS.md | 52 ++++++++++++++++++++++++++++++++++++++++++++++++++++
1 file changed, 52 insertions(+)
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (pipedrive-sdk-poc) $ co master
M .env.local
M config/logging.php
Switched to branch 'master'
Your branch is behind 'origin/master' by 31 commits, and can be fast-forwarded.
(use "git pull" to update your local branch)
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (master) $ git pull
Updating 31c62924a5..cb4ebf0c36
Fast-forward
app/Component/ES/Processor/Traits/SelectEntityListTrait.php | 20 ------
app/Services/Calendar/CalendarActivityService.php | 46 +++++++++++++
app/Services/Calendar/Command/MapActivityData.php | 106 +++-------------------------
docs/mcp/explorer/explorer.html | 104 +++++++++++++++++++++++++---
docs/mcp/explorer/explorer.template.html | 102 ++++++++++++++++++++++++---
docs/mcp/tools-list.json | 373 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++-------
docs/mcp/tools.md | 117 +++++++++++++++++++++++--------
tests/Unit/Component/ES/AsyncUpdateElasticSearchTest.php | 16 +----
tests/Unit/Component/ES/Listeners/UpdateMultipleTargetsListenerTest.php | 10 ---
tests/Unit/Component/ES/Listeners/UpdateSingleTargetListenerTest.php | 6 --
tests/Unit/Component/ES/Processor/TargetEntitiesSelectorTest.php | 9 ---
tests/Unit/Component/ES/Processor/Traits/SelectEntityListTraitTest.php | 15 ++--
tests/Unit/Component/ES/UpdateProcessManagerTest.php | 2 -
tests/Unit/Services/Calendar/CalendarActivityServiceTest.php | 150 ++++++++++++++++++++++++++++++++++++++--
tests/Unit/Services/Calendar/Command/MapActivityDataTest.php | 78 ++-------------------
15 files changed, 832 insertions(+), 322 deletions(-)
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (master) $ co -b JY-20613-allow-owner-role-on-team-setup
Switched to a new branch 'JY-20613-allow-owner-role-on-team-setup'
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20613-allow-owner-role-on-team-setup) $ csfix
docker exec -it docker_lamp_1 ./vendor/bin/php-cs-fixer fix --config=.php-cs-fixer.dist.php -v --using-cache=no --diff
PHP CS Fixer 3.87.1 Alexander by Fabien Potencier, Dariusz Ruminski and contributors.
PHP runtime: 8.3.30
Running 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!
Loaded config default from ".php-cs-fixer.dist.php".
5682/5682 [▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓] 100%
Fixed 0 of 5682 files in 56.978 seconds, 67.00 MB memory used
What's next:
Try Docker Debug for seamless, persistent debugging tools in any container or image → docker debug docker_lamp_1
Learn more at [URL_WITH_CREDENTIALS] ~/jiminny/app (JY-20613-allow-owner-role-on-team-setup) $ csfix
docker exec -it docker_lamp_1 ./vendor/bin/php-cs-fixer fix --config=.php-cs-fixer.dist.php -v --using-cache=no --diff
PHP CS Fixer 3.87.1 Alexander by Fabien Potencier, Dariusz Ruminski and contributors.
PHP runtime: 8.3.30
Running 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!
Loaded config default from ".php-cs-fixer.dist.php".
5682/5682 [▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓] 100%
Fixed 0 of 5682 files in 49.910 seconds, 60.00 MB memory used
What's next:
Try Docker Debug for seamless, persistent debugging tools in any container or image → docker debug docker_lamp_1
Learn more at [URL_WITH_CREDENTIALS] ~/jiminny/app (JY-20613-allow-owner-role-on-team-setup) $ git pull
remote: Enumerating objects: 248, done.
remote: Counting objects: 100% (128/128), done.
remote: Compressing objects: 100% (23/23), done.
remote: Total 59 (delta 43), reused 44 (delta 33), pack-reused 0 (from 0)
Unpacking objects: 100% (59/59), 10.48 KiB | 228.00 KiB/s, done.
From github.com:jiminny/app
b7df560451..190239dfd4 JY-20613-allow-owner-role-on-team-setup -> origin/JY-20613-allow-owner-role-on-team-setup
e0351be069..d94a285ae7 JY-20808-low-priority-indexing-queue -> origin/JY-20808-low-priority-indexing-queue
* [new branch] JY-20920-fix-participant-matcher -> origin/JY-20920-fix-participant-matcher
cb4ebf0c36..90bca4e4b2 master -> origin/master
Merge made by the 'ort' strategy.
app/Component/ES/ChunkSize.php | 54 +++++++++++++++++++++++++++
app/Component/ES/Processor/DTOs/SelectionList.php | 4 +-
app/Component/ES/Processor/TargetEntitiesSelector.php | 19 ++++++----
app/Http/Middleware/McpTierMiddleware.php | 27 +++-----------
app/Mcp/Servers/JiminnyServer.php | 2 +
app/Mcp/Tools/GetMeTool.php | 157 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
app/Models/Feature/FeatureEnum.php | 1 +
database/migrations/2026_05_13_124153_create_mcp_feature_flag.php | 25 +++++++++++++
front-end/src/components/Settings/Kiosk/modals/EditTeamModal/EditTeamModal.vue | 52 ++++++++++++++++++--------
front-end/src/components/Settings/Kiosk/modals/EditTeamModal/__tests__/EditTeamModal.spec.js | 14 +++++++
tests/Feature/Mcp/GetMeToolFeatureTest.php | 140 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
tests/Feature/Mcp/ListCallsToolFeatureTest.php | 2 +-
tests/Feature/Mcp/McpTestHelpersTrait.php | 19 +++++++++-
tests/Unit/Component/ES/ChunkSizeTest.php | 50 +++++++++++++++++++++++++
tests/Unit/Component/ES/Processor/DTOs/SelectionListTest.php | 27 ++++++++++----
tests/Unit/Component/ES/Processor/TargetEntitiesSelectorTest.php | 39 +++++++++++---------
16 files changed, 557 insertions(+), 75 deletions(-)
create mode 100644 app/Component/ES/ChunkSize.php
create mode 100644 app/Mcp/Tools/GetMeTool.php
create mode 100644 database/migrations/2026_05_13_124153_create_mcp_feature_flag.php
create mode 100644 tests/Feature/Mcp/GetMeToolFeatureTest.php
create mode 100644 tests/Unit/Component/ES/ChunkSizeTest.php
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20613-allow-owner-role-on-team-setup) $ git push
Enumerating objects: 40, done.
Counting objects: 100% (34/34), done.
Delta compression using up to 8 threads
Compressing objects: 100% (18/18), done.
Writing objects: 100% (18/18), 1.58 KiB | 1.58 MiB/s, done.
Total 18 (delta 15), reused 0 (delta 0), pack-reused 0
remote: Resolving deltas: 100% (15/15), completed with 13 local objects.
To github.com:jiminny/app.git
190239dfd4..ec1b261264 JY-20613-allow-owner-role-on-team-setup -> JY-20613-allow-owner-role-on-team-setup
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20613-allow-owner-role-on-team-setup) $ gbr
* JY-20613-allow-owner-role-on-team-setup
pipedrive-sdk-poc
master
JY-20903-update_activity-stage-on-opportunity-change
JY-20904-fix-update-es-on-activity-command
JY-20891-improve-sms-text-relays
JY-20725-handle-HS-search-rate-limit
JY-20818-move-AJ-reports-to-separated-datadog-metric
JY-20773-fix-automated-reports-user-pilot-tracking
JY-20157-AJ-report-not-send-notification
JY-20508-notify-before-AJ-report-expiration
JY-20372-ai-reports-promotion-pages
JY-20352-sync-opportunities-without-a-local-owner-user-id-is-null
JY-20738-debug-AJ-tracking-UP
a
JY-18909-automated-reports-ask-jiminny
JY-20692-fix-integration-app-[API_KEY]
JY-20553-debug-crm-sync-delays
JY-20698-fix-SF-activity-types-on-new-playbook
JY-20543-AJ-report-tracking
JY-20384-handle-auto-sync-with-no-access-to-event-type
JY-20458-ask-jiminny-user-definitions
JY-19666-fix-import-contacts-account-association
JY-19666-HS-import-contacts-and-accounts-batch-job
JY-20458-Ask-Jiminny-Reports
JY-20200-batch-update-CRM-objects-Salesforce
JY-19666-HS-webhooks-add-contact-and-company
JY-20348-trigger-setup-DI-layout-on-team-creation
JY-20326-refactor-info-message-in-command
JY-20317-fix-auto-log-delay-issue-on-all-channels-disabled
JY-20312-remove-on-update-change-last-synced-at-crm-configurations
JY-20306-SF-skip-auto-sync-for-task-based-playbook
JY-20192-remove-deleted-team-from-saved-search-filters
JY-20197-import-opportunity-batch-job
JY-20293-enable-status-field-for-pipedrive-deals
JY-20191-remove-commands-interactive-prompts
JY-20118-change-default-sync-strategy
JY-20183-add-cache-on-auto-log-delay
JY-20197-add-import-opportunity-batch-job
20118-hs-opportunity-make-webhook-strategy-default
JY-20118-make-default-hs-opportunity-sync-strategy-webhook-based
JY-20196-handle-opportunity-without-note
JY-20118-improve-opportunity-import
JY-20189-handle-activity-search-on-deleted-groups
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20613-allow-owner-role-on-team-setup) $ co JY-20725-handle-HS-search-rate-limit
M .env.local
M config/logging.php
Switched to branch 'JY-20725-handle-HS-search-rate-limit'
Your branch is behind 'origin/JY-20725-handle-HS-search-rate-limit' by 439 commits, and can be fast-forwarded.
(use "git pull" to update your local branch)
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20725-handle-HS-search-rate-limit) $ git pull
Updating 0f3e438941..bc6a3fce6b
Fast-forward
.gitignore | 3 +-
.windsurfrules | 168 ++---
CLAUDE.md | 1 +
app/Component/ActivityAnalytics/Service/CalculateTalkTimeOffsetsFromTranscription.php | 24 +-
app/Component/AiActivityType/Services/AiActivityTypeEligibilityChecker.php | 28 +-
app/Component/AiAutomation/Actions/PrepareUpdateDtoAction.php | 32 +-
app/Component/AiAutomation/Services/CrmFillingEligibilityChecker.php | 47 ++
app/Component/AiAutomation/TestCrmAiPromptService.php | 14 +
app/Component/AiCallScoring/Services/AiCallScoringEligibilityChecker.php | 9 +
app/Component/ES/ElasticSearchDocumentPartialUpdater.php | 13 +-
app/Component/ES/ElasticSearchWorkerManager.php | 86 ---
app/Component/ES/Processor/Actions/LoadDocumentsAction.php | 80 +--
app/Component/ES/Processor/EntityQueryBuilder.php | 12 +-
app/Component/ES/Processor/TargetEntitiesSelector.php | 2 +-
app/Component/ES/Processor/Traits/SkipActivityTrait.php | 25 -
app/Component/ES/Repositories/EsResetActivityRepository.php | 11 +-
app/Component/ES/Worker/ActivityWorker.php | 73 --
app/Component/ES/Worker/EntityWorker.php | 44 --
app/Component/ES/Worker/WorkerAmount.php | 60 --
app/Component/ES/Worker/WorkerInterface.php | 15 -
app/Component/ElasticSearch/Contract/Searchable.php | 4 +
app/Component/Encoding/Job/AnalyzeTrackChannelsJob.php | 20 +-
app/Component/Encoding/Service/GenerateSpeechFromSilenceService.php | 85 ++-
app/Component/FFMpeg/Services/GetSpeechIntervalsService.php | 18 +-
app/Component/LanguageDetection/Services/FindSpeechTimeService.php | 22 +-
app/Component/Nudge/Job/ProcessOrganisationImmediateNudgesJob.php | 218 +++++-
app/Component/ParagraphBreaker/Services/TranscriptionParagraphsService.php | 4 +
app/Component/ParticipantSpeech/Services/ParticipantSpeechesCreator.php | 33 +
app/Component/ParticipantSpeech/Services/ParticipantSpeechesDeleter.php | 15 +
app/Component/ParticipantSpeech/Services/ParticipantSpeechesProvider.php | 51 +-
app/Component/ParticipantSpeech/Services/ParticipantSpeechesUploader.php | 36 +
app/Component/ProphetAi/Exceptions/InsufficientTranscriptException.php | 11 +
app/Component/Transcription/DTO/Http/Transcription/AssemblyAI/AssemblyAI/NoAssemblyIdException.php | 11 +
app/Component/Transcription/DTO/Http/Transcription/AssemblyAI/AssemblyAI/SuccessfulResponse.php | 6 +
app/Component/Transcription/DTO/Http/Transcription/TranscriptionIsNotCorrectFormatException.php | 11 +
app/Component/Transcription/Diarization/Services/GetNormalizedParticipantSpeechesService.php | 23 +-
app/Component/Transcription/Diarization/Source/MeetingBotSource.php | 16 +-
app/Component/Transcription/TranscriptionProcessor/TranscriptionProcessor.php | 3 +
app/Console/Commands/Activities/ActivityHardDeleteCommand.php | 4 +-
app/Console/Commands/Activities/Copy.php | 2 +
app/Console/Commands/Activities/SetupIntegration/TwilioSetS3RecordingCredentialsCommand.php | 119 ++++
app/Console/Commands/Activities/UpdateActivityElasticSearchDocumentCommand.php | 10 +-
app/Console/Commands/Crm/BackfillOpportunityUserFromAccountCommand.php | 126 ++++
app/Console/Commands/Elasticsearch/AsyncUpdateEsActivities.php | 19 -
app/Console/Commands/Elasticsearch/AsyncUpdateEsEntities.php | 50 +-
app/Console/Commands/Elasticsearch/ResetAsyncElasticSearchCommand.php | 30 +-
app/Console/Commands/GeckoExport/GeckoExportParticipantSpeechesCommand.php | 14 +-
app/Console/Commands/IssueMcpTokenCommand.php | 84 +++
app/Console/Commands/JiminnyDebugCommand.php | 7 +-
app/Console/Commands/Tracks/CleanupActivityTracksCommand.php | 2 +-
app/Console/Kernel.php | 6 +-
app/Contracts/Services/Calendar/CalendarTrait.php | 80 ++-
app/Events/AutomatedReports/AutomatedReportGenerated.php | 3 +
app/Http/Controllers/API/AiCallScoring/AiScorecardController.php | 7 +-
app/Http/Controllers/API/TeamAiAutomationController.php | 8 +
app/Http/Controllers/CustomerApi/CustomerApiController.php | 4 +-
app/Http/Controllers/Kiosk/ActivityController.php | 58 +-
app/Http/Controllers/Settings/PlaybookController.php | 15 +-
app/Http/Kernel.php | 23 +
app/Http/Middleware/McpAuditMiddleware.php | 156 ++++
app/Http/Middleware/McpTierMiddleware.php | 54 ++
app/Http/Requests/API/V2/ZapierUploadActivityRequest.php | 28 +-
app/Jobs/Activity/Import/ImportTwilioVideoSpeechesJob.php | 25 +-
app/Jobs/Activity/Import/IsActivityReadyForProcessingJob.php | 10 +-
app/Jobs/Calendar/SetupCalendarSync.php | 21 +-
app/Jobs/ImportRemoteTrackJob.php | 96 ++-
app/Jobs/Mailbox/EmailTextRelay.php | 15 +-
app/Mcp/Contracts/McpCallRepositoryInterface.php | 30 +
app/Mcp/DTO/ListCallsFilters.php | 29 +
app/Mcp/Errors/McpError.php | 123 ++++
app/Mcp/Repositories/McpActivityHydrator.php | 145 ++++
app/Mcp/Repositories/McpCallRepository.php | 84 +++
app/Mcp/Repositories/McpElasticCallRepository.php | 171 +++++
app/Mcp/Servers/JiminnyServer.php | 38 +
app/Mcp/Tools/ListCallsTool.php | 205 ++++++
app/Models/Activity.php | 10 +-
app/Models/Activity/Transcription.php | 17 +-
app/Models/ElasticSearch/OpportunityElasticSearchTrait.php | 5 +
app/Models/Participant.php | 1 +
app/Providers/AppServiceProvider.php | 22 +
app/Repositories/Crm/ContactRepository.php | 69 +-
app/Repositories/ParticipantSpeechRepository.php | 13 +-
app/Services/Activity/ParticipantsService.php | 19 +-
app/Services/Activity/Twilio/S3RecordingCredentialsService.php | 82 +++
app/Services/ActivityService.php | 21 +-
app/Services/Calendar/CalendarActivityService.php | 46 ++
app/Services/Calendar/Command/ImportParticipants.php | 1 +
app/Services/Calendar/Command/MapActivityData.php | 106 +--
app/Services/Calendar/GoogleCalendarService.php | 12 +-
app/Services/Crm/Close/Processor/OpportunityProcessor.php | 2 +-
app/Services/Crm/Close/Service.php | 22 +-
app/Services/Crm/Copper/Service.php | 12 +-
app/Services/Crm/Hubspot/Service.php | 154 +++-
app/Services/Crm/Hubspot/ServiceTraits/OpportunitySyncTrait.php | 88 ++-
app/Services/Crm/IntegrationApp/ServiceTraits/SyncCrmEntitiesTrait.php | 22 +-
app/Services/Crm/Pipedrive/Service.php | 17 +-
app/Services/Crm/Salesforce/Service.php | 42 +-
app/Services/Mail/Office/EmailApiClient.php | 129 +---
app/Services/RecallAI/Commands/ScheduleBotCommand.php | 39 +-
app/Services/RecallAI/RecallAIService.php | 22 +-
composer.json | 3 +-
composer.lock | 87 ++-
config/mcp.php | 23 +
database/migrations/2026_04_30_120000_create_mcp_audit_log_table.php | 36 +
docs/mcp/explorer/explorer.html | 697 ++++++++++++++++++
docs/mcp/explorer/explorer.template.html | 697 ++++++++++++++++++
docs/mcp/explorer/generate.js | 215 ++++++
docs/mcp/explorer/tool-explorer-meta.json | 11 +
docs/mcp/tools-list.json | 2536 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
docs/mcp/tools.md | 621 ++++++++++++++++
front-end/package.json | 4 +-
front-end/src/components/Settings/OrgSettings/AiAutomation/CrmFilling/TemplateFieldForm.vue | 28 +-
front-end/src/components/Settings/OrgSettings/Playbooks/AddEditPlaybook.vue | 10 +
front-end/src/components/playback/comments/ActivityComment.less | 10 +-
front-end/src/components/shared/PromptTester/PromptTester.vue | 12 +-
front-end/src/components/shared/__tests__/PromptTester.spec.js | 35 +
front-end/src/components/shared/modals/EntityPickerModal/__tests__/useEntitiesCache.spec.ts | 37 +
front-end/src/components/shared/modals/EntityPickerModal/useEntitiesCache.ts | 9 +
front-end/yarn.lock | 16 +-
phpstan-baseline.neon | 50 --
routes/api.php | 11 +
sonar-project.properties | 91 ++-
tests/Feature/Component/Nudge/ProcessOrganisationImmediateNudgesJobTest.php | 534 ++++++++++++++
tests/Feature/Jobs/ImportRemoteTrackJobTest.php | 283 +++++++-
tests/Feature/Mcp/IssueMcpTokenCommandTest.php | 53 ++
tests/Feature/Mcp/ListCallsToolElasticFeatureTest.php | 155 ++++
tests/Feature/Mcp/ListCallsToolFeatureTest.php | 352 ++++++++++
tests/Feature/Mcp/McpTestHelpersTrait.php | 77 ++
tests/Feature/Services/Team/TeamDeleteHandlers/Retention/RetentionRepositoryHandlerTest.php | 1 +
tests/Stubs/SentryStub.php | 18 +
tests/Unit/Component/ActivityAnalytics/Service/CalculateTalkTimeOffsetFromTranscriptionTest.php | 28 +-
tests/Unit/Component/AiActivityType/Services/AiActivityTypeEligibilityCheckerTest.php | 103 ++-
tests/Unit/Component/AiAutomation/Actions/PrepareUpdateDtoActionTest.php | 91 +++
tests/Unit/Component/AiAutomation/Services/CrmFillingEligibilityCheckerTest.php | 124 ++++
tests/Unit/Component/AiAutomation/TestCrmAiPromptServiceTest.php | 67 +-
tests/Unit/Component/AiCallScoring/Services/AiCallScoringEligibilityCheckerTest.php | 55 ++
tests/Unit/Component/ES/ElasticSearchWorkerManagerTest.php | 135 ----
tests/Unit/Component/ES/Processor/Actions/LoadDocumentsActionTest.php | 220 ++++++
tests/Unit/Component/ES/Processor/EntityQueryBuilderTest.php | 21 +-
tests/Unit/Component/ES/Processor/Traits/SkipActivityTraitTest.php | 51 --
tests/Unit/Component/ES/Worker/ActivityWorkerTest.php | 174 -----
tests/Unit/Component/ES/Worker/EntityWorkerTest.php | 97 ---
tests/Unit/Component/ES/Worker/WorkerAmountTest.php | 116 ---
tests/Unit/Component/Encoding/Job/AnalyzeTrackChannelsJobTest.php | 52 +-
tests/Unit/Component/Encoding/Service/GenerateSpeechFromSilenceServiceTest.php | 171 ++---
tests/Unit/Component/FFMpeg/Services/GetSpeechIntervalsTest.php | 36 +-
tests/Unit/Component/LanguageDetection/Services/FindSpeechTimeServiceTest.php | 20 +-
tests/Unit/Component/MobileSettings/MobileSettingsControllerTest.php | 5 +-
tests/Unit/Component/ParticipantSpeech/Services/ParticipantSpeechesCreatorTest.php | 75 ++
tests/Unit/Component/ParticipantSpeech/Services/ParticipantSpeechesDeleterTest.php | 63 ++
tests/Unit/Component/ParticipantSpeech/Services/ParticipantSpeechesProviderTest.php | 134 ++++
tests/Unit/Component/ParticipantSpeech/Services/ParticipantSpeechesUploaderTest.php | 57 ++
tests/Unit/Component/Transcription/Diarization/Services/GetNormalizedParticipantSpeechesServiceTest.php | 51 +-
tests/Unit/Component/Transcription/Diarization/Source/MeetingBotSourceTest.php | 29 +-
tests/Unit/Contracts/Services/Calendar/CalendarTraitTest.php | 58 +-
tests/Unit/Http/Controllers/Kiosk/ActivityControllerTest.php | 159 +++++
tests/Unit/Jobs/Activity/Import/ImportTwilioVideoSpeechesJobTest.php | 22 +-
tests/Unit/Jobs/Activity/Import/IsActivityReadyForProcessingJobTest.php | 26 +-
tests/Unit/Jobs/Calendar/SetupCalendarSyncTest.php | 25 -
tests/Unit/Services/Activity/ParticipantsServiceTest.php | 12 +-
tests/Unit/Services/Activity/Twilio/S3RecordingCredentialsServiceTest.php | 180 +++++
tests/Unit/Services/ActivityServiceTest.php | 132 ++++
tests/Unit/Services/Calendar/CalendarActivityServiceTest.php | 150 +++-
tests/Unit/Services/Calendar/Command/ImportParticipantsTest.php | 6 +-
tests/Unit/Services/Calendar/Command/MapActivityDataTest.php | 78 +-
tests/Unit/Services/Calendar/GoogleCalendarServiceTest.php | 116 +++
tests/Unit/Services/Crm/Close/ServiceTest.php | 165 +++++
tests/Unit/Services/Crm/Hubspot/ServiceTest.php | 272 ++++++-
tests/Unit/Services/Crm/Hubspot/ServiceTraits/OpportunitySyncTest.php | 25 +-
tests/Unit/Services/Crm/Hubspot/ServiceTraits/OpportunitySyncTraitMatchActivitiesTest.php | 3 +-
tests/Unit/Services/Crm/IntegrationApp/ServiceTraits/SyncCrmEntitiesTraitOpportunitiesTest.php | 40 ++
tests/Unit/Services/Crm/Pipedrive/ImportOpportunityMatchActivitiesTest.php | 2 +
tests/Unit/Services/Crm/Salesforce/ServiceTest.php | 139 ++++
tests/Unit/Services/Mail/Office/EmailApiClientTest.php | 195 ++---
tests/Unit/Services/RecallAI/RecallAIServiceTest.php | 24 +-
175 files changed, 12562 insertions(+), 2162 deletions(-)
create mode 120000 CLAUDE.md
create mode 100644 app/Component/AiAutomation/Services/CrmFillingEligibilityChecker.php
delete mode 100644 app/Component/ES/ElasticSearchWorkerManager.php
delete mode 100644 app/Component/ES/Processor/Traits/SkipActivityTrait.php
delete mode 100644 app/Component/ES/Worker/ActivityWorker.php
delete mode 100644 app/Component/ES/Worker/EntityWorker.php
delete mode 100644 app/Component/ES/Worker/WorkerAmount.php
delete mode 100644 app/Component/ES/Worker/WorkerInterface.php
create mode 100644 app/Component/ProphetAi/Exceptions/InsufficientTranscriptException.php
create mode 100644 app/Component/Transcription/DTO/Http/Transcription/AssemblyAI/AssemblyAI/NoAssemblyIdException.php
create mode 100644 app/Component/Transcription/DTO/Http/Transcription/TranscriptionIsNotCorrectFormatException.php
create mode 100644 app/Console/Commands/Activities/SetupIntegration/TwilioSetS3RecordingCredentialsCommand.php
create mode 100644 app/Console/Commands/Crm/BackfillOpportunityUserFromAccountCommand.php
delete mode 100644 app/Console/Commands/Elasticsearch/AsyncUpdateEsActivities.php
create mode 100644 app/Console/Commands/IssueMcpTokenCommand.php
create mode 100644 app/Http/Middleware/McpAuditMiddleware.php
create mode 100644 app/Http/Middleware/McpTierMiddleware.php
create mode 100644 app/Mcp/Contracts/McpCallRepositoryInterface.php
create mode 100644 app/Mcp/DTO/ListCallsFilters.php
create mode 100644 app/Mcp/Errors/McpError.php
create mode 100644 app/Mcp/Repositories/McpActivityHydrator.php
create mode 100644 app/Mcp/Repositories/McpCallRepository.php
create mode 100644 app/Mcp/Repositories/McpElasticCallRepository.php
create mode 100644 app/Mcp/Servers/JiminnyServer.php
create mode 100644 app/Mcp/Tools/ListCallsTool.php
create mode 100644 app/Services/Activity/Twilio/S3RecordingCredentialsService.php
create mode 100644 config/mcp.php
create mode 100644 database/migrations/2026_04_30_120000_create_mcp_audit_log_table.php
create mode 100644 docs/mcp/explorer/explorer.html
create mode 100644 docs/mcp/explorer/explorer.template.html
create mode 100644 docs/mcp/explorer/generate.js
create mode 100644 docs/mcp/explorer/tool-explorer-meta.json
create mode 100644 docs/mcp/tools-list.json
create mode 100644 docs/mcp/tools.md
create mode 100644 front-end/src/components/shared/modals/EntityPickerModal/__tests__/useEntitiesCache.spec.ts
create mode 100644 tests/Feature/Component/Nudge/ProcessOrganisationImmediateNudgesJobTest.php
create mode 100644 tests/Feature/Mcp/IssueMcpTokenCommandTest.php
create mode 100644 tests/Feature/Mcp/ListCallsToolElasticFeatureTest.php
create mode 100644 tests/Feature/Mcp/ListCallsToolFeatureTest.php
create mode 100644 tests/Feature/Mcp/McpTestHelpersTrait.php
create mode 100644 tests/Stubs/SentryStub.php
create mode 100644 tests/Unit/Component/AiAutomation/Services/CrmFillingEligibilityCheckerTest.php
delete mode 100644 tests/Unit/Component/ES/ElasticSearchWorkerManagerTest.php
create mode 100644 tests/Unit/Component/ES/Processor/Actions/LoadDocumentsActionTest.php
delete mode 100644 tests/Unit/Component/ES/Processor/Traits/SkipActivityTraitTest.php
delete mode 100644 tests/Unit/Component/ES/Worker/ActivityWorkerTest.php
delete mode 100644 tests/Unit/Component/ES/Worker/EntityWorkerTest.php
delete mode 100644 tests/Unit/Component/ES/Worker/WorkerAmountTest.php
create mode 100644 tests/Unit/Component/ParticipantSpeech/Services/ParticipantSpeechesCreatorTest.php
create mode 100644 tests/Unit/Http/Controllers/Kiosk/ActivityControllerTest.php
create mode 100644 tests/Unit/Services/Activity/Twilio/S3RecordingCredentialsServiceTest.php
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20725-handle-HS-search-rate-limit) $ git status
On branch master
Your branch is behind 'origin/master' by 114 commits, and can be fast-forwarded.
(use "git pull" to update your local branch)
Changes not staged for commit:
(use "git add <file>..." to update what will be committed)
(use "git restore <file>..." to discard changes in working directory)
modified: .env.local
modified: app/Component/SCIM/Constants.php
modified: app/Component/SCIM/ScimProvisioning.php
modified: app/Component/Twilio/Conference/ConferenceManager/SoftPhoneManager.php
modified: app/Console/Commands/JiminnyDebugCommand.php
modified: app/DTO/SCIM/AAD/Request/CoreUserRequest.php
modified: app/DTO/SCIM/AAD/Response/CoreUser.php
modified: app/Services/Telephony/TextMessagingService.php
modified: config/logging.php
Untracked files:
(use "git add <file>..." to include in what will be committed)
.env.nikilocal
.env.other
WEBHOOK_FILTERING_IMPLEMENTATION.md
app/Component/SCIM/Mutators/Attributes/User/RoleAttr.php
app/Console/Commands/Crm/Hubspot/SimulateWebhooksCommand.php
app/Console/Commands/Reports/CreateMockAskJiminnyReportResultCommand.php
app/Rules/ListenerRoleCannotHaveAdminOrManagerPermissionRule.php
ids.txt
public/favicon.ico
raw_sql_query.sql
tests/Unit/Component/SCIM/Mutators/Attributes/User/RoleAttrTest.php
tests/Unit/Policies/CanAccessAiReportsTest.php
tests/Unit/Rules/ListenerRoleCannotHaveAdminOrManagerPermissionRuleTest.php
no changes added to commit (use "git add" and/or "git commit -a")
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (master) $ git pull
remote: Enumerating objects: 306, done.
remote: Counting objects: 100% (299/299), done.
remote: Compressing objects: 100% (183/183), done.
remote: Total 306 (delta 213), reused 171 (delta 116), pack-reused 7 (from 1)
Receiving objects: 100% (306/306), 80.12 KiB | 1000.00 KiB/s, done.
Resolving deltas: 100% (213/213), completed with 53 local objects.
From github.com:jiminny/app
90bca4e4b2..5604af40cf master -> origin/master
4e7078fd8b..0b8343d179 JY-18091-upgrade-to-php-8-5 -> origin/JY-18091-upgrade-to-php-8-5
098eeaa087..d5a447e492 JY-20613-allow-owner-role-on-team-setup -> origin/JY-20613-allow-owner-role-on-team-setup
c3a76ace91..af65249d0f JY-20749-user-can-view-recorded-meetings -> origin/JY-20749-user-can-view-recorded-meetings
d94a285ae7..7ce96cb5fe JY-20808-low-priority-indexing-queue -> origin/JY-20808-low-priority-indexing-queue
* [new branch] JY-20842-remove-partial-updater -> origin/JY-20842-remove-partial-updater
* [new branch] JY-20920-fix-participant-flip -> origin/JY-20920-fix-participant-flip
* [new branch] secfix/npm-20260519 -> origin/secfix/npm-20260519
Updating cb4ebf0c36..5604af40cf
Fast-forward
app/Component/ES/ChunkSize.php | 54 +++++++++++++++++++
app/Component/ES/Processor/DTOs/SelectionList.php | 4 +-
app/Component/ES/Processor/TargetEntitiesSelector.php | 19 ++++---
app/Component/MeetingBot/Service/ParticipantMatcher.php | 46 ++++++++++++----
app/Exceptions/RateLimitException.php | 19 ++++++-
app/Http/Middleware/McpTierMiddleware.php | 27 ++--------
app/Jobs/Crm/MatchActivityCrmData.php | 47 ++++++++++++----
app/Jobs/Middleware/HandleHubspotRateLimit.php | 42 +++++++++++++++
app/Mcp/Servers/JiminnyServer.php | 2 +
app/Mcp/Tools/GetMeTool.php | 157 +++++++++++++++++++++++++++++++++++++++++++++++++++++
app/Models/Feature/FeatureEnum.php | 1 +
app/Services/Activity/HubSpot/ProviderResolver.php | 4 +-
app/Services/Activity/HubSpot/ProviderResolverInterface.php | 2 +-
app/Services/Activity/HubSpot/Providers/Provider.php | 2 +-
app/Services/Activity/HubSpot/Providers/ProviderKixie.php | 2 +-
app/Services/Activity/HubSpot/Providers/ProviderOrum.php | 2 +-
app/Services/Activity/HubSpot/Providers/ProviderTwilio.php | 2 +-
app/Services/Activity/HubSpot/Providers/ProviderTwilioFlex.php | 5 +-
app/Services/Activity/HubSpot/Service.php | 97 +++++++++++++++++++++++++++------
app/Services/Crm/Hubspot/Client.php | 132 +++++++++++++++++++++++++++++++++++++++++++++
app/Services/Crm/Hubspot/HubspotClientInterface.php | 15 ++++++
app/Services/Crm/Hubspot/Pagination/HubspotPaginationService.php | 21 ++++----
app/Services/Crm/Hubspot/Pagination/PaginationState.php | 2 +-
database/migrations/2026_05_13_124153_create_mcp_feature_flag.php | 25 +++++++++
tests/Feature/Mcp/GetMeToolFeatureTest.php | 140 +++++++++++++++++++++++++++++++++++++++++++++++
tests/Feature/Mcp/ListCallsToolFeatureTest.php | 2 +-
tests/Feature/Mcp/McpTestHelpersTrait.php | 19 ++++++-
tests/Unit/Component/ES/ChunkSizeTest.php | 50 +++++++++++++++++
tests/Unit/Component/ES/Processor/DTOs/SelectionListTest.php | 27 +++++++---
tests/Unit/Component/ES/Processor/TargetEntitiesSelectorTest.php | 39 ++++++++------
tests/Unit/Component/MeetingBot/Service/ParticipantMatcherTest.php | 68 ++++++++++++++++++++++-
tests/Unit/Exceptions/RateLimitExceptionTest.php | 56 +++++++++++++++++++
tests/Unit/Jobs/Crm/MatchActivityCrmDataTest.php | 8 +--
tests/Unit/Jobs/Middleware/HandleHubspotRateLimitTest.php | 151 +++++++++++++++++++++++++++++++++++++++++++++++++++
tests/Unit/Services/Activity/HubSpot/ServiceTest.php | 109 +++++++++++++++++++++++++++++++++++++
tests/Unit/Services/Crm/Hubspot/ClientTest.php | 250 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
tests/Unit/Services/Crm/Hubspot/Pagination/HubspotPaginationServiceTest.php | 283 +++++++++++++++++++++---------------------------------------------------------------------------
37 files changed, 1587 insertions(+), 344 deletions(-)
create mode 100644 app/Component/ES/ChunkSize.php
create mode 100644 app/Jobs/Middleware/HandleHubspotRateLimit.php
create mode 100644 app/Mcp/Tools/GetMeTool.php
create mode 100644 database/migrations/2026_05_13_124153_create_mcp_feature_flag.php
create mode 100644 tests/Feature/Mcp/GetMeToolFeatureTest.php
create mode 100644 tests/Unit/Component/ES/ChunkSizeTest.php
create mode 100644 tests/Unit/Exceptions/RateLimitExceptionTest.php
create mode 100644 tests/Unit/Jobs/Middleware/HandleHubspotRateLimitTest.php
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (master) $ git pull
Already up to date.
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (master) $ co -b JY-20676-delete-report-related-objects
Switched to a new branch 'JY-20676-delete-report-related-objects'
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20676-delete-report-related-objects) $ csfix
docker exec -it docker_lamp_1 ./vendor/bin/php-cs-fixer fix --config=.php-cs-fixer.dist.php -v --using-cache=no --diff
PHP CS Fixer 3.87.1 Alexander by Fabien Potencier, Dariusz Ruminski and contributors.
PHP runtime: 8.3.30
Running 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!
Loaded config default from ".php-cs-fixer.dist.php".
5690/5690 [▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓] 100%
1) app/Console/Commands/JiminnyDebugCommand.php (statement_indentation, blank_line_before_statement)
---------- begin diff ----------
--- /home/jiminny/app/Console/Commands/JiminnyDebugCommand.php
+++ /home/jiminny/app/Console/Commands/JiminnyDebugCommand.php
@@ -23,6 +23,7 @@
if ($action === 'redis-set') {
$this->testRedisSet();
+
return;
}
@@ -45,7 +46,7 @@
$ttl = 60;
try {
-// $result = Redis::set($testKey, $testValue, 'EX', $ttl, 'NX');
+ // $result = Redis::set($testKey, $testValue, 'EX', $ttl, 'NX');
$result = Redis::set($testKey, $testValue, ['nx', 'ex' => $ttl]);
if ($result) {
----------- end diff -----------
Fixed 1 of 5690 files i...
|
58091
|
NULL
|
NULL
|
NULL
|
|
58095
|
2044
|
15
|
2026-05-19T11:35:16.877358+00:00
|
/Users/lukas/.screenpipe/data/data/2026-05-19/1779 /Users/lukas/.screenpipe/data/data/2026-05-19/1779190516877_m1.jpg...
|
iTerm2
|
APP (docker)
|
1
|
NULL
|
monitor_1
|
NULL
|
NULL
|
NULL
|
NULL
|
Last login: Mon May 18 09:17:28 on ttys007
Poetry Last login: Mon May 18 09:17:28 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 (pipedrive-sdk-poc) $ co master
error: Your local changes to the following files would be overwritten by checkout:
PIPEDRIVE_V2_MIGRATION_TICKETS.md
Please commit your changes or stash them before you switch branches.
Aborting
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (pipedrive-sdk-poc) $ git pull
remote: Enumerating objects: 1047, done.
remote: Counting objects: 100% (832/832), done.
remote: Compressing objects: 100% (298/298), done.
remote: Total 1047 (delta 634), reused 596 (delta 534), pack-reused 215 (from 3)
Receiving objects: 100% (1047/1047), 353.16 KiB | 1.56 MiB/s, done.
Resolving deltas: 100% (687/687), completed with 107 local objects.
From github.com:jiminny/app
907c54896c..34656c53ed pipedrive-sdk-poc -> origin/pipedrive-sdk-poc
03325ec50f..4e7078fd8b JY-18091-upgrade-to-php-8-5 -> origin/JY-18091-upgrade-to-php-8-5
e7d231e163..bc6a3fce6b JY-20725-handle-HS-search-rate-limit -> origin/JY-20725-handle-HS-search-rate-limit
* [new branch] JY-20749-user-can-view-recorded-meetings -> origin/JY-20749-user-can-view-recorded-meetings
98ca281a04..e0351be069 JY-20808-low-priority-indexing-queue -> origin/JY-20808-low-priority-indexing-queue
569abb5149..3906a9238a JY-20835-mcp-enable-users-to-get-a-list-of-deals-and-their-details -> origin/JY-20835-mcp-enable-users-to-get-a-list-of-deals-and-their-details
ad6c2a86e8..50eb6afba9 JY-20846-mcp-enable-the-ai-to-know-details-about-the-user -> origin/JY-20846-mcp-enable-the-ai-to-know-details-about-the-user
* [new branch] JY-20893-chunk-control-per-update-target -> origin/JY-20893-chunk-control-per-update-target
31c62924a5..cb4ebf0c36 master -> origin/master
Updating 907c54896c..34656c53ed
Fast-forward
PIPEDRIVE_V2_MIGRATION_TICKETS.md | 52 ++++++++++++++++++++++++++++++++++++++++++++++++++++
1 file changed, 52 insertions(+)
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (pipedrive-sdk-poc) $ co master
M .env.local
M config/logging.php
Switched to branch 'master'
Your branch is behind 'origin/master' by 31 commits, and can be fast-forwarded.
(use "git pull" to update your local branch)
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (master) $ git pull
Updating 31c62924a5..cb4ebf0c36
Fast-forward
app/Component/ES/Processor/Traits/SelectEntityListTrait.php | 20 ------
app/Services/Calendar/CalendarActivityService.php | 46 +++++++++++++
app/Services/Calendar/Command/MapActivityData.php | 106 +++-------------------------
docs/mcp/explorer/explorer.html | 104 +++++++++++++++++++++++++---
docs/mcp/explorer/explorer.template.html | 102 ++++++++++++++++++++++++---
docs/mcp/tools-list.json | 373 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++-------
docs/mcp/tools.md | 117 +++++++++++++++++++++++--------
tests/Unit/Component/ES/AsyncUpdateElasticSearchTest.php | 16 +----
tests/Unit/Component/ES/Listeners/UpdateMultipleTargetsListenerTest.php | 10 ---
tests/Unit/Component/ES/Listeners/UpdateSingleTargetListenerTest.php | 6 --
tests/Unit/Component/ES/Processor/TargetEntitiesSelectorTest.php | 9 ---
tests/Unit/Component/ES/Processor/Traits/SelectEntityListTraitTest.php | 15 ++--
tests/Unit/Component/ES/UpdateProcessManagerTest.php | 2 -
tests/Unit/Services/Calendar/CalendarActivityServiceTest.php | 150 ++++++++++++++++++++++++++++++++++++++--
tests/Unit/Services/Calendar/Command/MapActivityDataTest.php | 78 ++-------------------
15 files changed, 832 insertions(+), 322 deletions(-)
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (master) $ co -b JY-20613-allow-owner-role-on-team-setup
Switched to a new branch 'JY-20613-allow-owner-role-on-team-setup'
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20613-allow-owner-role-on-team-setup) $ csfix
docker exec -it docker_lamp_1 ./vendor/bin/php-cs-fixer fix --config=.php-cs-fixer.dist.php -v --using-cache=no --diff
PHP CS Fixer 3.87.1 Alexander by Fabien Potencier, Dariusz Ruminski and contributors.
PHP runtime: 8.3.30
Running 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!
Loaded config default from ".php-cs-fixer.dist.php".
5682/5682 [▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓] 100%
Fixed 0 of 5682 files in 56.978 seconds, 67.00 MB memory used
What's next:
Try Docker Debug for seamless, persistent debugging tools in any container or image → docker debug docker_lamp_1
Learn more at [URL_WITH_CREDENTIALS] ~/jiminny/app (JY-20613-allow-owner-role-on-team-setup) $ csfix
docker exec -it docker_lamp_1 ./vendor/bin/php-cs-fixer fix --config=.php-cs-fixer.dist.php -v --using-cache=no --diff
PHP CS Fixer 3.87.1 Alexander by Fabien Potencier, Dariusz Ruminski and contributors.
PHP runtime: 8.3.30
Running 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!
Loaded config default from ".php-cs-fixer.dist.php".
5682/5682 [▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓] 100%
Fixed 0 of 5682 files in 49.910 seconds, 60.00 MB memory used
What's next:
Try Docker Debug for seamless, persistent debugging tools in any container or image → docker debug docker_lamp_1
Learn more at [URL_WITH_CREDENTIALS] ~/jiminny/app (JY-20613-allow-owner-role-on-team-setup) $ git pull
remote: Enumerating objects: 248, done.
remote: Counting objects: 100% (128/128), done.
remote: Compressing objects: 100% (23/23), done.
remote: Total 59 (delta 43), reused 44 (delta 33), pack-reused 0 (from 0)
Unpacking objects: 100% (59/59), 10.48 KiB | 228.00 KiB/s, done.
From github.com:jiminny/app
b7df560451..190239dfd4 JY-20613-allow-owner-role-on-team-setup -> origin/JY-20613-allow-owner-role-on-team-setup
e0351be069..d94a285ae7 JY-20808-low-priority-indexing-queue -> origin/JY-20808-low-priority-indexing-queue
* [new branch] JY-20920-fix-participant-matcher -> origin/JY-20920-fix-participant-matcher
cb4ebf0c36..90bca4e4b2 master -> origin/master
Merge made by the 'ort' strategy.
app/Component/ES/ChunkSize.php | 54 +++++++++++++++++++++++++++
app/Component/ES/Processor/DTOs/SelectionList.php | 4 +-
app/Component/ES/Processor/TargetEntitiesSelector.php | 19 ++++++----
app/Http/Middleware/McpTierMiddleware.php | 27 +++-----------
app/Mcp/Servers/JiminnyServer.php | 2 +
app/Mcp/Tools/GetMeTool.php | 157 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
app/Models/Feature/FeatureEnum.php | 1 +
database/migrations/2026_05_13_124153_create_mcp_feature_flag.php | 25 +++++++++++++
front-end/src/components/Settings/Kiosk/modals/EditTeamModal/EditTeamModal.vue | 52 ++++++++++++++++++--------
front-end/src/components/Settings/Kiosk/modals/EditTeamModal/__tests__/EditTeamModal.spec.js | 14 +++++++
tests/Feature/Mcp/GetMeToolFeatureTest.php | 140 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
tests/Feature/Mcp/ListCallsToolFeatureTest.php | 2 +-
tests/Feature/Mcp/McpTestHelpersTrait.php | 19 +++++++++-
tests/Unit/Component/ES/ChunkSizeTest.php | 50 +++++++++++++++++++++++++
tests/Unit/Component/ES/Processor/DTOs/SelectionListTest.php | 27 ++++++++++----
tests/Unit/Component/ES/Processor/TargetEntitiesSelectorTest.php | 39 +++++++++++---------
16 files changed, 557 insertions(+), 75 deletions(-)
create mode 100644 app/Component/ES/ChunkSize.php
create mode 100644 app/Mcp/Tools/GetMeTool.php
create mode 100644 database/migrations/2026_05_13_124153_create_mcp_feature_flag.php
create mode 100644 tests/Feature/Mcp/GetMeToolFeatureTest.php
create mode 100644 tests/Unit/Component/ES/ChunkSizeTest.php
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20613-allow-owner-role-on-team-setup) $ git push
Enumerating objects: 40, done.
Counting objects: 100% (34/34), done.
Delta compression using up to 8 threads
Compressing objects: 100% (18/18), done.
Writing objects: 100% (18/18), 1.58 KiB | 1.58 MiB/s, done.
Total 18 (delta 15), reused 0 (delta 0), pack-reused 0
remote: Resolving deltas: 100% (15/15), completed with 13 local objects.
To github.com:jiminny/app.git
190239dfd4..ec1b261264 JY-20613-allow-owner-role-on-team-setup -> JY-20613-allow-owner-role-on-team-setup
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20613-allow-owner-role-on-team-setup) $ gbr
* JY-20613-allow-owner-role-on-team-setup
pipedrive-sdk-poc
master
JY-20903-update_activity-stage-on-opportunity-change
JY-20904-fix-update-es-on-activity-command
JY-20891-improve-sms-text-relays
JY-20725-handle-HS-search-rate-limit
JY-20818-move-AJ-reports-to-separated-datadog-metric
JY-20773-fix-automated-reports-user-pilot-tracking
JY-20157-AJ-report-not-send-notification
JY-20508-notify-before-AJ-report-expiration
JY-20372-ai-reports-promotion-pages
JY-20352-sync-opportunities-without-a-local-owner-user-id-is-null
JY-20738-debug-AJ-tracking-UP
a
JY-18909-automated-reports-ask-jiminny
JY-20692-fix-integration-app-[API_KEY]
JY-20553-debug-crm-sync-delays
JY-20698-fix-SF-activity-types-on-new-playbook
JY-20543-AJ-report-tracking
JY-20384-handle-auto-sync-with-no-access-to-event-type
JY-20458-ask-jiminny-user-definitions
JY-19666-fix-import-contacts-account-association
JY-19666-HS-import-contacts-and-accounts-batch-job
JY-20458-Ask-Jiminny-Reports
JY-20200-batch-update-CRM-objects-Salesforce
JY-19666-HS-webhooks-add-contact-and-company
JY-20348-trigger-setup-DI-layout-on-team-creation
JY-20326-refactor-info-message-in-command
JY-20317-fix-auto-log-delay-issue-on-all-channels-disabled
JY-20312-remove-on-update-change-last-synced-at-crm-configurations
JY-20306-SF-skip-auto-sync-for-task-based-playbook
JY-20192-remove-deleted-team-from-saved-search-filters
JY-20197-import-opportunity-batch-job
JY-20293-enable-status-field-for-pipedrive-deals
JY-20191-remove-commands-interactive-prompts
JY-20118-change-default-sync-strategy
JY-20183-add-cache-on-auto-log-delay
JY-20197-add-import-opportunity-batch-job
20118-hs-opportunity-make-webhook-strategy-default
JY-20118-make-default-hs-opportunity-sync-strategy-webhook-based
JY-20196-handle-opportunity-without-note
JY-20118-improve-opportunity-import
JY-20189-handle-activity-search-on-deleted-groups
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20613-allow-owner-role-on-team-setup) $ co JY-20725-handle-HS-search-rate-limit
M .env.local
M config/logging.php
Switched to branch 'JY-20725-handle-HS-search-rate-limit'
Your branch is behind 'origin/JY-20725-handle-HS-search-rate-limit' by 439 commits, and can be fast-forwarded.
(use "git pull" to update your local branch)
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20725-handle-HS-search-rate-limit) $ git pull
Updating 0f3e438941..bc6a3fce6b
Fast-forward
.gitignore | 3 +-
.windsurfrules | 168 ++---
CLAUDE.md | 1 +
app/Component/ActivityAnalytics/Service/CalculateTalkTimeOffsetsFromTranscription.php | 24 +-
app/Component/AiActivityType/Services/AiActivityTypeEligibilityChecker.php | 28 +-
app/Component/AiAutomation/Actions/PrepareUpdateDtoAction.php | 32 +-
app/Component/AiAutomation/Services/CrmFillingEligibilityChecker.php | 47 ++
app/Component/AiAutomation/TestCrmAiPromptService.php | 14 +
app/Component/AiCallScoring/Services/AiCallScoringEligibilityChecker.php | 9 +
app/Component/ES/ElasticSearchDocumentPartialUpdater.php | 13 +-
app/Component/ES/ElasticSearchWorkerManager.php | 86 ---
app/Component/ES/Processor/Actions/LoadDocumentsAction.php | 80 +--
app/Component/ES/Processor/EntityQueryBuilder.php | 12 +-
app/Component/ES/Processor/TargetEntitiesSelector.php | 2 +-
app/Component/ES/Processor/Traits/SkipActivityTrait.php | 25 -
app/Component/ES/Repositories/EsResetActivityRepository.php | 11 +-
app/Component/ES/Worker/ActivityWorker.php | 73 --
app/Component/ES/Worker/EntityWorker.php | 44 --
app/Component/ES/Worker/WorkerAmount.php | 60 --
app/Component/ES/Worker/WorkerInterface.php | 15 -
app/Component/ElasticSearch/Contract/Searchable.php | 4 +
app/Component/Encoding/Job/AnalyzeTrackChannelsJob.php | 20 +-
app/Component/Encoding/Service/GenerateSpeechFromSilenceService.php | 85 ++-
app/Component/FFMpeg/Services/GetSpeechIntervalsService.php | 18 +-
app/Component/LanguageDetection/Services/FindSpeechTimeService.php | 22 +-
app/Component/Nudge/Job/ProcessOrganisationImmediateNudgesJob.php | 218 +++++-
app/Component/ParagraphBreaker/Services/TranscriptionParagraphsService.php | 4 +
app/Component/ParticipantSpeech/Services/ParticipantSpeechesCreator.php | 33 +
app/Component/ParticipantSpeech/Services/ParticipantSpeechesDeleter.php | 15 +
app/Component/ParticipantSpeech/Services/ParticipantSpeechesProvider.php | 51 +-
app/Component/ParticipantSpeech/Services/ParticipantSpeechesUploader.php | 36 +
app/Component/ProphetAi/Exceptions/InsufficientTranscriptException.php | 11 +
app/Component/Transcription/DTO/Http/Transcription/AssemblyAI/AssemblyAI/NoAssemblyIdException.php | 11 +
app/Component/Transcription/DTO/Http/Transcription/AssemblyAI/AssemblyAI/SuccessfulResponse.php | 6 +
app/Component/Transcription/DTO/Http/Transcription/TranscriptionIsNotCorrectFormatException.php | 11 +
app/Component/Transcription/Diarization/Services/GetNormalizedParticipantSpeechesService.php | 23 +-
app/Component/Transcription/Diarization/Source/MeetingBotSource.php | 16 +-
app/Component/Transcription/TranscriptionProcessor/TranscriptionProcessor.php | 3 +
app/Console/Commands/Activities/ActivityHardDeleteCommand.php | 4 +-
app/Console/Commands/Activities/Copy.php | 2 +
app/Console/Commands/Activities/SetupIntegration/TwilioSetS3RecordingCredentialsCommand.php | 119 ++++
app/Console/Commands/Activities/UpdateActivityElasticSearchDocumentCommand.php | 10 +-
app/Console/Commands/Crm/BackfillOpportunityUserFromAccountCommand.php | 126 ++++
app/Console/Commands/Elasticsearch/AsyncUpdateEsActivities.php | 19 -
app/Console/Commands/Elasticsearch/AsyncUpdateEsEntities.php | 50 +-
app/Console/Commands/Elasticsearch/ResetAsyncElasticSearchCommand.php | 30 +-
app/Console/Commands/GeckoExport/GeckoExportParticipantSpeechesCommand.php | 14 +-
app/Console/Commands/IssueMcpTokenCommand.php | 84 +++
app/Console/Commands/JiminnyDebugCommand.php | 7 +-
app/Console/Commands/Tracks/CleanupActivityTracksCommand.php | 2 +-
app/Console/Kernel.php | 6 +-
app/Contracts/Services/Calendar/CalendarTrait.php | 80 ++-
app/Events/AutomatedReports/AutomatedReportGenerated.php | 3 +
app/Http/Controllers/API/AiCallScoring/AiScorecardController.php | 7 +-
app/Http/Controllers/API/TeamAiAutomationController.php | 8 +
app/Http/Controllers/CustomerApi/CustomerApiController.php | 4 +-
app/Http/Controllers/Kiosk/ActivityController.php | 58 +-
app/Http/Controllers/Settings/PlaybookController.php | 15 +-
app/Http/Kernel.php | 23 +
app/Http/Middleware/McpAuditMiddleware.php | 156 ++++
app/Http/Middleware/McpTierMiddleware.php | 54 ++
app/Http/Requests/API/V2/ZapierUploadActivityRequest.php | 28 +-
app/Jobs/Activity/Import/ImportTwilioVideoSpeechesJob.php | 25 +-
app/Jobs/Activity/Import/IsActivityReadyForProcessingJob.php | 10 +-
app/Jobs/Calendar/SetupCalendarSync.php | 21 +-
app/Jobs/ImportRemoteTrackJob.php | 96 ++-
app/Jobs/Mailbox/EmailTextRelay.php | 15 +-
app/Mcp/Contracts/McpCallRepositoryInterface.php | 30 +
app/Mcp/DTO/ListCallsFilters.php | 29 +
app/Mcp/Errors/McpError.php | 123 ++++
app/Mcp/Repositories/McpActivityHydrator.php | 145 ++++
app/Mcp/Repositories/McpCallRepository.php | 84 +++
app/Mcp/Repositories/McpElasticCallRepository.php | 171 +++++
app/Mcp/Servers/JiminnyServer.php | 38 +
app/Mcp/Tools/ListCallsTool.php | 205 ++++++
app/Models/Activity.php | 10 +-
app/Models/Activity/Transcription.php | 17 +-
app/Models/ElasticSearch/OpportunityElasticSearchTrait.php | 5 +
app/Models/Participant.php | 1 +
app/Providers/AppServiceProvider.php | 22 +
app/Repositories/Crm/ContactRepository.php | 69 +-
app/Repositories/ParticipantSpeechRepository.php | 13 +-
app/Services/Activity/ParticipantsService.php | 19 +-
app/Services/Activity/Twilio/S3RecordingCredentialsService.php | 82 +++
app/Services/ActivityService.php | 21 +-
app/Services/Calendar/CalendarActivityService.php | 46 ++
app/Services/Calendar/Command/ImportParticipants.php | 1 +
app/Services/Calendar/Command/MapActivityData.php | 106 +--
app/Services/Calendar/GoogleCalendarService.php | 12 +-
app/Services/Crm/Close/Processor/OpportunityProcessor.php | 2 +-
app/Services/Crm/Close/Service.php | 22 +-
app/Services/Crm/Copper/Service.php | 12 +-
app/Services/Crm/Hubspot/Service.php | 154 +++-
app/Services/Crm/Hubspot/ServiceTraits/OpportunitySyncTrait.php | 88 ++-
app/Services/Crm/IntegrationApp/ServiceTraits/SyncCrmEntitiesTrait.php | 22 +-
app/Services/Crm/Pipedrive/Service.php | 17 +-
app/Services/Crm/Salesforce/Service.php | 42 +-
app/Services/Mail/Office/EmailApiClient.php | 129 +---
app/Services/RecallAI/Commands/ScheduleBotCommand.php | 39 +-
app/Services/RecallAI/RecallAIService.php | 22 +-
composer.json | 3 +-
composer.lock | 87 ++-
config/mcp.php | 23 +
database/migrations/2026_04_30_120000_create_mcp_audit_log_table.php | 36 +
docs/mcp/explorer/explorer.html | 697 ++++++++++++++++++
docs/mcp/explorer/explorer.template.html | 697 ++++++++++++++++++
docs/mcp/explorer/generate.js | 215 ++++++
docs/mcp/explorer/tool-explorer-meta.json | 11 +
docs/mcp/tools-list.json | 2536 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
docs/mcp/tools.md | 621 ++++++++++++++++
front-end/package.json | 4 +-
front-end/src/components/Settings/OrgSettings/AiAutomation/CrmFilling/TemplateFieldForm.vue | 28 +-
front-end/src/components/Settings/OrgSettings/Playbooks/AddEditPlaybook.vue | 10 +
front-end/src/components/playback/comments/ActivityComment.less | 10 +-
front-end/src/components/shared/PromptTester/PromptTester.vue | 12 +-
front-end/src/components/shared/__tests__/PromptTester.spec.js | 35 +
front-end/src/components/shared/modals/EntityPickerModal/__tests__/useEntitiesCache.spec.ts | 37 +
front-end/src/components/shared/modals/EntityPickerModal/useEntitiesCache.ts | 9 +
front-end/yarn.lock | 16 +-
phpstan-baseline.neon | 50 --
routes/api.php | 11 +
sonar-project.properties | 91 ++-
tests/Feature/Component/Nudge/ProcessOrganisationImmediateNudgesJobTest.php | 534 ++++++++++++++
tests/Feature/Jobs/ImportRemoteTrackJobTest.php | 283 +++++++-
tests/Feature/Mcp/IssueMcpTokenCommandTest.php | 53 ++
tests/Feature/Mcp/ListCallsToolElasticFeatureTest.php | 155 ++++
tests/Feature/Mcp/ListCallsToolFeatureTest.php | 352 ++++++++++
tests/Feature/Mcp/McpTestHelpersTrait.php | 77 ++
tests/Feature/Services/Team/TeamDeleteHandlers/Retention/RetentionRepositoryHandlerTest.php | 1 +
tests/Stubs/SentryStub.php | 18 +
tests/Unit/Component/ActivityAnalytics/Service/CalculateTalkTimeOffsetFromTranscriptionTest.php | 28 +-
tests/Unit/Component/AiActivityType/Services/AiActivityTypeEligibilityCheckerTest.php | 103 ++-
tests/Unit/Component/AiAutomation/Actions/PrepareUpdateDtoActionTest.php | 91 +++
tests/Unit/Component/AiAutomation/Services/CrmFillingEligibilityCheckerTest.php | 124 ++++
tests/Unit/Component/AiAutomation/TestCrmAiPromptServiceTest.php | 67 +-
tests/Unit/Component/AiCallScoring/Services/AiCallScoringEligibilityCheckerTest.php | 55 ++
tests/Unit/Component/ES/ElasticSearchWorkerManagerTest.php | 135 ----
tests/Unit/Component/ES/Processor/Actions/LoadDocumentsActionTest.php | 220 ++++++
tests/Unit/Component/ES/Processor/EntityQueryBuilderTest.php | 21 +-
tests/Unit/Component/ES/Processor/Traits/SkipActivityTraitTest.php | 51 --
tests/Unit/Component/ES/Worker/ActivityWorkerTest.php | 174 -----
tests/Unit/Component/ES/Worker/EntityWorkerTest.php | 97 ---
tests/Unit/Component/ES/Worker/WorkerAmountTest.php | 116 ---
tests/Unit/Component/Encoding/Job/AnalyzeTrackChannelsJobTest.php | 52 +-
tests/Unit/Component/Encoding/Service/GenerateSpeechFromSilenceServiceTest.php | 171 ++---
tests/Unit/Component/FFMpeg/Services/GetSpeechIntervalsTest.php | 36 +-
tests/Unit/Component/LanguageDetection/Services/FindSpeechTimeServiceTest.php | 20 +-
tests/Unit/Component/MobileSettings/MobileSettingsControllerTest.php | 5 +-
tests/Unit/Component/ParticipantSpeech/Services/ParticipantSpeechesCreatorTest.php | 75 ++
tests/Unit/Component/ParticipantSpeech/Services/ParticipantSpeechesDeleterTest.php | 63 ++
tests/Unit/Component/ParticipantSpeech/Services/ParticipantSpeechesProviderTest.php | 134 ++++
tests/Unit/Component/ParticipantSpeech/Services/ParticipantSpeechesUploaderTest.php | 57 ++
tests/Unit/Component/Transcription/Diarization/Services/GetNormalizedParticipantSpeechesServiceTest.php | 51 +-
tests/Unit/Component/Transcription/Diarization/Source/MeetingBotSourceTest.php | 29 +-
tests/Unit/Contracts/Services/Calendar/CalendarTraitTest.php | 58 +-
tests/Unit/Http/Controllers/Kiosk/ActivityControllerTest.php | 159 +++++
tests/Unit/Jobs/Activity/Import/ImportTwilioVideoSpeechesJobTest.php | 22 +-
tests/Unit/Jobs/Activity/Import/IsActivityReadyForProcessingJobTest.php | 26 +-
tests/Unit/Jobs/Calendar/SetupCalendarSyncTest.php | 25 -
tests/Unit/Services/Activity/ParticipantsServiceTest.php | 12 +-
tests/Unit/Services/Activity/Twilio/S3RecordingCredentialsServiceTest.php | 180 +++++
tests/Unit/Services/ActivityServiceTest.php | 132 ++++
tests/Unit/Services/Calendar/CalendarActivityServiceTest.php | 150 +++-
tests/Unit/Services/Calendar/Command/ImportParticipantsTest.php | 6 +-
tests/Unit/Services/Calendar/Command/MapActivityDataTest.php | 78 +-
tests/Unit/Services/Calendar/GoogleCalendarServiceTest.php | 116 +++
tests/Unit/Services/Crm/Close/ServiceTest.php | 165 +++++
tests/Unit/Services/Crm/Hubspot/ServiceTest.php | 272 ++++++-
tests/Unit/Services/Crm/Hubspot/ServiceTraits/OpportunitySyncTest.php | 25 +-
tests/Unit/Services/Crm/Hubspot/ServiceTraits/OpportunitySyncTraitMatchActivitiesTest.php | 3 +-
tests/Unit/Services/Crm/IntegrationApp/ServiceTraits/SyncCrmEntitiesTraitOpportunitiesTest.php | 40 ++
tests/Unit/Services/Crm/Pipedrive/ImportOpportunityMatchActivitiesTest.php | 2 +
tests/Unit/Services/Crm/Salesforce/ServiceTest.php | 139 ++++
tests/Unit/Services/Mail/Office/EmailApiClientTest.php | 195 ++---
tests/Unit/Services/RecallAI/RecallAIServiceTest.php | 24 +-
175 files changed, 12562 insertions(+), 2162 deletions(-)
create mode 120000 CLAUDE.md
create mode 100644 app/Component/AiAutomation/Services/CrmFillingEligibilityChecker.php
delete mode 100644 app/Component/ES/ElasticSearchWorkerManager.php
delete mode 100644 app/Component/ES/Processor/Traits/SkipActivityTrait.php
delete mode 100644 app/Component/ES/Worker/ActivityWorker.php
delete mode 100644 app/Component/ES/Worker/EntityWorker.php
delete mode 100644 app/Component/ES/Worker/WorkerAmount.php
delete mode 100644 app/Component/ES/Worker/WorkerInterface.php
create mode 100644 app/Component/ProphetAi/Exceptions/InsufficientTranscriptException.php
create mode 100644 app/Component/Transcription/DTO/Http/Transcription/AssemblyAI/AssemblyAI/NoAssemblyIdException.php
create mode 100644 app/Component/Transcription/DTO/Http/Transcription/TranscriptionIsNotCorrectFormatException.php
create mode 100644 app/Console/Commands/Activities/SetupIntegration/TwilioSetS3RecordingCredentialsCommand.php
create mode 100644 app/Console/Commands/Crm/BackfillOpportunityUserFromAccountCommand.php
delete mode 100644 app/Console/Commands/Elasticsearch/AsyncUpdateEsActivities.php
create mode 100644 app/Console/Commands/IssueMcpTokenCommand.php
create mode 100644 app/Http/Middleware/McpAuditMiddleware.php
create mode 100644 app/Http/Middleware/McpTierMiddleware.php
create mode 100644 app/Mcp/Contracts/McpCallRepositoryInterface.php
create mode 100644 app/Mcp/DTO/ListCallsFilters.php
create mode 100644 app/Mcp/Errors/McpError.php
create mode 100644 app/Mcp/Repositories/McpActivityHydrator.php
create mode 100644 app/Mcp/Repositories/McpCallRepository.php
create mode 100644 app/Mcp/Repositories/McpElasticCallRepository.php
create mode 100644 app/Mcp/Servers/JiminnyServer.php
create mode 100644 app/Mcp/Tools/ListCallsTool.php
create mode 100644 app/Services/Activity/Twilio/S3RecordingCredentialsService.php
create mode 100644 config/mcp.php
create mode 100644 database/migrations/2026_04_30_120000_create_mcp_audit_log_table.php
create mode 100644 docs/mcp/explorer/explorer.html
create mode 100644 docs/mcp/explorer/explorer.template.html
create mode 100644 docs/mcp/explorer/generate.js
create mode 100644 docs/mcp/explorer/tool-explorer-meta.json
create mode 100644 docs/mcp/tools-list.json
create mode 100644 docs/mcp/tools.md
create mode 100644 front-end/src/components/shared/modals/EntityPickerModal/__tests__/useEntitiesCache.spec.ts
create mode 100644 tests/Feature/Component/Nudge/ProcessOrganisationImmediateNudgesJobTest.php
create mode 100644 tests/Feature/Mcp/IssueMcpTokenCommandTest.php
create mode 100644 tests/Feature/Mcp/ListCallsToolElasticFeatureTest.php
create mode 100644 tests/Feature/Mcp/ListCallsToolFeatureTest.php
create mode 100644 tests/Feature/Mcp/McpTestHelpersTrait.php
create mode 100644 tests/Stubs/SentryStub.php
create mode 100644 tests/Unit/Component/AiAutomation/Services/CrmFillingEligibilityCheckerTest.php
delete mode 100644 tests/Unit/Component/ES/ElasticSearchWorkerManagerTest.php
create mode 100644 tests/Unit/Component/ES/Processor/Actions/LoadDocumentsActionTest.php
delete mode 100644 tests/Unit/Component/ES/Processor/Traits/SkipActivityTraitTest.php
delete mode 100644 tests/Unit/Component/ES/Worker/ActivityWorkerTest.php
delete mode 100644 tests/Unit/Component/ES/Worker/EntityWorkerTest.php
delete mode 100644 tests/Unit/Component/ES/Worker/WorkerAmountTest.php
create mode 100644 tests/Unit/Component/ParticipantSpeech/Services/ParticipantSpeechesCreatorTest.php
create mode 100644 tests/Unit/Http/Controllers/Kiosk/ActivityControllerTest.php
create mode 100644 tests/Unit/Services/Activity/Twilio/S3RecordingCredentialsServiceTest.php
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20725-handle-HS-search-rate-limit) $ git status
On branch master
Your branch is behind 'origin/master' by 114 commits, and can be fast-forwarded.
(use "git pull" to update your local branch)
Changes not staged for commit:
(use "git add <file>..." to update what will be committed)
(use "git restore <file>..." to discard changes in working directory)
modified: .env.local
modified: app/Component/SCIM/Constants.php
modified: app/Component/SCIM/ScimProvisioning.php
modified: app/Component/Twilio/Conference/ConferenceManager/SoftPhoneManager.php
modified: app/Console/Commands/JiminnyDebugCommand.php
modified: app/DTO/SCIM/AAD/Request/CoreUserRequest.php
modified: app/DTO/SCIM/AAD/Response/CoreUser.php
modified: app/Services/Telephony/TextMessagingService.php
modified: config/logging.php
Untracked files:
(use "git add <file>..." to include in what will be committed)
.env.nikilocal
.env.other
WEBHOOK_FILTERING_IMPLEMENTATION.md
app/Component/SCIM/Mutators/Attributes/User/RoleAttr.php
app/Console/Commands/Crm/Hubspot/SimulateWebhooksCommand.php
app/Console/Commands/Reports/CreateMockAskJiminnyReportResultCommand.php
app/Rules/ListenerRoleCannotHaveAdminOrManagerPermissionRule.php
ids.txt
public/favicon.ico
raw_sql_query.sql
tests/Unit/Component/SCIM/Mutators/Attributes/User/RoleAttrTest.php
tests/Unit/Policies/CanAccessAiReportsTest.php
tests/Unit/Rules/ListenerRoleCannotHaveAdminOrManagerPermissionRuleTest.php
no changes added to commit (use "git add" and/or "git commit -a")
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (master) $ git pull
remote: Enumerating objects: 306, done.
remote: Counting objects: 100% (299/299), done.
remote: Compressing objects: 100% (183/183), done.
remote: Total 306 (delta 213), reused 171 (delta 116), pack-reused 7 (from 1)
Receiving objects: 100% (306/306), 80.12 KiB | 1000.00 KiB/s, done.
Resolving deltas: 100% (213/213), completed with 53 local objects.
From github.com:jiminny/app
90bca4e4b2..5604af40cf master -> origin/master
4e7078fd8b..0b8343d179 JY-18091-upgrade-to-php-8-5 -> origin/JY-18091-upgrade-to-php-8-5
098eeaa087..d5a447e492 JY-20613-allow-owner-role-on-team-setup -> origin/JY-20613-allow-owner-role-on-team-setup
c3a76ace91..af65249d0f JY-20749-user-can-view-recorded-meetings -> origin/JY-20749-user-can-view-recorded-meetings
d94a285ae7..7ce96cb5fe JY-20808-low-priority-indexing-queue -> origin/JY-20808-low-priority-indexing-queue
* [new branch] JY-20842-remove-partial-updater -> origin/JY-20842-remove-partial-updater
* [new branch] JY-20920-fix-participant-flip -> origin/JY-20920-fix-participant-flip
* [new branch] secfix/npm-20260519 -> origin/secfix/npm-20260519
Updating cb4ebf0c36..5604af40cf
Fast-forward
app/Component/ES/ChunkSize.php | 54 +++++++++++++++++++
app/Component/ES/Processor/DTOs/SelectionList.php | 4 +-
app/Component/ES/Processor/TargetEntitiesSelector.php | 19 ++++---
app/Component/MeetingBot/Service/ParticipantMatcher.php | 46 ++++++++++++----
app/Exceptions/RateLimitException.php | 19 ++++++-
app/Http/Middleware/McpTierMiddleware.php | 27 ++--------
app/Jobs/Crm/MatchActivityCrmData.php | 47 ++++++++++++----
app/Jobs/Middleware/HandleHubspotRateLimit.php | 42 +++++++++++++++
app/Mcp/Servers/JiminnyServer.php | 2 +
app/Mcp/Tools/GetMeTool.php | 157 +++++++++++++++++++++++++++++++++++++++++++++++++++++
app/Models/Feature/FeatureEnum.php | 1 +
app/Services/Activity/HubSpot/ProviderResolver.php | 4 +-
app/Services/Activity/HubSpot/ProviderResolverInterface.php | 2 +-
app/Services/Activity/HubSpot/Providers/Provider.php | 2 +-
app/Services/Activity/HubSpot/Providers/ProviderKixie.php | 2 +-
app/Services/Activity/HubSpot/Providers/ProviderOrum.php | 2 +-
app/Services/Activity/HubSpot/Providers/ProviderTwilio.php | 2 +-
app/Services/Activity/HubSpot/Providers/ProviderTwilioFlex.php | 5 +-
app/Services/Activity/HubSpot/Service.php | 97 +++++++++++++++++++++++++++------
app/Services/Crm/Hubspot/Client.php | 132 +++++++++++++++++++++++++++++++++++++++++++++
app/Services/Crm/Hubspot/HubspotClientInterface.php | 15 ++++++
app/Services/Crm/Hubspot/Pagination/HubspotPaginationService.php | 21 ++++----
app/Services/Crm/Hubspot/Pagination/PaginationState.php | 2 +-
database/migrations/2026_05_13_124153_create_mcp_feature_flag.php | 25 +++++++++
tests/Feature/Mcp/GetMeToolFeatureTest.php | 140 +++++++++++++++++++++++++++++++++++++++++++++++
tests/Feature/Mcp/ListCallsToolFeatureTest.php | 2 +-
tests/Feature/Mcp/McpTestHelpersTrait.php | 19 ++++++-
tests/Unit/Component/ES/ChunkSizeTest.php | 50 +++++++++++++++++
tests/Unit/Component/ES/Processor/DTOs/SelectionListTest.php | 27 +++++++---
tests/Unit/Component/ES/Processor/TargetEntitiesSelectorTest.php | 39 ++++++++------
tests/Unit/Component/MeetingBot/Service/ParticipantMatcherTest.php | 68 ++++++++++++++++++++++-
tests/Unit/Exceptions/RateLimitExceptionTest.php | 56 +++++++++++++++++++
tests/Unit/Jobs/Crm/MatchActivityCrmDataTest.php | 8 +--
tests/Unit/Jobs/Middleware/HandleHubspotRateLimitTest.php | 151 +++++++++++++++++++++++++++++++++++++++++++++++++++
tests/Unit/Services/Activity/HubSpot/ServiceTest.php | 109 +++++++++++++++++++++++++++++++++++++
tests/Unit/Services/Crm/Hubspot/ClientTest.php | 250 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
tests/Unit/Services/Crm/Hubspot/Pagination/HubspotPaginationServiceTest.php | 283 +++++++++++++++++++++---------------------------------------------------------------------------
37 files changed, 1587 insertions(+), 344 deletions(-)
create mode 100644 app/Component/ES/ChunkSize.php
create mode 100644 app/Jobs/Middleware/HandleHubspotRateLimit.php
create mode 100644 app/Mcp/Tools/GetMeTool.php
create mode 100644 database/migrations/2026_05_13_124153_create_mcp_feature_flag.php
create mode 100644 tests/Feature/Mcp/GetMeToolFeatureTest.php
create mode 100644 tests/Unit/Component/ES/ChunkSizeTest.php
create mode 100644 tests/Unit/Exceptions/RateLimitExceptionTest.php
create mode 100644 tests/Unit/Jobs/Middleware/HandleHubspotRateLimitTest.php
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (master) $ git pull
Already up to date.
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (master) $ co -b JY-20676-delete-report-related-objects
Switched to a new branch 'JY-20676-delete-report-related-objects'
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20676-delete-report-related-objects) $ csfix
docker exec -it docker_lamp_1 ./vendor/bin/php-cs-fixer fix --config=.php-cs-fixer.dist.php -v --using-cache=no --diff
PHP CS Fixer 3.87.1 Alexander by Fabien Potencier, Dariusz Ruminski and contributors.
PHP runtime: 8.3.30
Running 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!
Loaded config default from ".php-cs-fixer.dist.php".
5690/5690 [▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓] 100%
1) app/Console/Commands/JiminnyDebugCommand.php (statement_indentation, blank_line_before_statement)
---------- begin diff ----------
--- /home/jiminny/app/Console/Commands/JiminnyDebugCommand.php
+++ /home/jiminny/app/Console/Commands/JiminnyDebugCommand.php
@@ -23,6 +23,7 @@
if ($action === 'redis-set') {
$this->testRedisSet();
+
return;
}
@@ -45,7 +46,7 @@
$ttl = 60;
try {
-// $result = Redis::set($testKey, $testValue, 'EX', $ttl, 'NX');
+ // $result = Redis::set($testKey, $testValue, 'EX', $ttl, 'NX');
$result = Redis::set($testKey, $testValue, ['nx', 'ex' => $ttl]);
if ($result) {
----------- end diff -----------
Fixed 1 of 5690 files i...
|
[{"role":"AXTextArea","text [{"role":"AXTextArea","text":"Last login: Mon May 18 09:17:28 on ttys007\n\nPoetry could not find a pyproject.toml file in /Users/lukas/jiminny/app or its parents\n\nPoetry could not find a pyproject.toml file in /Users/lukas/jiminny/app or its parents\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (pipedrive-sdk-poc) $ co master\nerror: Your local changes to the following files would be overwritten by checkout:\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tPIPEDRIVE_V2_MIGRATION_TICKETS.md\nPlease commit your changes or stash them before you switch branches.\nAborting\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (pipedrive-sdk-poc) $ git pull\nremote: Enumerating objects: 1047, done.\nremote: Counting objects: 100% (832/832), done.\nremote: Compressing objects: 100% (298/298), done.\nremote: Total 1047 (delta 634), reused 596 (delta 534), pack-reused 215 (from 3)\nReceiving objects: 100% (1047/1047), 353.16 KiB | 1.56 MiB/s, done.\nResolving deltas: 100% (687/687), completed with 107 local objects.\nFrom github.com:jiminny/app\n 907c54896c..34656c53ed pipedrive-sdk-poc -> origin/pipedrive-sdk-poc\n 03325ec50f..4e7078fd8b JY-18091-upgrade-to-php-8-5 -> origin/JY-18091-upgrade-to-php-8-5\n e7d231e163..bc6a3fce6b JY-20725-handle-HS-search-rate-limit -> origin/JY-20725-handle-HS-search-rate-limit\n * [new branch] JY-20749-user-can-view-recorded-meetings -> origin/JY-20749-user-can-view-recorded-meetings\n 98ca281a04..e0351be069 JY-20808-low-priority-indexing-queue -> origin/JY-20808-low-priority-indexing-queue\n 569abb5149..3906a9238a JY-20835-mcp-enable-users-to-get-a-list-of-deals-and-their-details -> origin/JY-20835-mcp-enable-users-to-get-a-list-of-deals-and-their-details\n ad6c2a86e8..50eb6afba9 JY-20846-mcp-enable-the-ai-to-know-details-about-the-user -> origin/JY-20846-mcp-enable-the-ai-to-know-details-about-the-user\n * [new branch] JY-20893-chunk-control-per-update-target -> origin/JY-20893-chunk-control-per-update-target\n 31c62924a5..cb4ebf0c36 master -> origin/master\nUpdating 907c54896c..34656c53ed\nFast-forward\n PIPEDRIVE_V2_MIGRATION_TICKETS.md | 52 ++++++++++++++++++++++++++++++++++++++++++++++++++++\n 1 file changed, 52 insertions(+)\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (pipedrive-sdk-poc) $ co master\nM\u0000\u0000\u0000\u0000\u0000\u0000\t.env.local\nM\u0000\u0000\u0000\u0000\u0000\u0000\tconfig/logging.php\nSwitched to branch 'master'\nYour branch is behind 'origin/master' by 31 commits, and can be fast-forwarded.\n (use \"git pull\" to update your local branch)\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (master) $ git pull\nUpdating 31c62924a5..cb4ebf0c36\nFast-forward\n app/Component/ES/Processor/Traits/SelectEntityListTrait.php | 20 ------\n app/Services/Calendar/CalendarActivityService.php | 46 +++++++++++++\n app/Services/Calendar/Command/MapActivityData.php | 106 +++-------------------------\n docs/mcp/explorer/explorer.html | 104 +++++++++++++++++++++++++---\n docs/mcp/explorer/explorer.template.html | 102 ++++++++++++++++++++++++---\n docs/mcp/tools-list.json | 373 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++-------\n docs/mcp/tools.md | 117 +++++++++++++++++++++++--------\n tests/Unit/Component/ES/AsyncUpdateElasticSearchTest.php | 16 +----\n tests/Unit/Component/ES/Listeners/UpdateMultipleTargetsListenerTest.php | 10 ---\n tests/Unit/Component/ES/Listeners/UpdateSingleTargetListenerTest.php | 6 --\n tests/Unit/Component/ES/Processor/TargetEntitiesSelectorTest.php | 9 ---\n tests/Unit/Component/ES/Processor/Traits/SelectEntityListTraitTest.php | 15 ++--\n tests/Unit/Component/ES/UpdateProcessManagerTest.php | 2 -\n tests/Unit/Services/Calendar/CalendarActivityServiceTest.php | 150 ++++++++++++++++++++++++++++++++++++++--\n tests/Unit/Services/Calendar/Command/MapActivityDataTest.php | 78 ++-------------------\n 15 files changed, 832 insertions(+), 322 deletions(-)\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (master) $ co -b JY-20613-allow-owner-role-on-team-setup\nSwitched to a new branch 'JY-20613-allow-owner-role-on-team-setup'\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20613-allow-owner-role-on-team-setup) $ csfix\ndocker exec -it docker_lamp_1 ./vendor/bin/php-cs-fixer fix --config=.php-cs-fixer.dist.php -v --using-cache=no --diff \nPHP CS Fixer 3.87.1 Alexander by Fabien Potencier, Dariusz Ruminski and contributors.\nPHP runtime: 8.3.30\nRunning analysis on 7 cores with 10 files per process.\nParallel runner is an experimental feature and may be unstable, use it at your own risk. Feedback highly appreciated!\nLoaded config default from \".php-cs-fixer.dist.php\".\n 5682/5682 [▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓] 100%\n\n\nFixed 0 of 5682 files in 56.978 seconds, 67.00 MB memory used\n\nWhat's next:\n Try Docker Debug for seamless, persistent debugging tools in any container or image → docker debug docker_lamp_1\n Learn more at https://docs.docker.com/go/debug-cli/\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20613-allow-owner-role-on-team-setup) $ ;xd\ndocker exec -it docker_lamp_1 bash -c \"mv /usr/local/etc/php/conf.d/xdebug.ini ~/xdebug.ini\"\n\nWhat's next:\n Try Docker Debug for seamless, persistent debugging tools in any container or image → docker debug docker_lamp_1\n Learn more at https://docs.docker.com/go/debug-cli/\ndocker exec -it docker_lamp_1 supervisorctl restart all\njiminny-worker-processing-2:jiminny-worker-processing-2_00: stopped\njiminny-worker-processing-3:jiminny-worker-processing-3_00: stopped\njiminny-worker-processing-4:jiminny-worker-processing-4_00: stopped\njiminny-worker-processing-5:jiminny-worker-processing-5_00: stopped\njiminny-worker-processing-delayed:jiminny-worker-processing-delayed_00: stopped\nworker-analytics:worker-analytics_00: stopped\nworker-crm-update:worker-crm-update_00: stopped\nworker-download:worker-download_00: stopped\nworker-nudges:worker-nudges_00: stopped\nartisan-schedule:artisan-schedule_00: stopped\nworker-emails:worker-emails_00: stopped\nworker-calendar:worker-calendar_00: stopped\nworker:worker_00: stopped\nworker-conferences:worker-conferences_00: stopped\nworker-crm-sync:worker-crm-sync_00: stopped\njiminny-worker-processing-1:jiminny-worker-processing-1_00: stopped\nworker-audio:worker-audio_00: stopped\nworker-es-update:worker-es-update_00: stopped\nartisan-schedule:artisan-schedule_00: started\njiminny-worker-processing-1:jiminny-worker-processing-1_00: started\njiminny-worker-processing-2:jiminny-worker-processing-2_00: started\njiminny-worker-processing-3:jiminny-worker-processing-3_00: started\njiminny-worker-processing-4:jiminny-worker-processing-4_00: started\njiminny-worker-processing-5:jiminny-worker-processing-5_00: started\njiminny-worker-processing-delayed:jiminny-worker-processing-delayed_00: started\nworker:worker_00: started\nworker-analytics:worker-analytics_00: started\nworker-audio:worker-audio_00: started\nworker-calendar:worker-calendar_00: started\nworker-conferences:worker-conferences_00: started\nworker-crm-sync:worker-crm-sync_00: started\nworker-crm-update:worker-crm-update_00: started\nworker-download:worker-download_00: started\nworker-emails:worker-emails_00: started\nworker-es-update:worker-es-update_00: started\nworker-nudges:worker-nudges_00: started\n\nWhat's next:\n Try Docker Debug for seamless, persistent debugging tools in any container or image → docker debug docker_lamp_1\n Learn more at https://docs.docker.com/go/debug-cli/\ndocker exec -it docker_lamp_1 php -v\nPHP 8.3.30 (cli) (built: Mar 16 2026 22:32:32) (NTS)\nCopyright (c) The PHP Group\nZend Engine v4.3.30, Copyright (c) Zend Technologies\n with Zend OPcache v8.3.30, Copyright (c), by Zend Technologies\n\nWhat's next:\n Try Docker Debug for seamless, persistent debugging tools in any container or image → docker debug docker_lamp_1\n Learn more at https://docs.docker.com/go/debug-cli/\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20613-allow-owner-role-on-team-setup) $ csfix\ndocker exec -it docker_lamp_1 ./vendor/bin/php-cs-fixer fix --config=.php-cs-fixer.dist.php -v --using-cache=no --diff \nPHP CS Fixer 3.87.1 Alexander by Fabien Potencier, Dariusz Ruminski and contributors.\nPHP runtime: 8.3.30\nRunning analysis on 7 cores with 10 files per process.\nParallel runner is an experimental feature and may be unstable, use it at your own risk. Feedback highly appreciated!\nLoaded config default from \".php-cs-fixer.dist.php\".\n 5682/5682 [▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓] 100%\n\n\nFixed 0 of 5682 files in 49.910 seconds, 60.00 MB memory used\n\nWhat's next:\n Try Docker Debug for seamless, persistent debugging tools in any container or image → docker debug docker_lamp_1\n Learn more at https://docs.docker.com/go/debug-cli/\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20613-allow-owner-role-on-team-setup) $ git status\nOn branch JY-20613-allow-owner-role-on-team-setup\nYour branch is ahead of 'origin/JY-20613-allow-owner-role-on-team-setup' by 1 commit.\n (use \"git push\" to publish your local commits)\n\nChanges not staged for commit:\n (use \"git add <file>...\" to update what will be committed)\n (use \"git restore <file>...\" to discard changes in working directory)\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tmodified: .env.local\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tmodified: config/logging.php\n\nUntracked files:\n (use \"git add <file>...\" to include in what will be committed)\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\t.env.nikilocal\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\t.env.other\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tWEBHOOK_FILTERING_IMPLEMENTATION.md\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tapp/Console/Commands/Crm/Hubspot/SimulateWebhooksCommand.php\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tapp/Console/Commands/Reports/CreateMockAskJiminnyReportResultCommand.php\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tids.txt\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tpublic/favicon.ico\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\traw_sql_query.sql\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\ttests/Unit/Policies/CanAccessAiReportsTest.php\n\nno changes added to commit (use \"git add\" and/or \"git commit -a\")\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20613-allow-owner-role-on-team-setup) $ git pull\nremote: Enumerating objects: 248, done.\nremote: Counting objects: 100% (128/128), done.\nremote: Compressing objects: 100% (23/23), done.\nremote: Total 59 (delta 43), reused 44 (delta 33), pack-reused 0 (from 0)\nUnpacking objects: 100% (59/59), 10.48 KiB | 228.00 KiB/s, done.\nFrom github.com:jiminny/app\n b7df560451..190239dfd4 JY-20613-allow-owner-role-on-team-setup -> origin/JY-20613-allow-owner-role-on-team-setup\n e0351be069..d94a285ae7 JY-20808-low-priority-indexing-queue -> origin/JY-20808-low-priority-indexing-queue\n * [new branch] JY-20920-fix-participant-matcher -> origin/JY-20920-fix-participant-matcher\n cb4ebf0c36..90bca4e4b2 master -> origin/master\nMerge made by the 'ort' strategy.\n app/Component/ES/ChunkSize.php | 54 +++++++++++++++++++++++++++\n app/Component/ES/Processor/DTOs/SelectionList.php | 4 +-\n app/Component/ES/Processor/TargetEntitiesSelector.php | 19 ++++++----\n app/Http/Middleware/McpTierMiddleware.php | 27 +++-----------\n app/Mcp/Servers/JiminnyServer.php | 2 +\n app/Mcp/Tools/GetMeTool.php | 157 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++\n app/Models/Feature/FeatureEnum.php | 1 +\n database/migrations/2026_05_13_124153_create_mcp_feature_flag.php | 25 +++++++++++++\n front-end/src/components/Settings/Kiosk/modals/EditTeamModal/EditTeamModal.vue | 52 ++++++++++++++++++--------\n front-end/src/components/Settings/Kiosk/modals/EditTeamModal/__tests__/EditTeamModal.spec.js | 14 +++++++\n tests/Feature/Mcp/GetMeToolFeatureTest.php | 140 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++\n tests/Feature/Mcp/ListCallsToolFeatureTest.php | 2 +-\n tests/Feature/Mcp/McpTestHelpersTrait.php | 19 +++++++++-\n tests/Unit/Component/ES/ChunkSizeTest.php | 50 +++++++++++++++++++++++++\n tests/Unit/Component/ES/Processor/DTOs/SelectionListTest.php | 27 ++++++++++----\n tests/Unit/Component/ES/Processor/TargetEntitiesSelectorTest.php | 39 +++++++++++---------\n 16 files changed, 557 insertions(+), 75 deletions(-)\n create mode 100644 app/Component/ES/ChunkSize.php\n create mode 100644 app/Mcp/Tools/GetMeTool.php\n create mode 100644 database/migrations/2026_05_13_124153_create_mcp_feature_flag.php\n create mode 100644 tests/Feature/Mcp/GetMeToolFeatureTest.php\n create mode 100644 tests/Unit/Component/ES/ChunkSizeTest.php\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20613-allow-owner-role-on-team-setup) $ git push\nEnumerating objects: 40, done.\nCounting objects: 100% (34/34), done.\nDelta compression using up to 8 threads\nCompressing objects: 100% (18/18), done.\nWriting objects: 100% (18/18), 1.58 KiB | 1.58 MiB/s, done.\nTotal 18 (delta 15), reused 0 (delta 0), pack-reused 0\nremote: Resolving deltas: 100% (15/15), completed with 13 local objects.\nTo github.com:jiminny/app.git\n 190239dfd4..ec1b261264 JY-20613-allow-owner-role-on-team-setup -> JY-20613-allow-owner-role-on-team-setup\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20613-allow-owner-role-on-team-setup) $ gbr\n* JY-20613-allow-owner-role-on-team-setup\n pipedrive-sdk-poc\n master\n JY-20903-update_activity-stage-on-opportunity-change\n JY-20904-fix-update-es-on-activity-command\n JY-20891-improve-sms-text-relays\n JY-20725-handle-HS-search-rate-limit\n JY-20818-move-AJ-reports-to-separated-datadog-metric\n JY-20773-fix-automated-reports-user-pilot-tracking\n JY-20157-AJ-report-not-send-notification\n JY-20508-notify-before-AJ-report-expiration\n JY-20372-ai-reports-promotion-pages\n JY-20352-sync-opportunities-without-a-local-owner-user-id-is-null\n JY-20738-debug-AJ-tracking-UP\n a\n JY-18909-automated-reports-ask-jiminny\n JY-20692-fix-integration-app-token-auth-response-change\n JY-20553-debug-crm-sync-delays\n JY-20698-fix-SF-activity-types-on-new-playbook\n JY-20543-AJ-report-tracking\n JY-20384-handle-auto-sync-with-no-access-to-event-type\n JY-20458-ask-jiminny-user-definitions\n JY-19666-fix-import-contacts-account-association\n JY-19666-HS-import-contacts-and-accounts-batch-job\n JY-20458-Ask-Jiminny-Reports\n JY-20200-batch-update-CRM-objects-Salesforce\n JY-19666-HS-webhooks-add-contact-and-company\n JY-20348-trigger-setup-DI-layout-on-team-creation\n JY-20326-refactor-info-message-in-command\n JY-20317-fix-auto-log-delay-issue-on-all-channels-disabled\n JY-20312-remove-on-update-change-last-synced-at-crm-configurations\n JY-20306-SF-skip-auto-sync-for-task-based-playbook\n JY-20192-remove-deleted-team-from-saved-search-filters\n JY-20197-import-opportunity-batch-job\n JY-20293-enable-status-field-for-pipedrive-deals\n JY-20191-remove-commands-interactive-prompts\n JY-20118-change-default-sync-strategy\n JY-20183-add-cache-on-auto-log-delay\n JY-20197-add-import-opportunity-batch-job\n 20118-hs-opportunity-make-webhook-strategy-default\n JY-20118-make-default-hs-opportunity-sync-strategy-webhook-based\n JY-20196-handle-opportunity-without-note\n JY-20118-improve-opportunity-import\n JY-20189-handle-activity-search-on-deleted-groups\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20613-allow-owner-role-on-team-setup) $ co JY-20725-handle-HS-search-rate-limit\nM\u0000\u0000\u0000\u0000\u0000\u0000\t.env.local\nM\u0000\u0000\u0000\u0000\u0000\u0000\tconfig/logging.php\nSwitched to branch 'JY-20725-handle-HS-search-rate-limit'\nYour branch is behind 'origin/JY-20725-handle-HS-search-rate-limit' by 439 commits, and can be fast-forwarded.\n (use \"git pull\" to update your local branch)\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20725-handle-HS-search-rate-limit) $ git pull\nUpdating 0f3e438941..bc6a3fce6b\nFast-forward\n .gitignore | 3 +-\n .windsurfrules | 168 ++---\n CLAUDE.md | 1 +\n app/Component/ActivityAnalytics/Service/CalculateTalkTimeOffsetsFromTranscription.php | 24 +-\n app/Component/AiActivityType/Services/AiActivityTypeEligibilityChecker.php | 28 +-\n app/Component/AiAutomation/Actions/PrepareUpdateDtoAction.php | 32 +-\n app/Component/AiAutomation/Services/CrmFillingEligibilityChecker.php | 47 ++\n app/Component/AiAutomation/TestCrmAiPromptService.php | 14 +\n app/Component/AiCallScoring/Services/AiCallScoringEligibilityChecker.php | 9 +\n app/Component/ES/ElasticSearchDocumentPartialUpdater.php | 13 +-\n app/Component/ES/ElasticSearchWorkerManager.php | 86 ---\n app/Component/ES/Processor/Actions/LoadDocumentsAction.php | 80 +--\n app/Component/ES/Processor/EntityQueryBuilder.php | 12 +-\n app/Component/ES/Processor/TargetEntitiesSelector.php | 2 +-\n app/Component/ES/Processor/Traits/SkipActivityTrait.php | 25 -\n app/Component/ES/Repositories/EsResetActivityRepository.php | 11 +-\n app/Component/ES/Worker/ActivityWorker.php | 73 --\n app/Component/ES/Worker/EntityWorker.php | 44 --\n app/Component/ES/Worker/WorkerAmount.php | 60 --\n app/Component/ES/Worker/WorkerInterface.php | 15 -\n app/Component/ElasticSearch/Contract/Searchable.php | 4 +\n app/Component/Encoding/Job/AnalyzeTrackChannelsJob.php | 20 +-\n app/Component/Encoding/Service/GenerateSpeechFromSilenceService.php | 85 ++-\n app/Component/FFMpeg/Services/GetSpeechIntervalsService.php | 18 +-\n app/Component/LanguageDetection/Services/FindSpeechTimeService.php | 22 +-\n app/Component/Nudge/Job/ProcessOrganisationImmediateNudgesJob.php | 218 +++++-\n app/Component/ParagraphBreaker/Services/TranscriptionParagraphsService.php | 4 +\n app/Component/ParticipantSpeech/Services/ParticipantSpeechesCreator.php | 33 +\n app/Component/ParticipantSpeech/Services/ParticipantSpeechesDeleter.php | 15 +\n app/Component/ParticipantSpeech/Services/ParticipantSpeechesProvider.php | 51 +-\n app/Component/ParticipantSpeech/Services/ParticipantSpeechesUploader.php | 36 +\n app/Component/ProphetAi/Exceptions/InsufficientTranscriptException.php | 11 +\n app/Component/Transcription/DTO/Http/Transcription/AssemblyAI/AssemblyAI/NoAssemblyIdException.php | 11 +\n app/Component/Transcription/DTO/Http/Transcription/AssemblyAI/AssemblyAI/SuccessfulResponse.php | 6 +\n app/Component/Transcription/DTO/Http/Transcription/TranscriptionIsNotCorrectFormatException.php | 11 +\n app/Component/Transcription/Diarization/Services/GetNormalizedParticipantSpeechesService.php | 23 +-\n app/Component/Transcription/Diarization/Source/MeetingBotSource.php | 16 +-\n app/Component/Transcription/TranscriptionProcessor/TranscriptionProcessor.php | 3 +\n app/Console/Commands/Activities/ActivityHardDeleteCommand.php | 4 +-\n app/Console/Commands/Activities/Copy.php | 2 +\n app/Console/Commands/Activities/SetupIntegration/TwilioSetS3RecordingCredentialsCommand.php | 119 ++++\n app/Console/Commands/Activities/UpdateActivityElasticSearchDocumentCommand.php | 10 +-\n app/Console/Commands/Crm/BackfillOpportunityUserFromAccountCommand.php | 126 ++++\n app/Console/Commands/Elasticsearch/AsyncUpdateEsActivities.php | 19 -\n app/Console/Commands/Elasticsearch/AsyncUpdateEsEntities.php | 50 +-\n app/Console/Commands/Elasticsearch/ResetAsyncElasticSearchCommand.php | 30 +-\n app/Console/Commands/GeckoExport/GeckoExportParticipantSpeechesCommand.php | 14 +-\n app/Console/Commands/IssueMcpTokenCommand.php | 84 +++\n app/Console/Commands/JiminnyDebugCommand.php | 7 +-\n app/Console/Commands/Tracks/CleanupActivityTracksCommand.php | 2 +-\n app/Console/Kernel.php | 6 +-\n app/Contracts/Services/Calendar/CalendarTrait.php | 80 ++-\n app/Events/AutomatedReports/AutomatedReportGenerated.php | 3 +\n app/Http/Controllers/API/AiCallScoring/AiScorecardController.php | 7 +-\n app/Http/Controllers/API/TeamAiAutomationController.php | 8 +\n app/Http/Controllers/CustomerApi/CustomerApiController.php | 4 +-\n app/Http/Controllers/Kiosk/ActivityController.php | 58 +-\n app/Http/Controllers/Settings/PlaybookController.php | 15 +-\n app/Http/Kernel.php | 23 +\n app/Http/Middleware/McpAuditMiddleware.php | 156 ++++\n app/Http/Middleware/McpTierMiddleware.php | 54 ++\n app/Http/Requests/API/V2/ZapierUploadActivityRequest.php | 28 +-\n app/Jobs/Activity/Import/ImportTwilioVideoSpeechesJob.php | 25 +-\n app/Jobs/Activity/Import/IsActivityReadyForProcessingJob.php | 10 +-\n app/Jobs/Calendar/SetupCalendarSync.php | 21 +-\n app/Jobs/ImportRemoteTrackJob.php | 96 ++-\n app/Jobs/Mailbox/EmailTextRelay.php | 15 +-\n app/Mcp/Contracts/McpCallRepositoryInterface.php | 30 +\n app/Mcp/DTO/ListCallsFilters.php | 29 +\n app/Mcp/Errors/McpError.php | 123 ++++\n app/Mcp/Repositories/McpActivityHydrator.php | 145 ++++\n app/Mcp/Repositories/McpCallRepository.php | 84 +++\n app/Mcp/Repositories/McpElasticCallRepository.php | 171 +++++\n app/Mcp/Servers/JiminnyServer.php | 38 +\n app/Mcp/Tools/ListCallsTool.php | 205 ++++++\n app/Models/Activity.php | 10 +-\n app/Models/Activity/Transcription.php | 17 +-\n app/Models/ElasticSearch/OpportunityElasticSearchTrait.php | 5 +\n app/Models/Participant.php | 1 +\n app/Providers/AppServiceProvider.php | 22 +\n app/Repositories/Crm/ContactRepository.php | 69 +-\n app/Repositories/ParticipantSpeechRepository.php | 13 +-\n app/Services/Activity/ParticipantsService.php | 19 +-\n app/Services/Activity/Twilio/S3RecordingCredentialsService.php | 82 +++\n app/Services/ActivityService.php | 21 +-\n app/Services/Calendar/CalendarActivityService.php | 46 ++\n app/Services/Calendar/Command/ImportParticipants.php | 1 +\n app/Services/Calendar/Command/MapActivityData.php | 106 +--\n app/Services/Calendar/GoogleCalendarService.php | 12 +-\n app/Services/Crm/Close/Processor/OpportunityProcessor.php | 2 +-\n app/Services/Crm/Close/Service.php | 22 +-\n app/Services/Crm/Copper/Service.php | 12 +-\n app/Services/Crm/Hubspot/Service.php | 154 +++-\n app/Services/Crm/Hubspot/ServiceTraits/OpportunitySyncTrait.php | 88 ++-\n app/Services/Crm/IntegrationApp/ServiceTraits/SyncCrmEntitiesTrait.php | 22 +-\n app/Services/Crm/Pipedrive/Service.php | 17 +-\n app/Services/Crm/Salesforce/Service.php | 42 +-\n app/Services/Mail/Office/EmailApiClient.php | 129 +---\n app/Services/RecallAI/Commands/ScheduleBotCommand.php | 39 +-\n app/Services/RecallAI/RecallAIService.php | 22 +-\n composer.json | 3 +-\n composer.lock | 87 ++-\n config/mcp.php | 23 +\n database/migrations/2026_04_30_120000_create_mcp_audit_log_table.php | 36 +\n docs/mcp/explorer/explorer.html | 697 ++++++++++++++++++\n docs/mcp/explorer/explorer.template.html | 697 ++++++++++++++++++\n docs/mcp/explorer/generate.js | 215 ++++++\n docs/mcp/explorer/tool-explorer-meta.json | 11 +\n docs/mcp/tools-list.json | 2536 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++\n docs/mcp/tools.md | 621 ++++++++++++++++\n front-end/package.json | 4 +-\n front-end/src/components/Settings/OrgSettings/AiAutomation/CrmFilling/TemplateFieldForm.vue | 28 +-\n front-end/src/components/Settings/OrgSettings/Playbooks/AddEditPlaybook.vue | 10 +\n front-end/src/components/playback/comments/ActivityComment.less | 10 +-\n front-end/src/components/shared/PromptTester/PromptTester.vue | 12 +-\n front-end/src/components/shared/__tests__/PromptTester.spec.js | 35 +\n front-end/src/components/shared/modals/EntityPickerModal/__tests__/useEntitiesCache.spec.ts | 37 +\n front-end/src/components/shared/modals/EntityPickerModal/useEntitiesCache.ts | 9 +\n front-end/yarn.lock | 16 +-\n phpstan-baseline.neon | 50 --\n routes/api.php | 11 +\n sonar-project.properties | 91 ++-\n tests/Feature/Component/Nudge/ProcessOrganisationImmediateNudgesJobTest.php | 534 ++++++++++++++\n tests/Feature/Jobs/ImportRemoteTrackJobTest.php | 283 +++++++-\n tests/Feature/Mcp/IssueMcpTokenCommandTest.php | 53 ++\n tests/Feature/Mcp/ListCallsToolElasticFeatureTest.php | 155 ++++\n tests/Feature/Mcp/ListCallsToolFeatureTest.php | 352 ++++++++++\n tests/Feature/Mcp/McpTestHelpersTrait.php | 77 ++\n tests/Feature/Services/Team/TeamDeleteHandlers/Retention/RetentionRepositoryHandlerTest.php | 1 +\n tests/Stubs/SentryStub.php | 18 +\n tests/Unit/Component/ActivityAnalytics/Service/CalculateTalkTimeOffsetFromTranscriptionTest.php | 28 +-\n tests/Unit/Component/AiActivityType/Services/AiActivityTypeEligibilityCheckerTest.php | 103 ++-\n tests/Unit/Component/AiAutomation/Actions/PrepareUpdateDtoActionTest.php | 91 +++\n tests/Unit/Component/AiAutomation/Services/CrmFillingEligibilityCheckerTest.php | 124 ++++\n tests/Unit/Component/AiAutomation/TestCrmAiPromptServiceTest.php | 67 +-\n tests/Unit/Component/AiCallScoring/Services/AiCallScoringEligibilityCheckerTest.php | 55 ++\n tests/Unit/Component/ES/ElasticSearchWorkerManagerTest.php | 135 ----\n tests/Unit/Component/ES/Processor/Actions/LoadDocumentsActionTest.php | 220 ++++++\n tests/Unit/Component/ES/Processor/EntityQueryBuilderTest.php | 21 +-\n tests/Unit/Component/ES/Processor/Traits/SkipActivityTraitTest.php | 51 --\n tests/Unit/Component/ES/Worker/ActivityWorkerTest.php | 174 -----\n tests/Unit/Component/ES/Worker/EntityWorkerTest.php | 97 ---\n tests/Unit/Component/ES/Worker/WorkerAmountTest.php | 116 ---\n tests/Unit/Component/Encoding/Job/AnalyzeTrackChannelsJobTest.php | 52 +-\n tests/Unit/Component/Encoding/Service/GenerateSpeechFromSilenceServiceTest.php | 171 ++---\n tests/Unit/Component/FFMpeg/Services/GetSpeechIntervalsTest.php | 36 +-\n tests/Unit/Component/LanguageDetection/Services/FindSpeechTimeServiceTest.php | 20 +-\n tests/Unit/Component/MobileSettings/MobileSettingsControllerTest.php | 5 +-\n tests/Unit/Component/ParticipantSpeech/Services/ParticipantSpeechesCreatorTest.php | 75 ++\n tests/Unit/Component/ParticipantSpeech/Services/ParticipantSpeechesDeleterTest.php | 63 ++\n tests/Unit/Component/ParticipantSpeech/Services/ParticipantSpeechesProviderTest.php | 134 ++++\n tests/Unit/Component/ParticipantSpeech/Services/ParticipantSpeechesUploaderTest.php | 57 ++\n tests/Unit/Component/Transcription/Diarization/Services/GetNormalizedParticipantSpeechesServiceTest.php | 51 +-\n tests/Unit/Component/Transcription/Diarization/Source/MeetingBotSourceTest.php | 29 +-\n tests/Unit/Contracts/Services/Calendar/CalendarTraitTest.php | 58 +-\n tests/Unit/Http/Controllers/Kiosk/ActivityControllerTest.php | 159 +++++\n tests/Unit/Jobs/Activity/Import/ImportTwilioVideoSpeechesJobTest.php | 22 +-\n tests/Unit/Jobs/Activity/Import/IsActivityReadyForProcessingJobTest.php | 26 +-\n tests/Unit/Jobs/Calendar/SetupCalendarSyncTest.php | 25 -\n tests/Unit/Services/Activity/ParticipantsServiceTest.php | 12 +-\n tests/Unit/Services/Activity/Twilio/S3RecordingCredentialsServiceTest.php | 180 +++++\n tests/Unit/Services/ActivityServiceTest.php | 132 ++++\n tests/Unit/Services/Calendar/CalendarActivityServiceTest.php | 150 +++-\n tests/Unit/Services/Calendar/Command/ImportParticipantsTest.php | 6 +-\n tests/Unit/Services/Calendar/Command/MapActivityDataTest.php | 78 +-\n tests/Unit/Services/Calendar/GoogleCalendarServiceTest.php | 116 +++\n tests/Unit/Services/Crm/Close/ServiceTest.php | 165 +++++\n tests/Unit/Services/Crm/Hubspot/ServiceTest.php | 272 ++++++-\n tests/Unit/Services/Crm/Hubspot/ServiceTraits/OpportunitySyncTest.php | 25 +-\n tests/Unit/Services/Crm/Hubspot/ServiceTraits/OpportunitySyncTraitMatchActivitiesTest.php | 3 +-\n tests/Unit/Services/Crm/IntegrationApp/ServiceTraits/SyncCrmEntitiesTraitOpportunitiesTest.php | 40 ++\n tests/Unit/Services/Crm/Pipedrive/ImportOpportunityMatchActivitiesTest.php | 2 +\n tests/Unit/Services/Crm/Salesforce/ServiceTest.php | 139 ++++\n tests/Unit/Services/Mail/Office/EmailApiClientTest.php | 195 ++---\n tests/Unit/Services/RecallAI/RecallAIServiceTest.php | 24 +-\n 175 files changed, 12562 insertions(+), 2162 deletions(-)\n create mode 120000 CLAUDE.md\n create mode 100644 app/Component/AiAutomation/Services/CrmFillingEligibilityChecker.php\n delete mode 100644 app/Component/ES/ElasticSearchWorkerManager.php\n delete mode 100644 app/Component/ES/Processor/Traits/SkipActivityTrait.php\n delete mode 100644 app/Component/ES/Worker/ActivityWorker.php\n delete mode 100644 app/Component/ES/Worker/EntityWorker.php\n delete mode 100644 app/Component/ES/Worker/WorkerAmount.php\n delete mode 100644 app/Component/ES/Worker/WorkerInterface.php\n create mode 100644 app/Component/ProphetAi/Exceptions/InsufficientTranscriptException.php\n create mode 100644 app/Component/Transcription/DTO/Http/Transcription/AssemblyAI/AssemblyAI/NoAssemblyIdException.php\n create mode 100644 app/Component/Transcription/DTO/Http/Transcription/TranscriptionIsNotCorrectFormatException.php\n create mode 100644 app/Console/Commands/Activities/SetupIntegration/TwilioSetS3RecordingCredentialsCommand.php\n create mode 100644 app/Console/Commands/Crm/BackfillOpportunityUserFromAccountCommand.php\n delete mode 100644 app/Console/Commands/Elasticsearch/AsyncUpdateEsActivities.php\n create mode 100644 app/Console/Commands/IssueMcpTokenCommand.php\n create mode 100644 app/Http/Middleware/McpAuditMiddleware.php\n create mode 100644 app/Http/Middleware/McpTierMiddleware.php\n create mode 100644 app/Mcp/Contracts/McpCallRepositoryInterface.php\n create mode 100644 app/Mcp/DTO/ListCallsFilters.php\n create mode 100644 app/Mcp/Errors/McpError.php\n create mode 100644 app/Mcp/Repositories/McpActivityHydrator.php\n create mode 100644 app/Mcp/Repositories/McpCallRepository.php\n create mode 100644 app/Mcp/Repositories/McpElasticCallRepository.php\n create mode 100644 app/Mcp/Servers/JiminnyServer.php\n create mode 100644 app/Mcp/Tools/ListCallsTool.php\n create mode 100644 app/Services/Activity/Twilio/S3RecordingCredentialsService.php\n create mode 100644 config/mcp.php\n create mode 100644 database/migrations/2026_04_30_120000_create_mcp_audit_log_table.php\n create mode 100644 docs/mcp/explorer/explorer.html\n create mode 100644 docs/mcp/explorer/explorer.template.html\n create mode 100644 docs/mcp/explorer/generate.js\n create mode 100644 docs/mcp/explorer/tool-explorer-meta.json\n create mode 100644 docs/mcp/tools-list.json\n create mode 100644 docs/mcp/tools.md\n create mode 100644 front-end/src/components/shared/modals/EntityPickerModal/__tests__/useEntitiesCache.spec.ts\n create mode 100644 tests/Feature/Component/Nudge/ProcessOrganisationImmediateNudgesJobTest.php\n create mode 100644 tests/Feature/Mcp/IssueMcpTokenCommandTest.php\n create mode 100644 tests/Feature/Mcp/ListCallsToolElasticFeatureTest.php\n create mode 100644 tests/Feature/Mcp/ListCallsToolFeatureTest.php\n create mode 100644 tests/Feature/Mcp/McpTestHelpersTrait.php\n create mode 100644 tests/Stubs/SentryStub.php\n create mode 100644 tests/Unit/Component/AiAutomation/Services/CrmFillingEligibilityCheckerTest.php\n delete mode 100644 tests/Unit/Component/ES/ElasticSearchWorkerManagerTest.php\n create mode 100644 tests/Unit/Component/ES/Processor/Actions/LoadDocumentsActionTest.php\n delete mode 100644 tests/Unit/Component/ES/Processor/Traits/SkipActivityTraitTest.php\n delete mode 100644 tests/Unit/Component/ES/Worker/ActivityWorkerTest.php\n delete mode 100644 tests/Unit/Component/ES/Worker/EntityWorkerTest.php\n delete mode 100644 tests/Unit/Component/ES/Worker/WorkerAmountTest.php\n create mode 100644 tests/Unit/Component/ParticipantSpeech/Services/ParticipantSpeechesCreatorTest.php\n create mode 100644 tests/Unit/Http/Controllers/Kiosk/ActivityControllerTest.php\n create mode 100644 tests/Unit/Services/Activity/Twilio/S3RecordingCredentialsServiceTest.php\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20725-handle-HS-search-rate-limit) $ git status\nOn branch master\nYour branch is behind 'origin/master' by 114 commits, and can be fast-forwarded.\n (use \"git pull\" to update your local branch)\n\nChanges not staged for commit:\n (use \"git add <file>...\" to update what will be committed)\n (use \"git restore <file>...\" to discard changes in working directory)\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tmodified: .env.local\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tmodified: app/Component/SCIM/Constants.php\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tmodified: app/Component/SCIM/ScimProvisioning.php\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tmodified: app/Component/Twilio/Conference/ConferenceManager/SoftPhoneManager.php\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tmodified: app/Console/Commands/JiminnyDebugCommand.php\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tmodified: app/DTO/SCIM/AAD/Request/CoreUserRequest.php\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tmodified: app/DTO/SCIM/AAD/Response/CoreUser.php\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tmodified: app/Services/Telephony/TextMessagingService.php\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tmodified: config/logging.php\n\nUntracked files:\n (use \"git add <file>...\" to include in what will be committed)\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\t.env.nikilocal\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\t.env.other\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tWEBHOOK_FILTERING_IMPLEMENTATION.md\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tapp/Component/SCIM/Mutators/Attributes/User/RoleAttr.php\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tapp/Console/Commands/Crm/Hubspot/SimulateWebhooksCommand.php\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tapp/Console/Commands/Reports/CreateMockAskJiminnyReportResultCommand.php\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tapp/Rules/ListenerRoleCannotHaveAdminOrManagerPermissionRule.php\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tids.txt\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tpublic/favicon.ico\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\traw_sql_query.sql\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\ttests/Unit/Component/SCIM/Mutators/Attributes/User/RoleAttrTest.php\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\ttests/Unit/Policies/CanAccessAiReportsTest.php\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\ttests/Unit/Rules/ListenerRoleCannotHaveAdminOrManagerPermissionRuleTest.php\n\nno changes added to commit (use \"git add\" and/or \"git commit -a\")\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (master) $ git pull\nremote: Enumerating objects: 306, done.\nremote: Counting objects: 100% (299/299), done.\nremote: Compressing objects: 100% (183/183), done.\nremote: Total 306 (delta 213), reused 171 (delta 116), pack-reused 7 (from 1)\nReceiving objects: 100% (306/306), 80.12 KiB | 1000.00 KiB/s, done.\nResolving deltas: 100% (213/213), completed with 53 local objects.\nFrom github.com:jiminny/app\n 90bca4e4b2..5604af40cf master -> origin/master\n 4e7078fd8b..0b8343d179 JY-18091-upgrade-to-php-8-5 -> origin/JY-18091-upgrade-to-php-8-5\n 098eeaa087..d5a447e492 JY-20613-allow-owner-role-on-team-setup -> origin/JY-20613-allow-owner-role-on-team-setup\n c3a76ace91..af65249d0f JY-20749-user-can-view-recorded-meetings -> origin/JY-20749-user-can-view-recorded-meetings\n d94a285ae7..7ce96cb5fe JY-20808-low-priority-indexing-queue -> origin/JY-20808-low-priority-indexing-queue\n * [new branch] JY-20842-remove-partial-updater -> origin/JY-20842-remove-partial-updater\n * [new branch] JY-20920-fix-participant-flip -> origin/JY-20920-fix-participant-flip\n * [new branch] secfix/npm-20260519 -> origin/secfix/npm-20260519\nUpdating cb4ebf0c36..5604af40cf\nFast-forward\n app/Component/ES/ChunkSize.php | 54 +++++++++++++++++++\n app/Component/ES/Processor/DTOs/SelectionList.php | 4 +-\n app/Component/ES/Processor/TargetEntitiesSelector.php | 19 ++++---\n app/Component/MeetingBot/Service/ParticipantMatcher.php | 46 ++++++++++++----\n app/Exceptions/RateLimitException.php | 19 ++++++-\n app/Http/Middleware/McpTierMiddleware.php | 27 ++--------\n app/Jobs/Crm/MatchActivityCrmData.php | 47 ++++++++++++----\n app/Jobs/Middleware/HandleHubspotRateLimit.php | 42 +++++++++++++++\n app/Mcp/Servers/JiminnyServer.php | 2 +\n app/Mcp/Tools/GetMeTool.php | 157 +++++++++++++++++++++++++++++++++++++++++++++++++++++\n app/Models/Feature/FeatureEnum.php | 1 +\n app/Services/Activity/HubSpot/ProviderResolver.php | 4 +-\n app/Services/Activity/HubSpot/ProviderResolverInterface.php | 2 +-\n app/Services/Activity/HubSpot/Providers/Provider.php | 2 +-\n app/Services/Activity/HubSpot/Providers/ProviderKixie.php | 2 +-\n app/Services/Activity/HubSpot/Providers/ProviderOrum.php | 2 +-\n app/Services/Activity/HubSpot/Providers/ProviderTwilio.php | 2 +-\n app/Services/Activity/HubSpot/Providers/ProviderTwilioFlex.php | 5 +-\n app/Services/Activity/HubSpot/Service.php | 97 +++++++++++++++++++++++++++------\n app/Services/Crm/Hubspot/Client.php | 132 +++++++++++++++++++++++++++++++++++++++++++++\n app/Services/Crm/Hubspot/HubspotClientInterface.php | 15 ++++++\n app/Services/Crm/Hubspot/Pagination/HubspotPaginationService.php | 21 ++++----\n app/Services/Crm/Hubspot/Pagination/PaginationState.php | 2 +-\n database/migrations/2026_05_13_124153_create_mcp_feature_flag.php | 25 +++++++++\n tests/Feature/Mcp/GetMeToolFeatureTest.php | 140 +++++++++++++++++++++++++++++++++++++++++++++++\n tests/Feature/Mcp/ListCallsToolFeatureTest.php | 2 +-\n tests/Feature/Mcp/McpTestHelpersTrait.php | 19 ++++++-\n tests/Unit/Component/ES/ChunkSizeTest.php | 50 +++++++++++++++++\n tests/Unit/Component/ES/Processor/DTOs/SelectionListTest.php | 27 +++++++---\n tests/Unit/Component/ES/Processor/TargetEntitiesSelectorTest.php | 39 ++++++++------\n tests/Unit/Component/MeetingBot/Service/ParticipantMatcherTest.php | 68 ++++++++++++++++++++++-\n tests/Unit/Exceptions/RateLimitExceptionTest.php | 56 +++++++++++++++++++\n tests/Unit/Jobs/Crm/MatchActivityCrmDataTest.php | 8 +--\n tests/Unit/Jobs/Middleware/HandleHubspotRateLimitTest.php | 151 +++++++++++++++++++++++++++++++++++++++++++++++++++\n tests/Unit/Services/Activity/HubSpot/ServiceTest.php | 109 +++++++++++++++++++++++++++++++++++++\n tests/Unit/Services/Crm/Hubspot/ClientTest.php | 250 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++\n tests/Unit/Services/Crm/Hubspot/Pagination/HubspotPaginationServiceTest.php | 283 +++++++++++++++++++++---------------------------------------------------------------------------\n 37 files changed, 1587 insertions(+), 344 deletions(-)\n create mode 100644 app/Component/ES/ChunkSize.php\n create mode 100644 app/Jobs/Middleware/HandleHubspotRateLimit.php\n create mode 100644 app/Mcp/Tools/GetMeTool.php\n create mode 100644 database/migrations/2026_05_13_124153_create_mcp_feature_flag.php\n create mode 100644 tests/Feature/Mcp/GetMeToolFeatureTest.php\n create mode 100644 tests/Unit/Component/ES/ChunkSizeTest.php\n create mode 100644 tests/Unit/Exceptions/RateLimitExceptionTest.php\n create mode 100644 tests/Unit/Jobs/Middleware/HandleHubspotRateLimitTest.php\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (master) $ git pull\nAlready up to date.\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (master) $ co -b JY-20676-delete-report-related-objects\nSwitched to a new branch 'JY-20676-delete-report-related-objects'\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20676-delete-report-related-objects) $ csfix\ndocker exec -it docker_lamp_1 ./vendor/bin/php-cs-fixer fix --config=.php-cs-fixer.dist.php -v --using-cache=no --diff \nPHP CS Fixer 3.87.1 Alexander by Fabien Potencier, Dariusz Ruminski and contributors.\nPHP runtime: 8.3.30\nRunning analysis on 7 cores with 10 files per process.\nParallel runner is an experimental feature and may be unstable, use it at your own risk. Feedback highly appreciated!\nLoaded config default from \".php-cs-fixer.dist.php\".\n 5690/5690 [▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓] 100%\n\n 1) app/Console/Commands/JiminnyDebugCommand.php (statement_indentation, blank_line_before_statement)\n ---------- begin diff ----------\n--- /home/jiminny/app/Console/Commands/JiminnyDebugCommand.php\n+++ /home/jiminny/app/Console/Commands/JiminnyDebugCommand.php\n@@ -23,6 +23,7 @@\n \n if ($action === 'redis-set') {\n $this->testRedisSet();\n+\n return;\n }\n \n@@ -45,7 +46,7 @@\n $ttl = 60;\n \n try {\n-// $result = Redis::set($testKey, $testValue, 'EX', $ttl, 'NX');\n+ // $result = Redis::set($testKey, $testValue, 'EX', $ttl, 'NX');\n $result = Redis::set($testKey, $testValue, ['nx', 'ex' => $ttl]);\n \n if ($result) {\n\n ----------- end diff -----------\n\n\nFixed 1 of 5690 files in 50.673 seconds, 67.00 MB memory used\n\nWhat's next:\n Try Docker Debug for seamless, persistent debugging tools in any container or image → docker debug docker_lamp_1\n Learn more at https://docs.docker.com/go/debug-cli/\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20676-delete-report-related-objects) $ ;xd\ndocker exec -it docker_lamp_1 bash -c \"mv /usr/local/etc/php/conf.d/xdebug.ini ~/xdebug.ini\"\n\nWhat's next:\n Try Docker Debug for seamless, persistent debugging tools in any container or image → docker debug docker_lamp_1\n Learn more at https://docs.docker.com/go/debug-cli/\ndocker exec -it docker_lamp_1 supervisorctl restart all\njiminny-worker-processing-2:jiminny-worker-processing-2_00: stopped\njiminny-worker-processing-3:jiminny-worker-processing-3_00: stopped\njiminny-worker-processing-4:jiminny-worker-processing-4_00: stopped\njiminny-worker-processing-5:jiminny-worker-processing-5_00: stopped\njiminny-worker-processing-delayed:jiminny-worker-processing-delayed_00: stopped\nworker-analytics:worker-analytics_00: stopped\nworker-crm-update:worker-crm-update_00: stopped\nworker-download:worker-download_00: stopped\nworker-nudges:worker-nudges_00: stopped\nworker-calendar:worker-calendar_00: stopped\nworker-audio:worker-audio_00: stopped\njiminny-worker-processing-1:jiminny-worker-processing-1_00: stopped\nworker:worker_00: stopped\nworker-conferences:worker-conferences_00: stopped\nworker-crm-sync:worker-crm-sync_00: stopped\nworker-emails:worker-emails_00: stopped\nworker-es-update:worker-es-update_00: stopped\nartisan-schedule:artisan-schedule_00: stopped\nartisan-schedule:artisan-schedule_00: started\njiminny-worker-processing-1:jiminny-worker-processing-1_00: started\njiminny-worker-processing-2:jiminny-worker-processing-2_00: started\njiminny-worker-processing-3:jiminny-worker-processing-3_00: started\njiminny-worker-processing-4:jiminny-worker-processing-4_00: started\njiminny-worker-processing-5:jiminny-worker-processing-5_00: started\njiminny-worker-processing-delayed:jiminny-worker-processing-delayed_00: started\nworker:worker_00: started\nworker-analytics:worker-analytics_00: started\nworker-audio:worker-audio_00: started\nworker-calendar:worker-calendar_00: started\nworker-conferences:worker-conferences_00: started\nworker-crm-sync:worker-crm-sync_00: started\nworker-crm-update:worker-crm-update_00: started\nworker-download:worker-download_00: started\nworker-emails:worker-emails_00: started\nworker-es-update:worker-es-update_00: started\nworker-nudges:worker-nudges_00: started\n\nWhat's next:\n Try Docker Debug for seamless, persistent debugging tools in any container or image → docker debug docker_lamp_1\n Learn more at https://docs.docker.com/go/debug-cli/\ndocker exec -it docker_lamp_1 php -v\nPHP 8.3.30 (cli) (built: Mar 16 2026 22:32:32) (NTS)\nCopyright (c) The PHP Group\nZend Engine v4.3.30, Copyright (c) Zend Technologies\n with Zend OPcache v8.3.30, Copyright (c), by Zend Technologies\n\nWhat's next:\n Try Docker Debug for seamless, persistent debugging tools in any container or image → docker debug docker_lamp_1\n Learn more at https://docs.docker.com/go/debug-cli/\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20676-delete-report-related-objects) $ git status\nOn branch JY-20676-delete-report-related-objects\nChanges not staged for commit:\n (use \"git add <file>...\" to update what will be committed)\n (use \"git restore <file>...\" to discard changes in working directory)\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tmodified: .env.local\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tmodified: app/Console/Commands/JiminnyDebugCommand.php\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tmodified: config/logging.php\n\nUntracked files:\n (use \"git add <file>...\" to include in what will be committed)\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\t.env.nikilocal\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\t.env.other\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tWEBHOOK_FILTERING_IMPLEMENTATION.md\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tapp/Console/Commands/Crm/Hubspot/SimulateWebhooksCommand.php\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tapp/Console/Commands/Reports/CreateMockAskJiminnyReportResultCommand.php\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tids.txt\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tpublic/favicon.ico\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\traw_sql_query.sql\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\ttests/Unit/Policies/CanAccessAiReportsTest.php\n\nno changes added to commit (use \"git add\" and/or \"git commit -a\")\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20676-delete-report-related-objects) $ git push -u origin JY-20676-delete-report-related-objects\nEnumerating objects: 45, done.\nCounting objects: 100% (45/45), done.\nDelta compression using up to 8 threads\nCompressing objects: 100% (24/24), done.\nWriting objects: 100% (24/24), 3.62 KiB | 3.62 MiB/s, done.\nTotal 24 (delta 19), reused 0 (delta 0), pack-reused 0\nremote: Resolving deltas: 100% (19/19), completed with 19 local objects.\nremote: \nremote: Create a pull request for 'JY-20676-delete-report-related-objects' on GitHub by visiting:\nremote: https://github.com/jiminny/app/pull/new/JY-20676-delete-report-related-objects\nremote: \nTo github.com:jiminny/app.git\n * [new branch] JY-20676-delete-report-related-objects -> JY-20676-delete-report-related-objects\nbranch 'JY-20676-delete-report-related-objects' set up to track 'origin/JY-20676-delete-report-related-objects'.\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20676-delete-report-related-objects) $ csfix\ndocker exec -it docker_lamp_1 ./vendor/bin/php-cs-fixer fix --config=.php-cs-fixer.dist.php -v --using-cache=no --diff \nPHP CS Fixer 3.87.1 Alexander by Fabien Potencier, Dariusz Ruminski and contributors.\nPHP runtime: 8.3.30\nRunning analysis on 7 cores with 10 files per process.\nParallel runner is an experimental feature and may be unstable, use it at your own risk. Feedback highly appreciated!\nLoaded config default from \".php-cs-fixer.dist.php\".\n 5690/5690 [▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓] 100%\n\n 1) app/Http/Controllers/API/V2/AskJiminnyReportsController.php (blank_line_before_statement)\n ---------- begin diff ----------\n--- /home/jiminny/app/Http/Controllers/API/V2/AskJiminnyReportsController.php\n+++ /home/jiminny/app/Http/Controllers/API/V2/AskJiminnyReportsController.php\n@@ -140,6 +140,7 @@\n if ($enabled && $report->isAskJiminnyReport() && ! $report->canExecute()) {\n $error = 'This report is missing a saved search or prompt. ' .\n 'Edit the report to complete the setup before enabling it.';\n+\n return new JsonResponse(\n ['error' => $error],\n Response::HTTP_UNPROCESSABLE_ENTITY\n\n ----------- end diff -----------\n\n\nFixed 1 of 5690 files in 71.757 seconds, 60.00 MB memory used\n\nWhat's next:\n Try Docker Debug for seamless, persistent debugging tools in any container or image → docker debug docker_lamp_1\n Learn more at https://docs.docker.com/go/debug-cli/\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20676-delete-report-related-objects) $ git pull\nremote: Enumerating objects: 158, done.\nremote: Counting objects: 100% (103/103), done.\nremote: Compressing objects: 100% (37/37), done.\nremote: Total 158 (delta 80), reused 74 (delta 66), pack-reused 55 (from 3)\nReceiving objects: 100% (158/158), 80.59 KiB | 982.00 KiB/s, done.\nResolving deltas: 100% (85/85), completed with 45 local objects.\nFrom github.com:jiminny/app\n 02a33811ee..c6ce5e2440 JY-20676-delete-report-related-objects -> origin/JY-20676-delete-report-related-objects\n 7ce96cb5fe..6c59f04358 JY-20808-low-priority-indexing-queue -> origin/JY-20808-low-priority-indexing-queue\n 3906a9238a..2b5e6ea62b JY-20835-mcp-enable-users-to-get-a-list-of-deals-and-their-details -> origin/JY-20835-mcp-enable-users-to-get-a-list-of-deals-and-their-details\n 5604af40cf..ea3519f0e2 master -> origin/master\n * [new branch] switch-eu-assembly -> origin/switch-eu-assembly\nUpdating 02a33811ee..c6ce5e2440\nFast-forward\n app/Component/ES/ElasticSearchDocumentPartialUpdater.php | 48 ---\n app/Component/ParticipantSpeech/Services/ParticipantAttributionService.php | 4 +-\n app/Component/Settings/AutoScoring/Services/UpdateAutoScoreService.php | 20 +-\n app/Component/Transcription/Service/StorageService.php | 8 +-\n front-end/package.json | 2 +-\n front-end/src/components/DealInsights/Modals/AskAnythingModal.vue | 23 ++\n front-end/src/components/shared/AskAnything/AskAnythingPromptFormItem.vue | 2 +\n front-end/src/components/shared/AskAnything/AskAnythingSettingsDrawer.vue | 23 +-\n front-end/src/components/shared/AskAnything/__mocks__/AskAnythingSettingsDrawer.mocks.js | 1 +\n front-end/src/components/shared/AskAnything/__tests__/AskAnythingSettingsDrawer.spec.js | 135 ++++---\n front-end/src/components/shared/AskAnything/__tests__/__snapshots__/AskAnythingSettingsDrawer.spec.js.html | 1235 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++\n front-end/src/components/shared/AskAnything/__tests__/__snapshots__/AskAnythingSettingsDrawer.spec.js.snap | 1382 ----------------------------------------------------------------\n front-end/src/components/shared/AskAnything/prompts.js | 1 +\n front-end/src/components/shared/AskAnything/useAskAnything.js | 1 +\n front-end/yarn.lock | 8 +-\n tests/Unit/Component/ES/ElasticSearchDocumentPartialUpdaterTest.php | 42 --\n tests/Unit/Component/Settings/AutoScoring/Services/UpdateAutoScoreServiceTest.php | 86 ++--\n tests/Unit/Component/Transcription/Service/StorageServiceTest.php | 29 +-\n 18 files changed, 1448 insertions(+), 1602 deletions(-)\n delete mode 100644 app/Component/ES/ElasticSearchDocumentPartialUpdater.php\n create mode 100644 front-end/src/components/shared/AskAnything/__tests__/__snapshots__/AskAnythingSettingsDrawer.spec.js.html\n delete mode 100644 front-end/src/components/shared/AskAnything/__tests__/__snapshots__/AskAnythingSettingsDrawer.spec.js.snap\n delete mode 100644 tests/Unit/Component/ES/ElasticSearchDocumentPartialUpdaterTest.php\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20676-delete-report-related-objects) $ csfix\ndocker exec -it docker_lamp_1 ./vendor/bin/php-cs-fixer fix --config=.php-cs-fixer.dist.php -v --using-cache=no --diff \nPHP CS Fixer 3.87.1 Alexander by Fabien Potencier, Dariusz Ruminski and contributors.\nPHP runtime: 8.3.30\nRunning analysis on 7 cores with 10 files per process.\nParallel runner is an experimental feature and may be unstable, use it at your own risk. Feedback highly appreciated!\nLoaded config default from \".php-cs-fixer.dist.php\".\n 0/5688 [░░░░░░░░░░░░░░░░░░░░░░░░░░░░] 0%","depth":4,"on_screen":true,"value":"Last login: Mon May 18 09:17:28 on ttys007\n\nPoetry could not find a pyproject.toml file in /Users/lukas/jiminny/app or its parents\n\nPoetry could not find a pyproject.toml file in /Users/lukas/jiminny/app or its parents\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (pipedrive-sdk-poc) $ co master\nerror: Your local changes to the following files would be overwritten by checkout:\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tPIPEDRIVE_V2_MIGRATION_TICKETS.md\nPlease commit your changes or stash them before you switch branches.\nAborting\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (pipedrive-sdk-poc) $ git pull\nremote: Enumerating objects: 1047, done.\nremote: Counting objects: 100% (832/832), done.\nremote: Compressing objects: 100% (298/298), done.\nremote: Total 1047 (delta 634), reused 596 (delta 534), pack-reused 215 (from 3)\nReceiving objects: 100% (1047/1047), 353.16 KiB | 1.56 MiB/s, done.\nResolving deltas: 100% (687/687), completed with 107 local objects.\nFrom github.com:jiminny/app\n 907c54896c..34656c53ed pipedrive-sdk-poc -> origin/pipedrive-sdk-poc\n 03325ec50f..4e7078fd8b JY-18091-upgrade-to-php-8-5 -> origin/JY-18091-upgrade-to-php-8-5\n e7d231e163..bc6a3fce6b JY-20725-handle-HS-search-rate-limit -> origin/JY-20725-handle-HS-search-rate-limit\n * [new branch] JY-20749-user-can-view-recorded-meetings -> origin/JY-20749-user-can-view-recorded-meetings\n 98ca281a04..e0351be069 JY-20808-low-priority-indexing-queue -> origin/JY-20808-low-priority-indexing-queue\n 569abb5149..3906a9238a JY-20835-mcp-enable-users-to-get-a-list-of-deals-and-their-details -> origin/JY-20835-mcp-enable-users-to-get-a-list-of-deals-and-their-details\n ad6c2a86e8..50eb6afba9 JY-20846-mcp-enable-the-ai-to-know-details-about-the-user -> origin/JY-20846-mcp-enable-the-ai-to-know-details-about-the-user\n * [new branch] JY-20893-chunk-control-per-update-target -> origin/JY-20893-chunk-control-per-update-target\n 31c62924a5..cb4ebf0c36 master -> origin/master\nUpdating 907c54896c..34656c53ed\nFast-forward\n PIPEDRIVE_V2_MIGRATION_TICKETS.md | 52 ++++++++++++++++++++++++++++++++++++++++++++++++++++\n 1 file changed, 52 insertions(+)\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (pipedrive-sdk-poc) $ co master\nM\u0000\u0000\u0000\u0000\u0000\u0000\t.env.local\nM\u0000\u0000\u0000\u0000\u0000\u0000\tconfig/logging.php\nSwitched to branch 'master'\nYour branch is behind 'origin/master' by 31 commits, and can be fast-forwarded.\n (use \"git pull\" to update your local branch)\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (master) $ git pull\nUpdating 31c62924a5..cb4ebf0c36\nFast-forward\n app/Component/ES/Processor/Traits/SelectEntityListTrait.php | 20 ------\n app/Services/Calendar/CalendarActivityService.php | 46 +++++++++++++\n app/Services/Calendar/Command/MapActivityData.php | 106 +++-------------------------\n docs/mcp/explorer/explorer.html | 104 +++++++++++++++++++++++++---\n docs/mcp/explorer/explorer.template.html | 102 ++++++++++++++++++++++++---\n docs/mcp/tools-list.json | 373 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++-------\n docs/mcp/tools.md | 117 +++++++++++++++++++++++--------\n tests/Unit/Component/ES/AsyncUpdateElasticSearchTest.php | 16 +----\n tests/Unit/Component/ES/Listeners/UpdateMultipleTargetsListenerTest.php | 10 ---\n tests/Unit/Component/ES/Listeners/UpdateSingleTargetListenerTest.php | 6 --\n tests/Unit/Component/ES/Processor/TargetEntitiesSelectorTest.php | 9 ---\n tests/Unit/Component/ES/Processor/Traits/SelectEntityListTraitTest.php | 15 ++--\n tests/Unit/Component/ES/UpdateProcessManagerTest.php | 2 -\n tests/Unit/Services/Calendar/CalendarActivityServiceTest.php | 150 ++++++++++++++++++++++++++++++++++++++--\n tests/Unit/Services/Calendar/Command/MapActivityDataTest.php | 78 ++-------------------\n 15 files changed, 832 insertions(+), 322 deletions(-)\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (master) $ co -b JY-20613-allow-owner-role-on-team-setup\nSwitched to a new branch 'JY-20613-allow-owner-role-on-team-setup'\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20613-allow-owner-role-on-team-setup) $ csfix\ndocker exec -it docker_lamp_1 ./vendor/bin/php-cs-fixer fix --config=.php-cs-fixer.dist.php -v --using-cache=no --diff \nPHP CS Fixer 3.87.1 Alexander by Fabien Potencier, Dariusz Ruminski and contributors.\nPHP runtime: 8.3.30\nRunning analysis on 7 cores with 10 files per process.\nParallel runner is an experimental feature and may be unstable, use it at your own risk. Feedback highly appreciated!\nLoaded config default from \".php-cs-fixer.dist.php\".\n 5682/5682 [▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓] 100%\n\n\nFixed 0 of 5682 files in 56.978 seconds, 67.00 MB memory used\n\nWhat's next:\n Try Docker Debug for seamless, persistent debugging tools in any container or image → docker debug docker_lamp_1\n Learn more at https://docs.docker.com/go/debug-cli/\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20613-allow-owner-role-on-team-setup) $ ;xd\ndocker exec -it docker_lamp_1 bash -c \"mv /usr/local/etc/php/conf.d/xdebug.ini ~/xdebug.ini\"\n\nWhat's next:\n Try Docker Debug for seamless, persistent debugging tools in any container or image → docker debug docker_lamp_1\n Learn more at https://docs.docker.com/go/debug-cli/\ndocker exec -it docker_lamp_1 supervisorctl restart all\njiminny-worker-processing-2:jiminny-worker-processing-2_00: stopped\njiminny-worker-processing-3:jiminny-worker-processing-3_00: stopped\njiminny-worker-processing-4:jiminny-worker-processing-4_00: stopped\njiminny-worker-processing-5:jiminny-worker-processing-5_00: stopped\njiminny-worker-processing-delayed:jiminny-worker-processing-delayed_00: stopped\nworker-analytics:worker-analytics_00: stopped\nworker-crm-update:worker-crm-update_00: stopped\nworker-download:worker-download_00: stopped\nworker-nudges:worker-nudges_00: stopped\nartisan-schedule:artisan-schedule_00: stopped\nworker-emails:worker-emails_00: stopped\nworker-calendar:worker-calendar_00: stopped\nworker:worker_00: stopped\nworker-conferences:worker-conferences_00: stopped\nworker-crm-sync:worker-crm-sync_00: stopped\njiminny-worker-processing-1:jiminny-worker-processing-1_00: stopped\nworker-audio:worker-audio_00: stopped\nworker-es-update:worker-es-update_00: stopped\nartisan-schedule:artisan-schedule_00: started\njiminny-worker-processing-1:jiminny-worker-processing-1_00: started\njiminny-worker-processing-2:jiminny-worker-processing-2_00: started\njiminny-worker-processing-3:jiminny-worker-processing-3_00: started\njiminny-worker-processing-4:jiminny-worker-processing-4_00: started\njiminny-worker-processing-5:jiminny-worker-processing-5_00: started\njiminny-worker-processing-delayed:jiminny-worker-processing-delayed_00: started\nworker:worker_00: started\nworker-analytics:worker-analytics_00: started\nworker-audio:worker-audio_00: started\nworker-calendar:worker-calendar_00: started\nworker-conferences:worker-conferences_00: started\nworker-crm-sync:worker-crm-sync_00: started\nworker-crm-update:worker-crm-update_00: started\nworker-download:worker-download_00: started\nworker-emails:worker-emails_00: started\nworker-es-update:worker-es-update_00: started\nworker-nudges:worker-nudges_00: started\n\nWhat's next:\n Try Docker Debug for seamless, persistent debugging tools in any container or image → docker debug docker_lamp_1\n Learn more at https://docs.docker.com/go/debug-cli/\ndocker exec -it docker_lamp_1 php -v\nPHP 8.3.30 (cli) (built: Mar 16 2026 22:32:32) (NTS)\nCopyright (c) The PHP Group\nZend Engine v4.3.30, Copyright (c) Zend Technologies\n with Zend OPcache v8.3.30, Copyright (c), by Zend Technologies\n\nWhat's next:\n Try Docker Debug for seamless, persistent debugging tools in any container or image → docker debug docker_lamp_1\n Learn more at https://docs.docker.com/go/debug-cli/\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20613-allow-owner-role-on-team-setup) $ csfix\ndocker exec -it docker_lamp_1 ./vendor/bin/php-cs-fixer fix --config=.php-cs-fixer.dist.php -v --using-cache=no --diff \nPHP CS Fixer 3.87.1 Alexander by Fabien Potencier, Dariusz Ruminski and contributors.\nPHP runtime: 8.3.30\nRunning analysis on 7 cores with 10 files per process.\nParallel runner is an experimental feature and may be unstable, use it at your own risk. Feedback highly appreciated!\nLoaded config default from \".php-cs-fixer.dist.php\".\n 5682/5682 [▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓] 100%\n\n\nFixed 0 of 5682 files in 49.910 seconds, 60.00 MB memory used\n\nWhat's next:\n Try Docker Debug for seamless, persistent debugging tools in any container or image → docker debug docker_lamp_1\n Learn more at https://docs.docker.com/go/debug-cli/\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20613-allow-owner-role-on-team-setup) $ git status\nOn branch JY-20613-allow-owner-role-on-team-setup\nYour branch is ahead of 'origin/JY-20613-allow-owner-role-on-team-setup' by 1 commit.\n (use \"git push\" to publish your local commits)\n\nChanges not staged for commit:\n (use \"git add <file>...\" to update what will be committed)\n (use \"git restore <file>...\" to discard changes in working directory)\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tmodified: .env.local\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tmodified: config/logging.php\n\nUntracked files:\n (use \"git add <file>...\" to include in what will be committed)\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\t.env.nikilocal\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\t.env.other\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tWEBHOOK_FILTERING_IMPLEMENTATION.md\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tapp/Console/Commands/Crm/Hubspot/SimulateWebhooksCommand.php\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tapp/Console/Commands/Reports/CreateMockAskJiminnyReportResultCommand.php\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tids.txt\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tpublic/favicon.ico\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\traw_sql_query.sql\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\ttests/Unit/Policies/CanAccessAiReportsTest.php\n\nno changes added to commit (use \"git add\" and/or \"git commit -a\")\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20613-allow-owner-role-on-team-setup) $ git pull\nremote: Enumerating objects: 248, done.\nremote: Counting objects: 100% (128/128), done.\nremote: Compressing objects: 100% (23/23), done.\nremote: Total 59 (delta 43), reused 44 (delta 33), pack-reused 0 (from 0)\nUnpacking objects: 100% (59/59), 10.48 KiB | 228.00 KiB/s, done.\nFrom github.com:jiminny/app\n b7df560451..190239dfd4 JY-20613-allow-owner-role-on-team-setup -> origin/JY-20613-allow-owner-role-on-team-setup\n e0351be069..d94a285ae7 JY-20808-low-priority-indexing-queue -> origin/JY-20808-low-priority-indexing-queue\n * [new branch] JY-20920-fix-participant-matcher -> origin/JY-20920-fix-participant-matcher\n cb4ebf0c36..90bca4e4b2 master -> origin/master\nMerge made by the 'ort' strategy.\n app/Component/ES/ChunkSize.php | 54 +++++++++++++++++++++++++++\n app/Component/ES/Processor/DTOs/SelectionList.php | 4 +-\n app/Component/ES/Processor/TargetEntitiesSelector.php | 19 ++++++----\n app/Http/Middleware/McpTierMiddleware.php | 27 +++-----------\n app/Mcp/Servers/JiminnyServer.php | 2 +\n app/Mcp/Tools/GetMeTool.php | 157 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++\n app/Models/Feature/FeatureEnum.php | 1 +\n database/migrations/2026_05_13_124153_create_mcp_feature_flag.php | 25 +++++++++++++\n front-end/src/components/Settings/Kiosk/modals/EditTeamModal/EditTeamModal.vue | 52 ++++++++++++++++++--------\n front-end/src/components/Settings/Kiosk/modals/EditTeamModal/__tests__/EditTeamModal.spec.js | 14 +++++++\n tests/Feature/Mcp/GetMeToolFeatureTest.php | 140 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++\n tests/Feature/Mcp/ListCallsToolFeatureTest.php | 2 +-\n tests/Feature/Mcp/McpTestHelpersTrait.php | 19 +++++++++-\n tests/Unit/Component/ES/ChunkSizeTest.php | 50 +++++++++++++++++++++++++\n tests/Unit/Component/ES/Processor/DTOs/SelectionListTest.php | 27 ++++++++++----\n tests/Unit/Component/ES/Processor/TargetEntitiesSelectorTest.php | 39 +++++++++++---------\n 16 files changed, 557 insertions(+), 75 deletions(-)\n create mode 100644 app/Component/ES/ChunkSize.php\n create mode 100644 app/Mcp/Tools/GetMeTool.php\n create mode 100644 database/migrations/2026_05_13_124153_create_mcp_feature_flag.php\n create mode 100644 tests/Feature/Mcp/GetMeToolFeatureTest.php\n create mode 100644 tests/Unit/Component/ES/ChunkSizeTest.php\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20613-allow-owner-role-on-team-setup) $ git push\nEnumerating objects: 40, done.\nCounting objects: 100% (34/34), done.\nDelta compression using up to 8 threads\nCompressing objects: 100% (18/18), done.\nWriting objects: 100% (18/18), 1.58 KiB | 1.58 MiB/s, done.\nTotal 18 (delta 15), reused 0 (delta 0), pack-reused 0\nremote: Resolving deltas: 100% (15/15), completed with 13 local objects.\nTo github.com:jiminny/app.git\n 190239dfd4..ec1b261264 JY-20613-allow-owner-role-on-team-setup -> JY-20613-allow-owner-role-on-team-setup\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20613-allow-owner-role-on-team-setup) $ gbr\n* JY-20613-allow-owner-role-on-team-setup\n pipedrive-sdk-poc\n master\n JY-20903-update_activity-stage-on-opportunity-change\n JY-20904-fix-update-es-on-activity-command\n JY-20891-improve-sms-text-relays\n JY-20725-handle-HS-search-rate-limit\n JY-20818-move-AJ-reports-to-separated-datadog-metric\n JY-20773-fix-automated-reports-user-pilot-tracking\n JY-20157-AJ-report-not-send-notification\n JY-20508-notify-before-AJ-report-expiration\n JY-20372-ai-reports-promotion-pages\n JY-20352-sync-opportunities-without-a-local-owner-user-id-is-null\n JY-20738-debug-AJ-tracking-UP\n a\n JY-18909-automated-reports-ask-jiminny\n JY-20692-fix-integration-app-token-auth-response-change\n JY-20553-debug-crm-sync-delays\n JY-20698-fix-SF-activity-types-on-new-playbook\n JY-20543-AJ-report-tracking\n JY-20384-handle-auto-sync-with-no-access-to-event-type\n JY-20458-ask-jiminny-user-definitions\n JY-19666-fix-import-contacts-account-association\n JY-19666-HS-import-contacts-and-accounts-batch-job\n JY-20458-Ask-Jiminny-Reports\n JY-20200-batch-update-CRM-objects-Salesforce\n JY-19666-HS-webhooks-add-contact-and-company\n JY-20348-trigger-setup-DI-layout-on-team-creation\n JY-20326-refactor-info-message-in-command\n JY-20317-fix-auto-log-delay-issue-on-all-channels-disabled\n JY-20312-remove-on-update-change-last-synced-at-crm-configurations\n JY-20306-SF-skip-auto-sync-for-task-based-playbook\n JY-20192-remove-deleted-team-from-saved-search-filters\n JY-20197-import-opportunity-batch-job\n JY-20293-enable-status-field-for-pipedrive-deals\n JY-20191-remove-commands-interactive-prompts\n JY-20118-change-default-sync-strategy\n JY-20183-add-cache-on-auto-log-delay\n JY-20197-add-import-opportunity-batch-job\n 20118-hs-opportunity-make-webhook-strategy-default\n JY-20118-make-default-hs-opportunity-sync-strategy-webhook-based\n JY-20196-handle-opportunity-without-note\n JY-20118-improve-opportunity-import\n JY-20189-handle-activity-search-on-deleted-groups\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20613-allow-owner-role-on-team-setup) $ co JY-20725-handle-HS-search-rate-limit\nM\u0000\u0000\u0000\u0000\u0000\u0000\t.env.local\nM\u0000\u0000\u0000\u0000\u0000\u0000\tconfig/logging.php\nSwitched to branch 'JY-20725-handle-HS-search-rate-limit'\nYour branch is behind 'origin/JY-20725-handle-HS-search-rate-limit' by 439 commits, and can be fast-forwarded.\n (use \"git pull\" to update your local branch)\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20725-handle-HS-search-rate-limit) $ git pull\nUpdating 0f3e438941..bc6a3fce6b\nFast-forward\n .gitignore | 3 +-\n .windsurfrules | 168 ++---\n CLAUDE.md | 1 +\n app/Component/ActivityAnalytics/Service/CalculateTalkTimeOffsetsFromTranscription.php | 24 +-\n app/Component/AiActivityType/Services/AiActivityTypeEligibilityChecker.php | 28 +-\n app/Component/AiAutomation/Actions/PrepareUpdateDtoAction.php | 32 +-\n app/Component/AiAutomation/Services/CrmFillingEligibilityChecker.php | 47 ++\n app/Component/AiAutomation/TestCrmAiPromptService.php | 14 +\n app/Component/AiCallScoring/Services/AiCallScoringEligibilityChecker.php | 9 +\n app/Component/ES/ElasticSearchDocumentPartialUpdater.php | 13 +-\n app/Component/ES/ElasticSearchWorkerManager.php | 86 ---\n app/Component/ES/Processor/Actions/LoadDocumentsAction.php | 80 +--\n app/Component/ES/Processor/EntityQueryBuilder.php | 12 +-\n app/Component/ES/Processor/TargetEntitiesSelector.php | 2 +-\n app/Component/ES/Processor/Traits/SkipActivityTrait.php | 25 -\n app/Component/ES/Repositories/EsResetActivityRepository.php | 11 +-\n app/Component/ES/Worker/ActivityWorker.php | 73 --\n app/Component/ES/Worker/EntityWorker.php | 44 --\n app/Component/ES/Worker/WorkerAmount.php | 60 --\n app/Component/ES/Worker/WorkerInterface.php | 15 -\n app/Component/ElasticSearch/Contract/Searchable.php | 4 +\n app/Component/Encoding/Job/AnalyzeTrackChannelsJob.php | 20 +-\n app/Component/Encoding/Service/GenerateSpeechFromSilenceService.php | 85 ++-\n app/Component/FFMpeg/Services/GetSpeechIntervalsService.php | 18 +-\n app/Component/LanguageDetection/Services/FindSpeechTimeService.php | 22 +-\n app/Component/Nudge/Job/ProcessOrganisationImmediateNudgesJob.php | 218 +++++-\n app/Component/ParagraphBreaker/Services/TranscriptionParagraphsService.php | 4 +\n app/Component/ParticipantSpeech/Services/ParticipantSpeechesCreator.php | 33 +\n app/Component/ParticipantSpeech/Services/ParticipantSpeechesDeleter.php | 15 +\n app/Component/ParticipantSpeech/Services/ParticipantSpeechesProvider.php | 51 +-\n app/Component/ParticipantSpeech/Services/ParticipantSpeechesUploader.php | 36 +\n app/Component/ProphetAi/Exceptions/InsufficientTranscriptException.php | 11 +\n app/Component/Transcription/DTO/Http/Transcription/AssemblyAI/AssemblyAI/NoAssemblyIdException.php | 11 +\n app/Component/Transcription/DTO/Http/Transcription/AssemblyAI/AssemblyAI/SuccessfulResponse.php | 6 +\n app/Component/Transcription/DTO/Http/Transcription/TranscriptionIsNotCorrectFormatException.php | 11 +\n app/Component/Transcription/Diarization/Services/GetNormalizedParticipantSpeechesService.php | 23 +-\n app/Component/Transcription/Diarization/Source/MeetingBotSource.php | 16 +-\n app/Component/Transcription/TranscriptionProcessor/TranscriptionProcessor.php | 3 +\n app/Console/Commands/Activities/ActivityHardDeleteCommand.php | 4 +-\n app/Console/Commands/Activities/Copy.php | 2 +\n app/Console/Commands/Activities/SetupIntegration/TwilioSetS3RecordingCredentialsCommand.php | 119 ++++\n app/Console/Commands/Activities/UpdateActivityElasticSearchDocumentCommand.php | 10 +-\n app/Console/Commands/Crm/BackfillOpportunityUserFromAccountCommand.php | 126 ++++\n app/Console/Commands/Elasticsearch/AsyncUpdateEsActivities.php | 19 -\n app/Console/Commands/Elasticsearch/AsyncUpdateEsEntities.php | 50 +-\n app/Console/Commands/Elasticsearch/ResetAsyncElasticSearchCommand.php | 30 +-\n app/Console/Commands/GeckoExport/GeckoExportParticipantSpeechesCommand.php | 14 +-\n app/Console/Commands/IssueMcpTokenCommand.php | 84 +++\n app/Console/Commands/JiminnyDebugCommand.php | 7 +-\n app/Console/Commands/Tracks/CleanupActivityTracksCommand.php | 2 +-\n app/Console/Kernel.php | 6 +-\n app/Contracts/Services/Calendar/CalendarTrait.php | 80 ++-\n app/Events/AutomatedReports/AutomatedReportGenerated.php | 3 +\n app/Http/Controllers/API/AiCallScoring/AiScorecardController.php | 7 +-\n app/Http/Controllers/API/TeamAiAutomationController.php | 8 +\n app/Http/Controllers/CustomerApi/CustomerApiController.php | 4 +-\n app/Http/Controllers/Kiosk/ActivityController.php | 58 +-\n app/Http/Controllers/Settings/PlaybookController.php | 15 +-\n app/Http/Kernel.php | 23 +\n app/Http/Middleware/McpAuditMiddleware.php | 156 ++++\n app/Http/Middleware/McpTierMiddleware.php | 54 ++\n app/Http/Requests/API/V2/ZapierUploadActivityRequest.php | 28 +-\n app/Jobs/Activity/Import/ImportTwilioVideoSpeechesJob.php | 25 +-\n app/Jobs/Activity/Import/IsActivityReadyForProcessingJob.php | 10 +-\n app/Jobs/Calendar/SetupCalendarSync.php | 21 +-\n app/Jobs/ImportRemoteTrackJob.php | 96 ++-\n app/Jobs/Mailbox/EmailTextRelay.php | 15 +-\n app/Mcp/Contracts/McpCallRepositoryInterface.php | 30 +\n app/Mcp/DTO/ListCallsFilters.php | 29 +\n app/Mcp/Errors/McpError.php | 123 ++++\n app/Mcp/Repositories/McpActivityHydrator.php | 145 ++++\n app/Mcp/Repositories/McpCallRepository.php | 84 +++\n app/Mcp/Repositories/McpElasticCallRepository.php | 171 +++++\n app/Mcp/Servers/JiminnyServer.php | 38 +\n app/Mcp/Tools/ListCallsTool.php | 205 ++++++\n app/Models/Activity.php | 10 +-\n app/Models/Activity/Transcription.php | 17 +-\n app/Models/ElasticSearch/OpportunityElasticSearchTrait.php | 5 +\n app/Models/Participant.php | 1 +\n app/Providers/AppServiceProvider.php | 22 +\n app/Repositories/Crm/ContactRepository.php | 69 +-\n app/Repositories/ParticipantSpeechRepository.php | 13 +-\n app/Services/Activity/ParticipantsService.php | 19 +-\n app/Services/Activity/Twilio/S3RecordingCredentialsService.php | 82 +++\n app/Services/ActivityService.php | 21 +-\n app/Services/Calendar/CalendarActivityService.php | 46 ++\n app/Services/Calendar/Command/ImportParticipants.php | 1 +\n app/Services/Calendar/Command/MapActivityData.php | 106 +--\n app/Services/Calendar/GoogleCalendarService.php | 12 +-\n app/Services/Crm/Close/Processor/OpportunityProcessor.php | 2 +-\n app/Services/Crm/Close/Service.php | 22 +-\n app/Services/Crm/Copper/Service.php | 12 +-\n app/Services/Crm/Hubspot/Service.php | 154 +++-\n app/Services/Crm/Hubspot/ServiceTraits/OpportunitySyncTrait.php | 88 ++-\n app/Services/Crm/IntegrationApp/ServiceTraits/SyncCrmEntitiesTrait.php | 22 +-\n app/Services/Crm/Pipedrive/Service.php | 17 +-\n app/Services/Crm/Salesforce/Service.php | 42 +-\n app/Services/Mail/Office/EmailApiClient.php | 129 +---\n app/Services/RecallAI/Commands/ScheduleBotCommand.php | 39 +-\n app/Services/RecallAI/RecallAIService.php | 22 +-\n composer.json | 3 +-\n composer.lock | 87 ++-\n config/mcp.php | 23 +\n database/migrations/2026_04_30_120000_create_mcp_audit_log_table.php | 36 +\n docs/mcp/explorer/explorer.html | 697 ++++++++++++++++++\n docs/mcp/explorer/explorer.template.html | 697 ++++++++++++++++++\n docs/mcp/explorer/generate.js | 215 ++++++\n docs/mcp/explorer/tool-explorer-meta.json | 11 +\n docs/mcp/tools-list.json | 2536 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++\n docs/mcp/tools.md | 621 ++++++++++++++++\n front-end/package.json | 4 +-\n front-end/src/components/Settings/OrgSettings/AiAutomation/CrmFilling/TemplateFieldForm.vue | 28 +-\n front-end/src/components/Settings/OrgSettings/Playbooks/AddEditPlaybook.vue | 10 +\n front-end/src/components/playback/comments/ActivityComment.less | 10 +-\n front-end/src/components/shared/PromptTester/PromptTester.vue | 12 +-\n front-end/src/components/shared/__tests__/PromptTester.spec.js | 35 +\n front-end/src/components/shared/modals/EntityPickerModal/__tests__/useEntitiesCache.spec.ts | 37 +\n front-end/src/components/shared/modals/EntityPickerModal/useEntitiesCache.ts | 9 +\n front-end/yarn.lock | 16 +-\n phpstan-baseline.neon | 50 --\n routes/api.php | 11 +\n sonar-project.properties | 91 ++-\n tests/Feature/Component/Nudge/ProcessOrganisationImmediateNudgesJobTest.php | 534 ++++++++++++++\n tests/Feature/Jobs/ImportRemoteTrackJobTest.php | 283 +++++++-\n tests/Feature/Mcp/IssueMcpTokenCommandTest.php | 53 ++\n tests/Feature/Mcp/ListCallsToolElasticFeatureTest.php | 155 ++++\n tests/Feature/Mcp/ListCallsToolFeatureTest.php | 352 ++++++++++\n tests/Feature/Mcp/McpTestHelpersTrait.php | 77 ++\n tests/Feature/Services/Team/TeamDeleteHandlers/Retention/RetentionRepositoryHandlerTest.php | 1 +\n tests/Stubs/SentryStub.php | 18 +\n tests/Unit/Component/ActivityAnalytics/Service/CalculateTalkTimeOffsetFromTranscriptionTest.php | 28 +-\n tests/Unit/Component/AiActivityType/Services/AiActivityTypeEligibilityCheckerTest.php | 103 ++-\n tests/Unit/Component/AiAutomation/Actions/PrepareUpdateDtoActionTest.php | 91 +++\n tests/Unit/Component/AiAutomation/Services/CrmFillingEligibilityCheckerTest.php | 124 ++++\n tests/Unit/Component/AiAutomation/TestCrmAiPromptServiceTest.php | 67 +-\n tests/Unit/Component/AiCallScoring/Services/AiCallScoringEligibilityCheckerTest.php | 55 ++\n tests/Unit/Component/ES/ElasticSearchWorkerManagerTest.php | 135 ----\n tests/Unit/Component/ES/Processor/Actions/LoadDocumentsActionTest.php | 220 ++++++\n tests/Unit/Component/ES/Processor/EntityQueryBuilderTest.php | 21 +-\n tests/Unit/Component/ES/Processor/Traits/SkipActivityTraitTest.php | 51 --\n tests/Unit/Component/ES/Worker/ActivityWorkerTest.php | 174 -----\n tests/Unit/Component/ES/Worker/EntityWorkerTest.php | 97 ---\n tests/Unit/Component/ES/Worker/WorkerAmountTest.php | 116 ---\n tests/Unit/Component/Encoding/Job/AnalyzeTrackChannelsJobTest.php | 52 +-\n tests/Unit/Component/Encoding/Service/GenerateSpeechFromSilenceServiceTest.php | 171 ++---\n tests/Unit/Component/FFMpeg/Services/GetSpeechIntervalsTest.php | 36 +-\n tests/Unit/Component/LanguageDetection/Services/FindSpeechTimeServiceTest.php | 20 +-\n tests/Unit/Component/MobileSettings/MobileSettingsControllerTest.php | 5 +-\n tests/Unit/Component/ParticipantSpeech/Services/ParticipantSpeechesCreatorTest.php | 75 ++\n tests/Unit/Component/ParticipantSpeech/Services/ParticipantSpeechesDeleterTest.php | 63 ++\n tests/Unit/Component/ParticipantSpeech/Services/ParticipantSpeechesProviderTest.php | 134 ++++\n tests/Unit/Component/ParticipantSpeech/Services/ParticipantSpeechesUploaderTest.php | 57 ++\n tests/Unit/Component/Transcription/Diarization/Services/GetNormalizedParticipantSpeechesServiceTest.php | 51 +-\n tests/Unit/Component/Transcription/Diarization/Source/MeetingBotSourceTest.php | 29 +-\n tests/Unit/Contracts/Services/Calendar/CalendarTraitTest.php | 58 +-\n tests/Unit/Http/Controllers/Kiosk/ActivityControllerTest.php | 159 +++++\n tests/Unit/Jobs/Activity/Import/ImportTwilioVideoSpeechesJobTest.php | 22 +-\n tests/Unit/Jobs/Activity/Import/IsActivityReadyForProcessingJobTest.php | 26 +-\n tests/Unit/Jobs/Calendar/SetupCalendarSyncTest.php | 25 -\n tests/Unit/Services/Activity/ParticipantsServiceTest.php | 12 +-\n tests/Unit/Services/Activity/Twilio/S3RecordingCredentialsServiceTest.php | 180 +++++\n tests/Unit/Services/ActivityServiceTest.php | 132 ++++\n tests/Unit/Services/Calendar/CalendarActivityServiceTest.php | 150 +++-\n tests/Unit/Services/Calendar/Command/ImportParticipantsTest.php | 6 +-\n tests/Unit/Services/Calendar/Command/MapActivityDataTest.php | 78 +-\n tests/Unit/Services/Calendar/GoogleCalendarServiceTest.php | 116 +++\n tests/Unit/Services/Crm/Close/ServiceTest.php | 165 +++++\n tests/Unit/Services/Crm/Hubspot/ServiceTest.php | 272 ++++++-\n tests/Unit/Services/Crm/Hubspot/ServiceTraits/OpportunitySyncTest.php | 25 +-\n tests/Unit/Services/Crm/Hubspot/ServiceTraits/OpportunitySyncTraitMatchActivitiesTest.php | 3 +-\n tests/Unit/Services/Crm/IntegrationApp/ServiceTraits/SyncCrmEntitiesTraitOpportunitiesTest.php | 40 ++\n tests/Unit/Services/Crm/Pipedrive/ImportOpportunityMatchActivitiesTest.php | 2 +\n tests/Unit/Services/Crm/Salesforce/ServiceTest.php | 139 ++++\n tests/Unit/Services/Mail/Office/EmailApiClientTest.php | 195 ++---\n tests/Unit/Services/RecallAI/RecallAIServiceTest.php | 24 +-\n 175 files changed, 12562 insertions(+), 2162 deletions(-)\n create mode 120000 CLAUDE.md\n create mode 100644 app/Component/AiAutomation/Services/CrmFillingEligibilityChecker.php\n delete mode 100644 app/Component/ES/ElasticSearchWorkerManager.php\n delete mode 100644 app/Component/ES/Processor/Traits/SkipActivityTrait.php\n delete mode 100644 app/Component/ES/Worker/ActivityWorker.php\n delete mode 100644 app/Component/ES/Worker/EntityWorker.php\n delete mode 100644 app/Component/ES/Worker/WorkerAmount.php\n delete mode 100644 app/Component/ES/Worker/WorkerInterface.php\n create mode 100644 app/Component/ProphetAi/Exceptions/InsufficientTranscriptException.php\n create mode 100644 app/Component/Transcription/DTO/Http/Transcription/AssemblyAI/AssemblyAI/NoAssemblyIdException.php\n create mode 100644 app/Component/Transcription/DTO/Http/Transcription/TranscriptionIsNotCorrectFormatException.php\n create mode 100644 app/Console/Commands/Activities/SetupIntegration/TwilioSetS3RecordingCredentialsCommand.php\n create mode 100644 app/Console/Commands/Crm/BackfillOpportunityUserFromAccountCommand.php\n delete mode 100644 app/Console/Commands/Elasticsearch/AsyncUpdateEsActivities.php\n create mode 100644 app/Console/Commands/IssueMcpTokenCommand.php\n create mode 100644 app/Http/Middleware/McpAuditMiddleware.php\n create mode 100644 app/Http/Middleware/McpTierMiddleware.php\n create mode 100644 app/Mcp/Contracts/McpCallRepositoryInterface.php\n create mode 100644 app/Mcp/DTO/ListCallsFilters.php\n create mode 100644 app/Mcp/Errors/McpError.php\n create mode 100644 app/Mcp/Repositories/McpActivityHydrator.php\n create mode 100644 app/Mcp/Repositories/McpCallRepository.php\n create mode 100644 app/Mcp/Repositories/McpElasticCallRepository.php\n create mode 100644 app/Mcp/Servers/JiminnyServer.php\n create mode 100644 app/Mcp/Tools/ListCallsTool.php\n create mode 100644 app/Services/Activity/Twilio/S3RecordingCredentialsService.php\n create mode 100644 config/mcp.php\n create mode 100644 database/migrations/2026_04_30_120000_create_mcp_audit_log_table.php\n create mode 100644 docs/mcp/explorer/explorer.html\n create mode 100644 docs/mcp/explorer/explorer.template.html\n create mode 100644 docs/mcp/explorer/generate.js\n create mode 100644 docs/mcp/explorer/tool-explorer-meta.json\n create mode 100644 docs/mcp/tools-list.json\n create mode 100644 docs/mcp/tools.md\n create mode 100644 front-end/src/components/shared/modals/EntityPickerModal/__tests__/useEntitiesCache.spec.ts\n create mode 100644 tests/Feature/Component/Nudge/ProcessOrganisationImmediateNudgesJobTest.php\n create mode 100644 tests/Feature/Mcp/IssueMcpTokenCommandTest.php\n create mode 100644 tests/Feature/Mcp/ListCallsToolElasticFeatureTest.php\n create mode 100644 tests/Feature/Mcp/ListCallsToolFeatureTest.php\n create mode 100644 tests/Feature/Mcp/McpTestHelpersTrait.php\n create mode 100644 tests/Stubs/SentryStub.php\n create mode 100644 tests/Unit/Component/AiAutomation/Services/CrmFillingEligibilityCheckerTest.php\n delete mode 100644 tests/Unit/Component/ES/ElasticSearchWorkerManagerTest.php\n create mode 100644 tests/Unit/Component/ES/Processor/Actions/LoadDocumentsActionTest.php\n delete mode 100644 tests/Unit/Component/ES/Processor/Traits/SkipActivityTraitTest.php\n delete mode 100644 tests/Unit/Component/ES/Worker/ActivityWorkerTest.php\n delete mode 100644 tests/Unit/Component/ES/Worker/EntityWorkerTest.php\n delete mode 100644 tests/Unit/Component/ES/Worker/WorkerAmountTest.php\n create mode 100644 tests/Unit/Component/ParticipantSpeech/Services/ParticipantSpeechesCreatorTest.php\n create mode 100644 tests/Unit/Http/Controllers/Kiosk/ActivityControllerTest.php\n create mode 100644 tests/Unit/Services/Activity/Twilio/S3RecordingCredentialsServiceTest.php\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20725-handle-HS-search-rate-limit) $ git status\nOn branch master\nYour branch is behind 'origin/master' by 114 commits, and can be fast-forwarded.\n (use \"git pull\" to update your local branch)\n\nChanges not staged for commit:\n (use \"git add <file>...\" to update what will be committed)\n (use \"git restore <file>...\" to discard changes in working directory)\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tmodified: .env.local\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tmodified: app/Component/SCIM/Constants.php\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tmodified: app/Component/SCIM/ScimProvisioning.php\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tmodified: app/Component/Twilio/Conference/ConferenceManager/SoftPhoneManager.php\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tmodified: app/Console/Commands/JiminnyDebugCommand.php\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tmodified: app/DTO/SCIM/AAD/Request/CoreUserRequest.php\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tmodified: app/DTO/SCIM/AAD/Response/CoreUser.php\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tmodified: app/Services/Telephony/TextMessagingService.php\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tmodified: config/logging.php\n\nUntracked files:\n (use \"git add <file>...\" to include in what will be committed)\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\t.env.nikilocal\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\t.env.other\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tWEBHOOK_FILTERING_IMPLEMENTATION.md\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tapp/Component/SCIM/Mutators/Attributes/User/RoleAttr.php\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tapp/Console/Commands/Crm/Hubspot/SimulateWebhooksCommand.php\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tapp/Console/Commands/Reports/CreateMockAskJiminnyReportResultCommand.php\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tapp/Rules/ListenerRoleCannotHaveAdminOrManagerPermissionRule.php\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tids.txt\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tpublic/favicon.ico\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\traw_sql_query.sql\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\ttests/Unit/Component/SCIM/Mutators/Attributes/User/RoleAttrTest.php\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\ttests/Unit/Policies/CanAccessAiReportsTest.php\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\ttests/Unit/Rules/ListenerRoleCannotHaveAdminOrManagerPermissionRuleTest.php\n\nno changes added to commit (use \"git add\" and/or \"git commit -a\")\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (master) $ git pull\nremote: Enumerating objects: 306, done.\nremote: Counting objects: 100% (299/299), done.\nremote: Compressing objects: 100% (183/183), done.\nremote: Total 306 (delta 213), reused 171 (delta 116), pack-reused 7 (from 1)\nReceiving objects: 100% (306/306), 80.12 KiB | 1000.00 KiB/s, done.\nResolving deltas: 100% (213/213), completed with 53 local objects.\nFrom github.com:jiminny/app\n 90bca4e4b2..5604af40cf master -> origin/master\n 4e7078fd8b..0b8343d179 JY-18091-upgrade-to-php-8-5 -> origin/JY-18091-upgrade-to-php-8-5\n 098eeaa087..d5a447e492 JY-20613-allow-owner-role-on-team-setup -> origin/JY-20613-allow-owner-role-on-team-setup\n c3a76ace91..af65249d0f JY-20749-user-can-view-recorded-meetings -> origin/JY-20749-user-can-view-recorded-meetings\n d94a285ae7..7ce96cb5fe JY-20808-low-priority-indexing-queue -> origin/JY-20808-low-priority-indexing-queue\n * [new branch] JY-20842-remove-partial-updater -> origin/JY-20842-remove-partial-updater\n * [new branch] JY-20920-fix-participant-flip -> origin/JY-20920-fix-participant-flip\n * [new branch] secfix/npm-20260519 -> origin/secfix/npm-20260519\nUpdating cb4ebf0c36..5604af40cf\nFast-forward\n app/Component/ES/ChunkSize.php | 54 +++++++++++++++++++\n app/Component/ES/Processor/DTOs/SelectionList.php | 4 +-\n app/Component/ES/Processor/TargetEntitiesSelector.php | 19 ++++---\n app/Component/MeetingBot/Service/ParticipantMatcher.php | 46 ++++++++++++----\n app/Exceptions/RateLimitException.php | 19 ++++++-\n app/Http/Middleware/McpTierMiddleware.php | 27 ++--------\n app/Jobs/Crm/MatchActivityCrmData.php | 47 ++++++++++++----\n app/Jobs/Middleware/HandleHubspotRateLimit.php | 42 +++++++++++++++\n app/Mcp/Servers/JiminnyServer.php | 2 +\n app/Mcp/Tools/GetMeTool.php | 157 +++++++++++++++++++++++++++++++++++++++++++++++++++++\n app/Models/Feature/FeatureEnum.php | 1 +\n app/Services/Activity/HubSpot/ProviderResolver.php | 4 +-\n app/Services/Activity/HubSpot/ProviderResolverInterface.php | 2 +-\n app/Services/Activity/HubSpot/Providers/Provider.php | 2 +-\n app/Services/Activity/HubSpot/Providers/ProviderKixie.php | 2 +-\n app/Services/Activity/HubSpot/Providers/ProviderOrum.php | 2 +-\n app/Services/Activity/HubSpot/Providers/ProviderTwilio.php | 2 +-\n app/Services/Activity/HubSpot/Providers/ProviderTwilioFlex.php | 5 +-\n app/Services/Activity/HubSpot/Service.php | 97 +++++++++++++++++++++++++++------\n app/Services/Crm/Hubspot/Client.php | 132 +++++++++++++++++++++++++++++++++++++++++++++\n app/Services/Crm/Hubspot/HubspotClientInterface.php | 15 ++++++\n app/Services/Crm/Hubspot/Pagination/HubspotPaginationService.php | 21 ++++----\n app/Services/Crm/Hubspot/Pagination/PaginationState.php | 2 +-\n database/migrations/2026_05_13_124153_create_mcp_feature_flag.php | 25 +++++++++\n tests/Feature/Mcp/GetMeToolFeatureTest.php | 140 +++++++++++++++++++++++++++++++++++++++++++++++\n tests/Feature/Mcp/ListCallsToolFeatureTest.php | 2 +-\n tests/Feature/Mcp/McpTestHelpersTrait.php | 19 ++++++-\n tests/Unit/Component/ES/ChunkSizeTest.php | 50 +++++++++++++++++\n tests/Unit/Component/ES/Processor/DTOs/SelectionListTest.php | 27 +++++++---\n tests/Unit/Component/ES/Processor/TargetEntitiesSelectorTest.php | 39 ++++++++------\n tests/Unit/Component/MeetingBot/Service/ParticipantMatcherTest.php | 68 ++++++++++++++++++++++-\n tests/Unit/Exceptions/RateLimitExceptionTest.php | 56 +++++++++++++++++++\n tests/Unit/Jobs/Crm/MatchActivityCrmDataTest.php | 8 +--\n tests/Unit/Jobs/Middleware/HandleHubspotRateLimitTest.php | 151 +++++++++++++++++++++++++++++++++++++++++++++++++++\n tests/Unit/Services/Activity/HubSpot/ServiceTest.php | 109 +++++++++++++++++++++++++++++++++++++\n tests/Unit/Services/Crm/Hubspot/ClientTest.php | 250 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++\n tests/Unit/Services/Crm/Hubspot/Pagination/HubspotPaginationServiceTest.php | 283 +++++++++++++++++++++---------------------------------------------------------------------------\n 37 files changed, 1587 insertions(+), 344 deletions(-)\n create mode 100644 app/Component/ES/ChunkSize.php\n create mode 100644 app/Jobs/Middleware/HandleHubspotRateLimit.php\n create mode 100644 app/Mcp/Tools/GetMeTool.php\n create mode 100644 database/migrations/2026_05_13_124153_create_mcp_feature_flag.php\n create mode 100644 tests/Feature/Mcp/GetMeToolFeatureTest.php\n create mode 100644 tests/Unit/Component/ES/ChunkSizeTest.php\n create mode 100644 tests/Unit/Exceptions/RateLimitExceptionTest.php\n create mode 100644 tests/Unit/Jobs/Middleware/HandleHubspotRateLimitTest.php\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (master) $ git pull\nAlready up to date.\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (master) $ co -b JY-20676-delete-report-related-objects\nSwitched to a new branch 'JY-20676-delete-report-related-objects'\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20676-delete-report-related-objects) $ csfix\ndocker exec -it docker_lamp_1 ./vendor/bin/php-cs-fixer fix --config=.php-cs-fixer.dist.php -v --using-cache=no --diff \nPHP CS Fixer 3.87.1 Alexander by Fabien Potencier, Dariusz Ruminski and contributors.\nPHP runtime: 8.3.30\nRunning analysis on 7 cores with 10 files per process.\nParallel runner is an experimental feature and may be unstable, use it at your own risk. Feedback highly appreciated!\nLoaded config default from \".php-cs-fixer.dist.php\".\n 5690/5690 [▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓] 100%\n\n 1) app/Console/Commands/JiminnyDebugCommand.php (statement_indentation, blank_line_before_statement)\n ---------- begin diff ----------\n--- /home/jiminny/app/Console/Commands/JiminnyDebugCommand.php\n+++ /home/jiminny/app/Console/Commands/JiminnyDebugCommand.php\n@@ -23,6 +23,7 @@\n \n if ($action === 'redis-set') {\n $this->testRedisSet();\n+\n return;\n }\n \n@@ -45,7 +46,7 @@\n $ttl = 60;\n \n try {\n-// $result = Redis::set($testKey, $testValue, 'EX', $ttl, 'NX');\n+ // $result = Redis::set($testKey, $testValue, 'EX', $ttl, 'NX');\n $result = Redis::set($testKey, $testValue, ['nx', 'ex' => $ttl]);\n \n if ($result) {\n\n ----------- end diff -----------\n\n\nFixed 1 of 5690 files in 50.673 seconds, 67.00 MB memory used\n\nWhat's next:\n Try Docker Debug for seamless, persistent debugging tools in any container or image → docker debug docker_lamp_1\n Learn more at https://docs.docker.com/go/debug-cli/\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20676-delete-report-related-objects) $ ;xd\ndocker exec -it docker_lamp_1 bash -c \"mv /usr/local/etc/php/conf.d/xdebug.ini ~/xdebug.ini\"\n\nWhat's next:\n Try Docker Debug for seamless, persistent debugging tools in any container or image → docker debug docker_lamp_1\n Learn more at https://docs.docker.com/go/debug-cli/\ndocker exec -it docker_lamp_1 supervisorctl restart all\njiminny-worker-processing-2:jiminny-worker-processing-2_00: stopped\njiminny-worker-processing-3:jiminny-worker-processing-3_00: stopped\njiminny-worker-processing-4:jiminny-worker-processing-4_00: stopped\njiminny-worker-processing-5:jiminny-worker-processing-5_00: stopped\njiminny-worker-processing-delayed:jiminny-worker-processing-delayed_00: stopped\nworker-analytics:worker-analytics_00: stopped\nworker-crm-update:worker-crm-update_00: stopped\nworker-download:worker-download_00: stopped\nworker-nudges:worker-nudges_00: stopped\nworker-calendar:worker-calendar_00: stopped\nworker-audio:worker-audio_00: stopped\njiminny-worker-processing-1:jiminny-worker-processing-1_00: stopped\nworker:worker_00: stopped\nworker-conferences:worker-conferences_00: stopped\nworker-crm-sync:worker-crm-sync_00: stopped\nworker-emails:worker-emails_00: stopped\nworker-es-update:worker-es-update_00: stopped\nartisan-schedule:artisan-schedule_00: stopped\nartisan-schedule:artisan-schedule_00: started\njiminny-worker-processing-1:jiminny-worker-processing-1_00: started\njiminny-worker-processing-2:jiminny-worker-processing-2_00: started\njiminny-worker-processing-3:jiminny-worker-processing-3_00: started\njiminny-worker-processing-4:jiminny-worker-processing-4_00: started\njiminny-worker-processing-5:jiminny-worker-processing-5_00: started\njiminny-worker-processing-delayed:jiminny-worker-processing-delayed_00: started\nworker:worker_00: started\nworker-analytics:worker-analytics_00: started\nworker-audio:worker-audio_00: started\nworker-calendar:worker-calendar_00: started\nworker-conferences:worker-conferences_00: started\nworker-crm-sync:worker-crm-sync_00: started\nworker-crm-update:worker-crm-update_00: started\nworker-download:worker-download_00: started\nworker-emails:worker-emails_00: started\nworker-es-update:worker-es-update_00: started\nworker-nudges:worker-nudges_00: started\n\nWhat's next:\n Try Docker Debug for seamless, persistent debugging tools in any container or image → docker debug docker_lamp_1\n Learn more at https://docs.docker.com/go/debug-cli/\ndocker exec -it docker_lamp_1 php -v\nPHP 8.3.30 (cli) (built: Mar 16 2026 22:32:32) (NTS)\nCopyright (c) The PHP Group\nZend Engine v4.3.30, Copyright (c) Zend Technologies\n with Zend OPcache v8.3.30, Copyright (c), by Zend Technologies\n\nWhat's next:\n Try Docker Debug for seamless, persistent debugging tools in any container or image → docker debug docker_lamp_1\n Learn more at https://docs.docker.com/go/debug-cli/\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20676-delete-report-related-objects) $ git status\nOn branch JY-20676-delete-report-related-objects\nChanges not staged for commit:\n (use \"git add <file>...\" to update what will be committed)\n (use \"git restore <file>...\" to discard changes in working directory)\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tmodified: .env.local\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tmodified: app/Console/Commands/JiminnyDebugCommand.php\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tmodified: config/logging.php\n\nUntracked files:\n (use \"git add <file>...\" to include in what will be committed)\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\t.env.nikilocal\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\t.env.other\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tWEBHOOK_FILTERING_IMPLEMENTATION.md\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tapp/Console/Commands/Crm/Hubspot/SimulateWebhooksCommand.php\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tapp/Console/Commands/Reports/CreateMockAskJiminnyReportResultCommand.php\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tids.txt\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tpublic/favicon.ico\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\traw_sql_query.sql\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\ttests/Unit/Policies/CanAccessAiReportsTest.php\n\nno changes added to commit (use \"git add\" and/or \"git commit -a\")\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20676-delete-report-related-objects) $ git push -u origin JY-20676-delete-report-related-objects\nEnumerating objects: 45, done.\nCounting objects: 100% (45/45), done.\nDelta compression using up to 8 threads\nCompressing objects: 100% (24/24), done.\nWriting objects: 100% (24/24), 3.62 KiB | 3.62 MiB/s, done.\nTotal 24 (delta 19), reused 0 (delta 0), pack-reused 0\nremote: Resolving deltas: 100% (19/19), completed with 19 local objects.\nremote: \nremote: Create a pull request for 'JY-20676-delete-report-related-objects' on GitHub by visiting:\nremote: https://github.com/jiminny/app/pull/new/JY-20676-delete-report-related-objects\nremote: \nTo github.com:jiminny/app.git\n * [new branch] JY-20676-delete-report-related-objects -> JY-20676-delete-report-related-objects\nbranch 'JY-20676-delete-report-related-objects' set up to track 'origin/JY-20676-delete-report-related-objects'.\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20676-delete-report-related-objects) $ csfix\ndocker exec -it docker_lamp_1 ./vendor/bin/php-cs-fixer fix --config=.php-cs-fixer.dist.php -v --using-cache=no --diff \nPHP CS Fixer 3.87.1 Alexander by Fabien Potencier, Dariusz Ruminski and contributors.\nPHP runtime: 8.3.30\nRunning analysis on 7 cores with 10 files per process.\nParallel runner is an experimental feature and may be unstable, use it at your own risk. Feedback highly appreciated!\nLoaded config default from \".php-cs-fixer.dist.php\".\n 5690/5690 [▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓] 100%\n\n 1) app/Http/Controllers/API/V2/AskJiminnyReportsController.php (blank_line_before_statement)\n ---------- begin diff ----------\n--- /home/jiminny/app/Http/Controllers/API/V2/AskJiminnyReportsController.php\n+++ /home/jiminny/app/Http/Controllers/API/V2/AskJiminnyReportsController.php\n@@ -140,6 +140,7 @@\n if ($enabled && $report->isAskJiminnyReport() && ! $report->canExecute()) {\n $error = 'This report is missing a saved search or prompt. ' .\n 'Edit the report to complete the setup before enabling it.';\n+\n return new JsonResponse(\n ['error' => $error],\n Response::HTTP_UNPROCESSABLE_ENTITY\n\n ----------- end diff -----------\n\n\nFixed 1 of 5690 files in 71.757 seconds, 60.00 MB memory used\n\nWhat's next:\n Try Docker Debug for seamless, persistent debugging tools in any container or image → docker debug docker_lamp_1\n Learn more at https://docs.docker.com/go/debug-cli/\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20676-delete-report-related-objects) $ git pull\nremote: Enumerating objects: 158, done.\nremote: Counting objects: 100% (103/103), done.\nremote: Compressing objects: 100% (37/37), done.\nremote: Total 158 (delta 80), reused 74 (delta 66), pack-reused 55 (from 3)\nReceiving objects: 100% (158/158), 80.59 KiB | 982.00 KiB/s, done.\nResolving deltas: 100% (85/85), completed with 45 local objects.\nFrom github.com:jiminny/app\n 02a33811ee..c6ce5e2440 JY-20676-delete-report-related-objects -> origin/JY-20676-delete-report-related-objects\n 7ce96cb5fe..6c59f04358 JY-20808-low-priority-indexing-queue -> origin/JY-20808-low-priority-indexing-queue\n 3906a9238a..2b5e6ea62b JY-20835-mcp-enable-users-to-get-a-list-of-deals-and-their-details -> origin/JY-20835-mcp-enable-users-to-get-a-list-of-deals-and-their-details\n 5604af40cf..ea3519f0e2 master -> origin/master\n * [new branch] switch-eu-assembly -> origin/switch-eu-assembly\nUpdating 02a33811ee..c6ce5e2440\nFast-forward\n app/Component/ES/ElasticSearchDocumentPartialUpdater.php | 48 ---\n app/Component/ParticipantSpeech/Services/ParticipantAttributionService.php | 4 +-\n app/Component/Settings/AutoScoring/Services/UpdateAutoScoreService.php | 20 +-\n app/Component/Transcription/Service/StorageService.php | 8 +-\n front-end/package.json | 2 +-\n front-end/src/components/DealInsights/Modals/AskAnythingModal.vue | 23 ++\n front-end/src/components/shared/AskAnything/AskAnythingPromptFormItem.vue | 2 +\n front-end/src/components/shared/AskAnything/AskAnythingSettingsDrawer.vue | 23 +-\n front-end/src/components/shared/AskAnything/__mocks__/AskAnythingSettingsDrawer.mocks.js | 1 +\n front-end/src/components/shared/AskAnything/__tests__/AskAnythingSettingsDrawer.spec.js | 135 ++++---\n front-end/src/components/shared/AskAnything/__tests__/__snapshots__/AskAnythingSettingsDrawer.spec.js.html | 1235 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++\n front-end/src/components/shared/AskAnything/__tests__/__snapshots__/AskAnythingSettingsDrawer.spec.js.snap | 1382 ----------------------------------------------------------------\n front-end/src/components/shared/AskAnything/prompts.js | 1 +\n front-end/src/components/shared/AskAnything/useAskAnything.js | 1 +\n front-end/yarn.lock | 8 +-\n tests/Unit/Component/ES/ElasticSearchDocumentPartialUpdaterTest.php | 42 --\n tests/Unit/Component/Settings/AutoScoring/Services/UpdateAutoScoreServiceTest.php | 86 ++--\n tests/Unit/Component/Transcription/Service/StorageServiceTest.php | 29 +-\n 18 files changed, 1448 insertions(+), 1602 deletions(-)\n delete mode 100644 app/Component/ES/ElasticSearchDocumentPartialUpdater.php\n create mode 100644 front-end/src/components/shared/AskAnything/__tests__/__snapshots__/AskAnythingSettingsDrawer.spec.js.html\n delete mode 100644 front-end/src/components/shared/AskAnything/__tests__/__snapshots__/AskAnythingSettingsDrawer.spec.js.snap\n delete mode 100644 tests/Unit/Component/ES/ElasticSearchDocumentPartialUpdaterTest.php\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20676-delete-report-related-objects) $ csfix\ndocker exec -it docker_lamp_1 ./vendor/bin/php-cs-fixer fix --config=.php-cs-fixer.dist.php -v --using-cache=no --diff \nPHP CS Fixer 3.87.1 Alexander by Fabien Potencier, Dariusz Ruminski and contributors.\nPHP runtime: 8.3.30\nRunning analysis on 7 cores with 10 files per process.\nParallel runner is an experimental feature and may be unstable, use it at your own risk. Feedback highly appreciated!\nLoaded config default from \".php-cs-fixer.dist.php\".\n 0/5688 [░░░░░░░░░░░░░░░░░░░░░░░░░░░░] 0%","is_focused":true},{"role":"AXRadioButton","text":"DOCKER","depth":2,"bounds":{"left":0.0,"top":0.05888889,"width":0.19826388,"height":0.026666667},"on_screen":true,"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.004166667,"top":0.06333333,"width":0.011111111,"height":0.017777778},"on_screen":true,"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"DEV (docker)","depth":2,"bounds":{"left":0.19826388,"top":0.05888889,"width":0.19826388,"height":0.026666667},"on_screen":true,"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.20243056,"top":0.06333333,"width":0.011111111,"height":0.017777778},"on_screen":true,"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"APP (docker)","depth":2,"bounds":{"left":0.39652777,"top":0.05888889,"width":0.19791667,"height":0.026666667},"on_screen":true,"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.40069443,"top":0.06333333,"width":0.011111111,"height":0.017777778},"on_screen":true,"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"screenpipe\"","depth":2,"bounds":{"left":0.59444445,"top":0.05888889,"width":0.19791667,"height":0.026666667},"on_screen":true,"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.5986111,"top":0.06333333,"width":0.011111111,"height":0.017777778},"on_screen":true,"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"-zsh","depth":2,"bounds":{"left":0.79236114,"top":0.05888889,"width":0.19791667,"height":0.026666667},"on_screen":true,"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.7965278,"top":0.06333333,"width":0.011111111,"height":0.017777778},"on_screen":true,"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"⌥⌘1","depth":1,"bounds":{"left":0.9618056,"top":0.032222223,"width":0.038194418,"height":0.018888889},"on_screen":true,"automation_id":"_NS:8","role_description":"text"},{"role":"AXStaticText","text":"APP (docker)","depth":1,"bounds":{"left":0.4722222,"top":0.033333335,"width":0.0625,"height":0.017777778},"on_screen":true,"role_description":"text"}]...
|
2802650493718167367
|
-1358120912881272742
|
idle
|
accessibility
|
NULL
|
Last login: Mon May 18 09:17:28 on ttys007
Poetry Last login: Mon May 18 09:17:28 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 (pipedrive-sdk-poc) $ co master
error: Your local changes to the following files would be overwritten by checkout:
PIPEDRIVE_V2_MIGRATION_TICKETS.md
Please commit your changes or stash them before you switch branches.
Aborting
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (pipedrive-sdk-poc) $ git pull
remote: Enumerating objects: 1047, done.
remote: Counting objects: 100% (832/832), done.
remote: Compressing objects: 100% (298/298), done.
remote: Total 1047 (delta 634), reused 596 (delta 534), pack-reused 215 (from 3)
Receiving objects: 100% (1047/1047), 353.16 KiB | 1.56 MiB/s, done.
Resolving deltas: 100% (687/687), completed with 107 local objects.
From github.com:jiminny/app
907c54896c..34656c53ed pipedrive-sdk-poc -> origin/pipedrive-sdk-poc
03325ec50f..4e7078fd8b JY-18091-upgrade-to-php-8-5 -> origin/JY-18091-upgrade-to-php-8-5
e7d231e163..bc6a3fce6b JY-20725-handle-HS-search-rate-limit -> origin/JY-20725-handle-HS-search-rate-limit
* [new branch] JY-20749-user-can-view-recorded-meetings -> origin/JY-20749-user-can-view-recorded-meetings
98ca281a04..e0351be069 JY-20808-low-priority-indexing-queue -> origin/JY-20808-low-priority-indexing-queue
569abb5149..3906a9238a JY-20835-mcp-enable-users-to-get-a-list-of-deals-and-their-details -> origin/JY-20835-mcp-enable-users-to-get-a-list-of-deals-and-their-details
ad6c2a86e8..50eb6afba9 JY-20846-mcp-enable-the-ai-to-know-details-about-the-user -> origin/JY-20846-mcp-enable-the-ai-to-know-details-about-the-user
* [new branch] JY-20893-chunk-control-per-update-target -> origin/JY-20893-chunk-control-per-update-target
31c62924a5..cb4ebf0c36 master -> origin/master
Updating 907c54896c..34656c53ed
Fast-forward
PIPEDRIVE_V2_MIGRATION_TICKETS.md | 52 ++++++++++++++++++++++++++++++++++++++++++++++++++++
1 file changed, 52 insertions(+)
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (pipedrive-sdk-poc) $ co master
M .env.local
M config/logging.php
Switched to branch 'master'
Your branch is behind 'origin/master' by 31 commits, and can be fast-forwarded.
(use "git pull" to update your local branch)
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (master) $ git pull
Updating 31c62924a5..cb4ebf0c36
Fast-forward
app/Component/ES/Processor/Traits/SelectEntityListTrait.php | 20 ------
app/Services/Calendar/CalendarActivityService.php | 46 +++++++++++++
app/Services/Calendar/Command/MapActivityData.php | 106 +++-------------------------
docs/mcp/explorer/explorer.html | 104 +++++++++++++++++++++++++---
docs/mcp/explorer/explorer.template.html | 102 ++++++++++++++++++++++++---
docs/mcp/tools-list.json | 373 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++-------
docs/mcp/tools.md | 117 +++++++++++++++++++++++--------
tests/Unit/Component/ES/AsyncUpdateElasticSearchTest.php | 16 +----
tests/Unit/Component/ES/Listeners/UpdateMultipleTargetsListenerTest.php | 10 ---
tests/Unit/Component/ES/Listeners/UpdateSingleTargetListenerTest.php | 6 --
tests/Unit/Component/ES/Processor/TargetEntitiesSelectorTest.php | 9 ---
tests/Unit/Component/ES/Processor/Traits/SelectEntityListTraitTest.php | 15 ++--
tests/Unit/Component/ES/UpdateProcessManagerTest.php | 2 -
tests/Unit/Services/Calendar/CalendarActivityServiceTest.php | 150 ++++++++++++++++++++++++++++++++++++++--
tests/Unit/Services/Calendar/Command/MapActivityDataTest.php | 78 ++-------------------
15 files changed, 832 insertions(+), 322 deletions(-)
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (master) $ co -b JY-20613-allow-owner-role-on-team-setup
Switched to a new branch 'JY-20613-allow-owner-role-on-team-setup'
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20613-allow-owner-role-on-team-setup) $ csfix
docker exec -it docker_lamp_1 ./vendor/bin/php-cs-fixer fix --config=.php-cs-fixer.dist.php -v --using-cache=no --diff
PHP CS Fixer 3.87.1 Alexander by Fabien Potencier, Dariusz Ruminski and contributors.
PHP runtime: 8.3.30
Running 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!
Loaded config default from ".php-cs-fixer.dist.php".
5682/5682 [▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓] 100%
Fixed 0 of 5682 files in 56.978 seconds, 67.00 MB memory used
What's next:
Try Docker Debug for seamless, persistent debugging tools in any container or image → docker debug docker_lamp_1
Learn more at [URL_WITH_CREDENTIALS] ~/jiminny/app (JY-20613-allow-owner-role-on-team-setup) $ csfix
docker exec -it docker_lamp_1 ./vendor/bin/php-cs-fixer fix --config=.php-cs-fixer.dist.php -v --using-cache=no --diff
PHP CS Fixer 3.87.1 Alexander by Fabien Potencier, Dariusz Ruminski and contributors.
PHP runtime: 8.3.30
Running 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!
Loaded config default from ".php-cs-fixer.dist.php".
5682/5682 [▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓] 100%
Fixed 0 of 5682 files in 49.910 seconds, 60.00 MB memory used
What's next:
Try Docker Debug for seamless, persistent debugging tools in any container or image → docker debug docker_lamp_1
Learn more at [URL_WITH_CREDENTIALS] ~/jiminny/app (JY-20613-allow-owner-role-on-team-setup) $ git pull
remote: Enumerating objects: 248, done.
remote: Counting objects: 100% (128/128), done.
remote: Compressing objects: 100% (23/23), done.
remote: Total 59 (delta 43), reused 44 (delta 33), pack-reused 0 (from 0)
Unpacking objects: 100% (59/59), 10.48 KiB | 228.00 KiB/s, done.
From github.com:jiminny/app
b7df560451..190239dfd4 JY-20613-allow-owner-role-on-team-setup -> origin/JY-20613-allow-owner-role-on-team-setup
e0351be069..d94a285ae7 JY-20808-low-priority-indexing-queue -> origin/JY-20808-low-priority-indexing-queue
* [new branch] JY-20920-fix-participant-matcher -> origin/JY-20920-fix-participant-matcher
cb4ebf0c36..90bca4e4b2 master -> origin/master
Merge made by the 'ort' strategy.
app/Component/ES/ChunkSize.php | 54 +++++++++++++++++++++++++++
app/Component/ES/Processor/DTOs/SelectionList.php | 4 +-
app/Component/ES/Processor/TargetEntitiesSelector.php | 19 ++++++----
app/Http/Middleware/McpTierMiddleware.php | 27 +++-----------
app/Mcp/Servers/JiminnyServer.php | 2 +
app/Mcp/Tools/GetMeTool.php | 157 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
app/Models/Feature/FeatureEnum.php | 1 +
database/migrations/2026_05_13_124153_create_mcp_feature_flag.php | 25 +++++++++++++
front-end/src/components/Settings/Kiosk/modals/EditTeamModal/EditTeamModal.vue | 52 ++++++++++++++++++--------
front-end/src/components/Settings/Kiosk/modals/EditTeamModal/__tests__/EditTeamModal.spec.js | 14 +++++++
tests/Feature/Mcp/GetMeToolFeatureTest.php | 140 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
tests/Feature/Mcp/ListCallsToolFeatureTest.php | 2 +-
tests/Feature/Mcp/McpTestHelpersTrait.php | 19 +++++++++-
tests/Unit/Component/ES/ChunkSizeTest.php | 50 +++++++++++++++++++++++++
tests/Unit/Component/ES/Processor/DTOs/SelectionListTest.php | 27 ++++++++++----
tests/Unit/Component/ES/Processor/TargetEntitiesSelectorTest.php | 39 +++++++++++---------
16 files changed, 557 insertions(+), 75 deletions(-)
create mode 100644 app/Component/ES/ChunkSize.php
create mode 100644 app/Mcp/Tools/GetMeTool.php
create mode 100644 database/migrations/2026_05_13_124153_create_mcp_feature_flag.php
create mode 100644 tests/Feature/Mcp/GetMeToolFeatureTest.php
create mode 100644 tests/Unit/Component/ES/ChunkSizeTest.php
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20613-allow-owner-role-on-team-setup) $ git push
Enumerating objects: 40, done.
Counting objects: 100% (34/34), done.
Delta compression using up to 8 threads
Compressing objects: 100% (18/18), done.
Writing objects: 100% (18/18), 1.58 KiB | 1.58 MiB/s, done.
Total 18 (delta 15), reused 0 (delta 0), pack-reused 0
remote: Resolving deltas: 100% (15/15), completed with 13 local objects.
To github.com:jiminny/app.git
190239dfd4..ec1b261264 JY-20613-allow-owner-role-on-team-setup -> JY-20613-allow-owner-role-on-team-setup
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20613-allow-owner-role-on-team-setup) $ gbr
* JY-20613-allow-owner-role-on-team-setup
pipedrive-sdk-poc
master
JY-20903-update_activity-stage-on-opportunity-change
JY-20904-fix-update-es-on-activity-command
JY-20891-improve-sms-text-relays
JY-20725-handle-HS-search-rate-limit
JY-20818-move-AJ-reports-to-separated-datadog-metric
JY-20773-fix-automated-reports-user-pilot-tracking
JY-20157-AJ-report-not-send-notification
JY-20508-notify-before-AJ-report-expiration
JY-20372-ai-reports-promotion-pages
JY-20352-sync-opportunities-without-a-local-owner-user-id-is-null
JY-20738-debug-AJ-tracking-UP
a
JY-18909-automated-reports-ask-jiminny
JY-20692-fix-integration-app-[API_KEY]
JY-20553-debug-crm-sync-delays
JY-20698-fix-SF-activity-types-on-new-playbook
JY-20543-AJ-report-tracking
JY-20384-handle-auto-sync-with-no-access-to-event-type
JY-20458-ask-jiminny-user-definitions
JY-19666-fix-import-contacts-account-association
JY-19666-HS-import-contacts-and-accounts-batch-job
JY-20458-Ask-Jiminny-Reports
JY-20200-batch-update-CRM-objects-Salesforce
JY-19666-HS-webhooks-add-contact-and-company
JY-20348-trigger-setup-DI-layout-on-team-creation
JY-20326-refactor-info-message-in-command
JY-20317-fix-auto-log-delay-issue-on-all-channels-disabled
JY-20312-remove-on-update-change-last-synced-at-crm-configurations
JY-20306-SF-skip-auto-sync-for-task-based-playbook
JY-20192-remove-deleted-team-from-saved-search-filters
JY-20197-import-opportunity-batch-job
JY-20293-enable-status-field-for-pipedrive-deals
JY-20191-remove-commands-interactive-prompts
JY-20118-change-default-sync-strategy
JY-20183-add-cache-on-auto-log-delay
JY-20197-add-import-opportunity-batch-job
20118-hs-opportunity-make-webhook-strategy-default
JY-20118-make-default-hs-opportunity-sync-strategy-webhook-based
JY-20196-handle-opportunity-without-note
JY-20118-improve-opportunity-import
JY-20189-handle-activity-search-on-deleted-groups
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20613-allow-owner-role-on-team-setup) $ co JY-20725-handle-HS-search-rate-limit
M .env.local
M config/logging.php
Switched to branch 'JY-20725-handle-HS-search-rate-limit'
Your branch is behind 'origin/JY-20725-handle-HS-search-rate-limit' by 439 commits, and can be fast-forwarded.
(use "git pull" to update your local branch)
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20725-handle-HS-search-rate-limit) $ git pull
Updating 0f3e438941..bc6a3fce6b
Fast-forward
.gitignore | 3 +-
.windsurfrules | 168 ++---
CLAUDE.md | 1 +
app/Component/ActivityAnalytics/Service/CalculateTalkTimeOffsetsFromTranscription.php | 24 +-
app/Component/AiActivityType/Services/AiActivityTypeEligibilityChecker.php | 28 +-
app/Component/AiAutomation/Actions/PrepareUpdateDtoAction.php | 32 +-
app/Component/AiAutomation/Services/CrmFillingEligibilityChecker.php | 47 ++
app/Component/AiAutomation/TestCrmAiPromptService.php | 14 +
app/Component/AiCallScoring/Services/AiCallScoringEligibilityChecker.php | 9 +
app/Component/ES/ElasticSearchDocumentPartialUpdater.php | 13 +-
app/Component/ES/ElasticSearchWorkerManager.php | 86 ---
app/Component/ES/Processor/Actions/LoadDocumentsAction.php | 80 +--
app/Component/ES/Processor/EntityQueryBuilder.php | 12 +-
app/Component/ES/Processor/TargetEntitiesSelector.php | 2 +-
app/Component/ES/Processor/Traits/SkipActivityTrait.php | 25 -
app/Component/ES/Repositories/EsResetActivityRepository.php | 11 +-
app/Component/ES/Worker/ActivityWorker.php | 73 --
app/Component/ES/Worker/EntityWorker.php | 44 --
app/Component/ES/Worker/WorkerAmount.php | 60 --
app/Component/ES/Worker/WorkerInterface.php | 15 -
app/Component/ElasticSearch/Contract/Searchable.php | 4 +
app/Component/Encoding/Job/AnalyzeTrackChannelsJob.php | 20 +-
app/Component/Encoding/Service/GenerateSpeechFromSilenceService.php | 85 ++-
app/Component/FFMpeg/Services/GetSpeechIntervalsService.php | 18 +-
app/Component/LanguageDetection/Services/FindSpeechTimeService.php | 22 +-
app/Component/Nudge/Job/ProcessOrganisationImmediateNudgesJob.php | 218 +++++-
app/Component/ParagraphBreaker/Services/TranscriptionParagraphsService.php | 4 +
app/Component/ParticipantSpeech/Services/ParticipantSpeechesCreator.php | 33 +
app/Component/ParticipantSpeech/Services/ParticipantSpeechesDeleter.php | 15 +
app/Component/ParticipantSpeech/Services/ParticipantSpeechesProvider.php | 51 +-
app/Component/ParticipantSpeech/Services/ParticipantSpeechesUploader.php | 36 +
app/Component/ProphetAi/Exceptions/InsufficientTranscriptException.php | 11 +
app/Component/Transcription/DTO/Http/Transcription/AssemblyAI/AssemblyAI/NoAssemblyIdException.php | 11 +
app/Component/Transcription/DTO/Http/Transcription/AssemblyAI/AssemblyAI/SuccessfulResponse.php | 6 +
app/Component/Transcription/DTO/Http/Transcription/TranscriptionIsNotCorrectFormatException.php | 11 +
app/Component/Transcription/Diarization/Services/GetNormalizedParticipantSpeechesService.php | 23 +-
app/Component/Transcription/Diarization/Source/MeetingBotSource.php | 16 +-
app/Component/Transcription/TranscriptionProcessor/TranscriptionProcessor.php | 3 +
app/Console/Commands/Activities/ActivityHardDeleteCommand.php | 4 +-
app/Console/Commands/Activities/Copy.php | 2 +
app/Console/Commands/Activities/SetupIntegration/TwilioSetS3RecordingCredentialsCommand.php | 119 ++++
app/Console/Commands/Activities/UpdateActivityElasticSearchDocumentCommand.php | 10 +-
app/Console/Commands/Crm/BackfillOpportunityUserFromAccountCommand.php | 126 ++++
app/Console/Commands/Elasticsearch/AsyncUpdateEsActivities.php | 19 -
app/Console/Commands/Elasticsearch/AsyncUpdateEsEntities.php | 50 +-
app/Console/Commands/Elasticsearch/ResetAsyncElasticSearchCommand.php | 30 +-
app/Console/Commands/GeckoExport/GeckoExportParticipantSpeechesCommand.php | 14 +-
app/Console/Commands/IssueMcpTokenCommand.php | 84 +++
app/Console/Commands/JiminnyDebugCommand.php | 7 +-
app/Console/Commands/Tracks/CleanupActivityTracksCommand.php | 2 +-
app/Console/Kernel.php | 6 +-
app/Contracts/Services/Calendar/CalendarTrait.php | 80 ++-
app/Events/AutomatedReports/AutomatedReportGenerated.php | 3 +
app/Http/Controllers/API/AiCallScoring/AiScorecardController.php | 7 +-
app/Http/Controllers/API/TeamAiAutomationController.php | 8 +
app/Http/Controllers/CustomerApi/CustomerApiController.php | 4 +-
app/Http/Controllers/Kiosk/ActivityController.php | 58 +-
app/Http/Controllers/Settings/PlaybookController.php | 15 +-
app/Http/Kernel.php | 23 +
app/Http/Middleware/McpAuditMiddleware.php | 156 ++++
app/Http/Middleware/McpTierMiddleware.php | 54 ++
app/Http/Requests/API/V2/ZapierUploadActivityRequest.php | 28 +-
app/Jobs/Activity/Import/ImportTwilioVideoSpeechesJob.php | 25 +-
app/Jobs/Activity/Import/IsActivityReadyForProcessingJob.php | 10 +-
app/Jobs/Calendar/SetupCalendarSync.php | 21 +-
app/Jobs/ImportRemoteTrackJob.php | 96 ++-
app/Jobs/Mailbox/EmailTextRelay.php | 15 +-
app/Mcp/Contracts/McpCallRepositoryInterface.php | 30 +
app/Mcp/DTO/ListCallsFilters.php | 29 +
app/Mcp/Errors/McpError.php | 123 ++++
app/Mcp/Repositories/McpActivityHydrator.php | 145 ++++
app/Mcp/Repositories/McpCallRepository.php | 84 +++
app/Mcp/Repositories/McpElasticCallRepository.php | 171 +++++
app/Mcp/Servers/JiminnyServer.php | 38 +
app/Mcp/Tools/ListCallsTool.php | 205 ++++++
app/Models/Activity.php | 10 +-
app/Models/Activity/Transcription.php | 17 +-
app/Models/ElasticSearch/OpportunityElasticSearchTrait.php | 5 +
app/Models/Participant.php | 1 +
app/Providers/AppServiceProvider.php | 22 +
app/Repositories/Crm/ContactRepository.php | 69 +-
app/Repositories/ParticipantSpeechRepository.php | 13 +-
app/Services/Activity/ParticipantsService.php | 19 +-
app/Services/Activity/Twilio/S3RecordingCredentialsService.php | 82 +++
app/Services/ActivityService.php | 21 +-
app/Services/Calendar/CalendarActivityService.php | 46 ++
app/Services/Calendar/Command/ImportParticipants.php | 1 +
app/Services/Calendar/Command/MapActivityData.php | 106 +--
app/Services/Calendar/GoogleCalendarService.php | 12 +-
app/Services/Crm/Close/Processor/OpportunityProcessor.php | 2 +-
app/Services/Crm/Close/Service.php | 22 +-
app/Services/Crm/Copper/Service.php | 12 +-
app/Services/Crm/Hubspot/Service.php | 154 +++-
app/Services/Crm/Hubspot/ServiceTraits/OpportunitySyncTrait.php | 88 ++-
app/Services/Crm/IntegrationApp/ServiceTraits/SyncCrmEntitiesTrait.php | 22 +-
app/Services/Crm/Pipedrive/Service.php | 17 +-
app/Services/Crm/Salesforce/Service.php | 42 +-
app/Services/Mail/Office/EmailApiClient.php | 129 +---
app/Services/RecallAI/Commands/ScheduleBotCommand.php | 39 +-
app/Services/RecallAI/RecallAIService.php | 22 +-
composer.json | 3 +-
composer.lock | 87 ++-
config/mcp.php | 23 +
database/migrations/2026_04_30_120000_create_mcp_audit_log_table.php | 36 +
docs/mcp/explorer/explorer.html | 697 ++++++++++++++++++
docs/mcp/explorer/explorer.template.html | 697 ++++++++++++++++++
docs/mcp/explorer/generate.js | 215 ++++++
docs/mcp/explorer/tool-explorer-meta.json | 11 +
docs/mcp/tools-list.json | 2536 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
docs/mcp/tools.md | 621 ++++++++++++++++
front-end/package.json | 4 +-
front-end/src/components/Settings/OrgSettings/AiAutomation/CrmFilling/TemplateFieldForm.vue | 28 +-
front-end/src/components/Settings/OrgSettings/Playbooks/AddEditPlaybook.vue | 10 +
front-end/src/components/playback/comments/ActivityComment.less | 10 +-
front-end/src/components/shared/PromptTester/PromptTester.vue | 12 +-
front-end/src/components/shared/__tests__/PromptTester.spec.js | 35 +
front-end/src/components/shared/modals/EntityPickerModal/__tests__/useEntitiesCache.spec.ts | 37 +
front-end/src/components/shared/modals/EntityPickerModal/useEntitiesCache.ts | 9 +
front-end/yarn.lock | 16 +-
phpstan-baseline.neon | 50 --
routes/api.php | 11 +
sonar-project.properties | 91 ++-
tests/Feature/Component/Nudge/ProcessOrganisationImmediateNudgesJobTest.php | 534 ++++++++++++++
tests/Feature/Jobs/ImportRemoteTrackJobTest.php | 283 +++++++-
tests/Feature/Mcp/IssueMcpTokenCommandTest.php | 53 ++
tests/Feature/Mcp/ListCallsToolElasticFeatureTest.php | 155 ++++
tests/Feature/Mcp/ListCallsToolFeatureTest.php | 352 ++++++++++
tests/Feature/Mcp/McpTestHelpersTrait.php | 77 ++
tests/Feature/Services/Team/TeamDeleteHandlers/Retention/RetentionRepositoryHandlerTest.php | 1 +
tests/Stubs/SentryStub.php | 18 +
tests/Unit/Component/ActivityAnalytics/Service/CalculateTalkTimeOffsetFromTranscriptionTest.php | 28 +-
tests/Unit/Component/AiActivityType/Services/AiActivityTypeEligibilityCheckerTest.php | 103 ++-
tests/Unit/Component/AiAutomation/Actions/PrepareUpdateDtoActionTest.php | 91 +++
tests/Unit/Component/AiAutomation/Services/CrmFillingEligibilityCheckerTest.php | 124 ++++
tests/Unit/Component/AiAutomation/TestCrmAiPromptServiceTest.php | 67 +-
tests/Unit/Component/AiCallScoring/Services/AiCallScoringEligibilityCheckerTest.php | 55 ++
tests/Unit/Component/ES/ElasticSearchWorkerManagerTest.php | 135 ----
tests/Unit/Component/ES/Processor/Actions/LoadDocumentsActionTest.php | 220 ++++++
tests/Unit/Component/ES/Processor/EntityQueryBuilderTest.php | 21 +-
tests/Unit/Component/ES/Processor/Traits/SkipActivityTraitTest.php | 51 --
tests/Unit/Component/ES/Worker/ActivityWorkerTest.php | 174 -----
tests/Unit/Component/ES/Worker/EntityWorkerTest.php | 97 ---
tests/Unit/Component/ES/Worker/WorkerAmountTest.php | 116 ---
tests/Unit/Component/Encoding/Job/AnalyzeTrackChannelsJobTest.php | 52 +-
tests/Unit/Component/Encoding/Service/GenerateSpeechFromSilenceServiceTest.php | 171 ++---
tests/Unit/Component/FFMpeg/Services/GetSpeechIntervalsTest.php | 36 +-
tests/Unit/Component/LanguageDetection/Services/FindSpeechTimeServiceTest.php | 20 +-
tests/Unit/Component/MobileSettings/MobileSettingsControllerTest.php | 5 +-
tests/Unit/Component/ParticipantSpeech/Services/ParticipantSpeechesCreatorTest.php | 75 ++
tests/Unit/Component/ParticipantSpeech/Services/ParticipantSpeechesDeleterTest.php | 63 ++
tests/Unit/Component/ParticipantSpeech/Services/ParticipantSpeechesProviderTest.php | 134 ++++
tests/Unit/Component/ParticipantSpeech/Services/ParticipantSpeechesUploaderTest.php | 57 ++
tests/Unit/Component/Transcription/Diarization/Services/GetNormalizedParticipantSpeechesServiceTest.php | 51 +-
tests/Unit/Component/Transcription/Diarization/Source/MeetingBotSourceTest.php | 29 +-
tests/Unit/Contracts/Services/Calendar/CalendarTraitTest.php | 58 +-
tests/Unit/Http/Controllers/Kiosk/ActivityControllerTest.php | 159 +++++
tests/Unit/Jobs/Activity/Import/ImportTwilioVideoSpeechesJobTest.php | 22 +-
tests/Unit/Jobs/Activity/Import/IsActivityReadyForProcessingJobTest.php | 26 +-
tests/Unit/Jobs/Calendar/SetupCalendarSyncTest.php | 25 -
tests/Unit/Services/Activity/ParticipantsServiceTest.php | 12 +-
tests/Unit/Services/Activity/Twilio/S3RecordingCredentialsServiceTest.php | 180 +++++
tests/Unit/Services/ActivityServiceTest.php | 132 ++++
tests/Unit/Services/Calendar/CalendarActivityServiceTest.php | 150 +++-
tests/Unit/Services/Calendar/Command/ImportParticipantsTest.php | 6 +-
tests/Unit/Services/Calendar/Command/MapActivityDataTest.php | 78 +-
tests/Unit/Services/Calendar/GoogleCalendarServiceTest.php | 116 +++
tests/Unit/Services/Crm/Close/ServiceTest.php | 165 +++++
tests/Unit/Services/Crm/Hubspot/ServiceTest.php | 272 ++++++-
tests/Unit/Services/Crm/Hubspot/ServiceTraits/OpportunitySyncTest.php | 25 +-
tests/Unit/Services/Crm/Hubspot/ServiceTraits/OpportunitySyncTraitMatchActivitiesTest.php | 3 +-
tests/Unit/Services/Crm/IntegrationApp/ServiceTraits/SyncCrmEntitiesTraitOpportunitiesTest.php | 40 ++
tests/Unit/Services/Crm/Pipedrive/ImportOpportunityMatchActivitiesTest.php | 2 +
tests/Unit/Services/Crm/Salesforce/ServiceTest.php | 139 ++++
tests/Unit/Services/Mail/Office/EmailApiClientTest.php | 195 ++---
tests/Unit/Services/RecallAI/RecallAIServiceTest.php | 24 +-
175 files changed, 12562 insertions(+), 2162 deletions(-)
create mode 120000 CLAUDE.md
create mode 100644 app/Component/AiAutomation/Services/CrmFillingEligibilityChecker.php
delete mode 100644 app/Component/ES/ElasticSearchWorkerManager.php
delete mode 100644 app/Component/ES/Processor/Traits/SkipActivityTrait.php
delete mode 100644 app/Component/ES/Worker/ActivityWorker.php
delete mode 100644 app/Component/ES/Worker/EntityWorker.php
delete mode 100644 app/Component/ES/Worker/WorkerAmount.php
delete mode 100644 app/Component/ES/Worker/WorkerInterface.php
create mode 100644 app/Component/ProphetAi/Exceptions/InsufficientTranscriptException.php
create mode 100644 app/Component/Transcription/DTO/Http/Transcription/AssemblyAI/AssemblyAI/NoAssemblyIdException.php
create mode 100644 app/Component/Transcription/DTO/Http/Transcription/TranscriptionIsNotCorrectFormatException.php
create mode 100644 app/Console/Commands/Activities/SetupIntegration/TwilioSetS3RecordingCredentialsCommand.php
create mode 100644 app/Console/Commands/Crm/BackfillOpportunityUserFromAccountCommand.php
delete mode 100644 app/Console/Commands/Elasticsearch/AsyncUpdateEsActivities.php
create mode 100644 app/Console/Commands/IssueMcpTokenCommand.php
create mode 100644 app/Http/Middleware/McpAuditMiddleware.php
create mode 100644 app/Http/Middleware/McpTierMiddleware.php
create mode 100644 app/Mcp/Contracts/McpCallRepositoryInterface.php
create mode 100644 app/Mcp/DTO/ListCallsFilters.php
create mode 100644 app/Mcp/Errors/McpError.php
create mode 100644 app/Mcp/Repositories/McpActivityHydrator.php
create mode 100644 app/Mcp/Repositories/McpCallRepository.php
create mode 100644 app/Mcp/Repositories/McpElasticCallRepository.php
create mode 100644 app/Mcp/Servers/JiminnyServer.php
create mode 100644 app/Mcp/Tools/ListCallsTool.php
create mode 100644 app/Services/Activity/Twilio/S3RecordingCredentialsService.php
create mode 100644 config/mcp.php
create mode 100644 database/migrations/2026_04_30_120000_create_mcp_audit_log_table.php
create mode 100644 docs/mcp/explorer/explorer.html
create mode 100644 docs/mcp/explorer/explorer.template.html
create mode 100644 docs/mcp/explorer/generate.js
create mode 100644 docs/mcp/explorer/tool-explorer-meta.json
create mode 100644 docs/mcp/tools-list.json
create mode 100644 docs/mcp/tools.md
create mode 100644 front-end/src/components/shared/modals/EntityPickerModal/__tests__/useEntitiesCache.spec.ts
create mode 100644 tests/Feature/Component/Nudge/ProcessOrganisationImmediateNudgesJobTest.php
create mode 100644 tests/Feature/Mcp/IssueMcpTokenCommandTest.php
create mode 100644 tests/Feature/Mcp/ListCallsToolElasticFeatureTest.php
create mode 100644 tests/Feature/Mcp/ListCallsToolFeatureTest.php
create mode 100644 tests/Feature/Mcp/McpTestHelpersTrait.php
create mode 100644 tests/Stubs/SentryStub.php
create mode 100644 tests/Unit/Component/AiAutomation/Services/CrmFillingEligibilityCheckerTest.php
delete mode 100644 tests/Unit/Component/ES/ElasticSearchWorkerManagerTest.php
create mode 100644 tests/Unit/Component/ES/Processor/Actions/LoadDocumentsActionTest.php
delete mode 100644 tests/Unit/Component/ES/Processor/Traits/SkipActivityTraitTest.php
delete mode 100644 tests/Unit/Component/ES/Worker/ActivityWorkerTest.php
delete mode 100644 tests/Unit/Component/ES/Worker/EntityWorkerTest.php
delete mode 100644 tests/Unit/Component/ES/Worker/WorkerAmountTest.php
create mode 100644 tests/Unit/Component/ParticipantSpeech/Services/ParticipantSpeechesCreatorTest.php
create mode 100644 tests/Unit/Http/Controllers/Kiosk/ActivityControllerTest.php
create mode 100644 tests/Unit/Services/Activity/Twilio/S3RecordingCredentialsServiceTest.php
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20725-handle-HS-search-rate-limit) $ git status
On branch master
Your branch is behind 'origin/master' by 114 commits, and can be fast-forwarded.
(use "git pull" to update your local branch)
Changes not staged for commit:
(use "git add <file>..." to update what will be committed)
(use "git restore <file>..." to discard changes in working directory)
modified: .env.local
modified: app/Component/SCIM/Constants.php
modified: app/Component/SCIM/ScimProvisioning.php
modified: app/Component/Twilio/Conference/ConferenceManager/SoftPhoneManager.php
modified: app/Console/Commands/JiminnyDebugCommand.php
modified: app/DTO/SCIM/AAD/Request/CoreUserRequest.php
modified: app/DTO/SCIM/AAD/Response/CoreUser.php
modified: app/Services/Telephony/TextMessagingService.php
modified: config/logging.php
Untracked files:
(use "git add <file>..." to include in what will be committed)
.env.nikilocal
.env.other
WEBHOOK_FILTERING_IMPLEMENTATION.md
app/Component/SCIM/Mutators/Attributes/User/RoleAttr.php
app/Console/Commands/Crm/Hubspot/SimulateWebhooksCommand.php
app/Console/Commands/Reports/CreateMockAskJiminnyReportResultCommand.php
app/Rules/ListenerRoleCannotHaveAdminOrManagerPermissionRule.php
ids.txt
public/favicon.ico
raw_sql_query.sql
tests/Unit/Component/SCIM/Mutators/Attributes/User/RoleAttrTest.php
tests/Unit/Policies/CanAccessAiReportsTest.php
tests/Unit/Rules/ListenerRoleCannotHaveAdminOrManagerPermissionRuleTest.php
no changes added to commit (use "git add" and/or "git commit -a")
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (master) $ git pull
remote: Enumerating objects: 306, done.
remote: Counting objects: 100% (299/299), done.
remote: Compressing objects: 100% (183/183), done.
remote: Total 306 (delta 213), reused 171 (delta 116), pack-reused 7 (from 1)
Receiving objects: 100% (306/306), 80.12 KiB | 1000.00 KiB/s, done.
Resolving deltas: 100% (213/213), completed with 53 local objects.
From github.com:jiminny/app
90bca4e4b2..5604af40cf master -> origin/master
4e7078fd8b..0b8343d179 JY-18091-upgrade-to-php-8-5 -> origin/JY-18091-upgrade-to-php-8-5
098eeaa087..d5a447e492 JY-20613-allow-owner-role-on-team-setup -> origin/JY-20613-allow-owner-role-on-team-setup
c3a76ace91..af65249d0f JY-20749-user-can-view-recorded-meetings -> origin/JY-20749-user-can-view-recorded-meetings
d94a285ae7..7ce96cb5fe JY-20808-low-priority-indexing-queue -> origin/JY-20808-low-priority-indexing-queue
* [new branch] JY-20842-remove-partial-updater -> origin/JY-20842-remove-partial-updater
* [new branch] JY-20920-fix-participant-flip -> origin/JY-20920-fix-participant-flip
* [new branch] secfix/npm-20260519 -> origin/secfix/npm-20260519
Updating cb4ebf0c36..5604af40cf
Fast-forward
app/Component/ES/ChunkSize.php | 54 +++++++++++++++++++
app/Component/ES/Processor/DTOs/SelectionList.php | 4 +-
app/Component/ES/Processor/TargetEntitiesSelector.php | 19 ++++---
app/Component/MeetingBot/Service/ParticipantMatcher.php | 46 ++++++++++++----
app/Exceptions/RateLimitException.php | 19 ++++++-
app/Http/Middleware/McpTierMiddleware.php | 27 ++--------
app/Jobs/Crm/MatchActivityCrmData.php | 47 ++++++++++++----
app/Jobs/Middleware/HandleHubspotRateLimit.php | 42 +++++++++++++++
app/Mcp/Servers/JiminnyServer.php | 2 +
app/Mcp/Tools/GetMeTool.php | 157 +++++++++++++++++++++++++++++++++++++++++++++++++++++
app/Models/Feature/FeatureEnum.php | 1 +
app/Services/Activity/HubSpot/ProviderResolver.php | 4 +-
app/Services/Activity/HubSpot/ProviderResolverInterface.php | 2 +-
app/Services/Activity/HubSpot/Providers/Provider.php | 2 +-
app/Services/Activity/HubSpot/Providers/ProviderKixie.php | 2 +-
app/Services/Activity/HubSpot/Providers/ProviderOrum.php | 2 +-
app/Services/Activity/HubSpot/Providers/ProviderTwilio.php | 2 +-
app/Services/Activity/HubSpot/Providers/ProviderTwilioFlex.php | 5 +-
app/Services/Activity/HubSpot/Service.php | 97 +++++++++++++++++++++++++++------
app/Services/Crm/Hubspot/Client.php | 132 +++++++++++++++++++++++++++++++++++++++++++++
app/Services/Crm/Hubspot/HubspotClientInterface.php | 15 ++++++
app/Services/Crm/Hubspot/Pagination/HubspotPaginationService.php | 21 ++++----
app/Services/Crm/Hubspot/Pagination/PaginationState.php | 2 +-
database/migrations/2026_05_13_124153_create_mcp_feature_flag.php | 25 +++++++++
tests/Feature/Mcp/GetMeToolFeatureTest.php | 140 +++++++++++++++++++++++++++++++++++++++++++++++
tests/Feature/Mcp/ListCallsToolFeatureTest.php | 2 +-
tests/Feature/Mcp/McpTestHelpersTrait.php | 19 ++++++-
tests/Unit/Component/ES/ChunkSizeTest.php | 50 +++++++++++++++++
tests/Unit/Component/ES/Processor/DTOs/SelectionListTest.php | 27 +++++++---
tests/Unit/Component/ES/Processor/TargetEntitiesSelectorTest.php | 39 ++++++++------
tests/Unit/Component/MeetingBot/Service/ParticipantMatcherTest.php | 68 ++++++++++++++++++++++-
tests/Unit/Exceptions/RateLimitExceptionTest.php | 56 +++++++++++++++++++
tests/Unit/Jobs/Crm/MatchActivityCrmDataTest.php | 8 +--
tests/Unit/Jobs/Middleware/HandleHubspotRateLimitTest.php | 151 +++++++++++++++++++++++++++++++++++++++++++++++++++
tests/Unit/Services/Activity/HubSpot/ServiceTest.php | 109 +++++++++++++++++++++++++++++++++++++
tests/Unit/Services/Crm/Hubspot/ClientTest.php | 250 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
tests/Unit/Services/Crm/Hubspot/Pagination/HubspotPaginationServiceTest.php | 283 +++++++++++++++++++++---------------------------------------------------------------------------
37 files changed, 1587 insertions(+), 344 deletions(-)
create mode 100644 app/Component/ES/ChunkSize.php
create mode 100644 app/Jobs/Middleware/HandleHubspotRateLimit.php
create mode 100644 app/Mcp/Tools/GetMeTool.php
create mode 100644 database/migrations/2026_05_13_124153_create_mcp_feature_flag.php
create mode 100644 tests/Feature/Mcp/GetMeToolFeatureTest.php
create mode 100644 tests/Unit/Component/ES/ChunkSizeTest.php
create mode 100644 tests/Unit/Exceptions/RateLimitExceptionTest.php
create mode 100644 tests/Unit/Jobs/Middleware/HandleHubspotRateLimitTest.php
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (master) $ git pull
Already up to date.
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (master) $ co -b JY-20676-delete-report-related-objects
Switched to a new branch 'JY-20676-delete-report-related-objects'
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20676-delete-report-related-objects) $ csfix
docker exec -it docker_lamp_1 ./vendor/bin/php-cs-fixer fix --config=.php-cs-fixer.dist.php -v --using-cache=no --diff
PHP CS Fixer 3.87.1 Alexander by Fabien Potencier, Dariusz Ruminski and contributors.
PHP runtime: 8.3.30
Running 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!
Loaded config default from ".php-cs-fixer.dist.php".
5690/5690 [▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓] 100%
1) app/Console/Commands/JiminnyDebugCommand.php (statement_indentation, blank_line_before_statement)
---------- begin diff ----------
--- /home/jiminny/app/Console/Commands/JiminnyDebugCommand.php
+++ /home/jiminny/app/Console/Commands/JiminnyDebugCommand.php
@@ -23,6 +23,7 @@
if ($action === 'redis-set') {
$this->testRedisSet();
+
return;
}
@@ -45,7 +46,7 @@
$ttl = 60;
try {
-// $result = Redis::set($testKey, $testValue, 'EX', $ttl, 'NX');
+ // $result = Redis::set($testKey, $testValue, 'EX', $ttl, 'NX');
$result = Redis::set($testKey, $testValue, ['nx', 'ex' => $ttl]);
if ($result) {
----------- end diff -----------
Fixed 1 of 5690 files i...
|
58093
|
NULL
|
NULL
|
NULL
|
|
58096
|
NULL
|
0
|
2026-05-19T11:35:46.709258+00:00
|
/Users/lukas/.screenpipe/data/data/2026-05-19/1779 /Users/lukas/.screenpipe/data/data/2026-05-19/1779190546709_m2.jpg...
|
iTerm2
|
APP (docker)
|
1
|
NULL
|
monitor_2
|
NULL
|
NULL
|
NULL
|
NULL
|
Last login: Mon May 18 09:17:28 on ttys007
Poetry Last login: Mon May 18 09:17:28 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 (pipedrive-sdk-poc) $ co master
error: Your local changes to the following files would be overwritten by checkout:
PIPEDRIVE_V2_MIGRATION_TICKETS.md
Please commit your changes or stash them before you switch branches.
Aborting
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (pipedrive-sdk-poc) $ git pull
remote: Enumerating objects: 1047, done.
remote: Counting objects: 100% (832/832), done.
remote: Compressing objects: 100% (298/298), done.
remote: Total 1047 (delta 634), reused 596 (delta 534), pack-reused 215 (from 3)
Receiving objects: 100% (1047/1047), 353.16 KiB | 1.56 MiB/s, done.
Resolving deltas: 100% (687/687), completed with 107 local objects.
From github.com:jiminny/app
907c54896c..34656c53ed pipedrive-sdk-poc -> origin/pipedrive-sdk-poc
03325ec50f..4e7078fd8b JY-18091-upgrade-to-php-8-5 -> origin/JY-18091-upgrade-to-php-8-5
e7d231e163..bc6a3fce6b JY-20725-handle-HS-search-rate-limit -> origin/JY-20725-handle-HS-search-rate-limit
* [new branch] JY-20749-user-can-view-recorded-meetings -> origin/JY-20749-user-can-view-recorded-meetings
98ca281a04..e0351be069 JY-20808-low-priority-indexing-queue -> origin/JY-20808-low-priority-indexing-queue
569abb5149..3906a9238a JY-20835-mcp-enable-users-to-get-a-list-of-deals-and-their-details -> origin/JY-20835-mcp-enable-users-to-get-a-list-of-deals-and-their-details
ad6c2a86e8..50eb6afba9 JY-20846-mcp-enable-the-ai-to-know-details-about-the-user -> origin/JY-20846-mcp-enable-the-ai-to-know-details-about-the-user
* [new branch] JY-20893-chunk-control-per-update-target -> origin/JY-20893-chunk-control-per-update-target
31c62924a5..cb4ebf0c36 master -> origin/master
Updating 907c54896c..34656c53ed
Fast-forward
PIPEDRIVE_V2_MIGRATION_TICKETS.md | 52 ++++++++++++++++++++++++++++++++++++++++++++++++++++
1 file changed, 52 insertions(+)
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (pipedrive-sdk-poc) $ co master
M .env.local
M config/logging.php
Switched to branch 'master'
Your branch is behind 'origin/master' by 31 commits, and can be fast-forwarded.
(use "git pull" to update your local branch)
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (master) $ git pull
Updating 31c62924a5..cb4ebf0c36
Fast-forward
app/Component/ES/Processor/Traits/SelectEntityListTrait.php | 20 ------
app/Services/Calendar/CalendarActivityService.php | 46 +++++++++++++
app/Services/Calendar/Command/MapActivityData.php | 106 +++-------------------------
docs/mcp/explorer/explorer.html | 104 +++++++++++++++++++++++++---
docs/mcp/explorer/explorer.template.html | 102 ++++++++++++++++++++++++---
docs/mcp/tools-list.json | 373 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++-------
docs/mcp/tools.md | 117 +++++++++++++++++++++++--------
tests/Unit/Component/ES/AsyncUpdateElasticSearchTest.php | 16 +----
tests/Unit/Component/ES/Listeners/UpdateMultipleTargetsListenerTest.php | 10 ---
tests/Unit/Component/ES/Listeners/UpdateSingleTargetListenerTest.php | 6 --
tests/Unit/Component/ES/Processor/TargetEntitiesSelectorTest.php | 9 ---
tests/Unit/Component/ES/Processor/Traits/SelectEntityListTraitTest.php | 15 ++--
tests/Unit/Component/ES/UpdateProcessManagerTest.php | 2 -
tests/Unit/Services/Calendar/CalendarActivityServiceTest.php | 150 ++++++++++++++++++++++++++++++++++++++--
tests/Unit/Services/Calendar/Command/MapActivityDataTest.php | 78 ++-------------------
15 files changed, 832 insertions(+), 322 deletions(-)
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (master) $ co -b JY-20613-allow-owner-role-on-team-setup
Switched to a new branch 'JY-20613-allow-owner-role-on-team-setup'
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20613-allow-owner-role-on-team-setup) $ csfix
docker exec -it docker_lamp_1 ./vendor/bin/php-cs-fixer fix --config=.php-cs-fixer.dist.php -v --using-cache=no --diff
PHP CS Fixer 3.87.1 Alexander by Fabien Potencier, Dariusz Ruminski and contributors.
PHP runtime: 8.3.30
Running 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!
Loaded config default from ".php-cs-fixer.dist.php".
5682/5682 [▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓] 100%
Fixed 0 of 5682 files in 56.978 seconds, 67.00 MB memory used
What's next:
Try Docker Debug for seamless, persistent debugging tools in any container or image → docker debug docker_lamp_1
Learn more at [URL_WITH_CREDENTIALS] ~/jiminny/app (JY-20613-allow-owner-role-on-team-setup) $ csfix
docker exec -it docker_lamp_1 ./vendor/bin/php-cs-fixer fix --config=.php-cs-fixer.dist.php -v --using-cache=no --diff
PHP CS Fixer 3.87.1 Alexander by Fabien Potencier, Dariusz Ruminski and contributors.
PHP runtime: 8.3.30
Running 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!
Loaded config default from ".php-cs-fixer.dist.php".
5682/5682 [▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓] 100%
Fixed 0 of 5682 files in 49.910 seconds, 60.00 MB memory used
What's next:
Try Docker Debug for seamless, persistent debugging tools in any container or image → docker debug docker_lamp_1
Learn more at [URL_WITH_CREDENTIALS] ~/jiminny/app (JY-20613-allow-owner-role-on-team-setup) $ git pull
remote: Enumerating objects: 248, done.
remote: Counting objects: 100% (128/128), done.
remote: Compressing objects: 100% (23/23), done.
remote: Total 59 (delta 43), reused 44 (delta 33), pack-reused 0 (from 0)
Unpacking objects: 100% (59/59), 10.48 KiB | 228.00 KiB/s, done.
From github.com:jiminny/app
b7df560451..190239dfd4 JY-20613-allow-owner-role-on-team-setup -> origin/JY-20613-allow-owner-role-on-team-setup
e0351be069..d94a285ae7 JY-20808-low-priority-indexing-queue -> origin/JY-20808-low-priority-indexing-queue
* [new branch] JY-20920-fix-participant-matcher -> origin/JY-20920-fix-participant-matcher
cb4ebf0c36..90bca4e4b2 master -> origin/master
Merge made by the 'ort' strategy.
app/Component/ES/ChunkSize.php | 54 +++++++++++++++++++++++++++
app/Component/ES/Processor/DTOs/SelectionList.php | 4 +-
app/Component/ES/Processor/TargetEntitiesSelector.php | 19 ++++++----
app/Http/Middleware/McpTierMiddleware.php | 27 +++-----------
app/Mcp/Servers/JiminnyServer.php | 2 +
app/Mcp/Tools/GetMeTool.php | 157 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
app/Models/Feature/FeatureEnum.php | 1 +
database/migrations/2026_05_13_124153_create_mcp_feature_flag.php | 25 +++++++++++++
front-end/src/components/Settings/Kiosk/modals/EditTeamModal/EditTeamModal.vue | 52 ++++++++++++++++++--------
front-end/src/components/Settings/Kiosk/modals/EditTeamModal/__tests__/EditTeamModal.spec.js | 14 +++++++
tests/Feature/Mcp/GetMeToolFeatureTest.php | 140 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
tests/Feature/Mcp/ListCallsToolFeatureTest.php | 2 +-
tests/Feature/Mcp/McpTestHelpersTrait.php | 19 +++++++++-
tests/Unit/Component/ES/ChunkSizeTest.php | 50 +++++++++++++++++++++++++
tests/Unit/Component/ES/Processor/DTOs/SelectionListTest.php | 27 ++++++++++----
tests/Unit/Component/ES/Processor/TargetEntitiesSelectorTest.php | 39 +++++++++++---------
16 files changed, 557 insertions(+), 75 deletions(-)
create mode 100644 app/Component/ES/ChunkSize.php
create mode 100644 app/Mcp/Tools/GetMeTool.php
create mode 100644 database/migrations/2026_05_13_124153_create_mcp_feature_flag.php
create mode 100644 tests/Feature/Mcp/GetMeToolFeatureTest.php
create mode 100644 tests/Unit/Component/ES/ChunkSizeTest.php
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20613-allow-owner-role-on-team-setup) $ git push
Enumerating objects: 40, done.
Counting objects: 100% (34/34), done.
Delta compression using up to 8 threads
Compressing objects: 100% (18/18), done.
Writing objects: 100% (18/18), 1.58 KiB | 1.58 MiB/s, done.
Total 18 (delta 15), reused 0 (delta 0), pack-reused 0
remote: Resolving deltas: 100% (15/15), completed with 13 local objects.
To github.com:jiminny/app.git
190239dfd4..ec1b261264 JY-20613-allow-owner-role-on-team-setup -> JY-20613-allow-owner-role-on-team-setup
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20613-allow-owner-role-on-team-setup) $ gbr
* JY-20613-allow-owner-role-on-team-setup
pipedrive-sdk-poc
master
JY-20903-update_activity-stage-on-opportunity-change
JY-20904-fix-update-es-on-activity-command
JY-20891-improve-sms-text-relays
JY-20725-handle-HS-search-rate-limit
JY-20818-move-AJ-reports-to-separated-datadog-metric
JY-20773-fix-automated-reports-user-pilot-tracking
JY-20157-AJ-report-not-send-notification
JY-20508-notify-before-AJ-report-expiration
JY-20372-ai-reports-promotion-pages
JY-20352-sync-opportunities-without-a-local-owner-user-id-is-null
JY-20738-debug-AJ-tracking-UP
a
JY-18909-automated-reports-ask-jiminny
JY-20692-fix-integration-app-[API_KEY]
JY-20553-debug-crm-sync-delays
JY-20698-fix-SF-activity-types-on-new-playbook
JY-20543-AJ-report-tracking
JY-20384-handle-auto-sync-with-no-access-to-event-type
JY-20458-ask-jiminny-user-definitions
JY-19666-fix-import-contacts-account-association
JY-19666-HS-import-contacts-and-accounts-batch-job
JY-20458-Ask-Jiminny-Reports
JY-20200-batch-update-CRM-objects-Salesforce
JY-19666-HS-webhooks-add-contact-and-company
JY-20348-trigger-setup-DI-layout-on-team-creation
JY-20326-refactor-info-message-in-command
JY-20317-fix-auto-log-delay-issue-on-all-channels-disabled
JY-20312-remove-on-update-change-last-synced-at-crm-configurations
JY-20306-SF-skip-auto-sync-for-task-based-playbook
JY-20192-remove-deleted-team-from-saved-search-filters
JY-20197-import-opportunity-batch-job
JY-20293-enable-status-field-for-pipedrive-deals
JY-20191-remove-commands-interactive-prompts
JY-20118-change-default-sync-strategy
JY-20183-add-cache-on-auto-log-delay
JY-20197-add-import-opportunity-batch-job
20118-hs-opportunity-make-webhook-strategy-default
JY-20118-make-default-hs-opportunity-sync-strategy-webhook-based
JY-20196-handle-opportunity-without-note
JY-20118-improve-opportunity-import
JY-20189-handle-activity-search-on-deleted-groups
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20613-allow-owner-role-on-team-setup) $ co JY-20725-handle-HS-search-rate-limit
M .env.local
M config/logging.php
Switched to branch 'JY-20725-handle-HS-search-rate-limit'
Your branch is behind 'origin/JY-20725-handle-HS-search-rate-limit' by 439 commits, and can be fast-forwarded.
(use "git pull" to update your local branch)
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20725-handle-HS-search-rate-limit) $ git pull
Updating 0f3e438941..bc6a3fce6b
Fast-forward
.gitignore | 3 +-
.windsurfrules | 168 ++---
CLAUDE.md | 1 +
app/Component/ActivityAnalytics/Service/CalculateTalkTimeOffsetsFromTranscription.php | 24 +-
app/Component/AiActivityType/Services/AiActivityTypeEligibilityChecker.php | 28 +-
app/Component/AiAutomation/Actions/PrepareUpdateDtoAction.php | 32 +-
app/Component/AiAutomation/Services/CrmFillingEligibilityChecker.php | 47 ++
app/Component/AiAutomation/TestCrmAiPromptService.php | 14 +
app/Component/AiCallScoring/Services/AiCallScoringEligibilityChecker.php | 9 +
app/Component/ES/ElasticSearchDocumentPartialUpdater.php | 13 +-
app/Component/ES/ElasticSearchWorkerManager.php | 86 ---
app/Component/ES/Processor/Actions/LoadDocumentsAction.php | 80 +--
app/Component/ES/Processor/EntityQueryBuilder.php | 12 +-
app/Component/ES/Processor/TargetEntitiesSelector.php | 2 +-
app/Component/ES/Processor/Traits/SkipActivityTrait.php | 25 -
app/Component/ES/Repositories/EsResetActivityRepository.php | 11 +-
app/Component/ES/Worker/ActivityWorker.php | 73 --
app/Component/ES/Worker/EntityWorker.php | 44 --
app/Component/ES/Worker/WorkerAmount.php | 60 --
app/Component/ES/Worker/WorkerInterface.php | 15 -
app/Component/ElasticSearch/Contract/Searchable.php | 4 +
app/Component/Encoding/Job/AnalyzeTrackChannelsJob.php | 20 +-
app/Component/Encoding/Service/GenerateSpeechFromSilenceService.php | 85 ++-
app/Component/FFMpeg/Services/GetSpeechIntervalsService.php | 18 +-
app/Component/LanguageDetection/Services/FindSpeechTimeService.php | 22 +-
app/Component/Nudge/Job/ProcessOrganisationImmediateNudgesJob.php | 218 +++++-
app/Component/ParagraphBreaker/Services/TranscriptionParagraphsService.php | 4 +
app/Component/ParticipantSpeech/Services/ParticipantSpeechesCreator.php | 33 +
app/Component/ParticipantSpeech/Services/ParticipantSpeechesDeleter.php | 15 +
app/Component/ParticipantSpeech/Services/ParticipantSpeechesProvider.php | 51 +-
app/Component/ParticipantSpeech/Services/ParticipantSpeechesUploader.php | 36 +
app/Component/ProphetAi/Exceptions/InsufficientTranscriptException.php | 11 +
app/Component/Transcription/DTO/Http/Transcription/AssemblyAI/AssemblyAI/NoAssemblyIdException.php | 11 +
app/Component/Transcription/DTO/Http/Transcription/AssemblyAI/AssemblyAI/SuccessfulResponse.php | 6 +
app/Component/Transcription/DTO/Http/Transcription/TranscriptionIsNotCorrectFormatException.php | 11 +
app/Component/Transcription/Diarization/Services/GetNormalizedParticipantSpeechesService.php | 23 +-
app/Component/Transcription/Diarization/Source/MeetingBotSource.php | 16 +-
app/Component/Transcription/TranscriptionProcessor/TranscriptionProcessor.php | 3 +
app/Console/Commands/Activities/ActivityHardDeleteCommand.php | 4 +-
app/Console/Commands/Activities/Copy.php | 2 +
app/Console/Commands/Activities/SetupIntegration/TwilioSetS3RecordingCredentialsCommand.php | 119 ++++
app/Console/Commands/Activities/UpdateActivityElasticSearchDocumentCommand.php | 10 +-
app/Console/Commands/Crm/BackfillOpportunityUserFromAccountCommand.php | 126 ++++
app/Console/Commands/Elasticsearch/AsyncUpdateEsActivities.php | 19 -
app/Console/Commands/Elasticsearch/AsyncUpdateEsEntities.php | 50 +-
app/Console/Commands/Elasticsearch/ResetAsyncElasticSearchCommand.php | 30 +-
app/Console/Commands/GeckoExport/GeckoExportParticipantSpeechesCommand.php | 14 +-
app/Console/Commands/IssueMcpTokenCommand.php | 84 +++
app/Console/Commands/JiminnyDebugCommand.php | 7 +-
app/Console/Commands/Tracks/CleanupActivityTracksCommand.php | 2 +-
app/Console/Kernel.php | 6 +-
app/Contracts/Services/Calendar/CalendarTrait.php | 80 ++-
app/Events/AutomatedReports/AutomatedReportGenerated.php | 3 +
app/Http/Controllers/API/AiCallScoring/AiScorecardController.php | 7 +-
app/Http/Controllers/API/TeamAiAutomationController.php | 8 +
app/Http/Controllers/CustomerApi/CustomerApiController.php | 4 +-
app/Http/Controllers/Kiosk/ActivityController.php | 58 +-
app/Http/Controllers/Settings/PlaybookController.php | 15 +-
app/Http/Kernel.php | 23 +
app/Http/Middleware/McpAuditMiddleware.php | 156 ++++
app/Http/Middleware/McpTierMiddleware.php | 54 ++
app/Http/Requests/API/V2/ZapierUploadActivityRequest.php | 28 +-
app/Jobs/Activity/Import/ImportTwilioVideoSpeechesJob.php | 25 +-
app/Jobs/Activity/Import/IsActivityReadyForProcessingJob.php | 10 +-
app/Jobs/Calendar/SetupCalendarSync.php | 21 +-
app/Jobs/ImportRemoteTrackJob.php | 96 ++-
app/Jobs/Mailbox/EmailTextRelay.php | 15 +-
app/Mcp/Contracts/McpCallRepositoryInterface.php | 30 +
app/Mcp/DTO/ListCallsFilters.php | 29 +
app/Mcp/Errors/McpError.php | 123 ++++
app/Mcp/Repositories/McpActivityHydrator.php | 145 ++++
app/Mcp/Repositories/McpCallRepository.php | 84 +++
app/Mcp/Repositories/McpElasticCallRepository.php | 171 +++++
app/Mcp/Servers/JiminnyServer.php | 38 +
app/Mcp/Tools/ListCallsTool.php | 205 ++++++
app/Models/Activity.php | 10 +-
app/Models/Activity/Transcription.php | 17 +-
app/Models/ElasticSearch/OpportunityElasticSearchTrait.php | 5 +
app/Models/Participant.php | 1 +
app/Providers/AppServiceProvider.php | 22 +
app/Repositories/Crm/ContactRepository.php | 69 +-
app/Repositories/ParticipantSpeechRepository.php | 13 +-
app/Services/Activity/ParticipantsService.php | 19 +-
app/Services/Activity/Twilio/S3RecordingCredentialsService.php | 82 +++
app/Services/ActivityService.php | 21 +-
app/Services/Calendar/CalendarActivityService.php | 46 ++
app/Services/Calendar/Command/ImportParticipants.php | 1 +
app/Services/Calendar/Command/MapActivityData.php | 106 +--
app/Services/Calendar/GoogleCalendarService.php | 12 +-
app/Services/Crm/Close/Processor/OpportunityProcessor.php | 2 +-
app/Services/Crm/Close/Service.php | 22 +-
app/Services/Crm/Copper/Service.php | 12 +-
app/Services/Crm/Hubspot/Service.php | 154 +++-
app/Services/Crm/Hubspot/ServiceTraits/OpportunitySyncTrait.php | 88 ++-
app/Services/Crm/IntegrationApp/ServiceTraits/SyncCrmEntitiesTrait.php | 22 +-
app/Services/Crm/Pipedrive/Service.php | 17 +-
app/Services/Crm/Salesforce/Service.php | 42 +-
app/Services/Mail/Office/EmailApiClient.php | 129 +---
app/Services/RecallAI/Commands/ScheduleBotCommand.php | 39 +-
app/Services/RecallAI/RecallAIService.php | 22 +-
composer.json | 3 +-
composer.lock | 87 ++-
config/mcp.php | 23 +
database/migrations/2026_04_30_120000_create_mcp_audit_log_table.php | 36 +
docs/mcp/explorer/explorer.html | 697 ++++++++++++++++++
docs/mcp/explorer/explorer.template.html | 697 ++++++++++++++++++
docs/mcp/explorer/generate.js | 215 ++++++
docs/mcp/explorer/tool-explorer-meta.json | 11 +
docs/mcp/tools-list.json | 2536 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
docs/mcp/tools.md | 621 ++++++++++++++++
front-end/package.json | 4 +-
front-end/src/components/Settings/OrgSettings/AiAutomation/CrmFilling/TemplateFieldForm.vue | 28 +-
front-end/src/components/Settings/OrgSettings/Playbooks/AddEditPlaybook.vue | 10 +
front-end/src/components/playback/comments/ActivityComment.less | 10 +-
front-end/src/components/shared/PromptTester/PromptTester.vue | 12 +-
front-end/src/components/shared/__tests__/PromptTester.spec.js | 35 +
front-end/src/components/shared/modals/EntityPickerModal/__tests__/useEntitiesCache.spec.ts | 37 +
front-end/src/components/shared/modals/EntityPickerModal/useEntitiesCache.ts | 9 +
front-end/yarn.lock | 16 +-
phpstan-baseline.neon | 50 --
routes/api.php | 11 +
sonar-project.properties | 91 ++-
tests/Feature/Component/Nudge/ProcessOrganisationImmediateNudgesJobTest.php | 534 ++++++++++++++
tests/Feature/Jobs/ImportRemoteTrackJobTest.php | 283 +++++++-
tests/Feature/Mcp/IssueMcpTokenCommandTest.php | 53 ++
tests/Feature/Mcp/ListCallsToolElasticFeatureTest.php | 155 ++++
tests/Feature/Mcp/ListCallsToolFeatureTest.php | 352 ++++++++++
tests/Feature/Mcp/McpTestHelpersTrait.php | 77 ++
tests/Feature/Services/Team/TeamDeleteHandlers/Retention/RetentionRepositoryHandlerTest.php | 1 +
tests/Stubs/SentryStub.php | 18 +
tests/Unit/Component/ActivityAnalytics/Service/CalculateTalkTimeOffsetFromTranscriptionTest.php | 28 +-
tests/Unit/Component/AiActivityType/Services/AiActivityTypeEligibilityCheckerTest.php | 103 ++-
tests/Unit/Component/AiAutomation/Actions/PrepareUpdateDtoActionTest.php | 91 +++
tests/Unit/Component/AiAutomation/Services/CrmFillingEligibilityCheckerTest.php | 124 ++++
tests/Unit/Component/AiAutomation/TestCrmAiPromptServiceTest.php | 67 +-
tests/Unit/Component/AiCallScoring/Services/AiCallScoringEligibilityCheckerTest.php | 55 ++
tests/Unit/Component/ES/ElasticSearchWorkerManagerTest.php | 135 ----
tests/Unit/Component/ES/Processor/Actions/LoadDocumentsActionTest.php | 220 ++++++
tests/Unit/Component/ES/Processor/EntityQueryBuilderTest.php | 21 +-
tests/Unit/Component/ES/Processor/Traits/SkipActivityTraitTest.php | 51 --
tests/Unit/Component/ES/Worker/ActivityWorkerTest.php | 174 -----
tests/Unit/Component/ES/Worker/EntityWorkerTest.php | 97 ---
tests/Unit/Component/ES/Worker/WorkerAmountTest.php | 116 ---
tests/Unit/Component/Encoding/Job/AnalyzeTrackChannelsJobTest.php | 52 +-
tests/Unit/Component/Encoding/Service/GenerateSpeechFromSilenceServiceTest.php | 171 ++---
tests/Unit/Component/FFMpeg/Services/GetSpeechIntervalsTest.php | 36 +-
tests/Unit/Component/LanguageDetection/Services/FindSpeechTimeServiceTest.php | 20 +-
tests/Unit/Component/MobileSettings/MobileSettingsControllerTest.php | 5 +-
tests/Unit/Component/ParticipantSpeech/Services/ParticipantSpeechesCreatorTest.php | 75 ++
tests/Unit/Component/ParticipantSpeech/Services/ParticipantSpeechesDeleterTest.php | 63 ++
tests/Unit/Component/ParticipantSpeech/Services/ParticipantSpeechesProviderTest.php | 134 ++++
tests/Unit/Component/ParticipantSpeech/Services/ParticipantSpeechesUploaderTest.php | 57 ++
tests/Unit/Component/Transcription/Diarization/Services/GetNormalizedParticipantSpeechesServiceTest.php | 51 +-
tests/Unit/Component/Transcription/Diarization/Source/MeetingBotSourceTest.php | 29 +-
tests/Unit/Contracts/Services/Calendar/CalendarTraitTest.php | 58 +-
tests/Unit/Http/Controllers/Kiosk/ActivityControllerTest.php | 159 +++++
tests/Unit/Jobs/Activity/Import/ImportTwilioVideoSpeechesJobTest.php | 22 +-
tests/Unit/Jobs/Activity/Import/IsActivityReadyForProcessingJobTest.php | 26 +-
tests/Unit/Jobs/Calendar/SetupCalendarSyncTest.php | 25 -
tests/Unit/Services/Activity/ParticipantsServiceTest.php | 12 +-
tests/Unit/Services/Activity/Twilio/S3RecordingCredentialsServiceTest.php | 180 +++++
tests/Unit/Services/ActivityServiceTest.php | 132 ++++
tests/Unit/Services/Calendar/CalendarActivityServiceTest.php | 150 +++-
tests/Unit/Services/Calendar/Command/ImportParticipantsTest.php | 6 +-
tests/Unit/Services/Calendar/Command/MapActivityDataTest.php | 78 +-
tests/Unit/Services/Calendar/GoogleCalendarServiceTest.php | 116 +++
tests/Unit/Services/Crm/Close/ServiceTest.php | 165 +++++
tests/Unit/Services/Crm/Hubspot/ServiceTest.php | 272 ++++++-
tests/Unit/Services/Crm/Hubspot/ServiceTraits/OpportunitySyncTest.php | 25 +-
tests/Unit/Services/Crm/Hubspot/ServiceTraits/OpportunitySyncTraitMatchActivitiesTest.php | 3 +-
tests/Unit/Services/Crm/IntegrationApp/ServiceTraits/SyncCrmEntitiesTraitOpportunitiesTest.php | 40 ++
tests/Unit/Services/Crm/Pipedrive/ImportOpportunityMatchActivitiesTest.php | 2 +
tests/Unit/Services/Crm/Salesforce/ServiceTest.php | 139 ++++
tests/Unit/Services/Mail/Office/EmailApiClientTest.php | 195 ++---
tests/Unit/Services/RecallAI/RecallAIServiceTest.php | 24 +-
175 files changed, 12562 insertions(+), 2162 deletions(-)
create mode 120000 CLAUDE.md
create mode 100644 app/Component/AiAutomation/Services/CrmFillingEligibilityChecker.php
delete mode 100644 app/Component/ES/ElasticSearchWorkerManager.php
delete mode 100644 app/Component/ES/Processor/Traits/SkipActivityTrait.php
delete mode 100644 app/Component/ES/Worker/ActivityWorker.php
delete mode 100644 app/Component/ES/Worker/EntityWorker.php
delete mode 100644 app/Component/ES/Worker/WorkerAmount.php
delete mode 100644 app/Component/ES/Worker/WorkerInterface.php
create mode 100644 app/Component/ProphetAi/Exceptions/InsufficientTranscriptException.php
create mode 100644 app/Component/Transcription/DTO/Http/Transcription/AssemblyAI/AssemblyAI/NoAssemblyIdException.php
create mode 100644 app/Component/Transcription/DTO/Http/Transcription/TranscriptionIsNotCorrectFormatException.php
create mode 100644 app/Console/Commands/Activities/SetupIntegration/TwilioSetS3RecordingCredentialsCommand.php
create mode 100644 app/Console/Commands/Crm/BackfillOpportunityUserFromAccountCommand.php
delete mode 100644 app/Console/Commands/Elasticsearch/AsyncUpdateEsActivities.php
create mode 100644 app/Console/Commands/IssueMcpTokenCommand.php
create mode 100644 app/Http/Middleware/McpAuditMiddleware.php
create mode 100644 app/Http/Middleware/McpTierMiddleware.php
create mode 100644 app/Mcp/Contracts/McpCallRepositoryInterface.php
create mode 100644 app/Mcp/DTO/ListCallsFilters.php
create mode 100644 app/Mcp/Errors/McpError.php
create mode 100644 app/Mcp/Repositories/McpActivityHydrator.php
create mode 100644 app/Mcp/Repositories/McpCallRepository.php
create mode 100644 app/Mcp/Repositories/McpElasticCallRepository.php
create mode 100644 app/Mcp/Servers/JiminnyServer.php
create mode 100644 app/Mcp/Tools/ListCallsTool.php
create mode 100644 app/Services/Activity/Twilio/S3RecordingCredentialsService.php
create mode 100644 config/mcp.php
create mode 100644 database/migrations/2026_04_30_120000_create_mcp_audit_log_table.php
create mode 100644 docs/mcp/explorer/explorer.html
create mode 100644 docs/mcp/explorer/explorer.template.html
create mode 100644 docs/mcp/explorer/generate.js
create mode 100644 docs/mcp/explorer/tool-explorer-meta.json
create mode 100644 docs/mcp/tools-list.json
create mode 100644 docs/mcp/tools.md
create mode 100644 front-end/src/components/shared/modals/EntityPickerModal/__tests__/useEntitiesCache.spec.ts
create mode 100644 tests/Feature/Component/Nudge/ProcessOrganisationImmediateNudgesJobTest.php
create mode 100644 tests/Feature/Mcp/IssueMcpTokenCommandTest.php
create mode 100644 tests/Feature/Mcp/ListCallsToolElasticFeatureTest.php
create mode 100644 tests/Feature/Mcp/ListCallsToolFeatureTest.php
create mode 100644 tests/Feature/Mcp/McpTestHelpersTrait.php
create mode 100644 tests/Stubs/SentryStub.php
create mode 100644 tests/Unit/Component/AiAutomation/Services/CrmFillingEligibilityCheckerTest.php
delete mode 100644 tests/Unit/Component/ES/ElasticSearchWorkerManagerTest.php
create mode 100644 tests/Unit/Component/ES/Processor/Actions/LoadDocumentsActionTest.php
delete mode 100644 tests/Unit/Component/ES/Processor/Traits/SkipActivityTraitTest.php
delete mode 100644 tests/Unit/Component/ES/Worker/ActivityWorkerTest.php
delete mode 100644 tests/Unit/Component/ES/Worker/EntityWorkerTest.php
delete mode 100644 tests/Unit/Component/ES/Worker/WorkerAmountTest.php
create mode 100644 tests/Unit/Component/ParticipantSpeech/Services/ParticipantSpeechesCreatorTest.php
create mode 100644 tests/Unit/Http/Controllers/Kiosk/ActivityControllerTest.php
create mode 100644 tests/Unit/Services/Activity/Twilio/S3RecordingCredentialsServiceTest.php
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20725-handle-HS-search-rate-limit) $ git status
On branch master
Your branch is behind 'origin/master' by 114 commits, and can be fast-forwarded.
(use "git pull" to update your local branch)
Changes not staged for commit:
(use "git add <file>..." to update what will be committed)
(use "git restore <file>..." to discard changes in working directory)
modified: .env.local
modified: app/Component/SCIM/Constants.php
modified: app/Component/SCIM/ScimProvisioning.php
modified: app/Component/Twilio/Conference/ConferenceManager/SoftPhoneManager.php
modified: app/Console/Commands/JiminnyDebugCommand.php
modified: app/DTO/SCIM/AAD/Request/CoreUserRequest.php
modified: app/DTO/SCIM/AAD/Response/CoreUser.php
modified: app/Services/Telephony/TextMessagingService.php
modified: config/logging.php
Untracked files:
(use "git add <file>..." to include in what will be committed)
.env.nikilocal
.env.other
WEBHOOK_FILTERING_IMPLEMENTATION.md
app/Component/SCIM/Mutators/Attributes/User/RoleAttr.php
app/Console/Commands/Crm/Hubspot/SimulateWebhooksCommand.php
app/Console/Commands/Reports/CreateMockAskJiminnyReportResultCommand.php
app/Rules/ListenerRoleCannotHaveAdminOrManagerPermissionRule.php
ids.txt
public/favicon.ico
raw_sql_query.sql
tests/Unit/Component/SCIM/Mutators/Attributes/User/RoleAttrTest.php
tests/Unit/Policies/CanAccessAiReportsTest.php
tests/Unit/Rules/ListenerRoleCannotHaveAdminOrManagerPermissionRuleTest.php
no changes added to commit (use "git add" and/or "git commit -a")
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (master) $ git pull
remote: Enumerating objects: 306, done.
remote: Counting objects: 100% (299/299), done.
remote: Compressing objects: 100% (183/183), done.
remote: Total 306 (delta 213), reused 171 (delta 116), pack-reused 7 (from 1)
Receiving objects: 100% (306/306), 80.12 KiB | 1000.00 KiB/s, done.
Resolving deltas: 100% (213/213), completed with 53 local objects.
From github.com:jiminny/app
90bca4e4b2..5604af40cf master -> origin/master
4e7078fd8b..0b8343d179 JY-18091-upgrade-to-php-8-5 -> origin/JY-18091-upgrade-to-php-8-5
098eeaa087..d5a447e492 JY-20613-allow-owner-role-on-team-setup -> origin/JY-20613-allow-owner-role-on-team-setup
c3a76ace91..af65249d0f JY-20749-user-can-view-recorded-meetings -> origin/JY-20749-user-can-view-recorded-meetings
d94a285ae7..7ce96cb5fe JY-20808-low-priority-indexing-queue -> origin/JY-20808-low-priority-indexing-queue
* [new branch] JY-20842-remove-partial-updater -> origin/JY-20842-remove-partial-updater
* [new branch] JY-20920-fix-participant-flip -> origin/JY-20920-fix-participant-flip
* [new branch] secfix/npm-20260519 -> origin/secfix/npm-20260519
Updating cb4ebf0c36..5604af40cf
Fast-forward
app/Component/ES/ChunkSize.php | 54 +++++++++++++++++++
app/Component/ES/Processor/DTOs/SelectionList.php | 4 +-
app/Component/ES/Processor/TargetEntitiesSelector.php | 19 ++++---
app/Component/MeetingBot/Service/ParticipantMatcher.php | 46 ++++++++++++----
app/Exceptions/RateLimitException.php | 19 ++++++-
app/Http/Middleware/McpTierMiddleware.php | 27 ++--------
app/Jobs/Crm/MatchActivityCrmData.php | 47 ++++++++++++----
app/Jobs/Middleware/HandleHubspotRateLimit.php | 42 +++++++++++++++
app/Mcp/Servers/JiminnyServer.php | 2 +
app/Mcp/Tools/GetMeTool.php | 157 +++++++++++++++++++++++++++++++++++++++++++++++++++++
app/Models/Feature/FeatureEnum.php | 1 +
app/Services/Activity/HubSpot/ProviderResolver.php | 4 +-
app/Services/Activity/HubSpot/ProviderResolverInterface.php | 2 +-
app/Services/Activity/HubSpot/Providers/Provider.php | 2 +-
app/Services/Activity/HubSpot/Providers/ProviderKixie.php | 2 +-
app/Services/Activity/HubSpot/Providers/ProviderOrum.php | 2 +-
app/Services/Activity/HubSpot/Providers/ProviderTwilio.php | 2 +-
app/Services/Activity/HubSpot/Providers/ProviderTwilioFlex.php | 5 +-
app/Services/Activity/HubSpot/Service.php | 97 +++++++++++++++++++++++++++------
app/Services/Crm/Hubspot/Client.php | 132 +++++++++++++++++++++++++++++++++++++++++++++
app/Services/Crm/Hubspot/HubspotClientInterface.php | 15 ++++++
app/Services/Crm/Hubspot/Pagination/HubspotPaginationService.php | 21 ++++----
app/Services/Crm/Hubspot/Pagination/PaginationState.php | 2 +-
database/migrations/2026_05_13_124153_create_mcp_feature_flag.php | 25 +++++++++
tests/Feature/Mcp/GetMeToolFeatureTest.php | 140 +++++++++++++++++++++++++++++++++++++++++++++++
tests/Feature/Mcp/ListCallsToolFeatureTest.php | 2 +-
tests/Feature/Mcp/McpTestHelpersTrait.php | 19 ++++++-
tests/Unit/Component/ES/ChunkSizeTest.php | 50 +++++++++++++++++
tests/Unit/Component/ES/Processor/DTOs/SelectionListTest.php | 27 +++++++---
tests/Unit/Component/ES/Processor/TargetEntitiesSelectorTest.php | 39 ++++++++------
tests/Unit/Component/MeetingBot/Service/ParticipantMatcherTest.php | 68 ++++++++++++++++++++++-
tests/Unit/Exceptions/RateLimitExceptionTest.php | 56 +++++++++++++++++++
tests/Unit/Jobs/Crm/MatchActivityCrmDataTest.php | 8 +--
tests/Unit/Jobs/Middleware/HandleHubspotRateLimitTest.php | 151 +++++++++++++++++++++++++++++++++++++++++++++++++++
tests/Unit/Services/Activity/HubSpot/ServiceTest.php | 109 +++++++++++++++++++++++++++++++++++++
tests/Unit/Services/Crm/Hubspot/ClientTest.php | 250 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
tests/Unit/Services/Crm/Hubspot/Pagination/HubspotPaginationServiceTest.php | 283 +++++++++++++++++++++---------------------------------------------------------------------------
37 files changed, 1587 insertions(+), 344 deletions(-)
create mode 100644 app/Component/ES/ChunkSize.php
create mode 100644 app/Jobs/Middleware/HandleHubspotRateLimit.php
create mode 100644 app/Mcp/Tools/GetMeTool.php
create mode 100644 database/migrations/2026_05_13_124153_create_mcp_feature_flag.php
create mode 100644 tests/Feature/Mcp/GetMeToolFeatureTest.php
create mode 100644 tests/Unit/Component/ES/ChunkSizeTest.php
create mode 100644 tests/Unit/Exceptions/RateLimitExceptionTest.php
create mode 100644 tests/Unit/Jobs/Middleware/HandleHubspotRateLimitTest.php
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (master) $ git pull
Already up to date.
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (master) $ co -b JY-20676-delete-report-related-objects
Switched to a new branch 'JY-20676-delete-report-related-objects'
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20676-delete-report-related-objects) $ csfix
docker exec -it docker_lamp_1 ./vendor/bin/php-cs-fixer fix --config=.php-cs-fixer.dist.php -v --using-cache=no --diff
PHP CS Fixer 3.87.1 Alexander by Fabien Potencier, Dariusz Ruminski and contributors.
PHP runtime: 8.3.30
Running 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!
Loaded config default from ".php-cs-fixer.dist.php".
5690/5690 [▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓] 100%
1) app/Console/Commands/JiminnyDebugCommand.php (statement_indentation, blank_line_before_statement)
---------- begin diff ----------
--- /home/jiminny/app/Console/Commands/JiminnyDebugCommand.php
+++ /home/jiminny/app/Console/Commands/JiminnyDebugCommand.php
@@ -23,6 +23,7 @@
if ($action === 'redis-set') {
$this->testRedisSet();
+
return;
}
@@ -45,7 +46,7 @@
$ttl = 60;
try {
-// $result = Redis::set($testKey, $testValue, 'EX', $ttl, 'NX');
+ // $result = Redis::set($testKey, $testValue, 'EX', $ttl, 'NX');
$result = Redis::set($testKey, $testValue, ['nx', 'ex' => $ttl]);
if ($result) {
----------- end diff -----------
Fixed 1 of 5690 files i...
|
[{"role":"AXTextArea","text [{"role":"AXTextArea","text":"Last login: Mon May 18 09:17:28 on ttys007\n\nPoetry could not find a pyproject.toml file in /Users/lukas/jiminny/app or its parents\n\nPoetry could not find a pyproject.toml file in /Users/lukas/jiminny/app or its parents\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (pipedrive-sdk-poc) $ co master\nerror: Your local changes to the following files would be overwritten by checkout:\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tPIPEDRIVE_V2_MIGRATION_TICKETS.md\nPlease commit your changes or stash them before you switch branches.\nAborting\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (pipedrive-sdk-poc) $ git pull\nremote: Enumerating objects: 1047, done.\nremote: Counting objects: 100% (832/832), done.\nremote: Compressing objects: 100% (298/298), done.\nremote: Total 1047 (delta 634), reused 596 (delta 534), pack-reused 215 (from 3)\nReceiving objects: 100% (1047/1047), 353.16 KiB | 1.56 MiB/s, done.\nResolving deltas: 100% (687/687), completed with 107 local objects.\nFrom github.com:jiminny/app\n 907c54896c..34656c53ed pipedrive-sdk-poc -> origin/pipedrive-sdk-poc\n 03325ec50f..4e7078fd8b JY-18091-upgrade-to-php-8-5 -> origin/JY-18091-upgrade-to-php-8-5\n e7d231e163..bc6a3fce6b JY-20725-handle-HS-search-rate-limit -> origin/JY-20725-handle-HS-search-rate-limit\n * [new branch] JY-20749-user-can-view-recorded-meetings -> origin/JY-20749-user-can-view-recorded-meetings\n 98ca281a04..e0351be069 JY-20808-low-priority-indexing-queue -> origin/JY-20808-low-priority-indexing-queue\n 569abb5149..3906a9238a JY-20835-mcp-enable-users-to-get-a-list-of-deals-and-their-details -> origin/JY-20835-mcp-enable-users-to-get-a-list-of-deals-and-their-details\n ad6c2a86e8..50eb6afba9 JY-20846-mcp-enable-the-ai-to-know-details-about-the-user -> origin/JY-20846-mcp-enable-the-ai-to-know-details-about-the-user\n * [new branch] JY-20893-chunk-control-per-update-target -> origin/JY-20893-chunk-control-per-update-target\n 31c62924a5..cb4ebf0c36 master -> origin/master\nUpdating 907c54896c..34656c53ed\nFast-forward\n PIPEDRIVE_V2_MIGRATION_TICKETS.md | 52 ++++++++++++++++++++++++++++++++++++++++++++++++++++\n 1 file changed, 52 insertions(+)\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (pipedrive-sdk-poc) $ co master\nM\u0000\u0000\u0000\u0000\u0000\u0000\t.env.local\nM\u0000\u0000\u0000\u0000\u0000\u0000\tconfig/logging.php\nSwitched to branch 'master'\nYour branch is behind 'origin/master' by 31 commits, and can be fast-forwarded.\n (use \"git pull\" to update your local branch)\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (master) $ git pull\nUpdating 31c62924a5..cb4ebf0c36\nFast-forward\n app/Component/ES/Processor/Traits/SelectEntityListTrait.php | 20 ------\n app/Services/Calendar/CalendarActivityService.php | 46 +++++++++++++\n app/Services/Calendar/Command/MapActivityData.php | 106 +++-------------------------\n docs/mcp/explorer/explorer.html | 104 +++++++++++++++++++++++++---\n docs/mcp/explorer/explorer.template.html | 102 ++++++++++++++++++++++++---\n docs/mcp/tools-list.json | 373 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++-------\n docs/mcp/tools.md | 117 +++++++++++++++++++++++--------\n tests/Unit/Component/ES/AsyncUpdateElasticSearchTest.php | 16 +----\n tests/Unit/Component/ES/Listeners/UpdateMultipleTargetsListenerTest.php | 10 ---\n tests/Unit/Component/ES/Listeners/UpdateSingleTargetListenerTest.php | 6 --\n tests/Unit/Component/ES/Processor/TargetEntitiesSelectorTest.php | 9 ---\n tests/Unit/Component/ES/Processor/Traits/SelectEntityListTraitTest.php | 15 ++--\n tests/Unit/Component/ES/UpdateProcessManagerTest.php | 2 -\n tests/Unit/Services/Calendar/CalendarActivityServiceTest.php | 150 ++++++++++++++++++++++++++++++++++++++--\n tests/Unit/Services/Calendar/Command/MapActivityDataTest.php | 78 ++-------------------\n 15 files changed, 832 insertions(+), 322 deletions(-)\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (master) $ co -b JY-20613-allow-owner-role-on-team-setup\nSwitched to a new branch 'JY-20613-allow-owner-role-on-team-setup'\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20613-allow-owner-role-on-team-setup) $ csfix\ndocker exec -it docker_lamp_1 ./vendor/bin/php-cs-fixer fix --config=.php-cs-fixer.dist.php -v --using-cache=no --diff \nPHP CS Fixer 3.87.1 Alexander by Fabien Potencier, Dariusz Ruminski and contributors.\nPHP runtime: 8.3.30\nRunning analysis on 7 cores with 10 files per process.\nParallel runner is an experimental feature and may be unstable, use it at your own risk. Feedback highly appreciated!\nLoaded config default from \".php-cs-fixer.dist.php\".\n 5682/5682 [▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓] 100%\n\n\nFixed 0 of 5682 files in 56.978 seconds, 67.00 MB memory used\n\nWhat's next:\n Try Docker Debug for seamless, persistent debugging tools in any container or image → docker debug docker_lamp_1\n Learn more at https://docs.docker.com/go/debug-cli/\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20613-allow-owner-role-on-team-setup) $ ;xd\ndocker exec -it docker_lamp_1 bash -c \"mv /usr/local/etc/php/conf.d/xdebug.ini ~/xdebug.ini\"\n\nWhat's next:\n Try Docker Debug for seamless, persistent debugging tools in any container or image → docker debug docker_lamp_1\n Learn more at https://docs.docker.com/go/debug-cli/\ndocker exec -it docker_lamp_1 supervisorctl restart all\njiminny-worker-processing-2:jiminny-worker-processing-2_00: stopped\njiminny-worker-processing-3:jiminny-worker-processing-3_00: stopped\njiminny-worker-processing-4:jiminny-worker-processing-4_00: stopped\njiminny-worker-processing-5:jiminny-worker-processing-5_00: stopped\njiminny-worker-processing-delayed:jiminny-worker-processing-delayed_00: stopped\nworker-analytics:worker-analytics_00: stopped\nworker-crm-update:worker-crm-update_00: stopped\nworker-download:worker-download_00: stopped\nworker-nudges:worker-nudges_00: stopped\nartisan-schedule:artisan-schedule_00: stopped\nworker-emails:worker-emails_00: stopped\nworker-calendar:worker-calendar_00: stopped\nworker:worker_00: stopped\nworker-conferences:worker-conferences_00: stopped\nworker-crm-sync:worker-crm-sync_00: stopped\njiminny-worker-processing-1:jiminny-worker-processing-1_00: stopped\nworker-audio:worker-audio_00: stopped\nworker-es-update:worker-es-update_00: stopped\nartisan-schedule:artisan-schedule_00: started\njiminny-worker-processing-1:jiminny-worker-processing-1_00: started\njiminny-worker-processing-2:jiminny-worker-processing-2_00: started\njiminny-worker-processing-3:jiminny-worker-processing-3_00: started\njiminny-worker-processing-4:jiminny-worker-processing-4_00: started\njiminny-worker-processing-5:jiminny-worker-processing-5_00: started\njiminny-worker-processing-delayed:jiminny-worker-processing-delayed_00: started\nworker:worker_00: started\nworker-analytics:worker-analytics_00: started\nworker-audio:worker-audio_00: started\nworker-calendar:worker-calendar_00: started\nworker-conferences:worker-conferences_00: started\nworker-crm-sync:worker-crm-sync_00: started\nworker-crm-update:worker-crm-update_00: started\nworker-download:worker-download_00: started\nworker-emails:worker-emails_00: started\nworker-es-update:worker-es-update_00: started\nworker-nudges:worker-nudges_00: started\n\nWhat's next:\n Try Docker Debug for seamless, persistent debugging tools in any container or image → docker debug docker_lamp_1\n Learn more at https://docs.docker.com/go/debug-cli/\ndocker exec -it docker_lamp_1 php -v\nPHP 8.3.30 (cli) (built: Mar 16 2026 22:32:32) (NTS)\nCopyright (c) The PHP Group\nZend Engine v4.3.30, Copyright (c) Zend Technologies\n with Zend OPcache v8.3.30, Copyright (c), by Zend Technologies\n\nWhat's next:\n Try Docker Debug for seamless, persistent debugging tools in any container or image → docker debug docker_lamp_1\n Learn more at https://docs.docker.com/go/debug-cli/\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20613-allow-owner-role-on-team-setup) $ csfix\ndocker exec -it docker_lamp_1 ./vendor/bin/php-cs-fixer fix --config=.php-cs-fixer.dist.php -v --using-cache=no --diff \nPHP CS Fixer 3.87.1 Alexander by Fabien Potencier, Dariusz Ruminski and contributors.\nPHP runtime: 8.3.30\nRunning analysis on 7 cores with 10 files per process.\nParallel runner is an experimental feature and may be unstable, use it at your own risk. Feedback highly appreciated!\nLoaded config default from \".php-cs-fixer.dist.php\".\n 5682/5682 [▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓] 100%\n\n\nFixed 0 of 5682 files in 49.910 seconds, 60.00 MB memory used\n\nWhat's next:\n Try Docker Debug for seamless, persistent debugging tools in any container or image → docker debug docker_lamp_1\n Learn more at https://docs.docker.com/go/debug-cli/\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20613-allow-owner-role-on-team-setup) $ git status\nOn branch JY-20613-allow-owner-role-on-team-setup\nYour branch is ahead of 'origin/JY-20613-allow-owner-role-on-team-setup' by 1 commit.\n (use \"git push\" to publish your local commits)\n\nChanges not staged for commit:\n (use \"git add <file>...\" to update what will be committed)\n (use \"git restore <file>...\" to discard changes in working directory)\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tmodified: .env.local\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tmodified: config/logging.php\n\nUntracked files:\n (use \"git add <file>...\" to include in what will be committed)\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\t.env.nikilocal\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\t.env.other\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tWEBHOOK_FILTERING_IMPLEMENTATION.md\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tapp/Console/Commands/Crm/Hubspot/SimulateWebhooksCommand.php\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tapp/Console/Commands/Reports/CreateMockAskJiminnyReportResultCommand.php\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tids.txt\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tpublic/favicon.ico\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\traw_sql_query.sql\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\ttests/Unit/Policies/CanAccessAiReportsTest.php\n\nno changes added to commit (use \"git add\" and/or \"git commit -a\")\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20613-allow-owner-role-on-team-setup) $ git pull\nremote: Enumerating objects: 248, done.\nremote: Counting objects: 100% (128/128), done.\nremote: Compressing objects: 100% (23/23), done.\nremote: Total 59 (delta 43), reused 44 (delta 33), pack-reused 0 (from 0)\nUnpacking objects: 100% (59/59), 10.48 KiB | 228.00 KiB/s, done.\nFrom github.com:jiminny/app\n b7df560451..190239dfd4 JY-20613-allow-owner-role-on-team-setup -> origin/JY-20613-allow-owner-role-on-team-setup\n e0351be069..d94a285ae7 JY-20808-low-priority-indexing-queue -> origin/JY-20808-low-priority-indexing-queue\n * [new branch] JY-20920-fix-participant-matcher -> origin/JY-20920-fix-participant-matcher\n cb4ebf0c36..90bca4e4b2 master -> origin/master\nMerge made by the 'ort' strategy.\n app/Component/ES/ChunkSize.php | 54 +++++++++++++++++++++++++++\n app/Component/ES/Processor/DTOs/SelectionList.php | 4 +-\n app/Component/ES/Processor/TargetEntitiesSelector.php | 19 ++++++----\n app/Http/Middleware/McpTierMiddleware.php | 27 +++-----------\n app/Mcp/Servers/JiminnyServer.php | 2 +\n app/Mcp/Tools/GetMeTool.php | 157 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++\n app/Models/Feature/FeatureEnum.php | 1 +\n database/migrations/2026_05_13_124153_create_mcp_feature_flag.php | 25 +++++++++++++\n front-end/src/components/Settings/Kiosk/modals/EditTeamModal/EditTeamModal.vue | 52 ++++++++++++++++++--------\n front-end/src/components/Settings/Kiosk/modals/EditTeamModal/__tests__/EditTeamModal.spec.js | 14 +++++++\n tests/Feature/Mcp/GetMeToolFeatureTest.php | 140 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++\n tests/Feature/Mcp/ListCallsToolFeatureTest.php | 2 +-\n tests/Feature/Mcp/McpTestHelpersTrait.php | 19 +++++++++-\n tests/Unit/Component/ES/ChunkSizeTest.php | 50 +++++++++++++++++++++++++\n tests/Unit/Component/ES/Processor/DTOs/SelectionListTest.php | 27 ++++++++++----\n tests/Unit/Component/ES/Processor/TargetEntitiesSelectorTest.php | 39 +++++++++++---------\n 16 files changed, 557 insertions(+), 75 deletions(-)\n create mode 100644 app/Component/ES/ChunkSize.php\n create mode 100644 app/Mcp/Tools/GetMeTool.php\n create mode 100644 database/migrations/2026_05_13_124153_create_mcp_feature_flag.php\n create mode 100644 tests/Feature/Mcp/GetMeToolFeatureTest.php\n create mode 100644 tests/Unit/Component/ES/ChunkSizeTest.php\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20613-allow-owner-role-on-team-setup) $ git push\nEnumerating objects: 40, done.\nCounting objects: 100% (34/34), done.\nDelta compression using up to 8 threads\nCompressing objects: 100% (18/18), done.\nWriting objects: 100% (18/18), 1.58 KiB | 1.58 MiB/s, done.\nTotal 18 (delta 15), reused 0 (delta 0), pack-reused 0\nremote: Resolving deltas: 100% (15/15), completed with 13 local objects.\nTo github.com:jiminny/app.git\n 190239dfd4..ec1b261264 JY-20613-allow-owner-role-on-team-setup -> JY-20613-allow-owner-role-on-team-setup\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20613-allow-owner-role-on-team-setup) $ gbr\n* JY-20613-allow-owner-role-on-team-setup\n pipedrive-sdk-poc\n master\n JY-20903-update_activity-stage-on-opportunity-change\n JY-20904-fix-update-es-on-activity-command\n JY-20891-improve-sms-text-relays\n JY-20725-handle-HS-search-rate-limit\n JY-20818-move-AJ-reports-to-separated-datadog-metric\n JY-20773-fix-automated-reports-user-pilot-tracking\n JY-20157-AJ-report-not-send-notification\n JY-20508-notify-before-AJ-report-expiration\n JY-20372-ai-reports-promotion-pages\n JY-20352-sync-opportunities-without-a-local-owner-user-id-is-null\n JY-20738-debug-AJ-tracking-UP\n a\n JY-18909-automated-reports-ask-jiminny\n JY-20692-fix-integration-app-token-auth-response-change\n JY-20553-debug-crm-sync-delays\n JY-20698-fix-SF-activity-types-on-new-playbook\n JY-20543-AJ-report-tracking\n JY-20384-handle-auto-sync-with-no-access-to-event-type\n JY-20458-ask-jiminny-user-definitions\n JY-19666-fix-import-contacts-account-association\n JY-19666-HS-import-contacts-and-accounts-batch-job\n JY-20458-Ask-Jiminny-Reports\n JY-20200-batch-update-CRM-objects-Salesforce\n JY-19666-HS-webhooks-add-contact-and-company\n JY-20348-trigger-setup-DI-layout-on-team-creation\n JY-20326-refactor-info-message-in-command\n JY-20317-fix-auto-log-delay-issue-on-all-channels-disabled\n JY-20312-remove-on-update-change-last-synced-at-crm-configurations\n JY-20306-SF-skip-auto-sync-for-task-based-playbook\n JY-20192-remove-deleted-team-from-saved-search-filters\n JY-20197-import-opportunity-batch-job\n JY-20293-enable-status-field-for-pipedrive-deals\n JY-20191-remove-commands-interactive-prompts\n JY-20118-change-default-sync-strategy\n JY-20183-add-cache-on-auto-log-delay\n JY-20197-add-import-opportunity-batch-job\n 20118-hs-opportunity-make-webhook-strategy-default\n JY-20118-make-default-hs-opportunity-sync-strategy-webhook-based\n JY-20196-handle-opportunity-without-note\n JY-20118-improve-opportunity-import\n JY-20189-handle-activity-search-on-deleted-groups\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20613-allow-owner-role-on-team-setup) $ co JY-20725-handle-HS-search-rate-limit\nM\u0000\u0000\u0000\u0000\u0000\u0000\t.env.local\nM\u0000\u0000\u0000\u0000\u0000\u0000\tconfig/logging.php\nSwitched to branch 'JY-20725-handle-HS-search-rate-limit'\nYour branch is behind 'origin/JY-20725-handle-HS-search-rate-limit' by 439 commits, and can be fast-forwarded.\n (use \"git pull\" to update your local branch)\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20725-handle-HS-search-rate-limit) $ git pull\nUpdating 0f3e438941..bc6a3fce6b\nFast-forward\n .gitignore | 3 +-\n .windsurfrules | 168 ++---\n CLAUDE.md | 1 +\n app/Component/ActivityAnalytics/Service/CalculateTalkTimeOffsetsFromTranscription.php | 24 +-\n app/Component/AiActivityType/Services/AiActivityTypeEligibilityChecker.php | 28 +-\n app/Component/AiAutomation/Actions/PrepareUpdateDtoAction.php | 32 +-\n app/Component/AiAutomation/Services/CrmFillingEligibilityChecker.php | 47 ++\n app/Component/AiAutomation/TestCrmAiPromptService.php | 14 +\n app/Component/AiCallScoring/Services/AiCallScoringEligibilityChecker.php | 9 +\n app/Component/ES/ElasticSearchDocumentPartialUpdater.php | 13 +-\n app/Component/ES/ElasticSearchWorkerManager.php | 86 ---\n app/Component/ES/Processor/Actions/LoadDocumentsAction.php | 80 +--\n app/Component/ES/Processor/EntityQueryBuilder.php | 12 +-\n app/Component/ES/Processor/TargetEntitiesSelector.php | 2 +-\n app/Component/ES/Processor/Traits/SkipActivityTrait.php | 25 -\n app/Component/ES/Repositories/EsResetActivityRepository.php | 11 +-\n app/Component/ES/Worker/ActivityWorker.php | 73 --\n app/Component/ES/Worker/EntityWorker.php | 44 --\n app/Component/ES/Worker/WorkerAmount.php | 60 --\n app/Component/ES/Worker/WorkerInterface.php | 15 -\n app/Component/ElasticSearch/Contract/Searchable.php | 4 +\n app/Component/Encoding/Job/AnalyzeTrackChannelsJob.php | 20 +-\n app/Component/Encoding/Service/GenerateSpeechFromSilenceService.php | 85 ++-\n app/Component/FFMpeg/Services/GetSpeechIntervalsService.php | 18 +-\n app/Component/LanguageDetection/Services/FindSpeechTimeService.php | 22 +-\n app/Component/Nudge/Job/ProcessOrganisationImmediateNudgesJob.php | 218 +++++-\n app/Component/ParagraphBreaker/Services/TranscriptionParagraphsService.php | 4 +\n app/Component/ParticipantSpeech/Services/ParticipantSpeechesCreator.php | 33 +\n app/Component/ParticipantSpeech/Services/ParticipantSpeechesDeleter.php | 15 +\n app/Component/ParticipantSpeech/Services/ParticipantSpeechesProvider.php | 51 +-\n app/Component/ParticipantSpeech/Services/ParticipantSpeechesUploader.php | 36 +\n app/Component/ProphetAi/Exceptions/InsufficientTranscriptException.php | 11 +\n app/Component/Transcription/DTO/Http/Transcription/AssemblyAI/AssemblyAI/NoAssemblyIdException.php | 11 +\n app/Component/Transcription/DTO/Http/Transcription/AssemblyAI/AssemblyAI/SuccessfulResponse.php | 6 +\n app/Component/Transcription/DTO/Http/Transcription/TranscriptionIsNotCorrectFormatException.php | 11 +\n app/Component/Transcription/Diarization/Services/GetNormalizedParticipantSpeechesService.php | 23 +-\n app/Component/Transcription/Diarization/Source/MeetingBotSource.php | 16 +-\n app/Component/Transcription/TranscriptionProcessor/TranscriptionProcessor.php | 3 +\n app/Console/Commands/Activities/ActivityHardDeleteCommand.php | 4 +-\n app/Console/Commands/Activities/Copy.php | 2 +\n app/Console/Commands/Activities/SetupIntegration/TwilioSetS3RecordingCredentialsCommand.php | 119 ++++\n app/Console/Commands/Activities/UpdateActivityElasticSearchDocumentCommand.php | 10 +-\n app/Console/Commands/Crm/BackfillOpportunityUserFromAccountCommand.php | 126 ++++\n app/Console/Commands/Elasticsearch/AsyncUpdateEsActivities.php | 19 -\n app/Console/Commands/Elasticsearch/AsyncUpdateEsEntities.php | 50 +-\n app/Console/Commands/Elasticsearch/ResetAsyncElasticSearchCommand.php | 30 +-\n app/Console/Commands/GeckoExport/GeckoExportParticipantSpeechesCommand.php | 14 +-\n app/Console/Commands/IssueMcpTokenCommand.php | 84 +++\n app/Console/Commands/JiminnyDebugCommand.php | 7 +-\n app/Console/Commands/Tracks/CleanupActivityTracksCommand.php | 2 +-\n app/Console/Kernel.php | 6 +-\n app/Contracts/Services/Calendar/CalendarTrait.php | 80 ++-\n app/Events/AutomatedReports/AutomatedReportGenerated.php | 3 +\n app/Http/Controllers/API/AiCallScoring/AiScorecardController.php | 7 +-\n app/Http/Controllers/API/TeamAiAutomationController.php | 8 +\n app/Http/Controllers/CustomerApi/CustomerApiController.php | 4 +-\n app/Http/Controllers/Kiosk/ActivityController.php | 58 +-\n app/Http/Controllers/Settings/PlaybookController.php | 15 +-\n app/Http/Kernel.php | 23 +\n app/Http/Middleware/McpAuditMiddleware.php | 156 ++++\n app/Http/Middleware/McpTierMiddleware.php | 54 ++\n app/Http/Requests/API/V2/ZapierUploadActivityRequest.php | 28 +-\n app/Jobs/Activity/Import/ImportTwilioVideoSpeechesJob.php | 25 +-\n app/Jobs/Activity/Import/IsActivityReadyForProcessingJob.php | 10 +-\n app/Jobs/Calendar/SetupCalendarSync.php | 21 +-\n app/Jobs/ImportRemoteTrackJob.php | 96 ++-\n app/Jobs/Mailbox/EmailTextRelay.php | 15 +-\n app/Mcp/Contracts/McpCallRepositoryInterface.php | 30 +\n app/Mcp/DTO/ListCallsFilters.php | 29 +\n app/Mcp/Errors/McpError.php | 123 ++++\n app/Mcp/Repositories/McpActivityHydrator.php | 145 ++++\n app/Mcp/Repositories/McpCallRepository.php | 84 +++\n app/Mcp/Repositories/McpElasticCallRepository.php | 171 +++++\n app/Mcp/Servers/JiminnyServer.php | 38 +\n app/Mcp/Tools/ListCallsTool.php | 205 ++++++\n app/Models/Activity.php | 10 +-\n app/Models/Activity/Transcription.php | 17 +-\n app/Models/ElasticSearch/OpportunityElasticSearchTrait.php | 5 +\n app/Models/Participant.php | 1 +\n app/Providers/AppServiceProvider.php | 22 +\n app/Repositories/Crm/ContactRepository.php | 69 +-\n app/Repositories/ParticipantSpeechRepository.php | 13 +-\n app/Services/Activity/ParticipantsService.php | 19 +-\n app/Services/Activity/Twilio/S3RecordingCredentialsService.php | 82 +++\n app/Services/ActivityService.php | 21 +-\n app/Services/Calendar/CalendarActivityService.php | 46 ++\n app/Services/Calendar/Command/ImportParticipants.php | 1 +\n app/Services/Calendar/Command/MapActivityData.php | 106 +--\n app/Services/Calendar/GoogleCalendarService.php | 12 +-\n app/Services/Crm/Close/Processor/OpportunityProcessor.php | 2 +-\n app/Services/Crm/Close/Service.php | 22 +-\n app/Services/Crm/Copper/Service.php | 12 +-\n app/Services/Crm/Hubspot/Service.php | 154 +++-\n app/Services/Crm/Hubspot/ServiceTraits/OpportunitySyncTrait.php | 88 ++-\n app/Services/Crm/IntegrationApp/ServiceTraits/SyncCrmEntitiesTrait.php | 22 +-\n app/Services/Crm/Pipedrive/Service.php | 17 +-\n app/Services/Crm/Salesforce/Service.php | 42 +-\n app/Services/Mail/Office/EmailApiClient.php | 129 +---\n app/Services/RecallAI/Commands/ScheduleBotCommand.php | 39 +-\n app/Services/RecallAI/RecallAIService.php | 22 +-\n composer.json | 3 +-\n composer.lock | 87 ++-\n config/mcp.php | 23 +\n database/migrations/2026_04_30_120000_create_mcp_audit_log_table.php | 36 +\n docs/mcp/explorer/explorer.html | 697 ++++++++++++++++++\n docs/mcp/explorer/explorer.template.html | 697 ++++++++++++++++++\n docs/mcp/explorer/generate.js | 215 ++++++\n docs/mcp/explorer/tool-explorer-meta.json | 11 +\n docs/mcp/tools-list.json | 2536 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++\n docs/mcp/tools.md | 621 ++++++++++++++++\n front-end/package.json | 4 +-\n front-end/src/components/Settings/OrgSettings/AiAutomation/CrmFilling/TemplateFieldForm.vue | 28 +-\n front-end/src/components/Settings/OrgSettings/Playbooks/AddEditPlaybook.vue | 10 +\n front-end/src/components/playback/comments/ActivityComment.less | 10 +-\n front-end/src/components/shared/PromptTester/PromptTester.vue | 12 +-\n front-end/src/components/shared/__tests__/PromptTester.spec.js | 35 +\n front-end/src/components/shared/modals/EntityPickerModal/__tests__/useEntitiesCache.spec.ts | 37 +\n front-end/src/components/shared/modals/EntityPickerModal/useEntitiesCache.ts | 9 +\n front-end/yarn.lock | 16 +-\n phpstan-baseline.neon | 50 --\n routes/api.php | 11 +\n sonar-project.properties | 91 ++-\n tests/Feature/Component/Nudge/ProcessOrganisationImmediateNudgesJobTest.php | 534 ++++++++++++++\n tests/Feature/Jobs/ImportRemoteTrackJobTest.php | 283 +++++++-\n tests/Feature/Mcp/IssueMcpTokenCommandTest.php | 53 ++\n tests/Feature/Mcp/ListCallsToolElasticFeatureTest.php | 155 ++++\n tests/Feature/Mcp/ListCallsToolFeatureTest.php | 352 ++++++++++\n tests/Feature/Mcp/McpTestHelpersTrait.php | 77 ++\n tests/Feature/Services/Team/TeamDeleteHandlers/Retention/RetentionRepositoryHandlerTest.php | 1 +\n tests/Stubs/SentryStub.php | 18 +\n tests/Unit/Component/ActivityAnalytics/Service/CalculateTalkTimeOffsetFromTranscriptionTest.php | 28 +-\n tests/Unit/Component/AiActivityType/Services/AiActivityTypeEligibilityCheckerTest.php | 103 ++-\n tests/Unit/Component/AiAutomation/Actions/PrepareUpdateDtoActionTest.php | 91 +++\n tests/Unit/Component/AiAutomation/Services/CrmFillingEligibilityCheckerTest.php | 124 ++++\n tests/Unit/Component/AiAutomation/TestCrmAiPromptServiceTest.php | 67 +-\n tests/Unit/Component/AiCallScoring/Services/AiCallScoringEligibilityCheckerTest.php | 55 ++\n tests/Unit/Component/ES/ElasticSearchWorkerManagerTest.php | 135 ----\n tests/Unit/Component/ES/Processor/Actions/LoadDocumentsActionTest.php | 220 ++++++\n tests/Unit/Component/ES/Processor/EntityQueryBuilderTest.php | 21 +-\n tests/Unit/Component/ES/Processor/Traits/SkipActivityTraitTest.php | 51 --\n tests/Unit/Component/ES/Worker/ActivityWorkerTest.php | 174 -----\n tests/Unit/Component/ES/Worker/EntityWorkerTest.php | 97 ---\n tests/Unit/Component/ES/Worker/WorkerAmountTest.php | 116 ---\n tests/Unit/Component/Encoding/Job/AnalyzeTrackChannelsJobTest.php | 52 +-\n tests/Unit/Component/Encoding/Service/GenerateSpeechFromSilenceServiceTest.php | 171 ++---\n tests/Unit/Component/FFMpeg/Services/GetSpeechIntervalsTest.php | 36 +-\n tests/Unit/Component/LanguageDetection/Services/FindSpeechTimeServiceTest.php | 20 +-\n tests/Unit/Component/MobileSettings/MobileSettingsControllerTest.php | 5 +-\n tests/Unit/Component/ParticipantSpeech/Services/ParticipantSpeechesCreatorTest.php | 75 ++\n tests/Unit/Component/ParticipantSpeech/Services/ParticipantSpeechesDeleterTest.php | 63 ++\n tests/Unit/Component/ParticipantSpeech/Services/ParticipantSpeechesProviderTest.php | 134 ++++\n tests/Unit/Component/ParticipantSpeech/Services/ParticipantSpeechesUploaderTest.php | 57 ++\n tests/Unit/Component/Transcription/Diarization/Services/GetNormalizedParticipantSpeechesServiceTest.php | 51 +-\n tests/Unit/Component/Transcription/Diarization/Source/MeetingBotSourceTest.php | 29 +-\n tests/Unit/Contracts/Services/Calendar/CalendarTraitTest.php | 58 +-\n tests/Unit/Http/Controllers/Kiosk/ActivityControllerTest.php | 159 +++++\n tests/Unit/Jobs/Activity/Import/ImportTwilioVideoSpeechesJobTest.php | 22 +-\n tests/Unit/Jobs/Activity/Import/IsActivityReadyForProcessingJobTest.php | 26 +-\n tests/Unit/Jobs/Calendar/SetupCalendarSyncTest.php | 25 -\n tests/Unit/Services/Activity/ParticipantsServiceTest.php | 12 +-\n tests/Unit/Services/Activity/Twilio/S3RecordingCredentialsServiceTest.php | 180 +++++\n tests/Unit/Services/ActivityServiceTest.php | 132 ++++\n tests/Unit/Services/Calendar/CalendarActivityServiceTest.php | 150 +++-\n tests/Unit/Services/Calendar/Command/ImportParticipantsTest.php | 6 +-\n tests/Unit/Services/Calendar/Command/MapActivityDataTest.php | 78 +-\n tests/Unit/Services/Calendar/GoogleCalendarServiceTest.php | 116 +++\n tests/Unit/Services/Crm/Close/ServiceTest.php | 165 +++++\n tests/Unit/Services/Crm/Hubspot/ServiceTest.php | 272 ++++++-\n tests/Unit/Services/Crm/Hubspot/ServiceTraits/OpportunitySyncTest.php | 25 +-\n tests/Unit/Services/Crm/Hubspot/ServiceTraits/OpportunitySyncTraitMatchActivitiesTest.php | 3 +-\n tests/Unit/Services/Crm/IntegrationApp/ServiceTraits/SyncCrmEntitiesTraitOpportunitiesTest.php | 40 ++\n tests/Unit/Services/Crm/Pipedrive/ImportOpportunityMatchActivitiesTest.php | 2 +\n tests/Unit/Services/Crm/Salesforce/ServiceTest.php | 139 ++++\n tests/Unit/Services/Mail/Office/EmailApiClientTest.php | 195 ++---\n tests/Unit/Services/RecallAI/RecallAIServiceTest.php | 24 +-\n 175 files changed, 12562 insertions(+), 2162 deletions(-)\n create mode 120000 CLAUDE.md\n create mode 100644 app/Component/AiAutomation/Services/CrmFillingEligibilityChecker.php\n delete mode 100644 app/Component/ES/ElasticSearchWorkerManager.php\n delete mode 100644 app/Component/ES/Processor/Traits/SkipActivityTrait.php\n delete mode 100644 app/Component/ES/Worker/ActivityWorker.php\n delete mode 100644 app/Component/ES/Worker/EntityWorker.php\n delete mode 100644 app/Component/ES/Worker/WorkerAmount.php\n delete mode 100644 app/Component/ES/Worker/WorkerInterface.php\n create mode 100644 app/Component/ProphetAi/Exceptions/InsufficientTranscriptException.php\n create mode 100644 app/Component/Transcription/DTO/Http/Transcription/AssemblyAI/AssemblyAI/NoAssemblyIdException.php\n create mode 100644 app/Component/Transcription/DTO/Http/Transcription/TranscriptionIsNotCorrectFormatException.php\n create mode 100644 app/Console/Commands/Activities/SetupIntegration/TwilioSetS3RecordingCredentialsCommand.php\n create mode 100644 app/Console/Commands/Crm/BackfillOpportunityUserFromAccountCommand.php\n delete mode 100644 app/Console/Commands/Elasticsearch/AsyncUpdateEsActivities.php\n create mode 100644 app/Console/Commands/IssueMcpTokenCommand.php\n create mode 100644 app/Http/Middleware/McpAuditMiddleware.php\n create mode 100644 app/Http/Middleware/McpTierMiddleware.php\n create mode 100644 app/Mcp/Contracts/McpCallRepositoryInterface.php\n create mode 100644 app/Mcp/DTO/ListCallsFilters.php\n create mode 100644 app/Mcp/Errors/McpError.php\n create mode 100644 app/Mcp/Repositories/McpActivityHydrator.php\n create mode 100644 app/Mcp/Repositories/McpCallRepository.php\n create mode 100644 app/Mcp/Repositories/McpElasticCallRepository.php\n create mode 100644 app/Mcp/Servers/JiminnyServer.php\n create mode 100644 app/Mcp/Tools/ListCallsTool.php\n create mode 100644 app/Services/Activity/Twilio/S3RecordingCredentialsService.php\n create mode 100644 config/mcp.php\n create mode 100644 database/migrations/2026_04_30_120000_create_mcp_audit_log_table.php\n create mode 100644 docs/mcp/explorer/explorer.html\n create mode 100644 docs/mcp/explorer/explorer.template.html\n create mode 100644 docs/mcp/explorer/generate.js\n create mode 100644 docs/mcp/explorer/tool-explorer-meta.json\n create mode 100644 docs/mcp/tools-list.json\n create mode 100644 docs/mcp/tools.md\n create mode 100644 front-end/src/components/shared/modals/EntityPickerModal/__tests__/useEntitiesCache.spec.ts\n create mode 100644 tests/Feature/Component/Nudge/ProcessOrganisationImmediateNudgesJobTest.php\n create mode 100644 tests/Feature/Mcp/IssueMcpTokenCommandTest.php\n create mode 100644 tests/Feature/Mcp/ListCallsToolElasticFeatureTest.php\n create mode 100644 tests/Feature/Mcp/ListCallsToolFeatureTest.php\n create mode 100644 tests/Feature/Mcp/McpTestHelpersTrait.php\n create mode 100644 tests/Stubs/SentryStub.php\n create mode 100644 tests/Unit/Component/AiAutomation/Services/CrmFillingEligibilityCheckerTest.php\n delete mode 100644 tests/Unit/Component/ES/ElasticSearchWorkerManagerTest.php\n create mode 100644 tests/Unit/Component/ES/Processor/Actions/LoadDocumentsActionTest.php\n delete mode 100644 tests/Unit/Component/ES/Processor/Traits/SkipActivityTraitTest.php\n delete mode 100644 tests/Unit/Component/ES/Worker/ActivityWorkerTest.php\n delete mode 100644 tests/Unit/Component/ES/Worker/EntityWorkerTest.php\n delete mode 100644 tests/Unit/Component/ES/Worker/WorkerAmountTest.php\n create mode 100644 tests/Unit/Component/ParticipantSpeech/Services/ParticipantSpeechesCreatorTest.php\n create mode 100644 tests/Unit/Http/Controllers/Kiosk/ActivityControllerTest.php\n create mode 100644 tests/Unit/Services/Activity/Twilio/S3RecordingCredentialsServiceTest.php\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20725-handle-HS-search-rate-limit) $ git status\nOn branch master\nYour branch is behind 'origin/master' by 114 commits, and can be fast-forwarded.\n (use \"git pull\" to update your local branch)\n\nChanges not staged for commit:\n (use \"git add <file>...\" to update what will be committed)\n (use \"git restore <file>...\" to discard changes in working directory)\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tmodified: .env.local\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tmodified: app/Component/SCIM/Constants.php\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tmodified: app/Component/SCIM/ScimProvisioning.php\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tmodified: app/Component/Twilio/Conference/ConferenceManager/SoftPhoneManager.php\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tmodified: app/Console/Commands/JiminnyDebugCommand.php\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tmodified: app/DTO/SCIM/AAD/Request/CoreUserRequest.php\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tmodified: app/DTO/SCIM/AAD/Response/CoreUser.php\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tmodified: app/Services/Telephony/TextMessagingService.php\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tmodified: config/logging.php\n\nUntracked files:\n (use \"git add <file>...\" to include in what will be committed)\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\t.env.nikilocal\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\t.env.other\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tWEBHOOK_FILTERING_IMPLEMENTATION.md\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tapp/Component/SCIM/Mutators/Attributes/User/RoleAttr.php\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tapp/Console/Commands/Crm/Hubspot/SimulateWebhooksCommand.php\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tapp/Console/Commands/Reports/CreateMockAskJiminnyReportResultCommand.php\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tapp/Rules/ListenerRoleCannotHaveAdminOrManagerPermissionRule.php\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tids.txt\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tpublic/favicon.ico\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\traw_sql_query.sql\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\ttests/Unit/Component/SCIM/Mutators/Attributes/User/RoleAttrTest.php\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\ttests/Unit/Policies/CanAccessAiReportsTest.php\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\ttests/Unit/Rules/ListenerRoleCannotHaveAdminOrManagerPermissionRuleTest.php\n\nno changes added to commit (use \"git add\" and/or \"git commit -a\")\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (master) $ git pull\nremote: Enumerating objects: 306, done.\nremote: Counting objects: 100% (299/299), done.\nremote: Compressing objects: 100% (183/183), done.\nremote: Total 306 (delta 213), reused 171 (delta 116), pack-reused 7 (from 1)\nReceiving objects: 100% (306/306), 80.12 KiB | 1000.00 KiB/s, done.\nResolving deltas: 100% (213/213), completed with 53 local objects.\nFrom github.com:jiminny/app\n 90bca4e4b2..5604af40cf master -> origin/master\n 4e7078fd8b..0b8343d179 JY-18091-upgrade-to-php-8-5 -> origin/JY-18091-upgrade-to-php-8-5\n 098eeaa087..d5a447e492 JY-20613-allow-owner-role-on-team-setup -> origin/JY-20613-allow-owner-role-on-team-setup\n c3a76ace91..af65249d0f JY-20749-user-can-view-recorded-meetings -> origin/JY-20749-user-can-view-recorded-meetings\n d94a285ae7..7ce96cb5fe JY-20808-low-priority-indexing-queue -> origin/JY-20808-low-priority-indexing-queue\n * [new branch] JY-20842-remove-partial-updater -> origin/JY-20842-remove-partial-updater\n * [new branch] JY-20920-fix-participant-flip -> origin/JY-20920-fix-participant-flip\n * [new branch] secfix/npm-20260519 -> origin/secfix/npm-20260519\nUpdating cb4ebf0c36..5604af40cf\nFast-forward\n app/Component/ES/ChunkSize.php | 54 +++++++++++++++++++\n app/Component/ES/Processor/DTOs/SelectionList.php | 4 +-\n app/Component/ES/Processor/TargetEntitiesSelector.php | 19 ++++---\n app/Component/MeetingBot/Service/ParticipantMatcher.php | 46 ++++++++++++----\n app/Exceptions/RateLimitException.php | 19 ++++++-\n app/Http/Middleware/McpTierMiddleware.php | 27 ++--------\n app/Jobs/Crm/MatchActivityCrmData.php | 47 ++++++++++++----\n app/Jobs/Middleware/HandleHubspotRateLimit.php | 42 +++++++++++++++\n app/Mcp/Servers/JiminnyServer.php | 2 +\n app/Mcp/Tools/GetMeTool.php | 157 +++++++++++++++++++++++++++++++++++++++++++++++++++++\n app/Models/Feature/FeatureEnum.php | 1 +\n app/Services/Activity/HubSpot/ProviderResolver.php | 4 +-\n app/Services/Activity/HubSpot/ProviderResolverInterface.php | 2 +-\n app/Services/Activity/HubSpot/Providers/Provider.php | 2 +-\n app/Services/Activity/HubSpot/Providers/ProviderKixie.php | 2 +-\n app/Services/Activity/HubSpot/Providers/ProviderOrum.php | 2 +-\n app/Services/Activity/HubSpot/Providers/ProviderTwilio.php | 2 +-\n app/Services/Activity/HubSpot/Providers/ProviderTwilioFlex.php | 5 +-\n app/Services/Activity/HubSpot/Service.php | 97 +++++++++++++++++++++++++++------\n app/Services/Crm/Hubspot/Client.php | 132 +++++++++++++++++++++++++++++++++++++++++++++\n app/Services/Crm/Hubspot/HubspotClientInterface.php | 15 ++++++\n app/Services/Crm/Hubspot/Pagination/HubspotPaginationService.php | 21 ++++----\n app/Services/Crm/Hubspot/Pagination/PaginationState.php | 2 +-\n database/migrations/2026_05_13_124153_create_mcp_feature_flag.php | 25 +++++++++\n tests/Feature/Mcp/GetMeToolFeatureTest.php | 140 +++++++++++++++++++++++++++++++++++++++++++++++\n tests/Feature/Mcp/ListCallsToolFeatureTest.php | 2 +-\n tests/Feature/Mcp/McpTestHelpersTrait.php | 19 ++++++-\n tests/Unit/Component/ES/ChunkSizeTest.php | 50 +++++++++++++++++\n tests/Unit/Component/ES/Processor/DTOs/SelectionListTest.php | 27 +++++++---\n tests/Unit/Component/ES/Processor/TargetEntitiesSelectorTest.php | 39 ++++++++------\n tests/Unit/Component/MeetingBot/Service/ParticipantMatcherTest.php | 68 ++++++++++++++++++++++-\n tests/Unit/Exceptions/RateLimitExceptionTest.php | 56 +++++++++++++++++++\n tests/Unit/Jobs/Crm/MatchActivityCrmDataTest.php | 8 +--\n tests/Unit/Jobs/Middleware/HandleHubspotRateLimitTest.php | 151 +++++++++++++++++++++++++++++++++++++++++++++++++++\n tests/Unit/Services/Activity/HubSpot/ServiceTest.php | 109 +++++++++++++++++++++++++++++++++++++\n tests/Unit/Services/Crm/Hubspot/ClientTest.php | 250 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++\n tests/Unit/Services/Crm/Hubspot/Pagination/HubspotPaginationServiceTest.php | 283 +++++++++++++++++++++---------------------------------------------------------------------------\n 37 files changed, 1587 insertions(+), 344 deletions(-)\n create mode 100644 app/Component/ES/ChunkSize.php\n create mode 100644 app/Jobs/Middleware/HandleHubspotRateLimit.php\n create mode 100644 app/Mcp/Tools/GetMeTool.php\n create mode 100644 database/migrations/2026_05_13_124153_create_mcp_feature_flag.php\n create mode 100644 tests/Feature/Mcp/GetMeToolFeatureTest.php\n create mode 100644 tests/Unit/Component/ES/ChunkSizeTest.php\n create mode 100644 tests/Unit/Exceptions/RateLimitExceptionTest.php\n create mode 100644 tests/Unit/Jobs/Middleware/HandleHubspotRateLimitTest.php\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (master) $ git pull\nAlready up to date.\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (master) $ co -b JY-20676-delete-report-related-objects\nSwitched to a new branch 'JY-20676-delete-report-related-objects'\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20676-delete-report-related-objects) $ csfix\ndocker exec -it docker_lamp_1 ./vendor/bin/php-cs-fixer fix --config=.php-cs-fixer.dist.php -v --using-cache=no --diff \nPHP CS Fixer 3.87.1 Alexander by Fabien Potencier, Dariusz Ruminski and contributors.\nPHP runtime: 8.3.30\nRunning analysis on 7 cores with 10 files per process.\nParallel runner is an experimental feature and may be unstable, use it at your own risk. Feedback highly appreciated!\nLoaded config default from \".php-cs-fixer.dist.php\".\n 5690/5690 [▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓] 100%\n\n 1) app/Console/Commands/JiminnyDebugCommand.php (statement_indentation, blank_line_before_statement)\n ---------- begin diff ----------\n--- /home/jiminny/app/Console/Commands/JiminnyDebugCommand.php\n+++ /home/jiminny/app/Console/Commands/JiminnyDebugCommand.php\n@@ -23,6 +23,7 @@\n \n if ($action === 'redis-set') {\n $this->testRedisSet();\n+\n return;\n }\n \n@@ -45,7 +46,7 @@\n $ttl = 60;\n \n try {\n-// $result = Redis::set($testKey, $testValue, 'EX', $ttl, 'NX');\n+ // $result = Redis::set($testKey, $testValue, 'EX', $ttl, 'NX');\n $result = Redis::set($testKey, $testValue, ['nx', 'ex' => $ttl]);\n \n if ($result) {\n\n ----------- end diff -----------\n\n\nFixed 1 of 5690 files in 50.673 seconds, 67.00 MB memory used\n\nWhat's next:\n Try Docker Debug for seamless, persistent debugging tools in any container or image → docker debug docker_lamp_1\n Learn more at https://docs.docker.com/go/debug-cli/\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20676-delete-report-related-objects) $ ;xd\ndocker exec -it docker_lamp_1 bash -c \"mv /usr/local/etc/php/conf.d/xdebug.ini ~/xdebug.ini\"\n\nWhat's next:\n Try Docker Debug for seamless, persistent debugging tools in any container or image → docker debug docker_lamp_1\n Learn more at https://docs.docker.com/go/debug-cli/\ndocker exec -it docker_lamp_1 supervisorctl restart all\njiminny-worker-processing-2:jiminny-worker-processing-2_00: stopped\njiminny-worker-processing-3:jiminny-worker-processing-3_00: stopped\njiminny-worker-processing-4:jiminny-worker-processing-4_00: stopped\njiminny-worker-processing-5:jiminny-worker-processing-5_00: stopped\njiminny-worker-processing-delayed:jiminny-worker-processing-delayed_00: stopped\nworker-analytics:worker-analytics_00: stopped\nworker-crm-update:worker-crm-update_00: stopped\nworker-download:worker-download_00: stopped\nworker-nudges:worker-nudges_00: stopped\nworker-calendar:worker-calendar_00: stopped\nworker-audio:worker-audio_00: stopped\njiminny-worker-processing-1:jiminny-worker-processing-1_00: stopped\nworker:worker_00: stopped\nworker-conferences:worker-conferences_00: stopped\nworker-crm-sync:worker-crm-sync_00: stopped\nworker-emails:worker-emails_00: stopped\nworker-es-update:worker-es-update_00: stopped\nartisan-schedule:artisan-schedule_00: stopped\nartisan-schedule:artisan-schedule_00: started\njiminny-worker-processing-1:jiminny-worker-processing-1_00: started\njiminny-worker-processing-2:jiminny-worker-processing-2_00: started\njiminny-worker-processing-3:jiminny-worker-processing-3_00: started\njiminny-worker-processing-4:jiminny-worker-processing-4_00: started\njiminny-worker-processing-5:jiminny-worker-processing-5_00: started\njiminny-worker-processing-delayed:jiminny-worker-processing-delayed_00: started\nworker:worker_00: started\nworker-analytics:worker-analytics_00: started\nworker-audio:worker-audio_00: started\nworker-calendar:worker-calendar_00: started\nworker-conferences:worker-conferences_00: started\nworker-crm-sync:worker-crm-sync_00: started\nworker-crm-update:worker-crm-update_00: started\nworker-download:worker-download_00: started\nworker-emails:worker-emails_00: started\nworker-es-update:worker-es-update_00: started\nworker-nudges:worker-nudges_00: started\n\nWhat's next:\n Try Docker Debug for seamless, persistent debugging tools in any container or image → docker debug docker_lamp_1\n Learn more at https://docs.docker.com/go/debug-cli/\ndocker exec -it docker_lamp_1 php -v\nPHP 8.3.30 (cli) (built: Mar 16 2026 22:32:32) (NTS)\nCopyright (c) The PHP Group\nZend Engine v4.3.30, Copyright (c) Zend Technologies\n with Zend OPcache v8.3.30, Copyright (c), by Zend Technologies\n\nWhat's next:\n Try Docker Debug for seamless, persistent debugging tools in any container or image → docker debug docker_lamp_1\n Learn more at https://docs.docker.com/go/debug-cli/\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20676-delete-report-related-objects) $ git status\nOn branch JY-20676-delete-report-related-objects\nChanges not staged for commit:\n (use \"git add <file>...\" to update what will be committed)\n (use \"git restore <file>...\" to discard changes in working directory)\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tmodified: .env.local\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tmodified: app/Console/Commands/JiminnyDebugCommand.php\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tmodified: config/logging.php\n\nUntracked files:\n (use \"git add <file>...\" to include in what will be committed)\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\t.env.nikilocal\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\t.env.other\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tWEBHOOK_FILTERING_IMPLEMENTATION.md\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tapp/Console/Commands/Crm/Hubspot/SimulateWebhooksCommand.php\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tapp/Console/Commands/Reports/CreateMockAskJiminnyReportResultCommand.php\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tids.txt\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tpublic/favicon.ico\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\traw_sql_query.sql\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\ttests/Unit/Policies/CanAccessAiReportsTest.php\n\nno changes added to commit (use \"git add\" and/or \"git commit -a\")\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20676-delete-report-related-objects) $ git push -u origin JY-20676-delete-report-related-objects\nEnumerating objects: 45, done.\nCounting objects: 100% (45/45), done.\nDelta compression using up to 8 threads\nCompressing objects: 100% (24/24), done.\nWriting objects: 100% (24/24), 3.62 KiB | 3.62 MiB/s, done.\nTotal 24 (delta 19), reused 0 (delta 0), pack-reused 0\nremote: Resolving deltas: 100% (19/19), completed with 19 local objects.\nremote: \nremote: Create a pull request for 'JY-20676-delete-report-related-objects' on GitHub by visiting:\nremote: https://github.com/jiminny/app/pull/new/JY-20676-delete-report-related-objects\nremote: \nTo github.com:jiminny/app.git\n * [new branch] JY-20676-delete-report-related-objects -> JY-20676-delete-report-related-objects\nbranch 'JY-20676-delete-report-related-objects' set up to track 'origin/JY-20676-delete-report-related-objects'.\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20676-delete-report-related-objects) $ csfix\ndocker exec -it docker_lamp_1 ./vendor/bin/php-cs-fixer fix --config=.php-cs-fixer.dist.php -v --using-cache=no --diff \nPHP CS Fixer 3.87.1 Alexander by Fabien Potencier, Dariusz Ruminski and contributors.\nPHP runtime: 8.3.30\nRunning analysis on 7 cores with 10 files per process.\nParallel runner is an experimental feature and may be unstable, use it at your own risk. Feedback highly appreciated!\nLoaded config default from \".php-cs-fixer.dist.php\".\n 5690/5690 [▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓] 100%\n\n 1) app/Http/Controllers/API/V2/AskJiminnyReportsController.php (blank_line_before_statement)\n ---------- begin diff ----------\n--- /home/jiminny/app/Http/Controllers/API/V2/AskJiminnyReportsController.php\n+++ /home/jiminny/app/Http/Controllers/API/V2/AskJiminnyReportsController.php\n@@ -140,6 +140,7 @@\n if ($enabled && $report->isAskJiminnyReport() && ! $report->canExecute()) {\n $error = 'This report is missing a saved search or prompt. ' .\n 'Edit the report to complete the setup before enabling it.';\n+\n return new JsonResponse(\n ['error' => $error],\n Response::HTTP_UNPROCESSABLE_ENTITY\n\n ----------- end diff -----------\n\n\nFixed 1 of 5690 files in 71.757 seconds, 60.00 MB memory used\n\nWhat's next:\n Try Docker Debug for seamless, persistent debugging tools in any container or image → docker debug docker_lamp_1\n Learn more at https://docs.docker.com/go/debug-cli/\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20676-delete-report-related-objects) $ git pull\nremote: Enumerating objects: 158, done.\nremote: Counting objects: 100% (103/103), done.\nremote: Compressing objects: 100% (37/37), done.\nremote: Total 158 (delta 80), reused 74 (delta 66), pack-reused 55 (from 3)\nReceiving objects: 100% (158/158), 80.59 KiB | 982.00 KiB/s, done.\nResolving deltas: 100% (85/85), completed with 45 local objects.\nFrom github.com:jiminny/app\n 02a33811ee..c6ce5e2440 JY-20676-delete-report-related-objects -> origin/JY-20676-delete-report-related-objects\n 7ce96cb5fe..6c59f04358 JY-20808-low-priority-indexing-queue -> origin/JY-20808-low-priority-indexing-queue\n 3906a9238a..2b5e6ea62b JY-20835-mcp-enable-users-to-get-a-list-of-deals-and-their-details -> origin/JY-20835-mcp-enable-users-to-get-a-list-of-deals-and-their-details\n 5604af40cf..ea3519f0e2 master -> origin/master\n * [new branch] switch-eu-assembly -> origin/switch-eu-assembly\nUpdating 02a33811ee..c6ce5e2440\nFast-forward\n app/Component/ES/ElasticSearchDocumentPartialUpdater.php | 48 ---\n app/Component/ParticipantSpeech/Services/ParticipantAttributionService.php | 4 +-\n app/Component/Settings/AutoScoring/Services/UpdateAutoScoreService.php | 20 +-\n app/Component/Transcription/Service/StorageService.php | 8 +-\n front-end/package.json | 2 +-\n front-end/src/components/DealInsights/Modals/AskAnythingModal.vue | 23 ++\n front-end/src/components/shared/AskAnything/AskAnythingPromptFormItem.vue | 2 +\n front-end/src/components/shared/AskAnything/AskAnythingSettingsDrawer.vue | 23 +-\n front-end/src/components/shared/AskAnything/__mocks__/AskAnythingSettingsDrawer.mocks.js | 1 +\n front-end/src/components/shared/AskAnything/__tests__/AskAnythingSettingsDrawer.spec.js | 135 ++++---\n front-end/src/components/shared/AskAnything/__tests__/__snapshots__/AskAnythingSettingsDrawer.spec.js.html | 1235 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++\n front-end/src/components/shared/AskAnything/__tests__/__snapshots__/AskAnythingSettingsDrawer.spec.js.snap | 1382 ----------------------------------------------------------------\n front-end/src/components/shared/AskAnything/prompts.js | 1 +\n front-end/src/components/shared/AskAnything/useAskAnything.js | 1 +\n front-end/yarn.lock | 8 +-\n tests/Unit/Component/ES/ElasticSearchDocumentPartialUpdaterTest.php | 42 --\n tests/Unit/Component/Settings/AutoScoring/Services/UpdateAutoScoreServiceTest.php | 86 ++--\n tests/Unit/Component/Transcription/Service/StorageServiceTest.php | 29 +-\n 18 files changed, 1448 insertions(+), 1602 deletions(-)\n delete mode 100644 app/Component/ES/ElasticSearchDocumentPartialUpdater.php\n create mode 100644 front-end/src/components/shared/AskAnything/__tests__/__snapshots__/AskAnythingSettingsDrawer.spec.js.html\n delete mode 100644 front-end/src/components/shared/AskAnything/__tests__/__snapshots__/AskAnythingSettingsDrawer.spec.js.snap\n delete mode 100644 tests/Unit/Component/ES/ElasticSearchDocumentPartialUpdaterTest.php\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20676-delete-report-related-objects) $ csfix\ndocker exec -it docker_lamp_1 ./vendor/bin/php-cs-fixer fix --config=.php-cs-fixer.dist.php -v --using-cache=no --diff \nPHP CS Fixer 3.87.1 Alexander by Fabien Potencier, Dariusz Ruminski and contributors.\nPHP runtime: 8.3.30\nRunning analysis on 7 cores with 10 files per process.\nParallel runner is an experimental feature and may be unstable, use it at your own risk. Feedback highly appreciated!\nLoaded config default from \".php-cs-fixer.dist.php\".\n 2941/5688 [▓▓▓▓▓▓▓▓▓▓▓▓▓▓░░░░░░░░░░░░░░] 51%","depth":4,"on_screen":true,"value":"Last login: Mon May 18 09:17:28 on ttys007\n\nPoetry could not find a pyproject.toml file in /Users/lukas/jiminny/app or its parents\n\nPoetry could not find a pyproject.toml file in /Users/lukas/jiminny/app or its parents\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (pipedrive-sdk-poc) $ co master\nerror: Your local changes to the following files would be overwritten by checkout:\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tPIPEDRIVE_V2_MIGRATION_TICKETS.md\nPlease commit your changes or stash them before you switch branches.\nAborting\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (pipedrive-sdk-poc) $ git pull\nremote: Enumerating objects: 1047, done.\nremote: Counting objects: 100% (832/832), done.\nremote: Compressing objects: 100% (298/298), done.\nremote: Total 1047 (delta 634), reused 596 (delta 534), pack-reused 215 (from 3)\nReceiving objects: 100% (1047/1047), 353.16 KiB | 1.56 MiB/s, done.\nResolving deltas: 100% (687/687), completed with 107 local objects.\nFrom github.com:jiminny/app\n 907c54896c..34656c53ed pipedrive-sdk-poc -> origin/pipedrive-sdk-poc\n 03325ec50f..4e7078fd8b JY-18091-upgrade-to-php-8-5 -> origin/JY-18091-upgrade-to-php-8-5\n e7d231e163..bc6a3fce6b JY-20725-handle-HS-search-rate-limit -> origin/JY-20725-handle-HS-search-rate-limit\n * [new branch] JY-20749-user-can-view-recorded-meetings -> origin/JY-20749-user-can-view-recorded-meetings\n 98ca281a04..e0351be069 JY-20808-low-priority-indexing-queue -> origin/JY-20808-low-priority-indexing-queue\n 569abb5149..3906a9238a JY-20835-mcp-enable-users-to-get-a-list-of-deals-and-their-details -> origin/JY-20835-mcp-enable-users-to-get-a-list-of-deals-and-their-details\n ad6c2a86e8..50eb6afba9 JY-20846-mcp-enable-the-ai-to-know-details-about-the-user -> origin/JY-20846-mcp-enable-the-ai-to-know-details-about-the-user\n * [new branch] JY-20893-chunk-control-per-update-target -> origin/JY-20893-chunk-control-per-update-target\n 31c62924a5..cb4ebf0c36 master -> origin/master\nUpdating 907c54896c..34656c53ed\nFast-forward\n PIPEDRIVE_V2_MIGRATION_TICKETS.md | 52 ++++++++++++++++++++++++++++++++++++++++++++++++++++\n 1 file changed, 52 insertions(+)\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (pipedrive-sdk-poc) $ co master\nM\u0000\u0000\u0000\u0000\u0000\u0000\t.env.local\nM\u0000\u0000\u0000\u0000\u0000\u0000\tconfig/logging.php\nSwitched to branch 'master'\nYour branch is behind 'origin/master' by 31 commits, and can be fast-forwarded.\n (use \"git pull\" to update your local branch)\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (master) $ git pull\nUpdating 31c62924a5..cb4ebf0c36\nFast-forward\n app/Component/ES/Processor/Traits/SelectEntityListTrait.php | 20 ------\n app/Services/Calendar/CalendarActivityService.php | 46 +++++++++++++\n app/Services/Calendar/Command/MapActivityData.php | 106 +++-------------------------\n docs/mcp/explorer/explorer.html | 104 +++++++++++++++++++++++++---\n docs/mcp/explorer/explorer.template.html | 102 ++++++++++++++++++++++++---\n docs/mcp/tools-list.json | 373 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++-------\n docs/mcp/tools.md | 117 +++++++++++++++++++++++--------\n tests/Unit/Component/ES/AsyncUpdateElasticSearchTest.php | 16 +----\n tests/Unit/Component/ES/Listeners/UpdateMultipleTargetsListenerTest.php | 10 ---\n tests/Unit/Component/ES/Listeners/UpdateSingleTargetListenerTest.php | 6 --\n tests/Unit/Component/ES/Processor/TargetEntitiesSelectorTest.php | 9 ---\n tests/Unit/Component/ES/Processor/Traits/SelectEntityListTraitTest.php | 15 ++--\n tests/Unit/Component/ES/UpdateProcessManagerTest.php | 2 -\n tests/Unit/Services/Calendar/CalendarActivityServiceTest.php | 150 ++++++++++++++++++++++++++++++++++++++--\n tests/Unit/Services/Calendar/Command/MapActivityDataTest.php | 78 ++-------------------\n 15 files changed, 832 insertions(+), 322 deletions(-)\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (master) $ co -b JY-20613-allow-owner-role-on-team-setup\nSwitched to a new branch 'JY-20613-allow-owner-role-on-team-setup'\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20613-allow-owner-role-on-team-setup) $ csfix\ndocker exec -it docker_lamp_1 ./vendor/bin/php-cs-fixer fix --config=.php-cs-fixer.dist.php -v --using-cache=no --diff \nPHP CS Fixer 3.87.1 Alexander by Fabien Potencier, Dariusz Ruminski and contributors.\nPHP runtime: 8.3.30\nRunning analysis on 7 cores with 10 files per process.\nParallel runner is an experimental feature and may be unstable, use it at your own risk. Feedback highly appreciated!\nLoaded config default from \".php-cs-fixer.dist.php\".\n 5682/5682 [▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓] 100%\n\n\nFixed 0 of 5682 files in 56.978 seconds, 67.00 MB memory used\n\nWhat's next:\n Try Docker Debug for seamless, persistent debugging tools in any container or image → docker debug docker_lamp_1\n Learn more at https://docs.docker.com/go/debug-cli/\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20613-allow-owner-role-on-team-setup) $ ;xd\ndocker exec -it docker_lamp_1 bash -c \"mv /usr/local/etc/php/conf.d/xdebug.ini ~/xdebug.ini\"\n\nWhat's next:\n Try Docker Debug for seamless, persistent debugging tools in any container or image → docker debug docker_lamp_1\n Learn more at https://docs.docker.com/go/debug-cli/\ndocker exec -it docker_lamp_1 supervisorctl restart all\njiminny-worker-processing-2:jiminny-worker-processing-2_00: stopped\njiminny-worker-processing-3:jiminny-worker-processing-3_00: stopped\njiminny-worker-processing-4:jiminny-worker-processing-4_00: stopped\njiminny-worker-processing-5:jiminny-worker-processing-5_00: stopped\njiminny-worker-processing-delayed:jiminny-worker-processing-delayed_00: stopped\nworker-analytics:worker-analytics_00: stopped\nworker-crm-update:worker-crm-update_00: stopped\nworker-download:worker-download_00: stopped\nworker-nudges:worker-nudges_00: stopped\nartisan-schedule:artisan-schedule_00: stopped\nworker-emails:worker-emails_00: stopped\nworker-calendar:worker-calendar_00: stopped\nworker:worker_00: stopped\nworker-conferences:worker-conferences_00: stopped\nworker-crm-sync:worker-crm-sync_00: stopped\njiminny-worker-processing-1:jiminny-worker-processing-1_00: stopped\nworker-audio:worker-audio_00: stopped\nworker-es-update:worker-es-update_00: stopped\nartisan-schedule:artisan-schedule_00: started\njiminny-worker-processing-1:jiminny-worker-processing-1_00: started\njiminny-worker-processing-2:jiminny-worker-processing-2_00: started\njiminny-worker-processing-3:jiminny-worker-processing-3_00: started\njiminny-worker-processing-4:jiminny-worker-processing-4_00: started\njiminny-worker-processing-5:jiminny-worker-processing-5_00: started\njiminny-worker-processing-delayed:jiminny-worker-processing-delayed_00: started\nworker:worker_00: started\nworker-analytics:worker-analytics_00: started\nworker-audio:worker-audio_00: started\nworker-calendar:worker-calendar_00: started\nworker-conferences:worker-conferences_00: started\nworker-crm-sync:worker-crm-sync_00: started\nworker-crm-update:worker-crm-update_00: started\nworker-download:worker-download_00: started\nworker-emails:worker-emails_00: started\nworker-es-update:worker-es-update_00: started\nworker-nudges:worker-nudges_00: started\n\nWhat's next:\n Try Docker Debug for seamless, persistent debugging tools in any container or image → docker debug docker_lamp_1\n Learn more at https://docs.docker.com/go/debug-cli/\ndocker exec -it docker_lamp_1 php -v\nPHP 8.3.30 (cli) (built: Mar 16 2026 22:32:32) (NTS)\nCopyright (c) The PHP Group\nZend Engine v4.3.30, Copyright (c) Zend Technologies\n with Zend OPcache v8.3.30, Copyright (c), by Zend Technologies\n\nWhat's next:\n Try Docker Debug for seamless, persistent debugging tools in any container or image → docker debug docker_lamp_1\n Learn more at https://docs.docker.com/go/debug-cli/\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20613-allow-owner-role-on-team-setup) $ csfix\ndocker exec -it docker_lamp_1 ./vendor/bin/php-cs-fixer fix --config=.php-cs-fixer.dist.php -v --using-cache=no --diff \nPHP CS Fixer 3.87.1 Alexander by Fabien Potencier, Dariusz Ruminski and contributors.\nPHP runtime: 8.3.30\nRunning analysis on 7 cores with 10 files per process.\nParallel runner is an experimental feature and may be unstable, use it at your own risk. Feedback highly appreciated!\nLoaded config default from \".php-cs-fixer.dist.php\".\n 5682/5682 [▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓] 100%\n\n\nFixed 0 of 5682 files in 49.910 seconds, 60.00 MB memory used\n\nWhat's next:\n Try Docker Debug for seamless, persistent debugging tools in any container or image → docker debug docker_lamp_1\n Learn more at https://docs.docker.com/go/debug-cli/\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20613-allow-owner-role-on-team-setup) $ git status\nOn branch JY-20613-allow-owner-role-on-team-setup\nYour branch is ahead of 'origin/JY-20613-allow-owner-role-on-team-setup' by 1 commit.\n (use \"git push\" to publish your local commits)\n\nChanges not staged for commit:\n (use \"git add <file>...\" to update what will be committed)\n (use \"git restore <file>...\" to discard changes in working directory)\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tmodified: .env.local\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tmodified: config/logging.php\n\nUntracked files:\n (use \"git add <file>...\" to include in what will be committed)\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\t.env.nikilocal\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\t.env.other\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tWEBHOOK_FILTERING_IMPLEMENTATION.md\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tapp/Console/Commands/Crm/Hubspot/SimulateWebhooksCommand.php\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tapp/Console/Commands/Reports/CreateMockAskJiminnyReportResultCommand.php\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tids.txt\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tpublic/favicon.ico\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\traw_sql_query.sql\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\ttests/Unit/Policies/CanAccessAiReportsTest.php\n\nno changes added to commit (use \"git add\" and/or \"git commit -a\")\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20613-allow-owner-role-on-team-setup) $ git pull\nremote: Enumerating objects: 248, done.\nremote: Counting objects: 100% (128/128), done.\nremote: Compressing objects: 100% (23/23), done.\nremote: Total 59 (delta 43), reused 44 (delta 33), pack-reused 0 (from 0)\nUnpacking objects: 100% (59/59), 10.48 KiB | 228.00 KiB/s, done.\nFrom github.com:jiminny/app\n b7df560451..190239dfd4 JY-20613-allow-owner-role-on-team-setup -> origin/JY-20613-allow-owner-role-on-team-setup\n e0351be069..d94a285ae7 JY-20808-low-priority-indexing-queue -> origin/JY-20808-low-priority-indexing-queue\n * [new branch] JY-20920-fix-participant-matcher -> origin/JY-20920-fix-participant-matcher\n cb4ebf0c36..90bca4e4b2 master -> origin/master\nMerge made by the 'ort' strategy.\n app/Component/ES/ChunkSize.php | 54 +++++++++++++++++++++++++++\n app/Component/ES/Processor/DTOs/SelectionList.php | 4 +-\n app/Component/ES/Processor/TargetEntitiesSelector.php | 19 ++++++----\n app/Http/Middleware/McpTierMiddleware.php | 27 +++-----------\n app/Mcp/Servers/JiminnyServer.php | 2 +\n app/Mcp/Tools/GetMeTool.php | 157 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++\n app/Models/Feature/FeatureEnum.php | 1 +\n database/migrations/2026_05_13_124153_create_mcp_feature_flag.php | 25 +++++++++++++\n front-end/src/components/Settings/Kiosk/modals/EditTeamModal/EditTeamModal.vue | 52 ++++++++++++++++++--------\n front-end/src/components/Settings/Kiosk/modals/EditTeamModal/__tests__/EditTeamModal.spec.js | 14 +++++++\n tests/Feature/Mcp/GetMeToolFeatureTest.php | 140 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++\n tests/Feature/Mcp/ListCallsToolFeatureTest.php | 2 +-\n tests/Feature/Mcp/McpTestHelpersTrait.php | 19 +++++++++-\n tests/Unit/Component/ES/ChunkSizeTest.php | 50 +++++++++++++++++++++++++\n tests/Unit/Component/ES/Processor/DTOs/SelectionListTest.php | 27 ++++++++++----\n tests/Unit/Component/ES/Processor/TargetEntitiesSelectorTest.php | 39 +++++++++++---------\n 16 files changed, 557 insertions(+), 75 deletions(-)\n create mode 100644 app/Component/ES/ChunkSize.php\n create mode 100644 app/Mcp/Tools/GetMeTool.php\n create mode 100644 database/migrations/2026_05_13_124153_create_mcp_feature_flag.php\n create mode 100644 tests/Feature/Mcp/GetMeToolFeatureTest.php\n create mode 100644 tests/Unit/Component/ES/ChunkSizeTest.php\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20613-allow-owner-role-on-team-setup) $ git push\nEnumerating objects: 40, done.\nCounting objects: 100% (34/34), done.\nDelta compression using up to 8 threads\nCompressing objects: 100% (18/18), done.\nWriting objects: 100% (18/18), 1.58 KiB | 1.58 MiB/s, done.\nTotal 18 (delta 15), reused 0 (delta 0), pack-reused 0\nremote: Resolving deltas: 100% (15/15), completed with 13 local objects.\nTo github.com:jiminny/app.git\n 190239dfd4..ec1b261264 JY-20613-allow-owner-role-on-team-setup -> JY-20613-allow-owner-role-on-team-setup\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20613-allow-owner-role-on-team-setup) $ gbr\n* JY-20613-allow-owner-role-on-team-setup\n pipedrive-sdk-poc\n master\n JY-20903-update_activity-stage-on-opportunity-change\n JY-20904-fix-update-es-on-activity-command\n JY-20891-improve-sms-text-relays\n JY-20725-handle-HS-search-rate-limit\n JY-20818-move-AJ-reports-to-separated-datadog-metric\n JY-20773-fix-automated-reports-user-pilot-tracking\n JY-20157-AJ-report-not-send-notification\n JY-20508-notify-before-AJ-report-expiration\n JY-20372-ai-reports-promotion-pages\n JY-20352-sync-opportunities-without-a-local-owner-user-id-is-null\n JY-20738-debug-AJ-tracking-UP\n a\n JY-18909-automated-reports-ask-jiminny\n JY-20692-fix-integration-app-token-auth-response-change\n JY-20553-debug-crm-sync-delays\n JY-20698-fix-SF-activity-types-on-new-playbook\n JY-20543-AJ-report-tracking\n JY-20384-handle-auto-sync-with-no-access-to-event-type\n JY-20458-ask-jiminny-user-definitions\n JY-19666-fix-import-contacts-account-association\n JY-19666-HS-import-contacts-and-accounts-batch-job\n JY-20458-Ask-Jiminny-Reports\n JY-20200-batch-update-CRM-objects-Salesforce\n JY-19666-HS-webhooks-add-contact-and-company\n JY-20348-trigger-setup-DI-layout-on-team-creation\n JY-20326-refactor-info-message-in-command\n JY-20317-fix-auto-log-delay-issue-on-all-channels-disabled\n JY-20312-remove-on-update-change-last-synced-at-crm-configurations\n JY-20306-SF-skip-auto-sync-for-task-based-playbook\n JY-20192-remove-deleted-team-from-saved-search-filters\n JY-20197-import-opportunity-batch-job\n JY-20293-enable-status-field-for-pipedrive-deals\n JY-20191-remove-commands-interactive-prompts\n JY-20118-change-default-sync-strategy\n JY-20183-add-cache-on-auto-log-delay\n JY-20197-add-import-opportunity-batch-job\n 20118-hs-opportunity-make-webhook-strategy-default\n JY-20118-make-default-hs-opportunity-sync-strategy-webhook-based\n JY-20196-handle-opportunity-without-note\n JY-20118-improve-opportunity-import\n JY-20189-handle-activity-search-on-deleted-groups\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20613-allow-owner-role-on-team-setup) $ co JY-20725-handle-HS-search-rate-limit\nM\u0000\u0000\u0000\u0000\u0000\u0000\t.env.local\nM\u0000\u0000\u0000\u0000\u0000\u0000\tconfig/logging.php\nSwitched to branch 'JY-20725-handle-HS-search-rate-limit'\nYour branch is behind 'origin/JY-20725-handle-HS-search-rate-limit' by 439 commits, and can be fast-forwarded.\n (use \"git pull\" to update your local branch)\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20725-handle-HS-search-rate-limit) $ git pull\nUpdating 0f3e438941..bc6a3fce6b\nFast-forward\n .gitignore | 3 +-\n .windsurfrules | 168 ++---\n CLAUDE.md | 1 +\n app/Component/ActivityAnalytics/Service/CalculateTalkTimeOffsetsFromTranscription.php | 24 +-\n app/Component/AiActivityType/Services/AiActivityTypeEligibilityChecker.php | 28 +-\n app/Component/AiAutomation/Actions/PrepareUpdateDtoAction.php | 32 +-\n app/Component/AiAutomation/Services/CrmFillingEligibilityChecker.php | 47 ++\n app/Component/AiAutomation/TestCrmAiPromptService.php | 14 +\n app/Component/AiCallScoring/Services/AiCallScoringEligibilityChecker.php | 9 +\n app/Component/ES/ElasticSearchDocumentPartialUpdater.php | 13 +-\n app/Component/ES/ElasticSearchWorkerManager.php | 86 ---\n app/Component/ES/Processor/Actions/LoadDocumentsAction.php | 80 +--\n app/Component/ES/Processor/EntityQueryBuilder.php | 12 +-\n app/Component/ES/Processor/TargetEntitiesSelector.php | 2 +-\n app/Component/ES/Processor/Traits/SkipActivityTrait.php | 25 -\n app/Component/ES/Repositories/EsResetActivityRepository.php | 11 +-\n app/Component/ES/Worker/ActivityWorker.php | 73 --\n app/Component/ES/Worker/EntityWorker.php | 44 --\n app/Component/ES/Worker/WorkerAmount.php | 60 --\n app/Component/ES/Worker/WorkerInterface.php | 15 -\n app/Component/ElasticSearch/Contract/Searchable.php | 4 +\n app/Component/Encoding/Job/AnalyzeTrackChannelsJob.php | 20 +-\n app/Component/Encoding/Service/GenerateSpeechFromSilenceService.php | 85 ++-\n app/Component/FFMpeg/Services/GetSpeechIntervalsService.php | 18 +-\n app/Component/LanguageDetection/Services/FindSpeechTimeService.php | 22 +-\n app/Component/Nudge/Job/ProcessOrganisationImmediateNudgesJob.php | 218 +++++-\n app/Component/ParagraphBreaker/Services/TranscriptionParagraphsService.php | 4 +\n app/Component/ParticipantSpeech/Services/ParticipantSpeechesCreator.php | 33 +\n app/Component/ParticipantSpeech/Services/ParticipantSpeechesDeleter.php | 15 +\n app/Component/ParticipantSpeech/Services/ParticipantSpeechesProvider.php | 51 +-\n app/Component/ParticipantSpeech/Services/ParticipantSpeechesUploader.php | 36 +\n app/Component/ProphetAi/Exceptions/InsufficientTranscriptException.php | 11 +\n app/Component/Transcription/DTO/Http/Transcription/AssemblyAI/AssemblyAI/NoAssemblyIdException.php | 11 +\n app/Component/Transcription/DTO/Http/Transcription/AssemblyAI/AssemblyAI/SuccessfulResponse.php | 6 +\n app/Component/Transcription/DTO/Http/Transcription/TranscriptionIsNotCorrectFormatException.php | 11 +\n app/Component/Transcription/Diarization/Services/GetNormalizedParticipantSpeechesService.php | 23 +-\n app/Component/Transcription/Diarization/Source/MeetingBotSource.php | 16 +-\n app/Component/Transcription/TranscriptionProcessor/TranscriptionProcessor.php | 3 +\n app/Console/Commands/Activities/ActivityHardDeleteCommand.php | 4 +-\n app/Console/Commands/Activities/Copy.php | 2 +\n app/Console/Commands/Activities/SetupIntegration/TwilioSetS3RecordingCredentialsCommand.php | 119 ++++\n app/Console/Commands/Activities/UpdateActivityElasticSearchDocumentCommand.php | 10 +-\n app/Console/Commands/Crm/BackfillOpportunityUserFromAccountCommand.php | 126 ++++\n app/Console/Commands/Elasticsearch/AsyncUpdateEsActivities.php | 19 -\n app/Console/Commands/Elasticsearch/AsyncUpdateEsEntities.php | 50 +-\n app/Console/Commands/Elasticsearch/ResetAsyncElasticSearchCommand.php | 30 +-\n app/Console/Commands/GeckoExport/GeckoExportParticipantSpeechesCommand.php | 14 +-\n app/Console/Commands/IssueMcpTokenCommand.php | 84 +++\n app/Console/Commands/JiminnyDebugCommand.php | 7 +-\n app/Console/Commands/Tracks/CleanupActivityTracksCommand.php | 2 +-\n app/Console/Kernel.php | 6 +-\n app/Contracts/Services/Calendar/CalendarTrait.php | 80 ++-\n app/Events/AutomatedReports/AutomatedReportGenerated.php | 3 +\n app/Http/Controllers/API/AiCallScoring/AiScorecardController.php | 7 +-\n app/Http/Controllers/API/TeamAiAutomationController.php | 8 +\n app/Http/Controllers/CustomerApi/CustomerApiController.php | 4 +-\n app/Http/Controllers/Kiosk/ActivityController.php | 58 +-\n app/Http/Controllers/Settings/PlaybookController.php | 15 +-\n app/Http/Kernel.php | 23 +\n app/Http/Middleware/McpAuditMiddleware.php | 156 ++++\n app/Http/Middleware/McpTierMiddleware.php | 54 ++\n app/Http/Requests/API/V2/ZapierUploadActivityRequest.php | 28 +-\n app/Jobs/Activity/Import/ImportTwilioVideoSpeechesJob.php | 25 +-\n app/Jobs/Activity/Import/IsActivityReadyForProcessingJob.php | 10 +-\n app/Jobs/Calendar/SetupCalendarSync.php | 21 +-\n app/Jobs/ImportRemoteTrackJob.php | 96 ++-\n app/Jobs/Mailbox/EmailTextRelay.php | 15 +-\n app/Mcp/Contracts/McpCallRepositoryInterface.php | 30 +\n app/Mcp/DTO/ListCallsFilters.php | 29 +\n app/Mcp/Errors/McpError.php | 123 ++++\n app/Mcp/Repositories/McpActivityHydrator.php | 145 ++++\n app/Mcp/Repositories/McpCallRepository.php | 84 +++\n app/Mcp/Repositories/McpElasticCallRepository.php | 171 +++++\n app/Mcp/Servers/JiminnyServer.php | 38 +\n app/Mcp/Tools/ListCallsTool.php | 205 ++++++\n app/Models/Activity.php | 10 +-\n app/Models/Activity/Transcription.php | 17 +-\n app/Models/ElasticSearch/OpportunityElasticSearchTrait.php | 5 +\n app/Models/Participant.php | 1 +\n app/Providers/AppServiceProvider.php | 22 +\n app/Repositories/Crm/ContactRepository.php | 69 +-\n app/Repositories/ParticipantSpeechRepository.php | 13 +-\n app/Services/Activity/ParticipantsService.php | 19 +-\n app/Services/Activity/Twilio/S3RecordingCredentialsService.php | 82 +++\n app/Services/ActivityService.php | 21 +-\n app/Services/Calendar/CalendarActivityService.php | 46 ++\n app/Services/Calendar/Command/ImportParticipants.php | 1 +\n app/Services/Calendar/Command/MapActivityData.php | 106 +--\n app/Services/Calendar/GoogleCalendarService.php | 12 +-\n app/Services/Crm/Close/Processor/OpportunityProcessor.php | 2 +-\n app/Services/Crm/Close/Service.php | 22 +-\n app/Services/Crm/Copper/Service.php | 12 +-\n app/Services/Crm/Hubspot/Service.php | 154 +++-\n app/Services/Crm/Hubspot/ServiceTraits/OpportunitySyncTrait.php | 88 ++-\n app/Services/Crm/IntegrationApp/ServiceTraits/SyncCrmEntitiesTrait.php | 22 +-\n app/Services/Crm/Pipedrive/Service.php | 17 +-\n app/Services/Crm/Salesforce/Service.php | 42 +-\n app/Services/Mail/Office/EmailApiClient.php | 129 +---\n app/Services/RecallAI/Commands/ScheduleBotCommand.php | 39 +-\n app/Services/RecallAI/RecallAIService.php | 22 +-\n composer.json | 3 +-\n composer.lock | 87 ++-\n config/mcp.php | 23 +\n database/migrations/2026_04_30_120000_create_mcp_audit_log_table.php | 36 +\n docs/mcp/explorer/explorer.html | 697 ++++++++++++++++++\n docs/mcp/explorer/explorer.template.html | 697 ++++++++++++++++++\n docs/mcp/explorer/generate.js | 215 ++++++\n docs/mcp/explorer/tool-explorer-meta.json | 11 +\n docs/mcp/tools-list.json | 2536 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++\n docs/mcp/tools.md | 621 ++++++++++++++++\n front-end/package.json | 4 +-\n front-end/src/components/Settings/OrgSettings/AiAutomation/CrmFilling/TemplateFieldForm.vue | 28 +-\n front-end/src/components/Settings/OrgSettings/Playbooks/AddEditPlaybook.vue | 10 +\n front-end/src/components/playback/comments/ActivityComment.less | 10 +-\n front-end/src/components/shared/PromptTester/PromptTester.vue | 12 +-\n front-end/src/components/shared/__tests__/PromptTester.spec.js | 35 +\n front-end/src/components/shared/modals/EntityPickerModal/__tests__/useEntitiesCache.spec.ts | 37 +\n front-end/src/components/shared/modals/EntityPickerModal/useEntitiesCache.ts | 9 +\n front-end/yarn.lock | 16 +-\n phpstan-baseline.neon | 50 --\n routes/api.php | 11 +\n sonar-project.properties | 91 ++-\n tests/Feature/Component/Nudge/ProcessOrganisationImmediateNudgesJobTest.php | 534 ++++++++++++++\n tests/Feature/Jobs/ImportRemoteTrackJobTest.php | 283 +++++++-\n tests/Feature/Mcp/IssueMcpTokenCommandTest.php | 53 ++\n tests/Feature/Mcp/ListCallsToolElasticFeatureTest.php | 155 ++++\n tests/Feature/Mcp/ListCallsToolFeatureTest.php | 352 ++++++++++\n tests/Feature/Mcp/McpTestHelpersTrait.php | 77 ++\n tests/Feature/Services/Team/TeamDeleteHandlers/Retention/RetentionRepositoryHandlerTest.php | 1 +\n tests/Stubs/SentryStub.php | 18 +\n tests/Unit/Component/ActivityAnalytics/Service/CalculateTalkTimeOffsetFromTranscriptionTest.php | 28 +-\n tests/Unit/Component/AiActivityType/Services/AiActivityTypeEligibilityCheckerTest.php | 103 ++-\n tests/Unit/Component/AiAutomation/Actions/PrepareUpdateDtoActionTest.php | 91 +++\n tests/Unit/Component/AiAutomation/Services/CrmFillingEligibilityCheckerTest.php | 124 ++++\n tests/Unit/Component/AiAutomation/TestCrmAiPromptServiceTest.php | 67 +-\n tests/Unit/Component/AiCallScoring/Services/AiCallScoringEligibilityCheckerTest.php | 55 ++\n tests/Unit/Component/ES/ElasticSearchWorkerManagerTest.php | 135 ----\n tests/Unit/Component/ES/Processor/Actions/LoadDocumentsActionTest.php | 220 ++++++\n tests/Unit/Component/ES/Processor/EntityQueryBuilderTest.php | 21 +-\n tests/Unit/Component/ES/Processor/Traits/SkipActivityTraitTest.php | 51 --\n tests/Unit/Component/ES/Worker/ActivityWorkerTest.php | 174 -----\n tests/Unit/Component/ES/Worker/EntityWorkerTest.php | 97 ---\n tests/Unit/Component/ES/Worker/WorkerAmountTest.php | 116 ---\n tests/Unit/Component/Encoding/Job/AnalyzeTrackChannelsJobTest.php | 52 +-\n tests/Unit/Component/Encoding/Service/GenerateSpeechFromSilenceServiceTest.php | 171 ++---\n tests/Unit/Component/FFMpeg/Services/GetSpeechIntervalsTest.php | 36 +-\n tests/Unit/Component/LanguageDetection/Services/FindSpeechTimeServiceTest.php | 20 +-\n tests/Unit/Component/MobileSettings/MobileSettingsControllerTest.php | 5 +-\n tests/Unit/Component/ParticipantSpeech/Services/ParticipantSpeechesCreatorTest.php | 75 ++\n tests/Unit/Component/ParticipantSpeech/Services/ParticipantSpeechesDeleterTest.php | 63 ++\n tests/Unit/Component/ParticipantSpeech/Services/ParticipantSpeechesProviderTest.php | 134 ++++\n tests/Unit/Component/ParticipantSpeech/Services/ParticipantSpeechesUploaderTest.php | 57 ++\n tests/Unit/Component/Transcription/Diarization/Services/GetNormalizedParticipantSpeechesServiceTest.php | 51 +-\n tests/Unit/Component/Transcription/Diarization/Source/MeetingBotSourceTest.php | 29 +-\n tests/Unit/Contracts/Services/Calendar/CalendarTraitTest.php | 58 +-\n tests/Unit/Http/Controllers/Kiosk/ActivityControllerTest.php | 159 +++++\n tests/Unit/Jobs/Activity/Import/ImportTwilioVideoSpeechesJobTest.php | 22 +-\n tests/Unit/Jobs/Activity/Import/IsActivityReadyForProcessingJobTest.php | 26 +-\n tests/Unit/Jobs/Calendar/SetupCalendarSyncTest.php | 25 -\n tests/Unit/Services/Activity/ParticipantsServiceTest.php | 12 +-\n tests/Unit/Services/Activity/Twilio/S3RecordingCredentialsServiceTest.php | 180 +++++\n tests/Unit/Services/ActivityServiceTest.php | 132 ++++\n tests/Unit/Services/Calendar/CalendarActivityServiceTest.php | 150 +++-\n tests/Unit/Services/Calendar/Command/ImportParticipantsTest.php | 6 +-\n tests/Unit/Services/Calendar/Command/MapActivityDataTest.php | 78 +-\n tests/Unit/Services/Calendar/GoogleCalendarServiceTest.php | 116 +++\n tests/Unit/Services/Crm/Close/ServiceTest.php | 165 +++++\n tests/Unit/Services/Crm/Hubspot/ServiceTest.php | 272 ++++++-\n tests/Unit/Services/Crm/Hubspot/ServiceTraits/OpportunitySyncTest.php | 25 +-\n tests/Unit/Services/Crm/Hubspot/ServiceTraits/OpportunitySyncTraitMatchActivitiesTest.php | 3 +-\n tests/Unit/Services/Crm/IntegrationApp/ServiceTraits/SyncCrmEntitiesTraitOpportunitiesTest.php | 40 ++\n tests/Unit/Services/Crm/Pipedrive/ImportOpportunityMatchActivitiesTest.php | 2 +\n tests/Unit/Services/Crm/Salesforce/ServiceTest.php | 139 ++++\n tests/Unit/Services/Mail/Office/EmailApiClientTest.php | 195 ++---\n tests/Unit/Services/RecallAI/RecallAIServiceTest.php | 24 +-\n 175 files changed, 12562 insertions(+), 2162 deletions(-)\n create mode 120000 CLAUDE.md\n create mode 100644 app/Component/AiAutomation/Services/CrmFillingEligibilityChecker.php\n delete mode 100644 app/Component/ES/ElasticSearchWorkerManager.php\n delete mode 100644 app/Component/ES/Processor/Traits/SkipActivityTrait.php\n delete mode 100644 app/Component/ES/Worker/ActivityWorker.php\n delete mode 100644 app/Component/ES/Worker/EntityWorker.php\n delete mode 100644 app/Component/ES/Worker/WorkerAmount.php\n delete mode 100644 app/Component/ES/Worker/WorkerInterface.php\n create mode 100644 app/Component/ProphetAi/Exceptions/InsufficientTranscriptException.php\n create mode 100644 app/Component/Transcription/DTO/Http/Transcription/AssemblyAI/AssemblyAI/NoAssemblyIdException.php\n create mode 100644 app/Component/Transcription/DTO/Http/Transcription/TranscriptionIsNotCorrectFormatException.php\n create mode 100644 app/Console/Commands/Activities/SetupIntegration/TwilioSetS3RecordingCredentialsCommand.php\n create mode 100644 app/Console/Commands/Crm/BackfillOpportunityUserFromAccountCommand.php\n delete mode 100644 app/Console/Commands/Elasticsearch/AsyncUpdateEsActivities.php\n create mode 100644 app/Console/Commands/IssueMcpTokenCommand.php\n create mode 100644 app/Http/Middleware/McpAuditMiddleware.php\n create mode 100644 app/Http/Middleware/McpTierMiddleware.php\n create mode 100644 app/Mcp/Contracts/McpCallRepositoryInterface.php\n create mode 100644 app/Mcp/DTO/ListCallsFilters.php\n create mode 100644 app/Mcp/Errors/McpError.php\n create mode 100644 app/Mcp/Repositories/McpActivityHydrator.php\n create mode 100644 app/Mcp/Repositories/McpCallRepository.php\n create mode 100644 app/Mcp/Repositories/McpElasticCallRepository.php\n create mode 100644 app/Mcp/Servers/JiminnyServer.php\n create mode 100644 app/Mcp/Tools/ListCallsTool.php\n create mode 100644 app/Services/Activity/Twilio/S3RecordingCredentialsService.php\n create mode 100644 config/mcp.php\n create mode 100644 database/migrations/2026_04_30_120000_create_mcp_audit_log_table.php\n create mode 100644 docs/mcp/explorer/explorer.html\n create mode 100644 docs/mcp/explorer/explorer.template.html\n create mode 100644 docs/mcp/explorer/generate.js\n create mode 100644 docs/mcp/explorer/tool-explorer-meta.json\n create mode 100644 docs/mcp/tools-list.json\n create mode 100644 docs/mcp/tools.md\n create mode 100644 front-end/src/components/shared/modals/EntityPickerModal/__tests__/useEntitiesCache.spec.ts\n create mode 100644 tests/Feature/Component/Nudge/ProcessOrganisationImmediateNudgesJobTest.php\n create mode 100644 tests/Feature/Mcp/IssueMcpTokenCommandTest.php\n create mode 100644 tests/Feature/Mcp/ListCallsToolElasticFeatureTest.php\n create mode 100644 tests/Feature/Mcp/ListCallsToolFeatureTest.php\n create mode 100644 tests/Feature/Mcp/McpTestHelpersTrait.php\n create mode 100644 tests/Stubs/SentryStub.php\n create mode 100644 tests/Unit/Component/AiAutomation/Services/CrmFillingEligibilityCheckerTest.php\n delete mode 100644 tests/Unit/Component/ES/ElasticSearchWorkerManagerTest.php\n create mode 100644 tests/Unit/Component/ES/Processor/Actions/LoadDocumentsActionTest.php\n delete mode 100644 tests/Unit/Component/ES/Processor/Traits/SkipActivityTraitTest.php\n delete mode 100644 tests/Unit/Component/ES/Worker/ActivityWorkerTest.php\n delete mode 100644 tests/Unit/Component/ES/Worker/EntityWorkerTest.php\n delete mode 100644 tests/Unit/Component/ES/Worker/WorkerAmountTest.php\n create mode 100644 tests/Unit/Component/ParticipantSpeech/Services/ParticipantSpeechesCreatorTest.php\n create mode 100644 tests/Unit/Http/Controllers/Kiosk/ActivityControllerTest.php\n create mode 100644 tests/Unit/Services/Activity/Twilio/S3RecordingCredentialsServiceTest.php\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20725-handle-HS-search-rate-limit) $ git status\nOn branch master\nYour branch is behind 'origin/master' by 114 commits, and can be fast-forwarded.\n (use \"git pull\" to update your local branch)\n\nChanges not staged for commit:\n (use \"git add <file>...\" to update what will be committed)\n (use \"git restore <file>...\" to discard changes in working directory)\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tmodified: .env.local\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tmodified: app/Component/SCIM/Constants.php\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tmodified: app/Component/SCIM/ScimProvisioning.php\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tmodified: app/Component/Twilio/Conference/ConferenceManager/SoftPhoneManager.php\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tmodified: app/Console/Commands/JiminnyDebugCommand.php\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tmodified: app/DTO/SCIM/AAD/Request/CoreUserRequest.php\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tmodified: app/DTO/SCIM/AAD/Response/CoreUser.php\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tmodified: app/Services/Telephony/TextMessagingService.php\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tmodified: config/logging.php\n\nUntracked files:\n (use \"git add <file>...\" to include in what will be committed)\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\t.env.nikilocal\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\t.env.other\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tWEBHOOK_FILTERING_IMPLEMENTATION.md\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tapp/Component/SCIM/Mutators/Attributes/User/RoleAttr.php\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tapp/Console/Commands/Crm/Hubspot/SimulateWebhooksCommand.php\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tapp/Console/Commands/Reports/CreateMockAskJiminnyReportResultCommand.php\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tapp/Rules/ListenerRoleCannotHaveAdminOrManagerPermissionRule.php\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tids.txt\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tpublic/favicon.ico\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\traw_sql_query.sql\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\ttests/Unit/Component/SCIM/Mutators/Attributes/User/RoleAttrTest.php\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\ttests/Unit/Policies/CanAccessAiReportsTest.php\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\ttests/Unit/Rules/ListenerRoleCannotHaveAdminOrManagerPermissionRuleTest.php\n\nno changes added to commit (use \"git add\" and/or \"git commit -a\")\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (master) $ git pull\nremote: Enumerating objects: 306, done.\nremote: Counting objects: 100% (299/299), done.\nremote: Compressing objects: 100% (183/183), done.\nremote: Total 306 (delta 213), reused 171 (delta 116), pack-reused 7 (from 1)\nReceiving objects: 100% (306/306), 80.12 KiB | 1000.00 KiB/s, done.\nResolving deltas: 100% (213/213), completed with 53 local objects.\nFrom github.com:jiminny/app\n 90bca4e4b2..5604af40cf master -> origin/master\n 4e7078fd8b..0b8343d179 JY-18091-upgrade-to-php-8-5 -> origin/JY-18091-upgrade-to-php-8-5\n 098eeaa087..d5a447e492 JY-20613-allow-owner-role-on-team-setup -> origin/JY-20613-allow-owner-role-on-team-setup\n c3a76ace91..af65249d0f JY-20749-user-can-view-recorded-meetings -> origin/JY-20749-user-can-view-recorded-meetings\n d94a285ae7..7ce96cb5fe JY-20808-low-priority-indexing-queue -> origin/JY-20808-low-priority-indexing-queue\n * [new branch] JY-20842-remove-partial-updater -> origin/JY-20842-remove-partial-updater\n * [new branch] JY-20920-fix-participant-flip -> origin/JY-20920-fix-participant-flip\n * [new branch] secfix/npm-20260519 -> origin/secfix/npm-20260519\nUpdating cb4ebf0c36..5604af40cf\nFast-forward\n app/Component/ES/ChunkSize.php | 54 +++++++++++++++++++\n app/Component/ES/Processor/DTOs/SelectionList.php | 4 +-\n app/Component/ES/Processor/TargetEntitiesSelector.php | 19 ++++---\n app/Component/MeetingBot/Service/ParticipantMatcher.php | 46 ++++++++++++----\n app/Exceptions/RateLimitException.php | 19 ++++++-\n app/Http/Middleware/McpTierMiddleware.php | 27 ++--------\n app/Jobs/Crm/MatchActivityCrmData.php | 47 ++++++++++++----\n app/Jobs/Middleware/HandleHubspotRateLimit.php | 42 +++++++++++++++\n app/Mcp/Servers/JiminnyServer.php | 2 +\n app/Mcp/Tools/GetMeTool.php | 157 +++++++++++++++++++++++++++++++++++++++++++++++++++++\n app/Models/Feature/FeatureEnum.php | 1 +\n app/Services/Activity/HubSpot/ProviderResolver.php | 4 +-\n app/Services/Activity/HubSpot/ProviderResolverInterface.php | 2 +-\n app/Services/Activity/HubSpot/Providers/Provider.php | 2 +-\n app/Services/Activity/HubSpot/Providers/ProviderKixie.php | 2 +-\n app/Services/Activity/HubSpot/Providers/ProviderOrum.php | 2 +-\n app/Services/Activity/HubSpot/Providers/ProviderTwilio.php | 2 +-\n app/Services/Activity/HubSpot/Providers/ProviderTwilioFlex.php | 5 +-\n app/Services/Activity/HubSpot/Service.php | 97 +++++++++++++++++++++++++++------\n app/Services/Crm/Hubspot/Client.php | 132 +++++++++++++++++++++++++++++++++++++++++++++\n app/Services/Crm/Hubspot/HubspotClientInterface.php | 15 ++++++\n app/Services/Crm/Hubspot/Pagination/HubspotPaginationService.php | 21 ++++----\n app/Services/Crm/Hubspot/Pagination/PaginationState.php | 2 +-\n database/migrations/2026_05_13_124153_create_mcp_feature_flag.php | 25 +++++++++\n tests/Feature/Mcp/GetMeToolFeatureTest.php | 140 +++++++++++++++++++++++++++++++++++++++++++++++\n tests/Feature/Mcp/ListCallsToolFeatureTest.php | 2 +-\n tests/Feature/Mcp/McpTestHelpersTrait.php | 19 ++++++-\n tests/Unit/Component/ES/ChunkSizeTest.php | 50 +++++++++++++++++\n tests/Unit/Component/ES/Processor/DTOs/SelectionListTest.php | 27 +++++++---\n tests/Unit/Component/ES/Processor/TargetEntitiesSelectorTest.php | 39 ++++++++------\n tests/Unit/Component/MeetingBot/Service/ParticipantMatcherTest.php | 68 ++++++++++++++++++++++-\n tests/Unit/Exceptions/RateLimitExceptionTest.php | 56 +++++++++++++++++++\n tests/Unit/Jobs/Crm/MatchActivityCrmDataTest.php | 8 +--\n tests/Unit/Jobs/Middleware/HandleHubspotRateLimitTest.php | 151 +++++++++++++++++++++++++++++++++++++++++++++++++++\n tests/Unit/Services/Activity/HubSpot/ServiceTest.php | 109 +++++++++++++++++++++++++++++++++++++\n tests/Unit/Services/Crm/Hubspot/ClientTest.php | 250 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++\n tests/Unit/Services/Crm/Hubspot/Pagination/HubspotPaginationServiceTest.php | 283 +++++++++++++++++++++---------------------------------------------------------------------------\n 37 files changed, 1587 insertions(+), 344 deletions(-)\n create mode 100644 app/Component/ES/ChunkSize.php\n create mode 100644 app/Jobs/Middleware/HandleHubspotRateLimit.php\n create mode 100644 app/Mcp/Tools/GetMeTool.php\n create mode 100644 database/migrations/2026_05_13_124153_create_mcp_feature_flag.php\n create mode 100644 tests/Feature/Mcp/GetMeToolFeatureTest.php\n create mode 100644 tests/Unit/Component/ES/ChunkSizeTest.php\n create mode 100644 tests/Unit/Exceptions/RateLimitExceptionTest.php\n create mode 100644 tests/Unit/Jobs/Middleware/HandleHubspotRateLimitTest.php\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (master) $ git pull\nAlready up to date.\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (master) $ co -b JY-20676-delete-report-related-objects\nSwitched to a new branch 'JY-20676-delete-report-related-objects'\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20676-delete-report-related-objects) $ csfix\ndocker exec -it docker_lamp_1 ./vendor/bin/php-cs-fixer fix --config=.php-cs-fixer.dist.php -v --using-cache=no --diff \nPHP CS Fixer 3.87.1 Alexander by Fabien Potencier, Dariusz Ruminski and contributors.\nPHP runtime: 8.3.30\nRunning analysis on 7 cores with 10 files per process.\nParallel runner is an experimental feature and may be unstable, use it at your own risk. Feedback highly appreciated!\nLoaded config default from \".php-cs-fixer.dist.php\".\n 5690/5690 [▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓] 100%\n\n 1) app/Console/Commands/JiminnyDebugCommand.php (statement_indentation, blank_line_before_statement)\n ---------- begin diff ----------\n--- /home/jiminny/app/Console/Commands/JiminnyDebugCommand.php\n+++ /home/jiminny/app/Console/Commands/JiminnyDebugCommand.php\n@@ -23,6 +23,7 @@\n \n if ($action === 'redis-set') {\n $this->testRedisSet();\n+\n return;\n }\n \n@@ -45,7 +46,7 @@\n $ttl = 60;\n \n try {\n-// $result = Redis::set($testKey, $testValue, 'EX', $ttl, 'NX');\n+ // $result = Redis::set($testKey, $testValue, 'EX', $ttl, 'NX');\n $result = Redis::set($testKey, $testValue, ['nx', 'ex' => $ttl]);\n \n if ($result) {\n\n ----------- end diff -----------\n\n\nFixed 1 of 5690 files in 50.673 seconds, 67.00 MB memory used\n\nWhat's next:\n Try Docker Debug for seamless, persistent debugging tools in any container or image → docker debug docker_lamp_1\n Learn more at https://docs.docker.com/go/debug-cli/\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20676-delete-report-related-objects) $ ;xd\ndocker exec -it docker_lamp_1 bash -c \"mv /usr/local/etc/php/conf.d/xdebug.ini ~/xdebug.ini\"\n\nWhat's next:\n Try Docker Debug for seamless, persistent debugging tools in any container or image → docker debug docker_lamp_1\n Learn more at https://docs.docker.com/go/debug-cli/\ndocker exec -it docker_lamp_1 supervisorctl restart all\njiminny-worker-processing-2:jiminny-worker-processing-2_00: stopped\njiminny-worker-processing-3:jiminny-worker-processing-3_00: stopped\njiminny-worker-processing-4:jiminny-worker-processing-4_00: stopped\njiminny-worker-processing-5:jiminny-worker-processing-5_00: stopped\njiminny-worker-processing-delayed:jiminny-worker-processing-delayed_00: stopped\nworker-analytics:worker-analytics_00: stopped\nworker-crm-update:worker-crm-update_00: stopped\nworker-download:worker-download_00: stopped\nworker-nudges:worker-nudges_00: stopped\nworker-calendar:worker-calendar_00: stopped\nworker-audio:worker-audio_00: stopped\njiminny-worker-processing-1:jiminny-worker-processing-1_00: stopped\nworker:worker_00: stopped\nworker-conferences:worker-conferences_00: stopped\nworker-crm-sync:worker-crm-sync_00: stopped\nworker-emails:worker-emails_00: stopped\nworker-es-update:worker-es-update_00: stopped\nartisan-schedule:artisan-schedule_00: stopped\nartisan-schedule:artisan-schedule_00: started\njiminny-worker-processing-1:jiminny-worker-processing-1_00: started\njiminny-worker-processing-2:jiminny-worker-processing-2_00: started\njiminny-worker-processing-3:jiminny-worker-processing-3_00: started\njiminny-worker-processing-4:jiminny-worker-processing-4_00: started\njiminny-worker-processing-5:jiminny-worker-processing-5_00: started\njiminny-worker-processing-delayed:jiminny-worker-processing-delayed_00: started\nworker:worker_00: started\nworker-analytics:worker-analytics_00: started\nworker-audio:worker-audio_00: started\nworker-calendar:worker-calendar_00: started\nworker-conferences:worker-conferences_00: started\nworker-crm-sync:worker-crm-sync_00: started\nworker-crm-update:worker-crm-update_00: started\nworker-download:worker-download_00: started\nworker-emails:worker-emails_00: started\nworker-es-update:worker-es-update_00: started\nworker-nudges:worker-nudges_00: started\n\nWhat's next:\n Try Docker Debug for seamless, persistent debugging tools in any container or image → docker debug docker_lamp_1\n Learn more at https://docs.docker.com/go/debug-cli/\ndocker exec -it docker_lamp_1 php -v\nPHP 8.3.30 (cli) (built: Mar 16 2026 22:32:32) (NTS)\nCopyright (c) The PHP Group\nZend Engine v4.3.30, Copyright (c) Zend Technologies\n with Zend OPcache v8.3.30, Copyright (c), by Zend Technologies\n\nWhat's next:\n Try Docker Debug for seamless, persistent debugging tools in any container or image → docker debug docker_lamp_1\n Learn more at https://docs.docker.com/go/debug-cli/\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20676-delete-report-related-objects) $ git status\nOn branch JY-20676-delete-report-related-objects\nChanges not staged for commit:\n (use \"git add <file>...\" to update what will be committed)\n (use \"git restore <file>...\" to discard changes in working directory)\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tmodified: .env.local\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tmodified: app/Console/Commands/JiminnyDebugCommand.php\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tmodified: config/logging.php\n\nUntracked files:\n (use \"git add <file>...\" to include in what will be committed)\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\t.env.nikilocal\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\t.env.other\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tWEBHOOK_FILTERING_IMPLEMENTATION.md\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tapp/Console/Commands/Crm/Hubspot/SimulateWebhooksCommand.php\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tapp/Console/Commands/Reports/CreateMockAskJiminnyReportResultCommand.php\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tids.txt\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tpublic/favicon.ico\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\traw_sql_query.sql\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\ttests/Unit/Policies/CanAccessAiReportsTest.php\n\nno changes added to commit (use \"git add\" and/or \"git commit -a\")\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20676-delete-report-related-objects) $ git push -u origin JY-20676-delete-report-related-objects\nEnumerating objects: 45, done.\nCounting objects: 100% (45/45), done.\nDelta compression using up to 8 threads\nCompressing objects: 100% (24/24), done.\nWriting objects: 100% (24/24), 3.62 KiB | 3.62 MiB/s, done.\nTotal 24 (delta 19), reused 0 (delta 0), pack-reused 0\nremote: Resolving deltas: 100% (19/19), completed with 19 local objects.\nremote: \nremote: Create a pull request for 'JY-20676-delete-report-related-objects' on GitHub by visiting:\nremote: https://github.com/jiminny/app/pull/new/JY-20676-delete-report-related-objects\nremote: \nTo github.com:jiminny/app.git\n * [new branch] JY-20676-delete-report-related-objects -> JY-20676-delete-report-related-objects\nbranch 'JY-20676-delete-report-related-objects' set up to track 'origin/JY-20676-delete-report-related-objects'.\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20676-delete-report-related-objects) $ csfix\ndocker exec -it docker_lamp_1 ./vendor/bin/php-cs-fixer fix --config=.php-cs-fixer.dist.php -v --using-cache=no --diff \nPHP CS Fixer 3.87.1 Alexander by Fabien Potencier, Dariusz Ruminski and contributors.\nPHP runtime: 8.3.30\nRunning analysis on 7 cores with 10 files per process.\nParallel runner is an experimental feature and may be unstable, use it at your own risk. Feedback highly appreciated!\nLoaded config default from \".php-cs-fixer.dist.php\".\n 5690/5690 [▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓] 100%\n\n 1) app/Http/Controllers/API/V2/AskJiminnyReportsController.php (blank_line_before_statement)\n ---------- begin diff ----------\n--- /home/jiminny/app/Http/Controllers/API/V2/AskJiminnyReportsController.php\n+++ /home/jiminny/app/Http/Controllers/API/V2/AskJiminnyReportsController.php\n@@ -140,6 +140,7 @@\n if ($enabled && $report->isAskJiminnyReport() && ! $report->canExecute()) {\n $error = 'This report is missing a saved search or prompt. ' .\n 'Edit the report to complete the setup before enabling it.';\n+\n return new JsonResponse(\n ['error' => $error],\n Response::HTTP_UNPROCESSABLE_ENTITY\n\n ----------- end diff -----------\n\n\nFixed 1 of 5690 files in 71.757 seconds, 60.00 MB memory used\n\nWhat's next:\n Try Docker Debug for seamless, persistent debugging tools in any container or image → docker debug docker_lamp_1\n Learn more at https://docs.docker.com/go/debug-cli/\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20676-delete-report-related-objects) $ git pull\nremote: Enumerating objects: 158, done.\nremote: Counting objects: 100% (103/103), done.\nremote: Compressing objects: 100% (37/37), done.\nremote: Total 158 (delta 80), reused 74 (delta 66), pack-reused 55 (from 3)\nReceiving objects: 100% (158/158), 80.59 KiB | 982.00 KiB/s, done.\nResolving deltas: 100% (85/85), completed with 45 local objects.\nFrom github.com:jiminny/app\n 02a33811ee..c6ce5e2440 JY-20676-delete-report-related-objects -> origin/JY-20676-delete-report-related-objects\n 7ce96cb5fe..6c59f04358 JY-20808-low-priority-indexing-queue -> origin/JY-20808-low-priority-indexing-queue\n 3906a9238a..2b5e6ea62b JY-20835-mcp-enable-users-to-get-a-list-of-deals-and-their-details -> origin/JY-20835-mcp-enable-users-to-get-a-list-of-deals-and-their-details\n 5604af40cf..ea3519f0e2 master -> origin/master\n * [new branch] switch-eu-assembly -> origin/switch-eu-assembly\nUpdating 02a33811ee..c6ce5e2440\nFast-forward\n app/Component/ES/ElasticSearchDocumentPartialUpdater.php | 48 ---\n app/Component/ParticipantSpeech/Services/ParticipantAttributionService.php | 4 +-\n app/Component/Settings/AutoScoring/Services/UpdateAutoScoreService.php | 20 +-\n app/Component/Transcription/Service/StorageService.php | 8 +-\n front-end/package.json | 2 +-\n front-end/src/components/DealInsights/Modals/AskAnythingModal.vue | 23 ++\n front-end/src/components/shared/AskAnything/AskAnythingPromptFormItem.vue | 2 +\n front-end/src/components/shared/AskAnything/AskAnythingSettingsDrawer.vue | 23 +-\n front-end/src/components/shared/AskAnything/__mocks__/AskAnythingSettingsDrawer.mocks.js | 1 +\n front-end/src/components/shared/AskAnything/__tests__/AskAnythingSettingsDrawer.spec.js | 135 ++++---\n front-end/src/components/shared/AskAnything/__tests__/__snapshots__/AskAnythingSettingsDrawer.spec.js.html | 1235 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++\n front-end/src/components/shared/AskAnything/__tests__/__snapshots__/AskAnythingSettingsDrawer.spec.js.snap | 1382 ----------------------------------------------------------------\n front-end/src/components/shared/AskAnything/prompts.js | 1 +\n front-end/src/components/shared/AskAnything/useAskAnything.js | 1 +\n front-end/yarn.lock | 8 +-\n tests/Unit/Component/ES/ElasticSearchDocumentPartialUpdaterTest.php | 42 --\n tests/Unit/Component/Settings/AutoScoring/Services/UpdateAutoScoreServiceTest.php | 86 ++--\n tests/Unit/Component/Transcription/Service/StorageServiceTest.php | 29 +-\n 18 files changed, 1448 insertions(+), 1602 deletions(-)\n delete mode 100644 app/Component/ES/ElasticSearchDocumentPartialUpdater.php\n create mode 100644 front-end/src/components/shared/AskAnything/__tests__/__snapshots__/AskAnythingSettingsDrawer.spec.js.html\n delete mode 100644 front-end/src/components/shared/AskAnything/__tests__/__snapshots__/AskAnythingSettingsDrawer.spec.js.snap\n delete mode 100644 tests/Unit/Component/ES/ElasticSearchDocumentPartialUpdaterTest.php\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20676-delete-report-related-objects) $ csfix\ndocker exec -it docker_lamp_1 ./vendor/bin/php-cs-fixer fix --config=.php-cs-fixer.dist.php -v --using-cache=no --diff \nPHP CS Fixer 3.87.1 Alexander by Fabien Potencier, Dariusz Ruminski and contributors.\nPHP runtime: 8.3.30\nRunning analysis on 7 cores with 10 files per process.\nParallel runner is an experimental feature and may be unstable, use it at your own risk. Feedback highly appreciated!\nLoaded config default from \".php-cs-fixer.dist.php\".\n 2941/5688 [▓▓▓▓▓▓▓▓▓▓▓▓▓▓░░░░░░░░░░░░░░] 51%","is_focused":true},{"role":"AXRadioButton","text":"DOCKER","depth":2,"bounds":{"left":0.27027926,"top":1.0,"width":0.094913565,"height":-0.042298436},"on_screen":true,"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.27227393,"top":1.0,"width":0.005319149,"height":-0.04549086},"on_screen":true,"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"DEV (docker)","depth":2,"bounds":{"left":0.36519283,"top":1.0,"width":0.094913565,"height":-0.042298436},"on_screen":true,"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.3671875,"top":1.0,"width":0.005319149,"height":-0.04549086},"on_screen":true,"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"APP (docker)","depth":2,"bounds":{"left":0.46010637,"top":1.0,"width":0.09474734,"height":-0.042298436},"on_screen":true,"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.46210107,"top":1.0,"width":0.005319149,"height":-0.04549086},"on_screen":true,"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"screenpipe\"","depth":2,"bounds":{"left":0.55485374,"top":1.0,"width":0.09474734,"height":-0.042298436},"on_screen":true,"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.5568484,"top":1.0,"width":0.005319149,"height":-0.04549086},"on_screen":true,"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"-zsh","depth":2,"bounds":{"left":0.64960104,"top":1.0,"width":0.09474734,"height":-0.042298436},"on_screen":true,"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.6515958,"top":1.0,"width":0.005319149,"height":-0.04549086},"on_screen":true,"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"⌥⌘1","depth":1,"bounds":{"left":0.7307181,"top":1.0,"width":0.01861702,"height":-0.023144484},"on_screen":true,"automation_id":"_NS:8","role_description":"text"},{"role":"AXStaticText","text":"APP (docker)","depth":1,"bounds":{"left":0.49634308,"top":1.0,"width":0.029920213,"height":-0.02394259},"on_screen":true,"role_description":"text"}]...
|
2802650493718167367
|
-1358120912881272742
|
idle
|
accessibility
|
NULL
|
Last login: Mon May 18 09:17:28 on ttys007
Poetry Last login: Mon May 18 09:17:28 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 (pipedrive-sdk-poc) $ co master
error: Your local changes to the following files would be overwritten by checkout:
PIPEDRIVE_V2_MIGRATION_TICKETS.md
Please commit your changes or stash them before you switch branches.
Aborting
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (pipedrive-sdk-poc) $ git pull
remote: Enumerating objects: 1047, done.
remote: Counting objects: 100% (832/832), done.
remote: Compressing objects: 100% (298/298), done.
remote: Total 1047 (delta 634), reused 596 (delta 534), pack-reused 215 (from 3)
Receiving objects: 100% (1047/1047), 353.16 KiB | 1.56 MiB/s, done.
Resolving deltas: 100% (687/687), completed with 107 local objects.
From github.com:jiminny/app
907c54896c..34656c53ed pipedrive-sdk-poc -> origin/pipedrive-sdk-poc
03325ec50f..4e7078fd8b JY-18091-upgrade-to-php-8-5 -> origin/JY-18091-upgrade-to-php-8-5
e7d231e163..bc6a3fce6b JY-20725-handle-HS-search-rate-limit -> origin/JY-20725-handle-HS-search-rate-limit
* [new branch] JY-20749-user-can-view-recorded-meetings -> origin/JY-20749-user-can-view-recorded-meetings
98ca281a04..e0351be069 JY-20808-low-priority-indexing-queue -> origin/JY-20808-low-priority-indexing-queue
569abb5149..3906a9238a JY-20835-mcp-enable-users-to-get-a-list-of-deals-and-their-details -> origin/JY-20835-mcp-enable-users-to-get-a-list-of-deals-and-their-details
ad6c2a86e8..50eb6afba9 JY-20846-mcp-enable-the-ai-to-know-details-about-the-user -> origin/JY-20846-mcp-enable-the-ai-to-know-details-about-the-user
* [new branch] JY-20893-chunk-control-per-update-target -> origin/JY-20893-chunk-control-per-update-target
31c62924a5..cb4ebf0c36 master -> origin/master
Updating 907c54896c..34656c53ed
Fast-forward
PIPEDRIVE_V2_MIGRATION_TICKETS.md | 52 ++++++++++++++++++++++++++++++++++++++++++++++++++++
1 file changed, 52 insertions(+)
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (pipedrive-sdk-poc) $ co master
M .env.local
M config/logging.php
Switched to branch 'master'
Your branch is behind 'origin/master' by 31 commits, and can be fast-forwarded.
(use "git pull" to update your local branch)
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (master) $ git pull
Updating 31c62924a5..cb4ebf0c36
Fast-forward
app/Component/ES/Processor/Traits/SelectEntityListTrait.php | 20 ------
app/Services/Calendar/CalendarActivityService.php | 46 +++++++++++++
app/Services/Calendar/Command/MapActivityData.php | 106 +++-------------------------
docs/mcp/explorer/explorer.html | 104 +++++++++++++++++++++++++---
docs/mcp/explorer/explorer.template.html | 102 ++++++++++++++++++++++++---
docs/mcp/tools-list.json | 373 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++-------
docs/mcp/tools.md | 117 +++++++++++++++++++++++--------
tests/Unit/Component/ES/AsyncUpdateElasticSearchTest.php | 16 +----
tests/Unit/Component/ES/Listeners/UpdateMultipleTargetsListenerTest.php | 10 ---
tests/Unit/Component/ES/Listeners/UpdateSingleTargetListenerTest.php | 6 --
tests/Unit/Component/ES/Processor/TargetEntitiesSelectorTest.php | 9 ---
tests/Unit/Component/ES/Processor/Traits/SelectEntityListTraitTest.php | 15 ++--
tests/Unit/Component/ES/UpdateProcessManagerTest.php | 2 -
tests/Unit/Services/Calendar/CalendarActivityServiceTest.php | 150 ++++++++++++++++++++++++++++++++++++++--
tests/Unit/Services/Calendar/Command/MapActivityDataTest.php | 78 ++-------------------
15 files changed, 832 insertions(+), 322 deletions(-)
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (master) $ co -b JY-20613-allow-owner-role-on-team-setup
Switched to a new branch 'JY-20613-allow-owner-role-on-team-setup'
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20613-allow-owner-role-on-team-setup) $ csfix
docker exec -it docker_lamp_1 ./vendor/bin/php-cs-fixer fix --config=.php-cs-fixer.dist.php -v --using-cache=no --diff
PHP CS Fixer 3.87.1 Alexander by Fabien Potencier, Dariusz Ruminski and contributors.
PHP runtime: 8.3.30
Running 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!
Loaded config default from ".php-cs-fixer.dist.php".
5682/5682 [▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓] 100%
Fixed 0 of 5682 files in 56.978 seconds, 67.00 MB memory used
What's next:
Try Docker Debug for seamless, persistent debugging tools in any container or image → docker debug docker_lamp_1
Learn more at [URL_WITH_CREDENTIALS] ~/jiminny/app (JY-20613-allow-owner-role-on-team-setup) $ csfix
docker exec -it docker_lamp_1 ./vendor/bin/php-cs-fixer fix --config=.php-cs-fixer.dist.php -v --using-cache=no --diff
PHP CS Fixer 3.87.1 Alexander by Fabien Potencier, Dariusz Ruminski and contributors.
PHP runtime: 8.3.30
Running 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!
Loaded config default from ".php-cs-fixer.dist.php".
5682/5682 [▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓] 100%
Fixed 0 of 5682 files in 49.910 seconds, 60.00 MB memory used
What's next:
Try Docker Debug for seamless, persistent debugging tools in any container or image → docker debug docker_lamp_1
Learn more at [URL_WITH_CREDENTIALS] ~/jiminny/app (JY-20613-allow-owner-role-on-team-setup) $ git pull
remote: Enumerating objects: 248, done.
remote: Counting objects: 100% (128/128), done.
remote: Compressing objects: 100% (23/23), done.
remote: Total 59 (delta 43), reused 44 (delta 33), pack-reused 0 (from 0)
Unpacking objects: 100% (59/59), 10.48 KiB | 228.00 KiB/s, done.
From github.com:jiminny/app
b7df560451..190239dfd4 JY-20613-allow-owner-role-on-team-setup -> origin/JY-20613-allow-owner-role-on-team-setup
e0351be069..d94a285ae7 JY-20808-low-priority-indexing-queue -> origin/JY-20808-low-priority-indexing-queue
* [new branch] JY-20920-fix-participant-matcher -> origin/JY-20920-fix-participant-matcher
cb4ebf0c36..90bca4e4b2 master -> origin/master
Merge made by the 'ort' strategy.
app/Component/ES/ChunkSize.php | 54 +++++++++++++++++++++++++++
app/Component/ES/Processor/DTOs/SelectionList.php | 4 +-
app/Component/ES/Processor/TargetEntitiesSelector.php | 19 ++++++----
app/Http/Middleware/McpTierMiddleware.php | 27 +++-----------
app/Mcp/Servers/JiminnyServer.php | 2 +
app/Mcp/Tools/GetMeTool.php | 157 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
app/Models/Feature/FeatureEnum.php | 1 +
database/migrations/2026_05_13_124153_create_mcp_feature_flag.php | 25 +++++++++++++
front-end/src/components/Settings/Kiosk/modals/EditTeamModal/EditTeamModal.vue | 52 ++++++++++++++++++--------
front-end/src/components/Settings/Kiosk/modals/EditTeamModal/__tests__/EditTeamModal.spec.js | 14 +++++++
tests/Feature/Mcp/GetMeToolFeatureTest.php | 140 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
tests/Feature/Mcp/ListCallsToolFeatureTest.php | 2 +-
tests/Feature/Mcp/McpTestHelpersTrait.php | 19 +++++++++-
tests/Unit/Component/ES/ChunkSizeTest.php | 50 +++++++++++++++++++++++++
tests/Unit/Component/ES/Processor/DTOs/SelectionListTest.php | 27 ++++++++++----
tests/Unit/Component/ES/Processor/TargetEntitiesSelectorTest.php | 39 +++++++++++---------
16 files changed, 557 insertions(+), 75 deletions(-)
create mode 100644 app/Component/ES/ChunkSize.php
create mode 100644 app/Mcp/Tools/GetMeTool.php
create mode 100644 database/migrations/2026_05_13_124153_create_mcp_feature_flag.php
create mode 100644 tests/Feature/Mcp/GetMeToolFeatureTest.php
create mode 100644 tests/Unit/Component/ES/ChunkSizeTest.php
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20613-allow-owner-role-on-team-setup) $ git push
Enumerating objects: 40, done.
Counting objects: 100% (34/34), done.
Delta compression using up to 8 threads
Compressing objects: 100% (18/18), done.
Writing objects: 100% (18/18), 1.58 KiB | 1.58 MiB/s, done.
Total 18 (delta 15), reused 0 (delta 0), pack-reused 0
remote: Resolving deltas: 100% (15/15), completed with 13 local objects.
To github.com:jiminny/app.git
190239dfd4..ec1b261264 JY-20613-allow-owner-role-on-team-setup -> JY-20613-allow-owner-role-on-team-setup
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20613-allow-owner-role-on-team-setup) $ gbr
* JY-20613-allow-owner-role-on-team-setup
pipedrive-sdk-poc
master
JY-20903-update_activity-stage-on-opportunity-change
JY-20904-fix-update-es-on-activity-command
JY-20891-improve-sms-text-relays
JY-20725-handle-HS-search-rate-limit
JY-20818-move-AJ-reports-to-separated-datadog-metric
JY-20773-fix-automated-reports-user-pilot-tracking
JY-20157-AJ-report-not-send-notification
JY-20508-notify-before-AJ-report-expiration
JY-20372-ai-reports-promotion-pages
JY-20352-sync-opportunities-without-a-local-owner-user-id-is-null
JY-20738-debug-AJ-tracking-UP
a
JY-18909-automated-reports-ask-jiminny
JY-20692-fix-integration-app-[API_KEY]
JY-20553-debug-crm-sync-delays
JY-20698-fix-SF-activity-types-on-new-playbook
JY-20543-AJ-report-tracking
JY-20384-handle-auto-sync-with-no-access-to-event-type
JY-20458-ask-jiminny-user-definitions
JY-19666-fix-import-contacts-account-association
JY-19666-HS-import-contacts-and-accounts-batch-job
JY-20458-Ask-Jiminny-Reports
JY-20200-batch-update-CRM-objects-Salesforce
JY-19666-HS-webhooks-add-contact-and-company
JY-20348-trigger-setup-DI-layout-on-team-creation
JY-20326-refactor-info-message-in-command
JY-20317-fix-auto-log-delay-issue-on-all-channels-disabled
JY-20312-remove-on-update-change-last-synced-at-crm-configurations
JY-20306-SF-skip-auto-sync-for-task-based-playbook
JY-20192-remove-deleted-team-from-saved-search-filters
JY-20197-import-opportunity-batch-job
JY-20293-enable-status-field-for-pipedrive-deals
JY-20191-remove-commands-interactive-prompts
JY-20118-change-default-sync-strategy
JY-20183-add-cache-on-auto-log-delay
JY-20197-add-import-opportunity-batch-job
20118-hs-opportunity-make-webhook-strategy-default
JY-20118-make-default-hs-opportunity-sync-strategy-webhook-based
JY-20196-handle-opportunity-without-note
JY-20118-improve-opportunity-import
JY-20189-handle-activity-search-on-deleted-groups
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20613-allow-owner-role-on-team-setup) $ co JY-20725-handle-HS-search-rate-limit
M .env.local
M config/logging.php
Switched to branch 'JY-20725-handle-HS-search-rate-limit'
Your branch is behind 'origin/JY-20725-handle-HS-search-rate-limit' by 439 commits, and can be fast-forwarded.
(use "git pull" to update your local branch)
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20725-handle-HS-search-rate-limit) $ git pull
Updating 0f3e438941..bc6a3fce6b
Fast-forward
.gitignore | 3 +-
.windsurfrules | 168 ++---
CLAUDE.md | 1 +
app/Component/ActivityAnalytics/Service/CalculateTalkTimeOffsetsFromTranscription.php | 24 +-
app/Component/AiActivityType/Services/AiActivityTypeEligibilityChecker.php | 28 +-
app/Component/AiAutomation/Actions/PrepareUpdateDtoAction.php | 32 +-
app/Component/AiAutomation/Services/CrmFillingEligibilityChecker.php | 47 ++
app/Component/AiAutomation/TestCrmAiPromptService.php | 14 +
app/Component/AiCallScoring/Services/AiCallScoringEligibilityChecker.php | 9 +
app/Component/ES/ElasticSearchDocumentPartialUpdater.php | 13 +-
app/Component/ES/ElasticSearchWorkerManager.php | 86 ---
app/Component/ES/Processor/Actions/LoadDocumentsAction.php | 80 +--
app/Component/ES/Processor/EntityQueryBuilder.php | 12 +-
app/Component/ES/Processor/TargetEntitiesSelector.php | 2 +-
app/Component/ES/Processor/Traits/SkipActivityTrait.php | 25 -
app/Component/ES/Repositories/EsResetActivityRepository.php | 11 +-
app/Component/ES/Worker/ActivityWorker.php | 73 --
app/Component/ES/Worker/EntityWorker.php | 44 --
app/Component/ES/Worker/WorkerAmount.php | 60 --
app/Component/ES/Worker/WorkerInterface.php | 15 -
app/Component/ElasticSearch/Contract/Searchable.php | 4 +
app/Component/Encoding/Job/AnalyzeTrackChannelsJob.php | 20 +-
app/Component/Encoding/Service/GenerateSpeechFromSilenceService.php | 85 ++-
app/Component/FFMpeg/Services/GetSpeechIntervalsService.php | 18 +-
app/Component/LanguageDetection/Services/FindSpeechTimeService.php | 22 +-
app/Component/Nudge/Job/ProcessOrganisationImmediateNudgesJob.php | 218 +++++-
app/Component/ParagraphBreaker/Services/TranscriptionParagraphsService.php | 4 +
app/Component/ParticipantSpeech/Services/ParticipantSpeechesCreator.php | 33 +
app/Component/ParticipantSpeech/Services/ParticipantSpeechesDeleter.php | 15 +
app/Component/ParticipantSpeech/Services/ParticipantSpeechesProvider.php | 51 +-
app/Component/ParticipantSpeech/Services/ParticipantSpeechesUploader.php | 36 +
app/Component/ProphetAi/Exceptions/InsufficientTranscriptException.php | 11 +
app/Component/Transcription/DTO/Http/Transcription/AssemblyAI/AssemblyAI/NoAssemblyIdException.php | 11 +
app/Component/Transcription/DTO/Http/Transcription/AssemblyAI/AssemblyAI/SuccessfulResponse.php | 6 +
app/Component/Transcription/DTO/Http/Transcription/TranscriptionIsNotCorrectFormatException.php | 11 +
app/Component/Transcription/Diarization/Services/GetNormalizedParticipantSpeechesService.php | 23 +-
app/Component/Transcription/Diarization/Source/MeetingBotSource.php | 16 +-
app/Component/Transcription/TranscriptionProcessor/TranscriptionProcessor.php | 3 +
app/Console/Commands/Activities/ActivityHardDeleteCommand.php | 4 +-
app/Console/Commands/Activities/Copy.php | 2 +
app/Console/Commands/Activities/SetupIntegration/TwilioSetS3RecordingCredentialsCommand.php | 119 ++++
app/Console/Commands/Activities/UpdateActivityElasticSearchDocumentCommand.php | 10 +-
app/Console/Commands/Crm/BackfillOpportunityUserFromAccountCommand.php | 126 ++++
app/Console/Commands/Elasticsearch/AsyncUpdateEsActivities.php | 19 -
app/Console/Commands/Elasticsearch/AsyncUpdateEsEntities.php | 50 +-
app/Console/Commands/Elasticsearch/ResetAsyncElasticSearchCommand.php | 30 +-
app/Console/Commands/GeckoExport/GeckoExportParticipantSpeechesCommand.php | 14 +-
app/Console/Commands/IssueMcpTokenCommand.php | 84 +++
app/Console/Commands/JiminnyDebugCommand.php | 7 +-
app/Console/Commands/Tracks/CleanupActivityTracksCommand.php | 2 +-
app/Console/Kernel.php | 6 +-
app/Contracts/Services/Calendar/CalendarTrait.php | 80 ++-
app/Events/AutomatedReports/AutomatedReportGenerated.php | 3 +
app/Http/Controllers/API/AiCallScoring/AiScorecardController.php | 7 +-
app/Http/Controllers/API/TeamAiAutomationController.php | 8 +
app/Http/Controllers/CustomerApi/CustomerApiController.php | 4 +-
app/Http/Controllers/Kiosk/ActivityController.php | 58 +-
app/Http/Controllers/Settings/PlaybookController.php | 15 +-
app/Http/Kernel.php | 23 +
app/Http/Middleware/McpAuditMiddleware.php | 156 ++++
app/Http/Middleware/McpTierMiddleware.php | 54 ++
app/Http/Requests/API/V2/ZapierUploadActivityRequest.php | 28 +-
app/Jobs/Activity/Import/ImportTwilioVideoSpeechesJob.php | 25 +-
app/Jobs/Activity/Import/IsActivityReadyForProcessingJob.php | 10 +-
app/Jobs/Calendar/SetupCalendarSync.php | 21 +-
app/Jobs/ImportRemoteTrackJob.php | 96 ++-
app/Jobs/Mailbox/EmailTextRelay.php | 15 +-
app/Mcp/Contracts/McpCallRepositoryInterface.php | 30 +
app/Mcp/DTO/ListCallsFilters.php | 29 +
app/Mcp/Errors/McpError.php | 123 ++++
app/Mcp/Repositories/McpActivityHydrator.php | 145 ++++
app/Mcp/Repositories/McpCallRepository.php | 84 +++
app/Mcp/Repositories/McpElasticCallRepository.php | 171 +++++
app/Mcp/Servers/JiminnyServer.php | 38 +
app/Mcp/Tools/ListCallsTool.php | 205 ++++++
app/Models/Activity.php | 10 +-
app/Models/Activity/Transcription.php | 17 +-
app/Models/ElasticSearch/OpportunityElasticSearchTrait.php | 5 +
app/Models/Participant.php | 1 +
app/Providers/AppServiceProvider.php | 22 +
app/Repositories/Crm/ContactRepository.php | 69 +-
app/Repositories/ParticipantSpeechRepository.php | 13 +-
app/Services/Activity/ParticipantsService.php | 19 +-
app/Services/Activity/Twilio/S3RecordingCredentialsService.php | 82 +++
app/Services/ActivityService.php | 21 +-
app/Services/Calendar/CalendarActivityService.php | 46 ++
app/Services/Calendar/Command/ImportParticipants.php | 1 +
app/Services/Calendar/Command/MapActivityData.php | 106 +--
app/Services/Calendar/GoogleCalendarService.php | 12 +-
app/Services/Crm/Close/Processor/OpportunityProcessor.php | 2 +-
app/Services/Crm/Close/Service.php | 22 +-
app/Services/Crm/Copper/Service.php | 12 +-
app/Services/Crm/Hubspot/Service.php | 154 +++-
app/Services/Crm/Hubspot/ServiceTraits/OpportunitySyncTrait.php | 88 ++-
app/Services/Crm/IntegrationApp/ServiceTraits/SyncCrmEntitiesTrait.php | 22 +-
app/Services/Crm/Pipedrive/Service.php | 17 +-
app/Services/Crm/Salesforce/Service.php | 42 +-
app/Services/Mail/Office/EmailApiClient.php | 129 +---
app/Services/RecallAI/Commands/ScheduleBotCommand.php | 39 +-
app/Services/RecallAI/RecallAIService.php | 22 +-
composer.json | 3 +-
composer.lock | 87 ++-
config/mcp.php | 23 +
database/migrations/2026_04_30_120000_create_mcp_audit_log_table.php | 36 +
docs/mcp/explorer/explorer.html | 697 ++++++++++++++++++
docs/mcp/explorer/explorer.template.html | 697 ++++++++++++++++++
docs/mcp/explorer/generate.js | 215 ++++++
docs/mcp/explorer/tool-explorer-meta.json | 11 +
docs/mcp/tools-list.json | 2536 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
docs/mcp/tools.md | 621 ++++++++++++++++
front-end/package.json | 4 +-
front-end/src/components/Settings/OrgSettings/AiAutomation/CrmFilling/TemplateFieldForm.vue | 28 +-
front-end/src/components/Settings/OrgSettings/Playbooks/AddEditPlaybook.vue | 10 +
front-end/src/components/playback/comments/ActivityComment.less | 10 +-
front-end/src/components/shared/PromptTester/PromptTester.vue | 12 +-
front-end/src/components/shared/__tests__/PromptTester.spec.js | 35 +
front-end/src/components/shared/modals/EntityPickerModal/__tests__/useEntitiesCache.spec.ts | 37 +
front-end/src/components/shared/modals/EntityPickerModal/useEntitiesCache.ts | 9 +
front-end/yarn.lock | 16 +-
phpstan-baseline.neon | 50 --
routes/api.php | 11 +
sonar-project.properties | 91 ++-
tests/Feature/Component/Nudge/ProcessOrganisationImmediateNudgesJobTest.php | 534 ++++++++++++++
tests/Feature/Jobs/ImportRemoteTrackJobTest.php | 283 +++++++-
tests/Feature/Mcp/IssueMcpTokenCommandTest.php | 53 ++
tests/Feature/Mcp/ListCallsToolElasticFeatureTest.php | 155 ++++
tests/Feature/Mcp/ListCallsToolFeatureTest.php | 352 ++++++++++
tests/Feature/Mcp/McpTestHelpersTrait.php | 77 ++
tests/Feature/Services/Team/TeamDeleteHandlers/Retention/RetentionRepositoryHandlerTest.php | 1 +
tests/Stubs/SentryStub.php | 18 +
tests/Unit/Component/ActivityAnalytics/Service/CalculateTalkTimeOffsetFromTranscriptionTest.php | 28 +-
tests/Unit/Component/AiActivityType/Services/AiActivityTypeEligibilityCheckerTest.php | 103 ++-
tests/Unit/Component/AiAutomation/Actions/PrepareUpdateDtoActionTest.php | 91 +++
tests/Unit/Component/AiAutomation/Services/CrmFillingEligibilityCheckerTest.php | 124 ++++
tests/Unit/Component/AiAutomation/TestCrmAiPromptServiceTest.php | 67 +-
tests/Unit/Component/AiCallScoring/Services/AiCallScoringEligibilityCheckerTest.php | 55 ++
tests/Unit/Component/ES/ElasticSearchWorkerManagerTest.php | 135 ----
tests/Unit/Component/ES/Processor/Actions/LoadDocumentsActionTest.php | 220 ++++++
tests/Unit/Component/ES/Processor/EntityQueryBuilderTest.php | 21 +-
tests/Unit/Component/ES/Processor/Traits/SkipActivityTraitTest.php | 51 --
tests/Unit/Component/ES/Worker/ActivityWorkerTest.php | 174 -----
tests/Unit/Component/ES/Worker/EntityWorkerTest.php | 97 ---
tests/Unit/Component/ES/Worker/WorkerAmountTest.php | 116 ---
tests/Unit/Component/Encoding/Job/AnalyzeTrackChannelsJobTest.php | 52 +-
tests/Unit/Component/Encoding/Service/GenerateSpeechFromSilenceServiceTest.php | 171 ++---
tests/Unit/Component/FFMpeg/Services/GetSpeechIntervalsTest.php | 36 +-
tests/Unit/Component/LanguageDetection/Services/FindSpeechTimeServiceTest.php | 20 +-
tests/Unit/Component/MobileSettings/MobileSettingsControllerTest.php | 5 +-
tests/Unit/Component/ParticipantSpeech/Services/ParticipantSpeechesCreatorTest.php | 75 ++
tests/Unit/Component/ParticipantSpeech/Services/ParticipantSpeechesDeleterTest.php | 63 ++
tests/Unit/Component/ParticipantSpeech/Services/ParticipantSpeechesProviderTest.php | 134 ++++
tests/Unit/Component/ParticipantSpeech/Services/ParticipantSpeechesUploaderTest.php | 57 ++
tests/Unit/Component/Transcription/Diarization/Services/GetNormalizedParticipantSpeechesServiceTest.php | 51 +-
tests/Unit/Component/Transcription/Diarization/Source/MeetingBotSourceTest.php | 29 +-
tests/Unit/Contracts/Services/Calendar/CalendarTraitTest.php | 58 +-
tests/Unit/Http/Controllers/Kiosk/ActivityControllerTest.php | 159 +++++
tests/Unit/Jobs/Activity/Import/ImportTwilioVideoSpeechesJobTest.php | 22 +-
tests/Unit/Jobs/Activity/Import/IsActivityReadyForProcessingJobTest.php | 26 +-
tests/Unit/Jobs/Calendar/SetupCalendarSyncTest.php | 25 -
tests/Unit/Services/Activity/ParticipantsServiceTest.php | 12 +-
tests/Unit/Services/Activity/Twilio/S3RecordingCredentialsServiceTest.php | 180 +++++
tests/Unit/Services/ActivityServiceTest.php | 132 ++++
tests/Unit/Services/Calendar/CalendarActivityServiceTest.php | 150 +++-
tests/Unit/Services/Calendar/Command/ImportParticipantsTest.php | 6 +-
tests/Unit/Services/Calendar/Command/MapActivityDataTest.php | 78 +-
tests/Unit/Services/Calendar/GoogleCalendarServiceTest.php | 116 +++
tests/Unit/Services/Crm/Close/ServiceTest.php | 165 +++++
tests/Unit/Services/Crm/Hubspot/ServiceTest.php | 272 ++++++-
tests/Unit/Services/Crm/Hubspot/ServiceTraits/OpportunitySyncTest.php | 25 +-
tests/Unit/Services/Crm/Hubspot/ServiceTraits/OpportunitySyncTraitMatchActivitiesTest.php | 3 +-
tests/Unit/Services/Crm/IntegrationApp/ServiceTraits/SyncCrmEntitiesTraitOpportunitiesTest.php | 40 ++
tests/Unit/Services/Crm/Pipedrive/ImportOpportunityMatchActivitiesTest.php | 2 +
tests/Unit/Services/Crm/Salesforce/ServiceTest.php | 139 ++++
tests/Unit/Services/Mail/Office/EmailApiClientTest.php | 195 ++---
tests/Unit/Services/RecallAI/RecallAIServiceTest.php | 24 +-
175 files changed, 12562 insertions(+), 2162 deletions(-)
create mode 120000 CLAUDE.md
create mode 100644 app/Component/AiAutomation/Services/CrmFillingEligibilityChecker.php
delete mode 100644 app/Component/ES/ElasticSearchWorkerManager.php
delete mode 100644 app/Component/ES/Processor/Traits/SkipActivityTrait.php
delete mode 100644 app/Component/ES/Worker/ActivityWorker.php
delete mode 100644 app/Component/ES/Worker/EntityWorker.php
delete mode 100644 app/Component/ES/Worker/WorkerAmount.php
delete mode 100644 app/Component/ES/Worker/WorkerInterface.php
create mode 100644 app/Component/ProphetAi/Exceptions/InsufficientTranscriptException.php
create mode 100644 app/Component/Transcription/DTO/Http/Transcription/AssemblyAI/AssemblyAI/NoAssemblyIdException.php
create mode 100644 app/Component/Transcription/DTO/Http/Transcription/TranscriptionIsNotCorrectFormatException.php
create mode 100644 app/Console/Commands/Activities/SetupIntegration/TwilioSetS3RecordingCredentialsCommand.php
create mode 100644 app/Console/Commands/Crm/BackfillOpportunityUserFromAccountCommand.php
delete mode 100644 app/Console/Commands/Elasticsearch/AsyncUpdateEsActivities.php
create mode 100644 app/Console/Commands/IssueMcpTokenCommand.php
create mode 100644 app/Http/Middleware/McpAuditMiddleware.php
create mode 100644 app/Http/Middleware/McpTierMiddleware.php
create mode 100644 app/Mcp/Contracts/McpCallRepositoryInterface.php
create mode 100644 app/Mcp/DTO/ListCallsFilters.php
create mode 100644 app/Mcp/Errors/McpError.php
create mode 100644 app/Mcp/Repositories/McpActivityHydrator.php
create mode 100644 app/Mcp/Repositories/McpCallRepository.php
create mode 100644 app/Mcp/Repositories/McpElasticCallRepository.php
create mode 100644 app/Mcp/Servers/JiminnyServer.php
create mode 100644 app/Mcp/Tools/ListCallsTool.php
create mode 100644 app/Services/Activity/Twilio/S3RecordingCredentialsService.php
create mode 100644 config/mcp.php
create mode 100644 database/migrations/2026_04_30_120000_create_mcp_audit_log_table.php
create mode 100644 docs/mcp/explorer/explorer.html
create mode 100644 docs/mcp/explorer/explorer.template.html
create mode 100644 docs/mcp/explorer/generate.js
create mode 100644 docs/mcp/explorer/tool-explorer-meta.json
create mode 100644 docs/mcp/tools-list.json
create mode 100644 docs/mcp/tools.md
create mode 100644 front-end/src/components/shared/modals/EntityPickerModal/__tests__/useEntitiesCache.spec.ts
create mode 100644 tests/Feature/Component/Nudge/ProcessOrganisationImmediateNudgesJobTest.php
create mode 100644 tests/Feature/Mcp/IssueMcpTokenCommandTest.php
create mode 100644 tests/Feature/Mcp/ListCallsToolElasticFeatureTest.php
create mode 100644 tests/Feature/Mcp/ListCallsToolFeatureTest.php
create mode 100644 tests/Feature/Mcp/McpTestHelpersTrait.php
create mode 100644 tests/Stubs/SentryStub.php
create mode 100644 tests/Unit/Component/AiAutomation/Services/CrmFillingEligibilityCheckerTest.php
delete mode 100644 tests/Unit/Component/ES/ElasticSearchWorkerManagerTest.php
create mode 100644 tests/Unit/Component/ES/Processor/Actions/LoadDocumentsActionTest.php
delete mode 100644 tests/Unit/Component/ES/Processor/Traits/SkipActivityTraitTest.php
delete mode 100644 tests/Unit/Component/ES/Worker/ActivityWorkerTest.php
delete mode 100644 tests/Unit/Component/ES/Worker/EntityWorkerTest.php
delete mode 100644 tests/Unit/Component/ES/Worker/WorkerAmountTest.php
create mode 100644 tests/Unit/Component/ParticipantSpeech/Services/ParticipantSpeechesCreatorTest.php
create mode 100644 tests/Unit/Http/Controllers/Kiosk/ActivityControllerTest.php
create mode 100644 tests/Unit/Services/Activity/Twilio/S3RecordingCredentialsServiceTest.php
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20725-handle-HS-search-rate-limit) $ git status
On branch master
Your branch is behind 'origin/master' by 114 commits, and can be fast-forwarded.
(use "git pull" to update your local branch)
Changes not staged for commit:
(use "git add <file>..." to update what will be committed)
(use "git restore <file>..." to discard changes in working directory)
modified: .env.local
modified: app/Component/SCIM/Constants.php
modified: app/Component/SCIM/ScimProvisioning.php
modified: app/Component/Twilio/Conference/ConferenceManager/SoftPhoneManager.php
modified: app/Console/Commands/JiminnyDebugCommand.php
modified: app/DTO/SCIM/AAD/Request/CoreUserRequest.php
modified: app/DTO/SCIM/AAD/Response/CoreUser.php
modified: app/Services/Telephony/TextMessagingService.php
modified: config/logging.php
Untracked files:
(use "git add <file>..." to include in what will be committed)
.env.nikilocal
.env.other
WEBHOOK_FILTERING_IMPLEMENTATION.md
app/Component/SCIM/Mutators/Attributes/User/RoleAttr.php
app/Console/Commands/Crm/Hubspot/SimulateWebhooksCommand.php
app/Console/Commands/Reports/CreateMockAskJiminnyReportResultCommand.php
app/Rules/ListenerRoleCannotHaveAdminOrManagerPermissionRule.php
ids.txt
public/favicon.ico
raw_sql_query.sql
tests/Unit/Component/SCIM/Mutators/Attributes/User/RoleAttrTest.php
tests/Unit/Policies/CanAccessAiReportsTest.php
tests/Unit/Rules/ListenerRoleCannotHaveAdminOrManagerPermissionRuleTest.php
no changes added to commit (use "git add" and/or "git commit -a")
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (master) $ git pull
remote: Enumerating objects: 306, done.
remote: Counting objects: 100% (299/299), done.
remote: Compressing objects: 100% (183/183), done.
remote: Total 306 (delta 213), reused 171 (delta 116), pack-reused 7 (from 1)
Receiving objects: 100% (306/306), 80.12 KiB | 1000.00 KiB/s, done.
Resolving deltas: 100% (213/213), completed with 53 local objects.
From github.com:jiminny/app
90bca4e4b2..5604af40cf master -> origin/master
4e7078fd8b..0b8343d179 JY-18091-upgrade-to-php-8-5 -> origin/JY-18091-upgrade-to-php-8-5
098eeaa087..d5a447e492 JY-20613-allow-owner-role-on-team-setup -> origin/JY-20613-allow-owner-role-on-team-setup
c3a76ace91..af65249d0f JY-20749-user-can-view-recorded-meetings -> origin/JY-20749-user-can-view-recorded-meetings
d94a285ae7..7ce96cb5fe JY-20808-low-priority-indexing-queue -> origin/JY-20808-low-priority-indexing-queue
* [new branch] JY-20842-remove-partial-updater -> origin/JY-20842-remove-partial-updater
* [new branch] JY-20920-fix-participant-flip -> origin/JY-20920-fix-participant-flip
* [new branch] secfix/npm-20260519 -> origin/secfix/npm-20260519
Updating cb4ebf0c36..5604af40cf
Fast-forward
app/Component/ES/ChunkSize.php | 54 +++++++++++++++++++
app/Component/ES/Processor/DTOs/SelectionList.php | 4 +-
app/Component/ES/Processor/TargetEntitiesSelector.php | 19 ++++---
app/Component/MeetingBot/Service/ParticipantMatcher.php | 46 ++++++++++++----
app/Exceptions/RateLimitException.php | 19 ++++++-
app/Http/Middleware/McpTierMiddleware.php | 27 ++--------
app/Jobs/Crm/MatchActivityCrmData.php | 47 ++++++++++++----
app/Jobs/Middleware/HandleHubspotRateLimit.php | 42 +++++++++++++++
app/Mcp/Servers/JiminnyServer.php | 2 +
app/Mcp/Tools/GetMeTool.php | 157 +++++++++++++++++++++++++++++++++++++++++++++++++++++
app/Models/Feature/FeatureEnum.php | 1 +
app/Services/Activity/HubSpot/ProviderResolver.php | 4 +-
app/Services/Activity/HubSpot/ProviderResolverInterface.php | 2 +-
app/Services/Activity/HubSpot/Providers/Provider.php | 2 +-
app/Services/Activity/HubSpot/Providers/ProviderKixie.php | 2 +-
app/Services/Activity/HubSpot/Providers/ProviderOrum.php | 2 +-
app/Services/Activity/HubSpot/Providers/ProviderTwilio.php | 2 +-
app/Services/Activity/HubSpot/Providers/ProviderTwilioFlex.php | 5 +-
app/Services/Activity/HubSpot/Service.php | 97 +++++++++++++++++++++++++++------
app/Services/Crm/Hubspot/Client.php | 132 +++++++++++++++++++++++++++++++++++++++++++++
app/Services/Crm/Hubspot/HubspotClientInterface.php | 15 ++++++
app/Services/Crm/Hubspot/Pagination/HubspotPaginationService.php | 21 ++++----
app/Services/Crm/Hubspot/Pagination/PaginationState.php | 2 +-
database/migrations/2026_05_13_124153_create_mcp_feature_flag.php | 25 +++++++++
tests/Feature/Mcp/GetMeToolFeatureTest.php | 140 +++++++++++++++++++++++++++++++++++++++++++++++
tests/Feature/Mcp/ListCallsToolFeatureTest.php | 2 +-
tests/Feature/Mcp/McpTestHelpersTrait.php | 19 ++++++-
tests/Unit/Component/ES/ChunkSizeTest.php | 50 +++++++++++++++++
tests/Unit/Component/ES/Processor/DTOs/SelectionListTest.php | 27 +++++++---
tests/Unit/Component/ES/Processor/TargetEntitiesSelectorTest.php | 39 ++++++++------
tests/Unit/Component/MeetingBot/Service/ParticipantMatcherTest.php | 68 ++++++++++++++++++++++-
tests/Unit/Exceptions/RateLimitExceptionTest.php | 56 +++++++++++++++++++
tests/Unit/Jobs/Crm/MatchActivityCrmDataTest.php | 8 +--
tests/Unit/Jobs/Middleware/HandleHubspotRateLimitTest.php | 151 +++++++++++++++++++++++++++++++++++++++++++++++++++
tests/Unit/Services/Activity/HubSpot/ServiceTest.php | 109 +++++++++++++++++++++++++++++++++++++
tests/Unit/Services/Crm/Hubspot/ClientTest.php | 250 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
tests/Unit/Services/Crm/Hubspot/Pagination/HubspotPaginationServiceTest.php | 283 +++++++++++++++++++++---------------------------------------------------------------------------
37 files changed, 1587 insertions(+), 344 deletions(-)
create mode 100644 app/Component/ES/ChunkSize.php
create mode 100644 app/Jobs/Middleware/HandleHubspotRateLimit.php
create mode 100644 app/Mcp/Tools/GetMeTool.php
create mode 100644 database/migrations/2026_05_13_124153_create_mcp_feature_flag.php
create mode 100644 tests/Feature/Mcp/GetMeToolFeatureTest.php
create mode 100644 tests/Unit/Component/ES/ChunkSizeTest.php
create mode 100644 tests/Unit/Exceptions/RateLimitExceptionTest.php
create mode 100644 tests/Unit/Jobs/Middleware/HandleHubspotRateLimitTest.php
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (master) $ git pull
Already up to date.
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (master) $ co -b JY-20676-delete-report-related-objects
Switched to a new branch 'JY-20676-delete-report-related-objects'
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20676-delete-report-related-objects) $ csfix
docker exec -it docker_lamp_1 ./vendor/bin/php-cs-fixer fix --config=.php-cs-fixer.dist.php -v --using-cache=no --diff
PHP CS Fixer 3.87.1 Alexander by Fabien Potencier, Dariusz Ruminski and contributors.
PHP runtime: 8.3.30
Running 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!
Loaded config default from ".php-cs-fixer.dist.php".
5690/5690 [▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓] 100%
1) app/Console/Commands/JiminnyDebugCommand.php (statement_indentation, blank_line_before_statement)
---------- begin diff ----------
--- /home/jiminny/app/Console/Commands/JiminnyDebugCommand.php
+++ /home/jiminny/app/Console/Commands/JiminnyDebugCommand.php
@@ -23,6 +23,7 @@
if ($action === 'redis-set') {
$this->testRedisSet();
+
return;
}
@@ -45,7 +46,7 @@
$ttl = 60;
try {
-// $result = Redis::set($testKey, $testValue, 'EX', $ttl, 'NX');
+ // $result = Redis::set($testKey, $testValue, 'EX', $ttl, 'NX');
$result = Redis::set($testKey, $testValue, ['nx', 'ex' => $ttl]);
if ($result) {
----------- end diff -----------
Fixed 1 of 5690 files i...
|
58091
|
NULL
|
NULL
|
NULL
|
|
58097
|
NULL
|
0
|
2026-05-19T11:35:47.016963+00:00
|
/Users/lukas/.screenpipe/data/data/2026-05-19/1779 /Users/lukas/.screenpipe/data/data/2026-05-19/1779190547016_m1.jpg...
|
iTerm2
|
APP (docker)
|
1
|
NULL
|
monitor_1
|
NULL
|
NULL
|
NULL
|
NULL
|
Last login: Mon May 18 09:17:28 on ttys007
Poetry Last login: Mon May 18 09:17:28 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 (pipedrive-sdk-poc) $ co master
error: Your local changes to the following files would be overwritten by checkout:
PIPEDRIVE_V2_MIGRATION_TICKETS.md
Please commit your changes or stash them before you switch branches.
Aborting
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (pipedrive-sdk-poc) $ git pull
remote: Enumerating objects: 1047, done.
remote: Counting objects: 100% (832/832), done.
remote: Compressing objects: 100% (298/298), done.
remote: Total 1047 (delta 634), reused 596 (delta 534), pack-reused 215 (from 3)
Receiving objects: 100% (1047/1047), 353.16 KiB | 1.56 MiB/s, done.
Resolving deltas: 100% (687/687), completed with 107 local objects.
From github.com:jiminny/app
907c54896c..34656c53ed pipedrive-sdk-poc -> origin/pipedrive-sdk-poc
03325ec50f..4e7078fd8b JY-18091-upgrade-to-php-8-5 -> origin/JY-18091-upgrade-to-php-8-5
e7d231e163..bc6a3fce6b JY-20725-handle-HS-search-rate-limit -> origin/JY-20725-handle-HS-search-rate-limit
* [new branch] JY-20749-user-can-view-recorded-meetings -> origin/JY-20749-user-can-view-recorded-meetings
98ca281a04..e0351be069 JY-20808-low-priority-indexing-queue -> origin/JY-20808-low-priority-indexing-queue
569abb5149..3906a9238a JY-20835-mcp-enable-users-to-get-a-list-of-deals-and-their-details -> origin/JY-20835-mcp-enable-users-to-get-a-list-of-deals-and-their-details
ad6c2a86e8..50eb6afba9 JY-20846-mcp-enable-the-ai-to-know-details-about-the-user -> origin/JY-20846-mcp-enable-the-ai-to-know-details-about-the-user
* [new branch] JY-20893-chunk-control-per-update-target -> origin/JY-20893-chunk-control-per-update-target
31c62924a5..cb4ebf0c36 master -> origin/master
Updating 907c54896c..34656c53ed
Fast-forward
PIPEDRIVE_V2_MIGRATION_TICKETS.md | 52 ++++++++++++++++++++++++++++++++++++++++++++++++++++
1 file changed, 52 insertions(+)
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (pipedrive-sdk-poc) $ co master
M .env.local
M config/logging.php
Switched to branch 'master'
Your branch is behind 'origin/master' by 31 commits, and can be fast-forwarded.
(use "git pull" to update your local branch)
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (master) $ git pull
Updating 31c62924a5..cb4ebf0c36
Fast-forward
app/Component/ES/Processor/Traits/SelectEntityListTrait.php | 20 ------
app/Services/Calendar/CalendarActivityService.php | 46 +++++++++++++
app/Services/Calendar/Command/MapActivityData.php | 106 +++-------------------------
docs/mcp/explorer/explorer.html | 104 +++++++++++++++++++++++++---
docs/mcp/explorer/explorer.template.html | 102 ++++++++++++++++++++++++---
docs/mcp/tools-list.json | 373 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++-------
docs/mcp/tools.md | 117 +++++++++++++++++++++++--------
tests/Unit/Component/ES/AsyncUpdateElasticSearchTest.php | 16 +----
tests/Unit/Component/ES/Listeners/UpdateMultipleTargetsListenerTest.php | 10 ---
tests/Unit/Component/ES/Listeners/UpdateSingleTargetListenerTest.php | 6 --
tests/Unit/Component/ES/Processor/TargetEntitiesSelectorTest.php | 9 ---
tests/Unit/Component/ES/Processor/Traits/SelectEntityListTraitTest.php | 15 ++--
tests/Unit/Component/ES/UpdateProcessManagerTest.php | 2 -
tests/Unit/Services/Calendar/CalendarActivityServiceTest.php | 150 ++++++++++++++++++++++++++++++++++++++--
tests/Unit/Services/Calendar/Command/MapActivityDataTest.php | 78 ++-------------------
15 files changed, 832 insertions(+), 322 deletions(-)
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (master) $ co -b JY-20613-allow-owner-role-on-team-setup
Switched to a new branch 'JY-20613-allow-owner-role-on-team-setup'
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20613-allow-owner-role-on-team-setup) $ csfix
docker exec -it docker_lamp_1 ./vendor/bin/php-cs-fixer fix --config=.php-cs-fixer.dist.php -v --using-cache=no --diff
PHP CS Fixer 3.87.1 Alexander by Fabien Potencier, Dariusz Ruminski and contributors.
PHP runtime: 8.3.30
Running 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!
Loaded config default from ".php-cs-fixer.dist.php".
5682/5682 [▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓] 100%
Fixed 0 of 5682 files in 56.978 seconds, 67.00 MB memory used
What's next:
Try Docker Debug for seamless, persistent debugging tools in any container or image → docker debug docker_lamp_1
Learn more at [URL_WITH_CREDENTIALS] ~/jiminny/app (JY-20613-allow-owner-role-on-team-setup) $ csfix
docker exec -it docker_lamp_1 ./vendor/bin/php-cs-fixer fix --config=.php-cs-fixer.dist.php -v --using-cache=no --diff
PHP CS Fixer 3.87.1 Alexander by Fabien Potencier, Dariusz Ruminski and contributors.
PHP runtime: 8.3.30
Running 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!
Loaded config default from ".php-cs-fixer.dist.php".
5682/5682 [▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓] 100%
Fixed 0 of 5682 files in 49.910 seconds, 60.00 MB memory used
What's next:
Try Docker Debug for seamless, persistent debugging tools in any container or image → docker debug docker_lamp_1
Learn more at [URL_WITH_CREDENTIALS] ~/jiminny/app (JY-20613-allow-owner-role-on-team-setup) $ git pull
remote: Enumerating objects: 248, done.
remote: Counting objects: 100% (128/128), done.
remote: Compressing objects: 100% (23/23), done.
remote: Total 59 (delta 43), reused 44 (delta 33), pack-reused 0 (from 0)
Unpacking objects: 100% (59/59), 10.48 KiB | 228.00 KiB/s, done.
From github.com:jiminny/app
b7df560451..190239dfd4 JY-20613-allow-owner-role-on-team-setup -> origin/JY-20613-allow-owner-role-on-team-setup
e0351be069..d94a285ae7 JY-20808-low-priority-indexing-queue -> origin/JY-20808-low-priority-indexing-queue
* [new branch] JY-20920-fix-participant-matcher -> origin/JY-20920-fix-participant-matcher
cb4ebf0c36..90bca4e4b2 master -> origin/master
Merge made by the 'ort' strategy.
app/Component/ES/ChunkSize.php | 54 +++++++++++++++++++++++++++
app/Component/ES/Processor/DTOs/SelectionList.php | 4 +-
app/Component/ES/Processor/TargetEntitiesSelector.php | 19 ++++++----
app/Http/Middleware/McpTierMiddleware.php | 27 +++-----------
app/Mcp/Servers/JiminnyServer.php | 2 +
app/Mcp/Tools/GetMeTool.php | 157 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
app/Models/Feature/FeatureEnum.php | 1 +
database/migrations/2026_05_13_124153_create_mcp_feature_flag.php | 25 +++++++++++++
front-end/src/components/Settings/Kiosk/modals/EditTeamModal/EditTeamModal.vue | 52 ++++++++++++++++++--------
front-end/src/components/Settings/Kiosk/modals/EditTeamModal/__tests__/EditTeamModal.spec.js | 14 +++++++
tests/Feature/Mcp/GetMeToolFeatureTest.php | 140 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
tests/Feature/Mcp/ListCallsToolFeatureTest.php | 2 +-
tests/Feature/Mcp/McpTestHelpersTrait.php | 19 +++++++++-
tests/Unit/Component/ES/ChunkSizeTest.php | 50 +++++++++++++++++++++++++
tests/Unit/Component/ES/Processor/DTOs/SelectionListTest.php | 27 ++++++++++----
tests/Unit/Component/ES/Processor/TargetEntitiesSelectorTest.php | 39 +++++++++++---------
16 files changed, 557 insertions(+), 75 deletions(-)
create mode 100644 app/Component/ES/ChunkSize.php
create mode 100644 app/Mcp/Tools/GetMeTool.php
create mode 100644 database/migrations/2026_05_13_124153_create_mcp_feature_flag.php
create mode 100644 tests/Feature/Mcp/GetMeToolFeatureTest.php
create mode 100644 tests/Unit/Component/ES/ChunkSizeTest.php
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20613-allow-owner-role-on-team-setup) $ git push
Enumerating objects: 40, done.
Counting objects: 100% (34/34), done.
Delta compression using up to 8 threads
Compressing objects: 100% (18/18), done.
Writing objects: 100% (18/18), 1.58 KiB | 1.58 MiB/s, done.
Total 18 (delta 15), reused 0 (delta 0), pack-reused 0
remote: Resolving deltas: 100% (15/15), completed with 13 local objects.
To github.com:jiminny/app.git
190239dfd4..ec1b261264 JY-20613-allow-owner-role-on-team-setup -> JY-20613-allow-owner-role-on-team-setup
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20613-allow-owner-role-on-team-setup) $ gbr
* JY-20613-allow-owner-role-on-team-setup
pipedrive-sdk-poc
master
JY-20903-update_activity-stage-on-opportunity-change
JY-20904-fix-update-es-on-activity-command
JY-20891-improve-sms-text-relays
JY-20725-handle-HS-search-rate-limit
JY-20818-move-AJ-reports-to-separated-datadog-metric
JY-20773-fix-automated-reports-user-pilot-tracking
JY-20157-AJ-report-not-send-notification
JY-20508-notify-before-AJ-report-expiration
JY-20372-ai-reports-promotion-pages
JY-20352-sync-opportunities-without-a-local-owner-user-id-is-null
JY-20738-debug-AJ-tracking-UP
a
JY-18909-automated-reports-ask-jiminny
JY-20692-fix-integration-app-[API_KEY]
JY-20553-debug-crm-sync-delays
JY-20698-fix-SF-activity-types-on-new-playbook
JY-20543-AJ-report-tracking
JY-20384-handle-auto-sync-with-no-access-to-event-type
JY-20458-ask-jiminny-user-definitions
JY-19666-fix-import-contacts-account-association
JY-19666-HS-import-contacts-and-accounts-batch-job
JY-20458-Ask-Jiminny-Reports
JY-20200-batch-update-CRM-objects-Salesforce
JY-19666-HS-webhooks-add-contact-and-company
JY-20348-trigger-setup-DI-layout-on-team-creation
JY-20326-refactor-info-message-in-command
JY-20317-fix-auto-log-delay-issue-on-all-channels-disabled
JY-20312-remove-on-update-change-last-synced-at-crm-configurations
JY-20306-SF-skip-auto-sync-for-task-based-playbook
JY-20192-remove-deleted-team-from-saved-search-filters
JY-20197-import-opportunity-batch-job
JY-20293-enable-status-field-for-pipedrive-deals
JY-20191-remove-commands-interactive-prompts
JY-20118-change-default-sync-strategy
JY-20183-add-cache-on-auto-log-delay
JY-20197-add-import-opportunity-batch-job
20118-hs-opportunity-make-webhook-strategy-default
JY-20118-make-default-hs-opportunity-sync-strategy-webhook-based
JY-20196-handle-opportunity-without-note
JY-20118-improve-opportunity-import
JY-20189-handle-activity-search-on-deleted-groups
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20613-allow-owner-role-on-team-setup) $ co JY-20725-handle-HS-search-rate-limit
M .env.local
M config/logging.php
Switched to branch 'JY-20725-handle-HS-search-rate-limit'
Your branch is behind 'origin/JY-20725-handle-HS-search-rate-limit' by 439 commits, and can be fast-forwarded.
(use "git pull" to update your local branch)
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20725-handle-HS-search-rate-limit) $ git pull
Updating 0f3e438941..bc6a3fce6b
Fast-forward
.gitignore | 3 +-
.windsurfrules | 168 ++---
CLAUDE.md | 1 +
app/Component/ActivityAnalytics/Service/CalculateTalkTimeOffsetsFromTranscription.php | 24 +-
app/Component/AiActivityType/Services/AiActivityTypeEligibilityChecker.php | 28 +-
app/Component/AiAutomation/Actions/PrepareUpdateDtoAction.php | 32 +-
app/Component/AiAutomation/Services/CrmFillingEligibilityChecker.php | 47 ++
app/Component/AiAutomation/TestCrmAiPromptService.php | 14 +
app/Component/AiCallScoring/Services/AiCallScoringEligibilityChecker.php | 9 +
app/Component/ES/ElasticSearchDocumentPartialUpdater.php | 13 +-
app/Component/ES/ElasticSearchWorkerManager.php | 86 ---
app/Component/ES/Processor/Actions/LoadDocumentsAction.php | 80 +--
app/Component/ES/Processor/EntityQueryBuilder.php | 12 +-
app/Component/ES/Processor/TargetEntitiesSelector.php | 2 +-
app/Component/ES/Processor/Traits/SkipActivityTrait.php | 25 -
app/Component/ES/Repositories/EsResetActivityRepository.php | 11 +-
app/Component/ES/Worker/ActivityWorker.php | 73 --
app/Component/ES/Worker/EntityWorker.php | 44 --
app/Component/ES/Worker/WorkerAmount.php | 60 --
app/Component/ES/Worker/WorkerInterface.php | 15 -
app/Component/ElasticSearch/Contract/Searchable.php | 4 +
app/Component/Encoding/Job/AnalyzeTrackChannelsJob.php | 20 +-
app/Component/Encoding/Service/GenerateSpeechFromSilenceService.php | 85 ++-
app/Component/FFMpeg/Services/GetSpeechIntervalsService.php | 18 +-
app/Component/LanguageDetection/Services/FindSpeechTimeService.php | 22 +-
app/Component/Nudge/Job/ProcessOrganisationImmediateNudgesJob.php | 218 +++++-
app/Component/ParagraphBreaker/Services/TranscriptionParagraphsService.php | 4 +
app/Component/ParticipantSpeech/Services/ParticipantSpeechesCreator.php | 33 +
app/Component/ParticipantSpeech/Services/ParticipantSpeechesDeleter.php | 15 +
app/Component/ParticipantSpeech/Services/ParticipantSpeechesProvider.php | 51 +-
app/Component/ParticipantSpeech/Services/ParticipantSpeechesUploader.php | 36 +
app/Component/ProphetAi/Exceptions/InsufficientTranscriptException.php | 11 +
app/Component/Transcription/DTO/Http/Transcription/AssemblyAI/AssemblyAI/NoAssemblyIdException.php | 11 +
app/Component/Transcription/DTO/Http/Transcription/AssemblyAI/AssemblyAI/SuccessfulResponse.php | 6 +
app/Component/Transcription/DTO/Http/Transcription/TranscriptionIsNotCorrectFormatException.php | 11 +
app/Component/Transcription/Diarization/Services/GetNormalizedParticipantSpeechesService.php | 23 +-
app/Component/Transcription/Diarization/Source/MeetingBotSource.php | 16 +-
app/Component/Transcription/TranscriptionProcessor/TranscriptionProcessor.php | 3 +
app/Console/Commands/Activities/ActivityHardDeleteCommand.php | 4 +-
app/Console/Commands/Activities/Copy.php | 2 +
app/Console/Commands/Activities/SetupIntegration/TwilioSetS3RecordingCredentialsCommand.php | 119 ++++
app/Console/Commands/Activities/UpdateActivityElasticSearchDocumentCommand.php | 10 +-
app/Console/Commands/Crm/BackfillOpportunityUserFromAccountCommand.php | 126 ++++
app/Console/Commands/Elasticsearch/AsyncUpdateEsActivities.php | 19 -
app/Console/Commands/Elasticsearch/AsyncUpdateEsEntities.php | 50 +-
app/Console/Commands/Elasticsearch/ResetAsyncElasticSearchCommand.php | 30 +-
app/Console/Commands/GeckoExport/GeckoExportParticipantSpeechesCommand.php | 14 +-
app/Console/Commands/IssueMcpTokenCommand.php | 84 +++
app/Console/Commands/JiminnyDebugCommand.php | 7 +-
app/Console/Commands/Tracks/CleanupActivityTracksCommand.php | 2 +-
app/Console/Kernel.php | 6 +-
app/Contracts/Services/Calendar/CalendarTrait.php | 80 ++-
app/Events/AutomatedReports/AutomatedReportGenerated.php | 3 +
app/Http/Controllers/API/AiCallScoring/AiScorecardController.php | 7 +-
app/Http/Controllers/API/TeamAiAutomationController.php | 8 +
app/Http/Controllers/CustomerApi/CustomerApiController.php | 4 +-
app/Http/Controllers/Kiosk/ActivityController.php | 58 +-
app/Http/Controllers/Settings/PlaybookController.php | 15 +-
app/Http/Kernel.php | 23 +
app/Http/Middleware/McpAuditMiddleware.php | 156 ++++
app/Http/Middleware/McpTierMiddleware.php | 54 ++
app/Http/Requests/API/V2/ZapierUploadActivityRequest.php | 28 +-
app/Jobs/Activity/Import/ImportTwilioVideoSpeechesJob.php | 25 +-
app/Jobs/Activity/Import/IsActivityReadyForProcessingJob.php | 10 +-
app/Jobs/Calendar/SetupCalendarSync.php | 21 +-
app/Jobs/ImportRemoteTrackJob.php | 96 ++-
app/Jobs/Mailbox/EmailTextRelay.php | 15 +-
app/Mcp/Contracts/McpCallRepositoryInterface.php | 30 +
app/Mcp/DTO/ListCallsFilters.php | 29 +
app/Mcp/Errors/McpError.php | 123 ++++
app/Mcp/Repositories/McpActivityHydrator.php | 145 ++++
app/Mcp/Repositories/McpCallRepository.php | 84 +++
app/Mcp/Repositories/McpElasticCallRepository.php | 171 +++++
app/Mcp/Servers/JiminnyServer.php | 38 +
app/Mcp/Tools/ListCallsTool.php | 205 ++++++
app/Models/Activity.php | 10 +-
app/Models/Activity/Transcription.php | 17 +-
app/Models/ElasticSearch/OpportunityElasticSearchTrait.php | 5 +
app/Models/Participant.php | 1 +
app/Providers/AppServiceProvider.php | 22 +
app/Repositories/Crm/ContactRepository.php | 69 +-
app/Repositories/ParticipantSpeechRepository.php | 13 +-
app/Services/Activity/ParticipantsService.php | 19 +-
app/Services/Activity/Twilio/S3RecordingCredentialsService.php | 82 +++
app/Services/ActivityService.php | 21 +-
app/Services/Calendar/CalendarActivityService.php | 46 ++
app/Services/Calendar/Command/ImportParticipants.php | 1 +
app/Services/Calendar/Command/MapActivityData.php | 106 +--
app/Services/Calendar/GoogleCalendarService.php | 12 +-
app/Services/Crm/Close/Processor/OpportunityProcessor.php | 2 +-
app/Services/Crm/Close/Service.php | 22 +-
app/Services/Crm/Copper/Service.php | 12 +-
app/Services/Crm/Hubspot/Service.php | 154 +++-
app/Services/Crm/Hubspot/ServiceTraits/OpportunitySyncTrait.php | 88 ++-
app/Services/Crm/IntegrationApp/ServiceTraits/SyncCrmEntitiesTrait.php | 22 +-
app/Services/Crm/Pipedrive/Service.php | 17 +-
app/Services/Crm/Salesforce/Service.php | 42 +-
app/Services/Mail/Office/EmailApiClient.php | 129 +---
app/Services/RecallAI/Commands/ScheduleBotCommand.php | 39 +-
app/Services/RecallAI/RecallAIService.php | 22 +-
composer.json | 3 +-
composer.lock | 87 ++-
config/mcp.php | 23 +
database/migrations/2026_04_30_120000_create_mcp_audit_log_table.php | 36 +
docs/mcp/explorer/explorer.html | 697 ++++++++++++++++++
docs/mcp/explorer/explorer.template.html | 697 ++++++++++++++++++
docs/mcp/explorer/generate.js | 215 ++++++
docs/mcp/explorer/tool-explorer-meta.json | 11 +
docs/mcp/tools-list.json | 2536 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
docs/mcp/tools.md | 621 ++++++++++++++++
front-end/package.json | 4 +-
front-end/src/components/Settings/OrgSettings/AiAutomation/CrmFilling/TemplateFieldForm.vue | 28 +-
front-end/src/components/Settings/OrgSettings/Playbooks/AddEditPlaybook.vue | 10 +
front-end/src/components/playback/comments/ActivityComment.less | 10 +-
front-end/src/components/shared/PromptTester/PromptTester.vue | 12 +-
front-end/src/components/shared/__tests__/PromptTester.spec.js | 35 +
front-end/src/components/shared/modals/EntityPickerModal/__tests__/useEntitiesCache.spec.ts | 37 +
front-end/src/components/shared/modals/EntityPickerModal/useEntitiesCache.ts | 9 +
front-end/yarn.lock | 16 +-
phpstan-baseline.neon | 50 --
routes/api.php | 11 +
sonar-project.properties | 91 ++-
tests/Feature/Component/Nudge/ProcessOrganisationImmediateNudgesJobTest.php | 534 ++++++++++++++
tests/Feature/Jobs/ImportRemoteTrackJobTest.php | 283 +++++++-
tests/Feature/Mcp/IssueMcpTokenCommandTest.php | 53 ++
tests/Feature/Mcp/ListCallsToolElasticFeatureTest.php | 155 ++++
tests/Feature/Mcp/ListCallsToolFeatureTest.php | 352 ++++++++++
tests/Feature/Mcp/McpTestHelpersTrait.php | 77 ++
tests/Feature/Services/Team/TeamDeleteHandlers/Retention/RetentionRepositoryHandlerTest.php | 1 +
tests/Stubs/SentryStub.php | 18 +
tests/Unit/Component/ActivityAnalytics/Service/CalculateTalkTimeOffsetFromTranscriptionTest.php | 28 +-
tests/Unit/Component/AiActivityType/Services/AiActivityTypeEligibilityCheckerTest.php | 103 ++-
tests/Unit/Component/AiAutomation/Actions/PrepareUpdateDtoActionTest.php | 91 +++
tests/Unit/Component/AiAutomation/Services/CrmFillingEligibilityCheckerTest.php | 124 ++++
tests/Unit/Component/AiAutomation/TestCrmAiPromptServiceTest.php | 67 +-
tests/Unit/Component/AiCallScoring/Services/AiCallScoringEligibilityCheckerTest.php | 55 ++
tests/Unit/Component/ES/ElasticSearchWorkerManagerTest.php | 135 ----
tests/Unit/Component/ES/Processor/Actions/LoadDocumentsActionTest.php | 220 ++++++
tests/Unit/Component/ES/Processor/EntityQueryBuilderTest.php | 21 +-
tests/Unit/Component/ES/Processor/Traits/SkipActivityTraitTest.php | 51 --
tests/Unit/Component/ES/Worker/ActivityWorkerTest.php | 174 -----
tests/Unit/Component/ES/Worker/EntityWorkerTest.php | 97 ---
tests/Unit/Component/ES/Worker/WorkerAmountTest.php | 116 ---
tests/Unit/Component/Encoding/Job/AnalyzeTrackChannelsJobTest.php | 52 +-
tests/Unit/Component/Encoding/Service/GenerateSpeechFromSilenceServiceTest.php | 171 ++---
tests/Unit/Component/FFMpeg/Services/GetSpeechIntervalsTest.php | 36 +-
tests/Unit/Component/LanguageDetection/Services/FindSpeechTimeServiceTest.php | 20 +-
tests/Unit/Component/MobileSettings/MobileSettingsControllerTest.php | 5 +-
tests/Unit/Component/ParticipantSpeech/Services/ParticipantSpeechesCreatorTest.php | 75 ++
tests/Unit/Component/ParticipantSpeech/Services/ParticipantSpeechesDeleterTest.php | 63 ++
tests/Unit/Component/ParticipantSpeech/Services/ParticipantSpeechesProviderTest.php | 134 ++++
tests/Unit/Component/ParticipantSpeech/Services/ParticipantSpeechesUploaderTest.php | 57 ++
tests/Unit/Component/Transcription/Diarization/Services/GetNormalizedParticipantSpeechesServiceTest.php | 51 +-
tests/Unit/Component/Transcription/Diarization/Source/MeetingBotSourceTest.php | 29 +-
tests/Unit/Contracts/Services/Calendar/CalendarTraitTest.php | 58 +-
tests/Unit/Http/Controllers/Kiosk/ActivityControllerTest.php | 159 +++++
tests/Unit/Jobs/Activity/Import/ImportTwilioVideoSpeechesJobTest.php | 22 +-
tests/Unit/Jobs/Activity/Import/IsActivityReadyForProcessingJobTest.php | 26 +-
tests/Unit/Jobs/Calendar/SetupCalendarSyncTest.php | 25 -
tests/Unit/Services/Activity/ParticipantsServiceTest.php | 12 +-
tests/Unit/Services/Activity/Twilio/S3RecordingCredentialsServiceTest.php | 180 +++++
tests/Unit/Services/ActivityServiceTest.php | 132 ++++
tests/Unit/Services/Calendar/CalendarActivityServiceTest.php | 150 +++-
tests/Unit/Services/Calendar/Command/ImportParticipantsTest.php | 6 +-
tests/Unit/Services/Calendar/Command/MapActivityDataTest.php | 78 +-
tests/Unit/Services/Calendar/GoogleCalendarServiceTest.php | 116 +++
tests/Unit/Services/Crm/Close/ServiceTest.php | 165 +++++
tests/Unit/Services/Crm/Hubspot/ServiceTest.php | 272 ++++++-
tests/Unit/Services/Crm/Hubspot/ServiceTraits/OpportunitySyncTest.php | 25 +-
tests/Unit/Services/Crm/Hubspot/ServiceTraits/OpportunitySyncTraitMatchActivitiesTest.php | 3 +-
tests/Unit/Services/Crm/IntegrationApp/ServiceTraits/SyncCrmEntitiesTraitOpportunitiesTest.php | 40 ++
tests/Unit/Services/Crm/Pipedrive/ImportOpportunityMatchActivitiesTest.php | 2 +
tests/Unit/Services/Crm/Salesforce/ServiceTest.php | 139 ++++
tests/Unit/Services/Mail/Office/EmailApiClientTest.php | 195 ++---
tests/Unit/Services/RecallAI/RecallAIServiceTest.php | 24 +-
175 files changed, 12562 insertions(+), 2162 deletions(-)
create mode 120000 CLAUDE.md
create mode 100644 app/Component/AiAutomation/Services/CrmFillingEligibilityChecker.php
delete mode 100644 app/Component/ES/ElasticSearchWorkerManager.php
delete mode 100644 app/Component/ES/Processor/Traits/SkipActivityTrait.php
delete mode 100644 app/Component/ES/Worker/ActivityWorker.php
delete mode 100644 app/Component/ES/Worker/EntityWorker.php
delete mode 100644 app/Component/ES/Worker/WorkerAmount.php
delete mode 100644 app/Component/ES/Worker/WorkerInterface.php
create mode 100644 app/Component/ProphetAi/Exceptions/InsufficientTranscriptException.php
create mode 100644 app/Component/Transcription/DTO/Http/Transcription/AssemblyAI/AssemblyAI/NoAssemblyIdException.php
create mode 100644 app/Component/Transcription/DTO/Http/Transcription/TranscriptionIsNotCorrectFormatException.php
create mode 100644 app/Console/Commands/Activities/SetupIntegration/TwilioSetS3RecordingCredentialsCommand.php
create mode 100644 app/Console/Commands/Crm/BackfillOpportunityUserFromAccountCommand.php
delete mode 100644 app/Console/Commands/Elasticsearch/AsyncUpdateEsActivities.php
create mode 100644 app/Console/Commands/IssueMcpTokenCommand.php
create mode 100644 app/Http/Middleware/McpAuditMiddleware.php
create mode 100644 app/Http/Middleware/McpTierMiddleware.php
create mode 100644 app/Mcp/Contracts/McpCallRepositoryInterface.php
create mode 100644 app/Mcp/DTO/ListCallsFilters.php
create mode 100644 app/Mcp/Errors/McpError.php
create mode 100644 app/Mcp/Repositories/McpActivityHydrator.php
create mode 100644 app/Mcp/Repositories/McpCallRepository.php
create mode 100644 app/Mcp/Repositories/McpElasticCallRepository.php
create mode 100644 app/Mcp/Servers/JiminnyServer.php
create mode 100644 app/Mcp/Tools/ListCallsTool.php
create mode 100644 app/Services/Activity/Twilio/S3RecordingCredentialsService.php
create mode 100644 config/mcp.php
create mode 100644 database/migrations/2026_04_30_120000_create_mcp_audit_log_table.php
create mode 100644 docs/mcp/explorer/explorer.html
create mode 100644 docs/mcp/explorer/explorer.template.html
create mode 100644 docs/mcp/explorer/generate.js
create mode 100644 docs/mcp/explorer/tool-explorer-meta.json
create mode 100644 docs/mcp/tools-list.json
create mode 100644 docs/mcp/tools.md
create mode 100644 front-end/src/components/shared/modals/EntityPickerModal/__tests__/useEntitiesCache.spec.ts
create mode 100644 tests/Feature/Component/Nudge/ProcessOrganisationImmediateNudgesJobTest.php
create mode 100644 tests/Feature/Mcp/IssueMcpTokenCommandTest.php
create mode 100644 tests/Feature/Mcp/ListCallsToolElasticFeatureTest.php
create mode 100644 tests/Feature/Mcp/ListCallsToolFeatureTest.php
create mode 100644 tests/Feature/Mcp/McpTestHelpersTrait.php
create mode 100644 tests/Stubs/SentryStub.php
create mode 100644 tests/Unit/Component/AiAutomation/Services/CrmFillingEligibilityCheckerTest.php
delete mode 100644 tests/Unit/Component/ES/ElasticSearchWorkerManagerTest.php
create mode 100644 tests/Unit/Component/ES/Processor/Actions/LoadDocumentsActionTest.php
delete mode 100644 tests/Unit/Component/ES/Processor/Traits/SkipActivityTraitTest.php
delete mode 100644 tests/Unit/Component/ES/Worker/ActivityWorkerTest.php
delete mode 100644 tests/Unit/Component/ES/Worker/EntityWorkerTest.php
delete mode 100644 tests/Unit/Component/ES/Worker/WorkerAmountTest.php
create mode 100644 tests/Unit/Component/ParticipantSpeech/Services/ParticipantSpeechesCreatorTest.php
create mode 100644 tests/Unit/Http/Controllers/Kiosk/ActivityControllerTest.php
create mode 100644 tests/Unit/Services/Activity/Twilio/S3RecordingCredentialsServiceTest.php
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20725-handle-HS-search-rate-limit) $ git status
On branch master
Your branch is behind 'origin/master' by 114 commits, and can be fast-forwarded.
(use "git pull" to update your local branch)
Changes not staged for commit:
(use "git add <file>..." to update what will be committed)
(use "git restore <file>..." to discard changes in working directory)
modified: .env.local
modified: app/Component/SCIM/Constants.php
modified: app/Component/SCIM/ScimProvisioning.php
modified: app/Component/Twilio/Conference/ConferenceManager/SoftPhoneManager.php
modified: app/Console/Commands/JiminnyDebugCommand.php
modified: app/DTO/SCIM/AAD/Request/CoreUserRequest.php
modified: app/DTO/SCIM/AAD/Response/CoreUser.php
modified: app/Services/Telephony/TextMessagingService.php
modified: config/logging.php
Untracked files:
(use "git add <file>..." to include in what will be committed)
.env.nikilocal
.env.other
WEBHOOK_FILTERING_IMPLEMENTATION.md
app/Component/SCIM/Mutators/Attributes/User/RoleAttr.php
app/Console/Commands/Crm/Hubspot/SimulateWebhooksCommand.php
app/Console/Commands/Reports/CreateMockAskJiminnyReportResultCommand.php
app/Rules/ListenerRoleCannotHaveAdminOrManagerPermissionRule.php
ids.txt
public/favicon.ico
raw_sql_query.sql
tests/Unit/Component/SCIM/Mutators/Attributes/User/RoleAttrTest.php
tests/Unit/Policies/CanAccessAiReportsTest.php
tests/Unit/Rules/ListenerRoleCannotHaveAdminOrManagerPermissionRuleTest.php
no changes added to commit (use "git add" and/or "git commit -a")
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (master) $ git pull
remote: Enumerating objects: 306, done.
remote: Counting objects: 100% (299/299), done.
remote: Compressing objects: 100% (183/183), done.
remote: Total 306 (delta 213), reused 171 (delta 116), pack-reused 7 (from 1)
Receiving objects: 100% (306/306), 80.12 KiB | 1000.00 KiB/s, done.
Resolving deltas: 100% (213/213), completed with 53 local objects.
From github.com:jiminny/app
90bca4e4b2..5604af40cf master -> origin/master
4e7078fd8b..0b8343d179 JY-18091-upgrade-to-php-8-5 -> origin/JY-18091-upgrade-to-php-8-5
098eeaa087..d5a447e492 JY-20613-allow-owner-role-on-team-setup -> origin/JY-20613-allow-owner-role-on-team-setup
c3a76ace91..af65249d0f JY-20749-user-can-view-recorded-meetings -> origin/JY-20749-user-can-view-recorded-meetings
d94a285ae7..7ce96cb5fe JY-20808-low-priority-indexing-queue -> origin/JY-20808-low-priority-indexing-queue
* [new branch] JY-20842-remove-partial-updater -> origin/JY-20842-remove-partial-updater
* [new branch] JY-20920-fix-participant-flip -> origin/JY-20920-fix-participant-flip
* [new branch] secfix/npm-20260519 -> origin/secfix/npm-20260519
Updating cb4ebf0c36..5604af40cf
Fast-forward
app/Component/ES/ChunkSize.php | 54 +++++++++++++++++++
app/Component/ES/Processor/DTOs/SelectionList.php | 4 +-
app/Component/ES/Processor/TargetEntitiesSelector.php | 19 ++++---
app/Component/MeetingBot/Service/ParticipantMatcher.php | 46 ++++++++++++----
app/Exceptions/RateLimitException.php | 19 ++++++-
app/Http/Middleware/McpTierMiddleware.php | 27 ++--------
app/Jobs/Crm/MatchActivityCrmData.php | 47 ++++++++++++----
app/Jobs/Middleware/HandleHubspotRateLimit.php | 42 +++++++++++++++
app/Mcp/Servers/JiminnyServer.php | 2 +
app/Mcp/Tools/GetMeTool.php | 157 +++++++++++++++++++++++++++++++++++++++++++++++++++++
app/Models/Feature/FeatureEnum.php | 1 +
app/Services/Activity/HubSpot/ProviderResolver.php | 4 +-
app/Services/Activity/HubSpot/ProviderResolverInterface.php | 2 +-
app/Services/Activity/HubSpot/Providers/Provider.php | 2 +-
app/Services/Activity/HubSpot/Providers/ProviderKixie.php | 2 +-
app/Services/Activity/HubSpot/Providers/ProviderOrum.php | 2 +-
app/Services/Activity/HubSpot/Providers/ProviderTwilio.php | 2 +-
app/Services/Activity/HubSpot/Providers/ProviderTwilioFlex.php | 5 +-
app/Services/Activity/HubSpot/Service.php | 97 +++++++++++++++++++++++++++------
app/Services/Crm/Hubspot/Client.php | 132 +++++++++++++++++++++++++++++++++++++++++++++
app/Services/Crm/Hubspot/HubspotClientInterface.php | 15 ++++++
app/Services/Crm/Hubspot/Pagination/HubspotPaginationService.php | 21 ++++----
app/Services/Crm/Hubspot/Pagination/PaginationState.php | 2 +-
database/migrations/2026_05_13_124153_create_mcp_feature_flag.php | 25 +++++++++
tests/Feature/Mcp/GetMeToolFeatureTest.php | 140 +++++++++++++++++++++++++++++++++++++++++++++++
tests/Feature/Mcp/ListCallsToolFeatureTest.php | 2 +-
tests/Feature/Mcp/McpTestHelpersTrait.php | 19 ++++++-
tests/Unit/Component/ES/ChunkSizeTest.php | 50 +++++++++++++++++
tests/Unit/Component/ES/Processor/DTOs/SelectionListTest.php | 27 +++++++---
tests/Unit/Component/ES/Processor/TargetEntitiesSelectorTest.php | 39 ++++++++------
tests/Unit/Component/MeetingBot/Service/ParticipantMatcherTest.php | 68 ++++++++++++++++++++++-
tests/Unit/Exceptions/RateLimitExceptionTest.php | 56 +++++++++++++++++++
tests/Unit/Jobs/Crm/MatchActivityCrmDataTest.php | 8 +--
tests/Unit/Jobs/Middleware/HandleHubspotRateLimitTest.php | 151 +++++++++++++++++++++++++++++++++++++++++++++++++++
tests/Unit/Services/Activity/HubSpot/ServiceTest.php | 109 +++++++++++++++++++++++++++++++++++++
tests/Unit/Services/Crm/Hubspot/ClientTest.php | 250 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
tests/Unit/Services/Crm/Hubspot/Pagination/HubspotPaginationServiceTest.php | 283 +++++++++++++++++++++---------------------------------------------------------------------------
37 files changed, 1587 insertions(+), 344 deletions(-)
create mode 100644 app/Component/ES/ChunkSize.php
create mode 100644 app/Jobs/Middleware/HandleHubspotRateLimit.php
create mode 100644 app/Mcp/Tools/GetMeTool.php
create mode 100644 database/migrations/2026_05_13_124153_create_mcp_feature_flag.php
create mode 100644 tests/Feature/Mcp/GetMeToolFeatureTest.php
create mode 100644 tests/Unit/Component/ES/ChunkSizeTest.php
create mode 100644 tests/Unit/Exceptions/RateLimitExceptionTest.php
create mode 100644 tests/Unit/Jobs/Middleware/HandleHubspotRateLimitTest.php
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (master) $ git pull
Already up to date.
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (master) $ co -b JY-20676-delete-report-related-objects
Switched to a new branch 'JY-20676-delete-report-related-objects'
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20676-delete-report-related-objects) $ csfix
docker exec -it docker_lamp_1 ./vendor/bin/php-cs-fixer fix --config=.php-cs-fixer.dist.php -v --using-cache=no --diff
PHP CS Fixer 3.87.1 Alexander by Fabien Potencier, Dariusz Ruminski and contributors.
PHP runtime: 8.3.30
Running 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!
Loaded config default from ".php-cs-fixer.dist.php".
5690/5690 [▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓] 100%
1) app/Console/Commands/JiminnyDebugCommand.php (statement_indentation, blank_line_before_statement)
---------- begin diff ----------
--- /home/jiminny/app/Console/Commands/JiminnyDebugCommand.php
+++ /home/jiminny/app/Console/Commands/JiminnyDebugCommand.php
@@ -23,6 +23,7 @@
if ($action === 'redis-set') {
$this->testRedisSet();
+
return;
}
@@ -45,7 +46,7 @@
$ttl = 60;
try {
-// $result = Redis::set($testKey, $testValue, 'EX', $ttl, 'NX');
+ // $result = Redis::set($testKey, $testValue, 'EX', $ttl, 'NX');
$result = Redis::set($testKey, $testValue, ['nx', 'ex' => $ttl]);
if ($result) {
----------- end diff -----------
Fixed 1 of 5690 files i...
|
[{"role":"AXTextArea","text [{"role":"AXTextArea","text":"Last login: Mon May 18 09:17:28 on ttys007\n\nPoetry could not find a pyproject.toml file in /Users/lukas/jiminny/app or its parents\n\nPoetry could not find a pyproject.toml file in /Users/lukas/jiminny/app or its parents\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (pipedrive-sdk-poc) $ co master\nerror: Your local changes to the following files would be overwritten by checkout:\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tPIPEDRIVE_V2_MIGRATION_TICKETS.md\nPlease commit your changes or stash them before you switch branches.\nAborting\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (pipedrive-sdk-poc) $ git pull\nremote: Enumerating objects: 1047, done.\nremote: Counting objects: 100% (832/832), done.\nremote: Compressing objects: 100% (298/298), done.\nremote: Total 1047 (delta 634), reused 596 (delta 534), pack-reused 215 (from 3)\nReceiving objects: 100% (1047/1047), 353.16 KiB | 1.56 MiB/s, done.\nResolving deltas: 100% (687/687), completed with 107 local objects.\nFrom github.com:jiminny/app\n 907c54896c..34656c53ed pipedrive-sdk-poc -> origin/pipedrive-sdk-poc\n 03325ec50f..4e7078fd8b JY-18091-upgrade-to-php-8-5 -> origin/JY-18091-upgrade-to-php-8-5\n e7d231e163..bc6a3fce6b JY-20725-handle-HS-search-rate-limit -> origin/JY-20725-handle-HS-search-rate-limit\n * [new branch] JY-20749-user-can-view-recorded-meetings -> origin/JY-20749-user-can-view-recorded-meetings\n 98ca281a04..e0351be069 JY-20808-low-priority-indexing-queue -> origin/JY-20808-low-priority-indexing-queue\n 569abb5149..3906a9238a JY-20835-mcp-enable-users-to-get-a-list-of-deals-and-their-details -> origin/JY-20835-mcp-enable-users-to-get-a-list-of-deals-and-their-details\n ad6c2a86e8..50eb6afba9 JY-20846-mcp-enable-the-ai-to-know-details-about-the-user -> origin/JY-20846-mcp-enable-the-ai-to-know-details-about-the-user\n * [new branch] JY-20893-chunk-control-per-update-target -> origin/JY-20893-chunk-control-per-update-target\n 31c62924a5..cb4ebf0c36 master -> origin/master\nUpdating 907c54896c..34656c53ed\nFast-forward\n PIPEDRIVE_V2_MIGRATION_TICKETS.md | 52 ++++++++++++++++++++++++++++++++++++++++++++++++++++\n 1 file changed, 52 insertions(+)\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (pipedrive-sdk-poc) $ co master\nM\u0000\u0000\u0000\u0000\u0000\u0000\t.env.local\nM\u0000\u0000\u0000\u0000\u0000\u0000\tconfig/logging.php\nSwitched to branch 'master'\nYour branch is behind 'origin/master' by 31 commits, and can be fast-forwarded.\n (use \"git pull\" to update your local branch)\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (master) $ git pull\nUpdating 31c62924a5..cb4ebf0c36\nFast-forward\n app/Component/ES/Processor/Traits/SelectEntityListTrait.php | 20 ------\n app/Services/Calendar/CalendarActivityService.php | 46 +++++++++++++\n app/Services/Calendar/Command/MapActivityData.php | 106 +++-------------------------\n docs/mcp/explorer/explorer.html | 104 +++++++++++++++++++++++++---\n docs/mcp/explorer/explorer.template.html | 102 ++++++++++++++++++++++++---\n docs/mcp/tools-list.json | 373 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++-------\n docs/mcp/tools.md | 117 +++++++++++++++++++++++--------\n tests/Unit/Component/ES/AsyncUpdateElasticSearchTest.php | 16 +----\n tests/Unit/Component/ES/Listeners/UpdateMultipleTargetsListenerTest.php | 10 ---\n tests/Unit/Component/ES/Listeners/UpdateSingleTargetListenerTest.php | 6 --\n tests/Unit/Component/ES/Processor/TargetEntitiesSelectorTest.php | 9 ---\n tests/Unit/Component/ES/Processor/Traits/SelectEntityListTraitTest.php | 15 ++--\n tests/Unit/Component/ES/UpdateProcessManagerTest.php | 2 -\n tests/Unit/Services/Calendar/CalendarActivityServiceTest.php | 150 ++++++++++++++++++++++++++++++++++++++--\n tests/Unit/Services/Calendar/Command/MapActivityDataTest.php | 78 ++-------------------\n 15 files changed, 832 insertions(+), 322 deletions(-)\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (master) $ co -b JY-20613-allow-owner-role-on-team-setup\nSwitched to a new branch 'JY-20613-allow-owner-role-on-team-setup'\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20613-allow-owner-role-on-team-setup) $ csfix\ndocker exec -it docker_lamp_1 ./vendor/bin/php-cs-fixer fix --config=.php-cs-fixer.dist.php -v --using-cache=no --diff \nPHP CS Fixer 3.87.1 Alexander by Fabien Potencier, Dariusz Ruminski and contributors.\nPHP runtime: 8.3.30\nRunning analysis on 7 cores with 10 files per process.\nParallel runner is an experimental feature and may be unstable, use it at your own risk. Feedback highly appreciated!\nLoaded config default from \".php-cs-fixer.dist.php\".\n 5682/5682 [▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓] 100%\n\n\nFixed 0 of 5682 files in 56.978 seconds, 67.00 MB memory used\n\nWhat's next:\n Try Docker Debug for seamless, persistent debugging tools in any container or image → docker debug docker_lamp_1\n Learn more at https://docs.docker.com/go/debug-cli/\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20613-allow-owner-role-on-team-setup) $ ;xd\ndocker exec -it docker_lamp_1 bash -c \"mv /usr/local/etc/php/conf.d/xdebug.ini ~/xdebug.ini\"\n\nWhat's next:\n Try Docker Debug for seamless, persistent debugging tools in any container or image → docker debug docker_lamp_1\n Learn more at https://docs.docker.com/go/debug-cli/\ndocker exec -it docker_lamp_1 supervisorctl restart all\njiminny-worker-processing-2:jiminny-worker-processing-2_00: stopped\njiminny-worker-processing-3:jiminny-worker-processing-3_00: stopped\njiminny-worker-processing-4:jiminny-worker-processing-4_00: stopped\njiminny-worker-processing-5:jiminny-worker-processing-5_00: stopped\njiminny-worker-processing-delayed:jiminny-worker-processing-delayed_00: stopped\nworker-analytics:worker-analytics_00: stopped\nworker-crm-update:worker-crm-update_00: stopped\nworker-download:worker-download_00: stopped\nworker-nudges:worker-nudges_00: stopped\nartisan-schedule:artisan-schedule_00: stopped\nworker-emails:worker-emails_00: stopped\nworker-calendar:worker-calendar_00: stopped\nworker:worker_00: stopped\nworker-conferences:worker-conferences_00: stopped\nworker-crm-sync:worker-crm-sync_00: stopped\njiminny-worker-processing-1:jiminny-worker-processing-1_00: stopped\nworker-audio:worker-audio_00: stopped\nworker-es-update:worker-es-update_00: stopped\nartisan-schedule:artisan-schedule_00: started\njiminny-worker-processing-1:jiminny-worker-processing-1_00: started\njiminny-worker-processing-2:jiminny-worker-processing-2_00: started\njiminny-worker-processing-3:jiminny-worker-processing-3_00: started\njiminny-worker-processing-4:jiminny-worker-processing-4_00: started\njiminny-worker-processing-5:jiminny-worker-processing-5_00: started\njiminny-worker-processing-delayed:jiminny-worker-processing-delayed_00: started\nworker:worker_00: started\nworker-analytics:worker-analytics_00: started\nworker-audio:worker-audio_00: started\nworker-calendar:worker-calendar_00: started\nworker-conferences:worker-conferences_00: started\nworker-crm-sync:worker-crm-sync_00: started\nworker-crm-update:worker-crm-update_00: started\nworker-download:worker-download_00: started\nworker-emails:worker-emails_00: started\nworker-es-update:worker-es-update_00: started\nworker-nudges:worker-nudges_00: started\n\nWhat's next:\n Try Docker Debug for seamless, persistent debugging tools in any container or image → docker debug docker_lamp_1\n Learn more at https://docs.docker.com/go/debug-cli/\ndocker exec -it docker_lamp_1 php -v\nPHP 8.3.30 (cli) (built: Mar 16 2026 22:32:32) (NTS)\nCopyright (c) The PHP Group\nZend Engine v4.3.30, Copyright (c) Zend Technologies\n with Zend OPcache v8.3.30, Copyright (c), by Zend Technologies\n\nWhat's next:\n Try Docker Debug for seamless, persistent debugging tools in any container or image → docker debug docker_lamp_1\n Learn more at https://docs.docker.com/go/debug-cli/\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20613-allow-owner-role-on-team-setup) $ csfix\ndocker exec -it docker_lamp_1 ./vendor/bin/php-cs-fixer fix --config=.php-cs-fixer.dist.php -v --using-cache=no --diff \nPHP CS Fixer 3.87.1 Alexander by Fabien Potencier, Dariusz Ruminski and contributors.\nPHP runtime: 8.3.30\nRunning analysis on 7 cores with 10 files per process.\nParallel runner is an experimental feature and may be unstable, use it at your own risk. Feedback highly appreciated!\nLoaded config default from \".php-cs-fixer.dist.php\".\n 5682/5682 [▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓] 100%\n\n\nFixed 0 of 5682 files in 49.910 seconds, 60.00 MB memory used\n\nWhat's next:\n Try Docker Debug for seamless, persistent debugging tools in any container or image → docker debug docker_lamp_1\n Learn more at https://docs.docker.com/go/debug-cli/\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20613-allow-owner-role-on-team-setup) $ git status\nOn branch JY-20613-allow-owner-role-on-team-setup\nYour branch is ahead of 'origin/JY-20613-allow-owner-role-on-team-setup' by 1 commit.\n (use \"git push\" to publish your local commits)\n\nChanges not staged for commit:\n (use \"git add <file>...\" to update what will be committed)\n (use \"git restore <file>...\" to discard changes in working directory)\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tmodified: .env.local\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tmodified: config/logging.php\n\nUntracked files:\n (use \"git add <file>...\" to include in what will be committed)\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\t.env.nikilocal\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\t.env.other\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tWEBHOOK_FILTERING_IMPLEMENTATION.md\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tapp/Console/Commands/Crm/Hubspot/SimulateWebhooksCommand.php\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tapp/Console/Commands/Reports/CreateMockAskJiminnyReportResultCommand.php\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tids.txt\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tpublic/favicon.ico\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\traw_sql_query.sql\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\ttests/Unit/Policies/CanAccessAiReportsTest.php\n\nno changes added to commit (use \"git add\" and/or \"git commit -a\")\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20613-allow-owner-role-on-team-setup) $ git pull\nremote: Enumerating objects: 248, done.\nremote: Counting objects: 100% (128/128), done.\nremote: Compressing objects: 100% (23/23), done.\nremote: Total 59 (delta 43), reused 44 (delta 33), pack-reused 0 (from 0)\nUnpacking objects: 100% (59/59), 10.48 KiB | 228.00 KiB/s, done.\nFrom github.com:jiminny/app\n b7df560451..190239dfd4 JY-20613-allow-owner-role-on-team-setup -> origin/JY-20613-allow-owner-role-on-team-setup\n e0351be069..d94a285ae7 JY-20808-low-priority-indexing-queue -> origin/JY-20808-low-priority-indexing-queue\n * [new branch] JY-20920-fix-participant-matcher -> origin/JY-20920-fix-participant-matcher\n cb4ebf0c36..90bca4e4b2 master -> origin/master\nMerge made by the 'ort' strategy.\n app/Component/ES/ChunkSize.php | 54 +++++++++++++++++++++++++++\n app/Component/ES/Processor/DTOs/SelectionList.php | 4 +-\n app/Component/ES/Processor/TargetEntitiesSelector.php | 19 ++++++----\n app/Http/Middleware/McpTierMiddleware.php | 27 +++-----------\n app/Mcp/Servers/JiminnyServer.php | 2 +\n app/Mcp/Tools/GetMeTool.php | 157 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++\n app/Models/Feature/FeatureEnum.php | 1 +\n database/migrations/2026_05_13_124153_create_mcp_feature_flag.php | 25 +++++++++++++\n front-end/src/components/Settings/Kiosk/modals/EditTeamModal/EditTeamModal.vue | 52 ++++++++++++++++++--------\n front-end/src/components/Settings/Kiosk/modals/EditTeamModal/__tests__/EditTeamModal.spec.js | 14 +++++++\n tests/Feature/Mcp/GetMeToolFeatureTest.php | 140 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++\n tests/Feature/Mcp/ListCallsToolFeatureTest.php | 2 +-\n tests/Feature/Mcp/McpTestHelpersTrait.php | 19 +++++++++-\n tests/Unit/Component/ES/ChunkSizeTest.php | 50 +++++++++++++++++++++++++\n tests/Unit/Component/ES/Processor/DTOs/SelectionListTest.php | 27 ++++++++++----\n tests/Unit/Component/ES/Processor/TargetEntitiesSelectorTest.php | 39 +++++++++++---------\n 16 files changed, 557 insertions(+), 75 deletions(-)\n create mode 100644 app/Component/ES/ChunkSize.php\n create mode 100644 app/Mcp/Tools/GetMeTool.php\n create mode 100644 database/migrations/2026_05_13_124153_create_mcp_feature_flag.php\n create mode 100644 tests/Feature/Mcp/GetMeToolFeatureTest.php\n create mode 100644 tests/Unit/Component/ES/ChunkSizeTest.php\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20613-allow-owner-role-on-team-setup) $ git push\nEnumerating objects: 40, done.\nCounting objects: 100% (34/34), done.\nDelta compression using up to 8 threads\nCompressing objects: 100% (18/18), done.\nWriting objects: 100% (18/18), 1.58 KiB | 1.58 MiB/s, done.\nTotal 18 (delta 15), reused 0 (delta 0), pack-reused 0\nremote: Resolving deltas: 100% (15/15), completed with 13 local objects.\nTo github.com:jiminny/app.git\n 190239dfd4..ec1b261264 JY-20613-allow-owner-role-on-team-setup -> JY-20613-allow-owner-role-on-team-setup\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20613-allow-owner-role-on-team-setup) $ gbr\n* JY-20613-allow-owner-role-on-team-setup\n pipedrive-sdk-poc\n master\n JY-20903-update_activity-stage-on-opportunity-change\n JY-20904-fix-update-es-on-activity-command\n JY-20891-improve-sms-text-relays\n JY-20725-handle-HS-search-rate-limit\n JY-20818-move-AJ-reports-to-separated-datadog-metric\n JY-20773-fix-automated-reports-user-pilot-tracking\n JY-20157-AJ-report-not-send-notification\n JY-20508-notify-before-AJ-report-expiration\n JY-20372-ai-reports-promotion-pages\n JY-20352-sync-opportunities-without-a-local-owner-user-id-is-null\n JY-20738-debug-AJ-tracking-UP\n a\n JY-18909-automated-reports-ask-jiminny\n JY-20692-fix-integration-app-token-auth-response-change\n JY-20553-debug-crm-sync-delays\n JY-20698-fix-SF-activity-types-on-new-playbook\n JY-20543-AJ-report-tracking\n JY-20384-handle-auto-sync-with-no-access-to-event-type\n JY-20458-ask-jiminny-user-definitions\n JY-19666-fix-import-contacts-account-association\n JY-19666-HS-import-contacts-and-accounts-batch-job\n JY-20458-Ask-Jiminny-Reports\n JY-20200-batch-update-CRM-objects-Salesforce\n JY-19666-HS-webhooks-add-contact-and-company\n JY-20348-trigger-setup-DI-layout-on-team-creation\n JY-20326-refactor-info-message-in-command\n JY-20317-fix-auto-log-delay-issue-on-all-channels-disabled\n JY-20312-remove-on-update-change-last-synced-at-crm-configurations\n JY-20306-SF-skip-auto-sync-for-task-based-playbook\n JY-20192-remove-deleted-team-from-saved-search-filters\n JY-20197-import-opportunity-batch-job\n JY-20293-enable-status-field-for-pipedrive-deals\n JY-20191-remove-commands-interactive-prompts\n JY-20118-change-default-sync-strategy\n JY-20183-add-cache-on-auto-log-delay\n JY-20197-add-import-opportunity-batch-job\n 20118-hs-opportunity-make-webhook-strategy-default\n JY-20118-make-default-hs-opportunity-sync-strategy-webhook-based\n JY-20196-handle-opportunity-without-note\n JY-20118-improve-opportunity-import\n JY-20189-handle-activity-search-on-deleted-groups\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20613-allow-owner-role-on-team-setup) $ co JY-20725-handle-HS-search-rate-limit\nM\u0000\u0000\u0000\u0000\u0000\u0000\t.env.local\nM\u0000\u0000\u0000\u0000\u0000\u0000\tconfig/logging.php\nSwitched to branch 'JY-20725-handle-HS-search-rate-limit'\nYour branch is behind 'origin/JY-20725-handle-HS-search-rate-limit' by 439 commits, and can be fast-forwarded.\n (use \"git pull\" to update your local branch)\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20725-handle-HS-search-rate-limit) $ git pull\nUpdating 0f3e438941..bc6a3fce6b\nFast-forward\n .gitignore | 3 +-\n .windsurfrules | 168 ++---\n CLAUDE.md | 1 +\n app/Component/ActivityAnalytics/Service/CalculateTalkTimeOffsetsFromTranscription.php | 24 +-\n app/Component/AiActivityType/Services/AiActivityTypeEligibilityChecker.php | 28 +-\n app/Component/AiAutomation/Actions/PrepareUpdateDtoAction.php | 32 +-\n app/Component/AiAutomation/Services/CrmFillingEligibilityChecker.php | 47 ++\n app/Component/AiAutomation/TestCrmAiPromptService.php | 14 +\n app/Component/AiCallScoring/Services/AiCallScoringEligibilityChecker.php | 9 +\n app/Component/ES/ElasticSearchDocumentPartialUpdater.php | 13 +-\n app/Component/ES/ElasticSearchWorkerManager.php | 86 ---\n app/Component/ES/Processor/Actions/LoadDocumentsAction.php | 80 +--\n app/Component/ES/Processor/EntityQueryBuilder.php | 12 +-\n app/Component/ES/Processor/TargetEntitiesSelector.php | 2 +-\n app/Component/ES/Processor/Traits/SkipActivityTrait.php | 25 -\n app/Component/ES/Repositories/EsResetActivityRepository.php | 11 +-\n app/Component/ES/Worker/ActivityWorker.php | 73 --\n app/Component/ES/Worker/EntityWorker.php | 44 --\n app/Component/ES/Worker/WorkerAmount.php | 60 --\n app/Component/ES/Worker/WorkerInterface.php | 15 -\n app/Component/ElasticSearch/Contract/Searchable.php | 4 +\n app/Component/Encoding/Job/AnalyzeTrackChannelsJob.php | 20 +-\n app/Component/Encoding/Service/GenerateSpeechFromSilenceService.php | 85 ++-\n app/Component/FFMpeg/Services/GetSpeechIntervalsService.php | 18 +-\n app/Component/LanguageDetection/Services/FindSpeechTimeService.php | 22 +-\n app/Component/Nudge/Job/ProcessOrganisationImmediateNudgesJob.php | 218 +++++-\n app/Component/ParagraphBreaker/Services/TranscriptionParagraphsService.php | 4 +\n app/Component/ParticipantSpeech/Services/ParticipantSpeechesCreator.php | 33 +\n app/Component/ParticipantSpeech/Services/ParticipantSpeechesDeleter.php | 15 +\n app/Component/ParticipantSpeech/Services/ParticipantSpeechesProvider.php | 51 +-\n app/Component/ParticipantSpeech/Services/ParticipantSpeechesUploader.php | 36 +\n app/Component/ProphetAi/Exceptions/InsufficientTranscriptException.php | 11 +\n app/Component/Transcription/DTO/Http/Transcription/AssemblyAI/AssemblyAI/NoAssemblyIdException.php | 11 +\n app/Component/Transcription/DTO/Http/Transcription/AssemblyAI/AssemblyAI/SuccessfulResponse.php | 6 +\n app/Component/Transcription/DTO/Http/Transcription/TranscriptionIsNotCorrectFormatException.php | 11 +\n app/Component/Transcription/Diarization/Services/GetNormalizedParticipantSpeechesService.php | 23 +-\n app/Component/Transcription/Diarization/Source/MeetingBotSource.php | 16 +-\n app/Component/Transcription/TranscriptionProcessor/TranscriptionProcessor.php | 3 +\n app/Console/Commands/Activities/ActivityHardDeleteCommand.php | 4 +-\n app/Console/Commands/Activities/Copy.php | 2 +\n app/Console/Commands/Activities/SetupIntegration/TwilioSetS3RecordingCredentialsCommand.php | 119 ++++\n app/Console/Commands/Activities/UpdateActivityElasticSearchDocumentCommand.php | 10 +-\n app/Console/Commands/Crm/BackfillOpportunityUserFromAccountCommand.php | 126 ++++\n app/Console/Commands/Elasticsearch/AsyncUpdateEsActivities.php | 19 -\n app/Console/Commands/Elasticsearch/AsyncUpdateEsEntities.php | 50 +-\n app/Console/Commands/Elasticsearch/ResetAsyncElasticSearchCommand.php | 30 +-\n app/Console/Commands/GeckoExport/GeckoExportParticipantSpeechesCommand.php | 14 +-\n app/Console/Commands/IssueMcpTokenCommand.php | 84 +++\n app/Console/Commands/JiminnyDebugCommand.php | 7 +-\n app/Console/Commands/Tracks/CleanupActivityTracksCommand.php | 2 +-\n app/Console/Kernel.php | 6 +-\n app/Contracts/Services/Calendar/CalendarTrait.php | 80 ++-\n app/Events/AutomatedReports/AutomatedReportGenerated.php | 3 +\n app/Http/Controllers/API/AiCallScoring/AiScorecardController.php | 7 +-\n app/Http/Controllers/API/TeamAiAutomationController.php | 8 +\n app/Http/Controllers/CustomerApi/CustomerApiController.php | 4 +-\n app/Http/Controllers/Kiosk/ActivityController.php | 58 +-\n app/Http/Controllers/Settings/PlaybookController.php | 15 +-\n app/Http/Kernel.php | 23 +\n app/Http/Middleware/McpAuditMiddleware.php | 156 ++++\n app/Http/Middleware/McpTierMiddleware.php | 54 ++\n app/Http/Requests/API/V2/ZapierUploadActivityRequest.php | 28 +-\n app/Jobs/Activity/Import/ImportTwilioVideoSpeechesJob.php | 25 +-\n app/Jobs/Activity/Import/IsActivityReadyForProcessingJob.php | 10 +-\n app/Jobs/Calendar/SetupCalendarSync.php | 21 +-\n app/Jobs/ImportRemoteTrackJob.php | 96 ++-\n app/Jobs/Mailbox/EmailTextRelay.php | 15 +-\n app/Mcp/Contracts/McpCallRepositoryInterface.php | 30 +\n app/Mcp/DTO/ListCallsFilters.php | 29 +\n app/Mcp/Errors/McpError.php | 123 ++++\n app/Mcp/Repositories/McpActivityHydrator.php | 145 ++++\n app/Mcp/Repositories/McpCallRepository.php | 84 +++\n app/Mcp/Repositories/McpElasticCallRepository.php | 171 +++++\n app/Mcp/Servers/JiminnyServer.php | 38 +\n app/Mcp/Tools/ListCallsTool.php | 205 ++++++\n app/Models/Activity.php | 10 +-\n app/Models/Activity/Transcription.php | 17 +-\n app/Models/ElasticSearch/OpportunityElasticSearchTrait.php | 5 +\n app/Models/Participant.php | 1 +\n app/Providers/AppServiceProvider.php | 22 +\n app/Repositories/Crm/ContactRepository.php | 69 +-\n app/Repositories/ParticipantSpeechRepository.php | 13 +-\n app/Services/Activity/ParticipantsService.php | 19 +-\n app/Services/Activity/Twilio/S3RecordingCredentialsService.php | 82 +++\n app/Services/ActivityService.php | 21 +-\n app/Services/Calendar/CalendarActivityService.php | 46 ++\n app/Services/Calendar/Command/ImportParticipants.php | 1 +\n app/Services/Calendar/Command/MapActivityData.php | 106 +--\n app/Services/Calendar/GoogleCalendarService.php | 12 +-\n app/Services/Crm/Close/Processor/OpportunityProcessor.php | 2 +-\n app/Services/Crm/Close/Service.php | 22 +-\n app/Services/Crm/Copper/Service.php | 12 +-\n app/Services/Crm/Hubspot/Service.php | 154 +++-\n app/Services/Crm/Hubspot/ServiceTraits/OpportunitySyncTrait.php | 88 ++-\n app/Services/Crm/IntegrationApp/ServiceTraits/SyncCrmEntitiesTrait.php | 22 +-\n app/Services/Crm/Pipedrive/Service.php | 17 +-\n app/Services/Crm/Salesforce/Service.php | 42 +-\n app/Services/Mail/Office/EmailApiClient.php | 129 +---\n app/Services/RecallAI/Commands/ScheduleBotCommand.php | 39 +-\n app/Services/RecallAI/RecallAIService.php | 22 +-\n composer.json | 3 +-\n composer.lock | 87 ++-\n config/mcp.php | 23 +\n database/migrations/2026_04_30_120000_create_mcp_audit_log_table.php | 36 +\n docs/mcp/explorer/explorer.html | 697 ++++++++++++++++++\n docs/mcp/explorer/explorer.template.html | 697 ++++++++++++++++++\n docs/mcp/explorer/generate.js | 215 ++++++\n docs/mcp/explorer/tool-explorer-meta.json | 11 +\n docs/mcp/tools-list.json | 2536 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++\n docs/mcp/tools.md | 621 ++++++++++++++++\n front-end/package.json | 4 +-\n front-end/src/components/Settings/OrgSettings/AiAutomation/CrmFilling/TemplateFieldForm.vue | 28 +-\n front-end/src/components/Settings/OrgSettings/Playbooks/AddEditPlaybook.vue | 10 +\n front-end/src/components/playback/comments/ActivityComment.less | 10 +-\n front-end/src/components/shared/PromptTester/PromptTester.vue | 12 +-\n front-end/src/components/shared/__tests__/PromptTester.spec.js | 35 +\n front-end/src/components/shared/modals/EntityPickerModal/__tests__/useEntitiesCache.spec.ts | 37 +\n front-end/src/components/shared/modals/EntityPickerModal/useEntitiesCache.ts | 9 +\n front-end/yarn.lock | 16 +-\n phpstan-baseline.neon | 50 --\n routes/api.php | 11 +\n sonar-project.properties | 91 ++-\n tests/Feature/Component/Nudge/ProcessOrganisationImmediateNudgesJobTest.php | 534 ++++++++++++++\n tests/Feature/Jobs/ImportRemoteTrackJobTest.php | 283 +++++++-\n tests/Feature/Mcp/IssueMcpTokenCommandTest.php | 53 ++\n tests/Feature/Mcp/ListCallsToolElasticFeatureTest.php | 155 ++++\n tests/Feature/Mcp/ListCallsToolFeatureTest.php | 352 ++++++++++\n tests/Feature/Mcp/McpTestHelpersTrait.php | 77 ++\n tests/Feature/Services/Team/TeamDeleteHandlers/Retention/RetentionRepositoryHandlerTest.php | 1 +\n tests/Stubs/SentryStub.php | 18 +\n tests/Unit/Component/ActivityAnalytics/Service/CalculateTalkTimeOffsetFromTranscriptionTest.php | 28 +-\n tests/Unit/Component/AiActivityType/Services/AiActivityTypeEligibilityCheckerTest.php | 103 ++-\n tests/Unit/Component/AiAutomation/Actions/PrepareUpdateDtoActionTest.php | 91 +++\n tests/Unit/Component/AiAutomation/Services/CrmFillingEligibilityCheckerTest.php | 124 ++++\n tests/Unit/Component/AiAutomation/TestCrmAiPromptServiceTest.php | 67 +-\n tests/Unit/Component/AiCallScoring/Services/AiCallScoringEligibilityCheckerTest.php | 55 ++\n tests/Unit/Component/ES/ElasticSearchWorkerManagerTest.php | 135 ----\n tests/Unit/Component/ES/Processor/Actions/LoadDocumentsActionTest.php | 220 ++++++\n tests/Unit/Component/ES/Processor/EntityQueryBuilderTest.php | 21 +-\n tests/Unit/Component/ES/Processor/Traits/SkipActivityTraitTest.php | 51 --\n tests/Unit/Component/ES/Worker/ActivityWorkerTest.php | 174 -----\n tests/Unit/Component/ES/Worker/EntityWorkerTest.php | 97 ---\n tests/Unit/Component/ES/Worker/WorkerAmountTest.php | 116 ---\n tests/Unit/Component/Encoding/Job/AnalyzeTrackChannelsJobTest.php | 52 +-\n tests/Unit/Component/Encoding/Service/GenerateSpeechFromSilenceServiceTest.php | 171 ++---\n tests/Unit/Component/FFMpeg/Services/GetSpeechIntervalsTest.php | 36 +-\n tests/Unit/Component/LanguageDetection/Services/FindSpeechTimeServiceTest.php | 20 +-\n tests/Unit/Component/MobileSettings/MobileSettingsControllerTest.php | 5 +-\n tests/Unit/Component/ParticipantSpeech/Services/ParticipantSpeechesCreatorTest.php | 75 ++\n tests/Unit/Component/ParticipantSpeech/Services/ParticipantSpeechesDeleterTest.php | 63 ++\n tests/Unit/Component/ParticipantSpeech/Services/ParticipantSpeechesProviderTest.php | 134 ++++\n tests/Unit/Component/ParticipantSpeech/Services/ParticipantSpeechesUploaderTest.php | 57 ++\n tests/Unit/Component/Transcription/Diarization/Services/GetNormalizedParticipantSpeechesServiceTest.php | 51 +-\n tests/Unit/Component/Transcription/Diarization/Source/MeetingBotSourceTest.php | 29 +-\n tests/Unit/Contracts/Services/Calendar/CalendarTraitTest.php | 58 +-\n tests/Unit/Http/Controllers/Kiosk/ActivityControllerTest.php | 159 +++++\n tests/Unit/Jobs/Activity/Import/ImportTwilioVideoSpeechesJobTest.php | 22 +-\n tests/Unit/Jobs/Activity/Import/IsActivityReadyForProcessingJobTest.php | 26 +-\n tests/Unit/Jobs/Calendar/SetupCalendarSyncTest.php | 25 -\n tests/Unit/Services/Activity/ParticipantsServiceTest.php | 12 +-\n tests/Unit/Services/Activity/Twilio/S3RecordingCredentialsServiceTest.php | 180 +++++\n tests/Unit/Services/ActivityServiceTest.php | 132 ++++\n tests/Unit/Services/Calendar/CalendarActivityServiceTest.php | 150 +++-\n tests/Unit/Services/Calendar/Command/ImportParticipantsTest.php | 6 +-\n tests/Unit/Services/Calendar/Command/MapActivityDataTest.php | 78 +-\n tests/Unit/Services/Calendar/GoogleCalendarServiceTest.php | 116 +++\n tests/Unit/Services/Crm/Close/ServiceTest.php | 165 +++++\n tests/Unit/Services/Crm/Hubspot/ServiceTest.php | 272 ++++++-\n tests/Unit/Services/Crm/Hubspot/ServiceTraits/OpportunitySyncTest.php | 25 +-\n tests/Unit/Services/Crm/Hubspot/ServiceTraits/OpportunitySyncTraitMatchActivitiesTest.php | 3 +-\n tests/Unit/Services/Crm/IntegrationApp/ServiceTraits/SyncCrmEntitiesTraitOpportunitiesTest.php | 40 ++\n tests/Unit/Services/Crm/Pipedrive/ImportOpportunityMatchActivitiesTest.php | 2 +\n tests/Unit/Services/Crm/Salesforce/ServiceTest.php | 139 ++++\n tests/Unit/Services/Mail/Office/EmailApiClientTest.php | 195 ++---\n tests/Unit/Services/RecallAI/RecallAIServiceTest.php | 24 +-\n 175 files changed, 12562 insertions(+), 2162 deletions(-)\n create mode 120000 CLAUDE.md\n create mode 100644 app/Component/AiAutomation/Services/CrmFillingEligibilityChecker.php\n delete mode 100644 app/Component/ES/ElasticSearchWorkerManager.php\n delete mode 100644 app/Component/ES/Processor/Traits/SkipActivityTrait.php\n delete mode 100644 app/Component/ES/Worker/ActivityWorker.php\n delete mode 100644 app/Component/ES/Worker/EntityWorker.php\n delete mode 100644 app/Component/ES/Worker/WorkerAmount.php\n delete mode 100644 app/Component/ES/Worker/WorkerInterface.php\n create mode 100644 app/Component/ProphetAi/Exceptions/InsufficientTranscriptException.php\n create mode 100644 app/Component/Transcription/DTO/Http/Transcription/AssemblyAI/AssemblyAI/NoAssemblyIdException.php\n create mode 100644 app/Component/Transcription/DTO/Http/Transcription/TranscriptionIsNotCorrectFormatException.php\n create mode 100644 app/Console/Commands/Activities/SetupIntegration/TwilioSetS3RecordingCredentialsCommand.php\n create mode 100644 app/Console/Commands/Crm/BackfillOpportunityUserFromAccountCommand.php\n delete mode 100644 app/Console/Commands/Elasticsearch/AsyncUpdateEsActivities.php\n create mode 100644 app/Console/Commands/IssueMcpTokenCommand.php\n create mode 100644 app/Http/Middleware/McpAuditMiddleware.php\n create mode 100644 app/Http/Middleware/McpTierMiddleware.php\n create mode 100644 app/Mcp/Contracts/McpCallRepositoryInterface.php\n create mode 100644 app/Mcp/DTO/ListCallsFilters.php\n create mode 100644 app/Mcp/Errors/McpError.php\n create mode 100644 app/Mcp/Repositories/McpActivityHydrator.php\n create mode 100644 app/Mcp/Repositories/McpCallRepository.php\n create mode 100644 app/Mcp/Repositories/McpElasticCallRepository.php\n create mode 100644 app/Mcp/Servers/JiminnyServer.php\n create mode 100644 app/Mcp/Tools/ListCallsTool.php\n create mode 100644 app/Services/Activity/Twilio/S3RecordingCredentialsService.php\n create mode 100644 config/mcp.php\n create mode 100644 database/migrations/2026_04_30_120000_create_mcp_audit_log_table.php\n create mode 100644 docs/mcp/explorer/explorer.html\n create mode 100644 docs/mcp/explorer/explorer.template.html\n create mode 100644 docs/mcp/explorer/generate.js\n create mode 100644 docs/mcp/explorer/tool-explorer-meta.json\n create mode 100644 docs/mcp/tools-list.json\n create mode 100644 docs/mcp/tools.md\n create mode 100644 front-end/src/components/shared/modals/EntityPickerModal/__tests__/useEntitiesCache.spec.ts\n create mode 100644 tests/Feature/Component/Nudge/ProcessOrganisationImmediateNudgesJobTest.php\n create mode 100644 tests/Feature/Mcp/IssueMcpTokenCommandTest.php\n create mode 100644 tests/Feature/Mcp/ListCallsToolElasticFeatureTest.php\n create mode 100644 tests/Feature/Mcp/ListCallsToolFeatureTest.php\n create mode 100644 tests/Feature/Mcp/McpTestHelpersTrait.php\n create mode 100644 tests/Stubs/SentryStub.php\n create mode 100644 tests/Unit/Component/AiAutomation/Services/CrmFillingEligibilityCheckerTest.php\n delete mode 100644 tests/Unit/Component/ES/ElasticSearchWorkerManagerTest.php\n create mode 100644 tests/Unit/Component/ES/Processor/Actions/LoadDocumentsActionTest.php\n delete mode 100644 tests/Unit/Component/ES/Processor/Traits/SkipActivityTraitTest.php\n delete mode 100644 tests/Unit/Component/ES/Worker/ActivityWorkerTest.php\n delete mode 100644 tests/Unit/Component/ES/Worker/EntityWorkerTest.php\n delete mode 100644 tests/Unit/Component/ES/Worker/WorkerAmountTest.php\n create mode 100644 tests/Unit/Component/ParticipantSpeech/Services/ParticipantSpeechesCreatorTest.php\n create mode 100644 tests/Unit/Http/Controllers/Kiosk/ActivityControllerTest.php\n create mode 100644 tests/Unit/Services/Activity/Twilio/S3RecordingCredentialsServiceTest.php\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20725-handle-HS-search-rate-limit) $ git status\nOn branch master\nYour branch is behind 'origin/master' by 114 commits, and can be fast-forwarded.\n (use \"git pull\" to update your local branch)\n\nChanges not staged for commit:\n (use \"git add <file>...\" to update what will be committed)\n (use \"git restore <file>...\" to discard changes in working directory)\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tmodified: .env.local\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tmodified: app/Component/SCIM/Constants.php\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tmodified: app/Component/SCIM/ScimProvisioning.php\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tmodified: app/Component/Twilio/Conference/ConferenceManager/SoftPhoneManager.php\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tmodified: app/Console/Commands/JiminnyDebugCommand.php\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tmodified: app/DTO/SCIM/AAD/Request/CoreUserRequest.php\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tmodified: app/DTO/SCIM/AAD/Response/CoreUser.php\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tmodified: app/Services/Telephony/TextMessagingService.php\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tmodified: config/logging.php\n\nUntracked files:\n (use \"git add <file>...\" to include in what will be committed)\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\t.env.nikilocal\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\t.env.other\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tWEBHOOK_FILTERING_IMPLEMENTATION.md\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tapp/Component/SCIM/Mutators/Attributes/User/RoleAttr.php\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tapp/Console/Commands/Crm/Hubspot/SimulateWebhooksCommand.php\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tapp/Console/Commands/Reports/CreateMockAskJiminnyReportResultCommand.php\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tapp/Rules/ListenerRoleCannotHaveAdminOrManagerPermissionRule.php\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tids.txt\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tpublic/favicon.ico\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\traw_sql_query.sql\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\ttests/Unit/Component/SCIM/Mutators/Attributes/User/RoleAttrTest.php\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\ttests/Unit/Policies/CanAccessAiReportsTest.php\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\ttests/Unit/Rules/ListenerRoleCannotHaveAdminOrManagerPermissionRuleTest.php\n\nno changes added to commit (use \"git add\" and/or \"git commit -a\")\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (master) $ git pull\nremote: Enumerating objects: 306, done.\nremote: Counting objects: 100% (299/299), done.\nremote: Compressing objects: 100% (183/183), done.\nremote: Total 306 (delta 213), reused 171 (delta 116), pack-reused 7 (from 1)\nReceiving objects: 100% (306/306), 80.12 KiB | 1000.00 KiB/s, done.\nResolving deltas: 100% (213/213), completed with 53 local objects.\nFrom github.com:jiminny/app\n 90bca4e4b2..5604af40cf master -> origin/master\n 4e7078fd8b..0b8343d179 JY-18091-upgrade-to-php-8-5 -> origin/JY-18091-upgrade-to-php-8-5\n 098eeaa087..d5a447e492 JY-20613-allow-owner-role-on-team-setup -> origin/JY-20613-allow-owner-role-on-team-setup\n c3a76ace91..af65249d0f JY-20749-user-can-view-recorded-meetings -> origin/JY-20749-user-can-view-recorded-meetings\n d94a285ae7..7ce96cb5fe JY-20808-low-priority-indexing-queue -> origin/JY-20808-low-priority-indexing-queue\n * [new branch] JY-20842-remove-partial-updater -> origin/JY-20842-remove-partial-updater\n * [new branch] JY-20920-fix-participant-flip -> origin/JY-20920-fix-participant-flip\n * [new branch] secfix/npm-20260519 -> origin/secfix/npm-20260519\nUpdating cb4ebf0c36..5604af40cf\nFast-forward\n app/Component/ES/ChunkSize.php | 54 +++++++++++++++++++\n app/Component/ES/Processor/DTOs/SelectionList.php | 4 +-\n app/Component/ES/Processor/TargetEntitiesSelector.php | 19 ++++---\n app/Component/MeetingBot/Service/ParticipantMatcher.php | 46 ++++++++++++----\n app/Exceptions/RateLimitException.php | 19 ++++++-\n app/Http/Middleware/McpTierMiddleware.php | 27 ++--------\n app/Jobs/Crm/MatchActivityCrmData.php | 47 ++++++++++++----\n app/Jobs/Middleware/HandleHubspotRateLimit.php | 42 +++++++++++++++\n app/Mcp/Servers/JiminnyServer.php | 2 +\n app/Mcp/Tools/GetMeTool.php | 157 +++++++++++++++++++++++++++++++++++++++++++++++++++++\n app/Models/Feature/FeatureEnum.php | 1 +\n app/Services/Activity/HubSpot/ProviderResolver.php | 4 +-\n app/Services/Activity/HubSpot/ProviderResolverInterface.php | 2 +-\n app/Services/Activity/HubSpot/Providers/Provider.php | 2 +-\n app/Services/Activity/HubSpot/Providers/ProviderKixie.php | 2 +-\n app/Services/Activity/HubSpot/Providers/ProviderOrum.php | 2 +-\n app/Services/Activity/HubSpot/Providers/ProviderTwilio.php | 2 +-\n app/Services/Activity/HubSpot/Providers/ProviderTwilioFlex.php | 5 +-\n app/Services/Activity/HubSpot/Service.php | 97 +++++++++++++++++++++++++++------\n app/Services/Crm/Hubspot/Client.php | 132 +++++++++++++++++++++++++++++++++++++++++++++\n app/Services/Crm/Hubspot/HubspotClientInterface.php | 15 ++++++\n app/Services/Crm/Hubspot/Pagination/HubspotPaginationService.php | 21 ++++----\n app/Services/Crm/Hubspot/Pagination/PaginationState.php | 2 +-\n database/migrations/2026_05_13_124153_create_mcp_feature_flag.php | 25 +++++++++\n tests/Feature/Mcp/GetMeToolFeatureTest.php | 140 +++++++++++++++++++++++++++++++++++++++++++++++\n tests/Feature/Mcp/ListCallsToolFeatureTest.php | 2 +-\n tests/Feature/Mcp/McpTestHelpersTrait.php | 19 ++++++-\n tests/Unit/Component/ES/ChunkSizeTest.php | 50 +++++++++++++++++\n tests/Unit/Component/ES/Processor/DTOs/SelectionListTest.php | 27 +++++++---\n tests/Unit/Component/ES/Processor/TargetEntitiesSelectorTest.php | 39 ++++++++------\n tests/Unit/Component/MeetingBot/Service/ParticipantMatcherTest.php | 68 ++++++++++++++++++++++-\n tests/Unit/Exceptions/RateLimitExceptionTest.php | 56 +++++++++++++++++++\n tests/Unit/Jobs/Crm/MatchActivityCrmDataTest.php | 8 +--\n tests/Unit/Jobs/Middleware/HandleHubspotRateLimitTest.php | 151 +++++++++++++++++++++++++++++++++++++++++++++++++++\n tests/Unit/Services/Activity/HubSpot/ServiceTest.php | 109 +++++++++++++++++++++++++++++++++++++\n tests/Unit/Services/Crm/Hubspot/ClientTest.php | 250 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++\n tests/Unit/Services/Crm/Hubspot/Pagination/HubspotPaginationServiceTest.php | 283 +++++++++++++++++++++---------------------------------------------------------------------------\n 37 files changed, 1587 insertions(+), 344 deletions(-)\n create mode 100644 app/Component/ES/ChunkSize.php\n create mode 100644 app/Jobs/Middleware/HandleHubspotRateLimit.php\n create mode 100644 app/Mcp/Tools/GetMeTool.php\n create mode 100644 database/migrations/2026_05_13_124153_create_mcp_feature_flag.php\n create mode 100644 tests/Feature/Mcp/GetMeToolFeatureTest.php\n create mode 100644 tests/Unit/Component/ES/ChunkSizeTest.php\n create mode 100644 tests/Unit/Exceptions/RateLimitExceptionTest.php\n create mode 100644 tests/Unit/Jobs/Middleware/HandleHubspotRateLimitTest.php\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (master) $ git pull\nAlready up to date.\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (master) $ co -b JY-20676-delete-report-related-objects\nSwitched to a new branch 'JY-20676-delete-report-related-objects'\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20676-delete-report-related-objects) $ csfix\ndocker exec -it docker_lamp_1 ./vendor/bin/php-cs-fixer fix --config=.php-cs-fixer.dist.php -v --using-cache=no --diff \nPHP CS Fixer 3.87.1 Alexander by Fabien Potencier, Dariusz Ruminski and contributors.\nPHP runtime: 8.3.30\nRunning analysis on 7 cores with 10 files per process.\nParallel runner is an experimental feature and may be unstable, use it at your own risk. Feedback highly appreciated!\nLoaded config default from \".php-cs-fixer.dist.php\".\n 5690/5690 [▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓] 100%\n\n 1) app/Console/Commands/JiminnyDebugCommand.php (statement_indentation, blank_line_before_statement)\n ---------- begin diff ----------\n--- /home/jiminny/app/Console/Commands/JiminnyDebugCommand.php\n+++ /home/jiminny/app/Console/Commands/JiminnyDebugCommand.php\n@@ -23,6 +23,7 @@\n \n if ($action === 'redis-set') {\n $this->testRedisSet();\n+\n return;\n }\n \n@@ -45,7 +46,7 @@\n $ttl = 60;\n \n try {\n-// $result = Redis::set($testKey, $testValue, 'EX', $ttl, 'NX');\n+ // $result = Redis::set($testKey, $testValue, 'EX', $ttl, 'NX');\n $result = Redis::set($testKey, $testValue, ['nx', 'ex' => $ttl]);\n \n if ($result) {\n\n ----------- end diff -----------\n\n\nFixed 1 of 5690 files in 50.673 seconds, 67.00 MB memory used\n\nWhat's next:\n Try Docker Debug for seamless, persistent debugging tools in any container or image → docker debug docker_lamp_1\n Learn more at https://docs.docker.com/go/debug-cli/\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20676-delete-report-related-objects) $ ;xd\ndocker exec -it docker_lamp_1 bash -c \"mv /usr/local/etc/php/conf.d/xdebug.ini ~/xdebug.ini\"\n\nWhat's next:\n Try Docker Debug for seamless, persistent debugging tools in any container or image → docker debug docker_lamp_1\n Learn more at https://docs.docker.com/go/debug-cli/\ndocker exec -it docker_lamp_1 supervisorctl restart all\njiminny-worker-processing-2:jiminny-worker-processing-2_00: stopped\njiminny-worker-processing-3:jiminny-worker-processing-3_00: stopped\njiminny-worker-processing-4:jiminny-worker-processing-4_00: stopped\njiminny-worker-processing-5:jiminny-worker-processing-5_00: stopped\njiminny-worker-processing-delayed:jiminny-worker-processing-delayed_00: stopped\nworker-analytics:worker-analytics_00: stopped\nworker-crm-update:worker-crm-update_00: stopped\nworker-download:worker-download_00: stopped\nworker-nudges:worker-nudges_00: stopped\nworker-calendar:worker-calendar_00: stopped\nworker-audio:worker-audio_00: stopped\njiminny-worker-processing-1:jiminny-worker-processing-1_00: stopped\nworker:worker_00: stopped\nworker-conferences:worker-conferences_00: stopped\nworker-crm-sync:worker-crm-sync_00: stopped\nworker-emails:worker-emails_00: stopped\nworker-es-update:worker-es-update_00: stopped\nartisan-schedule:artisan-schedule_00: stopped\nartisan-schedule:artisan-schedule_00: started\njiminny-worker-processing-1:jiminny-worker-processing-1_00: started\njiminny-worker-processing-2:jiminny-worker-processing-2_00: started\njiminny-worker-processing-3:jiminny-worker-processing-3_00: started\njiminny-worker-processing-4:jiminny-worker-processing-4_00: started\njiminny-worker-processing-5:jiminny-worker-processing-5_00: started\njiminny-worker-processing-delayed:jiminny-worker-processing-delayed_00: started\nworker:worker_00: started\nworker-analytics:worker-analytics_00: started\nworker-audio:worker-audio_00: started\nworker-calendar:worker-calendar_00: started\nworker-conferences:worker-conferences_00: started\nworker-crm-sync:worker-crm-sync_00: started\nworker-crm-update:worker-crm-update_00: started\nworker-download:worker-download_00: started\nworker-emails:worker-emails_00: started\nworker-es-update:worker-es-update_00: started\nworker-nudges:worker-nudges_00: started\n\nWhat's next:\n Try Docker Debug for seamless, persistent debugging tools in any container or image → docker debug docker_lamp_1\n Learn more at https://docs.docker.com/go/debug-cli/\ndocker exec -it docker_lamp_1 php -v\nPHP 8.3.30 (cli) (built: Mar 16 2026 22:32:32) (NTS)\nCopyright (c) The PHP Group\nZend Engine v4.3.30, Copyright (c) Zend Technologies\n with Zend OPcache v8.3.30, Copyright (c), by Zend Technologies\n\nWhat's next:\n Try Docker Debug for seamless, persistent debugging tools in any container or image → docker debug docker_lamp_1\n Learn more at https://docs.docker.com/go/debug-cli/\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20676-delete-report-related-objects) $ git status\nOn branch JY-20676-delete-report-related-objects\nChanges not staged for commit:\n (use \"git add <file>...\" to update what will be committed)\n (use \"git restore <file>...\" to discard changes in working directory)\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tmodified: .env.local\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tmodified: app/Console/Commands/JiminnyDebugCommand.php\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tmodified: config/logging.php\n\nUntracked files:\n (use \"git add <file>...\" to include in what will be committed)\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\t.env.nikilocal\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\t.env.other\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tWEBHOOK_FILTERING_IMPLEMENTATION.md\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tapp/Console/Commands/Crm/Hubspot/SimulateWebhooksCommand.php\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tapp/Console/Commands/Reports/CreateMockAskJiminnyReportResultCommand.php\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tids.txt\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tpublic/favicon.ico\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\traw_sql_query.sql\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\ttests/Unit/Policies/CanAccessAiReportsTest.php\n\nno changes added to commit (use \"git add\" and/or \"git commit -a\")\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20676-delete-report-related-objects) $ git push -u origin JY-20676-delete-report-related-objects\nEnumerating objects: 45, done.\nCounting objects: 100% (45/45), done.\nDelta compression using up to 8 threads\nCompressing objects: 100% (24/24), done.\nWriting objects: 100% (24/24), 3.62 KiB | 3.62 MiB/s, done.\nTotal 24 (delta 19), reused 0 (delta 0), pack-reused 0\nremote: Resolving deltas: 100% (19/19), completed with 19 local objects.\nremote: \nremote: Create a pull request for 'JY-20676-delete-report-related-objects' on GitHub by visiting:\nremote: https://github.com/jiminny/app/pull/new/JY-20676-delete-report-related-objects\nremote: \nTo github.com:jiminny/app.git\n * [new branch] JY-20676-delete-report-related-objects -> JY-20676-delete-report-related-objects\nbranch 'JY-20676-delete-report-related-objects' set up to track 'origin/JY-20676-delete-report-related-objects'.\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20676-delete-report-related-objects) $ csfix\ndocker exec -it docker_lamp_1 ./vendor/bin/php-cs-fixer fix --config=.php-cs-fixer.dist.php -v --using-cache=no --diff \nPHP CS Fixer 3.87.1 Alexander by Fabien Potencier, Dariusz Ruminski and contributors.\nPHP runtime: 8.3.30\nRunning analysis on 7 cores with 10 files per process.\nParallel runner is an experimental feature and may be unstable, use it at your own risk. Feedback highly appreciated!\nLoaded config default from \".php-cs-fixer.dist.php\".\n 5690/5690 [▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓] 100%\n\n 1) app/Http/Controllers/API/V2/AskJiminnyReportsController.php (blank_line_before_statement)\n ---------- begin diff ----------\n--- /home/jiminny/app/Http/Controllers/API/V2/AskJiminnyReportsController.php\n+++ /home/jiminny/app/Http/Controllers/API/V2/AskJiminnyReportsController.php\n@@ -140,6 +140,7 @@\n if ($enabled && $report->isAskJiminnyReport() && ! $report->canExecute()) {\n $error = 'This report is missing a saved search or prompt. ' .\n 'Edit the report to complete the setup before enabling it.';\n+\n return new JsonResponse(\n ['error' => $error],\n Response::HTTP_UNPROCESSABLE_ENTITY\n\n ----------- end diff -----------\n\n\nFixed 1 of 5690 files in 71.757 seconds, 60.00 MB memory used\n\nWhat's next:\n Try Docker Debug for seamless, persistent debugging tools in any container or image → docker debug docker_lamp_1\n Learn more at https://docs.docker.com/go/debug-cli/\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20676-delete-report-related-objects) $ git pull\nremote: Enumerating objects: 158, done.\nremote: Counting objects: 100% (103/103), done.\nremote: Compressing objects: 100% (37/37), done.\nremote: Total 158 (delta 80), reused 74 (delta 66), pack-reused 55 (from 3)\nReceiving objects: 100% (158/158), 80.59 KiB | 982.00 KiB/s, done.\nResolving deltas: 100% (85/85), completed with 45 local objects.\nFrom github.com:jiminny/app\n 02a33811ee..c6ce5e2440 JY-20676-delete-report-related-objects -> origin/JY-20676-delete-report-related-objects\n 7ce96cb5fe..6c59f04358 JY-20808-low-priority-indexing-queue -> origin/JY-20808-low-priority-indexing-queue\n 3906a9238a..2b5e6ea62b JY-20835-mcp-enable-users-to-get-a-list-of-deals-and-their-details -> origin/JY-20835-mcp-enable-users-to-get-a-list-of-deals-and-their-details\n 5604af40cf..ea3519f0e2 master -> origin/master\n * [new branch] switch-eu-assembly -> origin/switch-eu-assembly\nUpdating 02a33811ee..c6ce5e2440\nFast-forward\n app/Component/ES/ElasticSearchDocumentPartialUpdater.php | 48 ---\n app/Component/ParticipantSpeech/Services/ParticipantAttributionService.php | 4 +-\n app/Component/Settings/AutoScoring/Services/UpdateAutoScoreService.php | 20 +-\n app/Component/Transcription/Service/StorageService.php | 8 +-\n front-end/package.json | 2 +-\n front-end/src/components/DealInsights/Modals/AskAnythingModal.vue | 23 ++\n front-end/src/components/shared/AskAnything/AskAnythingPromptFormItem.vue | 2 +\n front-end/src/components/shared/AskAnything/AskAnythingSettingsDrawer.vue | 23 +-\n front-end/src/components/shared/AskAnything/__mocks__/AskAnythingSettingsDrawer.mocks.js | 1 +\n front-end/src/components/shared/AskAnything/__tests__/AskAnythingSettingsDrawer.spec.js | 135 ++++---\n front-end/src/components/shared/AskAnything/__tests__/__snapshots__/AskAnythingSettingsDrawer.spec.js.html | 1235 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++\n front-end/src/components/shared/AskAnything/__tests__/__snapshots__/AskAnythingSettingsDrawer.spec.js.snap | 1382 ----------------------------------------------------------------\n front-end/src/components/shared/AskAnything/prompts.js | 1 +\n front-end/src/components/shared/AskAnything/useAskAnything.js | 1 +\n front-end/yarn.lock | 8 +-\n tests/Unit/Component/ES/ElasticSearchDocumentPartialUpdaterTest.php | 42 --\n tests/Unit/Component/Settings/AutoScoring/Services/UpdateAutoScoreServiceTest.php | 86 ++--\n tests/Unit/Component/Transcription/Service/StorageServiceTest.php | 29 +-\n 18 files changed, 1448 insertions(+), 1602 deletions(-)\n delete mode 100644 app/Component/ES/ElasticSearchDocumentPartialUpdater.php\n create mode 100644 front-end/src/components/shared/AskAnything/__tests__/__snapshots__/AskAnythingSettingsDrawer.spec.js.html\n delete mode 100644 front-end/src/components/shared/AskAnything/__tests__/__snapshots__/AskAnythingSettingsDrawer.spec.js.snap\n delete mode 100644 tests/Unit/Component/ES/ElasticSearchDocumentPartialUpdaterTest.php\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20676-delete-report-related-objects) $ csfix\ndocker exec -it docker_lamp_1 ./vendor/bin/php-cs-fixer fix --config=.php-cs-fixer.dist.php -v --using-cache=no --diff \nPHP CS Fixer 3.87.1 Alexander by Fabien Potencier, Dariusz Ruminski and contributors.\nPHP runtime: 8.3.30\nRunning analysis on 7 cores with 10 files per process.\nParallel runner is an experimental feature and may be unstable, use it at your own risk. Feedback highly appreciated!\nLoaded config default from \".php-cs-fixer.dist.php\".\n 2941/5688 [▓▓▓▓▓▓▓▓▓▓▓▓▓▓░░░░░░░░░░░░░░] 51%","depth":4,"on_screen":true,"value":"Last login: Mon May 18 09:17:28 on ttys007\n\nPoetry could not find a pyproject.toml file in /Users/lukas/jiminny/app or its parents\n\nPoetry could not find a pyproject.toml file in /Users/lukas/jiminny/app or its parents\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (pipedrive-sdk-poc) $ co master\nerror: Your local changes to the following files would be overwritten by checkout:\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tPIPEDRIVE_V2_MIGRATION_TICKETS.md\nPlease commit your changes or stash them before you switch branches.\nAborting\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (pipedrive-sdk-poc) $ git pull\nremote: Enumerating objects: 1047, done.\nremote: Counting objects: 100% (832/832), done.\nremote: Compressing objects: 100% (298/298), done.\nremote: Total 1047 (delta 634), reused 596 (delta 534), pack-reused 215 (from 3)\nReceiving objects: 100% (1047/1047), 353.16 KiB | 1.56 MiB/s, done.\nResolving deltas: 100% (687/687), completed with 107 local objects.\nFrom github.com:jiminny/app\n 907c54896c..34656c53ed pipedrive-sdk-poc -> origin/pipedrive-sdk-poc\n 03325ec50f..4e7078fd8b JY-18091-upgrade-to-php-8-5 -> origin/JY-18091-upgrade-to-php-8-5\n e7d231e163..bc6a3fce6b JY-20725-handle-HS-search-rate-limit -> origin/JY-20725-handle-HS-search-rate-limit\n * [new branch] JY-20749-user-can-view-recorded-meetings -> origin/JY-20749-user-can-view-recorded-meetings\n 98ca281a04..e0351be069 JY-20808-low-priority-indexing-queue -> origin/JY-20808-low-priority-indexing-queue\n 569abb5149..3906a9238a JY-20835-mcp-enable-users-to-get-a-list-of-deals-and-their-details -> origin/JY-20835-mcp-enable-users-to-get-a-list-of-deals-and-their-details\n ad6c2a86e8..50eb6afba9 JY-20846-mcp-enable-the-ai-to-know-details-about-the-user -> origin/JY-20846-mcp-enable-the-ai-to-know-details-about-the-user\n * [new branch] JY-20893-chunk-control-per-update-target -> origin/JY-20893-chunk-control-per-update-target\n 31c62924a5..cb4ebf0c36 master -> origin/master\nUpdating 907c54896c..34656c53ed\nFast-forward\n PIPEDRIVE_V2_MIGRATION_TICKETS.md | 52 ++++++++++++++++++++++++++++++++++++++++++++++++++++\n 1 file changed, 52 insertions(+)\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (pipedrive-sdk-poc) $ co master\nM\u0000\u0000\u0000\u0000\u0000\u0000\t.env.local\nM\u0000\u0000\u0000\u0000\u0000\u0000\tconfig/logging.php\nSwitched to branch 'master'\nYour branch is behind 'origin/master' by 31 commits, and can be fast-forwarded.\n (use \"git pull\" to update your local branch)\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (master) $ git pull\nUpdating 31c62924a5..cb4ebf0c36\nFast-forward\n app/Component/ES/Processor/Traits/SelectEntityListTrait.php | 20 ------\n app/Services/Calendar/CalendarActivityService.php | 46 +++++++++++++\n app/Services/Calendar/Command/MapActivityData.php | 106 +++-------------------------\n docs/mcp/explorer/explorer.html | 104 +++++++++++++++++++++++++---\n docs/mcp/explorer/explorer.template.html | 102 ++++++++++++++++++++++++---\n docs/mcp/tools-list.json | 373 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++-------\n docs/mcp/tools.md | 117 +++++++++++++++++++++++--------\n tests/Unit/Component/ES/AsyncUpdateElasticSearchTest.php | 16 +----\n tests/Unit/Component/ES/Listeners/UpdateMultipleTargetsListenerTest.php | 10 ---\n tests/Unit/Component/ES/Listeners/UpdateSingleTargetListenerTest.php | 6 --\n tests/Unit/Component/ES/Processor/TargetEntitiesSelectorTest.php | 9 ---\n tests/Unit/Component/ES/Processor/Traits/SelectEntityListTraitTest.php | 15 ++--\n tests/Unit/Component/ES/UpdateProcessManagerTest.php | 2 -\n tests/Unit/Services/Calendar/CalendarActivityServiceTest.php | 150 ++++++++++++++++++++++++++++++++++++++--\n tests/Unit/Services/Calendar/Command/MapActivityDataTest.php | 78 ++-------------------\n 15 files changed, 832 insertions(+), 322 deletions(-)\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (master) $ co -b JY-20613-allow-owner-role-on-team-setup\nSwitched to a new branch 'JY-20613-allow-owner-role-on-team-setup'\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20613-allow-owner-role-on-team-setup) $ csfix\ndocker exec -it docker_lamp_1 ./vendor/bin/php-cs-fixer fix --config=.php-cs-fixer.dist.php -v --using-cache=no --diff \nPHP CS Fixer 3.87.1 Alexander by Fabien Potencier, Dariusz Ruminski and contributors.\nPHP runtime: 8.3.30\nRunning analysis on 7 cores with 10 files per process.\nParallel runner is an experimental feature and may be unstable, use it at your own risk. Feedback highly appreciated!\nLoaded config default from \".php-cs-fixer.dist.php\".\n 5682/5682 [▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓] 100%\n\n\nFixed 0 of 5682 files in 56.978 seconds, 67.00 MB memory used\n\nWhat's next:\n Try Docker Debug for seamless, persistent debugging tools in any container or image → docker debug docker_lamp_1\n Learn more at https://docs.docker.com/go/debug-cli/\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20613-allow-owner-role-on-team-setup) $ ;xd\ndocker exec -it docker_lamp_1 bash -c \"mv /usr/local/etc/php/conf.d/xdebug.ini ~/xdebug.ini\"\n\nWhat's next:\n Try Docker Debug for seamless, persistent debugging tools in any container or image → docker debug docker_lamp_1\n Learn more at https://docs.docker.com/go/debug-cli/\ndocker exec -it docker_lamp_1 supervisorctl restart all\njiminny-worker-processing-2:jiminny-worker-processing-2_00: stopped\njiminny-worker-processing-3:jiminny-worker-processing-3_00: stopped\njiminny-worker-processing-4:jiminny-worker-processing-4_00: stopped\njiminny-worker-processing-5:jiminny-worker-processing-5_00: stopped\njiminny-worker-processing-delayed:jiminny-worker-processing-delayed_00: stopped\nworker-analytics:worker-analytics_00: stopped\nworker-crm-update:worker-crm-update_00: stopped\nworker-download:worker-download_00: stopped\nworker-nudges:worker-nudges_00: stopped\nartisan-schedule:artisan-schedule_00: stopped\nworker-emails:worker-emails_00: stopped\nworker-calendar:worker-calendar_00: stopped\nworker:worker_00: stopped\nworker-conferences:worker-conferences_00: stopped\nworker-crm-sync:worker-crm-sync_00: stopped\njiminny-worker-processing-1:jiminny-worker-processing-1_00: stopped\nworker-audio:worker-audio_00: stopped\nworker-es-update:worker-es-update_00: stopped\nartisan-schedule:artisan-schedule_00: started\njiminny-worker-processing-1:jiminny-worker-processing-1_00: started\njiminny-worker-processing-2:jiminny-worker-processing-2_00: started\njiminny-worker-processing-3:jiminny-worker-processing-3_00: started\njiminny-worker-processing-4:jiminny-worker-processing-4_00: started\njiminny-worker-processing-5:jiminny-worker-processing-5_00: started\njiminny-worker-processing-delayed:jiminny-worker-processing-delayed_00: started\nworker:worker_00: started\nworker-analytics:worker-analytics_00: started\nworker-audio:worker-audio_00: started\nworker-calendar:worker-calendar_00: started\nworker-conferences:worker-conferences_00: started\nworker-crm-sync:worker-crm-sync_00: started\nworker-crm-update:worker-crm-update_00: started\nworker-download:worker-download_00: started\nworker-emails:worker-emails_00: started\nworker-es-update:worker-es-update_00: started\nworker-nudges:worker-nudges_00: started\n\nWhat's next:\n Try Docker Debug for seamless, persistent debugging tools in any container or image → docker debug docker_lamp_1\n Learn more at https://docs.docker.com/go/debug-cli/\ndocker exec -it docker_lamp_1 php -v\nPHP 8.3.30 (cli) (built: Mar 16 2026 22:32:32) (NTS)\nCopyright (c) The PHP Group\nZend Engine v4.3.30, Copyright (c) Zend Technologies\n with Zend OPcache v8.3.30, Copyright (c), by Zend Technologies\n\nWhat's next:\n Try Docker Debug for seamless, persistent debugging tools in any container or image → docker debug docker_lamp_1\n Learn more at https://docs.docker.com/go/debug-cli/\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20613-allow-owner-role-on-team-setup) $ csfix\ndocker exec -it docker_lamp_1 ./vendor/bin/php-cs-fixer fix --config=.php-cs-fixer.dist.php -v --using-cache=no --diff \nPHP CS Fixer 3.87.1 Alexander by Fabien Potencier, Dariusz Ruminski and contributors.\nPHP runtime: 8.3.30\nRunning analysis on 7 cores with 10 files per process.\nParallel runner is an experimental feature and may be unstable, use it at your own risk. Feedback highly appreciated!\nLoaded config default from \".php-cs-fixer.dist.php\".\n 5682/5682 [▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓] 100%\n\n\nFixed 0 of 5682 files in 49.910 seconds, 60.00 MB memory used\n\nWhat's next:\n Try Docker Debug for seamless, persistent debugging tools in any container or image → docker debug docker_lamp_1\n Learn more at https://docs.docker.com/go/debug-cli/\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20613-allow-owner-role-on-team-setup) $ git status\nOn branch JY-20613-allow-owner-role-on-team-setup\nYour branch is ahead of 'origin/JY-20613-allow-owner-role-on-team-setup' by 1 commit.\n (use \"git push\" to publish your local commits)\n\nChanges not staged for commit:\n (use \"git add <file>...\" to update what will be committed)\n (use \"git restore <file>...\" to discard changes in working directory)\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tmodified: .env.local\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tmodified: config/logging.php\n\nUntracked files:\n (use \"git add <file>...\" to include in what will be committed)\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\t.env.nikilocal\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\t.env.other\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tWEBHOOK_FILTERING_IMPLEMENTATION.md\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tapp/Console/Commands/Crm/Hubspot/SimulateWebhooksCommand.php\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tapp/Console/Commands/Reports/CreateMockAskJiminnyReportResultCommand.php\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tids.txt\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tpublic/favicon.ico\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\traw_sql_query.sql\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\ttests/Unit/Policies/CanAccessAiReportsTest.php\n\nno changes added to commit (use \"git add\" and/or \"git commit -a\")\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20613-allow-owner-role-on-team-setup) $ git pull\nremote: Enumerating objects: 248, done.\nremote: Counting objects: 100% (128/128), done.\nremote: Compressing objects: 100% (23/23), done.\nremote: Total 59 (delta 43), reused 44 (delta 33), pack-reused 0 (from 0)\nUnpacking objects: 100% (59/59), 10.48 KiB | 228.00 KiB/s, done.\nFrom github.com:jiminny/app\n b7df560451..190239dfd4 JY-20613-allow-owner-role-on-team-setup -> origin/JY-20613-allow-owner-role-on-team-setup\n e0351be069..d94a285ae7 JY-20808-low-priority-indexing-queue -> origin/JY-20808-low-priority-indexing-queue\n * [new branch] JY-20920-fix-participant-matcher -> origin/JY-20920-fix-participant-matcher\n cb4ebf0c36..90bca4e4b2 master -> origin/master\nMerge made by the 'ort' strategy.\n app/Component/ES/ChunkSize.php | 54 +++++++++++++++++++++++++++\n app/Component/ES/Processor/DTOs/SelectionList.php | 4 +-\n app/Component/ES/Processor/TargetEntitiesSelector.php | 19 ++++++----\n app/Http/Middleware/McpTierMiddleware.php | 27 +++-----------\n app/Mcp/Servers/JiminnyServer.php | 2 +\n app/Mcp/Tools/GetMeTool.php | 157 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++\n app/Models/Feature/FeatureEnum.php | 1 +\n database/migrations/2026_05_13_124153_create_mcp_feature_flag.php | 25 +++++++++++++\n front-end/src/components/Settings/Kiosk/modals/EditTeamModal/EditTeamModal.vue | 52 ++++++++++++++++++--------\n front-end/src/components/Settings/Kiosk/modals/EditTeamModal/__tests__/EditTeamModal.spec.js | 14 +++++++\n tests/Feature/Mcp/GetMeToolFeatureTest.php | 140 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++\n tests/Feature/Mcp/ListCallsToolFeatureTest.php | 2 +-\n tests/Feature/Mcp/McpTestHelpersTrait.php | 19 +++++++++-\n tests/Unit/Component/ES/ChunkSizeTest.php | 50 +++++++++++++++++++++++++\n tests/Unit/Component/ES/Processor/DTOs/SelectionListTest.php | 27 ++++++++++----\n tests/Unit/Component/ES/Processor/TargetEntitiesSelectorTest.php | 39 +++++++++++---------\n 16 files changed, 557 insertions(+), 75 deletions(-)\n create mode 100644 app/Component/ES/ChunkSize.php\n create mode 100644 app/Mcp/Tools/GetMeTool.php\n create mode 100644 database/migrations/2026_05_13_124153_create_mcp_feature_flag.php\n create mode 100644 tests/Feature/Mcp/GetMeToolFeatureTest.php\n create mode 100644 tests/Unit/Component/ES/ChunkSizeTest.php\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20613-allow-owner-role-on-team-setup) $ git push\nEnumerating objects: 40, done.\nCounting objects: 100% (34/34), done.\nDelta compression using up to 8 threads\nCompressing objects: 100% (18/18), done.\nWriting objects: 100% (18/18), 1.58 KiB | 1.58 MiB/s, done.\nTotal 18 (delta 15), reused 0 (delta 0), pack-reused 0\nremote: Resolving deltas: 100% (15/15), completed with 13 local objects.\nTo github.com:jiminny/app.git\n 190239dfd4..ec1b261264 JY-20613-allow-owner-role-on-team-setup -> JY-20613-allow-owner-role-on-team-setup\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20613-allow-owner-role-on-team-setup) $ gbr\n* JY-20613-allow-owner-role-on-team-setup\n pipedrive-sdk-poc\n master\n JY-20903-update_activity-stage-on-opportunity-change\n JY-20904-fix-update-es-on-activity-command\n JY-20891-improve-sms-text-relays\n JY-20725-handle-HS-search-rate-limit\n JY-20818-move-AJ-reports-to-separated-datadog-metric\n JY-20773-fix-automated-reports-user-pilot-tracking\n JY-20157-AJ-report-not-send-notification\n JY-20508-notify-before-AJ-report-expiration\n JY-20372-ai-reports-promotion-pages\n JY-20352-sync-opportunities-without-a-local-owner-user-id-is-null\n JY-20738-debug-AJ-tracking-UP\n a\n JY-18909-automated-reports-ask-jiminny\n JY-20692-fix-integration-app-token-auth-response-change\n JY-20553-debug-crm-sync-delays\n JY-20698-fix-SF-activity-types-on-new-playbook\n JY-20543-AJ-report-tracking\n JY-20384-handle-auto-sync-with-no-access-to-event-type\n JY-20458-ask-jiminny-user-definitions\n JY-19666-fix-import-contacts-account-association\n JY-19666-HS-import-contacts-and-accounts-batch-job\n JY-20458-Ask-Jiminny-Reports\n JY-20200-batch-update-CRM-objects-Salesforce\n JY-19666-HS-webhooks-add-contact-and-company\n JY-20348-trigger-setup-DI-layout-on-team-creation\n JY-20326-refactor-info-message-in-command\n JY-20317-fix-auto-log-delay-issue-on-all-channels-disabled\n JY-20312-remove-on-update-change-last-synced-at-crm-configurations\n JY-20306-SF-skip-auto-sync-for-task-based-playbook\n JY-20192-remove-deleted-team-from-saved-search-filters\n JY-20197-import-opportunity-batch-job\n JY-20293-enable-status-field-for-pipedrive-deals\n JY-20191-remove-commands-interactive-prompts\n JY-20118-change-default-sync-strategy\n JY-20183-add-cache-on-auto-log-delay\n JY-20197-add-import-opportunity-batch-job\n 20118-hs-opportunity-make-webhook-strategy-default\n JY-20118-make-default-hs-opportunity-sync-strategy-webhook-based\n JY-20196-handle-opportunity-without-note\n JY-20118-improve-opportunity-import\n JY-20189-handle-activity-search-on-deleted-groups\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20613-allow-owner-role-on-team-setup) $ co JY-20725-handle-HS-search-rate-limit\nM\u0000\u0000\u0000\u0000\u0000\u0000\t.env.local\nM\u0000\u0000\u0000\u0000\u0000\u0000\tconfig/logging.php\nSwitched to branch 'JY-20725-handle-HS-search-rate-limit'\nYour branch is behind 'origin/JY-20725-handle-HS-search-rate-limit' by 439 commits, and can be fast-forwarded.\n (use \"git pull\" to update your local branch)\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20725-handle-HS-search-rate-limit) $ git pull\nUpdating 0f3e438941..bc6a3fce6b\nFast-forward\n .gitignore | 3 +-\n .windsurfrules | 168 ++---\n CLAUDE.md | 1 +\n app/Component/ActivityAnalytics/Service/CalculateTalkTimeOffsetsFromTranscription.php | 24 +-\n app/Component/AiActivityType/Services/AiActivityTypeEligibilityChecker.php | 28 +-\n app/Component/AiAutomation/Actions/PrepareUpdateDtoAction.php | 32 +-\n app/Component/AiAutomation/Services/CrmFillingEligibilityChecker.php | 47 ++\n app/Component/AiAutomation/TestCrmAiPromptService.php | 14 +\n app/Component/AiCallScoring/Services/AiCallScoringEligibilityChecker.php | 9 +\n app/Component/ES/ElasticSearchDocumentPartialUpdater.php | 13 +-\n app/Component/ES/ElasticSearchWorkerManager.php | 86 ---\n app/Component/ES/Processor/Actions/LoadDocumentsAction.php | 80 +--\n app/Component/ES/Processor/EntityQueryBuilder.php | 12 +-\n app/Component/ES/Processor/TargetEntitiesSelector.php | 2 +-\n app/Component/ES/Processor/Traits/SkipActivityTrait.php | 25 -\n app/Component/ES/Repositories/EsResetActivityRepository.php | 11 +-\n app/Component/ES/Worker/ActivityWorker.php | 73 --\n app/Component/ES/Worker/EntityWorker.php | 44 --\n app/Component/ES/Worker/WorkerAmount.php | 60 --\n app/Component/ES/Worker/WorkerInterface.php | 15 -\n app/Component/ElasticSearch/Contract/Searchable.php | 4 +\n app/Component/Encoding/Job/AnalyzeTrackChannelsJob.php | 20 +-\n app/Component/Encoding/Service/GenerateSpeechFromSilenceService.php | 85 ++-\n app/Component/FFMpeg/Services/GetSpeechIntervalsService.php | 18 +-\n app/Component/LanguageDetection/Services/FindSpeechTimeService.php | 22 +-\n app/Component/Nudge/Job/ProcessOrganisationImmediateNudgesJob.php | 218 +++++-\n app/Component/ParagraphBreaker/Services/TranscriptionParagraphsService.php | 4 +\n app/Component/ParticipantSpeech/Services/ParticipantSpeechesCreator.php | 33 +\n app/Component/ParticipantSpeech/Services/ParticipantSpeechesDeleter.php | 15 +\n app/Component/ParticipantSpeech/Services/ParticipantSpeechesProvider.php | 51 +-\n app/Component/ParticipantSpeech/Services/ParticipantSpeechesUploader.php | 36 +\n app/Component/ProphetAi/Exceptions/InsufficientTranscriptException.php | 11 +\n app/Component/Transcription/DTO/Http/Transcription/AssemblyAI/AssemblyAI/NoAssemblyIdException.php | 11 +\n app/Component/Transcription/DTO/Http/Transcription/AssemblyAI/AssemblyAI/SuccessfulResponse.php | 6 +\n app/Component/Transcription/DTO/Http/Transcription/TranscriptionIsNotCorrectFormatException.php | 11 +\n app/Component/Transcription/Diarization/Services/GetNormalizedParticipantSpeechesService.php | 23 +-\n app/Component/Transcription/Diarization/Source/MeetingBotSource.php | 16 +-\n app/Component/Transcription/TranscriptionProcessor/TranscriptionProcessor.php | 3 +\n app/Console/Commands/Activities/ActivityHardDeleteCommand.php | 4 +-\n app/Console/Commands/Activities/Copy.php | 2 +\n app/Console/Commands/Activities/SetupIntegration/TwilioSetS3RecordingCredentialsCommand.php | 119 ++++\n app/Console/Commands/Activities/UpdateActivityElasticSearchDocumentCommand.php | 10 +-\n app/Console/Commands/Crm/BackfillOpportunityUserFromAccountCommand.php | 126 ++++\n app/Console/Commands/Elasticsearch/AsyncUpdateEsActivities.php | 19 -\n app/Console/Commands/Elasticsearch/AsyncUpdateEsEntities.php | 50 +-\n app/Console/Commands/Elasticsearch/ResetAsyncElasticSearchCommand.php | 30 +-\n app/Console/Commands/GeckoExport/GeckoExportParticipantSpeechesCommand.php | 14 +-\n app/Console/Commands/IssueMcpTokenCommand.php | 84 +++\n app/Console/Commands/JiminnyDebugCommand.php | 7 +-\n app/Console/Commands/Tracks/CleanupActivityTracksCommand.php | 2 +-\n app/Console/Kernel.php | 6 +-\n app/Contracts/Services/Calendar/CalendarTrait.php | 80 ++-\n app/Events/AutomatedReports/AutomatedReportGenerated.php | 3 +\n app/Http/Controllers/API/AiCallScoring/AiScorecardController.php | 7 +-\n app/Http/Controllers/API/TeamAiAutomationController.php | 8 +\n app/Http/Controllers/CustomerApi/CustomerApiController.php | 4 +-\n app/Http/Controllers/Kiosk/ActivityController.php | 58 +-\n app/Http/Controllers/Settings/PlaybookController.php | 15 +-\n app/Http/Kernel.php | 23 +\n app/Http/Middleware/McpAuditMiddleware.php | 156 ++++\n app/Http/Middleware/McpTierMiddleware.php | 54 ++\n app/Http/Requests/API/V2/ZapierUploadActivityRequest.php | 28 +-\n app/Jobs/Activity/Import/ImportTwilioVideoSpeechesJob.php | 25 +-\n app/Jobs/Activity/Import/IsActivityReadyForProcessingJob.php | 10 +-\n app/Jobs/Calendar/SetupCalendarSync.php | 21 +-\n app/Jobs/ImportRemoteTrackJob.php | 96 ++-\n app/Jobs/Mailbox/EmailTextRelay.php | 15 +-\n app/Mcp/Contracts/McpCallRepositoryInterface.php | 30 +\n app/Mcp/DTO/ListCallsFilters.php | 29 +\n app/Mcp/Errors/McpError.php | 123 ++++\n app/Mcp/Repositories/McpActivityHydrator.php | 145 ++++\n app/Mcp/Repositories/McpCallRepository.php | 84 +++\n app/Mcp/Repositories/McpElasticCallRepository.php | 171 +++++\n app/Mcp/Servers/JiminnyServer.php | 38 +\n app/Mcp/Tools/ListCallsTool.php | 205 ++++++\n app/Models/Activity.php | 10 +-\n app/Models/Activity/Transcription.php | 17 +-\n app/Models/ElasticSearch/OpportunityElasticSearchTrait.php | 5 +\n app/Models/Participant.php | 1 +\n app/Providers/AppServiceProvider.php | 22 +\n app/Repositories/Crm/ContactRepository.php | 69 +-\n app/Repositories/ParticipantSpeechRepository.php | 13 +-\n app/Services/Activity/ParticipantsService.php | 19 +-\n app/Services/Activity/Twilio/S3RecordingCredentialsService.php | 82 +++\n app/Services/ActivityService.php | 21 +-\n app/Services/Calendar/CalendarActivityService.php | 46 ++\n app/Services/Calendar/Command/ImportParticipants.php | 1 +\n app/Services/Calendar/Command/MapActivityData.php | 106 +--\n app/Services/Calendar/GoogleCalendarService.php | 12 +-\n app/Services/Crm/Close/Processor/OpportunityProcessor.php | 2 +-\n app/Services/Crm/Close/Service.php | 22 +-\n app/Services/Crm/Copper/Service.php | 12 +-\n app/Services/Crm/Hubspot/Service.php | 154 +++-\n app/Services/Crm/Hubspot/ServiceTraits/OpportunitySyncTrait.php | 88 ++-\n app/Services/Crm/IntegrationApp/ServiceTraits/SyncCrmEntitiesTrait.php | 22 +-\n app/Services/Crm/Pipedrive/Service.php | 17 +-\n app/Services/Crm/Salesforce/Service.php | 42 +-\n app/Services/Mail/Office/EmailApiClient.php | 129 +---\n app/Services/RecallAI/Commands/ScheduleBotCommand.php | 39 +-\n app/Services/RecallAI/RecallAIService.php | 22 +-\n composer.json | 3 +-\n composer.lock | 87 ++-\n config/mcp.php | 23 +\n database/migrations/2026_04_30_120000_create_mcp_audit_log_table.php | 36 +\n docs/mcp/explorer/explorer.html | 697 ++++++++++++++++++\n docs/mcp/explorer/explorer.template.html | 697 ++++++++++++++++++\n docs/mcp/explorer/generate.js | 215 ++++++\n docs/mcp/explorer/tool-explorer-meta.json | 11 +\n docs/mcp/tools-list.json | 2536 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++\n docs/mcp/tools.md | 621 ++++++++++++++++\n front-end/package.json | 4 +-\n front-end/src/components/Settings/OrgSettings/AiAutomation/CrmFilling/TemplateFieldForm.vue | 28 +-\n front-end/src/components/Settings/OrgSettings/Playbooks/AddEditPlaybook.vue | 10 +\n front-end/src/components/playback/comments/ActivityComment.less | 10 +-\n front-end/src/components/shared/PromptTester/PromptTester.vue | 12 +-\n front-end/src/components/shared/__tests__/PromptTester.spec.js | 35 +\n front-end/src/components/shared/modals/EntityPickerModal/__tests__/useEntitiesCache.spec.ts | 37 +\n front-end/src/components/shared/modals/EntityPickerModal/useEntitiesCache.ts | 9 +\n front-end/yarn.lock | 16 +-\n phpstan-baseline.neon | 50 --\n routes/api.php | 11 +\n sonar-project.properties | 91 ++-\n tests/Feature/Component/Nudge/ProcessOrganisationImmediateNudgesJobTest.php | 534 ++++++++++++++\n tests/Feature/Jobs/ImportRemoteTrackJobTest.php | 283 +++++++-\n tests/Feature/Mcp/IssueMcpTokenCommandTest.php | 53 ++\n tests/Feature/Mcp/ListCallsToolElasticFeatureTest.php | 155 ++++\n tests/Feature/Mcp/ListCallsToolFeatureTest.php | 352 ++++++++++\n tests/Feature/Mcp/McpTestHelpersTrait.php | 77 ++\n tests/Feature/Services/Team/TeamDeleteHandlers/Retention/RetentionRepositoryHandlerTest.php | 1 +\n tests/Stubs/SentryStub.php | 18 +\n tests/Unit/Component/ActivityAnalytics/Service/CalculateTalkTimeOffsetFromTranscriptionTest.php | 28 +-\n tests/Unit/Component/AiActivityType/Services/AiActivityTypeEligibilityCheckerTest.php | 103 ++-\n tests/Unit/Component/AiAutomation/Actions/PrepareUpdateDtoActionTest.php | 91 +++\n tests/Unit/Component/AiAutomation/Services/CrmFillingEligibilityCheckerTest.php | 124 ++++\n tests/Unit/Component/AiAutomation/TestCrmAiPromptServiceTest.php | 67 +-\n tests/Unit/Component/AiCallScoring/Services/AiCallScoringEligibilityCheckerTest.php | 55 ++\n tests/Unit/Component/ES/ElasticSearchWorkerManagerTest.php | 135 ----\n tests/Unit/Component/ES/Processor/Actions/LoadDocumentsActionTest.php | 220 ++++++\n tests/Unit/Component/ES/Processor/EntityQueryBuilderTest.php | 21 +-\n tests/Unit/Component/ES/Processor/Traits/SkipActivityTraitTest.php | 51 --\n tests/Unit/Component/ES/Worker/ActivityWorkerTest.php | 174 -----\n tests/Unit/Component/ES/Worker/EntityWorkerTest.php | 97 ---\n tests/Unit/Component/ES/Worker/WorkerAmountTest.php | 116 ---\n tests/Unit/Component/Encoding/Job/AnalyzeTrackChannelsJobTest.php | 52 +-\n tests/Unit/Component/Encoding/Service/GenerateSpeechFromSilenceServiceTest.php | 171 ++---\n tests/Unit/Component/FFMpeg/Services/GetSpeechIntervalsTest.php | 36 +-\n tests/Unit/Component/LanguageDetection/Services/FindSpeechTimeServiceTest.php | 20 +-\n tests/Unit/Component/MobileSettings/MobileSettingsControllerTest.php | 5 +-\n tests/Unit/Component/ParticipantSpeech/Services/ParticipantSpeechesCreatorTest.php | 75 ++\n tests/Unit/Component/ParticipantSpeech/Services/ParticipantSpeechesDeleterTest.php | 63 ++\n tests/Unit/Component/ParticipantSpeech/Services/ParticipantSpeechesProviderTest.php | 134 ++++\n tests/Unit/Component/ParticipantSpeech/Services/ParticipantSpeechesUploaderTest.php | 57 ++\n tests/Unit/Component/Transcription/Diarization/Services/GetNormalizedParticipantSpeechesServiceTest.php | 51 +-\n tests/Unit/Component/Transcription/Diarization/Source/MeetingBotSourceTest.php | 29 +-\n tests/Unit/Contracts/Services/Calendar/CalendarTraitTest.php | 58 +-\n tests/Unit/Http/Controllers/Kiosk/ActivityControllerTest.php | 159 +++++\n tests/Unit/Jobs/Activity/Import/ImportTwilioVideoSpeechesJobTest.php | 22 +-\n tests/Unit/Jobs/Activity/Import/IsActivityReadyForProcessingJobTest.php | 26 +-\n tests/Unit/Jobs/Calendar/SetupCalendarSyncTest.php | 25 -\n tests/Unit/Services/Activity/ParticipantsServiceTest.php | 12 +-\n tests/Unit/Services/Activity/Twilio/S3RecordingCredentialsServiceTest.php | 180 +++++\n tests/Unit/Services/ActivityServiceTest.php | 132 ++++\n tests/Unit/Services/Calendar/CalendarActivityServiceTest.php | 150 +++-\n tests/Unit/Services/Calendar/Command/ImportParticipantsTest.php | 6 +-\n tests/Unit/Services/Calendar/Command/MapActivityDataTest.php | 78 +-\n tests/Unit/Services/Calendar/GoogleCalendarServiceTest.php | 116 +++\n tests/Unit/Services/Crm/Close/ServiceTest.php | 165 +++++\n tests/Unit/Services/Crm/Hubspot/ServiceTest.php | 272 ++++++-\n tests/Unit/Services/Crm/Hubspot/ServiceTraits/OpportunitySyncTest.php | 25 +-\n tests/Unit/Services/Crm/Hubspot/ServiceTraits/OpportunitySyncTraitMatchActivitiesTest.php | 3 +-\n tests/Unit/Services/Crm/IntegrationApp/ServiceTraits/SyncCrmEntitiesTraitOpportunitiesTest.php | 40 ++\n tests/Unit/Services/Crm/Pipedrive/ImportOpportunityMatchActivitiesTest.php | 2 +\n tests/Unit/Services/Crm/Salesforce/ServiceTest.php | 139 ++++\n tests/Unit/Services/Mail/Office/EmailApiClientTest.php | 195 ++---\n tests/Unit/Services/RecallAI/RecallAIServiceTest.php | 24 +-\n 175 files changed, 12562 insertions(+), 2162 deletions(-)\n create mode 120000 CLAUDE.md\n create mode 100644 app/Component/AiAutomation/Services/CrmFillingEligibilityChecker.php\n delete mode 100644 app/Component/ES/ElasticSearchWorkerManager.php\n delete mode 100644 app/Component/ES/Processor/Traits/SkipActivityTrait.php\n delete mode 100644 app/Component/ES/Worker/ActivityWorker.php\n delete mode 100644 app/Component/ES/Worker/EntityWorker.php\n delete mode 100644 app/Component/ES/Worker/WorkerAmount.php\n delete mode 100644 app/Component/ES/Worker/WorkerInterface.php\n create mode 100644 app/Component/ProphetAi/Exceptions/InsufficientTranscriptException.php\n create mode 100644 app/Component/Transcription/DTO/Http/Transcription/AssemblyAI/AssemblyAI/NoAssemblyIdException.php\n create mode 100644 app/Component/Transcription/DTO/Http/Transcription/TranscriptionIsNotCorrectFormatException.php\n create mode 100644 app/Console/Commands/Activities/SetupIntegration/TwilioSetS3RecordingCredentialsCommand.php\n create mode 100644 app/Console/Commands/Crm/BackfillOpportunityUserFromAccountCommand.php\n delete mode 100644 app/Console/Commands/Elasticsearch/AsyncUpdateEsActivities.php\n create mode 100644 app/Console/Commands/IssueMcpTokenCommand.php\n create mode 100644 app/Http/Middleware/McpAuditMiddleware.php\n create mode 100644 app/Http/Middleware/McpTierMiddleware.php\n create mode 100644 app/Mcp/Contracts/McpCallRepositoryInterface.php\n create mode 100644 app/Mcp/DTO/ListCallsFilters.php\n create mode 100644 app/Mcp/Errors/McpError.php\n create mode 100644 app/Mcp/Repositories/McpActivityHydrator.php\n create mode 100644 app/Mcp/Repositories/McpCallRepository.php\n create mode 100644 app/Mcp/Repositories/McpElasticCallRepository.php\n create mode 100644 app/Mcp/Servers/JiminnyServer.php\n create mode 100644 app/Mcp/Tools/ListCallsTool.php\n create mode 100644 app/Services/Activity/Twilio/S3RecordingCredentialsService.php\n create mode 100644 config/mcp.php\n create mode 100644 database/migrations/2026_04_30_120000_create_mcp_audit_log_table.php\n create mode 100644 docs/mcp/explorer/explorer.html\n create mode 100644 docs/mcp/explorer/explorer.template.html\n create mode 100644 docs/mcp/explorer/generate.js\n create mode 100644 docs/mcp/explorer/tool-explorer-meta.json\n create mode 100644 docs/mcp/tools-list.json\n create mode 100644 docs/mcp/tools.md\n create mode 100644 front-end/src/components/shared/modals/EntityPickerModal/__tests__/useEntitiesCache.spec.ts\n create mode 100644 tests/Feature/Component/Nudge/ProcessOrganisationImmediateNudgesJobTest.php\n create mode 100644 tests/Feature/Mcp/IssueMcpTokenCommandTest.php\n create mode 100644 tests/Feature/Mcp/ListCallsToolElasticFeatureTest.php\n create mode 100644 tests/Feature/Mcp/ListCallsToolFeatureTest.php\n create mode 100644 tests/Feature/Mcp/McpTestHelpersTrait.php\n create mode 100644 tests/Stubs/SentryStub.php\n create mode 100644 tests/Unit/Component/AiAutomation/Services/CrmFillingEligibilityCheckerTest.php\n delete mode 100644 tests/Unit/Component/ES/ElasticSearchWorkerManagerTest.php\n create mode 100644 tests/Unit/Component/ES/Processor/Actions/LoadDocumentsActionTest.php\n delete mode 100644 tests/Unit/Component/ES/Processor/Traits/SkipActivityTraitTest.php\n delete mode 100644 tests/Unit/Component/ES/Worker/ActivityWorkerTest.php\n delete mode 100644 tests/Unit/Component/ES/Worker/EntityWorkerTest.php\n delete mode 100644 tests/Unit/Component/ES/Worker/WorkerAmountTest.php\n create mode 100644 tests/Unit/Component/ParticipantSpeech/Services/ParticipantSpeechesCreatorTest.php\n create mode 100644 tests/Unit/Http/Controllers/Kiosk/ActivityControllerTest.php\n create mode 100644 tests/Unit/Services/Activity/Twilio/S3RecordingCredentialsServiceTest.php\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20725-handle-HS-search-rate-limit) $ git status\nOn branch master\nYour branch is behind 'origin/master' by 114 commits, and can be fast-forwarded.\n (use \"git pull\" to update your local branch)\n\nChanges not staged for commit:\n (use \"git add <file>...\" to update what will be committed)\n (use \"git restore <file>...\" to discard changes in working directory)\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tmodified: .env.local\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tmodified: app/Component/SCIM/Constants.php\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tmodified: app/Component/SCIM/ScimProvisioning.php\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tmodified: app/Component/Twilio/Conference/ConferenceManager/SoftPhoneManager.php\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tmodified: app/Console/Commands/JiminnyDebugCommand.php\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tmodified: app/DTO/SCIM/AAD/Request/CoreUserRequest.php\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tmodified: app/DTO/SCIM/AAD/Response/CoreUser.php\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tmodified: app/Services/Telephony/TextMessagingService.php\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tmodified: config/logging.php\n\nUntracked files:\n (use \"git add <file>...\" to include in what will be committed)\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\t.env.nikilocal\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\t.env.other\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tWEBHOOK_FILTERING_IMPLEMENTATION.md\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tapp/Component/SCIM/Mutators/Attributes/User/RoleAttr.php\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tapp/Console/Commands/Crm/Hubspot/SimulateWebhooksCommand.php\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tapp/Console/Commands/Reports/CreateMockAskJiminnyReportResultCommand.php\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tapp/Rules/ListenerRoleCannotHaveAdminOrManagerPermissionRule.php\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tids.txt\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tpublic/favicon.ico\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\traw_sql_query.sql\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\ttests/Unit/Component/SCIM/Mutators/Attributes/User/RoleAttrTest.php\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\ttests/Unit/Policies/CanAccessAiReportsTest.php\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\ttests/Unit/Rules/ListenerRoleCannotHaveAdminOrManagerPermissionRuleTest.php\n\nno changes added to commit (use \"git add\" and/or \"git commit -a\")\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (master) $ git pull\nremote: Enumerating objects: 306, done.\nremote: Counting objects: 100% (299/299), done.\nremote: Compressing objects: 100% (183/183), done.\nremote: Total 306 (delta 213), reused 171 (delta 116), pack-reused 7 (from 1)\nReceiving objects: 100% (306/306), 80.12 KiB | 1000.00 KiB/s, done.\nResolving deltas: 100% (213/213), completed with 53 local objects.\nFrom github.com:jiminny/app\n 90bca4e4b2..5604af40cf master -> origin/master\n 4e7078fd8b..0b8343d179 JY-18091-upgrade-to-php-8-5 -> origin/JY-18091-upgrade-to-php-8-5\n 098eeaa087..d5a447e492 JY-20613-allow-owner-role-on-team-setup -> origin/JY-20613-allow-owner-role-on-team-setup\n c3a76ace91..af65249d0f JY-20749-user-can-view-recorded-meetings -> origin/JY-20749-user-can-view-recorded-meetings\n d94a285ae7..7ce96cb5fe JY-20808-low-priority-indexing-queue -> origin/JY-20808-low-priority-indexing-queue\n * [new branch] JY-20842-remove-partial-updater -> origin/JY-20842-remove-partial-updater\n * [new branch] JY-20920-fix-participant-flip -> origin/JY-20920-fix-participant-flip\n * [new branch] secfix/npm-20260519 -> origin/secfix/npm-20260519\nUpdating cb4ebf0c36..5604af40cf\nFast-forward\n app/Component/ES/ChunkSize.php | 54 +++++++++++++++++++\n app/Component/ES/Processor/DTOs/SelectionList.php | 4 +-\n app/Component/ES/Processor/TargetEntitiesSelector.php | 19 ++++---\n app/Component/MeetingBot/Service/ParticipantMatcher.php | 46 ++++++++++++----\n app/Exceptions/RateLimitException.php | 19 ++++++-\n app/Http/Middleware/McpTierMiddleware.php | 27 ++--------\n app/Jobs/Crm/MatchActivityCrmData.php | 47 ++++++++++++----\n app/Jobs/Middleware/HandleHubspotRateLimit.php | 42 +++++++++++++++\n app/Mcp/Servers/JiminnyServer.php | 2 +\n app/Mcp/Tools/GetMeTool.php | 157 +++++++++++++++++++++++++++++++++++++++++++++++++++++\n app/Models/Feature/FeatureEnum.php | 1 +\n app/Services/Activity/HubSpot/ProviderResolver.php | 4 +-\n app/Services/Activity/HubSpot/ProviderResolverInterface.php | 2 +-\n app/Services/Activity/HubSpot/Providers/Provider.php | 2 +-\n app/Services/Activity/HubSpot/Providers/ProviderKixie.php | 2 +-\n app/Services/Activity/HubSpot/Providers/ProviderOrum.php | 2 +-\n app/Services/Activity/HubSpot/Providers/ProviderTwilio.php | 2 +-\n app/Services/Activity/HubSpot/Providers/ProviderTwilioFlex.php | 5 +-\n app/Services/Activity/HubSpot/Service.php | 97 +++++++++++++++++++++++++++------\n app/Services/Crm/Hubspot/Client.php | 132 +++++++++++++++++++++++++++++++++++++++++++++\n app/Services/Crm/Hubspot/HubspotClientInterface.php | 15 ++++++\n app/Services/Crm/Hubspot/Pagination/HubspotPaginationService.php | 21 ++++----\n app/Services/Crm/Hubspot/Pagination/PaginationState.php | 2 +-\n database/migrations/2026_05_13_124153_create_mcp_feature_flag.php | 25 +++++++++\n tests/Feature/Mcp/GetMeToolFeatureTest.php | 140 +++++++++++++++++++++++++++++++++++++++++++++++\n tests/Feature/Mcp/ListCallsToolFeatureTest.php | 2 +-\n tests/Feature/Mcp/McpTestHelpersTrait.php | 19 ++++++-\n tests/Unit/Component/ES/ChunkSizeTest.php | 50 +++++++++++++++++\n tests/Unit/Component/ES/Processor/DTOs/SelectionListTest.php | 27 +++++++---\n tests/Unit/Component/ES/Processor/TargetEntitiesSelectorTest.php | 39 ++++++++------\n tests/Unit/Component/MeetingBot/Service/ParticipantMatcherTest.php | 68 ++++++++++++++++++++++-\n tests/Unit/Exceptions/RateLimitExceptionTest.php | 56 +++++++++++++++++++\n tests/Unit/Jobs/Crm/MatchActivityCrmDataTest.php | 8 +--\n tests/Unit/Jobs/Middleware/HandleHubspotRateLimitTest.php | 151 +++++++++++++++++++++++++++++++++++++++++++++++++++\n tests/Unit/Services/Activity/HubSpot/ServiceTest.php | 109 +++++++++++++++++++++++++++++++++++++\n tests/Unit/Services/Crm/Hubspot/ClientTest.php | 250 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++\n tests/Unit/Services/Crm/Hubspot/Pagination/HubspotPaginationServiceTest.php | 283 +++++++++++++++++++++---------------------------------------------------------------------------\n 37 files changed, 1587 insertions(+), 344 deletions(-)\n create mode 100644 app/Component/ES/ChunkSize.php\n create mode 100644 app/Jobs/Middleware/HandleHubspotRateLimit.php\n create mode 100644 app/Mcp/Tools/GetMeTool.php\n create mode 100644 database/migrations/2026_05_13_124153_create_mcp_feature_flag.php\n create mode 100644 tests/Feature/Mcp/GetMeToolFeatureTest.php\n create mode 100644 tests/Unit/Component/ES/ChunkSizeTest.php\n create mode 100644 tests/Unit/Exceptions/RateLimitExceptionTest.php\n create mode 100644 tests/Unit/Jobs/Middleware/HandleHubspotRateLimitTest.php\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (master) $ git pull\nAlready up to date.\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (master) $ co -b JY-20676-delete-report-related-objects\nSwitched to a new branch 'JY-20676-delete-report-related-objects'\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20676-delete-report-related-objects) $ csfix\ndocker exec -it docker_lamp_1 ./vendor/bin/php-cs-fixer fix --config=.php-cs-fixer.dist.php -v --using-cache=no --diff \nPHP CS Fixer 3.87.1 Alexander by Fabien Potencier, Dariusz Ruminski and contributors.\nPHP runtime: 8.3.30\nRunning analysis on 7 cores with 10 files per process.\nParallel runner is an experimental feature and may be unstable, use it at your own risk. Feedback highly appreciated!\nLoaded config default from \".php-cs-fixer.dist.php\".\n 5690/5690 [▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓] 100%\n\n 1) app/Console/Commands/JiminnyDebugCommand.php (statement_indentation, blank_line_before_statement)\n ---------- begin diff ----------\n--- /home/jiminny/app/Console/Commands/JiminnyDebugCommand.php\n+++ /home/jiminny/app/Console/Commands/JiminnyDebugCommand.php\n@@ -23,6 +23,7 @@\n \n if ($action === 'redis-set') {\n $this->testRedisSet();\n+\n return;\n }\n \n@@ -45,7 +46,7 @@\n $ttl = 60;\n \n try {\n-// $result = Redis::set($testKey, $testValue, 'EX', $ttl, 'NX');\n+ // $result = Redis::set($testKey, $testValue, 'EX', $ttl, 'NX');\n $result = Redis::set($testKey, $testValue, ['nx', 'ex' => $ttl]);\n \n if ($result) {\n\n ----------- end diff -----------\n\n\nFixed 1 of 5690 files in 50.673 seconds, 67.00 MB memory used\n\nWhat's next:\n Try Docker Debug for seamless, persistent debugging tools in any container or image → docker debug docker_lamp_1\n Learn more at https://docs.docker.com/go/debug-cli/\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20676-delete-report-related-objects) $ ;xd\ndocker exec -it docker_lamp_1 bash -c \"mv /usr/local/etc/php/conf.d/xdebug.ini ~/xdebug.ini\"\n\nWhat's next:\n Try Docker Debug for seamless, persistent debugging tools in any container or image → docker debug docker_lamp_1\n Learn more at https://docs.docker.com/go/debug-cli/\ndocker exec -it docker_lamp_1 supervisorctl restart all\njiminny-worker-processing-2:jiminny-worker-processing-2_00: stopped\njiminny-worker-processing-3:jiminny-worker-processing-3_00: stopped\njiminny-worker-processing-4:jiminny-worker-processing-4_00: stopped\njiminny-worker-processing-5:jiminny-worker-processing-5_00: stopped\njiminny-worker-processing-delayed:jiminny-worker-processing-delayed_00: stopped\nworker-analytics:worker-analytics_00: stopped\nworker-crm-update:worker-crm-update_00: stopped\nworker-download:worker-download_00: stopped\nworker-nudges:worker-nudges_00: stopped\nworker-calendar:worker-calendar_00: stopped\nworker-audio:worker-audio_00: stopped\njiminny-worker-processing-1:jiminny-worker-processing-1_00: stopped\nworker:worker_00: stopped\nworker-conferences:worker-conferences_00: stopped\nworker-crm-sync:worker-crm-sync_00: stopped\nworker-emails:worker-emails_00: stopped\nworker-es-update:worker-es-update_00: stopped\nartisan-schedule:artisan-schedule_00: stopped\nartisan-schedule:artisan-schedule_00: started\njiminny-worker-processing-1:jiminny-worker-processing-1_00: started\njiminny-worker-processing-2:jiminny-worker-processing-2_00: started\njiminny-worker-processing-3:jiminny-worker-processing-3_00: started\njiminny-worker-processing-4:jiminny-worker-processing-4_00: started\njiminny-worker-processing-5:jiminny-worker-processing-5_00: started\njiminny-worker-processing-delayed:jiminny-worker-processing-delayed_00: started\nworker:worker_00: started\nworker-analytics:worker-analytics_00: started\nworker-audio:worker-audio_00: started\nworker-calendar:worker-calendar_00: started\nworker-conferences:worker-conferences_00: started\nworker-crm-sync:worker-crm-sync_00: started\nworker-crm-update:worker-crm-update_00: started\nworker-download:worker-download_00: started\nworker-emails:worker-emails_00: started\nworker-es-update:worker-es-update_00: started\nworker-nudges:worker-nudges_00: started\n\nWhat's next:\n Try Docker Debug for seamless, persistent debugging tools in any container or image → docker debug docker_lamp_1\n Learn more at https://docs.docker.com/go/debug-cli/\ndocker exec -it docker_lamp_1 php -v\nPHP 8.3.30 (cli) (built: Mar 16 2026 22:32:32) (NTS)\nCopyright (c) The PHP Group\nZend Engine v4.3.30, Copyright (c) Zend Technologies\n with Zend OPcache v8.3.30, Copyright (c), by Zend Technologies\n\nWhat's next:\n Try Docker Debug for seamless, persistent debugging tools in any container or image → docker debug docker_lamp_1\n Learn more at https://docs.docker.com/go/debug-cli/\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20676-delete-report-related-objects) $ git status\nOn branch JY-20676-delete-report-related-objects\nChanges not staged for commit:\n (use \"git add <file>...\" to update what will be committed)\n (use \"git restore <file>...\" to discard changes in working directory)\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tmodified: .env.local\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tmodified: app/Console/Commands/JiminnyDebugCommand.php\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tmodified: config/logging.php\n\nUntracked files:\n (use \"git add <file>...\" to include in what will be committed)\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\t.env.nikilocal\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\t.env.other\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tWEBHOOK_FILTERING_IMPLEMENTATION.md\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tapp/Console/Commands/Crm/Hubspot/SimulateWebhooksCommand.php\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tapp/Console/Commands/Reports/CreateMockAskJiminnyReportResultCommand.php\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tids.txt\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tpublic/favicon.ico\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\traw_sql_query.sql\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\ttests/Unit/Policies/CanAccessAiReportsTest.php\n\nno changes added to commit (use \"git add\" and/or \"git commit -a\")\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20676-delete-report-related-objects) $ git push -u origin JY-20676-delete-report-related-objects\nEnumerating objects: 45, done.\nCounting objects: 100% (45/45), done.\nDelta compression using up to 8 threads\nCompressing objects: 100% (24/24), done.\nWriting objects: 100% (24/24), 3.62 KiB | 3.62 MiB/s, done.\nTotal 24 (delta 19), reused 0 (delta 0), pack-reused 0\nremote: Resolving deltas: 100% (19/19), completed with 19 local objects.\nremote: \nremote: Create a pull request for 'JY-20676-delete-report-related-objects' on GitHub by visiting:\nremote: https://github.com/jiminny/app/pull/new/JY-20676-delete-report-related-objects\nremote: \nTo github.com:jiminny/app.git\n * [new branch] JY-20676-delete-report-related-objects -> JY-20676-delete-report-related-objects\nbranch 'JY-20676-delete-report-related-objects' set up to track 'origin/JY-20676-delete-report-related-objects'.\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20676-delete-report-related-objects) $ csfix\ndocker exec -it docker_lamp_1 ./vendor/bin/php-cs-fixer fix --config=.php-cs-fixer.dist.php -v --using-cache=no --diff \nPHP CS Fixer 3.87.1 Alexander by Fabien Potencier, Dariusz Ruminski and contributors.\nPHP runtime: 8.3.30\nRunning analysis on 7 cores with 10 files per process.\nParallel runner is an experimental feature and may be unstable, use it at your own risk. Feedback highly appreciated!\nLoaded config default from \".php-cs-fixer.dist.php\".\n 5690/5690 [▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓] 100%\n\n 1) app/Http/Controllers/API/V2/AskJiminnyReportsController.php (blank_line_before_statement)\n ---------- begin diff ----------\n--- /home/jiminny/app/Http/Controllers/API/V2/AskJiminnyReportsController.php\n+++ /home/jiminny/app/Http/Controllers/API/V2/AskJiminnyReportsController.php\n@@ -140,6 +140,7 @@\n if ($enabled && $report->isAskJiminnyReport() && ! $report->canExecute()) {\n $error = 'This report is missing a saved search or prompt. ' .\n 'Edit the report to complete the setup before enabling it.';\n+\n return new JsonResponse(\n ['error' => $error],\n Response::HTTP_UNPROCESSABLE_ENTITY\n\n ----------- end diff -----------\n\n\nFixed 1 of 5690 files in 71.757 seconds, 60.00 MB memory used\n\nWhat's next:\n Try Docker Debug for seamless, persistent debugging tools in any container or image → docker debug docker_lamp_1\n Learn more at https://docs.docker.com/go/debug-cli/\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20676-delete-report-related-objects) $ git pull\nremote: Enumerating objects: 158, done.\nremote: Counting objects: 100% (103/103), done.\nremote: Compressing objects: 100% (37/37), done.\nremote: Total 158 (delta 80), reused 74 (delta 66), pack-reused 55 (from 3)\nReceiving objects: 100% (158/158), 80.59 KiB | 982.00 KiB/s, done.\nResolving deltas: 100% (85/85), completed with 45 local objects.\nFrom github.com:jiminny/app\n 02a33811ee..c6ce5e2440 JY-20676-delete-report-related-objects -> origin/JY-20676-delete-report-related-objects\n 7ce96cb5fe..6c59f04358 JY-20808-low-priority-indexing-queue -> origin/JY-20808-low-priority-indexing-queue\n 3906a9238a..2b5e6ea62b JY-20835-mcp-enable-users-to-get-a-list-of-deals-and-their-details -> origin/JY-20835-mcp-enable-users-to-get-a-list-of-deals-and-their-details\n 5604af40cf..ea3519f0e2 master -> origin/master\n * [new branch] switch-eu-assembly -> origin/switch-eu-assembly\nUpdating 02a33811ee..c6ce5e2440\nFast-forward\n app/Component/ES/ElasticSearchDocumentPartialUpdater.php | 48 ---\n app/Component/ParticipantSpeech/Services/ParticipantAttributionService.php | 4 +-\n app/Component/Settings/AutoScoring/Services/UpdateAutoScoreService.php | 20 +-\n app/Component/Transcription/Service/StorageService.php | 8 +-\n front-end/package.json | 2 +-\n front-end/src/components/DealInsights/Modals/AskAnythingModal.vue | 23 ++\n front-end/src/components/shared/AskAnything/AskAnythingPromptFormItem.vue | 2 +\n front-end/src/components/shared/AskAnything/AskAnythingSettingsDrawer.vue | 23 +-\n front-end/src/components/shared/AskAnything/__mocks__/AskAnythingSettingsDrawer.mocks.js | 1 +\n front-end/src/components/shared/AskAnything/__tests__/AskAnythingSettingsDrawer.spec.js | 135 ++++---\n front-end/src/components/shared/AskAnything/__tests__/__snapshots__/AskAnythingSettingsDrawer.spec.js.html | 1235 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++\n front-end/src/components/shared/AskAnything/__tests__/__snapshots__/AskAnythingSettingsDrawer.spec.js.snap | 1382 ----------------------------------------------------------------\n front-end/src/components/shared/AskAnything/prompts.js | 1 +\n front-end/src/components/shared/AskAnything/useAskAnything.js | 1 +\n front-end/yarn.lock | 8 +-\n tests/Unit/Component/ES/ElasticSearchDocumentPartialUpdaterTest.php | 42 --\n tests/Unit/Component/Settings/AutoScoring/Services/UpdateAutoScoreServiceTest.php | 86 ++--\n tests/Unit/Component/Transcription/Service/StorageServiceTest.php | 29 +-\n 18 files changed, 1448 insertions(+), 1602 deletions(-)\n delete mode 100644 app/Component/ES/ElasticSearchDocumentPartialUpdater.php\n create mode 100644 front-end/src/components/shared/AskAnything/__tests__/__snapshots__/AskAnythingSettingsDrawer.spec.js.html\n delete mode 100644 front-end/src/components/shared/AskAnything/__tests__/__snapshots__/AskAnythingSettingsDrawer.spec.js.snap\n delete mode 100644 tests/Unit/Component/ES/ElasticSearchDocumentPartialUpdaterTest.php\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20676-delete-report-related-objects) $ csfix\ndocker exec -it docker_lamp_1 ./vendor/bin/php-cs-fixer fix --config=.php-cs-fixer.dist.php -v --using-cache=no --diff \nPHP CS Fixer 3.87.1 Alexander by Fabien Potencier, Dariusz Ruminski and contributors.\nPHP runtime: 8.3.30\nRunning analysis on 7 cores with 10 files per process.\nParallel runner is an experimental feature and may be unstable, use it at your own risk. Feedback highly appreciated!\nLoaded config default from \".php-cs-fixer.dist.php\".\n 2941/5688 [▓▓▓▓▓▓▓▓▓▓▓▓▓▓░░░░░░░░░░░░░░] 51%","is_focused":true},{"role":"AXRadioButton","text":"DOCKER","depth":2,"bounds":{"left":0.0,"top":0.05888889,"width":0.19826388,"height":0.026666667},"on_screen":true,"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.004166667,"top":0.06333333,"width":0.011111111,"height":0.017777778},"on_screen":true,"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"DEV (docker)","depth":2,"bounds":{"left":0.19826388,"top":0.05888889,"width":0.19826388,"height":0.026666667},"on_screen":true,"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false}]...
|
2802650493718167367
|
-1358120912881272742
|
idle
|
accessibility
|
NULL
|
Last login: Mon May 18 09:17:28 on ttys007
Poetry Last login: Mon May 18 09:17:28 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 (pipedrive-sdk-poc) $ co master
error: Your local changes to the following files would be overwritten by checkout:
PIPEDRIVE_V2_MIGRATION_TICKETS.md
Please commit your changes or stash them before you switch branches.
Aborting
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (pipedrive-sdk-poc) $ git pull
remote: Enumerating objects: 1047, done.
remote: Counting objects: 100% (832/832), done.
remote: Compressing objects: 100% (298/298), done.
remote: Total 1047 (delta 634), reused 596 (delta 534), pack-reused 215 (from 3)
Receiving objects: 100% (1047/1047), 353.16 KiB | 1.56 MiB/s, done.
Resolving deltas: 100% (687/687), completed with 107 local objects.
From github.com:jiminny/app
907c54896c..34656c53ed pipedrive-sdk-poc -> origin/pipedrive-sdk-poc
03325ec50f..4e7078fd8b JY-18091-upgrade-to-php-8-5 -> origin/JY-18091-upgrade-to-php-8-5
e7d231e163..bc6a3fce6b JY-20725-handle-HS-search-rate-limit -> origin/JY-20725-handle-HS-search-rate-limit
* [new branch] JY-20749-user-can-view-recorded-meetings -> origin/JY-20749-user-can-view-recorded-meetings
98ca281a04..e0351be069 JY-20808-low-priority-indexing-queue -> origin/JY-20808-low-priority-indexing-queue
569abb5149..3906a9238a JY-20835-mcp-enable-users-to-get-a-list-of-deals-and-their-details -> origin/JY-20835-mcp-enable-users-to-get-a-list-of-deals-and-their-details
ad6c2a86e8..50eb6afba9 JY-20846-mcp-enable-the-ai-to-know-details-about-the-user -> origin/JY-20846-mcp-enable-the-ai-to-know-details-about-the-user
* [new branch] JY-20893-chunk-control-per-update-target -> origin/JY-20893-chunk-control-per-update-target
31c62924a5..cb4ebf0c36 master -> origin/master
Updating 907c54896c..34656c53ed
Fast-forward
PIPEDRIVE_V2_MIGRATION_TICKETS.md | 52 ++++++++++++++++++++++++++++++++++++++++++++++++++++
1 file changed, 52 insertions(+)
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (pipedrive-sdk-poc) $ co master
M .env.local
M config/logging.php
Switched to branch 'master'
Your branch is behind 'origin/master' by 31 commits, and can be fast-forwarded.
(use "git pull" to update your local branch)
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (master) $ git pull
Updating 31c62924a5..cb4ebf0c36
Fast-forward
app/Component/ES/Processor/Traits/SelectEntityListTrait.php | 20 ------
app/Services/Calendar/CalendarActivityService.php | 46 +++++++++++++
app/Services/Calendar/Command/MapActivityData.php | 106 +++-------------------------
docs/mcp/explorer/explorer.html | 104 +++++++++++++++++++++++++---
docs/mcp/explorer/explorer.template.html | 102 ++++++++++++++++++++++++---
docs/mcp/tools-list.json | 373 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++-------
docs/mcp/tools.md | 117 +++++++++++++++++++++++--------
tests/Unit/Component/ES/AsyncUpdateElasticSearchTest.php | 16 +----
tests/Unit/Component/ES/Listeners/UpdateMultipleTargetsListenerTest.php | 10 ---
tests/Unit/Component/ES/Listeners/UpdateSingleTargetListenerTest.php | 6 --
tests/Unit/Component/ES/Processor/TargetEntitiesSelectorTest.php | 9 ---
tests/Unit/Component/ES/Processor/Traits/SelectEntityListTraitTest.php | 15 ++--
tests/Unit/Component/ES/UpdateProcessManagerTest.php | 2 -
tests/Unit/Services/Calendar/CalendarActivityServiceTest.php | 150 ++++++++++++++++++++++++++++++++++++++--
tests/Unit/Services/Calendar/Command/MapActivityDataTest.php | 78 ++-------------------
15 files changed, 832 insertions(+), 322 deletions(-)
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (master) $ co -b JY-20613-allow-owner-role-on-team-setup
Switched to a new branch 'JY-20613-allow-owner-role-on-team-setup'
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20613-allow-owner-role-on-team-setup) $ csfix
docker exec -it docker_lamp_1 ./vendor/bin/php-cs-fixer fix --config=.php-cs-fixer.dist.php -v --using-cache=no --diff
PHP CS Fixer 3.87.1 Alexander by Fabien Potencier, Dariusz Ruminski and contributors.
PHP runtime: 8.3.30
Running 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!
Loaded config default from ".php-cs-fixer.dist.php".
5682/5682 [▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓] 100%
Fixed 0 of 5682 files in 56.978 seconds, 67.00 MB memory used
What's next:
Try Docker Debug for seamless, persistent debugging tools in any container or image → docker debug docker_lamp_1
Learn more at [URL_WITH_CREDENTIALS] ~/jiminny/app (JY-20613-allow-owner-role-on-team-setup) $ csfix
docker exec -it docker_lamp_1 ./vendor/bin/php-cs-fixer fix --config=.php-cs-fixer.dist.php -v --using-cache=no --diff
PHP CS Fixer 3.87.1 Alexander by Fabien Potencier, Dariusz Ruminski and contributors.
PHP runtime: 8.3.30
Running 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!
Loaded config default from ".php-cs-fixer.dist.php".
5682/5682 [▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓] 100%
Fixed 0 of 5682 files in 49.910 seconds, 60.00 MB memory used
What's next:
Try Docker Debug for seamless, persistent debugging tools in any container or image → docker debug docker_lamp_1
Learn more at [URL_WITH_CREDENTIALS] ~/jiminny/app (JY-20613-allow-owner-role-on-team-setup) $ git pull
remote: Enumerating objects: 248, done.
remote: Counting objects: 100% (128/128), done.
remote: Compressing objects: 100% (23/23), done.
remote: Total 59 (delta 43), reused 44 (delta 33), pack-reused 0 (from 0)
Unpacking objects: 100% (59/59), 10.48 KiB | 228.00 KiB/s, done.
From github.com:jiminny/app
b7df560451..190239dfd4 JY-20613-allow-owner-role-on-team-setup -> origin/JY-20613-allow-owner-role-on-team-setup
e0351be069..d94a285ae7 JY-20808-low-priority-indexing-queue -> origin/JY-20808-low-priority-indexing-queue
* [new branch] JY-20920-fix-participant-matcher -> origin/JY-20920-fix-participant-matcher
cb4ebf0c36..90bca4e4b2 master -> origin/master
Merge made by the 'ort' strategy.
app/Component/ES/ChunkSize.php | 54 +++++++++++++++++++++++++++
app/Component/ES/Processor/DTOs/SelectionList.php | 4 +-
app/Component/ES/Processor/TargetEntitiesSelector.php | 19 ++++++----
app/Http/Middleware/McpTierMiddleware.php | 27 +++-----------
app/Mcp/Servers/JiminnyServer.php | 2 +
app/Mcp/Tools/GetMeTool.php | 157 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
app/Models/Feature/FeatureEnum.php | 1 +
database/migrations/2026_05_13_124153_create_mcp_feature_flag.php | 25 +++++++++++++
front-end/src/components/Settings/Kiosk/modals/EditTeamModal/EditTeamModal.vue | 52 ++++++++++++++++++--------
front-end/src/components/Settings/Kiosk/modals/EditTeamModal/__tests__/EditTeamModal.spec.js | 14 +++++++
tests/Feature/Mcp/GetMeToolFeatureTest.php | 140 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
tests/Feature/Mcp/ListCallsToolFeatureTest.php | 2 +-
tests/Feature/Mcp/McpTestHelpersTrait.php | 19 +++++++++-
tests/Unit/Component/ES/ChunkSizeTest.php | 50 +++++++++++++++++++++++++
tests/Unit/Component/ES/Processor/DTOs/SelectionListTest.php | 27 ++++++++++----
tests/Unit/Component/ES/Processor/TargetEntitiesSelectorTest.php | 39 +++++++++++---------
16 files changed, 557 insertions(+), 75 deletions(-)
create mode 100644 app/Component/ES/ChunkSize.php
create mode 100644 app/Mcp/Tools/GetMeTool.php
create mode 100644 database/migrations/2026_05_13_124153_create_mcp_feature_flag.php
create mode 100644 tests/Feature/Mcp/GetMeToolFeatureTest.php
create mode 100644 tests/Unit/Component/ES/ChunkSizeTest.php
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20613-allow-owner-role-on-team-setup) $ git push
Enumerating objects: 40, done.
Counting objects: 100% (34/34), done.
Delta compression using up to 8 threads
Compressing objects: 100% (18/18), done.
Writing objects: 100% (18/18), 1.58 KiB | 1.58 MiB/s, done.
Total 18 (delta 15), reused 0 (delta 0), pack-reused 0
remote: Resolving deltas: 100% (15/15), completed with 13 local objects.
To github.com:jiminny/app.git
190239dfd4..ec1b261264 JY-20613-allow-owner-role-on-team-setup -> JY-20613-allow-owner-role-on-team-setup
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20613-allow-owner-role-on-team-setup) $ gbr
* JY-20613-allow-owner-role-on-team-setup
pipedrive-sdk-poc
master
JY-20903-update_activity-stage-on-opportunity-change
JY-20904-fix-update-es-on-activity-command
JY-20891-improve-sms-text-relays
JY-20725-handle-HS-search-rate-limit
JY-20818-move-AJ-reports-to-separated-datadog-metric
JY-20773-fix-automated-reports-user-pilot-tracking
JY-20157-AJ-report-not-send-notification
JY-20508-notify-before-AJ-report-expiration
JY-20372-ai-reports-promotion-pages
JY-20352-sync-opportunities-without-a-local-owner-user-id-is-null
JY-20738-debug-AJ-tracking-UP
a
JY-18909-automated-reports-ask-jiminny
JY-20692-fix-integration-app-[API_KEY]
JY-20553-debug-crm-sync-delays
JY-20698-fix-SF-activity-types-on-new-playbook
JY-20543-AJ-report-tracking
JY-20384-handle-auto-sync-with-no-access-to-event-type
JY-20458-ask-jiminny-user-definitions
JY-19666-fix-import-contacts-account-association
JY-19666-HS-import-contacts-and-accounts-batch-job
JY-20458-Ask-Jiminny-Reports
JY-20200-batch-update-CRM-objects-Salesforce
JY-19666-HS-webhooks-add-contact-and-company
JY-20348-trigger-setup-DI-layout-on-team-creation
JY-20326-refactor-info-message-in-command
JY-20317-fix-auto-log-delay-issue-on-all-channels-disabled
JY-20312-remove-on-update-change-last-synced-at-crm-configurations
JY-20306-SF-skip-auto-sync-for-task-based-playbook
JY-20192-remove-deleted-team-from-saved-search-filters
JY-20197-import-opportunity-batch-job
JY-20293-enable-status-field-for-pipedrive-deals
JY-20191-remove-commands-interactive-prompts
JY-20118-change-default-sync-strategy
JY-20183-add-cache-on-auto-log-delay
JY-20197-add-import-opportunity-batch-job
20118-hs-opportunity-make-webhook-strategy-default
JY-20118-make-default-hs-opportunity-sync-strategy-webhook-based
JY-20196-handle-opportunity-without-note
JY-20118-improve-opportunity-import
JY-20189-handle-activity-search-on-deleted-groups
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20613-allow-owner-role-on-team-setup) $ co JY-20725-handle-HS-search-rate-limit
M .env.local
M config/logging.php
Switched to branch 'JY-20725-handle-HS-search-rate-limit'
Your branch is behind 'origin/JY-20725-handle-HS-search-rate-limit' by 439 commits, and can be fast-forwarded.
(use "git pull" to update your local branch)
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20725-handle-HS-search-rate-limit) $ git pull
Updating 0f3e438941..bc6a3fce6b
Fast-forward
.gitignore | 3 +-
.windsurfrules | 168 ++---
CLAUDE.md | 1 +
app/Component/ActivityAnalytics/Service/CalculateTalkTimeOffsetsFromTranscription.php | 24 +-
app/Component/AiActivityType/Services/AiActivityTypeEligibilityChecker.php | 28 +-
app/Component/AiAutomation/Actions/PrepareUpdateDtoAction.php | 32 +-
app/Component/AiAutomation/Services/CrmFillingEligibilityChecker.php | 47 ++
app/Component/AiAutomation/TestCrmAiPromptService.php | 14 +
app/Component/AiCallScoring/Services/AiCallScoringEligibilityChecker.php | 9 +
app/Component/ES/ElasticSearchDocumentPartialUpdater.php | 13 +-
app/Component/ES/ElasticSearchWorkerManager.php | 86 ---
app/Component/ES/Processor/Actions/LoadDocumentsAction.php | 80 +--
app/Component/ES/Processor/EntityQueryBuilder.php | 12 +-
app/Component/ES/Processor/TargetEntitiesSelector.php | 2 +-
app/Component/ES/Processor/Traits/SkipActivityTrait.php | 25 -
app/Component/ES/Repositories/EsResetActivityRepository.php | 11 +-
app/Component/ES/Worker/ActivityWorker.php | 73 --
app/Component/ES/Worker/EntityWorker.php | 44 --
app/Component/ES/Worker/WorkerAmount.php | 60 --
app/Component/ES/Worker/WorkerInterface.php | 15 -
app/Component/ElasticSearch/Contract/Searchable.php | 4 +
app/Component/Encoding/Job/AnalyzeTrackChannelsJob.php | 20 +-
app/Component/Encoding/Service/GenerateSpeechFromSilenceService.php | 85 ++-
app/Component/FFMpeg/Services/GetSpeechIntervalsService.php | 18 +-
app/Component/LanguageDetection/Services/FindSpeechTimeService.php | 22 +-
app/Component/Nudge/Job/ProcessOrganisationImmediateNudgesJob.php | 218 +++++-
app/Component/ParagraphBreaker/Services/TranscriptionParagraphsService.php | 4 +
app/Component/ParticipantSpeech/Services/ParticipantSpeechesCreator.php | 33 +
app/Component/ParticipantSpeech/Services/ParticipantSpeechesDeleter.php | 15 +
app/Component/ParticipantSpeech/Services/ParticipantSpeechesProvider.php | 51 +-
app/Component/ParticipantSpeech/Services/ParticipantSpeechesUploader.php | 36 +
app/Component/ProphetAi/Exceptions/InsufficientTranscriptException.php | 11 +
app/Component/Transcription/DTO/Http/Transcription/AssemblyAI/AssemblyAI/NoAssemblyIdException.php | 11 +
app/Component/Transcription/DTO/Http/Transcription/AssemblyAI/AssemblyAI/SuccessfulResponse.php | 6 +
app/Component/Transcription/DTO/Http/Transcription/TranscriptionIsNotCorrectFormatException.php | 11 +
app/Component/Transcription/Diarization/Services/GetNormalizedParticipantSpeechesService.php | 23 +-
app/Component/Transcription/Diarization/Source/MeetingBotSource.php | 16 +-
app/Component/Transcription/TranscriptionProcessor/TranscriptionProcessor.php | 3 +
app/Console/Commands/Activities/ActivityHardDeleteCommand.php | 4 +-
app/Console/Commands/Activities/Copy.php | 2 +
app/Console/Commands/Activities/SetupIntegration/TwilioSetS3RecordingCredentialsCommand.php | 119 ++++
app/Console/Commands/Activities/UpdateActivityElasticSearchDocumentCommand.php | 10 +-
app/Console/Commands/Crm/BackfillOpportunityUserFromAccountCommand.php | 126 ++++
app/Console/Commands/Elasticsearch/AsyncUpdateEsActivities.php | 19 -
app/Console/Commands/Elasticsearch/AsyncUpdateEsEntities.php | 50 +-
app/Console/Commands/Elasticsearch/ResetAsyncElasticSearchCommand.php | 30 +-
app/Console/Commands/GeckoExport/GeckoExportParticipantSpeechesCommand.php | 14 +-
app/Console/Commands/IssueMcpTokenCommand.php | 84 +++
app/Console/Commands/JiminnyDebugCommand.php | 7 +-
app/Console/Commands/Tracks/CleanupActivityTracksCommand.php | 2 +-
app/Console/Kernel.php | 6 +-
app/Contracts/Services/Calendar/CalendarTrait.php | 80 ++-
app/Events/AutomatedReports/AutomatedReportGenerated.php | 3 +
app/Http/Controllers/API/AiCallScoring/AiScorecardController.php | 7 +-
app/Http/Controllers/API/TeamAiAutomationController.php | 8 +
app/Http/Controllers/CustomerApi/CustomerApiController.php | 4 +-
app/Http/Controllers/Kiosk/ActivityController.php | 58 +-
app/Http/Controllers/Settings/PlaybookController.php | 15 +-
app/Http/Kernel.php | 23 +
app/Http/Middleware/McpAuditMiddleware.php | 156 ++++
app/Http/Middleware/McpTierMiddleware.php | 54 ++
app/Http/Requests/API/V2/ZapierUploadActivityRequest.php | 28 +-
app/Jobs/Activity/Import/ImportTwilioVideoSpeechesJob.php | 25 +-
app/Jobs/Activity/Import/IsActivityReadyForProcessingJob.php | 10 +-
app/Jobs/Calendar/SetupCalendarSync.php | 21 +-
app/Jobs/ImportRemoteTrackJob.php | 96 ++-
app/Jobs/Mailbox/EmailTextRelay.php | 15 +-
app/Mcp/Contracts/McpCallRepositoryInterface.php | 30 +
app/Mcp/DTO/ListCallsFilters.php | 29 +
app/Mcp/Errors/McpError.php | 123 ++++
app/Mcp/Repositories/McpActivityHydrator.php | 145 ++++
app/Mcp/Repositories/McpCallRepository.php | 84 +++
app/Mcp/Repositories/McpElasticCallRepository.php | 171 +++++
app/Mcp/Servers/JiminnyServer.php | 38 +
app/Mcp/Tools/ListCallsTool.php | 205 ++++++
app/Models/Activity.php | 10 +-
app/Models/Activity/Transcription.php | 17 +-
app/Models/ElasticSearch/OpportunityElasticSearchTrait.php | 5 +
app/Models/Participant.php | 1 +
app/Providers/AppServiceProvider.php | 22 +
app/Repositories/Crm/ContactRepository.php | 69 +-
app/Repositories/ParticipantSpeechRepository.php | 13 +-
app/Services/Activity/ParticipantsService.php | 19 +-
app/Services/Activity/Twilio/S3RecordingCredentialsService.php | 82 +++
app/Services/ActivityService.php | 21 +-
app/Services/Calendar/CalendarActivityService.php | 46 ++
app/Services/Calendar/Command/ImportParticipants.php | 1 +
app/Services/Calendar/Command/MapActivityData.php | 106 +--
app/Services/Calendar/GoogleCalendarService.php | 12 +-
app/Services/Crm/Close/Processor/OpportunityProcessor.php | 2 +-
app/Services/Crm/Close/Service.php | 22 +-
app/Services/Crm/Copper/Service.php | 12 +-
app/Services/Crm/Hubspot/Service.php | 154 +++-
app/Services/Crm/Hubspot/ServiceTraits/OpportunitySyncTrait.php | 88 ++-
app/Services/Crm/IntegrationApp/ServiceTraits/SyncCrmEntitiesTrait.php | 22 +-
app/Services/Crm/Pipedrive/Service.php | 17 +-
app/Services/Crm/Salesforce/Service.php | 42 +-
app/Services/Mail/Office/EmailApiClient.php | 129 +---
app/Services/RecallAI/Commands/ScheduleBotCommand.php | 39 +-
app/Services/RecallAI/RecallAIService.php | 22 +-
composer.json | 3 +-
composer.lock | 87 ++-
config/mcp.php | 23 +
database/migrations/2026_04_30_120000_create_mcp_audit_log_table.php | 36 +
docs/mcp/explorer/explorer.html | 697 ++++++++++++++++++
docs/mcp/explorer/explorer.template.html | 697 ++++++++++++++++++
docs/mcp/explorer/generate.js | 215 ++++++
docs/mcp/explorer/tool-explorer-meta.json | 11 +
docs/mcp/tools-list.json | 2536 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
docs/mcp/tools.md | 621 ++++++++++++++++
front-end/package.json | 4 +-
front-end/src/components/Settings/OrgSettings/AiAutomation/CrmFilling/TemplateFieldForm.vue | 28 +-
front-end/src/components/Settings/OrgSettings/Playbooks/AddEditPlaybook.vue | 10 +
front-end/src/components/playback/comments/ActivityComment.less | 10 +-
front-end/src/components/shared/PromptTester/PromptTester.vue | 12 +-
front-end/src/components/shared/__tests__/PromptTester.spec.js | 35 +
front-end/src/components/shared/modals/EntityPickerModal/__tests__/useEntitiesCache.spec.ts | 37 +
front-end/src/components/shared/modals/EntityPickerModal/useEntitiesCache.ts | 9 +
front-end/yarn.lock | 16 +-
phpstan-baseline.neon | 50 --
routes/api.php | 11 +
sonar-project.properties | 91 ++-
tests/Feature/Component/Nudge/ProcessOrganisationImmediateNudgesJobTest.php | 534 ++++++++++++++
tests/Feature/Jobs/ImportRemoteTrackJobTest.php | 283 +++++++-
tests/Feature/Mcp/IssueMcpTokenCommandTest.php | 53 ++
tests/Feature/Mcp/ListCallsToolElasticFeatureTest.php | 155 ++++
tests/Feature/Mcp/ListCallsToolFeatureTest.php | 352 ++++++++++
tests/Feature/Mcp/McpTestHelpersTrait.php | 77 ++
tests/Feature/Services/Team/TeamDeleteHandlers/Retention/RetentionRepositoryHandlerTest.php | 1 +
tests/Stubs/SentryStub.php | 18 +
tests/Unit/Component/ActivityAnalytics/Service/CalculateTalkTimeOffsetFromTranscriptionTest.php | 28 +-
tests/Unit/Component/AiActivityType/Services/AiActivityTypeEligibilityCheckerTest.php | 103 ++-
tests/Unit/Component/AiAutomation/Actions/PrepareUpdateDtoActionTest.php | 91 +++
tests/Unit/Component/AiAutomation/Services/CrmFillingEligibilityCheckerTest.php | 124 ++++
tests/Unit/Component/AiAutomation/TestCrmAiPromptServiceTest.php | 67 +-
tests/Unit/Component/AiCallScoring/Services/AiCallScoringEligibilityCheckerTest.php | 55 ++
tests/Unit/Component/ES/ElasticSearchWorkerManagerTest.php | 135 ----
tests/Unit/Component/ES/Processor/Actions/LoadDocumentsActionTest.php | 220 ++++++
tests/Unit/Component/ES/Processor/EntityQueryBuilderTest.php | 21 +-
tests/Unit/Component/ES/Processor/Traits/SkipActivityTraitTest.php | 51 --
tests/Unit/Component/ES/Worker/ActivityWorkerTest.php | 174 -----
tests/Unit/Component/ES/Worker/EntityWorkerTest.php | 97 ---
tests/Unit/Component/ES/Worker/WorkerAmountTest.php | 116 ---
tests/Unit/Component/Encoding/Job/AnalyzeTrackChannelsJobTest.php | 52 +-
tests/Unit/Component/Encoding/Service/GenerateSpeechFromSilenceServiceTest.php | 171 ++---
tests/Unit/Component/FFMpeg/Services/GetSpeechIntervalsTest.php | 36 +-
tests/Unit/Component/LanguageDetection/Services/FindSpeechTimeServiceTest.php | 20 +-
tests/Unit/Component/MobileSettings/MobileSettingsControllerTest.php | 5 +-
tests/Unit/Component/ParticipantSpeech/Services/ParticipantSpeechesCreatorTest.php | 75 ++
tests/Unit/Component/ParticipantSpeech/Services/ParticipantSpeechesDeleterTest.php | 63 ++
tests/Unit/Component/ParticipantSpeech/Services/ParticipantSpeechesProviderTest.php | 134 ++++
tests/Unit/Component/ParticipantSpeech/Services/ParticipantSpeechesUploaderTest.php | 57 ++
tests/Unit/Component/Transcription/Diarization/Services/GetNormalizedParticipantSpeechesServiceTest.php | 51 +-
tests/Unit/Component/Transcription/Diarization/Source/MeetingBotSourceTest.php | 29 +-
tests/Unit/Contracts/Services/Calendar/CalendarTraitTest.php | 58 +-
tests/Unit/Http/Controllers/Kiosk/ActivityControllerTest.php | 159 +++++
tests/Unit/Jobs/Activity/Import/ImportTwilioVideoSpeechesJobTest.php | 22 +-
tests/Unit/Jobs/Activity/Import/IsActivityReadyForProcessingJobTest.php | 26 +-
tests/Unit/Jobs/Calendar/SetupCalendarSyncTest.php | 25 -
tests/Unit/Services/Activity/ParticipantsServiceTest.php | 12 +-
tests/Unit/Services/Activity/Twilio/S3RecordingCredentialsServiceTest.php | 180 +++++
tests/Unit/Services/ActivityServiceTest.php | 132 ++++
tests/Unit/Services/Calendar/CalendarActivityServiceTest.php | 150 +++-
tests/Unit/Services/Calendar/Command/ImportParticipantsTest.php | 6 +-
tests/Unit/Services/Calendar/Command/MapActivityDataTest.php | 78 +-
tests/Unit/Services/Calendar/GoogleCalendarServiceTest.php | 116 +++
tests/Unit/Services/Crm/Close/ServiceTest.php | 165 +++++
tests/Unit/Services/Crm/Hubspot/ServiceTest.php | 272 ++++++-
tests/Unit/Services/Crm/Hubspot/ServiceTraits/OpportunitySyncTest.php | 25 +-
tests/Unit/Services/Crm/Hubspot/ServiceTraits/OpportunitySyncTraitMatchActivitiesTest.php | 3 +-
tests/Unit/Services/Crm/IntegrationApp/ServiceTraits/SyncCrmEntitiesTraitOpportunitiesTest.php | 40 ++
tests/Unit/Services/Crm/Pipedrive/ImportOpportunityMatchActivitiesTest.php | 2 +
tests/Unit/Services/Crm/Salesforce/ServiceTest.php | 139 ++++
tests/Unit/Services/Mail/Office/EmailApiClientTest.php | 195 ++---
tests/Unit/Services/RecallAI/RecallAIServiceTest.php | 24 +-
175 files changed, 12562 insertions(+), 2162 deletions(-)
create mode 120000 CLAUDE.md
create mode 100644 app/Component/AiAutomation/Services/CrmFillingEligibilityChecker.php
delete mode 100644 app/Component/ES/ElasticSearchWorkerManager.php
delete mode 100644 app/Component/ES/Processor/Traits/SkipActivityTrait.php
delete mode 100644 app/Component/ES/Worker/ActivityWorker.php
delete mode 100644 app/Component/ES/Worker/EntityWorker.php
delete mode 100644 app/Component/ES/Worker/WorkerAmount.php
delete mode 100644 app/Component/ES/Worker/WorkerInterface.php
create mode 100644 app/Component/ProphetAi/Exceptions/InsufficientTranscriptException.php
create mode 100644 app/Component/Transcription/DTO/Http/Transcription/AssemblyAI/AssemblyAI/NoAssemblyIdException.php
create mode 100644 app/Component/Transcription/DTO/Http/Transcription/TranscriptionIsNotCorrectFormatException.php
create mode 100644 app/Console/Commands/Activities/SetupIntegration/TwilioSetS3RecordingCredentialsCommand.php
create mode 100644 app/Console/Commands/Crm/BackfillOpportunityUserFromAccountCommand.php
delete mode 100644 app/Console/Commands/Elasticsearch/AsyncUpdateEsActivities.php
create mode 100644 app/Console/Commands/IssueMcpTokenCommand.php
create mode 100644 app/Http/Middleware/McpAuditMiddleware.php
create mode 100644 app/Http/Middleware/McpTierMiddleware.php
create mode 100644 app/Mcp/Contracts/McpCallRepositoryInterface.php
create mode 100644 app/Mcp/DTO/ListCallsFilters.php
create mode 100644 app/Mcp/Errors/McpError.php
create mode 100644 app/Mcp/Repositories/McpActivityHydrator.php
create mode 100644 app/Mcp/Repositories/McpCallRepository.php
create mode 100644 app/Mcp/Repositories/McpElasticCallRepository.php
create mode 100644 app/Mcp/Servers/JiminnyServer.php
create mode 100644 app/Mcp/Tools/ListCallsTool.php
create mode 100644 app/Services/Activity/Twilio/S3RecordingCredentialsService.php
create mode 100644 config/mcp.php
create mode 100644 database/migrations/2026_04_30_120000_create_mcp_audit_log_table.php
create mode 100644 docs/mcp/explorer/explorer.html
create mode 100644 docs/mcp/explorer/explorer.template.html
create mode 100644 docs/mcp/explorer/generate.js
create mode 100644 docs/mcp/explorer/tool-explorer-meta.json
create mode 100644 docs/mcp/tools-list.json
create mode 100644 docs/mcp/tools.md
create mode 100644 front-end/src/components/shared/modals/EntityPickerModal/__tests__/useEntitiesCache.spec.ts
create mode 100644 tests/Feature/Component/Nudge/ProcessOrganisationImmediateNudgesJobTest.php
create mode 100644 tests/Feature/Mcp/IssueMcpTokenCommandTest.php
create mode 100644 tests/Feature/Mcp/ListCallsToolElasticFeatureTest.php
create mode 100644 tests/Feature/Mcp/ListCallsToolFeatureTest.php
create mode 100644 tests/Feature/Mcp/McpTestHelpersTrait.php
create mode 100644 tests/Stubs/SentryStub.php
create mode 100644 tests/Unit/Component/AiAutomation/Services/CrmFillingEligibilityCheckerTest.php
delete mode 100644 tests/Unit/Component/ES/ElasticSearchWorkerManagerTest.php
create mode 100644 tests/Unit/Component/ES/Processor/Actions/LoadDocumentsActionTest.php
delete mode 100644 tests/Unit/Component/ES/Processor/Traits/SkipActivityTraitTest.php
delete mode 100644 tests/Unit/Component/ES/Worker/ActivityWorkerTest.php
delete mode 100644 tests/Unit/Component/ES/Worker/EntityWorkerTest.php
delete mode 100644 tests/Unit/Component/ES/Worker/WorkerAmountTest.php
create mode 100644 tests/Unit/Component/ParticipantSpeech/Services/ParticipantSpeechesCreatorTest.php
create mode 100644 tests/Unit/Http/Controllers/Kiosk/ActivityControllerTest.php
create mode 100644 tests/Unit/Services/Activity/Twilio/S3RecordingCredentialsServiceTest.php
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20725-handle-HS-search-rate-limit) $ git status
On branch master
Your branch is behind 'origin/master' by 114 commits, and can be fast-forwarded.
(use "git pull" to update your local branch)
Changes not staged for commit:
(use "git add <file>..." to update what will be committed)
(use "git restore <file>..." to discard changes in working directory)
modified: .env.local
modified: app/Component/SCIM/Constants.php
modified: app/Component/SCIM/ScimProvisioning.php
modified: app/Component/Twilio/Conference/ConferenceManager/SoftPhoneManager.php
modified: app/Console/Commands/JiminnyDebugCommand.php
modified: app/DTO/SCIM/AAD/Request/CoreUserRequest.php
modified: app/DTO/SCIM/AAD/Response/CoreUser.php
modified: app/Services/Telephony/TextMessagingService.php
modified: config/logging.php
Untracked files:
(use "git add <file>..." to include in what will be committed)
.env.nikilocal
.env.other
WEBHOOK_FILTERING_IMPLEMENTATION.md
app/Component/SCIM/Mutators/Attributes/User/RoleAttr.php
app/Console/Commands/Crm/Hubspot/SimulateWebhooksCommand.php
app/Console/Commands/Reports/CreateMockAskJiminnyReportResultCommand.php
app/Rules/ListenerRoleCannotHaveAdminOrManagerPermissionRule.php
ids.txt
public/favicon.ico
raw_sql_query.sql
tests/Unit/Component/SCIM/Mutators/Attributes/User/RoleAttrTest.php
tests/Unit/Policies/CanAccessAiReportsTest.php
tests/Unit/Rules/ListenerRoleCannotHaveAdminOrManagerPermissionRuleTest.php
no changes added to commit (use "git add" and/or "git commit -a")
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (master) $ git pull
remote: Enumerating objects: 306, done.
remote: Counting objects: 100% (299/299), done.
remote: Compressing objects: 100% (183/183), done.
remote: Total 306 (delta 213), reused 171 (delta 116), pack-reused 7 (from 1)
Receiving objects: 100% (306/306), 80.12 KiB | 1000.00 KiB/s, done.
Resolving deltas: 100% (213/213), completed with 53 local objects.
From github.com:jiminny/app
90bca4e4b2..5604af40cf master -> origin/master
4e7078fd8b..0b8343d179 JY-18091-upgrade-to-php-8-5 -> origin/JY-18091-upgrade-to-php-8-5
098eeaa087..d5a447e492 JY-20613-allow-owner-role-on-team-setup -> origin/JY-20613-allow-owner-role-on-team-setup
c3a76ace91..af65249d0f JY-20749-user-can-view-recorded-meetings -> origin/JY-20749-user-can-view-recorded-meetings
d94a285ae7..7ce96cb5fe JY-20808-low-priority-indexing-queue -> origin/JY-20808-low-priority-indexing-queue
* [new branch] JY-20842-remove-partial-updater -> origin/JY-20842-remove-partial-updater
* [new branch] JY-20920-fix-participant-flip -> origin/JY-20920-fix-participant-flip
* [new branch] secfix/npm-20260519 -> origin/secfix/npm-20260519
Updating cb4ebf0c36..5604af40cf
Fast-forward
app/Component/ES/ChunkSize.php | 54 +++++++++++++++++++
app/Component/ES/Processor/DTOs/SelectionList.php | 4 +-
app/Component/ES/Processor/TargetEntitiesSelector.php | 19 ++++---
app/Component/MeetingBot/Service/ParticipantMatcher.php | 46 ++++++++++++----
app/Exceptions/RateLimitException.php | 19 ++++++-
app/Http/Middleware/McpTierMiddleware.php | 27 ++--------
app/Jobs/Crm/MatchActivityCrmData.php | 47 ++++++++++++----
app/Jobs/Middleware/HandleHubspotRateLimit.php | 42 +++++++++++++++
app/Mcp/Servers/JiminnyServer.php | 2 +
app/Mcp/Tools/GetMeTool.php | 157 +++++++++++++++++++++++++++++++++++++++++++++++++++++
app/Models/Feature/FeatureEnum.php | 1 +
app/Services/Activity/HubSpot/ProviderResolver.php | 4 +-
app/Services/Activity/HubSpot/ProviderResolverInterface.php | 2 +-
app/Services/Activity/HubSpot/Providers/Provider.php | 2 +-
app/Services/Activity/HubSpot/Providers/ProviderKixie.php | 2 +-
app/Services/Activity/HubSpot/Providers/ProviderOrum.php | 2 +-
app/Services/Activity/HubSpot/Providers/ProviderTwilio.php | 2 +-
app/Services/Activity/HubSpot/Providers/ProviderTwilioFlex.php | 5 +-
app/Services/Activity/HubSpot/Service.php | 97 +++++++++++++++++++++++++++------
app/Services/Crm/Hubspot/Client.php | 132 +++++++++++++++++++++++++++++++++++++++++++++
app/Services/Crm/Hubspot/HubspotClientInterface.php | 15 ++++++
app/Services/Crm/Hubspot/Pagination/HubspotPaginationService.php | 21 ++++----
app/Services/Crm/Hubspot/Pagination/PaginationState.php | 2 +-
database/migrations/2026_05_13_124153_create_mcp_feature_flag.php | 25 +++++++++
tests/Feature/Mcp/GetMeToolFeatureTest.php | 140 +++++++++++++++++++++++++++++++++++++++++++++++
tests/Feature/Mcp/ListCallsToolFeatureTest.php | 2 +-
tests/Feature/Mcp/McpTestHelpersTrait.php | 19 ++++++-
tests/Unit/Component/ES/ChunkSizeTest.php | 50 +++++++++++++++++
tests/Unit/Component/ES/Processor/DTOs/SelectionListTest.php | 27 +++++++---
tests/Unit/Component/ES/Processor/TargetEntitiesSelectorTest.php | 39 ++++++++------
tests/Unit/Component/MeetingBot/Service/ParticipantMatcherTest.php | 68 ++++++++++++++++++++++-
tests/Unit/Exceptions/RateLimitExceptionTest.php | 56 +++++++++++++++++++
tests/Unit/Jobs/Crm/MatchActivityCrmDataTest.php | 8 +--
tests/Unit/Jobs/Middleware/HandleHubspotRateLimitTest.php | 151 +++++++++++++++++++++++++++++++++++++++++++++++++++
tests/Unit/Services/Activity/HubSpot/ServiceTest.php | 109 +++++++++++++++++++++++++++++++++++++
tests/Unit/Services/Crm/Hubspot/ClientTest.php | 250 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
tests/Unit/Services/Crm/Hubspot/Pagination/HubspotPaginationServiceTest.php | 283 +++++++++++++++++++++---------------------------------------------------------------------------
37 files changed, 1587 insertions(+), 344 deletions(-)
create mode 100644 app/Component/ES/ChunkSize.php
create mode 100644 app/Jobs/Middleware/HandleHubspotRateLimit.php
create mode 100644 app/Mcp/Tools/GetMeTool.php
create mode 100644 database/migrations/2026_05_13_124153_create_mcp_feature_flag.php
create mode 100644 tests/Feature/Mcp/GetMeToolFeatureTest.php
create mode 100644 tests/Unit/Component/ES/ChunkSizeTest.php
create mode 100644 tests/Unit/Exceptions/RateLimitExceptionTest.php
create mode 100644 tests/Unit/Jobs/Middleware/HandleHubspotRateLimitTest.php
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (master) $ git pull
Already up to date.
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (master) $ co -b JY-20676-delete-report-related-objects
Switched to a new branch 'JY-20676-delete-report-related-objects'
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20676-delete-report-related-objects) $ csfix
docker exec -it docker_lamp_1 ./vendor/bin/php-cs-fixer fix --config=.php-cs-fixer.dist.php -v --using-cache=no --diff
PHP CS Fixer 3.87.1 Alexander by Fabien Potencier, Dariusz Ruminski and contributors.
PHP runtime: 8.3.30
Running 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!
Loaded config default from ".php-cs-fixer.dist.php".
5690/5690 [▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓] 100%
1) app/Console/Commands/JiminnyDebugCommand.php (statement_indentation, blank_line_before_statement)
---------- begin diff ----------
--- /home/jiminny/app/Console/Commands/JiminnyDebugCommand.php
+++ /home/jiminny/app/Console/Commands/JiminnyDebugCommand.php
@@ -23,6 +23,7 @@
if ($action === 'redis-set') {
$this->testRedisSet();
+
return;
}
@@ -45,7 +46,7 @@
$ttl = 60;
try {
-// $result = Redis::set($testKey, $testValue, 'EX', $ttl, 'NX');
+ // $result = Redis::set($testKey, $testValue, 'EX', $ttl, 'NX');
$result = Redis::set($testKey, $testValue, ['nx', 'ex' => $ttl]);
if ($result) {
----------- end diff -----------
Fixed 1 of 5690 files i...
|
58093
|
NULL
|
NULL
|
NULL
|
|
58098
|
2047
|
0
|
2026-05-19T11:36:17.548241+00:00
|
/Users/lukas/.screenpipe/data/data/2026-05-19/1779 /Users/lukas/.screenpipe/data/data/2026-05-19/1779190577548_m2.jpg...
|
iTerm2
|
APP (docker)
|
1
|
NULL
|
monitor_2
|
NULL
|
NULL
|
NULL
|
NULL
|
Last login: Mon May 18 09:17:28 on ttys007
Poetry Last login: Mon May 18 09:17:28 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 (pipedrive-sdk-poc) $ co master
error: Your local changes to the following files would be overwritten by checkout:
PIPEDRIVE_V2_MIGRATION_TICKETS.md
Please commit your changes or stash them before you switch branches.
Aborting
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (pipedrive-sdk-poc) $ git pull
remote: Enumerating objects: 1047, done.
remote: Counting objects: 100% (832/832), done.
remote: Compressing objects: 100% (298/298), done.
remote: Total 1047 (delta 634), reused 596 (delta 534), pack-reused 215 (from 3)
Receiving objects: 100% (1047/1047), 353.16 KiB | 1.56 MiB/s, done.
Resolving deltas: 100% (687/687), completed with 107 local objects.
From github.com:jiminny/app
907c54896c..34656c53ed pipedrive-sdk-poc -> origin/pipedrive-sdk-poc
03325ec50f..4e7078fd8b JY-18091-upgrade-to-php-8-5 -> origin/JY-18091-upgrade-to-php-8-5
e7d231e163..bc6a3fce6b JY-20725-handle-HS-search-rate-limit -> origin/JY-20725-handle-HS-search-rate-limit
* [new branch] JY-20749-user-can-view-recorded-meetings -> origin/JY-20749-user-can-view-recorded-meetings
98ca281a04..e0351be069 JY-20808-low-priority-indexing-queue -> origin/JY-20808-low-priority-indexing-queue
569abb5149..3906a9238a JY-20835-mcp-enable-users-to-get-a-list-of-deals-and-their-details -> origin/JY-20835-mcp-enable-users-to-get-a-list-of-deals-and-their-details
ad6c2a86e8..50eb6afba9 JY-20846-mcp-enable-the-ai-to-know-details-about-the-user -> origin/JY-20846-mcp-enable-the-ai-to-know-details-about-the-user
* [new branch] JY-20893-chunk-control-per-update-target -> origin/JY-20893-chunk-control-per-update-target
31c62924a5..cb4ebf0c36 master -> origin/master
Updating 907c54896c..34656c53ed
Fast-forward
PIPEDRIVE_V2_MIGRATION_TICKETS.md | 52 ++++++++++++++++++++++++++++++++++++++++++++++++++++
1 file changed, 52 insertions(+)
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (pipedrive-sdk-poc) $ co master
M .env.local
M config/logging.php
Switched to branch 'master'
Your branch is behind 'origin/master' by 31 commits, and can be fast-forwarded.
(use "git pull" to update your local branch)
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (master) $ git pull
Updating 31c62924a5..cb4ebf0c36
Fast-forward
app/Component/ES/Processor/Traits/SelectEntityListTrait.php | 20 ------
app/Services/Calendar/CalendarActivityService.php | 46 +++++++++++++
app/Services/Calendar/Command/MapActivityData.php | 106 +++-------------------------
docs/mcp/explorer/explorer.html | 104 +++++++++++++++++++++++++---
docs/mcp/explorer/explorer.template.html | 102 ++++++++++++++++++++++++---
docs/mcp/tools-list.json | 373 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++-------
docs/mcp/tools.md | 117 +++++++++++++++++++++++--------
tests/Unit/Component/ES/AsyncUpdateElasticSearchTest.php | 16 +----
tests/Unit/Component/ES/Listeners/UpdateMultipleTargetsListenerTest.php | 10 ---
tests/Unit/Component/ES/Listeners/UpdateSingleTargetListenerTest.php | 6 --
tests/Unit/Component/ES/Processor/TargetEntitiesSelectorTest.php | 9 ---
tests/Unit/Component/ES/Processor/Traits/SelectEntityListTraitTest.php | 15 ++--
tests/Unit/Component/ES/UpdateProcessManagerTest.php | 2 -
tests/Unit/Services/Calendar/CalendarActivityServiceTest.php | 150 ++++++++++++++++++++++++++++++++++++++--
tests/Unit/Services/Calendar/Command/MapActivityDataTest.php | 78 ++-------------------
15 files changed, 832 insertions(+), 322 deletions(-)
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (master) $ co -b JY-20613-allow-owner-role-on-team-setup
Switched to a new branch 'JY-20613-allow-owner-role-on-team-setup'
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20613-allow-owner-role-on-team-setup) $ csfix
docker exec -it docker_lamp_1 ./vendor/bin/php-cs-fixer fix --config=.php-cs-fixer.dist.php -v --using-cache=no --diff
PHP CS Fixer 3.87.1 Alexander by Fabien Potencier, Dariusz Ruminski and contributors.
PHP runtime: 8.3.30
Running 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!
Loaded config default from ".php-cs-fixer.dist.php".
5682/5682 [▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓] 100%
Fixed 0 of 5682 files in 56.978 seconds, 67.00 MB memory used
What's next:
Try Docker Debug for seamless, persistent debugging tools in any container or image → docker debug docker_lamp_1
Learn more at [URL_WITH_CREDENTIALS] ~/jiminny/app (JY-20613-allow-owner-role-on-team-setup) $ csfix
docker exec -it docker_lamp_1 ./vendor/bin/php-cs-fixer fix --config=.php-cs-fixer.dist.php -v --using-cache=no --diff
PHP CS Fixer 3.87.1 Alexander by Fabien Potencier, Dariusz Ruminski and contributors.
PHP runtime: 8.3.30
Running 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!
Loaded config default from ".php-cs-fixer.dist.php".
5682/5682 [▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓] 100%
Fixed 0 of 5682 files in 49.910 seconds, 60.00 MB memory used
What's next:
Try Docker Debug for seamless, persistent debugging tools in any container or image → docker debug docker_lamp_1
Learn more at [URL_WITH_CREDENTIALS] ~/jiminny/app (JY-20613-allow-owner-role-on-team-setup) $ git pull
remote: Enumerating objects: 248, done.
remote: Counting objects: 100% (128/128), done.
remote: Compressing objects: 100% (23/23), done.
remote: Total 59 (delta 43), reused 44 (delta 33), pack-reused 0 (from 0)
Unpacking objects: 100% (59/59), 10.48 KiB | 228.00 KiB/s, done.
From github.com:jiminny/app
b7df560451..190239dfd4 JY-20613-allow-owner-role-on-team-setup -> origin/JY-20613-allow-owner-role-on-team-setup
e0351be069..d94a285ae7 JY-20808-low-priority-indexing-queue -> origin/JY-20808-low-priority-indexing-queue
* [new branch] JY-20920-fix-participant-matcher -> origin/JY-20920-fix-participant-matcher
cb4ebf0c36..90bca4e4b2 master -> origin/master
Merge made by the 'ort' strategy.
app/Component/ES/ChunkSize.php | 54 +++++++++++++++++++++++++++
app/Component/ES/Processor/DTOs/SelectionList.php | 4 +-
app/Component/ES/Processor/TargetEntitiesSelector.php | 19 ++++++----
app/Http/Middleware/McpTierMiddleware.php | 27 +++-----------
app/Mcp/Servers/JiminnyServer.php | 2 +
app/Mcp/Tools/GetMeTool.php | 157 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
app/Models/Feature/FeatureEnum.php | 1 +
database/migrations/2026_05_13_124153_create_mcp_feature_flag.php | 25 +++++++++++++
front-end/src/components/Settings/Kiosk/modals/EditTeamModal/EditTeamModal.vue | 52 ++++++++++++++++++--------
front-end/src/components/Settings/Kiosk/modals/EditTeamModal/__tests__/EditTeamModal.spec.js | 14 +++++++
tests/Feature/Mcp/GetMeToolFeatureTest.php | 140 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
tests/Feature/Mcp/ListCallsToolFeatureTest.php | 2 +-
tests/Feature/Mcp/McpTestHelpersTrait.php | 19 +++++++++-
tests/Unit/Component/ES/ChunkSizeTest.php | 50 +++++++++++++++++++++++++
tests/Unit/Component/ES/Processor/DTOs/SelectionListTest.php | 27 ++++++++++----
tests/Unit/Component/ES/Processor/TargetEntitiesSelectorTest.php | 39 +++++++++++---------
16 files changed, 557 insertions(+), 75 deletions(-)
create mode 100644 app/Component/ES/ChunkSize.php
create mode 100644 app/Mcp/Tools/GetMeTool.php
create mode 100644 database/migrations/2026_05_13_124153_create_mcp_feature_flag.php
create mode 100644 tests/Feature/Mcp/GetMeToolFeatureTest.php
create mode 100644 tests/Unit/Component/ES/ChunkSizeTest.php
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20613-allow-owner-role-on-team-setup) $ git push
Enumerating objects: 40, done.
Counting objects: 100% (34/34), done.
Delta compression using up to 8 threads
Compressing objects: 100% (18/18), done.
Writing objects: 100% (18/18), 1.58 KiB | 1.58 MiB/s, done.
Total 18 (delta 15), reused 0 (delta 0), pack-reused 0
remote: Resolving deltas: 100% (15/15), completed with 13 local objects.
To github.com:jiminny/app.git
190239dfd4..ec1b261264 JY-20613-allow-owner-role-on-team-setup -> JY-20613-allow-owner-role-on-team-setup
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20613-allow-owner-role-on-team-setup) $ gbr
* JY-20613-allow-owner-role-on-team-setup
pipedrive-sdk-poc
master
JY-20903-update_activity-stage-on-opportunity-change
JY-20904-fix-update-es-on-activity-command
JY-20891-improve-sms-text-relays
JY-20725-handle-HS-search-rate-limit
JY-20818-move-AJ-reports-to-separated-datadog-metric
JY-20773-fix-automated-reports-user-pilot-tracking
JY-20157-AJ-report-not-send-notification
JY-20508-notify-before-AJ-report-expiration
JY-20372-ai-reports-promotion-pages
JY-20352-sync-opportunities-without-a-local-owner-user-id-is-null
JY-20738-debug-AJ-tracking-UP
a
JY-18909-automated-reports-ask-jiminny
JY-20692-fix-integration-app-[API_KEY]
JY-20553-debug-crm-sync-delays
JY-20698-fix-SF-activity-types-on-new-playbook
JY-20543-AJ-report-tracking
JY-20384-handle-auto-sync-with-no-access-to-event-type
JY-20458-ask-jiminny-user-definitions
JY-19666-fix-import-contacts-account-association
JY-19666-HS-import-contacts-and-accounts-batch-job
JY-20458-Ask-Jiminny-Reports
JY-20200-batch-update-CRM-objects-Salesforce
JY-19666-HS-webhooks-add-contact-and-company
JY-20348-trigger-setup-DI-layout-on-team-creation
JY-20326-refactor-info-message-in-command
JY-20317-fix-auto-log-delay-issue-on-all-channels-disabled
JY-20312-remove-on-update-change-last-synced-at-crm-configurations
JY-20306-SF-skip-auto-sync-for-task-based-playbook
JY-20192-remove-deleted-team-from-saved-search-filters
JY-20197-import-opportunity-batch-job
JY-20293-enable-status-field-for-pipedrive-deals
JY-20191-remove-commands-interactive-prompts
JY-20118-change-default-sync-strategy
JY-20183-add-cache-on-auto-log-delay
JY-20197-add-import-opportunity-batch-job
20118-hs-opportunity-make-webhook-strategy-default
JY-20118-make-default-hs-opportunity-sync-strategy-webhook-based
JY-20196-handle-opportunity-without-note
JY-20118-improve-opportunity-import
JY-20189-handle-activity-search-on-deleted-groups
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20613-allow-owner-role-on-team-setup) $ co JY-20725-handle-HS-search-rate-limit
M .env.local
M config/logging.php
Switched to branch 'JY-20725-handle-HS-search-rate-limit'
Your branch is behind 'origin/JY-20725-handle-HS-search-rate-limit' by 439 commits, and can be fast-forwarded.
(use "git pull" to update your local branch)
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20725-handle-HS-search-rate-limit) $ git pull
Updating 0f3e438941..bc6a3fce6b
Fast-forward
.gitignore | 3 +-
.windsurfrules | 168 ++---
CLAUDE.md | 1 +
app/Component/ActivityAnalytics/Service/CalculateTalkTimeOffsetsFromTranscription.php | 24 +-
app/Component/AiActivityType/Services/AiActivityTypeEligibilityChecker.php | 28 +-
app/Component/AiAutomation/Actions/PrepareUpdateDtoAction.php | 32 +-
app/Component/AiAutomation/Services/CrmFillingEligibilityChecker.php | 47 ++
app/Component/AiAutomation/TestCrmAiPromptService.php | 14 +
app/Component/AiCallScoring/Services/AiCallScoringEligibilityChecker.php | 9 +
app/Component/ES/ElasticSearchDocumentPartialUpdater.php | 13 +-
app/Component/ES/ElasticSearchWorkerManager.php | 86 ---
app/Component/ES/Processor/Actions/LoadDocumentsAction.php | 80 +--
app/Component/ES/Processor/EntityQueryBuilder.php | 12 +-
app/Component/ES/Processor/TargetEntitiesSelector.php | 2 +-
app/Component/ES/Processor/Traits/SkipActivityTrait.php | 25 -
app/Component/ES/Repositories/EsResetActivityRepository.php | 11 +-
app/Component/ES/Worker/ActivityWorker.php | 73 --
app/Component/ES/Worker/EntityWorker.php | 44 --
app/Component/ES/Worker/WorkerAmount.php | 60 --
app/Component/ES/Worker/WorkerInterface.php | 15 -
app/Component/ElasticSearch/Contract/Searchable.php | 4 +
app/Component/Encoding/Job/AnalyzeTrackChannelsJob.php | 20 +-
app/Component/Encoding/Service/GenerateSpeechFromSilenceService.php | 85 ++-
app/Component/FFMpeg/Services/GetSpeechIntervalsService.php | 18 +-
app/Component/LanguageDetection/Services/FindSpeechTimeService.php | 22 +-
app/Component/Nudge/Job/ProcessOrganisationImmediateNudgesJob.php | 218 +++++-
app/Component/ParagraphBreaker/Services/TranscriptionParagraphsService.php | 4 +
app/Component/ParticipantSpeech/Services/ParticipantSpeechesCreator.php | 33 +
app/Component/ParticipantSpeech/Services/ParticipantSpeechesDeleter.php | 15 +
app/Component/ParticipantSpeech/Services/ParticipantSpeechesProvider.php | 51 +-
app/Component/ParticipantSpeech/Services/ParticipantSpeechesUploader.php | 36 +
app/Component/ProphetAi/Exceptions/InsufficientTranscriptException.php | 11 +
app/Component/Transcription/DTO/Http/Transcription/AssemblyAI/AssemblyAI/NoAssemblyIdException.php | 11 +
app/Component/Transcription/DTO/Http/Transcription/AssemblyAI/AssemblyAI/SuccessfulResponse.php | 6 +
app/Component/Transcription/DTO/Http/Transcription/TranscriptionIsNotCorrectFormatException.php | 11 +
app/Component/Transcription/Diarization/Services/GetNormalizedParticipantSpeechesService.php | 23 +-
app/Component/Transcription/Diarization/Source/MeetingBotSource.php | 16 +-
app/Component/Transcription/TranscriptionProcessor/TranscriptionProcessor.php | 3 +
app/Console/Commands/Activities/ActivityHardDeleteCommand.php | 4 +-
app/Console/Commands/Activities/Copy.php | 2 +
app/Console/Commands/Activities/SetupIntegration/TwilioSetS3RecordingCredentialsCommand.php | 119 ++++
app/Console/Commands/Activities/UpdateActivityElasticSearchDocumentCommand.php | 10 +-
app/Console/Commands/Crm/BackfillOpportunityUserFromAccountCommand.php | 126 ++++
app/Console/Commands/Elasticsearch/AsyncUpdateEsActivities.php | 19 -
app/Console/Commands/Elasticsearch/AsyncUpdateEsEntities.php | 50 +-
app/Console/Commands/Elasticsearch/ResetAsyncElasticSearchCommand.php | 30 +-
app/Console/Commands/GeckoExport/GeckoExportParticipantSpeechesCommand.php | 14 +-
app/Console/Commands/IssueMcpTokenCommand.php | 84 +++
app/Console/Commands/JiminnyDebugCommand.php | 7 +-
app/Console/Commands/Tracks/CleanupActivityTracksCommand.php | 2 +-
app/Console/Kernel.php | 6 +-
app/Contracts/Services/Calendar/CalendarTrait.php | 80 ++-
app/Events/AutomatedReports/AutomatedReportGenerated.php | 3 +
app/Http/Controllers/API/AiCallScoring/AiScorecardController.php | 7 +-
app/Http/Controllers/API/TeamAiAutomationController.php | 8 +
app/Http/Controllers/CustomerApi/CustomerApiController.php | 4 +-
app/Http/Controllers/Kiosk/ActivityController.php | 58 +-
app/Http/Controllers/Settings/PlaybookController.php | 15 +-
app/Http/Kernel.php | 23 +
app/Http/Middleware/McpAuditMiddleware.php | 156 ++++
app/Http/Middleware/McpTierMiddleware.php | 54 ++
app/Http/Requests/API/V2/ZapierUploadActivityRequest.php | 28 +-
app/Jobs/Activity/Import/ImportTwilioVideoSpeechesJob.php | 25 +-
app/Jobs/Activity/Import/IsActivityReadyForProcessingJob.php | 10 +-
app/Jobs/Calendar/SetupCalendarSync.php | 21 +-
app/Jobs/ImportRemoteTrackJob.php | 96 ++-
app/Jobs/Mailbox/EmailTextRelay.php | 15 +-
app/Mcp/Contracts/McpCallRepositoryInterface.php | 30 +
app/Mcp/DTO/ListCallsFilters.php | 29 +
app/Mcp/Errors/McpError.php | 123 ++++
app/Mcp/Repositories/McpActivityHydrator.php | 145 ++++
app/Mcp/Repositories/McpCallRepository.php | 84 +++
app/Mcp/Repositories/McpElasticCallRepository.php | 171 +++++
app/Mcp/Servers/JiminnyServer.php | 38 +
app/Mcp/Tools/ListCallsTool.php | 205 ++++++
app/Models/Activity.php | 10 +-
app/Models/Activity/Transcription.php | 17 +-
app/Models/ElasticSearch/OpportunityElasticSearchTrait.php | 5 +
app/Models/Participant.php | 1 +
app/Providers/AppServiceProvider.php | 22 +
app/Repositories/Crm/ContactRepository.php | 69 +-
app/Repositories/ParticipantSpeechRepository.php | 13 +-
app/Services/Activity/ParticipantsService.php | 19 +-
app/Services/Activity/Twilio/S3RecordingCredentialsService.php | 82 +++
app/Services/ActivityService.php | 21 +-
app/Services/Calendar/CalendarActivityService.php | 46 ++
app/Services/Calendar/Command/ImportParticipants.php | 1 +
app/Services/Calendar/Command/MapActivityData.php | 106 +--
app/Services/Calendar/GoogleCalendarService.php | 12 +-
app/Services/Crm/Close/Processor/OpportunityProcessor.php | 2 +-
app/Services/Crm/Close/Service.php | 22 +-
app/Services/Crm/Copper/Service.php | 12 +-
app/Services/Crm/Hubspot/Service.php | 154 +++-
app/Services/Crm/Hubspot/ServiceTraits/OpportunitySyncTrait.php | 88 ++-
app/Services/Crm/IntegrationApp/ServiceTraits/SyncCrmEntitiesTrait.php | 22 +-
app/Services/Crm/Pipedrive/Service.php | 17 +-
app/Services/Crm/Salesforce/Service.php | 42 +-
app/Services/Mail/Office/EmailApiClient.php | 129 +---
app/Services/RecallAI/Commands/ScheduleBotCommand.php | 39 +-
app/Services/RecallAI/RecallAIService.php | 22 +-
composer.json | 3 +-
composer.lock | 87 ++-
config/mcp.php | 23 +
database/migrations/2026_04_30_120000_create_mcp_audit_log_table.php | 36 +
docs/mcp/explorer/explorer.html | 697 ++++++++++++++++++
docs/mcp/explorer/explorer.template.html | 697 ++++++++++++++++++
docs/mcp/explorer/generate.js | 215 ++++++
docs/mcp/explorer/tool-explorer-meta.json | 11 +
docs/mcp/tools-list.json | 2536 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
docs/mcp/tools.md | 621 ++++++++++++++++
front-end/package.json | 4 +-
front-end/src/components/Settings/OrgSettings/AiAutomation/CrmFilling/TemplateFieldForm.vue | 28 +-
front-end/src/components/Settings/OrgSettings/Playbooks/AddEditPlaybook.vue | 10 +
front-end/src/components/playback/comments/ActivityComment.less | 10 +-
front-end/src/components/shared/PromptTester/PromptTester.vue | 12 +-
front-end/src/components/shared/__tests__/PromptTester.spec.js | 35 +
front-end/src/components/shared/modals/EntityPickerModal/__tests__/useEntitiesCache.spec.ts | 37 +
front-end/src/components/shared/modals/EntityPickerModal/useEntitiesCache.ts | 9 +
front-end/yarn.lock | 16 +-
phpstan-baseline.neon | 50 --
routes/api.php | 11 +
sonar-project.properties | 91 ++-
tests/Feature/Component/Nudge/ProcessOrganisationImmediateNudgesJobTest.php | 534 ++++++++++++++
tests/Feature/Jobs/ImportRemoteTrackJobTest.php | 283 +++++++-
tests/Feature/Mcp/IssueMcpTokenCommandTest.php | 53 ++
tests/Feature/Mcp/ListCallsToolElasticFeatureTest.php | 155 ++++
tests/Feature/Mcp/ListCallsToolFeatureTest.php | 352 ++++++++++
tests/Feature/Mcp/McpTestHelpersTrait.php | 77 ++
tests/Feature/Services/Team/TeamDeleteHandlers/Retention/RetentionRepositoryHandlerTest.php | 1 +
tests/Stubs/SentryStub.php | 18 +
tests/Unit/Component/ActivityAnalytics/Service/CalculateTalkTimeOffsetFromTranscriptionTest.php | 28 +-
tests/Unit/Component/AiActivityType/Services/AiActivityTypeEligibilityCheckerTest.php | 103 ++-
tests/Unit/Component/AiAutomation/Actions/PrepareUpdateDtoActionTest.php | 91 +++
tests/Unit/Component/AiAutomation/Services/CrmFillingEligibilityCheckerTest.php | 124 ++++
tests/Unit/Component/AiAutomation/TestCrmAiPromptServiceTest.php | 67 +-
tests/Unit/Component/AiCallScoring/Services/AiCallScoringEligibilityCheckerTest.php | 55 ++
tests/Unit/Component/ES/ElasticSearchWorkerManagerTest.php | 135 ----
tests/Unit/Component/ES/Processor/Actions/LoadDocumentsActionTest.php | 220 ++++++
tests/Unit/Component/ES/Processor/EntityQueryBuilderTest.php | 21 +-
tests/Unit/Component/ES/Processor/Traits/SkipActivityTraitTest.php | 51 --
tests/Unit/Component/ES/Worker/ActivityWorkerTest.php | 174 -----
tests/Unit/Component/ES/Worker/EntityWorkerTest.php | 97 ---
tests/Unit/Component/ES/Worker/WorkerAmountTest.php | 116 ---
tests/Unit/Component/Encoding/Job/AnalyzeTrackChannelsJobTest.php | 52 +-
tests/Unit/Component/Encoding/Service/GenerateSpeechFromSilenceServiceTest.php | 171 ++---
tests/Unit/Component/FFMpeg/Services/GetSpeechIntervalsTest.php | 36 +-
tests/Unit/Component/LanguageDetection/Services/FindSpeechTimeServiceTest.php | 20 +-
tests/Unit/Component/MobileSettings/MobileSettingsControllerTest.php | 5 +-
tests/Unit/Component/ParticipantSpeech/Services/ParticipantSpeechesCreatorTest.php | 75 ++
tests/Unit/Component/ParticipantSpeech/Services/ParticipantSpeechesDeleterTest.php | 63 ++
tests/Unit/Component/ParticipantSpeech/Services/ParticipantSpeechesProviderTest.php | 134 ++++
tests/Unit/Component/ParticipantSpeech/Services/ParticipantSpeechesUploaderTest.php | 57 ++
tests/Unit/Component/Transcription/Diarization/Services/GetNormalizedParticipantSpeechesServiceTest.php | 51 +-
tests/Unit/Component/Transcription/Diarization/Source/MeetingBotSourceTest.php | 29 +-
tests/Unit/Contracts/Services/Calendar/CalendarTraitTest.php | 58 +-
tests/Unit/Http/Controllers/Kiosk/ActivityControllerTest.php | 159 +++++
tests/Unit/Jobs/Activity/Import/ImportTwilioVideoSpeechesJobTest.php | 22 +-
tests/Unit/Jobs/Activity/Import/IsActivityReadyForProcessingJobTest.php | 26 +-
tests/Unit/Jobs/Calendar/SetupCalendarSyncTest.php | 25 -
tests/Unit/Services/Activity/ParticipantsServiceTest.php | 12 +-
tests/Unit/Services/Activity/Twilio/S3RecordingCredentialsServiceTest.php | 180 +++++
tests/Unit/Services/ActivityServiceTest.php | 132 ++++
tests/Unit/Services/Calendar/CalendarActivityServiceTest.php | 150 +++-
tests/Unit/Services/Calendar/Command/ImportParticipantsTest.php | 6 +-
tests/Unit/Services/Calendar/Command/MapActivityDataTest.php | 78 +-
tests/Unit/Services/Calendar/GoogleCalendarServiceTest.php | 116 +++
tests/Unit/Services/Crm/Close/ServiceTest.php | 165 +++++
tests/Unit/Services/Crm/Hubspot/ServiceTest.php | 272 ++++++-
tests/Unit/Services/Crm/Hubspot/ServiceTraits/OpportunitySyncTest.php | 25 +-
tests/Unit/Services/Crm/Hubspot/ServiceTraits/OpportunitySyncTraitMatchActivitiesTest.php | 3 +-
tests/Unit/Services/Crm/IntegrationApp/ServiceTraits/SyncCrmEntitiesTraitOpportunitiesTest.php | 40 ++
tests/Unit/Services/Crm/Pipedrive/ImportOpportunityMatchActivitiesTest.php | 2 +
tests/Unit/Services/Crm/Salesforce/ServiceTest.php | 139 ++++
tests/Unit/Services/Mail/Office/EmailApiClientTest.php | 195 ++---
tests/Unit/Services/RecallAI/RecallAIServiceTest.php | 24 +-
175 files changed, 12562 insertions(+), 2162 deletions(-)
create mode 120000 CLAUDE.md
create mode 100644 app/Component/AiAutomation/Services/CrmFillingEligibilityChecker.php
delete mode 100644 app/Component/ES/ElasticSearchWorkerManager.php
delete mode 100644 app/Component/ES/Processor/Traits/SkipActivityTrait.php
delete mode 100644 app/Component/ES/Worker/ActivityWorker.php
delete mode 100644 app/Component/ES/Worker/EntityWorker.php
delete mode 100644 app/Component/ES/Worker/WorkerAmount.php
delete mode 100644 app/Component/ES/Worker/WorkerInterface.php
create mode 100644 app/Component/ProphetAi/Exceptions/InsufficientTranscriptException.php
create mode 100644 app/Component/Transcription/DTO/Http/Transcription/AssemblyAI/AssemblyAI/NoAssemblyIdException.php
create mode 100644 app/Component/Transcription/DTO/Http/Transcription/TranscriptionIsNotCorrectFormatException.php
create mode 100644 app/Console/Commands/Activities/SetupIntegration/TwilioSetS3RecordingCredentialsCommand.php
create mode 100644 app/Console/Commands/Crm/BackfillOpportunityUserFromAccountCommand.php
delete mode 100644 app/Console/Commands/Elasticsearch/AsyncUpdateEsActivities.php
create mode 100644 app/Console/Commands/IssueMcpTokenCommand.php
create mode 100644 app/Http/Middleware/McpAuditMiddleware.php
create mode 100644 app/Http/Middleware/McpTierMiddleware.php
create mode 100644 app/Mcp/Contracts/McpCallRepositoryInterface.php
create mode 100644 app/Mcp/DTO/ListCallsFilters.php
create mode 100644 app/Mcp/Errors/McpError.php
create mode 100644 app/Mcp/Repositories/McpActivityHydrator.php
create mode 100644 app/Mcp/Repositories/McpCallRepository.php
create mode 100644 app/Mcp/Repositories/McpElasticCallRepository.php
create mode 100644 app/Mcp/Servers/JiminnyServer.php
create mode 100644 app/Mcp/Tools/ListCallsTool.php
create mode 100644 app/Services/Activity/Twilio/S3RecordingCredentialsService.php
create mode 100644 config/mcp.php
create mode 100644 database/migrations/2026_04_30_120000_create_mcp_audit_log_table.php
create mode 100644 docs/mcp/explorer/explorer.html
create mode 100644 docs/mcp/explorer/explorer.template.html
create mode 100644 docs/mcp/explorer/generate.js
create mode 100644 docs/mcp/explorer/tool-explorer-meta.json
create mode 100644 docs/mcp/tools-list.json
create mode 100644 docs/mcp/tools.md
create mode 100644 front-end/src/components/shared/modals/EntityPickerModal/__tests__/useEntitiesCache.spec.ts
create mode 100644 tests/Feature/Component/Nudge/ProcessOrganisationImmediateNudgesJobTest.php
create mode 100644 tests/Feature/Mcp/IssueMcpTokenCommandTest.php
create mode 100644 tests/Feature/Mcp/ListCallsToolElasticFeatureTest.php
create mode 100644 tests/Feature/Mcp/ListCallsToolFeatureTest.php
create mode 100644 tests/Feature/Mcp/McpTestHelpersTrait.php
create mode 100644 tests/Stubs/SentryStub.php
create mode 100644 tests/Unit/Component/AiAutomation/Services/CrmFillingEligibilityCheckerTest.php
delete mode 100644 tests/Unit/Component/ES/ElasticSearchWorkerManagerTest.php
create mode 100644 tests/Unit/Component/ES/Processor/Actions/LoadDocumentsActionTest.php
delete mode 100644 tests/Unit/Component/ES/Processor/Traits/SkipActivityTraitTest.php
delete mode 100644 tests/Unit/Component/ES/Worker/ActivityWorkerTest.php
delete mode 100644 tests/Unit/Component/ES/Worker/EntityWorkerTest.php
delete mode 100644 tests/Unit/Component/ES/Worker/WorkerAmountTest.php
create mode 100644 tests/Unit/Component/ParticipantSpeech/Services/ParticipantSpeechesCreatorTest.php
create mode 100644 tests/Unit/Http/Controllers/Kiosk/ActivityControllerTest.php
create mode 100644 tests/Unit/Services/Activity/Twilio/S3RecordingCredentialsServiceTest.php
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20725-handle-HS-search-rate-limit) $ git status
On branch master
Your branch is behind 'origin/master' by 114 commits, and can be fast-forwarded.
(use "git pull" to update your local branch)
Changes not staged for commit:
(use "git add <file>..." to update what will be committed)
(use "git restore <file>..." to discard changes in working directory)
modified: .env.local
modified: app/Component/SCIM/Constants.php
modified: app/Component/SCIM/ScimProvisioning.php
modified: app/Component/Twilio/Conference/ConferenceManager/SoftPhoneManager.php
modified: app/Console/Commands/JiminnyDebugCommand.php
modified: app/DTO/SCIM/AAD/Request/CoreUserRequest.php
modified: app/DTO/SCIM/AAD/Response/CoreUser.php
modified: app/Services/Telephony/TextMessagingService.php
modified: config/logging.php
Untracked files:
(use "git add <file>..." to include in what will be committed)
.env.nikilocal
.env.other
WEBHOOK_FILTERING_IMPLEMENTATION.md
app/Component/SCIM/Mutators/Attributes/User/RoleAttr.php
app/Console/Commands/Crm/Hubspot/SimulateWebhooksCommand.php
app/Console/Commands/Reports/CreateMockAskJiminnyReportResultCommand.php
app/Rules/ListenerRoleCannotHaveAdminOrManagerPermissionRule.php
ids.txt
public/favicon.ico
raw_sql_query.sql
tests/Unit/Component/SCIM/Mutators/Attributes/User/RoleAttrTest.php
tests/Unit/Policies/CanAccessAiReportsTest.php
tests/Unit/Rules/ListenerRoleCannotHaveAdminOrManagerPermissionRuleTest.php
no changes added to commit (use "git add" and/or "git commit -a")
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (master) $ git pull
remote: Enumerating objects: 306, done.
remote: Counting objects: 100% (299/299), done.
remote: Compressing objects: 100% (183/183), done.
remote: Total 306 (delta 213), reused 171 (delta 116), pack-reused 7 (from 1)
Receiving objects: 100% (306/306), 80.12 KiB | 1000.00 KiB/s, done.
Resolving deltas: 100% (213/213), completed with 53 local objects.
From github.com:jiminny/app
90bca4e4b2..5604af40cf master -> origin/master
4e7078fd8b..0b8343d179 JY-18091-upgrade-to-php-8-5 -> origin/JY-18091-upgrade-to-php-8-5
098eeaa087..d5a447e492 JY-20613-allow-owner-role-on-team-setup -> origin/JY-20613-allow-owner-role-on-team-setup
c3a76ace91..af65249d0f JY-20749-user-can-view-recorded-meetings -> origin/JY-20749-user-can-view-recorded-meetings
d94a285ae7..7ce96cb5fe JY-20808-low-priority-indexing-queue -> origin/JY-20808-low-priority-indexing-queue
* [new branch] JY-20842-remove-partial-updater -> origin/JY-20842-remove-partial-updater
* [new branch] JY-20920-fix-participant-flip -> origin/JY-20920-fix-participant-flip
* [new branch] secfix/npm-20260519 -> origin/secfix/npm-20260519
Updating cb4ebf0c36..5604af40cf
Fast-forward
app/Component/ES/ChunkSize.php | 54 +++++++++++++++++++
app/Component/ES/Processor/DTOs/SelectionList.php | 4 +-
app/Component/ES/Processor/TargetEntitiesSelector.php | 19 ++++---
app/Component/MeetingBot/Service/ParticipantMatcher.php | 46 ++++++++++++----
app/Exceptions/RateLimitException.php | 19 ++++++-
app/Http/Middleware/McpTierMiddleware.php | 27 ++--------
app/Jobs/Crm/MatchActivityCrmData.php | 47 ++++++++++++----
app/Jobs/Middleware/HandleHubspotRateLimit.php | 42 +++++++++++++++
app/Mcp/Servers/JiminnyServer.php | 2 +
app/Mcp/Tools/GetMeTool.php | 157 +++++++++++++++++++++++++++++++++++++++++++++++++++++
app/Models/Feature/FeatureEnum.php | 1 +
app/Services/Activity/HubSpot/ProviderResolver.php | 4 +-
app/Services/Activity/HubSpot/ProviderResolverInterface.php | 2 +-
app/Services/Activity/HubSpot/Providers/Provider.php | 2 +-
app/Services/Activity/HubSpot/Providers/ProviderKixie.php | 2 +-
app/Services/Activity/HubSpot/Providers/ProviderOrum.php | 2 +-
app/Services/Activity/HubSpot/Providers/ProviderTwilio.php | 2 +-
app/Services/Activity/HubSpot/Providers/ProviderTwilioFlex.php | 5 +-
app/Services/Activity/HubSpot/Service.php | 97 +++++++++++++++++++++++++++------
app/Services/Crm/Hubspot/Client.php | 132 +++++++++++++++++++++++++++++++++++++++++++++
app/Services/Crm/Hubspot/HubspotClientInterface.php | 15 ++++++
app/Services/Crm/Hubspot/Pagination/HubspotPaginationService.php | 21 ++++----
app/Services/Crm/Hubspot/Pagination/PaginationState.php | 2 +-
database/migrations/2026_05_13_124153_create_mcp_feature_flag.php | 25 +++++++++
tests/Feature/Mcp/GetMeToolFeatureTest.php | 140 +++++++++++++++++++++++++++++++++++++++++++++++
tests/Feature/Mcp/ListCallsToolFeatureTest.php | 2 +-
tests/Feature/Mcp/McpTestHelpersTrait.php | 19 ++++++-
tests/Unit/Component/ES/ChunkSizeTest.php | 50 +++++++++++++++++
tests/Unit/Component/ES/Processor/DTOs/SelectionListTest.php | 27 +++++++---
tests/Unit/Component/ES/Processor/TargetEntitiesSelectorTest.php | 39 ++++++++------
tests/Unit/Component/MeetingBot/Service/ParticipantMatcherTest.php | 68 ++++++++++++++++++++++-
tests/Unit/Exceptions/RateLimitExceptionTest.php | 56 +++++++++++++++++++
tests/Unit/Jobs/Crm/MatchActivityCrmDataTest.php | 8 +--
tests/Unit/Jobs/Middleware/HandleHubspotRateLimitTest.php | 151 +++++++++++++++++++++++++++++++++++++++++++++++++++
tests/Unit/Services/Activity/HubSpot/ServiceTest.php | 109 +++++++++++++++++++++++++++++++++++++
tests/Unit/Services/Crm/Hubspot/ClientTest.php | 250 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
tests/Unit/Services/Crm/Hubspot/Pagination/HubspotPaginationServiceTest.php | 283 +++++++++++++++++++++---------------------------------------------------------------------------
37 files changed, 1587 insertions(+), 344 deletions(-)
create mode 100644 app/Component/ES/ChunkSize.php
create mode 100644 app/Jobs/Middleware/HandleHubspotRateLimit.php
create mode 100644 app/Mcp/Tools/GetMeTool.php
create mode 100644 database/migrations/2026_05_13_124153_create_mcp_feature_flag.php
create mode 100644 tests/Feature/Mcp/GetMeToolFeatureTest.php
create mode 100644 tests/Unit/Component/ES/ChunkSizeTest.php
create mode 100644 tests/Unit/Exceptions/RateLimitExceptionTest.php
create mode 100644 tests/Unit/Jobs/Middleware/HandleHubspotRateLimitTest.php
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (master) $ git pull
Already up to date.
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (master) $ co -b JY-20676-delete-report-related-objects
Switched to a new branch 'JY-20676-delete-report-related-objects'
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20676-delete-report-related-objects) $ csfix
docker exec -it docker_lamp_1 ./vendor/bin/php-cs-fixer fix --config=.php-cs-fixer.dist.php -v --using-cache=no --diff
PHP CS Fixer 3.87.1 Alexander by Fabien Potencier, Dariusz Ruminski and contributors.
PHP runtime: 8.3.30
Running 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!
Loaded config default from ".php-cs-fixer.dist.php".
5690/5690 [▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓] 100%
1) app/Console/Commands/JiminnyDebugCommand.php (statement_indentation, blank_line_before_statement)
---------- begin diff ----------
--- /home/jiminny/app/Console/Commands/JiminnyDebugCommand.php
+++ /home/jiminny/app/Console/Commands/JiminnyDebugCommand.php
@@ -23,6 +23,7 @@
if ($action === 'redis-set') {
$this->testRedisSet();
+
return;
}
@@ -45,7 +46,7 @@
$ttl = 60;
try {
-// $result = Redis::set($testKey, $testValue, 'EX', $ttl, 'NX');
+ // $result = Redis::set($testKey, $testValue, 'EX', $ttl, 'NX');
$result = Redis::set($testKey, $testValue, ['nx', 'ex' => $ttl]);
if ($result) {
----------- end diff -----------
Fixed 1 of 5690 files i...
|
[{"role":"AXTextArea","text [{"role":"AXTextArea","text":"Last login: Mon May 18 09:17:28 on ttys007\n\nPoetry could not find a pyproject.toml file in /Users/lukas/jiminny/app or its parents\n\nPoetry could not find a pyproject.toml file in /Users/lukas/jiminny/app or its parents\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (pipedrive-sdk-poc) $ co master\nerror: Your local changes to the following files would be overwritten by checkout:\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tPIPEDRIVE_V2_MIGRATION_TICKETS.md\nPlease commit your changes or stash them before you switch branches.\nAborting\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (pipedrive-sdk-poc) $ git pull\nremote: Enumerating objects: 1047, done.\nremote: Counting objects: 100% (832/832), done.\nremote: Compressing objects: 100% (298/298), done.\nremote: Total 1047 (delta 634), reused 596 (delta 534), pack-reused 215 (from 3)\nReceiving objects: 100% (1047/1047), 353.16 KiB | 1.56 MiB/s, done.\nResolving deltas: 100% (687/687), completed with 107 local objects.\nFrom github.com:jiminny/app\n 907c54896c..34656c53ed pipedrive-sdk-poc -> origin/pipedrive-sdk-poc\n 03325ec50f..4e7078fd8b JY-18091-upgrade-to-php-8-5 -> origin/JY-18091-upgrade-to-php-8-5\n e7d231e163..bc6a3fce6b JY-20725-handle-HS-search-rate-limit -> origin/JY-20725-handle-HS-search-rate-limit\n * [new branch] JY-20749-user-can-view-recorded-meetings -> origin/JY-20749-user-can-view-recorded-meetings\n 98ca281a04..e0351be069 JY-20808-low-priority-indexing-queue -> origin/JY-20808-low-priority-indexing-queue\n 569abb5149..3906a9238a JY-20835-mcp-enable-users-to-get-a-list-of-deals-and-their-details -> origin/JY-20835-mcp-enable-users-to-get-a-list-of-deals-and-their-details\n ad6c2a86e8..50eb6afba9 JY-20846-mcp-enable-the-ai-to-know-details-about-the-user -> origin/JY-20846-mcp-enable-the-ai-to-know-details-about-the-user\n * [new branch] JY-20893-chunk-control-per-update-target -> origin/JY-20893-chunk-control-per-update-target\n 31c62924a5..cb4ebf0c36 master -> origin/master\nUpdating 907c54896c..34656c53ed\nFast-forward\n PIPEDRIVE_V2_MIGRATION_TICKETS.md | 52 ++++++++++++++++++++++++++++++++++++++++++++++++++++\n 1 file changed, 52 insertions(+)\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (pipedrive-sdk-poc) $ co master\nM\u0000\u0000\u0000\u0000\u0000\u0000\t.env.local\nM\u0000\u0000\u0000\u0000\u0000\u0000\tconfig/logging.php\nSwitched to branch 'master'\nYour branch is behind 'origin/master' by 31 commits, and can be fast-forwarded.\n (use \"git pull\" to update your local branch)\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (master) $ git pull\nUpdating 31c62924a5..cb4ebf0c36\nFast-forward\n app/Component/ES/Processor/Traits/SelectEntityListTrait.php | 20 ------\n app/Services/Calendar/CalendarActivityService.php | 46 +++++++++++++\n app/Services/Calendar/Command/MapActivityData.php | 106 +++-------------------------\n docs/mcp/explorer/explorer.html | 104 +++++++++++++++++++++++++---\n docs/mcp/explorer/explorer.template.html | 102 ++++++++++++++++++++++++---\n docs/mcp/tools-list.json | 373 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++-------\n docs/mcp/tools.md | 117 +++++++++++++++++++++++--------\n tests/Unit/Component/ES/AsyncUpdateElasticSearchTest.php | 16 +----\n tests/Unit/Component/ES/Listeners/UpdateMultipleTargetsListenerTest.php | 10 ---\n tests/Unit/Component/ES/Listeners/UpdateSingleTargetListenerTest.php | 6 --\n tests/Unit/Component/ES/Processor/TargetEntitiesSelectorTest.php | 9 ---\n tests/Unit/Component/ES/Processor/Traits/SelectEntityListTraitTest.php | 15 ++--\n tests/Unit/Component/ES/UpdateProcessManagerTest.php | 2 -\n tests/Unit/Services/Calendar/CalendarActivityServiceTest.php | 150 ++++++++++++++++++++++++++++++++++++++--\n tests/Unit/Services/Calendar/Command/MapActivityDataTest.php | 78 ++-------------------\n 15 files changed, 832 insertions(+), 322 deletions(-)\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (master) $ co -b JY-20613-allow-owner-role-on-team-setup\nSwitched to a new branch 'JY-20613-allow-owner-role-on-team-setup'\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20613-allow-owner-role-on-team-setup) $ csfix\ndocker exec -it docker_lamp_1 ./vendor/bin/php-cs-fixer fix --config=.php-cs-fixer.dist.php -v --using-cache=no --diff \nPHP CS Fixer 3.87.1 Alexander by Fabien Potencier, Dariusz Ruminski and contributors.\nPHP runtime: 8.3.30\nRunning analysis on 7 cores with 10 files per process.\nParallel runner is an experimental feature and may be unstable, use it at your own risk. Feedback highly appreciated!\nLoaded config default from \".php-cs-fixer.dist.php\".\n 5682/5682 [▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓] 100%\n\n\nFixed 0 of 5682 files in 56.978 seconds, 67.00 MB memory used\n\nWhat's next:\n Try Docker Debug for seamless, persistent debugging tools in any container or image → docker debug docker_lamp_1\n Learn more at https://docs.docker.com/go/debug-cli/\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20613-allow-owner-role-on-team-setup) $ ;xd\ndocker exec -it docker_lamp_1 bash -c \"mv /usr/local/etc/php/conf.d/xdebug.ini ~/xdebug.ini\"\n\nWhat's next:\n Try Docker Debug for seamless, persistent debugging tools in any container or image → docker debug docker_lamp_1\n Learn more at https://docs.docker.com/go/debug-cli/\ndocker exec -it docker_lamp_1 supervisorctl restart all\njiminny-worker-processing-2:jiminny-worker-processing-2_00: stopped\njiminny-worker-processing-3:jiminny-worker-processing-3_00: stopped\njiminny-worker-processing-4:jiminny-worker-processing-4_00: stopped\njiminny-worker-processing-5:jiminny-worker-processing-5_00: stopped\njiminny-worker-processing-delayed:jiminny-worker-processing-delayed_00: stopped\nworker-analytics:worker-analytics_00: stopped\nworker-crm-update:worker-crm-update_00: stopped\nworker-download:worker-download_00: stopped\nworker-nudges:worker-nudges_00: stopped\nartisan-schedule:artisan-schedule_00: stopped\nworker-emails:worker-emails_00: stopped\nworker-calendar:worker-calendar_00: stopped\nworker:worker_00: stopped\nworker-conferences:worker-conferences_00: stopped\nworker-crm-sync:worker-crm-sync_00: stopped\njiminny-worker-processing-1:jiminny-worker-processing-1_00: stopped\nworker-audio:worker-audio_00: stopped\nworker-es-update:worker-es-update_00: stopped\nartisan-schedule:artisan-schedule_00: started\njiminny-worker-processing-1:jiminny-worker-processing-1_00: started\njiminny-worker-processing-2:jiminny-worker-processing-2_00: started\njiminny-worker-processing-3:jiminny-worker-processing-3_00: started\njiminny-worker-processing-4:jiminny-worker-processing-4_00: started\njiminny-worker-processing-5:jiminny-worker-processing-5_00: started\njiminny-worker-processing-delayed:jiminny-worker-processing-delayed_00: started\nworker:worker_00: started\nworker-analytics:worker-analytics_00: started\nworker-audio:worker-audio_00: started\nworker-calendar:worker-calendar_00: started\nworker-conferences:worker-conferences_00: started\nworker-crm-sync:worker-crm-sync_00: started\nworker-crm-update:worker-crm-update_00: started\nworker-download:worker-download_00: started\nworker-emails:worker-emails_00: started\nworker-es-update:worker-es-update_00: started\nworker-nudges:worker-nudges_00: started\n\nWhat's next:\n Try Docker Debug for seamless, persistent debugging tools in any container or image → docker debug docker_lamp_1\n Learn more at https://docs.docker.com/go/debug-cli/\ndocker exec -it docker_lamp_1 php -v\nPHP 8.3.30 (cli) (built: Mar 16 2026 22:32:32) (NTS)\nCopyright (c) The PHP Group\nZend Engine v4.3.30, Copyright (c) Zend Technologies\n with Zend OPcache v8.3.30, Copyright (c), by Zend Technologies\n\nWhat's next:\n Try Docker Debug for seamless, persistent debugging tools in any container or image → docker debug docker_lamp_1\n Learn more at https://docs.docker.com/go/debug-cli/\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20613-allow-owner-role-on-team-setup) $ csfix\ndocker exec -it docker_lamp_1 ./vendor/bin/php-cs-fixer fix --config=.php-cs-fixer.dist.php -v --using-cache=no --diff \nPHP CS Fixer 3.87.1 Alexander by Fabien Potencier, Dariusz Ruminski and contributors.\nPHP runtime: 8.3.30\nRunning analysis on 7 cores with 10 files per process.\nParallel runner is an experimental feature and may be unstable, use it at your own risk. Feedback highly appreciated!\nLoaded config default from \".php-cs-fixer.dist.php\".\n 5682/5682 [▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓] 100%\n\n\nFixed 0 of 5682 files in 49.910 seconds, 60.00 MB memory used\n\nWhat's next:\n Try Docker Debug for seamless, persistent debugging tools in any container or image → docker debug docker_lamp_1\n Learn more at https://docs.docker.com/go/debug-cli/\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20613-allow-owner-role-on-team-setup) $ git status\nOn branch JY-20613-allow-owner-role-on-team-setup\nYour branch is ahead of 'origin/JY-20613-allow-owner-role-on-team-setup' by 1 commit.\n (use \"git push\" to publish your local commits)\n\nChanges not staged for commit:\n (use \"git add <file>...\" to update what will be committed)\n (use \"git restore <file>...\" to discard changes in working directory)\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tmodified: .env.local\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tmodified: config/logging.php\n\nUntracked files:\n (use \"git add <file>...\" to include in what will be committed)\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\t.env.nikilocal\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\t.env.other\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tWEBHOOK_FILTERING_IMPLEMENTATION.md\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tapp/Console/Commands/Crm/Hubspot/SimulateWebhooksCommand.php\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tapp/Console/Commands/Reports/CreateMockAskJiminnyReportResultCommand.php\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tids.txt\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tpublic/favicon.ico\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\traw_sql_query.sql\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\ttests/Unit/Policies/CanAccessAiReportsTest.php\n\nno changes added to commit (use \"git add\" and/or \"git commit -a\")\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20613-allow-owner-role-on-team-setup) $ git pull\nremote: Enumerating objects: 248, done.\nremote: Counting objects: 100% (128/128), done.\nremote: Compressing objects: 100% (23/23), done.\nremote: Total 59 (delta 43), reused 44 (delta 33), pack-reused 0 (from 0)\nUnpacking objects: 100% (59/59), 10.48 KiB | 228.00 KiB/s, done.\nFrom github.com:jiminny/app\n b7df560451..190239dfd4 JY-20613-allow-owner-role-on-team-setup -> origin/JY-20613-allow-owner-role-on-team-setup\n e0351be069..d94a285ae7 JY-20808-low-priority-indexing-queue -> origin/JY-20808-low-priority-indexing-queue\n * [new branch] JY-20920-fix-participant-matcher -> origin/JY-20920-fix-participant-matcher\n cb4ebf0c36..90bca4e4b2 master -> origin/master\nMerge made by the 'ort' strategy.\n app/Component/ES/ChunkSize.php | 54 +++++++++++++++++++++++++++\n app/Component/ES/Processor/DTOs/SelectionList.php | 4 +-\n app/Component/ES/Processor/TargetEntitiesSelector.php | 19 ++++++----\n app/Http/Middleware/McpTierMiddleware.php | 27 +++-----------\n app/Mcp/Servers/JiminnyServer.php | 2 +\n app/Mcp/Tools/GetMeTool.php | 157 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++\n app/Models/Feature/FeatureEnum.php | 1 +\n database/migrations/2026_05_13_124153_create_mcp_feature_flag.php | 25 +++++++++++++\n front-end/src/components/Settings/Kiosk/modals/EditTeamModal/EditTeamModal.vue | 52 ++++++++++++++++++--------\n front-end/src/components/Settings/Kiosk/modals/EditTeamModal/__tests__/EditTeamModal.spec.js | 14 +++++++\n tests/Feature/Mcp/GetMeToolFeatureTest.php | 140 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++\n tests/Feature/Mcp/ListCallsToolFeatureTest.php | 2 +-\n tests/Feature/Mcp/McpTestHelpersTrait.php | 19 +++++++++-\n tests/Unit/Component/ES/ChunkSizeTest.php | 50 +++++++++++++++++++++++++\n tests/Unit/Component/ES/Processor/DTOs/SelectionListTest.php | 27 ++++++++++----\n tests/Unit/Component/ES/Processor/TargetEntitiesSelectorTest.php | 39 +++++++++++---------\n 16 files changed, 557 insertions(+), 75 deletions(-)\n create mode 100644 app/Component/ES/ChunkSize.php\n create mode 100644 app/Mcp/Tools/GetMeTool.php\n create mode 100644 database/migrations/2026_05_13_124153_create_mcp_feature_flag.php\n create mode 100644 tests/Feature/Mcp/GetMeToolFeatureTest.php\n create mode 100644 tests/Unit/Component/ES/ChunkSizeTest.php\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20613-allow-owner-role-on-team-setup) $ git push\nEnumerating objects: 40, done.\nCounting objects: 100% (34/34), done.\nDelta compression using up to 8 threads\nCompressing objects: 100% (18/18), done.\nWriting objects: 100% (18/18), 1.58 KiB | 1.58 MiB/s, done.\nTotal 18 (delta 15), reused 0 (delta 0), pack-reused 0\nremote: Resolving deltas: 100% (15/15), completed with 13 local objects.\nTo github.com:jiminny/app.git\n 190239dfd4..ec1b261264 JY-20613-allow-owner-role-on-team-setup -> JY-20613-allow-owner-role-on-team-setup\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20613-allow-owner-role-on-team-setup) $ gbr\n* JY-20613-allow-owner-role-on-team-setup\n pipedrive-sdk-poc\n master\n JY-20903-update_activity-stage-on-opportunity-change\n JY-20904-fix-update-es-on-activity-command\n JY-20891-improve-sms-text-relays\n JY-20725-handle-HS-search-rate-limit\n JY-20818-move-AJ-reports-to-separated-datadog-metric\n JY-20773-fix-automated-reports-user-pilot-tracking\n JY-20157-AJ-report-not-send-notification\n JY-20508-notify-before-AJ-report-expiration\n JY-20372-ai-reports-promotion-pages\n JY-20352-sync-opportunities-without-a-local-owner-user-id-is-null\n JY-20738-debug-AJ-tracking-UP\n a\n JY-18909-automated-reports-ask-jiminny\n JY-20692-fix-integration-app-token-auth-response-change\n JY-20553-debug-crm-sync-delays\n JY-20698-fix-SF-activity-types-on-new-playbook\n JY-20543-AJ-report-tracking\n JY-20384-handle-auto-sync-with-no-access-to-event-type\n JY-20458-ask-jiminny-user-definitions\n JY-19666-fix-import-contacts-account-association\n JY-19666-HS-import-contacts-and-accounts-batch-job\n JY-20458-Ask-Jiminny-Reports\n JY-20200-batch-update-CRM-objects-Salesforce\n JY-19666-HS-webhooks-add-contact-and-company\n JY-20348-trigger-setup-DI-layout-on-team-creation\n JY-20326-refactor-info-message-in-command\n JY-20317-fix-auto-log-delay-issue-on-all-channels-disabled\n JY-20312-remove-on-update-change-last-synced-at-crm-configurations\n JY-20306-SF-skip-auto-sync-for-task-based-playbook\n JY-20192-remove-deleted-team-from-saved-search-filters\n JY-20197-import-opportunity-batch-job\n JY-20293-enable-status-field-for-pipedrive-deals\n JY-20191-remove-commands-interactive-prompts\n JY-20118-change-default-sync-strategy\n JY-20183-add-cache-on-auto-log-delay\n JY-20197-add-import-opportunity-batch-job\n 20118-hs-opportunity-make-webhook-strategy-default\n JY-20118-make-default-hs-opportunity-sync-strategy-webhook-based\n JY-20196-handle-opportunity-without-note\n JY-20118-improve-opportunity-import\n JY-20189-handle-activity-search-on-deleted-groups\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20613-allow-owner-role-on-team-setup) $ co JY-20725-handle-HS-search-rate-limit\nM\u0000\u0000\u0000\u0000\u0000\u0000\t.env.local\nM\u0000\u0000\u0000\u0000\u0000\u0000\tconfig/logging.php\nSwitched to branch 'JY-20725-handle-HS-search-rate-limit'\nYour branch is behind 'origin/JY-20725-handle-HS-search-rate-limit' by 439 commits, and can be fast-forwarded.\n (use \"git pull\" to update your local branch)\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20725-handle-HS-search-rate-limit) $ git pull\nUpdating 0f3e438941..bc6a3fce6b\nFast-forward\n .gitignore | 3 +-\n .windsurfrules | 168 ++---\n CLAUDE.md | 1 +\n app/Component/ActivityAnalytics/Service/CalculateTalkTimeOffsetsFromTranscription.php | 24 +-\n app/Component/AiActivityType/Services/AiActivityTypeEligibilityChecker.php | 28 +-\n app/Component/AiAutomation/Actions/PrepareUpdateDtoAction.php | 32 +-\n app/Component/AiAutomation/Services/CrmFillingEligibilityChecker.php | 47 ++\n app/Component/AiAutomation/TestCrmAiPromptService.php | 14 +\n app/Component/AiCallScoring/Services/AiCallScoringEligibilityChecker.php | 9 +\n app/Component/ES/ElasticSearchDocumentPartialUpdater.php | 13 +-\n app/Component/ES/ElasticSearchWorkerManager.php | 86 ---\n app/Component/ES/Processor/Actions/LoadDocumentsAction.php | 80 +--\n app/Component/ES/Processor/EntityQueryBuilder.php | 12 +-\n app/Component/ES/Processor/TargetEntitiesSelector.php | 2 +-\n app/Component/ES/Processor/Traits/SkipActivityTrait.php | 25 -\n app/Component/ES/Repositories/EsResetActivityRepository.php | 11 +-\n app/Component/ES/Worker/ActivityWorker.php | 73 --\n app/Component/ES/Worker/EntityWorker.php | 44 --\n app/Component/ES/Worker/WorkerAmount.php | 60 --\n app/Component/ES/Worker/WorkerInterface.php | 15 -\n app/Component/ElasticSearch/Contract/Searchable.php | 4 +\n app/Component/Encoding/Job/AnalyzeTrackChannelsJob.php | 20 +-\n app/Component/Encoding/Service/GenerateSpeechFromSilenceService.php | 85 ++-\n app/Component/FFMpeg/Services/GetSpeechIntervalsService.php | 18 +-\n app/Component/LanguageDetection/Services/FindSpeechTimeService.php | 22 +-\n app/Component/Nudge/Job/ProcessOrganisationImmediateNudgesJob.php | 218 +++++-\n app/Component/ParagraphBreaker/Services/TranscriptionParagraphsService.php | 4 +\n app/Component/ParticipantSpeech/Services/ParticipantSpeechesCreator.php | 33 +\n app/Component/ParticipantSpeech/Services/ParticipantSpeechesDeleter.php | 15 +\n app/Component/ParticipantSpeech/Services/ParticipantSpeechesProvider.php | 51 +-\n app/Component/ParticipantSpeech/Services/ParticipantSpeechesUploader.php | 36 +\n app/Component/ProphetAi/Exceptions/InsufficientTranscriptException.php | 11 +\n app/Component/Transcription/DTO/Http/Transcription/AssemblyAI/AssemblyAI/NoAssemblyIdException.php | 11 +\n app/Component/Transcription/DTO/Http/Transcription/AssemblyAI/AssemblyAI/SuccessfulResponse.php | 6 +\n app/Component/Transcription/DTO/Http/Transcription/TranscriptionIsNotCorrectFormatException.php | 11 +\n app/Component/Transcription/Diarization/Services/GetNormalizedParticipantSpeechesService.php | 23 +-\n app/Component/Transcription/Diarization/Source/MeetingBotSource.php | 16 +-\n app/Component/Transcription/TranscriptionProcessor/TranscriptionProcessor.php | 3 +\n app/Console/Commands/Activities/ActivityHardDeleteCommand.php | 4 +-\n app/Console/Commands/Activities/Copy.php | 2 +\n app/Console/Commands/Activities/SetupIntegration/TwilioSetS3RecordingCredentialsCommand.php | 119 ++++\n app/Console/Commands/Activities/UpdateActivityElasticSearchDocumentCommand.php | 10 +-\n app/Console/Commands/Crm/BackfillOpportunityUserFromAccountCommand.php | 126 ++++\n app/Console/Commands/Elasticsearch/AsyncUpdateEsActivities.php | 19 -\n app/Console/Commands/Elasticsearch/AsyncUpdateEsEntities.php | 50 +-\n app/Console/Commands/Elasticsearch/ResetAsyncElasticSearchCommand.php | 30 +-\n app/Console/Commands/GeckoExport/GeckoExportParticipantSpeechesCommand.php | 14 +-\n app/Console/Commands/IssueMcpTokenCommand.php | 84 +++\n app/Console/Commands/JiminnyDebugCommand.php | 7 +-\n app/Console/Commands/Tracks/CleanupActivityTracksCommand.php | 2 +-\n app/Console/Kernel.php | 6 +-\n app/Contracts/Services/Calendar/CalendarTrait.php | 80 ++-\n app/Events/AutomatedReports/AutomatedReportGenerated.php | 3 +\n app/Http/Controllers/API/AiCallScoring/AiScorecardController.php | 7 +-\n app/Http/Controllers/API/TeamAiAutomationController.php | 8 +\n app/Http/Controllers/CustomerApi/CustomerApiController.php | 4 +-\n app/Http/Controllers/Kiosk/ActivityController.php | 58 +-\n app/Http/Controllers/Settings/PlaybookController.php | 15 +-\n app/Http/Kernel.php | 23 +\n app/Http/Middleware/McpAuditMiddleware.php | 156 ++++\n app/Http/Middleware/McpTierMiddleware.php | 54 ++\n app/Http/Requests/API/V2/ZapierUploadActivityRequest.php | 28 +-\n app/Jobs/Activity/Import/ImportTwilioVideoSpeechesJob.php | 25 +-\n app/Jobs/Activity/Import/IsActivityReadyForProcessingJob.php | 10 +-\n app/Jobs/Calendar/SetupCalendarSync.php | 21 +-\n app/Jobs/ImportRemoteTrackJob.php | 96 ++-\n app/Jobs/Mailbox/EmailTextRelay.php | 15 +-\n app/Mcp/Contracts/McpCallRepositoryInterface.php | 30 +\n app/Mcp/DTO/ListCallsFilters.php | 29 +\n app/Mcp/Errors/McpError.php | 123 ++++\n app/Mcp/Repositories/McpActivityHydrator.php | 145 ++++\n app/Mcp/Repositories/McpCallRepository.php | 84 +++\n app/Mcp/Repositories/McpElasticCallRepository.php | 171 +++++\n app/Mcp/Servers/JiminnyServer.php | 38 +\n app/Mcp/Tools/ListCallsTool.php | 205 ++++++\n app/Models/Activity.php | 10 +-\n app/Models/Activity/Transcription.php | 17 +-\n app/Models/ElasticSearch/OpportunityElasticSearchTrait.php | 5 +\n app/Models/Participant.php | 1 +\n app/Providers/AppServiceProvider.php | 22 +\n app/Repositories/Crm/ContactRepository.php | 69 +-\n app/Repositories/ParticipantSpeechRepository.php | 13 +-\n app/Services/Activity/ParticipantsService.php | 19 +-\n app/Services/Activity/Twilio/S3RecordingCredentialsService.php | 82 +++\n app/Services/ActivityService.php | 21 +-\n app/Services/Calendar/CalendarActivityService.php | 46 ++\n app/Services/Calendar/Command/ImportParticipants.php | 1 +\n app/Services/Calendar/Command/MapActivityData.php | 106 +--\n app/Services/Calendar/GoogleCalendarService.php | 12 +-\n app/Services/Crm/Close/Processor/OpportunityProcessor.php | 2 +-\n app/Services/Crm/Close/Service.php | 22 +-\n app/Services/Crm/Copper/Service.php | 12 +-\n app/Services/Crm/Hubspot/Service.php | 154 +++-\n app/Services/Crm/Hubspot/ServiceTraits/OpportunitySyncTrait.php | 88 ++-\n app/Services/Crm/IntegrationApp/ServiceTraits/SyncCrmEntitiesTrait.php | 22 +-\n app/Services/Crm/Pipedrive/Service.php | 17 +-\n app/Services/Crm/Salesforce/Service.php | 42 +-\n app/Services/Mail/Office/EmailApiClient.php | 129 +---\n app/Services/RecallAI/Commands/ScheduleBotCommand.php | 39 +-\n app/Services/RecallAI/RecallAIService.php | 22 +-\n composer.json | 3 +-\n composer.lock | 87 ++-\n config/mcp.php | 23 +\n database/migrations/2026_04_30_120000_create_mcp_audit_log_table.php | 36 +\n docs/mcp/explorer/explorer.html | 697 ++++++++++++++++++\n docs/mcp/explorer/explorer.template.html | 697 ++++++++++++++++++\n docs/mcp/explorer/generate.js | 215 ++++++\n docs/mcp/explorer/tool-explorer-meta.json | 11 +\n docs/mcp/tools-list.json | 2536 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++\n docs/mcp/tools.md | 621 ++++++++++++++++\n front-end/package.json | 4 +-\n front-end/src/components/Settings/OrgSettings/AiAutomation/CrmFilling/TemplateFieldForm.vue | 28 +-\n front-end/src/components/Settings/OrgSettings/Playbooks/AddEditPlaybook.vue | 10 +\n front-end/src/components/playback/comments/ActivityComment.less | 10 +-\n front-end/src/components/shared/PromptTester/PromptTester.vue | 12 +-\n front-end/src/components/shared/__tests__/PromptTester.spec.js | 35 +\n front-end/src/components/shared/modals/EntityPickerModal/__tests__/useEntitiesCache.spec.ts | 37 +\n front-end/src/components/shared/modals/EntityPickerModal/useEntitiesCache.ts | 9 +\n front-end/yarn.lock | 16 +-\n phpstan-baseline.neon | 50 --\n routes/api.php | 11 +\n sonar-project.properties | 91 ++-\n tests/Feature/Component/Nudge/ProcessOrganisationImmediateNudgesJobTest.php | 534 ++++++++++++++\n tests/Feature/Jobs/ImportRemoteTrackJobTest.php | 283 +++++++-\n tests/Feature/Mcp/IssueMcpTokenCommandTest.php | 53 ++\n tests/Feature/Mcp/ListCallsToolElasticFeatureTest.php | 155 ++++\n tests/Feature/Mcp/ListCallsToolFeatureTest.php | 352 ++++++++++\n tests/Feature/Mcp/McpTestHelpersTrait.php | 77 ++\n tests/Feature/Services/Team/TeamDeleteHandlers/Retention/RetentionRepositoryHandlerTest.php | 1 +\n tests/Stubs/SentryStub.php | 18 +\n tests/Unit/Component/ActivityAnalytics/Service/CalculateTalkTimeOffsetFromTranscriptionTest.php | 28 +-\n tests/Unit/Component/AiActivityType/Services/AiActivityTypeEligibilityCheckerTest.php | 103 ++-\n tests/Unit/Component/AiAutomation/Actions/PrepareUpdateDtoActionTest.php | 91 +++\n tests/Unit/Component/AiAutomation/Services/CrmFillingEligibilityCheckerTest.php | 124 ++++\n tests/Unit/Component/AiAutomation/TestCrmAiPromptServiceTest.php | 67 +-\n tests/Unit/Component/AiCallScoring/Services/AiCallScoringEligibilityCheckerTest.php | 55 ++\n tests/Unit/Component/ES/ElasticSearchWorkerManagerTest.php | 135 ----\n tests/Unit/Component/ES/Processor/Actions/LoadDocumentsActionTest.php | 220 ++++++\n tests/Unit/Component/ES/Processor/EntityQueryBuilderTest.php | 21 +-\n tests/Unit/Component/ES/Processor/Traits/SkipActivityTraitTest.php | 51 --\n tests/Unit/Component/ES/Worker/ActivityWorkerTest.php | 174 -----\n tests/Unit/Component/ES/Worker/EntityWorkerTest.php | 97 ---\n tests/Unit/Component/ES/Worker/WorkerAmountTest.php | 116 ---\n tests/Unit/Component/Encoding/Job/AnalyzeTrackChannelsJobTest.php | 52 +-\n tests/Unit/Component/Encoding/Service/GenerateSpeechFromSilenceServiceTest.php | 171 ++---\n tests/Unit/Component/FFMpeg/Services/GetSpeechIntervalsTest.php | 36 +-\n tests/Unit/Component/LanguageDetection/Services/FindSpeechTimeServiceTest.php | 20 +-\n tests/Unit/Component/MobileSettings/MobileSettingsControllerTest.php | 5 +-\n tests/Unit/Component/ParticipantSpeech/Services/ParticipantSpeechesCreatorTest.php | 75 ++\n tests/Unit/Component/ParticipantSpeech/Services/ParticipantSpeechesDeleterTest.php | 63 ++\n tests/Unit/Component/ParticipantSpeech/Services/ParticipantSpeechesProviderTest.php | 134 ++++\n tests/Unit/Component/ParticipantSpeech/Services/ParticipantSpeechesUploaderTest.php | 57 ++\n tests/Unit/Component/Transcription/Diarization/Services/GetNormalizedParticipantSpeechesServiceTest.php | 51 +-\n tests/Unit/Component/Transcription/Diarization/Source/MeetingBotSourceTest.php | 29 +-\n tests/Unit/Contracts/Services/Calendar/CalendarTraitTest.php | 58 +-\n tests/Unit/Http/Controllers/Kiosk/ActivityControllerTest.php | 159 +++++\n tests/Unit/Jobs/Activity/Import/ImportTwilioVideoSpeechesJobTest.php | 22 +-\n tests/Unit/Jobs/Activity/Import/IsActivityReadyForProcessingJobTest.php | 26 +-\n tests/Unit/Jobs/Calendar/SetupCalendarSyncTest.php | 25 -\n tests/Unit/Services/Activity/ParticipantsServiceTest.php | 12 +-\n tests/Unit/Services/Activity/Twilio/S3RecordingCredentialsServiceTest.php | 180 +++++\n tests/Unit/Services/ActivityServiceTest.php | 132 ++++\n tests/Unit/Services/Calendar/CalendarActivityServiceTest.php | 150 +++-\n tests/Unit/Services/Calendar/Command/ImportParticipantsTest.php | 6 +-\n tests/Unit/Services/Calendar/Command/MapActivityDataTest.php | 78 +-\n tests/Unit/Services/Calendar/GoogleCalendarServiceTest.php | 116 +++\n tests/Unit/Services/Crm/Close/ServiceTest.php | 165 +++++\n tests/Unit/Services/Crm/Hubspot/ServiceTest.php | 272 ++++++-\n tests/Unit/Services/Crm/Hubspot/ServiceTraits/OpportunitySyncTest.php | 25 +-\n tests/Unit/Services/Crm/Hubspot/ServiceTraits/OpportunitySyncTraitMatchActivitiesTest.php | 3 +-\n tests/Unit/Services/Crm/IntegrationApp/ServiceTraits/SyncCrmEntitiesTraitOpportunitiesTest.php | 40 ++\n tests/Unit/Services/Crm/Pipedrive/ImportOpportunityMatchActivitiesTest.php | 2 +\n tests/Unit/Services/Crm/Salesforce/ServiceTest.php | 139 ++++\n tests/Unit/Services/Mail/Office/EmailApiClientTest.php | 195 ++---\n tests/Unit/Services/RecallAI/RecallAIServiceTest.php | 24 +-\n 175 files changed, 12562 insertions(+), 2162 deletions(-)\n create mode 120000 CLAUDE.md\n create mode 100644 app/Component/AiAutomation/Services/CrmFillingEligibilityChecker.php\n delete mode 100644 app/Component/ES/ElasticSearchWorkerManager.php\n delete mode 100644 app/Component/ES/Processor/Traits/SkipActivityTrait.php\n delete mode 100644 app/Component/ES/Worker/ActivityWorker.php\n delete mode 100644 app/Component/ES/Worker/EntityWorker.php\n delete mode 100644 app/Component/ES/Worker/WorkerAmount.php\n delete mode 100644 app/Component/ES/Worker/WorkerInterface.php\n create mode 100644 app/Component/ProphetAi/Exceptions/InsufficientTranscriptException.php\n create mode 100644 app/Component/Transcription/DTO/Http/Transcription/AssemblyAI/AssemblyAI/NoAssemblyIdException.php\n create mode 100644 app/Component/Transcription/DTO/Http/Transcription/TranscriptionIsNotCorrectFormatException.php\n create mode 100644 app/Console/Commands/Activities/SetupIntegration/TwilioSetS3RecordingCredentialsCommand.php\n create mode 100644 app/Console/Commands/Crm/BackfillOpportunityUserFromAccountCommand.php\n delete mode 100644 app/Console/Commands/Elasticsearch/AsyncUpdateEsActivities.php\n create mode 100644 app/Console/Commands/IssueMcpTokenCommand.php\n create mode 100644 app/Http/Middleware/McpAuditMiddleware.php\n create mode 100644 app/Http/Middleware/McpTierMiddleware.php\n create mode 100644 app/Mcp/Contracts/McpCallRepositoryInterface.php\n create mode 100644 app/Mcp/DTO/ListCallsFilters.php\n create mode 100644 app/Mcp/Errors/McpError.php\n create mode 100644 app/Mcp/Repositories/McpActivityHydrator.php\n create mode 100644 app/Mcp/Repositories/McpCallRepository.php\n create mode 100644 app/Mcp/Repositories/McpElasticCallRepository.php\n create mode 100644 app/Mcp/Servers/JiminnyServer.php\n create mode 100644 app/Mcp/Tools/ListCallsTool.php\n create mode 100644 app/Services/Activity/Twilio/S3RecordingCredentialsService.php\n create mode 100644 config/mcp.php\n create mode 100644 database/migrations/2026_04_30_120000_create_mcp_audit_log_table.php\n create mode 100644 docs/mcp/explorer/explorer.html\n create mode 100644 docs/mcp/explorer/explorer.template.html\n create mode 100644 docs/mcp/explorer/generate.js\n create mode 100644 docs/mcp/explorer/tool-explorer-meta.json\n create mode 100644 docs/mcp/tools-list.json\n create mode 100644 docs/mcp/tools.md\n create mode 100644 front-end/src/components/shared/modals/EntityPickerModal/__tests__/useEntitiesCache.spec.ts\n create mode 100644 tests/Feature/Component/Nudge/ProcessOrganisationImmediateNudgesJobTest.php\n create mode 100644 tests/Feature/Mcp/IssueMcpTokenCommandTest.php\n create mode 100644 tests/Feature/Mcp/ListCallsToolElasticFeatureTest.php\n create mode 100644 tests/Feature/Mcp/ListCallsToolFeatureTest.php\n create mode 100644 tests/Feature/Mcp/McpTestHelpersTrait.php\n create mode 100644 tests/Stubs/SentryStub.php\n create mode 100644 tests/Unit/Component/AiAutomation/Services/CrmFillingEligibilityCheckerTest.php\n delete mode 100644 tests/Unit/Component/ES/ElasticSearchWorkerManagerTest.php\n create mode 100644 tests/Unit/Component/ES/Processor/Actions/LoadDocumentsActionTest.php\n delete mode 100644 tests/Unit/Component/ES/Processor/Traits/SkipActivityTraitTest.php\n delete mode 100644 tests/Unit/Component/ES/Worker/ActivityWorkerTest.php\n delete mode 100644 tests/Unit/Component/ES/Worker/EntityWorkerTest.php\n delete mode 100644 tests/Unit/Component/ES/Worker/WorkerAmountTest.php\n create mode 100644 tests/Unit/Component/ParticipantSpeech/Services/ParticipantSpeechesCreatorTest.php\n create mode 100644 tests/Unit/Http/Controllers/Kiosk/ActivityControllerTest.php\n create mode 100644 tests/Unit/Services/Activity/Twilio/S3RecordingCredentialsServiceTest.php\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20725-handle-HS-search-rate-limit) $ git status\nOn branch master\nYour branch is behind 'origin/master' by 114 commits, and can be fast-forwarded.\n (use \"git pull\" to update your local branch)\n\nChanges not staged for commit:\n (use \"git add <file>...\" to update what will be committed)\n (use \"git restore <file>...\" to discard changes in working directory)\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tmodified: .env.local\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tmodified: app/Component/SCIM/Constants.php\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tmodified: app/Component/SCIM/ScimProvisioning.php\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tmodified: app/Component/Twilio/Conference/ConferenceManager/SoftPhoneManager.php\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tmodified: app/Console/Commands/JiminnyDebugCommand.php\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tmodified: app/DTO/SCIM/AAD/Request/CoreUserRequest.php\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tmodified: app/DTO/SCIM/AAD/Response/CoreUser.php\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tmodified: app/Services/Telephony/TextMessagingService.php\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tmodified: config/logging.php\n\nUntracked files:\n (use \"git add <file>...\" to include in what will be committed)\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\t.env.nikilocal\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\t.env.other\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tWEBHOOK_FILTERING_IMPLEMENTATION.md\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tapp/Component/SCIM/Mutators/Attributes/User/RoleAttr.php\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tapp/Console/Commands/Crm/Hubspot/SimulateWebhooksCommand.php\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tapp/Console/Commands/Reports/CreateMockAskJiminnyReportResultCommand.php\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tapp/Rules/ListenerRoleCannotHaveAdminOrManagerPermissionRule.php\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tids.txt\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tpublic/favicon.ico\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\traw_sql_query.sql\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\ttests/Unit/Component/SCIM/Mutators/Attributes/User/RoleAttrTest.php\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\ttests/Unit/Policies/CanAccessAiReportsTest.php\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\ttests/Unit/Rules/ListenerRoleCannotHaveAdminOrManagerPermissionRuleTest.php\n\nno changes added to commit (use \"git add\" and/or \"git commit -a\")\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (master) $ git pull\nremote: Enumerating objects: 306, done.\nremote: Counting objects: 100% (299/299), done.\nremote: Compressing objects: 100% (183/183), done.\nremote: Total 306 (delta 213), reused 171 (delta 116), pack-reused 7 (from 1)\nReceiving objects: 100% (306/306), 80.12 KiB | 1000.00 KiB/s, done.\nResolving deltas: 100% (213/213), completed with 53 local objects.\nFrom github.com:jiminny/app\n 90bca4e4b2..5604af40cf master -> origin/master\n 4e7078fd8b..0b8343d179 JY-18091-upgrade-to-php-8-5 -> origin/JY-18091-upgrade-to-php-8-5\n 098eeaa087..d5a447e492 JY-20613-allow-owner-role-on-team-setup -> origin/JY-20613-allow-owner-role-on-team-setup\n c3a76ace91..af65249d0f JY-20749-user-can-view-recorded-meetings -> origin/JY-20749-user-can-view-recorded-meetings\n d94a285ae7..7ce96cb5fe JY-20808-low-priority-indexing-queue -> origin/JY-20808-low-priority-indexing-queue\n * [new branch] JY-20842-remove-partial-updater -> origin/JY-20842-remove-partial-updater\n * [new branch] JY-20920-fix-participant-flip -> origin/JY-20920-fix-participant-flip\n * [new branch] secfix/npm-20260519 -> origin/secfix/npm-20260519\nUpdating cb4ebf0c36..5604af40cf\nFast-forward\n app/Component/ES/ChunkSize.php | 54 +++++++++++++++++++\n app/Component/ES/Processor/DTOs/SelectionList.php | 4 +-\n app/Component/ES/Processor/TargetEntitiesSelector.php | 19 ++++---\n app/Component/MeetingBot/Service/ParticipantMatcher.php | 46 ++++++++++++----\n app/Exceptions/RateLimitException.php | 19 ++++++-\n app/Http/Middleware/McpTierMiddleware.php | 27 ++--------\n app/Jobs/Crm/MatchActivityCrmData.php | 47 ++++++++++++----\n app/Jobs/Middleware/HandleHubspotRateLimit.php | 42 +++++++++++++++\n app/Mcp/Servers/JiminnyServer.php | 2 +\n app/Mcp/Tools/GetMeTool.php | 157 +++++++++++++++++++++++++++++++++++++++++++++++++++++\n app/Models/Feature/FeatureEnum.php | 1 +\n app/Services/Activity/HubSpot/ProviderResolver.php | 4 +-\n app/Services/Activity/HubSpot/ProviderResolverInterface.php | 2 +-\n app/Services/Activity/HubSpot/Providers/Provider.php | 2 +-\n app/Services/Activity/HubSpot/Providers/ProviderKixie.php | 2 +-\n app/Services/Activity/HubSpot/Providers/ProviderOrum.php | 2 +-\n app/Services/Activity/HubSpot/Providers/ProviderTwilio.php | 2 +-\n app/Services/Activity/HubSpot/Providers/ProviderTwilioFlex.php | 5 +-\n app/Services/Activity/HubSpot/Service.php | 97 +++++++++++++++++++++++++++------\n app/Services/Crm/Hubspot/Client.php | 132 +++++++++++++++++++++++++++++++++++++++++++++\n app/Services/Crm/Hubspot/HubspotClientInterface.php | 15 ++++++\n app/Services/Crm/Hubspot/Pagination/HubspotPaginationService.php | 21 ++++----\n app/Services/Crm/Hubspot/Pagination/PaginationState.php | 2 +-\n database/migrations/2026_05_13_124153_create_mcp_feature_flag.php | 25 +++++++++\n tests/Feature/Mcp/GetMeToolFeatureTest.php | 140 +++++++++++++++++++++++++++++++++++++++++++++++\n tests/Feature/Mcp/ListCallsToolFeatureTest.php | 2 +-\n tests/Feature/Mcp/McpTestHelpersTrait.php | 19 ++++++-\n tests/Unit/Component/ES/ChunkSizeTest.php | 50 +++++++++++++++++\n tests/Unit/Component/ES/Processor/DTOs/SelectionListTest.php | 27 +++++++---\n tests/Unit/Component/ES/Processor/TargetEntitiesSelectorTest.php | 39 ++++++++------\n tests/Unit/Component/MeetingBot/Service/ParticipantMatcherTest.php | 68 ++++++++++++++++++++++-\n tests/Unit/Exceptions/RateLimitExceptionTest.php | 56 +++++++++++++++++++\n tests/Unit/Jobs/Crm/MatchActivityCrmDataTest.php | 8 +--\n tests/Unit/Jobs/Middleware/HandleHubspotRateLimitTest.php | 151 +++++++++++++++++++++++++++++++++++++++++++++++++++\n tests/Unit/Services/Activity/HubSpot/ServiceTest.php | 109 +++++++++++++++++++++++++++++++++++++\n tests/Unit/Services/Crm/Hubspot/ClientTest.php | 250 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++\n tests/Unit/Services/Crm/Hubspot/Pagination/HubspotPaginationServiceTest.php | 283 +++++++++++++++++++++---------------------------------------------------------------------------\n 37 files changed, 1587 insertions(+), 344 deletions(-)\n create mode 100644 app/Component/ES/ChunkSize.php\n create mode 100644 app/Jobs/Middleware/HandleHubspotRateLimit.php\n create mode 100644 app/Mcp/Tools/GetMeTool.php\n create mode 100644 database/migrations/2026_05_13_124153_create_mcp_feature_flag.php\n create mode 100644 tests/Feature/Mcp/GetMeToolFeatureTest.php\n create mode 100644 tests/Unit/Component/ES/ChunkSizeTest.php\n create mode 100644 tests/Unit/Exceptions/RateLimitExceptionTest.php\n create mode 100644 tests/Unit/Jobs/Middleware/HandleHubspotRateLimitTest.php\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (master) $ git pull\nAlready up to date.\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (master) $ co -b JY-20676-delete-report-related-objects\nSwitched to a new branch 'JY-20676-delete-report-related-objects'\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20676-delete-report-related-objects) $ csfix\ndocker exec -it docker_lamp_1 ./vendor/bin/php-cs-fixer fix --config=.php-cs-fixer.dist.php -v --using-cache=no --diff \nPHP CS Fixer 3.87.1 Alexander by Fabien Potencier, Dariusz Ruminski and contributors.\nPHP runtime: 8.3.30\nRunning analysis on 7 cores with 10 files per process.\nParallel runner is an experimental feature and may be unstable, use it at your own risk. Feedback highly appreciated!\nLoaded config default from \".php-cs-fixer.dist.php\".\n 5690/5690 [▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓] 100%\n\n 1) app/Console/Commands/JiminnyDebugCommand.php (statement_indentation, blank_line_before_statement)\n ---------- begin diff ----------\n--- /home/jiminny/app/Console/Commands/JiminnyDebugCommand.php\n+++ /home/jiminny/app/Console/Commands/JiminnyDebugCommand.php\n@@ -23,6 +23,7 @@\n \n if ($action === 'redis-set') {\n $this->testRedisSet();\n+\n return;\n }\n \n@@ -45,7 +46,7 @@\n $ttl = 60;\n \n try {\n-// $result = Redis::set($testKey, $testValue, 'EX', $ttl, 'NX');\n+ // $result = Redis::set($testKey, $testValue, 'EX', $ttl, 'NX');\n $result = Redis::set($testKey, $testValue, ['nx', 'ex' => $ttl]);\n \n if ($result) {\n\n ----------- end diff -----------\n\n\nFixed 1 of 5690 files in 50.673 seconds, 67.00 MB memory used\n\nWhat's next:\n Try Docker Debug for seamless, persistent debugging tools in any container or image → docker debug docker_lamp_1\n Learn more at https://docs.docker.com/go/debug-cli/\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20676-delete-report-related-objects) $ ;xd\ndocker exec -it docker_lamp_1 bash -c \"mv /usr/local/etc/php/conf.d/xdebug.ini ~/xdebug.ini\"\n\nWhat's next:\n Try Docker Debug for seamless, persistent debugging tools in any container or image → docker debug docker_lamp_1\n Learn more at https://docs.docker.com/go/debug-cli/\ndocker exec -it docker_lamp_1 supervisorctl restart all\njiminny-worker-processing-2:jiminny-worker-processing-2_00: stopped\njiminny-worker-processing-3:jiminny-worker-processing-3_00: stopped\njiminny-worker-processing-4:jiminny-worker-processing-4_00: stopped\njiminny-worker-processing-5:jiminny-worker-processing-5_00: stopped\njiminny-worker-processing-delayed:jiminny-worker-processing-delayed_00: stopped\nworker-analytics:worker-analytics_00: stopped\nworker-crm-update:worker-crm-update_00: stopped\nworker-download:worker-download_00: stopped\nworker-nudges:worker-nudges_00: stopped\nworker-calendar:worker-calendar_00: stopped\nworker-audio:worker-audio_00: stopped\njiminny-worker-processing-1:jiminny-worker-processing-1_00: stopped\nworker:worker_00: stopped\nworker-conferences:worker-conferences_00: stopped\nworker-crm-sync:worker-crm-sync_00: stopped\nworker-emails:worker-emails_00: stopped\nworker-es-update:worker-es-update_00: stopped\nartisan-schedule:artisan-schedule_00: stopped\nartisan-schedule:artisan-schedule_00: started\njiminny-worker-processing-1:jiminny-worker-processing-1_00: started\njiminny-worker-processing-2:jiminny-worker-processing-2_00: started\njiminny-worker-processing-3:jiminny-worker-processing-3_00: started\njiminny-worker-processing-4:jiminny-worker-processing-4_00: started\njiminny-worker-processing-5:jiminny-worker-processing-5_00: started\njiminny-worker-processing-delayed:jiminny-worker-processing-delayed_00: started\nworker:worker_00: started\nworker-analytics:worker-analytics_00: started\nworker-audio:worker-audio_00: started\nworker-calendar:worker-calendar_00: started\nworker-conferences:worker-conferences_00: started\nworker-crm-sync:worker-crm-sync_00: started\nworker-crm-update:worker-crm-update_00: started\nworker-download:worker-download_00: started\nworker-emails:worker-emails_00: started\nworker-es-update:worker-es-update_00: started\nworker-nudges:worker-nudges_00: started\n\nWhat's next:\n Try Docker Debug for seamless, persistent debugging tools in any container or image → docker debug docker_lamp_1\n Learn more at https://docs.docker.com/go/debug-cli/\ndocker exec -it docker_lamp_1 php -v\nPHP 8.3.30 (cli) (built: Mar 16 2026 22:32:32) (NTS)\nCopyright (c) The PHP Group\nZend Engine v4.3.30, Copyright (c) Zend Technologies\n with Zend OPcache v8.3.30, Copyright (c), by Zend Technologies\n\nWhat's next:\n Try Docker Debug for seamless, persistent debugging tools in any container or image → docker debug docker_lamp_1\n Learn more at https://docs.docker.com/go/debug-cli/\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20676-delete-report-related-objects) $ git status\nOn branch JY-20676-delete-report-related-objects\nChanges not staged for commit:\n (use \"git add <file>...\" to update what will be committed)\n (use \"git restore <file>...\" to discard changes in working directory)\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tmodified: .env.local\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tmodified: app/Console/Commands/JiminnyDebugCommand.php\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tmodified: config/logging.php\n\nUntracked files:\n (use \"git add <file>...\" to include in what will be committed)\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\t.env.nikilocal\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\t.env.other\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tWEBHOOK_FILTERING_IMPLEMENTATION.md\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tapp/Console/Commands/Crm/Hubspot/SimulateWebhooksCommand.php\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tapp/Console/Commands/Reports/CreateMockAskJiminnyReportResultCommand.php\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tids.txt\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tpublic/favicon.ico\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\traw_sql_query.sql\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\ttests/Unit/Policies/CanAccessAiReportsTest.php\n\nno changes added to commit (use \"git add\" and/or \"git commit -a\")\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20676-delete-report-related-objects) $ git push -u origin JY-20676-delete-report-related-objects\nEnumerating objects: 45, done.\nCounting objects: 100% (45/45), done.\nDelta compression using up to 8 threads\nCompressing objects: 100% (24/24), done.\nWriting objects: 100% (24/24), 3.62 KiB | 3.62 MiB/s, done.\nTotal 24 (delta 19), reused 0 (delta 0), pack-reused 0\nremote: Resolving deltas: 100% (19/19), completed with 19 local objects.\nremote: \nremote: Create a pull request for 'JY-20676-delete-report-related-objects' on GitHub by visiting:\nremote: https://github.com/jiminny/app/pull/new/JY-20676-delete-report-related-objects\nremote: \nTo github.com:jiminny/app.git\n * [new branch] JY-20676-delete-report-related-objects -> JY-20676-delete-report-related-objects\nbranch 'JY-20676-delete-report-related-objects' set up to track 'origin/JY-20676-delete-report-related-objects'.\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20676-delete-report-related-objects) $ csfix\ndocker exec -it docker_lamp_1 ./vendor/bin/php-cs-fixer fix --config=.php-cs-fixer.dist.php -v --using-cache=no --diff \nPHP CS Fixer 3.87.1 Alexander by Fabien Potencier, Dariusz Ruminski and contributors.\nPHP runtime: 8.3.30\nRunning analysis on 7 cores with 10 files per process.\nParallel runner is an experimental feature and may be unstable, use it at your own risk. Feedback highly appreciated!\nLoaded config default from \".php-cs-fixer.dist.php\".\n 5690/5690 [▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓] 100%\n\n 1) app/Http/Controllers/API/V2/AskJiminnyReportsController.php (blank_line_before_statement)\n ---------- begin diff ----------\n--- /home/jiminny/app/Http/Controllers/API/V2/AskJiminnyReportsController.php\n+++ /home/jiminny/app/Http/Controllers/API/V2/AskJiminnyReportsController.php\n@@ -140,6 +140,7 @@\n if ($enabled && $report->isAskJiminnyReport() && ! $report->canExecute()) {\n $error = 'This report is missing a saved search or prompt. ' .\n 'Edit the report to complete the setup before enabling it.';\n+\n return new JsonResponse(\n ['error' => $error],\n Response::HTTP_UNPROCESSABLE_ENTITY\n\n ----------- end diff -----------\n\n\nFixed 1 of 5690 files in 71.757 seconds, 60.00 MB memory used\n\nWhat's next:\n Try Docker Debug for seamless, persistent debugging tools in any container or image → docker debug docker_lamp_1\n Learn more at https://docs.docker.com/go/debug-cli/\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20676-delete-report-related-objects) $ git pull\nremote: Enumerating objects: 158, done.\nremote: Counting objects: 100% (103/103), done.\nremote: Compressing objects: 100% (37/37), done.\nremote: Total 158 (delta 80), reused 74 (delta 66), pack-reused 55 (from 3)\nReceiving objects: 100% (158/158), 80.59 KiB | 982.00 KiB/s, done.\nResolving deltas: 100% (85/85), completed with 45 local objects.\nFrom github.com:jiminny/app\n 02a33811ee..c6ce5e2440 JY-20676-delete-report-related-objects -> origin/JY-20676-delete-report-related-objects\n 7ce96cb5fe..6c59f04358 JY-20808-low-priority-indexing-queue -> origin/JY-20808-low-priority-indexing-queue\n 3906a9238a..2b5e6ea62b JY-20835-mcp-enable-users-to-get-a-list-of-deals-and-their-details -> origin/JY-20835-mcp-enable-users-to-get-a-list-of-deals-and-their-details\n 5604af40cf..ea3519f0e2 master -> origin/master\n * [new branch] switch-eu-assembly -> origin/switch-eu-assembly\nUpdating 02a33811ee..c6ce5e2440\nFast-forward\n app/Component/ES/ElasticSearchDocumentPartialUpdater.php | 48 ---\n app/Component/ParticipantSpeech/Services/ParticipantAttributionService.php | 4 +-\n app/Component/Settings/AutoScoring/Services/UpdateAutoScoreService.php | 20 +-\n app/Component/Transcription/Service/StorageService.php | 8 +-\n front-end/package.json | 2 +-\n front-end/src/components/DealInsights/Modals/AskAnythingModal.vue | 23 ++\n front-end/src/components/shared/AskAnything/AskAnythingPromptFormItem.vue | 2 +\n front-end/src/components/shared/AskAnything/AskAnythingSettingsDrawer.vue | 23 +-\n front-end/src/components/shared/AskAnything/__mocks__/AskAnythingSettingsDrawer.mocks.js | 1 +\n front-end/src/components/shared/AskAnything/__tests__/AskAnythingSettingsDrawer.spec.js | 135 ++++---\n front-end/src/components/shared/AskAnything/__tests__/__snapshots__/AskAnythingSettingsDrawer.spec.js.html | 1235 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++\n front-end/src/components/shared/AskAnything/__tests__/__snapshots__/AskAnythingSettingsDrawer.spec.js.snap | 1382 ----------------------------------------------------------------\n front-end/src/components/shared/AskAnything/prompts.js | 1 +\n front-end/src/components/shared/AskAnything/useAskAnything.js | 1 +\n front-end/yarn.lock | 8 +-\n tests/Unit/Component/ES/ElasticSearchDocumentPartialUpdaterTest.php | 42 --\n tests/Unit/Component/Settings/AutoScoring/Services/UpdateAutoScoreServiceTest.php | 86 ++--\n tests/Unit/Component/Transcription/Service/StorageServiceTest.php | 29 +-\n 18 files changed, 1448 insertions(+), 1602 deletions(-)\n delete mode 100644 app/Component/ES/ElasticSearchDocumentPartialUpdater.php\n create mode 100644 front-end/src/components/shared/AskAnything/__tests__/__snapshots__/AskAnythingSettingsDrawer.spec.js.html\n delete mode 100644 front-end/src/components/shared/AskAnything/__tests__/__snapshots__/AskAnythingSettingsDrawer.spec.js.snap\n delete mode 100644 tests/Unit/Component/ES/ElasticSearchDocumentPartialUpdaterTest.php\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20676-delete-report-related-objects) $ csfix\ndocker exec -it docker_lamp_1 ./vendor/bin/php-cs-fixer fix --config=.php-cs-fixer.dist.php -v --using-cache=no --diff \nPHP CS Fixer 3.87.1 Alexander by Fabien Potencier, Dariusz Ruminski and contributors.\nPHP runtime: 8.3.30\nRunning analysis on 7 cores with 10 files per process.\nParallel runner is an experimental feature and may be unstable, use it at your own risk. Feedback highly appreciated!\nLoaded config default from \".php-cs-fixer.dist.php\".\n 5071/5688 [▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓░░░░] 89%","depth":4,"on_screen":true,"value":"Last login: Mon May 18 09:17:28 on ttys007\n\nPoetry could not find a pyproject.toml file in /Users/lukas/jiminny/app or its parents\n\nPoetry could not find a pyproject.toml file in /Users/lukas/jiminny/app or its parents\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (pipedrive-sdk-poc) $ co master\nerror: Your local changes to the following files would be overwritten by checkout:\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tPIPEDRIVE_V2_MIGRATION_TICKETS.md\nPlease commit your changes or stash them before you switch branches.\nAborting\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (pipedrive-sdk-poc) $ git pull\nremote: Enumerating objects: 1047, done.\nremote: Counting objects: 100% (832/832), done.\nremote: Compressing objects: 100% (298/298), done.\nremote: Total 1047 (delta 634), reused 596 (delta 534), pack-reused 215 (from 3)\nReceiving objects: 100% (1047/1047), 353.16 KiB | 1.56 MiB/s, done.\nResolving deltas: 100% (687/687), completed with 107 local objects.\nFrom github.com:jiminny/app\n 907c54896c..34656c53ed pipedrive-sdk-poc -> origin/pipedrive-sdk-poc\n 03325ec50f..4e7078fd8b JY-18091-upgrade-to-php-8-5 -> origin/JY-18091-upgrade-to-php-8-5\n e7d231e163..bc6a3fce6b JY-20725-handle-HS-search-rate-limit -> origin/JY-20725-handle-HS-search-rate-limit\n * [new branch] JY-20749-user-can-view-recorded-meetings -> origin/JY-20749-user-can-view-recorded-meetings\n 98ca281a04..e0351be069 JY-20808-low-priority-indexing-queue -> origin/JY-20808-low-priority-indexing-queue\n 569abb5149..3906a9238a JY-20835-mcp-enable-users-to-get-a-list-of-deals-and-their-details -> origin/JY-20835-mcp-enable-users-to-get-a-list-of-deals-and-their-details\n ad6c2a86e8..50eb6afba9 JY-20846-mcp-enable-the-ai-to-know-details-about-the-user -> origin/JY-20846-mcp-enable-the-ai-to-know-details-about-the-user\n * [new branch] JY-20893-chunk-control-per-update-target -> origin/JY-20893-chunk-control-per-update-target\n 31c62924a5..cb4ebf0c36 master -> origin/master\nUpdating 907c54896c..34656c53ed\nFast-forward\n PIPEDRIVE_V2_MIGRATION_TICKETS.md | 52 ++++++++++++++++++++++++++++++++++++++++++++++++++++\n 1 file changed, 52 insertions(+)\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (pipedrive-sdk-poc) $ co master\nM\u0000\u0000\u0000\u0000\u0000\u0000\t.env.local\nM\u0000\u0000\u0000\u0000\u0000\u0000\tconfig/logging.php\nSwitched to branch 'master'\nYour branch is behind 'origin/master' by 31 commits, and can be fast-forwarded.\n (use \"git pull\" to update your local branch)\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (master) $ git pull\nUpdating 31c62924a5..cb4ebf0c36\nFast-forward\n app/Component/ES/Processor/Traits/SelectEntityListTrait.php | 20 ------\n app/Services/Calendar/CalendarActivityService.php | 46 +++++++++++++\n app/Services/Calendar/Command/MapActivityData.php | 106 +++-------------------------\n docs/mcp/explorer/explorer.html | 104 +++++++++++++++++++++++++---\n docs/mcp/explorer/explorer.template.html | 102 ++++++++++++++++++++++++---\n docs/mcp/tools-list.json | 373 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++-------\n docs/mcp/tools.md | 117 +++++++++++++++++++++++--------\n tests/Unit/Component/ES/AsyncUpdateElasticSearchTest.php | 16 +----\n tests/Unit/Component/ES/Listeners/UpdateMultipleTargetsListenerTest.php | 10 ---\n tests/Unit/Component/ES/Listeners/UpdateSingleTargetListenerTest.php | 6 --\n tests/Unit/Component/ES/Processor/TargetEntitiesSelectorTest.php | 9 ---\n tests/Unit/Component/ES/Processor/Traits/SelectEntityListTraitTest.php | 15 ++--\n tests/Unit/Component/ES/UpdateProcessManagerTest.php | 2 -\n tests/Unit/Services/Calendar/CalendarActivityServiceTest.php | 150 ++++++++++++++++++++++++++++++++++++++--\n tests/Unit/Services/Calendar/Command/MapActivityDataTest.php | 78 ++-------------------\n 15 files changed, 832 insertions(+), 322 deletions(-)\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (master) $ co -b JY-20613-allow-owner-role-on-team-setup\nSwitched to a new branch 'JY-20613-allow-owner-role-on-team-setup'\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20613-allow-owner-role-on-team-setup) $ csfix\ndocker exec -it docker_lamp_1 ./vendor/bin/php-cs-fixer fix --config=.php-cs-fixer.dist.php -v --using-cache=no --diff \nPHP CS Fixer 3.87.1 Alexander by Fabien Potencier, Dariusz Ruminski and contributors.\nPHP runtime: 8.3.30\nRunning analysis on 7 cores with 10 files per process.\nParallel runner is an experimental feature and may be unstable, use it at your own risk. Feedback highly appreciated!\nLoaded config default from \".php-cs-fixer.dist.php\".\n 5682/5682 [▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓] 100%\n\n\nFixed 0 of 5682 files in 56.978 seconds, 67.00 MB memory used\n\nWhat's next:\n Try Docker Debug for seamless, persistent debugging tools in any container or image → docker debug docker_lamp_1\n Learn more at https://docs.docker.com/go/debug-cli/\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20613-allow-owner-role-on-team-setup) $ ;xd\ndocker exec -it docker_lamp_1 bash -c \"mv /usr/local/etc/php/conf.d/xdebug.ini ~/xdebug.ini\"\n\nWhat's next:\n Try Docker Debug for seamless, persistent debugging tools in any container or image → docker debug docker_lamp_1\n Learn more at https://docs.docker.com/go/debug-cli/\ndocker exec -it docker_lamp_1 supervisorctl restart all\njiminny-worker-processing-2:jiminny-worker-processing-2_00: stopped\njiminny-worker-processing-3:jiminny-worker-processing-3_00: stopped\njiminny-worker-processing-4:jiminny-worker-processing-4_00: stopped\njiminny-worker-processing-5:jiminny-worker-processing-5_00: stopped\njiminny-worker-processing-delayed:jiminny-worker-processing-delayed_00: stopped\nworker-analytics:worker-analytics_00: stopped\nworker-crm-update:worker-crm-update_00: stopped\nworker-download:worker-download_00: stopped\nworker-nudges:worker-nudges_00: stopped\nartisan-schedule:artisan-schedule_00: stopped\nworker-emails:worker-emails_00: stopped\nworker-calendar:worker-calendar_00: stopped\nworker:worker_00: stopped\nworker-conferences:worker-conferences_00: stopped\nworker-crm-sync:worker-crm-sync_00: stopped\njiminny-worker-processing-1:jiminny-worker-processing-1_00: stopped\nworker-audio:worker-audio_00: stopped\nworker-es-update:worker-es-update_00: stopped\nartisan-schedule:artisan-schedule_00: started\njiminny-worker-processing-1:jiminny-worker-processing-1_00: started\njiminny-worker-processing-2:jiminny-worker-processing-2_00: started\njiminny-worker-processing-3:jiminny-worker-processing-3_00: started\njiminny-worker-processing-4:jiminny-worker-processing-4_00: started\njiminny-worker-processing-5:jiminny-worker-processing-5_00: started\njiminny-worker-processing-delayed:jiminny-worker-processing-delayed_00: started\nworker:worker_00: started\nworker-analytics:worker-analytics_00: started\nworker-audio:worker-audio_00: started\nworker-calendar:worker-calendar_00: started\nworker-conferences:worker-conferences_00: started\nworker-crm-sync:worker-crm-sync_00: started\nworker-crm-update:worker-crm-update_00: started\nworker-download:worker-download_00: started\nworker-emails:worker-emails_00: started\nworker-es-update:worker-es-update_00: started\nworker-nudges:worker-nudges_00: started\n\nWhat's next:\n Try Docker Debug for seamless, persistent debugging tools in any container or image → docker debug docker_lamp_1\n Learn more at https://docs.docker.com/go/debug-cli/\ndocker exec -it docker_lamp_1 php -v\nPHP 8.3.30 (cli) (built: Mar 16 2026 22:32:32) (NTS)\nCopyright (c) The PHP Group\nZend Engine v4.3.30, Copyright (c) Zend Technologies\n with Zend OPcache v8.3.30, Copyright (c), by Zend Technologies\n\nWhat's next:\n Try Docker Debug for seamless, persistent debugging tools in any container or image → docker debug docker_lamp_1\n Learn more at https://docs.docker.com/go/debug-cli/\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20613-allow-owner-role-on-team-setup) $ csfix\ndocker exec -it docker_lamp_1 ./vendor/bin/php-cs-fixer fix --config=.php-cs-fixer.dist.php -v --using-cache=no --diff \nPHP CS Fixer 3.87.1 Alexander by Fabien Potencier, Dariusz Ruminski and contributors.\nPHP runtime: 8.3.30\nRunning analysis on 7 cores with 10 files per process.\nParallel runner is an experimental feature and may be unstable, use it at your own risk. Feedback highly appreciated!\nLoaded config default from \".php-cs-fixer.dist.php\".\n 5682/5682 [▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓] 100%\n\n\nFixed 0 of 5682 files in 49.910 seconds, 60.00 MB memory used\n\nWhat's next:\n Try Docker Debug for seamless, persistent debugging tools in any container or image → docker debug docker_lamp_1\n Learn more at https://docs.docker.com/go/debug-cli/\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20613-allow-owner-role-on-team-setup) $ git status\nOn branch JY-20613-allow-owner-role-on-team-setup\nYour branch is ahead of 'origin/JY-20613-allow-owner-role-on-team-setup' by 1 commit.\n (use \"git push\" to publish your local commits)\n\nChanges not staged for commit:\n (use \"git add <file>...\" to update what will be committed)\n (use \"git restore <file>...\" to discard changes in working directory)\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tmodified: .env.local\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tmodified: config/logging.php\n\nUntracked files:\n (use \"git add <file>...\" to include in what will be committed)\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\t.env.nikilocal\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\t.env.other\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tWEBHOOK_FILTERING_IMPLEMENTATION.md\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tapp/Console/Commands/Crm/Hubspot/SimulateWebhooksCommand.php\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tapp/Console/Commands/Reports/CreateMockAskJiminnyReportResultCommand.php\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tids.txt\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tpublic/favicon.ico\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\traw_sql_query.sql\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\ttests/Unit/Policies/CanAccessAiReportsTest.php\n\nno changes added to commit (use \"git add\" and/or \"git commit -a\")\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20613-allow-owner-role-on-team-setup) $ git pull\nremote: Enumerating objects: 248, done.\nremote: Counting objects: 100% (128/128), done.\nremote: Compressing objects: 100% (23/23), done.\nremote: Total 59 (delta 43), reused 44 (delta 33), pack-reused 0 (from 0)\nUnpacking objects: 100% (59/59), 10.48 KiB | 228.00 KiB/s, done.\nFrom github.com:jiminny/app\n b7df560451..190239dfd4 JY-20613-allow-owner-role-on-team-setup -> origin/JY-20613-allow-owner-role-on-team-setup\n e0351be069..d94a285ae7 JY-20808-low-priority-indexing-queue -> origin/JY-20808-low-priority-indexing-queue\n * [new branch] JY-20920-fix-participant-matcher -> origin/JY-20920-fix-participant-matcher\n cb4ebf0c36..90bca4e4b2 master -> origin/master\nMerge made by the 'ort' strategy.\n app/Component/ES/ChunkSize.php | 54 +++++++++++++++++++++++++++\n app/Component/ES/Processor/DTOs/SelectionList.php | 4 +-\n app/Component/ES/Processor/TargetEntitiesSelector.php | 19 ++++++----\n app/Http/Middleware/McpTierMiddleware.php | 27 +++-----------\n app/Mcp/Servers/JiminnyServer.php | 2 +\n app/Mcp/Tools/GetMeTool.php | 157 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++\n app/Models/Feature/FeatureEnum.php | 1 +\n database/migrations/2026_05_13_124153_create_mcp_feature_flag.php | 25 +++++++++++++\n front-end/src/components/Settings/Kiosk/modals/EditTeamModal/EditTeamModal.vue | 52 ++++++++++++++++++--------\n front-end/src/components/Settings/Kiosk/modals/EditTeamModal/__tests__/EditTeamModal.spec.js | 14 +++++++\n tests/Feature/Mcp/GetMeToolFeatureTest.php | 140 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++\n tests/Feature/Mcp/ListCallsToolFeatureTest.php | 2 +-\n tests/Feature/Mcp/McpTestHelpersTrait.php | 19 +++++++++-\n tests/Unit/Component/ES/ChunkSizeTest.php | 50 +++++++++++++++++++++++++\n tests/Unit/Component/ES/Processor/DTOs/SelectionListTest.php | 27 ++++++++++----\n tests/Unit/Component/ES/Processor/TargetEntitiesSelectorTest.php | 39 +++++++++++---------\n 16 files changed, 557 insertions(+), 75 deletions(-)\n create mode 100644 app/Component/ES/ChunkSize.php\n create mode 100644 app/Mcp/Tools/GetMeTool.php\n create mode 100644 database/migrations/2026_05_13_124153_create_mcp_feature_flag.php\n create mode 100644 tests/Feature/Mcp/GetMeToolFeatureTest.php\n create mode 100644 tests/Unit/Component/ES/ChunkSizeTest.php\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20613-allow-owner-role-on-team-setup) $ git push\nEnumerating objects: 40, done.\nCounting objects: 100% (34/34), done.\nDelta compression using up to 8 threads\nCompressing objects: 100% (18/18), done.\nWriting objects: 100% (18/18), 1.58 KiB | 1.58 MiB/s, done.\nTotal 18 (delta 15), reused 0 (delta 0), pack-reused 0\nremote: Resolving deltas: 100% (15/15), completed with 13 local objects.\nTo github.com:jiminny/app.git\n 190239dfd4..ec1b261264 JY-20613-allow-owner-role-on-team-setup -> JY-20613-allow-owner-role-on-team-setup\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20613-allow-owner-role-on-team-setup) $ gbr\n* JY-20613-allow-owner-role-on-team-setup\n pipedrive-sdk-poc\n master\n JY-20903-update_activity-stage-on-opportunity-change\n JY-20904-fix-update-es-on-activity-command\n JY-20891-improve-sms-text-relays\n JY-20725-handle-HS-search-rate-limit\n JY-20818-move-AJ-reports-to-separated-datadog-metric\n JY-20773-fix-automated-reports-user-pilot-tracking\n JY-20157-AJ-report-not-send-notification\n JY-20508-notify-before-AJ-report-expiration\n JY-20372-ai-reports-promotion-pages\n JY-20352-sync-opportunities-without-a-local-owner-user-id-is-null\n JY-20738-debug-AJ-tracking-UP\n a\n JY-18909-automated-reports-ask-jiminny\n JY-20692-fix-integration-app-token-auth-response-change\n JY-20553-debug-crm-sync-delays\n JY-20698-fix-SF-activity-types-on-new-playbook\n JY-20543-AJ-report-tracking\n JY-20384-handle-auto-sync-with-no-access-to-event-type\n JY-20458-ask-jiminny-user-definitions\n JY-19666-fix-import-contacts-account-association\n JY-19666-HS-import-contacts-and-accounts-batch-job\n JY-20458-Ask-Jiminny-Reports\n JY-20200-batch-update-CRM-objects-Salesforce\n JY-19666-HS-webhooks-add-contact-and-company\n JY-20348-trigger-setup-DI-layout-on-team-creation\n JY-20326-refactor-info-message-in-command\n JY-20317-fix-auto-log-delay-issue-on-all-channels-disabled\n JY-20312-remove-on-update-change-last-synced-at-crm-configurations\n JY-20306-SF-skip-auto-sync-for-task-based-playbook\n JY-20192-remove-deleted-team-from-saved-search-filters\n JY-20197-import-opportunity-batch-job\n JY-20293-enable-status-field-for-pipedrive-deals\n JY-20191-remove-commands-interactive-prompts\n JY-20118-change-default-sync-strategy\n JY-20183-add-cache-on-auto-log-delay\n JY-20197-add-import-opportunity-batch-job\n 20118-hs-opportunity-make-webhook-strategy-default\n JY-20118-make-default-hs-opportunity-sync-strategy-webhook-based\n JY-20196-handle-opportunity-without-note\n JY-20118-improve-opportunity-import\n JY-20189-handle-activity-search-on-deleted-groups\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20613-allow-owner-role-on-team-setup) $ co JY-20725-handle-HS-search-rate-limit\nM\u0000\u0000\u0000\u0000\u0000\u0000\t.env.local\nM\u0000\u0000\u0000\u0000\u0000\u0000\tconfig/logging.php\nSwitched to branch 'JY-20725-handle-HS-search-rate-limit'\nYour branch is behind 'origin/JY-20725-handle-HS-search-rate-limit' by 439 commits, and can be fast-forwarded.\n (use \"git pull\" to update your local branch)\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20725-handle-HS-search-rate-limit) $ git pull\nUpdating 0f3e438941..bc6a3fce6b\nFast-forward\n .gitignore | 3 +-\n .windsurfrules | 168 ++---\n CLAUDE.md | 1 +\n app/Component/ActivityAnalytics/Service/CalculateTalkTimeOffsetsFromTranscription.php | 24 +-\n app/Component/AiActivityType/Services/AiActivityTypeEligibilityChecker.php | 28 +-\n app/Component/AiAutomation/Actions/PrepareUpdateDtoAction.php | 32 +-\n app/Component/AiAutomation/Services/CrmFillingEligibilityChecker.php | 47 ++\n app/Component/AiAutomation/TestCrmAiPromptService.php | 14 +\n app/Component/AiCallScoring/Services/AiCallScoringEligibilityChecker.php | 9 +\n app/Component/ES/ElasticSearchDocumentPartialUpdater.php | 13 +-\n app/Component/ES/ElasticSearchWorkerManager.php | 86 ---\n app/Component/ES/Processor/Actions/LoadDocumentsAction.php | 80 +--\n app/Component/ES/Processor/EntityQueryBuilder.php | 12 +-\n app/Component/ES/Processor/TargetEntitiesSelector.php | 2 +-\n app/Component/ES/Processor/Traits/SkipActivityTrait.php | 25 -\n app/Component/ES/Repositories/EsResetActivityRepository.php | 11 +-\n app/Component/ES/Worker/ActivityWorker.php | 73 --\n app/Component/ES/Worker/EntityWorker.php | 44 --\n app/Component/ES/Worker/WorkerAmount.php | 60 --\n app/Component/ES/Worker/WorkerInterface.php | 15 -\n app/Component/ElasticSearch/Contract/Searchable.php | 4 +\n app/Component/Encoding/Job/AnalyzeTrackChannelsJob.php | 20 +-\n app/Component/Encoding/Service/GenerateSpeechFromSilenceService.php | 85 ++-\n app/Component/FFMpeg/Services/GetSpeechIntervalsService.php | 18 +-\n app/Component/LanguageDetection/Services/FindSpeechTimeService.php | 22 +-\n app/Component/Nudge/Job/ProcessOrganisationImmediateNudgesJob.php | 218 +++++-\n app/Component/ParagraphBreaker/Services/TranscriptionParagraphsService.php | 4 +\n app/Component/ParticipantSpeech/Services/ParticipantSpeechesCreator.php | 33 +\n app/Component/ParticipantSpeech/Services/ParticipantSpeechesDeleter.php | 15 +\n app/Component/ParticipantSpeech/Services/ParticipantSpeechesProvider.php | 51 +-\n app/Component/ParticipantSpeech/Services/ParticipantSpeechesUploader.php | 36 +\n app/Component/ProphetAi/Exceptions/InsufficientTranscriptException.php | 11 +\n app/Component/Transcription/DTO/Http/Transcription/AssemblyAI/AssemblyAI/NoAssemblyIdException.php | 11 +\n app/Component/Transcription/DTO/Http/Transcription/AssemblyAI/AssemblyAI/SuccessfulResponse.php | 6 +\n app/Component/Transcription/DTO/Http/Transcription/TranscriptionIsNotCorrectFormatException.php | 11 +\n app/Component/Transcription/Diarization/Services/GetNormalizedParticipantSpeechesService.php | 23 +-\n app/Component/Transcription/Diarization/Source/MeetingBotSource.php | 16 +-\n app/Component/Transcription/TranscriptionProcessor/TranscriptionProcessor.php | 3 +\n app/Console/Commands/Activities/ActivityHardDeleteCommand.php | 4 +-\n app/Console/Commands/Activities/Copy.php | 2 +\n app/Console/Commands/Activities/SetupIntegration/TwilioSetS3RecordingCredentialsCommand.php | 119 ++++\n app/Console/Commands/Activities/UpdateActivityElasticSearchDocumentCommand.php | 10 +-\n app/Console/Commands/Crm/BackfillOpportunityUserFromAccountCommand.php | 126 ++++\n app/Console/Commands/Elasticsearch/AsyncUpdateEsActivities.php | 19 -\n app/Console/Commands/Elasticsearch/AsyncUpdateEsEntities.php | 50 +-\n app/Console/Commands/Elasticsearch/ResetAsyncElasticSearchCommand.php | 30 +-\n app/Console/Commands/GeckoExport/GeckoExportParticipantSpeechesCommand.php | 14 +-\n app/Console/Commands/IssueMcpTokenCommand.php | 84 +++\n app/Console/Commands/JiminnyDebugCommand.php | 7 +-\n app/Console/Commands/Tracks/CleanupActivityTracksCommand.php | 2 +-\n app/Console/Kernel.php | 6 +-\n app/Contracts/Services/Calendar/CalendarTrait.php | 80 ++-\n app/Events/AutomatedReports/AutomatedReportGenerated.php | 3 +\n app/Http/Controllers/API/AiCallScoring/AiScorecardController.php | 7 +-\n app/Http/Controllers/API/TeamAiAutomationController.php | 8 +\n app/Http/Controllers/CustomerApi/CustomerApiController.php | 4 +-\n app/Http/Controllers/Kiosk/ActivityController.php | 58 +-\n app/Http/Controllers/Settings/PlaybookController.php | 15 +-\n app/Http/Kernel.php | 23 +\n app/Http/Middleware/McpAuditMiddleware.php | 156 ++++\n app/Http/Middleware/McpTierMiddleware.php | 54 ++\n app/Http/Requests/API/V2/ZapierUploadActivityRequest.php | 28 +-\n app/Jobs/Activity/Import/ImportTwilioVideoSpeechesJob.php | 25 +-\n app/Jobs/Activity/Import/IsActivityReadyForProcessingJob.php | 10 +-\n app/Jobs/Calendar/SetupCalendarSync.php | 21 +-\n app/Jobs/ImportRemoteTrackJob.php | 96 ++-\n app/Jobs/Mailbox/EmailTextRelay.php | 15 +-\n app/Mcp/Contracts/McpCallRepositoryInterface.php | 30 +\n app/Mcp/DTO/ListCallsFilters.php | 29 +\n app/Mcp/Errors/McpError.php | 123 ++++\n app/Mcp/Repositories/McpActivityHydrator.php | 145 ++++\n app/Mcp/Repositories/McpCallRepository.php | 84 +++\n app/Mcp/Repositories/McpElasticCallRepository.php | 171 +++++\n app/Mcp/Servers/JiminnyServer.php | 38 +\n app/Mcp/Tools/ListCallsTool.php | 205 ++++++\n app/Models/Activity.php | 10 +-\n app/Models/Activity/Transcription.php | 17 +-\n app/Models/ElasticSearch/OpportunityElasticSearchTrait.php | 5 +\n app/Models/Participant.php | 1 +\n app/Providers/AppServiceProvider.php | 22 +\n app/Repositories/Crm/ContactRepository.php | 69 +-\n app/Repositories/ParticipantSpeechRepository.php | 13 +-\n app/Services/Activity/ParticipantsService.php | 19 +-\n app/Services/Activity/Twilio/S3RecordingCredentialsService.php | 82 +++\n app/Services/ActivityService.php | 21 +-\n app/Services/Calendar/CalendarActivityService.php | 46 ++\n app/Services/Calendar/Command/ImportParticipants.php | 1 +\n app/Services/Calendar/Command/MapActivityData.php | 106 +--\n app/Services/Calendar/GoogleCalendarService.php | 12 +-\n app/Services/Crm/Close/Processor/OpportunityProcessor.php | 2 +-\n app/Services/Crm/Close/Service.php | 22 +-\n app/Services/Crm/Copper/Service.php | 12 +-\n app/Services/Crm/Hubspot/Service.php | 154 +++-\n app/Services/Crm/Hubspot/ServiceTraits/OpportunitySyncTrait.php | 88 ++-\n app/Services/Crm/IntegrationApp/ServiceTraits/SyncCrmEntitiesTrait.php | 22 +-\n app/Services/Crm/Pipedrive/Service.php | 17 +-\n app/Services/Crm/Salesforce/Service.php | 42 +-\n app/Services/Mail/Office/EmailApiClient.php | 129 +---\n app/Services/RecallAI/Commands/ScheduleBotCommand.php | 39 +-\n app/Services/RecallAI/RecallAIService.php | 22 +-\n composer.json | 3 +-\n composer.lock | 87 ++-\n config/mcp.php | 23 +\n database/migrations/2026_04_30_120000_create_mcp_audit_log_table.php | 36 +\n docs/mcp/explorer/explorer.html | 697 ++++++++++++++++++\n docs/mcp/explorer/explorer.template.html | 697 ++++++++++++++++++\n docs/mcp/explorer/generate.js | 215 ++++++\n docs/mcp/explorer/tool-explorer-meta.json | 11 +\n docs/mcp/tools-list.json | 2536 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++\n docs/mcp/tools.md | 621 ++++++++++++++++\n front-end/package.json | 4 +-\n front-end/src/components/Settings/OrgSettings/AiAutomation/CrmFilling/TemplateFieldForm.vue | 28 +-\n front-end/src/components/Settings/OrgSettings/Playbooks/AddEditPlaybook.vue | 10 +\n front-end/src/components/playback/comments/ActivityComment.less | 10 +-\n front-end/src/components/shared/PromptTester/PromptTester.vue | 12 +-\n front-end/src/components/shared/__tests__/PromptTester.spec.js | 35 +\n front-end/src/components/shared/modals/EntityPickerModal/__tests__/useEntitiesCache.spec.ts | 37 +\n front-end/src/components/shared/modals/EntityPickerModal/useEntitiesCache.ts | 9 +\n front-end/yarn.lock | 16 +-\n phpstan-baseline.neon | 50 --\n routes/api.php | 11 +\n sonar-project.properties | 91 ++-\n tests/Feature/Component/Nudge/ProcessOrganisationImmediateNudgesJobTest.php | 534 ++++++++++++++\n tests/Feature/Jobs/ImportRemoteTrackJobTest.php | 283 +++++++-\n tests/Feature/Mcp/IssueMcpTokenCommandTest.php | 53 ++\n tests/Feature/Mcp/ListCallsToolElasticFeatureTest.php | 155 ++++\n tests/Feature/Mcp/ListCallsToolFeatureTest.php | 352 ++++++++++\n tests/Feature/Mcp/McpTestHelpersTrait.php | 77 ++\n tests/Feature/Services/Team/TeamDeleteHandlers/Retention/RetentionRepositoryHandlerTest.php | 1 +\n tests/Stubs/SentryStub.php | 18 +\n tests/Unit/Component/ActivityAnalytics/Service/CalculateTalkTimeOffsetFromTranscriptionTest.php | 28 +-\n tests/Unit/Component/AiActivityType/Services/AiActivityTypeEligibilityCheckerTest.php | 103 ++-\n tests/Unit/Component/AiAutomation/Actions/PrepareUpdateDtoActionTest.php | 91 +++\n tests/Unit/Component/AiAutomation/Services/CrmFillingEligibilityCheckerTest.php | 124 ++++\n tests/Unit/Component/AiAutomation/TestCrmAiPromptServiceTest.php | 67 +-\n tests/Unit/Component/AiCallScoring/Services/AiCallScoringEligibilityCheckerTest.php | 55 ++\n tests/Unit/Component/ES/ElasticSearchWorkerManagerTest.php | 135 ----\n tests/Unit/Component/ES/Processor/Actions/LoadDocumentsActionTest.php | 220 ++++++\n tests/Unit/Component/ES/Processor/EntityQueryBuilderTest.php | 21 +-\n tests/Unit/Component/ES/Processor/Traits/SkipActivityTraitTest.php | 51 --\n tests/Unit/Component/ES/Worker/ActivityWorkerTest.php | 174 -----\n tests/Unit/Component/ES/Worker/EntityWorkerTest.php | 97 ---\n tests/Unit/Component/ES/Worker/WorkerAmountTest.php | 116 ---\n tests/Unit/Component/Encoding/Job/AnalyzeTrackChannelsJobTest.php | 52 +-\n tests/Unit/Component/Encoding/Service/GenerateSpeechFromSilenceServiceTest.php | 171 ++---\n tests/Unit/Component/FFMpeg/Services/GetSpeechIntervalsTest.php | 36 +-\n tests/Unit/Component/LanguageDetection/Services/FindSpeechTimeServiceTest.php | 20 +-\n tests/Unit/Component/MobileSettings/MobileSettingsControllerTest.php | 5 +-\n tests/Unit/Component/ParticipantSpeech/Services/ParticipantSpeechesCreatorTest.php | 75 ++\n tests/Unit/Component/ParticipantSpeech/Services/ParticipantSpeechesDeleterTest.php | 63 ++\n tests/Unit/Component/ParticipantSpeech/Services/ParticipantSpeechesProviderTest.php | 134 ++++\n tests/Unit/Component/ParticipantSpeech/Services/ParticipantSpeechesUploaderTest.php | 57 ++\n tests/Unit/Component/Transcription/Diarization/Services/GetNormalizedParticipantSpeechesServiceTest.php | 51 +-\n tests/Unit/Component/Transcription/Diarization/Source/MeetingBotSourceTest.php | 29 +-\n tests/Unit/Contracts/Services/Calendar/CalendarTraitTest.php | 58 +-\n tests/Unit/Http/Controllers/Kiosk/ActivityControllerTest.php | 159 +++++\n tests/Unit/Jobs/Activity/Import/ImportTwilioVideoSpeechesJobTest.php | 22 +-\n tests/Unit/Jobs/Activity/Import/IsActivityReadyForProcessingJobTest.php | 26 +-\n tests/Unit/Jobs/Calendar/SetupCalendarSyncTest.php | 25 -\n tests/Unit/Services/Activity/ParticipantsServiceTest.php | 12 +-\n tests/Unit/Services/Activity/Twilio/S3RecordingCredentialsServiceTest.php | 180 +++++\n tests/Unit/Services/ActivityServiceTest.php | 132 ++++\n tests/Unit/Services/Calendar/CalendarActivityServiceTest.php | 150 +++-\n tests/Unit/Services/Calendar/Command/ImportParticipantsTest.php | 6 +-\n tests/Unit/Services/Calendar/Command/MapActivityDataTest.php | 78 +-\n tests/Unit/Services/Calendar/GoogleCalendarServiceTest.php | 116 +++\n tests/Unit/Services/Crm/Close/ServiceTest.php | 165 +++++\n tests/Unit/Services/Crm/Hubspot/ServiceTest.php | 272 ++++++-\n tests/Unit/Services/Crm/Hubspot/ServiceTraits/OpportunitySyncTest.php | 25 +-\n tests/Unit/Services/Crm/Hubspot/ServiceTraits/OpportunitySyncTraitMatchActivitiesTest.php | 3 +-\n tests/Unit/Services/Crm/IntegrationApp/ServiceTraits/SyncCrmEntitiesTraitOpportunitiesTest.php | 40 ++\n tests/Unit/Services/Crm/Pipedrive/ImportOpportunityMatchActivitiesTest.php | 2 +\n tests/Unit/Services/Crm/Salesforce/ServiceTest.php | 139 ++++\n tests/Unit/Services/Mail/Office/EmailApiClientTest.php | 195 ++---\n tests/Unit/Services/RecallAI/RecallAIServiceTest.php | 24 +-\n 175 files changed, 12562 insertions(+), 2162 deletions(-)\n create mode 120000 CLAUDE.md\n create mode 100644 app/Component/AiAutomation/Services/CrmFillingEligibilityChecker.php\n delete mode 100644 app/Component/ES/ElasticSearchWorkerManager.php\n delete mode 100644 app/Component/ES/Processor/Traits/SkipActivityTrait.php\n delete mode 100644 app/Component/ES/Worker/ActivityWorker.php\n delete mode 100644 app/Component/ES/Worker/EntityWorker.php\n delete mode 100644 app/Component/ES/Worker/WorkerAmount.php\n delete mode 100644 app/Component/ES/Worker/WorkerInterface.php\n create mode 100644 app/Component/ProphetAi/Exceptions/InsufficientTranscriptException.php\n create mode 100644 app/Component/Transcription/DTO/Http/Transcription/AssemblyAI/AssemblyAI/NoAssemblyIdException.php\n create mode 100644 app/Component/Transcription/DTO/Http/Transcription/TranscriptionIsNotCorrectFormatException.php\n create mode 100644 app/Console/Commands/Activities/SetupIntegration/TwilioSetS3RecordingCredentialsCommand.php\n create mode 100644 app/Console/Commands/Crm/BackfillOpportunityUserFromAccountCommand.php\n delete mode 100644 app/Console/Commands/Elasticsearch/AsyncUpdateEsActivities.php\n create mode 100644 app/Console/Commands/IssueMcpTokenCommand.php\n create mode 100644 app/Http/Middleware/McpAuditMiddleware.php\n create mode 100644 app/Http/Middleware/McpTierMiddleware.php\n create mode 100644 app/Mcp/Contracts/McpCallRepositoryInterface.php\n create mode 100644 app/Mcp/DTO/ListCallsFilters.php\n create mode 100644 app/Mcp/Errors/McpError.php\n create mode 100644 app/Mcp/Repositories/McpActivityHydrator.php\n create mode 100644 app/Mcp/Repositories/McpCallRepository.php\n create mode 100644 app/Mcp/Repositories/McpElasticCallRepository.php\n create mode 100644 app/Mcp/Servers/JiminnyServer.php\n create mode 100644 app/Mcp/Tools/ListCallsTool.php\n create mode 100644 app/Services/Activity/Twilio/S3RecordingCredentialsService.php\n create mode 100644 config/mcp.php\n create mode 100644 database/migrations/2026_04_30_120000_create_mcp_audit_log_table.php\n create mode 100644 docs/mcp/explorer/explorer.html\n create mode 100644 docs/mcp/explorer/explorer.template.html\n create mode 100644 docs/mcp/explorer/generate.js\n create mode 100644 docs/mcp/explorer/tool-explorer-meta.json\n create mode 100644 docs/mcp/tools-list.json\n create mode 100644 docs/mcp/tools.md\n create mode 100644 front-end/src/components/shared/modals/EntityPickerModal/__tests__/useEntitiesCache.spec.ts\n create mode 100644 tests/Feature/Component/Nudge/ProcessOrganisationImmediateNudgesJobTest.php\n create mode 100644 tests/Feature/Mcp/IssueMcpTokenCommandTest.php\n create mode 100644 tests/Feature/Mcp/ListCallsToolElasticFeatureTest.php\n create mode 100644 tests/Feature/Mcp/ListCallsToolFeatureTest.php\n create mode 100644 tests/Feature/Mcp/McpTestHelpersTrait.php\n create mode 100644 tests/Stubs/SentryStub.php\n create mode 100644 tests/Unit/Component/AiAutomation/Services/CrmFillingEligibilityCheckerTest.php\n delete mode 100644 tests/Unit/Component/ES/ElasticSearchWorkerManagerTest.php\n create mode 100644 tests/Unit/Component/ES/Processor/Actions/LoadDocumentsActionTest.php\n delete mode 100644 tests/Unit/Component/ES/Processor/Traits/SkipActivityTraitTest.php\n delete mode 100644 tests/Unit/Component/ES/Worker/ActivityWorkerTest.php\n delete mode 100644 tests/Unit/Component/ES/Worker/EntityWorkerTest.php\n delete mode 100644 tests/Unit/Component/ES/Worker/WorkerAmountTest.php\n create mode 100644 tests/Unit/Component/ParticipantSpeech/Services/ParticipantSpeechesCreatorTest.php\n create mode 100644 tests/Unit/Http/Controllers/Kiosk/ActivityControllerTest.php\n create mode 100644 tests/Unit/Services/Activity/Twilio/S3RecordingCredentialsServiceTest.php\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20725-handle-HS-search-rate-limit) $ git status\nOn branch master\nYour branch is behind 'origin/master' by 114 commits, and can be fast-forwarded.\n (use \"git pull\" to update your local branch)\n\nChanges not staged for commit:\n (use \"git add <file>...\" to update what will be committed)\n (use \"git restore <file>...\" to discard changes in working directory)\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tmodified: .env.local\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tmodified: app/Component/SCIM/Constants.php\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tmodified: app/Component/SCIM/ScimProvisioning.php\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tmodified: app/Component/Twilio/Conference/ConferenceManager/SoftPhoneManager.php\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tmodified: app/Console/Commands/JiminnyDebugCommand.php\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tmodified: app/DTO/SCIM/AAD/Request/CoreUserRequest.php\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tmodified: app/DTO/SCIM/AAD/Response/CoreUser.php\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tmodified: app/Services/Telephony/TextMessagingService.php\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tmodified: config/logging.php\n\nUntracked files:\n (use \"git add <file>...\" to include in what will be committed)\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\t.env.nikilocal\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\t.env.other\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tWEBHOOK_FILTERING_IMPLEMENTATION.md\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tapp/Component/SCIM/Mutators/Attributes/User/RoleAttr.php\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tapp/Console/Commands/Crm/Hubspot/SimulateWebhooksCommand.php\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tapp/Console/Commands/Reports/CreateMockAskJiminnyReportResultCommand.php\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tapp/Rules/ListenerRoleCannotHaveAdminOrManagerPermissionRule.php\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tids.txt\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tpublic/favicon.ico\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\traw_sql_query.sql\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\ttests/Unit/Component/SCIM/Mutators/Attributes/User/RoleAttrTest.php\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\ttests/Unit/Policies/CanAccessAiReportsTest.php\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\ttests/Unit/Rules/ListenerRoleCannotHaveAdminOrManagerPermissionRuleTest.php\n\nno changes added to commit (use \"git add\" and/or \"git commit -a\")\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (master) $ git pull\nremote: Enumerating objects: 306, done.\nremote: Counting objects: 100% (299/299), done.\nremote: Compressing objects: 100% (183/183), done.\nremote: Total 306 (delta 213), reused 171 (delta 116), pack-reused 7 (from 1)\nReceiving objects: 100% (306/306), 80.12 KiB | 1000.00 KiB/s, done.\nResolving deltas: 100% (213/213), completed with 53 local objects.\nFrom github.com:jiminny/app\n 90bca4e4b2..5604af40cf master -> origin/master\n 4e7078fd8b..0b8343d179 JY-18091-upgrade-to-php-8-5 -> origin/JY-18091-upgrade-to-php-8-5\n 098eeaa087..d5a447e492 JY-20613-allow-owner-role-on-team-setup -> origin/JY-20613-allow-owner-role-on-team-setup\n c3a76ace91..af65249d0f JY-20749-user-can-view-recorded-meetings -> origin/JY-20749-user-can-view-recorded-meetings\n d94a285ae7..7ce96cb5fe JY-20808-low-priority-indexing-queue -> origin/JY-20808-low-priority-indexing-queue\n * [new branch] JY-20842-remove-partial-updater -> origin/JY-20842-remove-partial-updater\n * [new branch] JY-20920-fix-participant-flip -> origin/JY-20920-fix-participant-flip\n * [new branch] secfix/npm-20260519 -> origin/secfix/npm-20260519\nUpdating cb4ebf0c36..5604af40cf\nFast-forward\n app/Component/ES/ChunkSize.php | 54 +++++++++++++++++++\n app/Component/ES/Processor/DTOs/SelectionList.php | 4 +-\n app/Component/ES/Processor/TargetEntitiesSelector.php | 19 ++++---\n app/Component/MeetingBot/Service/ParticipantMatcher.php | 46 ++++++++++++----\n app/Exceptions/RateLimitException.php | 19 ++++++-\n app/Http/Middleware/McpTierMiddleware.php | 27 ++--------\n app/Jobs/Crm/MatchActivityCrmData.php | 47 ++++++++++++----\n app/Jobs/Middleware/HandleHubspotRateLimit.php | 42 +++++++++++++++\n app/Mcp/Servers/JiminnyServer.php | 2 +\n app/Mcp/Tools/GetMeTool.php | 157 +++++++++++++++++++++++++++++++++++++++++++++++++++++\n app/Models/Feature/FeatureEnum.php | 1 +\n app/Services/Activity/HubSpot/ProviderResolver.php | 4 +-\n app/Services/Activity/HubSpot/ProviderResolverInterface.php | 2 +-\n app/Services/Activity/HubSpot/Providers/Provider.php | 2 +-\n app/Services/Activity/HubSpot/Providers/ProviderKixie.php | 2 +-\n app/Services/Activity/HubSpot/Providers/ProviderOrum.php | 2 +-\n app/Services/Activity/HubSpot/Providers/ProviderTwilio.php | 2 +-\n app/Services/Activity/HubSpot/Providers/ProviderTwilioFlex.php | 5 +-\n app/Services/Activity/HubSpot/Service.php | 97 +++++++++++++++++++++++++++------\n app/Services/Crm/Hubspot/Client.php | 132 +++++++++++++++++++++++++++++++++++++++++++++\n app/Services/Crm/Hubspot/HubspotClientInterface.php | 15 ++++++\n app/Services/Crm/Hubspot/Pagination/HubspotPaginationService.php | 21 ++++----\n app/Services/Crm/Hubspot/Pagination/PaginationState.php | 2 +-\n database/migrations/2026_05_13_124153_create_mcp_feature_flag.php | 25 +++++++++\n tests/Feature/Mcp/GetMeToolFeatureTest.php | 140 +++++++++++++++++++++++++++++++++++++++++++++++\n tests/Feature/Mcp/ListCallsToolFeatureTest.php | 2 +-\n tests/Feature/Mcp/McpTestHelpersTrait.php | 19 ++++++-\n tests/Unit/Component/ES/ChunkSizeTest.php | 50 +++++++++++++++++\n tests/Unit/Component/ES/Processor/DTOs/SelectionListTest.php | 27 +++++++---\n tests/Unit/Component/ES/Processor/TargetEntitiesSelectorTest.php | 39 ++++++++------\n tests/Unit/Component/MeetingBot/Service/ParticipantMatcherTest.php | 68 ++++++++++++++++++++++-\n tests/Unit/Exceptions/RateLimitExceptionTest.php | 56 +++++++++++++++++++\n tests/Unit/Jobs/Crm/MatchActivityCrmDataTest.php | 8 +--\n tests/Unit/Jobs/Middleware/HandleHubspotRateLimitTest.php | 151 +++++++++++++++++++++++++++++++++++++++++++++++++++\n tests/Unit/Services/Activity/HubSpot/ServiceTest.php | 109 +++++++++++++++++++++++++++++++++++++\n tests/Unit/Services/Crm/Hubspot/ClientTest.php | 250 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++\n tests/Unit/Services/Crm/Hubspot/Pagination/HubspotPaginationServiceTest.php | 283 +++++++++++++++++++++---------------------------------------------------------------------------\n 37 files changed, 1587 insertions(+), 344 deletions(-)\n create mode 100644 app/Component/ES/ChunkSize.php\n create mode 100644 app/Jobs/Middleware/HandleHubspotRateLimit.php\n create mode 100644 app/Mcp/Tools/GetMeTool.php\n create mode 100644 database/migrations/2026_05_13_124153_create_mcp_feature_flag.php\n create mode 100644 tests/Feature/Mcp/GetMeToolFeatureTest.php\n create mode 100644 tests/Unit/Component/ES/ChunkSizeTest.php\n create mode 100644 tests/Unit/Exceptions/RateLimitExceptionTest.php\n create mode 100644 tests/Unit/Jobs/Middleware/HandleHubspotRateLimitTest.php\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (master) $ git pull\nAlready up to date.\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (master) $ co -b JY-20676-delete-report-related-objects\nSwitched to a new branch 'JY-20676-delete-report-related-objects'\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20676-delete-report-related-objects) $ csfix\ndocker exec -it docker_lamp_1 ./vendor/bin/php-cs-fixer fix --config=.php-cs-fixer.dist.php -v --using-cache=no --diff \nPHP CS Fixer 3.87.1 Alexander by Fabien Potencier, Dariusz Ruminski and contributors.\nPHP runtime: 8.3.30\nRunning analysis on 7 cores with 10 files per process.\nParallel runner is an experimental feature and may be unstable, use it at your own risk. Feedback highly appreciated!\nLoaded config default from \".php-cs-fixer.dist.php\".\n 5690/5690 [▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓] 100%\n\n 1) app/Console/Commands/JiminnyDebugCommand.php (statement_indentation, blank_line_before_statement)\n ---------- begin diff ----------\n--- /home/jiminny/app/Console/Commands/JiminnyDebugCommand.php\n+++ /home/jiminny/app/Console/Commands/JiminnyDebugCommand.php\n@@ -23,6 +23,7 @@\n \n if ($action === 'redis-set') {\n $this->testRedisSet();\n+\n return;\n }\n \n@@ -45,7 +46,7 @@\n $ttl = 60;\n \n try {\n-// $result = Redis::set($testKey, $testValue, 'EX', $ttl, 'NX');\n+ // $result = Redis::set($testKey, $testValue, 'EX', $ttl, 'NX');\n $result = Redis::set($testKey, $testValue, ['nx', 'ex' => $ttl]);\n \n if ($result) {\n\n ----------- end diff -----------\n\n\nFixed 1 of 5690 files in 50.673 seconds, 67.00 MB memory used\n\nWhat's next:\n Try Docker Debug for seamless, persistent debugging tools in any container or image → docker debug docker_lamp_1\n Learn more at https://docs.docker.com/go/debug-cli/\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20676-delete-report-related-objects) $ ;xd\ndocker exec -it docker_lamp_1 bash -c \"mv /usr/local/etc/php/conf.d/xdebug.ini ~/xdebug.ini\"\n\nWhat's next:\n Try Docker Debug for seamless, persistent debugging tools in any container or image → docker debug docker_lamp_1\n Learn more at https://docs.docker.com/go/debug-cli/\ndocker exec -it docker_lamp_1 supervisorctl restart all\njiminny-worker-processing-2:jiminny-worker-processing-2_00: stopped\njiminny-worker-processing-3:jiminny-worker-processing-3_00: stopped\njiminny-worker-processing-4:jiminny-worker-processing-4_00: stopped\njiminny-worker-processing-5:jiminny-worker-processing-5_00: stopped\njiminny-worker-processing-delayed:jiminny-worker-processing-delayed_00: stopped\nworker-analytics:worker-analytics_00: stopped\nworker-crm-update:worker-crm-update_00: stopped\nworker-download:worker-download_00: stopped\nworker-nudges:worker-nudges_00: stopped\nworker-calendar:worker-calendar_00: stopped\nworker-audio:worker-audio_00: stopped\njiminny-worker-processing-1:jiminny-worker-processing-1_00: stopped\nworker:worker_00: stopped\nworker-conferences:worker-conferences_00: stopped\nworker-crm-sync:worker-crm-sync_00: stopped\nworker-emails:worker-emails_00: stopped\nworker-es-update:worker-es-update_00: stopped\nartisan-schedule:artisan-schedule_00: stopped\nartisan-schedule:artisan-schedule_00: started\njiminny-worker-processing-1:jiminny-worker-processing-1_00: started\njiminny-worker-processing-2:jiminny-worker-processing-2_00: started\njiminny-worker-processing-3:jiminny-worker-processing-3_00: started\njiminny-worker-processing-4:jiminny-worker-processing-4_00: started\njiminny-worker-processing-5:jiminny-worker-processing-5_00: started\njiminny-worker-processing-delayed:jiminny-worker-processing-delayed_00: started\nworker:worker_00: started\nworker-analytics:worker-analytics_00: started\nworker-audio:worker-audio_00: started\nworker-calendar:worker-calendar_00: started\nworker-conferences:worker-conferences_00: started\nworker-crm-sync:worker-crm-sync_00: started\nworker-crm-update:worker-crm-update_00: started\nworker-download:worker-download_00: started\nworker-emails:worker-emails_00: started\nworker-es-update:worker-es-update_00: started\nworker-nudges:worker-nudges_00: started\n\nWhat's next:\n Try Docker Debug for seamless, persistent debugging tools in any container or image → docker debug docker_lamp_1\n Learn more at https://docs.docker.com/go/debug-cli/\ndocker exec -it docker_lamp_1 php -v\nPHP 8.3.30 (cli) (built: Mar 16 2026 22:32:32) (NTS)\nCopyright (c) The PHP Group\nZend Engine v4.3.30, Copyright (c) Zend Technologies\n with Zend OPcache v8.3.30, Copyright (c), by Zend Technologies\n\nWhat's next:\n Try Docker Debug for seamless, persistent debugging tools in any container or image → docker debug docker_lamp_1\n Learn more at https://docs.docker.com/go/debug-cli/\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20676-delete-report-related-objects) $ git status\nOn branch JY-20676-delete-report-related-objects\nChanges not staged for commit:\n (use \"git add <file>...\" to update what will be committed)\n (use \"git restore <file>...\" to discard changes in working directory)\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tmodified: .env.local\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tmodified: app/Console/Commands/JiminnyDebugCommand.php\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tmodified: config/logging.php\n\nUntracked files:\n (use \"git add <file>...\" to include in what will be committed)\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\t.env.nikilocal\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\t.env.other\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tWEBHOOK_FILTERING_IMPLEMENTATION.md\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tapp/Console/Commands/Crm/Hubspot/SimulateWebhooksCommand.php\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tapp/Console/Commands/Reports/CreateMockAskJiminnyReportResultCommand.php\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tids.txt\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tpublic/favicon.ico\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\traw_sql_query.sql\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\ttests/Unit/Policies/CanAccessAiReportsTest.php\n\nno changes added to commit (use \"git add\" and/or \"git commit -a\")\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20676-delete-report-related-objects) $ git push -u origin JY-20676-delete-report-related-objects\nEnumerating objects: 45, done.\nCounting objects: 100% (45/45), done.\nDelta compression using up to 8 threads\nCompressing objects: 100% (24/24), done.\nWriting objects: 100% (24/24), 3.62 KiB | 3.62 MiB/s, done.\nTotal 24 (delta 19), reused 0 (delta 0), pack-reused 0\nremote: Resolving deltas: 100% (19/19), completed with 19 local objects.\nremote: \nremote: Create a pull request for 'JY-20676-delete-report-related-objects' on GitHub by visiting:\nremote: https://github.com/jiminny/app/pull/new/JY-20676-delete-report-related-objects\nremote: \nTo github.com:jiminny/app.git\n * [new branch] JY-20676-delete-report-related-objects -> JY-20676-delete-report-related-objects\nbranch 'JY-20676-delete-report-related-objects' set up to track 'origin/JY-20676-delete-report-related-objects'.\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20676-delete-report-related-objects) $ csfix\ndocker exec -it docker_lamp_1 ./vendor/bin/php-cs-fixer fix --config=.php-cs-fixer.dist.php -v --using-cache=no --diff \nPHP CS Fixer 3.87.1 Alexander by Fabien Potencier, Dariusz Ruminski and contributors.\nPHP runtime: 8.3.30\nRunning analysis on 7 cores with 10 files per process.\nParallel runner is an experimental feature and may be unstable, use it at your own risk. Feedback highly appreciated!\nLoaded config default from \".php-cs-fixer.dist.php\".\n 5690/5690 [▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓] 100%\n\n 1) app/Http/Controllers/API/V2/AskJiminnyReportsController.php (blank_line_before_statement)\n ---------- begin diff ----------\n--- /home/jiminny/app/Http/Controllers/API/V2/AskJiminnyReportsController.php\n+++ /home/jiminny/app/Http/Controllers/API/V2/AskJiminnyReportsController.php\n@@ -140,6 +140,7 @@\n if ($enabled && $report->isAskJiminnyReport() && ! $report->canExecute()) {\n $error = 'This report is missing a saved search or prompt. ' .\n 'Edit the report to complete the setup before enabling it.';\n+\n return new JsonResponse(\n ['error' => $error],\n Response::HTTP_UNPROCESSABLE_ENTITY\n\n ----------- end diff -----------\n\n\nFixed 1 of 5690 files in 71.757 seconds, 60.00 MB memory used\n\nWhat's next:\n Try Docker Debug for seamless, persistent debugging tools in any container or image → docker debug docker_lamp_1\n Learn more at https://docs.docker.com/go/debug-cli/\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20676-delete-report-related-objects) $ git pull\nremote: Enumerating objects: 158, done.\nremote: Counting objects: 100% (103/103), done.\nremote: Compressing objects: 100% (37/37), done.\nremote: Total 158 (delta 80), reused 74 (delta 66), pack-reused 55 (from 3)\nReceiving objects: 100% (158/158), 80.59 KiB | 982.00 KiB/s, done.\nResolving deltas: 100% (85/85), completed with 45 local objects.\nFrom github.com:jiminny/app\n 02a33811ee..c6ce5e2440 JY-20676-delete-report-related-objects -> origin/JY-20676-delete-report-related-objects\n 7ce96cb5fe..6c59f04358 JY-20808-low-priority-indexing-queue -> origin/JY-20808-low-priority-indexing-queue\n 3906a9238a..2b5e6ea62b JY-20835-mcp-enable-users-to-get-a-list-of-deals-and-their-details -> origin/JY-20835-mcp-enable-users-to-get-a-list-of-deals-and-their-details\n 5604af40cf..ea3519f0e2 master -> origin/master\n * [new branch] switch-eu-assembly -> origin/switch-eu-assembly\nUpdating 02a33811ee..c6ce5e2440\nFast-forward\n app/Component/ES/ElasticSearchDocumentPartialUpdater.php | 48 ---\n app/Component/ParticipantSpeech/Services/ParticipantAttributionService.php | 4 +-\n app/Component/Settings/AutoScoring/Services/UpdateAutoScoreService.php | 20 +-\n app/Component/Transcription/Service/StorageService.php | 8 +-\n front-end/package.json | 2 +-\n front-end/src/components/DealInsights/Modals/AskAnythingModal.vue | 23 ++\n front-end/src/components/shared/AskAnything/AskAnythingPromptFormItem.vue | 2 +\n front-end/src/components/shared/AskAnything/AskAnythingSettingsDrawer.vue | 23 +-\n front-end/src/components/shared/AskAnything/__mocks__/AskAnythingSettingsDrawer.mocks.js | 1 +\n front-end/src/components/shared/AskAnything/__tests__/AskAnythingSettingsDrawer.spec.js | 135 ++++---\n front-end/src/components/shared/AskAnything/__tests__/__snapshots__/AskAnythingSettingsDrawer.spec.js.html | 1235 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++\n front-end/src/components/shared/AskAnything/__tests__/__snapshots__/AskAnythingSettingsDrawer.spec.js.snap | 1382 ----------------------------------------------------------------\n front-end/src/components/shared/AskAnything/prompts.js | 1 +\n front-end/src/components/shared/AskAnything/useAskAnything.js | 1 +\n front-end/yarn.lock | 8 +-\n tests/Unit/Component/ES/ElasticSearchDocumentPartialUpdaterTest.php | 42 --\n tests/Unit/Component/Settings/AutoScoring/Services/UpdateAutoScoreServiceTest.php | 86 ++--\n tests/Unit/Component/Transcription/Service/StorageServiceTest.php | 29 +-\n 18 files changed, 1448 insertions(+), 1602 deletions(-)\n delete mode 100644 app/Component/ES/ElasticSearchDocumentPartialUpdater.php\n create mode 100644 front-end/src/components/shared/AskAnything/__tests__/__snapshots__/AskAnythingSettingsDrawer.spec.js.html\n delete mode 100644 front-end/src/components/shared/AskAnything/__tests__/__snapshots__/AskAnythingSettingsDrawer.spec.js.snap\n delete mode 100644 tests/Unit/Component/ES/ElasticSearchDocumentPartialUpdaterTest.php\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20676-delete-report-related-objects) $ csfix\ndocker exec -it docker_lamp_1 ./vendor/bin/php-cs-fixer fix --config=.php-cs-fixer.dist.php -v --using-cache=no --diff \nPHP CS Fixer 3.87.1 Alexander by Fabien Potencier, Dariusz Ruminski and contributors.\nPHP runtime: 8.3.30\nRunning analysis on 7 cores with 10 files per process.\nParallel runner is an experimental feature and may be unstable, use it at your own risk. Feedback highly appreciated!\nLoaded config default from \".php-cs-fixer.dist.php\".\n 5071/5688 [▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓░░░░] 89%","is_focused":true},{"role":"AXRadioButton","text":"DOCKER","depth":2,"bounds":{"left":0.27027926,"top":1.0,"width":0.094913565,"height":-0.042298436},"on_screen":true,"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.27227393,"top":1.0,"width":0.005319149,"height":-0.04549086},"on_screen":true,"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"DEV (docker)","depth":2,"bounds":{"left":0.36519283,"top":1.0,"width":0.094913565,"height":-0.042298436},"on_screen":true,"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.3671875,"top":1.0,"width":0.005319149,"height":-0.04549086},"on_screen":true,"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"APP (docker)","depth":2,"bounds":{"left":0.46010637,"top":1.0,"width":0.09474734,"height":-0.042298436},"on_screen":true,"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.46210107,"top":1.0,"width":0.005319149,"height":-0.04549086},"on_screen":true,"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"screenpipe\"","depth":2,"bounds":{"left":0.55485374,"top":1.0,"width":0.09474734,"height":-0.042298436},"on_screen":true,"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.5568484,"top":1.0,"width":0.005319149,"height":-0.04549086},"on_screen":true,"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"-zsh","depth":2,"bounds":{"left":0.64960104,"top":1.0,"width":0.09474734,"height":-0.042298436},"on_screen":true,"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.6515958,"top":1.0,"width":0.005319149,"height":-0.04549086},"on_screen":true,"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"⌥⌘1","depth":1,"bounds":{"left":0.7307181,"top":1.0,"width":0.01861702,"height":-0.023144484},"on_screen":true,"automation_id":"_NS:8","role_description":"text"},{"role":"AXStaticText","text":"APP (docker)","depth":1,"bounds":{"left":0.49634308,"top":1.0,"width":0.029920213,"height":-0.02394259},"on_screen":true,"role_description":"text"}]...
|
2802650493718167367
|
-1358120912881272742
|
idle
|
accessibility
|
NULL
|
Last login: Mon May 18 09:17:28 on ttys007
Poetry Last login: Mon May 18 09:17:28 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 (pipedrive-sdk-poc) $ co master
error: Your local changes to the following files would be overwritten by checkout:
PIPEDRIVE_V2_MIGRATION_TICKETS.md
Please commit your changes or stash them before you switch branches.
Aborting
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (pipedrive-sdk-poc) $ git pull
remote: Enumerating objects: 1047, done.
remote: Counting objects: 100% (832/832), done.
remote: Compressing objects: 100% (298/298), done.
remote: Total 1047 (delta 634), reused 596 (delta 534), pack-reused 215 (from 3)
Receiving objects: 100% (1047/1047), 353.16 KiB | 1.56 MiB/s, done.
Resolving deltas: 100% (687/687), completed with 107 local objects.
From github.com:jiminny/app
907c54896c..34656c53ed pipedrive-sdk-poc -> origin/pipedrive-sdk-poc
03325ec50f..4e7078fd8b JY-18091-upgrade-to-php-8-5 -> origin/JY-18091-upgrade-to-php-8-5
e7d231e163..bc6a3fce6b JY-20725-handle-HS-search-rate-limit -> origin/JY-20725-handle-HS-search-rate-limit
* [new branch] JY-20749-user-can-view-recorded-meetings -> origin/JY-20749-user-can-view-recorded-meetings
98ca281a04..e0351be069 JY-20808-low-priority-indexing-queue -> origin/JY-20808-low-priority-indexing-queue
569abb5149..3906a9238a JY-20835-mcp-enable-users-to-get-a-list-of-deals-and-their-details -> origin/JY-20835-mcp-enable-users-to-get-a-list-of-deals-and-their-details
ad6c2a86e8..50eb6afba9 JY-20846-mcp-enable-the-ai-to-know-details-about-the-user -> origin/JY-20846-mcp-enable-the-ai-to-know-details-about-the-user
* [new branch] JY-20893-chunk-control-per-update-target -> origin/JY-20893-chunk-control-per-update-target
31c62924a5..cb4ebf0c36 master -> origin/master
Updating 907c54896c..34656c53ed
Fast-forward
PIPEDRIVE_V2_MIGRATION_TICKETS.md | 52 ++++++++++++++++++++++++++++++++++++++++++++++++++++
1 file changed, 52 insertions(+)
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (pipedrive-sdk-poc) $ co master
M .env.local
M config/logging.php
Switched to branch 'master'
Your branch is behind 'origin/master' by 31 commits, and can be fast-forwarded.
(use "git pull" to update your local branch)
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (master) $ git pull
Updating 31c62924a5..cb4ebf0c36
Fast-forward
app/Component/ES/Processor/Traits/SelectEntityListTrait.php | 20 ------
app/Services/Calendar/CalendarActivityService.php | 46 +++++++++++++
app/Services/Calendar/Command/MapActivityData.php | 106 +++-------------------------
docs/mcp/explorer/explorer.html | 104 +++++++++++++++++++++++++---
docs/mcp/explorer/explorer.template.html | 102 ++++++++++++++++++++++++---
docs/mcp/tools-list.json | 373 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++-------
docs/mcp/tools.md | 117 +++++++++++++++++++++++--------
tests/Unit/Component/ES/AsyncUpdateElasticSearchTest.php | 16 +----
tests/Unit/Component/ES/Listeners/UpdateMultipleTargetsListenerTest.php | 10 ---
tests/Unit/Component/ES/Listeners/UpdateSingleTargetListenerTest.php | 6 --
tests/Unit/Component/ES/Processor/TargetEntitiesSelectorTest.php | 9 ---
tests/Unit/Component/ES/Processor/Traits/SelectEntityListTraitTest.php | 15 ++--
tests/Unit/Component/ES/UpdateProcessManagerTest.php | 2 -
tests/Unit/Services/Calendar/CalendarActivityServiceTest.php | 150 ++++++++++++++++++++++++++++++++++++++--
tests/Unit/Services/Calendar/Command/MapActivityDataTest.php | 78 ++-------------------
15 files changed, 832 insertions(+), 322 deletions(-)
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (master) $ co -b JY-20613-allow-owner-role-on-team-setup
Switched to a new branch 'JY-20613-allow-owner-role-on-team-setup'
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20613-allow-owner-role-on-team-setup) $ csfix
docker exec -it docker_lamp_1 ./vendor/bin/php-cs-fixer fix --config=.php-cs-fixer.dist.php -v --using-cache=no --diff
PHP CS Fixer 3.87.1 Alexander by Fabien Potencier, Dariusz Ruminski and contributors.
PHP runtime: 8.3.30
Running 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!
Loaded config default from ".php-cs-fixer.dist.php".
5682/5682 [▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓] 100%
Fixed 0 of 5682 files in 56.978 seconds, 67.00 MB memory used
What's next:
Try Docker Debug for seamless, persistent debugging tools in any container or image → docker debug docker_lamp_1
Learn more at [URL_WITH_CREDENTIALS] ~/jiminny/app (JY-20613-allow-owner-role-on-team-setup) $ csfix
docker exec -it docker_lamp_1 ./vendor/bin/php-cs-fixer fix --config=.php-cs-fixer.dist.php -v --using-cache=no --diff
PHP CS Fixer 3.87.1 Alexander by Fabien Potencier, Dariusz Ruminski and contributors.
PHP runtime: 8.3.30
Running 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!
Loaded config default from ".php-cs-fixer.dist.php".
5682/5682 [▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓] 100%
Fixed 0 of 5682 files in 49.910 seconds, 60.00 MB memory used
What's next:
Try Docker Debug for seamless, persistent debugging tools in any container or image → docker debug docker_lamp_1
Learn more at [URL_WITH_CREDENTIALS] ~/jiminny/app (JY-20613-allow-owner-role-on-team-setup) $ git pull
remote: Enumerating objects: 248, done.
remote: Counting objects: 100% (128/128), done.
remote: Compressing objects: 100% (23/23), done.
remote: Total 59 (delta 43), reused 44 (delta 33), pack-reused 0 (from 0)
Unpacking objects: 100% (59/59), 10.48 KiB | 228.00 KiB/s, done.
From github.com:jiminny/app
b7df560451..190239dfd4 JY-20613-allow-owner-role-on-team-setup -> origin/JY-20613-allow-owner-role-on-team-setup
e0351be069..d94a285ae7 JY-20808-low-priority-indexing-queue -> origin/JY-20808-low-priority-indexing-queue
* [new branch] JY-20920-fix-participant-matcher -> origin/JY-20920-fix-participant-matcher
cb4ebf0c36..90bca4e4b2 master -> origin/master
Merge made by the 'ort' strategy.
app/Component/ES/ChunkSize.php | 54 +++++++++++++++++++++++++++
app/Component/ES/Processor/DTOs/SelectionList.php | 4 +-
app/Component/ES/Processor/TargetEntitiesSelector.php | 19 ++++++----
app/Http/Middleware/McpTierMiddleware.php | 27 +++-----------
app/Mcp/Servers/JiminnyServer.php | 2 +
app/Mcp/Tools/GetMeTool.php | 157 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
app/Models/Feature/FeatureEnum.php | 1 +
database/migrations/2026_05_13_124153_create_mcp_feature_flag.php | 25 +++++++++++++
front-end/src/components/Settings/Kiosk/modals/EditTeamModal/EditTeamModal.vue | 52 ++++++++++++++++++--------
front-end/src/components/Settings/Kiosk/modals/EditTeamModal/__tests__/EditTeamModal.spec.js | 14 +++++++
tests/Feature/Mcp/GetMeToolFeatureTest.php | 140 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
tests/Feature/Mcp/ListCallsToolFeatureTest.php | 2 +-
tests/Feature/Mcp/McpTestHelpersTrait.php | 19 +++++++++-
tests/Unit/Component/ES/ChunkSizeTest.php | 50 +++++++++++++++++++++++++
tests/Unit/Component/ES/Processor/DTOs/SelectionListTest.php | 27 ++++++++++----
tests/Unit/Component/ES/Processor/TargetEntitiesSelectorTest.php | 39 +++++++++++---------
16 files changed, 557 insertions(+), 75 deletions(-)
create mode 100644 app/Component/ES/ChunkSize.php
create mode 100644 app/Mcp/Tools/GetMeTool.php
create mode 100644 database/migrations/2026_05_13_124153_create_mcp_feature_flag.php
create mode 100644 tests/Feature/Mcp/GetMeToolFeatureTest.php
create mode 100644 tests/Unit/Component/ES/ChunkSizeTest.php
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20613-allow-owner-role-on-team-setup) $ git push
Enumerating objects: 40, done.
Counting objects: 100% (34/34), done.
Delta compression using up to 8 threads
Compressing objects: 100% (18/18), done.
Writing objects: 100% (18/18), 1.58 KiB | 1.58 MiB/s, done.
Total 18 (delta 15), reused 0 (delta 0), pack-reused 0
remote: Resolving deltas: 100% (15/15), completed with 13 local objects.
To github.com:jiminny/app.git
190239dfd4..ec1b261264 JY-20613-allow-owner-role-on-team-setup -> JY-20613-allow-owner-role-on-team-setup
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20613-allow-owner-role-on-team-setup) $ gbr
* JY-20613-allow-owner-role-on-team-setup
pipedrive-sdk-poc
master
JY-20903-update_activity-stage-on-opportunity-change
JY-20904-fix-update-es-on-activity-command
JY-20891-improve-sms-text-relays
JY-20725-handle-HS-search-rate-limit
JY-20818-move-AJ-reports-to-separated-datadog-metric
JY-20773-fix-automated-reports-user-pilot-tracking
JY-20157-AJ-report-not-send-notification
JY-20508-notify-before-AJ-report-expiration
JY-20372-ai-reports-promotion-pages
JY-20352-sync-opportunities-without-a-local-owner-user-id-is-null
JY-20738-debug-AJ-tracking-UP
a
JY-18909-automated-reports-ask-jiminny
JY-20692-fix-integration-app-[API_KEY]
JY-20553-debug-crm-sync-delays
JY-20698-fix-SF-activity-types-on-new-playbook
JY-20543-AJ-report-tracking
JY-20384-handle-auto-sync-with-no-access-to-event-type
JY-20458-ask-jiminny-user-definitions
JY-19666-fix-import-contacts-account-association
JY-19666-HS-import-contacts-and-accounts-batch-job
JY-20458-Ask-Jiminny-Reports
JY-20200-batch-update-CRM-objects-Salesforce
JY-19666-HS-webhooks-add-contact-and-company
JY-20348-trigger-setup-DI-layout-on-team-creation
JY-20326-refactor-info-message-in-command
JY-20317-fix-auto-log-delay-issue-on-all-channels-disabled
JY-20312-remove-on-update-change-last-synced-at-crm-configurations
JY-20306-SF-skip-auto-sync-for-task-based-playbook
JY-20192-remove-deleted-team-from-saved-search-filters
JY-20197-import-opportunity-batch-job
JY-20293-enable-status-field-for-pipedrive-deals
JY-20191-remove-commands-interactive-prompts
JY-20118-change-default-sync-strategy
JY-20183-add-cache-on-auto-log-delay
JY-20197-add-import-opportunity-batch-job
20118-hs-opportunity-make-webhook-strategy-default
JY-20118-make-default-hs-opportunity-sync-strategy-webhook-based
JY-20196-handle-opportunity-without-note
JY-20118-improve-opportunity-import
JY-20189-handle-activity-search-on-deleted-groups
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20613-allow-owner-role-on-team-setup) $ co JY-20725-handle-HS-search-rate-limit
M .env.local
M config/logging.php
Switched to branch 'JY-20725-handle-HS-search-rate-limit'
Your branch is behind 'origin/JY-20725-handle-HS-search-rate-limit' by 439 commits, and can be fast-forwarded.
(use "git pull" to update your local branch)
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20725-handle-HS-search-rate-limit) $ git pull
Updating 0f3e438941..bc6a3fce6b
Fast-forward
.gitignore | 3 +-
.windsurfrules | 168 ++---
CLAUDE.md | 1 +
app/Component/ActivityAnalytics/Service/CalculateTalkTimeOffsetsFromTranscription.php | 24 +-
app/Component/AiActivityType/Services/AiActivityTypeEligibilityChecker.php | 28 +-
app/Component/AiAutomation/Actions/PrepareUpdateDtoAction.php | 32 +-
app/Component/AiAutomation/Services/CrmFillingEligibilityChecker.php | 47 ++
app/Component/AiAutomation/TestCrmAiPromptService.php | 14 +
app/Component/AiCallScoring/Services/AiCallScoringEligibilityChecker.php | 9 +
app/Component/ES/ElasticSearchDocumentPartialUpdater.php | 13 +-
app/Component/ES/ElasticSearchWorkerManager.php | 86 ---
app/Component/ES/Processor/Actions/LoadDocumentsAction.php | 80 +--
app/Component/ES/Processor/EntityQueryBuilder.php | 12 +-
app/Component/ES/Processor/TargetEntitiesSelector.php | 2 +-
app/Component/ES/Processor/Traits/SkipActivityTrait.php | 25 -
app/Component/ES/Repositories/EsResetActivityRepository.php | 11 +-
app/Component/ES/Worker/ActivityWorker.php | 73 --
app/Component/ES/Worker/EntityWorker.php | 44 --
app/Component/ES/Worker/WorkerAmount.php | 60 --
app/Component/ES/Worker/WorkerInterface.php | 15 -
app/Component/ElasticSearch/Contract/Searchable.php | 4 +
app/Component/Encoding/Job/AnalyzeTrackChannelsJob.php | 20 +-
app/Component/Encoding/Service/GenerateSpeechFromSilenceService.php | 85 ++-
app/Component/FFMpeg/Services/GetSpeechIntervalsService.php | 18 +-
app/Component/LanguageDetection/Services/FindSpeechTimeService.php | 22 +-
app/Component/Nudge/Job/ProcessOrganisationImmediateNudgesJob.php | 218 +++++-
app/Component/ParagraphBreaker/Services/TranscriptionParagraphsService.php | 4 +
app/Component/ParticipantSpeech/Services/ParticipantSpeechesCreator.php | 33 +
app/Component/ParticipantSpeech/Services/ParticipantSpeechesDeleter.php | 15 +
app/Component/ParticipantSpeech/Services/ParticipantSpeechesProvider.php | 51 +-
app/Component/ParticipantSpeech/Services/ParticipantSpeechesUploader.php | 36 +
app/Component/ProphetAi/Exceptions/InsufficientTranscriptException.php | 11 +
app/Component/Transcription/DTO/Http/Transcription/AssemblyAI/AssemblyAI/NoAssemblyIdException.php | 11 +
app/Component/Transcription/DTO/Http/Transcription/AssemblyAI/AssemblyAI/SuccessfulResponse.php | 6 +
app/Component/Transcription/DTO/Http/Transcription/TranscriptionIsNotCorrectFormatException.php | 11 +
app/Component/Transcription/Diarization/Services/GetNormalizedParticipantSpeechesService.php | 23 +-
app/Component/Transcription/Diarization/Source/MeetingBotSource.php | 16 +-
app/Component/Transcription/TranscriptionProcessor/TranscriptionProcessor.php | 3 +
app/Console/Commands/Activities/ActivityHardDeleteCommand.php | 4 +-
app/Console/Commands/Activities/Copy.php | 2 +
app/Console/Commands/Activities/SetupIntegration/TwilioSetS3RecordingCredentialsCommand.php | 119 ++++
app/Console/Commands/Activities/UpdateActivityElasticSearchDocumentCommand.php | 10 +-
app/Console/Commands/Crm/BackfillOpportunityUserFromAccountCommand.php | 126 ++++
app/Console/Commands/Elasticsearch/AsyncUpdateEsActivities.php | 19 -
app/Console/Commands/Elasticsearch/AsyncUpdateEsEntities.php | 50 +-
app/Console/Commands/Elasticsearch/ResetAsyncElasticSearchCommand.php | 30 +-
app/Console/Commands/GeckoExport/GeckoExportParticipantSpeechesCommand.php | 14 +-
app/Console/Commands/IssueMcpTokenCommand.php | 84 +++
app/Console/Commands/JiminnyDebugCommand.php | 7 +-
app/Console/Commands/Tracks/CleanupActivityTracksCommand.php | 2 +-
app/Console/Kernel.php | 6 +-
app/Contracts/Services/Calendar/CalendarTrait.php | 80 ++-
app/Events/AutomatedReports/AutomatedReportGenerated.php | 3 +
app/Http/Controllers/API/AiCallScoring/AiScorecardController.php | 7 +-
app/Http/Controllers/API/TeamAiAutomationController.php | 8 +
app/Http/Controllers/CustomerApi/CustomerApiController.php | 4 +-
app/Http/Controllers/Kiosk/ActivityController.php | 58 +-
app/Http/Controllers/Settings/PlaybookController.php | 15 +-
app/Http/Kernel.php | 23 +
app/Http/Middleware/McpAuditMiddleware.php | 156 ++++
app/Http/Middleware/McpTierMiddleware.php | 54 ++
app/Http/Requests/API/V2/ZapierUploadActivityRequest.php | 28 +-
app/Jobs/Activity/Import/ImportTwilioVideoSpeechesJob.php | 25 +-
app/Jobs/Activity/Import/IsActivityReadyForProcessingJob.php | 10 +-
app/Jobs/Calendar/SetupCalendarSync.php | 21 +-
app/Jobs/ImportRemoteTrackJob.php | 96 ++-
app/Jobs/Mailbox/EmailTextRelay.php | 15 +-
app/Mcp/Contracts/McpCallRepositoryInterface.php | 30 +
app/Mcp/DTO/ListCallsFilters.php | 29 +
app/Mcp/Errors/McpError.php | 123 ++++
app/Mcp/Repositories/McpActivityHydrator.php | 145 ++++
app/Mcp/Repositories/McpCallRepository.php | 84 +++
app/Mcp/Repositories/McpElasticCallRepository.php | 171 +++++
app/Mcp/Servers/JiminnyServer.php | 38 +
app/Mcp/Tools/ListCallsTool.php | 205 ++++++
app/Models/Activity.php | 10 +-
app/Models/Activity/Transcription.php | 17 +-
app/Models/ElasticSearch/OpportunityElasticSearchTrait.php | 5 +
app/Models/Participant.php | 1 +
app/Providers/AppServiceProvider.php | 22 +
app/Repositories/Crm/ContactRepository.php | 69 +-
app/Repositories/ParticipantSpeechRepository.php | 13 +-
app/Services/Activity/ParticipantsService.php | 19 +-
app/Services/Activity/Twilio/S3RecordingCredentialsService.php | 82 +++
app/Services/ActivityService.php | 21 +-
app/Services/Calendar/CalendarActivityService.php | 46 ++
app/Services/Calendar/Command/ImportParticipants.php | 1 +
app/Services/Calendar/Command/MapActivityData.php | 106 +--
app/Services/Calendar/GoogleCalendarService.php | 12 +-
app/Services/Crm/Close/Processor/OpportunityProcessor.php | 2 +-
app/Services/Crm/Close/Service.php | 22 +-
app/Services/Crm/Copper/Service.php | 12 +-
app/Services/Crm/Hubspot/Service.php | 154 +++-
app/Services/Crm/Hubspot/ServiceTraits/OpportunitySyncTrait.php | 88 ++-
app/Services/Crm/IntegrationApp/ServiceTraits/SyncCrmEntitiesTrait.php | 22 +-
app/Services/Crm/Pipedrive/Service.php | 17 +-
app/Services/Crm/Salesforce/Service.php | 42 +-
app/Services/Mail/Office/EmailApiClient.php | 129 +---
app/Services/RecallAI/Commands/ScheduleBotCommand.php | 39 +-
app/Services/RecallAI/RecallAIService.php | 22 +-
composer.json | 3 +-
composer.lock | 87 ++-
config/mcp.php | 23 +
database/migrations/2026_04_30_120000_create_mcp_audit_log_table.php | 36 +
docs/mcp/explorer/explorer.html | 697 ++++++++++++++++++
docs/mcp/explorer/explorer.template.html | 697 ++++++++++++++++++
docs/mcp/explorer/generate.js | 215 ++++++
docs/mcp/explorer/tool-explorer-meta.json | 11 +
docs/mcp/tools-list.json | 2536 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
docs/mcp/tools.md | 621 ++++++++++++++++
front-end/package.json | 4 +-
front-end/src/components/Settings/OrgSettings/AiAutomation/CrmFilling/TemplateFieldForm.vue | 28 +-
front-end/src/components/Settings/OrgSettings/Playbooks/AddEditPlaybook.vue | 10 +
front-end/src/components/playback/comments/ActivityComment.less | 10 +-
front-end/src/components/shared/PromptTester/PromptTester.vue | 12 +-
front-end/src/components/shared/__tests__/PromptTester.spec.js | 35 +
front-end/src/components/shared/modals/EntityPickerModal/__tests__/useEntitiesCache.spec.ts | 37 +
front-end/src/components/shared/modals/EntityPickerModal/useEntitiesCache.ts | 9 +
front-end/yarn.lock | 16 +-
phpstan-baseline.neon | 50 --
routes/api.php | 11 +
sonar-project.properties | 91 ++-
tests/Feature/Component/Nudge/ProcessOrganisationImmediateNudgesJobTest.php | 534 ++++++++++++++
tests/Feature/Jobs/ImportRemoteTrackJobTest.php | 283 +++++++-
tests/Feature/Mcp/IssueMcpTokenCommandTest.php | 53 ++
tests/Feature/Mcp/ListCallsToolElasticFeatureTest.php | 155 ++++
tests/Feature/Mcp/ListCallsToolFeatureTest.php | 352 ++++++++++
tests/Feature/Mcp/McpTestHelpersTrait.php | 77 ++
tests/Feature/Services/Team/TeamDeleteHandlers/Retention/RetentionRepositoryHandlerTest.php | 1 +
tests/Stubs/SentryStub.php | 18 +
tests/Unit/Component/ActivityAnalytics/Service/CalculateTalkTimeOffsetFromTranscriptionTest.php | 28 +-
tests/Unit/Component/AiActivityType/Services/AiActivityTypeEligibilityCheckerTest.php | 103 ++-
tests/Unit/Component/AiAutomation/Actions/PrepareUpdateDtoActionTest.php | 91 +++
tests/Unit/Component/AiAutomation/Services/CrmFillingEligibilityCheckerTest.php | 124 ++++
tests/Unit/Component/AiAutomation/TestCrmAiPromptServiceTest.php | 67 +-
tests/Unit/Component/AiCallScoring/Services/AiCallScoringEligibilityCheckerTest.php | 55 ++
tests/Unit/Component/ES/ElasticSearchWorkerManagerTest.php | 135 ----
tests/Unit/Component/ES/Processor/Actions/LoadDocumentsActionTest.php | 220 ++++++
tests/Unit/Component/ES/Processor/EntityQueryBuilderTest.php | 21 +-
tests/Unit/Component/ES/Processor/Traits/SkipActivityTraitTest.php | 51 --
tests/Unit/Component/ES/Worker/ActivityWorkerTest.php | 174 -----
tests/Unit/Component/ES/Worker/EntityWorkerTest.php | 97 ---
tests/Unit/Component/ES/Worker/WorkerAmountTest.php | 116 ---
tests/Unit/Component/Encoding/Job/AnalyzeTrackChannelsJobTest.php | 52 +-
tests/Unit/Component/Encoding/Service/GenerateSpeechFromSilenceServiceTest.php | 171 ++---
tests/Unit/Component/FFMpeg/Services/GetSpeechIntervalsTest.php | 36 +-
tests/Unit/Component/LanguageDetection/Services/FindSpeechTimeServiceTest.php | 20 +-
tests/Unit/Component/MobileSettings/MobileSettingsControllerTest.php | 5 +-
tests/Unit/Component/ParticipantSpeech/Services/ParticipantSpeechesCreatorTest.php | 75 ++
tests/Unit/Component/ParticipantSpeech/Services/ParticipantSpeechesDeleterTest.php | 63 ++
tests/Unit/Component/ParticipantSpeech/Services/ParticipantSpeechesProviderTest.php | 134 ++++
tests/Unit/Component/ParticipantSpeech/Services/ParticipantSpeechesUploaderTest.php | 57 ++
tests/Unit/Component/Transcription/Diarization/Services/GetNormalizedParticipantSpeechesServiceTest.php | 51 +-
tests/Unit/Component/Transcription/Diarization/Source/MeetingBotSourceTest.php | 29 +-
tests/Unit/Contracts/Services/Calendar/CalendarTraitTest.php | 58 +-
tests/Unit/Http/Controllers/Kiosk/ActivityControllerTest.php | 159 +++++
tests/Unit/Jobs/Activity/Import/ImportTwilioVideoSpeechesJobTest.php | 22 +-
tests/Unit/Jobs/Activity/Import/IsActivityReadyForProcessingJobTest.php | 26 +-
tests/Unit/Jobs/Calendar/SetupCalendarSyncTest.php | 25 -
tests/Unit/Services/Activity/ParticipantsServiceTest.php | 12 +-
tests/Unit/Services/Activity/Twilio/S3RecordingCredentialsServiceTest.php | 180 +++++
tests/Unit/Services/ActivityServiceTest.php | 132 ++++
tests/Unit/Services/Calendar/CalendarActivityServiceTest.php | 150 +++-
tests/Unit/Services/Calendar/Command/ImportParticipantsTest.php | 6 +-
tests/Unit/Services/Calendar/Command/MapActivityDataTest.php | 78 +-
tests/Unit/Services/Calendar/GoogleCalendarServiceTest.php | 116 +++
tests/Unit/Services/Crm/Close/ServiceTest.php | 165 +++++
tests/Unit/Services/Crm/Hubspot/ServiceTest.php | 272 ++++++-
tests/Unit/Services/Crm/Hubspot/ServiceTraits/OpportunitySyncTest.php | 25 +-
tests/Unit/Services/Crm/Hubspot/ServiceTraits/OpportunitySyncTraitMatchActivitiesTest.php | 3 +-
tests/Unit/Services/Crm/IntegrationApp/ServiceTraits/SyncCrmEntitiesTraitOpportunitiesTest.php | 40 ++
tests/Unit/Services/Crm/Pipedrive/ImportOpportunityMatchActivitiesTest.php | 2 +
tests/Unit/Services/Crm/Salesforce/ServiceTest.php | 139 ++++
tests/Unit/Services/Mail/Office/EmailApiClientTest.php | 195 ++---
tests/Unit/Services/RecallAI/RecallAIServiceTest.php | 24 +-
175 files changed, 12562 insertions(+), 2162 deletions(-)
create mode 120000 CLAUDE.md
create mode 100644 app/Component/AiAutomation/Services/CrmFillingEligibilityChecker.php
delete mode 100644 app/Component/ES/ElasticSearchWorkerManager.php
delete mode 100644 app/Component/ES/Processor/Traits/SkipActivityTrait.php
delete mode 100644 app/Component/ES/Worker/ActivityWorker.php
delete mode 100644 app/Component/ES/Worker/EntityWorker.php
delete mode 100644 app/Component/ES/Worker/WorkerAmount.php
delete mode 100644 app/Component/ES/Worker/WorkerInterface.php
create mode 100644 app/Component/ProphetAi/Exceptions/InsufficientTranscriptException.php
create mode 100644 app/Component/Transcription/DTO/Http/Transcription/AssemblyAI/AssemblyAI/NoAssemblyIdException.php
create mode 100644 app/Component/Transcription/DTO/Http/Transcription/TranscriptionIsNotCorrectFormatException.php
create mode 100644 app/Console/Commands/Activities/SetupIntegration/TwilioSetS3RecordingCredentialsCommand.php
create mode 100644 app/Console/Commands/Crm/BackfillOpportunityUserFromAccountCommand.php
delete mode 100644 app/Console/Commands/Elasticsearch/AsyncUpdateEsActivities.php
create mode 100644 app/Console/Commands/IssueMcpTokenCommand.php
create mode 100644 app/Http/Middleware/McpAuditMiddleware.php
create mode 100644 app/Http/Middleware/McpTierMiddleware.php
create mode 100644 app/Mcp/Contracts/McpCallRepositoryInterface.php
create mode 100644 app/Mcp/DTO/ListCallsFilters.php
create mode 100644 app/Mcp/Errors/McpError.php
create mode 100644 app/Mcp/Repositories/McpActivityHydrator.php
create mode 100644 app/Mcp/Repositories/McpCallRepository.php
create mode 100644 app/Mcp/Repositories/McpElasticCallRepository.php
create mode 100644 app/Mcp/Servers/JiminnyServer.php
create mode 100644 app/Mcp/Tools/ListCallsTool.php
create mode 100644 app/Services/Activity/Twilio/S3RecordingCredentialsService.php
create mode 100644 config/mcp.php
create mode 100644 database/migrations/2026_04_30_120000_create_mcp_audit_log_table.php
create mode 100644 docs/mcp/explorer/explorer.html
create mode 100644 docs/mcp/explorer/explorer.template.html
create mode 100644 docs/mcp/explorer/generate.js
create mode 100644 docs/mcp/explorer/tool-explorer-meta.json
create mode 100644 docs/mcp/tools-list.json
create mode 100644 docs/mcp/tools.md
create mode 100644 front-end/src/components/shared/modals/EntityPickerModal/__tests__/useEntitiesCache.spec.ts
create mode 100644 tests/Feature/Component/Nudge/ProcessOrganisationImmediateNudgesJobTest.php
create mode 100644 tests/Feature/Mcp/IssueMcpTokenCommandTest.php
create mode 100644 tests/Feature/Mcp/ListCallsToolElasticFeatureTest.php
create mode 100644 tests/Feature/Mcp/ListCallsToolFeatureTest.php
create mode 100644 tests/Feature/Mcp/McpTestHelpersTrait.php
create mode 100644 tests/Stubs/SentryStub.php
create mode 100644 tests/Unit/Component/AiAutomation/Services/CrmFillingEligibilityCheckerTest.php
delete mode 100644 tests/Unit/Component/ES/ElasticSearchWorkerManagerTest.php
create mode 100644 tests/Unit/Component/ES/Processor/Actions/LoadDocumentsActionTest.php
delete mode 100644 tests/Unit/Component/ES/Processor/Traits/SkipActivityTraitTest.php
delete mode 100644 tests/Unit/Component/ES/Worker/ActivityWorkerTest.php
delete mode 100644 tests/Unit/Component/ES/Worker/EntityWorkerTest.php
delete mode 100644 tests/Unit/Component/ES/Worker/WorkerAmountTest.php
create mode 100644 tests/Unit/Component/ParticipantSpeech/Services/ParticipantSpeechesCreatorTest.php
create mode 100644 tests/Unit/Http/Controllers/Kiosk/ActivityControllerTest.php
create mode 100644 tests/Unit/Services/Activity/Twilio/S3RecordingCredentialsServiceTest.php
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20725-handle-HS-search-rate-limit) $ git status
On branch master
Your branch is behind 'origin/master' by 114 commits, and can be fast-forwarded.
(use "git pull" to update your local branch)
Changes not staged for commit:
(use "git add <file>..." to update what will be committed)
(use "git restore <file>..." to discard changes in working directory)
modified: .env.local
modified: app/Component/SCIM/Constants.php
modified: app/Component/SCIM/ScimProvisioning.php
modified: app/Component/Twilio/Conference/ConferenceManager/SoftPhoneManager.php
modified: app/Console/Commands/JiminnyDebugCommand.php
modified: app/DTO/SCIM/AAD/Request/CoreUserRequest.php
modified: app/DTO/SCIM/AAD/Response/CoreUser.php
modified: app/Services/Telephony/TextMessagingService.php
modified: config/logging.php
Untracked files:
(use "git add <file>..." to include in what will be committed)
.env.nikilocal
.env.other
WEBHOOK_FILTERING_IMPLEMENTATION.md
app/Component/SCIM/Mutators/Attributes/User/RoleAttr.php
app/Console/Commands/Crm/Hubspot/SimulateWebhooksCommand.php
app/Console/Commands/Reports/CreateMockAskJiminnyReportResultCommand.php
app/Rules/ListenerRoleCannotHaveAdminOrManagerPermissionRule.php
ids.txt
public/favicon.ico
raw_sql_query.sql
tests/Unit/Component/SCIM/Mutators/Attributes/User/RoleAttrTest.php
tests/Unit/Policies/CanAccessAiReportsTest.php
tests/Unit/Rules/ListenerRoleCannotHaveAdminOrManagerPermissionRuleTest.php
no changes added to commit (use "git add" and/or "git commit -a")
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (master) $ git pull
remote: Enumerating objects: 306, done.
remote: Counting objects: 100% (299/299), done.
remote: Compressing objects: 100% (183/183), done.
remote: Total 306 (delta 213), reused 171 (delta 116), pack-reused 7 (from 1)
Receiving objects: 100% (306/306), 80.12 KiB | 1000.00 KiB/s, done.
Resolving deltas: 100% (213/213), completed with 53 local objects.
From github.com:jiminny/app
90bca4e4b2..5604af40cf master -> origin/master
4e7078fd8b..0b8343d179 JY-18091-upgrade-to-php-8-5 -> origin/JY-18091-upgrade-to-php-8-5
098eeaa087..d5a447e492 JY-20613-allow-owner-role-on-team-setup -> origin/JY-20613-allow-owner-role-on-team-setup
c3a76ace91..af65249d0f JY-20749-user-can-view-recorded-meetings -> origin/JY-20749-user-can-view-recorded-meetings
d94a285ae7..7ce96cb5fe JY-20808-low-priority-indexing-queue -> origin/JY-20808-low-priority-indexing-queue
* [new branch] JY-20842-remove-partial-updater -> origin/JY-20842-remove-partial-updater
* [new branch] JY-20920-fix-participant-flip -> origin/JY-20920-fix-participant-flip
* [new branch] secfix/npm-20260519 -> origin/secfix/npm-20260519
Updating cb4ebf0c36..5604af40cf
Fast-forward
app/Component/ES/ChunkSize.php | 54 +++++++++++++++++++
app/Component/ES/Processor/DTOs/SelectionList.php | 4 +-
app/Component/ES/Processor/TargetEntitiesSelector.php | 19 ++++---
app/Component/MeetingBot/Service/ParticipantMatcher.php | 46 ++++++++++++----
app/Exceptions/RateLimitException.php | 19 ++++++-
app/Http/Middleware/McpTierMiddleware.php | 27 ++--------
app/Jobs/Crm/MatchActivityCrmData.php | 47 ++++++++++++----
app/Jobs/Middleware/HandleHubspotRateLimit.php | 42 +++++++++++++++
app/Mcp/Servers/JiminnyServer.php | 2 +
app/Mcp/Tools/GetMeTool.php | 157 +++++++++++++++++++++++++++++++++++++++++++++++++++++
app/Models/Feature/FeatureEnum.php | 1 +
app/Services/Activity/HubSpot/ProviderResolver.php | 4 +-
app/Services/Activity/HubSpot/ProviderResolverInterface.php | 2 +-
app/Services/Activity/HubSpot/Providers/Provider.php | 2 +-
app/Services/Activity/HubSpot/Providers/ProviderKixie.php | 2 +-
app/Services/Activity/HubSpot/Providers/ProviderOrum.php | 2 +-
app/Services/Activity/HubSpot/Providers/ProviderTwilio.php | 2 +-
app/Services/Activity/HubSpot/Providers/ProviderTwilioFlex.php | 5 +-
app/Services/Activity/HubSpot/Service.php | 97 +++++++++++++++++++++++++++------
app/Services/Crm/Hubspot/Client.php | 132 +++++++++++++++++++++++++++++++++++++++++++++
app/Services/Crm/Hubspot/HubspotClientInterface.php | 15 ++++++
app/Services/Crm/Hubspot/Pagination/HubspotPaginationService.php | 21 ++++----
app/Services/Crm/Hubspot/Pagination/PaginationState.php | 2 +-
database/migrations/2026_05_13_124153_create_mcp_feature_flag.php | 25 +++++++++
tests/Feature/Mcp/GetMeToolFeatureTest.php | 140 +++++++++++++++++++++++++++++++++++++++++++++++
tests/Feature/Mcp/ListCallsToolFeatureTest.php | 2 +-
tests/Feature/Mcp/McpTestHelpersTrait.php | 19 ++++++-
tests/Unit/Component/ES/ChunkSizeTest.php | 50 +++++++++++++++++
tests/Unit/Component/ES/Processor/DTOs/SelectionListTest.php | 27 +++++++---
tests/Unit/Component/ES/Processor/TargetEntitiesSelectorTest.php | 39 ++++++++------
tests/Unit/Component/MeetingBot/Service/ParticipantMatcherTest.php | 68 ++++++++++++++++++++++-
tests/Unit/Exceptions/RateLimitExceptionTest.php | 56 +++++++++++++++++++
tests/Unit/Jobs/Crm/MatchActivityCrmDataTest.php | 8 +--
tests/Unit/Jobs/Middleware/HandleHubspotRateLimitTest.php | 151 +++++++++++++++++++++++++++++++++++++++++++++++++++
tests/Unit/Services/Activity/HubSpot/ServiceTest.php | 109 +++++++++++++++++++++++++++++++++++++
tests/Unit/Services/Crm/Hubspot/ClientTest.php | 250 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
tests/Unit/Services/Crm/Hubspot/Pagination/HubspotPaginationServiceTest.php | 283 +++++++++++++++++++++---------------------------------------------------------------------------
37 files changed, 1587 insertions(+), 344 deletions(-)
create mode 100644 app/Component/ES/ChunkSize.php
create mode 100644 app/Jobs/Middleware/HandleHubspotRateLimit.php
create mode 100644 app/Mcp/Tools/GetMeTool.php
create mode 100644 database/migrations/2026_05_13_124153_create_mcp_feature_flag.php
create mode 100644 tests/Feature/Mcp/GetMeToolFeatureTest.php
create mode 100644 tests/Unit/Component/ES/ChunkSizeTest.php
create mode 100644 tests/Unit/Exceptions/RateLimitExceptionTest.php
create mode 100644 tests/Unit/Jobs/Middleware/HandleHubspotRateLimitTest.php
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (master) $ git pull
Already up to date.
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (master) $ co -b JY-20676-delete-report-related-objects
Switched to a new branch 'JY-20676-delete-report-related-objects'
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20676-delete-report-related-objects) $ csfix
docker exec -it docker_lamp_1 ./vendor/bin/php-cs-fixer fix --config=.php-cs-fixer.dist.php -v --using-cache=no --diff
PHP CS Fixer 3.87.1 Alexander by Fabien Potencier, Dariusz Ruminski and contributors.
PHP runtime: 8.3.30
Running 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!
Loaded config default from ".php-cs-fixer.dist.php".
5690/5690 [▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓] 100%
1) app/Console/Commands/JiminnyDebugCommand.php (statement_indentation, blank_line_before_statement)
---------- begin diff ----------
--- /home/jiminny/app/Console/Commands/JiminnyDebugCommand.php
+++ /home/jiminny/app/Console/Commands/JiminnyDebugCommand.php
@@ -23,6 +23,7 @@
if ($action === 'redis-set') {
$this->testRedisSet();
+
return;
}
@@ -45,7 +46,7 @@
$ttl = 60;
try {
-// $result = Redis::set($testKey, $testValue, 'EX', $ttl, 'NX');
+ // $result = Redis::set($testKey, $testValue, 'EX', $ttl, 'NX');
$result = Redis::set($testKey, $testValue, ['nx', 'ex' => $ttl]);
if ($result) {
----------- end diff -----------
Fixed 1 of 5690 files i...
|
58091
|
NULL
|
NULL
|
NULL
|
|
58099
|
2046
|
0
|
2026-05-19T11:36:17.724141+00:00
|
/Users/lukas/.screenpipe/data/data/2026-05-19/1779 /Users/lukas/.screenpipe/data/data/2026-05-19/1779190577724_m1.jpg...
|
iTerm2
|
APP (docker)
|
1
|
NULL
|
monitor_1
|
NULL
|
NULL
|
NULL
|
NULL
|
Last login: Mon May 18 09:17:28 on ttys007
Poetry Last login: Mon May 18 09:17:28 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 (pipedrive-sdk-poc) $ co master
error: Your local changes to the following files would be overwritten by checkout:
PIPEDRIVE_V2_MIGRATION_TICKETS.md
Please commit your changes or stash them before you switch branches.
Aborting
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (pipedrive-sdk-poc) $ git pull
remote: Enumerating objects: 1047, done.
remote: Counting objects: 100% (832/832), done.
remote: Compressing objects: 100% (298/298), done.
remote: Total 1047 (delta 634), reused 596 (delta 534), pack-reused 215 (from 3)
Receiving objects: 100% (1047/1047), 353.16 KiB | 1.56 MiB/s, done.
Resolving deltas: 100% (687/687), completed with 107 local objects.
From github.com:jiminny/app
907c54896c..34656c53ed pipedrive-sdk-poc -> origin/pipedrive-sdk-poc
03325ec50f..4e7078fd8b JY-18091-upgrade-to-php-8-5 -> origin/JY-18091-upgrade-to-php-8-5
e7d231e163..bc6a3fce6b JY-20725-handle-HS-search-rate-limit -> origin/JY-20725-handle-HS-search-rate-limit
* [new branch] JY-20749-user-can-view-recorded-meetings -> origin/JY-20749-user-can-view-recorded-meetings
98ca281a04..e0351be069 JY-20808-low-priority-indexing-queue -> origin/JY-20808-low-priority-indexing-queue
569abb5149..3906a9238a JY-20835-mcp-enable-users-to-get-a-list-of-deals-and-their-details -> origin/JY-20835-mcp-enable-users-to-get-a-list-of-deals-and-their-details
ad6c2a86e8..50eb6afba9 JY-20846-mcp-enable-the-ai-to-know-details-about-the-user -> origin/JY-20846-mcp-enable-the-ai-to-know-details-about-the-user
* [new branch] JY-20893-chunk-control-per-update-target -> origin/JY-20893-chunk-control-per-update-target
31c62924a5..cb4ebf0c36 master -> origin/master
Updating 907c54896c..34656c53ed
Fast-forward
PIPEDRIVE_V2_MIGRATION_TICKETS.md | 52 ++++++++++++++++++++++++++++++++++++++++++++++++++++
1 file changed, 52 insertions(+)
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (pipedrive-sdk-poc) $ co master
M .env.local
M config/logging.php
Switched to branch 'master'
Your branch is behind 'origin/master' by 31 commits, and can be fast-forwarded.
(use "git pull" to update your local branch)
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (master) $ git pull
Updating 31c62924a5..cb4ebf0c36
Fast-forward
app/Component/ES/Processor/Traits/SelectEntityListTrait.php | 20 ------
app/Services/Calendar/CalendarActivityService.php | 46 +++++++++++++
app/Services/Calendar/Command/MapActivityData.php | 106 +++-------------------------
docs/mcp/explorer/explorer.html | 104 +++++++++++++++++++++++++---
docs/mcp/explorer/explorer.template.html | 102 ++++++++++++++++++++++++---
docs/mcp/tools-list.json | 373 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++-------
docs/mcp/tools.md | 117 +++++++++++++++++++++++--------
tests/Unit/Component/ES/AsyncUpdateElasticSearchTest.php | 16 +----
tests/Unit/Component/ES/Listeners/UpdateMultipleTargetsListenerTest.php | 10 ---
tests/Unit/Component/ES/Listeners/UpdateSingleTargetListenerTest.php | 6 --
tests/Unit/Component/ES/Processor/TargetEntitiesSelectorTest.php | 9 ---
tests/Unit/Component/ES/Processor/Traits/SelectEntityListTraitTest.php | 15 ++--
tests/Unit/Component/ES/UpdateProcessManagerTest.php | 2 -
tests/Unit/Services/Calendar/CalendarActivityServiceTest.php | 150 ++++++++++++++++++++++++++++++++++++++--
tests/Unit/Services/Calendar/Command/MapActivityDataTest.php | 78 ++-------------------
15 files changed, 832 insertions(+), 322 deletions(-)
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (master) $ co -b JY-20613-allow-owner-role-on-team-setup
Switched to a new branch 'JY-20613-allow-owner-role-on-team-setup'
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20613-allow-owner-role-on-team-setup) $ csfix
docker exec -it docker_lamp_1 ./vendor/bin/php-cs-fixer fix --config=.php-cs-fixer.dist.php -v --using-cache=no --diff
PHP CS Fixer 3.87.1 Alexander by Fabien Potencier, Dariusz Ruminski and contributors.
PHP runtime: 8.3.30
Running 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!
Loaded config default from ".php-cs-fixer.dist.php".
5682/5682 [▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓] 100%
Fixed 0 of 5682 files in 56.978 seconds, 67.00 MB memory used
What's next:
Try Docker Debug for seamless, persistent debugging tools in any container or image → docker debug docker_lamp_1
Learn more at [URL_WITH_CREDENTIALS] ~/jiminny/app (JY-20613-allow-owner-role-on-team-setup) $ csfix
docker exec -it docker_lamp_1 ./vendor/bin/php-cs-fixer fix --config=.php-cs-fixer.dist.php -v --using-cache=no --diff
PHP CS Fixer 3.87.1 Alexander by Fabien Potencier, Dariusz Ruminski and contributors.
PHP runtime: 8.3.30
Running 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!
Loaded config default from ".php-cs-fixer.dist.php".
5682/5682 [▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓] 100%
Fixed 0 of 5682 files in 49.910 seconds, 60.00 MB memory used
What's next:
Try Docker Debug for seamless, persistent debugging tools in any container or image → docker debug docker_lamp_1
Learn more at [URL_WITH_CREDENTIALS] ~/jiminny/app (JY-20613-allow-owner-role-on-team-setup) $ git pull
remote: Enumerating objects: 248, done.
remote: Counting objects: 100% (128/128), done.
remote: Compressing objects: 100% (23/23), done.
remote: Total 59 (delta 43), reused 44 (delta 33), pack-reused 0 (from 0)
Unpacking objects: 100% (59/59), 10.48 KiB | 228.00 KiB/s, done.
From github.com:jiminny/app
b7df560451..190239dfd4 JY-20613-allow-owner-role-on-team-setup -> origin/JY-20613-allow-owner-role-on-team-setup
e0351be069..d94a285ae7 JY-20808-low-priority-indexing-queue -> origin/JY-20808-low-priority-indexing-queue
* [new branch] JY-20920-fix-participant-matcher -> origin/JY-20920-fix-participant-matcher
cb4ebf0c36..90bca4e4b2 master -> origin/master
Merge made by the 'ort' strategy.
app/Component/ES/ChunkSize.php | 54 +++++++++++++++++++++++++++
app/Component/ES/Processor/DTOs/SelectionList.php | 4 +-
app/Component/ES/Processor/TargetEntitiesSelector.php | 19 ++++++----
app/Http/Middleware/McpTierMiddleware.php | 27 +++-----------
app/Mcp/Servers/JiminnyServer.php | 2 +
app/Mcp/Tools/GetMeTool.php | 157 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
app/Models/Feature/FeatureEnum.php | 1 +
database/migrations/2026_05_13_124153_create_mcp_feature_flag.php | 25 +++++++++++++
front-end/src/components/Settings/Kiosk/modals/EditTeamModal/EditTeamModal.vue | 52 ++++++++++++++++++--------
front-end/src/components/Settings/Kiosk/modals/EditTeamModal/__tests__/EditTeamModal.spec.js | 14 +++++++
tests/Feature/Mcp/GetMeToolFeatureTest.php | 140 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
tests/Feature/Mcp/ListCallsToolFeatureTest.php | 2 +-
tests/Feature/Mcp/McpTestHelpersTrait.php | 19 +++++++++-
tests/Unit/Component/ES/ChunkSizeTest.php | 50 +++++++++++++++++++++++++
tests/Unit/Component/ES/Processor/DTOs/SelectionListTest.php | 27 ++++++++++----
tests/Unit/Component/ES/Processor/TargetEntitiesSelectorTest.php | 39 +++++++++++---------
16 files changed, 557 insertions(+), 75 deletions(-)
create mode 100644 app/Component/ES/ChunkSize.php
create mode 100644 app/Mcp/Tools/GetMeTool.php
create mode 100644 database/migrations/2026_05_13_124153_create_mcp_feature_flag.php
create mode 100644 tests/Feature/Mcp/GetMeToolFeatureTest.php
create mode 100644 tests/Unit/Component/ES/ChunkSizeTest.php
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20613-allow-owner-role-on-team-setup) $ git push
Enumerating objects: 40, done.
Counting objects: 100% (34/34), done.
Delta compression using up to 8 threads
Compressing objects: 100% (18/18), done.
Writing objects: 100% (18/18), 1.58 KiB | 1.58 MiB/s, done.
Total 18 (delta 15), reused 0 (delta 0), pack-reused 0
remote: Resolving deltas: 100% (15/15), completed with 13 local objects.
To github.com:jiminny/app.git
190239dfd4..ec1b261264 JY-20613-allow-owner-role-on-team-setup -> JY-20613-allow-owner-role-on-team-setup
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20613-allow-owner-role-on-team-setup) $ gbr
* JY-20613-allow-owner-role-on-team-setup
pipedrive-sdk-poc
master
JY-20903-update_activity-stage-on-opportunity-change
JY-20904-fix-update-es-on-activity-command
JY-20891-improve-sms-text-relays
JY-20725-handle-HS-search-rate-limit
JY-20818-move-AJ-reports-to-separated-datadog-metric
JY-20773-fix-automated-reports-user-pilot-tracking
JY-20157-AJ-report-not-send-notification
JY-20508-notify-before-AJ-report-expiration
JY-20372-ai-reports-promotion-pages
JY-20352-sync-opportunities-without-a-local-owner-user-id-is-null
JY-20738-debug-AJ-tracking-UP
a
JY-18909-automated-reports-ask-jiminny
JY-20692-fix-integration-app-[API_KEY]
JY-20553-debug-crm-sync-delays
JY-20698-fix-SF-activity-types-on-new-playbook
JY-20543-AJ-report-tracking
JY-20384-handle-auto-sync-with-no-access-to-event-type
JY-20458-ask-jiminny-user-definitions
JY-19666-fix-import-contacts-account-association
JY-19666-HS-import-contacts-and-accounts-batch-job
JY-20458-Ask-Jiminny-Reports
JY-20200-batch-update-CRM-objects-Salesforce
JY-19666-HS-webhooks-add-contact-and-company
JY-20348-trigger-setup-DI-layout-on-team-creation
JY-20326-refactor-info-message-in-command
JY-20317-fix-auto-log-delay-issue-on-all-channels-disabled
JY-20312-remove-on-update-change-last-synced-at-crm-configurations
JY-20306-SF-skip-auto-sync-for-task-based-playbook
JY-20192-remove-deleted-team-from-saved-search-filters
JY-20197-import-opportunity-batch-job
JY-20293-enable-status-field-for-pipedrive-deals
JY-20191-remove-commands-interactive-prompts
JY-20118-change-default-sync-strategy
JY-20183-add-cache-on-auto-log-delay
JY-20197-add-import-opportunity-batch-job
20118-hs-opportunity-make-webhook-strategy-default
JY-20118-make-default-hs-opportunity-sync-strategy-webhook-based
JY-20196-handle-opportunity-without-note
JY-20118-improve-opportunity-import
JY-20189-handle-activity-search-on-deleted-groups
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20613-allow-owner-role-on-team-setup) $ co JY-20725-handle-HS-search-rate-limit
M .env.local
M config/logging.php
Switched to branch 'JY-20725-handle-HS-search-rate-limit'
Your branch is behind 'origin/JY-20725-handle-HS-search-rate-limit' by 439 commits, and can be fast-forwarded.
(use "git pull" to update your local branch)
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20725-handle-HS-search-rate-limit) $ git pull
Updating 0f3e438941..bc6a3fce6b
Fast-forward
.gitignore | 3 +-
.windsurfrules | 168 ++---
CLAUDE.md | 1 +
app/Component/ActivityAnalytics/Service/CalculateTalkTimeOffsetsFromTranscription.php | 24 +-
app/Component/AiActivityType/Services/AiActivityTypeEligibilityChecker.php | 28 +-
app/Component/AiAutomation/Actions/PrepareUpdateDtoAction.php | 32 +-
app/Component/AiAutomation/Services/CrmFillingEligibilityChecker.php | 47 ++
app/Component/AiAutomation/TestCrmAiPromptService.php | 14 +
app/Component/AiCallScoring/Services/AiCallScoringEligibilityChecker.php | 9 +
app/Component/ES/ElasticSearchDocumentPartialUpdater.php | 13 +-
app/Component/ES/ElasticSearchWorkerManager.php | 86 ---
app/Component/ES/Processor/Actions/LoadDocumentsAction.php | 80 +--
app/Component/ES/Processor/EntityQueryBuilder.php | 12 +-
app/Component/ES/Processor/TargetEntitiesSelector.php | 2 +-
app/Component/ES/Processor/Traits/SkipActivityTrait.php | 25 -
app/Component/ES/Repositories/EsResetActivityRepository.php | 11 +-
app/Component/ES/Worker/ActivityWorker.php | 73 --
app/Component/ES/Worker/EntityWorker.php | 44 --
app/Component/ES/Worker/WorkerAmount.php | 60 --
app/Component/ES/Worker/WorkerInterface.php | 15 -
app/Component/ElasticSearch/Contract/Searchable.php | 4 +
app/Component/Encoding/Job/AnalyzeTrackChannelsJob.php | 20 +-
app/Component/Encoding/Service/GenerateSpeechFromSilenceService.php | 85 ++-
app/Component/FFMpeg/Services/GetSpeechIntervalsService.php | 18 +-
app/Component/LanguageDetection/Services/FindSpeechTimeService.php | 22 +-
app/Component/Nudge/Job/ProcessOrganisationImmediateNudgesJob.php | 218 +++++-
app/Component/ParagraphBreaker/Services/TranscriptionParagraphsService.php | 4 +
app/Component/ParticipantSpeech/Services/ParticipantSpeechesCreator.php | 33 +
app/Component/ParticipantSpeech/Services/ParticipantSpeechesDeleter.php | 15 +
app/Component/ParticipantSpeech/Services/ParticipantSpeechesProvider.php | 51 +-
app/Component/ParticipantSpeech/Services/ParticipantSpeechesUploader.php | 36 +
app/Component/ProphetAi/Exceptions/InsufficientTranscriptException.php | 11 +
app/Component/Transcription/DTO/Http/Transcription/AssemblyAI/AssemblyAI/NoAssemblyIdException.php | 11 +
app/Component/Transcription/DTO/Http/Transcription/AssemblyAI/AssemblyAI/SuccessfulResponse.php | 6 +
app/Component/Transcription/DTO/Http/Transcription/TranscriptionIsNotCorrectFormatException.php | 11 +
app/Component/Transcription/Diarization/Services/GetNormalizedParticipantSpeechesService.php | 23 +-
app/Component/Transcription/Diarization/Source/MeetingBotSource.php | 16 +-
app/Component/Transcription/TranscriptionProcessor/TranscriptionProcessor.php | 3 +
app/Console/Commands/Activities/ActivityHardDeleteCommand.php | 4 +-
app/Console/Commands/Activities/Copy.php | 2 +
app/Console/Commands/Activities/SetupIntegration/TwilioSetS3RecordingCredentialsCommand.php | 119 ++++
app/Console/Commands/Activities/UpdateActivityElasticSearchDocumentCommand.php | 10 +-
app/Console/Commands/Crm/BackfillOpportunityUserFromAccountCommand.php | 126 ++++
app/Console/Commands/Elasticsearch/AsyncUpdateEsActivities.php | 19 -
app/Console/Commands/Elasticsearch/AsyncUpdateEsEntities.php | 50 +-
app/Console/Commands/Elasticsearch/ResetAsyncElasticSearchCommand.php | 30 +-
app/Console/Commands/GeckoExport/GeckoExportParticipantSpeechesCommand.php | 14 +-
app/Console/Commands/IssueMcpTokenCommand.php | 84 +++
app/Console/Commands/JiminnyDebugCommand.php | 7 +-
app/Console/Commands/Tracks/CleanupActivityTracksCommand.php | 2 +-
app/Console/Kernel.php | 6 +-
app/Contracts/Services/Calendar/CalendarTrait.php | 80 ++-
app/Events/AutomatedReports/AutomatedReportGenerated.php | 3 +
app/Http/Controllers/API/AiCallScoring/AiScorecardController.php | 7 +-
app/Http/Controllers/API/TeamAiAutomationController.php | 8 +
app/Http/Controllers/CustomerApi/CustomerApiController.php | 4 +-
app/Http/Controllers/Kiosk/ActivityController.php | 58 +-
app/Http/Controllers/Settings/PlaybookController.php | 15 +-
app/Http/Kernel.php | 23 +
app/Http/Middleware/McpAuditMiddleware.php | 156 ++++
app/Http/Middleware/McpTierMiddleware.php | 54 ++
app/Http/Requests/API/V2/ZapierUploadActivityRequest.php | 28 +-
app/Jobs/Activity/Import/ImportTwilioVideoSpeechesJob.php | 25 +-
app/Jobs/Activity/Import/IsActivityReadyForProcessingJob.php | 10 +-
app/Jobs/Calendar/SetupCalendarSync.php | 21 +-
app/Jobs/ImportRemoteTrackJob.php | 96 ++-
app/Jobs/Mailbox/EmailTextRelay.php | 15 +-
app/Mcp/Contracts/McpCallRepositoryInterface.php | 30 +
app/Mcp/DTO/ListCallsFilters.php | 29 +
app/Mcp/Errors/McpError.php | 123 ++++
app/Mcp/Repositories/McpActivityHydrator.php | 145 ++++
app/Mcp/Repositories/McpCallRepository.php | 84 +++
app/Mcp/Repositories/McpElasticCallRepository.php | 171 +++++
app/Mcp/Servers/JiminnyServer.php | 38 +
app/Mcp/Tools/ListCallsTool.php | 205 ++++++
app/Models/Activity.php | 10 +-
app/Models/Activity/Transcription.php | 17 +-
app/Models/ElasticSearch/OpportunityElasticSearchTrait.php | 5 +
app/Models/Participant.php | 1 +
app/Providers/AppServiceProvider.php | 22 +
app/Repositories/Crm/ContactRepository.php | 69 +-
app/Repositories/ParticipantSpeechRepository.php | 13 +-
app/Services/Activity/ParticipantsService.php | 19 +-
app/Services/Activity/Twilio/S3RecordingCredentialsService.php | 82 +++
app/Services/ActivityService.php | 21 +-
app/Services/Calendar/CalendarActivityService.php | 46 ++
app/Services/Calendar/Command/ImportParticipants.php | 1 +
app/Services/Calendar/Command/MapActivityData.php | 106 +--
app/Services/Calendar/GoogleCalendarService.php | 12 +-
app/Services/Crm/Close/Processor/OpportunityProcessor.php | 2 +-
app/Services/Crm/Close/Service.php | 22 +-
app/Services/Crm/Copper/Service.php | 12 +-
app/Services/Crm/Hubspot/Service.php | 154 +++-
app/Services/Crm/Hubspot/ServiceTraits/OpportunitySyncTrait.php | 88 ++-
app/Services/Crm/IntegrationApp/ServiceTraits/SyncCrmEntitiesTrait.php | 22 +-
app/Services/Crm/Pipedrive/Service.php | 17 +-
app/Services/Crm/Salesforce/Service.php | 42 +-
app/Services/Mail/Office/EmailApiClient.php | 129 +---
app/Services/RecallAI/Commands/ScheduleBotCommand.php | 39 +-
app/Services/RecallAI/RecallAIService.php | 22 +-
composer.json | 3 +-
composer.lock | 87 ++-
config/mcp.php | 23 +
database/migrations/2026_04_30_120000_create_mcp_audit_log_table.php | 36 +
docs/mcp/explorer/explorer.html | 697 ++++++++++++++++++
docs/mcp/explorer/explorer.template.html | 697 ++++++++++++++++++
docs/mcp/explorer/generate.js | 215 ++++++
docs/mcp/explorer/tool-explorer-meta.json | 11 +
docs/mcp/tools-list.json | 2536 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
docs/mcp/tools.md | 621 ++++++++++++++++
front-end/package.json | 4 +-
front-end/src/components/Settings/OrgSettings/AiAutomation/CrmFilling/TemplateFieldForm.vue | 28 +-
front-end/src/components/Settings/OrgSettings/Playbooks/AddEditPlaybook.vue | 10 +
front-end/src/components/playback/comments/ActivityComment.less | 10 +-
front-end/src/components/shared/PromptTester/PromptTester.vue | 12 +-
front-end/src/components/shared/__tests__/PromptTester.spec.js | 35 +
front-end/src/components/shared/modals/EntityPickerModal/__tests__/useEntitiesCache.spec.ts | 37 +
front-end/src/components/shared/modals/EntityPickerModal/useEntitiesCache.ts | 9 +
front-end/yarn.lock | 16 +-
phpstan-baseline.neon | 50 --
routes/api.php | 11 +
sonar-project.properties | 91 ++-
tests/Feature/Component/Nudge/ProcessOrganisationImmediateNudgesJobTest.php | 534 ++++++++++++++
tests/Feature/Jobs/ImportRemoteTrackJobTest.php | 283 +++++++-
tests/Feature/Mcp/IssueMcpTokenCommandTest.php | 53 ++
tests/Feature/Mcp/ListCallsToolElasticFeatureTest.php | 155 ++++
tests/Feature/Mcp/ListCallsToolFeatureTest.php | 352 ++++++++++
tests/Feature/Mcp/McpTestHelpersTrait.php | 77 ++
tests/Feature/Services/Team/TeamDeleteHandlers/Retention/RetentionRepositoryHandlerTest.php | 1 +
tests/Stubs/SentryStub.php | 18 +
tests/Unit/Component/ActivityAnalytics/Service/CalculateTalkTimeOffsetFromTranscriptionTest.php | 28 +-
tests/Unit/Component/AiActivityType/Services/AiActivityTypeEligibilityCheckerTest.php | 103 ++-
tests/Unit/Component/AiAutomation/Actions/PrepareUpdateDtoActionTest.php | 91 +++
tests/Unit/Component/AiAutomation/Services/CrmFillingEligibilityCheckerTest.php | 124 ++++
tests/Unit/Component/AiAutomation/TestCrmAiPromptServiceTest.php | 67 +-
tests/Unit/Component/AiCallScoring/Services/AiCallScoringEligibilityCheckerTest.php | 55 ++
tests/Unit/Component/ES/ElasticSearchWorkerManagerTest.php | 135 ----
tests/Unit/Component/ES/Processor/Actions/LoadDocumentsActionTest.php | 220 ++++++
tests/Unit/Component/ES/Processor/EntityQueryBuilderTest.php | 21 +-
tests/Unit/Component/ES/Processor/Traits/SkipActivityTraitTest.php | 51 --
tests/Unit/Component/ES/Worker/ActivityWorkerTest.php | 174 -----
tests/Unit/Component/ES/Worker/EntityWorkerTest.php | 97 ---
tests/Unit/Component/ES/Worker/WorkerAmountTest.php | 116 ---
tests/Unit/Component/Encoding/Job/AnalyzeTrackChannelsJobTest.php | 52 +-
tests/Unit/Component/Encoding/Service/GenerateSpeechFromSilenceServiceTest.php | 171 ++---
tests/Unit/Component/FFMpeg/Services/GetSpeechIntervalsTest.php | 36 +-
tests/Unit/Component/LanguageDetection/Services/FindSpeechTimeServiceTest.php | 20 +-
tests/Unit/Component/MobileSettings/MobileSettingsControllerTest.php | 5 +-
tests/Unit/Component/ParticipantSpeech/Services/ParticipantSpeechesCreatorTest.php | 75 ++
tests/Unit/Component/ParticipantSpeech/Services/ParticipantSpeechesDeleterTest.php | 63 ++
tests/Unit/Component/ParticipantSpeech/Services/ParticipantSpeechesProviderTest.php | 134 ++++
tests/Unit/Component/ParticipantSpeech/Services/ParticipantSpeechesUploaderTest.php | 57 ++
tests/Unit/Component/Transcription/Diarization/Services/GetNormalizedParticipantSpeechesServiceTest.php | 51 +-
tests/Unit/Component/Transcription/Diarization/Source/MeetingBotSourceTest.php | 29 +-
tests/Unit/Contracts/Services/Calendar/CalendarTraitTest.php | 58 +-
tests/Unit/Http/Controllers/Kiosk/ActivityControllerTest.php | 159 +++++
tests/Unit/Jobs/Activity/Import/ImportTwilioVideoSpeechesJobTest.php | 22 +-
tests/Unit/Jobs/Activity/Import/IsActivityReadyForProcessingJobTest.php | 26 +-
tests/Unit/Jobs/Calendar/SetupCalendarSyncTest.php | 25 -
tests/Unit/Services/Activity/ParticipantsServiceTest.php | 12 +-
tests/Unit/Services/Activity/Twilio/S3RecordingCredentialsServiceTest.php | 180 +++++
tests/Unit/Services/ActivityServiceTest.php | 132 ++++
tests/Unit/Services/Calendar/CalendarActivityServiceTest.php | 150 +++-
tests/Unit/Services/Calendar/Command/ImportParticipantsTest.php | 6 +-
tests/Unit/Services/Calendar/Command/MapActivityDataTest.php | 78 +-
tests/Unit/Services/Calendar/GoogleCalendarServiceTest.php | 116 +++
tests/Unit/Services/Crm/Close/ServiceTest.php | 165 +++++
tests/Unit/Services/Crm/Hubspot/ServiceTest.php | 272 ++++++-
tests/Unit/Services/Crm/Hubspot/ServiceTraits/OpportunitySyncTest.php | 25 +-
tests/Unit/Services/Crm/Hubspot/ServiceTraits/OpportunitySyncTraitMatchActivitiesTest.php | 3 +-
tests/Unit/Services/Crm/IntegrationApp/ServiceTraits/SyncCrmEntitiesTraitOpportunitiesTest.php | 40 ++
tests/Unit/Services/Crm/Pipedrive/ImportOpportunityMatchActivitiesTest.php | 2 +
tests/Unit/Services/Crm/Salesforce/ServiceTest.php | 139 ++++
tests/Unit/Services/Mail/Office/EmailApiClientTest.php | 195 ++---
tests/Unit/Services/RecallAI/RecallAIServiceTest.php | 24 +-
175 files changed, 12562 insertions(+), 2162 deletions(-)
create mode 120000 CLAUDE.md
create mode 100644 app/Component/AiAutomation/Services/CrmFillingEligibilityChecker.php
delete mode 100644 app/Component/ES/ElasticSearchWorkerManager.php
delete mode 100644 app/Component/ES/Processor/Traits/SkipActivityTrait.php
delete mode 100644 app/Component/ES/Worker/ActivityWorker.php
delete mode 100644 app/Component/ES/Worker/EntityWorker.php
delete mode 100644 app/Component/ES/Worker/WorkerAmount.php
delete mode 100644 app/Component/ES/Worker/WorkerInterface.php
create mode 100644 app/Component/ProphetAi/Exceptions/InsufficientTranscriptException.php
create mode 100644 app/Component/Transcription/DTO/Http/Transcription/AssemblyAI/AssemblyAI/NoAssemblyIdException.php
create mode 100644 app/Component/Transcription/DTO/Http/Transcription/TranscriptionIsNotCorrectFormatException.php
create mode 100644 app/Console/Commands/Activities/SetupIntegration/TwilioSetS3RecordingCredentialsCommand.php
create mode 100644 app/Console/Commands/Crm/BackfillOpportunityUserFromAccountCommand.php
delete mode 100644 app/Console/Commands/Elasticsearch/AsyncUpdateEsActivities.php
create mode 100644 app/Console/Commands/IssueMcpTokenCommand.php
create mode 100644 app/Http/Middleware/McpAuditMiddleware.php
create mode 100644 app/Http/Middleware/McpTierMiddleware.php
create mode 100644 app/Mcp/Contracts/McpCallRepositoryInterface.php
create mode 100644 app/Mcp/DTO/ListCallsFilters.php
create mode 100644 app/Mcp/Errors/McpError.php
create mode 100644 app/Mcp/Repositories/McpActivityHydrator.php
create mode 100644 app/Mcp/Repositories/McpCallRepository.php
create mode 100644 app/Mcp/Repositories/McpElasticCallRepository.php
create mode 100644 app/Mcp/Servers/JiminnyServer.php
create mode 100644 app/Mcp/Tools/ListCallsTool.php
create mode 100644 app/Services/Activity/Twilio/S3RecordingCredentialsService.php
create mode 100644 config/mcp.php
create mode 100644 database/migrations/2026_04_30_120000_create_mcp_audit_log_table.php
create mode 100644 docs/mcp/explorer/explorer.html
create mode 100644 docs/mcp/explorer/explorer.template.html
create mode 100644 docs/mcp/explorer/generate.js
create mode 100644 docs/mcp/explorer/tool-explorer-meta.json
create mode 100644 docs/mcp/tools-list.json
create mode 100644 docs/mcp/tools.md
create mode 100644 front-end/src/components/shared/modals/EntityPickerModal/__tests__/useEntitiesCache.spec.ts
create mode 100644 tests/Feature/Component/Nudge/ProcessOrganisationImmediateNudgesJobTest.php
create mode 100644 tests/Feature/Mcp/IssueMcpTokenCommandTest.php
create mode 100644 tests/Feature/Mcp/ListCallsToolElasticFeatureTest.php
create mode 100644 tests/Feature/Mcp/ListCallsToolFeatureTest.php
create mode 100644 tests/Feature/Mcp/McpTestHelpersTrait.php
create mode 100644 tests/Stubs/SentryStub.php
create mode 100644 tests/Unit/Component/AiAutomation/Services/CrmFillingEligibilityCheckerTest.php
delete mode 100644 tests/Unit/Component/ES/ElasticSearchWorkerManagerTest.php
create mode 100644 tests/Unit/Component/ES/Processor/Actions/LoadDocumentsActionTest.php
delete mode 100644 tests/Unit/Component/ES/Processor/Traits/SkipActivityTraitTest.php
delete mode 100644 tests/Unit/Component/ES/Worker/ActivityWorkerTest.php
delete mode 100644 tests/Unit/Component/ES/Worker/EntityWorkerTest.php
delete mode 100644 tests/Unit/Component/ES/Worker/WorkerAmountTest.php
create mode 100644 tests/Unit/Component/ParticipantSpeech/Services/ParticipantSpeechesCreatorTest.php
create mode 100644 tests/Unit/Http/Controllers/Kiosk/ActivityControllerTest.php
create mode 100644 tests/Unit/Services/Activity/Twilio/S3RecordingCredentialsServiceTest.php
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20725-handle-HS-search-rate-limit) $ git status
On branch master
Your branch is behind 'origin/master' by 114 commits, and can be fast-forwarded.
(use "git pull" to update your local branch)
Changes not staged for commit:
(use "git add <file>..." to update what will be committed)
(use "git restore <file>..." to discard changes in working directory)
modified: .env.local
modified: app/Component/SCIM/Constants.php
modified: app/Component/SCIM/ScimProvisioning.php
modified: app/Component/Twilio/Conference/ConferenceManager/SoftPhoneManager.php
modified: app/Console/Commands/JiminnyDebugCommand.php
modified: app/DTO/SCIM/AAD/Request/CoreUserRequest.php
modified: app/DTO/SCIM/AAD/Response/CoreUser.php
modified: app/Services/Telephony/TextMessagingService.php
modified: config/logging.php
Untracked files:
(use "git add <file>..." to include in what will be committed)
.env.nikilocal
.env.other
WEBHOOK_FILTERING_IMPLEMENTATION.md
app/Component/SCIM/Mutators/Attributes/User/RoleAttr.php
app/Console/Commands/Crm/Hubspot/SimulateWebhooksCommand.php
app/Console/Commands/Reports/CreateMockAskJiminnyReportResultCommand.php
app/Rules/ListenerRoleCannotHaveAdminOrManagerPermissionRule.php
ids.txt
public/favicon.ico
raw_sql_query.sql
tests/Unit/Component/SCIM/Mutators/Attributes/User/RoleAttrTest.php
tests/Unit/Policies/CanAccessAiReportsTest.php
tests/Unit/Rules/ListenerRoleCannotHaveAdminOrManagerPermissionRuleTest.php
no changes added to commit (use "git add" and/or "git commit -a")
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (master) $ git pull
remote: Enumerating objects: 306, done.
remote: Counting objects: 100% (299/299), done.
remote: Compressing objects: 100% (183/183), done.
remote: Total 306 (delta 213), reused 171 (delta 116), pack-reused 7 (from 1)
Receiving objects: 100% (306/306), 80.12 KiB | 1000.00 KiB/s, done.
Resolving deltas: 100% (213/213), completed with 53 local objects.
From github.com:jiminny/app
90bca4e4b2..5604af40cf master -> origin/master
4e7078fd8b..0b8343d179 JY-18091-upgrade-to-php-8-5 -> origin/JY-18091-upgrade-to-php-8-5
098eeaa087..d5a447e492 JY-20613-allow-owner-role-on-team-setup -> origin/JY-20613-allow-owner-role-on-team-setup
c3a76ace91..af65249d0f JY-20749-user-can-view-recorded-meetings -> origin/JY-20749-user-can-view-recorded-meetings
d94a285ae7..7ce96cb5fe JY-20808-low-priority-indexing-queue -> origin/JY-20808-low-priority-indexing-queue
* [new branch] JY-20842-remove-partial-updater -> origin/JY-20842-remove-partial-updater
* [new branch] JY-20920-fix-participant-flip -> origin/JY-20920-fix-participant-flip
* [new branch] secfix/npm-20260519 -> origin/secfix/npm-20260519
Updating cb4ebf0c36..5604af40cf
Fast-forward
app/Component/ES/ChunkSize.php | 54 +++++++++++++++++++
app/Component/ES/Processor/DTOs/SelectionList.php | 4 +-
app/Component/ES/Processor/TargetEntitiesSelector.php | 19 ++++---
app/Component/MeetingBot/Service/ParticipantMatcher.php | 46 ++++++++++++----
app/Exceptions/RateLimitException.php | 19 ++++++-
app/Http/Middleware/McpTierMiddleware.php | 27 ++--------
app/Jobs/Crm/MatchActivityCrmData.php | 47 ++++++++++++----
app/Jobs/Middleware/HandleHubspotRateLimit.php | 42 +++++++++++++++
app/Mcp/Servers/JiminnyServer.php | 2 +
app/Mcp/Tools/GetMeTool.php | 157 +++++++++++++++++++++++++++++++++++++++++++++++++++++
app/Models/Feature/FeatureEnum.php | 1 +
app/Services/Activity/HubSpot/ProviderResolver.php | 4 +-
app/Services/Activity/HubSpot/ProviderResolverInterface.php | 2 +-
app/Services/Activity/HubSpot/Providers/Provider.php | 2 +-
app/Services/Activity/HubSpot/Providers/ProviderKixie.php | 2 +-
app/Services/Activity/HubSpot/Providers/ProviderOrum.php | 2 +-
app/Services/Activity/HubSpot/Providers/ProviderTwilio.php | 2 +-
app/Services/Activity/HubSpot/Providers/ProviderTwilioFlex.php | 5 +-
app/Services/Activity/HubSpot/Service.php | 97 +++++++++++++++++++++++++++------
app/Services/Crm/Hubspot/Client.php | 132 +++++++++++++++++++++++++++++++++++++++++++++
app/Services/Crm/Hubspot/HubspotClientInterface.php | 15 ++++++
app/Services/Crm/Hubspot/Pagination/HubspotPaginationService.php | 21 ++++----
app/Services/Crm/Hubspot/Pagination/PaginationState.php | 2 +-
database/migrations/2026_05_13_124153_create_mcp_feature_flag.php | 25 +++++++++
tests/Feature/Mcp/GetMeToolFeatureTest.php | 140 +++++++++++++++++++++++++++++++++++++++++++++++
tests/Feature/Mcp/ListCallsToolFeatureTest.php | 2 +-
tests/Feature/Mcp/McpTestHelpersTrait.php | 19 ++++++-
tests/Unit/Component/ES/ChunkSizeTest.php | 50 +++++++++++++++++
tests/Unit/Component/ES/Processor/DTOs/SelectionListTest.php | 27 +++++++---
tests/Unit/Component/ES/Processor/TargetEntitiesSelectorTest.php | 39 ++++++++------
tests/Unit/Component/MeetingBot/Service/ParticipantMatcherTest.php | 68 ++++++++++++++++++++++-
tests/Unit/Exceptions/RateLimitExceptionTest.php | 56 +++++++++++++++++++
tests/Unit/Jobs/Crm/MatchActivityCrmDataTest.php | 8 +--
tests/Unit/Jobs/Middleware/HandleHubspotRateLimitTest.php | 151 +++++++++++++++++++++++++++++++++++++++++++++++++++
tests/Unit/Services/Activity/HubSpot/ServiceTest.php | 109 +++++++++++++++++++++++++++++++++++++
tests/Unit/Services/Crm/Hubspot/ClientTest.php | 250 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
tests/Unit/Services/Crm/Hubspot/Pagination/HubspotPaginationServiceTest.php | 283 +++++++++++++++++++++---------------------------------------------------------------------------
37 files changed, 1587 insertions(+), 344 deletions(-)
create mode 100644 app/Component/ES/ChunkSize.php
create mode 100644 app/Jobs/Middleware/HandleHubspotRateLimit.php
create mode 100644 app/Mcp/Tools/GetMeTool.php
create mode 100644 database/migrations/2026_05_13_124153_create_mcp_feature_flag.php
create mode 100644 tests/Feature/Mcp/GetMeToolFeatureTest.php
create mode 100644 tests/Unit/Component/ES/ChunkSizeTest.php
create mode 100644 tests/Unit/Exceptions/RateLimitExceptionTest.php
create mode 100644 tests/Unit/Jobs/Middleware/HandleHubspotRateLimitTest.php
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (master) $ git pull
Already up to date.
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (master) $ co -b JY-20676-delete-report-related-objects
Switched to a new branch 'JY-20676-delete-report-related-objects'
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20676-delete-report-related-objects) $ csfix
docker exec -it docker_lamp_1 ./vendor/bin/php-cs-fixer fix --config=.php-cs-fixer.dist.php -v --using-cache=no --diff
PHP CS Fixer 3.87.1 Alexander by Fabien Potencier, Dariusz Ruminski and contributors.
PHP runtime: 8.3.30
Running 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!
Loaded config default from ".php-cs-fixer.dist.php".
5690/5690 [▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓] 100%
1) app/Console/Commands/JiminnyDebugCommand.php (statement_indentation, blank_line_before_statement)
---------- begin diff ----------
--- /home/jiminny/app/Console/Commands/JiminnyDebugCommand.php
+++ /home/jiminny/app/Console/Commands/JiminnyDebugCommand.php
@@ -23,6 +23,7 @@
if ($action === 'redis-set') {
$this->testRedisSet();
+
return;
}
@@ -45,7 +46,7 @@
$ttl = 60;
try {
-// $result = Redis::set($testKey, $testValue, 'EX', $ttl, 'NX');
+ // $result = Redis::set($testKey, $testValue, 'EX', $ttl, 'NX');
$result = Redis::set($testKey, $testValue, ['nx', 'ex' => $ttl]);
if ($result) {
----------- end diff -----------
Fixed 1 of 5690 files i...
|
[{"role":"AXTextArea","text [{"role":"AXTextArea","text":"Last login: Mon May 18 09:17:28 on ttys007\n\nPoetry could not find a pyproject.toml file in /Users/lukas/jiminny/app or its parents\n\nPoetry could not find a pyproject.toml file in /Users/lukas/jiminny/app or its parents\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (pipedrive-sdk-poc) $ co master\nerror: Your local changes to the following files would be overwritten by checkout:\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tPIPEDRIVE_V2_MIGRATION_TICKETS.md\nPlease commit your changes or stash them before you switch branches.\nAborting\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (pipedrive-sdk-poc) $ git pull\nremote: Enumerating objects: 1047, done.\nremote: Counting objects: 100% (832/832), done.\nremote: Compressing objects: 100% (298/298), done.\nremote: Total 1047 (delta 634), reused 596 (delta 534), pack-reused 215 (from 3)\nReceiving objects: 100% (1047/1047), 353.16 KiB | 1.56 MiB/s, done.\nResolving deltas: 100% (687/687), completed with 107 local objects.\nFrom github.com:jiminny/app\n 907c54896c..34656c53ed pipedrive-sdk-poc -> origin/pipedrive-sdk-poc\n 03325ec50f..4e7078fd8b JY-18091-upgrade-to-php-8-5 -> origin/JY-18091-upgrade-to-php-8-5\n e7d231e163..bc6a3fce6b JY-20725-handle-HS-search-rate-limit -> origin/JY-20725-handle-HS-search-rate-limit\n * [new branch] JY-20749-user-can-view-recorded-meetings -> origin/JY-20749-user-can-view-recorded-meetings\n 98ca281a04..e0351be069 JY-20808-low-priority-indexing-queue -> origin/JY-20808-low-priority-indexing-queue\n 569abb5149..3906a9238a JY-20835-mcp-enable-users-to-get-a-list-of-deals-and-their-details -> origin/JY-20835-mcp-enable-users-to-get-a-list-of-deals-and-their-details\n ad6c2a86e8..50eb6afba9 JY-20846-mcp-enable-the-ai-to-know-details-about-the-user -> origin/JY-20846-mcp-enable-the-ai-to-know-details-about-the-user\n * [new branch] JY-20893-chunk-control-per-update-target -> origin/JY-20893-chunk-control-per-update-target\n 31c62924a5..cb4ebf0c36 master -> origin/master\nUpdating 907c54896c..34656c53ed\nFast-forward\n PIPEDRIVE_V2_MIGRATION_TICKETS.md | 52 ++++++++++++++++++++++++++++++++++++++++++++++++++++\n 1 file changed, 52 insertions(+)\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (pipedrive-sdk-poc) $ co master\nM\u0000\u0000\u0000\u0000\u0000\u0000\t.env.local\nM\u0000\u0000\u0000\u0000\u0000\u0000\tconfig/logging.php\nSwitched to branch 'master'\nYour branch is behind 'origin/master' by 31 commits, and can be fast-forwarded.\n (use \"git pull\" to update your local branch)\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (master) $ git pull\nUpdating 31c62924a5..cb4ebf0c36\nFast-forward\n app/Component/ES/Processor/Traits/SelectEntityListTrait.php | 20 ------\n app/Services/Calendar/CalendarActivityService.php | 46 +++++++++++++\n app/Services/Calendar/Command/MapActivityData.php | 106 +++-------------------------\n docs/mcp/explorer/explorer.html | 104 +++++++++++++++++++++++++---\n docs/mcp/explorer/explorer.template.html | 102 ++++++++++++++++++++++++---\n docs/mcp/tools-list.json | 373 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++-------\n docs/mcp/tools.md | 117 +++++++++++++++++++++++--------\n tests/Unit/Component/ES/AsyncUpdateElasticSearchTest.php | 16 +----\n tests/Unit/Component/ES/Listeners/UpdateMultipleTargetsListenerTest.php | 10 ---\n tests/Unit/Component/ES/Listeners/UpdateSingleTargetListenerTest.php | 6 --\n tests/Unit/Component/ES/Processor/TargetEntitiesSelectorTest.php | 9 ---\n tests/Unit/Component/ES/Processor/Traits/SelectEntityListTraitTest.php | 15 ++--\n tests/Unit/Component/ES/UpdateProcessManagerTest.php | 2 -\n tests/Unit/Services/Calendar/CalendarActivityServiceTest.php | 150 ++++++++++++++++++++++++++++++++++++++--\n tests/Unit/Services/Calendar/Command/MapActivityDataTest.php | 78 ++-------------------\n 15 files changed, 832 insertions(+), 322 deletions(-)\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (master) $ co -b JY-20613-allow-owner-role-on-team-setup\nSwitched to a new branch 'JY-20613-allow-owner-role-on-team-setup'\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20613-allow-owner-role-on-team-setup) $ csfix\ndocker exec -it docker_lamp_1 ./vendor/bin/php-cs-fixer fix --config=.php-cs-fixer.dist.php -v --using-cache=no --diff \nPHP CS Fixer 3.87.1 Alexander by Fabien Potencier, Dariusz Ruminski and contributors.\nPHP runtime: 8.3.30\nRunning analysis on 7 cores with 10 files per process.\nParallel runner is an experimental feature and may be unstable, use it at your own risk. Feedback highly appreciated!\nLoaded config default from \".php-cs-fixer.dist.php\".\n 5682/5682 [▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓] 100%\n\n\nFixed 0 of 5682 files in 56.978 seconds, 67.00 MB memory used\n\nWhat's next:\n Try Docker Debug for seamless, persistent debugging tools in any container or image → docker debug docker_lamp_1\n Learn more at https://docs.docker.com/go/debug-cli/\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20613-allow-owner-role-on-team-setup) $ ;xd\ndocker exec -it docker_lamp_1 bash -c \"mv /usr/local/etc/php/conf.d/xdebug.ini ~/xdebug.ini\"\n\nWhat's next:\n Try Docker Debug for seamless, persistent debugging tools in any container or image → docker debug docker_lamp_1\n Learn more at https://docs.docker.com/go/debug-cli/\ndocker exec -it docker_lamp_1 supervisorctl restart all\njiminny-worker-processing-2:jiminny-worker-processing-2_00: stopped\njiminny-worker-processing-3:jiminny-worker-processing-3_00: stopped\njiminny-worker-processing-4:jiminny-worker-processing-4_00: stopped\njiminny-worker-processing-5:jiminny-worker-processing-5_00: stopped\njiminny-worker-processing-delayed:jiminny-worker-processing-delayed_00: stopped\nworker-analytics:worker-analytics_00: stopped\nworker-crm-update:worker-crm-update_00: stopped\nworker-download:worker-download_00: stopped\nworker-nudges:worker-nudges_00: stopped\nartisan-schedule:artisan-schedule_00: stopped\nworker-emails:worker-emails_00: stopped\nworker-calendar:worker-calendar_00: stopped\nworker:worker_00: stopped\nworker-conferences:worker-conferences_00: stopped\nworker-crm-sync:worker-crm-sync_00: stopped\njiminny-worker-processing-1:jiminny-worker-processing-1_00: stopped\nworker-audio:worker-audio_00: stopped\nworker-es-update:worker-es-update_00: stopped\nartisan-schedule:artisan-schedule_00: started\njiminny-worker-processing-1:jiminny-worker-processing-1_00: started\njiminny-worker-processing-2:jiminny-worker-processing-2_00: started\njiminny-worker-processing-3:jiminny-worker-processing-3_00: started\njiminny-worker-processing-4:jiminny-worker-processing-4_00: started\njiminny-worker-processing-5:jiminny-worker-processing-5_00: started\njiminny-worker-processing-delayed:jiminny-worker-processing-delayed_00: started\nworker:worker_00: started\nworker-analytics:worker-analytics_00: started\nworker-audio:worker-audio_00: started\nworker-calendar:worker-calendar_00: started\nworker-conferences:worker-conferences_00: started\nworker-crm-sync:worker-crm-sync_00: started\nworker-crm-update:worker-crm-update_00: started\nworker-download:worker-download_00: started\nworker-emails:worker-emails_00: started\nworker-es-update:worker-es-update_00: started\nworker-nudges:worker-nudges_00: started\n\nWhat's next:\n Try Docker Debug for seamless, persistent debugging tools in any container or image → docker debug docker_lamp_1\n Learn more at https://docs.docker.com/go/debug-cli/\ndocker exec -it docker_lamp_1 php -v\nPHP 8.3.30 (cli) (built: Mar 16 2026 22:32:32) (NTS)\nCopyright (c) The PHP Group\nZend Engine v4.3.30, Copyright (c) Zend Technologies\n with Zend OPcache v8.3.30, Copyright (c), by Zend Technologies\n\nWhat's next:\n Try Docker Debug for seamless, persistent debugging tools in any container or image → docker debug docker_lamp_1\n Learn more at https://docs.docker.com/go/debug-cli/\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20613-allow-owner-role-on-team-setup) $ csfix\ndocker exec -it docker_lamp_1 ./vendor/bin/php-cs-fixer fix --config=.php-cs-fixer.dist.php -v --using-cache=no --diff \nPHP CS Fixer 3.87.1 Alexander by Fabien Potencier, Dariusz Ruminski and contributors.\nPHP runtime: 8.3.30\nRunning analysis on 7 cores with 10 files per process.\nParallel runner is an experimental feature and may be unstable, use it at your own risk. Feedback highly appreciated!\nLoaded config default from \".php-cs-fixer.dist.php\".\n 5682/5682 [▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓] 100%\n\n\nFixed 0 of 5682 files in 49.910 seconds, 60.00 MB memory used\n\nWhat's next:\n Try Docker Debug for seamless, persistent debugging tools in any container or image → docker debug docker_lamp_1\n Learn more at https://docs.docker.com/go/debug-cli/\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20613-allow-owner-role-on-team-setup) $ git status\nOn branch JY-20613-allow-owner-role-on-team-setup\nYour branch is ahead of 'origin/JY-20613-allow-owner-role-on-team-setup' by 1 commit.\n (use \"git push\" to publish your local commits)\n\nChanges not staged for commit:\n (use \"git add <file>...\" to update what will be committed)\n (use \"git restore <file>...\" to discard changes in working directory)\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tmodified: .env.local\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tmodified: config/logging.php\n\nUntracked files:\n (use \"git add <file>...\" to include in what will be committed)\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\t.env.nikilocal\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\t.env.other\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tWEBHOOK_FILTERING_IMPLEMENTATION.md\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tapp/Console/Commands/Crm/Hubspot/SimulateWebhooksCommand.php\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tapp/Console/Commands/Reports/CreateMockAskJiminnyReportResultCommand.php\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tids.txt\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tpublic/favicon.ico\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\traw_sql_query.sql\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\ttests/Unit/Policies/CanAccessAiReportsTest.php\n\nno changes added to commit (use \"git add\" and/or \"git commit -a\")\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20613-allow-owner-role-on-team-setup) $ git pull\nremote: Enumerating objects: 248, done.\nremote: Counting objects: 100% (128/128), done.\nremote: Compressing objects: 100% (23/23), done.\nremote: Total 59 (delta 43), reused 44 (delta 33), pack-reused 0 (from 0)\nUnpacking objects: 100% (59/59), 10.48 KiB | 228.00 KiB/s, done.\nFrom github.com:jiminny/app\n b7df560451..190239dfd4 JY-20613-allow-owner-role-on-team-setup -> origin/JY-20613-allow-owner-role-on-team-setup\n e0351be069..d94a285ae7 JY-20808-low-priority-indexing-queue -> origin/JY-20808-low-priority-indexing-queue\n * [new branch] JY-20920-fix-participant-matcher -> origin/JY-20920-fix-participant-matcher\n cb4ebf0c36..90bca4e4b2 master -> origin/master\nMerge made by the 'ort' strategy.\n app/Component/ES/ChunkSize.php | 54 +++++++++++++++++++++++++++\n app/Component/ES/Processor/DTOs/SelectionList.php | 4 +-\n app/Component/ES/Processor/TargetEntitiesSelector.php | 19 ++++++----\n app/Http/Middleware/McpTierMiddleware.php | 27 +++-----------\n app/Mcp/Servers/JiminnyServer.php | 2 +\n app/Mcp/Tools/GetMeTool.php | 157 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++\n app/Models/Feature/FeatureEnum.php | 1 +\n database/migrations/2026_05_13_124153_create_mcp_feature_flag.php | 25 +++++++++++++\n front-end/src/components/Settings/Kiosk/modals/EditTeamModal/EditTeamModal.vue | 52 ++++++++++++++++++--------\n front-end/src/components/Settings/Kiosk/modals/EditTeamModal/__tests__/EditTeamModal.spec.js | 14 +++++++\n tests/Feature/Mcp/GetMeToolFeatureTest.php | 140 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++\n tests/Feature/Mcp/ListCallsToolFeatureTest.php | 2 +-\n tests/Feature/Mcp/McpTestHelpersTrait.php | 19 +++++++++-\n tests/Unit/Component/ES/ChunkSizeTest.php | 50 +++++++++++++++++++++++++\n tests/Unit/Component/ES/Processor/DTOs/SelectionListTest.php | 27 ++++++++++----\n tests/Unit/Component/ES/Processor/TargetEntitiesSelectorTest.php | 39 +++++++++++---------\n 16 files changed, 557 insertions(+), 75 deletions(-)\n create mode 100644 app/Component/ES/ChunkSize.php\n create mode 100644 app/Mcp/Tools/GetMeTool.php\n create mode 100644 database/migrations/2026_05_13_124153_create_mcp_feature_flag.php\n create mode 100644 tests/Feature/Mcp/GetMeToolFeatureTest.php\n create mode 100644 tests/Unit/Component/ES/ChunkSizeTest.php\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20613-allow-owner-role-on-team-setup) $ git push\nEnumerating objects: 40, done.\nCounting objects: 100% (34/34), done.\nDelta compression using up to 8 threads\nCompressing objects: 100% (18/18), done.\nWriting objects: 100% (18/18), 1.58 KiB | 1.58 MiB/s, done.\nTotal 18 (delta 15), reused 0 (delta 0), pack-reused 0\nremote: Resolving deltas: 100% (15/15), completed with 13 local objects.\nTo github.com:jiminny/app.git\n 190239dfd4..ec1b261264 JY-20613-allow-owner-role-on-team-setup -> JY-20613-allow-owner-role-on-team-setup\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20613-allow-owner-role-on-team-setup) $ gbr\n* JY-20613-allow-owner-role-on-team-setup\n pipedrive-sdk-poc\n master\n JY-20903-update_activity-stage-on-opportunity-change\n JY-20904-fix-update-es-on-activity-command\n JY-20891-improve-sms-text-relays\n JY-20725-handle-HS-search-rate-limit\n JY-20818-move-AJ-reports-to-separated-datadog-metric\n JY-20773-fix-automated-reports-user-pilot-tracking\n JY-20157-AJ-report-not-send-notification\n JY-20508-notify-before-AJ-report-expiration\n JY-20372-ai-reports-promotion-pages\n JY-20352-sync-opportunities-without-a-local-owner-user-id-is-null\n JY-20738-debug-AJ-tracking-UP\n a\n JY-18909-automated-reports-ask-jiminny\n JY-20692-fix-integration-app-token-auth-response-change\n JY-20553-debug-crm-sync-delays\n JY-20698-fix-SF-activity-types-on-new-playbook\n JY-20543-AJ-report-tracking\n JY-20384-handle-auto-sync-with-no-access-to-event-type\n JY-20458-ask-jiminny-user-definitions\n JY-19666-fix-import-contacts-account-association\n JY-19666-HS-import-contacts-and-accounts-batch-job\n JY-20458-Ask-Jiminny-Reports\n JY-20200-batch-update-CRM-objects-Salesforce\n JY-19666-HS-webhooks-add-contact-and-company\n JY-20348-trigger-setup-DI-layout-on-team-creation\n JY-20326-refactor-info-message-in-command\n JY-20317-fix-auto-log-delay-issue-on-all-channels-disabled\n JY-20312-remove-on-update-change-last-synced-at-crm-configurations\n JY-20306-SF-skip-auto-sync-for-task-based-playbook\n JY-20192-remove-deleted-team-from-saved-search-filters\n JY-20197-import-opportunity-batch-job\n JY-20293-enable-status-field-for-pipedrive-deals\n JY-20191-remove-commands-interactive-prompts\n JY-20118-change-default-sync-strategy\n JY-20183-add-cache-on-auto-log-delay\n JY-20197-add-import-opportunity-batch-job\n 20118-hs-opportunity-make-webhook-strategy-default\n JY-20118-make-default-hs-opportunity-sync-strategy-webhook-based\n JY-20196-handle-opportunity-without-note\n JY-20118-improve-opportunity-import\n JY-20189-handle-activity-search-on-deleted-groups\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20613-allow-owner-role-on-team-setup) $ co JY-20725-handle-HS-search-rate-limit\nM\u0000\u0000\u0000\u0000\u0000\u0000\t.env.local\nM\u0000\u0000\u0000\u0000\u0000\u0000\tconfig/logging.php\nSwitched to branch 'JY-20725-handle-HS-search-rate-limit'\nYour branch is behind 'origin/JY-20725-handle-HS-search-rate-limit' by 439 commits, and can be fast-forwarded.\n (use \"git pull\" to update your local branch)\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20725-handle-HS-search-rate-limit) $ git pull\nUpdating 0f3e438941..bc6a3fce6b\nFast-forward\n .gitignore | 3 +-\n .windsurfrules | 168 ++---\n CLAUDE.md | 1 +\n app/Component/ActivityAnalytics/Service/CalculateTalkTimeOffsetsFromTranscription.php | 24 +-\n app/Component/AiActivityType/Services/AiActivityTypeEligibilityChecker.php | 28 +-\n app/Component/AiAutomation/Actions/PrepareUpdateDtoAction.php | 32 +-\n app/Component/AiAutomation/Services/CrmFillingEligibilityChecker.php | 47 ++\n app/Component/AiAutomation/TestCrmAiPromptService.php | 14 +\n app/Component/AiCallScoring/Services/AiCallScoringEligibilityChecker.php | 9 +\n app/Component/ES/ElasticSearchDocumentPartialUpdater.php | 13 +-\n app/Component/ES/ElasticSearchWorkerManager.php | 86 ---\n app/Component/ES/Processor/Actions/LoadDocumentsAction.php | 80 +--\n app/Component/ES/Processor/EntityQueryBuilder.php | 12 +-\n app/Component/ES/Processor/TargetEntitiesSelector.php | 2 +-\n app/Component/ES/Processor/Traits/SkipActivityTrait.php | 25 -\n app/Component/ES/Repositories/EsResetActivityRepository.php | 11 +-\n app/Component/ES/Worker/ActivityWorker.php | 73 --\n app/Component/ES/Worker/EntityWorker.php | 44 --\n app/Component/ES/Worker/WorkerAmount.php | 60 --\n app/Component/ES/Worker/WorkerInterface.php | 15 -\n app/Component/ElasticSearch/Contract/Searchable.php | 4 +\n app/Component/Encoding/Job/AnalyzeTrackChannelsJob.php | 20 +-\n app/Component/Encoding/Service/GenerateSpeechFromSilenceService.php | 85 ++-\n app/Component/FFMpeg/Services/GetSpeechIntervalsService.php | 18 +-\n app/Component/LanguageDetection/Services/FindSpeechTimeService.php | 22 +-\n app/Component/Nudge/Job/ProcessOrganisationImmediateNudgesJob.php | 218 +++++-\n app/Component/ParagraphBreaker/Services/TranscriptionParagraphsService.php | 4 +\n app/Component/ParticipantSpeech/Services/ParticipantSpeechesCreator.php | 33 +\n app/Component/ParticipantSpeech/Services/ParticipantSpeechesDeleter.php | 15 +\n app/Component/ParticipantSpeech/Services/ParticipantSpeechesProvider.php | 51 +-\n app/Component/ParticipantSpeech/Services/ParticipantSpeechesUploader.php | 36 +\n app/Component/ProphetAi/Exceptions/InsufficientTranscriptException.php | 11 +\n app/Component/Transcription/DTO/Http/Transcription/AssemblyAI/AssemblyAI/NoAssemblyIdException.php | 11 +\n app/Component/Transcription/DTO/Http/Transcription/AssemblyAI/AssemblyAI/SuccessfulResponse.php | 6 +\n app/Component/Transcription/DTO/Http/Transcription/TranscriptionIsNotCorrectFormatException.php | 11 +\n app/Component/Transcription/Diarization/Services/GetNormalizedParticipantSpeechesService.php | 23 +-\n app/Component/Transcription/Diarization/Source/MeetingBotSource.php | 16 +-\n app/Component/Transcription/TranscriptionProcessor/TranscriptionProcessor.php | 3 +\n app/Console/Commands/Activities/ActivityHardDeleteCommand.php | 4 +-\n app/Console/Commands/Activities/Copy.php | 2 +\n app/Console/Commands/Activities/SetupIntegration/TwilioSetS3RecordingCredentialsCommand.php | 119 ++++\n app/Console/Commands/Activities/UpdateActivityElasticSearchDocumentCommand.php | 10 +-\n app/Console/Commands/Crm/BackfillOpportunityUserFromAccountCommand.php | 126 ++++\n app/Console/Commands/Elasticsearch/AsyncUpdateEsActivities.php | 19 -\n app/Console/Commands/Elasticsearch/AsyncUpdateEsEntities.php | 50 +-\n app/Console/Commands/Elasticsearch/ResetAsyncElasticSearchCommand.php | 30 +-\n app/Console/Commands/GeckoExport/GeckoExportParticipantSpeechesCommand.php | 14 +-\n app/Console/Commands/IssueMcpTokenCommand.php | 84 +++\n app/Console/Commands/JiminnyDebugCommand.php | 7 +-\n app/Console/Commands/Tracks/CleanupActivityTracksCommand.php | 2 +-\n app/Console/Kernel.php | 6 +-\n app/Contracts/Services/Calendar/CalendarTrait.php | 80 ++-\n app/Events/AutomatedReports/AutomatedReportGenerated.php | 3 +\n app/Http/Controllers/API/AiCallScoring/AiScorecardController.php | 7 +-\n app/Http/Controllers/API/TeamAiAutomationController.php | 8 +\n app/Http/Controllers/CustomerApi/CustomerApiController.php | 4 +-\n app/Http/Controllers/Kiosk/ActivityController.php | 58 +-\n app/Http/Controllers/Settings/PlaybookController.php | 15 +-\n app/Http/Kernel.php | 23 +\n app/Http/Middleware/McpAuditMiddleware.php | 156 ++++\n app/Http/Middleware/McpTierMiddleware.php | 54 ++\n app/Http/Requests/API/V2/ZapierUploadActivityRequest.php | 28 +-\n app/Jobs/Activity/Import/ImportTwilioVideoSpeechesJob.php | 25 +-\n app/Jobs/Activity/Import/IsActivityReadyForProcessingJob.php | 10 +-\n app/Jobs/Calendar/SetupCalendarSync.php | 21 +-\n app/Jobs/ImportRemoteTrackJob.php | 96 ++-\n app/Jobs/Mailbox/EmailTextRelay.php | 15 +-\n app/Mcp/Contracts/McpCallRepositoryInterface.php | 30 +\n app/Mcp/DTO/ListCallsFilters.php | 29 +\n app/Mcp/Errors/McpError.php | 123 ++++\n app/Mcp/Repositories/McpActivityHydrator.php | 145 ++++\n app/Mcp/Repositories/McpCallRepository.php | 84 +++\n app/Mcp/Repositories/McpElasticCallRepository.php | 171 +++++\n app/Mcp/Servers/JiminnyServer.php | 38 +\n app/Mcp/Tools/ListCallsTool.php | 205 ++++++\n app/Models/Activity.php | 10 +-\n app/Models/Activity/Transcription.php | 17 +-\n app/Models/ElasticSearch/OpportunityElasticSearchTrait.php | 5 +\n app/Models/Participant.php | 1 +\n app/Providers/AppServiceProvider.php | 22 +\n app/Repositories/Crm/ContactRepository.php | 69 +-\n app/Repositories/ParticipantSpeechRepository.php | 13 +-\n app/Services/Activity/ParticipantsService.php | 19 +-\n app/Services/Activity/Twilio/S3RecordingCredentialsService.php | 82 +++\n app/Services/ActivityService.php | 21 +-\n app/Services/Calendar/CalendarActivityService.php | 46 ++\n app/Services/Calendar/Command/ImportParticipants.php | 1 +\n app/Services/Calendar/Command/MapActivityData.php | 106 +--\n app/Services/Calendar/GoogleCalendarService.php | 12 +-\n app/Services/Crm/Close/Processor/OpportunityProcessor.php | 2 +-\n app/Services/Crm/Close/Service.php | 22 +-\n app/Services/Crm/Copper/Service.php | 12 +-\n app/Services/Crm/Hubspot/Service.php | 154 +++-\n app/Services/Crm/Hubspot/ServiceTraits/OpportunitySyncTrait.php | 88 ++-\n app/Services/Crm/IntegrationApp/ServiceTraits/SyncCrmEntitiesTrait.php | 22 +-\n app/Services/Crm/Pipedrive/Service.php | 17 +-\n app/Services/Crm/Salesforce/Service.php | 42 +-\n app/Services/Mail/Office/EmailApiClient.php | 129 +---\n app/Services/RecallAI/Commands/ScheduleBotCommand.php | 39 +-\n app/Services/RecallAI/RecallAIService.php | 22 +-\n composer.json | 3 +-\n composer.lock | 87 ++-\n config/mcp.php | 23 +\n database/migrations/2026_04_30_120000_create_mcp_audit_log_table.php | 36 +\n docs/mcp/explorer/explorer.html | 697 ++++++++++++++++++\n docs/mcp/explorer/explorer.template.html | 697 ++++++++++++++++++\n docs/mcp/explorer/generate.js | 215 ++++++\n docs/mcp/explorer/tool-explorer-meta.json | 11 +\n docs/mcp/tools-list.json | 2536 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++\n docs/mcp/tools.md | 621 ++++++++++++++++\n front-end/package.json | 4 +-\n front-end/src/components/Settings/OrgSettings/AiAutomation/CrmFilling/TemplateFieldForm.vue | 28 +-\n front-end/src/components/Settings/OrgSettings/Playbooks/AddEditPlaybook.vue | 10 +\n front-end/src/components/playback/comments/ActivityComment.less | 10 +-\n front-end/src/components/shared/PromptTester/PromptTester.vue | 12 +-\n front-end/src/components/shared/__tests__/PromptTester.spec.js | 35 +\n front-end/src/components/shared/modals/EntityPickerModal/__tests__/useEntitiesCache.spec.ts | 37 +\n front-end/src/components/shared/modals/EntityPickerModal/useEntitiesCache.ts | 9 +\n front-end/yarn.lock | 16 +-\n phpstan-baseline.neon | 50 --\n routes/api.php | 11 +\n sonar-project.properties | 91 ++-\n tests/Feature/Component/Nudge/ProcessOrganisationImmediateNudgesJobTest.php | 534 ++++++++++++++\n tests/Feature/Jobs/ImportRemoteTrackJobTest.php | 283 +++++++-\n tests/Feature/Mcp/IssueMcpTokenCommandTest.php | 53 ++\n tests/Feature/Mcp/ListCallsToolElasticFeatureTest.php | 155 ++++\n tests/Feature/Mcp/ListCallsToolFeatureTest.php | 352 ++++++++++\n tests/Feature/Mcp/McpTestHelpersTrait.php | 77 ++\n tests/Feature/Services/Team/TeamDeleteHandlers/Retention/RetentionRepositoryHandlerTest.php | 1 +\n tests/Stubs/SentryStub.php | 18 +\n tests/Unit/Component/ActivityAnalytics/Service/CalculateTalkTimeOffsetFromTranscriptionTest.php | 28 +-\n tests/Unit/Component/AiActivityType/Services/AiActivityTypeEligibilityCheckerTest.php | 103 ++-\n tests/Unit/Component/AiAutomation/Actions/PrepareUpdateDtoActionTest.php | 91 +++\n tests/Unit/Component/AiAutomation/Services/CrmFillingEligibilityCheckerTest.php | 124 ++++\n tests/Unit/Component/AiAutomation/TestCrmAiPromptServiceTest.php | 67 +-\n tests/Unit/Component/AiCallScoring/Services/AiCallScoringEligibilityCheckerTest.php | 55 ++\n tests/Unit/Component/ES/ElasticSearchWorkerManagerTest.php | 135 ----\n tests/Unit/Component/ES/Processor/Actions/LoadDocumentsActionTest.php | 220 ++++++\n tests/Unit/Component/ES/Processor/EntityQueryBuilderTest.php | 21 +-\n tests/Unit/Component/ES/Processor/Traits/SkipActivityTraitTest.php | 51 --\n tests/Unit/Component/ES/Worker/ActivityWorkerTest.php | 174 -----\n tests/Unit/Component/ES/Worker/EntityWorkerTest.php | 97 ---\n tests/Unit/Component/ES/Worker/WorkerAmountTest.php | 116 ---\n tests/Unit/Component/Encoding/Job/AnalyzeTrackChannelsJobTest.php | 52 +-\n tests/Unit/Component/Encoding/Service/GenerateSpeechFromSilenceServiceTest.php | 171 ++---\n tests/Unit/Component/FFMpeg/Services/GetSpeechIntervalsTest.php | 36 +-\n tests/Unit/Component/LanguageDetection/Services/FindSpeechTimeServiceTest.php | 20 +-\n tests/Unit/Component/MobileSettings/MobileSettingsControllerTest.php | 5 +-\n tests/Unit/Component/ParticipantSpeech/Services/ParticipantSpeechesCreatorTest.php | 75 ++\n tests/Unit/Component/ParticipantSpeech/Services/ParticipantSpeechesDeleterTest.php | 63 ++\n tests/Unit/Component/ParticipantSpeech/Services/ParticipantSpeechesProviderTest.php | 134 ++++\n tests/Unit/Component/ParticipantSpeech/Services/ParticipantSpeechesUploaderTest.php | 57 ++\n tests/Unit/Component/Transcription/Diarization/Services/GetNormalizedParticipantSpeechesServiceTest.php | 51 +-\n tests/Unit/Component/Transcription/Diarization/Source/MeetingBotSourceTest.php | 29 +-\n tests/Unit/Contracts/Services/Calendar/CalendarTraitTest.php | 58 +-\n tests/Unit/Http/Controllers/Kiosk/ActivityControllerTest.php | 159 +++++\n tests/Unit/Jobs/Activity/Import/ImportTwilioVideoSpeechesJobTest.php | 22 +-\n tests/Unit/Jobs/Activity/Import/IsActivityReadyForProcessingJobTest.php | 26 +-\n tests/Unit/Jobs/Calendar/SetupCalendarSyncTest.php | 25 -\n tests/Unit/Services/Activity/ParticipantsServiceTest.php | 12 +-\n tests/Unit/Services/Activity/Twilio/S3RecordingCredentialsServiceTest.php | 180 +++++\n tests/Unit/Services/ActivityServiceTest.php | 132 ++++\n tests/Unit/Services/Calendar/CalendarActivityServiceTest.php | 150 +++-\n tests/Unit/Services/Calendar/Command/ImportParticipantsTest.php | 6 +-\n tests/Unit/Services/Calendar/Command/MapActivityDataTest.php | 78 +-\n tests/Unit/Services/Calendar/GoogleCalendarServiceTest.php | 116 +++\n tests/Unit/Services/Crm/Close/ServiceTest.php | 165 +++++\n tests/Unit/Services/Crm/Hubspot/ServiceTest.php | 272 ++++++-\n tests/Unit/Services/Crm/Hubspot/ServiceTraits/OpportunitySyncTest.php | 25 +-\n tests/Unit/Services/Crm/Hubspot/ServiceTraits/OpportunitySyncTraitMatchActivitiesTest.php | 3 +-\n tests/Unit/Services/Crm/IntegrationApp/ServiceTraits/SyncCrmEntitiesTraitOpportunitiesTest.php | 40 ++\n tests/Unit/Services/Crm/Pipedrive/ImportOpportunityMatchActivitiesTest.php | 2 +\n tests/Unit/Services/Crm/Salesforce/ServiceTest.php | 139 ++++\n tests/Unit/Services/Mail/Office/EmailApiClientTest.php | 195 ++---\n tests/Unit/Services/RecallAI/RecallAIServiceTest.php | 24 +-\n 175 files changed, 12562 insertions(+), 2162 deletions(-)\n create mode 120000 CLAUDE.md\n create mode 100644 app/Component/AiAutomation/Services/CrmFillingEligibilityChecker.php\n delete mode 100644 app/Component/ES/ElasticSearchWorkerManager.php\n delete mode 100644 app/Component/ES/Processor/Traits/SkipActivityTrait.php\n delete mode 100644 app/Component/ES/Worker/ActivityWorker.php\n delete mode 100644 app/Component/ES/Worker/EntityWorker.php\n delete mode 100644 app/Component/ES/Worker/WorkerAmount.php\n delete mode 100644 app/Component/ES/Worker/WorkerInterface.php\n create mode 100644 app/Component/ProphetAi/Exceptions/InsufficientTranscriptException.php\n create mode 100644 app/Component/Transcription/DTO/Http/Transcription/AssemblyAI/AssemblyAI/NoAssemblyIdException.php\n create mode 100644 app/Component/Transcription/DTO/Http/Transcription/TranscriptionIsNotCorrectFormatException.php\n create mode 100644 app/Console/Commands/Activities/SetupIntegration/TwilioSetS3RecordingCredentialsCommand.php\n create mode 100644 app/Console/Commands/Crm/BackfillOpportunityUserFromAccountCommand.php\n delete mode 100644 app/Console/Commands/Elasticsearch/AsyncUpdateEsActivities.php\n create mode 100644 app/Console/Commands/IssueMcpTokenCommand.php\n create mode 100644 app/Http/Middleware/McpAuditMiddleware.php\n create mode 100644 app/Http/Middleware/McpTierMiddleware.php\n create mode 100644 app/Mcp/Contracts/McpCallRepositoryInterface.php\n create mode 100644 app/Mcp/DTO/ListCallsFilters.php\n create mode 100644 app/Mcp/Errors/McpError.php\n create mode 100644 app/Mcp/Repositories/McpActivityHydrator.php\n create mode 100644 app/Mcp/Repositories/McpCallRepository.php\n create mode 100644 app/Mcp/Repositories/McpElasticCallRepository.php\n create mode 100644 app/Mcp/Servers/JiminnyServer.php\n create mode 100644 app/Mcp/Tools/ListCallsTool.php\n create mode 100644 app/Services/Activity/Twilio/S3RecordingCredentialsService.php\n create mode 100644 config/mcp.php\n create mode 100644 database/migrations/2026_04_30_120000_create_mcp_audit_log_table.php\n create mode 100644 docs/mcp/explorer/explorer.html\n create mode 100644 docs/mcp/explorer/explorer.template.html\n create mode 100644 docs/mcp/explorer/generate.js\n create mode 100644 docs/mcp/explorer/tool-explorer-meta.json\n create mode 100644 docs/mcp/tools-list.json\n create mode 100644 docs/mcp/tools.md\n create mode 100644 front-end/src/components/shared/modals/EntityPickerModal/__tests__/useEntitiesCache.spec.ts\n create mode 100644 tests/Feature/Component/Nudge/ProcessOrganisationImmediateNudgesJobTest.php\n create mode 100644 tests/Feature/Mcp/IssueMcpTokenCommandTest.php\n create mode 100644 tests/Feature/Mcp/ListCallsToolElasticFeatureTest.php\n create mode 100644 tests/Feature/Mcp/ListCallsToolFeatureTest.php\n create mode 100644 tests/Feature/Mcp/McpTestHelpersTrait.php\n create mode 100644 tests/Stubs/SentryStub.php\n create mode 100644 tests/Unit/Component/AiAutomation/Services/CrmFillingEligibilityCheckerTest.php\n delete mode 100644 tests/Unit/Component/ES/ElasticSearchWorkerManagerTest.php\n create mode 100644 tests/Unit/Component/ES/Processor/Actions/LoadDocumentsActionTest.php\n delete mode 100644 tests/Unit/Component/ES/Processor/Traits/SkipActivityTraitTest.php\n delete mode 100644 tests/Unit/Component/ES/Worker/ActivityWorkerTest.php\n delete mode 100644 tests/Unit/Component/ES/Worker/EntityWorkerTest.php\n delete mode 100644 tests/Unit/Component/ES/Worker/WorkerAmountTest.php\n create mode 100644 tests/Unit/Component/ParticipantSpeech/Services/ParticipantSpeechesCreatorTest.php\n create mode 100644 tests/Unit/Http/Controllers/Kiosk/ActivityControllerTest.php\n create mode 100644 tests/Unit/Services/Activity/Twilio/S3RecordingCredentialsServiceTest.php\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20725-handle-HS-search-rate-limit) $ git status\nOn branch master\nYour branch is behind 'origin/master' by 114 commits, and can be fast-forwarded.\n (use \"git pull\" to update your local branch)\n\nChanges not staged for commit:\n (use \"git add <file>...\" to update what will be committed)\n (use \"git restore <file>...\" to discard changes in working directory)\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tmodified: .env.local\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tmodified: app/Component/SCIM/Constants.php\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tmodified: app/Component/SCIM/ScimProvisioning.php\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tmodified: app/Component/Twilio/Conference/ConferenceManager/SoftPhoneManager.php\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tmodified: app/Console/Commands/JiminnyDebugCommand.php\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tmodified: app/DTO/SCIM/AAD/Request/CoreUserRequest.php\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tmodified: app/DTO/SCIM/AAD/Response/CoreUser.php\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tmodified: app/Services/Telephony/TextMessagingService.php\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tmodified: config/logging.php\n\nUntracked files:\n (use \"git add <file>...\" to include in what will be committed)\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\t.env.nikilocal\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\t.env.other\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tWEBHOOK_FILTERING_IMPLEMENTATION.md\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tapp/Component/SCIM/Mutators/Attributes/User/RoleAttr.php\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tapp/Console/Commands/Crm/Hubspot/SimulateWebhooksCommand.php\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tapp/Console/Commands/Reports/CreateMockAskJiminnyReportResultCommand.php\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tapp/Rules/ListenerRoleCannotHaveAdminOrManagerPermissionRule.php\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tids.txt\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tpublic/favicon.ico\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\traw_sql_query.sql\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\ttests/Unit/Component/SCIM/Mutators/Attributes/User/RoleAttrTest.php\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\ttests/Unit/Policies/CanAccessAiReportsTest.php\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\ttests/Unit/Rules/ListenerRoleCannotHaveAdminOrManagerPermissionRuleTest.php\n\nno changes added to commit (use \"git add\" and/or \"git commit -a\")\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (master) $ git pull\nremote: Enumerating objects: 306, done.\nremote: Counting objects: 100% (299/299), done.\nremote: Compressing objects: 100% (183/183), done.\nremote: Total 306 (delta 213), reused 171 (delta 116), pack-reused 7 (from 1)\nReceiving objects: 100% (306/306), 80.12 KiB | 1000.00 KiB/s, done.\nResolving deltas: 100% (213/213), completed with 53 local objects.\nFrom github.com:jiminny/app\n 90bca4e4b2..5604af40cf master -> origin/master\n 4e7078fd8b..0b8343d179 JY-18091-upgrade-to-php-8-5 -> origin/JY-18091-upgrade-to-php-8-5\n 098eeaa087..d5a447e492 JY-20613-allow-owner-role-on-team-setup -> origin/JY-20613-allow-owner-role-on-team-setup\n c3a76ace91..af65249d0f JY-20749-user-can-view-recorded-meetings -> origin/JY-20749-user-can-view-recorded-meetings\n d94a285ae7..7ce96cb5fe JY-20808-low-priority-indexing-queue -> origin/JY-20808-low-priority-indexing-queue\n * [new branch] JY-20842-remove-partial-updater -> origin/JY-20842-remove-partial-updater\n * [new branch] JY-20920-fix-participant-flip -> origin/JY-20920-fix-participant-flip\n * [new branch] secfix/npm-20260519 -> origin/secfix/npm-20260519\nUpdating cb4ebf0c36..5604af40cf\nFast-forward\n app/Component/ES/ChunkSize.php | 54 +++++++++++++++++++\n app/Component/ES/Processor/DTOs/SelectionList.php | 4 +-\n app/Component/ES/Processor/TargetEntitiesSelector.php | 19 ++++---\n app/Component/MeetingBot/Service/ParticipantMatcher.php | 46 ++++++++++++----\n app/Exceptions/RateLimitException.php | 19 ++++++-\n app/Http/Middleware/McpTierMiddleware.php | 27 ++--------\n app/Jobs/Crm/MatchActivityCrmData.php | 47 ++++++++++++----\n app/Jobs/Middleware/HandleHubspotRateLimit.php | 42 +++++++++++++++\n app/Mcp/Servers/JiminnyServer.php | 2 +\n app/Mcp/Tools/GetMeTool.php | 157 +++++++++++++++++++++++++++++++++++++++++++++++++++++\n app/Models/Feature/FeatureEnum.php | 1 +\n app/Services/Activity/HubSpot/ProviderResolver.php | 4 +-\n app/Services/Activity/HubSpot/ProviderResolverInterface.php | 2 +-\n app/Services/Activity/HubSpot/Providers/Provider.php | 2 +-\n app/Services/Activity/HubSpot/Providers/ProviderKixie.php | 2 +-\n app/Services/Activity/HubSpot/Providers/ProviderOrum.php | 2 +-\n app/Services/Activity/HubSpot/Providers/ProviderTwilio.php | 2 +-\n app/Services/Activity/HubSpot/Providers/ProviderTwilioFlex.php | 5 +-\n app/Services/Activity/HubSpot/Service.php | 97 +++++++++++++++++++++++++++------\n app/Services/Crm/Hubspot/Client.php | 132 +++++++++++++++++++++++++++++++++++++++++++++\n app/Services/Crm/Hubspot/HubspotClientInterface.php | 15 ++++++\n app/Services/Crm/Hubspot/Pagination/HubspotPaginationService.php | 21 ++++----\n app/Services/Crm/Hubspot/Pagination/PaginationState.php | 2 +-\n database/migrations/2026_05_13_124153_create_mcp_feature_flag.php | 25 +++++++++\n tests/Feature/Mcp/GetMeToolFeatureTest.php | 140 +++++++++++++++++++++++++++++++++++++++++++++++\n tests/Feature/Mcp/ListCallsToolFeatureTest.php | 2 +-\n tests/Feature/Mcp/McpTestHelpersTrait.php | 19 ++++++-\n tests/Unit/Component/ES/ChunkSizeTest.php | 50 +++++++++++++++++\n tests/Unit/Component/ES/Processor/DTOs/SelectionListTest.php | 27 +++++++---\n tests/Unit/Component/ES/Processor/TargetEntitiesSelectorTest.php | 39 ++++++++------\n tests/Unit/Component/MeetingBot/Service/ParticipantMatcherTest.php | 68 ++++++++++++++++++++++-\n tests/Unit/Exceptions/RateLimitExceptionTest.php | 56 +++++++++++++++++++\n tests/Unit/Jobs/Crm/MatchActivityCrmDataTest.php | 8 +--\n tests/Unit/Jobs/Middleware/HandleHubspotRateLimitTest.php | 151 +++++++++++++++++++++++++++++++++++++++++++++++++++\n tests/Unit/Services/Activity/HubSpot/ServiceTest.php | 109 +++++++++++++++++++++++++++++++++++++\n tests/Unit/Services/Crm/Hubspot/ClientTest.php | 250 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++\n tests/Unit/Services/Crm/Hubspot/Pagination/HubspotPaginationServiceTest.php | 283 +++++++++++++++++++++---------------------------------------------------------------------------\n 37 files changed, 1587 insertions(+), 344 deletions(-)\n create mode 100644 app/Component/ES/ChunkSize.php\n create mode 100644 app/Jobs/Middleware/HandleHubspotRateLimit.php\n create mode 100644 app/Mcp/Tools/GetMeTool.php\n create mode 100644 database/migrations/2026_05_13_124153_create_mcp_feature_flag.php\n create mode 100644 tests/Feature/Mcp/GetMeToolFeatureTest.php\n create mode 100644 tests/Unit/Component/ES/ChunkSizeTest.php\n create mode 100644 tests/Unit/Exceptions/RateLimitExceptionTest.php\n create mode 100644 tests/Unit/Jobs/Middleware/HandleHubspotRateLimitTest.php\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (master) $ git pull\nAlready up to date.\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (master) $ co -b JY-20676-delete-report-related-objects\nSwitched to a new branch 'JY-20676-delete-report-related-objects'\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20676-delete-report-related-objects) $ csfix\ndocker exec -it docker_lamp_1 ./vendor/bin/php-cs-fixer fix --config=.php-cs-fixer.dist.php -v --using-cache=no --diff \nPHP CS Fixer 3.87.1 Alexander by Fabien Potencier, Dariusz Ruminski and contributors.\nPHP runtime: 8.3.30\nRunning analysis on 7 cores with 10 files per process.\nParallel runner is an experimental feature and may be unstable, use it at your own risk. Feedback highly appreciated!\nLoaded config default from \".php-cs-fixer.dist.php\".\n 5690/5690 [▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓] 100%\n\n 1) app/Console/Commands/JiminnyDebugCommand.php (statement_indentation, blank_line_before_statement)\n ---------- begin diff ----------\n--- /home/jiminny/app/Console/Commands/JiminnyDebugCommand.php\n+++ /home/jiminny/app/Console/Commands/JiminnyDebugCommand.php\n@@ -23,6 +23,7 @@\n \n if ($action === 'redis-set') {\n $this->testRedisSet();\n+\n return;\n }\n \n@@ -45,7 +46,7 @@\n $ttl = 60;\n \n try {\n-// $result = Redis::set($testKey, $testValue, 'EX', $ttl, 'NX');\n+ // $result = Redis::set($testKey, $testValue, 'EX', $ttl, 'NX');\n $result = Redis::set($testKey, $testValue, ['nx', 'ex' => $ttl]);\n \n if ($result) {\n\n ----------- end diff -----------\n\n\nFixed 1 of 5690 files in 50.673 seconds, 67.00 MB memory used\n\nWhat's next:\n Try Docker Debug for seamless, persistent debugging tools in any container or image → docker debug docker_lamp_1\n Learn more at https://docs.docker.com/go/debug-cli/\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20676-delete-report-related-objects) $ ;xd\ndocker exec -it docker_lamp_1 bash -c \"mv /usr/local/etc/php/conf.d/xdebug.ini ~/xdebug.ini\"\n\nWhat's next:\n Try Docker Debug for seamless, persistent debugging tools in any container or image → docker debug docker_lamp_1\n Learn more at https://docs.docker.com/go/debug-cli/\ndocker exec -it docker_lamp_1 supervisorctl restart all\njiminny-worker-processing-2:jiminny-worker-processing-2_00: stopped\njiminny-worker-processing-3:jiminny-worker-processing-3_00: stopped\njiminny-worker-processing-4:jiminny-worker-processing-4_00: stopped\njiminny-worker-processing-5:jiminny-worker-processing-5_00: stopped\njiminny-worker-processing-delayed:jiminny-worker-processing-delayed_00: stopped\nworker-analytics:worker-analytics_00: stopped\nworker-crm-update:worker-crm-update_00: stopped\nworker-download:worker-download_00: stopped\nworker-nudges:worker-nudges_00: stopped\nworker-calendar:worker-calendar_00: stopped\nworker-audio:worker-audio_00: stopped\njiminny-worker-processing-1:jiminny-worker-processing-1_00: stopped\nworker:worker_00: stopped\nworker-conferences:worker-conferences_00: stopped\nworker-crm-sync:worker-crm-sync_00: stopped\nworker-emails:worker-emails_00: stopped\nworker-es-update:worker-es-update_00: stopped\nartisan-schedule:artisan-schedule_00: stopped\nartisan-schedule:artisan-schedule_00: started\njiminny-worker-processing-1:jiminny-worker-processing-1_00: started\njiminny-worker-processing-2:jiminny-worker-processing-2_00: started\njiminny-worker-processing-3:jiminny-worker-processing-3_00: started\njiminny-worker-processing-4:jiminny-worker-processing-4_00: started\njiminny-worker-processing-5:jiminny-worker-processing-5_00: started\njiminny-worker-processing-delayed:jiminny-worker-processing-delayed_00: started\nworker:worker_00: started\nworker-analytics:worker-analytics_00: started\nworker-audio:worker-audio_00: started\nworker-calendar:worker-calendar_00: started\nworker-conferences:worker-conferences_00: started\nworker-crm-sync:worker-crm-sync_00: started\nworker-crm-update:worker-crm-update_00: started\nworker-download:worker-download_00: started\nworker-emails:worker-emails_00: started\nworker-es-update:worker-es-update_00: started\nworker-nudges:worker-nudges_00: started\n\nWhat's next:\n Try Docker Debug for seamless, persistent debugging tools in any container or image → docker debug docker_lamp_1\n Learn more at https://docs.docker.com/go/debug-cli/\ndocker exec -it docker_lamp_1 php -v\nPHP 8.3.30 (cli) (built: Mar 16 2026 22:32:32) (NTS)\nCopyright (c) The PHP Group\nZend Engine v4.3.30, Copyright (c) Zend Technologies\n with Zend OPcache v8.3.30, Copyright (c), by Zend Technologies\n\nWhat's next:\n Try Docker Debug for seamless, persistent debugging tools in any container or image → docker debug docker_lamp_1\n Learn more at https://docs.docker.com/go/debug-cli/\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20676-delete-report-related-objects) $ git status\nOn branch JY-20676-delete-report-related-objects\nChanges not staged for commit:\n (use \"git add <file>...\" to update what will be committed)\n (use \"git restore <file>...\" to discard changes in working directory)\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tmodified: .env.local\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tmodified: app/Console/Commands/JiminnyDebugCommand.php\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tmodified: config/logging.php\n\nUntracked files:\n (use \"git add <file>...\" to include in what will be committed)\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\t.env.nikilocal\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\t.env.other\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tWEBHOOK_FILTERING_IMPLEMENTATION.md\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tapp/Console/Commands/Crm/Hubspot/SimulateWebhooksCommand.php\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tapp/Console/Commands/Reports/CreateMockAskJiminnyReportResultCommand.php\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tids.txt\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tpublic/favicon.ico\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\traw_sql_query.sql\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\ttests/Unit/Policies/CanAccessAiReportsTest.php\n\nno changes added to commit (use \"git add\" and/or \"git commit -a\")\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20676-delete-report-related-objects) $ git push -u origin JY-20676-delete-report-related-objects\nEnumerating objects: 45, done.\nCounting objects: 100% (45/45), done.\nDelta compression using up to 8 threads\nCompressing objects: 100% (24/24), done.\nWriting objects: 100% (24/24), 3.62 KiB | 3.62 MiB/s, done.\nTotal 24 (delta 19), reused 0 (delta 0), pack-reused 0\nremote: Resolving deltas: 100% (19/19), completed with 19 local objects.\nremote: \nremote: Create a pull request for 'JY-20676-delete-report-related-objects' on GitHub by visiting:\nremote: https://github.com/jiminny/app/pull/new/JY-20676-delete-report-related-objects\nremote: \nTo github.com:jiminny/app.git\n * [new branch] JY-20676-delete-report-related-objects -> JY-20676-delete-report-related-objects\nbranch 'JY-20676-delete-report-related-objects' set up to track 'origin/JY-20676-delete-report-related-objects'.\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20676-delete-report-related-objects) $ csfix\ndocker exec -it docker_lamp_1 ./vendor/bin/php-cs-fixer fix --config=.php-cs-fixer.dist.php -v --using-cache=no --diff \nPHP CS Fixer 3.87.1 Alexander by Fabien Potencier, Dariusz Ruminski and contributors.\nPHP runtime: 8.3.30\nRunning analysis on 7 cores with 10 files per process.\nParallel runner is an experimental feature and may be unstable, use it at your own risk. Feedback highly appreciated!\nLoaded config default from \".php-cs-fixer.dist.php\".\n 5690/5690 [▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓] 100%\n\n 1) app/Http/Controllers/API/V2/AskJiminnyReportsController.php (blank_line_before_statement)\n ---------- begin diff ----------\n--- /home/jiminny/app/Http/Controllers/API/V2/AskJiminnyReportsController.php\n+++ /home/jiminny/app/Http/Controllers/API/V2/AskJiminnyReportsController.php\n@@ -140,6 +140,7 @@\n if ($enabled && $report->isAskJiminnyReport() && ! $report->canExecute()) {\n $error = 'This report is missing a saved search or prompt. ' .\n 'Edit the report to complete the setup before enabling it.';\n+\n return new JsonResponse(\n ['error' => $error],\n Response::HTTP_UNPROCESSABLE_ENTITY\n\n ----------- end diff -----------\n\n\nFixed 1 of 5690 files in 71.757 seconds, 60.00 MB memory used\n\nWhat's next:\n Try Docker Debug for seamless, persistent debugging tools in any container or image → docker debug docker_lamp_1\n Learn more at https://docs.docker.com/go/debug-cli/\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20676-delete-report-related-objects) $ git pull\nremote: Enumerating objects: 158, done.\nremote: Counting objects: 100% (103/103), done.\nremote: Compressing objects: 100% (37/37), done.\nremote: Total 158 (delta 80), reused 74 (delta 66), pack-reused 55 (from 3)\nReceiving objects: 100% (158/158), 80.59 KiB | 982.00 KiB/s, done.\nResolving deltas: 100% (85/85), completed with 45 local objects.\nFrom github.com:jiminny/app\n 02a33811ee..c6ce5e2440 JY-20676-delete-report-related-objects -> origin/JY-20676-delete-report-related-objects\n 7ce96cb5fe..6c59f04358 JY-20808-low-priority-indexing-queue -> origin/JY-20808-low-priority-indexing-queue\n 3906a9238a..2b5e6ea62b JY-20835-mcp-enable-users-to-get-a-list-of-deals-and-their-details -> origin/JY-20835-mcp-enable-users-to-get-a-list-of-deals-and-their-details\n 5604af40cf..ea3519f0e2 master -> origin/master\n * [new branch] switch-eu-assembly -> origin/switch-eu-assembly\nUpdating 02a33811ee..c6ce5e2440\nFast-forward\n app/Component/ES/ElasticSearchDocumentPartialUpdater.php | 48 ---\n app/Component/ParticipantSpeech/Services/ParticipantAttributionService.php | 4 +-\n app/Component/Settings/AutoScoring/Services/UpdateAutoScoreService.php | 20 +-\n app/Component/Transcription/Service/StorageService.php | 8 +-\n front-end/package.json | 2 +-\n front-end/src/components/DealInsights/Modals/AskAnythingModal.vue | 23 ++\n front-end/src/components/shared/AskAnything/AskAnythingPromptFormItem.vue | 2 +\n front-end/src/components/shared/AskAnything/AskAnythingSettingsDrawer.vue | 23 +-\n front-end/src/components/shared/AskAnything/__mocks__/AskAnythingSettingsDrawer.mocks.js | 1 +\n front-end/src/components/shared/AskAnything/__tests__/AskAnythingSettingsDrawer.spec.js | 135 ++++---\n front-end/src/components/shared/AskAnything/__tests__/__snapshots__/AskAnythingSettingsDrawer.spec.js.html | 1235 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++\n front-end/src/components/shared/AskAnything/__tests__/__snapshots__/AskAnythingSettingsDrawer.spec.js.snap | 1382 ----------------------------------------------------------------\n front-end/src/components/shared/AskAnything/prompts.js | 1 +\n front-end/src/components/shared/AskAnything/useAskAnything.js | 1 +\n front-end/yarn.lock | 8 +-\n tests/Unit/Component/ES/ElasticSearchDocumentPartialUpdaterTest.php | 42 --\n tests/Unit/Component/Settings/AutoScoring/Services/UpdateAutoScoreServiceTest.php | 86 ++--\n tests/Unit/Component/Transcription/Service/StorageServiceTest.php | 29 +-\n 18 files changed, 1448 insertions(+), 1602 deletions(-)\n delete mode 100644 app/Component/ES/ElasticSearchDocumentPartialUpdater.php\n create mode 100644 front-end/src/components/shared/AskAnything/__tests__/__snapshots__/AskAnythingSettingsDrawer.spec.js.html\n delete mode 100644 front-end/src/components/shared/AskAnything/__tests__/__snapshots__/AskAnythingSettingsDrawer.spec.js.snap\n delete mode 100644 tests/Unit/Component/ES/ElasticSearchDocumentPartialUpdaterTest.php\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20676-delete-report-related-objects) $ csfix\ndocker exec -it docker_lamp_1 ./vendor/bin/php-cs-fixer fix --config=.php-cs-fixer.dist.php -v --using-cache=no --diff \nPHP CS Fixer 3.87.1 Alexander by Fabien Potencier, Dariusz Ruminski and contributors.\nPHP runtime: 8.3.30\nRunning analysis on 7 cores with 10 files per process.\nParallel runner is an experimental feature and may be unstable, use it at your own risk. Feedback highly appreciated!\nLoaded config default from \".php-cs-fixer.dist.php\".\n 5071/5688 [▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓░░░░] 89%","depth":4,"on_screen":true,"value":"Last login: Mon May 18 09:17:28 on ttys007\n\nPoetry could not find a pyproject.toml file in /Users/lukas/jiminny/app or its parents\n\nPoetry could not find a pyproject.toml file in /Users/lukas/jiminny/app or its parents\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (pipedrive-sdk-poc) $ co master\nerror: Your local changes to the following files would be overwritten by checkout:\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tPIPEDRIVE_V2_MIGRATION_TICKETS.md\nPlease commit your changes or stash them before you switch branches.\nAborting\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (pipedrive-sdk-poc) $ git pull\nremote: Enumerating objects: 1047, done.\nremote: Counting objects: 100% (832/832), done.\nremote: Compressing objects: 100% (298/298), done.\nremote: Total 1047 (delta 634), reused 596 (delta 534), pack-reused 215 (from 3)\nReceiving objects: 100% (1047/1047), 353.16 KiB | 1.56 MiB/s, done.\nResolving deltas: 100% (687/687), completed with 107 local objects.\nFrom github.com:jiminny/app\n 907c54896c..34656c53ed pipedrive-sdk-poc -> origin/pipedrive-sdk-poc\n 03325ec50f..4e7078fd8b JY-18091-upgrade-to-php-8-5 -> origin/JY-18091-upgrade-to-php-8-5\n e7d231e163..bc6a3fce6b JY-20725-handle-HS-search-rate-limit -> origin/JY-20725-handle-HS-search-rate-limit\n * [new branch] JY-20749-user-can-view-recorded-meetings -> origin/JY-20749-user-can-view-recorded-meetings\n 98ca281a04..e0351be069 JY-20808-low-priority-indexing-queue -> origin/JY-20808-low-priority-indexing-queue\n 569abb5149..3906a9238a JY-20835-mcp-enable-users-to-get-a-list-of-deals-and-their-details -> origin/JY-20835-mcp-enable-users-to-get-a-list-of-deals-and-their-details\n ad6c2a86e8..50eb6afba9 JY-20846-mcp-enable-the-ai-to-know-details-about-the-user -> origin/JY-20846-mcp-enable-the-ai-to-know-details-about-the-user\n * [new branch] JY-20893-chunk-control-per-update-target -> origin/JY-20893-chunk-control-per-update-target\n 31c62924a5..cb4ebf0c36 master -> origin/master\nUpdating 907c54896c..34656c53ed\nFast-forward\n PIPEDRIVE_V2_MIGRATION_TICKETS.md | 52 ++++++++++++++++++++++++++++++++++++++++++++++++++++\n 1 file changed, 52 insertions(+)\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (pipedrive-sdk-poc) $ co master\nM\u0000\u0000\u0000\u0000\u0000\u0000\t.env.local\nM\u0000\u0000\u0000\u0000\u0000\u0000\tconfig/logging.php\nSwitched to branch 'master'\nYour branch is behind 'origin/master' by 31 commits, and can be fast-forwarded.\n (use \"git pull\" to update your local branch)\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (master) $ git pull\nUpdating 31c62924a5..cb4ebf0c36\nFast-forward\n app/Component/ES/Processor/Traits/SelectEntityListTrait.php | 20 ------\n app/Services/Calendar/CalendarActivityService.php | 46 +++++++++++++\n app/Services/Calendar/Command/MapActivityData.php | 106 +++-------------------------\n docs/mcp/explorer/explorer.html | 104 +++++++++++++++++++++++++---\n docs/mcp/explorer/explorer.template.html | 102 ++++++++++++++++++++++++---\n docs/mcp/tools-list.json | 373 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++-------\n docs/mcp/tools.md | 117 +++++++++++++++++++++++--------\n tests/Unit/Component/ES/AsyncUpdateElasticSearchTest.php | 16 +----\n tests/Unit/Component/ES/Listeners/UpdateMultipleTargetsListenerTest.php | 10 ---\n tests/Unit/Component/ES/Listeners/UpdateSingleTargetListenerTest.php | 6 --\n tests/Unit/Component/ES/Processor/TargetEntitiesSelectorTest.php | 9 ---\n tests/Unit/Component/ES/Processor/Traits/SelectEntityListTraitTest.php | 15 ++--\n tests/Unit/Component/ES/UpdateProcessManagerTest.php | 2 -\n tests/Unit/Services/Calendar/CalendarActivityServiceTest.php | 150 ++++++++++++++++++++++++++++++++++++++--\n tests/Unit/Services/Calendar/Command/MapActivityDataTest.php | 78 ++-------------------\n 15 files changed, 832 insertions(+), 322 deletions(-)\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (master) $ co -b JY-20613-allow-owner-role-on-team-setup\nSwitched to a new branch 'JY-20613-allow-owner-role-on-team-setup'\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20613-allow-owner-role-on-team-setup) $ csfix\ndocker exec -it docker_lamp_1 ./vendor/bin/php-cs-fixer fix --config=.php-cs-fixer.dist.php -v --using-cache=no --diff \nPHP CS Fixer 3.87.1 Alexander by Fabien Potencier, Dariusz Ruminski and contributors.\nPHP runtime: 8.3.30\nRunning analysis on 7 cores with 10 files per process.\nParallel runner is an experimental feature and may be unstable, use it at your own risk. Feedback highly appreciated!\nLoaded config default from \".php-cs-fixer.dist.php\".\n 5682/5682 [▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓] 100%\n\n\nFixed 0 of 5682 files in 56.978 seconds, 67.00 MB memory used\n\nWhat's next:\n Try Docker Debug for seamless, persistent debugging tools in any container or image → docker debug docker_lamp_1\n Learn more at https://docs.docker.com/go/debug-cli/\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20613-allow-owner-role-on-team-setup) $ ;xd\ndocker exec -it docker_lamp_1 bash -c \"mv /usr/local/etc/php/conf.d/xdebug.ini ~/xdebug.ini\"\n\nWhat's next:\n Try Docker Debug for seamless, persistent debugging tools in any container or image → docker debug docker_lamp_1\n Learn more at https://docs.docker.com/go/debug-cli/\ndocker exec -it docker_lamp_1 supervisorctl restart all\njiminny-worker-processing-2:jiminny-worker-processing-2_00: stopped\njiminny-worker-processing-3:jiminny-worker-processing-3_00: stopped\njiminny-worker-processing-4:jiminny-worker-processing-4_00: stopped\njiminny-worker-processing-5:jiminny-worker-processing-5_00: stopped\njiminny-worker-processing-delayed:jiminny-worker-processing-delayed_00: stopped\nworker-analytics:worker-analytics_00: stopped\nworker-crm-update:worker-crm-update_00: stopped\nworker-download:worker-download_00: stopped\nworker-nudges:worker-nudges_00: stopped\nartisan-schedule:artisan-schedule_00: stopped\nworker-emails:worker-emails_00: stopped\nworker-calendar:worker-calendar_00: stopped\nworker:worker_00: stopped\nworker-conferences:worker-conferences_00: stopped\nworker-crm-sync:worker-crm-sync_00: stopped\njiminny-worker-processing-1:jiminny-worker-processing-1_00: stopped\nworker-audio:worker-audio_00: stopped\nworker-es-update:worker-es-update_00: stopped\nartisan-schedule:artisan-schedule_00: started\njiminny-worker-processing-1:jiminny-worker-processing-1_00: started\njiminny-worker-processing-2:jiminny-worker-processing-2_00: started\njiminny-worker-processing-3:jiminny-worker-processing-3_00: started\njiminny-worker-processing-4:jiminny-worker-processing-4_00: started\njiminny-worker-processing-5:jiminny-worker-processing-5_00: started\njiminny-worker-processing-delayed:jiminny-worker-processing-delayed_00: started\nworker:worker_00: started\nworker-analytics:worker-analytics_00: started\nworker-audio:worker-audio_00: started\nworker-calendar:worker-calendar_00: started\nworker-conferences:worker-conferences_00: started\nworker-crm-sync:worker-crm-sync_00: started\nworker-crm-update:worker-crm-update_00: started\nworker-download:worker-download_00: started\nworker-emails:worker-emails_00: started\nworker-es-update:worker-es-update_00: started\nworker-nudges:worker-nudges_00: started\n\nWhat's next:\n Try Docker Debug for seamless, persistent debugging tools in any container or image → docker debug docker_lamp_1\n Learn more at https://docs.docker.com/go/debug-cli/\ndocker exec -it docker_lamp_1 php -v\nPHP 8.3.30 (cli) (built: Mar 16 2026 22:32:32) (NTS)\nCopyright (c) The PHP Group\nZend Engine v4.3.30, Copyright (c) Zend Technologies\n with Zend OPcache v8.3.30, Copyright (c), by Zend Technologies\n\nWhat's next:\n Try Docker Debug for seamless, persistent debugging tools in any container or image → docker debug docker_lamp_1\n Learn more at https://docs.docker.com/go/debug-cli/\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20613-allow-owner-role-on-team-setup) $ csfix\ndocker exec -it docker_lamp_1 ./vendor/bin/php-cs-fixer fix --config=.php-cs-fixer.dist.php -v --using-cache=no --diff \nPHP CS Fixer 3.87.1 Alexander by Fabien Potencier, Dariusz Ruminski and contributors.\nPHP runtime: 8.3.30\nRunning analysis on 7 cores with 10 files per process.\nParallel runner is an experimental feature and may be unstable, use it at your own risk. Feedback highly appreciated!\nLoaded config default from \".php-cs-fixer.dist.php\".\n 5682/5682 [▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓] 100%\n\n\nFixed 0 of 5682 files in 49.910 seconds, 60.00 MB memory used\n\nWhat's next:\n Try Docker Debug for seamless, persistent debugging tools in any container or image → docker debug docker_lamp_1\n Learn more at https://docs.docker.com/go/debug-cli/\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20613-allow-owner-role-on-team-setup) $ git status\nOn branch JY-20613-allow-owner-role-on-team-setup\nYour branch is ahead of 'origin/JY-20613-allow-owner-role-on-team-setup' by 1 commit.\n (use \"git push\" to publish your local commits)\n\nChanges not staged for commit:\n (use \"git add <file>...\" to update what will be committed)\n (use \"git restore <file>...\" to discard changes in working directory)\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tmodified: .env.local\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tmodified: config/logging.php\n\nUntracked files:\n (use \"git add <file>...\" to include in what will be committed)\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\t.env.nikilocal\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\t.env.other\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tWEBHOOK_FILTERING_IMPLEMENTATION.md\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tapp/Console/Commands/Crm/Hubspot/SimulateWebhooksCommand.php\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tapp/Console/Commands/Reports/CreateMockAskJiminnyReportResultCommand.php\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tids.txt\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tpublic/favicon.ico\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\traw_sql_query.sql\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\ttests/Unit/Policies/CanAccessAiReportsTest.php\n\nno changes added to commit (use \"git add\" and/or \"git commit -a\")\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20613-allow-owner-role-on-team-setup) $ git pull\nremote: Enumerating objects: 248, done.\nremote: Counting objects: 100% (128/128), done.\nremote: Compressing objects: 100% (23/23), done.\nremote: Total 59 (delta 43), reused 44 (delta 33), pack-reused 0 (from 0)\nUnpacking objects: 100% (59/59), 10.48 KiB | 228.00 KiB/s, done.\nFrom github.com:jiminny/app\n b7df560451..190239dfd4 JY-20613-allow-owner-role-on-team-setup -> origin/JY-20613-allow-owner-role-on-team-setup\n e0351be069..d94a285ae7 JY-20808-low-priority-indexing-queue -> origin/JY-20808-low-priority-indexing-queue\n * [new branch] JY-20920-fix-participant-matcher -> origin/JY-20920-fix-participant-matcher\n cb4ebf0c36..90bca4e4b2 master -> origin/master\nMerge made by the 'ort' strategy.\n app/Component/ES/ChunkSize.php | 54 +++++++++++++++++++++++++++\n app/Component/ES/Processor/DTOs/SelectionList.php | 4 +-\n app/Component/ES/Processor/TargetEntitiesSelector.php | 19 ++++++----\n app/Http/Middleware/McpTierMiddleware.php | 27 +++-----------\n app/Mcp/Servers/JiminnyServer.php | 2 +\n app/Mcp/Tools/GetMeTool.php | 157 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++\n app/Models/Feature/FeatureEnum.php | 1 +\n database/migrations/2026_05_13_124153_create_mcp_feature_flag.php | 25 +++++++++++++\n front-end/src/components/Settings/Kiosk/modals/EditTeamModal/EditTeamModal.vue | 52 ++++++++++++++++++--------\n front-end/src/components/Settings/Kiosk/modals/EditTeamModal/__tests__/EditTeamModal.spec.js | 14 +++++++\n tests/Feature/Mcp/GetMeToolFeatureTest.php | 140 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++\n tests/Feature/Mcp/ListCallsToolFeatureTest.php | 2 +-\n tests/Feature/Mcp/McpTestHelpersTrait.php | 19 +++++++++-\n tests/Unit/Component/ES/ChunkSizeTest.php | 50 +++++++++++++++++++++++++\n tests/Unit/Component/ES/Processor/DTOs/SelectionListTest.php | 27 ++++++++++----\n tests/Unit/Component/ES/Processor/TargetEntitiesSelectorTest.php | 39 +++++++++++---------\n 16 files changed, 557 insertions(+), 75 deletions(-)\n create mode 100644 app/Component/ES/ChunkSize.php\n create mode 100644 app/Mcp/Tools/GetMeTool.php\n create mode 100644 database/migrations/2026_05_13_124153_create_mcp_feature_flag.php\n create mode 100644 tests/Feature/Mcp/GetMeToolFeatureTest.php\n create mode 100644 tests/Unit/Component/ES/ChunkSizeTest.php\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20613-allow-owner-role-on-team-setup) $ git push\nEnumerating objects: 40, done.\nCounting objects: 100% (34/34), done.\nDelta compression using up to 8 threads\nCompressing objects: 100% (18/18), done.\nWriting objects: 100% (18/18), 1.58 KiB | 1.58 MiB/s, done.\nTotal 18 (delta 15), reused 0 (delta 0), pack-reused 0\nremote: Resolving deltas: 100% (15/15), completed with 13 local objects.\nTo github.com:jiminny/app.git\n 190239dfd4..ec1b261264 JY-20613-allow-owner-role-on-team-setup -> JY-20613-allow-owner-role-on-team-setup\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20613-allow-owner-role-on-team-setup) $ gbr\n* JY-20613-allow-owner-role-on-team-setup\n pipedrive-sdk-poc\n master\n JY-20903-update_activity-stage-on-opportunity-change\n JY-20904-fix-update-es-on-activity-command\n JY-20891-improve-sms-text-relays\n JY-20725-handle-HS-search-rate-limit\n JY-20818-move-AJ-reports-to-separated-datadog-metric\n JY-20773-fix-automated-reports-user-pilot-tracking\n JY-20157-AJ-report-not-send-notification\n JY-20508-notify-before-AJ-report-expiration\n JY-20372-ai-reports-promotion-pages\n JY-20352-sync-opportunities-without-a-local-owner-user-id-is-null\n JY-20738-debug-AJ-tracking-UP\n a\n JY-18909-automated-reports-ask-jiminny\n JY-20692-fix-integration-app-token-auth-response-change\n JY-20553-debug-crm-sync-delays\n JY-20698-fix-SF-activity-types-on-new-playbook\n JY-20543-AJ-report-tracking\n JY-20384-handle-auto-sync-with-no-access-to-event-type\n JY-20458-ask-jiminny-user-definitions\n JY-19666-fix-import-contacts-account-association\n JY-19666-HS-import-contacts-and-accounts-batch-job\n JY-20458-Ask-Jiminny-Reports\n JY-20200-batch-update-CRM-objects-Salesforce\n JY-19666-HS-webhooks-add-contact-and-company\n JY-20348-trigger-setup-DI-layout-on-team-creation\n JY-20326-refactor-info-message-in-command\n JY-20317-fix-auto-log-delay-issue-on-all-channels-disabled\n JY-20312-remove-on-update-change-last-synced-at-crm-configurations\n JY-20306-SF-skip-auto-sync-for-task-based-playbook\n JY-20192-remove-deleted-team-from-saved-search-filters\n JY-20197-import-opportunity-batch-job\n JY-20293-enable-status-field-for-pipedrive-deals\n JY-20191-remove-commands-interactive-prompts\n JY-20118-change-default-sync-strategy\n JY-20183-add-cache-on-auto-log-delay\n JY-20197-add-import-opportunity-batch-job\n 20118-hs-opportunity-make-webhook-strategy-default\n JY-20118-make-default-hs-opportunity-sync-strategy-webhook-based\n JY-20196-handle-opportunity-without-note\n JY-20118-improve-opportunity-import\n JY-20189-handle-activity-search-on-deleted-groups\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20613-allow-owner-role-on-team-setup) $ co JY-20725-handle-HS-search-rate-limit\nM\u0000\u0000\u0000\u0000\u0000\u0000\t.env.local\nM\u0000\u0000\u0000\u0000\u0000\u0000\tconfig/logging.php\nSwitched to branch 'JY-20725-handle-HS-search-rate-limit'\nYour branch is behind 'origin/JY-20725-handle-HS-search-rate-limit' by 439 commits, and can be fast-forwarded.\n (use \"git pull\" to update your local branch)\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20725-handle-HS-search-rate-limit) $ git pull\nUpdating 0f3e438941..bc6a3fce6b\nFast-forward\n .gitignore | 3 +-\n .windsurfrules | 168 ++---\n CLAUDE.md | 1 +\n app/Component/ActivityAnalytics/Service/CalculateTalkTimeOffsetsFromTranscription.php | 24 +-\n app/Component/AiActivityType/Services/AiActivityTypeEligibilityChecker.php | 28 +-\n app/Component/AiAutomation/Actions/PrepareUpdateDtoAction.php | 32 +-\n app/Component/AiAutomation/Services/CrmFillingEligibilityChecker.php | 47 ++\n app/Component/AiAutomation/TestCrmAiPromptService.php | 14 +\n app/Component/AiCallScoring/Services/AiCallScoringEligibilityChecker.php | 9 +\n app/Component/ES/ElasticSearchDocumentPartialUpdater.php | 13 +-\n app/Component/ES/ElasticSearchWorkerManager.php | 86 ---\n app/Component/ES/Processor/Actions/LoadDocumentsAction.php | 80 +--\n app/Component/ES/Processor/EntityQueryBuilder.php | 12 +-\n app/Component/ES/Processor/TargetEntitiesSelector.php | 2 +-\n app/Component/ES/Processor/Traits/SkipActivityTrait.php | 25 -\n app/Component/ES/Repositories/EsResetActivityRepository.php | 11 +-\n app/Component/ES/Worker/ActivityWorker.php | 73 --\n app/Component/ES/Worker/EntityWorker.php | 44 --\n app/Component/ES/Worker/WorkerAmount.php | 60 --\n app/Component/ES/Worker/WorkerInterface.php | 15 -\n app/Component/ElasticSearch/Contract/Searchable.php | 4 +\n app/Component/Encoding/Job/AnalyzeTrackChannelsJob.php | 20 +-\n app/Component/Encoding/Service/GenerateSpeechFromSilenceService.php | 85 ++-\n app/Component/FFMpeg/Services/GetSpeechIntervalsService.php | 18 +-\n app/Component/LanguageDetection/Services/FindSpeechTimeService.php | 22 +-\n app/Component/Nudge/Job/ProcessOrganisationImmediateNudgesJob.php | 218 +++++-\n app/Component/ParagraphBreaker/Services/TranscriptionParagraphsService.php | 4 +\n app/Component/ParticipantSpeech/Services/ParticipantSpeechesCreator.php | 33 +\n app/Component/ParticipantSpeech/Services/ParticipantSpeechesDeleter.php | 15 +\n app/Component/ParticipantSpeech/Services/ParticipantSpeechesProvider.php | 51 +-\n app/Component/ParticipantSpeech/Services/ParticipantSpeechesUploader.php | 36 +\n app/Component/ProphetAi/Exceptions/InsufficientTranscriptException.php | 11 +\n app/Component/Transcription/DTO/Http/Transcription/AssemblyAI/AssemblyAI/NoAssemblyIdException.php | 11 +\n app/Component/Transcription/DTO/Http/Transcription/AssemblyAI/AssemblyAI/SuccessfulResponse.php | 6 +\n app/Component/Transcription/DTO/Http/Transcription/TranscriptionIsNotCorrectFormatException.php | 11 +\n app/Component/Transcription/Diarization/Services/GetNormalizedParticipantSpeechesService.php | 23 +-\n app/Component/Transcription/Diarization/Source/MeetingBotSource.php | 16 +-\n app/Component/Transcription/TranscriptionProcessor/TranscriptionProcessor.php | 3 +\n app/Console/Commands/Activities/ActivityHardDeleteCommand.php | 4 +-\n app/Console/Commands/Activities/Copy.php | 2 +\n app/Console/Commands/Activities/SetupIntegration/TwilioSetS3RecordingCredentialsCommand.php | 119 ++++\n app/Console/Commands/Activities/UpdateActivityElasticSearchDocumentCommand.php | 10 +-\n app/Console/Commands/Crm/BackfillOpportunityUserFromAccountCommand.php | 126 ++++\n app/Console/Commands/Elasticsearch/AsyncUpdateEsActivities.php | 19 -\n app/Console/Commands/Elasticsearch/AsyncUpdateEsEntities.php | 50 +-\n app/Console/Commands/Elasticsearch/ResetAsyncElasticSearchCommand.php | 30 +-\n app/Console/Commands/GeckoExport/GeckoExportParticipantSpeechesCommand.php | 14 +-\n app/Console/Commands/IssueMcpTokenCommand.php | 84 +++\n app/Console/Commands/JiminnyDebugCommand.php | 7 +-\n app/Console/Commands/Tracks/CleanupActivityTracksCommand.php | 2 +-\n app/Console/Kernel.php | 6 +-\n app/Contracts/Services/Calendar/CalendarTrait.php | 80 ++-\n app/Events/AutomatedReports/AutomatedReportGenerated.php | 3 +\n app/Http/Controllers/API/AiCallScoring/AiScorecardController.php | 7 +-\n app/Http/Controllers/API/TeamAiAutomationController.php | 8 +\n app/Http/Controllers/CustomerApi/CustomerApiController.php | 4 +-\n app/Http/Controllers/Kiosk/ActivityController.php | 58 +-\n app/Http/Controllers/Settings/PlaybookController.php | 15 +-\n app/Http/Kernel.php | 23 +\n app/Http/Middleware/McpAuditMiddleware.php | 156 ++++\n app/Http/Middleware/McpTierMiddleware.php | 54 ++\n app/Http/Requests/API/V2/ZapierUploadActivityRequest.php | 28 +-\n app/Jobs/Activity/Import/ImportTwilioVideoSpeechesJob.php | 25 +-\n app/Jobs/Activity/Import/IsActivityReadyForProcessingJob.php | 10 +-\n app/Jobs/Calendar/SetupCalendarSync.php | 21 +-\n app/Jobs/ImportRemoteTrackJob.php | 96 ++-\n app/Jobs/Mailbox/EmailTextRelay.php | 15 +-\n app/Mcp/Contracts/McpCallRepositoryInterface.php | 30 +\n app/Mcp/DTO/ListCallsFilters.php | 29 +\n app/Mcp/Errors/McpError.php | 123 ++++\n app/Mcp/Repositories/McpActivityHydrator.php | 145 ++++\n app/Mcp/Repositories/McpCallRepository.php | 84 +++\n app/Mcp/Repositories/McpElasticCallRepository.php | 171 +++++\n app/Mcp/Servers/JiminnyServer.php | 38 +\n app/Mcp/Tools/ListCallsTool.php | 205 ++++++\n app/Models/Activity.php | 10 +-\n app/Models/Activity/Transcription.php | 17 +-\n app/Models/ElasticSearch/OpportunityElasticSearchTrait.php | 5 +\n app/Models/Participant.php | 1 +\n app/Providers/AppServiceProvider.php | 22 +\n app/Repositories/Crm/ContactRepository.php | 69 +-\n app/Repositories/ParticipantSpeechRepository.php | 13 +-\n app/Services/Activity/ParticipantsService.php | 19 +-\n app/Services/Activity/Twilio/S3RecordingCredentialsService.php | 82 +++\n app/Services/ActivityService.php | 21 +-\n app/Services/Calendar/CalendarActivityService.php | 46 ++\n app/Services/Calendar/Command/ImportParticipants.php | 1 +\n app/Services/Calendar/Command/MapActivityData.php | 106 +--\n app/Services/Calendar/GoogleCalendarService.php | 12 +-\n app/Services/Crm/Close/Processor/OpportunityProcessor.php | 2 +-\n app/Services/Crm/Close/Service.php | 22 +-\n app/Services/Crm/Copper/Service.php | 12 +-\n app/Services/Crm/Hubspot/Service.php | 154 +++-\n app/Services/Crm/Hubspot/ServiceTraits/OpportunitySyncTrait.php | 88 ++-\n app/Services/Crm/IntegrationApp/ServiceTraits/SyncCrmEntitiesTrait.php | 22 +-\n app/Services/Crm/Pipedrive/Service.php | 17 +-\n app/Services/Crm/Salesforce/Service.php | 42 +-\n app/Services/Mail/Office/EmailApiClient.php | 129 +---\n app/Services/RecallAI/Commands/ScheduleBotCommand.php | 39 +-\n app/Services/RecallAI/RecallAIService.php | 22 +-\n composer.json | 3 +-\n composer.lock | 87 ++-\n config/mcp.php | 23 +\n database/migrations/2026_04_30_120000_create_mcp_audit_log_table.php | 36 +\n docs/mcp/explorer/explorer.html | 697 ++++++++++++++++++\n docs/mcp/explorer/explorer.template.html | 697 ++++++++++++++++++\n docs/mcp/explorer/generate.js | 215 ++++++\n docs/mcp/explorer/tool-explorer-meta.json | 11 +\n docs/mcp/tools-list.json | 2536 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++\n docs/mcp/tools.md | 621 ++++++++++++++++\n front-end/package.json | 4 +-\n front-end/src/components/Settings/OrgSettings/AiAutomation/CrmFilling/TemplateFieldForm.vue | 28 +-\n front-end/src/components/Settings/OrgSettings/Playbooks/AddEditPlaybook.vue | 10 +\n front-end/src/components/playback/comments/ActivityComment.less | 10 +-\n front-end/src/components/shared/PromptTester/PromptTester.vue | 12 +-\n front-end/src/components/shared/__tests__/PromptTester.spec.js | 35 +\n front-end/src/components/shared/modals/EntityPickerModal/__tests__/useEntitiesCache.spec.ts | 37 +\n front-end/src/components/shared/modals/EntityPickerModal/useEntitiesCache.ts | 9 +\n front-end/yarn.lock | 16 +-\n phpstan-baseline.neon | 50 --\n routes/api.php | 11 +\n sonar-project.properties | 91 ++-\n tests/Feature/Component/Nudge/ProcessOrganisationImmediateNudgesJobTest.php | 534 ++++++++++++++\n tests/Feature/Jobs/ImportRemoteTrackJobTest.php | 283 +++++++-\n tests/Feature/Mcp/IssueMcpTokenCommandTest.php | 53 ++\n tests/Feature/Mcp/ListCallsToolElasticFeatureTest.php | 155 ++++\n tests/Feature/Mcp/ListCallsToolFeatureTest.php | 352 ++++++++++\n tests/Feature/Mcp/McpTestHelpersTrait.php | 77 ++\n tests/Feature/Services/Team/TeamDeleteHandlers/Retention/RetentionRepositoryHandlerTest.php | 1 +\n tests/Stubs/SentryStub.php | 18 +\n tests/Unit/Component/ActivityAnalytics/Service/CalculateTalkTimeOffsetFromTranscriptionTest.php | 28 +-\n tests/Unit/Component/AiActivityType/Services/AiActivityTypeEligibilityCheckerTest.php | 103 ++-\n tests/Unit/Component/AiAutomation/Actions/PrepareUpdateDtoActionTest.php | 91 +++\n tests/Unit/Component/AiAutomation/Services/CrmFillingEligibilityCheckerTest.php | 124 ++++\n tests/Unit/Component/AiAutomation/TestCrmAiPromptServiceTest.php | 67 +-\n tests/Unit/Component/AiCallScoring/Services/AiCallScoringEligibilityCheckerTest.php | 55 ++\n tests/Unit/Component/ES/ElasticSearchWorkerManagerTest.php | 135 ----\n tests/Unit/Component/ES/Processor/Actions/LoadDocumentsActionTest.php | 220 ++++++\n tests/Unit/Component/ES/Processor/EntityQueryBuilderTest.php | 21 +-\n tests/Unit/Component/ES/Processor/Traits/SkipActivityTraitTest.php | 51 --\n tests/Unit/Component/ES/Worker/ActivityWorkerTest.php | 174 -----\n tests/Unit/Component/ES/Worker/EntityWorkerTest.php | 97 ---\n tests/Unit/Component/ES/Worker/WorkerAmountTest.php | 116 ---\n tests/Unit/Component/Encoding/Job/AnalyzeTrackChannelsJobTest.php | 52 +-\n tests/Unit/Component/Encoding/Service/GenerateSpeechFromSilenceServiceTest.php | 171 ++---\n tests/Unit/Component/FFMpeg/Services/GetSpeechIntervalsTest.php | 36 +-\n tests/Unit/Component/LanguageDetection/Services/FindSpeechTimeServiceTest.php | 20 +-\n tests/Unit/Component/MobileSettings/MobileSettingsControllerTest.php | 5 +-\n tests/Unit/Component/ParticipantSpeech/Services/ParticipantSpeechesCreatorTest.php | 75 ++\n tests/Unit/Component/ParticipantSpeech/Services/ParticipantSpeechesDeleterTest.php | 63 ++\n tests/Unit/Component/ParticipantSpeech/Services/ParticipantSpeechesProviderTest.php | 134 ++++\n tests/Unit/Component/ParticipantSpeech/Services/ParticipantSpeechesUploaderTest.php | 57 ++\n tests/Unit/Component/Transcription/Diarization/Services/GetNormalizedParticipantSpeechesServiceTest.php | 51 +-\n tests/Unit/Component/Transcription/Diarization/Source/MeetingBotSourceTest.php | 29 +-\n tests/Unit/Contracts/Services/Calendar/CalendarTraitTest.php | 58 +-\n tests/Unit/Http/Controllers/Kiosk/ActivityControllerTest.php | 159 +++++\n tests/Unit/Jobs/Activity/Import/ImportTwilioVideoSpeechesJobTest.php | 22 +-\n tests/Unit/Jobs/Activity/Import/IsActivityReadyForProcessingJobTest.php | 26 +-\n tests/Unit/Jobs/Calendar/SetupCalendarSyncTest.php | 25 -\n tests/Unit/Services/Activity/ParticipantsServiceTest.php | 12 +-\n tests/Unit/Services/Activity/Twilio/S3RecordingCredentialsServiceTest.php | 180 +++++\n tests/Unit/Services/ActivityServiceTest.php | 132 ++++\n tests/Unit/Services/Calendar/CalendarActivityServiceTest.php | 150 +++-\n tests/Unit/Services/Calendar/Command/ImportParticipantsTest.php | 6 +-\n tests/Unit/Services/Calendar/Command/MapActivityDataTest.php | 78 +-\n tests/Unit/Services/Calendar/GoogleCalendarServiceTest.php | 116 +++\n tests/Unit/Services/Crm/Close/ServiceTest.php | 165 +++++\n tests/Unit/Services/Crm/Hubspot/ServiceTest.php | 272 ++++++-\n tests/Unit/Services/Crm/Hubspot/ServiceTraits/OpportunitySyncTest.php | 25 +-\n tests/Unit/Services/Crm/Hubspot/ServiceTraits/OpportunitySyncTraitMatchActivitiesTest.php | 3 +-\n tests/Unit/Services/Crm/IntegrationApp/ServiceTraits/SyncCrmEntitiesTraitOpportunitiesTest.php | 40 ++\n tests/Unit/Services/Crm/Pipedrive/ImportOpportunityMatchActivitiesTest.php | 2 +\n tests/Unit/Services/Crm/Salesforce/ServiceTest.php | 139 ++++\n tests/Unit/Services/Mail/Office/EmailApiClientTest.php | 195 ++---\n tests/Unit/Services/RecallAI/RecallAIServiceTest.php | 24 +-\n 175 files changed, 12562 insertions(+), 2162 deletions(-)\n create mode 120000 CLAUDE.md\n create mode 100644 app/Component/AiAutomation/Services/CrmFillingEligibilityChecker.php\n delete mode 100644 app/Component/ES/ElasticSearchWorkerManager.php\n delete mode 100644 app/Component/ES/Processor/Traits/SkipActivityTrait.php\n delete mode 100644 app/Component/ES/Worker/ActivityWorker.php\n delete mode 100644 app/Component/ES/Worker/EntityWorker.php\n delete mode 100644 app/Component/ES/Worker/WorkerAmount.php\n delete mode 100644 app/Component/ES/Worker/WorkerInterface.php\n create mode 100644 app/Component/ProphetAi/Exceptions/InsufficientTranscriptException.php\n create mode 100644 app/Component/Transcription/DTO/Http/Transcription/AssemblyAI/AssemblyAI/NoAssemblyIdException.php\n create mode 100644 app/Component/Transcription/DTO/Http/Transcription/TranscriptionIsNotCorrectFormatException.php\n create mode 100644 app/Console/Commands/Activities/SetupIntegration/TwilioSetS3RecordingCredentialsCommand.php\n create mode 100644 app/Console/Commands/Crm/BackfillOpportunityUserFromAccountCommand.php\n delete mode 100644 app/Console/Commands/Elasticsearch/AsyncUpdateEsActivities.php\n create mode 100644 app/Console/Commands/IssueMcpTokenCommand.php\n create mode 100644 app/Http/Middleware/McpAuditMiddleware.php\n create mode 100644 app/Http/Middleware/McpTierMiddleware.php\n create mode 100644 app/Mcp/Contracts/McpCallRepositoryInterface.php\n create mode 100644 app/Mcp/DTO/ListCallsFilters.php\n create mode 100644 app/Mcp/Errors/McpError.php\n create mode 100644 app/Mcp/Repositories/McpActivityHydrator.php\n create mode 100644 app/Mcp/Repositories/McpCallRepository.php\n create mode 100644 app/Mcp/Repositories/McpElasticCallRepository.php\n create mode 100644 app/Mcp/Servers/JiminnyServer.php\n create mode 100644 app/Mcp/Tools/ListCallsTool.php\n create mode 100644 app/Services/Activity/Twilio/S3RecordingCredentialsService.php\n create mode 100644 config/mcp.php\n create mode 100644 database/migrations/2026_04_30_120000_create_mcp_audit_log_table.php\n create mode 100644 docs/mcp/explorer/explorer.html\n create mode 100644 docs/mcp/explorer/explorer.template.html\n create mode 100644 docs/mcp/explorer/generate.js\n create mode 100644 docs/mcp/explorer/tool-explorer-meta.json\n create mode 100644 docs/mcp/tools-list.json\n create mode 100644 docs/mcp/tools.md\n create mode 100644 front-end/src/components/shared/modals/EntityPickerModal/__tests__/useEntitiesCache.spec.ts\n create mode 100644 tests/Feature/Component/Nudge/ProcessOrganisationImmediateNudgesJobTest.php\n create mode 100644 tests/Feature/Mcp/IssueMcpTokenCommandTest.php\n create mode 100644 tests/Feature/Mcp/ListCallsToolElasticFeatureTest.php\n create mode 100644 tests/Feature/Mcp/ListCallsToolFeatureTest.php\n create mode 100644 tests/Feature/Mcp/McpTestHelpersTrait.php\n create mode 100644 tests/Stubs/SentryStub.php\n create mode 100644 tests/Unit/Component/AiAutomation/Services/CrmFillingEligibilityCheckerTest.php\n delete mode 100644 tests/Unit/Component/ES/ElasticSearchWorkerManagerTest.php\n create mode 100644 tests/Unit/Component/ES/Processor/Actions/LoadDocumentsActionTest.php\n delete mode 100644 tests/Unit/Component/ES/Processor/Traits/SkipActivityTraitTest.php\n delete mode 100644 tests/Unit/Component/ES/Worker/ActivityWorkerTest.php\n delete mode 100644 tests/Unit/Component/ES/Worker/EntityWorkerTest.php\n delete mode 100644 tests/Unit/Component/ES/Worker/WorkerAmountTest.php\n create mode 100644 tests/Unit/Component/ParticipantSpeech/Services/ParticipantSpeechesCreatorTest.php\n create mode 100644 tests/Unit/Http/Controllers/Kiosk/ActivityControllerTest.php\n create mode 100644 tests/Unit/Services/Activity/Twilio/S3RecordingCredentialsServiceTest.php\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20725-handle-HS-search-rate-limit) $ git status\nOn branch master\nYour branch is behind 'origin/master' by 114 commits, and can be fast-forwarded.\n (use \"git pull\" to update your local branch)\n\nChanges not staged for commit:\n (use \"git add <file>...\" to update what will be committed)\n (use \"git restore <file>...\" to discard changes in working directory)\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tmodified: .env.local\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tmodified: app/Component/SCIM/Constants.php\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tmodified: app/Component/SCIM/ScimProvisioning.php\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tmodified: app/Component/Twilio/Conference/ConferenceManager/SoftPhoneManager.php\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tmodified: app/Console/Commands/JiminnyDebugCommand.php\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tmodified: app/DTO/SCIM/AAD/Request/CoreUserRequest.php\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tmodified: app/DTO/SCIM/AAD/Response/CoreUser.php\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tmodified: app/Services/Telephony/TextMessagingService.php\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tmodified: config/logging.php\n\nUntracked files:\n (use \"git add <file>...\" to include in what will be committed)\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\t.env.nikilocal\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\t.env.other\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tWEBHOOK_FILTERING_IMPLEMENTATION.md\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tapp/Component/SCIM/Mutators/Attributes/User/RoleAttr.php\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tapp/Console/Commands/Crm/Hubspot/SimulateWebhooksCommand.php\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tapp/Console/Commands/Reports/CreateMockAskJiminnyReportResultCommand.php\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tapp/Rules/ListenerRoleCannotHaveAdminOrManagerPermissionRule.php\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tids.txt\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tpublic/favicon.ico\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\traw_sql_query.sql\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\ttests/Unit/Component/SCIM/Mutators/Attributes/User/RoleAttrTest.php\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\ttests/Unit/Policies/CanAccessAiReportsTest.php\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\ttests/Unit/Rules/ListenerRoleCannotHaveAdminOrManagerPermissionRuleTest.php\n\nno changes added to commit (use \"git add\" and/or \"git commit -a\")\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (master) $ git pull\nremote: Enumerating objects: 306, done.\nremote: Counting objects: 100% (299/299), done.\nremote: Compressing objects: 100% (183/183), done.\nremote: Total 306 (delta 213), reused 171 (delta 116), pack-reused 7 (from 1)\nReceiving objects: 100% (306/306), 80.12 KiB | 1000.00 KiB/s, done.\nResolving deltas: 100% (213/213), completed with 53 local objects.\nFrom github.com:jiminny/app\n 90bca4e4b2..5604af40cf master -> origin/master\n 4e7078fd8b..0b8343d179 JY-18091-upgrade-to-php-8-5 -> origin/JY-18091-upgrade-to-php-8-5\n 098eeaa087..d5a447e492 JY-20613-allow-owner-role-on-team-setup -> origin/JY-20613-allow-owner-role-on-team-setup\n c3a76ace91..af65249d0f JY-20749-user-can-view-recorded-meetings -> origin/JY-20749-user-can-view-recorded-meetings\n d94a285ae7..7ce96cb5fe JY-20808-low-priority-indexing-queue -> origin/JY-20808-low-priority-indexing-queue\n * [new branch] JY-20842-remove-partial-updater -> origin/JY-20842-remove-partial-updater\n * [new branch] JY-20920-fix-participant-flip -> origin/JY-20920-fix-participant-flip\n * [new branch] secfix/npm-20260519 -> origin/secfix/npm-20260519\nUpdating cb4ebf0c36..5604af40cf\nFast-forward\n app/Component/ES/ChunkSize.php | 54 +++++++++++++++++++\n app/Component/ES/Processor/DTOs/SelectionList.php | 4 +-\n app/Component/ES/Processor/TargetEntitiesSelector.php | 19 ++++---\n app/Component/MeetingBot/Service/ParticipantMatcher.php | 46 ++++++++++++----\n app/Exceptions/RateLimitException.php | 19 ++++++-\n app/Http/Middleware/McpTierMiddleware.php | 27 ++--------\n app/Jobs/Crm/MatchActivityCrmData.php | 47 ++++++++++++----\n app/Jobs/Middleware/HandleHubspotRateLimit.php | 42 +++++++++++++++\n app/Mcp/Servers/JiminnyServer.php | 2 +\n app/Mcp/Tools/GetMeTool.php | 157 +++++++++++++++++++++++++++++++++++++++++++++++++++++\n app/Models/Feature/FeatureEnum.php | 1 +\n app/Services/Activity/HubSpot/ProviderResolver.php | 4 +-\n app/Services/Activity/HubSpot/ProviderResolverInterface.php | 2 +-\n app/Services/Activity/HubSpot/Providers/Provider.php | 2 +-\n app/Services/Activity/HubSpot/Providers/ProviderKixie.php | 2 +-\n app/Services/Activity/HubSpot/Providers/ProviderOrum.php | 2 +-\n app/Services/Activity/HubSpot/Providers/ProviderTwilio.php | 2 +-\n app/Services/Activity/HubSpot/Providers/ProviderTwilioFlex.php | 5 +-\n app/Services/Activity/HubSpot/Service.php | 97 +++++++++++++++++++++++++++------\n app/Services/Crm/Hubspot/Client.php | 132 +++++++++++++++++++++++++++++++++++++++++++++\n app/Services/Crm/Hubspot/HubspotClientInterface.php | 15 ++++++\n app/Services/Crm/Hubspot/Pagination/HubspotPaginationService.php | 21 ++++----\n app/Services/Crm/Hubspot/Pagination/PaginationState.php | 2 +-\n database/migrations/2026_05_13_124153_create_mcp_feature_flag.php | 25 +++++++++\n tests/Feature/Mcp/GetMeToolFeatureTest.php | 140 +++++++++++++++++++++++++++++++++++++++++++++++\n tests/Feature/Mcp/ListCallsToolFeatureTest.php | 2 +-\n tests/Feature/Mcp/McpTestHelpersTrait.php | 19 ++++++-\n tests/Unit/Component/ES/ChunkSizeTest.php | 50 +++++++++++++++++\n tests/Unit/Component/ES/Processor/DTOs/SelectionListTest.php | 27 +++++++---\n tests/Unit/Component/ES/Processor/TargetEntitiesSelectorTest.php | 39 ++++++++------\n tests/Unit/Component/MeetingBot/Service/ParticipantMatcherTest.php | 68 ++++++++++++++++++++++-\n tests/Unit/Exceptions/RateLimitExceptionTest.php | 56 +++++++++++++++++++\n tests/Unit/Jobs/Crm/MatchActivityCrmDataTest.php | 8 +--\n tests/Unit/Jobs/Middleware/HandleHubspotRateLimitTest.php | 151 +++++++++++++++++++++++++++++++++++++++++++++++++++\n tests/Unit/Services/Activity/HubSpot/ServiceTest.php | 109 +++++++++++++++++++++++++++++++++++++\n tests/Unit/Services/Crm/Hubspot/ClientTest.php | 250 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++\n tests/Unit/Services/Crm/Hubspot/Pagination/HubspotPaginationServiceTest.php | 283 +++++++++++++++++++++---------------------------------------------------------------------------\n 37 files changed, 1587 insertions(+), 344 deletions(-)\n create mode 100644 app/Component/ES/ChunkSize.php\n create mode 100644 app/Jobs/Middleware/HandleHubspotRateLimit.php\n create mode 100644 app/Mcp/Tools/GetMeTool.php\n create mode 100644 database/migrations/2026_05_13_124153_create_mcp_feature_flag.php\n create mode 100644 tests/Feature/Mcp/GetMeToolFeatureTest.php\n create mode 100644 tests/Unit/Component/ES/ChunkSizeTest.php\n create mode 100644 tests/Unit/Exceptions/RateLimitExceptionTest.php\n create mode 100644 tests/Unit/Jobs/Middleware/HandleHubspotRateLimitTest.php\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (master) $ git pull\nAlready up to date.\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (master) $ co -b JY-20676-delete-report-related-objects\nSwitched to a new branch 'JY-20676-delete-report-related-objects'\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20676-delete-report-related-objects) $ csfix\ndocker exec -it docker_lamp_1 ./vendor/bin/php-cs-fixer fix --config=.php-cs-fixer.dist.php -v --using-cache=no --diff \nPHP CS Fixer 3.87.1 Alexander by Fabien Potencier, Dariusz Ruminski and contributors.\nPHP runtime: 8.3.30\nRunning analysis on 7 cores with 10 files per process.\nParallel runner is an experimental feature and may be unstable, use it at your own risk. Feedback highly appreciated!\nLoaded config default from \".php-cs-fixer.dist.php\".\n 5690/5690 [▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓] 100%\n\n 1) app/Console/Commands/JiminnyDebugCommand.php (statement_indentation, blank_line_before_statement)\n ---------- begin diff ----------\n--- /home/jiminny/app/Console/Commands/JiminnyDebugCommand.php\n+++ /home/jiminny/app/Console/Commands/JiminnyDebugCommand.php\n@@ -23,6 +23,7 @@\n \n if ($action === 'redis-set') {\n $this->testRedisSet();\n+\n return;\n }\n \n@@ -45,7 +46,7 @@\n $ttl = 60;\n \n try {\n-// $result = Redis::set($testKey, $testValue, 'EX', $ttl, 'NX');\n+ // $result = Redis::set($testKey, $testValue, 'EX', $ttl, 'NX');\n $result = Redis::set($testKey, $testValue, ['nx', 'ex' => $ttl]);\n \n if ($result) {\n\n ----------- end diff -----------\n\n\nFixed 1 of 5690 files in 50.673 seconds, 67.00 MB memory used\n\nWhat's next:\n Try Docker Debug for seamless, persistent debugging tools in any container or image → docker debug docker_lamp_1\n Learn more at https://docs.docker.com/go/debug-cli/\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20676-delete-report-related-objects) $ ;xd\ndocker exec -it docker_lamp_1 bash -c \"mv /usr/local/etc/php/conf.d/xdebug.ini ~/xdebug.ini\"\n\nWhat's next:\n Try Docker Debug for seamless, persistent debugging tools in any container or image → docker debug docker_lamp_1\n Learn more at https://docs.docker.com/go/debug-cli/\ndocker exec -it docker_lamp_1 supervisorctl restart all\njiminny-worker-processing-2:jiminny-worker-processing-2_00: stopped\njiminny-worker-processing-3:jiminny-worker-processing-3_00: stopped\njiminny-worker-processing-4:jiminny-worker-processing-4_00: stopped\njiminny-worker-processing-5:jiminny-worker-processing-5_00: stopped\njiminny-worker-processing-delayed:jiminny-worker-processing-delayed_00: stopped\nworker-analytics:worker-analytics_00: stopped\nworker-crm-update:worker-crm-update_00: stopped\nworker-download:worker-download_00: stopped\nworker-nudges:worker-nudges_00: stopped\nworker-calendar:worker-calendar_00: stopped\nworker-audio:worker-audio_00: stopped\njiminny-worker-processing-1:jiminny-worker-processing-1_00: stopped\nworker:worker_00: stopped\nworker-conferences:worker-conferences_00: stopped\nworker-crm-sync:worker-crm-sync_00: stopped\nworker-emails:worker-emails_00: stopped\nworker-es-update:worker-es-update_00: stopped\nartisan-schedule:artisan-schedule_00: stopped\nartisan-schedule:artisan-schedule_00: started\njiminny-worker-processing-1:jiminny-worker-processing-1_00: started\njiminny-worker-processing-2:jiminny-worker-processing-2_00: started\njiminny-worker-processing-3:jiminny-worker-processing-3_00: started\njiminny-worker-processing-4:jiminny-worker-processing-4_00: started\njiminny-worker-processing-5:jiminny-worker-processing-5_00: started\njiminny-worker-processing-delayed:jiminny-worker-processing-delayed_00: started\nworker:worker_00: started\nworker-analytics:worker-analytics_00: started\nworker-audio:worker-audio_00: started\nworker-calendar:worker-calendar_00: started\nworker-conferences:worker-conferences_00: started\nworker-crm-sync:worker-crm-sync_00: started\nworker-crm-update:worker-crm-update_00: started\nworker-download:worker-download_00: started\nworker-emails:worker-emails_00: started\nworker-es-update:worker-es-update_00: started\nworker-nudges:worker-nudges_00: started\n\nWhat's next:\n Try Docker Debug for seamless, persistent debugging tools in any container or image → docker debug docker_lamp_1\n Learn more at https://docs.docker.com/go/debug-cli/\ndocker exec -it docker_lamp_1 php -v\nPHP 8.3.30 (cli) (built: Mar 16 2026 22:32:32) (NTS)\nCopyright (c) The PHP Group\nZend Engine v4.3.30, Copyright (c) Zend Technologies\n with Zend OPcache v8.3.30, Copyright (c), by Zend Technologies\n\nWhat's next:\n Try Docker Debug for seamless, persistent debugging tools in any container or image → docker debug docker_lamp_1\n Learn more at https://docs.docker.com/go/debug-cli/\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20676-delete-report-related-objects) $ git status\nOn branch JY-20676-delete-report-related-objects\nChanges not staged for commit:\n (use \"git add <file>...\" to update what will be committed)\n (use \"git restore <file>...\" to discard changes in working directory)\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tmodified: .env.local\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tmodified: app/Console/Commands/JiminnyDebugCommand.php\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tmodified: config/logging.php\n\nUntracked files:\n (use \"git add <file>...\" to include in what will be committed)\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\t.env.nikilocal\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\t.env.other\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tWEBHOOK_FILTERING_IMPLEMENTATION.md\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tapp/Console/Commands/Crm/Hubspot/SimulateWebhooksCommand.php\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tapp/Console/Commands/Reports/CreateMockAskJiminnyReportResultCommand.php\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tids.txt\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tpublic/favicon.ico\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\traw_sql_query.sql\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\ttests/Unit/Policies/CanAccessAiReportsTest.php\n\nno changes added to commit (use \"git add\" and/or \"git commit -a\")\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20676-delete-report-related-objects) $ git push -u origin JY-20676-delete-report-related-objects\nEnumerating objects: 45, done.\nCounting objects: 100% (45/45), done.\nDelta compression using up to 8 threads\nCompressing objects: 100% (24/24), done.\nWriting objects: 100% (24/24), 3.62 KiB | 3.62 MiB/s, done.\nTotal 24 (delta 19), reused 0 (delta 0), pack-reused 0\nremote: Resolving deltas: 100% (19/19), completed with 19 local objects.\nremote: \nremote: Create a pull request for 'JY-20676-delete-report-related-objects' on GitHub by visiting:\nremote: https://github.com/jiminny/app/pull/new/JY-20676-delete-report-related-objects\nremote: \nTo github.com:jiminny/app.git\n * [new branch] JY-20676-delete-report-related-objects -> JY-20676-delete-report-related-objects\nbranch 'JY-20676-delete-report-related-objects' set up to track 'origin/JY-20676-delete-report-related-objects'.\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20676-delete-report-related-objects) $ csfix\ndocker exec -it docker_lamp_1 ./vendor/bin/php-cs-fixer fix --config=.php-cs-fixer.dist.php -v --using-cache=no --diff \nPHP CS Fixer 3.87.1 Alexander by Fabien Potencier, Dariusz Ruminski and contributors.\nPHP runtime: 8.3.30\nRunning analysis on 7 cores with 10 files per process.\nParallel runner is an experimental feature and may be unstable, use it at your own risk. Feedback highly appreciated!\nLoaded config default from \".php-cs-fixer.dist.php\".\n 5690/5690 [▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓] 100%\n\n 1) app/Http/Controllers/API/V2/AskJiminnyReportsController.php (blank_line_before_statement)\n ---------- begin diff ----------\n--- /home/jiminny/app/Http/Controllers/API/V2/AskJiminnyReportsController.php\n+++ /home/jiminny/app/Http/Controllers/API/V2/AskJiminnyReportsController.php\n@@ -140,6 +140,7 @@\n if ($enabled && $report->isAskJiminnyReport() && ! $report->canExecute()) {\n $error = 'This report is missing a saved search or prompt. ' .\n 'Edit the report to complete the setup before enabling it.';\n+\n return new JsonResponse(\n ['error' => $error],\n Response::HTTP_UNPROCESSABLE_ENTITY\n\n ----------- end diff -----------\n\n\nFixed 1 of 5690 files in 71.757 seconds, 60.00 MB memory used\n\nWhat's next:\n Try Docker Debug for seamless, persistent debugging tools in any container or image → docker debug docker_lamp_1\n Learn more at https://docs.docker.com/go/debug-cli/\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20676-delete-report-related-objects) $ git pull\nremote: Enumerating objects: 158, done.\nremote: Counting objects: 100% (103/103), done.\nremote: Compressing objects: 100% (37/37), done.\nremote: Total 158 (delta 80), reused 74 (delta 66), pack-reused 55 (from 3)\nReceiving objects: 100% (158/158), 80.59 KiB | 982.00 KiB/s, done.\nResolving deltas: 100% (85/85), completed with 45 local objects.\nFrom github.com:jiminny/app\n 02a33811ee..c6ce5e2440 JY-20676-delete-report-related-objects -> origin/JY-20676-delete-report-related-objects\n 7ce96cb5fe..6c59f04358 JY-20808-low-priority-indexing-queue -> origin/JY-20808-low-priority-indexing-queue\n 3906a9238a..2b5e6ea62b JY-20835-mcp-enable-users-to-get-a-list-of-deals-and-their-details -> origin/JY-20835-mcp-enable-users-to-get-a-list-of-deals-and-their-details\n 5604af40cf..ea3519f0e2 master -> origin/master\n * [new branch] switch-eu-assembly -> origin/switch-eu-assembly\nUpdating 02a33811ee..c6ce5e2440\nFast-forward\n app/Component/ES/ElasticSearchDocumentPartialUpdater.php | 48 ---\n app/Component/ParticipantSpeech/Services/ParticipantAttributionService.php | 4 +-\n app/Component/Settings/AutoScoring/Services/UpdateAutoScoreService.php | 20 +-\n app/Component/Transcription/Service/StorageService.php | 8 +-\n front-end/package.json | 2 +-\n front-end/src/components/DealInsights/Modals/AskAnythingModal.vue | 23 ++\n front-end/src/components/shared/AskAnything/AskAnythingPromptFormItem.vue | 2 +\n front-end/src/components/shared/AskAnything/AskAnythingSettingsDrawer.vue | 23 +-\n front-end/src/components/shared/AskAnything/__mocks__/AskAnythingSettingsDrawer.mocks.js | 1 +\n front-end/src/components/shared/AskAnything/__tests__/AskAnythingSettingsDrawer.spec.js | 135 ++++---\n front-end/src/components/shared/AskAnything/__tests__/__snapshots__/AskAnythingSettingsDrawer.spec.js.html | 1235 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++\n front-end/src/components/shared/AskAnything/__tests__/__snapshots__/AskAnythingSettingsDrawer.spec.js.snap | 1382 ----------------------------------------------------------------\n front-end/src/components/shared/AskAnything/prompts.js | 1 +\n front-end/src/components/shared/AskAnything/useAskAnything.js | 1 +\n front-end/yarn.lock | 8 +-\n tests/Unit/Component/ES/ElasticSearchDocumentPartialUpdaterTest.php | 42 --\n tests/Unit/Component/Settings/AutoScoring/Services/UpdateAutoScoreServiceTest.php | 86 ++--\n tests/Unit/Component/Transcription/Service/StorageServiceTest.php | 29 +-\n 18 files changed, 1448 insertions(+), 1602 deletions(-)\n delete mode 100644 app/Component/ES/ElasticSearchDocumentPartialUpdater.php\n create mode 100644 front-end/src/components/shared/AskAnything/__tests__/__snapshots__/AskAnythingSettingsDrawer.spec.js.html\n delete mode 100644 front-end/src/components/shared/AskAnything/__tests__/__snapshots__/AskAnythingSettingsDrawer.spec.js.snap\n delete mode 100644 tests/Unit/Component/ES/ElasticSearchDocumentPartialUpdaterTest.php\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20676-delete-report-related-objects) $ csfix\ndocker exec -it docker_lamp_1 ./vendor/bin/php-cs-fixer fix --config=.php-cs-fixer.dist.php -v --using-cache=no --diff \nPHP CS Fixer 3.87.1 Alexander by Fabien Potencier, Dariusz Ruminski and contributors.\nPHP runtime: 8.3.30\nRunning analysis on 7 cores with 10 files per process.\nParallel runner is an experimental feature and may be unstable, use it at your own risk. Feedback highly appreciated!\nLoaded config default from \".php-cs-fixer.dist.php\".\n 5071/5688 [▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓░░░░] 89%","is_focused":true},{"role":"AXRadioButton","text":"DOCKER","depth":2,"bounds":{"left":0.0,"top":0.05888889,"width":0.19826388,"height":0.026666667},"on_screen":true,"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.004166667,"top":0.06333333,"width":0.011111111,"height":0.017777778},"on_screen":true,"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"DEV (docker)","depth":2,"bounds":{"left":0.19826388,"top":0.05888889,"width":0.19826388,"height":0.026666667},"on_screen":true,"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.20243056,"top":0.06333333,"width":0.011111111,"height":0.017777778},"on_screen":true,"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"APP (docker)","depth":2,"bounds":{"left":0.39652777,"top":0.05888889,"width":0.19791667,"height":0.026666667},"on_screen":true,"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.40069443,"top":0.06333333,"width":0.011111111,"height":0.017777778},"on_screen":true,"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"screenpipe\"","depth":2,"bounds":{"left":0.59444445,"top":0.05888889,"width":0.19791667,"height":0.026666667},"on_screen":true,"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.5986111,"top":0.06333333,"width":0.011111111,"height":0.017777778},"on_screen":true,"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"-zsh","depth":2,"bounds":{"left":0.79236114,"top":0.05888889,"width":0.19791667,"height":0.026666667},"on_screen":true,"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.7965278,"top":0.06333333,"width":0.011111111,"height":0.017777778},"on_screen":true,"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"⌥⌘1","depth":1,"bounds":{"left":0.9618056,"top":0.032222223,"width":0.038194418,"height":0.018888889},"on_screen":true,"automation_id":"_NS:8","role_description":"text"},{"role":"AXStaticText","text":"APP (docker)","depth":1,"bounds":{"left":0.4722222,"top":0.033333335,"width":0.0625,"height":0.017777778},"on_screen":true,"role_description":"text"}]...
|
2802650493718167367
|
-1358120912881272742
|
idle
|
accessibility
|
NULL
|
Last login: Mon May 18 09:17:28 on ttys007
Poetry Last login: Mon May 18 09:17:28 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 (pipedrive-sdk-poc) $ co master
error: Your local changes to the following files would be overwritten by checkout:
PIPEDRIVE_V2_MIGRATION_TICKETS.md
Please commit your changes or stash them before you switch branches.
Aborting
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (pipedrive-sdk-poc) $ git pull
remote: Enumerating objects: 1047, done.
remote: Counting objects: 100% (832/832), done.
remote: Compressing objects: 100% (298/298), done.
remote: Total 1047 (delta 634), reused 596 (delta 534), pack-reused 215 (from 3)
Receiving objects: 100% (1047/1047), 353.16 KiB | 1.56 MiB/s, done.
Resolving deltas: 100% (687/687), completed with 107 local objects.
From github.com:jiminny/app
907c54896c..34656c53ed pipedrive-sdk-poc -> origin/pipedrive-sdk-poc
03325ec50f..4e7078fd8b JY-18091-upgrade-to-php-8-5 -> origin/JY-18091-upgrade-to-php-8-5
e7d231e163..bc6a3fce6b JY-20725-handle-HS-search-rate-limit -> origin/JY-20725-handle-HS-search-rate-limit
* [new branch] JY-20749-user-can-view-recorded-meetings -> origin/JY-20749-user-can-view-recorded-meetings
98ca281a04..e0351be069 JY-20808-low-priority-indexing-queue -> origin/JY-20808-low-priority-indexing-queue
569abb5149..3906a9238a JY-20835-mcp-enable-users-to-get-a-list-of-deals-and-their-details -> origin/JY-20835-mcp-enable-users-to-get-a-list-of-deals-and-their-details
ad6c2a86e8..50eb6afba9 JY-20846-mcp-enable-the-ai-to-know-details-about-the-user -> origin/JY-20846-mcp-enable-the-ai-to-know-details-about-the-user
* [new branch] JY-20893-chunk-control-per-update-target -> origin/JY-20893-chunk-control-per-update-target
31c62924a5..cb4ebf0c36 master -> origin/master
Updating 907c54896c..34656c53ed
Fast-forward
PIPEDRIVE_V2_MIGRATION_TICKETS.md | 52 ++++++++++++++++++++++++++++++++++++++++++++++++++++
1 file changed, 52 insertions(+)
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (pipedrive-sdk-poc) $ co master
M .env.local
M config/logging.php
Switched to branch 'master'
Your branch is behind 'origin/master' by 31 commits, and can be fast-forwarded.
(use "git pull" to update your local branch)
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (master) $ git pull
Updating 31c62924a5..cb4ebf0c36
Fast-forward
app/Component/ES/Processor/Traits/SelectEntityListTrait.php | 20 ------
app/Services/Calendar/CalendarActivityService.php | 46 +++++++++++++
app/Services/Calendar/Command/MapActivityData.php | 106 +++-------------------------
docs/mcp/explorer/explorer.html | 104 +++++++++++++++++++++++++---
docs/mcp/explorer/explorer.template.html | 102 ++++++++++++++++++++++++---
docs/mcp/tools-list.json | 373 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++-------
docs/mcp/tools.md | 117 +++++++++++++++++++++++--------
tests/Unit/Component/ES/AsyncUpdateElasticSearchTest.php | 16 +----
tests/Unit/Component/ES/Listeners/UpdateMultipleTargetsListenerTest.php | 10 ---
tests/Unit/Component/ES/Listeners/UpdateSingleTargetListenerTest.php | 6 --
tests/Unit/Component/ES/Processor/TargetEntitiesSelectorTest.php | 9 ---
tests/Unit/Component/ES/Processor/Traits/SelectEntityListTraitTest.php | 15 ++--
tests/Unit/Component/ES/UpdateProcessManagerTest.php | 2 -
tests/Unit/Services/Calendar/CalendarActivityServiceTest.php | 150 ++++++++++++++++++++++++++++++++++++++--
tests/Unit/Services/Calendar/Command/MapActivityDataTest.php | 78 ++-------------------
15 files changed, 832 insertions(+), 322 deletions(-)
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (master) $ co -b JY-20613-allow-owner-role-on-team-setup
Switched to a new branch 'JY-20613-allow-owner-role-on-team-setup'
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20613-allow-owner-role-on-team-setup) $ csfix
docker exec -it docker_lamp_1 ./vendor/bin/php-cs-fixer fix --config=.php-cs-fixer.dist.php -v --using-cache=no --diff
PHP CS Fixer 3.87.1 Alexander by Fabien Potencier, Dariusz Ruminski and contributors.
PHP runtime: 8.3.30
Running 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!
Loaded config default from ".php-cs-fixer.dist.php".
5682/5682 [▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓] 100%
Fixed 0 of 5682 files in 56.978 seconds, 67.00 MB memory used
What's next:
Try Docker Debug for seamless, persistent debugging tools in any container or image → docker debug docker_lamp_1
Learn more at [URL_WITH_CREDENTIALS] ~/jiminny/app (JY-20613-allow-owner-role-on-team-setup) $ csfix
docker exec -it docker_lamp_1 ./vendor/bin/php-cs-fixer fix --config=.php-cs-fixer.dist.php -v --using-cache=no --diff
PHP CS Fixer 3.87.1 Alexander by Fabien Potencier, Dariusz Ruminski and contributors.
PHP runtime: 8.3.30
Running 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!
Loaded config default from ".php-cs-fixer.dist.php".
5682/5682 [▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓] 100%
Fixed 0 of 5682 files in 49.910 seconds, 60.00 MB memory used
What's next:
Try Docker Debug for seamless, persistent debugging tools in any container or image → docker debug docker_lamp_1
Learn more at [URL_WITH_CREDENTIALS] ~/jiminny/app (JY-20613-allow-owner-role-on-team-setup) $ git pull
remote: Enumerating objects: 248, done.
remote: Counting objects: 100% (128/128), done.
remote: Compressing objects: 100% (23/23), done.
remote: Total 59 (delta 43), reused 44 (delta 33), pack-reused 0 (from 0)
Unpacking objects: 100% (59/59), 10.48 KiB | 228.00 KiB/s, done.
From github.com:jiminny/app
b7df560451..190239dfd4 JY-20613-allow-owner-role-on-team-setup -> origin/JY-20613-allow-owner-role-on-team-setup
e0351be069..d94a285ae7 JY-20808-low-priority-indexing-queue -> origin/JY-20808-low-priority-indexing-queue
* [new branch] JY-20920-fix-participant-matcher -> origin/JY-20920-fix-participant-matcher
cb4ebf0c36..90bca4e4b2 master -> origin/master
Merge made by the 'ort' strategy.
app/Component/ES/ChunkSize.php | 54 +++++++++++++++++++++++++++
app/Component/ES/Processor/DTOs/SelectionList.php | 4 +-
app/Component/ES/Processor/TargetEntitiesSelector.php | 19 ++++++----
app/Http/Middleware/McpTierMiddleware.php | 27 +++-----------
app/Mcp/Servers/JiminnyServer.php | 2 +
app/Mcp/Tools/GetMeTool.php | 157 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
app/Models/Feature/FeatureEnum.php | 1 +
database/migrations/2026_05_13_124153_create_mcp_feature_flag.php | 25 +++++++++++++
front-end/src/components/Settings/Kiosk/modals/EditTeamModal/EditTeamModal.vue | 52 ++++++++++++++++++--------
front-end/src/components/Settings/Kiosk/modals/EditTeamModal/__tests__/EditTeamModal.spec.js | 14 +++++++
tests/Feature/Mcp/GetMeToolFeatureTest.php | 140 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
tests/Feature/Mcp/ListCallsToolFeatureTest.php | 2 +-
tests/Feature/Mcp/McpTestHelpersTrait.php | 19 +++++++++-
tests/Unit/Component/ES/ChunkSizeTest.php | 50 +++++++++++++++++++++++++
tests/Unit/Component/ES/Processor/DTOs/SelectionListTest.php | 27 ++++++++++----
tests/Unit/Component/ES/Processor/TargetEntitiesSelectorTest.php | 39 +++++++++++---------
16 files changed, 557 insertions(+), 75 deletions(-)
create mode 100644 app/Component/ES/ChunkSize.php
create mode 100644 app/Mcp/Tools/GetMeTool.php
create mode 100644 database/migrations/2026_05_13_124153_create_mcp_feature_flag.php
create mode 100644 tests/Feature/Mcp/GetMeToolFeatureTest.php
create mode 100644 tests/Unit/Component/ES/ChunkSizeTest.php
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20613-allow-owner-role-on-team-setup) $ git push
Enumerating objects: 40, done.
Counting objects: 100% (34/34), done.
Delta compression using up to 8 threads
Compressing objects: 100% (18/18), done.
Writing objects: 100% (18/18), 1.58 KiB | 1.58 MiB/s, done.
Total 18 (delta 15), reused 0 (delta 0), pack-reused 0
remote: Resolving deltas: 100% (15/15), completed with 13 local objects.
To github.com:jiminny/app.git
190239dfd4..ec1b261264 JY-20613-allow-owner-role-on-team-setup -> JY-20613-allow-owner-role-on-team-setup
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20613-allow-owner-role-on-team-setup) $ gbr
* JY-20613-allow-owner-role-on-team-setup
pipedrive-sdk-poc
master
JY-20903-update_activity-stage-on-opportunity-change
JY-20904-fix-update-es-on-activity-command
JY-20891-improve-sms-text-relays
JY-20725-handle-HS-search-rate-limit
JY-20818-move-AJ-reports-to-separated-datadog-metric
JY-20773-fix-automated-reports-user-pilot-tracking
JY-20157-AJ-report-not-send-notification
JY-20508-notify-before-AJ-report-expiration
JY-20372-ai-reports-promotion-pages
JY-20352-sync-opportunities-without-a-local-owner-user-id-is-null
JY-20738-debug-AJ-tracking-UP
a
JY-18909-automated-reports-ask-jiminny
JY-20692-fix-integration-app-[API_KEY]
JY-20553-debug-crm-sync-delays
JY-20698-fix-SF-activity-types-on-new-playbook
JY-20543-AJ-report-tracking
JY-20384-handle-auto-sync-with-no-access-to-event-type
JY-20458-ask-jiminny-user-definitions
JY-19666-fix-import-contacts-account-association
JY-19666-HS-import-contacts-and-accounts-batch-job
JY-20458-Ask-Jiminny-Reports
JY-20200-batch-update-CRM-objects-Salesforce
JY-19666-HS-webhooks-add-contact-and-company
JY-20348-trigger-setup-DI-layout-on-team-creation
JY-20326-refactor-info-message-in-command
JY-20317-fix-auto-log-delay-issue-on-all-channels-disabled
JY-20312-remove-on-update-change-last-synced-at-crm-configurations
JY-20306-SF-skip-auto-sync-for-task-based-playbook
JY-20192-remove-deleted-team-from-saved-search-filters
JY-20197-import-opportunity-batch-job
JY-20293-enable-status-field-for-pipedrive-deals
JY-20191-remove-commands-interactive-prompts
JY-20118-change-default-sync-strategy
JY-20183-add-cache-on-auto-log-delay
JY-20197-add-import-opportunity-batch-job
20118-hs-opportunity-make-webhook-strategy-default
JY-20118-make-default-hs-opportunity-sync-strategy-webhook-based
JY-20196-handle-opportunity-without-note
JY-20118-improve-opportunity-import
JY-20189-handle-activity-search-on-deleted-groups
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20613-allow-owner-role-on-team-setup) $ co JY-20725-handle-HS-search-rate-limit
M .env.local
M config/logging.php
Switched to branch 'JY-20725-handle-HS-search-rate-limit'
Your branch is behind 'origin/JY-20725-handle-HS-search-rate-limit' by 439 commits, and can be fast-forwarded.
(use "git pull" to update your local branch)
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20725-handle-HS-search-rate-limit) $ git pull
Updating 0f3e438941..bc6a3fce6b
Fast-forward
.gitignore | 3 +-
.windsurfrules | 168 ++---
CLAUDE.md | 1 +
app/Component/ActivityAnalytics/Service/CalculateTalkTimeOffsetsFromTranscription.php | 24 +-
app/Component/AiActivityType/Services/AiActivityTypeEligibilityChecker.php | 28 +-
app/Component/AiAutomation/Actions/PrepareUpdateDtoAction.php | 32 +-
app/Component/AiAutomation/Services/CrmFillingEligibilityChecker.php | 47 ++
app/Component/AiAutomation/TestCrmAiPromptService.php | 14 +
app/Component/AiCallScoring/Services/AiCallScoringEligibilityChecker.php | 9 +
app/Component/ES/ElasticSearchDocumentPartialUpdater.php | 13 +-
app/Component/ES/ElasticSearchWorkerManager.php | 86 ---
app/Component/ES/Processor/Actions/LoadDocumentsAction.php | 80 +--
app/Component/ES/Processor/EntityQueryBuilder.php | 12 +-
app/Component/ES/Processor/TargetEntitiesSelector.php | 2 +-
app/Component/ES/Processor/Traits/SkipActivityTrait.php | 25 -
app/Component/ES/Repositories/EsResetActivityRepository.php | 11 +-
app/Component/ES/Worker/ActivityWorker.php | 73 --
app/Component/ES/Worker/EntityWorker.php | 44 --
app/Component/ES/Worker/WorkerAmount.php | 60 --
app/Component/ES/Worker/WorkerInterface.php | 15 -
app/Component/ElasticSearch/Contract/Searchable.php | 4 +
app/Component/Encoding/Job/AnalyzeTrackChannelsJob.php | 20 +-
app/Component/Encoding/Service/GenerateSpeechFromSilenceService.php | 85 ++-
app/Component/FFMpeg/Services/GetSpeechIntervalsService.php | 18 +-
app/Component/LanguageDetection/Services/FindSpeechTimeService.php | 22 +-
app/Component/Nudge/Job/ProcessOrganisationImmediateNudgesJob.php | 218 +++++-
app/Component/ParagraphBreaker/Services/TranscriptionParagraphsService.php | 4 +
app/Component/ParticipantSpeech/Services/ParticipantSpeechesCreator.php | 33 +
app/Component/ParticipantSpeech/Services/ParticipantSpeechesDeleter.php | 15 +
app/Component/ParticipantSpeech/Services/ParticipantSpeechesProvider.php | 51 +-
app/Component/ParticipantSpeech/Services/ParticipantSpeechesUploader.php | 36 +
app/Component/ProphetAi/Exceptions/InsufficientTranscriptException.php | 11 +
app/Component/Transcription/DTO/Http/Transcription/AssemblyAI/AssemblyAI/NoAssemblyIdException.php | 11 +
app/Component/Transcription/DTO/Http/Transcription/AssemblyAI/AssemblyAI/SuccessfulResponse.php | 6 +
app/Component/Transcription/DTO/Http/Transcription/TranscriptionIsNotCorrectFormatException.php | 11 +
app/Component/Transcription/Diarization/Services/GetNormalizedParticipantSpeechesService.php | 23 +-
app/Component/Transcription/Diarization/Source/MeetingBotSource.php | 16 +-
app/Component/Transcription/TranscriptionProcessor/TranscriptionProcessor.php | 3 +
app/Console/Commands/Activities/ActivityHardDeleteCommand.php | 4 +-
app/Console/Commands/Activities/Copy.php | 2 +
app/Console/Commands/Activities/SetupIntegration/TwilioSetS3RecordingCredentialsCommand.php | 119 ++++
app/Console/Commands/Activities/UpdateActivityElasticSearchDocumentCommand.php | 10 +-
app/Console/Commands/Crm/BackfillOpportunityUserFromAccountCommand.php | 126 ++++
app/Console/Commands/Elasticsearch/AsyncUpdateEsActivities.php | 19 -
app/Console/Commands/Elasticsearch/AsyncUpdateEsEntities.php | 50 +-
app/Console/Commands/Elasticsearch/ResetAsyncElasticSearchCommand.php | 30 +-
app/Console/Commands/GeckoExport/GeckoExportParticipantSpeechesCommand.php | 14 +-
app/Console/Commands/IssueMcpTokenCommand.php | 84 +++
app/Console/Commands/JiminnyDebugCommand.php | 7 +-
app/Console/Commands/Tracks/CleanupActivityTracksCommand.php | 2 +-
app/Console/Kernel.php | 6 +-
app/Contracts/Services/Calendar/CalendarTrait.php | 80 ++-
app/Events/AutomatedReports/AutomatedReportGenerated.php | 3 +
app/Http/Controllers/API/AiCallScoring/AiScorecardController.php | 7 +-
app/Http/Controllers/API/TeamAiAutomationController.php | 8 +
app/Http/Controllers/CustomerApi/CustomerApiController.php | 4 +-
app/Http/Controllers/Kiosk/ActivityController.php | 58 +-
app/Http/Controllers/Settings/PlaybookController.php | 15 +-
app/Http/Kernel.php | 23 +
app/Http/Middleware/McpAuditMiddleware.php | 156 ++++
app/Http/Middleware/McpTierMiddleware.php | 54 ++
app/Http/Requests/API/V2/ZapierUploadActivityRequest.php | 28 +-
app/Jobs/Activity/Import/ImportTwilioVideoSpeechesJob.php | 25 +-
app/Jobs/Activity/Import/IsActivityReadyForProcessingJob.php | 10 +-
app/Jobs/Calendar/SetupCalendarSync.php | 21 +-
app/Jobs/ImportRemoteTrackJob.php | 96 ++-
app/Jobs/Mailbox/EmailTextRelay.php | 15 +-
app/Mcp/Contracts/McpCallRepositoryInterface.php | 30 +
app/Mcp/DTO/ListCallsFilters.php | 29 +
app/Mcp/Errors/McpError.php | 123 ++++
app/Mcp/Repositories/McpActivityHydrator.php | 145 ++++
app/Mcp/Repositories/McpCallRepository.php | 84 +++
app/Mcp/Repositories/McpElasticCallRepository.php | 171 +++++
app/Mcp/Servers/JiminnyServer.php | 38 +
app/Mcp/Tools/ListCallsTool.php | 205 ++++++
app/Models/Activity.php | 10 +-
app/Models/Activity/Transcription.php | 17 +-
app/Models/ElasticSearch/OpportunityElasticSearchTrait.php | 5 +
app/Models/Participant.php | 1 +
app/Providers/AppServiceProvider.php | 22 +
app/Repositories/Crm/ContactRepository.php | 69 +-
app/Repositories/ParticipantSpeechRepository.php | 13 +-
app/Services/Activity/ParticipantsService.php | 19 +-
app/Services/Activity/Twilio/S3RecordingCredentialsService.php | 82 +++
app/Services/ActivityService.php | 21 +-
app/Services/Calendar/CalendarActivityService.php | 46 ++
app/Services/Calendar/Command/ImportParticipants.php | 1 +
app/Services/Calendar/Command/MapActivityData.php | 106 +--
app/Services/Calendar/GoogleCalendarService.php | 12 +-
app/Services/Crm/Close/Processor/OpportunityProcessor.php | 2 +-
app/Services/Crm/Close/Service.php | 22 +-
app/Services/Crm/Copper/Service.php | 12 +-
app/Services/Crm/Hubspot/Service.php | 154 +++-
app/Services/Crm/Hubspot/ServiceTraits/OpportunitySyncTrait.php | 88 ++-
app/Services/Crm/IntegrationApp/ServiceTraits/SyncCrmEntitiesTrait.php | 22 +-
app/Services/Crm/Pipedrive/Service.php | 17 +-
app/Services/Crm/Salesforce/Service.php | 42 +-
app/Services/Mail/Office/EmailApiClient.php | 129 +---
app/Services/RecallAI/Commands/ScheduleBotCommand.php | 39 +-
app/Services/RecallAI/RecallAIService.php | 22 +-
composer.json | 3 +-
composer.lock | 87 ++-
config/mcp.php | 23 +
database/migrations/2026_04_30_120000_create_mcp_audit_log_table.php | 36 +
docs/mcp/explorer/explorer.html | 697 ++++++++++++++++++
docs/mcp/explorer/explorer.template.html | 697 ++++++++++++++++++
docs/mcp/explorer/generate.js | 215 ++++++
docs/mcp/explorer/tool-explorer-meta.json | 11 +
docs/mcp/tools-list.json | 2536 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
docs/mcp/tools.md | 621 ++++++++++++++++
front-end/package.json | 4 +-
front-end/src/components/Settings/OrgSettings/AiAutomation/CrmFilling/TemplateFieldForm.vue | 28 +-
front-end/src/components/Settings/OrgSettings/Playbooks/AddEditPlaybook.vue | 10 +
front-end/src/components/playback/comments/ActivityComment.less | 10 +-
front-end/src/components/shared/PromptTester/PromptTester.vue | 12 +-
front-end/src/components/shared/__tests__/PromptTester.spec.js | 35 +
front-end/src/components/shared/modals/EntityPickerModal/__tests__/useEntitiesCache.spec.ts | 37 +
front-end/src/components/shared/modals/EntityPickerModal/useEntitiesCache.ts | 9 +
front-end/yarn.lock | 16 +-
phpstan-baseline.neon | 50 --
routes/api.php | 11 +
sonar-project.properties | 91 ++-
tests/Feature/Component/Nudge/ProcessOrganisationImmediateNudgesJobTest.php | 534 ++++++++++++++
tests/Feature/Jobs/ImportRemoteTrackJobTest.php | 283 +++++++-
tests/Feature/Mcp/IssueMcpTokenCommandTest.php | 53 ++
tests/Feature/Mcp/ListCallsToolElasticFeatureTest.php | 155 ++++
tests/Feature/Mcp/ListCallsToolFeatureTest.php | 352 ++++++++++
tests/Feature/Mcp/McpTestHelpersTrait.php | 77 ++
tests/Feature/Services/Team/TeamDeleteHandlers/Retention/RetentionRepositoryHandlerTest.php | 1 +
tests/Stubs/SentryStub.php | 18 +
tests/Unit/Component/ActivityAnalytics/Service/CalculateTalkTimeOffsetFromTranscriptionTest.php | 28 +-
tests/Unit/Component/AiActivityType/Services/AiActivityTypeEligibilityCheckerTest.php | 103 ++-
tests/Unit/Component/AiAutomation/Actions/PrepareUpdateDtoActionTest.php | 91 +++
tests/Unit/Component/AiAutomation/Services/CrmFillingEligibilityCheckerTest.php | 124 ++++
tests/Unit/Component/AiAutomation/TestCrmAiPromptServiceTest.php | 67 +-
tests/Unit/Component/AiCallScoring/Services/AiCallScoringEligibilityCheckerTest.php | 55 ++
tests/Unit/Component/ES/ElasticSearchWorkerManagerTest.php | 135 ----
tests/Unit/Component/ES/Processor/Actions/LoadDocumentsActionTest.php | 220 ++++++
tests/Unit/Component/ES/Processor/EntityQueryBuilderTest.php | 21 +-
tests/Unit/Component/ES/Processor/Traits/SkipActivityTraitTest.php | 51 --
tests/Unit/Component/ES/Worker/ActivityWorkerTest.php | 174 -----
tests/Unit/Component/ES/Worker/EntityWorkerTest.php | 97 ---
tests/Unit/Component/ES/Worker/WorkerAmountTest.php | 116 ---
tests/Unit/Component/Encoding/Job/AnalyzeTrackChannelsJobTest.php | 52 +-
tests/Unit/Component/Encoding/Service/GenerateSpeechFromSilenceServiceTest.php | 171 ++---
tests/Unit/Component/FFMpeg/Services/GetSpeechIntervalsTest.php | 36 +-
tests/Unit/Component/LanguageDetection/Services/FindSpeechTimeServiceTest.php | 20 +-
tests/Unit/Component/MobileSettings/MobileSettingsControllerTest.php | 5 +-
tests/Unit/Component/ParticipantSpeech/Services/ParticipantSpeechesCreatorTest.php | 75 ++
tests/Unit/Component/ParticipantSpeech/Services/ParticipantSpeechesDeleterTest.php | 63 ++
tests/Unit/Component/ParticipantSpeech/Services/ParticipantSpeechesProviderTest.php | 134 ++++
tests/Unit/Component/ParticipantSpeech/Services/ParticipantSpeechesUploaderTest.php | 57 ++
tests/Unit/Component/Transcription/Diarization/Services/GetNormalizedParticipantSpeechesServiceTest.php | 51 +-
tests/Unit/Component/Transcription/Diarization/Source/MeetingBotSourceTest.php | 29 +-
tests/Unit/Contracts/Services/Calendar/CalendarTraitTest.php | 58 +-
tests/Unit/Http/Controllers/Kiosk/ActivityControllerTest.php | 159 +++++
tests/Unit/Jobs/Activity/Import/ImportTwilioVideoSpeechesJobTest.php | 22 +-
tests/Unit/Jobs/Activity/Import/IsActivityReadyForProcessingJobTest.php | 26 +-
tests/Unit/Jobs/Calendar/SetupCalendarSyncTest.php | 25 -
tests/Unit/Services/Activity/ParticipantsServiceTest.php | 12 +-
tests/Unit/Services/Activity/Twilio/S3RecordingCredentialsServiceTest.php | 180 +++++
tests/Unit/Services/ActivityServiceTest.php | 132 ++++
tests/Unit/Services/Calendar/CalendarActivityServiceTest.php | 150 +++-
tests/Unit/Services/Calendar/Command/ImportParticipantsTest.php | 6 +-
tests/Unit/Services/Calendar/Command/MapActivityDataTest.php | 78 +-
tests/Unit/Services/Calendar/GoogleCalendarServiceTest.php | 116 +++
tests/Unit/Services/Crm/Close/ServiceTest.php | 165 +++++
tests/Unit/Services/Crm/Hubspot/ServiceTest.php | 272 ++++++-
tests/Unit/Services/Crm/Hubspot/ServiceTraits/OpportunitySyncTest.php | 25 +-
tests/Unit/Services/Crm/Hubspot/ServiceTraits/OpportunitySyncTraitMatchActivitiesTest.php | 3 +-
tests/Unit/Services/Crm/IntegrationApp/ServiceTraits/SyncCrmEntitiesTraitOpportunitiesTest.php | 40 ++
tests/Unit/Services/Crm/Pipedrive/ImportOpportunityMatchActivitiesTest.php | 2 +
tests/Unit/Services/Crm/Salesforce/ServiceTest.php | 139 ++++
tests/Unit/Services/Mail/Office/EmailApiClientTest.php | 195 ++---
tests/Unit/Services/RecallAI/RecallAIServiceTest.php | 24 +-
175 files changed, 12562 insertions(+), 2162 deletions(-)
create mode 120000 CLAUDE.md
create mode 100644 app/Component/AiAutomation/Services/CrmFillingEligibilityChecker.php
delete mode 100644 app/Component/ES/ElasticSearchWorkerManager.php
delete mode 100644 app/Component/ES/Processor/Traits/SkipActivityTrait.php
delete mode 100644 app/Component/ES/Worker/ActivityWorker.php
delete mode 100644 app/Component/ES/Worker/EntityWorker.php
delete mode 100644 app/Component/ES/Worker/WorkerAmount.php
delete mode 100644 app/Component/ES/Worker/WorkerInterface.php
create mode 100644 app/Component/ProphetAi/Exceptions/InsufficientTranscriptException.php
create mode 100644 app/Component/Transcription/DTO/Http/Transcription/AssemblyAI/AssemblyAI/NoAssemblyIdException.php
create mode 100644 app/Component/Transcription/DTO/Http/Transcription/TranscriptionIsNotCorrectFormatException.php
create mode 100644 app/Console/Commands/Activities/SetupIntegration/TwilioSetS3RecordingCredentialsCommand.php
create mode 100644 app/Console/Commands/Crm/BackfillOpportunityUserFromAccountCommand.php
delete mode 100644 app/Console/Commands/Elasticsearch/AsyncUpdateEsActivities.php
create mode 100644 app/Console/Commands/IssueMcpTokenCommand.php
create mode 100644 app/Http/Middleware/McpAuditMiddleware.php
create mode 100644 app/Http/Middleware/McpTierMiddleware.php
create mode 100644 app/Mcp/Contracts/McpCallRepositoryInterface.php
create mode 100644 app/Mcp/DTO/ListCallsFilters.php
create mode 100644 app/Mcp/Errors/McpError.php
create mode 100644 app/Mcp/Repositories/McpActivityHydrator.php
create mode 100644 app/Mcp/Repositories/McpCallRepository.php
create mode 100644 app/Mcp/Repositories/McpElasticCallRepository.php
create mode 100644 app/Mcp/Servers/JiminnyServer.php
create mode 100644 app/Mcp/Tools/ListCallsTool.php
create mode 100644 app/Services/Activity/Twilio/S3RecordingCredentialsService.php
create mode 100644 config/mcp.php
create mode 100644 database/migrations/2026_04_30_120000_create_mcp_audit_log_table.php
create mode 100644 docs/mcp/explorer/explorer.html
create mode 100644 docs/mcp/explorer/explorer.template.html
create mode 100644 docs/mcp/explorer/generate.js
create mode 100644 docs/mcp/explorer/tool-explorer-meta.json
create mode 100644 docs/mcp/tools-list.json
create mode 100644 docs/mcp/tools.md
create mode 100644 front-end/src/components/shared/modals/EntityPickerModal/__tests__/useEntitiesCache.spec.ts
create mode 100644 tests/Feature/Component/Nudge/ProcessOrganisationImmediateNudgesJobTest.php
create mode 100644 tests/Feature/Mcp/IssueMcpTokenCommandTest.php
create mode 100644 tests/Feature/Mcp/ListCallsToolElasticFeatureTest.php
create mode 100644 tests/Feature/Mcp/ListCallsToolFeatureTest.php
create mode 100644 tests/Feature/Mcp/McpTestHelpersTrait.php
create mode 100644 tests/Stubs/SentryStub.php
create mode 100644 tests/Unit/Component/AiAutomation/Services/CrmFillingEligibilityCheckerTest.php
delete mode 100644 tests/Unit/Component/ES/ElasticSearchWorkerManagerTest.php
create mode 100644 tests/Unit/Component/ES/Processor/Actions/LoadDocumentsActionTest.php
delete mode 100644 tests/Unit/Component/ES/Processor/Traits/SkipActivityTraitTest.php
delete mode 100644 tests/Unit/Component/ES/Worker/ActivityWorkerTest.php
delete mode 100644 tests/Unit/Component/ES/Worker/EntityWorkerTest.php
delete mode 100644 tests/Unit/Component/ES/Worker/WorkerAmountTest.php
create mode 100644 tests/Unit/Component/ParticipantSpeech/Services/ParticipantSpeechesCreatorTest.php
create mode 100644 tests/Unit/Http/Controllers/Kiosk/ActivityControllerTest.php
create mode 100644 tests/Unit/Services/Activity/Twilio/S3RecordingCredentialsServiceTest.php
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20725-handle-HS-search-rate-limit) $ git status
On branch master
Your branch is behind 'origin/master' by 114 commits, and can be fast-forwarded.
(use "git pull" to update your local branch)
Changes not staged for commit:
(use "git add <file>..." to update what will be committed)
(use "git restore <file>..." to discard changes in working directory)
modified: .env.local
modified: app/Component/SCIM/Constants.php
modified: app/Component/SCIM/ScimProvisioning.php
modified: app/Component/Twilio/Conference/ConferenceManager/SoftPhoneManager.php
modified: app/Console/Commands/JiminnyDebugCommand.php
modified: app/DTO/SCIM/AAD/Request/CoreUserRequest.php
modified: app/DTO/SCIM/AAD/Response/CoreUser.php
modified: app/Services/Telephony/TextMessagingService.php
modified: config/logging.php
Untracked files:
(use "git add <file>..." to include in what will be committed)
.env.nikilocal
.env.other
WEBHOOK_FILTERING_IMPLEMENTATION.md
app/Component/SCIM/Mutators/Attributes/User/RoleAttr.php
app/Console/Commands/Crm/Hubspot/SimulateWebhooksCommand.php
app/Console/Commands/Reports/CreateMockAskJiminnyReportResultCommand.php
app/Rules/ListenerRoleCannotHaveAdminOrManagerPermissionRule.php
ids.txt
public/favicon.ico
raw_sql_query.sql
tests/Unit/Component/SCIM/Mutators/Attributes/User/RoleAttrTest.php
tests/Unit/Policies/CanAccessAiReportsTest.php
tests/Unit/Rules/ListenerRoleCannotHaveAdminOrManagerPermissionRuleTest.php
no changes added to commit (use "git add" and/or "git commit -a")
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (master) $ git pull
remote: Enumerating objects: 306, done.
remote: Counting objects: 100% (299/299), done.
remote: Compressing objects: 100% (183/183), done.
remote: Total 306 (delta 213), reused 171 (delta 116), pack-reused 7 (from 1)
Receiving objects: 100% (306/306), 80.12 KiB | 1000.00 KiB/s, done.
Resolving deltas: 100% (213/213), completed with 53 local objects.
From github.com:jiminny/app
90bca4e4b2..5604af40cf master -> origin/master
4e7078fd8b..0b8343d179 JY-18091-upgrade-to-php-8-5 -> origin/JY-18091-upgrade-to-php-8-5
098eeaa087..d5a447e492 JY-20613-allow-owner-role-on-team-setup -> origin/JY-20613-allow-owner-role-on-team-setup
c3a76ace91..af65249d0f JY-20749-user-can-view-recorded-meetings -> origin/JY-20749-user-can-view-recorded-meetings
d94a285ae7..7ce96cb5fe JY-20808-low-priority-indexing-queue -> origin/JY-20808-low-priority-indexing-queue
* [new branch] JY-20842-remove-partial-updater -> origin/JY-20842-remove-partial-updater
* [new branch] JY-20920-fix-participant-flip -> origin/JY-20920-fix-participant-flip
* [new branch] secfix/npm-20260519 -> origin/secfix/npm-20260519
Updating cb4ebf0c36..5604af40cf
Fast-forward
app/Component/ES/ChunkSize.php | 54 +++++++++++++++++++
app/Component/ES/Processor/DTOs/SelectionList.php | 4 +-
app/Component/ES/Processor/TargetEntitiesSelector.php | 19 ++++---
app/Component/MeetingBot/Service/ParticipantMatcher.php | 46 ++++++++++++----
app/Exceptions/RateLimitException.php | 19 ++++++-
app/Http/Middleware/McpTierMiddleware.php | 27 ++--------
app/Jobs/Crm/MatchActivityCrmData.php | 47 ++++++++++++----
app/Jobs/Middleware/HandleHubspotRateLimit.php | 42 +++++++++++++++
app/Mcp/Servers/JiminnyServer.php | 2 +
app/Mcp/Tools/GetMeTool.php | 157 +++++++++++++++++++++++++++++++++++++++++++++++++++++
app/Models/Feature/FeatureEnum.php | 1 +
app/Services/Activity/HubSpot/ProviderResolver.php | 4 +-
app/Services/Activity/HubSpot/ProviderResolverInterface.php | 2 +-
app/Services/Activity/HubSpot/Providers/Provider.php | 2 +-
app/Services/Activity/HubSpot/Providers/ProviderKixie.php | 2 +-
app/Services/Activity/HubSpot/Providers/ProviderOrum.php | 2 +-
app/Services/Activity/HubSpot/Providers/ProviderTwilio.php | 2 +-
app/Services/Activity/HubSpot/Providers/ProviderTwilioFlex.php | 5 +-
app/Services/Activity/HubSpot/Service.php | 97 +++++++++++++++++++++++++++------
app/Services/Crm/Hubspot/Client.php | 132 +++++++++++++++++++++++++++++++++++++++++++++
app/Services/Crm/Hubspot/HubspotClientInterface.php | 15 ++++++
app/Services/Crm/Hubspot/Pagination/HubspotPaginationService.php | 21 ++++----
app/Services/Crm/Hubspot/Pagination/PaginationState.php | 2 +-
database/migrations/2026_05_13_124153_create_mcp_feature_flag.php | 25 +++++++++
tests/Feature/Mcp/GetMeToolFeatureTest.php | 140 +++++++++++++++++++++++++++++++++++++++++++++++
tests/Feature/Mcp/ListCallsToolFeatureTest.php | 2 +-
tests/Feature/Mcp/McpTestHelpersTrait.php | 19 ++++++-
tests/Unit/Component/ES/ChunkSizeTest.php | 50 +++++++++++++++++
tests/Unit/Component/ES/Processor/DTOs/SelectionListTest.php | 27 +++++++---
tests/Unit/Component/ES/Processor/TargetEntitiesSelectorTest.php | 39 ++++++++------
tests/Unit/Component/MeetingBot/Service/ParticipantMatcherTest.php | 68 ++++++++++++++++++++++-
tests/Unit/Exceptions/RateLimitExceptionTest.php | 56 +++++++++++++++++++
tests/Unit/Jobs/Crm/MatchActivityCrmDataTest.php | 8 +--
tests/Unit/Jobs/Middleware/HandleHubspotRateLimitTest.php | 151 +++++++++++++++++++++++++++++++++++++++++++++++++++
tests/Unit/Services/Activity/HubSpot/ServiceTest.php | 109 +++++++++++++++++++++++++++++++++++++
tests/Unit/Services/Crm/Hubspot/ClientTest.php | 250 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
tests/Unit/Services/Crm/Hubspot/Pagination/HubspotPaginationServiceTest.php | 283 +++++++++++++++++++++---------------------------------------------------------------------------
37 files changed, 1587 insertions(+), 344 deletions(-)
create mode 100644 app/Component/ES/ChunkSize.php
create mode 100644 app/Jobs/Middleware/HandleHubspotRateLimit.php
create mode 100644 app/Mcp/Tools/GetMeTool.php
create mode 100644 database/migrations/2026_05_13_124153_create_mcp_feature_flag.php
create mode 100644 tests/Feature/Mcp/GetMeToolFeatureTest.php
create mode 100644 tests/Unit/Component/ES/ChunkSizeTest.php
create mode 100644 tests/Unit/Exceptions/RateLimitExceptionTest.php
create mode 100644 tests/Unit/Jobs/Middleware/HandleHubspotRateLimitTest.php
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (master) $ git pull
Already up to date.
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (master) $ co -b JY-20676-delete-report-related-objects
Switched to a new branch 'JY-20676-delete-report-related-objects'
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20676-delete-report-related-objects) $ csfix
docker exec -it docker_lamp_1 ./vendor/bin/php-cs-fixer fix --config=.php-cs-fixer.dist.php -v --using-cache=no --diff
PHP CS Fixer 3.87.1 Alexander by Fabien Potencier, Dariusz Ruminski and contributors.
PHP runtime: 8.3.30
Running 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!
Loaded config default from ".php-cs-fixer.dist.php".
5690/5690 [▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓] 100%
1) app/Console/Commands/JiminnyDebugCommand.php (statement_indentation, blank_line_before_statement)
---------- begin diff ----------
--- /home/jiminny/app/Console/Commands/JiminnyDebugCommand.php
+++ /home/jiminny/app/Console/Commands/JiminnyDebugCommand.php
@@ -23,6 +23,7 @@
if ($action === 'redis-set') {
$this->testRedisSet();
+
return;
}
@@ -45,7 +46,7 @@
$ttl = 60;
try {
-// $result = Redis::set($testKey, $testValue, 'EX', $ttl, 'NX');
+ // $result = Redis::set($testKey, $testValue, 'EX', $ttl, 'NX');
$result = Redis::set($testKey, $testValue, ['nx', 'ex' => $ttl]);
if ($result) {
----------- end diff -----------
Fixed 1 of 5690 files i...
|
58093
|
NULL
|
NULL
|
NULL
|
|
58101
|
2047
|
1
|
2026-05-19T11:36:47.869056+00:00
|
/Users/lukas/.screenpipe/data/data/2026-05-19/1779 /Users/lukas/.screenpipe/data/data/2026-05-19/1779190607869_m2.jpg...
|
iTerm2
|
APP (-zsh)
|
1
|
NULL
|
monitor_2
|
NULL
|
NULL
|
NULL
|
NULL
|
Last login: Mon May 18 09:17:28 on ttys007
Poetry Last login: Mon May 18 09:17:28 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 (pipedrive-sdk-poc) $ co master
error: Your local changes to the following files would be overwritten by checkout:
PIPEDRIVE_V2_MIGRATION_TICKETS.md
Please commit your changes or stash them before you switch branches.
Aborting
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (pipedrive-sdk-poc) $ git pull
remote: Enumerating objects: 1047, done.
remote: Counting objects: 100% (832/832), done.
remote: Compressing objects: 100% (298/298), done.
remote: Total 1047 (delta 634), reused 596 (delta 534), pack-reused 215 (from 3)
Receiving objects: 100% (1047/1047), 353.16 KiB | 1.56 MiB/s, done.
Resolving deltas: 100% (687/687), completed with 107 local objects.
From github.com:jiminny/app
907c54896c..34656c53ed pipedrive-sdk-poc -> origin/pipedrive-sdk-poc
03325ec50f..4e7078fd8b JY-18091-upgrade-to-php-8-5 -> origin/JY-18091-upgrade-to-php-8-5
e7d231e163..bc6a3fce6b JY-20725-handle-HS-search-rate-limit -> origin/JY-20725-handle-HS-search-rate-limit
* [new branch] JY-20749-user-can-view-recorded-meetings -> origin/JY-20749-user-can-view-recorded-meetings
98ca281a04..e0351be069 JY-20808-low-priority-indexing-queue -> origin/JY-20808-low-priority-indexing-queue
569abb5149..3906a9238a JY-20835-mcp-enable-users-to-get-a-list-of-deals-and-their-details -> origin/JY-20835-mcp-enable-users-to-get-a-list-of-deals-and-their-details
ad6c2a86e8..50eb6afba9 JY-20846-mcp-enable-the-ai-to-know-details-about-the-user -> origin/JY-20846-mcp-enable-the-ai-to-know-details-about-the-user
* [new branch] JY-20893-chunk-control-per-update-target -> origin/JY-20893-chunk-control-per-update-target
31c62924a5..cb4ebf0c36 master -> origin/master
Updating 907c54896c..34656c53ed
Fast-forward
PIPEDRIVE_V2_MIGRATION_TICKETS.md | 52 ++++++++++++++++++++++++++++++++++++++++++++++++++++
1 file changed, 52 insertions(+)
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (pipedrive-sdk-poc) $ co master
M .env.local
M config/logging.php
Switched to branch 'master'
Your branch is behind 'origin/master' by 31 commits, and can be fast-forwarded.
(use "git pull" to update your local branch)
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (master) $ git pull
Updating 31c62924a5..cb4ebf0c36
Fast-forward
app/Component/ES/Processor/Traits/SelectEntityListTrait.php | 20 ------
app/Services/Calendar/CalendarActivityService.php | 46 +++++++++++++
app/Services/Calendar/Command/MapActivityData.php | 106 +++-------------------------
docs/mcp/explorer/explorer.html | 104 +++++++++++++++++++++++++---
docs/mcp/explorer/explorer.template.html | 102 ++++++++++++++++++++++++---
docs/mcp/tools-list.json | 373 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++-------
docs/mcp/tools.md | 117 +++++++++++++++++++++++--------
tests/Unit/Component/ES/AsyncUpdateElasticSearchTest.php | 16 +----
tests/Unit/Component/ES/Listeners/UpdateMultipleTargetsListenerTest.php | 10 ---
tests/Unit/Component/ES/Listeners/UpdateSingleTargetListenerTest.php | 6 --
tests/Unit/Component/ES/Processor/TargetEntitiesSelectorTest.php | 9 ---
tests/Unit/Component/ES/Processor/Traits/SelectEntityListTraitTest.php | 15 ++--
tests/Unit/Component/ES/UpdateProcessManagerTest.php | 2 -
tests/Unit/Services/Calendar/CalendarActivityServiceTest.php | 150 ++++++++++++++++++++++++++++++++++++++--
tests/Unit/Services/Calendar/Command/MapActivityDataTest.php | 78 ++-------------------
15 files changed, 832 insertions(+), 322 deletions(-)
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (master) $ co -b JY-20613-allow-owner-role-on-team-setup
Switched to a new branch 'JY-20613-allow-owner-role-on-team-setup'
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20613-allow-owner-role-on-team-setup) $ csfix
docker exec -it docker_lamp_1 ./vendor/bin/php-cs-fixer fix --config=.php-cs-fixer.dist.php -v --using-cache=no --diff
PHP CS Fixer 3.87.1 Alexander by Fabien Potencier, Dariusz Ruminski and contributors.
PHP runtime: 8.3.30
Running 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!
Loaded config default from ".php-cs-fixer.dist.php".
5682/5682 [▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓] 100%
Fixed 0 of 5682 files in 56.978 seconds, 67.00 MB memory used
What's next:
Try Docker Debug for seamless, persistent debugging tools in any container or image → docker debug docker_lamp_1
Learn more at [URL_WITH_CREDENTIALS] ~/jiminny/app (JY-20613-allow-owner-role-on-team-setup) $ csfix
docker exec -it docker_lamp_1 ./vendor/bin/php-cs-fixer fix --config=.php-cs-fixer.dist.php -v --using-cache=no --diff
PHP CS Fixer 3.87.1 Alexander by Fabien Potencier, Dariusz Ruminski and contributors.
PHP runtime: 8.3.30
Running 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!
Loaded config default from ".php-cs-fixer.dist.php".
5682/5682 [▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓] 100%
Fixed 0 of 5682 files in 49.910 seconds, 60.00 MB memory used
What's next:
Try Docker Debug for seamless, persistent debugging tools in any container or image → docker debug docker_lamp_1
Learn more at [URL_WITH_CREDENTIALS] ~/jiminny/app (JY-20613-allow-owner-role-on-team-setup) $ git pull
remote: Enumerating objects: 248, done.
remote: Counting objects: 100% (128/128), done.
remote: Compressing objects: 100% (23/23), done.
remote: Total 59 (delta 43), reused 44 (delta 33), pack-reused 0 (from 0)
Unpacking objects: 100% (59/59), 10.48 KiB | 228.00 KiB/s, done.
From github.com:jiminny/app
b7df560451..190239dfd4 JY-20613-allow-owner-role-on-team-setup -> origin/JY-20613-allow-owner-role-on-team-setup
e0351be069..d94a285ae7 JY-20808-low-priority-indexing-queue -> origin/JY-20808-low-priority-indexing-queue
* [new branch] JY-20920-fix-participant-matcher -> origin/JY-20920-fix-participant-matcher
cb4ebf0c36..90bca4e4b2 master -> origin/master
Merge made by the 'ort' strategy.
app/Component/ES/ChunkSize.php | 54 +++++++++++++++++++++++++++
app/Component/ES/Processor/DTOs/SelectionList.php | 4 +-
app/Component/ES/Processor/TargetEntitiesSelector.php | 19 ++++++----
app/Http/Middleware/McpTierMiddleware.php | 27 +++-----------
app/Mcp/Servers/JiminnyServer.php | 2 +
app/Mcp/Tools/GetMeTool.php | 157 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
app/Models/Feature/FeatureEnum.php | 1 +
database/migrations/2026_05_13_124153_create_mcp_feature_flag.php | 25 +++++++++++++
front-end/src/components/Settings/Kiosk/modals/EditTeamModal/EditTeamModal.vue | 52 ++++++++++++++++++--------
front-end/src/components/Settings/Kiosk/modals/EditTeamModal/__tests__/EditTeamModal.spec.js | 14 +++++++
tests/Feature/Mcp/GetMeToolFeatureTest.php | 140 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
tests/Feature/Mcp/ListCallsToolFeatureTest.php | 2 +-
tests/Feature/Mcp/McpTestHelpersTrait.php | 19 +++++++++-
tests/Unit/Component/ES/ChunkSizeTest.php | 50 +++++++++++++++++++++++++
tests/Unit/Component/ES/Processor/DTOs/SelectionListTest.php | 27 ++++++++++----
tests/Unit/Component/ES/Processor/TargetEntitiesSelectorTest.php | 39 +++++++++++---------
16 files changed, 557 insertions(+), 75 deletions(-)
create mode 100644 app/Component/ES/ChunkSize.php
create mode 100644 app/Mcp/Tools/GetMeTool.php
create mode 100644 database/migrations/2026_05_13_124153_create_mcp_feature_flag.php
create mode 100644 tests/Feature/Mcp/GetMeToolFeatureTest.php
create mode 100644 tests/Unit/Component/ES/ChunkSizeTest.php
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20613-allow-owner-role-on-team-setup) $ git push
Enumerating objects: 40, done.
Counting objects: 100% (34/34), done.
Delta compression using up to 8 threads
Compressing objects: 100% (18/18), done.
Writing objects: 100% (18/18), 1.58 KiB | 1.58 MiB/s, done.
Total 18 (delta 15), reused 0 (delta 0), pack-reused 0
remote: Resolving deltas: 100% (15/15), completed with 13 local objects.
To github.com:jiminny/app.git
190239dfd4..ec1b261264 JY-20613-allow-owner-role-on-team-setup -> JY-20613-allow-owner-role-on-team-setup
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20613-allow-owner-role-on-team-setup) $ gbr
* JY-20613-allow-owner-role-on-team-setup
pipedrive-sdk-poc
master
JY-20903-update_activity-stage-on-opportunity-change
JY-20904-fix-update-es-on-activity-command
JY-20891-improve-sms-text-relays
JY-20725-handle-HS-search-rate-limit
JY-20818-move-AJ-reports-to-separated-datadog-metric
JY-20773-fix-automated-reports-user-pilot-tracking
JY-20157-AJ-report-not-send-notification
JY-20508-notify-before-AJ-report-expiration
JY-20372-ai-reports-promotion-pages
JY-20352-sync-opportunities-without-a-local-owner-user-id-is-null
JY-20738-debug-AJ-tracking-UP
a
JY-18909-automated-reports-ask-jiminny
JY-20692-fix-integration-app-[API_KEY]
JY-20553-debug-crm-sync-delays
JY-20698-fix-SF-activity-types-on-new-playbook
JY-20543-AJ-report-tracking
JY-20384-handle-auto-sync-with-no-access-to-event-type
JY-20458-ask-jiminny-user-definitions
JY-19666-fix-import-contacts-account-association
JY-19666-HS-import-contacts-and-accounts-batch-job
JY-20458-Ask-Jiminny-Reports
JY-20200-batch-update-CRM-objects-Salesforce
JY-19666-HS-webhooks-add-contact-and-company
JY-20348-trigger-setup-DI-layout-on-team-creation
JY-20326-refactor-info-message-in-command
JY-20317-fix-auto-log-delay-issue-on-all-channels-disabled
JY-20312-remove-on-update-change-last-synced-at-crm-configurations
JY-20306-SF-skip-auto-sync-for-task-based-playbook
JY-20192-remove-deleted-team-from-saved-search-filters
JY-20197-import-opportunity-batch-job
JY-20293-enable-status-field-for-pipedrive-deals
JY-20191-remove-commands-interactive-prompts
JY-20118-change-default-sync-strategy
JY-20183-add-cache-on-auto-log-delay
JY-20197-add-import-opportunity-batch-job
20118-hs-opportunity-make-webhook-strategy-default
JY-20118-make-default-hs-opportunity-sync-strategy-webhook-based
JY-20196-handle-opportunity-without-note
JY-20118-improve-opportunity-import
JY-20189-handle-activity-search-on-deleted-groups
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20613-allow-owner-role-on-team-setup) $ co JY-20725-handle-HS-search-rate-limit
M .env.local
M config/logging.php
Switched to branch 'JY-20725-handle-HS-search-rate-limit'
Your branch is behind 'origin/JY-20725-handle-HS-search-rate-limit' by 439 commits, and can be fast-forwarded.
(use "git pull" to update your local branch)
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20725-handle-HS-search-rate-limit) $ git pull
Updating 0f3e438941..bc6a3fce6b
Fast-forward
.gitignore | 3 +-
.windsurfrules | 168 ++---
CLAUDE.md | 1 +
app/Component/ActivityAnalytics/Service/CalculateTalkTimeOffsetsFromTranscription.php | 24 +-
app/Component/AiActivityType/Services/AiActivityTypeEligibilityChecker.php | 28 +-
app/Component/AiAutomation/Actions/PrepareUpdateDtoAction.php | 32 +-
app/Component/AiAutomation/Services/CrmFillingEligibilityChecker.php | 47 ++
app/Component/AiAutomation/TestCrmAiPromptService.php | 14 +
app/Component/AiCallScoring/Services/AiCallScoringEligibilityChecker.php | 9 +
app/Component/ES/ElasticSearchDocumentPartialUpdater.php | 13 +-
app/Component/ES/ElasticSearchWorkerManager.php | 86 ---
app/Component/ES/Processor/Actions/LoadDocumentsAction.php | 80 +--
app/Component/ES/Processor/EntityQueryBuilder.php | 12 +-
app/Component/ES/Processor/TargetEntitiesSelector.php | 2 +-
app/Component/ES/Processor/Traits/SkipActivityTrait.php | 25 -
app/Component/ES/Repositories/EsResetActivityRepository.php | 11 +-
app/Component/ES/Worker/ActivityWorker.php | 73 --
app/Component/ES/Worker/EntityWorker.php | 44 --
app/Component/ES/Worker/WorkerAmount.php | 60 --
app/Component/ES/Worker/WorkerInterface.php | 15 -
app/Component/ElasticSearch/Contract/Searchable.php | 4 +
app/Component/Encoding/Job/AnalyzeTrackChannelsJob.php | 20 +-
app/Component/Encoding/Service/GenerateSpeechFromSilenceService.php | 85 ++-
app/Component/FFMpeg/Services/GetSpeechIntervalsService.php | 18 +-
app/Component/LanguageDetection/Services/FindSpeechTimeService.php | 22 +-
app/Component/Nudge/Job/ProcessOrganisationImmediateNudgesJob.php | 218 +++++-
app/Component/ParagraphBreaker/Services/TranscriptionParagraphsService.php | 4 +
app/Component/ParticipantSpeech/Services/ParticipantSpeechesCreator.php | 33 +
app/Component/ParticipantSpeech/Services/ParticipantSpeechesDeleter.php | 15 +
app/Component/ParticipantSpeech/Services/ParticipantSpeechesProvider.php | 51 +-
app/Component/ParticipantSpeech/Services/ParticipantSpeechesUploader.php | 36 +
app/Component/ProphetAi/Exceptions/InsufficientTranscriptException.php | 11 +
app/Component/Transcription/DTO/Http/Transcription/AssemblyAI/AssemblyAI/NoAssemblyIdException.php | 11 +
app/Component/Transcription/DTO/Http/Transcription/AssemblyAI/AssemblyAI/SuccessfulResponse.php | 6 +
app/Component/Transcription/DTO/Http/Transcription/TranscriptionIsNotCorrectFormatException.php | 11 +
app/Component/Transcription/Diarization/Services/GetNormalizedParticipantSpeechesService.php | 23 +-
app/Component/Transcription/Diarization/Source/MeetingBotSource.php | 16 +-
app/Component/Transcription/TranscriptionProcessor/TranscriptionProcessor.php | 3 +
app/Console/Commands/Activities/ActivityHardDeleteCommand.php | 4 +-
app/Console/Commands/Activities/Copy.php | 2 +
app/Console/Commands/Activities/SetupIntegration/TwilioSetS3RecordingCredentialsCommand.php | 119 ++++
app/Console/Commands/Activities/UpdateActivityElasticSearchDocumentCommand.php | 10 +-
app/Console/Commands/Crm/BackfillOpportunityUserFromAccountCommand.php | 126 ++++
app/Console/Commands/Elasticsearch/AsyncUpdateEsActivities.php | 19 -
app/Console/Commands/Elasticsearch/AsyncUpdateEsEntities.php | 50 +-
app/Console/Commands/Elasticsearch/ResetAsyncElasticSearchCommand.php | 30 +-
app/Console/Commands/GeckoExport/GeckoExportParticipantSpeechesCommand.php | 14 +-
app/Console/Commands/IssueMcpTokenCommand.php | 84 +++
app/Console/Commands/JiminnyDebugCommand.php | 7 +-
app/Console/Commands/Tracks/CleanupActivityTracksCommand.php | 2 +-
app/Console/Kernel.php | 6 +-
app/Contracts/Services/Calendar/CalendarTrait.php | 80 ++-
app/Events/AutomatedReports/AutomatedReportGenerated.php | 3 +
app/Http/Controllers/API/AiCallScoring/AiScorecardController.php | 7 +-
app/Http/Controllers/API/TeamAiAutomationController.php | 8 +
app/Http/Controllers/CustomerApi/CustomerApiController.php | 4 +-
app/Http/Controllers/Kiosk/ActivityController.php | 58 +-
app/Http/Controllers/Settings/PlaybookController.php | 15 +-
app/Http/Kernel.php | 23 +
app/Http/Middleware/McpAuditMiddleware.php | 156 ++++
app/Http/Middleware/McpTierMiddleware.php | 54 ++
app/Http/Requests/API/V2/ZapierUploadActivityRequest.php | 28 +-
app/Jobs/Activity/Import/ImportTwilioVideoSpeechesJob.php | 25 +-
app/Jobs/Activity/Import/IsActivityReadyForProcessingJob.php | 10 +-
app/Jobs/Calendar/SetupCalendarSync.php | 21 +-
app/Jobs/ImportRemoteTrackJob.php | 96 ++-
app/Jobs/Mailbox/EmailTextRelay.php | 15 +-
app/Mcp/Contracts/McpCallRepositoryInterface.php | 30 +
app/Mcp/DTO/ListCallsFilters.php | 29 +
app/Mcp/Errors/McpError.php | 123 ++++
app/Mcp/Repositories/McpActivityHydrator.php | 145 ++++
app/Mcp/Repositories/McpCallRepository.php | 84 +++
app/Mcp/Repositories/McpElasticCallRepository.php | 171 +++++
app/Mcp/Servers/JiminnyServer.php | 38 +
app/Mcp/Tools/ListCallsTool.php | 205 ++++++
app/Models/Activity.php | 10 +-
app/Models/Activity/Transcription.php | 17 +-
app/Models/ElasticSearch/OpportunityElasticSearchTrait.php | 5 +
app/Models/Participant.php | 1 +
app/Providers/AppServiceProvider.php | 22 +
app/Repositories/Crm/ContactRepository.php | 69 +-
app/Repositories/ParticipantSpeechRepository.php | 13 +-
app/Services/Activity/ParticipantsService.php | 19 +-
app/Services/Activity/Twilio/S3RecordingCredentialsService.php | 82 +++
app/Services/ActivityService.php | 21 +-
app/Services/Calendar/CalendarActivityService.php | 46 ++
app/Services/Calendar/Command/ImportParticipants.php | 1 +
app/Services/Calendar/Command/MapActivityData.php | 106 +--
app/Services/Calendar/GoogleCalendarService.php | 12 +-
app/Services/Crm/Close/Processor/OpportunityProcessor.php | 2 +-
app/Services/Crm/Close/Service.php | 22 +-
app/Services/Crm/Copper/Service.php | 12 +-
app/Services/Crm/Hubspot/Service.php | 154 +++-
app/Services/Crm/Hubspot/ServiceTraits/OpportunitySyncTrait.php | 88 ++-
app/Services/Crm/IntegrationApp/ServiceTraits/SyncCrmEntitiesTrait.php | 22 +-
app/Services/Crm/Pipedrive/Service.php | 17 +-
app/Services/Crm/Salesforce/Service.php | 42 +-
app/Services/Mail/Office/EmailApiClient.php | 129 +---
app/Services/RecallAI/Commands/ScheduleBotCommand.php | 39 +-
app/Services/RecallAI/RecallAIService.php | 22 +-
composer.json | 3 +-
composer.lock | 87 ++-
config/mcp.php | 23 +
database/migrations/2026_04_30_120000_create_mcp_audit_log_table.php | 36 +
docs/mcp/explorer/explorer.html | 697 ++++++++++++++++++
docs/mcp/explorer/explorer.template.html | 697 ++++++++++++++++++
docs/mcp/explorer/generate.js | 215 ++++++
docs/mcp/explorer/tool-explorer-meta.json | 11 +
docs/mcp/tools-list.json | 2536 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
docs/mcp/tools.md | 621 ++++++++++++++++
front-end/package.json | 4 +-
front-end/src/components/Settings/OrgSettings/AiAutomation/CrmFilling/TemplateFieldForm.vue | 28 +-
front-end/src/components/Settings/OrgSettings/Playbooks/AddEditPlaybook.vue | 10 +
front-end/src/components/playback/comments/ActivityComment.less | 10 +-
front-end/src/components/shared/PromptTester/PromptTester.vue | 12 +-
front-end/src/components/shared/__tests__/PromptTester.spec.js | 35 +
front-end/src/components/shared/modals/EntityPickerModal/__tests__/useEntitiesCache.spec.ts | 37 +
front-end/src/components/shared/modals/EntityPickerModal/useEntitiesCache.ts | 9 +
front-end/yarn.lock | 16 +-
phpstan-baseline.neon | 50 --
routes/api.php | 11 +
sonar-project.properties | 91 ++-
tests/Feature/Component/Nudge/ProcessOrganisationImmediateNudgesJobTest.php | 534 ++++++++++++++
tests/Feature/Jobs/ImportRemoteTrackJobTest.php | 283 +++++++-
tests/Feature/Mcp/IssueMcpTokenCommandTest.php | 53 ++
tests/Feature/Mcp/ListCallsToolElasticFeatureTest.php | 155 ++++
tests/Feature/Mcp/ListCallsToolFeatureTest.php | 352 ++++++++++
tests/Feature/Mcp/McpTestHelpersTrait.php | 77 ++
tests/Feature/Services/Team/TeamDeleteHandlers/Retention/RetentionRepositoryHandlerTest.php | 1 +
tests/Stubs/SentryStub.php | 18 +
tests/Unit/Component/ActivityAnalytics/Service/CalculateTalkTimeOffsetFromTranscriptionTest.php | 28 +-
tests/Unit/Component/AiActivityType/Services/AiActivityTypeEligibilityCheckerTest.php | 103 ++-
tests/Unit/Component/AiAutomation/Actions/PrepareUpdateDtoActionTest.php | 91 +++
tests/Unit/Component/AiAutomation/Services/CrmFillingEligibilityCheckerTest.php | 124 ++++
tests/Unit/Component/AiAutomation/TestCrmAiPromptServiceTest.php | 67 +-
tests/Unit/Component/AiCallScoring/Services/AiCallScoringEligibilityCheckerTest.php | 55 ++
tests/Unit/Component/ES/ElasticSearchWorkerManagerTest.php | 135 ----
tests/Unit/Component/ES/Processor/Actions/LoadDocumentsActionTest.php | 220 ++++++
tests/Unit/Component/ES/Processor/EntityQueryBuilderTest.php | 21 +-
tests/Unit/Component/ES/Processor/Traits/SkipActivityTraitTest.php | 51 --
tests/Unit/Component/ES/Worker/ActivityWorkerTest.php | 174 -----
tests/Unit/Component/ES/Worker/EntityWorkerTest.php | 97 ---
tests/Unit/Component/ES/Worker/WorkerAmountTest.php | 116 ---
tests/Unit/Component/Encoding/Job/AnalyzeTrackChannelsJobTest.php | 52 +-
tests/Unit/Component/Encoding/Service/GenerateSpeechFromSilenceServiceTest.php | 171 ++---
tests/Unit/Component/FFMpeg/Services/GetSpeechIntervalsTest.php | 36 +-
tests/Unit/Component/LanguageDetection/Services/FindSpeechTimeServiceTest.php | 20 +-
tests/Unit/Component/MobileSettings/MobileSettingsControllerTest.php | 5 +-
tests/Unit/Component/ParticipantSpeech/Services/ParticipantSpeechesCreatorTest.php | 75 ++
tests/Unit/Component/ParticipantSpeech/Services/ParticipantSpeechesDeleterTest.php | 63 ++
tests/Unit/Component/ParticipantSpeech/Services/ParticipantSpeechesProviderTest.php | 134 ++++
tests/Unit/Component/ParticipantSpeech/Services/ParticipantSpeechesUploaderTest.php | 57 ++
tests/Unit/Component/Transcription/Diarization/Services/GetNormalizedParticipantSpeechesServiceTest.php | 51 +-
tests/Unit/Component/Transcription/Diarization/Source/MeetingBotSourceTest.php | 29 +-
tests/Unit/Contracts/Services/Calendar/CalendarTraitTest.php | 58 +-
tests/Unit/Http/Controllers/Kiosk/ActivityControllerTest.php | 159 +++++
tests/Unit/Jobs/Activity/Import/ImportTwilioVideoSpeechesJobTest.php | 22 +-
tests/Unit/Jobs/Activity/Import/IsActivityReadyForProcessingJobTest.php | 26 +-
tests/Unit/Jobs/Calendar/SetupCalendarSyncTest.php | 25 -
tests/Unit/Services/Activity/ParticipantsServiceTest.php | 12 +-
tests/Unit/Services/Activity/Twilio/S3RecordingCredentialsServiceTest.php | 180 +++++
tests/Unit/Services/ActivityServiceTest.php | 132 ++++
tests/Unit/Services/Calendar/CalendarActivityServiceTest.php | 150 +++-
tests/Unit/Services/Calendar/Command/ImportParticipantsTest.php | 6 +-
tests/Unit/Services/Calendar/Command/MapActivityDataTest.php | 78 +-
tests/Unit/Services/Calendar/GoogleCalendarServiceTest.php | 116 +++
tests/Unit/Services/Crm/Close/ServiceTest.php | 165 +++++
tests/Unit/Services/Crm/Hubspot/ServiceTest.php | 272 ++++++-
tests/Unit/Services/Crm/Hubspot/ServiceTraits/OpportunitySyncTest.php | 25 +-
tests/Unit/Services/Crm/Hubspot/ServiceTraits/OpportunitySyncTraitMatchActivitiesTest.php | 3 +-
tests/Unit/Services/Crm/IntegrationApp/ServiceTraits/SyncCrmEntitiesTraitOpportunitiesTest.php | 40 ++
tests/Unit/Services/Crm/Pipedrive/ImportOpportunityMatchActivitiesTest.php | 2 +
tests/Unit/Services/Crm/Salesforce/ServiceTest.php | 139 ++++
tests/Unit/Services/Mail/Office/EmailApiClientTest.php | 195 ++---
tests/Unit/Services/RecallAI/RecallAIServiceTest.php | 24 +-
175 files changed, 12562 insertions(+), 2162 deletions(-)
create mode 120000 CLAUDE.md
create mode 100644 app/Component/AiAutomation/Services/CrmFillingEligibilityChecker.php
delete mode 100644 app/Component/ES/ElasticSearchWorkerManager.php
delete mode 100644 app/Component/ES/Processor/Traits/SkipActivityTrait.php
delete mode 100644 app/Component/ES/Worker/ActivityWorker.php
delete mode 100644 app/Component/ES/Worker/EntityWorker.php
delete mode 100644 app/Component/ES/Worker/WorkerAmount.php
delete mode 100644 app/Component/ES/Worker/WorkerInterface.php
create mode 100644 app/Component/ProphetAi/Exceptions/InsufficientTranscriptException.php
create mode 100644 app/Component/Transcription/DTO/Http/Transcription/AssemblyAI/AssemblyAI/NoAssemblyIdException.php
create mode 100644 app/Component/Transcription/DTO/Http/Transcription/TranscriptionIsNotCorrectFormatException.php
create mode 100644 app/Console/Commands/Activities/SetupIntegration/TwilioSetS3RecordingCredentialsCommand.php
create mode 100644 app/Console/Commands/Crm/BackfillOpportunityUserFromAccountCommand.php
delete mode 100644 app/Console/Commands/Elasticsearch/AsyncUpdateEsActivities.php
create mode 100644 app/Console/Commands/IssueMcpTokenCommand.php
create mode 100644 app/Http/Middleware/McpAuditMiddleware.php
create mode 100644 app/Http/Middleware/McpTierMiddleware.php
create mode 100644 app/Mcp/Contracts/McpCallRepositoryInterface.php
create mode 100644 app/Mcp/DTO/ListCallsFilters.php
create mode 100644 app/Mcp/Errors/McpError.php
create mode 100644 app/Mcp/Repositories/McpActivityHydrator.php
create mode 100644 app/Mcp/Repositories/McpCallRepository.php
create mode 100644 app/Mcp/Repositories/McpElasticCallRepository.php
create mode 100644 app/Mcp/Servers/JiminnyServer.php
create mode 100644 app/Mcp/Tools/ListCallsTool.php
create mode 100644 app/Services/Activity/Twilio/S3RecordingCredentialsService.php
create mode 100644 config/mcp.php
create mode 100644 database/migrations/2026_04_30_120000_create_mcp_audit_log_table.php
create mode 100644 docs/mcp/explorer/explorer.html
create mode 100644 docs/mcp/explorer/explorer.template.html
create mode 100644 docs/mcp/explorer/generate.js
create mode 100644 docs/mcp/explorer/tool-explorer-meta.json
create mode 100644 docs/mcp/tools-list.json
create mode 100644 docs/mcp/tools.md
create mode 100644 front-end/src/components/shared/modals/EntityPickerModal/__tests__/useEntitiesCache.spec.ts
create mode 100644 tests/Feature/Component/Nudge/ProcessOrganisationImmediateNudgesJobTest.php
create mode 100644 tests/Feature/Mcp/IssueMcpTokenCommandTest.php
create mode 100644 tests/Feature/Mcp/ListCallsToolElasticFeatureTest.php
create mode 100644 tests/Feature/Mcp/ListCallsToolFeatureTest.php
create mode 100644 tests/Feature/Mcp/McpTestHelpersTrait.php
create mode 100644 tests/Stubs/SentryStub.php
create mode 100644 tests/Unit/Component/AiAutomation/Services/CrmFillingEligibilityCheckerTest.php
delete mode 100644 tests/Unit/Component/ES/ElasticSearchWorkerManagerTest.php
create mode 100644 tests/Unit/Component/ES/Processor/Actions/LoadDocumentsActionTest.php
delete mode 100644 tests/Unit/Component/ES/Processor/Traits/SkipActivityTraitTest.php
delete mode 100644 tests/Unit/Component/ES/Worker/ActivityWorkerTest.php
delete mode 100644 tests/Unit/Component/ES/Worker/EntityWorkerTest.php
delete mode 100644 tests/Unit/Component/ES/Worker/WorkerAmountTest.php
create mode 100644 tests/Unit/Component/ParticipantSpeech/Services/ParticipantSpeechesCreatorTest.php
create mode 100644 tests/Unit/Http/Controllers/Kiosk/ActivityControllerTest.php
create mode 100644 tests/Unit/Services/Activity/Twilio/S3RecordingCredentialsServiceTest.php
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20725-handle-HS-search-rate-limit) $ git status
On branch master
Your branch is behind 'origin/master' by 114 commits, and can be fast-forwarded.
(use "git pull" to update your local branch)
Changes not staged for commit:
(use "git add <file>..." to update what will be committed)
(use "git restore <file>..." to discard changes in working directory)
modified: .env.local
modified: app/Component/SCIM/Constants.php
modified: app/Component/SCIM/ScimProvisioning.php
modified: app/Component/Twilio/Conference/ConferenceManager/SoftPhoneManager.php
modified: app/Console/Commands/JiminnyDebugCommand.php
modified: app/DTO/SCIM/AAD/Request/CoreUserRequest.php
modified: app/DTO/SCIM/AAD/Response/CoreUser.php
modified: app/Services/Telephony/TextMessagingService.php
modified: config/logging.php
Untracked files:
(use "git add <file>..." to include in what will be committed)
.env.nikilocal
.env.other
WEBHOOK_FILTERING_IMPLEMENTATION.md
app/Component/SCIM/Mutators/Attributes/User/RoleAttr.php
app/Console/Commands/Crm/Hubspot/SimulateWebhooksCommand.php
app/Console/Commands/Reports/CreateMockAskJiminnyReportResultCommand.php
app/Rules/ListenerRoleCannotHaveAdminOrManagerPermissionRule.php
ids.txt
public/favicon.ico
raw_sql_query.sql
tests/Unit/Component/SCIM/Mutators/Attributes/User/RoleAttrTest.php
tests/Unit/Policies/CanAccessAiReportsTest.php
tests/Unit/Rules/ListenerRoleCannotHaveAdminOrManagerPermissionRuleTest.php
no changes added to commit (use "git add" and/or "git commit -a")
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (master) $ git pull
remote: Enumerating objects: 306, done.
remote: Counting objects: 100% (299/299), done.
remote: Compressing objects: 100% (183/183), done.
remote: Total 306 (delta 213), reused 171 (delta 116), pack-reused 7 (from 1)
Receiving objects: 100% (306/306), 80.12 KiB | 1000.00 KiB/s, done.
Resolving deltas: 100% (213/213), completed with 53 local objects.
From github.com:jiminny/app
90bca4e4b2..5604af40cf master -> origin/master
4e7078fd8b..0b8343d179 JY-18091-upgrade-to-php-8-5 -> origin/JY-18091-upgrade-to-php-8-5
098eeaa087..d5a447e492 JY-20613-allow-owner-role-on-team-setup -> origin/JY-20613-allow-owner-role-on-team-setup
c3a76ace91..af65249d0f JY-20749-user-can-view-recorded-meetings -> origin/JY-20749-user-can-view-recorded-meetings
d94a285ae7..7ce96cb5fe JY-20808-low-priority-indexing-queue -> origin/JY-20808-low-priority-indexing-queue
* [new branch] JY-20842-remove-partial-updater -> origin/JY-20842-remove-partial-updater
* [new branch] JY-20920-fix-participant-flip -> origin/JY-20920-fix-participant-flip
* [new branch] secfix/npm-20260519 -> origin/secfix/npm-20260519
Updating cb4ebf0c36..5604af40cf
Fast-forward
app/Component/ES/ChunkSize.php | 54 +++++++++++++++++++
app/Component/ES/Processor/DTOs/SelectionList.php | 4 +-
app/Component/ES/Processor/TargetEntitiesSelector.php | 19 ++++---
app/Component/MeetingBot/Service/ParticipantMatcher.php | 46 ++++++++++++----
app/Exceptions/RateLimitException.php | 19 ++++++-
app/Http/Middleware/McpTierMiddleware.php | 27 ++--------
app/Jobs/Crm/MatchActivityCrmData.php | 47 ++++++++++++----
app/Jobs/Middleware/HandleHubspotRateLimit.php | 42 +++++++++++++++
app/Mcp/Servers/JiminnyServer.php | 2 +
app/Mcp/Tools/GetMeTool.php | 157 +++++++++++++++++++++++++++++++++++++++++++++++++++++
app/Models/Feature/FeatureEnum.php | 1 +
app/Services/Activity/HubSpot/ProviderResolver.php | 4 +-
app/Services/Activity/HubSpot/ProviderResolverInterface.php | 2 +-
app/Services/Activity/HubSpot/Providers/Provider.php | 2 +-
app/Services/Activity/HubSpot/Providers/ProviderKixie.php | 2 +-
app/Services/Activity/HubSpot/Providers/ProviderOrum.php | 2 +-
app/Services/Activity/HubSpot/Providers/ProviderTwilio.php | 2 +-
app/Services/Activity/HubSpot/Providers/ProviderTwilioFlex.php | 5 +-
app/Services/Activity/HubSpot/Service.php | 97 +++++++++++++++++++++++++++------
app/Services/Crm/Hubspot/Client.php | 132 +++++++++++++++++++++++++++++++++++++++++++++
app/Services/Crm/Hubspot/HubspotClientInterface.php | 15 ++++++
app/Services/Crm/Hubspot/Pagination/HubspotPaginationService.php | 21 ++++----
app/Services/Crm/Hubspot/Pagination/PaginationState.php | 2 +-
database/migrations/2026_05_13_124153_create_mcp_feature_flag.php | 25 +++++++++
tests/Feature/Mcp/GetMeToolFeatureTest.php | 140 +++++++++++++++++++++++++++++++++++++++++++++++
tests/Feature/Mcp/ListCallsToolFeatureTest.php | 2 +-
tests/Feature/Mcp/McpTestHelpersTrait.php | 19 ++++++-
tests/Unit/Component/ES/ChunkSizeTest.php | 50 +++++++++++++++++
tests/Unit/Component/ES/Processor/DTOs/SelectionListTest.php | 27 +++++++---
tests/Unit/Component/ES/Processor/TargetEntitiesSelectorTest.php | 39 ++++++++------
tests/Unit/Component/MeetingBot/Service/ParticipantMatcherTest.php | 68 ++++++++++++++++++++++-
tests/Unit/Exceptions/RateLimitExceptionTest.php | 56 +++++++++++++++++++
tests/Unit/Jobs/Crm/MatchActivityCrmDataTest.php | 8 +--
tests/Unit/Jobs/Middleware/HandleHubspotRateLimitTest.php | 151 +++++++++++++++++++++++++++++++++++++++++++++++++++
tests/Unit/Services/Activity/HubSpot/ServiceTest.php | 109 +++++++++++++++++++++++++++++++++++++
tests/Unit/Services/Crm/Hubspot/ClientTest.php | 250 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
tests/Unit/Services/Crm/Hubspot/Pagination/HubspotPaginationServiceTest.php | 283 +++++++++++++++++++++---------------------------------------------------------------------------
37 files changed, 1587 insertions(+), 344 deletions(-)
create mode 100644 app/Component/ES/ChunkSize.php
create mode 100644 app/Jobs/Middleware/HandleHubspotRateLimit.php
create mode 100644 app/Mcp/Tools/GetMeTool.php
create mode 100644 database/migrations/2026_05_13_124153_create_mcp_feature_flag.php
create mode 100644 tests/Feature/Mcp/GetMeToolFeatureTest.php
create mode 100644 tests/Unit/Component/ES/ChunkSizeTest.php
create mode 100644 tests/Unit/Exceptions/RateLimitExceptionTest.php
create mode 100644 tests/Unit/Jobs/Middleware/HandleHubspotRateLimitTest.php
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (master) $ git pull
Already up to date.
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (master) $ co -b JY-20676-delete-report-related-objects
Switched to a new branch 'JY-20676-delete-report-related-objects'
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20676-delete-report-related-objects) $ csfix
docker exec -it docker_lamp_1 ./vendor/bin/php-cs-fixer fix --config=.php-cs-fixer.dist.php -v --using-cache=no --diff
PHP CS Fixer 3.87.1 Alexander by Fabien Potencier, Dariusz Ruminski and contributors.
PHP runtime: 8.3.30
Running 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!
Loaded config default from ".php-cs-fixer.dist.php".
5690/5690 [▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓] 100%
1) app/Console/Commands/JiminnyDebugCommand.php (statement_indentation, blank_line_before_statement)
---------- begin diff ----------
--- /home/jiminny/app/Console/Commands/JiminnyDebugCommand.php
+++ /home/jiminny/app/Console/Commands/JiminnyDebugCommand.php
@@ -23,6 +23,7 @@
if ($action === 'redis-set') {
$this->testRedisSet();
+
return;
}
@@ -45,7 +46,7 @@
$ttl = 60;
try {
-// $result = Redis::set($testKey, $testValue, 'EX', $ttl, 'NX');
+ // $result = Redis::set($testKey, $testValue, 'EX', $ttl, 'NX');
$result = Redis::set($testKey, $testValue, ['nx', 'ex' => $ttl]);
if ($result) {
----------- end diff -----------
Fixed 1 of 5690 files i...
|
[{"role":"AXTextArea","text [{"role":"AXTextArea","text":"Last login: Mon May 18 09:17:28 on ttys007\n\nPoetry could not find a pyproject.toml file in /Users/lukas/jiminny/app or its parents\n\nPoetry could not find a pyproject.toml file in /Users/lukas/jiminny/app or its parents\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (pipedrive-sdk-poc) $ co master\nerror: Your local changes to the following files would be overwritten by checkout:\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tPIPEDRIVE_V2_MIGRATION_TICKETS.md\nPlease commit your changes or stash them before you switch branches.\nAborting\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (pipedrive-sdk-poc) $ git pull\nremote: Enumerating objects: 1047, done.\nremote: Counting objects: 100% (832/832), done.\nremote: Compressing objects: 100% (298/298), done.\nremote: Total 1047 (delta 634), reused 596 (delta 534), pack-reused 215 (from 3)\nReceiving objects: 100% (1047/1047), 353.16 KiB | 1.56 MiB/s, done.\nResolving deltas: 100% (687/687), completed with 107 local objects.\nFrom github.com:jiminny/app\n 907c54896c..34656c53ed pipedrive-sdk-poc -> origin/pipedrive-sdk-poc\n 03325ec50f..4e7078fd8b JY-18091-upgrade-to-php-8-5 -> origin/JY-18091-upgrade-to-php-8-5\n e7d231e163..bc6a3fce6b JY-20725-handle-HS-search-rate-limit -> origin/JY-20725-handle-HS-search-rate-limit\n * [new branch] JY-20749-user-can-view-recorded-meetings -> origin/JY-20749-user-can-view-recorded-meetings\n 98ca281a04..e0351be069 JY-20808-low-priority-indexing-queue -> origin/JY-20808-low-priority-indexing-queue\n 569abb5149..3906a9238a JY-20835-mcp-enable-users-to-get-a-list-of-deals-and-their-details -> origin/JY-20835-mcp-enable-users-to-get-a-list-of-deals-and-their-details\n ad6c2a86e8..50eb6afba9 JY-20846-mcp-enable-the-ai-to-know-details-about-the-user -> origin/JY-20846-mcp-enable-the-ai-to-know-details-about-the-user\n * [new branch] JY-20893-chunk-control-per-update-target -> origin/JY-20893-chunk-control-per-update-target\n 31c62924a5..cb4ebf0c36 master -> origin/master\nUpdating 907c54896c..34656c53ed\nFast-forward\n PIPEDRIVE_V2_MIGRATION_TICKETS.md | 52 ++++++++++++++++++++++++++++++++++++++++++++++++++++\n 1 file changed, 52 insertions(+)\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (pipedrive-sdk-poc) $ co master\nM\u0000\u0000\u0000\u0000\u0000\u0000\t.env.local\nM\u0000\u0000\u0000\u0000\u0000\u0000\tconfig/logging.php\nSwitched to branch 'master'\nYour branch is behind 'origin/master' by 31 commits, and can be fast-forwarded.\n (use \"git pull\" to update your local branch)\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (master) $ git pull\nUpdating 31c62924a5..cb4ebf0c36\nFast-forward\n app/Component/ES/Processor/Traits/SelectEntityListTrait.php | 20 ------\n app/Services/Calendar/CalendarActivityService.php | 46 +++++++++++++\n app/Services/Calendar/Command/MapActivityData.php | 106 +++-------------------------\n docs/mcp/explorer/explorer.html | 104 +++++++++++++++++++++++++---\n docs/mcp/explorer/explorer.template.html | 102 ++++++++++++++++++++++++---\n docs/mcp/tools-list.json | 373 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++-------\n docs/mcp/tools.md | 117 +++++++++++++++++++++++--------\n tests/Unit/Component/ES/AsyncUpdateElasticSearchTest.php | 16 +----\n tests/Unit/Component/ES/Listeners/UpdateMultipleTargetsListenerTest.php | 10 ---\n tests/Unit/Component/ES/Listeners/UpdateSingleTargetListenerTest.php | 6 --\n tests/Unit/Component/ES/Processor/TargetEntitiesSelectorTest.php | 9 ---\n tests/Unit/Component/ES/Processor/Traits/SelectEntityListTraitTest.php | 15 ++--\n tests/Unit/Component/ES/UpdateProcessManagerTest.php | 2 -\n tests/Unit/Services/Calendar/CalendarActivityServiceTest.php | 150 ++++++++++++++++++++++++++++++++++++++--\n tests/Unit/Services/Calendar/Command/MapActivityDataTest.php | 78 ++-------------------\n 15 files changed, 832 insertions(+), 322 deletions(-)\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (master) $ co -b JY-20613-allow-owner-role-on-team-setup\nSwitched to a new branch 'JY-20613-allow-owner-role-on-team-setup'\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20613-allow-owner-role-on-team-setup) $ csfix\ndocker exec -it docker_lamp_1 ./vendor/bin/php-cs-fixer fix --config=.php-cs-fixer.dist.php -v --using-cache=no --diff \nPHP CS Fixer 3.87.1 Alexander by Fabien Potencier, Dariusz Ruminski and contributors.\nPHP runtime: 8.3.30\nRunning analysis on 7 cores with 10 files per process.\nParallel runner is an experimental feature and may be unstable, use it at your own risk. Feedback highly appreciated!\nLoaded config default from \".php-cs-fixer.dist.php\".\n 5682/5682 [▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓] 100%\n\n\nFixed 0 of 5682 files in 56.978 seconds, 67.00 MB memory used\n\nWhat's next:\n Try Docker Debug for seamless, persistent debugging tools in any container or image → docker debug docker_lamp_1\n Learn more at https://docs.docker.com/go/debug-cli/\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20613-allow-owner-role-on-team-setup) $ ;xd\ndocker exec -it docker_lamp_1 bash -c \"mv /usr/local/etc/php/conf.d/xdebug.ini ~/xdebug.ini\"\n\nWhat's next:\n Try Docker Debug for seamless, persistent debugging tools in any container or image → docker debug docker_lamp_1\n Learn more at https://docs.docker.com/go/debug-cli/\ndocker exec -it docker_lamp_1 supervisorctl restart all\njiminny-worker-processing-2:jiminny-worker-processing-2_00: stopped\njiminny-worker-processing-3:jiminny-worker-processing-3_00: stopped\njiminny-worker-processing-4:jiminny-worker-processing-4_00: stopped\njiminny-worker-processing-5:jiminny-worker-processing-5_00: stopped\njiminny-worker-processing-delayed:jiminny-worker-processing-delayed_00: stopped\nworker-analytics:worker-analytics_00: stopped\nworker-crm-update:worker-crm-update_00: stopped\nworker-download:worker-download_00: stopped\nworker-nudges:worker-nudges_00: stopped\nartisan-schedule:artisan-schedule_00: stopped\nworker-emails:worker-emails_00: stopped\nworker-calendar:worker-calendar_00: stopped\nworker:worker_00: stopped\nworker-conferences:worker-conferences_00: stopped\nworker-crm-sync:worker-crm-sync_00: stopped\njiminny-worker-processing-1:jiminny-worker-processing-1_00: stopped\nworker-audio:worker-audio_00: stopped\nworker-es-update:worker-es-update_00: stopped\nartisan-schedule:artisan-schedule_00: started\njiminny-worker-processing-1:jiminny-worker-processing-1_00: started\njiminny-worker-processing-2:jiminny-worker-processing-2_00: started\njiminny-worker-processing-3:jiminny-worker-processing-3_00: started\njiminny-worker-processing-4:jiminny-worker-processing-4_00: started\njiminny-worker-processing-5:jiminny-worker-processing-5_00: started\njiminny-worker-processing-delayed:jiminny-worker-processing-delayed_00: started\nworker:worker_00: started\nworker-analytics:worker-analytics_00: started\nworker-audio:worker-audio_00: started\nworker-calendar:worker-calendar_00: started\nworker-conferences:worker-conferences_00: started\nworker-crm-sync:worker-crm-sync_00: started\nworker-crm-update:worker-crm-update_00: started\nworker-download:worker-download_00: started\nworker-emails:worker-emails_00: started\nworker-es-update:worker-es-update_00: started\nworker-nudges:worker-nudges_00: started\n\nWhat's next:\n Try Docker Debug for seamless, persistent debugging tools in any container or image → docker debug docker_lamp_1\n Learn more at https://docs.docker.com/go/debug-cli/\ndocker exec -it docker_lamp_1 php -v\nPHP 8.3.30 (cli) (built: Mar 16 2026 22:32:32) (NTS)\nCopyright (c) The PHP Group\nZend Engine v4.3.30, Copyright (c) Zend Technologies\n with Zend OPcache v8.3.30, Copyright (c), by Zend Technologies\n\nWhat's next:\n Try Docker Debug for seamless, persistent debugging tools in any container or image → docker debug docker_lamp_1\n Learn more at https://docs.docker.com/go/debug-cli/\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20613-allow-owner-role-on-team-setup) $ csfix\ndocker exec -it docker_lamp_1 ./vendor/bin/php-cs-fixer fix --config=.php-cs-fixer.dist.php -v --using-cache=no --diff \nPHP CS Fixer 3.87.1 Alexander by Fabien Potencier, Dariusz Ruminski and contributors.\nPHP runtime: 8.3.30\nRunning analysis on 7 cores with 10 files per process.\nParallel runner is an experimental feature and may be unstable, use it at your own risk. Feedback highly appreciated!\nLoaded config default from \".php-cs-fixer.dist.php\".\n 5682/5682 [▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓] 100%\n\n\nFixed 0 of 5682 files in 49.910 seconds, 60.00 MB memory used\n\nWhat's next:\n Try Docker Debug for seamless, persistent debugging tools in any container or image → docker debug docker_lamp_1\n Learn more at https://docs.docker.com/go/debug-cli/\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20613-allow-owner-role-on-team-setup) $ git status\nOn branch JY-20613-allow-owner-role-on-team-setup\nYour branch is ahead of 'origin/JY-20613-allow-owner-role-on-team-setup' by 1 commit.\n (use \"git push\" to publish your local commits)\n\nChanges not staged for commit:\n (use \"git add <file>...\" to update what will be committed)\n (use \"git restore <file>...\" to discard changes in working directory)\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tmodified: .env.local\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tmodified: config/logging.php\n\nUntracked files:\n (use \"git add <file>...\" to include in what will be committed)\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\t.env.nikilocal\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\t.env.other\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tWEBHOOK_FILTERING_IMPLEMENTATION.md\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tapp/Console/Commands/Crm/Hubspot/SimulateWebhooksCommand.php\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tapp/Console/Commands/Reports/CreateMockAskJiminnyReportResultCommand.php\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tids.txt\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tpublic/favicon.ico\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\traw_sql_query.sql\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\ttests/Unit/Policies/CanAccessAiReportsTest.php\n\nno changes added to commit (use \"git add\" and/or \"git commit -a\")\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20613-allow-owner-role-on-team-setup) $ git pull\nremote: Enumerating objects: 248, done.\nremote: Counting objects: 100% (128/128), done.\nremote: Compressing objects: 100% (23/23), done.\nremote: Total 59 (delta 43), reused 44 (delta 33), pack-reused 0 (from 0)\nUnpacking objects: 100% (59/59), 10.48 KiB | 228.00 KiB/s, done.\nFrom github.com:jiminny/app\n b7df560451..190239dfd4 JY-20613-allow-owner-role-on-team-setup -> origin/JY-20613-allow-owner-role-on-team-setup\n e0351be069..d94a285ae7 JY-20808-low-priority-indexing-queue -> origin/JY-20808-low-priority-indexing-queue\n * [new branch] JY-20920-fix-participant-matcher -> origin/JY-20920-fix-participant-matcher\n cb4ebf0c36..90bca4e4b2 master -> origin/master\nMerge made by the 'ort' strategy.\n app/Component/ES/ChunkSize.php | 54 +++++++++++++++++++++++++++\n app/Component/ES/Processor/DTOs/SelectionList.php | 4 +-\n app/Component/ES/Processor/TargetEntitiesSelector.php | 19 ++++++----\n app/Http/Middleware/McpTierMiddleware.php | 27 +++-----------\n app/Mcp/Servers/JiminnyServer.php | 2 +\n app/Mcp/Tools/GetMeTool.php | 157 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++\n app/Models/Feature/FeatureEnum.php | 1 +\n database/migrations/2026_05_13_124153_create_mcp_feature_flag.php | 25 +++++++++++++\n front-end/src/components/Settings/Kiosk/modals/EditTeamModal/EditTeamModal.vue | 52 ++++++++++++++++++--------\n front-end/src/components/Settings/Kiosk/modals/EditTeamModal/__tests__/EditTeamModal.spec.js | 14 +++++++\n tests/Feature/Mcp/GetMeToolFeatureTest.php | 140 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++\n tests/Feature/Mcp/ListCallsToolFeatureTest.php | 2 +-\n tests/Feature/Mcp/McpTestHelpersTrait.php | 19 +++++++++-\n tests/Unit/Component/ES/ChunkSizeTest.php | 50 +++++++++++++++++++++++++\n tests/Unit/Component/ES/Processor/DTOs/SelectionListTest.php | 27 ++++++++++----\n tests/Unit/Component/ES/Processor/TargetEntitiesSelectorTest.php | 39 +++++++++++---------\n 16 files changed, 557 insertions(+), 75 deletions(-)\n create mode 100644 app/Component/ES/ChunkSize.php\n create mode 100644 app/Mcp/Tools/GetMeTool.php\n create mode 100644 database/migrations/2026_05_13_124153_create_mcp_feature_flag.php\n create mode 100644 tests/Feature/Mcp/GetMeToolFeatureTest.php\n create mode 100644 tests/Unit/Component/ES/ChunkSizeTest.php\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20613-allow-owner-role-on-team-setup) $ git push\nEnumerating objects: 40, done.\nCounting objects: 100% (34/34), done.\nDelta compression using up to 8 threads\nCompressing objects: 100% (18/18), done.\nWriting objects: 100% (18/18), 1.58 KiB | 1.58 MiB/s, done.\nTotal 18 (delta 15), reused 0 (delta 0), pack-reused 0\nremote: Resolving deltas: 100% (15/15), completed with 13 local objects.\nTo github.com:jiminny/app.git\n 190239dfd4..ec1b261264 JY-20613-allow-owner-role-on-team-setup -> JY-20613-allow-owner-role-on-team-setup\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20613-allow-owner-role-on-team-setup) $ gbr\n* JY-20613-allow-owner-role-on-team-setup\n pipedrive-sdk-poc\n master\n JY-20903-update_activity-stage-on-opportunity-change\n JY-20904-fix-update-es-on-activity-command\n JY-20891-improve-sms-text-relays\n JY-20725-handle-HS-search-rate-limit\n JY-20818-move-AJ-reports-to-separated-datadog-metric\n JY-20773-fix-automated-reports-user-pilot-tracking\n JY-20157-AJ-report-not-send-notification\n JY-20508-notify-before-AJ-report-expiration\n JY-20372-ai-reports-promotion-pages\n JY-20352-sync-opportunities-without-a-local-owner-user-id-is-null\n JY-20738-debug-AJ-tracking-UP\n a\n JY-18909-automated-reports-ask-jiminny\n JY-20692-fix-integration-app-token-auth-response-change\n JY-20553-debug-crm-sync-delays\n JY-20698-fix-SF-activity-types-on-new-playbook\n JY-20543-AJ-report-tracking\n JY-20384-handle-auto-sync-with-no-access-to-event-type\n JY-20458-ask-jiminny-user-definitions\n JY-19666-fix-import-contacts-account-association\n JY-19666-HS-import-contacts-and-accounts-batch-job\n JY-20458-Ask-Jiminny-Reports\n JY-20200-batch-update-CRM-objects-Salesforce\n JY-19666-HS-webhooks-add-contact-and-company\n JY-20348-trigger-setup-DI-layout-on-team-creation\n JY-20326-refactor-info-message-in-command\n JY-20317-fix-auto-log-delay-issue-on-all-channels-disabled\n JY-20312-remove-on-update-change-last-synced-at-crm-configurations\n JY-20306-SF-skip-auto-sync-for-task-based-playbook\n JY-20192-remove-deleted-team-from-saved-search-filters\n JY-20197-import-opportunity-batch-job\n JY-20293-enable-status-field-for-pipedrive-deals\n JY-20191-remove-commands-interactive-prompts\n JY-20118-change-default-sync-strategy\n JY-20183-add-cache-on-auto-log-delay\n JY-20197-add-import-opportunity-batch-job\n 20118-hs-opportunity-make-webhook-strategy-default\n JY-20118-make-default-hs-opportunity-sync-strategy-webhook-based\n JY-20196-handle-opportunity-without-note\n JY-20118-improve-opportunity-import\n JY-20189-handle-activity-search-on-deleted-groups\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20613-allow-owner-role-on-team-setup) $ co JY-20725-handle-HS-search-rate-limit\nM\u0000\u0000\u0000\u0000\u0000\u0000\t.env.local\nM\u0000\u0000\u0000\u0000\u0000\u0000\tconfig/logging.php\nSwitched to branch 'JY-20725-handle-HS-search-rate-limit'\nYour branch is behind 'origin/JY-20725-handle-HS-search-rate-limit' by 439 commits, and can be fast-forwarded.\n (use \"git pull\" to update your local branch)\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20725-handle-HS-search-rate-limit) $ git pull\nUpdating 0f3e438941..bc6a3fce6b\nFast-forward\n .gitignore | 3 +-\n .windsurfrules | 168 ++---\n CLAUDE.md | 1 +\n app/Component/ActivityAnalytics/Service/CalculateTalkTimeOffsetsFromTranscription.php | 24 +-\n app/Component/AiActivityType/Services/AiActivityTypeEligibilityChecker.php | 28 +-\n app/Component/AiAutomation/Actions/PrepareUpdateDtoAction.php | 32 +-\n app/Component/AiAutomation/Services/CrmFillingEligibilityChecker.php | 47 ++\n app/Component/AiAutomation/TestCrmAiPromptService.php | 14 +\n app/Component/AiCallScoring/Services/AiCallScoringEligibilityChecker.php | 9 +\n app/Component/ES/ElasticSearchDocumentPartialUpdater.php | 13 +-\n app/Component/ES/ElasticSearchWorkerManager.php | 86 ---\n app/Component/ES/Processor/Actions/LoadDocumentsAction.php | 80 +--\n app/Component/ES/Processor/EntityQueryBuilder.php | 12 +-\n app/Component/ES/Processor/TargetEntitiesSelector.php | 2 +-\n app/Component/ES/Processor/Traits/SkipActivityTrait.php | 25 -\n app/Component/ES/Repositories/EsResetActivityRepository.php | 11 +-\n app/Component/ES/Worker/ActivityWorker.php | 73 --\n app/Component/ES/Worker/EntityWorker.php | 44 --\n app/Component/ES/Worker/WorkerAmount.php | 60 --\n app/Component/ES/Worker/WorkerInterface.php | 15 -\n app/Component/ElasticSearch/Contract/Searchable.php | 4 +\n app/Component/Encoding/Job/AnalyzeTrackChannelsJob.php | 20 +-\n app/Component/Encoding/Service/GenerateSpeechFromSilenceService.php | 85 ++-\n app/Component/FFMpeg/Services/GetSpeechIntervalsService.php | 18 +-\n app/Component/LanguageDetection/Services/FindSpeechTimeService.php | 22 +-\n app/Component/Nudge/Job/ProcessOrganisationImmediateNudgesJob.php | 218 +++++-\n app/Component/ParagraphBreaker/Services/TranscriptionParagraphsService.php | 4 +\n app/Component/ParticipantSpeech/Services/ParticipantSpeechesCreator.php | 33 +\n app/Component/ParticipantSpeech/Services/ParticipantSpeechesDeleter.php | 15 +\n app/Component/ParticipantSpeech/Services/ParticipantSpeechesProvider.php | 51 +-\n app/Component/ParticipantSpeech/Services/ParticipantSpeechesUploader.php | 36 +\n app/Component/ProphetAi/Exceptions/InsufficientTranscriptException.php | 11 +\n app/Component/Transcription/DTO/Http/Transcription/AssemblyAI/AssemblyAI/NoAssemblyIdException.php | 11 +\n app/Component/Transcription/DTO/Http/Transcription/AssemblyAI/AssemblyAI/SuccessfulResponse.php | 6 +\n app/Component/Transcription/DTO/Http/Transcription/TranscriptionIsNotCorrectFormatException.php | 11 +\n app/Component/Transcription/Diarization/Services/GetNormalizedParticipantSpeechesService.php | 23 +-\n app/Component/Transcription/Diarization/Source/MeetingBotSource.php | 16 +-\n app/Component/Transcription/TranscriptionProcessor/TranscriptionProcessor.php | 3 +\n app/Console/Commands/Activities/ActivityHardDeleteCommand.php | 4 +-\n app/Console/Commands/Activities/Copy.php | 2 +\n app/Console/Commands/Activities/SetupIntegration/TwilioSetS3RecordingCredentialsCommand.php | 119 ++++\n app/Console/Commands/Activities/UpdateActivityElasticSearchDocumentCommand.php | 10 +-\n app/Console/Commands/Crm/BackfillOpportunityUserFromAccountCommand.php | 126 ++++\n app/Console/Commands/Elasticsearch/AsyncUpdateEsActivities.php | 19 -\n app/Console/Commands/Elasticsearch/AsyncUpdateEsEntities.php | 50 +-\n app/Console/Commands/Elasticsearch/ResetAsyncElasticSearchCommand.php | 30 +-\n app/Console/Commands/GeckoExport/GeckoExportParticipantSpeechesCommand.php | 14 +-\n app/Console/Commands/IssueMcpTokenCommand.php | 84 +++\n app/Console/Commands/JiminnyDebugCommand.php | 7 +-\n app/Console/Commands/Tracks/CleanupActivityTracksCommand.php | 2 +-\n app/Console/Kernel.php | 6 +-\n app/Contracts/Services/Calendar/CalendarTrait.php | 80 ++-\n app/Events/AutomatedReports/AutomatedReportGenerated.php | 3 +\n app/Http/Controllers/API/AiCallScoring/AiScorecardController.php | 7 +-\n app/Http/Controllers/API/TeamAiAutomationController.php | 8 +\n app/Http/Controllers/CustomerApi/CustomerApiController.php | 4 +-\n app/Http/Controllers/Kiosk/ActivityController.php | 58 +-\n app/Http/Controllers/Settings/PlaybookController.php | 15 +-\n app/Http/Kernel.php | 23 +\n app/Http/Middleware/McpAuditMiddleware.php | 156 ++++\n app/Http/Middleware/McpTierMiddleware.php | 54 ++\n app/Http/Requests/API/V2/ZapierUploadActivityRequest.php | 28 +-\n app/Jobs/Activity/Import/ImportTwilioVideoSpeechesJob.php | 25 +-\n app/Jobs/Activity/Import/IsActivityReadyForProcessingJob.php | 10 +-\n app/Jobs/Calendar/SetupCalendarSync.php | 21 +-\n app/Jobs/ImportRemoteTrackJob.php | 96 ++-\n app/Jobs/Mailbox/EmailTextRelay.php | 15 +-\n app/Mcp/Contracts/McpCallRepositoryInterface.php | 30 +\n app/Mcp/DTO/ListCallsFilters.php | 29 +\n app/Mcp/Errors/McpError.php | 123 ++++\n app/Mcp/Repositories/McpActivityHydrator.php | 145 ++++\n app/Mcp/Repositories/McpCallRepository.php | 84 +++\n app/Mcp/Repositories/McpElasticCallRepository.php | 171 +++++\n app/Mcp/Servers/JiminnyServer.php | 38 +\n app/Mcp/Tools/ListCallsTool.php | 205 ++++++\n app/Models/Activity.php | 10 +-\n app/Models/Activity/Transcription.php | 17 +-\n app/Models/ElasticSearch/OpportunityElasticSearchTrait.php | 5 +\n app/Models/Participant.php | 1 +\n app/Providers/AppServiceProvider.php | 22 +\n app/Repositories/Crm/ContactRepository.php | 69 +-\n app/Repositories/ParticipantSpeechRepository.php | 13 +-\n app/Services/Activity/ParticipantsService.php | 19 +-\n app/Services/Activity/Twilio/S3RecordingCredentialsService.php | 82 +++\n app/Services/ActivityService.php | 21 +-\n app/Services/Calendar/CalendarActivityService.php | 46 ++\n app/Services/Calendar/Command/ImportParticipants.php | 1 +\n app/Services/Calendar/Command/MapActivityData.php | 106 +--\n app/Services/Calendar/GoogleCalendarService.php | 12 +-\n app/Services/Crm/Close/Processor/OpportunityProcessor.php | 2 +-\n app/Services/Crm/Close/Service.php | 22 +-\n app/Services/Crm/Copper/Service.php | 12 +-\n app/Services/Crm/Hubspot/Service.php | 154 +++-\n app/Services/Crm/Hubspot/ServiceTraits/OpportunitySyncTrait.php | 88 ++-\n app/Services/Crm/IntegrationApp/ServiceTraits/SyncCrmEntitiesTrait.php | 22 +-\n app/Services/Crm/Pipedrive/Service.php | 17 +-\n app/Services/Crm/Salesforce/Service.php | 42 +-\n app/Services/Mail/Office/EmailApiClient.php | 129 +---\n app/Services/RecallAI/Commands/ScheduleBotCommand.php | 39 +-\n app/Services/RecallAI/RecallAIService.php | 22 +-\n composer.json | 3 +-\n composer.lock | 87 ++-\n config/mcp.php | 23 +\n database/migrations/2026_04_30_120000_create_mcp_audit_log_table.php | 36 +\n docs/mcp/explorer/explorer.html | 697 ++++++++++++++++++\n docs/mcp/explorer/explorer.template.html | 697 ++++++++++++++++++\n docs/mcp/explorer/generate.js | 215 ++++++\n docs/mcp/explorer/tool-explorer-meta.json | 11 +\n docs/mcp/tools-list.json | 2536 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++\n docs/mcp/tools.md | 621 ++++++++++++++++\n front-end/package.json | 4 +-\n front-end/src/components/Settings/OrgSettings/AiAutomation/CrmFilling/TemplateFieldForm.vue | 28 +-\n front-end/src/components/Settings/OrgSettings/Playbooks/AddEditPlaybook.vue | 10 +\n front-end/src/components/playback/comments/ActivityComment.less | 10 +-\n front-end/src/components/shared/PromptTester/PromptTester.vue | 12 +-\n front-end/src/components/shared/__tests__/PromptTester.spec.js | 35 +\n front-end/src/components/shared/modals/EntityPickerModal/__tests__/useEntitiesCache.spec.ts | 37 +\n front-end/src/components/shared/modals/EntityPickerModal/useEntitiesCache.ts | 9 +\n front-end/yarn.lock | 16 +-\n phpstan-baseline.neon | 50 --\n routes/api.php | 11 +\n sonar-project.properties | 91 ++-\n tests/Feature/Component/Nudge/ProcessOrganisationImmediateNudgesJobTest.php | 534 ++++++++++++++\n tests/Feature/Jobs/ImportRemoteTrackJobTest.php | 283 +++++++-\n tests/Feature/Mcp/IssueMcpTokenCommandTest.php | 53 ++\n tests/Feature/Mcp/ListCallsToolElasticFeatureTest.php | 155 ++++\n tests/Feature/Mcp/ListCallsToolFeatureTest.php | 352 ++++++++++\n tests/Feature/Mcp/McpTestHelpersTrait.php | 77 ++\n tests/Feature/Services/Team/TeamDeleteHandlers/Retention/RetentionRepositoryHandlerTest.php | 1 +\n tests/Stubs/SentryStub.php | 18 +\n tests/Unit/Component/ActivityAnalytics/Service/CalculateTalkTimeOffsetFromTranscriptionTest.php | 28 +-\n tests/Unit/Component/AiActivityType/Services/AiActivityTypeEligibilityCheckerTest.php | 103 ++-\n tests/Unit/Component/AiAutomation/Actions/PrepareUpdateDtoActionTest.php | 91 +++\n tests/Unit/Component/AiAutomation/Services/CrmFillingEligibilityCheckerTest.php | 124 ++++\n tests/Unit/Component/AiAutomation/TestCrmAiPromptServiceTest.php | 67 +-\n tests/Unit/Component/AiCallScoring/Services/AiCallScoringEligibilityCheckerTest.php | 55 ++\n tests/Unit/Component/ES/ElasticSearchWorkerManagerTest.php | 135 ----\n tests/Unit/Component/ES/Processor/Actions/LoadDocumentsActionTest.php | 220 ++++++\n tests/Unit/Component/ES/Processor/EntityQueryBuilderTest.php | 21 +-\n tests/Unit/Component/ES/Processor/Traits/SkipActivityTraitTest.php | 51 --\n tests/Unit/Component/ES/Worker/ActivityWorkerTest.php | 174 -----\n tests/Unit/Component/ES/Worker/EntityWorkerTest.php | 97 ---\n tests/Unit/Component/ES/Worker/WorkerAmountTest.php | 116 ---\n tests/Unit/Component/Encoding/Job/AnalyzeTrackChannelsJobTest.php | 52 +-\n tests/Unit/Component/Encoding/Service/GenerateSpeechFromSilenceServiceTest.php | 171 ++---\n tests/Unit/Component/FFMpeg/Services/GetSpeechIntervalsTest.php | 36 +-\n tests/Unit/Component/LanguageDetection/Services/FindSpeechTimeServiceTest.php | 20 +-\n tests/Unit/Component/MobileSettings/MobileSettingsControllerTest.php | 5 +-\n tests/Unit/Component/ParticipantSpeech/Services/ParticipantSpeechesCreatorTest.php | 75 ++\n tests/Unit/Component/ParticipantSpeech/Services/ParticipantSpeechesDeleterTest.php | 63 ++\n tests/Unit/Component/ParticipantSpeech/Services/ParticipantSpeechesProviderTest.php | 134 ++++\n tests/Unit/Component/ParticipantSpeech/Services/ParticipantSpeechesUploaderTest.php | 57 ++\n tests/Unit/Component/Transcription/Diarization/Services/GetNormalizedParticipantSpeechesServiceTest.php | 51 +-\n tests/Unit/Component/Transcription/Diarization/Source/MeetingBotSourceTest.php | 29 +-\n tests/Unit/Contracts/Services/Calendar/CalendarTraitTest.php | 58 +-\n tests/Unit/Http/Controllers/Kiosk/ActivityControllerTest.php | 159 +++++\n tests/Unit/Jobs/Activity/Import/ImportTwilioVideoSpeechesJobTest.php | 22 +-\n tests/Unit/Jobs/Activity/Import/IsActivityReadyForProcessingJobTest.php | 26 +-\n tests/Unit/Jobs/Calendar/SetupCalendarSyncTest.php | 25 -\n tests/Unit/Services/Activity/ParticipantsServiceTest.php | 12 +-\n tests/Unit/Services/Activity/Twilio/S3RecordingCredentialsServiceTest.php | 180 +++++\n tests/Unit/Services/ActivityServiceTest.php | 132 ++++\n tests/Unit/Services/Calendar/CalendarActivityServiceTest.php | 150 +++-\n tests/Unit/Services/Calendar/Command/ImportParticipantsTest.php | 6 +-\n tests/Unit/Services/Calendar/Command/MapActivityDataTest.php | 78 +-\n tests/Unit/Services/Calendar/GoogleCalendarServiceTest.php | 116 +++\n tests/Unit/Services/Crm/Close/ServiceTest.php | 165 +++++\n tests/Unit/Services/Crm/Hubspot/ServiceTest.php | 272 ++++++-\n tests/Unit/Services/Crm/Hubspot/ServiceTraits/OpportunitySyncTest.php | 25 +-\n tests/Unit/Services/Crm/Hubspot/ServiceTraits/OpportunitySyncTraitMatchActivitiesTest.php | 3 +-\n tests/Unit/Services/Crm/IntegrationApp/ServiceTraits/SyncCrmEntitiesTraitOpportunitiesTest.php | 40 ++\n tests/Unit/Services/Crm/Pipedrive/ImportOpportunityMatchActivitiesTest.php | 2 +\n tests/Unit/Services/Crm/Salesforce/ServiceTest.php | 139 ++++\n tests/Unit/Services/Mail/Office/EmailApiClientTest.php | 195 ++---\n tests/Unit/Services/RecallAI/RecallAIServiceTest.php | 24 +-\n 175 files changed, 12562 insertions(+), 2162 deletions(-)\n create mode 120000 CLAUDE.md\n create mode 100644 app/Component/AiAutomation/Services/CrmFillingEligibilityChecker.php\n delete mode 100644 app/Component/ES/ElasticSearchWorkerManager.php\n delete mode 100644 app/Component/ES/Processor/Traits/SkipActivityTrait.php\n delete mode 100644 app/Component/ES/Worker/ActivityWorker.php\n delete mode 100644 app/Component/ES/Worker/EntityWorker.php\n delete mode 100644 app/Component/ES/Worker/WorkerAmount.php\n delete mode 100644 app/Component/ES/Worker/WorkerInterface.php\n create mode 100644 app/Component/ProphetAi/Exceptions/InsufficientTranscriptException.php\n create mode 100644 app/Component/Transcription/DTO/Http/Transcription/AssemblyAI/AssemblyAI/NoAssemblyIdException.php\n create mode 100644 app/Component/Transcription/DTO/Http/Transcription/TranscriptionIsNotCorrectFormatException.php\n create mode 100644 app/Console/Commands/Activities/SetupIntegration/TwilioSetS3RecordingCredentialsCommand.php\n create mode 100644 app/Console/Commands/Crm/BackfillOpportunityUserFromAccountCommand.php\n delete mode 100644 app/Console/Commands/Elasticsearch/AsyncUpdateEsActivities.php\n create mode 100644 app/Console/Commands/IssueMcpTokenCommand.php\n create mode 100644 app/Http/Middleware/McpAuditMiddleware.php\n create mode 100644 app/Http/Middleware/McpTierMiddleware.php\n create mode 100644 app/Mcp/Contracts/McpCallRepositoryInterface.php\n create mode 100644 app/Mcp/DTO/ListCallsFilters.php\n create mode 100644 app/Mcp/Errors/McpError.php\n create mode 100644 app/Mcp/Repositories/McpActivityHydrator.php\n create mode 100644 app/Mcp/Repositories/McpCallRepository.php\n create mode 100644 app/Mcp/Repositories/McpElasticCallRepository.php\n create mode 100644 app/Mcp/Servers/JiminnyServer.php\n create mode 100644 app/Mcp/Tools/ListCallsTool.php\n create mode 100644 app/Services/Activity/Twilio/S3RecordingCredentialsService.php\n create mode 100644 config/mcp.php\n create mode 100644 database/migrations/2026_04_30_120000_create_mcp_audit_log_table.php\n create mode 100644 docs/mcp/explorer/explorer.html\n create mode 100644 docs/mcp/explorer/explorer.template.html\n create mode 100644 docs/mcp/explorer/generate.js\n create mode 100644 docs/mcp/explorer/tool-explorer-meta.json\n create mode 100644 docs/mcp/tools-list.json\n create mode 100644 docs/mcp/tools.md\n create mode 100644 front-end/src/components/shared/modals/EntityPickerModal/__tests__/useEntitiesCache.spec.ts\n create mode 100644 tests/Feature/Component/Nudge/ProcessOrganisationImmediateNudgesJobTest.php\n create mode 100644 tests/Feature/Mcp/IssueMcpTokenCommandTest.php\n create mode 100644 tests/Feature/Mcp/ListCallsToolElasticFeatureTest.php\n create mode 100644 tests/Feature/Mcp/ListCallsToolFeatureTest.php\n create mode 100644 tests/Feature/Mcp/McpTestHelpersTrait.php\n create mode 100644 tests/Stubs/SentryStub.php\n create mode 100644 tests/Unit/Component/AiAutomation/Services/CrmFillingEligibilityCheckerTest.php\n delete mode 100644 tests/Unit/Component/ES/ElasticSearchWorkerManagerTest.php\n create mode 100644 tests/Unit/Component/ES/Processor/Actions/LoadDocumentsActionTest.php\n delete mode 100644 tests/Unit/Component/ES/Processor/Traits/SkipActivityTraitTest.php\n delete mode 100644 tests/Unit/Component/ES/Worker/ActivityWorkerTest.php\n delete mode 100644 tests/Unit/Component/ES/Worker/EntityWorkerTest.php\n delete mode 100644 tests/Unit/Component/ES/Worker/WorkerAmountTest.php\n create mode 100644 tests/Unit/Component/ParticipantSpeech/Services/ParticipantSpeechesCreatorTest.php\n create mode 100644 tests/Unit/Http/Controllers/Kiosk/ActivityControllerTest.php\n create mode 100644 tests/Unit/Services/Activity/Twilio/S3RecordingCredentialsServiceTest.php\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20725-handle-HS-search-rate-limit) $ git status\nOn branch master\nYour branch is behind 'origin/master' by 114 commits, and can be fast-forwarded.\n (use \"git pull\" to update your local branch)\n\nChanges not staged for commit:\n (use \"git add <file>...\" to update what will be committed)\n (use \"git restore <file>...\" to discard changes in working directory)\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tmodified: .env.local\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tmodified: app/Component/SCIM/Constants.php\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tmodified: app/Component/SCIM/ScimProvisioning.php\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tmodified: app/Component/Twilio/Conference/ConferenceManager/SoftPhoneManager.php\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tmodified: app/Console/Commands/JiminnyDebugCommand.php\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tmodified: app/DTO/SCIM/AAD/Request/CoreUserRequest.php\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tmodified: app/DTO/SCIM/AAD/Response/CoreUser.php\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tmodified: app/Services/Telephony/TextMessagingService.php\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tmodified: config/logging.php\n\nUntracked files:\n (use \"git add <file>...\" to include in what will be committed)\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\t.env.nikilocal\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\t.env.other\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tWEBHOOK_FILTERING_IMPLEMENTATION.md\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tapp/Component/SCIM/Mutators/Attributes/User/RoleAttr.php\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tapp/Console/Commands/Crm/Hubspot/SimulateWebhooksCommand.php\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tapp/Console/Commands/Reports/CreateMockAskJiminnyReportResultCommand.php\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tapp/Rules/ListenerRoleCannotHaveAdminOrManagerPermissionRule.php\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tids.txt\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tpublic/favicon.ico\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\traw_sql_query.sql\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\ttests/Unit/Component/SCIM/Mutators/Attributes/User/RoleAttrTest.php\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\ttests/Unit/Policies/CanAccessAiReportsTest.php\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\ttests/Unit/Rules/ListenerRoleCannotHaveAdminOrManagerPermissionRuleTest.php\n\nno changes added to commit (use \"git add\" and/or \"git commit -a\")\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (master) $ git pull\nremote: Enumerating objects: 306, done.\nremote: Counting objects: 100% (299/299), done.\nremote: Compressing objects: 100% (183/183), done.\nremote: Total 306 (delta 213), reused 171 (delta 116), pack-reused 7 (from 1)\nReceiving objects: 100% (306/306), 80.12 KiB | 1000.00 KiB/s, done.\nResolving deltas: 100% (213/213), completed with 53 local objects.\nFrom github.com:jiminny/app\n 90bca4e4b2..5604af40cf master -> origin/master\n 4e7078fd8b..0b8343d179 JY-18091-upgrade-to-php-8-5 -> origin/JY-18091-upgrade-to-php-8-5\n 098eeaa087..d5a447e492 JY-20613-allow-owner-role-on-team-setup -> origin/JY-20613-allow-owner-role-on-team-setup\n c3a76ace91..af65249d0f JY-20749-user-can-view-recorded-meetings -> origin/JY-20749-user-can-view-recorded-meetings\n d94a285ae7..7ce96cb5fe JY-20808-low-priority-indexing-queue -> origin/JY-20808-low-priority-indexing-queue\n * [new branch] JY-20842-remove-partial-updater -> origin/JY-20842-remove-partial-updater\n * [new branch] JY-20920-fix-participant-flip -> origin/JY-20920-fix-participant-flip\n * [new branch] secfix/npm-20260519 -> origin/secfix/npm-20260519\nUpdating cb4ebf0c36..5604af40cf\nFast-forward\n app/Component/ES/ChunkSize.php | 54 +++++++++++++++++++\n app/Component/ES/Processor/DTOs/SelectionList.php | 4 +-\n app/Component/ES/Processor/TargetEntitiesSelector.php | 19 ++++---\n app/Component/MeetingBot/Service/ParticipantMatcher.php | 46 ++++++++++++----\n app/Exceptions/RateLimitException.php | 19 ++++++-\n app/Http/Middleware/McpTierMiddleware.php | 27 ++--------\n app/Jobs/Crm/MatchActivityCrmData.php | 47 ++++++++++++----\n app/Jobs/Middleware/HandleHubspotRateLimit.php | 42 +++++++++++++++\n app/Mcp/Servers/JiminnyServer.php | 2 +\n app/Mcp/Tools/GetMeTool.php | 157 +++++++++++++++++++++++++++++++++++++++++++++++++++++\n app/Models/Feature/FeatureEnum.php | 1 +\n app/Services/Activity/HubSpot/ProviderResolver.php | 4 +-\n app/Services/Activity/HubSpot/ProviderResolverInterface.php | 2 +-\n app/Services/Activity/HubSpot/Providers/Provider.php | 2 +-\n app/Services/Activity/HubSpot/Providers/ProviderKixie.php | 2 +-\n app/Services/Activity/HubSpot/Providers/ProviderOrum.php | 2 +-\n app/Services/Activity/HubSpot/Providers/ProviderTwilio.php | 2 +-\n app/Services/Activity/HubSpot/Providers/ProviderTwilioFlex.php | 5 +-\n app/Services/Activity/HubSpot/Service.php | 97 +++++++++++++++++++++++++++------\n app/Services/Crm/Hubspot/Client.php | 132 +++++++++++++++++++++++++++++++++++++++++++++\n app/Services/Crm/Hubspot/HubspotClientInterface.php | 15 ++++++\n app/Services/Crm/Hubspot/Pagination/HubspotPaginationService.php | 21 ++++----\n app/Services/Crm/Hubspot/Pagination/PaginationState.php | 2 +-\n database/migrations/2026_05_13_124153_create_mcp_feature_flag.php | 25 +++++++++\n tests/Feature/Mcp/GetMeToolFeatureTest.php | 140 +++++++++++++++++++++++++++++++++++++++++++++++\n tests/Feature/Mcp/ListCallsToolFeatureTest.php | 2 +-\n tests/Feature/Mcp/McpTestHelpersTrait.php | 19 ++++++-\n tests/Unit/Component/ES/ChunkSizeTest.php | 50 +++++++++++++++++\n tests/Unit/Component/ES/Processor/DTOs/SelectionListTest.php | 27 +++++++---\n tests/Unit/Component/ES/Processor/TargetEntitiesSelectorTest.php | 39 ++++++++------\n tests/Unit/Component/MeetingBot/Service/ParticipantMatcherTest.php | 68 ++++++++++++++++++++++-\n tests/Unit/Exceptions/RateLimitExceptionTest.php | 56 +++++++++++++++++++\n tests/Unit/Jobs/Crm/MatchActivityCrmDataTest.php | 8 +--\n tests/Unit/Jobs/Middleware/HandleHubspotRateLimitTest.php | 151 +++++++++++++++++++++++++++++++++++++++++++++++++++\n tests/Unit/Services/Activity/HubSpot/ServiceTest.php | 109 +++++++++++++++++++++++++++++++++++++\n tests/Unit/Services/Crm/Hubspot/ClientTest.php | 250 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++\n tests/Unit/Services/Crm/Hubspot/Pagination/HubspotPaginationServiceTest.php | 283 +++++++++++++++++++++---------------------------------------------------------------------------\n 37 files changed, 1587 insertions(+), 344 deletions(-)\n create mode 100644 app/Component/ES/ChunkSize.php\n create mode 100644 app/Jobs/Middleware/HandleHubspotRateLimit.php\n create mode 100644 app/Mcp/Tools/GetMeTool.php\n create mode 100644 database/migrations/2026_05_13_124153_create_mcp_feature_flag.php\n create mode 100644 tests/Feature/Mcp/GetMeToolFeatureTest.php\n create mode 100644 tests/Unit/Component/ES/ChunkSizeTest.php\n create mode 100644 tests/Unit/Exceptions/RateLimitExceptionTest.php\n create mode 100644 tests/Unit/Jobs/Middleware/HandleHubspotRateLimitTest.php\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (master) $ git pull\nAlready up to date.\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (master) $ co -b JY-20676-delete-report-related-objects\nSwitched to a new branch 'JY-20676-delete-report-related-objects'\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20676-delete-report-related-objects) $ csfix\ndocker exec -it docker_lamp_1 ./vendor/bin/php-cs-fixer fix --config=.php-cs-fixer.dist.php -v --using-cache=no --diff \nPHP CS Fixer 3.87.1 Alexander by Fabien Potencier, Dariusz Ruminski and contributors.\nPHP runtime: 8.3.30\nRunning analysis on 7 cores with 10 files per process.\nParallel runner is an experimental feature and may be unstable, use it at your own risk. Feedback highly appreciated!\nLoaded config default from \".php-cs-fixer.dist.php\".\n 5690/5690 [▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓] 100%\n\n 1) app/Console/Commands/JiminnyDebugCommand.php (statement_indentation, blank_line_before_statement)\n ---------- begin diff ----------\n--- /home/jiminny/app/Console/Commands/JiminnyDebugCommand.php\n+++ /home/jiminny/app/Console/Commands/JiminnyDebugCommand.php\n@@ -23,6 +23,7 @@\n \n if ($action === 'redis-set') {\n $this->testRedisSet();\n+\n return;\n }\n \n@@ -45,7 +46,7 @@\n $ttl = 60;\n \n try {\n-// $result = Redis::set($testKey, $testValue, 'EX', $ttl, 'NX');\n+ // $result = Redis::set($testKey, $testValue, 'EX', $ttl, 'NX');\n $result = Redis::set($testKey, $testValue, ['nx', 'ex' => $ttl]);\n \n if ($result) {\n\n ----------- end diff -----------\n\n\nFixed 1 of 5690 files in 50.673 seconds, 67.00 MB memory used\n\nWhat's next:\n Try Docker Debug for seamless, persistent debugging tools in any container or image → docker debug docker_lamp_1\n Learn more at https://docs.docker.com/go/debug-cli/\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20676-delete-report-related-objects) $ ;xd\ndocker exec -it docker_lamp_1 bash -c \"mv /usr/local/etc/php/conf.d/xdebug.ini ~/xdebug.ini\"\n\nWhat's next:\n Try Docker Debug for seamless, persistent debugging tools in any container or image → docker debug docker_lamp_1\n Learn more at https://docs.docker.com/go/debug-cli/\ndocker exec -it docker_lamp_1 supervisorctl restart all\njiminny-worker-processing-2:jiminny-worker-processing-2_00: stopped\njiminny-worker-processing-3:jiminny-worker-processing-3_00: stopped\njiminny-worker-processing-4:jiminny-worker-processing-4_00: stopped\njiminny-worker-processing-5:jiminny-worker-processing-5_00: stopped\njiminny-worker-processing-delayed:jiminny-worker-processing-delayed_00: stopped\nworker-analytics:worker-analytics_00: stopped\nworker-crm-update:worker-crm-update_00: stopped\nworker-download:worker-download_00: stopped\nworker-nudges:worker-nudges_00: stopped\nworker-calendar:worker-calendar_00: stopped\nworker-audio:worker-audio_00: stopped\njiminny-worker-processing-1:jiminny-worker-processing-1_00: stopped\nworker:worker_00: stopped\nworker-conferences:worker-conferences_00: stopped\nworker-crm-sync:worker-crm-sync_00: stopped\nworker-emails:worker-emails_00: stopped\nworker-es-update:worker-es-update_00: stopped\nartisan-schedule:artisan-schedule_00: stopped\nartisan-schedule:artisan-schedule_00: started\njiminny-worker-processing-1:jiminny-worker-processing-1_00: started\njiminny-worker-processing-2:jiminny-worker-processing-2_00: started\njiminny-worker-processing-3:jiminny-worker-processing-3_00: started\njiminny-worker-processing-4:jiminny-worker-processing-4_00: started\njiminny-worker-processing-5:jiminny-worker-processing-5_00: started\njiminny-worker-processing-delayed:jiminny-worker-processing-delayed_00: started\nworker:worker_00: started\nworker-analytics:worker-analytics_00: started\nworker-audio:worker-audio_00: started\nworker-calendar:worker-calendar_00: started\nworker-conferences:worker-conferences_00: started\nworker-crm-sync:worker-crm-sync_00: started\nworker-crm-update:worker-crm-update_00: started\nworker-download:worker-download_00: started\nworker-emails:worker-emails_00: started\nworker-es-update:worker-es-update_00: started\nworker-nudges:worker-nudges_00: started\n\nWhat's next:\n Try Docker Debug for seamless, persistent debugging tools in any container or image → docker debug docker_lamp_1\n Learn more at https://docs.docker.com/go/debug-cli/\ndocker exec -it docker_lamp_1 php -v\nPHP 8.3.30 (cli) (built: Mar 16 2026 22:32:32) (NTS)\nCopyright (c) The PHP Group\nZend Engine v4.3.30, Copyright (c) Zend Technologies\n with Zend OPcache v8.3.30, Copyright (c), by Zend Technologies\n\nWhat's next:\n Try Docker Debug for seamless, persistent debugging tools in any container or image → docker debug docker_lamp_1\n Learn more at https://docs.docker.com/go/debug-cli/\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20676-delete-report-related-objects) $ git status\nOn branch JY-20676-delete-report-related-objects\nChanges not staged for commit:\n (use \"git add <file>...\" to update what will be committed)\n (use \"git restore <file>...\" to discard changes in working directory)\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tmodified: .env.local\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tmodified: app/Console/Commands/JiminnyDebugCommand.php\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tmodified: config/logging.php\n\nUntracked files:\n (use \"git add <file>...\" to include in what will be committed)\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\t.env.nikilocal\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\t.env.other\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tWEBHOOK_FILTERING_IMPLEMENTATION.md\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tapp/Console/Commands/Crm/Hubspot/SimulateWebhooksCommand.php\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tapp/Console/Commands/Reports/CreateMockAskJiminnyReportResultCommand.php\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tids.txt\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tpublic/favicon.ico\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\traw_sql_query.sql\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\ttests/Unit/Policies/CanAccessAiReportsTest.php\n\nno changes added to commit (use \"git add\" and/or \"git commit -a\")\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20676-delete-report-related-objects) $ git push -u origin JY-20676-delete-report-related-objects\nEnumerating objects: 45, done.\nCounting objects: 100% (45/45), done.\nDelta compression using up to 8 threads\nCompressing objects: 100% (24/24), done.\nWriting objects: 100% (24/24), 3.62 KiB | 3.62 MiB/s, done.\nTotal 24 (delta 19), reused 0 (delta 0), pack-reused 0\nremote: Resolving deltas: 100% (19/19), completed with 19 local objects.\nremote: \nremote: Create a pull request for 'JY-20676-delete-report-related-objects' on GitHub by visiting:\nremote: https://github.com/jiminny/app/pull/new/JY-20676-delete-report-related-objects\nremote: \nTo github.com:jiminny/app.git\n * [new branch] JY-20676-delete-report-related-objects -> JY-20676-delete-report-related-objects\nbranch 'JY-20676-delete-report-related-objects' set up to track 'origin/JY-20676-delete-report-related-objects'.\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20676-delete-report-related-objects) $ csfix\ndocker exec -it docker_lamp_1 ./vendor/bin/php-cs-fixer fix --config=.php-cs-fixer.dist.php -v --using-cache=no --diff \nPHP CS Fixer 3.87.1 Alexander by Fabien Potencier, Dariusz Ruminski and contributors.\nPHP runtime: 8.3.30\nRunning analysis on 7 cores with 10 files per process.\nParallel runner is an experimental feature and may be unstable, use it at your own risk. Feedback highly appreciated!\nLoaded config default from \".php-cs-fixer.dist.php\".\n 5690/5690 [▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓] 100%\n\n 1) app/Http/Controllers/API/V2/AskJiminnyReportsController.php (blank_line_before_statement)\n ---------- begin diff ----------\n--- /home/jiminny/app/Http/Controllers/API/V2/AskJiminnyReportsController.php\n+++ /home/jiminny/app/Http/Controllers/API/V2/AskJiminnyReportsController.php\n@@ -140,6 +140,7 @@\n if ($enabled && $report->isAskJiminnyReport() && ! $report->canExecute()) {\n $error = 'This report is missing a saved search or prompt. ' .\n 'Edit the report to complete the setup before enabling it.';\n+\n return new JsonResponse(\n ['error' => $error],\n Response::HTTP_UNPROCESSABLE_ENTITY\n\n ----------- end diff -----------\n\n\nFixed 1 of 5690 files in 71.757 seconds, 60.00 MB memory used\n\nWhat's next:\n Try Docker Debug for seamless, persistent debugging tools in any container or image → docker debug docker_lamp_1\n Learn more at https://docs.docker.com/go/debug-cli/\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20676-delete-report-related-objects) $ git pull\nremote: Enumerating objects: 158, done.\nremote: Counting objects: 100% (103/103), done.\nremote: Compressing objects: 100% (37/37), done.\nremote: Total 158 (delta 80), reused 74 (delta 66), pack-reused 55 (from 3)\nReceiving objects: 100% (158/158), 80.59 KiB | 982.00 KiB/s, done.\nResolving deltas: 100% (85/85), completed with 45 local objects.\nFrom github.com:jiminny/app\n 02a33811ee..c6ce5e2440 JY-20676-delete-report-related-objects -> origin/JY-20676-delete-report-related-objects\n 7ce96cb5fe..6c59f04358 JY-20808-low-priority-indexing-queue -> origin/JY-20808-low-priority-indexing-queue\n 3906a9238a..2b5e6ea62b JY-20835-mcp-enable-users-to-get-a-list-of-deals-and-their-details -> origin/JY-20835-mcp-enable-users-to-get-a-list-of-deals-and-their-details\n 5604af40cf..ea3519f0e2 master -> origin/master\n * [new branch] switch-eu-assembly -> origin/switch-eu-assembly\nUpdating 02a33811ee..c6ce5e2440\nFast-forward\n app/Component/ES/ElasticSearchDocumentPartialUpdater.php | 48 ---\n app/Component/ParticipantSpeech/Services/ParticipantAttributionService.php | 4 +-\n app/Component/Settings/AutoScoring/Services/UpdateAutoScoreService.php | 20 +-\n app/Component/Transcription/Service/StorageService.php | 8 +-\n front-end/package.json | 2 +-\n front-end/src/components/DealInsights/Modals/AskAnythingModal.vue | 23 ++\n front-end/src/components/shared/AskAnything/AskAnythingPromptFormItem.vue | 2 +\n front-end/src/components/shared/AskAnything/AskAnythingSettingsDrawer.vue | 23 +-\n front-end/src/components/shared/AskAnything/__mocks__/AskAnythingSettingsDrawer.mocks.js | 1 +\n front-end/src/components/shared/AskAnything/__tests__/AskAnythingSettingsDrawer.spec.js | 135 ++++---\n front-end/src/components/shared/AskAnything/__tests__/__snapshots__/AskAnythingSettingsDrawer.spec.js.html | 1235 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++\n front-end/src/components/shared/AskAnything/__tests__/__snapshots__/AskAnythingSettingsDrawer.spec.js.snap | 1382 ----------------------------------------------------------------\n front-end/src/components/shared/AskAnything/prompts.js | 1 +\n front-end/src/components/shared/AskAnything/useAskAnything.js | 1 +\n front-end/yarn.lock | 8 +-\n tests/Unit/Component/ES/ElasticSearchDocumentPartialUpdaterTest.php | 42 --\n tests/Unit/Component/Settings/AutoScoring/Services/UpdateAutoScoreServiceTest.php | 86 ++--\n tests/Unit/Component/Transcription/Service/StorageServiceTest.php | 29 +-\n 18 files changed, 1448 insertions(+), 1602 deletions(-)\n delete mode 100644 app/Component/ES/ElasticSearchDocumentPartialUpdater.php\n create mode 100644 front-end/src/components/shared/AskAnything/__tests__/__snapshots__/AskAnythingSettingsDrawer.spec.js.html\n delete mode 100644 front-end/src/components/shared/AskAnything/__tests__/__snapshots__/AskAnythingSettingsDrawer.spec.js.snap\n delete mode 100644 tests/Unit/Component/ES/ElasticSearchDocumentPartialUpdaterTest.php\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20676-delete-report-related-objects) $ csfix\ndocker exec -it docker_lamp_1 ./vendor/bin/php-cs-fixer fix --config=.php-cs-fixer.dist.php -v --using-cache=no --diff \nPHP CS Fixer 3.87.1 Alexander by Fabien Potencier, Dariusz Ruminski and contributors.\nPHP runtime: 8.3.30\nRunning analysis on 7 cores with 10 files per process.\nParallel runner is an experimental feature and may be unstable, use it at your own risk. Feedback highly appreciated!\nLoaded config default from \".php-cs-fixer.dist.php\".\n 5688/5688 [▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓] 100%\n\n\nFixed 0 of 5688 files in 79.904 seconds, 60.00 MB memory used\n\nWhat's next:\n Try Docker Debug for seamless, persistent debugging tools in any container or image → docker debug docker_lamp_1\n Learn more at https://docs.docker.com/go/debug-cli/\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20676-delete-report-related-objects) $","depth":4,"on_screen":true,"value":"Last login: Mon May 18 09:17:28 on ttys007\n\nPoetry could not find a pyproject.toml file in /Users/lukas/jiminny/app or its parents\n\nPoetry could not find a pyproject.toml file in /Users/lukas/jiminny/app or its parents\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (pipedrive-sdk-poc) $ co master\nerror: Your local changes to the following files would be overwritten by checkout:\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tPIPEDRIVE_V2_MIGRATION_TICKETS.md\nPlease commit your changes or stash them before you switch branches.\nAborting\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (pipedrive-sdk-poc) $ git pull\nremote: Enumerating objects: 1047, done.\nremote: Counting objects: 100% (832/832), done.\nremote: Compressing objects: 100% (298/298), done.\nremote: Total 1047 (delta 634), reused 596 (delta 534), pack-reused 215 (from 3)\nReceiving objects: 100% (1047/1047), 353.16 KiB | 1.56 MiB/s, done.\nResolving deltas: 100% (687/687), completed with 107 local objects.\nFrom github.com:jiminny/app\n 907c54896c..34656c53ed pipedrive-sdk-poc -> origin/pipedrive-sdk-poc\n 03325ec50f..4e7078fd8b JY-18091-upgrade-to-php-8-5 -> origin/JY-18091-upgrade-to-php-8-5\n e7d231e163..bc6a3fce6b JY-20725-handle-HS-search-rate-limit -> origin/JY-20725-handle-HS-search-rate-limit\n * [new branch] JY-20749-user-can-view-recorded-meetings -> origin/JY-20749-user-can-view-recorded-meetings\n 98ca281a04..e0351be069 JY-20808-low-priority-indexing-queue -> origin/JY-20808-low-priority-indexing-queue\n 569abb5149..3906a9238a JY-20835-mcp-enable-users-to-get-a-list-of-deals-and-their-details -> origin/JY-20835-mcp-enable-users-to-get-a-list-of-deals-and-their-details\n ad6c2a86e8..50eb6afba9 JY-20846-mcp-enable-the-ai-to-know-details-about-the-user -> origin/JY-20846-mcp-enable-the-ai-to-know-details-about-the-user\n * [new branch] JY-20893-chunk-control-per-update-target -> origin/JY-20893-chunk-control-per-update-target\n 31c62924a5..cb4ebf0c36 master -> origin/master\nUpdating 907c54896c..34656c53ed\nFast-forward\n PIPEDRIVE_V2_MIGRATION_TICKETS.md | 52 ++++++++++++++++++++++++++++++++++++++++++++++++++++\n 1 file changed, 52 insertions(+)\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (pipedrive-sdk-poc) $ co master\nM\u0000\u0000\u0000\u0000\u0000\u0000\t.env.local\nM\u0000\u0000\u0000\u0000\u0000\u0000\tconfig/logging.php\nSwitched to branch 'master'\nYour branch is behind 'origin/master' by 31 commits, and can be fast-forwarded.\n (use \"git pull\" to update your local branch)\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (master) $ git pull\nUpdating 31c62924a5..cb4ebf0c36\nFast-forward\n app/Component/ES/Processor/Traits/SelectEntityListTrait.php | 20 ------\n app/Services/Calendar/CalendarActivityService.php | 46 +++++++++++++\n app/Services/Calendar/Command/MapActivityData.php | 106 +++-------------------------\n docs/mcp/explorer/explorer.html | 104 +++++++++++++++++++++++++---\n docs/mcp/explorer/explorer.template.html | 102 ++++++++++++++++++++++++---\n docs/mcp/tools-list.json | 373 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++-------\n docs/mcp/tools.md | 117 +++++++++++++++++++++++--------\n tests/Unit/Component/ES/AsyncUpdateElasticSearchTest.php | 16 +----\n tests/Unit/Component/ES/Listeners/UpdateMultipleTargetsListenerTest.php | 10 ---\n tests/Unit/Component/ES/Listeners/UpdateSingleTargetListenerTest.php | 6 --\n tests/Unit/Component/ES/Processor/TargetEntitiesSelectorTest.php | 9 ---\n tests/Unit/Component/ES/Processor/Traits/SelectEntityListTraitTest.php | 15 ++--\n tests/Unit/Component/ES/UpdateProcessManagerTest.php | 2 -\n tests/Unit/Services/Calendar/CalendarActivityServiceTest.php | 150 ++++++++++++++++++++++++++++++++++++++--\n tests/Unit/Services/Calendar/Command/MapActivityDataTest.php | 78 ++-------------------\n 15 files changed, 832 insertions(+), 322 deletions(-)\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (master) $ co -b JY-20613-allow-owner-role-on-team-setup\nSwitched to a new branch 'JY-20613-allow-owner-role-on-team-setup'\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20613-allow-owner-role-on-team-setup) $ csfix\ndocker exec -it docker_lamp_1 ./vendor/bin/php-cs-fixer fix --config=.php-cs-fixer.dist.php -v --using-cache=no --diff \nPHP CS Fixer 3.87.1 Alexander by Fabien Potencier, Dariusz Ruminski and contributors.\nPHP runtime: 8.3.30\nRunning analysis on 7 cores with 10 files per process.\nParallel runner is an experimental feature and may be unstable, use it at your own risk. Feedback highly appreciated!\nLoaded config default from \".php-cs-fixer.dist.php\".\n 5682/5682 [▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓] 100%\n\n\nFixed 0 of 5682 files in 56.978 seconds, 67.00 MB memory used\n\nWhat's next:\n Try Docker Debug for seamless, persistent debugging tools in any container or image → docker debug docker_lamp_1\n Learn more at https://docs.docker.com/go/debug-cli/\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20613-allow-owner-role-on-team-setup) $ ;xd\ndocker exec -it docker_lamp_1 bash -c \"mv /usr/local/etc/php/conf.d/xdebug.ini ~/xdebug.ini\"\n\nWhat's next:\n Try Docker Debug for seamless, persistent debugging tools in any container or image → docker debug docker_lamp_1\n Learn more at https://docs.docker.com/go/debug-cli/\ndocker exec -it docker_lamp_1 supervisorctl restart all\njiminny-worker-processing-2:jiminny-worker-processing-2_00: stopped\njiminny-worker-processing-3:jiminny-worker-processing-3_00: stopped\njiminny-worker-processing-4:jiminny-worker-processing-4_00: stopped\njiminny-worker-processing-5:jiminny-worker-processing-5_00: stopped\njiminny-worker-processing-delayed:jiminny-worker-processing-delayed_00: stopped\nworker-analytics:worker-analytics_00: stopped\nworker-crm-update:worker-crm-update_00: stopped\nworker-download:worker-download_00: stopped\nworker-nudges:worker-nudges_00: stopped\nartisan-schedule:artisan-schedule_00: stopped\nworker-emails:worker-emails_00: stopped\nworker-calendar:worker-calendar_00: stopped\nworker:worker_00: stopped\nworker-conferences:worker-conferences_00: stopped\nworker-crm-sync:worker-crm-sync_00: stopped\njiminny-worker-processing-1:jiminny-worker-processing-1_00: stopped\nworker-audio:worker-audio_00: stopped\nworker-es-update:worker-es-update_00: stopped\nartisan-schedule:artisan-schedule_00: started\njiminny-worker-processing-1:jiminny-worker-processing-1_00: started\njiminny-worker-processing-2:jiminny-worker-processing-2_00: started\njiminny-worker-processing-3:jiminny-worker-processing-3_00: started\njiminny-worker-processing-4:jiminny-worker-processing-4_00: started\njiminny-worker-processing-5:jiminny-worker-processing-5_00: started\njiminny-worker-processing-delayed:jiminny-worker-processing-delayed_00: started\nworker:worker_00: started\nworker-analytics:worker-analytics_00: started\nworker-audio:worker-audio_00: started\nworker-calendar:worker-calendar_00: started\nworker-conferences:worker-conferences_00: started\nworker-crm-sync:worker-crm-sync_00: started\nworker-crm-update:worker-crm-update_00: started\nworker-download:worker-download_00: started\nworker-emails:worker-emails_00: started\nworker-es-update:worker-es-update_00: started\nworker-nudges:worker-nudges_00: started\n\nWhat's next:\n Try Docker Debug for seamless, persistent debugging tools in any container or image → docker debug docker_lamp_1\n Learn more at https://docs.docker.com/go/debug-cli/\ndocker exec -it docker_lamp_1 php -v\nPHP 8.3.30 (cli) (built: Mar 16 2026 22:32:32) (NTS)\nCopyright (c) The PHP Group\nZend Engine v4.3.30, Copyright (c) Zend Technologies\n with Zend OPcache v8.3.30, Copyright (c), by Zend Technologies\n\nWhat's next:\n Try Docker Debug for seamless, persistent debugging tools in any container or image → docker debug docker_lamp_1\n Learn more at https://docs.docker.com/go/debug-cli/\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20613-allow-owner-role-on-team-setup) $ csfix\ndocker exec -it docker_lamp_1 ./vendor/bin/php-cs-fixer fix --config=.php-cs-fixer.dist.php -v --using-cache=no --diff \nPHP CS Fixer 3.87.1 Alexander by Fabien Potencier, Dariusz Ruminski and contributors.\nPHP runtime: 8.3.30\nRunning analysis on 7 cores with 10 files per process.\nParallel runner is an experimental feature and may be unstable, use it at your own risk. Feedback highly appreciated!\nLoaded config default from \".php-cs-fixer.dist.php\".\n 5682/5682 [▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓] 100%\n\n\nFixed 0 of 5682 files in 49.910 seconds, 60.00 MB memory used\n\nWhat's next:\n Try Docker Debug for seamless, persistent debugging tools in any container or image → docker debug docker_lamp_1\n Learn more at https://docs.docker.com/go/debug-cli/\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20613-allow-owner-role-on-team-setup) $ git status\nOn branch JY-20613-allow-owner-role-on-team-setup\nYour branch is ahead of 'origin/JY-20613-allow-owner-role-on-team-setup' by 1 commit.\n (use \"git push\" to publish your local commits)\n\nChanges not staged for commit:\n (use \"git add <file>...\" to update what will be committed)\n (use \"git restore <file>...\" to discard changes in working directory)\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tmodified: .env.local\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tmodified: config/logging.php\n\nUntracked files:\n (use \"git add <file>...\" to include in what will be committed)\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\t.env.nikilocal\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\t.env.other\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tWEBHOOK_FILTERING_IMPLEMENTATION.md\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tapp/Console/Commands/Crm/Hubspot/SimulateWebhooksCommand.php\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tapp/Console/Commands/Reports/CreateMockAskJiminnyReportResultCommand.php\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tids.txt\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tpublic/favicon.ico\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\traw_sql_query.sql\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\ttests/Unit/Policies/CanAccessAiReportsTest.php\n\nno changes added to commit (use \"git add\" and/or \"git commit -a\")\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20613-allow-owner-role-on-team-setup) $ git pull\nremote: Enumerating objects: 248, done.\nremote: Counting objects: 100% (128/128), done.\nremote: Compressing objects: 100% (23/23), done.\nremote: Total 59 (delta 43), reused 44 (delta 33), pack-reused 0 (from 0)\nUnpacking objects: 100% (59/59), 10.48 KiB | 228.00 KiB/s, done.\nFrom github.com:jiminny/app\n b7df560451..190239dfd4 JY-20613-allow-owner-role-on-team-setup -> origin/JY-20613-allow-owner-role-on-team-setup\n e0351be069..d94a285ae7 JY-20808-low-priority-indexing-queue -> origin/JY-20808-low-priority-indexing-queue\n * [new branch] JY-20920-fix-participant-matcher -> origin/JY-20920-fix-participant-matcher\n cb4ebf0c36..90bca4e4b2 master -> origin/master\nMerge made by the 'ort' strategy.\n app/Component/ES/ChunkSize.php | 54 +++++++++++++++++++++++++++\n app/Component/ES/Processor/DTOs/SelectionList.php | 4 +-\n app/Component/ES/Processor/TargetEntitiesSelector.php | 19 ++++++----\n app/Http/Middleware/McpTierMiddleware.php | 27 +++-----------\n app/Mcp/Servers/JiminnyServer.php | 2 +\n app/Mcp/Tools/GetMeTool.php | 157 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++\n app/Models/Feature/FeatureEnum.php | 1 +\n database/migrations/2026_05_13_124153_create_mcp_feature_flag.php | 25 +++++++++++++\n front-end/src/components/Settings/Kiosk/modals/EditTeamModal/EditTeamModal.vue | 52 ++++++++++++++++++--------\n front-end/src/components/Settings/Kiosk/modals/EditTeamModal/__tests__/EditTeamModal.spec.js | 14 +++++++\n tests/Feature/Mcp/GetMeToolFeatureTest.php | 140 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++\n tests/Feature/Mcp/ListCallsToolFeatureTest.php | 2 +-\n tests/Feature/Mcp/McpTestHelpersTrait.php | 19 +++++++++-\n tests/Unit/Component/ES/ChunkSizeTest.php | 50 +++++++++++++++++++++++++\n tests/Unit/Component/ES/Processor/DTOs/SelectionListTest.php | 27 ++++++++++----\n tests/Unit/Component/ES/Processor/TargetEntitiesSelectorTest.php | 39 +++++++++++---------\n 16 files changed, 557 insertions(+), 75 deletions(-)\n create mode 100644 app/Component/ES/ChunkSize.php\n create mode 100644 app/Mcp/Tools/GetMeTool.php\n create mode 100644 database/migrations/2026_05_13_124153_create_mcp_feature_flag.php\n create mode 100644 tests/Feature/Mcp/GetMeToolFeatureTest.php\n create mode 100644 tests/Unit/Component/ES/ChunkSizeTest.php\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20613-allow-owner-role-on-team-setup) $ git push\nEnumerating objects: 40, done.\nCounting objects: 100% (34/34), done.\nDelta compression using up to 8 threads\nCompressing objects: 100% (18/18), done.\nWriting objects: 100% (18/18), 1.58 KiB | 1.58 MiB/s, done.\nTotal 18 (delta 15), reused 0 (delta 0), pack-reused 0\nremote: Resolving deltas: 100% (15/15), completed with 13 local objects.\nTo github.com:jiminny/app.git\n 190239dfd4..ec1b261264 JY-20613-allow-owner-role-on-team-setup -> JY-20613-allow-owner-role-on-team-setup\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20613-allow-owner-role-on-team-setup) $ gbr\n* JY-20613-allow-owner-role-on-team-setup\n pipedrive-sdk-poc\n master\n JY-20903-update_activity-stage-on-opportunity-change\n JY-20904-fix-update-es-on-activity-command\n JY-20891-improve-sms-text-relays\n JY-20725-handle-HS-search-rate-limit\n JY-20818-move-AJ-reports-to-separated-datadog-metric\n JY-20773-fix-automated-reports-user-pilot-tracking\n JY-20157-AJ-report-not-send-notification\n JY-20508-notify-before-AJ-report-expiration\n JY-20372-ai-reports-promotion-pages\n JY-20352-sync-opportunities-without-a-local-owner-user-id-is-null\n JY-20738-debug-AJ-tracking-UP\n a\n JY-18909-automated-reports-ask-jiminny\n JY-20692-fix-integration-app-token-auth-response-change\n JY-20553-debug-crm-sync-delays\n JY-20698-fix-SF-activity-types-on-new-playbook\n JY-20543-AJ-report-tracking\n JY-20384-handle-auto-sync-with-no-access-to-event-type\n JY-20458-ask-jiminny-user-definitions\n JY-19666-fix-import-contacts-account-association\n JY-19666-HS-import-contacts-and-accounts-batch-job\n JY-20458-Ask-Jiminny-Reports\n JY-20200-batch-update-CRM-objects-Salesforce\n JY-19666-HS-webhooks-add-contact-and-company\n JY-20348-trigger-setup-DI-layout-on-team-creation\n JY-20326-refactor-info-message-in-command\n JY-20317-fix-auto-log-delay-issue-on-all-channels-disabled\n JY-20312-remove-on-update-change-last-synced-at-crm-configurations\n JY-20306-SF-skip-auto-sync-for-task-based-playbook\n JY-20192-remove-deleted-team-from-saved-search-filters\n JY-20197-import-opportunity-batch-job\n JY-20293-enable-status-field-for-pipedrive-deals\n JY-20191-remove-commands-interactive-prompts\n JY-20118-change-default-sync-strategy\n JY-20183-add-cache-on-auto-log-delay\n JY-20197-add-import-opportunity-batch-job\n 20118-hs-opportunity-make-webhook-strategy-default\n JY-20118-make-default-hs-opportunity-sync-strategy-webhook-based\n JY-20196-handle-opportunity-without-note\n JY-20118-improve-opportunity-import\n JY-20189-handle-activity-search-on-deleted-groups\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20613-allow-owner-role-on-team-setup) $ co JY-20725-handle-HS-search-rate-limit\nM\u0000\u0000\u0000\u0000\u0000\u0000\t.env.local\nM\u0000\u0000\u0000\u0000\u0000\u0000\tconfig/logging.php\nSwitched to branch 'JY-20725-handle-HS-search-rate-limit'\nYour branch is behind 'origin/JY-20725-handle-HS-search-rate-limit' by 439 commits, and can be fast-forwarded.\n (use \"git pull\" to update your local branch)\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20725-handle-HS-search-rate-limit) $ git pull\nUpdating 0f3e438941..bc6a3fce6b\nFast-forward\n .gitignore | 3 +-\n .windsurfrules | 168 ++---\n CLAUDE.md | 1 +\n app/Component/ActivityAnalytics/Service/CalculateTalkTimeOffsetsFromTranscription.php | 24 +-\n app/Component/AiActivityType/Services/AiActivityTypeEligibilityChecker.php | 28 +-\n app/Component/AiAutomation/Actions/PrepareUpdateDtoAction.php | 32 +-\n app/Component/AiAutomation/Services/CrmFillingEligibilityChecker.php | 47 ++\n app/Component/AiAutomation/TestCrmAiPromptService.php | 14 +\n app/Component/AiCallScoring/Services/AiCallScoringEligibilityChecker.php | 9 +\n app/Component/ES/ElasticSearchDocumentPartialUpdater.php | 13 +-\n app/Component/ES/ElasticSearchWorkerManager.php | 86 ---\n app/Component/ES/Processor/Actions/LoadDocumentsAction.php | 80 +--\n app/Component/ES/Processor/EntityQueryBuilder.php | 12 +-\n app/Component/ES/Processor/TargetEntitiesSelector.php | 2 +-\n app/Component/ES/Processor/Traits/SkipActivityTrait.php | 25 -\n app/Component/ES/Repositories/EsResetActivityRepository.php | 11 +-\n app/Component/ES/Worker/ActivityWorker.php | 73 --\n app/Component/ES/Worker/EntityWorker.php | 44 --\n app/Component/ES/Worker/WorkerAmount.php | 60 --\n app/Component/ES/Worker/WorkerInterface.php | 15 -\n app/Component/ElasticSearch/Contract/Searchable.php | 4 +\n app/Component/Encoding/Job/AnalyzeTrackChannelsJob.php | 20 +-\n app/Component/Encoding/Service/GenerateSpeechFromSilenceService.php | 85 ++-\n app/Component/FFMpeg/Services/GetSpeechIntervalsService.php | 18 +-\n app/Component/LanguageDetection/Services/FindSpeechTimeService.php | 22 +-\n app/Component/Nudge/Job/ProcessOrganisationImmediateNudgesJob.php | 218 +++++-\n app/Component/ParagraphBreaker/Services/TranscriptionParagraphsService.php | 4 +\n app/Component/ParticipantSpeech/Services/ParticipantSpeechesCreator.php | 33 +\n app/Component/ParticipantSpeech/Services/ParticipantSpeechesDeleter.php | 15 +\n app/Component/ParticipantSpeech/Services/ParticipantSpeechesProvider.php | 51 +-\n app/Component/ParticipantSpeech/Services/ParticipantSpeechesUploader.php | 36 +\n app/Component/ProphetAi/Exceptions/InsufficientTranscriptException.php | 11 +\n app/Component/Transcription/DTO/Http/Transcription/AssemblyAI/AssemblyAI/NoAssemblyIdException.php | 11 +\n app/Component/Transcription/DTO/Http/Transcription/AssemblyAI/AssemblyAI/SuccessfulResponse.php | 6 +\n app/Component/Transcription/DTO/Http/Transcription/TranscriptionIsNotCorrectFormatException.php | 11 +\n app/Component/Transcription/Diarization/Services/GetNormalizedParticipantSpeechesService.php | 23 +-\n app/Component/Transcription/Diarization/Source/MeetingBotSource.php | 16 +-\n app/Component/Transcription/TranscriptionProcessor/TranscriptionProcessor.php | 3 +\n app/Console/Commands/Activities/ActivityHardDeleteCommand.php | 4 +-\n app/Console/Commands/Activities/Copy.php | 2 +\n app/Console/Commands/Activities/SetupIntegration/TwilioSetS3RecordingCredentialsCommand.php | 119 ++++\n app/Console/Commands/Activities/UpdateActivityElasticSearchDocumentCommand.php | 10 +-\n app/Console/Commands/Crm/BackfillOpportunityUserFromAccountCommand.php | 126 ++++\n app/Console/Commands/Elasticsearch/AsyncUpdateEsActivities.php | 19 -\n app/Console/Commands/Elasticsearch/AsyncUpdateEsEntities.php | 50 +-\n app/Console/Commands/Elasticsearch/ResetAsyncElasticSearchCommand.php | 30 +-\n app/Console/Commands/GeckoExport/GeckoExportParticipantSpeechesCommand.php | 14 +-\n app/Console/Commands/IssueMcpTokenCommand.php | 84 +++\n app/Console/Commands/JiminnyDebugCommand.php | 7 +-\n app/Console/Commands/Tracks/CleanupActivityTracksCommand.php | 2 +-\n app/Console/Kernel.php | 6 +-\n app/Contracts/Services/Calendar/CalendarTrait.php | 80 ++-\n app/Events/AutomatedReports/AutomatedReportGenerated.php | 3 +\n app/Http/Controllers/API/AiCallScoring/AiScorecardController.php | 7 +-\n app/Http/Controllers/API/TeamAiAutomationController.php | 8 +\n app/Http/Controllers/CustomerApi/CustomerApiController.php | 4 +-\n app/Http/Controllers/Kiosk/ActivityController.php | 58 +-\n app/Http/Controllers/Settings/PlaybookController.php | 15 +-\n app/Http/Kernel.php | 23 +\n app/Http/Middleware/McpAuditMiddleware.php | 156 ++++\n app/Http/Middleware/McpTierMiddleware.php | 54 ++\n app/Http/Requests/API/V2/ZapierUploadActivityRequest.php | 28 +-\n app/Jobs/Activity/Import/ImportTwilioVideoSpeechesJob.php | 25 +-\n app/Jobs/Activity/Import/IsActivityReadyForProcessingJob.php | 10 +-\n app/Jobs/Calendar/SetupCalendarSync.php | 21 +-\n app/Jobs/ImportRemoteTrackJob.php | 96 ++-\n app/Jobs/Mailbox/EmailTextRelay.php | 15 +-\n app/Mcp/Contracts/McpCallRepositoryInterface.php | 30 +\n app/Mcp/DTO/ListCallsFilters.php | 29 +\n app/Mcp/Errors/McpError.php | 123 ++++\n app/Mcp/Repositories/McpActivityHydrator.php | 145 ++++\n app/Mcp/Repositories/McpCallRepository.php | 84 +++\n app/Mcp/Repositories/McpElasticCallRepository.php | 171 +++++\n app/Mcp/Servers/JiminnyServer.php | 38 +\n app/Mcp/Tools/ListCallsTool.php | 205 ++++++\n app/Models/Activity.php | 10 +-\n app/Models/Activity/Transcription.php | 17 +-\n app/Models/ElasticSearch/OpportunityElasticSearchTrait.php | 5 +\n app/Models/Participant.php | 1 +\n app/Providers/AppServiceProvider.php | 22 +\n app/Repositories/Crm/ContactRepository.php | 69 +-\n app/Repositories/ParticipantSpeechRepository.php | 13 +-\n app/Services/Activity/ParticipantsService.php | 19 +-\n app/Services/Activity/Twilio/S3RecordingCredentialsService.php | 82 +++\n app/Services/ActivityService.php | 21 +-\n app/Services/Calendar/CalendarActivityService.php | 46 ++\n app/Services/Calendar/Command/ImportParticipants.php | 1 +\n app/Services/Calendar/Command/MapActivityData.php | 106 +--\n app/Services/Calendar/GoogleCalendarService.php | 12 +-\n app/Services/Crm/Close/Processor/OpportunityProcessor.php | 2 +-\n app/Services/Crm/Close/Service.php | 22 +-\n app/Services/Crm/Copper/Service.php | 12 +-\n app/Services/Crm/Hubspot/Service.php | 154 +++-\n app/Services/Crm/Hubspot/ServiceTraits/OpportunitySyncTrait.php | 88 ++-\n app/Services/Crm/IntegrationApp/ServiceTraits/SyncCrmEntitiesTrait.php | 22 +-\n app/Services/Crm/Pipedrive/Service.php | 17 +-\n app/Services/Crm/Salesforce/Service.php | 42 +-\n app/Services/Mail/Office/EmailApiClient.php | 129 +---\n app/Services/RecallAI/Commands/ScheduleBotCommand.php | 39 +-\n app/Services/RecallAI/RecallAIService.php | 22 +-\n composer.json | 3 +-\n composer.lock | 87 ++-\n config/mcp.php | 23 +\n database/migrations/2026_04_30_120000_create_mcp_audit_log_table.php | 36 +\n docs/mcp/explorer/explorer.html | 697 ++++++++++++++++++\n docs/mcp/explorer/explorer.template.html | 697 ++++++++++++++++++\n docs/mcp/explorer/generate.js | 215 ++++++\n docs/mcp/explorer/tool-explorer-meta.json | 11 +\n docs/mcp/tools-list.json | 2536 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++\n docs/mcp/tools.md | 621 ++++++++++++++++\n front-end/package.json | 4 +-\n front-end/src/components/Settings/OrgSettings/AiAutomation/CrmFilling/TemplateFieldForm.vue | 28 +-\n front-end/src/components/Settings/OrgSettings/Playbooks/AddEditPlaybook.vue | 10 +\n front-end/src/components/playback/comments/ActivityComment.less | 10 +-\n front-end/src/components/shared/PromptTester/PromptTester.vue | 12 +-\n front-end/src/components/shared/__tests__/PromptTester.spec.js | 35 +\n front-end/src/components/shared/modals/EntityPickerModal/__tests__/useEntitiesCache.spec.ts | 37 +\n front-end/src/components/shared/modals/EntityPickerModal/useEntitiesCache.ts | 9 +\n front-end/yarn.lock | 16 +-\n phpstan-baseline.neon | 50 --\n routes/api.php | 11 +\n sonar-project.properties | 91 ++-\n tests/Feature/Component/Nudge/ProcessOrganisationImmediateNudgesJobTest.php | 534 ++++++++++++++\n tests/Feature/Jobs/ImportRemoteTrackJobTest.php | 283 +++++++-\n tests/Feature/Mcp/IssueMcpTokenCommandTest.php | 53 ++\n tests/Feature/Mcp/ListCallsToolElasticFeatureTest.php | 155 ++++\n tests/Feature/Mcp/ListCallsToolFeatureTest.php | 352 ++++++++++\n tests/Feature/Mcp/McpTestHelpersTrait.php | 77 ++\n tests/Feature/Services/Team/TeamDeleteHandlers/Retention/RetentionRepositoryHandlerTest.php | 1 +\n tests/Stubs/SentryStub.php | 18 +\n tests/Unit/Component/ActivityAnalytics/Service/CalculateTalkTimeOffsetFromTranscriptionTest.php | 28 +-\n tests/Unit/Component/AiActivityType/Services/AiActivityTypeEligibilityCheckerTest.php | 103 ++-\n tests/Unit/Component/AiAutomation/Actions/PrepareUpdateDtoActionTest.php | 91 +++\n tests/Unit/Component/AiAutomation/Services/CrmFillingEligibilityCheckerTest.php | 124 ++++\n tests/Unit/Component/AiAutomation/TestCrmAiPromptServiceTest.php | 67 +-\n tests/Unit/Component/AiCallScoring/Services/AiCallScoringEligibilityCheckerTest.php | 55 ++\n tests/Unit/Component/ES/ElasticSearchWorkerManagerTest.php | 135 ----\n tests/Unit/Component/ES/Processor/Actions/LoadDocumentsActionTest.php | 220 ++++++\n tests/Unit/Component/ES/Processor/EntityQueryBuilderTest.php | 21 +-\n tests/Unit/Component/ES/Processor/Traits/SkipActivityTraitTest.php | 51 --\n tests/Unit/Component/ES/Worker/ActivityWorkerTest.php | 174 -----\n tests/Unit/Component/ES/Worker/EntityWorkerTest.php | 97 ---\n tests/Unit/Component/ES/Worker/WorkerAmountTest.php | 116 ---\n tests/Unit/Component/Encoding/Job/AnalyzeTrackChannelsJobTest.php | 52 +-\n tests/Unit/Component/Encoding/Service/GenerateSpeechFromSilenceServiceTest.php | 171 ++---\n tests/Unit/Component/FFMpeg/Services/GetSpeechIntervalsTest.php | 36 +-\n tests/Unit/Component/LanguageDetection/Services/FindSpeechTimeServiceTest.php | 20 +-\n tests/Unit/Component/MobileSettings/MobileSettingsControllerTest.php | 5 +-\n tests/Unit/Component/ParticipantSpeech/Services/ParticipantSpeechesCreatorTest.php | 75 ++\n tests/Unit/Component/ParticipantSpeech/Services/ParticipantSpeechesDeleterTest.php | 63 ++\n tests/Unit/Component/ParticipantSpeech/Services/ParticipantSpeechesProviderTest.php | 134 ++++\n tests/Unit/Component/ParticipantSpeech/Services/ParticipantSpeechesUploaderTest.php | 57 ++\n tests/Unit/Component/Transcription/Diarization/Services/GetNormalizedParticipantSpeechesServiceTest.php | 51 +-\n tests/Unit/Component/Transcription/Diarization/Source/MeetingBotSourceTest.php | 29 +-\n tests/Unit/Contracts/Services/Calendar/CalendarTraitTest.php | 58 +-\n tests/Unit/Http/Controllers/Kiosk/ActivityControllerTest.php | 159 +++++\n tests/Unit/Jobs/Activity/Import/ImportTwilioVideoSpeechesJobTest.php | 22 +-\n tests/Unit/Jobs/Activity/Import/IsActivityReadyForProcessingJobTest.php | 26 +-\n tests/Unit/Jobs/Calendar/SetupCalendarSyncTest.php | 25 -\n tests/Unit/Services/Activity/ParticipantsServiceTest.php | 12 +-\n tests/Unit/Services/Activity/Twilio/S3RecordingCredentialsServiceTest.php | 180 +++++\n tests/Unit/Services/ActivityServiceTest.php | 132 ++++\n tests/Unit/Services/Calendar/CalendarActivityServiceTest.php | 150 +++-\n tests/Unit/Services/Calendar/Command/ImportParticipantsTest.php | 6 +-\n tests/Unit/Services/Calendar/Command/MapActivityDataTest.php | 78 +-\n tests/Unit/Services/Calendar/GoogleCalendarServiceTest.php | 116 +++\n tests/Unit/Services/Crm/Close/ServiceTest.php | 165 +++++\n tests/Unit/Services/Crm/Hubspot/ServiceTest.php | 272 ++++++-\n tests/Unit/Services/Crm/Hubspot/ServiceTraits/OpportunitySyncTest.php | 25 +-\n tests/Unit/Services/Crm/Hubspot/ServiceTraits/OpportunitySyncTraitMatchActivitiesTest.php | 3 +-\n tests/Unit/Services/Crm/IntegrationApp/ServiceTraits/SyncCrmEntitiesTraitOpportunitiesTest.php | 40 ++\n tests/Unit/Services/Crm/Pipedrive/ImportOpportunityMatchActivitiesTest.php | 2 +\n tests/Unit/Services/Crm/Salesforce/ServiceTest.php | 139 ++++\n tests/Unit/Services/Mail/Office/EmailApiClientTest.php | 195 ++---\n tests/Unit/Services/RecallAI/RecallAIServiceTest.php | 24 +-\n 175 files changed, 12562 insertions(+), 2162 deletions(-)\n create mode 120000 CLAUDE.md\n create mode 100644 app/Component/AiAutomation/Services/CrmFillingEligibilityChecker.php\n delete mode 100644 app/Component/ES/ElasticSearchWorkerManager.php\n delete mode 100644 app/Component/ES/Processor/Traits/SkipActivityTrait.php\n delete mode 100644 app/Component/ES/Worker/ActivityWorker.php\n delete mode 100644 app/Component/ES/Worker/EntityWorker.php\n delete mode 100644 app/Component/ES/Worker/WorkerAmount.php\n delete mode 100644 app/Component/ES/Worker/WorkerInterface.php\n create mode 100644 app/Component/ProphetAi/Exceptions/InsufficientTranscriptException.php\n create mode 100644 app/Component/Transcription/DTO/Http/Transcription/AssemblyAI/AssemblyAI/NoAssemblyIdException.php\n create mode 100644 app/Component/Transcription/DTO/Http/Transcription/TranscriptionIsNotCorrectFormatException.php\n create mode 100644 app/Console/Commands/Activities/SetupIntegration/TwilioSetS3RecordingCredentialsCommand.php\n create mode 100644 app/Console/Commands/Crm/BackfillOpportunityUserFromAccountCommand.php\n delete mode 100644 app/Console/Commands/Elasticsearch/AsyncUpdateEsActivities.php\n create mode 100644 app/Console/Commands/IssueMcpTokenCommand.php\n create mode 100644 app/Http/Middleware/McpAuditMiddleware.php\n create mode 100644 app/Http/Middleware/McpTierMiddleware.php\n create mode 100644 app/Mcp/Contracts/McpCallRepositoryInterface.php\n create mode 100644 app/Mcp/DTO/ListCallsFilters.php\n create mode 100644 app/Mcp/Errors/McpError.php\n create mode 100644 app/Mcp/Repositories/McpActivityHydrator.php\n create mode 100644 app/Mcp/Repositories/McpCallRepository.php\n create mode 100644 app/Mcp/Repositories/McpElasticCallRepository.php\n create mode 100644 app/Mcp/Servers/JiminnyServer.php\n create mode 100644 app/Mcp/Tools/ListCallsTool.php\n create mode 100644 app/Services/Activity/Twilio/S3RecordingCredentialsService.php\n create mode 100644 config/mcp.php\n create mode 100644 database/migrations/2026_04_30_120000_create_mcp_audit_log_table.php\n create mode 100644 docs/mcp/explorer/explorer.html\n create mode 100644 docs/mcp/explorer/explorer.template.html\n create mode 100644 docs/mcp/explorer/generate.js\n create mode 100644 docs/mcp/explorer/tool-explorer-meta.json\n create mode 100644 docs/mcp/tools-list.json\n create mode 100644 docs/mcp/tools.md\n create mode 100644 front-end/src/components/shared/modals/EntityPickerModal/__tests__/useEntitiesCache.spec.ts\n create mode 100644 tests/Feature/Component/Nudge/ProcessOrganisationImmediateNudgesJobTest.php\n create mode 100644 tests/Feature/Mcp/IssueMcpTokenCommandTest.php\n create mode 100644 tests/Feature/Mcp/ListCallsToolElasticFeatureTest.php\n create mode 100644 tests/Feature/Mcp/ListCallsToolFeatureTest.php\n create mode 100644 tests/Feature/Mcp/McpTestHelpersTrait.php\n create mode 100644 tests/Stubs/SentryStub.php\n create mode 100644 tests/Unit/Component/AiAutomation/Services/CrmFillingEligibilityCheckerTest.php\n delete mode 100644 tests/Unit/Component/ES/ElasticSearchWorkerManagerTest.php\n create mode 100644 tests/Unit/Component/ES/Processor/Actions/LoadDocumentsActionTest.php\n delete mode 100644 tests/Unit/Component/ES/Processor/Traits/SkipActivityTraitTest.php\n delete mode 100644 tests/Unit/Component/ES/Worker/ActivityWorkerTest.php\n delete mode 100644 tests/Unit/Component/ES/Worker/EntityWorkerTest.php\n delete mode 100644 tests/Unit/Component/ES/Worker/WorkerAmountTest.php\n create mode 100644 tests/Unit/Component/ParticipantSpeech/Services/ParticipantSpeechesCreatorTest.php\n create mode 100644 tests/Unit/Http/Controllers/Kiosk/ActivityControllerTest.php\n create mode 100644 tests/Unit/Services/Activity/Twilio/S3RecordingCredentialsServiceTest.php\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20725-handle-HS-search-rate-limit) $ git status\nOn branch master\nYour branch is behind 'origin/master' by 114 commits, and can be fast-forwarded.\n (use \"git pull\" to update your local branch)\n\nChanges not staged for commit:\n (use \"git add <file>...\" to update what will be committed)\n (use \"git restore <file>...\" to discard changes in working directory)\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tmodified: .env.local\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tmodified: app/Component/SCIM/Constants.php\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tmodified: app/Component/SCIM/ScimProvisioning.php\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tmodified: app/Component/Twilio/Conference/ConferenceManager/SoftPhoneManager.php\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tmodified: app/Console/Commands/JiminnyDebugCommand.php\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tmodified: app/DTO/SCIM/AAD/Request/CoreUserRequest.php\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tmodified: app/DTO/SCIM/AAD/Response/CoreUser.php\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tmodified: app/Services/Telephony/TextMessagingService.php\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tmodified: config/logging.php\n\nUntracked files:\n (use \"git add <file>...\" to include in what will be committed)\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\t.env.nikilocal\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\t.env.other\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tWEBHOOK_FILTERING_IMPLEMENTATION.md\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tapp/Component/SCIM/Mutators/Attributes/User/RoleAttr.php\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tapp/Console/Commands/Crm/Hubspot/SimulateWebhooksCommand.php\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tapp/Console/Commands/Reports/CreateMockAskJiminnyReportResultCommand.php\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tapp/Rules/ListenerRoleCannotHaveAdminOrManagerPermissionRule.php\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tids.txt\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tpublic/favicon.ico\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\traw_sql_query.sql\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\ttests/Unit/Component/SCIM/Mutators/Attributes/User/RoleAttrTest.php\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\ttests/Unit/Policies/CanAccessAiReportsTest.php\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\ttests/Unit/Rules/ListenerRoleCannotHaveAdminOrManagerPermissionRuleTest.php\n\nno changes added to commit (use \"git add\" and/or \"git commit -a\")\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (master) $ git pull\nremote: Enumerating objects: 306, done.\nremote: Counting objects: 100% (299/299), done.\nremote: Compressing objects: 100% (183/183), done.\nremote: Total 306 (delta 213), reused 171 (delta 116), pack-reused 7 (from 1)\nReceiving objects: 100% (306/306), 80.12 KiB | 1000.00 KiB/s, done.\nResolving deltas: 100% (213/213), completed with 53 local objects.\nFrom github.com:jiminny/app\n 90bca4e4b2..5604af40cf master -> origin/master\n 4e7078fd8b..0b8343d179 JY-18091-upgrade-to-php-8-5 -> origin/JY-18091-upgrade-to-php-8-5\n 098eeaa087..d5a447e492 JY-20613-allow-owner-role-on-team-setup -> origin/JY-20613-allow-owner-role-on-team-setup\n c3a76ace91..af65249d0f JY-20749-user-can-view-recorded-meetings -> origin/JY-20749-user-can-view-recorded-meetings\n d94a285ae7..7ce96cb5fe JY-20808-low-priority-indexing-queue -> origin/JY-20808-low-priority-indexing-queue\n * [new branch] JY-20842-remove-partial-updater -> origin/JY-20842-remove-partial-updater\n * [new branch] JY-20920-fix-participant-flip -> origin/JY-20920-fix-participant-flip\n * [new branch] secfix/npm-20260519 -> origin/secfix/npm-20260519\nUpdating cb4ebf0c36..5604af40cf\nFast-forward\n app/Component/ES/ChunkSize.php | 54 +++++++++++++++++++\n app/Component/ES/Processor/DTOs/SelectionList.php | 4 +-\n app/Component/ES/Processor/TargetEntitiesSelector.php | 19 ++++---\n app/Component/MeetingBot/Service/ParticipantMatcher.php | 46 ++++++++++++----\n app/Exceptions/RateLimitException.php | 19 ++++++-\n app/Http/Middleware/McpTierMiddleware.php | 27 ++--------\n app/Jobs/Crm/MatchActivityCrmData.php | 47 ++++++++++++----\n app/Jobs/Middleware/HandleHubspotRateLimit.php | 42 +++++++++++++++\n app/Mcp/Servers/JiminnyServer.php | 2 +\n app/Mcp/Tools/GetMeTool.php | 157 +++++++++++++++++++++++++++++++++++++++++++++++++++++\n app/Models/Feature/FeatureEnum.php | 1 +\n app/Services/Activity/HubSpot/ProviderResolver.php | 4 +-\n app/Services/Activity/HubSpot/ProviderResolverInterface.php | 2 +-\n app/Services/Activity/HubSpot/Providers/Provider.php | 2 +-\n app/Services/Activity/HubSpot/Providers/ProviderKixie.php | 2 +-\n app/Services/Activity/HubSpot/Providers/ProviderOrum.php | 2 +-\n app/Services/Activity/HubSpot/Providers/ProviderTwilio.php | 2 +-\n app/Services/Activity/HubSpot/Providers/ProviderTwilioFlex.php | 5 +-\n app/Services/Activity/HubSpot/Service.php | 97 +++++++++++++++++++++++++++------\n app/Services/Crm/Hubspot/Client.php | 132 +++++++++++++++++++++++++++++++++++++++++++++\n app/Services/Crm/Hubspot/HubspotClientInterface.php | 15 ++++++\n app/Services/Crm/Hubspot/Pagination/HubspotPaginationService.php | 21 ++++----\n app/Services/Crm/Hubspot/Pagination/PaginationState.php | 2 +-\n database/migrations/2026_05_13_124153_create_mcp_feature_flag.php | 25 +++++++++\n tests/Feature/Mcp/GetMeToolFeatureTest.php | 140 +++++++++++++++++++++++++++++++++++++++++++++++\n tests/Feature/Mcp/ListCallsToolFeatureTest.php | 2 +-\n tests/Feature/Mcp/McpTestHelpersTrait.php | 19 ++++++-\n tests/Unit/Component/ES/ChunkSizeTest.php | 50 +++++++++++++++++\n tests/Unit/Component/ES/Processor/DTOs/SelectionListTest.php | 27 +++++++---\n tests/Unit/Component/ES/Processor/TargetEntitiesSelectorTest.php | 39 ++++++++------\n tests/Unit/Component/MeetingBot/Service/ParticipantMatcherTest.php | 68 ++++++++++++++++++++++-\n tests/Unit/Exceptions/RateLimitExceptionTest.php | 56 +++++++++++++++++++\n tests/Unit/Jobs/Crm/MatchActivityCrmDataTest.php | 8 +--\n tests/Unit/Jobs/Middleware/HandleHubspotRateLimitTest.php | 151 +++++++++++++++++++++++++++++++++++++++++++++++++++\n tests/Unit/Services/Activity/HubSpot/ServiceTest.php | 109 +++++++++++++++++++++++++++++++++++++\n tests/Unit/Services/Crm/Hubspot/ClientTest.php | 250 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++\n tests/Unit/Services/Crm/Hubspot/Pagination/HubspotPaginationServiceTest.php | 283 +++++++++++++++++++++---------------------------------------------------------------------------\n 37 files changed, 1587 insertions(+), 344 deletions(-)\n create mode 100644 app/Component/ES/ChunkSize.php\n create mode 100644 app/Jobs/Middleware/HandleHubspotRateLimit.php\n create mode 100644 app/Mcp/Tools/GetMeTool.php\n create mode 100644 database/migrations/2026_05_13_124153_create_mcp_feature_flag.php\n create mode 100644 tests/Feature/Mcp/GetMeToolFeatureTest.php\n create mode 100644 tests/Unit/Component/ES/ChunkSizeTest.php\n create mode 100644 tests/Unit/Exceptions/RateLimitExceptionTest.php\n create mode 100644 tests/Unit/Jobs/Middleware/HandleHubspotRateLimitTest.php\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (master) $ git pull\nAlready up to date.\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (master) $ co -b JY-20676-delete-report-related-objects\nSwitched to a new branch 'JY-20676-delete-report-related-objects'\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20676-delete-report-related-objects) $ csfix\ndocker exec -it docker_lamp_1 ./vendor/bin/php-cs-fixer fix --config=.php-cs-fixer.dist.php -v --using-cache=no --diff \nPHP CS Fixer 3.87.1 Alexander by Fabien Potencier, Dariusz Ruminski and contributors.\nPHP runtime: 8.3.30\nRunning analysis on 7 cores with 10 files per process.\nParallel runner is an experimental feature and may be unstable, use it at your own risk. Feedback highly appreciated!\nLoaded config default from \".php-cs-fixer.dist.php\".\n 5690/5690 [▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓] 100%\n\n 1) app/Console/Commands/JiminnyDebugCommand.php (statement_indentation, blank_line_before_statement)\n ---------- begin diff ----------\n--- /home/jiminny/app/Console/Commands/JiminnyDebugCommand.php\n+++ /home/jiminny/app/Console/Commands/JiminnyDebugCommand.php\n@@ -23,6 +23,7 @@\n \n if ($action === 'redis-set') {\n $this->testRedisSet();\n+\n return;\n }\n \n@@ -45,7 +46,7 @@\n $ttl = 60;\n \n try {\n-// $result = Redis::set($testKey, $testValue, 'EX', $ttl, 'NX');\n+ // $result = Redis::set($testKey, $testValue, 'EX', $ttl, 'NX');\n $result = Redis::set($testKey, $testValue, ['nx', 'ex' => $ttl]);\n \n if ($result) {\n\n ----------- end diff -----------\n\n\nFixed 1 of 5690 files in 50.673 seconds, 67.00 MB memory used\n\nWhat's next:\n Try Docker Debug for seamless, persistent debugging tools in any container or image → docker debug docker_lamp_1\n Learn more at https://docs.docker.com/go/debug-cli/\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20676-delete-report-related-objects) $ ;xd\ndocker exec -it docker_lamp_1 bash -c \"mv /usr/local/etc/php/conf.d/xdebug.ini ~/xdebug.ini\"\n\nWhat's next:\n Try Docker Debug for seamless, persistent debugging tools in any container or image → docker debug docker_lamp_1\n Learn more at https://docs.docker.com/go/debug-cli/\ndocker exec -it docker_lamp_1 supervisorctl restart all\njiminny-worker-processing-2:jiminny-worker-processing-2_00: stopped\njiminny-worker-processing-3:jiminny-worker-processing-3_00: stopped\njiminny-worker-processing-4:jiminny-worker-processing-4_00: stopped\njiminny-worker-processing-5:jiminny-worker-processing-5_00: stopped\njiminny-worker-processing-delayed:jiminny-worker-processing-delayed_00: stopped\nworker-analytics:worker-analytics_00: stopped\nworker-crm-update:worker-crm-update_00: stopped\nworker-download:worker-download_00: stopped\nworker-nudges:worker-nudges_00: stopped\nworker-calendar:worker-calendar_00: stopped\nworker-audio:worker-audio_00: stopped\njiminny-worker-processing-1:jiminny-worker-processing-1_00: stopped\nworker:worker_00: stopped\nworker-conferences:worker-conferences_00: stopped\nworker-crm-sync:worker-crm-sync_00: stopped\nworker-emails:worker-emails_00: stopped\nworker-es-update:worker-es-update_00: stopped\nartisan-schedule:artisan-schedule_00: stopped\nartisan-schedule:artisan-schedule_00: started\njiminny-worker-processing-1:jiminny-worker-processing-1_00: started\njiminny-worker-processing-2:jiminny-worker-processing-2_00: started\njiminny-worker-processing-3:jiminny-worker-processing-3_00: started\njiminny-worker-processing-4:jiminny-worker-processing-4_00: started\njiminny-worker-processing-5:jiminny-worker-processing-5_00: started\njiminny-worker-processing-delayed:jiminny-worker-processing-delayed_00: started\nworker:worker_00: started\nworker-analytics:worker-analytics_00: started\nworker-audio:worker-audio_00: started\nworker-calendar:worker-calendar_00: started\nworker-conferences:worker-conferences_00: started\nworker-crm-sync:worker-crm-sync_00: started\nworker-crm-update:worker-crm-update_00: started\nworker-download:worker-download_00: started\nworker-emails:worker-emails_00: started\nworker-es-update:worker-es-update_00: started\nworker-nudges:worker-nudges_00: started\n\nWhat's next:\n Try Docker Debug for seamless, persistent debugging tools in any container or image → docker debug docker_lamp_1\n Learn more at https://docs.docker.com/go/debug-cli/\ndocker exec -it docker_lamp_1 php -v\nPHP 8.3.30 (cli) (built: Mar 16 2026 22:32:32) (NTS)\nCopyright (c) The PHP Group\nZend Engine v4.3.30, Copyright (c) Zend Technologies\n with Zend OPcache v8.3.30, Copyright (c), by Zend Technologies\n\nWhat's next:\n Try Docker Debug for seamless, persistent debugging tools in any container or image → docker debug docker_lamp_1\n Learn more at https://docs.docker.com/go/debug-cli/\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20676-delete-report-related-objects) $ git status\nOn branch JY-20676-delete-report-related-objects\nChanges not staged for commit:\n (use \"git add <file>...\" to update what will be committed)\n (use \"git restore <file>...\" to discard changes in working directory)\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tmodified: .env.local\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tmodified: app/Console/Commands/JiminnyDebugCommand.php\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tmodified: config/logging.php\n\nUntracked files:\n (use \"git add <file>...\" to include in what will be committed)\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\t.env.nikilocal\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\t.env.other\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tWEBHOOK_FILTERING_IMPLEMENTATION.md\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tapp/Console/Commands/Crm/Hubspot/SimulateWebhooksCommand.php\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tapp/Console/Commands/Reports/CreateMockAskJiminnyReportResultCommand.php\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tids.txt\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tpublic/favicon.ico\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\traw_sql_query.sql\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\ttests/Unit/Policies/CanAccessAiReportsTest.php\n\nno changes added to commit (use \"git add\" and/or \"git commit -a\")\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20676-delete-report-related-objects) $ git push -u origin JY-20676-delete-report-related-objects\nEnumerating objects: 45, done.\nCounting objects: 100% (45/45), done.\nDelta compression using up to 8 threads\nCompressing objects: 100% (24/24), done.\nWriting objects: 100% (24/24), 3.62 KiB | 3.62 MiB/s, done.\nTotal 24 (delta 19), reused 0 (delta 0), pack-reused 0\nremote: Resolving deltas: 100% (19/19), completed with 19 local objects.\nremote: \nremote: Create a pull request for 'JY-20676-delete-report-related-objects' on GitHub by visiting:\nremote: https://github.com/jiminny/app/pull/new/JY-20676-delete-report-related-objects\nremote: \nTo github.com:jiminny/app.git\n * [new branch] JY-20676-delete-report-related-objects -> JY-20676-delete-report-related-objects\nbranch 'JY-20676-delete-report-related-objects' set up to track 'origin/JY-20676-delete-report-related-objects'.\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20676-delete-report-related-objects) $ csfix\ndocker exec -it docker_lamp_1 ./vendor/bin/php-cs-fixer fix --config=.php-cs-fixer.dist.php -v --using-cache=no --diff \nPHP CS Fixer 3.87.1 Alexander by Fabien Potencier, Dariusz Ruminski and contributors.\nPHP runtime: 8.3.30\nRunning analysis on 7 cores with 10 files per process.\nParallel runner is an experimental feature and may be unstable, use it at your own risk. Feedback highly appreciated!\nLoaded config default from \".php-cs-fixer.dist.php\".\n 5690/5690 [▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓] 100%\n\n 1) app/Http/Controllers/API/V2/AskJiminnyReportsController.php (blank_line_before_statement)\n ---------- begin diff ----------\n--- /home/jiminny/app/Http/Controllers/API/V2/AskJiminnyReportsController.php\n+++ /home/jiminny/app/Http/Controllers/API/V2/AskJiminnyReportsController.php\n@@ -140,6 +140,7 @@\n if ($enabled && $report->isAskJiminnyReport() && ! $report->canExecute()) {\n $error = 'This report is missing a saved search or prompt. ' .\n 'Edit the report to complete the setup before enabling it.';\n+\n return new JsonResponse(\n ['error' => $error],\n Response::HTTP_UNPROCESSABLE_ENTITY\n\n ----------- end diff -----------\n\n\nFixed 1 of 5690 files in 71.757 seconds, 60.00 MB memory used\n\nWhat's next:\n Try Docker Debug for seamless, persistent debugging tools in any container or image → docker debug docker_lamp_1\n Learn more at https://docs.docker.com/go/debug-cli/\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20676-delete-report-related-objects) $ git pull\nremote: Enumerating objects: 158, done.\nremote: Counting objects: 100% (103/103), done.\nremote: Compressing objects: 100% (37/37), done.\nremote: Total 158 (delta 80), reused 74 (delta 66), pack-reused 55 (from 3)\nReceiving objects: 100% (158/158), 80.59 KiB | 982.00 KiB/s, done.\nResolving deltas: 100% (85/85), completed with 45 local objects.\nFrom github.com:jiminny/app\n 02a33811ee..c6ce5e2440 JY-20676-delete-report-related-objects -> origin/JY-20676-delete-report-related-objects\n 7ce96cb5fe..6c59f04358 JY-20808-low-priority-indexing-queue -> origin/JY-20808-low-priority-indexing-queue\n 3906a9238a..2b5e6ea62b JY-20835-mcp-enable-users-to-get-a-list-of-deals-and-their-details -> origin/JY-20835-mcp-enable-users-to-get-a-list-of-deals-and-their-details\n 5604af40cf..ea3519f0e2 master -> origin/master\n * [new branch] switch-eu-assembly -> origin/switch-eu-assembly\nUpdating 02a33811ee..c6ce5e2440\nFast-forward\n app/Component/ES/ElasticSearchDocumentPartialUpdater.php | 48 ---\n app/Component/ParticipantSpeech/Services/ParticipantAttributionService.php | 4 +-\n app/Component/Settings/AutoScoring/Services/UpdateAutoScoreService.php | 20 +-\n app/Component/Transcription/Service/StorageService.php | 8 +-\n front-end/package.json | 2 +-\n front-end/src/components/DealInsights/Modals/AskAnythingModal.vue | 23 ++\n front-end/src/components/shared/AskAnything/AskAnythingPromptFormItem.vue | 2 +\n front-end/src/components/shared/AskAnything/AskAnythingSettingsDrawer.vue | 23 +-\n front-end/src/components/shared/AskAnything/__mocks__/AskAnythingSettingsDrawer.mocks.js | 1 +\n front-end/src/components/shared/AskAnything/__tests__/AskAnythingSettingsDrawer.spec.js | 135 ++++---\n front-end/src/components/shared/AskAnything/__tests__/__snapshots__/AskAnythingSettingsDrawer.spec.js.html | 1235 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++\n front-end/src/components/shared/AskAnything/__tests__/__snapshots__/AskAnythingSettingsDrawer.spec.js.snap | 1382 ----------------------------------------------------------------\n front-end/src/components/shared/AskAnything/prompts.js | 1 +\n front-end/src/components/shared/AskAnything/useAskAnything.js | 1 +\n front-end/yarn.lock | 8 +-\n tests/Unit/Component/ES/ElasticSearchDocumentPartialUpdaterTest.php | 42 --\n tests/Unit/Component/Settings/AutoScoring/Services/UpdateAutoScoreServiceTest.php | 86 ++--\n tests/Unit/Component/Transcription/Service/StorageServiceTest.php | 29 +-\n 18 files changed, 1448 insertions(+), 1602 deletions(-)\n delete mode 100644 app/Component/ES/ElasticSearchDocumentPartialUpdater.php\n create mode 100644 front-end/src/components/shared/AskAnything/__tests__/__snapshots__/AskAnythingSettingsDrawer.spec.js.html\n delete mode 100644 front-end/src/components/shared/AskAnything/__tests__/__snapshots__/AskAnythingSettingsDrawer.spec.js.snap\n delete mode 100644 tests/Unit/Component/ES/ElasticSearchDocumentPartialUpdaterTest.php\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20676-delete-report-related-objects) $ csfix\ndocker exec -it docker_lamp_1 ./vendor/bin/php-cs-fixer fix --config=.php-cs-fixer.dist.php -v --using-cache=no --diff \nPHP CS Fixer 3.87.1 Alexander by Fabien Potencier, Dariusz Ruminski and contributors.\nPHP runtime: 8.3.30\nRunning analysis on 7 cores with 10 files per process.\nParallel runner is an experimental feature and may be unstable, use it at your own risk. Feedback highly appreciated!\nLoaded config default from \".php-cs-fixer.dist.php\".\n 5688/5688 [▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓] 100%\n\n\nFixed 0 of 5688 files in 79.904 seconds, 60.00 MB memory used\n\nWhat's next:\n Try Docker Debug for seamless, persistent debugging tools in any container or image → docker debug docker_lamp_1\n Learn more at https://docs.docker.com/go/debug-cli/\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20676-delete-report-related-objects) $","is_focused":true},{"role":"AXRadioButton","text":"DOCKER","depth":2,"bounds":{"left":0.27027926,"top":1.0,"width":0.094913565,"height":-0.042298436},"on_screen":true,"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.27227393,"top":1.0,"width":0.005319149,"height":-0.04549086},"on_screen":true,"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"DEV (docker)","depth":2,"bounds":{"left":0.36519283,"top":1.0,"width":0.094913565,"height":-0.042298436},"on_screen":true,"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.3671875,"top":1.0,"width":0.005319149,"height":-0.04549086},"on_screen":true,"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"APP (-zsh)","depth":2,"bounds":{"left":0.46010637,"top":1.0,"width":0.09474734,"height":-0.042298436},"on_screen":true,"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.46210107,"top":1.0,"width":0.005319149,"height":-0.04549086},"on_screen":true,"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"screenpipe\"","depth":2,"bounds":{"left":0.55485374,"top":1.0,"width":0.09474734,"height":-0.042298436},"on_screen":true,"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.5568484,"top":1.0,"width":0.005319149,"height":-0.04549086},"on_screen":true,"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"-zsh","depth":2,"bounds":{"left":0.64960104,"top":1.0,"width":0.09474734,"height":-0.042298436},"on_screen":true,"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.6515958,"top":1.0,"width":0.005319149,"height":-0.04549086},"on_screen":true,"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"⌥⌘1","depth":1,"bounds":{"left":0.7307181,"top":1.0,"width":0.01861702,"height":-0.023144484},"on_screen":true,"automation_id":"_NS:8","role_description":"text"},{"role":"AXStaticText","text":"APP (-zsh)","depth":1,"bounds":{"left":0.49900267,"top":1.0,"width":0.024601065,"height":-0.02394259},"on_screen":true,"role_description":"text"}]...
|
2802650493718167367
|
-1358120912881272742
|
idle
|
accessibility
|
NULL
|
Last login: Mon May 18 09:17:28 on ttys007
Poetry Last login: Mon May 18 09:17:28 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 (pipedrive-sdk-poc) $ co master
error: Your local changes to the following files would be overwritten by checkout:
PIPEDRIVE_V2_MIGRATION_TICKETS.md
Please commit your changes or stash them before you switch branches.
Aborting
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (pipedrive-sdk-poc) $ git pull
remote: Enumerating objects: 1047, done.
remote: Counting objects: 100% (832/832), done.
remote: Compressing objects: 100% (298/298), done.
remote: Total 1047 (delta 634), reused 596 (delta 534), pack-reused 215 (from 3)
Receiving objects: 100% (1047/1047), 353.16 KiB | 1.56 MiB/s, done.
Resolving deltas: 100% (687/687), completed with 107 local objects.
From github.com:jiminny/app
907c54896c..34656c53ed pipedrive-sdk-poc -> origin/pipedrive-sdk-poc
03325ec50f..4e7078fd8b JY-18091-upgrade-to-php-8-5 -> origin/JY-18091-upgrade-to-php-8-5
e7d231e163..bc6a3fce6b JY-20725-handle-HS-search-rate-limit -> origin/JY-20725-handle-HS-search-rate-limit
* [new branch] JY-20749-user-can-view-recorded-meetings -> origin/JY-20749-user-can-view-recorded-meetings
98ca281a04..e0351be069 JY-20808-low-priority-indexing-queue -> origin/JY-20808-low-priority-indexing-queue
569abb5149..3906a9238a JY-20835-mcp-enable-users-to-get-a-list-of-deals-and-their-details -> origin/JY-20835-mcp-enable-users-to-get-a-list-of-deals-and-their-details
ad6c2a86e8..50eb6afba9 JY-20846-mcp-enable-the-ai-to-know-details-about-the-user -> origin/JY-20846-mcp-enable-the-ai-to-know-details-about-the-user
* [new branch] JY-20893-chunk-control-per-update-target -> origin/JY-20893-chunk-control-per-update-target
31c62924a5..cb4ebf0c36 master -> origin/master
Updating 907c54896c..34656c53ed
Fast-forward
PIPEDRIVE_V2_MIGRATION_TICKETS.md | 52 ++++++++++++++++++++++++++++++++++++++++++++++++++++
1 file changed, 52 insertions(+)
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (pipedrive-sdk-poc) $ co master
M .env.local
M config/logging.php
Switched to branch 'master'
Your branch is behind 'origin/master' by 31 commits, and can be fast-forwarded.
(use "git pull" to update your local branch)
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (master) $ git pull
Updating 31c62924a5..cb4ebf0c36
Fast-forward
app/Component/ES/Processor/Traits/SelectEntityListTrait.php | 20 ------
app/Services/Calendar/CalendarActivityService.php | 46 +++++++++++++
app/Services/Calendar/Command/MapActivityData.php | 106 +++-------------------------
docs/mcp/explorer/explorer.html | 104 +++++++++++++++++++++++++---
docs/mcp/explorer/explorer.template.html | 102 ++++++++++++++++++++++++---
docs/mcp/tools-list.json | 373 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++-------
docs/mcp/tools.md | 117 +++++++++++++++++++++++--------
tests/Unit/Component/ES/AsyncUpdateElasticSearchTest.php | 16 +----
tests/Unit/Component/ES/Listeners/UpdateMultipleTargetsListenerTest.php | 10 ---
tests/Unit/Component/ES/Listeners/UpdateSingleTargetListenerTest.php | 6 --
tests/Unit/Component/ES/Processor/TargetEntitiesSelectorTest.php | 9 ---
tests/Unit/Component/ES/Processor/Traits/SelectEntityListTraitTest.php | 15 ++--
tests/Unit/Component/ES/UpdateProcessManagerTest.php | 2 -
tests/Unit/Services/Calendar/CalendarActivityServiceTest.php | 150 ++++++++++++++++++++++++++++++++++++++--
tests/Unit/Services/Calendar/Command/MapActivityDataTest.php | 78 ++-------------------
15 files changed, 832 insertions(+), 322 deletions(-)
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (master) $ co -b JY-20613-allow-owner-role-on-team-setup
Switched to a new branch 'JY-20613-allow-owner-role-on-team-setup'
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20613-allow-owner-role-on-team-setup) $ csfix
docker exec -it docker_lamp_1 ./vendor/bin/php-cs-fixer fix --config=.php-cs-fixer.dist.php -v --using-cache=no --diff
PHP CS Fixer 3.87.1 Alexander by Fabien Potencier, Dariusz Ruminski and contributors.
PHP runtime: 8.3.30
Running 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!
Loaded config default from ".php-cs-fixer.dist.php".
5682/5682 [▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓] 100%
Fixed 0 of 5682 files in 56.978 seconds, 67.00 MB memory used
What's next:
Try Docker Debug for seamless, persistent debugging tools in any container or image → docker debug docker_lamp_1
Learn more at [URL_WITH_CREDENTIALS] ~/jiminny/app (JY-20613-allow-owner-role-on-team-setup) $ csfix
docker exec -it docker_lamp_1 ./vendor/bin/php-cs-fixer fix --config=.php-cs-fixer.dist.php -v --using-cache=no --diff
PHP CS Fixer 3.87.1 Alexander by Fabien Potencier, Dariusz Ruminski and contributors.
PHP runtime: 8.3.30
Running 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!
Loaded config default from ".php-cs-fixer.dist.php".
5682/5682 [▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓] 100%
Fixed 0 of 5682 files in 49.910 seconds, 60.00 MB memory used
What's next:
Try Docker Debug for seamless, persistent debugging tools in any container or image → docker debug docker_lamp_1
Learn more at [URL_WITH_CREDENTIALS] ~/jiminny/app (JY-20613-allow-owner-role-on-team-setup) $ git pull
remote: Enumerating objects: 248, done.
remote: Counting objects: 100% (128/128), done.
remote: Compressing objects: 100% (23/23), done.
remote: Total 59 (delta 43), reused 44 (delta 33), pack-reused 0 (from 0)
Unpacking objects: 100% (59/59), 10.48 KiB | 228.00 KiB/s, done.
From github.com:jiminny/app
b7df560451..190239dfd4 JY-20613-allow-owner-role-on-team-setup -> origin/JY-20613-allow-owner-role-on-team-setup
e0351be069..d94a285ae7 JY-20808-low-priority-indexing-queue -> origin/JY-20808-low-priority-indexing-queue
* [new branch] JY-20920-fix-participant-matcher -> origin/JY-20920-fix-participant-matcher
cb4ebf0c36..90bca4e4b2 master -> origin/master
Merge made by the 'ort' strategy.
app/Component/ES/ChunkSize.php | 54 +++++++++++++++++++++++++++
app/Component/ES/Processor/DTOs/SelectionList.php | 4 +-
app/Component/ES/Processor/TargetEntitiesSelector.php | 19 ++++++----
app/Http/Middleware/McpTierMiddleware.php | 27 +++-----------
app/Mcp/Servers/JiminnyServer.php | 2 +
app/Mcp/Tools/GetMeTool.php | 157 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
app/Models/Feature/FeatureEnum.php | 1 +
database/migrations/2026_05_13_124153_create_mcp_feature_flag.php | 25 +++++++++++++
front-end/src/components/Settings/Kiosk/modals/EditTeamModal/EditTeamModal.vue | 52 ++++++++++++++++++--------
front-end/src/components/Settings/Kiosk/modals/EditTeamModal/__tests__/EditTeamModal.spec.js | 14 +++++++
tests/Feature/Mcp/GetMeToolFeatureTest.php | 140 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
tests/Feature/Mcp/ListCallsToolFeatureTest.php | 2 +-
tests/Feature/Mcp/McpTestHelpersTrait.php | 19 +++++++++-
tests/Unit/Component/ES/ChunkSizeTest.php | 50 +++++++++++++++++++++++++
tests/Unit/Component/ES/Processor/DTOs/SelectionListTest.php | 27 ++++++++++----
tests/Unit/Component/ES/Processor/TargetEntitiesSelectorTest.php | 39 +++++++++++---------
16 files changed, 557 insertions(+), 75 deletions(-)
create mode 100644 app/Component/ES/ChunkSize.php
create mode 100644 app/Mcp/Tools/GetMeTool.php
create mode 100644 database/migrations/2026_05_13_124153_create_mcp_feature_flag.php
create mode 100644 tests/Feature/Mcp/GetMeToolFeatureTest.php
create mode 100644 tests/Unit/Component/ES/ChunkSizeTest.php
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20613-allow-owner-role-on-team-setup) $ git push
Enumerating objects: 40, done.
Counting objects: 100% (34/34), done.
Delta compression using up to 8 threads
Compressing objects: 100% (18/18), done.
Writing objects: 100% (18/18), 1.58 KiB | 1.58 MiB/s, done.
Total 18 (delta 15), reused 0 (delta 0), pack-reused 0
remote: Resolving deltas: 100% (15/15), completed with 13 local objects.
To github.com:jiminny/app.git
190239dfd4..ec1b261264 JY-20613-allow-owner-role-on-team-setup -> JY-20613-allow-owner-role-on-team-setup
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20613-allow-owner-role-on-team-setup) $ gbr
* JY-20613-allow-owner-role-on-team-setup
pipedrive-sdk-poc
master
JY-20903-update_activity-stage-on-opportunity-change
JY-20904-fix-update-es-on-activity-command
JY-20891-improve-sms-text-relays
JY-20725-handle-HS-search-rate-limit
JY-20818-move-AJ-reports-to-separated-datadog-metric
JY-20773-fix-automated-reports-user-pilot-tracking
JY-20157-AJ-report-not-send-notification
JY-20508-notify-before-AJ-report-expiration
JY-20372-ai-reports-promotion-pages
JY-20352-sync-opportunities-without-a-local-owner-user-id-is-null
JY-20738-debug-AJ-tracking-UP
a
JY-18909-automated-reports-ask-jiminny
JY-20692-fix-integration-app-[API_KEY]
JY-20553-debug-crm-sync-delays
JY-20698-fix-SF-activity-types-on-new-playbook
JY-20543-AJ-report-tracking
JY-20384-handle-auto-sync-with-no-access-to-event-type
JY-20458-ask-jiminny-user-definitions
JY-19666-fix-import-contacts-account-association
JY-19666-HS-import-contacts-and-accounts-batch-job
JY-20458-Ask-Jiminny-Reports
JY-20200-batch-update-CRM-objects-Salesforce
JY-19666-HS-webhooks-add-contact-and-company
JY-20348-trigger-setup-DI-layout-on-team-creation
JY-20326-refactor-info-message-in-command
JY-20317-fix-auto-log-delay-issue-on-all-channels-disabled
JY-20312-remove-on-update-change-last-synced-at-crm-configurations
JY-20306-SF-skip-auto-sync-for-task-based-playbook
JY-20192-remove-deleted-team-from-saved-search-filters
JY-20197-import-opportunity-batch-job
JY-20293-enable-status-field-for-pipedrive-deals
JY-20191-remove-commands-interactive-prompts
JY-20118-change-default-sync-strategy
JY-20183-add-cache-on-auto-log-delay
JY-20197-add-import-opportunity-batch-job
20118-hs-opportunity-make-webhook-strategy-default
JY-20118-make-default-hs-opportunity-sync-strategy-webhook-based
JY-20196-handle-opportunity-without-note
JY-20118-improve-opportunity-import
JY-20189-handle-activity-search-on-deleted-groups
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20613-allow-owner-role-on-team-setup) $ co JY-20725-handle-HS-search-rate-limit
M .env.local
M config/logging.php
Switched to branch 'JY-20725-handle-HS-search-rate-limit'
Your branch is behind 'origin/JY-20725-handle-HS-search-rate-limit' by 439 commits, and can be fast-forwarded.
(use "git pull" to update your local branch)
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20725-handle-HS-search-rate-limit) $ git pull
Updating 0f3e438941..bc6a3fce6b
Fast-forward
.gitignore | 3 +-
.windsurfrules | 168 ++---
CLAUDE.md | 1 +
app/Component/ActivityAnalytics/Service/CalculateTalkTimeOffsetsFromTranscription.php | 24 +-
app/Component/AiActivityType/Services/AiActivityTypeEligibilityChecker.php | 28 +-
app/Component/AiAutomation/Actions/PrepareUpdateDtoAction.php | 32 +-
app/Component/AiAutomation/Services/CrmFillingEligibilityChecker.php | 47 ++
app/Component/AiAutomation/TestCrmAiPromptService.php | 14 +
app/Component/AiCallScoring/Services/AiCallScoringEligibilityChecker.php | 9 +
app/Component/ES/ElasticSearchDocumentPartialUpdater.php | 13 +-
app/Component/ES/ElasticSearchWorkerManager.php | 86 ---
app/Component/ES/Processor/Actions/LoadDocumentsAction.php | 80 +--
app/Component/ES/Processor/EntityQueryBuilder.php | 12 +-
app/Component/ES/Processor/TargetEntitiesSelector.php | 2 +-
app/Component/ES/Processor/Traits/SkipActivityTrait.php | 25 -
app/Component/ES/Repositories/EsResetActivityRepository.php | 11 +-
app/Component/ES/Worker/ActivityWorker.php | 73 --
app/Component/ES/Worker/EntityWorker.php | 44 --
app/Component/ES/Worker/WorkerAmount.php | 60 --
app/Component/ES/Worker/WorkerInterface.php | 15 -
app/Component/ElasticSearch/Contract/Searchable.php | 4 +
app/Component/Encoding/Job/AnalyzeTrackChannelsJob.php | 20 +-
app/Component/Encoding/Service/GenerateSpeechFromSilenceService.php | 85 ++-
app/Component/FFMpeg/Services/GetSpeechIntervalsService.php | 18 +-
app/Component/LanguageDetection/Services/FindSpeechTimeService.php | 22 +-
app/Component/Nudge/Job/ProcessOrganisationImmediateNudgesJob.php | 218 +++++-
app/Component/ParagraphBreaker/Services/TranscriptionParagraphsService.php | 4 +
app/Component/ParticipantSpeech/Services/ParticipantSpeechesCreator.php | 33 +
app/Component/ParticipantSpeech/Services/ParticipantSpeechesDeleter.php | 15 +
app/Component/ParticipantSpeech/Services/ParticipantSpeechesProvider.php | 51 +-
app/Component/ParticipantSpeech/Services/ParticipantSpeechesUploader.php | 36 +
app/Component/ProphetAi/Exceptions/InsufficientTranscriptException.php | 11 +
app/Component/Transcription/DTO/Http/Transcription/AssemblyAI/AssemblyAI/NoAssemblyIdException.php | 11 +
app/Component/Transcription/DTO/Http/Transcription/AssemblyAI/AssemblyAI/SuccessfulResponse.php | 6 +
app/Component/Transcription/DTO/Http/Transcription/TranscriptionIsNotCorrectFormatException.php | 11 +
app/Component/Transcription/Diarization/Services/GetNormalizedParticipantSpeechesService.php | 23 +-
app/Component/Transcription/Diarization/Source/MeetingBotSource.php | 16 +-
app/Component/Transcription/TranscriptionProcessor/TranscriptionProcessor.php | 3 +
app/Console/Commands/Activities/ActivityHardDeleteCommand.php | 4 +-
app/Console/Commands/Activities/Copy.php | 2 +
app/Console/Commands/Activities/SetupIntegration/TwilioSetS3RecordingCredentialsCommand.php | 119 ++++
app/Console/Commands/Activities/UpdateActivityElasticSearchDocumentCommand.php | 10 +-
app/Console/Commands/Crm/BackfillOpportunityUserFromAccountCommand.php | 126 ++++
app/Console/Commands/Elasticsearch/AsyncUpdateEsActivities.php | 19 -
app/Console/Commands/Elasticsearch/AsyncUpdateEsEntities.php | 50 +-
app/Console/Commands/Elasticsearch/ResetAsyncElasticSearchCommand.php | 30 +-
app/Console/Commands/GeckoExport/GeckoExportParticipantSpeechesCommand.php | 14 +-
app/Console/Commands/IssueMcpTokenCommand.php | 84 +++
app/Console/Commands/JiminnyDebugCommand.php | 7 +-
app/Console/Commands/Tracks/CleanupActivityTracksCommand.php | 2 +-
app/Console/Kernel.php | 6 +-
app/Contracts/Services/Calendar/CalendarTrait.php | 80 ++-
app/Events/AutomatedReports/AutomatedReportGenerated.php | 3 +
app/Http/Controllers/API/AiCallScoring/AiScorecardController.php | 7 +-
app/Http/Controllers/API/TeamAiAutomationController.php | 8 +
app/Http/Controllers/CustomerApi/CustomerApiController.php | 4 +-
app/Http/Controllers/Kiosk/ActivityController.php | 58 +-
app/Http/Controllers/Settings/PlaybookController.php | 15 +-
app/Http/Kernel.php | 23 +
app/Http/Middleware/McpAuditMiddleware.php | 156 ++++
app/Http/Middleware/McpTierMiddleware.php | 54 ++
app/Http/Requests/API/V2/ZapierUploadActivityRequest.php | 28 +-
app/Jobs/Activity/Import/ImportTwilioVideoSpeechesJob.php | 25 +-
app/Jobs/Activity/Import/IsActivityReadyForProcessingJob.php | 10 +-
app/Jobs/Calendar/SetupCalendarSync.php | 21 +-
app/Jobs/ImportRemoteTrackJob.php | 96 ++-
app/Jobs/Mailbox/EmailTextRelay.php | 15 +-
app/Mcp/Contracts/McpCallRepositoryInterface.php | 30 +
app/Mcp/DTO/ListCallsFilters.php | 29 +
app/Mcp/Errors/McpError.php | 123 ++++
app/Mcp/Repositories/McpActivityHydrator.php | 145 ++++
app/Mcp/Repositories/McpCallRepository.php | 84 +++
app/Mcp/Repositories/McpElasticCallRepository.php | 171 +++++
app/Mcp/Servers/JiminnyServer.php | 38 +
app/Mcp/Tools/ListCallsTool.php | 205 ++++++
app/Models/Activity.php | 10 +-
app/Models/Activity/Transcription.php | 17 +-
app/Models/ElasticSearch/OpportunityElasticSearchTrait.php | 5 +
app/Models/Participant.php | 1 +
app/Providers/AppServiceProvider.php | 22 +
app/Repositories/Crm/ContactRepository.php | 69 +-
app/Repositories/ParticipantSpeechRepository.php | 13 +-
app/Services/Activity/ParticipantsService.php | 19 +-
app/Services/Activity/Twilio/S3RecordingCredentialsService.php | 82 +++
app/Services/ActivityService.php | 21 +-
app/Services/Calendar/CalendarActivityService.php | 46 ++
app/Services/Calendar/Command/ImportParticipants.php | 1 +
app/Services/Calendar/Command/MapActivityData.php | 106 +--
app/Services/Calendar/GoogleCalendarService.php | 12 +-
app/Services/Crm/Close/Processor/OpportunityProcessor.php | 2 +-
app/Services/Crm/Close/Service.php | 22 +-
app/Services/Crm/Copper/Service.php | 12 +-
app/Services/Crm/Hubspot/Service.php | 154 +++-
app/Services/Crm/Hubspot/ServiceTraits/OpportunitySyncTrait.php | 88 ++-
app/Services/Crm/IntegrationApp/ServiceTraits/SyncCrmEntitiesTrait.php | 22 +-
app/Services/Crm/Pipedrive/Service.php | 17 +-
app/Services/Crm/Salesforce/Service.php | 42 +-
app/Services/Mail/Office/EmailApiClient.php | 129 +---
app/Services/RecallAI/Commands/ScheduleBotCommand.php | 39 +-
app/Services/RecallAI/RecallAIService.php | 22 +-
composer.json | 3 +-
composer.lock | 87 ++-
config/mcp.php | 23 +
database/migrations/2026_04_30_120000_create_mcp_audit_log_table.php | 36 +
docs/mcp/explorer/explorer.html | 697 ++++++++++++++++++
docs/mcp/explorer/explorer.template.html | 697 ++++++++++++++++++
docs/mcp/explorer/generate.js | 215 ++++++
docs/mcp/explorer/tool-explorer-meta.json | 11 +
docs/mcp/tools-list.json | 2536 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
docs/mcp/tools.md | 621 ++++++++++++++++
front-end/package.json | 4 +-
front-end/src/components/Settings/OrgSettings/AiAutomation/CrmFilling/TemplateFieldForm.vue | 28 +-
front-end/src/components/Settings/OrgSettings/Playbooks/AddEditPlaybook.vue | 10 +
front-end/src/components/playback/comments/ActivityComment.less | 10 +-
front-end/src/components/shared/PromptTester/PromptTester.vue | 12 +-
front-end/src/components/shared/__tests__/PromptTester.spec.js | 35 +
front-end/src/components/shared/modals/EntityPickerModal/__tests__/useEntitiesCache.spec.ts | 37 +
front-end/src/components/shared/modals/EntityPickerModal/useEntitiesCache.ts | 9 +
front-end/yarn.lock | 16 +-
phpstan-baseline.neon | 50 --
routes/api.php | 11 +
sonar-project.properties | 91 ++-
tests/Feature/Component/Nudge/ProcessOrganisationImmediateNudgesJobTest.php | 534 ++++++++++++++
tests/Feature/Jobs/ImportRemoteTrackJobTest.php | 283 +++++++-
tests/Feature/Mcp/IssueMcpTokenCommandTest.php | 53 ++
tests/Feature/Mcp/ListCallsToolElasticFeatureTest.php | 155 ++++
tests/Feature/Mcp/ListCallsToolFeatureTest.php | 352 ++++++++++
tests/Feature/Mcp/McpTestHelpersTrait.php | 77 ++
tests/Feature/Services/Team/TeamDeleteHandlers/Retention/RetentionRepositoryHandlerTest.php | 1 +
tests/Stubs/SentryStub.php | 18 +
tests/Unit/Component/ActivityAnalytics/Service/CalculateTalkTimeOffsetFromTranscriptionTest.php | 28 +-
tests/Unit/Component/AiActivityType/Services/AiActivityTypeEligibilityCheckerTest.php | 103 ++-
tests/Unit/Component/AiAutomation/Actions/PrepareUpdateDtoActionTest.php | 91 +++
tests/Unit/Component/AiAutomation/Services/CrmFillingEligibilityCheckerTest.php | 124 ++++
tests/Unit/Component/AiAutomation/TestCrmAiPromptServiceTest.php | 67 +-
tests/Unit/Component/AiCallScoring/Services/AiCallScoringEligibilityCheckerTest.php | 55 ++
tests/Unit/Component/ES/ElasticSearchWorkerManagerTest.php | 135 ----
tests/Unit/Component/ES/Processor/Actions/LoadDocumentsActionTest.php | 220 ++++++
tests/Unit/Component/ES/Processor/EntityQueryBuilderTest.php | 21 +-
tests/Unit/Component/ES/Processor/Traits/SkipActivityTraitTest.php | 51 --
tests/Unit/Component/ES/Worker/ActivityWorkerTest.php | 174 -----
tests/Unit/Component/ES/Worker/EntityWorkerTest.php | 97 ---
tests/Unit/Component/ES/Worker/WorkerAmountTest.php | 116 ---
tests/Unit/Component/Encoding/Job/AnalyzeTrackChannelsJobTest.php | 52 +-
tests/Unit/Component/Encoding/Service/GenerateSpeechFromSilenceServiceTest.php | 171 ++---
tests/Unit/Component/FFMpeg/Services/GetSpeechIntervalsTest.php | 36 +-
tests/Unit/Component/LanguageDetection/Services/FindSpeechTimeServiceTest.php | 20 +-
tests/Unit/Component/MobileSettings/MobileSettingsControllerTest.php | 5 +-
tests/Unit/Component/ParticipantSpeech/Services/ParticipantSpeechesCreatorTest.php | 75 ++
tests/Unit/Component/ParticipantSpeech/Services/ParticipantSpeechesDeleterTest.php | 63 ++
tests/Unit/Component/ParticipantSpeech/Services/ParticipantSpeechesProviderTest.php | 134 ++++
tests/Unit/Component/ParticipantSpeech/Services/ParticipantSpeechesUploaderTest.php | 57 ++
tests/Unit/Component/Transcription/Diarization/Services/GetNormalizedParticipantSpeechesServiceTest.php | 51 +-
tests/Unit/Component/Transcription/Diarization/Source/MeetingBotSourceTest.php | 29 +-
tests/Unit/Contracts/Services/Calendar/CalendarTraitTest.php | 58 +-
tests/Unit/Http/Controllers/Kiosk/ActivityControllerTest.php | 159 +++++
tests/Unit/Jobs/Activity/Import/ImportTwilioVideoSpeechesJobTest.php | 22 +-
tests/Unit/Jobs/Activity/Import/IsActivityReadyForProcessingJobTest.php | 26 +-
tests/Unit/Jobs/Calendar/SetupCalendarSyncTest.php | 25 -
tests/Unit/Services/Activity/ParticipantsServiceTest.php | 12 +-
tests/Unit/Services/Activity/Twilio/S3RecordingCredentialsServiceTest.php | 180 +++++
tests/Unit/Services/ActivityServiceTest.php | 132 ++++
tests/Unit/Services/Calendar/CalendarActivityServiceTest.php | 150 +++-
tests/Unit/Services/Calendar/Command/ImportParticipantsTest.php | 6 +-
tests/Unit/Services/Calendar/Command/MapActivityDataTest.php | 78 +-
tests/Unit/Services/Calendar/GoogleCalendarServiceTest.php | 116 +++
tests/Unit/Services/Crm/Close/ServiceTest.php | 165 +++++
tests/Unit/Services/Crm/Hubspot/ServiceTest.php | 272 ++++++-
tests/Unit/Services/Crm/Hubspot/ServiceTraits/OpportunitySyncTest.php | 25 +-
tests/Unit/Services/Crm/Hubspot/ServiceTraits/OpportunitySyncTraitMatchActivitiesTest.php | 3 +-
tests/Unit/Services/Crm/IntegrationApp/ServiceTraits/SyncCrmEntitiesTraitOpportunitiesTest.php | 40 ++
tests/Unit/Services/Crm/Pipedrive/ImportOpportunityMatchActivitiesTest.php | 2 +
tests/Unit/Services/Crm/Salesforce/ServiceTest.php | 139 ++++
tests/Unit/Services/Mail/Office/EmailApiClientTest.php | 195 ++---
tests/Unit/Services/RecallAI/RecallAIServiceTest.php | 24 +-
175 files changed, 12562 insertions(+), 2162 deletions(-)
create mode 120000 CLAUDE.md
create mode 100644 app/Component/AiAutomation/Services/CrmFillingEligibilityChecker.php
delete mode 100644 app/Component/ES/ElasticSearchWorkerManager.php
delete mode 100644 app/Component/ES/Processor/Traits/SkipActivityTrait.php
delete mode 100644 app/Component/ES/Worker/ActivityWorker.php
delete mode 100644 app/Component/ES/Worker/EntityWorker.php
delete mode 100644 app/Component/ES/Worker/WorkerAmount.php
delete mode 100644 app/Component/ES/Worker/WorkerInterface.php
create mode 100644 app/Component/ProphetAi/Exceptions/InsufficientTranscriptException.php
create mode 100644 app/Component/Transcription/DTO/Http/Transcription/AssemblyAI/AssemblyAI/NoAssemblyIdException.php
create mode 100644 app/Component/Transcription/DTO/Http/Transcription/TranscriptionIsNotCorrectFormatException.php
create mode 100644 app/Console/Commands/Activities/SetupIntegration/TwilioSetS3RecordingCredentialsCommand.php
create mode 100644 app/Console/Commands/Crm/BackfillOpportunityUserFromAccountCommand.php
delete mode 100644 app/Console/Commands/Elasticsearch/AsyncUpdateEsActivities.php
create mode 100644 app/Console/Commands/IssueMcpTokenCommand.php
create mode 100644 app/Http/Middleware/McpAuditMiddleware.php
create mode 100644 app/Http/Middleware/McpTierMiddleware.php
create mode 100644 app/Mcp/Contracts/McpCallRepositoryInterface.php
create mode 100644 app/Mcp/DTO/ListCallsFilters.php
create mode 100644 app/Mcp/Errors/McpError.php
create mode 100644 app/Mcp/Repositories/McpActivityHydrator.php
create mode 100644 app/Mcp/Repositories/McpCallRepository.php
create mode 100644 app/Mcp/Repositories/McpElasticCallRepository.php
create mode 100644 app/Mcp/Servers/JiminnyServer.php
create mode 100644 app/Mcp/Tools/ListCallsTool.php
create mode 100644 app/Services/Activity/Twilio/S3RecordingCredentialsService.php
create mode 100644 config/mcp.php
create mode 100644 database/migrations/2026_04_30_120000_create_mcp_audit_log_table.php
create mode 100644 docs/mcp/explorer/explorer.html
create mode 100644 docs/mcp/explorer/explorer.template.html
create mode 100644 docs/mcp/explorer/generate.js
create mode 100644 docs/mcp/explorer/tool-explorer-meta.json
create mode 100644 docs/mcp/tools-list.json
create mode 100644 docs/mcp/tools.md
create mode 100644 front-end/src/components/shared/modals/EntityPickerModal/__tests__/useEntitiesCache.spec.ts
create mode 100644 tests/Feature/Component/Nudge/ProcessOrganisationImmediateNudgesJobTest.php
create mode 100644 tests/Feature/Mcp/IssueMcpTokenCommandTest.php
create mode 100644 tests/Feature/Mcp/ListCallsToolElasticFeatureTest.php
create mode 100644 tests/Feature/Mcp/ListCallsToolFeatureTest.php
create mode 100644 tests/Feature/Mcp/McpTestHelpersTrait.php
create mode 100644 tests/Stubs/SentryStub.php
create mode 100644 tests/Unit/Component/AiAutomation/Services/CrmFillingEligibilityCheckerTest.php
delete mode 100644 tests/Unit/Component/ES/ElasticSearchWorkerManagerTest.php
create mode 100644 tests/Unit/Component/ES/Processor/Actions/LoadDocumentsActionTest.php
delete mode 100644 tests/Unit/Component/ES/Processor/Traits/SkipActivityTraitTest.php
delete mode 100644 tests/Unit/Component/ES/Worker/ActivityWorkerTest.php
delete mode 100644 tests/Unit/Component/ES/Worker/EntityWorkerTest.php
delete mode 100644 tests/Unit/Component/ES/Worker/WorkerAmountTest.php
create mode 100644 tests/Unit/Component/ParticipantSpeech/Services/ParticipantSpeechesCreatorTest.php
create mode 100644 tests/Unit/Http/Controllers/Kiosk/ActivityControllerTest.php
create mode 100644 tests/Unit/Services/Activity/Twilio/S3RecordingCredentialsServiceTest.php
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20725-handle-HS-search-rate-limit) $ git status
On branch master
Your branch is behind 'origin/master' by 114 commits, and can be fast-forwarded.
(use "git pull" to update your local branch)
Changes not staged for commit:
(use "git add <file>..." to update what will be committed)
(use "git restore <file>..." to discard changes in working directory)
modified: .env.local
modified: app/Component/SCIM/Constants.php
modified: app/Component/SCIM/ScimProvisioning.php
modified: app/Component/Twilio/Conference/ConferenceManager/SoftPhoneManager.php
modified: app/Console/Commands/JiminnyDebugCommand.php
modified: app/DTO/SCIM/AAD/Request/CoreUserRequest.php
modified: app/DTO/SCIM/AAD/Response/CoreUser.php
modified: app/Services/Telephony/TextMessagingService.php
modified: config/logging.php
Untracked files:
(use "git add <file>..." to include in what will be committed)
.env.nikilocal
.env.other
WEBHOOK_FILTERING_IMPLEMENTATION.md
app/Component/SCIM/Mutators/Attributes/User/RoleAttr.php
app/Console/Commands/Crm/Hubspot/SimulateWebhooksCommand.php
app/Console/Commands/Reports/CreateMockAskJiminnyReportResultCommand.php
app/Rules/ListenerRoleCannotHaveAdminOrManagerPermissionRule.php
ids.txt
public/favicon.ico
raw_sql_query.sql
tests/Unit/Component/SCIM/Mutators/Attributes/User/RoleAttrTest.php
tests/Unit/Policies/CanAccessAiReportsTest.php
tests/Unit/Rules/ListenerRoleCannotHaveAdminOrManagerPermissionRuleTest.php
no changes added to commit (use "git add" and/or "git commit -a")
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (master) $ git pull
remote: Enumerating objects: 306, done.
remote: Counting objects: 100% (299/299), done.
remote: Compressing objects: 100% (183/183), done.
remote: Total 306 (delta 213), reused 171 (delta 116), pack-reused 7 (from 1)
Receiving objects: 100% (306/306), 80.12 KiB | 1000.00 KiB/s, done.
Resolving deltas: 100% (213/213), completed with 53 local objects.
From github.com:jiminny/app
90bca4e4b2..5604af40cf master -> origin/master
4e7078fd8b..0b8343d179 JY-18091-upgrade-to-php-8-5 -> origin/JY-18091-upgrade-to-php-8-5
098eeaa087..d5a447e492 JY-20613-allow-owner-role-on-team-setup -> origin/JY-20613-allow-owner-role-on-team-setup
c3a76ace91..af65249d0f JY-20749-user-can-view-recorded-meetings -> origin/JY-20749-user-can-view-recorded-meetings
d94a285ae7..7ce96cb5fe JY-20808-low-priority-indexing-queue -> origin/JY-20808-low-priority-indexing-queue
* [new branch] JY-20842-remove-partial-updater -> origin/JY-20842-remove-partial-updater
* [new branch] JY-20920-fix-participant-flip -> origin/JY-20920-fix-participant-flip
* [new branch] secfix/npm-20260519 -> origin/secfix/npm-20260519
Updating cb4ebf0c36..5604af40cf
Fast-forward
app/Component/ES/ChunkSize.php | 54 +++++++++++++++++++
app/Component/ES/Processor/DTOs/SelectionList.php | 4 +-
app/Component/ES/Processor/TargetEntitiesSelector.php | 19 ++++---
app/Component/MeetingBot/Service/ParticipantMatcher.php | 46 ++++++++++++----
app/Exceptions/RateLimitException.php | 19 ++++++-
app/Http/Middleware/McpTierMiddleware.php | 27 ++--------
app/Jobs/Crm/MatchActivityCrmData.php | 47 ++++++++++++----
app/Jobs/Middleware/HandleHubspotRateLimit.php | 42 +++++++++++++++
app/Mcp/Servers/JiminnyServer.php | 2 +
app/Mcp/Tools/GetMeTool.php | 157 +++++++++++++++++++++++++++++++++++++++++++++++++++++
app/Models/Feature/FeatureEnum.php | 1 +
app/Services/Activity/HubSpot/ProviderResolver.php | 4 +-
app/Services/Activity/HubSpot/ProviderResolverInterface.php | 2 +-
app/Services/Activity/HubSpot/Providers/Provider.php | 2 +-
app/Services/Activity/HubSpot/Providers/ProviderKixie.php | 2 +-
app/Services/Activity/HubSpot/Providers/ProviderOrum.php | 2 +-
app/Services/Activity/HubSpot/Providers/ProviderTwilio.php | 2 +-
app/Services/Activity/HubSpot/Providers/ProviderTwilioFlex.php | 5 +-
app/Services/Activity/HubSpot/Service.php | 97 +++++++++++++++++++++++++++------
app/Services/Crm/Hubspot/Client.php | 132 +++++++++++++++++++++++++++++++++++++++++++++
app/Services/Crm/Hubspot/HubspotClientInterface.php | 15 ++++++
app/Services/Crm/Hubspot/Pagination/HubspotPaginationService.php | 21 ++++----
app/Services/Crm/Hubspot/Pagination/PaginationState.php | 2 +-
database/migrations/2026_05_13_124153_create_mcp_feature_flag.php | 25 +++++++++
tests/Feature/Mcp/GetMeToolFeatureTest.php | 140 +++++++++++++++++++++++++++++++++++++++++++++++
tests/Feature/Mcp/ListCallsToolFeatureTest.php | 2 +-
tests/Feature/Mcp/McpTestHelpersTrait.php | 19 ++++++-
tests/Unit/Component/ES/ChunkSizeTest.php | 50 +++++++++++++++++
tests/Unit/Component/ES/Processor/DTOs/SelectionListTest.php | 27 +++++++---
tests/Unit/Component/ES/Processor/TargetEntitiesSelectorTest.php | 39 ++++++++------
tests/Unit/Component/MeetingBot/Service/ParticipantMatcherTest.php | 68 ++++++++++++++++++++++-
tests/Unit/Exceptions/RateLimitExceptionTest.php | 56 +++++++++++++++++++
tests/Unit/Jobs/Crm/MatchActivityCrmDataTest.php | 8 +--
tests/Unit/Jobs/Middleware/HandleHubspotRateLimitTest.php | 151 +++++++++++++++++++++++++++++++++++++++++++++++++++
tests/Unit/Services/Activity/HubSpot/ServiceTest.php | 109 +++++++++++++++++++++++++++++++++++++
tests/Unit/Services/Crm/Hubspot/ClientTest.php | 250 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
tests/Unit/Services/Crm/Hubspot/Pagination/HubspotPaginationServiceTest.php | 283 +++++++++++++++++++++---------------------------------------------------------------------------
37 files changed, 1587 insertions(+), 344 deletions(-)
create mode 100644 app/Component/ES/ChunkSize.php
create mode 100644 app/Jobs/Middleware/HandleHubspotRateLimit.php
create mode 100644 app/Mcp/Tools/GetMeTool.php
create mode 100644 database/migrations/2026_05_13_124153_create_mcp_feature_flag.php
create mode 100644 tests/Feature/Mcp/GetMeToolFeatureTest.php
create mode 100644 tests/Unit/Component/ES/ChunkSizeTest.php
create mode 100644 tests/Unit/Exceptions/RateLimitExceptionTest.php
create mode 100644 tests/Unit/Jobs/Middleware/HandleHubspotRateLimitTest.php
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (master) $ git pull
Already up to date.
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (master) $ co -b JY-20676-delete-report-related-objects
Switched to a new branch 'JY-20676-delete-report-related-objects'
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20676-delete-report-related-objects) $ csfix
docker exec -it docker_lamp_1 ./vendor/bin/php-cs-fixer fix --config=.php-cs-fixer.dist.php -v --using-cache=no --diff
PHP CS Fixer 3.87.1 Alexander by Fabien Potencier, Dariusz Ruminski and contributors.
PHP runtime: 8.3.30
Running 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!
Loaded config default from ".php-cs-fixer.dist.php".
5690/5690 [▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓] 100%
1) app/Console/Commands/JiminnyDebugCommand.php (statement_indentation, blank_line_before_statement)
---------- begin diff ----------
--- /home/jiminny/app/Console/Commands/JiminnyDebugCommand.php
+++ /home/jiminny/app/Console/Commands/JiminnyDebugCommand.php
@@ -23,6 +23,7 @@
if ($action === 'redis-set') {
$this->testRedisSet();
+
return;
}
@@ -45,7 +46,7 @@
$ttl = 60;
try {
-// $result = Redis::set($testKey, $testValue, 'EX', $ttl, 'NX');
+ // $result = Redis::set($testKey, $testValue, 'EX', $ttl, 'NX');
$result = Redis::set($testKey, $testValue, ['nx', 'ex' => $ttl]);
if ($result) {
----------- end diff -----------
Fixed 1 of 5690 files i...
|
58091
|
NULL
|
NULL
|
NULL
|
|
58100
|
2046
|
1
|
2026-05-19T11:36:47.962424+00:00
|
/Users/lukas/.screenpipe/data/data/2026-05-19/1779 /Users/lukas/.screenpipe/data/data/2026-05-19/1779190607962_m1.jpg...
|
iTerm2
|
APP (-zsh)
|
1
|
NULL
|
monitor_1
|
NULL
|
NULL
|
NULL
|
NULL
|
Last login: Mon May 18 09:17:28 on ttys007
Poetry Last login: Mon May 18 09:17:28 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 (pipedrive-sdk-poc) $ co master
error: Your local changes to the following files would be overwritten by checkout:
PIPEDRIVE_V2_MIGRATION_TICKETS.md
Please commit your changes or stash them before you switch branches.
Aborting
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (pipedrive-sdk-poc) $ git pull
remote: Enumerating objects: 1047, done.
remote: Counting objects: 100% (832/832), done.
remote: Compressing objects: 100% (298/298), done.
remote: Total 1047 (delta 634), reused 596 (delta 534), pack-reused 215 (from 3)
Receiving objects: 100% (1047/1047), 353.16 KiB | 1.56 MiB/s, done.
Resolving deltas: 100% (687/687), completed with 107 local objects.
From github.com:jiminny/app
907c54896c..34656c53ed pipedrive-sdk-poc -> origin/pipedrive-sdk-poc
03325ec50f..4e7078fd8b JY-18091-upgrade-to-php-8-5 -> origin/JY-18091-upgrade-to-php-8-5
e7d231e163..bc6a3fce6b JY-20725-handle-HS-search-rate-limit -> origin/JY-20725-handle-HS-search-rate-limit
* [new branch] JY-20749-user-can-view-recorded-meetings -> origin/JY-20749-user-can-view-recorded-meetings
98ca281a04..e0351be069 JY-20808-low-priority-indexing-queue -> origin/JY-20808-low-priority-indexing-queue
569abb5149..3906a9238a JY-20835-mcp-enable-users-to-get-a-list-of-deals-and-their-details -> origin/JY-20835-mcp-enable-users-to-get-a-list-of-deals-and-their-details
ad6c2a86e8..50eb6afba9 JY-20846-mcp-enable-the-ai-to-know-details-about-the-user -> origin/JY-20846-mcp-enable-the-ai-to-know-details-about-the-user
* [new branch] JY-20893-chunk-control-per-update-target -> origin/JY-20893-chunk-control-per-update-target
31c62924a5..cb4ebf0c36 master -> origin/master
Updating 907c54896c..34656c53ed
Fast-forward
PIPEDRIVE_V2_MIGRATION_TICKETS.md | 52 ++++++++++++++++++++++++++++++++++++++++++++++++++++
1 file changed, 52 insertions(+)
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (pipedrive-sdk-poc) $ co master
M .env.local
M config/logging.php
Switched to branch 'master'
Your branch is behind 'origin/master' by 31 commits, and can be fast-forwarded.
(use "git pull" to update your local branch)
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (master) $ git pull
Updating 31c62924a5..cb4ebf0c36
Fast-forward
app/Component/ES/Processor/Traits/SelectEntityListTrait.php | 20 ------
app/Services/Calendar/CalendarActivityService.php | 46 +++++++++++++
app/Services/Calendar/Command/MapActivityData.php | 106 +++-------------------------
docs/mcp/explorer/explorer.html | 104 +++++++++++++++++++++++++---
docs/mcp/explorer/explorer.template.html | 102 ++++++++++++++++++++++++---
docs/mcp/tools-list.json | 373 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++-------
docs/mcp/tools.md | 117 +++++++++++++++++++++++--------
tests/Unit/Component/ES/AsyncUpdateElasticSearchTest.php | 16 +----
tests/Unit/Component/ES/Listeners/UpdateMultipleTargetsListenerTest.php | 10 ---
tests/Unit/Component/ES/Listeners/UpdateSingleTargetListenerTest.php | 6 --
tests/Unit/Component/ES/Processor/TargetEntitiesSelectorTest.php | 9 ---
tests/Unit/Component/ES/Processor/Traits/SelectEntityListTraitTest.php | 15 ++--
tests/Unit/Component/ES/UpdateProcessManagerTest.php | 2 -
tests/Unit/Services/Calendar/CalendarActivityServiceTest.php | 150 ++++++++++++++++++++++++++++++++++++++--
tests/Unit/Services/Calendar/Command/MapActivityDataTest.php | 78 ++-------------------
15 files changed, 832 insertions(+), 322 deletions(-)
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (master) $ co -b JY-20613-allow-owner-role-on-team-setup
Switched to a new branch 'JY-20613-allow-owner-role-on-team-setup'
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20613-allow-owner-role-on-team-setup) $ csfix
docker exec -it docker_lamp_1 ./vendor/bin/php-cs-fixer fix --config=.php-cs-fixer.dist.php -v --using-cache=no --diff
PHP CS Fixer 3.87.1 Alexander by Fabien Potencier, Dariusz Ruminski and contributors.
PHP runtime: 8.3.30
Running 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!
Loaded config default from ".php-cs-fixer.dist.php".
5682/5682 [▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓] 100%
Fixed 0 of 5682 files in 56.978 seconds, 67.00 MB memory used
What's next:
Try Docker Debug for seamless, persistent debugging tools in any container or image → docker debug docker_lamp_1
Learn more at [URL_WITH_CREDENTIALS] ~/jiminny/app (JY-20613-allow-owner-role-on-team-setup) $ csfix
docker exec -it docker_lamp_1 ./vendor/bin/php-cs-fixer fix --config=.php-cs-fixer.dist.php -v --using-cache=no --diff
PHP CS Fixer 3.87.1 Alexander by Fabien Potencier, Dariusz Ruminski and contributors.
PHP runtime: 8.3.30
Running 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!
Loaded config default from ".php-cs-fixer.dist.php".
5682/5682 [▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓] 100%
Fixed 0 of 5682 files in 49.910 seconds, 60.00 MB memory used
What's next:
Try Docker Debug for seamless, persistent debugging tools in any container or image → docker debug docker_lamp_1
Learn more at [URL_WITH_CREDENTIALS] ~/jiminny/app (JY-20613-allow-owner-role-on-team-setup) $ git pull
remote: Enumerating objects: 248, done.
remote: Counting objects: 100% (128/128), done.
remote: Compressing objects: 100% (23/23), done.
remote: Total 59 (delta 43), reused 44 (delta 33), pack-reused 0 (from 0)
Unpacking objects: 100% (59/59), 10.48 KiB | 228.00 KiB/s, done.
From github.com:jiminny/app
b7df560451..190239dfd4 JY-20613-allow-owner-role-on-team-setup -> origin/JY-20613-allow-owner-role-on-team-setup
e0351be069..d94a285ae7 JY-20808-low-priority-indexing-queue -> origin/JY-20808-low-priority-indexing-queue
* [new branch] JY-20920-fix-participant-matcher -> origin/JY-20920-fix-participant-matcher
cb4ebf0c36..90bca4e4b2 master -> origin/master
Merge made by the 'ort' strategy.
app/Component/ES/ChunkSize.php | 54 +++++++++++++++++++++++++++
app/Component/ES/Processor/DTOs/SelectionList.php | 4 +-
app/Component/ES/Processor/TargetEntitiesSelector.php | 19 ++++++----
app/Http/Middleware/McpTierMiddleware.php | 27 +++-----------
app/Mcp/Servers/JiminnyServer.php | 2 +
app/Mcp/Tools/GetMeTool.php | 157 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
app/Models/Feature/FeatureEnum.php | 1 +
database/migrations/2026_05_13_124153_create_mcp_feature_flag.php | 25 +++++++++++++
front-end/src/components/Settings/Kiosk/modals/EditTeamModal/EditTeamModal.vue | 52 ++++++++++++++++++--------
front-end/src/components/Settings/Kiosk/modals/EditTeamModal/__tests__/EditTeamModal.spec.js | 14 +++++++
tests/Feature/Mcp/GetMeToolFeatureTest.php | 140 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
tests/Feature/Mcp/ListCallsToolFeatureTest.php | 2 +-
tests/Feature/Mcp/McpTestHelpersTrait.php | 19 +++++++++-
tests/Unit/Component/ES/ChunkSizeTest.php | 50 +++++++++++++++++++++++++
tests/Unit/Component/ES/Processor/DTOs/SelectionListTest.php | 27 ++++++++++----
tests/Unit/Component/ES/Processor/TargetEntitiesSelectorTest.php | 39 +++++++++++---------
16 files changed, 557 insertions(+), 75 deletions(-)
create mode 100644 app/Component/ES/ChunkSize.php
create mode 100644 app/Mcp/Tools/GetMeTool.php
create mode 100644 database/migrations/2026_05_13_124153_create_mcp_feature_flag.php
create mode 100644 tests/Feature/Mcp/GetMeToolFeatureTest.php
create mode 100644 tests/Unit/Component/ES/ChunkSizeTest.php
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20613-allow-owner-role-on-team-setup) $ git push
Enumerating objects: 40, done.
Counting objects: 100% (34/34), done.
Delta compression using up to 8 threads
Compressing objects: 100% (18/18), done.
Writing objects: 100% (18/18), 1.58 KiB | 1.58 MiB/s, done.
Total 18 (delta 15), reused 0 (delta 0), pack-reused 0
remote: Resolving deltas: 100% (15/15), completed with 13 local objects.
To github.com:jiminny/app.git
190239dfd4..ec1b261264 JY-20613-allow-owner-role-on-team-setup -> JY-20613-allow-owner-role-on-team-setup
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20613-allow-owner-role-on-team-setup) $ gbr
* JY-20613-allow-owner-role-on-team-setup
pipedrive-sdk-poc
master
JY-20903-update_activity-stage-on-opportunity-change
JY-20904-fix-update-es-on-activity-command
JY-20891-improve-sms-text-relays
JY-20725-handle-HS-search-rate-limit
JY-20818-move-AJ-reports-to-separated-datadog-metric
JY-20773-fix-automated-reports-user-pilot-tracking
JY-20157-AJ-report-not-send-notification
JY-20508-notify-before-AJ-report-expiration
JY-20372-ai-reports-promotion-pages
JY-20352-sync-opportunities-without-a-local-owner-user-id-is-null
JY-20738-debug-AJ-tracking-UP
a
JY-18909-automated-reports-ask-jiminny
JY-20692-fix-integration-app-[API_KEY]
JY-20553-debug-crm-sync-delays
JY-20698-fix-SF-activity-types-on-new-playbook
JY-20543-AJ-report-tracking
JY-20384-handle-auto-sync-with-no-access-to-event-type
JY-20458-ask-jiminny-user-definitions
JY-19666-fix-import-contacts-account-association
JY-19666-HS-import-contacts-and-accounts-batch-job
JY-20458-Ask-Jiminny-Reports
JY-20200-batch-update-CRM-objects-Salesforce
JY-19666-HS-webhooks-add-contact-and-company
JY-20348-trigger-setup-DI-layout-on-team-creation
JY-20326-refactor-info-message-in-command
JY-20317-fix-auto-log-delay-issue-on-all-channels-disabled
JY-20312-remove-on-update-change-last-synced-at-crm-configurations
JY-20306-SF-skip-auto-sync-for-task-based-playbook
JY-20192-remove-deleted-team-from-saved-search-filters
JY-20197-import-opportunity-batch-job
JY-20293-enable-status-field-for-pipedrive-deals
JY-20191-remove-commands-interactive-prompts
JY-20118-change-default-sync-strategy
JY-20183-add-cache-on-auto-log-delay
JY-20197-add-import-opportunity-batch-job
20118-hs-opportunity-make-webhook-strategy-default
JY-20118-make-default-hs-opportunity-sync-strategy-webhook-based
JY-20196-handle-opportunity-without-note
JY-20118-improve-opportunity-import
JY-20189-handle-activity-search-on-deleted-groups
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20613-allow-owner-role-on-team-setup) $ co JY-20725-handle-HS-search-rate-limit
M .env.local
M config/logging.php
Switched to branch 'JY-20725-handle-HS-search-rate-limit'
Your branch is behind 'origin/JY-20725-handle-HS-search-rate-limit' by 439 commits, and can be fast-forwarded.
(use "git pull" to update your local branch)
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20725-handle-HS-search-rate-limit) $ git pull
Updating 0f3e438941..bc6a3fce6b
Fast-forward
.gitignore | 3 +-
.windsurfrules | 168 ++---
CLAUDE.md | 1 +
app/Component/ActivityAnalytics/Service/CalculateTalkTimeOffsetsFromTranscription.php | 24 +-
app/Component/AiActivityType/Services/AiActivityTypeEligibilityChecker.php | 28 +-
app/Component/AiAutomation/Actions/PrepareUpdateDtoAction.php | 32 +-
app/Component/AiAutomation/Services/CrmFillingEligibilityChecker.php | 47 ++
app/Component/AiAutomation/TestCrmAiPromptService.php | 14 +
app/Component/AiCallScoring/Services/AiCallScoringEligibilityChecker.php | 9 +
app/Component/ES/ElasticSearchDocumentPartialUpdater.php | 13 +-
app/Component/ES/ElasticSearchWorkerManager.php | 86 ---
app/Component/ES/Processor/Actions/LoadDocumentsAction.php | 80 +--
app/Component/ES/Processor/EntityQueryBuilder.php | 12 +-
app/Component/ES/Processor/TargetEntitiesSelector.php | 2 +-
app/Component/ES/Processor/Traits/SkipActivityTrait.php | 25 -
app/Component/ES/Repositories/EsResetActivityRepository.php | 11 +-
app/Component/ES/Worker/ActivityWorker.php | 73 --
app/Component/ES/Worker/EntityWorker.php | 44 --
app/Component/ES/Worker/WorkerAmount.php | 60 --
app/Component/ES/Worker/WorkerInterface.php | 15 -
app/Component/ElasticSearch/Contract/Searchable.php | 4 +
app/Component/Encoding/Job/AnalyzeTrackChannelsJob.php | 20 +-
app/Component/Encoding/Service/GenerateSpeechFromSilenceService.php | 85 ++-
app/Component/FFMpeg/Services/GetSpeechIntervalsService.php | 18 +-
app/Component/LanguageDetection/Services/FindSpeechTimeService.php | 22 +-
app/Component/Nudge/Job/ProcessOrganisationImmediateNudgesJob.php | 218 +++++-
app/Component/ParagraphBreaker/Services/TranscriptionParagraphsService.php | 4 +
app/Component/ParticipantSpeech/Services/ParticipantSpeechesCreator.php | 33 +
app/Component/ParticipantSpeech/Services/ParticipantSpeechesDeleter.php | 15 +
app/Component/ParticipantSpeech/Services/ParticipantSpeechesProvider.php | 51 +-
app/Component/ParticipantSpeech/Services/ParticipantSpeechesUploader.php | 36 +
app/Component/ProphetAi/Exceptions/InsufficientTranscriptException.php | 11 +
app/Component/Transcription/DTO/Http/Transcription/AssemblyAI/AssemblyAI/NoAssemblyIdException.php | 11 +
app/Component/Transcription/DTO/Http/Transcription/AssemblyAI/AssemblyAI/SuccessfulResponse.php | 6 +
app/Component/Transcription/DTO/Http/Transcription/TranscriptionIsNotCorrectFormatException.php | 11 +
app/Component/Transcription/Diarization/Services/GetNormalizedParticipantSpeechesService.php | 23 +-
app/Component/Transcription/Diarization/Source/MeetingBotSource.php | 16 +-
app/Component/Transcription/TranscriptionProcessor/TranscriptionProcessor.php | 3 +
app/Console/Commands/Activities/ActivityHardDeleteCommand.php | 4 +-
app/Console/Commands/Activities/Copy.php | 2 +
app/Console/Commands/Activities/SetupIntegration/TwilioSetS3RecordingCredentialsCommand.php | 119 ++++
app/Console/Commands/Activities/UpdateActivityElasticSearchDocumentCommand.php | 10 +-
app/Console/Commands/Crm/BackfillOpportunityUserFromAccountCommand.php | 126 ++++
app/Console/Commands/Elasticsearch/AsyncUpdateEsActivities.php | 19 -
app/Console/Commands/Elasticsearch/AsyncUpdateEsEntities.php | 50 +-
app/Console/Commands/Elasticsearch/ResetAsyncElasticSearchCommand.php | 30 +-
app/Console/Commands/GeckoExport/GeckoExportParticipantSpeechesCommand.php | 14 +-
app/Console/Commands/IssueMcpTokenCommand.php | 84 +++
app/Console/Commands/JiminnyDebugCommand.php | 7 +-
app/Console/Commands/Tracks/CleanupActivityTracksCommand.php | 2 +-
app/Console/Kernel.php | 6 +-
app/Contracts/Services/Calendar/CalendarTrait.php | 80 ++-
app/Events/AutomatedReports/AutomatedReportGenerated.php | 3 +
app/Http/Controllers/API/AiCallScoring/AiScorecardController.php | 7 +-
app/Http/Controllers/API/TeamAiAutomationController.php | 8 +
app/Http/Controllers/CustomerApi/CustomerApiController.php | 4 +-
app/Http/Controllers/Kiosk/ActivityController.php | 58 +-
app/Http/Controllers/Settings/PlaybookController.php | 15 +-
app/Http/Kernel.php | 23 +
app/Http/Middleware/McpAuditMiddleware.php | 156 ++++
app/Http/Middleware/McpTierMiddleware.php | 54 ++
app/Http/Requests/API/V2/ZapierUploadActivityRequest.php | 28 +-
app/Jobs/Activity/Import/ImportTwilioVideoSpeechesJob.php | 25 +-
app/Jobs/Activity/Import/IsActivityReadyForProcessingJob.php | 10 +-
app/Jobs/Calendar/SetupCalendarSync.php | 21 +-
app/Jobs/ImportRemoteTrackJob.php | 96 ++-
app/Jobs/Mailbox/EmailTextRelay.php | 15 +-
app/Mcp/Contracts/McpCallRepositoryInterface.php | 30 +
app/Mcp/DTO/ListCallsFilters.php | 29 +
app/Mcp/Errors/McpError.php | 123 ++++
app/Mcp/Repositories/McpActivityHydrator.php | 145 ++++
app/Mcp/Repositories/McpCallRepository.php | 84 +++
app/Mcp/Repositories/McpElasticCallRepository.php | 171 +++++
app/Mcp/Servers/JiminnyServer.php | 38 +
app/Mcp/Tools/ListCallsTool.php | 205 ++++++
app/Models/Activity.php | 10 +-
app/Models/Activity/Transcription.php | 17 +-
app/Models/ElasticSearch/OpportunityElasticSearchTrait.php | 5 +
app/Models/Participant.php | 1 +
app/Providers/AppServiceProvider.php | 22 +
app/Repositories/Crm/ContactRepository.php | 69 +-
app/Repositories/ParticipantSpeechRepository.php | 13 +-
app/Services/Activity/ParticipantsService.php | 19 +-
app/Services/Activity/Twilio/S3RecordingCredentialsService.php | 82 +++
app/Services/ActivityService.php | 21 +-
app/Services/Calendar/CalendarActivityService.php | 46 ++
app/Services/Calendar/Command/ImportParticipants.php | 1 +
app/Services/Calendar/Command/MapActivityData.php | 106 +--
app/Services/Calendar/GoogleCalendarService.php | 12 +-
app/Services/Crm/Close/Processor/OpportunityProcessor.php | 2 +-
app/Services/Crm/Close/Service.php | 22 +-
app/Services/Crm/Copper/Service.php | 12 +-
app/Services/Crm/Hubspot/Service.php | 154 +++-
app/Services/Crm/Hubspot/ServiceTraits/OpportunitySyncTrait.php | 88 ++-
app/Services/Crm/IntegrationApp/ServiceTraits/SyncCrmEntitiesTrait.php | 22 +-
app/Services/Crm/Pipedrive/Service.php | 17 +-
app/Services/Crm/Salesforce/Service.php | 42 +-
app/Services/Mail/Office/EmailApiClient.php | 129 +---
app/Services/RecallAI/Commands/ScheduleBotCommand.php | 39 +-
app/Services/RecallAI/RecallAIService.php | 22 +-
composer.json | 3 +-
composer.lock | 87 ++-
config/mcp.php | 23 +
database/migrations/2026_04_30_120000_create_mcp_audit_log_table.php | 36 +
docs/mcp/explorer/explorer.html | 697 ++++++++++++++++++
docs/mcp/explorer/explorer.template.html | 697 ++++++++++++++++++
docs/mcp/explorer/generate.js | 215 ++++++
docs/mcp/explorer/tool-explorer-meta.json | 11 +
docs/mcp/tools-list.json | 2536 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
docs/mcp/tools.md | 621 ++++++++++++++++
front-end/package.json | 4 +-
front-end/src/components/Settings/OrgSettings/AiAutomation/CrmFilling/TemplateFieldForm.vue | 28 +-
front-end/src/components/Settings/OrgSettings/Playbooks/AddEditPlaybook.vue | 10 +
front-end/src/components/playback/comments/ActivityComment.less | 10 +-
front-end/src/components/shared/PromptTester/PromptTester.vue | 12 +-
front-end/src/components/shared/__tests__/PromptTester.spec.js | 35 +
front-end/src/components/shared/modals/EntityPickerModal/__tests__/useEntitiesCache.spec.ts | 37 +
front-end/src/components/shared/modals/EntityPickerModal/useEntitiesCache.ts | 9 +
front-end/yarn.lock | 16 +-
phpstan-baseline.neon | 50 --
routes/api.php | 11 +
sonar-project.properties | 91 ++-
tests/Feature/Component/Nudge/ProcessOrganisationImmediateNudgesJobTest.php | 534 ++++++++++++++
tests/Feature/Jobs/ImportRemoteTrackJobTest.php | 283 +++++++-
tests/Feature/Mcp/IssueMcpTokenCommandTest.php | 53 ++
tests/Feature/Mcp/ListCallsToolElasticFeatureTest.php | 155 ++++
tests/Feature/Mcp/ListCallsToolFeatureTest.php | 352 ++++++++++
tests/Feature/Mcp/McpTestHelpersTrait.php | 77 ++
tests/Feature/Services/Team/TeamDeleteHandlers/Retention/RetentionRepositoryHandlerTest.php | 1 +
tests/Stubs/SentryStub.php | 18 +
tests/Unit/Component/ActivityAnalytics/Service/CalculateTalkTimeOffsetFromTranscriptionTest.php | 28 +-
tests/Unit/Component/AiActivityType/Services/AiActivityTypeEligibilityCheckerTest.php | 103 ++-
tests/Unit/Component/AiAutomation/Actions/PrepareUpdateDtoActionTest.php | 91 +++
tests/Unit/Component/AiAutomation/Services/CrmFillingEligibilityCheckerTest.php | 124 ++++
tests/Unit/Component/AiAutomation/TestCrmAiPromptServiceTest.php | 67 +-
tests/Unit/Component/AiCallScoring/Services/AiCallScoringEligibilityCheckerTest.php | 55 ++
tests/Unit/Component/ES/ElasticSearchWorkerManagerTest.php | 135 ----
tests/Unit/Component/ES/Processor/Actions/LoadDocumentsActionTest.php | 220 ++++++
tests/Unit/Component/ES/Processor/EntityQueryBuilderTest.php | 21 +-
tests/Unit/Component/ES/Processor/Traits/SkipActivityTraitTest.php | 51 --
tests/Unit/Component/ES/Worker/ActivityWorkerTest.php | 174 -----
tests/Unit/Component/ES/Worker/EntityWorkerTest.php | 97 ---
tests/Unit/Component/ES/Worker/WorkerAmountTest.php | 116 ---
tests/Unit/Component/Encoding/Job/AnalyzeTrackChannelsJobTest.php | 52 +-
tests/Unit/Component/Encoding/Service/GenerateSpeechFromSilenceServiceTest.php | 171 ++---
tests/Unit/Component/FFMpeg/Services/GetSpeechIntervalsTest.php | 36 +-
tests/Unit/Component/LanguageDetection/Services/FindSpeechTimeServiceTest.php | 20 +-
tests/Unit/Component/MobileSettings/MobileSettingsControllerTest.php | 5 +-
tests/Unit/Component/ParticipantSpeech/Services/ParticipantSpeechesCreatorTest.php | 75 ++
tests/Unit/Component/ParticipantSpeech/Services/ParticipantSpeechesDeleterTest.php | 63 ++
tests/Unit/Component/ParticipantSpeech/Services/ParticipantSpeechesProviderTest.php | 134 ++++
tests/Unit/Component/ParticipantSpeech/Services/ParticipantSpeechesUploaderTest.php | 57 ++
tests/Unit/Component/Transcription/Diarization/Services/GetNormalizedParticipantSpeechesServiceTest.php | 51 +-
tests/Unit/Component/Transcription/Diarization/Source/MeetingBotSourceTest.php | 29 +-
tests/Unit/Contracts/Services/Calendar/CalendarTraitTest.php | 58 +-
tests/Unit/Http/Controllers/Kiosk/ActivityControllerTest.php | 159 +++++
tests/Unit/Jobs/Activity/Import/ImportTwilioVideoSpeechesJobTest.php | 22 +-
tests/Unit/Jobs/Activity/Import/IsActivityReadyForProcessingJobTest.php | 26 +-
tests/Unit/Jobs/Calendar/SetupCalendarSyncTest.php | 25 -
tests/Unit/Services/Activity/ParticipantsServiceTest.php | 12 +-
tests/Unit/Services/Activity/Twilio/S3RecordingCredentialsServiceTest.php | 180 +++++
tests/Unit/Services/ActivityServiceTest.php | 132 ++++
tests/Unit/Services/Calendar/CalendarActivityServiceTest.php | 150 +++-
tests/Unit/Services/Calendar/Command/ImportParticipantsTest.php | 6 +-
tests/Unit/Services/Calendar/Command/MapActivityDataTest.php | 78 +-
tests/Unit/Services/Calendar/GoogleCalendarServiceTest.php | 116 +++
tests/Unit/Services/Crm/Close/ServiceTest.php | 165 +++++
tests/Unit/Services/Crm/Hubspot/ServiceTest.php | 272 ++++++-
tests/Unit/Services/Crm/Hubspot/ServiceTraits/OpportunitySyncTest.php | 25 +-
tests/Unit/Services/Crm/Hubspot/ServiceTraits/OpportunitySyncTraitMatchActivitiesTest.php | 3 +-
tests/Unit/Services/Crm/IntegrationApp/ServiceTraits/SyncCrmEntitiesTraitOpportunitiesTest.php | 40 ++
tests/Unit/Services/Crm/Pipedrive/ImportOpportunityMatchActivitiesTest.php | 2 +
tests/Unit/Services/Crm/Salesforce/ServiceTest.php | 139 ++++
tests/Unit/Services/Mail/Office/EmailApiClientTest.php | 195 ++---
tests/Unit/Services/RecallAI/RecallAIServiceTest.php | 24 +-
175 files changed, 12562 insertions(+), 2162 deletions(-)
create mode 120000 CLAUDE.md
create mode 100644 app/Component/AiAutomation/Services/CrmFillingEligibilityChecker.php
delete mode 100644 app/Component/ES/ElasticSearchWorkerManager.php
delete mode 100644 app/Component/ES/Processor/Traits/SkipActivityTrait.php
delete mode 100644 app/Component/ES/Worker/ActivityWorker.php
delete mode 100644 app/Component/ES/Worker/EntityWorker.php
delete mode 100644 app/Component/ES/Worker/WorkerAmount.php
delete mode 100644 app/Component/ES/Worker/WorkerInterface.php
create mode 100644 app/Component/ProphetAi/Exceptions/InsufficientTranscriptException.php
create mode 100644 app/Component/Transcription/DTO/Http/Transcription/AssemblyAI/AssemblyAI/NoAssemblyIdException.php
create mode 100644 app/Component/Transcription/DTO/Http/Transcription/TranscriptionIsNotCorrectFormatException.php
create mode 100644 app/Console/Commands/Activities/SetupIntegration/TwilioSetS3RecordingCredentialsCommand.php
create mode 100644 app/Console/Commands/Crm/BackfillOpportunityUserFromAccountCommand.php
delete mode 100644 app/Console/Commands/Elasticsearch/AsyncUpdateEsActivities.php
create mode 100644 app/Console/Commands/IssueMcpTokenCommand.php
create mode 100644 app/Http/Middleware/McpAuditMiddleware.php
create mode 100644 app/Http/Middleware/McpTierMiddleware.php
create mode 100644 app/Mcp/Contracts/McpCallRepositoryInterface.php
create mode 100644 app/Mcp/DTO/ListCallsFilters.php
create mode 100644 app/Mcp/Errors/McpError.php
create mode 100644 app/Mcp/Repositories/McpActivityHydrator.php
create mode 100644 app/Mcp/Repositories/McpCallRepository.php
create mode 100644 app/Mcp/Repositories/McpElasticCallRepository.php
create mode 100644 app/Mcp/Servers/JiminnyServer.php
create mode 100644 app/Mcp/Tools/ListCallsTool.php
create mode 100644 app/Services/Activity/Twilio/S3RecordingCredentialsService.php
create mode 100644 config/mcp.php
create mode 100644 database/migrations/2026_04_30_120000_create_mcp_audit_log_table.php
create mode 100644 docs/mcp/explorer/explorer.html
create mode 100644 docs/mcp/explorer/explorer.template.html
create mode 100644 docs/mcp/explorer/generate.js
create mode 100644 docs/mcp/explorer/tool-explorer-meta.json
create mode 100644 docs/mcp/tools-list.json
create mode 100644 docs/mcp/tools.md
create mode 100644 front-end/src/components/shared/modals/EntityPickerModal/__tests__/useEntitiesCache.spec.ts
create mode 100644 tests/Feature/Component/Nudge/ProcessOrganisationImmediateNudgesJobTest.php
create mode 100644 tests/Feature/Mcp/IssueMcpTokenCommandTest.php
create mode 100644 tests/Feature/Mcp/ListCallsToolElasticFeatureTest.php
create mode 100644 tests/Feature/Mcp/ListCallsToolFeatureTest.php
create mode 100644 tests/Feature/Mcp/McpTestHelpersTrait.php
create mode 100644 tests/Stubs/SentryStub.php
create mode 100644 tests/Unit/Component/AiAutomation/Services/CrmFillingEligibilityCheckerTest.php
delete mode 100644 tests/Unit/Component/ES/ElasticSearchWorkerManagerTest.php
create mode 100644 tests/Unit/Component/ES/Processor/Actions/LoadDocumentsActionTest.php
delete mode 100644 tests/Unit/Component/ES/Processor/Traits/SkipActivityTraitTest.php
delete mode 100644 tests/Unit/Component/ES/Worker/ActivityWorkerTest.php
delete mode 100644 tests/Unit/Component/ES/Worker/EntityWorkerTest.php
delete mode 100644 tests/Unit/Component/ES/Worker/WorkerAmountTest.php
create mode 100644 tests/Unit/Component/ParticipantSpeech/Services/ParticipantSpeechesCreatorTest.php
create mode 100644 tests/Unit/Http/Controllers/Kiosk/ActivityControllerTest.php
create mode 100644 tests/Unit/Services/Activity/Twilio/S3RecordingCredentialsServiceTest.php
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20725-handle-HS-search-rate-limit) $ git status
On branch master
Your branch is behind 'origin/master' by 114 commits, and can be fast-forwarded.
(use "git pull" to update your local branch)
Changes not staged for commit:
(use "git add <file>..." to update what will be committed)
(use "git restore <file>..." to discard changes in working directory)
modified: .env.local
modified: app/Component/SCIM/Constants.php
modified: app/Component/SCIM/ScimProvisioning.php
modified: app/Component/Twilio/Conference/ConferenceManager/SoftPhoneManager.php
modified: app/Console/Commands/JiminnyDebugCommand.php
modified: app/DTO/SCIM/AAD/Request/CoreUserRequest.php
modified: app/DTO/SCIM/AAD/Response/CoreUser.php
modified: app/Services/Telephony/TextMessagingService.php
modified: config/logging.php
Untracked files:
(use "git add <file>..." to include in what will be committed)
.env.nikilocal
.env.other
WEBHOOK_FILTERING_IMPLEMENTATION.md
app/Component/SCIM/Mutators/Attributes/User/RoleAttr.php
app/Console/Commands/Crm/Hubspot/SimulateWebhooksCommand.php
app/Console/Commands/Reports/CreateMockAskJiminnyReportResultCommand.php
app/Rules/ListenerRoleCannotHaveAdminOrManagerPermissionRule.php
ids.txt
public/favicon.ico
raw_sql_query.sql
tests/Unit/Component/SCIM/Mutators/Attributes/User/RoleAttrTest.php
tests/Unit/Policies/CanAccessAiReportsTest.php
tests/Unit/Rules/ListenerRoleCannotHaveAdminOrManagerPermissionRuleTest.php
no changes added to commit (use "git add" and/or "git commit -a")
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (master) $ git pull
remote: Enumerating objects: 306, done.
remote: Counting objects: 100% (299/299), done.
remote: Compressing objects: 100% (183/183), done.
remote: Total 306 (delta 213), reused 171 (delta 116), pack-reused 7 (from 1)
Receiving objects: 100% (306/306), 80.12 KiB | 1000.00 KiB/s, done.
Resolving deltas: 100% (213/213), completed with 53 local objects.
From github.com:jiminny/app
90bca4e4b2..5604af40cf master -> origin/master
4e7078fd8b..0b8343d179 JY-18091-upgrade-to-php-8-5 -> origin/JY-18091-upgrade-to-php-8-5
098eeaa087..d5a447e492 JY-20613-allow-owner-role-on-team-setup -> origin/JY-20613-allow-owner-role-on-team-setup
c3a76ace91..af65249d0f JY-20749-user-can-view-recorded-meetings -> origin/JY-20749-user-can-view-recorded-meetings
d94a285ae7..7ce96cb5fe JY-20808-low-priority-indexing-queue -> origin/JY-20808-low-priority-indexing-queue
* [new branch] JY-20842-remove-partial-updater -> origin/JY-20842-remove-partial-updater
* [new branch] JY-20920-fix-participant-flip -> origin/JY-20920-fix-participant-flip
* [new branch] secfix/npm-20260519 -> origin/secfix/npm-20260519
Updating cb4ebf0c36..5604af40cf
Fast-forward
app/Component/ES/ChunkSize.php | 54 +++++++++++++++++++
app/Component/ES/Processor/DTOs/SelectionList.php | 4 +-
app/Component/ES/Processor/TargetEntitiesSelector.php | 19 ++++---
app/Component/MeetingBot/Service/ParticipantMatcher.php | 46 ++++++++++++----
app/Exceptions/RateLimitException.php | 19 ++++++-
app/Http/Middleware/McpTierMiddleware.php | 27 ++--------
app/Jobs/Crm/MatchActivityCrmData.php | 47 ++++++++++++----
app/Jobs/Middleware/HandleHubspotRateLimit.php | 42 +++++++++++++++
app/Mcp/Servers/JiminnyServer.php | 2 +
app/Mcp/Tools/GetMeTool.php | 157 +++++++++++++++++++++++++++++++++++++++++++++++++++++
app/Models/Feature/FeatureEnum.php | 1 +
app/Services/Activity/HubSpot/ProviderResolver.php | 4 +-
app/Services/Activity/HubSpot/ProviderResolverInterface.php | 2 +-
app/Services/Activity/HubSpot/Providers/Provider.php | 2 +-
app/Services/Activity/HubSpot/Providers/ProviderKixie.php | 2 +-
app/Services/Activity/HubSpot/Providers/ProviderOrum.php | 2 +-
app/Services/Activity/HubSpot/Providers/ProviderTwilio.php | 2 +-
app/Services/Activity/HubSpot/Providers/ProviderTwilioFlex.php | 5 +-
app/Services/Activity/HubSpot/Service.php | 97 +++++++++++++++++++++++++++------
app/Services/Crm/Hubspot/Client.php | 132 +++++++++++++++++++++++++++++++++++++++++++++
app/Services/Crm/Hubspot/HubspotClientInterface.php | 15 ++++++
app/Services/Crm/Hubspot/Pagination/HubspotPaginationService.php | 21 ++++----
app/Services/Crm/Hubspot/Pagination/PaginationState.php | 2 +-
database/migrations/2026_05_13_124153_create_mcp_feature_flag.php | 25 +++++++++
tests/Feature/Mcp/GetMeToolFeatureTest.php | 140 +++++++++++++++++++++++++++++++++++++++++++++++
tests/Feature/Mcp/ListCallsToolFeatureTest.php | 2 +-
tests/Feature/Mcp/McpTestHelpersTrait.php | 19 ++++++-
tests/Unit/Component/ES/ChunkSizeTest.php | 50 +++++++++++++++++
tests/Unit/Component/ES/Processor/DTOs/SelectionListTest.php | 27 +++++++---
tests/Unit/Component/ES/Processor/TargetEntitiesSelectorTest.php | 39 ++++++++------
tests/Unit/Component/MeetingBot/Service/ParticipantMatcherTest.php | 68 ++++++++++++++++++++++-
tests/Unit/Exceptions/RateLimitExceptionTest.php | 56 +++++++++++++++++++
tests/Unit/Jobs/Crm/MatchActivityCrmDataTest.php | 8 +--
tests/Unit/Jobs/Middleware/HandleHubspotRateLimitTest.php | 151 +++++++++++++++++++++++++++++++++++++++++++++++++++
tests/Unit/Services/Activity/HubSpot/ServiceTest.php | 109 +++++++++++++++++++++++++++++++++++++
tests/Unit/Services/Crm/Hubspot/ClientTest.php | 250 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
tests/Unit/Services/Crm/Hubspot/Pagination/HubspotPaginationServiceTest.php | 283 +++++++++++++++++++++---------------------------------------------------------------------------
37 files changed, 1587 insertions(+), 344 deletions(-)
create mode 100644 app/Component/ES/ChunkSize.php
create mode 100644 app/Jobs/Middleware/HandleHubspotRateLimit.php
create mode 100644 app/Mcp/Tools/GetMeTool.php
create mode 100644 database/migrations/2026_05_13_124153_create_mcp_feature_flag.php
create mode 100644 tests/Feature/Mcp/GetMeToolFeatureTest.php
create mode 100644 tests/Unit/Component/ES/ChunkSizeTest.php
create mode 100644 tests/Unit/Exceptions/RateLimitExceptionTest.php
create mode 100644 tests/Unit/Jobs/Middleware/HandleHubspotRateLimitTest.php
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (master) $ git pull
Already up to date.
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (master) $ co -b JY-20676-delete-report-related-objects
Switched to a new branch 'JY-20676-delete-report-related-objects'
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20676-delete-report-related-objects) $ csfix
docker exec -it docker_lamp_1 ./vendor/bin/php-cs-fixer fix --config=.php-cs-fixer.dist.php -v --using-cache=no --diff
PHP CS Fixer 3.87.1 Alexander by Fabien Potencier, Dariusz Ruminski and contributors.
PHP runtime: 8.3.30
Running 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!
Loaded config default from ".php-cs-fixer.dist.php".
5690/5690 [▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓] 100%
1) app/Console/Commands/JiminnyDebugCommand.php (statement_indentation, blank_line_before_statement)
---------- begin diff ----------
--- /home/jiminny/app/Console/Commands/JiminnyDebugCommand.php
+++ /home/jiminny/app/Console/Commands/JiminnyDebugCommand.php
@@ -23,6 +23,7 @@
if ($action === 'redis-set') {
$this->testRedisSet();
+
return;
}
@@ -45,7 +46,7 @@
$ttl = 60;
try {
-// $result = Redis::set($testKey, $testValue, 'EX', $ttl, 'NX');
+ // $result = Redis::set($testKey, $testValue, 'EX', $ttl, 'NX');
$result = Redis::set($testKey, $testValue, ['nx', 'ex' => $ttl]);
if ($result) {
----------- end diff -----------
Fixed 1 of 5690 files i...
|
[{"role":"AXTextArea","text [{"role":"AXTextArea","text":"Last login: Mon May 18 09:17:28 on ttys007\n\nPoetry could not find a pyproject.toml file in /Users/lukas/jiminny/app or its parents\n\nPoetry could not find a pyproject.toml file in /Users/lukas/jiminny/app or its parents\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (pipedrive-sdk-poc) $ co master\nerror: Your local changes to the following files would be overwritten by checkout:\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tPIPEDRIVE_V2_MIGRATION_TICKETS.md\nPlease commit your changes or stash them before you switch branches.\nAborting\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (pipedrive-sdk-poc) $ git pull\nremote: Enumerating objects: 1047, done.\nremote: Counting objects: 100% (832/832), done.\nremote: Compressing objects: 100% (298/298), done.\nremote: Total 1047 (delta 634), reused 596 (delta 534), pack-reused 215 (from 3)\nReceiving objects: 100% (1047/1047), 353.16 KiB | 1.56 MiB/s, done.\nResolving deltas: 100% (687/687), completed with 107 local objects.\nFrom github.com:jiminny/app\n 907c54896c..34656c53ed pipedrive-sdk-poc -> origin/pipedrive-sdk-poc\n 03325ec50f..4e7078fd8b JY-18091-upgrade-to-php-8-5 -> origin/JY-18091-upgrade-to-php-8-5\n e7d231e163..bc6a3fce6b JY-20725-handle-HS-search-rate-limit -> origin/JY-20725-handle-HS-search-rate-limit\n * [new branch] JY-20749-user-can-view-recorded-meetings -> origin/JY-20749-user-can-view-recorded-meetings\n 98ca281a04..e0351be069 JY-20808-low-priority-indexing-queue -> origin/JY-20808-low-priority-indexing-queue\n 569abb5149..3906a9238a JY-20835-mcp-enable-users-to-get-a-list-of-deals-and-their-details -> origin/JY-20835-mcp-enable-users-to-get-a-list-of-deals-and-their-details\n ad6c2a86e8..50eb6afba9 JY-20846-mcp-enable-the-ai-to-know-details-about-the-user -> origin/JY-20846-mcp-enable-the-ai-to-know-details-about-the-user\n * [new branch] JY-20893-chunk-control-per-update-target -> origin/JY-20893-chunk-control-per-update-target\n 31c62924a5..cb4ebf0c36 master -> origin/master\nUpdating 907c54896c..34656c53ed\nFast-forward\n PIPEDRIVE_V2_MIGRATION_TICKETS.md | 52 ++++++++++++++++++++++++++++++++++++++++++++++++++++\n 1 file changed, 52 insertions(+)\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (pipedrive-sdk-poc) $ co master\nM\u0000\u0000\u0000\u0000\u0000\u0000\t.env.local\nM\u0000\u0000\u0000\u0000\u0000\u0000\tconfig/logging.php\nSwitched to branch 'master'\nYour branch is behind 'origin/master' by 31 commits, and can be fast-forwarded.\n (use \"git pull\" to update your local branch)\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (master) $ git pull\nUpdating 31c62924a5..cb4ebf0c36\nFast-forward\n app/Component/ES/Processor/Traits/SelectEntityListTrait.php | 20 ------\n app/Services/Calendar/CalendarActivityService.php | 46 +++++++++++++\n app/Services/Calendar/Command/MapActivityData.php | 106 +++-------------------------\n docs/mcp/explorer/explorer.html | 104 +++++++++++++++++++++++++---\n docs/mcp/explorer/explorer.template.html | 102 ++++++++++++++++++++++++---\n docs/mcp/tools-list.json | 373 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++-------\n docs/mcp/tools.md | 117 +++++++++++++++++++++++--------\n tests/Unit/Component/ES/AsyncUpdateElasticSearchTest.php | 16 +----\n tests/Unit/Component/ES/Listeners/UpdateMultipleTargetsListenerTest.php | 10 ---\n tests/Unit/Component/ES/Listeners/UpdateSingleTargetListenerTest.php | 6 --\n tests/Unit/Component/ES/Processor/TargetEntitiesSelectorTest.php | 9 ---\n tests/Unit/Component/ES/Processor/Traits/SelectEntityListTraitTest.php | 15 ++--\n tests/Unit/Component/ES/UpdateProcessManagerTest.php | 2 -\n tests/Unit/Services/Calendar/CalendarActivityServiceTest.php | 150 ++++++++++++++++++++++++++++++++++++++--\n tests/Unit/Services/Calendar/Command/MapActivityDataTest.php | 78 ++-------------------\n 15 files changed, 832 insertions(+), 322 deletions(-)\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (master) $ co -b JY-20613-allow-owner-role-on-team-setup\nSwitched to a new branch 'JY-20613-allow-owner-role-on-team-setup'\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20613-allow-owner-role-on-team-setup) $ csfix\ndocker exec -it docker_lamp_1 ./vendor/bin/php-cs-fixer fix --config=.php-cs-fixer.dist.php -v --using-cache=no --diff \nPHP CS Fixer 3.87.1 Alexander by Fabien Potencier, Dariusz Ruminski and contributors.\nPHP runtime: 8.3.30\nRunning analysis on 7 cores with 10 files per process.\nParallel runner is an experimental feature and may be unstable, use it at your own risk. Feedback highly appreciated!\nLoaded config default from \".php-cs-fixer.dist.php\".\n 5682/5682 [▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓] 100%\n\n\nFixed 0 of 5682 files in 56.978 seconds, 67.00 MB memory used\n\nWhat's next:\n Try Docker Debug for seamless, persistent debugging tools in any container or image → docker debug docker_lamp_1\n Learn more at https://docs.docker.com/go/debug-cli/\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20613-allow-owner-role-on-team-setup) $ ;xd\ndocker exec -it docker_lamp_1 bash -c \"mv /usr/local/etc/php/conf.d/xdebug.ini ~/xdebug.ini\"\n\nWhat's next:\n Try Docker Debug for seamless, persistent debugging tools in any container or image → docker debug docker_lamp_1\n Learn more at https://docs.docker.com/go/debug-cli/\ndocker exec -it docker_lamp_1 supervisorctl restart all\njiminny-worker-processing-2:jiminny-worker-processing-2_00: stopped\njiminny-worker-processing-3:jiminny-worker-processing-3_00: stopped\njiminny-worker-processing-4:jiminny-worker-processing-4_00: stopped\njiminny-worker-processing-5:jiminny-worker-processing-5_00: stopped\njiminny-worker-processing-delayed:jiminny-worker-processing-delayed_00: stopped\nworker-analytics:worker-analytics_00: stopped\nworker-crm-update:worker-crm-update_00: stopped\nworker-download:worker-download_00: stopped\nworker-nudges:worker-nudges_00: stopped\nartisan-schedule:artisan-schedule_00: stopped\nworker-emails:worker-emails_00: stopped\nworker-calendar:worker-calendar_00: stopped\nworker:worker_00: stopped\nworker-conferences:worker-conferences_00: stopped\nworker-crm-sync:worker-crm-sync_00: stopped\njiminny-worker-processing-1:jiminny-worker-processing-1_00: stopped\nworker-audio:worker-audio_00: stopped\nworker-es-update:worker-es-update_00: stopped\nartisan-schedule:artisan-schedule_00: started\njiminny-worker-processing-1:jiminny-worker-processing-1_00: started\njiminny-worker-processing-2:jiminny-worker-processing-2_00: started\njiminny-worker-processing-3:jiminny-worker-processing-3_00: started\njiminny-worker-processing-4:jiminny-worker-processing-4_00: started\njiminny-worker-processing-5:jiminny-worker-processing-5_00: started\njiminny-worker-processing-delayed:jiminny-worker-processing-delayed_00: started\nworker:worker_00: started\nworker-analytics:worker-analytics_00: started\nworker-audio:worker-audio_00: started\nworker-calendar:worker-calendar_00: started\nworker-conferences:worker-conferences_00: started\nworker-crm-sync:worker-crm-sync_00: started\nworker-crm-update:worker-crm-update_00: started\nworker-download:worker-download_00: started\nworker-emails:worker-emails_00: started\nworker-es-update:worker-es-update_00: started\nworker-nudges:worker-nudges_00: started\n\nWhat's next:\n Try Docker Debug for seamless, persistent debugging tools in any container or image → docker debug docker_lamp_1\n Learn more at https://docs.docker.com/go/debug-cli/\ndocker exec -it docker_lamp_1 php -v\nPHP 8.3.30 (cli) (built: Mar 16 2026 22:32:32) (NTS)\nCopyright (c) The PHP Group\nZend Engine v4.3.30, Copyright (c) Zend Technologies\n with Zend OPcache v8.3.30, Copyright (c), by Zend Technologies\n\nWhat's next:\n Try Docker Debug for seamless, persistent debugging tools in any container or image → docker debug docker_lamp_1\n Learn more at https://docs.docker.com/go/debug-cli/\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20613-allow-owner-role-on-team-setup) $ csfix\ndocker exec -it docker_lamp_1 ./vendor/bin/php-cs-fixer fix --config=.php-cs-fixer.dist.php -v --using-cache=no --diff \nPHP CS Fixer 3.87.1 Alexander by Fabien Potencier, Dariusz Ruminski and contributors.\nPHP runtime: 8.3.30\nRunning analysis on 7 cores with 10 files per process.\nParallel runner is an experimental feature and may be unstable, use it at your own risk. Feedback highly appreciated!\nLoaded config default from \".php-cs-fixer.dist.php\".\n 5682/5682 [▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓] 100%\n\n\nFixed 0 of 5682 files in 49.910 seconds, 60.00 MB memory used\n\nWhat's next:\n Try Docker Debug for seamless, persistent debugging tools in any container or image → docker debug docker_lamp_1\n Learn more at https://docs.docker.com/go/debug-cli/\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20613-allow-owner-role-on-team-setup) $ git status\nOn branch JY-20613-allow-owner-role-on-team-setup\nYour branch is ahead of 'origin/JY-20613-allow-owner-role-on-team-setup' by 1 commit.\n (use \"git push\" to publish your local commits)\n\nChanges not staged for commit:\n (use \"git add <file>...\" to update what will be committed)\n (use \"git restore <file>...\" to discard changes in working directory)\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tmodified: .env.local\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tmodified: config/logging.php\n\nUntracked files:\n (use \"git add <file>...\" to include in what will be committed)\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\t.env.nikilocal\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\t.env.other\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tWEBHOOK_FILTERING_IMPLEMENTATION.md\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tapp/Console/Commands/Crm/Hubspot/SimulateWebhooksCommand.php\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tapp/Console/Commands/Reports/CreateMockAskJiminnyReportResultCommand.php\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tids.txt\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tpublic/favicon.ico\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\traw_sql_query.sql\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\ttests/Unit/Policies/CanAccessAiReportsTest.php\n\nno changes added to commit (use \"git add\" and/or \"git commit -a\")\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20613-allow-owner-role-on-team-setup) $ git pull\nremote: Enumerating objects: 248, done.\nremote: Counting objects: 100% (128/128), done.\nremote: Compressing objects: 100% (23/23), done.\nremote: Total 59 (delta 43), reused 44 (delta 33), pack-reused 0 (from 0)\nUnpacking objects: 100% (59/59), 10.48 KiB | 228.00 KiB/s, done.\nFrom github.com:jiminny/app\n b7df560451..190239dfd4 JY-20613-allow-owner-role-on-team-setup -> origin/JY-20613-allow-owner-role-on-team-setup\n e0351be069..d94a285ae7 JY-20808-low-priority-indexing-queue -> origin/JY-20808-low-priority-indexing-queue\n * [new branch] JY-20920-fix-participant-matcher -> origin/JY-20920-fix-participant-matcher\n cb4ebf0c36..90bca4e4b2 master -> origin/master\nMerge made by the 'ort' strategy.\n app/Component/ES/ChunkSize.php | 54 +++++++++++++++++++++++++++\n app/Component/ES/Processor/DTOs/SelectionList.php | 4 +-\n app/Component/ES/Processor/TargetEntitiesSelector.php | 19 ++++++----\n app/Http/Middleware/McpTierMiddleware.php | 27 +++-----------\n app/Mcp/Servers/JiminnyServer.php | 2 +\n app/Mcp/Tools/GetMeTool.php | 157 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++\n app/Models/Feature/FeatureEnum.php | 1 +\n database/migrations/2026_05_13_124153_create_mcp_feature_flag.php | 25 +++++++++++++\n front-end/src/components/Settings/Kiosk/modals/EditTeamModal/EditTeamModal.vue | 52 ++++++++++++++++++--------\n front-end/src/components/Settings/Kiosk/modals/EditTeamModal/__tests__/EditTeamModal.spec.js | 14 +++++++\n tests/Feature/Mcp/GetMeToolFeatureTest.php | 140 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++\n tests/Feature/Mcp/ListCallsToolFeatureTest.php | 2 +-\n tests/Feature/Mcp/McpTestHelpersTrait.php | 19 +++++++++-\n tests/Unit/Component/ES/ChunkSizeTest.php | 50 +++++++++++++++++++++++++\n tests/Unit/Component/ES/Processor/DTOs/SelectionListTest.php | 27 ++++++++++----\n tests/Unit/Component/ES/Processor/TargetEntitiesSelectorTest.php | 39 +++++++++++---------\n 16 files changed, 557 insertions(+), 75 deletions(-)\n create mode 100644 app/Component/ES/ChunkSize.php\n create mode 100644 app/Mcp/Tools/GetMeTool.php\n create mode 100644 database/migrations/2026_05_13_124153_create_mcp_feature_flag.php\n create mode 100644 tests/Feature/Mcp/GetMeToolFeatureTest.php\n create mode 100644 tests/Unit/Component/ES/ChunkSizeTest.php\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20613-allow-owner-role-on-team-setup) $ git push\nEnumerating objects: 40, done.\nCounting objects: 100% (34/34), done.\nDelta compression using up to 8 threads\nCompressing objects: 100% (18/18), done.\nWriting objects: 100% (18/18), 1.58 KiB | 1.58 MiB/s, done.\nTotal 18 (delta 15), reused 0 (delta 0), pack-reused 0\nremote: Resolving deltas: 100% (15/15), completed with 13 local objects.\nTo github.com:jiminny/app.git\n 190239dfd4..ec1b261264 JY-20613-allow-owner-role-on-team-setup -> JY-20613-allow-owner-role-on-team-setup\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20613-allow-owner-role-on-team-setup) $ gbr\n* JY-20613-allow-owner-role-on-team-setup\n pipedrive-sdk-poc\n master\n JY-20903-update_activity-stage-on-opportunity-change\n JY-20904-fix-update-es-on-activity-command\n JY-20891-improve-sms-text-relays\n JY-20725-handle-HS-search-rate-limit\n JY-20818-move-AJ-reports-to-separated-datadog-metric\n JY-20773-fix-automated-reports-user-pilot-tracking\n JY-20157-AJ-report-not-send-notification\n JY-20508-notify-before-AJ-report-expiration\n JY-20372-ai-reports-promotion-pages\n JY-20352-sync-opportunities-without-a-local-owner-user-id-is-null\n JY-20738-debug-AJ-tracking-UP\n a\n JY-18909-automated-reports-ask-jiminny\n JY-20692-fix-integration-app-token-auth-response-change\n JY-20553-debug-crm-sync-delays\n JY-20698-fix-SF-activity-types-on-new-playbook\n JY-20543-AJ-report-tracking\n JY-20384-handle-auto-sync-with-no-access-to-event-type\n JY-20458-ask-jiminny-user-definitions\n JY-19666-fix-import-contacts-account-association\n JY-19666-HS-import-contacts-and-accounts-batch-job\n JY-20458-Ask-Jiminny-Reports\n JY-20200-batch-update-CRM-objects-Salesforce\n JY-19666-HS-webhooks-add-contact-and-company\n JY-20348-trigger-setup-DI-layout-on-team-creation\n JY-20326-refactor-info-message-in-command\n JY-20317-fix-auto-log-delay-issue-on-all-channels-disabled\n JY-20312-remove-on-update-change-last-synced-at-crm-configurations\n JY-20306-SF-skip-auto-sync-for-task-based-playbook\n JY-20192-remove-deleted-team-from-saved-search-filters\n JY-20197-import-opportunity-batch-job\n JY-20293-enable-status-field-for-pipedrive-deals\n JY-20191-remove-commands-interactive-prompts\n JY-20118-change-default-sync-strategy\n JY-20183-add-cache-on-auto-log-delay\n JY-20197-add-import-opportunity-batch-job\n 20118-hs-opportunity-make-webhook-strategy-default\n JY-20118-make-default-hs-opportunity-sync-strategy-webhook-based\n JY-20196-handle-opportunity-without-note\n JY-20118-improve-opportunity-import\n JY-20189-handle-activity-search-on-deleted-groups\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20613-allow-owner-role-on-team-setup) $ co JY-20725-handle-HS-search-rate-limit\nM\u0000\u0000\u0000\u0000\u0000\u0000\t.env.local\nM\u0000\u0000\u0000\u0000\u0000\u0000\tconfig/logging.php\nSwitched to branch 'JY-20725-handle-HS-search-rate-limit'\nYour branch is behind 'origin/JY-20725-handle-HS-search-rate-limit' by 439 commits, and can be fast-forwarded.\n (use \"git pull\" to update your local branch)\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20725-handle-HS-search-rate-limit) $ git pull\nUpdating 0f3e438941..bc6a3fce6b\nFast-forward\n .gitignore | 3 +-\n .windsurfrules | 168 ++---\n CLAUDE.md | 1 +\n app/Component/ActivityAnalytics/Service/CalculateTalkTimeOffsetsFromTranscription.php | 24 +-\n app/Component/AiActivityType/Services/AiActivityTypeEligibilityChecker.php | 28 +-\n app/Component/AiAutomation/Actions/PrepareUpdateDtoAction.php | 32 +-\n app/Component/AiAutomation/Services/CrmFillingEligibilityChecker.php | 47 ++\n app/Component/AiAutomation/TestCrmAiPromptService.php | 14 +\n app/Component/AiCallScoring/Services/AiCallScoringEligibilityChecker.php | 9 +\n app/Component/ES/ElasticSearchDocumentPartialUpdater.php | 13 +-\n app/Component/ES/ElasticSearchWorkerManager.php | 86 ---\n app/Component/ES/Processor/Actions/LoadDocumentsAction.php | 80 +--\n app/Component/ES/Processor/EntityQueryBuilder.php | 12 +-\n app/Component/ES/Processor/TargetEntitiesSelector.php | 2 +-\n app/Component/ES/Processor/Traits/SkipActivityTrait.php | 25 -\n app/Component/ES/Repositories/EsResetActivityRepository.php | 11 +-\n app/Component/ES/Worker/ActivityWorker.php | 73 --\n app/Component/ES/Worker/EntityWorker.php | 44 --\n app/Component/ES/Worker/WorkerAmount.php | 60 --\n app/Component/ES/Worker/WorkerInterface.php | 15 -\n app/Component/ElasticSearch/Contract/Searchable.php | 4 +\n app/Component/Encoding/Job/AnalyzeTrackChannelsJob.php | 20 +-\n app/Component/Encoding/Service/GenerateSpeechFromSilenceService.php | 85 ++-\n app/Component/FFMpeg/Services/GetSpeechIntervalsService.php | 18 +-\n app/Component/LanguageDetection/Services/FindSpeechTimeService.php | 22 +-\n app/Component/Nudge/Job/ProcessOrganisationImmediateNudgesJob.php | 218 +++++-\n app/Component/ParagraphBreaker/Services/TranscriptionParagraphsService.php | 4 +\n app/Component/ParticipantSpeech/Services/ParticipantSpeechesCreator.php | 33 +\n app/Component/ParticipantSpeech/Services/ParticipantSpeechesDeleter.php | 15 +\n app/Component/ParticipantSpeech/Services/ParticipantSpeechesProvider.php | 51 +-\n app/Component/ParticipantSpeech/Services/ParticipantSpeechesUploader.php | 36 +\n app/Component/ProphetAi/Exceptions/InsufficientTranscriptException.php | 11 +\n app/Component/Transcription/DTO/Http/Transcription/AssemblyAI/AssemblyAI/NoAssemblyIdException.php | 11 +\n app/Component/Transcription/DTO/Http/Transcription/AssemblyAI/AssemblyAI/SuccessfulResponse.php | 6 +\n app/Component/Transcription/DTO/Http/Transcription/TranscriptionIsNotCorrectFormatException.php | 11 +\n app/Component/Transcription/Diarization/Services/GetNormalizedParticipantSpeechesService.php | 23 +-\n app/Component/Transcription/Diarization/Source/MeetingBotSource.php | 16 +-\n app/Component/Transcription/TranscriptionProcessor/TranscriptionProcessor.php | 3 +\n app/Console/Commands/Activities/ActivityHardDeleteCommand.php | 4 +-\n app/Console/Commands/Activities/Copy.php | 2 +\n app/Console/Commands/Activities/SetupIntegration/TwilioSetS3RecordingCredentialsCommand.php | 119 ++++\n app/Console/Commands/Activities/UpdateActivityElasticSearchDocumentCommand.php | 10 +-\n app/Console/Commands/Crm/BackfillOpportunityUserFromAccountCommand.php | 126 ++++\n app/Console/Commands/Elasticsearch/AsyncUpdateEsActivities.php | 19 -\n app/Console/Commands/Elasticsearch/AsyncUpdateEsEntities.php | 50 +-\n app/Console/Commands/Elasticsearch/ResetAsyncElasticSearchCommand.php | 30 +-\n app/Console/Commands/GeckoExport/GeckoExportParticipantSpeechesCommand.php | 14 +-\n app/Console/Commands/IssueMcpTokenCommand.php | 84 +++\n app/Console/Commands/JiminnyDebugCommand.php | 7 +-\n app/Console/Commands/Tracks/CleanupActivityTracksCommand.php | 2 +-\n app/Console/Kernel.php | 6 +-\n app/Contracts/Services/Calendar/CalendarTrait.php | 80 ++-\n app/Events/AutomatedReports/AutomatedReportGenerated.php | 3 +\n app/Http/Controllers/API/AiCallScoring/AiScorecardController.php | 7 +-\n app/Http/Controllers/API/TeamAiAutomationController.php | 8 +\n app/Http/Controllers/CustomerApi/CustomerApiController.php | 4 +-\n app/Http/Controllers/Kiosk/ActivityController.php | 58 +-\n app/Http/Controllers/Settings/PlaybookController.php | 15 +-\n app/Http/Kernel.php | 23 +\n app/Http/Middleware/McpAuditMiddleware.php | 156 ++++\n app/Http/Middleware/McpTierMiddleware.php | 54 ++\n app/Http/Requests/API/V2/ZapierUploadActivityRequest.php | 28 +-\n app/Jobs/Activity/Import/ImportTwilioVideoSpeechesJob.php | 25 +-\n app/Jobs/Activity/Import/IsActivityReadyForProcessingJob.php | 10 +-\n app/Jobs/Calendar/SetupCalendarSync.php | 21 +-\n app/Jobs/ImportRemoteTrackJob.php | 96 ++-\n app/Jobs/Mailbox/EmailTextRelay.php | 15 +-\n app/Mcp/Contracts/McpCallRepositoryInterface.php | 30 +\n app/Mcp/DTO/ListCallsFilters.php | 29 +\n app/Mcp/Errors/McpError.php | 123 ++++\n app/Mcp/Repositories/McpActivityHydrator.php | 145 ++++\n app/Mcp/Repositories/McpCallRepository.php | 84 +++\n app/Mcp/Repositories/McpElasticCallRepository.php | 171 +++++\n app/Mcp/Servers/JiminnyServer.php | 38 +\n app/Mcp/Tools/ListCallsTool.php | 205 ++++++\n app/Models/Activity.php | 10 +-\n app/Models/Activity/Transcription.php | 17 +-\n app/Models/ElasticSearch/OpportunityElasticSearchTrait.php | 5 +\n app/Models/Participant.php | 1 +\n app/Providers/AppServiceProvider.php | 22 +\n app/Repositories/Crm/ContactRepository.php | 69 +-\n app/Repositories/ParticipantSpeechRepository.php | 13 +-\n app/Services/Activity/ParticipantsService.php | 19 +-\n app/Services/Activity/Twilio/S3RecordingCredentialsService.php | 82 +++\n app/Services/ActivityService.php | 21 +-\n app/Services/Calendar/CalendarActivityService.php | 46 ++\n app/Services/Calendar/Command/ImportParticipants.php | 1 +\n app/Services/Calendar/Command/MapActivityData.php | 106 +--\n app/Services/Calendar/GoogleCalendarService.php | 12 +-\n app/Services/Crm/Close/Processor/OpportunityProcessor.php | 2 +-\n app/Services/Crm/Close/Service.php | 22 +-\n app/Services/Crm/Copper/Service.php | 12 +-\n app/Services/Crm/Hubspot/Service.php | 154 +++-\n app/Services/Crm/Hubspot/ServiceTraits/OpportunitySyncTrait.php | 88 ++-\n app/Services/Crm/IntegrationApp/ServiceTraits/SyncCrmEntitiesTrait.php | 22 +-\n app/Services/Crm/Pipedrive/Service.php | 17 +-\n app/Services/Crm/Salesforce/Service.php | 42 +-\n app/Services/Mail/Office/EmailApiClient.php | 129 +---\n app/Services/RecallAI/Commands/ScheduleBotCommand.php | 39 +-\n app/Services/RecallAI/RecallAIService.php | 22 +-\n composer.json | 3 +-\n composer.lock | 87 ++-\n config/mcp.php | 23 +\n database/migrations/2026_04_30_120000_create_mcp_audit_log_table.php | 36 +\n docs/mcp/explorer/explorer.html | 697 ++++++++++++++++++\n docs/mcp/explorer/explorer.template.html | 697 ++++++++++++++++++\n docs/mcp/explorer/generate.js | 215 ++++++\n docs/mcp/explorer/tool-explorer-meta.json | 11 +\n docs/mcp/tools-list.json | 2536 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++\n docs/mcp/tools.md | 621 ++++++++++++++++\n front-end/package.json | 4 +-\n front-end/src/components/Settings/OrgSettings/AiAutomation/CrmFilling/TemplateFieldForm.vue | 28 +-\n front-end/src/components/Settings/OrgSettings/Playbooks/AddEditPlaybook.vue | 10 +\n front-end/src/components/playback/comments/ActivityComment.less | 10 +-\n front-end/src/components/shared/PromptTester/PromptTester.vue | 12 +-\n front-end/src/components/shared/__tests__/PromptTester.spec.js | 35 +\n front-end/src/components/shared/modals/EntityPickerModal/__tests__/useEntitiesCache.spec.ts | 37 +\n front-end/src/components/shared/modals/EntityPickerModal/useEntitiesCache.ts | 9 +\n front-end/yarn.lock | 16 +-\n phpstan-baseline.neon | 50 --\n routes/api.php | 11 +\n sonar-project.properties | 91 ++-\n tests/Feature/Component/Nudge/ProcessOrganisationImmediateNudgesJobTest.php | 534 ++++++++++++++\n tests/Feature/Jobs/ImportRemoteTrackJobTest.php | 283 +++++++-\n tests/Feature/Mcp/IssueMcpTokenCommandTest.php | 53 ++\n tests/Feature/Mcp/ListCallsToolElasticFeatureTest.php | 155 ++++\n tests/Feature/Mcp/ListCallsToolFeatureTest.php | 352 ++++++++++\n tests/Feature/Mcp/McpTestHelpersTrait.php | 77 ++\n tests/Feature/Services/Team/TeamDeleteHandlers/Retention/RetentionRepositoryHandlerTest.php | 1 +\n tests/Stubs/SentryStub.php | 18 +\n tests/Unit/Component/ActivityAnalytics/Service/CalculateTalkTimeOffsetFromTranscriptionTest.php | 28 +-\n tests/Unit/Component/AiActivityType/Services/AiActivityTypeEligibilityCheckerTest.php | 103 ++-\n tests/Unit/Component/AiAutomation/Actions/PrepareUpdateDtoActionTest.php | 91 +++\n tests/Unit/Component/AiAutomation/Services/CrmFillingEligibilityCheckerTest.php | 124 ++++\n tests/Unit/Component/AiAutomation/TestCrmAiPromptServiceTest.php | 67 +-\n tests/Unit/Component/AiCallScoring/Services/AiCallScoringEligibilityCheckerTest.php | 55 ++\n tests/Unit/Component/ES/ElasticSearchWorkerManagerTest.php | 135 ----\n tests/Unit/Component/ES/Processor/Actions/LoadDocumentsActionTest.php | 220 ++++++\n tests/Unit/Component/ES/Processor/EntityQueryBuilderTest.php | 21 +-\n tests/Unit/Component/ES/Processor/Traits/SkipActivityTraitTest.php | 51 --\n tests/Unit/Component/ES/Worker/ActivityWorkerTest.php | 174 -----\n tests/Unit/Component/ES/Worker/EntityWorkerTest.php | 97 ---\n tests/Unit/Component/ES/Worker/WorkerAmountTest.php | 116 ---\n tests/Unit/Component/Encoding/Job/AnalyzeTrackChannelsJobTest.php | 52 +-\n tests/Unit/Component/Encoding/Service/GenerateSpeechFromSilenceServiceTest.php | 171 ++---\n tests/Unit/Component/FFMpeg/Services/GetSpeechIntervalsTest.php | 36 +-\n tests/Unit/Component/LanguageDetection/Services/FindSpeechTimeServiceTest.php | 20 +-\n tests/Unit/Component/MobileSettings/MobileSettingsControllerTest.php | 5 +-\n tests/Unit/Component/ParticipantSpeech/Services/ParticipantSpeechesCreatorTest.php | 75 ++\n tests/Unit/Component/ParticipantSpeech/Services/ParticipantSpeechesDeleterTest.php | 63 ++\n tests/Unit/Component/ParticipantSpeech/Services/ParticipantSpeechesProviderTest.php | 134 ++++\n tests/Unit/Component/ParticipantSpeech/Services/ParticipantSpeechesUploaderTest.php | 57 ++\n tests/Unit/Component/Transcription/Diarization/Services/GetNormalizedParticipantSpeechesServiceTest.php | 51 +-\n tests/Unit/Component/Transcription/Diarization/Source/MeetingBotSourceTest.php | 29 +-\n tests/Unit/Contracts/Services/Calendar/CalendarTraitTest.php | 58 +-\n tests/Unit/Http/Controllers/Kiosk/ActivityControllerTest.php | 159 +++++\n tests/Unit/Jobs/Activity/Import/ImportTwilioVideoSpeechesJobTest.php | 22 +-\n tests/Unit/Jobs/Activity/Import/IsActivityReadyForProcessingJobTest.php | 26 +-\n tests/Unit/Jobs/Calendar/SetupCalendarSyncTest.php | 25 -\n tests/Unit/Services/Activity/ParticipantsServiceTest.php | 12 +-\n tests/Unit/Services/Activity/Twilio/S3RecordingCredentialsServiceTest.php | 180 +++++\n tests/Unit/Services/ActivityServiceTest.php | 132 ++++\n tests/Unit/Services/Calendar/CalendarActivityServiceTest.php | 150 +++-\n tests/Unit/Services/Calendar/Command/ImportParticipantsTest.php | 6 +-\n tests/Unit/Services/Calendar/Command/MapActivityDataTest.php | 78 +-\n tests/Unit/Services/Calendar/GoogleCalendarServiceTest.php | 116 +++\n tests/Unit/Services/Crm/Close/ServiceTest.php | 165 +++++\n tests/Unit/Services/Crm/Hubspot/ServiceTest.php | 272 ++++++-\n tests/Unit/Services/Crm/Hubspot/ServiceTraits/OpportunitySyncTest.php | 25 +-\n tests/Unit/Services/Crm/Hubspot/ServiceTraits/OpportunitySyncTraitMatchActivitiesTest.php | 3 +-\n tests/Unit/Services/Crm/IntegrationApp/ServiceTraits/SyncCrmEntitiesTraitOpportunitiesTest.php | 40 ++\n tests/Unit/Services/Crm/Pipedrive/ImportOpportunityMatchActivitiesTest.php | 2 +\n tests/Unit/Services/Crm/Salesforce/ServiceTest.php | 139 ++++\n tests/Unit/Services/Mail/Office/EmailApiClientTest.php | 195 ++---\n tests/Unit/Services/RecallAI/RecallAIServiceTest.php | 24 +-\n 175 files changed, 12562 insertions(+), 2162 deletions(-)\n create mode 120000 CLAUDE.md\n create mode 100644 app/Component/AiAutomation/Services/CrmFillingEligibilityChecker.php\n delete mode 100644 app/Component/ES/ElasticSearchWorkerManager.php\n delete mode 100644 app/Component/ES/Processor/Traits/SkipActivityTrait.php\n delete mode 100644 app/Component/ES/Worker/ActivityWorker.php\n delete mode 100644 app/Component/ES/Worker/EntityWorker.php\n delete mode 100644 app/Component/ES/Worker/WorkerAmount.php\n delete mode 100644 app/Component/ES/Worker/WorkerInterface.php\n create mode 100644 app/Component/ProphetAi/Exceptions/InsufficientTranscriptException.php\n create mode 100644 app/Component/Transcription/DTO/Http/Transcription/AssemblyAI/AssemblyAI/NoAssemblyIdException.php\n create mode 100644 app/Component/Transcription/DTO/Http/Transcription/TranscriptionIsNotCorrectFormatException.php\n create mode 100644 app/Console/Commands/Activities/SetupIntegration/TwilioSetS3RecordingCredentialsCommand.php\n create mode 100644 app/Console/Commands/Crm/BackfillOpportunityUserFromAccountCommand.php\n delete mode 100644 app/Console/Commands/Elasticsearch/AsyncUpdateEsActivities.php\n create mode 100644 app/Console/Commands/IssueMcpTokenCommand.php\n create mode 100644 app/Http/Middleware/McpAuditMiddleware.php\n create mode 100644 app/Http/Middleware/McpTierMiddleware.php\n create mode 100644 app/Mcp/Contracts/McpCallRepositoryInterface.php\n create mode 100644 app/Mcp/DTO/ListCallsFilters.php\n create mode 100644 app/Mcp/Errors/McpError.php\n create mode 100644 app/Mcp/Repositories/McpActivityHydrator.php\n create mode 100644 app/Mcp/Repositories/McpCallRepository.php\n create mode 100644 app/Mcp/Repositories/McpElasticCallRepository.php\n create mode 100644 app/Mcp/Servers/JiminnyServer.php\n create mode 100644 app/Mcp/Tools/ListCallsTool.php\n create mode 100644 app/Services/Activity/Twilio/S3RecordingCredentialsService.php\n create mode 100644 config/mcp.php\n create mode 100644 database/migrations/2026_04_30_120000_create_mcp_audit_log_table.php\n create mode 100644 docs/mcp/explorer/explorer.html\n create mode 100644 docs/mcp/explorer/explorer.template.html\n create mode 100644 docs/mcp/explorer/generate.js\n create mode 100644 docs/mcp/explorer/tool-explorer-meta.json\n create mode 100644 docs/mcp/tools-list.json\n create mode 100644 docs/mcp/tools.md\n create mode 100644 front-end/src/components/shared/modals/EntityPickerModal/__tests__/useEntitiesCache.spec.ts\n create mode 100644 tests/Feature/Component/Nudge/ProcessOrganisationImmediateNudgesJobTest.php\n create mode 100644 tests/Feature/Mcp/IssueMcpTokenCommandTest.php\n create mode 100644 tests/Feature/Mcp/ListCallsToolElasticFeatureTest.php\n create mode 100644 tests/Feature/Mcp/ListCallsToolFeatureTest.php\n create mode 100644 tests/Feature/Mcp/McpTestHelpersTrait.php\n create mode 100644 tests/Stubs/SentryStub.php\n create mode 100644 tests/Unit/Component/AiAutomation/Services/CrmFillingEligibilityCheckerTest.php\n delete mode 100644 tests/Unit/Component/ES/ElasticSearchWorkerManagerTest.php\n create mode 100644 tests/Unit/Component/ES/Processor/Actions/LoadDocumentsActionTest.php\n delete mode 100644 tests/Unit/Component/ES/Processor/Traits/SkipActivityTraitTest.php\n delete mode 100644 tests/Unit/Component/ES/Worker/ActivityWorkerTest.php\n delete mode 100644 tests/Unit/Component/ES/Worker/EntityWorkerTest.php\n delete mode 100644 tests/Unit/Component/ES/Worker/WorkerAmountTest.php\n create mode 100644 tests/Unit/Component/ParticipantSpeech/Services/ParticipantSpeechesCreatorTest.php\n create mode 100644 tests/Unit/Http/Controllers/Kiosk/ActivityControllerTest.php\n create mode 100644 tests/Unit/Services/Activity/Twilio/S3RecordingCredentialsServiceTest.php\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20725-handle-HS-search-rate-limit) $ git status\nOn branch master\nYour branch is behind 'origin/master' by 114 commits, and can be fast-forwarded.\n (use \"git pull\" to update your local branch)\n\nChanges not staged for commit:\n (use \"git add <file>...\" to update what will be committed)\n (use \"git restore <file>...\" to discard changes in working directory)\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tmodified: .env.local\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tmodified: app/Component/SCIM/Constants.php\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tmodified: app/Component/SCIM/ScimProvisioning.php\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tmodified: app/Component/Twilio/Conference/ConferenceManager/SoftPhoneManager.php\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tmodified: app/Console/Commands/JiminnyDebugCommand.php\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tmodified: app/DTO/SCIM/AAD/Request/CoreUserRequest.php\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tmodified: app/DTO/SCIM/AAD/Response/CoreUser.php\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tmodified: app/Services/Telephony/TextMessagingService.php\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tmodified: config/logging.php\n\nUntracked files:\n (use \"git add <file>...\" to include in what will be committed)\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\t.env.nikilocal\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\t.env.other\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tWEBHOOK_FILTERING_IMPLEMENTATION.md\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tapp/Component/SCIM/Mutators/Attributes/User/RoleAttr.php\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tapp/Console/Commands/Crm/Hubspot/SimulateWebhooksCommand.php\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tapp/Console/Commands/Reports/CreateMockAskJiminnyReportResultCommand.php\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tapp/Rules/ListenerRoleCannotHaveAdminOrManagerPermissionRule.php\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tids.txt\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tpublic/favicon.ico\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\traw_sql_query.sql\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\ttests/Unit/Component/SCIM/Mutators/Attributes/User/RoleAttrTest.php\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\ttests/Unit/Policies/CanAccessAiReportsTest.php\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\ttests/Unit/Rules/ListenerRoleCannotHaveAdminOrManagerPermissionRuleTest.php\n\nno changes added to commit (use \"git add\" and/or \"git commit -a\")\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (master) $ git pull\nremote: Enumerating objects: 306, done.\nremote: Counting objects: 100% (299/299), done.\nremote: Compressing objects: 100% (183/183), done.\nremote: Total 306 (delta 213), reused 171 (delta 116), pack-reused 7 (from 1)\nReceiving objects: 100% (306/306), 80.12 KiB | 1000.00 KiB/s, done.\nResolving deltas: 100% (213/213), completed with 53 local objects.\nFrom github.com:jiminny/app\n 90bca4e4b2..5604af40cf master -> origin/master\n 4e7078fd8b..0b8343d179 JY-18091-upgrade-to-php-8-5 -> origin/JY-18091-upgrade-to-php-8-5\n 098eeaa087..d5a447e492 JY-20613-allow-owner-role-on-team-setup -> origin/JY-20613-allow-owner-role-on-team-setup\n c3a76ace91..af65249d0f JY-20749-user-can-view-recorded-meetings -> origin/JY-20749-user-can-view-recorded-meetings\n d94a285ae7..7ce96cb5fe JY-20808-low-priority-indexing-queue -> origin/JY-20808-low-priority-indexing-queue\n * [new branch] JY-20842-remove-partial-updater -> origin/JY-20842-remove-partial-updater\n * [new branch] JY-20920-fix-participant-flip -> origin/JY-20920-fix-participant-flip\n * [new branch] secfix/npm-20260519 -> origin/secfix/npm-20260519\nUpdating cb4ebf0c36..5604af40cf\nFast-forward\n app/Component/ES/ChunkSize.php | 54 +++++++++++++++++++\n app/Component/ES/Processor/DTOs/SelectionList.php | 4 +-\n app/Component/ES/Processor/TargetEntitiesSelector.php | 19 ++++---\n app/Component/MeetingBot/Service/ParticipantMatcher.php | 46 ++++++++++++----\n app/Exceptions/RateLimitException.php | 19 ++++++-\n app/Http/Middleware/McpTierMiddleware.php | 27 ++--------\n app/Jobs/Crm/MatchActivityCrmData.php | 47 ++++++++++++----\n app/Jobs/Middleware/HandleHubspotRateLimit.php | 42 +++++++++++++++\n app/Mcp/Servers/JiminnyServer.php | 2 +\n app/Mcp/Tools/GetMeTool.php | 157 +++++++++++++++++++++++++++++++++++++++++++++++++++++\n app/Models/Feature/FeatureEnum.php | 1 +\n app/Services/Activity/HubSpot/ProviderResolver.php | 4 +-\n app/Services/Activity/HubSpot/ProviderResolverInterface.php | 2 +-\n app/Services/Activity/HubSpot/Providers/Provider.php | 2 +-\n app/Services/Activity/HubSpot/Providers/ProviderKixie.php | 2 +-\n app/Services/Activity/HubSpot/Providers/ProviderOrum.php | 2 +-\n app/Services/Activity/HubSpot/Providers/ProviderTwilio.php | 2 +-\n app/Services/Activity/HubSpot/Providers/ProviderTwilioFlex.php | 5 +-\n app/Services/Activity/HubSpot/Service.php | 97 +++++++++++++++++++++++++++------\n app/Services/Crm/Hubspot/Client.php | 132 +++++++++++++++++++++++++++++++++++++++++++++\n app/Services/Crm/Hubspot/HubspotClientInterface.php | 15 ++++++\n app/Services/Crm/Hubspot/Pagination/HubspotPaginationService.php | 21 ++++----\n app/Services/Crm/Hubspot/Pagination/PaginationState.php | 2 +-\n database/migrations/2026_05_13_124153_create_mcp_feature_flag.php | 25 +++++++++\n tests/Feature/Mcp/GetMeToolFeatureTest.php | 140 +++++++++++++++++++++++++++++++++++++++++++++++\n tests/Feature/Mcp/ListCallsToolFeatureTest.php | 2 +-\n tests/Feature/Mcp/McpTestHelpersTrait.php | 19 ++++++-\n tests/Unit/Component/ES/ChunkSizeTest.php | 50 +++++++++++++++++\n tests/Unit/Component/ES/Processor/DTOs/SelectionListTest.php | 27 +++++++---\n tests/Unit/Component/ES/Processor/TargetEntitiesSelectorTest.php | 39 ++++++++------\n tests/Unit/Component/MeetingBot/Service/ParticipantMatcherTest.php | 68 ++++++++++++++++++++++-\n tests/Unit/Exceptions/RateLimitExceptionTest.php | 56 +++++++++++++++++++\n tests/Unit/Jobs/Crm/MatchActivityCrmDataTest.php | 8 +--\n tests/Unit/Jobs/Middleware/HandleHubspotRateLimitTest.php | 151 +++++++++++++++++++++++++++++++++++++++++++++++++++\n tests/Unit/Services/Activity/HubSpot/ServiceTest.php | 109 +++++++++++++++++++++++++++++++++++++\n tests/Unit/Services/Crm/Hubspot/ClientTest.php | 250 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++\n tests/Unit/Services/Crm/Hubspot/Pagination/HubspotPaginationServiceTest.php | 283 +++++++++++++++++++++---------------------------------------------------------------------------\n 37 files changed, 1587 insertions(+), 344 deletions(-)\n create mode 100644 app/Component/ES/ChunkSize.php\n create mode 100644 app/Jobs/Middleware/HandleHubspotRateLimit.php\n create mode 100644 app/Mcp/Tools/GetMeTool.php\n create mode 100644 database/migrations/2026_05_13_124153_create_mcp_feature_flag.php\n create mode 100644 tests/Feature/Mcp/GetMeToolFeatureTest.php\n create mode 100644 tests/Unit/Component/ES/ChunkSizeTest.php\n create mode 100644 tests/Unit/Exceptions/RateLimitExceptionTest.php\n create mode 100644 tests/Unit/Jobs/Middleware/HandleHubspotRateLimitTest.php\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (master) $ git pull\nAlready up to date.\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (master) $ co -b JY-20676-delete-report-related-objects\nSwitched to a new branch 'JY-20676-delete-report-related-objects'\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20676-delete-report-related-objects) $ csfix\ndocker exec -it docker_lamp_1 ./vendor/bin/php-cs-fixer fix --config=.php-cs-fixer.dist.php -v --using-cache=no --diff \nPHP CS Fixer 3.87.1 Alexander by Fabien Potencier, Dariusz Ruminski and contributors.\nPHP runtime: 8.3.30\nRunning analysis on 7 cores with 10 files per process.\nParallel runner is an experimental feature and may be unstable, use it at your own risk. Feedback highly appreciated!\nLoaded config default from \".php-cs-fixer.dist.php\".\n 5690/5690 [▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓] 100%\n\n 1) app/Console/Commands/JiminnyDebugCommand.php (statement_indentation, blank_line_before_statement)\n ---------- begin diff ----------\n--- /home/jiminny/app/Console/Commands/JiminnyDebugCommand.php\n+++ /home/jiminny/app/Console/Commands/JiminnyDebugCommand.php\n@@ -23,6 +23,7 @@\n \n if ($action === 'redis-set') {\n $this->testRedisSet();\n+\n return;\n }\n \n@@ -45,7 +46,7 @@\n $ttl = 60;\n \n try {\n-// $result = Redis::set($testKey, $testValue, 'EX', $ttl, 'NX');\n+ // $result = Redis::set($testKey, $testValue, 'EX', $ttl, 'NX');\n $result = Redis::set($testKey, $testValue, ['nx', 'ex' => $ttl]);\n \n if ($result) {\n\n ----------- end diff -----------\n\n\nFixed 1 of 5690 files in 50.673 seconds, 67.00 MB memory used\n\nWhat's next:\n Try Docker Debug for seamless, persistent debugging tools in any container or image → docker debug docker_lamp_1\n Learn more at https://docs.docker.com/go/debug-cli/\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20676-delete-report-related-objects) $ ;xd\ndocker exec -it docker_lamp_1 bash -c \"mv /usr/local/etc/php/conf.d/xdebug.ini ~/xdebug.ini\"\n\nWhat's next:\n Try Docker Debug for seamless, persistent debugging tools in any container or image → docker debug docker_lamp_1\n Learn more at https://docs.docker.com/go/debug-cli/\ndocker exec -it docker_lamp_1 supervisorctl restart all\njiminny-worker-processing-2:jiminny-worker-processing-2_00: stopped\njiminny-worker-processing-3:jiminny-worker-processing-3_00: stopped\njiminny-worker-processing-4:jiminny-worker-processing-4_00: stopped\njiminny-worker-processing-5:jiminny-worker-processing-5_00: stopped\njiminny-worker-processing-delayed:jiminny-worker-processing-delayed_00: stopped\nworker-analytics:worker-analytics_00: stopped\nworker-crm-update:worker-crm-update_00: stopped\nworker-download:worker-download_00: stopped\nworker-nudges:worker-nudges_00: stopped\nworker-calendar:worker-calendar_00: stopped\nworker-audio:worker-audio_00: stopped\njiminny-worker-processing-1:jiminny-worker-processing-1_00: stopped\nworker:worker_00: stopped\nworker-conferences:worker-conferences_00: stopped\nworker-crm-sync:worker-crm-sync_00: stopped\nworker-emails:worker-emails_00: stopped\nworker-es-update:worker-es-update_00: stopped\nartisan-schedule:artisan-schedule_00: stopped\nartisan-schedule:artisan-schedule_00: started\njiminny-worker-processing-1:jiminny-worker-processing-1_00: started\njiminny-worker-processing-2:jiminny-worker-processing-2_00: started\njiminny-worker-processing-3:jiminny-worker-processing-3_00: started\njiminny-worker-processing-4:jiminny-worker-processing-4_00: started\njiminny-worker-processing-5:jiminny-worker-processing-5_00: started\njiminny-worker-processing-delayed:jiminny-worker-processing-delayed_00: started\nworker:worker_00: started\nworker-analytics:worker-analytics_00: started\nworker-audio:worker-audio_00: started\nworker-calendar:worker-calendar_00: started\nworker-conferences:worker-conferences_00: started\nworker-crm-sync:worker-crm-sync_00: started\nworker-crm-update:worker-crm-update_00: started\nworker-download:worker-download_00: started\nworker-emails:worker-emails_00: started\nworker-es-update:worker-es-update_00: started\nworker-nudges:worker-nudges_00: started\n\nWhat's next:\n Try Docker Debug for seamless, persistent debugging tools in any container or image → docker debug docker_lamp_1\n Learn more at https://docs.docker.com/go/debug-cli/\ndocker exec -it docker_lamp_1 php -v\nPHP 8.3.30 (cli) (built: Mar 16 2026 22:32:32) (NTS)\nCopyright (c) The PHP Group\nZend Engine v4.3.30, Copyright (c) Zend Technologies\n with Zend OPcache v8.3.30, Copyright (c), by Zend Technologies\n\nWhat's next:\n Try Docker Debug for seamless, persistent debugging tools in any container or image → docker debug docker_lamp_1\n Learn more at https://docs.docker.com/go/debug-cli/\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20676-delete-report-related-objects) $ git status\nOn branch JY-20676-delete-report-related-objects\nChanges not staged for commit:\n (use \"git add <file>...\" to update what will be committed)\n (use \"git restore <file>...\" to discard changes in working directory)\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tmodified: .env.local\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tmodified: app/Console/Commands/JiminnyDebugCommand.php\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tmodified: config/logging.php\n\nUntracked files:\n (use \"git add <file>...\" to include in what will be committed)\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\t.env.nikilocal\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\t.env.other\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tWEBHOOK_FILTERING_IMPLEMENTATION.md\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tapp/Console/Commands/Crm/Hubspot/SimulateWebhooksCommand.php\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tapp/Console/Commands/Reports/CreateMockAskJiminnyReportResultCommand.php\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tids.txt\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tpublic/favicon.ico\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\traw_sql_query.sql\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\ttests/Unit/Policies/CanAccessAiReportsTest.php\n\nno changes added to commit (use \"git add\" and/or \"git commit -a\")\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20676-delete-report-related-objects) $ git push -u origin JY-20676-delete-report-related-objects\nEnumerating objects: 45, done.\nCounting objects: 100% (45/45), done.\nDelta compression using up to 8 threads\nCompressing objects: 100% (24/24), done.\nWriting objects: 100% (24/24), 3.62 KiB | 3.62 MiB/s, done.\nTotal 24 (delta 19), reused 0 (delta 0), pack-reused 0\nremote: Resolving deltas: 100% (19/19), completed with 19 local objects.\nremote: \nremote: Create a pull request for 'JY-20676-delete-report-related-objects' on GitHub by visiting:\nremote: https://github.com/jiminny/app/pull/new/JY-20676-delete-report-related-objects\nremote: \nTo github.com:jiminny/app.git\n * [new branch] JY-20676-delete-report-related-objects -> JY-20676-delete-report-related-objects\nbranch 'JY-20676-delete-report-related-objects' set up to track 'origin/JY-20676-delete-report-related-objects'.\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20676-delete-report-related-objects) $ csfix\ndocker exec -it docker_lamp_1 ./vendor/bin/php-cs-fixer fix --config=.php-cs-fixer.dist.php -v --using-cache=no --diff \nPHP CS Fixer 3.87.1 Alexander by Fabien Potencier, Dariusz Ruminski and contributors.\nPHP runtime: 8.3.30\nRunning analysis on 7 cores with 10 files per process.\nParallel runner is an experimental feature and may be unstable, use it at your own risk. Feedback highly appreciated!\nLoaded config default from \".php-cs-fixer.dist.php\".\n 5690/5690 [▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓] 100%\n\n 1) app/Http/Controllers/API/V2/AskJiminnyReportsController.php (blank_line_before_statement)\n ---------- begin diff ----------\n--- /home/jiminny/app/Http/Controllers/API/V2/AskJiminnyReportsController.php\n+++ /home/jiminny/app/Http/Controllers/API/V2/AskJiminnyReportsController.php\n@@ -140,6 +140,7 @@\n if ($enabled && $report->isAskJiminnyReport() && ! $report->canExecute()) {\n $error = 'This report is missing a saved search or prompt. ' .\n 'Edit the report to complete the setup before enabling it.';\n+\n return new JsonResponse(\n ['error' => $error],\n Response::HTTP_UNPROCESSABLE_ENTITY\n\n ----------- end diff -----------\n\n\nFixed 1 of 5690 files in 71.757 seconds, 60.00 MB memory used\n\nWhat's next:\n Try Docker Debug for seamless, persistent debugging tools in any container or image → docker debug docker_lamp_1\n Learn more at https://docs.docker.com/go/debug-cli/\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20676-delete-report-related-objects) $ git pull\nremote: Enumerating objects: 158, done.\nremote: Counting objects: 100% (103/103), done.\nremote: Compressing objects: 100% (37/37), done.\nremote: Total 158 (delta 80), reused 74 (delta 66), pack-reused 55 (from 3)\nReceiving objects: 100% (158/158), 80.59 KiB | 982.00 KiB/s, done.\nResolving deltas: 100% (85/85), completed with 45 local objects.\nFrom github.com:jiminny/app\n 02a33811ee..c6ce5e2440 JY-20676-delete-report-related-objects -> origin/JY-20676-delete-report-related-objects\n 7ce96cb5fe..6c59f04358 JY-20808-low-priority-indexing-queue -> origin/JY-20808-low-priority-indexing-queue\n 3906a9238a..2b5e6ea62b JY-20835-mcp-enable-users-to-get-a-list-of-deals-and-their-details -> origin/JY-20835-mcp-enable-users-to-get-a-list-of-deals-and-their-details\n 5604af40cf..ea3519f0e2 master -> origin/master\n * [new branch] switch-eu-assembly -> origin/switch-eu-assembly\nUpdating 02a33811ee..c6ce5e2440\nFast-forward\n app/Component/ES/ElasticSearchDocumentPartialUpdater.php | 48 ---\n app/Component/ParticipantSpeech/Services/ParticipantAttributionService.php | 4 +-\n app/Component/Settings/AutoScoring/Services/UpdateAutoScoreService.php | 20 +-\n app/Component/Transcription/Service/StorageService.php | 8 +-\n front-end/package.json | 2 +-\n front-end/src/components/DealInsights/Modals/AskAnythingModal.vue | 23 ++\n front-end/src/components/shared/AskAnything/AskAnythingPromptFormItem.vue | 2 +\n front-end/src/components/shared/AskAnything/AskAnythingSettingsDrawer.vue | 23 +-\n front-end/src/components/shared/AskAnything/__mocks__/AskAnythingSettingsDrawer.mocks.js | 1 +\n front-end/src/components/shared/AskAnything/__tests__/AskAnythingSettingsDrawer.spec.js | 135 ++++---\n front-end/src/components/shared/AskAnything/__tests__/__snapshots__/AskAnythingSettingsDrawer.spec.js.html | 1235 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++\n front-end/src/components/shared/AskAnything/__tests__/__snapshots__/AskAnythingSettingsDrawer.spec.js.snap | 1382 ----------------------------------------------------------------\n front-end/src/components/shared/AskAnything/prompts.js | 1 +\n front-end/src/components/shared/AskAnything/useAskAnything.js | 1 +\n front-end/yarn.lock | 8 +-\n tests/Unit/Component/ES/ElasticSearchDocumentPartialUpdaterTest.php | 42 --\n tests/Unit/Component/Settings/AutoScoring/Services/UpdateAutoScoreServiceTest.php | 86 ++--\n tests/Unit/Component/Transcription/Service/StorageServiceTest.php | 29 +-\n 18 files changed, 1448 insertions(+), 1602 deletions(-)\n delete mode 100644 app/Component/ES/ElasticSearchDocumentPartialUpdater.php\n create mode 100644 front-end/src/components/shared/AskAnything/__tests__/__snapshots__/AskAnythingSettingsDrawer.spec.js.html\n delete mode 100644 front-end/src/components/shared/AskAnything/__tests__/__snapshots__/AskAnythingSettingsDrawer.spec.js.snap\n delete mode 100644 tests/Unit/Component/ES/ElasticSearchDocumentPartialUpdaterTest.php\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20676-delete-report-related-objects) $ csfix\ndocker exec -it docker_lamp_1 ./vendor/bin/php-cs-fixer fix --config=.php-cs-fixer.dist.php -v --using-cache=no --diff \nPHP CS Fixer 3.87.1 Alexander by Fabien Potencier, Dariusz Ruminski and contributors.\nPHP runtime: 8.3.30\nRunning analysis on 7 cores with 10 files per process.\nParallel runner is an experimental feature and may be unstable, use it at your own risk. Feedback highly appreciated!\nLoaded config default from \".php-cs-fixer.dist.php\".\n 5688/5688 [▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓] 100%\n\n\nFixed 0 of 5688 files in 79.904 seconds, 60.00 MB memory used\n\nWhat's next:\n Try Docker Debug for seamless, persistent debugging tools in any container or image → docker debug docker_lamp_1\n Learn more at https://docs.docker.com/go/debug-cli/\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20676-delete-report-related-objects) $","depth":4,"on_screen":true,"value":"Last login: Mon May 18 09:17:28 on ttys007\n\nPoetry could not find a pyproject.toml file in /Users/lukas/jiminny/app or its parents\n\nPoetry could not find a pyproject.toml file in /Users/lukas/jiminny/app or its parents\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (pipedrive-sdk-poc) $ co master\nerror: Your local changes to the following files would be overwritten by checkout:\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tPIPEDRIVE_V2_MIGRATION_TICKETS.md\nPlease commit your changes or stash them before you switch branches.\nAborting\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (pipedrive-sdk-poc) $ git pull\nremote: Enumerating objects: 1047, done.\nremote: Counting objects: 100% (832/832), done.\nremote: Compressing objects: 100% (298/298), done.\nremote: Total 1047 (delta 634), reused 596 (delta 534), pack-reused 215 (from 3)\nReceiving objects: 100% (1047/1047), 353.16 KiB | 1.56 MiB/s, done.\nResolving deltas: 100% (687/687), completed with 107 local objects.\nFrom github.com:jiminny/app\n 907c54896c..34656c53ed pipedrive-sdk-poc -> origin/pipedrive-sdk-poc\n 03325ec50f..4e7078fd8b JY-18091-upgrade-to-php-8-5 -> origin/JY-18091-upgrade-to-php-8-5\n e7d231e163..bc6a3fce6b JY-20725-handle-HS-search-rate-limit -> origin/JY-20725-handle-HS-search-rate-limit\n * [new branch] JY-20749-user-can-view-recorded-meetings -> origin/JY-20749-user-can-view-recorded-meetings\n 98ca281a04..e0351be069 JY-20808-low-priority-indexing-queue -> origin/JY-20808-low-priority-indexing-queue\n 569abb5149..3906a9238a JY-20835-mcp-enable-users-to-get-a-list-of-deals-and-their-details -> origin/JY-20835-mcp-enable-users-to-get-a-list-of-deals-and-their-details\n ad6c2a86e8..50eb6afba9 JY-20846-mcp-enable-the-ai-to-know-details-about-the-user -> origin/JY-20846-mcp-enable-the-ai-to-know-details-about-the-user\n * [new branch] JY-20893-chunk-control-per-update-target -> origin/JY-20893-chunk-control-per-update-target\n 31c62924a5..cb4ebf0c36 master -> origin/master\nUpdating 907c54896c..34656c53ed\nFast-forward\n PIPEDRIVE_V2_MIGRATION_TICKETS.md | 52 ++++++++++++++++++++++++++++++++++++++++++++++++++++\n 1 file changed, 52 insertions(+)\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (pipedrive-sdk-poc) $ co master\nM\u0000\u0000\u0000\u0000\u0000\u0000\t.env.local\nM\u0000\u0000\u0000\u0000\u0000\u0000\tconfig/logging.php\nSwitched to branch 'master'\nYour branch is behind 'origin/master' by 31 commits, and can be fast-forwarded.\n (use \"git pull\" to update your local branch)\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (master) $ git pull\nUpdating 31c62924a5..cb4ebf0c36\nFast-forward\n app/Component/ES/Processor/Traits/SelectEntityListTrait.php | 20 ------\n app/Services/Calendar/CalendarActivityService.php | 46 +++++++++++++\n app/Services/Calendar/Command/MapActivityData.php | 106 +++-------------------------\n docs/mcp/explorer/explorer.html | 104 +++++++++++++++++++++++++---\n docs/mcp/explorer/explorer.template.html | 102 ++++++++++++++++++++++++---\n docs/mcp/tools-list.json | 373 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++-------\n docs/mcp/tools.md | 117 +++++++++++++++++++++++--------\n tests/Unit/Component/ES/AsyncUpdateElasticSearchTest.php | 16 +----\n tests/Unit/Component/ES/Listeners/UpdateMultipleTargetsListenerTest.php | 10 ---\n tests/Unit/Component/ES/Listeners/UpdateSingleTargetListenerTest.php | 6 --\n tests/Unit/Component/ES/Processor/TargetEntitiesSelectorTest.php | 9 ---\n tests/Unit/Component/ES/Processor/Traits/SelectEntityListTraitTest.php | 15 ++--\n tests/Unit/Component/ES/UpdateProcessManagerTest.php | 2 -\n tests/Unit/Services/Calendar/CalendarActivityServiceTest.php | 150 ++++++++++++++++++++++++++++++++++++++--\n tests/Unit/Services/Calendar/Command/MapActivityDataTest.php | 78 ++-------------------\n 15 files changed, 832 insertions(+), 322 deletions(-)\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (master) $ co -b JY-20613-allow-owner-role-on-team-setup\nSwitched to a new branch 'JY-20613-allow-owner-role-on-team-setup'\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20613-allow-owner-role-on-team-setup) $ csfix\ndocker exec -it docker_lamp_1 ./vendor/bin/php-cs-fixer fix --config=.php-cs-fixer.dist.php -v --using-cache=no --diff \nPHP CS Fixer 3.87.1 Alexander by Fabien Potencier, Dariusz Ruminski and contributors.\nPHP runtime: 8.3.30\nRunning analysis on 7 cores with 10 files per process.\nParallel runner is an experimental feature and may be unstable, use it at your own risk. Feedback highly appreciated!\nLoaded config default from \".php-cs-fixer.dist.php\".\n 5682/5682 [▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓] 100%\n\n\nFixed 0 of 5682 files in 56.978 seconds, 67.00 MB memory used\n\nWhat's next:\n Try Docker Debug for seamless, persistent debugging tools in any container or image → docker debug docker_lamp_1\n Learn more at https://docs.docker.com/go/debug-cli/\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20613-allow-owner-role-on-team-setup) $ ;xd\ndocker exec -it docker_lamp_1 bash -c \"mv /usr/local/etc/php/conf.d/xdebug.ini ~/xdebug.ini\"\n\nWhat's next:\n Try Docker Debug for seamless, persistent debugging tools in any container or image → docker debug docker_lamp_1\n Learn more at https://docs.docker.com/go/debug-cli/\ndocker exec -it docker_lamp_1 supervisorctl restart all\njiminny-worker-processing-2:jiminny-worker-processing-2_00: stopped\njiminny-worker-processing-3:jiminny-worker-processing-3_00: stopped\njiminny-worker-processing-4:jiminny-worker-processing-4_00: stopped\njiminny-worker-processing-5:jiminny-worker-processing-5_00: stopped\njiminny-worker-processing-delayed:jiminny-worker-processing-delayed_00: stopped\nworker-analytics:worker-analytics_00: stopped\nworker-crm-update:worker-crm-update_00: stopped\nworker-download:worker-download_00: stopped\nworker-nudges:worker-nudges_00: stopped\nartisan-schedule:artisan-schedule_00: stopped\nworker-emails:worker-emails_00: stopped\nworker-calendar:worker-calendar_00: stopped\nworker:worker_00: stopped\nworker-conferences:worker-conferences_00: stopped\nworker-crm-sync:worker-crm-sync_00: stopped\njiminny-worker-processing-1:jiminny-worker-processing-1_00: stopped\nworker-audio:worker-audio_00: stopped\nworker-es-update:worker-es-update_00: stopped\nartisan-schedule:artisan-schedule_00: started\njiminny-worker-processing-1:jiminny-worker-processing-1_00: started\njiminny-worker-processing-2:jiminny-worker-processing-2_00: started\njiminny-worker-processing-3:jiminny-worker-processing-3_00: started\njiminny-worker-processing-4:jiminny-worker-processing-4_00: started\njiminny-worker-processing-5:jiminny-worker-processing-5_00: started\njiminny-worker-processing-delayed:jiminny-worker-processing-delayed_00: started\nworker:worker_00: started\nworker-analytics:worker-analytics_00: started\nworker-audio:worker-audio_00: started\nworker-calendar:worker-calendar_00: started\nworker-conferences:worker-conferences_00: started\nworker-crm-sync:worker-crm-sync_00: started\nworker-crm-update:worker-crm-update_00: started\nworker-download:worker-download_00: started\nworker-emails:worker-emails_00: started\nworker-es-update:worker-es-update_00: started\nworker-nudges:worker-nudges_00: started\n\nWhat's next:\n Try Docker Debug for seamless, persistent debugging tools in any container or image → docker debug docker_lamp_1\n Learn more at https://docs.docker.com/go/debug-cli/\ndocker exec -it docker_lamp_1 php -v\nPHP 8.3.30 (cli) (built: Mar 16 2026 22:32:32) (NTS)\nCopyright (c) The PHP Group\nZend Engine v4.3.30, Copyright (c) Zend Technologies\n with Zend OPcache v8.3.30, Copyright (c), by Zend Technologies\n\nWhat's next:\n Try Docker Debug for seamless, persistent debugging tools in any container or image → docker debug docker_lamp_1\n Learn more at https://docs.docker.com/go/debug-cli/\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20613-allow-owner-role-on-team-setup) $ csfix\ndocker exec -it docker_lamp_1 ./vendor/bin/php-cs-fixer fix --config=.php-cs-fixer.dist.php -v --using-cache=no --diff \nPHP CS Fixer 3.87.1 Alexander by Fabien Potencier, Dariusz Ruminski and contributors.\nPHP runtime: 8.3.30\nRunning analysis on 7 cores with 10 files per process.\nParallel runner is an experimental feature and may be unstable, use it at your own risk. Feedback highly appreciated!\nLoaded config default from \".php-cs-fixer.dist.php\".\n 5682/5682 [▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓] 100%\n\n\nFixed 0 of 5682 files in 49.910 seconds, 60.00 MB memory used\n\nWhat's next:\n Try Docker Debug for seamless, persistent debugging tools in any container or image → docker debug docker_lamp_1\n Learn more at https://docs.docker.com/go/debug-cli/\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20613-allow-owner-role-on-team-setup) $ git status\nOn branch JY-20613-allow-owner-role-on-team-setup\nYour branch is ahead of 'origin/JY-20613-allow-owner-role-on-team-setup' by 1 commit.\n (use \"git push\" to publish your local commits)\n\nChanges not staged for commit:\n (use \"git add <file>...\" to update what will be committed)\n (use \"git restore <file>...\" to discard changes in working directory)\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tmodified: .env.local\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tmodified: config/logging.php\n\nUntracked files:\n (use \"git add <file>...\" to include in what will be committed)\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\t.env.nikilocal\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\t.env.other\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tWEBHOOK_FILTERING_IMPLEMENTATION.md\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tapp/Console/Commands/Crm/Hubspot/SimulateWebhooksCommand.php\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tapp/Console/Commands/Reports/CreateMockAskJiminnyReportResultCommand.php\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tids.txt\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tpublic/favicon.ico\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\traw_sql_query.sql\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\ttests/Unit/Policies/CanAccessAiReportsTest.php\n\nno changes added to commit (use \"git add\" and/or \"git commit -a\")\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20613-allow-owner-role-on-team-setup) $ git pull\nremote: Enumerating objects: 248, done.\nremote: Counting objects: 100% (128/128), done.\nremote: Compressing objects: 100% (23/23), done.\nremote: Total 59 (delta 43), reused 44 (delta 33), pack-reused 0 (from 0)\nUnpacking objects: 100% (59/59), 10.48 KiB | 228.00 KiB/s, done.\nFrom github.com:jiminny/app\n b7df560451..190239dfd4 JY-20613-allow-owner-role-on-team-setup -> origin/JY-20613-allow-owner-role-on-team-setup\n e0351be069..d94a285ae7 JY-20808-low-priority-indexing-queue -> origin/JY-20808-low-priority-indexing-queue\n * [new branch] JY-20920-fix-participant-matcher -> origin/JY-20920-fix-participant-matcher\n cb4ebf0c36..90bca4e4b2 master -> origin/master\nMerge made by the 'ort' strategy.\n app/Component/ES/ChunkSize.php | 54 +++++++++++++++++++++++++++\n app/Component/ES/Processor/DTOs/SelectionList.php | 4 +-\n app/Component/ES/Processor/TargetEntitiesSelector.php | 19 ++++++----\n app/Http/Middleware/McpTierMiddleware.php | 27 +++-----------\n app/Mcp/Servers/JiminnyServer.php | 2 +\n app/Mcp/Tools/GetMeTool.php | 157 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++\n app/Models/Feature/FeatureEnum.php | 1 +\n database/migrations/2026_05_13_124153_create_mcp_feature_flag.php | 25 +++++++++++++\n front-end/src/components/Settings/Kiosk/modals/EditTeamModal/EditTeamModal.vue | 52 ++++++++++++++++++--------\n front-end/src/components/Settings/Kiosk/modals/EditTeamModal/__tests__/EditTeamModal.spec.js | 14 +++++++\n tests/Feature/Mcp/GetMeToolFeatureTest.php | 140 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++\n tests/Feature/Mcp/ListCallsToolFeatureTest.php | 2 +-\n tests/Feature/Mcp/McpTestHelpersTrait.php | 19 +++++++++-\n tests/Unit/Component/ES/ChunkSizeTest.php | 50 +++++++++++++++++++++++++\n tests/Unit/Component/ES/Processor/DTOs/SelectionListTest.php | 27 ++++++++++----\n tests/Unit/Component/ES/Processor/TargetEntitiesSelectorTest.php | 39 +++++++++++---------\n 16 files changed, 557 insertions(+), 75 deletions(-)\n create mode 100644 app/Component/ES/ChunkSize.php\n create mode 100644 app/Mcp/Tools/GetMeTool.php\n create mode 100644 database/migrations/2026_05_13_124153_create_mcp_feature_flag.php\n create mode 100644 tests/Feature/Mcp/GetMeToolFeatureTest.php\n create mode 100644 tests/Unit/Component/ES/ChunkSizeTest.php\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20613-allow-owner-role-on-team-setup) $ git push\nEnumerating objects: 40, done.\nCounting objects: 100% (34/34), done.\nDelta compression using up to 8 threads\nCompressing objects: 100% (18/18), done.\nWriting objects: 100% (18/18), 1.58 KiB | 1.58 MiB/s, done.\nTotal 18 (delta 15), reused 0 (delta 0), pack-reused 0\nremote: Resolving deltas: 100% (15/15), completed with 13 local objects.\nTo github.com:jiminny/app.git\n 190239dfd4..ec1b261264 JY-20613-allow-owner-role-on-team-setup -> JY-20613-allow-owner-role-on-team-setup\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20613-allow-owner-role-on-team-setup) $ gbr\n* JY-20613-allow-owner-role-on-team-setup\n pipedrive-sdk-poc\n master\n JY-20903-update_activity-stage-on-opportunity-change\n JY-20904-fix-update-es-on-activity-command\n JY-20891-improve-sms-text-relays\n JY-20725-handle-HS-search-rate-limit\n JY-20818-move-AJ-reports-to-separated-datadog-metric\n JY-20773-fix-automated-reports-user-pilot-tracking\n JY-20157-AJ-report-not-send-notification\n JY-20508-notify-before-AJ-report-expiration\n JY-20372-ai-reports-promotion-pages\n JY-20352-sync-opportunities-without-a-local-owner-user-id-is-null\n JY-20738-debug-AJ-tracking-UP\n a\n JY-18909-automated-reports-ask-jiminny\n JY-20692-fix-integration-app-token-auth-response-change\n JY-20553-debug-crm-sync-delays\n JY-20698-fix-SF-activity-types-on-new-playbook\n JY-20543-AJ-report-tracking\n JY-20384-handle-auto-sync-with-no-access-to-event-type\n JY-20458-ask-jiminny-user-definitions\n JY-19666-fix-import-contacts-account-association\n JY-19666-HS-import-contacts-and-accounts-batch-job\n JY-20458-Ask-Jiminny-Reports\n JY-20200-batch-update-CRM-objects-Salesforce\n JY-19666-HS-webhooks-add-contact-and-company\n JY-20348-trigger-setup-DI-layout-on-team-creation\n JY-20326-refactor-info-message-in-command\n JY-20317-fix-auto-log-delay-issue-on-all-channels-disabled\n JY-20312-remove-on-update-change-last-synced-at-crm-configurations\n JY-20306-SF-skip-auto-sync-for-task-based-playbook\n JY-20192-remove-deleted-team-from-saved-search-filters\n JY-20197-import-opportunity-batch-job\n JY-20293-enable-status-field-for-pipedrive-deals\n JY-20191-remove-commands-interactive-prompts\n JY-20118-change-default-sync-strategy\n JY-20183-add-cache-on-auto-log-delay\n JY-20197-add-import-opportunity-batch-job\n 20118-hs-opportunity-make-webhook-strategy-default\n JY-20118-make-default-hs-opportunity-sync-strategy-webhook-based\n JY-20196-handle-opportunity-without-note\n JY-20118-improve-opportunity-import\n JY-20189-handle-activity-search-on-deleted-groups\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20613-allow-owner-role-on-team-setup) $ co JY-20725-handle-HS-search-rate-limit\nM\u0000\u0000\u0000\u0000\u0000\u0000\t.env.local\nM\u0000\u0000\u0000\u0000\u0000\u0000\tconfig/logging.php\nSwitched to branch 'JY-20725-handle-HS-search-rate-limit'\nYour branch is behind 'origin/JY-20725-handle-HS-search-rate-limit' by 439 commits, and can be fast-forwarded.\n (use \"git pull\" to update your local branch)\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20725-handle-HS-search-rate-limit) $ git pull\nUpdating 0f3e438941..bc6a3fce6b\nFast-forward\n .gitignore | 3 +-\n .windsurfrules | 168 ++---\n CLAUDE.md | 1 +\n app/Component/ActivityAnalytics/Service/CalculateTalkTimeOffsetsFromTranscription.php | 24 +-\n app/Component/AiActivityType/Services/AiActivityTypeEligibilityChecker.php | 28 +-\n app/Component/AiAutomation/Actions/PrepareUpdateDtoAction.php | 32 +-\n app/Component/AiAutomation/Services/CrmFillingEligibilityChecker.php | 47 ++\n app/Component/AiAutomation/TestCrmAiPromptService.php | 14 +\n app/Component/AiCallScoring/Services/AiCallScoringEligibilityChecker.php | 9 +\n app/Component/ES/ElasticSearchDocumentPartialUpdater.php | 13 +-\n app/Component/ES/ElasticSearchWorkerManager.php | 86 ---\n app/Component/ES/Processor/Actions/LoadDocumentsAction.php | 80 +--\n app/Component/ES/Processor/EntityQueryBuilder.php | 12 +-\n app/Component/ES/Processor/TargetEntitiesSelector.php | 2 +-\n app/Component/ES/Processor/Traits/SkipActivityTrait.php | 25 -\n app/Component/ES/Repositories/EsResetActivityRepository.php | 11 +-\n app/Component/ES/Worker/ActivityWorker.php | 73 --\n app/Component/ES/Worker/EntityWorker.php | 44 --\n app/Component/ES/Worker/WorkerAmount.php | 60 --\n app/Component/ES/Worker/WorkerInterface.php | 15 -\n app/Component/ElasticSearch/Contract/Searchable.php | 4 +\n app/Component/Encoding/Job/AnalyzeTrackChannelsJob.php | 20 +-\n app/Component/Encoding/Service/GenerateSpeechFromSilenceService.php | 85 ++-\n app/Component/FFMpeg/Services/GetSpeechIntervalsService.php | 18 +-\n app/Component/LanguageDetection/Services/FindSpeechTimeService.php | 22 +-\n app/Component/Nudge/Job/ProcessOrganisationImmediateNudgesJob.php | 218 +++++-\n app/Component/ParagraphBreaker/Services/TranscriptionParagraphsService.php | 4 +\n app/Component/ParticipantSpeech/Services/ParticipantSpeechesCreator.php | 33 +\n app/Component/ParticipantSpeech/Services/ParticipantSpeechesDeleter.php | 15 +\n app/Component/ParticipantSpeech/Services/ParticipantSpeechesProvider.php | 51 +-\n app/Component/ParticipantSpeech/Services/ParticipantSpeechesUploader.php | 36 +\n app/Component/ProphetAi/Exceptions/InsufficientTranscriptException.php | 11 +\n app/Component/Transcription/DTO/Http/Transcription/AssemblyAI/AssemblyAI/NoAssemblyIdException.php | 11 +\n app/Component/Transcription/DTO/Http/Transcription/AssemblyAI/AssemblyAI/SuccessfulResponse.php | 6 +\n app/Component/Transcription/DTO/Http/Transcription/TranscriptionIsNotCorrectFormatException.php | 11 +\n app/Component/Transcription/Diarization/Services/GetNormalizedParticipantSpeechesService.php | 23 +-\n app/Component/Transcription/Diarization/Source/MeetingBotSource.php | 16 +-\n app/Component/Transcription/TranscriptionProcessor/TranscriptionProcessor.php | 3 +\n app/Console/Commands/Activities/ActivityHardDeleteCommand.php | 4 +-\n app/Console/Commands/Activities/Copy.php | 2 +\n app/Console/Commands/Activities/SetupIntegration/TwilioSetS3RecordingCredentialsCommand.php | 119 ++++\n app/Console/Commands/Activities/UpdateActivityElasticSearchDocumentCommand.php | 10 +-\n app/Console/Commands/Crm/BackfillOpportunityUserFromAccountCommand.php | 126 ++++\n app/Console/Commands/Elasticsearch/AsyncUpdateEsActivities.php | 19 -\n app/Console/Commands/Elasticsearch/AsyncUpdateEsEntities.php | 50 +-\n app/Console/Commands/Elasticsearch/ResetAsyncElasticSearchCommand.php | 30 +-\n app/Console/Commands/GeckoExport/GeckoExportParticipantSpeechesCommand.php | 14 +-\n app/Console/Commands/IssueMcpTokenCommand.php | 84 +++\n app/Console/Commands/JiminnyDebugCommand.php | 7 +-\n app/Console/Commands/Tracks/CleanupActivityTracksCommand.php | 2 +-\n app/Console/Kernel.php | 6 +-\n app/Contracts/Services/Calendar/CalendarTrait.php | 80 ++-\n app/Events/AutomatedReports/AutomatedReportGenerated.php | 3 +\n app/Http/Controllers/API/AiCallScoring/AiScorecardController.php | 7 +-\n app/Http/Controllers/API/TeamAiAutomationController.php | 8 +\n app/Http/Controllers/CustomerApi/CustomerApiController.php | 4 +-\n app/Http/Controllers/Kiosk/ActivityController.php | 58 +-\n app/Http/Controllers/Settings/PlaybookController.php | 15 +-\n app/Http/Kernel.php | 23 +\n app/Http/Middleware/McpAuditMiddleware.php | 156 ++++\n app/Http/Middleware/McpTierMiddleware.php | 54 ++\n app/Http/Requests/API/V2/ZapierUploadActivityRequest.php | 28 +-\n app/Jobs/Activity/Import/ImportTwilioVideoSpeechesJob.php | 25 +-\n app/Jobs/Activity/Import/IsActivityReadyForProcessingJob.php | 10 +-\n app/Jobs/Calendar/SetupCalendarSync.php | 21 +-\n app/Jobs/ImportRemoteTrackJob.php | 96 ++-\n app/Jobs/Mailbox/EmailTextRelay.php | 15 +-\n app/Mcp/Contracts/McpCallRepositoryInterface.php | 30 +\n app/Mcp/DTO/ListCallsFilters.php | 29 +\n app/Mcp/Errors/McpError.php | 123 ++++\n app/Mcp/Repositories/McpActivityHydrator.php | 145 ++++\n app/Mcp/Repositories/McpCallRepository.php | 84 +++\n app/Mcp/Repositories/McpElasticCallRepository.php | 171 +++++\n app/Mcp/Servers/JiminnyServer.php | 38 +\n app/Mcp/Tools/ListCallsTool.php | 205 ++++++\n app/Models/Activity.php | 10 +-\n app/Models/Activity/Transcription.php | 17 +-\n app/Models/ElasticSearch/OpportunityElasticSearchTrait.php | 5 +\n app/Models/Participant.php | 1 +\n app/Providers/AppServiceProvider.php | 22 +\n app/Repositories/Crm/ContactRepository.php | 69 +-\n app/Repositories/ParticipantSpeechRepository.php | 13 +-\n app/Services/Activity/ParticipantsService.php | 19 +-\n app/Services/Activity/Twilio/S3RecordingCredentialsService.php | 82 +++\n app/Services/ActivityService.php | 21 +-\n app/Services/Calendar/CalendarActivityService.php | 46 ++\n app/Services/Calendar/Command/ImportParticipants.php | 1 +\n app/Services/Calendar/Command/MapActivityData.php | 106 +--\n app/Services/Calendar/GoogleCalendarService.php | 12 +-\n app/Services/Crm/Close/Processor/OpportunityProcessor.php | 2 +-\n app/Services/Crm/Close/Service.php | 22 +-\n app/Services/Crm/Copper/Service.php | 12 +-\n app/Services/Crm/Hubspot/Service.php | 154 +++-\n app/Services/Crm/Hubspot/ServiceTraits/OpportunitySyncTrait.php | 88 ++-\n app/Services/Crm/IntegrationApp/ServiceTraits/SyncCrmEntitiesTrait.php | 22 +-\n app/Services/Crm/Pipedrive/Service.php | 17 +-\n app/Services/Crm/Salesforce/Service.php | 42 +-\n app/Services/Mail/Office/EmailApiClient.php | 129 +---\n app/Services/RecallAI/Commands/ScheduleBotCommand.php | 39 +-\n app/Services/RecallAI/RecallAIService.php | 22 +-\n composer.json | 3 +-\n composer.lock | 87 ++-\n config/mcp.php | 23 +\n database/migrations/2026_04_30_120000_create_mcp_audit_log_table.php | 36 +\n docs/mcp/explorer/explorer.html | 697 ++++++++++++++++++\n docs/mcp/explorer/explorer.template.html | 697 ++++++++++++++++++\n docs/mcp/explorer/generate.js | 215 ++++++\n docs/mcp/explorer/tool-explorer-meta.json | 11 +\n docs/mcp/tools-list.json | 2536 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++\n docs/mcp/tools.md | 621 ++++++++++++++++\n front-end/package.json | 4 +-\n front-end/src/components/Settings/OrgSettings/AiAutomation/CrmFilling/TemplateFieldForm.vue | 28 +-\n front-end/src/components/Settings/OrgSettings/Playbooks/AddEditPlaybook.vue | 10 +\n front-end/src/components/playback/comments/ActivityComment.less | 10 +-\n front-end/src/components/shared/PromptTester/PromptTester.vue | 12 +-\n front-end/src/components/shared/__tests__/PromptTester.spec.js | 35 +\n front-end/src/components/shared/modals/EntityPickerModal/__tests__/useEntitiesCache.spec.ts | 37 +\n front-end/src/components/shared/modals/EntityPickerModal/useEntitiesCache.ts | 9 +\n front-end/yarn.lock | 16 +-\n phpstan-baseline.neon | 50 --\n routes/api.php | 11 +\n sonar-project.properties | 91 ++-\n tests/Feature/Component/Nudge/ProcessOrganisationImmediateNudgesJobTest.php | 534 ++++++++++++++\n tests/Feature/Jobs/ImportRemoteTrackJobTest.php | 283 +++++++-\n tests/Feature/Mcp/IssueMcpTokenCommandTest.php | 53 ++\n tests/Feature/Mcp/ListCallsToolElasticFeatureTest.php | 155 ++++\n tests/Feature/Mcp/ListCallsToolFeatureTest.php | 352 ++++++++++\n tests/Feature/Mcp/McpTestHelpersTrait.php | 77 ++\n tests/Feature/Services/Team/TeamDeleteHandlers/Retention/RetentionRepositoryHandlerTest.php | 1 +\n tests/Stubs/SentryStub.php | 18 +\n tests/Unit/Component/ActivityAnalytics/Service/CalculateTalkTimeOffsetFromTranscriptionTest.php | 28 +-\n tests/Unit/Component/AiActivityType/Services/AiActivityTypeEligibilityCheckerTest.php | 103 ++-\n tests/Unit/Component/AiAutomation/Actions/PrepareUpdateDtoActionTest.php | 91 +++\n tests/Unit/Component/AiAutomation/Services/CrmFillingEligibilityCheckerTest.php | 124 ++++\n tests/Unit/Component/AiAutomation/TestCrmAiPromptServiceTest.php | 67 +-\n tests/Unit/Component/AiCallScoring/Services/AiCallScoringEligibilityCheckerTest.php | 55 ++\n tests/Unit/Component/ES/ElasticSearchWorkerManagerTest.php | 135 ----\n tests/Unit/Component/ES/Processor/Actions/LoadDocumentsActionTest.php | 220 ++++++\n tests/Unit/Component/ES/Processor/EntityQueryBuilderTest.php | 21 +-\n tests/Unit/Component/ES/Processor/Traits/SkipActivityTraitTest.php | 51 --\n tests/Unit/Component/ES/Worker/ActivityWorkerTest.php | 174 -----\n tests/Unit/Component/ES/Worker/EntityWorkerTest.php | 97 ---\n tests/Unit/Component/ES/Worker/WorkerAmountTest.php | 116 ---\n tests/Unit/Component/Encoding/Job/AnalyzeTrackChannelsJobTest.php | 52 +-\n tests/Unit/Component/Encoding/Service/GenerateSpeechFromSilenceServiceTest.php | 171 ++---\n tests/Unit/Component/FFMpeg/Services/GetSpeechIntervalsTest.php | 36 +-\n tests/Unit/Component/LanguageDetection/Services/FindSpeechTimeServiceTest.php | 20 +-\n tests/Unit/Component/MobileSettings/MobileSettingsControllerTest.php | 5 +-\n tests/Unit/Component/ParticipantSpeech/Services/ParticipantSpeechesCreatorTest.php | 75 ++\n tests/Unit/Component/ParticipantSpeech/Services/ParticipantSpeechesDeleterTest.php | 63 ++\n tests/Unit/Component/ParticipantSpeech/Services/ParticipantSpeechesProviderTest.php | 134 ++++\n tests/Unit/Component/ParticipantSpeech/Services/ParticipantSpeechesUploaderTest.php | 57 ++\n tests/Unit/Component/Transcription/Diarization/Services/GetNormalizedParticipantSpeechesServiceTest.php | 51 +-\n tests/Unit/Component/Transcription/Diarization/Source/MeetingBotSourceTest.php | 29 +-\n tests/Unit/Contracts/Services/Calendar/CalendarTraitTest.php | 58 +-\n tests/Unit/Http/Controllers/Kiosk/ActivityControllerTest.php | 159 +++++\n tests/Unit/Jobs/Activity/Import/ImportTwilioVideoSpeechesJobTest.php | 22 +-\n tests/Unit/Jobs/Activity/Import/IsActivityReadyForProcessingJobTest.php | 26 +-\n tests/Unit/Jobs/Calendar/SetupCalendarSyncTest.php | 25 -\n tests/Unit/Services/Activity/ParticipantsServiceTest.php | 12 +-\n tests/Unit/Services/Activity/Twilio/S3RecordingCredentialsServiceTest.php | 180 +++++\n tests/Unit/Services/ActivityServiceTest.php | 132 ++++\n tests/Unit/Services/Calendar/CalendarActivityServiceTest.php | 150 +++-\n tests/Unit/Services/Calendar/Command/ImportParticipantsTest.php | 6 +-\n tests/Unit/Services/Calendar/Command/MapActivityDataTest.php | 78 +-\n tests/Unit/Services/Calendar/GoogleCalendarServiceTest.php | 116 +++\n tests/Unit/Services/Crm/Close/ServiceTest.php | 165 +++++\n tests/Unit/Services/Crm/Hubspot/ServiceTest.php | 272 ++++++-\n tests/Unit/Services/Crm/Hubspot/ServiceTraits/OpportunitySyncTest.php | 25 +-\n tests/Unit/Services/Crm/Hubspot/ServiceTraits/OpportunitySyncTraitMatchActivitiesTest.php | 3 +-\n tests/Unit/Services/Crm/IntegrationApp/ServiceTraits/SyncCrmEntitiesTraitOpportunitiesTest.php | 40 ++\n tests/Unit/Services/Crm/Pipedrive/ImportOpportunityMatchActivitiesTest.php | 2 +\n tests/Unit/Services/Crm/Salesforce/ServiceTest.php | 139 ++++\n tests/Unit/Services/Mail/Office/EmailApiClientTest.php | 195 ++---\n tests/Unit/Services/RecallAI/RecallAIServiceTest.php | 24 +-\n 175 files changed, 12562 insertions(+), 2162 deletions(-)\n create mode 120000 CLAUDE.md\n create mode 100644 app/Component/AiAutomation/Services/CrmFillingEligibilityChecker.php\n delete mode 100644 app/Component/ES/ElasticSearchWorkerManager.php\n delete mode 100644 app/Component/ES/Processor/Traits/SkipActivityTrait.php\n delete mode 100644 app/Component/ES/Worker/ActivityWorker.php\n delete mode 100644 app/Component/ES/Worker/EntityWorker.php\n delete mode 100644 app/Component/ES/Worker/WorkerAmount.php\n delete mode 100644 app/Component/ES/Worker/WorkerInterface.php\n create mode 100644 app/Component/ProphetAi/Exceptions/InsufficientTranscriptException.php\n create mode 100644 app/Component/Transcription/DTO/Http/Transcription/AssemblyAI/AssemblyAI/NoAssemblyIdException.php\n create mode 100644 app/Component/Transcription/DTO/Http/Transcription/TranscriptionIsNotCorrectFormatException.php\n create mode 100644 app/Console/Commands/Activities/SetupIntegration/TwilioSetS3RecordingCredentialsCommand.php\n create mode 100644 app/Console/Commands/Crm/BackfillOpportunityUserFromAccountCommand.php\n delete mode 100644 app/Console/Commands/Elasticsearch/AsyncUpdateEsActivities.php\n create mode 100644 app/Console/Commands/IssueMcpTokenCommand.php\n create mode 100644 app/Http/Middleware/McpAuditMiddleware.php\n create mode 100644 app/Http/Middleware/McpTierMiddleware.php\n create mode 100644 app/Mcp/Contracts/McpCallRepositoryInterface.php\n create mode 100644 app/Mcp/DTO/ListCallsFilters.php\n create mode 100644 app/Mcp/Errors/McpError.php\n create mode 100644 app/Mcp/Repositories/McpActivityHydrator.php\n create mode 100644 app/Mcp/Repositories/McpCallRepository.php\n create mode 100644 app/Mcp/Repositories/McpElasticCallRepository.php\n create mode 100644 app/Mcp/Servers/JiminnyServer.php\n create mode 100644 app/Mcp/Tools/ListCallsTool.php\n create mode 100644 app/Services/Activity/Twilio/S3RecordingCredentialsService.php\n create mode 100644 config/mcp.php\n create mode 100644 database/migrations/2026_04_30_120000_create_mcp_audit_log_table.php\n create mode 100644 docs/mcp/explorer/explorer.html\n create mode 100644 docs/mcp/explorer/explorer.template.html\n create mode 100644 docs/mcp/explorer/generate.js\n create mode 100644 docs/mcp/explorer/tool-explorer-meta.json\n create mode 100644 docs/mcp/tools-list.json\n create mode 100644 docs/mcp/tools.md\n create mode 100644 front-end/src/components/shared/modals/EntityPickerModal/__tests__/useEntitiesCache.spec.ts\n create mode 100644 tests/Feature/Component/Nudge/ProcessOrganisationImmediateNudgesJobTest.php\n create mode 100644 tests/Feature/Mcp/IssueMcpTokenCommandTest.php\n create mode 100644 tests/Feature/Mcp/ListCallsToolElasticFeatureTest.php\n create mode 100644 tests/Feature/Mcp/ListCallsToolFeatureTest.php\n create mode 100644 tests/Feature/Mcp/McpTestHelpersTrait.php\n create mode 100644 tests/Stubs/SentryStub.php\n create mode 100644 tests/Unit/Component/AiAutomation/Services/CrmFillingEligibilityCheckerTest.php\n delete mode 100644 tests/Unit/Component/ES/ElasticSearchWorkerManagerTest.php\n create mode 100644 tests/Unit/Component/ES/Processor/Actions/LoadDocumentsActionTest.php\n delete mode 100644 tests/Unit/Component/ES/Processor/Traits/SkipActivityTraitTest.php\n delete mode 100644 tests/Unit/Component/ES/Worker/ActivityWorkerTest.php\n delete mode 100644 tests/Unit/Component/ES/Worker/EntityWorkerTest.php\n delete mode 100644 tests/Unit/Component/ES/Worker/WorkerAmountTest.php\n create mode 100644 tests/Unit/Component/ParticipantSpeech/Services/ParticipantSpeechesCreatorTest.php\n create mode 100644 tests/Unit/Http/Controllers/Kiosk/ActivityControllerTest.php\n create mode 100644 tests/Unit/Services/Activity/Twilio/S3RecordingCredentialsServiceTest.php\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20725-handle-HS-search-rate-limit) $ git status\nOn branch master\nYour branch is behind 'origin/master' by 114 commits, and can be fast-forwarded.\n (use \"git pull\" to update your local branch)\n\nChanges not staged for commit:\n (use \"git add <file>...\" to update what will be committed)\n (use \"git restore <file>...\" to discard changes in working directory)\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tmodified: .env.local\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tmodified: app/Component/SCIM/Constants.php\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tmodified: app/Component/SCIM/ScimProvisioning.php\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tmodified: app/Component/Twilio/Conference/ConferenceManager/SoftPhoneManager.php\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tmodified: app/Console/Commands/JiminnyDebugCommand.php\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tmodified: app/DTO/SCIM/AAD/Request/CoreUserRequest.php\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tmodified: app/DTO/SCIM/AAD/Response/CoreUser.php\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tmodified: app/Services/Telephony/TextMessagingService.php\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tmodified: config/logging.php\n\nUntracked files:\n (use \"git add <file>...\" to include in what will be committed)\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\t.env.nikilocal\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\t.env.other\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tWEBHOOK_FILTERING_IMPLEMENTATION.md\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tapp/Component/SCIM/Mutators/Attributes/User/RoleAttr.php\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tapp/Console/Commands/Crm/Hubspot/SimulateWebhooksCommand.php\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tapp/Console/Commands/Reports/CreateMockAskJiminnyReportResultCommand.php\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tapp/Rules/ListenerRoleCannotHaveAdminOrManagerPermissionRule.php\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tids.txt\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tpublic/favicon.ico\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\traw_sql_query.sql\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\ttests/Unit/Component/SCIM/Mutators/Attributes/User/RoleAttrTest.php\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\ttests/Unit/Policies/CanAccessAiReportsTest.php\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\ttests/Unit/Rules/ListenerRoleCannotHaveAdminOrManagerPermissionRuleTest.php\n\nno changes added to commit (use \"git add\" and/or \"git commit -a\")\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (master) $ git pull\nremote: Enumerating objects: 306, done.\nremote: Counting objects: 100% (299/299), done.\nremote: Compressing objects: 100% (183/183), done.\nremote: Total 306 (delta 213), reused 171 (delta 116), pack-reused 7 (from 1)\nReceiving objects: 100% (306/306), 80.12 KiB | 1000.00 KiB/s, done.\nResolving deltas: 100% (213/213), completed with 53 local objects.\nFrom github.com:jiminny/app\n 90bca4e4b2..5604af40cf master -> origin/master\n 4e7078fd8b..0b8343d179 JY-18091-upgrade-to-php-8-5 -> origin/JY-18091-upgrade-to-php-8-5\n 098eeaa087..d5a447e492 JY-20613-allow-owner-role-on-team-setup -> origin/JY-20613-allow-owner-role-on-team-setup\n c3a76ace91..af65249d0f JY-20749-user-can-view-recorded-meetings -> origin/JY-20749-user-can-view-recorded-meetings\n d94a285ae7..7ce96cb5fe JY-20808-low-priority-indexing-queue -> origin/JY-20808-low-priority-indexing-queue\n * [new branch] JY-20842-remove-partial-updater -> origin/JY-20842-remove-partial-updater\n * [new branch] JY-20920-fix-participant-flip -> origin/JY-20920-fix-participant-flip\n * [new branch] secfix/npm-20260519 -> origin/secfix/npm-20260519\nUpdating cb4ebf0c36..5604af40cf\nFast-forward\n app/Component/ES/ChunkSize.php | 54 +++++++++++++++++++\n app/Component/ES/Processor/DTOs/SelectionList.php | 4 +-\n app/Component/ES/Processor/TargetEntitiesSelector.php | 19 ++++---\n app/Component/MeetingBot/Service/ParticipantMatcher.php | 46 ++++++++++++----\n app/Exceptions/RateLimitException.php | 19 ++++++-\n app/Http/Middleware/McpTierMiddleware.php | 27 ++--------\n app/Jobs/Crm/MatchActivityCrmData.php | 47 ++++++++++++----\n app/Jobs/Middleware/HandleHubspotRateLimit.php | 42 +++++++++++++++\n app/Mcp/Servers/JiminnyServer.php | 2 +\n app/Mcp/Tools/GetMeTool.php | 157 +++++++++++++++++++++++++++++++++++++++++++++++++++++\n app/Models/Feature/FeatureEnum.php | 1 +\n app/Services/Activity/HubSpot/ProviderResolver.php | 4 +-\n app/Services/Activity/HubSpot/ProviderResolverInterface.php | 2 +-\n app/Services/Activity/HubSpot/Providers/Provider.php | 2 +-\n app/Services/Activity/HubSpot/Providers/ProviderKixie.php | 2 +-\n app/Services/Activity/HubSpot/Providers/ProviderOrum.php | 2 +-\n app/Services/Activity/HubSpot/Providers/ProviderTwilio.php | 2 +-\n app/Services/Activity/HubSpot/Providers/ProviderTwilioFlex.php | 5 +-\n app/Services/Activity/HubSpot/Service.php | 97 +++++++++++++++++++++++++++------\n app/Services/Crm/Hubspot/Client.php | 132 +++++++++++++++++++++++++++++++++++++++++++++\n app/Services/Crm/Hubspot/HubspotClientInterface.php | 15 ++++++\n app/Services/Crm/Hubspot/Pagination/HubspotPaginationService.php | 21 ++++----\n app/Services/Crm/Hubspot/Pagination/PaginationState.php | 2 +-\n database/migrations/2026_05_13_124153_create_mcp_feature_flag.php | 25 +++++++++\n tests/Feature/Mcp/GetMeToolFeatureTest.php | 140 +++++++++++++++++++++++++++++++++++++++++++++++\n tests/Feature/Mcp/ListCallsToolFeatureTest.php | 2 +-\n tests/Feature/Mcp/McpTestHelpersTrait.php | 19 ++++++-\n tests/Unit/Component/ES/ChunkSizeTest.php | 50 +++++++++++++++++\n tests/Unit/Component/ES/Processor/DTOs/SelectionListTest.php | 27 +++++++---\n tests/Unit/Component/ES/Processor/TargetEntitiesSelectorTest.php | 39 ++++++++------\n tests/Unit/Component/MeetingBot/Service/ParticipantMatcherTest.php | 68 ++++++++++++++++++++++-\n tests/Unit/Exceptions/RateLimitExceptionTest.php | 56 +++++++++++++++++++\n tests/Unit/Jobs/Crm/MatchActivityCrmDataTest.php | 8 +--\n tests/Unit/Jobs/Middleware/HandleHubspotRateLimitTest.php | 151 +++++++++++++++++++++++++++++++++++++++++++++++++++\n tests/Unit/Services/Activity/HubSpot/ServiceTest.php | 109 +++++++++++++++++++++++++++++++++++++\n tests/Unit/Services/Crm/Hubspot/ClientTest.php | 250 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++\n tests/Unit/Services/Crm/Hubspot/Pagination/HubspotPaginationServiceTest.php | 283 +++++++++++++++++++++---------------------------------------------------------------------------\n 37 files changed, 1587 insertions(+), 344 deletions(-)\n create mode 100644 app/Component/ES/ChunkSize.php\n create mode 100644 app/Jobs/Middleware/HandleHubspotRateLimit.php\n create mode 100644 app/Mcp/Tools/GetMeTool.php\n create mode 100644 database/migrations/2026_05_13_124153_create_mcp_feature_flag.php\n create mode 100644 tests/Feature/Mcp/GetMeToolFeatureTest.php\n create mode 100644 tests/Unit/Component/ES/ChunkSizeTest.php\n create mode 100644 tests/Unit/Exceptions/RateLimitExceptionTest.php\n create mode 100644 tests/Unit/Jobs/Middleware/HandleHubspotRateLimitTest.php\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (master) $ git pull\nAlready up to date.\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (master) $ co -b JY-20676-delete-report-related-objects\nSwitched to a new branch 'JY-20676-delete-report-related-objects'\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20676-delete-report-related-objects) $ csfix\ndocker exec -it docker_lamp_1 ./vendor/bin/php-cs-fixer fix --config=.php-cs-fixer.dist.php -v --using-cache=no --diff \nPHP CS Fixer 3.87.1 Alexander by Fabien Potencier, Dariusz Ruminski and contributors.\nPHP runtime: 8.3.30\nRunning analysis on 7 cores with 10 files per process.\nParallel runner is an experimental feature and may be unstable, use it at your own risk. Feedback highly appreciated!\nLoaded config default from \".php-cs-fixer.dist.php\".\n 5690/5690 [▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓] 100%\n\n 1) app/Console/Commands/JiminnyDebugCommand.php (statement_indentation, blank_line_before_statement)\n ---------- begin diff ----------\n--- /home/jiminny/app/Console/Commands/JiminnyDebugCommand.php\n+++ /home/jiminny/app/Console/Commands/JiminnyDebugCommand.php\n@@ -23,6 +23,7 @@\n \n if ($action === 'redis-set') {\n $this->testRedisSet();\n+\n return;\n }\n \n@@ -45,7 +46,7 @@\n $ttl = 60;\n \n try {\n-// $result = Redis::set($testKey, $testValue, 'EX', $ttl, 'NX');\n+ // $result = Redis::set($testKey, $testValue, 'EX', $ttl, 'NX');\n $result = Redis::set($testKey, $testValue, ['nx', 'ex' => $ttl]);\n \n if ($result) {\n\n ----------- end diff -----------\n\n\nFixed 1 of 5690 files in 50.673 seconds, 67.00 MB memory used\n\nWhat's next:\n Try Docker Debug for seamless, persistent debugging tools in any container or image → docker debug docker_lamp_1\n Learn more at https://docs.docker.com/go/debug-cli/\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20676-delete-report-related-objects) $ ;xd\ndocker exec -it docker_lamp_1 bash -c \"mv /usr/local/etc/php/conf.d/xdebug.ini ~/xdebug.ini\"\n\nWhat's next:\n Try Docker Debug for seamless, persistent debugging tools in any container or image → docker debug docker_lamp_1\n Learn more at https://docs.docker.com/go/debug-cli/\ndocker exec -it docker_lamp_1 supervisorctl restart all\njiminny-worker-processing-2:jiminny-worker-processing-2_00: stopped\njiminny-worker-processing-3:jiminny-worker-processing-3_00: stopped\njiminny-worker-processing-4:jiminny-worker-processing-4_00: stopped\njiminny-worker-processing-5:jiminny-worker-processing-5_00: stopped\njiminny-worker-processing-delayed:jiminny-worker-processing-delayed_00: stopped\nworker-analytics:worker-analytics_00: stopped\nworker-crm-update:worker-crm-update_00: stopped\nworker-download:worker-download_00: stopped\nworker-nudges:worker-nudges_00: stopped\nworker-calendar:worker-calendar_00: stopped\nworker-audio:worker-audio_00: stopped\njiminny-worker-processing-1:jiminny-worker-processing-1_00: stopped\nworker:worker_00: stopped\nworker-conferences:worker-conferences_00: stopped\nworker-crm-sync:worker-crm-sync_00: stopped\nworker-emails:worker-emails_00: stopped\nworker-es-update:worker-es-update_00: stopped\nartisan-schedule:artisan-schedule_00: stopped\nartisan-schedule:artisan-schedule_00: started\njiminny-worker-processing-1:jiminny-worker-processing-1_00: started\njiminny-worker-processing-2:jiminny-worker-processing-2_00: started\njiminny-worker-processing-3:jiminny-worker-processing-3_00: started\njiminny-worker-processing-4:jiminny-worker-processing-4_00: started\njiminny-worker-processing-5:jiminny-worker-processing-5_00: started\njiminny-worker-processing-delayed:jiminny-worker-processing-delayed_00: started\nworker:worker_00: started\nworker-analytics:worker-analytics_00: started\nworker-audio:worker-audio_00: started\nworker-calendar:worker-calendar_00: started\nworker-conferences:worker-conferences_00: started\nworker-crm-sync:worker-crm-sync_00: started\nworker-crm-update:worker-crm-update_00: started\nworker-download:worker-download_00: started\nworker-emails:worker-emails_00: started\nworker-es-update:worker-es-update_00: started\nworker-nudges:worker-nudges_00: started\n\nWhat's next:\n Try Docker Debug for seamless, persistent debugging tools in any container or image → docker debug docker_lamp_1\n Learn more at https://docs.docker.com/go/debug-cli/\ndocker exec -it docker_lamp_1 php -v\nPHP 8.3.30 (cli) (built: Mar 16 2026 22:32:32) (NTS)\nCopyright (c) The PHP Group\nZend Engine v4.3.30, Copyright (c) Zend Technologies\n with Zend OPcache v8.3.30, Copyright (c), by Zend Technologies\n\nWhat's next:\n Try Docker Debug for seamless, persistent debugging tools in any container or image → docker debug docker_lamp_1\n Learn more at https://docs.docker.com/go/debug-cli/\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20676-delete-report-related-objects) $ git status\nOn branch JY-20676-delete-report-related-objects\nChanges not staged for commit:\n (use \"git add <file>...\" to update what will be committed)\n (use \"git restore <file>...\" to discard changes in working directory)\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tmodified: .env.local\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tmodified: app/Console/Commands/JiminnyDebugCommand.php\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tmodified: config/logging.php\n\nUntracked files:\n (use \"git add <file>...\" to include in what will be committed)\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\t.env.nikilocal\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\t.env.other\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tWEBHOOK_FILTERING_IMPLEMENTATION.md\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tapp/Console/Commands/Crm/Hubspot/SimulateWebhooksCommand.php\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tapp/Console/Commands/Reports/CreateMockAskJiminnyReportResultCommand.php\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tids.txt\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tpublic/favicon.ico\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\traw_sql_query.sql\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\ttests/Unit/Policies/CanAccessAiReportsTest.php\n\nno changes added to commit (use \"git add\" and/or \"git commit -a\")\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20676-delete-report-related-objects) $ git push -u origin JY-20676-delete-report-related-objects\nEnumerating objects: 45, done.\nCounting objects: 100% (45/45), done.\nDelta compression using up to 8 threads\nCompressing objects: 100% (24/24), done.\nWriting objects: 100% (24/24), 3.62 KiB | 3.62 MiB/s, done.\nTotal 24 (delta 19), reused 0 (delta 0), pack-reused 0\nremote: Resolving deltas: 100% (19/19), completed with 19 local objects.\nremote: \nremote: Create a pull request for 'JY-20676-delete-report-related-objects' on GitHub by visiting:\nremote: https://github.com/jiminny/app/pull/new/JY-20676-delete-report-related-objects\nremote: \nTo github.com:jiminny/app.git\n * [new branch] JY-20676-delete-report-related-objects -> JY-20676-delete-report-related-objects\nbranch 'JY-20676-delete-report-related-objects' set up to track 'origin/JY-20676-delete-report-related-objects'.\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20676-delete-report-related-objects) $ csfix\ndocker exec -it docker_lamp_1 ./vendor/bin/php-cs-fixer fix --config=.php-cs-fixer.dist.php -v --using-cache=no --diff \nPHP CS Fixer 3.87.1 Alexander by Fabien Potencier, Dariusz Ruminski and contributors.\nPHP runtime: 8.3.30\nRunning analysis on 7 cores with 10 files per process.\nParallel runner is an experimental feature and may be unstable, use it at your own risk. Feedback highly appreciated!\nLoaded config default from \".php-cs-fixer.dist.php\".\n 5690/5690 [▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓] 100%\n\n 1) app/Http/Controllers/API/V2/AskJiminnyReportsController.php (blank_line_before_statement)\n ---------- begin diff ----------\n--- /home/jiminny/app/Http/Controllers/API/V2/AskJiminnyReportsController.php\n+++ /home/jiminny/app/Http/Controllers/API/V2/AskJiminnyReportsController.php\n@@ -140,6 +140,7 @@\n if ($enabled && $report->isAskJiminnyReport() && ! $report->canExecute()) {\n $error = 'This report is missing a saved search or prompt. ' .\n 'Edit the report to complete the setup before enabling it.';\n+\n return new JsonResponse(\n ['error' => $error],\n Response::HTTP_UNPROCESSABLE_ENTITY\n\n ----------- end diff -----------\n\n\nFixed 1 of 5690 files in 71.757 seconds, 60.00 MB memory used\n\nWhat's next:\n Try Docker Debug for seamless, persistent debugging tools in any container or image → docker debug docker_lamp_1\n Learn more at https://docs.docker.com/go/debug-cli/\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20676-delete-report-related-objects) $ git pull\nremote: Enumerating objects: 158, done.\nremote: Counting objects: 100% (103/103), done.\nremote: Compressing objects: 100% (37/37), done.\nremote: Total 158 (delta 80), reused 74 (delta 66), pack-reused 55 (from 3)\nReceiving objects: 100% (158/158), 80.59 KiB | 982.00 KiB/s, done.\nResolving deltas: 100% (85/85), completed with 45 local objects.\nFrom github.com:jiminny/app\n 02a33811ee..c6ce5e2440 JY-20676-delete-report-related-objects -> origin/JY-20676-delete-report-related-objects\n 7ce96cb5fe..6c59f04358 JY-20808-low-priority-indexing-queue -> origin/JY-20808-low-priority-indexing-queue\n 3906a9238a..2b5e6ea62b JY-20835-mcp-enable-users-to-get-a-list-of-deals-and-their-details -> origin/JY-20835-mcp-enable-users-to-get-a-list-of-deals-and-their-details\n 5604af40cf..ea3519f0e2 master -> origin/master\n * [new branch] switch-eu-assembly -> origin/switch-eu-assembly\nUpdating 02a33811ee..c6ce5e2440\nFast-forward\n app/Component/ES/ElasticSearchDocumentPartialUpdater.php | 48 ---\n app/Component/ParticipantSpeech/Services/ParticipantAttributionService.php | 4 +-\n app/Component/Settings/AutoScoring/Services/UpdateAutoScoreService.php | 20 +-\n app/Component/Transcription/Service/StorageService.php | 8 +-\n front-end/package.json | 2 +-\n front-end/src/components/DealInsights/Modals/AskAnythingModal.vue | 23 ++\n front-end/src/components/shared/AskAnything/AskAnythingPromptFormItem.vue | 2 +\n front-end/src/components/shared/AskAnything/AskAnythingSettingsDrawer.vue | 23 +-\n front-end/src/components/shared/AskAnything/__mocks__/AskAnythingSettingsDrawer.mocks.js | 1 +\n front-end/src/components/shared/AskAnything/__tests__/AskAnythingSettingsDrawer.spec.js | 135 ++++---\n front-end/src/components/shared/AskAnything/__tests__/__snapshots__/AskAnythingSettingsDrawer.spec.js.html | 1235 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++\n front-end/src/components/shared/AskAnything/__tests__/__snapshots__/AskAnythingSettingsDrawer.spec.js.snap | 1382 ----------------------------------------------------------------\n front-end/src/components/shared/AskAnything/prompts.js | 1 +\n front-end/src/components/shared/AskAnything/useAskAnything.js | 1 +\n front-end/yarn.lock | 8 +-\n tests/Unit/Component/ES/ElasticSearchDocumentPartialUpdaterTest.php | 42 --\n tests/Unit/Component/Settings/AutoScoring/Services/UpdateAutoScoreServiceTest.php | 86 ++--\n tests/Unit/Component/Transcription/Service/StorageServiceTest.php | 29 +-\n 18 files changed, 1448 insertions(+), 1602 deletions(-)\n delete mode 100644 app/Component/ES/ElasticSearchDocumentPartialUpdater.php\n create mode 100644 front-end/src/components/shared/AskAnything/__tests__/__snapshots__/AskAnythingSettingsDrawer.spec.js.html\n delete mode 100644 front-end/src/components/shared/AskAnything/__tests__/__snapshots__/AskAnythingSettingsDrawer.spec.js.snap\n delete mode 100644 tests/Unit/Component/ES/ElasticSearchDocumentPartialUpdaterTest.php\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20676-delete-report-related-objects) $ csfix\ndocker exec -it docker_lamp_1 ./vendor/bin/php-cs-fixer fix --config=.php-cs-fixer.dist.php -v --using-cache=no --diff \nPHP CS Fixer 3.87.1 Alexander by Fabien Potencier, Dariusz Ruminski and contributors.\nPHP runtime: 8.3.30\nRunning analysis on 7 cores with 10 files per process.\nParallel runner is an experimental feature and may be unstable, use it at your own risk. Feedback highly appreciated!\nLoaded config default from \".php-cs-fixer.dist.php\".\n 5688/5688 [▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓] 100%\n\n\nFixed 0 of 5688 files in 79.904 seconds, 60.00 MB memory used\n\nWhat's next:\n Try Docker Debug for seamless, persistent debugging tools in any container or image → docker debug docker_lamp_1\n Learn more at https://docs.docker.com/go/debug-cli/\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20676-delete-report-related-objects) $","is_focused":true},{"role":"AXRadioButton","text":"DOCKER","depth":2,"bounds":{"left":0.0,"top":0.05888889,"width":0.19826388,"height":0.026666667},"on_screen":true,"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.004166667,"top":0.06333333,"width":0.011111111,"height":0.017777778},"on_screen":true,"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"DEV (docker)","depth":2,"bounds":{"left":0.19826388,"top":0.05888889,"width":0.19826388,"height":0.026666667},"on_screen":true,"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.20243056,"top":0.06333333,"width":0.011111111,"height":0.017777778},"on_screen":true,"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"APP (-zsh)","depth":2,"bounds":{"left":0.39652777,"top":0.05888889,"width":0.19791667,"height":0.026666667},"on_screen":true,"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.40069443,"top":0.06333333,"width":0.011111111,"height":0.017777778},"on_screen":true,"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"screenpipe\"","depth":2,"bounds":{"left":0.59444445,"top":0.05888889,"width":0.19791667,"height":0.026666667},"on_screen":true,"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.5986111,"top":0.06333333,"width":0.011111111,"height":0.017777778},"on_screen":true,"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"-zsh","depth":2,"bounds":{"left":0.79236114,"top":0.05888889,"width":0.19791667,"height":0.026666667},"on_screen":true,"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.7965278,"top":0.06333333,"width":0.011111111,"height":0.017777778},"on_screen":true,"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"⌥⌘1","depth":1,"bounds":{"left":0.9618056,"top":0.032222223,"width":0.038194418,"height":0.018888889},"on_screen":true,"automation_id":"_NS:8","role_description":"text"},{"role":"AXStaticText","text":"APP (-zsh)","depth":1,"bounds":{"left":0.47777778,"top":0.033333335,"width":0.05138889,"height":0.017777778},"on_screen":true,"role_description":"text"}]...
|
2802650493718167367
|
-1358120912881272742
|
idle
|
accessibility
|
NULL
|
Last login: Mon May 18 09:17:28 on ttys007
Poetry Last login: Mon May 18 09:17:28 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 (pipedrive-sdk-poc) $ co master
error: Your local changes to the following files would be overwritten by checkout:
PIPEDRIVE_V2_MIGRATION_TICKETS.md
Please commit your changes or stash them before you switch branches.
Aborting
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (pipedrive-sdk-poc) $ git pull
remote: Enumerating objects: 1047, done.
remote: Counting objects: 100% (832/832), done.
remote: Compressing objects: 100% (298/298), done.
remote: Total 1047 (delta 634), reused 596 (delta 534), pack-reused 215 (from 3)
Receiving objects: 100% (1047/1047), 353.16 KiB | 1.56 MiB/s, done.
Resolving deltas: 100% (687/687), completed with 107 local objects.
From github.com:jiminny/app
907c54896c..34656c53ed pipedrive-sdk-poc -> origin/pipedrive-sdk-poc
03325ec50f..4e7078fd8b JY-18091-upgrade-to-php-8-5 -> origin/JY-18091-upgrade-to-php-8-5
e7d231e163..bc6a3fce6b JY-20725-handle-HS-search-rate-limit -> origin/JY-20725-handle-HS-search-rate-limit
* [new branch] JY-20749-user-can-view-recorded-meetings -> origin/JY-20749-user-can-view-recorded-meetings
98ca281a04..e0351be069 JY-20808-low-priority-indexing-queue -> origin/JY-20808-low-priority-indexing-queue
569abb5149..3906a9238a JY-20835-mcp-enable-users-to-get-a-list-of-deals-and-their-details -> origin/JY-20835-mcp-enable-users-to-get-a-list-of-deals-and-their-details
ad6c2a86e8..50eb6afba9 JY-20846-mcp-enable-the-ai-to-know-details-about-the-user -> origin/JY-20846-mcp-enable-the-ai-to-know-details-about-the-user
* [new branch] JY-20893-chunk-control-per-update-target -> origin/JY-20893-chunk-control-per-update-target
31c62924a5..cb4ebf0c36 master -> origin/master
Updating 907c54896c..34656c53ed
Fast-forward
PIPEDRIVE_V2_MIGRATION_TICKETS.md | 52 ++++++++++++++++++++++++++++++++++++++++++++++++++++
1 file changed, 52 insertions(+)
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (pipedrive-sdk-poc) $ co master
M .env.local
M config/logging.php
Switched to branch 'master'
Your branch is behind 'origin/master' by 31 commits, and can be fast-forwarded.
(use "git pull" to update your local branch)
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (master) $ git pull
Updating 31c62924a5..cb4ebf0c36
Fast-forward
app/Component/ES/Processor/Traits/SelectEntityListTrait.php | 20 ------
app/Services/Calendar/CalendarActivityService.php | 46 +++++++++++++
app/Services/Calendar/Command/MapActivityData.php | 106 +++-------------------------
docs/mcp/explorer/explorer.html | 104 +++++++++++++++++++++++++---
docs/mcp/explorer/explorer.template.html | 102 ++++++++++++++++++++++++---
docs/mcp/tools-list.json | 373 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++-------
docs/mcp/tools.md | 117 +++++++++++++++++++++++--------
tests/Unit/Component/ES/AsyncUpdateElasticSearchTest.php | 16 +----
tests/Unit/Component/ES/Listeners/UpdateMultipleTargetsListenerTest.php | 10 ---
tests/Unit/Component/ES/Listeners/UpdateSingleTargetListenerTest.php | 6 --
tests/Unit/Component/ES/Processor/TargetEntitiesSelectorTest.php | 9 ---
tests/Unit/Component/ES/Processor/Traits/SelectEntityListTraitTest.php | 15 ++--
tests/Unit/Component/ES/UpdateProcessManagerTest.php | 2 -
tests/Unit/Services/Calendar/CalendarActivityServiceTest.php | 150 ++++++++++++++++++++++++++++++++++++++--
tests/Unit/Services/Calendar/Command/MapActivityDataTest.php | 78 ++-------------------
15 files changed, 832 insertions(+), 322 deletions(-)
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (master) $ co -b JY-20613-allow-owner-role-on-team-setup
Switched to a new branch 'JY-20613-allow-owner-role-on-team-setup'
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20613-allow-owner-role-on-team-setup) $ csfix
docker exec -it docker_lamp_1 ./vendor/bin/php-cs-fixer fix --config=.php-cs-fixer.dist.php -v --using-cache=no --diff
PHP CS Fixer 3.87.1 Alexander by Fabien Potencier, Dariusz Ruminski and contributors.
PHP runtime: 8.3.30
Running 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!
Loaded config default from ".php-cs-fixer.dist.php".
5682/5682 [▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓] 100%
Fixed 0 of 5682 files in 56.978 seconds, 67.00 MB memory used
What's next:
Try Docker Debug for seamless, persistent debugging tools in any container or image → docker debug docker_lamp_1
Learn more at [URL_WITH_CREDENTIALS] ~/jiminny/app (JY-20613-allow-owner-role-on-team-setup) $ csfix
docker exec -it docker_lamp_1 ./vendor/bin/php-cs-fixer fix --config=.php-cs-fixer.dist.php -v --using-cache=no --diff
PHP CS Fixer 3.87.1 Alexander by Fabien Potencier, Dariusz Ruminski and contributors.
PHP runtime: 8.3.30
Running 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!
Loaded config default from ".php-cs-fixer.dist.php".
5682/5682 [▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓] 100%
Fixed 0 of 5682 files in 49.910 seconds, 60.00 MB memory used
What's next:
Try Docker Debug for seamless, persistent debugging tools in any container or image → docker debug docker_lamp_1
Learn more at [URL_WITH_CREDENTIALS] ~/jiminny/app (JY-20613-allow-owner-role-on-team-setup) $ git pull
remote: Enumerating objects: 248, done.
remote: Counting objects: 100% (128/128), done.
remote: Compressing objects: 100% (23/23), done.
remote: Total 59 (delta 43), reused 44 (delta 33), pack-reused 0 (from 0)
Unpacking objects: 100% (59/59), 10.48 KiB | 228.00 KiB/s, done.
From github.com:jiminny/app
b7df560451..190239dfd4 JY-20613-allow-owner-role-on-team-setup -> origin/JY-20613-allow-owner-role-on-team-setup
e0351be069..d94a285ae7 JY-20808-low-priority-indexing-queue -> origin/JY-20808-low-priority-indexing-queue
* [new branch] JY-20920-fix-participant-matcher -> origin/JY-20920-fix-participant-matcher
cb4ebf0c36..90bca4e4b2 master -> origin/master
Merge made by the 'ort' strategy.
app/Component/ES/ChunkSize.php | 54 +++++++++++++++++++++++++++
app/Component/ES/Processor/DTOs/SelectionList.php | 4 +-
app/Component/ES/Processor/TargetEntitiesSelector.php | 19 ++++++----
app/Http/Middleware/McpTierMiddleware.php | 27 +++-----------
app/Mcp/Servers/JiminnyServer.php | 2 +
app/Mcp/Tools/GetMeTool.php | 157 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
app/Models/Feature/FeatureEnum.php | 1 +
database/migrations/2026_05_13_124153_create_mcp_feature_flag.php | 25 +++++++++++++
front-end/src/components/Settings/Kiosk/modals/EditTeamModal/EditTeamModal.vue | 52 ++++++++++++++++++--------
front-end/src/components/Settings/Kiosk/modals/EditTeamModal/__tests__/EditTeamModal.spec.js | 14 +++++++
tests/Feature/Mcp/GetMeToolFeatureTest.php | 140 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
tests/Feature/Mcp/ListCallsToolFeatureTest.php | 2 +-
tests/Feature/Mcp/McpTestHelpersTrait.php | 19 +++++++++-
tests/Unit/Component/ES/ChunkSizeTest.php | 50 +++++++++++++++++++++++++
tests/Unit/Component/ES/Processor/DTOs/SelectionListTest.php | 27 ++++++++++----
tests/Unit/Component/ES/Processor/TargetEntitiesSelectorTest.php | 39 +++++++++++---------
16 files changed, 557 insertions(+), 75 deletions(-)
create mode 100644 app/Component/ES/ChunkSize.php
create mode 100644 app/Mcp/Tools/GetMeTool.php
create mode 100644 database/migrations/2026_05_13_124153_create_mcp_feature_flag.php
create mode 100644 tests/Feature/Mcp/GetMeToolFeatureTest.php
create mode 100644 tests/Unit/Component/ES/ChunkSizeTest.php
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20613-allow-owner-role-on-team-setup) $ git push
Enumerating objects: 40, done.
Counting objects: 100% (34/34), done.
Delta compression using up to 8 threads
Compressing objects: 100% (18/18), done.
Writing objects: 100% (18/18), 1.58 KiB | 1.58 MiB/s, done.
Total 18 (delta 15), reused 0 (delta 0), pack-reused 0
remote: Resolving deltas: 100% (15/15), completed with 13 local objects.
To github.com:jiminny/app.git
190239dfd4..ec1b261264 JY-20613-allow-owner-role-on-team-setup -> JY-20613-allow-owner-role-on-team-setup
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20613-allow-owner-role-on-team-setup) $ gbr
* JY-20613-allow-owner-role-on-team-setup
pipedrive-sdk-poc
master
JY-20903-update_activity-stage-on-opportunity-change
JY-20904-fix-update-es-on-activity-command
JY-20891-improve-sms-text-relays
JY-20725-handle-HS-search-rate-limit
JY-20818-move-AJ-reports-to-separated-datadog-metric
JY-20773-fix-automated-reports-user-pilot-tracking
JY-20157-AJ-report-not-send-notification
JY-20508-notify-before-AJ-report-expiration
JY-20372-ai-reports-promotion-pages
JY-20352-sync-opportunities-without-a-local-owner-user-id-is-null
JY-20738-debug-AJ-tracking-UP
a
JY-18909-automated-reports-ask-jiminny
JY-20692-fix-integration-app-[API_KEY]
JY-20553-debug-crm-sync-delays
JY-20698-fix-SF-activity-types-on-new-playbook
JY-20543-AJ-report-tracking
JY-20384-handle-auto-sync-with-no-access-to-event-type
JY-20458-ask-jiminny-user-definitions
JY-19666-fix-import-contacts-account-association
JY-19666-HS-import-contacts-and-accounts-batch-job
JY-20458-Ask-Jiminny-Reports
JY-20200-batch-update-CRM-objects-Salesforce
JY-19666-HS-webhooks-add-contact-and-company
JY-20348-trigger-setup-DI-layout-on-team-creation
JY-20326-refactor-info-message-in-command
JY-20317-fix-auto-log-delay-issue-on-all-channels-disabled
JY-20312-remove-on-update-change-last-synced-at-crm-configurations
JY-20306-SF-skip-auto-sync-for-task-based-playbook
JY-20192-remove-deleted-team-from-saved-search-filters
JY-20197-import-opportunity-batch-job
JY-20293-enable-status-field-for-pipedrive-deals
JY-20191-remove-commands-interactive-prompts
JY-20118-change-default-sync-strategy
JY-20183-add-cache-on-auto-log-delay
JY-20197-add-import-opportunity-batch-job
20118-hs-opportunity-make-webhook-strategy-default
JY-20118-make-default-hs-opportunity-sync-strategy-webhook-based
JY-20196-handle-opportunity-without-note
JY-20118-improve-opportunity-import
JY-20189-handle-activity-search-on-deleted-groups
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20613-allow-owner-role-on-team-setup) $ co JY-20725-handle-HS-search-rate-limit
M .env.local
M config/logging.php
Switched to branch 'JY-20725-handle-HS-search-rate-limit'
Your branch is behind 'origin/JY-20725-handle-HS-search-rate-limit' by 439 commits, and can be fast-forwarded.
(use "git pull" to update your local branch)
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20725-handle-HS-search-rate-limit) $ git pull
Updating 0f3e438941..bc6a3fce6b
Fast-forward
.gitignore | 3 +-
.windsurfrules | 168 ++---
CLAUDE.md | 1 +
app/Component/ActivityAnalytics/Service/CalculateTalkTimeOffsetsFromTranscription.php | 24 +-
app/Component/AiActivityType/Services/AiActivityTypeEligibilityChecker.php | 28 +-
app/Component/AiAutomation/Actions/PrepareUpdateDtoAction.php | 32 +-
app/Component/AiAutomation/Services/CrmFillingEligibilityChecker.php | 47 ++
app/Component/AiAutomation/TestCrmAiPromptService.php | 14 +
app/Component/AiCallScoring/Services/AiCallScoringEligibilityChecker.php | 9 +
app/Component/ES/ElasticSearchDocumentPartialUpdater.php | 13 +-
app/Component/ES/ElasticSearchWorkerManager.php | 86 ---
app/Component/ES/Processor/Actions/LoadDocumentsAction.php | 80 +--
app/Component/ES/Processor/EntityQueryBuilder.php | 12 +-
app/Component/ES/Processor/TargetEntitiesSelector.php | 2 +-
app/Component/ES/Processor/Traits/SkipActivityTrait.php | 25 -
app/Component/ES/Repositories/EsResetActivityRepository.php | 11 +-
app/Component/ES/Worker/ActivityWorker.php | 73 --
app/Component/ES/Worker/EntityWorker.php | 44 --
app/Component/ES/Worker/WorkerAmount.php | 60 --
app/Component/ES/Worker/WorkerInterface.php | 15 -
app/Component/ElasticSearch/Contract/Searchable.php | 4 +
app/Component/Encoding/Job/AnalyzeTrackChannelsJob.php | 20 +-
app/Component/Encoding/Service/GenerateSpeechFromSilenceService.php | 85 ++-
app/Component/FFMpeg/Services/GetSpeechIntervalsService.php | 18 +-
app/Component/LanguageDetection/Services/FindSpeechTimeService.php | 22 +-
app/Component/Nudge/Job/ProcessOrganisationImmediateNudgesJob.php | 218 +++++-
app/Component/ParagraphBreaker/Services/TranscriptionParagraphsService.php | 4 +
app/Component/ParticipantSpeech/Services/ParticipantSpeechesCreator.php | 33 +
app/Component/ParticipantSpeech/Services/ParticipantSpeechesDeleter.php | 15 +
app/Component/ParticipantSpeech/Services/ParticipantSpeechesProvider.php | 51 +-
app/Component/ParticipantSpeech/Services/ParticipantSpeechesUploader.php | 36 +
app/Component/ProphetAi/Exceptions/InsufficientTranscriptException.php | 11 +
app/Component/Transcription/DTO/Http/Transcription/AssemblyAI/AssemblyAI/NoAssemblyIdException.php | 11 +
app/Component/Transcription/DTO/Http/Transcription/AssemblyAI/AssemblyAI/SuccessfulResponse.php | 6 +
app/Component/Transcription/DTO/Http/Transcription/TranscriptionIsNotCorrectFormatException.php | 11 +
app/Component/Transcription/Diarization/Services/GetNormalizedParticipantSpeechesService.php | 23 +-
app/Component/Transcription/Diarization/Source/MeetingBotSource.php | 16 +-
app/Component/Transcription/TranscriptionProcessor/TranscriptionProcessor.php | 3 +
app/Console/Commands/Activities/ActivityHardDeleteCommand.php | 4 +-
app/Console/Commands/Activities/Copy.php | 2 +
app/Console/Commands/Activities/SetupIntegration/TwilioSetS3RecordingCredentialsCommand.php | 119 ++++
app/Console/Commands/Activities/UpdateActivityElasticSearchDocumentCommand.php | 10 +-
app/Console/Commands/Crm/BackfillOpportunityUserFromAccountCommand.php | 126 ++++
app/Console/Commands/Elasticsearch/AsyncUpdateEsActivities.php | 19 -
app/Console/Commands/Elasticsearch/AsyncUpdateEsEntities.php | 50 +-
app/Console/Commands/Elasticsearch/ResetAsyncElasticSearchCommand.php | 30 +-
app/Console/Commands/GeckoExport/GeckoExportParticipantSpeechesCommand.php | 14 +-
app/Console/Commands/IssueMcpTokenCommand.php | 84 +++
app/Console/Commands/JiminnyDebugCommand.php | 7 +-
app/Console/Commands/Tracks/CleanupActivityTracksCommand.php | 2 +-
app/Console/Kernel.php | 6 +-
app/Contracts/Services/Calendar/CalendarTrait.php | 80 ++-
app/Events/AutomatedReports/AutomatedReportGenerated.php | 3 +
app/Http/Controllers/API/AiCallScoring/AiScorecardController.php | 7 +-
app/Http/Controllers/API/TeamAiAutomationController.php | 8 +
app/Http/Controllers/CustomerApi/CustomerApiController.php | 4 +-
app/Http/Controllers/Kiosk/ActivityController.php | 58 +-
app/Http/Controllers/Settings/PlaybookController.php | 15 +-
app/Http/Kernel.php | 23 +
app/Http/Middleware/McpAuditMiddleware.php | 156 ++++
app/Http/Middleware/McpTierMiddleware.php | 54 ++
app/Http/Requests/API/V2/ZapierUploadActivityRequest.php | 28 +-
app/Jobs/Activity/Import/ImportTwilioVideoSpeechesJob.php | 25 +-
app/Jobs/Activity/Import/IsActivityReadyForProcessingJob.php | 10 +-
app/Jobs/Calendar/SetupCalendarSync.php | 21 +-
app/Jobs/ImportRemoteTrackJob.php | 96 ++-
app/Jobs/Mailbox/EmailTextRelay.php | 15 +-
app/Mcp/Contracts/McpCallRepositoryInterface.php | 30 +
app/Mcp/DTO/ListCallsFilters.php | 29 +
app/Mcp/Errors/McpError.php | 123 ++++
app/Mcp/Repositories/McpActivityHydrator.php | 145 ++++
app/Mcp/Repositories/McpCallRepository.php | 84 +++
app/Mcp/Repositories/McpElasticCallRepository.php | 171 +++++
app/Mcp/Servers/JiminnyServer.php | 38 +
app/Mcp/Tools/ListCallsTool.php | 205 ++++++
app/Models/Activity.php | 10 +-
app/Models/Activity/Transcription.php | 17 +-
app/Models/ElasticSearch/OpportunityElasticSearchTrait.php | 5 +
app/Models/Participant.php | 1 +
app/Providers/AppServiceProvider.php | 22 +
app/Repositories/Crm/ContactRepository.php | 69 +-
app/Repositories/ParticipantSpeechRepository.php | 13 +-
app/Services/Activity/ParticipantsService.php | 19 +-
app/Services/Activity/Twilio/S3RecordingCredentialsService.php | 82 +++
app/Services/ActivityService.php | 21 +-
app/Services/Calendar/CalendarActivityService.php | 46 ++
app/Services/Calendar/Command/ImportParticipants.php | 1 +
app/Services/Calendar/Command/MapActivityData.php | 106 +--
app/Services/Calendar/GoogleCalendarService.php | 12 +-
app/Services/Crm/Close/Processor/OpportunityProcessor.php | 2 +-
app/Services/Crm/Close/Service.php | 22 +-
app/Services/Crm/Copper/Service.php | 12 +-
app/Services/Crm/Hubspot/Service.php | 154 +++-
app/Services/Crm/Hubspot/ServiceTraits/OpportunitySyncTrait.php | 88 ++-
app/Services/Crm/IntegrationApp/ServiceTraits/SyncCrmEntitiesTrait.php | 22 +-
app/Services/Crm/Pipedrive/Service.php | 17 +-
app/Services/Crm/Salesforce/Service.php | 42 +-
app/Services/Mail/Office/EmailApiClient.php | 129 +---
app/Services/RecallAI/Commands/ScheduleBotCommand.php | 39 +-
app/Services/RecallAI/RecallAIService.php | 22 +-
composer.json | 3 +-
composer.lock | 87 ++-
config/mcp.php | 23 +
database/migrations/2026_04_30_120000_create_mcp_audit_log_table.php | 36 +
docs/mcp/explorer/explorer.html | 697 ++++++++++++++++++
docs/mcp/explorer/explorer.template.html | 697 ++++++++++++++++++
docs/mcp/explorer/generate.js | 215 ++++++
docs/mcp/explorer/tool-explorer-meta.json | 11 +
docs/mcp/tools-list.json | 2536 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
docs/mcp/tools.md | 621 ++++++++++++++++
front-end/package.json | 4 +-
front-end/src/components/Settings/OrgSettings/AiAutomation/CrmFilling/TemplateFieldForm.vue | 28 +-
front-end/src/components/Settings/OrgSettings/Playbooks/AddEditPlaybook.vue | 10 +
front-end/src/components/playback/comments/ActivityComment.less | 10 +-
front-end/src/components/shared/PromptTester/PromptTester.vue | 12 +-
front-end/src/components/shared/__tests__/PromptTester.spec.js | 35 +
front-end/src/components/shared/modals/EntityPickerModal/__tests__/useEntitiesCache.spec.ts | 37 +
front-end/src/components/shared/modals/EntityPickerModal/useEntitiesCache.ts | 9 +
front-end/yarn.lock | 16 +-
phpstan-baseline.neon | 50 --
routes/api.php | 11 +
sonar-project.properties | 91 ++-
tests/Feature/Component/Nudge/ProcessOrganisationImmediateNudgesJobTest.php | 534 ++++++++++++++
tests/Feature/Jobs/ImportRemoteTrackJobTest.php | 283 +++++++-
tests/Feature/Mcp/IssueMcpTokenCommandTest.php | 53 ++
tests/Feature/Mcp/ListCallsToolElasticFeatureTest.php | 155 ++++
tests/Feature/Mcp/ListCallsToolFeatureTest.php | 352 ++++++++++
tests/Feature/Mcp/McpTestHelpersTrait.php | 77 ++
tests/Feature/Services/Team/TeamDeleteHandlers/Retention/RetentionRepositoryHandlerTest.php | 1 +
tests/Stubs/SentryStub.php | 18 +
tests/Unit/Component/ActivityAnalytics/Service/CalculateTalkTimeOffsetFromTranscriptionTest.php | 28 +-
tests/Unit/Component/AiActivityType/Services/AiActivityTypeEligibilityCheckerTest.php | 103 ++-
tests/Unit/Component/AiAutomation/Actions/PrepareUpdateDtoActionTest.php | 91 +++
tests/Unit/Component/AiAutomation/Services/CrmFillingEligibilityCheckerTest.php | 124 ++++
tests/Unit/Component/AiAutomation/TestCrmAiPromptServiceTest.php | 67 +-
tests/Unit/Component/AiCallScoring/Services/AiCallScoringEligibilityCheckerTest.php | 55 ++
tests/Unit/Component/ES/ElasticSearchWorkerManagerTest.php | 135 ----
tests/Unit/Component/ES/Processor/Actions/LoadDocumentsActionTest.php | 220 ++++++
tests/Unit/Component/ES/Processor/EntityQueryBuilderTest.php | 21 +-
tests/Unit/Component/ES/Processor/Traits/SkipActivityTraitTest.php | 51 --
tests/Unit/Component/ES/Worker/ActivityWorkerTest.php | 174 -----
tests/Unit/Component/ES/Worker/EntityWorkerTest.php | 97 ---
tests/Unit/Component/ES/Worker/WorkerAmountTest.php | 116 ---
tests/Unit/Component/Encoding/Job/AnalyzeTrackChannelsJobTest.php | 52 +-
tests/Unit/Component/Encoding/Service/GenerateSpeechFromSilenceServiceTest.php | 171 ++---
tests/Unit/Component/FFMpeg/Services/GetSpeechIntervalsTest.php | 36 +-
tests/Unit/Component/LanguageDetection/Services/FindSpeechTimeServiceTest.php | 20 +-
tests/Unit/Component/MobileSettings/MobileSettingsControllerTest.php | 5 +-
tests/Unit/Component/ParticipantSpeech/Services/ParticipantSpeechesCreatorTest.php | 75 ++
tests/Unit/Component/ParticipantSpeech/Services/ParticipantSpeechesDeleterTest.php | 63 ++
tests/Unit/Component/ParticipantSpeech/Services/ParticipantSpeechesProviderTest.php | 134 ++++
tests/Unit/Component/ParticipantSpeech/Services/ParticipantSpeechesUploaderTest.php | 57 ++
tests/Unit/Component/Transcription/Diarization/Services/GetNormalizedParticipantSpeechesServiceTest.php | 51 +-
tests/Unit/Component/Transcription/Diarization/Source/MeetingBotSourceTest.php | 29 +-
tests/Unit/Contracts/Services/Calendar/CalendarTraitTest.php | 58 +-
tests/Unit/Http/Controllers/Kiosk/ActivityControllerTest.php | 159 +++++
tests/Unit/Jobs/Activity/Import/ImportTwilioVideoSpeechesJobTest.php | 22 +-
tests/Unit/Jobs/Activity/Import/IsActivityReadyForProcessingJobTest.php | 26 +-
tests/Unit/Jobs/Calendar/SetupCalendarSyncTest.php | 25 -
tests/Unit/Services/Activity/ParticipantsServiceTest.php | 12 +-
tests/Unit/Services/Activity/Twilio/S3RecordingCredentialsServiceTest.php | 180 +++++
tests/Unit/Services/ActivityServiceTest.php | 132 ++++
tests/Unit/Services/Calendar/CalendarActivityServiceTest.php | 150 +++-
tests/Unit/Services/Calendar/Command/ImportParticipantsTest.php | 6 +-
tests/Unit/Services/Calendar/Command/MapActivityDataTest.php | 78 +-
tests/Unit/Services/Calendar/GoogleCalendarServiceTest.php | 116 +++
tests/Unit/Services/Crm/Close/ServiceTest.php | 165 +++++
tests/Unit/Services/Crm/Hubspot/ServiceTest.php | 272 ++++++-
tests/Unit/Services/Crm/Hubspot/ServiceTraits/OpportunitySyncTest.php | 25 +-
tests/Unit/Services/Crm/Hubspot/ServiceTraits/OpportunitySyncTraitMatchActivitiesTest.php | 3 +-
tests/Unit/Services/Crm/IntegrationApp/ServiceTraits/SyncCrmEntitiesTraitOpportunitiesTest.php | 40 ++
tests/Unit/Services/Crm/Pipedrive/ImportOpportunityMatchActivitiesTest.php | 2 +
tests/Unit/Services/Crm/Salesforce/ServiceTest.php | 139 ++++
tests/Unit/Services/Mail/Office/EmailApiClientTest.php | 195 ++---
tests/Unit/Services/RecallAI/RecallAIServiceTest.php | 24 +-
175 files changed, 12562 insertions(+), 2162 deletions(-)
create mode 120000 CLAUDE.md
create mode 100644 app/Component/AiAutomation/Services/CrmFillingEligibilityChecker.php
delete mode 100644 app/Component/ES/ElasticSearchWorkerManager.php
delete mode 100644 app/Component/ES/Processor/Traits/SkipActivityTrait.php
delete mode 100644 app/Component/ES/Worker/ActivityWorker.php
delete mode 100644 app/Component/ES/Worker/EntityWorker.php
delete mode 100644 app/Component/ES/Worker/WorkerAmount.php
delete mode 100644 app/Component/ES/Worker/WorkerInterface.php
create mode 100644 app/Component/ProphetAi/Exceptions/InsufficientTranscriptException.php
create mode 100644 app/Component/Transcription/DTO/Http/Transcription/AssemblyAI/AssemblyAI/NoAssemblyIdException.php
create mode 100644 app/Component/Transcription/DTO/Http/Transcription/TranscriptionIsNotCorrectFormatException.php
create mode 100644 app/Console/Commands/Activities/SetupIntegration/TwilioSetS3RecordingCredentialsCommand.php
create mode 100644 app/Console/Commands/Crm/BackfillOpportunityUserFromAccountCommand.php
delete mode 100644 app/Console/Commands/Elasticsearch/AsyncUpdateEsActivities.php
create mode 100644 app/Console/Commands/IssueMcpTokenCommand.php
create mode 100644 app/Http/Middleware/McpAuditMiddleware.php
create mode 100644 app/Http/Middleware/McpTierMiddleware.php
create mode 100644 app/Mcp/Contracts/McpCallRepositoryInterface.php
create mode 100644 app/Mcp/DTO/ListCallsFilters.php
create mode 100644 app/Mcp/Errors/McpError.php
create mode 100644 app/Mcp/Repositories/McpActivityHydrator.php
create mode 100644 app/Mcp/Repositories/McpCallRepository.php
create mode 100644 app/Mcp/Repositories/McpElasticCallRepository.php
create mode 100644 app/Mcp/Servers/JiminnyServer.php
create mode 100644 app/Mcp/Tools/ListCallsTool.php
create mode 100644 app/Services/Activity/Twilio/S3RecordingCredentialsService.php
create mode 100644 config/mcp.php
create mode 100644 database/migrations/2026_04_30_120000_create_mcp_audit_log_table.php
create mode 100644 docs/mcp/explorer/explorer.html
create mode 100644 docs/mcp/explorer/explorer.template.html
create mode 100644 docs/mcp/explorer/generate.js
create mode 100644 docs/mcp/explorer/tool-explorer-meta.json
create mode 100644 docs/mcp/tools-list.json
create mode 100644 docs/mcp/tools.md
create mode 100644 front-end/src/components/shared/modals/EntityPickerModal/__tests__/useEntitiesCache.spec.ts
create mode 100644 tests/Feature/Component/Nudge/ProcessOrganisationImmediateNudgesJobTest.php
create mode 100644 tests/Feature/Mcp/IssueMcpTokenCommandTest.php
create mode 100644 tests/Feature/Mcp/ListCallsToolElasticFeatureTest.php
create mode 100644 tests/Feature/Mcp/ListCallsToolFeatureTest.php
create mode 100644 tests/Feature/Mcp/McpTestHelpersTrait.php
create mode 100644 tests/Stubs/SentryStub.php
create mode 100644 tests/Unit/Component/AiAutomation/Services/CrmFillingEligibilityCheckerTest.php
delete mode 100644 tests/Unit/Component/ES/ElasticSearchWorkerManagerTest.php
create mode 100644 tests/Unit/Component/ES/Processor/Actions/LoadDocumentsActionTest.php
delete mode 100644 tests/Unit/Component/ES/Processor/Traits/SkipActivityTraitTest.php
delete mode 100644 tests/Unit/Component/ES/Worker/ActivityWorkerTest.php
delete mode 100644 tests/Unit/Component/ES/Worker/EntityWorkerTest.php
delete mode 100644 tests/Unit/Component/ES/Worker/WorkerAmountTest.php
create mode 100644 tests/Unit/Component/ParticipantSpeech/Services/ParticipantSpeechesCreatorTest.php
create mode 100644 tests/Unit/Http/Controllers/Kiosk/ActivityControllerTest.php
create mode 100644 tests/Unit/Services/Activity/Twilio/S3RecordingCredentialsServiceTest.php
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20725-handle-HS-search-rate-limit) $ git status
On branch master
Your branch is behind 'origin/master' by 114 commits, and can be fast-forwarded.
(use "git pull" to update your local branch)
Changes not staged for commit:
(use "git add <file>..." to update what will be committed)
(use "git restore <file>..." to discard changes in working directory)
modified: .env.local
modified: app/Component/SCIM/Constants.php
modified: app/Component/SCIM/ScimProvisioning.php
modified: app/Component/Twilio/Conference/ConferenceManager/SoftPhoneManager.php
modified: app/Console/Commands/JiminnyDebugCommand.php
modified: app/DTO/SCIM/AAD/Request/CoreUserRequest.php
modified: app/DTO/SCIM/AAD/Response/CoreUser.php
modified: app/Services/Telephony/TextMessagingService.php
modified: config/logging.php
Untracked files:
(use "git add <file>..." to include in what will be committed)
.env.nikilocal
.env.other
WEBHOOK_FILTERING_IMPLEMENTATION.md
app/Component/SCIM/Mutators/Attributes/User/RoleAttr.php
app/Console/Commands/Crm/Hubspot/SimulateWebhooksCommand.php
app/Console/Commands/Reports/CreateMockAskJiminnyReportResultCommand.php
app/Rules/ListenerRoleCannotHaveAdminOrManagerPermissionRule.php
ids.txt
public/favicon.ico
raw_sql_query.sql
tests/Unit/Component/SCIM/Mutators/Attributes/User/RoleAttrTest.php
tests/Unit/Policies/CanAccessAiReportsTest.php
tests/Unit/Rules/ListenerRoleCannotHaveAdminOrManagerPermissionRuleTest.php
no changes added to commit (use "git add" and/or "git commit -a")
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (master) $ git pull
remote: Enumerating objects: 306, done.
remote: Counting objects: 100% (299/299), done.
remote: Compressing objects: 100% (183/183), done.
remote: Total 306 (delta 213), reused 171 (delta 116), pack-reused 7 (from 1)
Receiving objects: 100% (306/306), 80.12 KiB | 1000.00 KiB/s, done.
Resolving deltas: 100% (213/213), completed with 53 local objects.
From github.com:jiminny/app
90bca4e4b2..5604af40cf master -> origin/master
4e7078fd8b..0b8343d179 JY-18091-upgrade-to-php-8-5 -> origin/JY-18091-upgrade-to-php-8-5
098eeaa087..d5a447e492 JY-20613-allow-owner-role-on-team-setup -> origin/JY-20613-allow-owner-role-on-team-setup
c3a76ace91..af65249d0f JY-20749-user-can-view-recorded-meetings -> origin/JY-20749-user-can-view-recorded-meetings
d94a285ae7..7ce96cb5fe JY-20808-low-priority-indexing-queue -> origin/JY-20808-low-priority-indexing-queue
* [new branch] JY-20842-remove-partial-updater -> origin/JY-20842-remove-partial-updater
* [new branch] JY-20920-fix-participant-flip -> origin/JY-20920-fix-participant-flip
* [new branch] secfix/npm-20260519 -> origin/secfix/npm-20260519
Updating cb4ebf0c36..5604af40cf
Fast-forward
app/Component/ES/ChunkSize.php | 54 +++++++++++++++++++
app/Component/ES/Processor/DTOs/SelectionList.php | 4 +-
app/Component/ES/Processor/TargetEntitiesSelector.php | 19 ++++---
app/Component/MeetingBot/Service/ParticipantMatcher.php | 46 ++++++++++++----
app/Exceptions/RateLimitException.php | 19 ++++++-
app/Http/Middleware/McpTierMiddleware.php | 27 ++--------
app/Jobs/Crm/MatchActivityCrmData.php | 47 ++++++++++++----
app/Jobs/Middleware/HandleHubspotRateLimit.php | 42 +++++++++++++++
app/Mcp/Servers/JiminnyServer.php | 2 +
app/Mcp/Tools/GetMeTool.php | 157 +++++++++++++++++++++++++++++++++++++++++++++++++++++
app/Models/Feature/FeatureEnum.php | 1 +
app/Services/Activity/HubSpot/ProviderResolver.php | 4 +-
app/Services/Activity/HubSpot/ProviderResolverInterface.php | 2 +-
app/Services/Activity/HubSpot/Providers/Provider.php | 2 +-
app/Services/Activity/HubSpot/Providers/ProviderKixie.php | 2 +-
app/Services/Activity/HubSpot/Providers/ProviderOrum.php | 2 +-
app/Services/Activity/HubSpot/Providers/ProviderTwilio.php | 2 +-
app/Services/Activity/HubSpot/Providers/ProviderTwilioFlex.php | 5 +-
app/Services/Activity/HubSpot/Service.php | 97 +++++++++++++++++++++++++++------
app/Services/Crm/Hubspot/Client.php | 132 +++++++++++++++++++++++++++++++++++++++++++++
app/Services/Crm/Hubspot/HubspotClientInterface.php | 15 ++++++
app/Services/Crm/Hubspot/Pagination/HubspotPaginationService.php | 21 ++++----
app/Services/Crm/Hubspot/Pagination/PaginationState.php | 2 +-
database/migrations/2026_05_13_124153_create_mcp_feature_flag.php | 25 +++++++++
tests/Feature/Mcp/GetMeToolFeatureTest.php | 140 +++++++++++++++++++++++++++++++++++++++++++++++
tests/Feature/Mcp/ListCallsToolFeatureTest.php | 2 +-
tests/Feature/Mcp/McpTestHelpersTrait.php | 19 ++++++-
tests/Unit/Component/ES/ChunkSizeTest.php | 50 +++++++++++++++++
tests/Unit/Component/ES/Processor/DTOs/SelectionListTest.php | 27 +++++++---
tests/Unit/Component/ES/Processor/TargetEntitiesSelectorTest.php | 39 ++++++++------
tests/Unit/Component/MeetingBot/Service/ParticipantMatcherTest.php | 68 ++++++++++++++++++++++-
tests/Unit/Exceptions/RateLimitExceptionTest.php | 56 +++++++++++++++++++
tests/Unit/Jobs/Crm/MatchActivityCrmDataTest.php | 8 +--
tests/Unit/Jobs/Middleware/HandleHubspotRateLimitTest.php | 151 +++++++++++++++++++++++++++++++++++++++++++++++++++
tests/Unit/Services/Activity/HubSpot/ServiceTest.php | 109 +++++++++++++++++++++++++++++++++++++
tests/Unit/Services/Crm/Hubspot/ClientTest.php | 250 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
tests/Unit/Services/Crm/Hubspot/Pagination/HubspotPaginationServiceTest.php | 283 +++++++++++++++++++++---------------------------------------------------------------------------
37 files changed, 1587 insertions(+), 344 deletions(-)
create mode 100644 app/Component/ES/ChunkSize.php
create mode 100644 app/Jobs/Middleware/HandleHubspotRateLimit.php
create mode 100644 app/Mcp/Tools/GetMeTool.php
create mode 100644 database/migrations/2026_05_13_124153_create_mcp_feature_flag.php
create mode 100644 tests/Feature/Mcp/GetMeToolFeatureTest.php
create mode 100644 tests/Unit/Component/ES/ChunkSizeTest.php
create mode 100644 tests/Unit/Exceptions/RateLimitExceptionTest.php
create mode 100644 tests/Unit/Jobs/Middleware/HandleHubspotRateLimitTest.php
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (master) $ git pull
Already up to date.
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (master) $ co -b JY-20676-delete-report-related-objects
Switched to a new branch 'JY-20676-delete-report-related-objects'
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20676-delete-report-related-objects) $ csfix
docker exec -it docker_lamp_1 ./vendor/bin/php-cs-fixer fix --config=.php-cs-fixer.dist.php -v --using-cache=no --diff
PHP CS Fixer 3.87.1 Alexander by Fabien Potencier, Dariusz Ruminski and contributors.
PHP runtime: 8.3.30
Running 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!
Loaded config default from ".php-cs-fixer.dist.php".
5690/5690 [▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓] 100%
1) app/Console/Commands/JiminnyDebugCommand.php (statement_indentation, blank_line_before_statement)
---------- begin diff ----------
--- /home/jiminny/app/Console/Commands/JiminnyDebugCommand.php
+++ /home/jiminny/app/Console/Commands/JiminnyDebugCommand.php
@@ -23,6 +23,7 @@
if ($action === 'redis-set') {
$this->testRedisSet();
+
return;
}
@@ -45,7 +46,7 @@
$ttl = 60;
try {
-// $result = Redis::set($testKey, $testValue, 'EX', $ttl, 'NX');
+ // $result = Redis::set($testKey, $testValue, 'EX', $ttl, 'NX');
$result = Redis::set($testKey, $testValue, ['nx', 'ex' => $ttl]);
if ($result) {
----------- end diff -----------
Fixed 1 of 5690 files i...
|
58093
|
NULL
|
NULL
|
NULL
|
|
58102
|
2046
|
2
|
2026-05-19T11:37:18.181184+00:00
|
/Users/lukas/.screenpipe/data/data/2026-05-19/1779 /Users/lukas/.screenpipe/data/data/2026-05-19/1779190638181_m1.jpg...
|
iTerm2
|
APP (-zsh)
|
1
|
NULL
|
monitor_1
|
NULL
|
NULL
|
NULL
|
NULL
|
Last login: Mon May 18 09:17:28 on ttys007
Poetry Last login: Mon May 18 09:17:28 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 (pipedrive-sdk-poc) $ co master
error: Your local changes to the following files would be overwritten by checkout:
PIPEDRIVE_V2_MIGRATION_TICKETS.md
Please commit your changes or stash them before you switch branches.
Aborting
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (pipedrive-sdk-poc) $ git pull
remote: Enumerating objects: 1047, done.
remote: Counting objects: 100% (832/832), done.
remote: Compressing objects: 100% (298/298), done.
remote: Total 1047 (delta 634), reused 596 (delta 534), pack-reused 215 (from 3)
Receiving objects: 100% (1047/1047), 353.16 KiB | 1.56 MiB/s, done.
Resolving deltas: 100% (687/687), completed with 107 local objects.
From github.com:jiminny/app
907c54896c..34656c53ed pipedrive-sdk-poc -> origin/pipedrive-sdk-poc
03325ec50f..4e7078fd8b JY-18091-upgrade-to-php-8-5 -> origin/JY-18091-upgrade-to-php-8-5
e7d231e163..bc6a3fce6b JY-20725-handle-HS-search-rate-limit -> origin/JY-20725-handle-HS-search-rate-limit
* [new branch] JY-20749-user-can-view-recorded-meetings -> origin/JY-20749-user-can-view-recorded-meetings
98ca281a04..e0351be069 JY-20808-low-priority-indexing-queue -> origin/JY-20808-low-priority-indexing-queue
569abb5149..3906a9238a JY-20835-mcp-enable-users-to-get-a-list-of-deals-and-their-details -> origin/JY-20835-mcp-enable-users-to-get-a-list-of-deals-and-their-details
ad6c2a86e8..50eb6afba9 JY-20846-mcp-enable-the-ai-to-know-details-about-the-user -> origin/JY-20846-mcp-enable-the-ai-to-know-details-about-the-user
* [new branch] JY-20893-chunk-control-per-update-target -> origin/JY-20893-chunk-control-per-update-target
31c62924a5..cb4ebf0c36 master -> origin/master
Updating 907c54896c..34656c53ed
Fast-forward
PIPEDRIVE_V2_MIGRATION_TICKETS.md | 52 ++++++++++++++++++++++++++++++++++++++++++++++++++++
1 file changed, 52 insertions(+)
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (pipedrive-sdk-poc) $ co master
M .env.local
M config/logging.php
Switched to branch 'master'
Your branch is behind 'origin/master' by 31 commits, and can be fast-forwarded.
(use "git pull" to update your local branch)
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (master) $ git pull
Updating 31c62924a5..cb4ebf0c36
Fast-forward
app/Component/ES/Processor/Traits/SelectEntityListTrait.php | 20 ------
app/Services/Calendar/CalendarActivityService.php | 46 +++++++++++++
app/Services/Calendar/Command/MapActivityData.php | 106 +++-------------------------
docs/mcp/explorer/explorer.html | 104 +++++++++++++++++++++++++---
docs/mcp/explorer/explorer.template.html | 102 ++++++++++++++++++++++++---
docs/mcp/tools-list.json | 373 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++-------
docs/mcp/tools.md | 117 +++++++++++++++++++++++--------
tests/Unit/Component/ES/AsyncUpdateElasticSearchTest.php | 16 +----
tests/Unit/Component/ES/Listeners/UpdateMultipleTargetsListenerTest.php | 10 ---
tests/Unit/Component/ES/Listeners/UpdateSingleTargetListenerTest.php | 6 --
tests/Unit/Component/ES/Processor/TargetEntitiesSelectorTest.php | 9 ---
tests/Unit/Component/ES/Processor/Traits/SelectEntityListTraitTest.php | 15 ++--
tests/Unit/Component/ES/UpdateProcessManagerTest.php | 2 -
tests/Unit/Services/Calendar/CalendarActivityServiceTest.php | 150 ++++++++++++++++++++++++++++++++++++++--
tests/Unit/Services/Calendar/Command/MapActivityDataTest.php | 78 ++-------------------
15 files changed, 832 insertions(+), 322 deletions(-)
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (master) $ co -b JY-20613-allow-owner-role-on-team-setup
Switched to a new branch 'JY-20613-allow-owner-role-on-team-setup'
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20613-allow-owner-role-on-team-setup) $ csfix
docker exec -it docker_lamp_1 ./vendor/bin/php-cs-fixer fix --config=.php-cs-fixer.dist.php -v --using-cache=no --diff
PHP CS Fixer 3.87.1 Alexander by Fabien Potencier, Dariusz Ruminski and contributors.
PHP runtime: 8.3.30
Running 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!
Loaded config default from ".php-cs-fixer.dist.php".
5682/5682 [▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓] 100%
Fixed 0 of 5682 files in 56.978 seconds, 67.00 MB memory used
What's next:
Try Docker Debug for seamless, persistent debugging tools in any container or image → docker debug docker_lamp_1
Learn more at [URL_WITH_CREDENTIALS] ~/jiminny/app (JY-20613-allow-owner-role-on-team-setup) $ csfix
docker exec -it docker_lamp_1 ./vendor/bin/php-cs-fixer fix --config=.php-cs-fixer.dist.php -v --using-cache=no --diff
PHP CS Fixer 3.87.1 Alexander by Fabien Potencier, Dariusz Ruminski and contributors.
PHP runtime: 8.3.30
Running 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!
Loaded config default from ".php-cs-fixer.dist.php".
5682/5682 [▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓] 100%
Fixed 0 of 5682 files in 49.910 seconds, 60.00 MB memory used
What's next:
Try Docker Debug for seamless, persistent debugging tools in any container or image → docker debug docker_lamp_1
Learn more at [URL_WITH_CREDENTIALS] ~/jiminny/app (JY-20613-allow-owner-role-on-team-setup) $ git pull
remote: Enumerating objects: 248, done.
remote: Counting objects: 100% (128/128), done.
remote: Compressing objects: 100% (23/23), done.
remote: Total 59 (delta 43), reused 44 (delta 33), pack-reused 0 (from 0)
Unpacking objects: 100% (59/59), 10.48 KiB | 228.00 KiB/s, done.
From github.com:jiminny/app
b7df560451..190239dfd4 JY-20613-allow-owner-role-on-team-setup -> origin/JY-20613-allow-owner-role-on-team-setup
e0351be069..d94a285ae7 JY-20808-low-priority-indexing-queue -> origin/JY-20808-low-priority-indexing-queue
* [new branch] JY-20920-fix-participant-matcher -> origin/JY-20920-fix-participant-matcher
cb4ebf0c36..90bca4e4b2 master -> origin/master
Merge made by the 'ort' strategy.
app/Component/ES/ChunkSize.php | 54 +++++++++++++++++++++++++++
app/Component/ES/Processor/DTOs/SelectionList.php | 4 +-
app/Component/ES/Processor/TargetEntitiesSelector.php | 19 ++++++----
app/Http/Middleware/McpTierMiddleware.php | 27 +++-----------
app/Mcp/Servers/JiminnyServer.php | 2 +
app/Mcp/Tools/GetMeTool.php | 157 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
app/Models/Feature/FeatureEnum.php | 1 +
database/migrations/2026_05_13_124153_create_mcp_feature_flag.php | 25 +++++++++++++
front-end/src/components/Settings/Kiosk/modals/EditTeamModal/EditTeamModal.vue | 52 ++++++++++++++++++--------
front-end/src/components/Settings/Kiosk/modals/EditTeamModal/__tests__/EditTeamModal.spec.js | 14 +++++++
tests/Feature/Mcp/GetMeToolFeatureTest.php | 140 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
tests/Feature/Mcp/ListCallsToolFeatureTest.php | 2 +-
tests/Feature/Mcp/McpTestHelpersTrait.php | 19 +++++++++-
tests/Unit/Component/ES/ChunkSizeTest.php | 50 +++++++++++++++++++++++++
tests/Unit/Component/ES/Processor/DTOs/SelectionListTest.php | 27 ++++++++++----
tests/Unit/Component/ES/Processor/TargetEntitiesSelectorTest.php | 39 +++++++++++---------
16 files changed, 557 insertions(+), 75 deletions(-)
create mode 100644 app/Component/ES/ChunkSize.php
create mode 100644 app/Mcp/Tools/GetMeTool.php
create mode 100644 database/migrations/2026_05_13_124153_create_mcp_feature_flag.php
create mode 100644 tests/Feature/Mcp/GetMeToolFeatureTest.php
create mode 100644 tests/Unit/Component/ES/ChunkSizeTest.php
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20613-allow-owner-role-on-team-setup) $ git push
Enumerating objects: 40, done.
Counting objects: 100% (34/34), done.
Delta compression using up to 8 threads
Compressing objects: 100% (18/18), done.
Writing objects: 100% (18/18), 1.58 KiB | 1.58 MiB/s, done.
Total 18 (delta 15), reused 0 (delta 0), pack-reused 0
remote: Resolving deltas: 100% (15/15), completed with 13 local objects.
To github.com:jiminny/app.git
190239dfd4..ec1b261264 JY-20613-allow-owner-role-on-team-setup -> JY-20613-allow-owner-role-on-team-setup
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20613-allow-owner-role-on-team-setup) $ gbr
* JY-20613-allow-owner-role-on-team-setup
pipedrive-sdk-poc
master
JY-20903-update_activity-stage-on-opportunity-change
JY-20904-fix-update-es-on-activity-command
JY-20891-improve-sms-text-relays
JY-20725-handle-HS-search-rate-limit
JY-20818-move-AJ-reports-to-separated-datadog-metric
JY-20773-fix-automated-reports-user-pilot-tracking
JY-20157-AJ-report-not-send-notification
JY-20508-notify-before-AJ-report-expiration
JY-20372-ai-reports-promotion-pages
JY-20352-sync-opportunities-without-a-local-owner-user-id-is-null
JY-20738-debug-AJ-tracking-UP
a
JY-18909-automated-reports-ask-jiminny
JY-20692-fix-integration-app-[API_KEY]
JY-20553-debug-crm-sync-delays
JY-20698-fix-SF-activity-types-on-new-playbook
JY-20543-AJ-report-tracking
JY-20384-handle-auto-sync-with-no-access-to-event-type
JY-20458-ask-jiminny-user-definitions
JY-19666-fix-import-contacts-account-association
JY-19666-HS-import-contacts-and-accounts-batch-job
JY-20458-Ask-Jiminny-Reports
JY-20200-batch-update-CRM-objects-Salesforce
JY-19666-HS-webhooks-add-contact-and-company
JY-20348-trigger-setup-DI-layout-on-team-creation
JY-20326-refactor-info-message-in-command
JY-20317-fix-auto-log-delay-issue-on-all-channels-disabled
JY-20312-remove-on-update-change-last-synced-at-crm-configurations
JY-20306-SF-skip-auto-sync-for-task-based-playbook
JY-20192-remove-deleted-team-from-saved-search-filters
JY-20197-import-opportunity-batch-job
JY-20293-enable-status-field-for-pipedrive-deals
JY-20191-remove-commands-interactive-prompts
JY-20118-change-default-sync-strategy
JY-20183-add-cache-on-auto-log-delay
JY-20197-add-import-opportunity-batch-job
20118-hs-opportunity-make-webhook-strategy-default
JY-20118-make-default-hs-opportunity-sync-strategy-webhook-based
JY-20196-handle-opportunity-without-note
JY-20118-improve-opportunity-import
JY-20189-handle-activity-search-on-deleted-groups
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20613-allow-owner-role-on-team-setup) $ co JY-20725-handle-HS-search-rate-limit
M .env.local
M config/logging.php
Switched to branch 'JY-20725-handle-HS-search-rate-limit'
Your branch is behind 'origin/JY-20725-handle-HS-search-rate-limit' by 439 commits, and can be fast-forwarded.
(use "git pull" to update your local branch)
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20725-handle-HS-search-rate-limit) $ git pull
Updating 0f3e438941..bc6a3fce6b
Fast-forward
.gitignore | 3 +-
.windsurfrules | 168 ++---
CLAUDE.md | 1 +
app/Component/ActivityAnalytics/Service/CalculateTalkTimeOffsetsFromTranscription.php | 24 +-
app/Component/AiActivityType/Services/AiActivityTypeEligibilityChecker.php | 28 +-
app/Component/AiAutomation/Actions/PrepareUpdateDtoAction.php | 32 +-
app/Component/AiAutomation/Services/CrmFillingEligibilityChecker.php | 47 ++
app/Component/AiAutomation/TestCrmAiPromptService.php | 14 +
app/Component/AiCallScoring/Services/AiCallScoringEligibilityChecker.php | 9 +
app/Component/ES/ElasticSearchDocumentPartialUpdater.php | 13 +-
app/Component/ES/ElasticSearchWorkerManager.php | 86 ---
app/Component/ES/Processor/Actions/LoadDocumentsAction.php | 80 +--
app/Component/ES/Processor/EntityQueryBuilder.php | 12 +-
app/Component/ES/Processor/TargetEntitiesSelector.php | 2 +-
app/Component/ES/Processor/Traits/SkipActivityTrait.php | 25 -
app/Component/ES/Repositories/EsResetActivityRepository.php | 11 +-
app/Component/ES/Worker/ActivityWorker.php | 73 --
app/Component/ES/Worker/EntityWorker.php | 44 --
app/Component/ES/Worker/WorkerAmount.php | 60 --
app/Component/ES/Worker/WorkerInterface.php | 15 -
app/Component/ElasticSearch/Contract/Searchable.php | 4 +
app/Component/Encoding/Job/AnalyzeTrackChannelsJob.php | 20 +-
app/Component/Encoding/Service/GenerateSpeechFromSilenceService.php | 85 ++-
app/Component/FFMpeg/Services/GetSpeechIntervalsService.php | 18 +-
app/Component/LanguageDetection/Services/FindSpeechTimeService.php | 22 +-
app/Component/Nudge/Job/ProcessOrganisationImmediateNudgesJob.php | 218 +++++-
app/Component/ParagraphBreaker/Services/TranscriptionParagraphsService.php | 4 +
app/Component/ParticipantSpeech/Services/ParticipantSpeechesCreator.php | 33 +
app/Component/ParticipantSpeech/Services/ParticipantSpeechesDeleter.php | 15 +
app/Component/ParticipantSpeech/Services/ParticipantSpeechesProvider.php | 51 +-
app/Component/ParticipantSpeech/Services/ParticipantSpeechesUploader.php | 36 +
app/Component/ProphetAi/Exceptions/InsufficientTranscriptException.php | 11 +
app/Component/Transcription/DTO/Http/Transcription/AssemblyAI/AssemblyAI/NoAssemblyIdException.php | 11 +
app/Component/Transcription/DTO/Http/Transcription/AssemblyAI/AssemblyAI/SuccessfulResponse.php | 6 +
app/Component/Transcription/DTO/Http/Transcription/TranscriptionIsNotCorrectFormatException.php | 11 +
app/Component/Transcription/Diarization/Services/GetNormalizedParticipantSpeechesService.php | 23 +-
app/Component/Transcription/Diarization/Source/MeetingBotSource.php | 16 +-
app/Component/Transcription/TranscriptionProcessor/TranscriptionProcessor.php | 3 +
app/Console/Commands/Activities/ActivityHardDeleteCommand.php | 4 +-
app/Console/Commands/Activities/Copy.php | 2 +
app/Console/Commands/Activities/SetupIntegration/TwilioSetS3RecordingCredentialsCommand.php | 119 ++++
app/Console/Commands/Activities/UpdateActivityElasticSearchDocumentCommand.php | 10 +-
app/Console/Commands/Crm/BackfillOpportunityUserFromAccountCommand.php | 126 ++++
app/Console/Commands/Elasticsearch/AsyncUpdateEsActivities.php | 19 -
app/Console/Commands/Elasticsearch/AsyncUpdateEsEntities.php | 50 +-
app/Console/Commands/Elasticsearch/ResetAsyncElasticSearchCommand.php | 30 +-
app/Console/Commands/GeckoExport/GeckoExportParticipantSpeechesCommand.php | 14 +-
app/Console/Commands/IssueMcpTokenCommand.php | 84 +++
app/Console/Commands/JiminnyDebugCommand.php | 7 +-
app/Console/Commands/Tracks/CleanupActivityTracksCommand.php | 2 +-
app/Console/Kernel.php | 6 +-
app/Contracts/Services/Calendar/CalendarTrait.php | 80 ++-
app/Events/AutomatedReports/AutomatedReportGenerated.php | 3 +
app/Http/Controllers/API/AiCallScoring/AiScorecardController.php | 7 +-
app/Http/Controllers/API/TeamAiAutomationController.php | 8 +
app/Http/Controllers/CustomerApi/CustomerApiController.php | 4 +-
app/Http/Controllers/Kiosk/ActivityController.php | 58 +-
app/Http/Controllers/Settings/PlaybookController.php | 15 +-
app/Http/Kernel.php | 23 +
app/Http/Middleware/McpAuditMiddleware.php | 156 ++++
app/Http/Middleware/McpTierMiddleware.php | 54 ++
app/Http/Requests/API/V2/ZapierUploadActivityRequest.php | 28 +-
app/Jobs/Activity/Import/ImportTwilioVideoSpeechesJob.php | 25 +-
app/Jobs/Activity/Import/IsActivityReadyForProcessingJob.php | 10 +-
app/Jobs/Calendar/SetupCalendarSync.php | 21 +-
app/Jobs/ImportRemoteTrackJob.php | 96 ++-
app/Jobs/Mailbox/EmailTextRelay.php | 15 +-
app/Mcp/Contracts/McpCallRepositoryInterface.php | 30 +
app/Mcp/DTO/ListCallsFilters.php | 29 +
app/Mcp/Errors/McpError.php | 123 ++++
app/Mcp/Repositories/McpActivityHydrator.php | 145 ++++
app/Mcp/Repositories/McpCallRepository.php | 84 +++
app/Mcp/Repositories/McpElasticCallRepository.php | 171 +++++
app/Mcp/Servers/JiminnyServer.php | 38 +
app/Mcp/Tools/ListCallsTool.php | 205 ++++++
app/Models/Activity.php | 10 +-
app/Models/Activity/Transcription.php | 17 +-
app/Models/ElasticSearch/OpportunityElasticSearchTrait.php | 5 +
app/Models/Participant.php | 1 +
app/Providers/AppServiceProvider.php | 22 +
app/Repositories/Crm/ContactRepository.php | 69 +-
app/Repositories/ParticipantSpeechRepository.php | 13 +-
app/Services/Activity/ParticipantsService.php | 19 +-
app/Services/Activity/Twilio/S3RecordingCredentialsService.php | 82 +++
app/Services/ActivityService.php | 21 +-
app/Services/Calendar/CalendarActivityService.php | 46 ++
app/Services/Calendar/Command/ImportParticipants.php | 1 +
app/Services/Calendar/Command/MapActivityData.php | 106 +--
app/Services/Calendar/GoogleCalendarService.php | 12 +-
app/Services/Crm/Close/Processor/OpportunityProcessor.php | 2 +-
app/Services/Crm/Close/Service.php | 22 +-
app/Services/Crm/Copper/Service.php | 12 +-
app/Services/Crm/Hubspot/Service.php | 154 +++-
app/Services/Crm/Hubspot/ServiceTraits/OpportunitySyncTrait.php | 88 ++-
app/Services/Crm/IntegrationApp/ServiceTraits/SyncCrmEntitiesTrait.php | 22 +-
app/Services/Crm/Pipedrive/Service.php | 17 +-
app/Services/Crm/Salesforce/Service.php | 42 +-
app/Services/Mail/Office/EmailApiClient.php | 129 +---
app/Services/RecallAI/Commands/ScheduleBotCommand.php | 39 +-
app/Services/RecallAI/RecallAIService.php | 22 +-
composer.json | 3 +-
composer.lock | 87 ++-
config/mcp.php | 23 +
database/migrations/2026_04_30_120000_create_mcp_audit_log_table.php | 36 +
docs/mcp/explorer/explorer.html | 697 ++++++++++++++++++
docs/mcp/explorer/explorer.template.html | 697 ++++++++++++++++++
docs/mcp/explorer/generate.js | 215 ++++++
docs/mcp/explorer/tool-explorer-meta.json | 11 +
docs/mcp/tools-list.json | 2536 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
docs/mcp/tools.md | 621 ++++++++++++++++
front-end/package.json | 4 +-
front-end/src/components/Settings/OrgSettings/AiAutomation/CrmFilling/TemplateFieldForm.vue | 28 +-
front-end/src/components/Settings/OrgSettings/Playbooks/AddEditPlaybook.vue | 10 +
front-end/src/components/playback/comments/ActivityComment.less | 10 +-
front-end/src/components/shared/PromptTester/PromptTester.vue | 12 +-
front-end/src/components/shared/__tests__/PromptTester.spec.js | 35 +
front-end/src/components/shared/modals/EntityPickerModal/__tests__/useEntitiesCache.spec.ts | 37 +
front-end/src/components/shared/modals/EntityPickerModal/useEntitiesCache.ts | 9 +
front-end/yarn.lock | 16 +-
phpstan-baseline.neon | 50 --
routes/api.php | 11 +
sonar-project.properties | 91 ++-
tests/Feature/Component/Nudge/ProcessOrganisationImmediateNudgesJobTest.php | 534 ++++++++++++++
tests/Feature/Jobs/ImportRemoteTrackJobTest.php | 283 +++++++-
tests/Feature/Mcp/IssueMcpTokenCommandTest.php | 53 ++
tests/Feature/Mcp/ListCallsToolElasticFeatureTest.php | 155 ++++
tests/Feature/Mcp/ListCallsToolFeatureTest.php | 352 ++++++++++
tests/Feature/Mcp/McpTestHelpersTrait.php | 77 ++
tests/Feature/Services/Team/TeamDeleteHandlers/Retention/RetentionRepositoryHandlerTest.php | 1 +
tests/Stubs/SentryStub.php | 18 +
tests/Unit/Component/ActivityAnalytics/Service/CalculateTalkTimeOffsetFromTranscriptionTest.php | 28 +-
tests/Unit/Component/AiActivityType/Services/AiActivityTypeEligibilityCheckerTest.php | 103 ++-
tests/Unit/Component/AiAutomation/Actions/PrepareUpdateDtoActionTest.php | 91 +++
tests/Unit/Component/AiAutomation/Services/CrmFillingEligibilityCheckerTest.php | 124 ++++
tests/Unit/Component/AiAutomation/TestCrmAiPromptServiceTest.php | 67 +-
tests/Unit/Component/AiCallScoring/Services/AiCallScoringEligibilityCheckerTest.php | 55 ++
tests/Unit/Component/ES/ElasticSearchWorkerManagerTest.php | 135 ----
tests/Unit/Component/ES/Processor/Actions/LoadDocumentsActionTest.php | 220 ++++++
tests/Unit/Component/ES/Processor/EntityQueryBuilderTest.php | 21 +-
tests/Unit/Component/ES/Processor/Traits/SkipActivityTraitTest.php | 51 --
tests/Unit/Component/ES/Worker/ActivityWorkerTest.php | 174 -----
tests/Unit/Component/ES/Worker/EntityWorkerTest.php | 97 ---
tests/Unit/Component/ES/Worker/WorkerAmountTest.php | 116 ---
tests/Unit/Component/Encoding/Job/AnalyzeTrackChannelsJobTest.php | 52 +-
tests/Unit/Component/Encoding/Service/GenerateSpeechFromSilenceServiceTest.php | 171 ++---
tests/Unit/Component/FFMpeg/Services/GetSpeechIntervalsTest.php | 36 +-
tests/Unit/Component/LanguageDetection/Services/FindSpeechTimeServiceTest.php | 20 +-
tests/Unit/Component/MobileSettings/MobileSettingsControllerTest.php | 5 +-
tests/Unit/Component/ParticipantSpeech/Services/ParticipantSpeechesCreatorTest.php | 75 ++
tests/Unit/Component/ParticipantSpeech/Services/ParticipantSpeechesDeleterTest.php | 63 ++
tests/Unit/Component/ParticipantSpeech/Services/ParticipantSpeechesProviderTest.php | 134 ++++
tests/Unit/Component/ParticipantSpeech/Services/ParticipantSpeechesUploaderTest.php | 57 ++
tests/Unit/Component/Transcription/Diarization/Services/GetNormalizedParticipantSpeechesServiceTest.php | 51 +-
tests/Unit/Component/Transcription/Diarization/Source/MeetingBotSourceTest.php | 29 +-
tests/Unit/Contracts/Services/Calendar/CalendarTraitTest.php | 58 +-
tests/Unit/Http/Controllers/Kiosk/ActivityControllerTest.php | 159 +++++
tests/Unit/Jobs/Activity/Import/ImportTwilioVideoSpeechesJobTest.php | 22 +-
tests/Unit/Jobs/Activity/Import/IsActivityReadyForProcessingJobTest.php | 26 +-
tests/Unit/Jobs/Calendar/SetupCalendarSyncTest.php | 25 -
tests/Unit/Services/Activity/ParticipantsServiceTest.php | 12 +-
tests/Unit/Services/Activity/Twilio/S3RecordingCredentialsServiceTest.php | 180 +++++
tests/Unit/Services/ActivityServiceTest.php | 132 ++++
tests/Unit/Services/Calendar/CalendarActivityServiceTest.php | 150 +++-
tests/Unit/Services/Calendar/Command/ImportParticipantsTest.php | 6 +-
tests/Unit/Services/Calendar/Command/MapActivityDataTest.php | 78 +-
tests/Unit/Services/Calendar/GoogleCalendarServiceTest.php | 116 +++
tests/Unit/Services/Crm/Close/ServiceTest.php | 165 +++++
tests/Unit/Services/Crm/Hubspot/ServiceTest.php | 272 ++++++-
tests/Unit/Services/Crm/Hubspot/ServiceTraits/OpportunitySyncTest.php | 25 +-
tests/Unit/Services/Crm/Hubspot/ServiceTraits/OpportunitySyncTraitMatchActivitiesTest.php | 3 +-
tests/Unit/Services/Crm/IntegrationApp/ServiceTraits/SyncCrmEntitiesTraitOpportunitiesTest.php | 40 ++
tests/Unit/Services/Crm/Pipedrive/ImportOpportunityMatchActivitiesTest.php | 2 +
tests/Unit/Services/Crm/Salesforce/ServiceTest.php | 139 ++++
tests/Unit/Services/Mail/Office/EmailApiClientTest.php | 195 ++---
tests/Unit/Services/RecallAI/RecallAIServiceTest.php | 24 +-
175 files changed, 12562 insertions(+), 2162 deletions(-)
create mode 120000 CLAUDE.md
create mode 100644 app/Component/AiAutomation/Services/CrmFillingEligibilityChecker.php
delete mode 100644 app/Component/ES/ElasticSearchWorkerManager.php
delete mode 100644 app/Component/ES/Processor/Traits/SkipActivityTrait.php
delete mode 100644 app/Component/ES/Worker/ActivityWorker.php
delete mode 100644 app/Component/ES/Worker/EntityWorker.php
delete mode 100644 app/Component/ES/Worker/WorkerAmount.php
delete mode 100644 app/Component/ES/Worker/WorkerInterface.php
create mode 100644 app/Component/ProphetAi/Exceptions/InsufficientTranscriptException.php
create mode 100644 app/Component/Transcription/DTO/Http/Transcription/AssemblyAI/AssemblyAI/NoAssemblyIdException.php
create mode 100644 app/Component/Transcription/DTO/Http/Transcription/TranscriptionIsNotCorrectFormatException.php
create mode 100644 app/Console/Commands/Activities/SetupIntegration/TwilioSetS3RecordingCredentialsCommand.php
create mode 100644 app/Console/Commands/Crm/BackfillOpportunityUserFromAccountCommand.php
delete mode 100644 app/Console/Commands/Elasticsearch/AsyncUpdateEsActivities.php
create mode 100644 app/Console/Commands/IssueMcpTokenCommand.php
create mode 100644 app/Http/Middleware/McpAuditMiddleware.php
create mode 100644 app/Http/Middleware/McpTierMiddleware.php
create mode 100644 app/Mcp/Contracts/McpCallRepositoryInterface.php
create mode 100644 app/Mcp/DTO/ListCallsFilters.php
create mode 100644 app/Mcp/Errors/McpError.php
create mode 100644 app/Mcp/Repositories/McpActivityHydrator.php
create mode 100644 app/Mcp/Repositories/McpCallRepository.php
create mode 100644 app/Mcp/Repositories/McpElasticCallRepository.php
create mode 100644 app/Mcp/Servers/JiminnyServer.php
create mode 100644 app/Mcp/Tools/ListCallsTool.php
create mode 100644 app/Services/Activity/Twilio/S3RecordingCredentialsService.php
create mode 100644 config/mcp.php
create mode 100644 database/migrations/2026_04_30_120000_create_mcp_audit_log_table.php
create mode 100644 docs/mcp/explorer/explorer.html
create mode 100644 docs/mcp/explorer/explorer.template.html
create mode 100644 docs/mcp/explorer/generate.js
create mode 100644 docs/mcp/explorer/tool-explorer-meta.json
create mode 100644 docs/mcp/tools-list.json
create mode 100644 docs/mcp/tools.md
create mode 100644 front-end/src/components/shared/modals/EntityPickerModal/__tests__/useEntitiesCache.spec.ts
create mode 100644 tests/Feature/Component/Nudge/ProcessOrganisationImmediateNudgesJobTest.php
create mode 100644 tests/Feature/Mcp/IssueMcpTokenCommandTest.php
create mode 100644 tests/Feature/Mcp/ListCallsToolElasticFeatureTest.php
create mode 100644 tests/Feature/Mcp/ListCallsToolFeatureTest.php
create mode 100644 tests/Feature/Mcp/McpTestHelpersTrait.php
create mode 100644 tests/Stubs/SentryStub.php
create mode 100644 tests/Unit/Component/AiAutomation/Services/CrmFillingEligibilityCheckerTest.php
delete mode 100644 tests/Unit/Component/ES/ElasticSearchWorkerManagerTest.php
create mode 100644 tests/Unit/Component/ES/Processor/Actions/LoadDocumentsActionTest.php
delete mode 100644 tests/Unit/Component/ES/Processor/Traits/SkipActivityTraitTest.php
delete mode 100644 tests/Unit/Component/ES/Worker/ActivityWorkerTest.php
delete mode 100644 tests/Unit/Component/ES/Worker/EntityWorkerTest.php
delete mode 100644 tests/Unit/Component/ES/Worker/WorkerAmountTest.php
create mode 100644 tests/Unit/Component/ParticipantSpeech/Services/ParticipantSpeechesCreatorTest.php
create mode 100644 tests/Unit/Http/Controllers/Kiosk/ActivityControllerTest.php
create mode 100644 tests/Unit/Services/Activity/Twilio/S3RecordingCredentialsServiceTest.php
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20725-handle-HS-search-rate-limit) $ git status
On branch master
Your branch is behind 'origin/master' by 114 commits, and can be fast-forwarded.
(use "git pull" to update your local branch)
Changes not staged for commit:
(use "git add <file>..." to update what will be committed)
(use "git restore <file>..." to discard changes in working directory)
modified: .env.local
modified: app/Component/SCIM/Constants.php
modified: app/Component/SCIM/ScimProvisioning.php
modified: app/Component/Twilio/Conference/ConferenceManager/SoftPhoneManager.php
modified: app/Console/Commands/JiminnyDebugCommand.php
modified: app/DTO/SCIM/AAD/Request/CoreUserRequest.php
modified: app/DTO/SCIM/AAD/Response/CoreUser.php
modified: app/Services/Telephony/TextMessagingService.php
modified: config/logging.php
Untracked files:
(use "git add <file>..." to include in what will be committed)
.env.nikilocal
.env.other
WEBHOOK_FILTERING_IMPLEMENTATION.md
app/Component/SCIM/Mutators/Attributes/User/RoleAttr.php
app/Console/Commands/Crm/Hubspot/SimulateWebhooksCommand.php
app/Console/Commands/Reports/CreateMockAskJiminnyReportResultCommand.php
app/Rules/ListenerRoleCannotHaveAdminOrManagerPermissionRule.php
ids.txt
public/favicon.ico
raw_sql_query.sql
tests/Unit/Component/SCIM/Mutators/Attributes/User/RoleAttrTest.php
tests/Unit/Policies/CanAccessAiReportsTest.php
tests/Unit/Rules/ListenerRoleCannotHaveAdminOrManagerPermissionRuleTest.php
no changes added to commit (use "git add" and/or "git commit -a")
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (master) $ git pull
remote: Enumerating objects: 306, done.
remote: Counting objects: 100% (299/299), done.
remote: Compressing objects: 100% (183/183), done.
remote: Total 306 (delta 213), reused 171 (delta 116), pack-reused 7 (from 1)
Receiving objects: 100% (306/306), 80.12 KiB | 1000.00 KiB/s, done.
Resolving deltas: 100% (213/213), completed with 53 local objects.
From github.com:jiminny/app
90bca4e4b2..5604af40cf master -> origin/master
4e7078fd8b..0b8343d179 JY-18091-upgrade-to-php-8-5 -> origin/JY-18091-upgrade-to-php-8-5
098eeaa087..d5a447e492 JY-20613-allow-owner-role-on-team-setup -> origin/JY-20613-allow-owner-role-on-team-setup
c3a76ace91..af65249d0f JY-20749-user-can-view-recorded-meetings -> origin/JY-20749-user-can-view-recorded-meetings
d94a285ae7..7ce96cb5fe JY-20808-low-priority-indexing-queue -> origin/JY-20808-low-priority-indexing-queue
* [new branch] JY-20842-remove-partial-updater -> origin/JY-20842-remove-partial-updater
* [new branch] JY-20920-fix-participant-flip -> origin/JY-20920-fix-participant-flip
* [new branch] secfix/npm-20260519 -> origin/secfix/npm-20260519
Updating cb4ebf0c36..5604af40cf
Fast-forward
app/Component/ES/ChunkSize.php | 54 +++++++++++++++++++
app/Component/ES/Processor/DTOs/SelectionList.php | 4 +-
app/Component/ES/Processor/TargetEntitiesSelector.php | 19 ++++---
app/Component/MeetingBot/Service/ParticipantMatcher.php | 46 ++++++++++++----
app/Exceptions/RateLimitException.php | 19 ++++++-
app/Http/Middleware/McpTierMiddleware.php | 27 ++--------
app/Jobs/Crm/MatchActivityCrmData.php | 47 ++++++++++++----
app/Jobs/Middleware/HandleHubspotRateLimit.php | 42 +++++++++++++++
app/Mcp/Servers/JiminnyServer.php | 2 +
app/Mcp/Tools/GetMeTool.php | 157 +++++++++++++++++++++++++++++++++++++++++++++++++++++
app/Models/Feature/FeatureEnum.php | 1 +
app/Services/Activity/HubSpot/ProviderResolver.php | 4 +-
app/Services/Activity/HubSpot/ProviderResolverInterface.php | 2 +-
app/Services/Activity/HubSpot/Providers/Provider.php | 2 +-
app/Services/Activity/HubSpot/Providers/ProviderKixie.php | 2 +-
app/Services/Activity/HubSpot/Providers/ProviderOrum.php | 2 +-
app/Services/Activity/HubSpot/Providers/ProviderTwilio.php | 2 +-
app/Services/Activity/HubSpot/Providers/ProviderTwilioFlex.php | 5 +-
app/Services/Activity/HubSpot/Service.php | 97 +++++++++++++++++++++++++++------
app/Services/Crm/Hubspot/Client.php | 132 +++++++++++++++++++++++++++++++++++++++++++++
app/Services/Crm/Hubspot/HubspotClientInterface.php | 15 ++++++
app/Services/Crm/Hubspot/Pagination/HubspotPaginationService.php | 21 ++++----
app/Services/Crm/Hubspot/Pagination/PaginationState.php | 2 +-
database/migrations/2026_05_13_124153_create_mcp_feature_flag.php | 25 +++++++++
tests/Feature/Mcp/GetMeToolFeatureTest.php | 140 +++++++++++++++++++++++++++++++++++++++++++++++
tests/Feature/Mcp/ListCallsToolFeatureTest.php | 2 +-
tests/Feature/Mcp/McpTestHelpersTrait.php | 19 ++++++-
tests/Unit/Component/ES/ChunkSizeTest.php | 50 +++++++++++++++++
tests/Unit/Component/ES/Processor/DTOs/SelectionListTest.php | 27 +++++++---
tests/Unit/Component/ES/Processor/TargetEntitiesSelectorTest.php | 39 ++++++++------
tests/Unit/Component/MeetingBot/Service/ParticipantMatcherTest.php | 68 ++++++++++++++++++++++-
tests/Unit/Exceptions/RateLimitExceptionTest.php | 56 +++++++++++++++++++
tests/Unit/Jobs/Crm/MatchActivityCrmDataTest.php | 8 +--
tests/Unit/Jobs/Middleware/HandleHubspotRateLimitTest.php | 151 +++++++++++++++++++++++++++++++++++++++++++++++++++
tests/Unit/Services/Activity/HubSpot/ServiceTest.php | 109 +++++++++++++++++++++++++++++++++++++
tests/Unit/Services/Crm/Hubspot/ClientTest.php | 250 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
tests/Unit/Services/Crm/Hubspot/Pagination/HubspotPaginationServiceTest.php | 283 +++++++++++++++++++++---------------------------------------------------------------------------
37 files changed, 1587 insertions(+), 344 deletions(-)
create mode 100644 app/Component/ES/ChunkSize.php
create mode 100644 app/Jobs/Middleware/HandleHubspotRateLimit.php
create mode 100644 app/Mcp/Tools/GetMeTool.php
create mode 100644 database/migrations/2026_05_13_124153_create_mcp_feature_flag.php
create mode 100644 tests/Feature/Mcp/GetMeToolFeatureTest.php
create mode 100644 tests/Unit/Component/ES/ChunkSizeTest.php
create mode 100644 tests/Unit/Exceptions/RateLimitExceptionTest.php
create mode 100644 tests/Unit/Jobs/Middleware/HandleHubspotRateLimitTest.php
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (master) $ git pull
Already up to date.
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (master) $ co -b JY-20676-delete-report-related-objects
Switched to a new branch 'JY-20676-delete-report-related-objects'
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20676-delete-report-related-objects) $ csfix
docker exec -it docker_lamp_1 ./vendor/bin/php-cs-fixer fix --config=.php-cs-fixer.dist.php -v --using-cache=no --diff
PHP CS Fixer 3.87.1 Alexander by Fabien Potencier, Dariusz Ruminski and contributors.
PHP runtime: 8.3.30
Running 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!
Loaded config default from ".php-cs-fixer.dist.php".
5690/5690 [▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓] 100%
1) app/Console/Commands/JiminnyDebugCommand.php (statement_indentation, blank_line_before_statement)
---------- begin diff ----------
--- /home/jiminny/app/Console/Commands/JiminnyDebugCommand.php
+++ /home/jiminny/app/Console/Commands/JiminnyDebugCommand.php
@@ -23,6 +23,7 @@
if ($action === 'redis-set') {
$this->testRedisSet();
+
return;
}
@@ -45,7 +46,7 @@
$ttl = 60;
try {
-// $result = Redis::set($testKey, $testValue, 'EX', $ttl, 'NX');
+ // $result = Redis::set($testKey, $testValue, 'EX', $ttl, 'NX');
$result = Redis::set($testKey, $testValue, ['nx', 'ex' => $ttl]);
if ($result) {
----------- end diff -----------
Fixed 1 of 5690 files i...
|
[{"role":"AXTextArea","text [{"role":"AXTextArea","text":"Last login: Mon May 18 09:17:28 on ttys007\n\nPoetry could not find a pyproject.toml file in /Users/lukas/jiminny/app or its parents\n\nPoetry could not find a pyproject.toml file in /Users/lukas/jiminny/app or its parents\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (pipedrive-sdk-poc) $ co master\nerror: Your local changes to the following files would be overwritten by checkout:\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tPIPEDRIVE_V2_MIGRATION_TICKETS.md\nPlease commit your changes or stash them before you switch branches.\nAborting\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (pipedrive-sdk-poc) $ git pull\nremote: Enumerating objects: 1047, done.\nremote: Counting objects: 100% (832/832), done.\nremote: Compressing objects: 100% (298/298), done.\nremote: Total 1047 (delta 634), reused 596 (delta 534), pack-reused 215 (from 3)\nReceiving objects: 100% (1047/1047), 353.16 KiB | 1.56 MiB/s, done.\nResolving deltas: 100% (687/687), completed with 107 local objects.\nFrom github.com:jiminny/app\n 907c54896c..34656c53ed pipedrive-sdk-poc -> origin/pipedrive-sdk-poc\n 03325ec50f..4e7078fd8b JY-18091-upgrade-to-php-8-5 -> origin/JY-18091-upgrade-to-php-8-5\n e7d231e163..bc6a3fce6b JY-20725-handle-HS-search-rate-limit -> origin/JY-20725-handle-HS-search-rate-limit\n * [new branch] JY-20749-user-can-view-recorded-meetings -> origin/JY-20749-user-can-view-recorded-meetings\n 98ca281a04..e0351be069 JY-20808-low-priority-indexing-queue -> origin/JY-20808-low-priority-indexing-queue\n 569abb5149..3906a9238a JY-20835-mcp-enable-users-to-get-a-list-of-deals-and-their-details -> origin/JY-20835-mcp-enable-users-to-get-a-list-of-deals-and-their-details\n ad6c2a86e8..50eb6afba9 JY-20846-mcp-enable-the-ai-to-know-details-about-the-user -> origin/JY-20846-mcp-enable-the-ai-to-know-details-about-the-user\n * [new branch] JY-20893-chunk-control-per-update-target -> origin/JY-20893-chunk-control-per-update-target\n 31c62924a5..cb4ebf0c36 master -> origin/master\nUpdating 907c54896c..34656c53ed\nFast-forward\n PIPEDRIVE_V2_MIGRATION_TICKETS.md | 52 ++++++++++++++++++++++++++++++++++++++++++++++++++++\n 1 file changed, 52 insertions(+)\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (pipedrive-sdk-poc) $ co master\nM\u0000\u0000\u0000\u0000\u0000\u0000\t.env.local\nM\u0000\u0000\u0000\u0000\u0000\u0000\tconfig/logging.php\nSwitched to branch 'master'\nYour branch is behind 'origin/master' by 31 commits, and can be fast-forwarded.\n (use \"git pull\" to update your local branch)\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (master) $ git pull\nUpdating 31c62924a5..cb4ebf0c36\nFast-forward\n app/Component/ES/Processor/Traits/SelectEntityListTrait.php | 20 ------\n app/Services/Calendar/CalendarActivityService.php | 46 +++++++++++++\n app/Services/Calendar/Command/MapActivityData.php | 106 +++-------------------------\n docs/mcp/explorer/explorer.html | 104 +++++++++++++++++++++++++---\n docs/mcp/explorer/explorer.template.html | 102 ++++++++++++++++++++++++---\n docs/mcp/tools-list.json | 373 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++-------\n docs/mcp/tools.md | 117 +++++++++++++++++++++++--------\n tests/Unit/Component/ES/AsyncUpdateElasticSearchTest.php | 16 +----\n tests/Unit/Component/ES/Listeners/UpdateMultipleTargetsListenerTest.php | 10 ---\n tests/Unit/Component/ES/Listeners/UpdateSingleTargetListenerTest.php | 6 --\n tests/Unit/Component/ES/Processor/TargetEntitiesSelectorTest.php | 9 ---\n tests/Unit/Component/ES/Processor/Traits/SelectEntityListTraitTest.php | 15 ++--\n tests/Unit/Component/ES/UpdateProcessManagerTest.php | 2 -\n tests/Unit/Services/Calendar/CalendarActivityServiceTest.php | 150 ++++++++++++++++++++++++++++++++++++++--\n tests/Unit/Services/Calendar/Command/MapActivityDataTest.php | 78 ++-------------------\n 15 files changed, 832 insertions(+), 322 deletions(-)\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (master) $ co -b JY-20613-allow-owner-role-on-team-setup\nSwitched to a new branch 'JY-20613-allow-owner-role-on-team-setup'\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20613-allow-owner-role-on-team-setup) $ csfix\ndocker exec -it docker_lamp_1 ./vendor/bin/php-cs-fixer fix --config=.php-cs-fixer.dist.php -v --using-cache=no --diff \nPHP CS Fixer 3.87.1 Alexander by Fabien Potencier, Dariusz Ruminski and contributors.\nPHP runtime: 8.3.30\nRunning analysis on 7 cores with 10 files per process.\nParallel runner is an experimental feature and may be unstable, use it at your own risk. Feedback highly appreciated!\nLoaded config default from \".php-cs-fixer.dist.php\".\n 5682/5682 [▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓] 100%\n\n\nFixed 0 of 5682 files in 56.978 seconds, 67.00 MB memory used\n\nWhat's next:\n Try Docker Debug for seamless, persistent debugging tools in any container or image → docker debug docker_lamp_1\n Learn more at https://docs.docker.com/go/debug-cli/\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20613-allow-owner-role-on-team-setup) $ ;xd\ndocker exec -it docker_lamp_1 bash -c \"mv /usr/local/etc/php/conf.d/xdebug.ini ~/xdebug.ini\"\n\nWhat's next:\n Try Docker Debug for seamless, persistent debugging tools in any container or image → docker debug docker_lamp_1\n Learn more at https://docs.docker.com/go/debug-cli/\ndocker exec -it docker_lamp_1 supervisorctl restart all\njiminny-worker-processing-2:jiminny-worker-processing-2_00: stopped\njiminny-worker-processing-3:jiminny-worker-processing-3_00: stopped\njiminny-worker-processing-4:jiminny-worker-processing-4_00: stopped\njiminny-worker-processing-5:jiminny-worker-processing-5_00: stopped\njiminny-worker-processing-delayed:jiminny-worker-processing-delayed_00: stopped\nworker-analytics:worker-analytics_00: stopped\nworker-crm-update:worker-crm-update_00: stopped\nworker-download:worker-download_00: stopped\nworker-nudges:worker-nudges_00: stopped\nartisan-schedule:artisan-schedule_00: stopped\nworker-emails:worker-emails_00: stopped\nworker-calendar:worker-calendar_00: stopped\nworker:worker_00: stopped\nworker-conferences:worker-conferences_00: stopped\nworker-crm-sync:worker-crm-sync_00: stopped\njiminny-worker-processing-1:jiminny-worker-processing-1_00: stopped\nworker-audio:worker-audio_00: stopped\nworker-es-update:worker-es-update_00: stopped\nartisan-schedule:artisan-schedule_00: started\njiminny-worker-processing-1:jiminny-worker-processing-1_00: started\njiminny-worker-processing-2:jiminny-worker-processing-2_00: started\njiminny-worker-processing-3:jiminny-worker-processing-3_00: started\njiminny-worker-processing-4:jiminny-worker-processing-4_00: started\njiminny-worker-processing-5:jiminny-worker-processing-5_00: started\njiminny-worker-processing-delayed:jiminny-worker-processing-delayed_00: started\nworker:worker_00: started\nworker-analytics:worker-analytics_00: started\nworker-audio:worker-audio_00: started\nworker-calendar:worker-calendar_00: started\nworker-conferences:worker-conferences_00: started\nworker-crm-sync:worker-crm-sync_00: started\nworker-crm-update:worker-crm-update_00: started\nworker-download:worker-download_00: started\nworker-emails:worker-emails_00: started\nworker-es-update:worker-es-update_00: started\nworker-nudges:worker-nudges_00: started\n\nWhat's next:\n Try Docker Debug for seamless, persistent debugging tools in any container or image → docker debug docker_lamp_1\n Learn more at https://docs.docker.com/go/debug-cli/\ndocker exec -it docker_lamp_1 php -v\nPHP 8.3.30 (cli) (built: Mar 16 2026 22:32:32) (NTS)\nCopyright (c) The PHP Group\nZend Engine v4.3.30, Copyright (c) Zend Technologies\n with Zend OPcache v8.3.30, Copyright (c), by Zend Technologies\n\nWhat's next:\n Try Docker Debug for seamless, persistent debugging tools in any container or image → docker debug docker_lamp_1\n Learn more at https://docs.docker.com/go/debug-cli/\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20613-allow-owner-role-on-team-setup) $ csfix\ndocker exec -it docker_lamp_1 ./vendor/bin/php-cs-fixer fix --config=.php-cs-fixer.dist.php -v --using-cache=no --diff \nPHP CS Fixer 3.87.1 Alexander by Fabien Potencier, Dariusz Ruminski and contributors.\nPHP runtime: 8.3.30\nRunning analysis on 7 cores with 10 files per process.\nParallel runner is an experimental feature and may be unstable, use it at your own risk. Feedback highly appreciated!\nLoaded config default from \".php-cs-fixer.dist.php\".\n 5682/5682 [▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓] 100%\n\n\nFixed 0 of 5682 files in 49.910 seconds, 60.00 MB memory used\n\nWhat's next:\n Try Docker Debug for seamless, persistent debugging tools in any container or image → docker debug docker_lamp_1\n Learn more at https://docs.docker.com/go/debug-cli/\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20613-allow-owner-role-on-team-setup) $ git status\nOn branch JY-20613-allow-owner-role-on-team-setup\nYour branch is ahead of 'origin/JY-20613-allow-owner-role-on-team-setup' by 1 commit.\n (use \"git push\" to publish your local commits)\n\nChanges not staged for commit:\n (use \"git add <file>...\" to update what will be committed)\n (use \"git restore <file>...\" to discard changes in working directory)\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tmodified: .env.local\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tmodified: config/logging.php\n\nUntracked files:\n (use \"git add <file>...\" to include in what will be committed)\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\t.env.nikilocal\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\t.env.other\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tWEBHOOK_FILTERING_IMPLEMENTATION.md\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tapp/Console/Commands/Crm/Hubspot/SimulateWebhooksCommand.php\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tapp/Console/Commands/Reports/CreateMockAskJiminnyReportResultCommand.php\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tids.txt\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tpublic/favicon.ico\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\traw_sql_query.sql\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\ttests/Unit/Policies/CanAccessAiReportsTest.php\n\nno changes added to commit (use \"git add\" and/or \"git commit -a\")\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20613-allow-owner-role-on-team-setup) $ git pull\nremote: Enumerating objects: 248, done.\nremote: Counting objects: 100% (128/128), done.\nremote: Compressing objects: 100% (23/23), done.\nremote: Total 59 (delta 43), reused 44 (delta 33), pack-reused 0 (from 0)\nUnpacking objects: 100% (59/59), 10.48 KiB | 228.00 KiB/s, done.\nFrom github.com:jiminny/app\n b7df560451..190239dfd4 JY-20613-allow-owner-role-on-team-setup -> origin/JY-20613-allow-owner-role-on-team-setup\n e0351be069..d94a285ae7 JY-20808-low-priority-indexing-queue -> origin/JY-20808-low-priority-indexing-queue\n * [new branch] JY-20920-fix-participant-matcher -> origin/JY-20920-fix-participant-matcher\n cb4ebf0c36..90bca4e4b2 master -> origin/master\nMerge made by the 'ort' strategy.\n app/Component/ES/ChunkSize.php | 54 +++++++++++++++++++++++++++\n app/Component/ES/Processor/DTOs/SelectionList.php | 4 +-\n app/Component/ES/Processor/TargetEntitiesSelector.php | 19 ++++++----\n app/Http/Middleware/McpTierMiddleware.php | 27 +++-----------\n app/Mcp/Servers/JiminnyServer.php | 2 +\n app/Mcp/Tools/GetMeTool.php | 157 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++\n app/Models/Feature/FeatureEnum.php | 1 +\n database/migrations/2026_05_13_124153_create_mcp_feature_flag.php | 25 +++++++++++++\n front-end/src/components/Settings/Kiosk/modals/EditTeamModal/EditTeamModal.vue | 52 ++++++++++++++++++--------\n front-end/src/components/Settings/Kiosk/modals/EditTeamModal/__tests__/EditTeamModal.spec.js | 14 +++++++\n tests/Feature/Mcp/GetMeToolFeatureTest.php | 140 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++\n tests/Feature/Mcp/ListCallsToolFeatureTest.php | 2 +-\n tests/Feature/Mcp/McpTestHelpersTrait.php | 19 +++++++++-\n tests/Unit/Component/ES/ChunkSizeTest.php | 50 +++++++++++++++++++++++++\n tests/Unit/Component/ES/Processor/DTOs/SelectionListTest.php | 27 ++++++++++----\n tests/Unit/Component/ES/Processor/TargetEntitiesSelectorTest.php | 39 +++++++++++---------\n 16 files changed, 557 insertions(+), 75 deletions(-)\n create mode 100644 app/Component/ES/ChunkSize.php\n create mode 100644 app/Mcp/Tools/GetMeTool.php\n create mode 100644 database/migrations/2026_05_13_124153_create_mcp_feature_flag.php\n create mode 100644 tests/Feature/Mcp/GetMeToolFeatureTest.php\n create mode 100644 tests/Unit/Component/ES/ChunkSizeTest.php\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20613-allow-owner-role-on-team-setup) $ git push\nEnumerating objects: 40, done.\nCounting objects: 100% (34/34), done.\nDelta compression using up to 8 threads\nCompressing objects: 100% (18/18), done.\nWriting objects: 100% (18/18), 1.58 KiB | 1.58 MiB/s, done.\nTotal 18 (delta 15), reused 0 (delta 0), pack-reused 0\nremote: Resolving deltas: 100% (15/15), completed with 13 local objects.\nTo github.com:jiminny/app.git\n 190239dfd4..ec1b261264 JY-20613-allow-owner-role-on-team-setup -> JY-20613-allow-owner-role-on-team-setup\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20613-allow-owner-role-on-team-setup) $ gbr\n* JY-20613-allow-owner-role-on-team-setup\n pipedrive-sdk-poc\n master\n JY-20903-update_activity-stage-on-opportunity-change\n JY-20904-fix-update-es-on-activity-command\n JY-20891-improve-sms-text-relays\n JY-20725-handle-HS-search-rate-limit\n JY-20818-move-AJ-reports-to-separated-datadog-metric\n JY-20773-fix-automated-reports-user-pilot-tracking\n JY-20157-AJ-report-not-send-notification\n JY-20508-notify-before-AJ-report-expiration\n JY-20372-ai-reports-promotion-pages\n JY-20352-sync-opportunities-without-a-local-owner-user-id-is-null\n JY-20738-debug-AJ-tracking-UP\n a\n JY-18909-automated-reports-ask-jiminny\n JY-20692-fix-integration-app-token-auth-response-change\n JY-20553-debug-crm-sync-delays\n JY-20698-fix-SF-activity-types-on-new-playbook\n JY-20543-AJ-report-tracking\n JY-20384-handle-auto-sync-with-no-access-to-event-type\n JY-20458-ask-jiminny-user-definitions\n JY-19666-fix-import-contacts-account-association\n JY-19666-HS-import-contacts-and-accounts-batch-job\n JY-20458-Ask-Jiminny-Reports\n JY-20200-batch-update-CRM-objects-Salesforce\n JY-19666-HS-webhooks-add-contact-and-company\n JY-20348-trigger-setup-DI-layout-on-team-creation\n JY-20326-refactor-info-message-in-command\n JY-20317-fix-auto-log-delay-issue-on-all-channels-disabled\n JY-20312-remove-on-update-change-last-synced-at-crm-configurations\n JY-20306-SF-skip-auto-sync-for-task-based-playbook\n JY-20192-remove-deleted-team-from-saved-search-filters\n JY-20197-import-opportunity-batch-job\n JY-20293-enable-status-field-for-pipedrive-deals\n JY-20191-remove-commands-interactive-prompts\n JY-20118-change-default-sync-strategy\n JY-20183-add-cache-on-auto-log-delay\n JY-20197-add-import-opportunity-batch-job\n 20118-hs-opportunity-make-webhook-strategy-default\n JY-20118-make-default-hs-opportunity-sync-strategy-webhook-based\n JY-20196-handle-opportunity-without-note\n JY-20118-improve-opportunity-import\n JY-20189-handle-activity-search-on-deleted-groups\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20613-allow-owner-role-on-team-setup) $ co JY-20725-handle-HS-search-rate-limit\nM\u0000\u0000\u0000\u0000\u0000\u0000\t.env.local\nM\u0000\u0000\u0000\u0000\u0000\u0000\tconfig/logging.php\nSwitched to branch 'JY-20725-handle-HS-search-rate-limit'\nYour branch is behind 'origin/JY-20725-handle-HS-search-rate-limit' by 439 commits, and can be fast-forwarded.\n (use \"git pull\" to update your local branch)\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20725-handle-HS-search-rate-limit) $ git pull\nUpdating 0f3e438941..bc6a3fce6b\nFast-forward\n .gitignore | 3 +-\n .windsurfrules | 168 ++---\n CLAUDE.md | 1 +\n app/Component/ActivityAnalytics/Service/CalculateTalkTimeOffsetsFromTranscription.php | 24 +-\n app/Component/AiActivityType/Services/AiActivityTypeEligibilityChecker.php | 28 +-\n app/Component/AiAutomation/Actions/PrepareUpdateDtoAction.php | 32 +-\n app/Component/AiAutomation/Services/CrmFillingEligibilityChecker.php | 47 ++\n app/Component/AiAutomation/TestCrmAiPromptService.php | 14 +\n app/Component/AiCallScoring/Services/AiCallScoringEligibilityChecker.php | 9 +\n app/Component/ES/ElasticSearchDocumentPartialUpdater.php | 13 +-\n app/Component/ES/ElasticSearchWorkerManager.php | 86 ---\n app/Component/ES/Processor/Actions/LoadDocumentsAction.php | 80 +--\n app/Component/ES/Processor/EntityQueryBuilder.php | 12 +-\n app/Component/ES/Processor/TargetEntitiesSelector.php | 2 +-\n app/Component/ES/Processor/Traits/SkipActivityTrait.php | 25 -\n app/Component/ES/Repositories/EsResetActivityRepository.php | 11 +-\n app/Component/ES/Worker/ActivityWorker.php | 73 --\n app/Component/ES/Worker/EntityWorker.php | 44 --\n app/Component/ES/Worker/WorkerAmount.php | 60 --\n app/Component/ES/Worker/WorkerInterface.php | 15 -\n app/Component/ElasticSearch/Contract/Searchable.php | 4 +\n app/Component/Encoding/Job/AnalyzeTrackChannelsJob.php | 20 +-\n app/Component/Encoding/Service/GenerateSpeechFromSilenceService.php | 85 ++-\n app/Component/FFMpeg/Services/GetSpeechIntervalsService.php | 18 +-\n app/Component/LanguageDetection/Services/FindSpeechTimeService.php | 22 +-\n app/Component/Nudge/Job/ProcessOrganisationImmediateNudgesJob.php | 218 +++++-\n app/Component/ParagraphBreaker/Services/TranscriptionParagraphsService.php | 4 +\n app/Component/ParticipantSpeech/Services/ParticipantSpeechesCreator.php | 33 +\n app/Component/ParticipantSpeech/Services/ParticipantSpeechesDeleter.php | 15 +\n app/Component/ParticipantSpeech/Services/ParticipantSpeechesProvider.php | 51 +-\n app/Component/ParticipantSpeech/Services/ParticipantSpeechesUploader.php | 36 +\n app/Component/ProphetAi/Exceptions/InsufficientTranscriptException.php | 11 +\n app/Component/Transcription/DTO/Http/Transcription/AssemblyAI/AssemblyAI/NoAssemblyIdException.php | 11 +\n app/Component/Transcription/DTO/Http/Transcription/AssemblyAI/AssemblyAI/SuccessfulResponse.php | 6 +\n app/Component/Transcription/DTO/Http/Transcription/TranscriptionIsNotCorrectFormatException.php | 11 +\n app/Component/Transcription/Diarization/Services/GetNormalizedParticipantSpeechesService.php | 23 +-\n app/Component/Transcription/Diarization/Source/MeetingBotSource.php | 16 +-\n app/Component/Transcription/TranscriptionProcessor/TranscriptionProcessor.php | 3 +\n app/Console/Commands/Activities/ActivityHardDeleteCommand.php | 4 +-\n app/Console/Commands/Activities/Copy.php | 2 +\n app/Console/Commands/Activities/SetupIntegration/TwilioSetS3RecordingCredentialsCommand.php | 119 ++++\n app/Console/Commands/Activities/UpdateActivityElasticSearchDocumentCommand.php | 10 +-\n app/Console/Commands/Crm/BackfillOpportunityUserFromAccountCommand.php | 126 ++++\n app/Console/Commands/Elasticsearch/AsyncUpdateEsActivities.php | 19 -\n app/Console/Commands/Elasticsearch/AsyncUpdateEsEntities.php | 50 +-\n app/Console/Commands/Elasticsearch/ResetAsyncElasticSearchCommand.php | 30 +-\n app/Console/Commands/GeckoExport/GeckoExportParticipantSpeechesCommand.php | 14 +-\n app/Console/Commands/IssueMcpTokenCommand.php | 84 +++\n app/Console/Commands/JiminnyDebugCommand.php | 7 +-\n app/Console/Commands/Tracks/CleanupActivityTracksCommand.php | 2 +-\n app/Console/Kernel.php | 6 +-\n app/Contracts/Services/Calendar/CalendarTrait.php | 80 ++-\n app/Events/AutomatedReports/AutomatedReportGenerated.php | 3 +\n app/Http/Controllers/API/AiCallScoring/AiScorecardController.php | 7 +-\n app/Http/Controllers/API/TeamAiAutomationController.php | 8 +\n app/Http/Controllers/CustomerApi/CustomerApiController.php | 4 +-\n app/Http/Controllers/Kiosk/ActivityController.php | 58 +-\n app/Http/Controllers/Settings/PlaybookController.php | 15 +-\n app/Http/Kernel.php | 23 +\n app/Http/Middleware/McpAuditMiddleware.php | 156 ++++\n app/Http/Middleware/McpTierMiddleware.php | 54 ++\n app/Http/Requests/API/V2/ZapierUploadActivityRequest.php | 28 +-\n app/Jobs/Activity/Import/ImportTwilioVideoSpeechesJob.php | 25 +-\n app/Jobs/Activity/Import/IsActivityReadyForProcessingJob.php | 10 +-\n app/Jobs/Calendar/SetupCalendarSync.php | 21 +-\n app/Jobs/ImportRemoteTrackJob.php | 96 ++-\n app/Jobs/Mailbox/EmailTextRelay.php | 15 +-\n app/Mcp/Contracts/McpCallRepositoryInterface.php | 30 +\n app/Mcp/DTO/ListCallsFilters.php | 29 +\n app/Mcp/Errors/McpError.php | 123 ++++\n app/Mcp/Repositories/McpActivityHydrator.php | 145 ++++\n app/Mcp/Repositories/McpCallRepository.php | 84 +++\n app/Mcp/Repositories/McpElasticCallRepository.php | 171 +++++\n app/Mcp/Servers/JiminnyServer.php | 38 +\n app/Mcp/Tools/ListCallsTool.php | 205 ++++++\n app/Models/Activity.php | 10 +-\n app/Models/Activity/Transcription.php | 17 +-\n app/Models/ElasticSearch/OpportunityElasticSearchTrait.php | 5 +\n app/Models/Participant.php | 1 +\n app/Providers/AppServiceProvider.php | 22 +\n app/Repositories/Crm/ContactRepository.php | 69 +-\n app/Repositories/ParticipantSpeechRepository.php | 13 +-\n app/Services/Activity/ParticipantsService.php | 19 +-\n app/Services/Activity/Twilio/S3RecordingCredentialsService.php | 82 +++\n app/Services/ActivityService.php | 21 +-\n app/Services/Calendar/CalendarActivityService.php | 46 ++\n app/Services/Calendar/Command/ImportParticipants.php | 1 +\n app/Services/Calendar/Command/MapActivityData.php | 106 +--\n app/Services/Calendar/GoogleCalendarService.php | 12 +-\n app/Services/Crm/Close/Processor/OpportunityProcessor.php | 2 +-\n app/Services/Crm/Close/Service.php | 22 +-\n app/Services/Crm/Copper/Service.php | 12 +-\n app/Services/Crm/Hubspot/Service.php | 154 +++-\n app/Services/Crm/Hubspot/ServiceTraits/OpportunitySyncTrait.php | 88 ++-\n app/Services/Crm/IntegrationApp/ServiceTraits/SyncCrmEntitiesTrait.php | 22 +-\n app/Services/Crm/Pipedrive/Service.php | 17 +-\n app/Services/Crm/Salesforce/Service.php | 42 +-\n app/Services/Mail/Office/EmailApiClient.php | 129 +---\n app/Services/RecallAI/Commands/ScheduleBotCommand.php | 39 +-\n app/Services/RecallAI/RecallAIService.php | 22 +-\n composer.json | 3 +-\n composer.lock | 87 ++-\n config/mcp.php | 23 +\n database/migrations/2026_04_30_120000_create_mcp_audit_log_table.php | 36 +\n docs/mcp/explorer/explorer.html | 697 ++++++++++++++++++\n docs/mcp/explorer/explorer.template.html | 697 ++++++++++++++++++\n docs/mcp/explorer/generate.js | 215 ++++++\n docs/mcp/explorer/tool-explorer-meta.json | 11 +\n docs/mcp/tools-list.json | 2536 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++\n docs/mcp/tools.md | 621 ++++++++++++++++\n front-end/package.json | 4 +-\n front-end/src/components/Settings/OrgSettings/AiAutomation/CrmFilling/TemplateFieldForm.vue | 28 +-\n front-end/src/components/Settings/OrgSettings/Playbooks/AddEditPlaybook.vue | 10 +\n front-end/src/components/playback/comments/ActivityComment.less | 10 +-\n front-end/src/components/shared/PromptTester/PromptTester.vue | 12 +-\n front-end/src/components/shared/__tests__/PromptTester.spec.js | 35 +\n front-end/src/components/shared/modals/EntityPickerModal/__tests__/useEntitiesCache.spec.ts | 37 +\n front-end/src/components/shared/modals/EntityPickerModal/useEntitiesCache.ts | 9 +\n front-end/yarn.lock | 16 +-\n phpstan-baseline.neon | 50 --\n routes/api.php | 11 +\n sonar-project.properties | 91 ++-\n tests/Feature/Component/Nudge/ProcessOrganisationImmediateNudgesJobTest.php | 534 ++++++++++++++\n tests/Feature/Jobs/ImportRemoteTrackJobTest.php | 283 +++++++-\n tests/Feature/Mcp/IssueMcpTokenCommandTest.php | 53 ++\n tests/Feature/Mcp/ListCallsToolElasticFeatureTest.php | 155 ++++\n tests/Feature/Mcp/ListCallsToolFeatureTest.php | 352 ++++++++++\n tests/Feature/Mcp/McpTestHelpersTrait.php | 77 ++\n tests/Feature/Services/Team/TeamDeleteHandlers/Retention/RetentionRepositoryHandlerTest.php | 1 +\n tests/Stubs/SentryStub.php | 18 +\n tests/Unit/Component/ActivityAnalytics/Service/CalculateTalkTimeOffsetFromTranscriptionTest.php | 28 +-\n tests/Unit/Component/AiActivityType/Services/AiActivityTypeEligibilityCheckerTest.php | 103 ++-\n tests/Unit/Component/AiAutomation/Actions/PrepareUpdateDtoActionTest.php | 91 +++\n tests/Unit/Component/AiAutomation/Services/CrmFillingEligibilityCheckerTest.php | 124 ++++\n tests/Unit/Component/AiAutomation/TestCrmAiPromptServiceTest.php | 67 +-\n tests/Unit/Component/AiCallScoring/Services/AiCallScoringEligibilityCheckerTest.php | 55 ++\n tests/Unit/Component/ES/ElasticSearchWorkerManagerTest.php | 135 ----\n tests/Unit/Component/ES/Processor/Actions/LoadDocumentsActionTest.php | 220 ++++++\n tests/Unit/Component/ES/Processor/EntityQueryBuilderTest.php | 21 +-\n tests/Unit/Component/ES/Processor/Traits/SkipActivityTraitTest.php | 51 --\n tests/Unit/Component/ES/Worker/ActivityWorkerTest.php | 174 -----\n tests/Unit/Component/ES/Worker/EntityWorkerTest.php | 97 ---\n tests/Unit/Component/ES/Worker/WorkerAmountTest.php | 116 ---\n tests/Unit/Component/Encoding/Job/AnalyzeTrackChannelsJobTest.php | 52 +-\n tests/Unit/Component/Encoding/Service/GenerateSpeechFromSilenceServiceTest.php | 171 ++---\n tests/Unit/Component/FFMpeg/Services/GetSpeechIntervalsTest.php | 36 +-\n tests/Unit/Component/LanguageDetection/Services/FindSpeechTimeServiceTest.php | 20 +-\n tests/Unit/Component/MobileSettings/MobileSettingsControllerTest.php | 5 +-\n tests/Unit/Component/ParticipantSpeech/Services/ParticipantSpeechesCreatorTest.php | 75 ++\n tests/Unit/Component/ParticipantSpeech/Services/ParticipantSpeechesDeleterTest.php | 63 ++\n tests/Unit/Component/ParticipantSpeech/Services/ParticipantSpeechesProviderTest.php | 134 ++++\n tests/Unit/Component/ParticipantSpeech/Services/ParticipantSpeechesUploaderTest.php | 57 ++\n tests/Unit/Component/Transcription/Diarization/Services/GetNormalizedParticipantSpeechesServiceTest.php | 51 +-\n tests/Unit/Component/Transcription/Diarization/Source/MeetingBotSourceTest.php | 29 +-\n tests/Unit/Contracts/Services/Calendar/CalendarTraitTest.php | 58 +-\n tests/Unit/Http/Controllers/Kiosk/ActivityControllerTest.php | 159 +++++\n tests/Unit/Jobs/Activity/Import/ImportTwilioVideoSpeechesJobTest.php | 22 +-\n tests/Unit/Jobs/Activity/Import/IsActivityReadyForProcessingJobTest.php | 26 +-\n tests/Unit/Jobs/Calendar/SetupCalendarSyncTest.php | 25 -\n tests/Unit/Services/Activity/ParticipantsServiceTest.php | 12 +-\n tests/Unit/Services/Activity/Twilio/S3RecordingCredentialsServiceTest.php | 180 +++++\n tests/Unit/Services/ActivityServiceTest.php | 132 ++++\n tests/Unit/Services/Calendar/CalendarActivityServiceTest.php | 150 +++-\n tests/Unit/Services/Calendar/Command/ImportParticipantsTest.php | 6 +-\n tests/Unit/Services/Calendar/Command/MapActivityDataTest.php | 78 +-\n tests/Unit/Services/Calendar/GoogleCalendarServiceTest.php | 116 +++\n tests/Unit/Services/Crm/Close/ServiceTest.php | 165 +++++\n tests/Unit/Services/Crm/Hubspot/ServiceTest.php | 272 ++++++-\n tests/Unit/Services/Crm/Hubspot/ServiceTraits/OpportunitySyncTest.php | 25 +-\n tests/Unit/Services/Crm/Hubspot/ServiceTraits/OpportunitySyncTraitMatchActivitiesTest.php | 3 +-\n tests/Unit/Services/Crm/IntegrationApp/ServiceTraits/SyncCrmEntitiesTraitOpportunitiesTest.php | 40 ++\n tests/Unit/Services/Crm/Pipedrive/ImportOpportunityMatchActivitiesTest.php | 2 +\n tests/Unit/Services/Crm/Salesforce/ServiceTest.php | 139 ++++\n tests/Unit/Services/Mail/Office/EmailApiClientTest.php | 195 ++---\n tests/Unit/Services/RecallAI/RecallAIServiceTest.php | 24 +-\n 175 files changed, 12562 insertions(+), 2162 deletions(-)\n create mode 120000 CLAUDE.md\n create mode 100644 app/Component/AiAutomation/Services/CrmFillingEligibilityChecker.php\n delete mode 100644 app/Component/ES/ElasticSearchWorkerManager.php\n delete mode 100644 app/Component/ES/Processor/Traits/SkipActivityTrait.php\n delete mode 100644 app/Component/ES/Worker/ActivityWorker.php\n delete mode 100644 app/Component/ES/Worker/EntityWorker.php\n delete mode 100644 app/Component/ES/Worker/WorkerAmount.php\n delete mode 100644 app/Component/ES/Worker/WorkerInterface.php\n create mode 100644 app/Component/ProphetAi/Exceptions/InsufficientTranscriptException.php\n create mode 100644 app/Component/Transcription/DTO/Http/Transcription/AssemblyAI/AssemblyAI/NoAssemblyIdException.php\n create mode 100644 app/Component/Transcription/DTO/Http/Transcription/TranscriptionIsNotCorrectFormatException.php\n create mode 100644 app/Console/Commands/Activities/SetupIntegration/TwilioSetS3RecordingCredentialsCommand.php\n create mode 100644 app/Console/Commands/Crm/BackfillOpportunityUserFromAccountCommand.php\n delete mode 100644 app/Console/Commands/Elasticsearch/AsyncUpdateEsActivities.php\n create mode 100644 app/Console/Commands/IssueMcpTokenCommand.php\n create mode 100644 app/Http/Middleware/McpAuditMiddleware.php\n create mode 100644 app/Http/Middleware/McpTierMiddleware.php\n create mode 100644 app/Mcp/Contracts/McpCallRepositoryInterface.php\n create mode 100644 app/Mcp/DTO/ListCallsFilters.php\n create mode 100644 app/Mcp/Errors/McpError.php\n create mode 100644 app/Mcp/Repositories/McpActivityHydrator.php\n create mode 100644 app/Mcp/Repositories/McpCallRepository.php\n create mode 100644 app/Mcp/Repositories/McpElasticCallRepository.php\n create mode 100644 app/Mcp/Servers/JiminnyServer.php\n create mode 100644 app/Mcp/Tools/ListCallsTool.php\n create mode 100644 app/Services/Activity/Twilio/S3RecordingCredentialsService.php\n create mode 100644 config/mcp.php\n create mode 100644 database/migrations/2026_04_30_120000_create_mcp_audit_log_table.php\n create mode 100644 docs/mcp/explorer/explorer.html\n create mode 100644 docs/mcp/explorer/explorer.template.html\n create mode 100644 docs/mcp/explorer/generate.js\n create mode 100644 docs/mcp/explorer/tool-explorer-meta.json\n create mode 100644 docs/mcp/tools-list.json\n create mode 100644 docs/mcp/tools.md\n create mode 100644 front-end/src/components/shared/modals/EntityPickerModal/__tests__/useEntitiesCache.spec.ts\n create mode 100644 tests/Feature/Component/Nudge/ProcessOrganisationImmediateNudgesJobTest.php\n create mode 100644 tests/Feature/Mcp/IssueMcpTokenCommandTest.php\n create mode 100644 tests/Feature/Mcp/ListCallsToolElasticFeatureTest.php\n create mode 100644 tests/Feature/Mcp/ListCallsToolFeatureTest.php\n create mode 100644 tests/Feature/Mcp/McpTestHelpersTrait.php\n create mode 100644 tests/Stubs/SentryStub.php\n create mode 100644 tests/Unit/Component/AiAutomation/Services/CrmFillingEligibilityCheckerTest.php\n delete mode 100644 tests/Unit/Component/ES/ElasticSearchWorkerManagerTest.php\n create mode 100644 tests/Unit/Component/ES/Processor/Actions/LoadDocumentsActionTest.php\n delete mode 100644 tests/Unit/Component/ES/Processor/Traits/SkipActivityTraitTest.php\n delete mode 100644 tests/Unit/Component/ES/Worker/ActivityWorkerTest.php\n delete mode 100644 tests/Unit/Component/ES/Worker/EntityWorkerTest.php\n delete mode 100644 tests/Unit/Component/ES/Worker/WorkerAmountTest.php\n create mode 100644 tests/Unit/Component/ParticipantSpeech/Services/ParticipantSpeechesCreatorTest.php\n create mode 100644 tests/Unit/Http/Controllers/Kiosk/ActivityControllerTest.php\n create mode 100644 tests/Unit/Services/Activity/Twilio/S3RecordingCredentialsServiceTest.php\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20725-handle-HS-search-rate-limit) $ git status\nOn branch master\nYour branch is behind 'origin/master' by 114 commits, and can be fast-forwarded.\n (use \"git pull\" to update your local branch)\n\nChanges not staged for commit:\n (use \"git add <file>...\" to update what will be committed)\n (use \"git restore <file>...\" to discard changes in working directory)\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tmodified: .env.local\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tmodified: app/Component/SCIM/Constants.php\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tmodified: app/Component/SCIM/ScimProvisioning.php\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tmodified: app/Component/Twilio/Conference/ConferenceManager/SoftPhoneManager.php\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tmodified: app/Console/Commands/JiminnyDebugCommand.php\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tmodified: app/DTO/SCIM/AAD/Request/CoreUserRequest.php\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tmodified: app/DTO/SCIM/AAD/Response/CoreUser.php\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tmodified: app/Services/Telephony/TextMessagingService.php\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tmodified: config/logging.php\n\nUntracked files:\n (use \"git add <file>...\" to include in what will be committed)\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\t.env.nikilocal\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\t.env.other\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tWEBHOOK_FILTERING_IMPLEMENTATION.md\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tapp/Component/SCIM/Mutators/Attributes/User/RoleAttr.php\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tapp/Console/Commands/Crm/Hubspot/SimulateWebhooksCommand.php\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tapp/Console/Commands/Reports/CreateMockAskJiminnyReportResultCommand.php\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tapp/Rules/ListenerRoleCannotHaveAdminOrManagerPermissionRule.php\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tids.txt\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tpublic/favicon.ico\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\traw_sql_query.sql\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\ttests/Unit/Component/SCIM/Mutators/Attributes/User/RoleAttrTest.php\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\ttests/Unit/Policies/CanAccessAiReportsTest.php\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\ttests/Unit/Rules/ListenerRoleCannotHaveAdminOrManagerPermissionRuleTest.php\n\nno changes added to commit (use \"git add\" and/or \"git commit -a\")\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (master) $ git pull\nremote: Enumerating objects: 306, done.\nremote: Counting objects: 100% (299/299), done.\nremote: Compressing objects: 100% (183/183), done.\nremote: Total 306 (delta 213), reused 171 (delta 116), pack-reused 7 (from 1)\nReceiving objects: 100% (306/306), 80.12 KiB | 1000.00 KiB/s, done.\nResolving deltas: 100% (213/213), completed with 53 local objects.\nFrom github.com:jiminny/app\n 90bca4e4b2..5604af40cf master -> origin/master\n 4e7078fd8b..0b8343d179 JY-18091-upgrade-to-php-8-5 -> origin/JY-18091-upgrade-to-php-8-5\n 098eeaa087..d5a447e492 JY-20613-allow-owner-role-on-team-setup -> origin/JY-20613-allow-owner-role-on-team-setup\n c3a76ace91..af65249d0f JY-20749-user-can-view-recorded-meetings -> origin/JY-20749-user-can-view-recorded-meetings\n d94a285ae7..7ce96cb5fe JY-20808-low-priority-indexing-queue -> origin/JY-20808-low-priority-indexing-queue\n * [new branch] JY-20842-remove-partial-updater -> origin/JY-20842-remove-partial-updater\n * [new branch] JY-20920-fix-participant-flip -> origin/JY-20920-fix-participant-flip\n * [new branch] secfix/npm-20260519 -> origin/secfix/npm-20260519\nUpdating cb4ebf0c36..5604af40cf\nFast-forward\n app/Component/ES/ChunkSize.php | 54 +++++++++++++++++++\n app/Component/ES/Processor/DTOs/SelectionList.php | 4 +-\n app/Component/ES/Processor/TargetEntitiesSelector.php | 19 ++++---\n app/Component/MeetingBot/Service/ParticipantMatcher.php | 46 ++++++++++++----\n app/Exceptions/RateLimitException.php | 19 ++++++-\n app/Http/Middleware/McpTierMiddleware.php | 27 ++--------\n app/Jobs/Crm/MatchActivityCrmData.php | 47 ++++++++++++----\n app/Jobs/Middleware/HandleHubspotRateLimit.php | 42 +++++++++++++++\n app/Mcp/Servers/JiminnyServer.php | 2 +\n app/Mcp/Tools/GetMeTool.php | 157 +++++++++++++++++++++++++++++++++++++++++++++++++++++\n app/Models/Feature/FeatureEnum.php | 1 +\n app/Services/Activity/HubSpot/ProviderResolver.php | 4 +-\n app/Services/Activity/HubSpot/ProviderResolverInterface.php | 2 +-\n app/Services/Activity/HubSpot/Providers/Provider.php | 2 +-\n app/Services/Activity/HubSpot/Providers/ProviderKixie.php | 2 +-\n app/Services/Activity/HubSpot/Providers/ProviderOrum.php | 2 +-\n app/Services/Activity/HubSpot/Providers/ProviderTwilio.php | 2 +-\n app/Services/Activity/HubSpot/Providers/ProviderTwilioFlex.php | 5 +-\n app/Services/Activity/HubSpot/Service.php | 97 +++++++++++++++++++++++++++------\n app/Services/Crm/Hubspot/Client.php | 132 +++++++++++++++++++++++++++++++++++++++++++++\n app/Services/Crm/Hubspot/HubspotClientInterface.php | 15 ++++++\n app/Services/Crm/Hubspot/Pagination/HubspotPaginationService.php | 21 ++++----\n app/Services/Crm/Hubspot/Pagination/PaginationState.php | 2 +-\n database/migrations/2026_05_13_124153_create_mcp_feature_flag.php | 25 +++++++++\n tests/Feature/Mcp/GetMeToolFeatureTest.php | 140 +++++++++++++++++++++++++++++++++++++++++++++++\n tests/Feature/Mcp/ListCallsToolFeatureTest.php | 2 +-\n tests/Feature/Mcp/McpTestHelpersTrait.php | 19 ++++++-\n tests/Unit/Component/ES/ChunkSizeTest.php | 50 +++++++++++++++++\n tests/Unit/Component/ES/Processor/DTOs/SelectionListTest.php | 27 +++++++---\n tests/Unit/Component/ES/Processor/TargetEntitiesSelectorTest.php | 39 ++++++++------\n tests/Unit/Component/MeetingBot/Service/ParticipantMatcherTest.php | 68 ++++++++++++++++++++++-\n tests/Unit/Exceptions/RateLimitExceptionTest.php | 56 +++++++++++++++++++\n tests/Unit/Jobs/Crm/MatchActivityCrmDataTest.php | 8 +--\n tests/Unit/Jobs/Middleware/HandleHubspotRateLimitTest.php | 151 +++++++++++++++++++++++++++++++++++++++++++++++++++\n tests/Unit/Services/Activity/HubSpot/ServiceTest.php | 109 +++++++++++++++++++++++++++++++++++++\n tests/Unit/Services/Crm/Hubspot/ClientTest.php | 250 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++\n tests/Unit/Services/Crm/Hubspot/Pagination/HubspotPaginationServiceTest.php | 283 +++++++++++++++++++++---------------------------------------------------------------------------\n 37 files changed, 1587 insertions(+), 344 deletions(-)\n create mode 100644 app/Component/ES/ChunkSize.php\n create mode 100644 app/Jobs/Middleware/HandleHubspotRateLimit.php\n create mode 100644 app/Mcp/Tools/GetMeTool.php\n create mode 100644 database/migrations/2026_05_13_124153_create_mcp_feature_flag.php\n create mode 100644 tests/Feature/Mcp/GetMeToolFeatureTest.php\n create mode 100644 tests/Unit/Component/ES/ChunkSizeTest.php\n create mode 100644 tests/Unit/Exceptions/RateLimitExceptionTest.php\n create mode 100644 tests/Unit/Jobs/Middleware/HandleHubspotRateLimitTest.php\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (master) $ git pull\nAlready up to date.\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (master) $ co -b JY-20676-delete-report-related-objects\nSwitched to a new branch 'JY-20676-delete-report-related-objects'\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20676-delete-report-related-objects) $ csfix\ndocker exec -it docker_lamp_1 ./vendor/bin/php-cs-fixer fix --config=.php-cs-fixer.dist.php -v --using-cache=no --diff \nPHP CS Fixer 3.87.1 Alexander by Fabien Potencier, Dariusz Ruminski and contributors.\nPHP runtime: 8.3.30\nRunning analysis on 7 cores with 10 files per process.\nParallel runner is an experimental feature and may be unstable, use it at your own risk. Feedback highly appreciated!\nLoaded config default from \".php-cs-fixer.dist.php\".\n 5690/5690 [▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓] 100%\n\n 1) app/Console/Commands/JiminnyDebugCommand.php (statement_indentation, blank_line_before_statement)\n ---------- begin diff ----------\n--- /home/jiminny/app/Console/Commands/JiminnyDebugCommand.php\n+++ /home/jiminny/app/Console/Commands/JiminnyDebugCommand.php\n@@ -23,6 +23,7 @@\n \n if ($action === 'redis-set') {\n $this->testRedisSet();\n+\n return;\n }\n \n@@ -45,7 +46,7 @@\n $ttl = 60;\n \n try {\n-// $result = Redis::set($testKey, $testValue, 'EX', $ttl, 'NX');\n+ // $result = Redis::set($testKey, $testValue, 'EX', $ttl, 'NX');\n $result = Redis::set($testKey, $testValue, ['nx', 'ex' => $ttl]);\n \n if ($result) {\n\n ----------- end diff -----------\n\n\nFixed 1 of 5690 files in 50.673 seconds, 67.00 MB memory used\n\nWhat's next:\n Try Docker Debug for seamless, persistent debugging tools in any container or image → docker debug docker_lamp_1\n Learn more at https://docs.docker.com/go/debug-cli/\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20676-delete-report-related-objects) $ ;xd\ndocker exec -it docker_lamp_1 bash -c \"mv /usr/local/etc/php/conf.d/xdebug.ini ~/xdebug.ini\"\n\nWhat's next:\n Try Docker Debug for seamless, persistent debugging tools in any container or image → docker debug docker_lamp_1\n Learn more at https://docs.docker.com/go/debug-cli/\ndocker exec -it docker_lamp_1 supervisorctl restart all\njiminny-worker-processing-2:jiminny-worker-processing-2_00: stopped\njiminny-worker-processing-3:jiminny-worker-processing-3_00: stopped\njiminny-worker-processing-4:jiminny-worker-processing-4_00: stopped\njiminny-worker-processing-5:jiminny-worker-processing-5_00: stopped\njiminny-worker-processing-delayed:jiminny-worker-processing-delayed_00: stopped\nworker-analytics:worker-analytics_00: stopped\nworker-crm-update:worker-crm-update_00: stopped\nworker-download:worker-download_00: stopped\nworker-nudges:worker-nudges_00: stopped\nworker-calendar:worker-calendar_00: stopped\nworker-audio:worker-audio_00: stopped\njiminny-worker-processing-1:jiminny-worker-processing-1_00: stopped\nworker:worker_00: stopped\nworker-conferences:worker-conferences_00: stopped\nworker-crm-sync:worker-crm-sync_00: stopped\nworker-emails:worker-emails_00: stopped\nworker-es-update:worker-es-update_00: stopped\nartisan-schedule:artisan-schedule_00: stopped\nartisan-schedule:artisan-schedule_00: started\njiminny-worker-processing-1:jiminny-worker-processing-1_00: started\njiminny-worker-processing-2:jiminny-worker-processing-2_00: started\njiminny-worker-processing-3:jiminny-worker-processing-3_00: started\njiminny-worker-processing-4:jiminny-worker-processing-4_00: started\njiminny-worker-processing-5:jiminny-worker-processing-5_00: started\njiminny-worker-processing-delayed:jiminny-worker-processing-delayed_00: started\nworker:worker_00: started\nworker-analytics:worker-analytics_00: started\nworker-audio:worker-audio_00: started\nworker-calendar:worker-calendar_00: started\nworker-conferences:worker-conferences_00: started\nworker-crm-sync:worker-crm-sync_00: started\nworker-crm-update:worker-crm-update_00: started\nworker-download:worker-download_00: started\nworker-emails:worker-emails_00: started\nworker-es-update:worker-es-update_00: started\nworker-nudges:worker-nudges_00: started\n\nWhat's next:\n Try Docker Debug for seamless, persistent debugging tools in any container or image → docker debug docker_lamp_1\n Learn more at https://docs.docker.com/go/debug-cli/\ndocker exec -it docker_lamp_1 php -v\nPHP 8.3.30 (cli) (built: Mar 16 2026 22:32:32) (NTS)\nCopyright (c) The PHP Group\nZend Engine v4.3.30, Copyright (c) Zend Technologies\n with Zend OPcache v8.3.30, Copyright (c), by Zend Technologies\n\nWhat's next:\n Try Docker Debug for seamless, persistent debugging tools in any container or image → docker debug docker_lamp_1\n Learn more at https://docs.docker.com/go/debug-cli/\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20676-delete-report-related-objects) $ git status\nOn branch JY-20676-delete-report-related-objects\nChanges not staged for commit:\n (use \"git add <file>...\" to update what will be committed)\n (use \"git restore <file>...\" to discard changes in working directory)\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tmodified: .env.local\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tmodified: app/Console/Commands/JiminnyDebugCommand.php\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tmodified: config/logging.php\n\nUntracked files:\n (use \"git add <file>...\" to include in what will be committed)\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\t.env.nikilocal\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\t.env.other\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tWEBHOOK_FILTERING_IMPLEMENTATION.md\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tapp/Console/Commands/Crm/Hubspot/SimulateWebhooksCommand.php\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tapp/Console/Commands/Reports/CreateMockAskJiminnyReportResultCommand.php\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tids.txt\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tpublic/favicon.ico\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\traw_sql_query.sql\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\ttests/Unit/Policies/CanAccessAiReportsTest.php\n\nno changes added to commit (use \"git add\" and/or \"git commit -a\")\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20676-delete-report-related-objects) $ git push -u origin JY-20676-delete-report-related-objects\nEnumerating objects: 45, done.\nCounting objects: 100% (45/45), done.\nDelta compression using up to 8 threads\nCompressing objects: 100% (24/24), done.\nWriting objects: 100% (24/24), 3.62 KiB | 3.62 MiB/s, done.\nTotal 24 (delta 19), reused 0 (delta 0), pack-reused 0\nremote: Resolving deltas: 100% (19/19), completed with 19 local objects.\nremote: \nremote: Create a pull request for 'JY-20676-delete-report-related-objects' on GitHub by visiting:\nremote: https://github.com/jiminny/app/pull/new/JY-20676-delete-report-related-objects\nremote: \nTo github.com:jiminny/app.git\n * [new branch] JY-20676-delete-report-related-objects -> JY-20676-delete-report-related-objects\nbranch 'JY-20676-delete-report-related-objects' set up to track 'origin/JY-20676-delete-report-related-objects'.\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20676-delete-report-related-objects) $ csfix\ndocker exec -it docker_lamp_1 ./vendor/bin/php-cs-fixer fix --config=.php-cs-fixer.dist.php -v --using-cache=no --diff \nPHP CS Fixer 3.87.1 Alexander by Fabien Potencier, Dariusz Ruminski and contributors.\nPHP runtime: 8.3.30\nRunning analysis on 7 cores with 10 files per process.\nParallel runner is an experimental feature and may be unstable, use it at your own risk. Feedback highly appreciated!\nLoaded config default from \".php-cs-fixer.dist.php\".\n 5690/5690 [▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓] 100%\n\n 1) app/Http/Controllers/API/V2/AskJiminnyReportsController.php (blank_line_before_statement)\n ---------- begin diff ----------\n--- /home/jiminny/app/Http/Controllers/API/V2/AskJiminnyReportsController.php\n+++ /home/jiminny/app/Http/Controllers/API/V2/AskJiminnyReportsController.php\n@@ -140,6 +140,7 @@\n if ($enabled && $report->isAskJiminnyReport() && ! $report->canExecute()) {\n $error = 'This report is missing a saved search or prompt. ' .\n 'Edit the report to complete the setup before enabling it.';\n+\n return new JsonResponse(\n ['error' => $error],\n Response::HTTP_UNPROCESSABLE_ENTITY\n\n ----------- end diff -----------\n\n\nFixed 1 of 5690 files in 71.757 seconds, 60.00 MB memory used\n\nWhat's next:\n Try Docker Debug for seamless, persistent debugging tools in any container or image → docker debug docker_lamp_1\n Learn more at https://docs.docker.com/go/debug-cli/\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20676-delete-report-related-objects) $ git pull\nremote: Enumerating objects: 158, done.\nremote: Counting objects: 100% (103/103), done.\nremote: Compressing objects: 100% (37/37), done.\nremote: Total 158 (delta 80), reused 74 (delta 66), pack-reused 55 (from 3)\nReceiving objects: 100% (158/158), 80.59 KiB | 982.00 KiB/s, done.\nResolving deltas: 100% (85/85), completed with 45 local objects.\nFrom github.com:jiminny/app\n 02a33811ee..c6ce5e2440 JY-20676-delete-report-related-objects -> origin/JY-20676-delete-report-related-objects\n 7ce96cb5fe..6c59f04358 JY-20808-low-priority-indexing-queue -> origin/JY-20808-low-priority-indexing-queue\n 3906a9238a..2b5e6ea62b JY-20835-mcp-enable-users-to-get-a-list-of-deals-and-their-details -> origin/JY-20835-mcp-enable-users-to-get-a-list-of-deals-and-their-details\n 5604af40cf..ea3519f0e2 master -> origin/master\n * [new branch] switch-eu-assembly -> origin/switch-eu-assembly\nUpdating 02a33811ee..c6ce5e2440\nFast-forward\n app/Component/ES/ElasticSearchDocumentPartialUpdater.php | 48 ---\n app/Component/ParticipantSpeech/Services/ParticipantAttributionService.php | 4 +-\n app/Component/Settings/AutoScoring/Services/UpdateAutoScoreService.php | 20 +-\n app/Component/Transcription/Service/StorageService.php | 8 +-\n front-end/package.json | 2 +-\n front-end/src/components/DealInsights/Modals/AskAnythingModal.vue | 23 ++\n front-end/src/components/shared/AskAnything/AskAnythingPromptFormItem.vue | 2 +\n front-end/src/components/shared/AskAnything/AskAnythingSettingsDrawer.vue | 23 +-\n front-end/src/components/shared/AskAnything/__mocks__/AskAnythingSettingsDrawer.mocks.js | 1 +\n front-end/src/components/shared/AskAnything/__tests__/AskAnythingSettingsDrawer.spec.js | 135 ++++---\n front-end/src/components/shared/AskAnything/__tests__/__snapshots__/AskAnythingSettingsDrawer.spec.js.html | 1235 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++\n front-end/src/components/shared/AskAnything/__tests__/__snapshots__/AskAnythingSettingsDrawer.spec.js.snap | 1382 ----------------------------------------------------------------\n front-end/src/components/shared/AskAnything/prompts.js | 1 +\n front-end/src/components/shared/AskAnything/useAskAnything.js | 1 +\n front-end/yarn.lock | 8 +-\n tests/Unit/Component/ES/ElasticSearchDocumentPartialUpdaterTest.php | 42 --\n tests/Unit/Component/Settings/AutoScoring/Services/UpdateAutoScoreServiceTest.php | 86 ++--\n tests/Unit/Component/Transcription/Service/StorageServiceTest.php | 29 +-\n 18 files changed, 1448 insertions(+), 1602 deletions(-)\n delete mode 100644 app/Component/ES/ElasticSearchDocumentPartialUpdater.php\n create mode 100644 front-end/src/components/shared/AskAnything/__tests__/__snapshots__/AskAnythingSettingsDrawer.spec.js.html\n delete mode 100644 front-end/src/components/shared/AskAnything/__tests__/__snapshots__/AskAnythingSettingsDrawer.spec.js.snap\n delete mode 100644 tests/Unit/Component/ES/ElasticSearchDocumentPartialUpdaterTest.php\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20676-delete-report-related-objects) $ csfix\ndocker exec -it docker_lamp_1 ./vendor/bin/php-cs-fixer fix --config=.php-cs-fixer.dist.php -v --using-cache=no --diff \nPHP CS Fixer 3.87.1 Alexander by Fabien Potencier, Dariusz Ruminski and contributors.\nPHP runtime: 8.3.30\nRunning analysis on 7 cores with 10 files per process.\nParallel runner is an experimental feature and may be unstable, use it at your own risk. Feedback highly appreciated!\nLoaded config default from \".php-cs-fixer.dist.php\".\n 5688/5688 [▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓] 100%\n\n\nFixed 0 of 5688 files in 79.904 seconds, 60.00 MB memory used\n\nWhat's next:\n Try Docker Debug for seamless, persistent debugging tools in any container or image → docker debug docker_lamp_1\n Learn more at https://docs.docker.com/go/debug-cli/\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20676-delete-report-related-objects) $","depth":4,"on_screen":true,"value":"Last login: Mon May 18 09:17:28 on ttys007\n\nPoetry could not find a pyproject.toml file in /Users/lukas/jiminny/app or its parents\n\nPoetry could not find a pyproject.toml file in /Users/lukas/jiminny/app or its parents\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (pipedrive-sdk-poc) $ co master\nerror: Your local changes to the following files would be overwritten by checkout:\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tPIPEDRIVE_V2_MIGRATION_TICKETS.md\nPlease commit your changes or stash them before you switch branches.\nAborting\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (pipedrive-sdk-poc) $ git pull\nremote: Enumerating objects: 1047, done.\nremote: Counting objects: 100% (832/832), done.\nremote: Compressing objects: 100% (298/298), done.\nremote: Total 1047 (delta 634), reused 596 (delta 534), pack-reused 215 (from 3)\nReceiving objects: 100% (1047/1047), 353.16 KiB | 1.56 MiB/s, done.\nResolving deltas: 100% (687/687), completed with 107 local objects.\nFrom github.com:jiminny/app\n 907c54896c..34656c53ed pipedrive-sdk-poc -> origin/pipedrive-sdk-poc\n 03325ec50f..4e7078fd8b JY-18091-upgrade-to-php-8-5 -> origin/JY-18091-upgrade-to-php-8-5\n e7d231e163..bc6a3fce6b JY-20725-handle-HS-search-rate-limit -> origin/JY-20725-handle-HS-search-rate-limit\n * [new branch] JY-20749-user-can-view-recorded-meetings -> origin/JY-20749-user-can-view-recorded-meetings\n 98ca281a04..e0351be069 JY-20808-low-priority-indexing-queue -> origin/JY-20808-low-priority-indexing-queue\n 569abb5149..3906a9238a JY-20835-mcp-enable-users-to-get-a-list-of-deals-and-their-details -> origin/JY-20835-mcp-enable-users-to-get-a-list-of-deals-and-their-details\n ad6c2a86e8..50eb6afba9 JY-20846-mcp-enable-the-ai-to-know-details-about-the-user -> origin/JY-20846-mcp-enable-the-ai-to-know-details-about-the-user\n * [new branch] JY-20893-chunk-control-per-update-target -> origin/JY-20893-chunk-control-per-update-target\n 31c62924a5..cb4ebf0c36 master -> origin/master\nUpdating 907c54896c..34656c53ed\nFast-forward\n PIPEDRIVE_V2_MIGRATION_TICKETS.md | 52 ++++++++++++++++++++++++++++++++++++++++++++++++++++\n 1 file changed, 52 insertions(+)\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (pipedrive-sdk-poc) $ co master\nM\u0000\u0000\u0000\u0000\u0000\u0000\t.env.local\nM\u0000\u0000\u0000\u0000\u0000\u0000\tconfig/logging.php\nSwitched to branch 'master'\nYour branch is behind 'origin/master' by 31 commits, and can be fast-forwarded.\n (use \"git pull\" to update your local branch)\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (master) $ git pull\nUpdating 31c62924a5..cb4ebf0c36\nFast-forward\n app/Component/ES/Processor/Traits/SelectEntityListTrait.php | 20 ------\n app/Services/Calendar/CalendarActivityService.php | 46 +++++++++++++\n app/Services/Calendar/Command/MapActivityData.php | 106 +++-------------------------\n docs/mcp/explorer/explorer.html | 104 +++++++++++++++++++++++++---\n docs/mcp/explorer/explorer.template.html | 102 ++++++++++++++++++++++++---\n docs/mcp/tools-list.json | 373 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++-------\n docs/mcp/tools.md | 117 +++++++++++++++++++++++--------\n tests/Unit/Component/ES/AsyncUpdateElasticSearchTest.php | 16 +----\n tests/Unit/Component/ES/Listeners/UpdateMultipleTargetsListenerTest.php | 10 ---\n tests/Unit/Component/ES/Listeners/UpdateSingleTargetListenerTest.php | 6 --\n tests/Unit/Component/ES/Processor/TargetEntitiesSelectorTest.php | 9 ---\n tests/Unit/Component/ES/Processor/Traits/SelectEntityListTraitTest.php | 15 ++--\n tests/Unit/Component/ES/UpdateProcessManagerTest.php | 2 -\n tests/Unit/Services/Calendar/CalendarActivityServiceTest.php | 150 ++++++++++++++++++++++++++++++++++++++--\n tests/Unit/Services/Calendar/Command/MapActivityDataTest.php | 78 ++-------------------\n 15 files changed, 832 insertions(+), 322 deletions(-)\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (master) $ co -b JY-20613-allow-owner-role-on-team-setup\nSwitched to a new branch 'JY-20613-allow-owner-role-on-team-setup'\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20613-allow-owner-role-on-team-setup) $ csfix\ndocker exec -it docker_lamp_1 ./vendor/bin/php-cs-fixer fix --config=.php-cs-fixer.dist.php -v --using-cache=no --diff \nPHP CS Fixer 3.87.1 Alexander by Fabien Potencier, Dariusz Ruminski and contributors.\nPHP runtime: 8.3.30\nRunning analysis on 7 cores with 10 files per process.\nParallel runner is an experimental feature and may be unstable, use it at your own risk. Feedback highly appreciated!\nLoaded config default from \".php-cs-fixer.dist.php\".\n 5682/5682 [▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓] 100%\n\n\nFixed 0 of 5682 files in 56.978 seconds, 67.00 MB memory used\n\nWhat's next:\n Try Docker Debug for seamless, persistent debugging tools in any container or image → docker debug docker_lamp_1\n Learn more at https://docs.docker.com/go/debug-cli/\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20613-allow-owner-role-on-team-setup) $ ;xd\ndocker exec -it docker_lamp_1 bash -c \"mv /usr/local/etc/php/conf.d/xdebug.ini ~/xdebug.ini\"\n\nWhat's next:\n Try Docker Debug for seamless, persistent debugging tools in any container or image → docker debug docker_lamp_1\n Learn more at https://docs.docker.com/go/debug-cli/\ndocker exec -it docker_lamp_1 supervisorctl restart all\njiminny-worker-processing-2:jiminny-worker-processing-2_00: stopped\njiminny-worker-processing-3:jiminny-worker-processing-3_00: stopped\njiminny-worker-processing-4:jiminny-worker-processing-4_00: stopped\njiminny-worker-processing-5:jiminny-worker-processing-5_00: stopped\njiminny-worker-processing-delayed:jiminny-worker-processing-delayed_00: stopped\nworker-analytics:worker-analytics_00: stopped\nworker-crm-update:worker-crm-update_00: stopped\nworker-download:worker-download_00: stopped\nworker-nudges:worker-nudges_00: stopped\nartisan-schedule:artisan-schedule_00: stopped\nworker-emails:worker-emails_00: stopped\nworker-calendar:worker-calendar_00: stopped\nworker:worker_00: stopped\nworker-conferences:worker-conferences_00: stopped\nworker-crm-sync:worker-crm-sync_00: stopped\njiminny-worker-processing-1:jiminny-worker-processing-1_00: stopped\nworker-audio:worker-audio_00: stopped\nworker-es-update:worker-es-update_00: stopped\nartisan-schedule:artisan-schedule_00: started\njiminny-worker-processing-1:jiminny-worker-processing-1_00: started\njiminny-worker-processing-2:jiminny-worker-processing-2_00: started\njiminny-worker-processing-3:jiminny-worker-processing-3_00: started\njiminny-worker-processing-4:jiminny-worker-processing-4_00: started\njiminny-worker-processing-5:jiminny-worker-processing-5_00: started\njiminny-worker-processing-delayed:jiminny-worker-processing-delayed_00: started\nworker:worker_00: started\nworker-analytics:worker-analytics_00: started\nworker-audio:worker-audio_00: started\nworker-calendar:worker-calendar_00: started\nworker-conferences:worker-conferences_00: started\nworker-crm-sync:worker-crm-sync_00: started\nworker-crm-update:worker-crm-update_00: started\nworker-download:worker-download_00: started\nworker-emails:worker-emails_00: started\nworker-es-update:worker-es-update_00: started\nworker-nudges:worker-nudges_00: started\n\nWhat's next:\n Try Docker Debug for seamless, persistent debugging tools in any container or image → docker debug docker_lamp_1\n Learn more at https://docs.docker.com/go/debug-cli/\ndocker exec -it docker_lamp_1 php -v\nPHP 8.3.30 (cli) (built: Mar 16 2026 22:32:32) (NTS)\nCopyright (c) The PHP Group\nZend Engine v4.3.30, Copyright (c) Zend Technologies\n with Zend OPcache v8.3.30, Copyright (c), by Zend Technologies\n\nWhat's next:\n Try Docker Debug for seamless, persistent debugging tools in any container or image → docker debug docker_lamp_1\n Learn more at https://docs.docker.com/go/debug-cli/\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20613-allow-owner-role-on-team-setup) $ csfix\ndocker exec -it docker_lamp_1 ./vendor/bin/php-cs-fixer fix --config=.php-cs-fixer.dist.php -v --using-cache=no --diff \nPHP CS Fixer 3.87.1 Alexander by Fabien Potencier, Dariusz Ruminski and contributors.\nPHP runtime: 8.3.30\nRunning analysis on 7 cores with 10 files per process.\nParallel runner is an experimental feature and may be unstable, use it at your own risk. Feedback highly appreciated!\nLoaded config default from \".php-cs-fixer.dist.php\".\n 5682/5682 [▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓] 100%\n\n\nFixed 0 of 5682 files in 49.910 seconds, 60.00 MB memory used\n\nWhat's next:\n Try Docker Debug for seamless, persistent debugging tools in any container or image → docker debug docker_lamp_1\n Learn more at https://docs.docker.com/go/debug-cli/\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20613-allow-owner-role-on-team-setup) $ git status\nOn branch JY-20613-allow-owner-role-on-team-setup\nYour branch is ahead of 'origin/JY-20613-allow-owner-role-on-team-setup' by 1 commit.\n (use \"git push\" to publish your local commits)\n\nChanges not staged for commit:\n (use \"git add <file>...\" to update what will be committed)\n (use \"git restore <file>...\" to discard changes in working directory)\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tmodified: .env.local\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tmodified: config/logging.php\n\nUntracked files:\n (use \"git add <file>...\" to include in what will be committed)\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\t.env.nikilocal\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\t.env.other\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tWEBHOOK_FILTERING_IMPLEMENTATION.md\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tapp/Console/Commands/Crm/Hubspot/SimulateWebhooksCommand.php\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tapp/Console/Commands/Reports/CreateMockAskJiminnyReportResultCommand.php\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tids.txt\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tpublic/favicon.ico\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\traw_sql_query.sql\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\ttests/Unit/Policies/CanAccessAiReportsTest.php\n\nno changes added to commit (use \"git add\" and/or \"git commit -a\")\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20613-allow-owner-role-on-team-setup) $ git pull\nremote: Enumerating objects: 248, done.\nremote: Counting objects: 100% (128/128), done.\nremote: Compressing objects: 100% (23/23), done.\nremote: Total 59 (delta 43), reused 44 (delta 33), pack-reused 0 (from 0)\nUnpacking objects: 100% (59/59), 10.48 KiB | 228.00 KiB/s, done.\nFrom github.com:jiminny/app\n b7df560451..190239dfd4 JY-20613-allow-owner-role-on-team-setup -> origin/JY-20613-allow-owner-role-on-team-setup\n e0351be069..d94a285ae7 JY-20808-low-priority-indexing-queue -> origin/JY-20808-low-priority-indexing-queue\n * [new branch] JY-20920-fix-participant-matcher -> origin/JY-20920-fix-participant-matcher\n cb4ebf0c36..90bca4e4b2 master -> origin/master\nMerge made by the 'ort' strategy.\n app/Component/ES/ChunkSize.php | 54 +++++++++++++++++++++++++++\n app/Component/ES/Processor/DTOs/SelectionList.php | 4 +-\n app/Component/ES/Processor/TargetEntitiesSelector.php | 19 ++++++----\n app/Http/Middleware/McpTierMiddleware.php | 27 +++-----------\n app/Mcp/Servers/JiminnyServer.php | 2 +\n app/Mcp/Tools/GetMeTool.php | 157 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++\n app/Models/Feature/FeatureEnum.php | 1 +\n database/migrations/2026_05_13_124153_create_mcp_feature_flag.php | 25 +++++++++++++\n front-end/src/components/Settings/Kiosk/modals/EditTeamModal/EditTeamModal.vue | 52 ++++++++++++++++++--------\n front-end/src/components/Settings/Kiosk/modals/EditTeamModal/__tests__/EditTeamModal.spec.js | 14 +++++++\n tests/Feature/Mcp/GetMeToolFeatureTest.php | 140 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++\n tests/Feature/Mcp/ListCallsToolFeatureTest.php | 2 +-\n tests/Feature/Mcp/McpTestHelpersTrait.php | 19 +++++++++-\n tests/Unit/Component/ES/ChunkSizeTest.php | 50 +++++++++++++++++++++++++\n tests/Unit/Component/ES/Processor/DTOs/SelectionListTest.php | 27 ++++++++++----\n tests/Unit/Component/ES/Processor/TargetEntitiesSelectorTest.php | 39 +++++++++++---------\n 16 files changed, 557 insertions(+), 75 deletions(-)\n create mode 100644 app/Component/ES/ChunkSize.php\n create mode 100644 app/Mcp/Tools/GetMeTool.php\n create mode 100644 database/migrations/2026_05_13_124153_create_mcp_feature_flag.php\n create mode 100644 tests/Feature/Mcp/GetMeToolFeatureTest.php\n create mode 100644 tests/Unit/Component/ES/ChunkSizeTest.php\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20613-allow-owner-role-on-team-setup) $ git push\nEnumerating objects: 40, done.\nCounting objects: 100% (34/34), done.\nDelta compression using up to 8 threads\nCompressing objects: 100% (18/18), done.\nWriting objects: 100% (18/18), 1.58 KiB | 1.58 MiB/s, done.\nTotal 18 (delta 15), reused 0 (delta 0), pack-reused 0\nremote: Resolving deltas: 100% (15/15), completed with 13 local objects.\nTo github.com:jiminny/app.git\n 190239dfd4..ec1b261264 JY-20613-allow-owner-role-on-team-setup -> JY-20613-allow-owner-role-on-team-setup\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20613-allow-owner-role-on-team-setup) $ gbr\n* JY-20613-allow-owner-role-on-team-setup\n pipedrive-sdk-poc\n master\n JY-20903-update_activity-stage-on-opportunity-change\n JY-20904-fix-update-es-on-activity-command\n JY-20891-improve-sms-text-relays\n JY-20725-handle-HS-search-rate-limit\n JY-20818-move-AJ-reports-to-separated-datadog-metric\n JY-20773-fix-automated-reports-user-pilot-tracking\n JY-20157-AJ-report-not-send-notification\n JY-20508-notify-before-AJ-report-expiration\n JY-20372-ai-reports-promotion-pages\n JY-20352-sync-opportunities-without-a-local-owner-user-id-is-null\n JY-20738-debug-AJ-tracking-UP\n a\n JY-18909-automated-reports-ask-jiminny\n JY-20692-fix-integration-app-token-auth-response-change\n JY-20553-debug-crm-sync-delays\n JY-20698-fix-SF-activity-types-on-new-playbook\n JY-20543-AJ-report-tracking\n JY-20384-handle-auto-sync-with-no-access-to-event-type\n JY-20458-ask-jiminny-user-definitions\n JY-19666-fix-import-contacts-account-association\n JY-19666-HS-import-contacts-and-accounts-batch-job\n JY-20458-Ask-Jiminny-Reports\n JY-20200-batch-update-CRM-objects-Salesforce\n JY-19666-HS-webhooks-add-contact-and-company\n JY-20348-trigger-setup-DI-layout-on-team-creation\n JY-20326-refactor-info-message-in-command\n JY-20317-fix-auto-log-delay-issue-on-all-channels-disabled\n JY-20312-remove-on-update-change-last-synced-at-crm-configurations\n JY-20306-SF-skip-auto-sync-for-task-based-playbook\n JY-20192-remove-deleted-team-from-saved-search-filters\n JY-20197-import-opportunity-batch-job\n JY-20293-enable-status-field-for-pipedrive-deals\n JY-20191-remove-commands-interactive-prompts\n JY-20118-change-default-sync-strategy\n JY-20183-add-cache-on-auto-log-delay\n JY-20197-add-import-opportunity-batch-job\n 20118-hs-opportunity-make-webhook-strategy-default\n JY-20118-make-default-hs-opportunity-sync-strategy-webhook-based\n JY-20196-handle-opportunity-without-note\n JY-20118-improve-opportunity-import\n JY-20189-handle-activity-search-on-deleted-groups\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20613-allow-owner-role-on-team-setup) $ co JY-20725-handle-HS-search-rate-limit\nM\u0000\u0000\u0000\u0000\u0000\u0000\t.env.local\nM\u0000\u0000\u0000\u0000\u0000\u0000\tconfig/logging.php\nSwitched to branch 'JY-20725-handle-HS-search-rate-limit'\nYour branch is behind 'origin/JY-20725-handle-HS-search-rate-limit' by 439 commits, and can be fast-forwarded.\n (use \"git pull\" to update your local branch)\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20725-handle-HS-search-rate-limit) $ git pull\nUpdating 0f3e438941..bc6a3fce6b\nFast-forward\n .gitignore | 3 +-\n .windsurfrules | 168 ++---\n CLAUDE.md | 1 +\n app/Component/ActivityAnalytics/Service/CalculateTalkTimeOffsetsFromTranscription.php | 24 +-\n app/Component/AiActivityType/Services/AiActivityTypeEligibilityChecker.php | 28 +-\n app/Component/AiAutomation/Actions/PrepareUpdateDtoAction.php | 32 +-\n app/Component/AiAutomation/Services/CrmFillingEligibilityChecker.php | 47 ++\n app/Component/AiAutomation/TestCrmAiPromptService.php | 14 +\n app/Component/AiCallScoring/Services/AiCallScoringEligibilityChecker.php | 9 +\n app/Component/ES/ElasticSearchDocumentPartialUpdater.php | 13 +-\n app/Component/ES/ElasticSearchWorkerManager.php | 86 ---\n app/Component/ES/Processor/Actions/LoadDocumentsAction.php | 80 +--\n app/Component/ES/Processor/EntityQueryBuilder.php | 12 +-\n app/Component/ES/Processor/TargetEntitiesSelector.php | 2 +-\n app/Component/ES/Processor/Traits/SkipActivityTrait.php | 25 -\n app/Component/ES/Repositories/EsResetActivityRepository.php | 11 +-\n app/Component/ES/Worker/ActivityWorker.php | 73 --\n app/Component/ES/Worker/EntityWorker.php | 44 --\n app/Component/ES/Worker/WorkerAmount.php | 60 --\n app/Component/ES/Worker/WorkerInterface.php | 15 -\n app/Component/ElasticSearch/Contract/Searchable.php | 4 +\n app/Component/Encoding/Job/AnalyzeTrackChannelsJob.php | 20 +-\n app/Component/Encoding/Service/GenerateSpeechFromSilenceService.php | 85 ++-\n app/Component/FFMpeg/Services/GetSpeechIntervalsService.php | 18 +-\n app/Component/LanguageDetection/Services/FindSpeechTimeService.php | 22 +-\n app/Component/Nudge/Job/ProcessOrganisationImmediateNudgesJob.php | 218 +++++-\n app/Component/ParagraphBreaker/Services/TranscriptionParagraphsService.php | 4 +\n app/Component/ParticipantSpeech/Services/ParticipantSpeechesCreator.php | 33 +\n app/Component/ParticipantSpeech/Services/ParticipantSpeechesDeleter.php | 15 +\n app/Component/ParticipantSpeech/Services/ParticipantSpeechesProvider.php | 51 +-\n app/Component/ParticipantSpeech/Services/ParticipantSpeechesUploader.php | 36 +\n app/Component/ProphetAi/Exceptions/InsufficientTranscriptException.php | 11 +\n app/Component/Transcription/DTO/Http/Transcription/AssemblyAI/AssemblyAI/NoAssemblyIdException.php | 11 +\n app/Component/Transcription/DTO/Http/Transcription/AssemblyAI/AssemblyAI/SuccessfulResponse.php | 6 +\n app/Component/Transcription/DTO/Http/Transcription/TranscriptionIsNotCorrectFormatException.php | 11 +\n app/Component/Transcription/Diarization/Services/GetNormalizedParticipantSpeechesService.php | 23 +-\n app/Component/Transcription/Diarization/Source/MeetingBotSource.php | 16 +-\n app/Component/Transcription/TranscriptionProcessor/TranscriptionProcessor.php | 3 +\n app/Console/Commands/Activities/ActivityHardDeleteCommand.php | 4 +-\n app/Console/Commands/Activities/Copy.php | 2 +\n app/Console/Commands/Activities/SetupIntegration/TwilioSetS3RecordingCredentialsCommand.php | 119 ++++\n app/Console/Commands/Activities/UpdateActivityElasticSearchDocumentCommand.php | 10 +-\n app/Console/Commands/Crm/BackfillOpportunityUserFromAccountCommand.php | 126 ++++\n app/Console/Commands/Elasticsearch/AsyncUpdateEsActivities.php | 19 -\n app/Console/Commands/Elasticsearch/AsyncUpdateEsEntities.php | 50 +-\n app/Console/Commands/Elasticsearch/ResetAsyncElasticSearchCommand.php | 30 +-\n app/Console/Commands/GeckoExport/GeckoExportParticipantSpeechesCommand.php | 14 +-\n app/Console/Commands/IssueMcpTokenCommand.php | 84 +++\n app/Console/Commands/JiminnyDebugCommand.php | 7 +-\n app/Console/Commands/Tracks/CleanupActivityTracksCommand.php | 2 +-\n app/Console/Kernel.php | 6 +-\n app/Contracts/Services/Calendar/CalendarTrait.php | 80 ++-\n app/Events/AutomatedReports/AutomatedReportGenerated.php | 3 +\n app/Http/Controllers/API/AiCallScoring/AiScorecardController.php | 7 +-\n app/Http/Controllers/API/TeamAiAutomationController.php | 8 +\n app/Http/Controllers/CustomerApi/CustomerApiController.php | 4 +-\n app/Http/Controllers/Kiosk/ActivityController.php | 58 +-\n app/Http/Controllers/Settings/PlaybookController.php | 15 +-\n app/Http/Kernel.php | 23 +\n app/Http/Middleware/McpAuditMiddleware.php | 156 ++++\n app/Http/Middleware/McpTierMiddleware.php | 54 ++\n app/Http/Requests/API/V2/ZapierUploadActivityRequest.php | 28 +-\n app/Jobs/Activity/Import/ImportTwilioVideoSpeechesJob.php | 25 +-\n app/Jobs/Activity/Import/IsActivityReadyForProcessingJob.php | 10 +-\n app/Jobs/Calendar/SetupCalendarSync.php | 21 +-\n app/Jobs/ImportRemoteTrackJob.php | 96 ++-\n app/Jobs/Mailbox/EmailTextRelay.php | 15 +-\n app/Mcp/Contracts/McpCallRepositoryInterface.php | 30 +\n app/Mcp/DTO/ListCallsFilters.php | 29 +\n app/Mcp/Errors/McpError.php | 123 ++++\n app/Mcp/Repositories/McpActivityHydrator.php | 145 ++++\n app/Mcp/Repositories/McpCallRepository.php | 84 +++\n app/Mcp/Repositories/McpElasticCallRepository.php | 171 +++++\n app/Mcp/Servers/JiminnyServer.php | 38 +\n app/Mcp/Tools/ListCallsTool.php | 205 ++++++\n app/Models/Activity.php | 10 +-\n app/Models/Activity/Transcription.php | 17 +-\n app/Models/ElasticSearch/OpportunityElasticSearchTrait.php | 5 +\n app/Models/Participant.php | 1 +\n app/Providers/AppServiceProvider.php | 22 +\n app/Repositories/Crm/ContactRepository.php | 69 +-\n app/Repositories/ParticipantSpeechRepository.php | 13 +-\n app/Services/Activity/ParticipantsService.php | 19 +-\n app/Services/Activity/Twilio/S3RecordingCredentialsService.php | 82 +++\n app/Services/ActivityService.php | 21 +-\n app/Services/Calendar/CalendarActivityService.php | 46 ++\n app/Services/Calendar/Command/ImportParticipants.php | 1 +\n app/Services/Calendar/Command/MapActivityData.php | 106 +--\n app/Services/Calendar/GoogleCalendarService.php | 12 +-\n app/Services/Crm/Close/Processor/OpportunityProcessor.php | 2 +-\n app/Services/Crm/Close/Service.php | 22 +-\n app/Services/Crm/Copper/Service.php | 12 +-\n app/Services/Crm/Hubspot/Service.php | 154 +++-\n app/Services/Crm/Hubspot/ServiceTraits/OpportunitySyncTrait.php | 88 ++-\n app/Services/Crm/IntegrationApp/ServiceTraits/SyncCrmEntitiesTrait.php | 22 +-\n app/Services/Crm/Pipedrive/Service.php | 17 +-\n app/Services/Crm/Salesforce/Service.php | 42 +-\n app/Services/Mail/Office/EmailApiClient.php | 129 +---\n app/Services/RecallAI/Commands/ScheduleBotCommand.php | 39 +-\n app/Services/RecallAI/RecallAIService.php | 22 +-\n composer.json | 3 +-\n composer.lock | 87 ++-\n config/mcp.php | 23 +\n database/migrations/2026_04_30_120000_create_mcp_audit_log_table.php | 36 +\n docs/mcp/explorer/explorer.html | 697 ++++++++++++++++++\n docs/mcp/explorer/explorer.template.html | 697 ++++++++++++++++++\n docs/mcp/explorer/generate.js | 215 ++++++\n docs/mcp/explorer/tool-explorer-meta.json | 11 +\n docs/mcp/tools-list.json | 2536 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++\n docs/mcp/tools.md | 621 ++++++++++++++++\n front-end/package.json | 4 +-\n front-end/src/components/Settings/OrgSettings/AiAutomation/CrmFilling/TemplateFieldForm.vue | 28 +-\n front-end/src/components/Settings/OrgSettings/Playbooks/AddEditPlaybook.vue | 10 +\n front-end/src/components/playback/comments/ActivityComment.less | 10 +-\n front-end/src/components/shared/PromptTester/PromptTester.vue | 12 +-\n front-end/src/components/shared/__tests__/PromptTester.spec.js | 35 +\n front-end/src/components/shared/modals/EntityPickerModal/__tests__/useEntitiesCache.spec.ts | 37 +\n front-end/src/components/shared/modals/EntityPickerModal/useEntitiesCache.ts | 9 +\n front-end/yarn.lock | 16 +-\n phpstan-baseline.neon | 50 --\n routes/api.php | 11 +\n sonar-project.properties | 91 ++-\n tests/Feature/Component/Nudge/ProcessOrganisationImmediateNudgesJobTest.php | 534 ++++++++++++++\n tests/Feature/Jobs/ImportRemoteTrackJobTest.php | 283 +++++++-\n tests/Feature/Mcp/IssueMcpTokenCommandTest.php | 53 ++\n tests/Feature/Mcp/ListCallsToolElasticFeatureTest.php | 155 ++++\n tests/Feature/Mcp/ListCallsToolFeatureTest.php | 352 ++++++++++\n tests/Feature/Mcp/McpTestHelpersTrait.php | 77 ++\n tests/Feature/Services/Team/TeamDeleteHandlers/Retention/RetentionRepositoryHandlerTest.php | 1 +\n tests/Stubs/SentryStub.php | 18 +\n tests/Unit/Component/ActivityAnalytics/Service/CalculateTalkTimeOffsetFromTranscriptionTest.php | 28 +-\n tests/Unit/Component/AiActivityType/Services/AiActivityTypeEligibilityCheckerTest.php | 103 ++-\n tests/Unit/Component/AiAutomation/Actions/PrepareUpdateDtoActionTest.php | 91 +++\n tests/Unit/Component/AiAutomation/Services/CrmFillingEligibilityCheckerTest.php | 124 ++++\n tests/Unit/Component/AiAutomation/TestCrmAiPromptServiceTest.php | 67 +-\n tests/Unit/Component/AiCallScoring/Services/AiCallScoringEligibilityCheckerTest.php | 55 ++\n tests/Unit/Component/ES/ElasticSearchWorkerManagerTest.php | 135 ----\n tests/Unit/Component/ES/Processor/Actions/LoadDocumentsActionTest.php | 220 ++++++\n tests/Unit/Component/ES/Processor/EntityQueryBuilderTest.php | 21 +-\n tests/Unit/Component/ES/Processor/Traits/SkipActivityTraitTest.php | 51 --\n tests/Unit/Component/ES/Worker/ActivityWorkerTest.php | 174 -----\n tests/Unit/Component/ES/Worker/EntityWorkerTest.php | 97 ---\n tests/Unit/Component/ES/Worker/WorkerAmountTest.php | 116 ---\n tests/Unit/Component/Encoding/Job/AnalyzeTrackChannelsJobTest.php | 52 +-\n tests/Unit/Component/Encoding/Service/GenerateSpeechFromSilenceServiceTest.php | 171 ++---\n tests/Unit/Component/FFMpeg/Services/GetSpeechIntervalsTest.php | 36 +-\n tests/Unit/Component/LanguageDetection/Services/FindSpeechTimeServiceTest.php | 20 +-\n tests/Unit/Component/MobileSettings/MobileSettingsControllerTest.php | 5 +-\n tests/Unit/Component/ParticipantSpeech/Services/ParticipantSpeechesCreatorTest.php | 75 ++\n tests/Unit/Component/ParticipantSpeech/Services/ParticipantSpeechesDeleterTest.php | 63 ++\n tests/Unit/Component/ParticipantSpeech/Services/ParticipantSpeechesProviderTest.php | 134 ++++\n tests/Unit/Component/ParticipantSpeech/Services/ParticipantSpeechesUploaderTest.php | 57 ++\n tests/Unit/Component/Transcription/Diarization/Services/GetNormalizedParticipantSpeechesServiceTest.php | 51 +-\n tests/Unit/Component/Transcription/Diarization/Source/MeetingBotSourceTest.php | 29 +-\n tests/Unit/Contracts/Services/Calendar/CalendarTraitTest.php | 58 +-\n tests/Unit/Http/Controllers/Kiosk/ActivityControllerTest.php | 159 +++++\n tests/Unit/Jobs/Activity/Import/ImportTwilioVideoSpeechesJobTest.php | 22 +-\n tests/Unit/Jobs/Activity/Import/IsActivityReadyForProcessingJobTest.php | 26 +-\n tests/Unit/Jobs/Calendar/SetupCalendarSyncTest.php | 25 -\n tests/Unit/Services/Activity/ParticipantsServiceTest.php | 12 +-\n tests/Unit/Services/Activity/Twilio/S3RecordingCredentialsServiceTest.php | 180 +++++\n tests/Unit/Services/ActivityServiceTest.php | 132 ++++\n tests/Unit/Services/Calendar/CalendarActivityServiceTest.php | 150 +++-\n tests/Unit/Services/Calendar/Command/ImportParticipantsTest.php | 6 +-\n tests/Unit/Services/Calendar/Command/MapActivityDataTest.php | 78 +-\n tests/Unit/Services/Calendar/GoogleCalendarServiceTest.php | 116 +++\n tests/Unit/Services/Crm/Close/ServiceTest.php | 165 +++++\n tests/Unit/Services/Crm/Hubspot/ServiceTest.php | 272 ++++++-\n tests/Unit/Services/Crm/Hubspot/ServiceTraits/OpportunitySyncTest.php | 25 +-\n tests/Unit/Services/Crm/Hubspot/ServiceTraits/OpportunitySyncTraitMatchActivitiesTest.php | 3 +-\n tests/Unit/Services/Crm/IntegrationApp/ServiceTraits/SyncCrmEntitiesTraitOpportunitiesTest.php | 40 ++\n tests/Unit/Services/Crm/Pipedrive/ImportOpportunityMatchActivitiesTest.php | 2 +\n tests/Unit/Services/Crm/Salesforce/ServiceTest.php | 139 ++++\n tests/Unit/Services/Mail/Office/EmailApiClientTest.php | 195 ++---\n tests/Unit/Services/RecallAI/RecallAIServiceTest.php | 24 +-\n 175 files changed, 12562 insertions(+), 2162 deletions(-)\n create mode 120000 CLAUDE.md\n create mode 100644 app/Component/AiAutomation/Services/CrmFillingEligibilityChecker.php\n delete mode 100644 app/Component/ES/ElasticSearchWorkerManager.php\n delete mode 100644 app/Component/ES/Processor/Traits/SkipActivityTrait.php\n delete mode 100644 app/Component/ES/Worker/ActivityWorker.php\n delete mode 100644 app/Component/ES/Worker/EntityWorker.php\n delete mode 100644 app/Component/ES/Worker/WorkerAmount.php\n delete mode 100644 app/Component/ES/Worker/WorkerInterface.php\n create mode 100644 app/Component/ProphetAi/Exceptions/InsufficientTranscriptException.php\n create mode 100644 app/Component/Transcription/DTO/Http/Transcription/AssemblyAI/AssemblyAI/NoAssemblyIdException.php\n create mode 100644 app/Component/Transcription/DTO/Http/Transcription/TranscriptionIsNotCorrectFormatException.php\n create mode 100644 app/Console/Commands/Activities/SetupIntegration/TwilioSetS3RecordingCredentialsCommand.php\n create mode 100644 app/Console/Commands/Crm/BackfillOpportunityUserFromAccountCommand.php\n delete mode 100644 app/Console/Commands/Elasticsearch/AsyncUpdateEsActivities.php\n create mode 100644 app/Console/Commands/IssueMcpTokenCommand.php\n create mode 100644 app/Http/Middleware/McpAuditMiddleware.php\n create mode 100644 app/Http/Middleware/McpTierMiddleware.php\n create mode 100644 app/Mcp/Contracts/McpCallRepositoryInterface.php\n create mode 100644 app/Mcp/DTO/ListCallsFilters.php\n create mode 100644 app/Mcp/Errors/McpError.php\n create mode 100644 app/Mcp/Repositories/McpActivityHydrator.php\n create mode 100644 app/Mcp/Repositories/McpCallRepository.php\n create mode 100644 app/Mcp/Repositories/McpElasticCallRepository.php\n create mode 100644 app/Mcp/Servers/JiminnyServer.php\n create mode 100644 app/Mcp/Tools/ListCallsTool.php\n create mode 100644 app/Services/Activity/Twilio/S3RecordingCredentialsService.php\n create mode 100644 config/mcp.php\n create mode 100644 database/migrations/2026_04_30_120000_create_mcp_audit_log_table.php\n create mode 100644 docs/mcp/explorer/explorer.html\n create mode 100644 docs/mcp/explorer/explorer.template.html\n create mode 100644 docs/mcp/explorer/generate.js\n create mode 100644 docs/mcp/explorer/tool-explorer-meta.json\n create mode 100644 docs/mcp/tools-list.json\n create mode 100644 docs/mcp/tools.md\n create mode 100644 front-end/src/components/shared/modals/EntityPickerModal/__tests__/useEntitiesCache.spec.ts\n create mode 100644 tests/Feature/Component/Nudge/ProcessOrganisationImmediateNudgesJobTest.php\n create mode 100644 tests/Feature/Mcp/IssueMcpTokenCommandTest.php\n create mode 100644 tests/Feature/Mcp/ListCallsToolElasticFeatureTest.php\n create mode 100644 tests/Feature/Mcp/ListCallsToolFeatureTest.php\n create mode 100644 tests/Feature/Mcp/McpTestHelpersTrait.php\n create mode 100644 tests/Stubs/SentryStub.php\n create mode 100644 tests/Unit/Component/AiAutomation/Services/CrmFillingEligibilityCheckerTest.php\n delete mode 100644 tests/Unit/Component/ES/ElasticSearchWorkerManagerTest.php\n create mode 100644 tests/Unit/Component/ES/Processor/Actions/LoadDocumentsActionTest.php\n delete mode 100644 tests/Unit/Component/ES/Processor/Traits/SkipActivityTraitTest.php\n delete mode 100644 tests/Unit/Component/ES/Worker/ActivityWorkerTest.php\n delete mode 100644 tests/Unit/Component/ES/Worker/EntityWorkerTest.php\n delete mode 100644 tests/Unit/Component/ES/Worker/WorkerAmountTest.php\n create mode 100644 tests/Unit/Component/ParticipantSpeech/Services/ParticipantSpeechesCreatorTest.php\n create mode 100644 tests/Unit/Http/Controllers/Kiosk/ActivityControllerTest.php\n create mode 100644 tests/Unit/Services/Activity/Twilio/S3RecordingCredentialsServiceTest.php\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20725-handle-HS-search-rate-limit) $ git status\nOn branch master\nYour branch is behind 'origin/master' by 114 commits, and can be fast-forwarded.\n (use \"git pull\" to update your local branch)\n\nChanges not staged for commit:\n (use \"git add <file>...\" to update what will be committed)\n (use \"git restore <file>...\" to discard changes in working directory)\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tmodified: .env.local\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tmodified: app/Component/SCIM/Constants.php\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tmodified: app/Component/SCIM/ScimProvisioning.php\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tmodified: app/Component/Twilio/Conference/ConferenceManager/SoftPhoneManager.php\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tmodified: app/Console/Commands/JiminnyDebugCommand.php\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tmodified: app/DTO/SCIM/AAD/Request/CoreUserRequest.php\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tmodified: app/DTO/SCIM/AAD/Response/CoreUser.php\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tmodified: app/Services/Telephony/TextMessagingService.php\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tmodified: config/logging.php\n\nUntracked files:\n (use \"git add <file>...\" to include in what will be committed)\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\t.env.nikilocal\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\t.env.other\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tWEBHOOK_FILTERING_IMPLEMENTATION.md\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tapp/Component/SCIM/Mutators/Attributes/User/RoleAttr.php\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tapp/Console/Commands/Crm/Hubspot/SimulateWebhooksCommand.php\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tapp/Console/Commands/Reports/CreateMockAskJiminnyReportResultCommand.php\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tapp/Rules/ListenerRoleCannotHaveAdminOrManagerPermissionRule.php\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tids.txt\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tpublic/favicon.ico\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\traw_sql_query.sql\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\ttests/Unit/Component/SCIM/Mutators/Attributes/User/RoleAttrTest.php\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\ttests/Unit/Policies/CanAccessAiReportsTest.php\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\ttests/Unit/Rules/ListenerRoleCannotHaveAdminOrManagerPermissionRuleTest.php\n\nno changes added to commit (use \"git add\" and/or \"git commit -a\")\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (master) $ git pull\nremote: Enumerating objects: 306, done.\nremote: Counting objects: 100% (299/299), done.\nremote: Compressing objects: 100% (183/183), done.\nremote: Total 306 (delta 213), reused 171 (delta 116), pack-reused 7 (from 1)\nReceiving objects: 100% (306/306), 80.12 KiB | 1000.00 KiB/s, done.\nResolving deltas: 100% (213/213), completed with 53 local objects.\nFrom github.com:jiminny/app\n 90bca4e4b2..5604af40cf master -> origin/master\n 4e7078fd8b..0b8343d179 JY-18091-upgrade-to-php-8-5 -> origin/JY-18091-upgrade-to-php-8-5\n 098eeaa087..d5a447e492 JY-20613-allow-owner-role-on-team-setup -> origin/JY-20613-allow-owner-role-on-team-setup\n c3a76ace91..af65249d0f JY-20749-user-can-view-recorded-meetings -> origin/JY-20749-user-can-view-recorded-meetings\n d94a285ae7..7ce96cb5fe JY-20808-low-priority-indexing-queue -> origin/JY-20808-low-priority-indexing-queue\n * [new branch] JY-20842-remove-partial-updater -> origin/JY-20842-remove-partial-updater\n * [new branch] JY-20920-fix-participant-flip -> origin/JY-20920-fix-participant-flip\n * [new branch] secfix/npm-20260519 -> origin/secfix/npm-20260519\nUpdating cb4ebf0c36..5604af40cf\nFast-forward\n app/Component/ES/ChunkSize.php | 54 +++++++++++++++++++\n app/Component/ES/Processor/DTOs/SelectionList.php | 4 +-\n app/Component/ES/Processor/TargetEntitiesSelector.php | 19 ++++---\n app/Component/MeetingBot/Service/ParticipantMatcher.php | 46 ++++++++++++----\n app/Exceptions/RateLimitException.php | 19 ++++++-\n app/Http/Middleware/McpTierMiddleware.php | 27 ++--------\n app/Jobs/Crm/MatchActivityCrmData.php | 47 ++++++++++++----\n app/Jobs/Middleware/HandleHubspotRateLimit.php | 42 +++++++++++++++\n app/Mcp/Servers/JiminnyServer.php | 2 +\n app/Mcp/Tools/GetMeTool.php | 157 +++++++++++++++++++++++++++++++++++++++++++++++++++++\n app/Models/Feature/FeatureEnum.php | 1 +\n app/Services/Activity/HubSpot/ProviderResolver.php | 4 +-\n app/Services/Activity/HubSpot/ProviderResolverInterface.php | 2 +-\n app/Services/Activity/HubSpot/Providers/Provider.php | 2 +-\n app/Services/Activity/HubSpot/Providers/ProviderKixie.php | 2 +-\n app/Services/Activity/HubSpot/Providers/ProviderOrum.php | 2 +-\n app/Services/Activity/HubSpot/Providers/ProviderTwilio.php | 2 +-\n app/Services/Activity/HubSpot/Providers/ProviderTwilioFlex.php | 5 +-\n app/Services/Activity/HubSpot/Service.php | 97 +++++++++++++++++++++++++++------\n app/Services/Crm/Hubspot/Client.php | 132 +++++++++++++++++++++++++++++++++++++++++++++\n app/Services/Crm/Hubspot/HubspotClientInterface.php | 15 ++++++\n app/Services/Crm/Hubspot/Pagination/HubspotPaginationService.php | 21 ++++----\n app/Services/Crm/Hubspot/Pagination/PaginationState.php | 2 +-\n database/migrations/2026_05_13_124153_create_mcp_feature_flag.php | 25 +++++++++\n tests/Feature/Mcp/GetMeToolFeatureTest.php | 140 +++++++++++++++++++++++++++++++++++++++++++++++\n tests/Feature/Mcp/ListCallsToolFeatureTest.php | 2 +-\n tests/Feature/Mcp/McpTestHelpersTrait.php | 19 ++++++-\n tests/Unit/Component/ES/ChunkSizeTest.php | 50 +++++++++++++++++\n tests/Unit/Component/ES/Processor/DTOs/SelectionListTest.php | 27 +++++++---\n tests/Unit/Component/ES/Processor/TargetEntitiesSelectorTest.php | 39 ++++++++------\n tests/Unit/Component/MeetingBot/Service/ParticipantMatcherTest.php | 68 ++++++++++++++++++++++-\n tests/Unit/Exceptions/RateLimitExceptionTest.php | 56 +++++++++++++++++++\n tests/Unit/Jobs/Crm/MatchActivityCrmDataTest.php | 8 +--\n tests/Unit/Jobs/Middleware/HandleHubspotRateLimitTest.php | 151 +++++++++++++++++++++++++++++++++++++++++++++++++++\n tests/Unit/Services/Activity/HubSpot/ServiceTest.php | 109 +++++++++++++++++++++++++++++++++++++\n tests/Unit/Services/Crm/Hubspot/ClientTest.php | 250 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++\n tests/Unit/Services/Crm/Hubspot/Pagination/HubspotPaginationServiceTest.php | 283 +++++++++++++++++++++---------------------------------------------------------------------------\n 37 files changed, 1587 insertions(+), 344 deletions(-)\n create mode 100644 app/Component/ES/ChunkSize.php\n create mode 100644 app/Jobs/Middleware/HandleHubspotRateLimit.php\n create mode 100644 app/Mcp/Tools/GetMeTool.php\n create mode 100644 database/migrations/2026_05_13_124153_create_mcp_feature_flag.php\n create mode 100644 tests/Feature/Mcp/GetMeToolFeatureTest.php\n create mode 100644 tests/Unit/Component/ES/ChunkSizeTest.php\n create mode 100644 tests/Unit/Exceptions/RateLimitExceptionTest.php\n create mode 100644 tests/Unit/Jobs/Middleware/HandleHubspotRateLimitTest.php\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (master) $ git pull\nAlready up to date.\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (master) $ co -b JY-20676-delete-report-related-objects\nSwitched to a new branch 'JY-20676-delete-report-related-objects'\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20676-delete-report-related-objects) $ csfix\ndocker exec -it docker_lamp_1 ./vendor/bin/php-cs-fixer fix --config=.php-cs-fixer.dist.php -v --using-cache=no --diff \nPHP CS Fixer 3.87.1 Alexander by Fabien Potencier, Dariusz Ruminski and contributors.\nPHP runtime: 8.3.30\nRunning analysis on 7 cores with 10 files per process.\nParallel runner is an experimental feature and may be unstable, use it at your own risk. Feedback highly appreciated!\nLoaded config default from \".php-cs-fixer.dist.php\".\n 5690/5690 [▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓] 100%\n\n 1) app/Console/Commands/JiminnyDebugCommand.php (statement_indentation, blank_line_before_statement)\n ---------- begin diff ----------\n--- /home/jiminny/app/Console/Commands/JiminnyDebugCommand.php\n+++ /home/jiminny/app/Console/Commands/JiminnyDebugCommand.php\n@@ -23,6 +23,7 @@\n \n if ($action === 'redis-set') {\n $this->testRedisSet();\n+\n return;\n }\n \n@@ -45,7 +46,7 @@\n $ttl = 60;\n \n try {\n-// $result = Redis::set($testKey, $testValue, 'EX', $ttl, 'NX');\n+ // $result = Redis::set($testKey, $testValue, 'EX', $ttl, 'NX');\n $result = Redis::set($testKey, $testValue, ['nx', 'ex' => $ttl]);\n \n if ($result) {\n\n ----------- end diff -----------\n\n\nFixed 1 of 5690 files in 50.673 seconds, 67.00 MB memory used\n\nWhat's next:\n Try Docker Debug for seamless, persistent debugging tools in any container or image → docker debug docker_lamp_1\n Learn more at https://docs.docker.com/go/debug-cli/\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20676-delete-report-related-objects) $ ;xd\ndocker exec -it docker_lamp_1 bash -c \"mv /usr/local/etc/php/conf.d/xdebug.ini ~/xdebug.ini\"\n\nWhat's next:\n Try Docker Debug for seamless, persistent debugging tools in any container or image → docker debug docker_lamp_1\n Learn more at https://docs.docker.com/go/debug-cli/\ndocker exec -it docker_lamp_1 supervisorctl restart all\njiminny-worker-processing-2:jiminny-worker-processing-2_00: stopped\njiminny-worker-processing-3:jiminny-worker-processing-3_00: stopped\njiminny-worker-processing-4:jiminny-worker-processing-4_00: stopped\njiminny-worker-processing-5:jiminny-worker-processing-5_00: stopped\njiminny-worker-processing-delayed:jiminny-worker-processing-delayed_00: stopped\nworker-analytics:worker-analytics_00: stopped\nworker-crm-update:worker-crm-update_00: stopped\nworker-download:worker-download_00: stopped\nworker-nudges:worker-nudges_00: stopped\nworker-calendar:worker-calendar_00: stopped\nworker-audio:worker-audio_00: stopped\njiminny-worker-processing-1:jiminny-worker-processing-1_00: stopped\nworker:worker_00: stopped\nworker-conferences:worker-conferences_00: stopped\nworker-crm-sync:worker-crm-sync_00: stopped\nworker-emails:worker-emails_00: stopped\nworker-es-update:worker-es-update_00: stopped\nartisan-schedule:artisan-schedule_00: stopped\nartisan-schedule:artisan-schedule_00: started\njiminny-worker-processing-1:jiminny-worker-processing-1_00: started\njiminny-worker-processing-2:jiminny-worker-processing-2_00: started\njiminny-worker-processing-3:jiminny-worker-processing-3_00: started\njiminny-worker-processing-4:jiminny-worker-processing-4_00: started\njiminny-worker-processing-5:jiminny-worker-processing-5_00: started\njiminny-worker-processing-delayed:jiminny-worker-processing-delayed_00: started\nworker:worker_00: started\nworker-analytics:worker-analytics_00: started\nworker-audio:worker-audio_00: started\nworker-calendar:worker-calendar_00: started\nworker-conferences:worker-conferences_00: started\nworker-crm-sync:worker-crm-sync_00: started\nworker-crm-update:worker-crm-update_00: started\nworker-download:worker-download_00: started\nworker-emails:worker-emails_00: started\nworker-es-update:worker-es-update_00: started\nworker-nudges:worker-nudges_00: started\n\nWhat's next:\n Try Docker Debug for seamless, persistent debugging tools in any container or image → docker debug docker_lamp_1\n Learn more at https://docs.docker.com/go/debug-cli/\ndocker exec -it docker_lamp_1 php -v\nPHP 8.3.30 (cli) (built: Mar 16 2026 22:32:32) (NTS)\nCopyright (c) The PHP Group\nZend Engine v4.3.30, Copyright (c) Zend Technologies\n with Zend OPcache v8.3.30, Copyright (c), by Zend Technologies\n\nWhat's next:\n Try Docker Debug for seamless, persistent debugging tools in any container or image → docker debug docker_lamp_1\n Learn more at https://docs.docker.com/go/debug-cli/\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20676-delete-report-related-objects) $ git status\nOn branch JY-20676-delete-report-related-objects\nChanges not staged for commit:\n (use \"git add <file>...\" to update what will be committed)\n (use \"git restore <file>...\" to discard changes in working directory)\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tmodified: .env.local\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tmodified: app/Console/Commands/JiminnyDebugCommand.php\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tmodified: config/logging.php\n\nUntracked files:\n (use \"git add <file>...\" to include in what will be committed)\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\t.env.nikilocal\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\t.env.other\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tWEBHOOK_FILTERING_IMPLEMENTATION.md\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tapp/Console/Commands/Crm/Hubspot/SimulateWebhooksCommand.php\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tapp/Console/Commands/Reports/CreateMockAskJiminnyReportResultCommand.php\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tids.txt\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tpublic/favicon.ico\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\traw_sql_query.sql\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\ttests/Unit/Policies/CanAccessAiReportsTest.php\n\nno changes added to commit (use \"git add\" and/or \"git commit -a\")\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20676-delete-report-related-objects) $ git push -u origin JY-20676-delete-report-related-objects\nEnumerating objects: 45, done.\nCounting objects: 100% (45/45), done.\nDelta compression using up to 8 threads\nCompressing objects: 100% (24/24), done.\nWriting objects: 100% (24/24), 3.62 KiB | 3.62 MiB/s, done.\nTotal 24 (delta 19), reused 0 (delta 0), pack-reused 0\nremote: Resolving deltas: 100% (19/19), completed with 19 local objects.\nremote: \nremote: Create a pull request for 'JY-20676-delete-report-related-objects' on GitHub by visiting:\nremote: https://github.com/jiminny/app/pull/new/JY-20676-delete-report-related-objects\nremote: \nTo github.com:jiminny/app.git\n * [new branch] JY-20676-delete-report-related-objects -> JY-20676-delete-report-related-objects\nbranch 'JY-20676-delete-report-related-objects' set up to track 'origin/JY-20676-delete-report-related-objects'.\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20676-delete-report-related-objects) $ csfix\ndocker exec -it docker_lamp_1 ./vendor/bin/php-cs-fixer fix --config=.php-cs-fixer.dist.php -v --using-cache=no --diff \nPHP CS Fixer 3.87.1 Alexander by Fabien Potencier, Dariusz Ruminski and contributors.\nPHP runtime: 8.3.30\nRunning analysis on 7 cores with 10 files per process.\nParallel runner is an experimental feature and may be unstable, use it at your own risk. Feedback highly appreciated!\nLoaded config default from \".php-cs-fixer.dist.php\".\n 5690/5690 [▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓] 100%\n\n 1) app/Http/Controllers/API/V2/AskJiminnyReportsController.php (blank_line_before_statement)\n ---------- begin diff ----------\n--- /home/jiminny/app/Http/Controllers/API/V2/AskJiminnyReportsController.php\n+++ /home/jiminny/app/Http/Controllers/API/V2/AskJiminnyReportsController.php\n@@ -140,6 +140,7 @@\n if ($enabled && $report->isAskJiminnyReport() && ! $report->canExecute()) {\n $error = 'This report is missing a saved search or prompt. ' .\n 'Edit the report to complete the setup before enabling it.';\n+\n return new JsonResponse(\n ['error' => $error],\n Response::HTTP_UNPROCESSABLE_ENTITY\n\n ----------- end diff -----------\n\n\nFixed 1 of 5690 files in 71.757 seconds, 60.00 MB memory used\n\nWhat's next:\n Try Docker Debug for seamless, persistent debugging tools in any container or image → docker debug docker_lamp_1\n Learn more at https://docs.docker.com/go/debug-cli/\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20676-delete-report-related-objects) $ git pull\nremote: Enumerating objects: 158, done.\nremote: Counting objects: 100% (103/103), done.\nremote: Compressing objects: 100% (37/37), done.\nremote: Total 158 (delta 80), reused 74 (delta 66), pack-reused 55 (from 3)\nReceiving objects: 100% (158/158), 80.59 KiB | 982.00 KiB/s, done.\nResolving deltas: 100% (85/85), completed with 45 local objects.\nFrom github.com:jiminny/app\n 02a33811ee..c6ce5e2440 JY-20676-delete-report-related-objects -> origin/JY-20676-delete-report-related-objects\n 7ce96cb5fe..6c59f04358 JY-20808-low-priority-indexing-queue -> origin/JY-20808-low-priority-indexing-queue\n 3906a9238a..2b5e6ea62b JY-20835-mcp-enable-users-to-get-a-list-of-deals-and-their-details -> origin/JY-20835-mcp-enable-users-to-get-a-list-of-deals-and-their-details\n 5604af40cf..ea3519f0e2 master -> origin/master\n * [new branch] switch-eu-assembly -> origin/switch-eu-assembly\nUpdating 02a33811ee..c6ce5e2440\nFast-forward\n app/Component/ES/ElasticSearchDocumentPartialUpdater.php | 48 ---\n app/Component/ParticipantSpeech/Services/ParticipantAttributionService.php | 4 +-\n app/Component/Settings/AutoScoring/Services/UpdateAutoScoreService.php | 20 +-\n app/Component/Transcription/Service/StorageService.php | 8 +-\n front-end/package.json | 2 +-\n front-end/src/components/DealInsights/Modals/AskAnythingModal.vue | 23 ++\n front-end/src/components/shared/AskAnything/AskAnythingPromptFormItem.vue | 2 +\n front-end/src/components/shared/AskAnything/AskAnythingSettingsDrawer.vue | 23 +-\n front-end/src/components/shared/AskAnything/__mocks__/AskAnythingSettingsDrawer.mocks.js | 1 +\n front-end/src/components/shared/AskAnything/__tests__/AskAnythingSettingsDrawer.spec.js | 135 ++++---\n front-end/src/components/shared/AskAnything/__tests__/__snapshots__/AskAnythingSettingsDrawer.spec.js.html | 1235 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++\n front-end/src/components/shared/AskAnything/__tests__/__snapshots__/AskAnythingSettingsDrawer.spec.js.snap | 1382 ----------------------------------------------------------------\n front-end/src/components/shared/AskAnything/prompts.js | 1 +\n front-end/src/components/shared/AskAnything/useAskAnything.js | 1 +\n front-end/yarn.lock | 8 +-\n tests/Unit/Component/ES/ElasticSearchDocumentPartialUpdaterTest.php | 42 --\n tests/Unit/Component/Settings/AutoScoring/Services/UpdateAutoScoreServiceTest.php | 86 ++--\n tests/Unit/Component/Transcription/Service/StorageServiceTest.php | 29 +-\n 18 files changed, 1448 insertions(+), 1602 deletions(-)\n delete mode 100644 app/Component/ES/ElasticSearchDocumentPartialUpdater.php\n create mode 100644 front-end/src/components/shared/AskAnything/__tests__/__snapshots__/AskAnythingSettingsDrawer.spec.js.html\n delete mode 100644 front-end/src/components/shared/AskAnything/__tests__/__snapshots__/AskAnythingSettingsDrawer.spec.js.snap\n delete mode 100644 tests/Unit/Component/ES/ElasticSearchDocumentPartialUpdaterTest.php\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20676-delete-report-related-objects) $ csfix\ndocker exec -it docker_lamp_1 ./vendor/bin/php-cs-fixer fix --config=.php-cs-fixer.dist.php -v --using-cache=no --diff \nPHP CS Fixer 3.87.1 Alexander by Fabien Potencier, Dariusz Ruminski and contributors.\nPHP runtime: 8.3.30\nRunning analysis on 7 cores with 10 files per process.\nParallel runner is an experimental feature and may be unstable, use it at your own risk. Feedback highly appreciated!\nLoaded config default from \".php-cs-fixer.dist.php\".\n 5688/5688 [▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓] 100%\n\n\nFixed 0 of 5688 files in 79.904 seconds, 60.00 MB memory used\n\nWhat's next:\n Try Docker Debug for seamless, persistent debugging tools in any container or image → docker debug docker_lamp_1\n Learn more at https://docs.docker.com/go/debug-cli/\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20676-delete-report-related-objects) $","is_focused":true},{"role":"AXRadioButton","text":"DOCKER","depth":2,"bounds":{"left":0.0,"top":0.05888889,"width":0.19826388,"height":0.026666667},"on_screen":true,"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.004166667,"top":0.06333333,"width":0.011111111,"height":0.017777778},"on_screen":true,"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"DEV (docker)","depth":2,"bounds":{"left":0.19826388,"top":0.05888889,"width":0.19826388,"height":0.026666667},"on_screen":true,"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.20243056,"top":0.06333333,"width":0.011111111,"height":0.017777778},"on_screen":true,"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"APP (-zsh)","depth":2,"bounds":{"left":0.39652777,"top":0.05888889,"width":0.19791667,"height":0.026666667},"on_screen":true,"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.40069443,"top":0.06333333,"width":0.011111111,"height":0.017777778},"on_screen":true,"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"screenpipe\"","depth":2,"bounds":{"left":0.59444445,"top":0.05888889,"width":0.19791667,"height":0.026666667},"on_screen":true,"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.5986111,"top":0.06333333,"width":0.011111111,"height":0.017777778},"on_screen":true,"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"-zsh","depth":2,"bounds":{"left":0.79236114,"top":0.05888889,"width":0.19791667,"height":0.026666667},"on_screen":true,"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.7965278,"top":0.06333333,"width":0.011111111,"height":0.017777778},"on_screen":true,"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"⌥⌘1","depth":1,"bounds":{"left":0.9618056,"top":0.032222223,"width":0.038194418,"height":0.018888889},"on_screen":true,"automation_id":"_NS:8","role_description":"text"},{"role":"AXStaticText","text":"APP (-zsh)","depth":1,"bounds":{"left":0.47777778,"top":0.033333335,"width":0.05138889,"height":0.017777778},"on_screen":true,"role_description":"text"}]...
|
2802650493718167367
|
-1358120912881272742
|
idle
|
accessibility
|
NULL
|
Last login: Mon May 18 09:17:28 on ttys007
Poetry Last login: Mon May 18 09:17:28 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 (pipedrive-sdk-poc) $ co master
error: Your local changes to the following files would be overwritten by checkout:
PIPEDRIVE_V2_MIGRATION_TICKETS.md
Please commit your changes or stash them before you switch branches.
Aborting
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (pipedrive-sdk-poc) $ git pull
remote: Enumerating objects: 1047, done.
remote: Counting objects: 100% (832/832), done.
remote: Compressing objects: 100% (298/298), done.
remote: Total 1047 (delta 634), reused 596 (delta 534), pack-reused 215 (from 3)
Receiving objects: 100% (1047/1047), 353.16 KiB | 1.56 MiB/s, done.
Resolving deltas: 100% (687/687), completed with 107 local objects.
From github.com:jiminny/app
907c54896c..34656c53ed pipedrive-sdk-poc -> origin/pipedrive-sdk-poc
03325ec50f..4e7078fd8b JY-18091-upgrade-to-php-8-5 -> origin/JY-18091-upgrade-to-php-8-5
e7d231e163..bc6a3fce6b JY-20725-handle-HS-search-rate-limit -> origin/JY-20725-handle-HS-search-rate-limit
* [new branch] JY-20749-user-can-view-recorded-meetings -> origin/JY-20749-user-can-view-recorded-meetings
98ca281a04..e0351be069 JY-20808-low-priority-indexing-queue -> origin/JY-20808-low-priority-indexing-queue
569abb5149..3906a9238a JY-20835-mcp-enable-users-to-get-a-list-of-deals-and-their-details -> origin/JY-20835-mcp-enable-users-to-get-a-list-of-deals-and-their-details
ad6c2a86e8..50eb6afba9 JY-20846-mcp-enable-the-ai-to-know-details-about-the-user -> origin/JY-20846-mcp-enable-the-ai-to-know-details-about-the-user
* [new branch] JY-20893-chunk-control-per-update-target -> origin/JY-20893-chunk-control-per-update-target
31c62924a5..cb4ebf0c36 master -> origin/master
Updating 907c54896c..34656c53ed
Fast-forward
PIPEDRIVE_V2_MIGRATION_TICKETS.md | 52 ++++++++++++++++++++++++++++++++++++++++++++++++++++
1 file changed, 52 insertions(+)
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (pipedrive-sdk-poc) $ co master
M .env.local
M config/logging.php
Switched to branch 'master'
Your branch is behind 'origin/master' by 31 commits, and can be fast-forwarded.
(use "git pull" to update your local branch)
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (master) $ git pull
Updating 31c62924a5..cb4ebf0c36
Fast-forward
app/Component/ES/Processor/Traits/SelectEntityListTrait.php | 20 ------
app/Services/Calendar/CalendarActivityService.php | 46 +++++++++++++
app/Services/Calendar/Command/MapActivityData.php | 106 +++-------------------------
docs/mcp/explorer/explorer.html | 104 +++++++++++++++++++++++++---
docs/mcp/explorer/explorer.template.html | 102 ++++++++++++++++++++++++---
docs/mcp/tools-list.json | 373 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++-------
docs/mcp/tools.md | 117 +++++++++++++++++++++++--------
tests/Unit/Component/ES/AsyncUpdateElasticSearchTest.php | 16 +----
tests/Unit/Component/ES/Listeners/UpdateMultipleTargetsListenerTest.php | 10 ---
tests/Unit/Component/ES/Listeners/UpdateSingleTargetListenerTest.php | 6 --
tests/Unit/Component/ES/Processor/TargetEntitiesSelectorTest.php | 9 ---
tests/Unit/Component/ES/Processor/Traits/SelectEntityListTraitTest.php | 15 ++--
tests/Unit/Component/ES/UpdateProcessManagerTest.php | 2 -
tests/Unit/Services/Calendar/CalendarActivityServiceTest.php | 150 ++++++++++++++++++++++++++++++++++++++--
tests/Unit/Services/Calendar/Command/MapActivityDataTest.php | 78 ++-------------------
15 files changed, 832 insertions(+), 322 deletions(-)
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (master) $ co -b JY-20613-allow-owner-role-on-team-setup
Switched to a new branch 'JY-20613-allow-owner-role-on-team-setup'
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20613-allow-owner-role-on-team-setup) $ csfix
docker exec -it docker_lamp_1 ./vendor/bin/php-cs-fixer fix --config=.php-cs-fixer.dist.php -v --using-cache=no --diff
PHP CS Fixer 3.87.1 Alexander by Fabien Potencier, Dariusz Ruminski and contributors.
PHP runtime: 8.3.30
Running 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!
Loaded config default from ".php-cs-fixer.dist.php".
5682/5682 [▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓] 100%
Fixed 0 of 5682 files in 56.978 seconds, 67.00 MB memory used
What's next:
Try Docker Debug for seamless, persistent debugging tools in any container or image → docker debug docker_lamp_1
Learn more at [URL_WITH_CREDENTIALS] ~/jiminny/app (JY-20613-allow-owner-role-on-team-setup) $ csfix
docker exec -it docker_lamp_1 ./vendor/bin/php-cs-fixer fix --config=.php-cs-fixer.dist.php -v --using-cache=no --diff
PHP CS Fixer 3.87.1 Alexander by Fabien Potencier, Dariusz Ruminski and contributors.
PHP runtime: 8.3.30
Running 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!
Loaded config default from ".php-cs-fixer.dist.php".
5682/5682 [▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓] 100%
Fixed 0 of 5682 files in 49.910 seconds, 60.00 MB memory used
What's next:
Try Docker Debug for seamless, persistent debugging tools in any container or image → docker debug docker_lamp_1
Learn more at [URL_WITH_CREDENTIALS] ~/jiminny/app (JY-20613-allow-owner-role-on-team-setup) $ git pull
remote: Enumerating objects: 248, done.
remote: Counting objects: 100% (128/128), done.
remote: Compressing objects: 100% (23/23), done.
remote: Total 59 (delta 43), reused 44 (delta 33), pack-reused 0 (from 0)
Unpacking objects: 100% (59/59), 10.48 KiB | 228.00 KiB/s, done.
From github.com:jiminny/app
b7df560451..190239dfd4 JY-20613-allow-owner-role-on-team-setup -> origin/JY-20613-allow-owner-role-on-team-setup
e0351be069..d94a285ae7 JY-20808-low-priority-indexing-queue -> origin/JY-20808-low-priority-indexing-queue
* [new branch] JY-20920-fix-participant-matcher -> origin/JY-20920-fix-participant-matcher
cb4ebf0c36..90bca4e4b2 master -> origin/master
Merge made by the 'ort' strategy.
app/Component/ES/ChunkSize.php | 54 +++++++++++++++++++++++++++
app/Component/ES/Processor/DTOs/SelectionList.php | 4 +-
app/Component/ES/Processor/TargetEntitiesSelector.php | 19 ++++++----
app/Http/Middleware/McpTierMiddleware.php | 27 +++-----------
app/Mcp/Servers/JiminnyServer.php | 2 +
app/Mcp/Tools/GetMeTool.php | 157 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
app/Models/Feature/FeatureEnum.php | 1 +
database/migrations/2026_05_13_124153_create_mcp_feature_flag.php | 25 +++++++++++++
front-end/src/components/Settings/Kiosk/modals/EditTeamModal/EditTeamModal.vue | 52 ++++++++++++++++++--------
front-end/src/components/Settings/Kiosk/modals/EditTeamModal/__tests__/EditTeamModal.spec.js | 14 +++++++
tests/Feature/Mcp/GetMeToolFeatureTest.php | 140 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
tests/Feature/Mcp/ListCallsToolFeatureTest.php | 2 +-
tests/Feature/Mcp/McpTestHelpersTrait.php | 19 +++++++++-
tests/Unit/Component/ES/ChunkSizeTest.php | 50 +++++++++++++++++++++++++
tests/Unit/Component/ES/Processor/DTOs/SelectionListTest.php | 27 ++++++++++----
tests/Unit/Component/ES/Processor/TargetEntitiesSelectorTest.php | 39 +++++++++++---------
16 files changed, 557 insertions(+), 75 deletions(-)
create mode 100644 app/Component/ES/ChunkSize.php
create mode 100644 app/Mcp/Tools/GetMeTool.php
create mode 100644 database/migrations/2026_05_13_124153_create_mcp_feature_flag.php
create mode 100644 tests/Feature/Mcp/GetMeToolFeatureTest.php
create mode 100644 tests/Unit/Component/ES/ChunkSizeTest.php
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20613-allow-owner-role-on-team-setup) $ git push
Enumerating objects: 40, done.
Counting objects: 100% (34/34), done.
Delta compression using up to 8 threads
Compressing objects: 100% (18/18), done.
Writing objects: 100% (18/18), 1.58 KiB | 1.58 MiB/s, done.
Total 18 (delta 15), reused 0 (delta 0), pack-reused 0
remote: Resolving deltas: 100% (15/15), completed with 13 local objects.
To github.com:jiminny/app.git
190239dfd4..ec1b261264 JY-20613-allow-owner-role-on-team-setup -> JY-20613-allow-owner-role-on-team-setup
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20613-allow-owner-role-on-team-setup) $ gbr
* JY-20613-allow-owner-role-on-team-setup
pipedrive-sdk-poc
master
JY-20903-update_activity-stage-on-opportunity-change
JY-20904-fix-update-es-on-activity-command
JY-20891-improve-sms-text-relays
JY-20725-handle-HS-search-rate-limit
JY-20818-move-AJ-reports-to-separated-datadog-metric
JY-20773-fix-automated-reports-user-pilot-tracking
JY-20157-AJ-report-not-send-notification
JY-20508-notify-before-AJ-report-expiration
JY-20372-ai-reports-promotion-pages
JY-20352-sync-opportunities-without-a-local-owner-user-id-is-null
JY-20738-debug-AJ-tracking-UP
a
JY-18909-automated-reports-ask-jiminny
JY-20692-fix-integration-app-[API_KEY]
JY-20553-debug-crm-sync-delays
JY-20698-fix-SF-activity-types-on-new-playbook
JY-20543-AJ-report-tracking
JY-20384-handle-auto-sync-with-no-access-to-event-type
JY-20458-ask-jiminny-user-definitions
JY-19666-fix-import-contacts-account-association
JY-19666-HS-import-contacts-and-accounts-batch-job
JY-20458-Ask-Jiminny-Reports
JY-20200-batch-update-CRM-objects-Salesforce
JY-19666-HS-webhooks-add-contact-and-company
JY-20348-trigger-setup-DI-layout-on-team-creation
JY-20326-refactor-info-message-in-command
JY-20317-fix-auto-log-delay-issue-on-all-channels-disabled
JY-20312-remove-on-update-change-last-synced-at-crm-configurations
JY-20306-SF-skip-auto-sync-for-task-based-playbook
JY-20192-remove-deleted-team-from-saved-search-filters
JY-20197-import-opportunity-batch-job
JY-20293-enable-status-field-for-pipedrive-deals
JY-20191-remove-commands-interactive-prompts
JY-20118-change-default-sync-strategy
JY-20183-add-cache-on-auto-log-delay
JY-20197-add-import-opportunity-batch-job
20118-hs-opportunity-make-webhook-strategy-default
JY-20118-make-default-hs-opportunity-sync-strategy-webhook-based
JY-20196-handle-opportunity-without-note
JY-20118-improve-opportunity-import
JY-20189-handle-activity-search-on-deleted-groups
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20613-allow-owner-role-on-team-setup) $ co JY-20725-handle-HS-search-rate-limit
M .env.local
M config/logging.php
Switched to branch 'JY-20725-handle-HS-search-rate-limit'
Your branch is behind 'origin/JY-20725-handle-HS-search-rate-limit' by 439 commits, and can be fast-forwarded.
(use "git pull" to update your local branch)
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20725-handle-HS-search-rate-limit) $ git pull
Updating 0f3e438941..bc6a3fce6b
Fast-forward
.gitignore | 3 +-
.windsurfrules | 168 ++---
CLAUDE.md | 1 +
app/Component/ActivityAnalytics/Service/CalculateTalkTimeOffsetsFromTranscription.php | 24 +-
app/Component/AiActivityType/Services/AiActivityTypeEligibilityChecker.php | 28 +-
app/Component/AiAutomation/Actions/PrepareUpdateDtoAction.php | 32 +-
app/Component/AiAutomation/Services/CrmFillingEligibilityChecker.php | 47 ++
app/Component/AiAutomation/TestCrmAiPromptService.php | 14 +
app/Component/AiCallScoring/Services/AiCallScoringEligibilityChecker.php | 9 +
app/Component/ES/ElasticSearchDocumentPartialUpdater.php | 13 +-
app/Component/ES/ElasticSearchWorkerManager.php | 86 ---
app/Component/ES/Processor/Actions/LoadDocumentsAction.php | 80 +--
app/Component/ES/Processor/EntityQueryBuilder.php | 12 +-
app/Component/ES/Processor/TargetEntitiesSelector.php | 2 +-
app/Component/ES/Processor/Traits/SkipActivityTrait.php | 25 -
app/Component/ES/Repositories/EsResetActivityRepository.php | 11 +-
app/Component/ES/Worker/ActivityWorker.php | 73 --
app/Component/ES/Worker/EntityWorker.php | 44 --
app/Component/ES/Worker/WorkerAmount.php | 60 --
app/Component/ES/Worker/WorkerInterface.php | 15 -
app/Component/ElasticSearch/Contract/Searchable.php | 4 +
app/Component/Encoding/Job/AnalyzeTrackChannelsJob.php | 20 +-
app/Component/Encoding/Service/GenerateSpeechFromSilenceService.php | 85 ++-
app/Component/FFMpeg/Services/GetSpeechIntervalsService.php | 18 +-
app/Component/LanguageDetection/Services/FindSpeechTimeService.php | 22 +-
app/Component/Nudge/Job/ProcessOrganisationImmediateNudgesJob.php | 218 +++++-
app/Component/ParagraphBreaker/Services/TranscriptionParagraphsService.php | 4 +
app/Component/ParticipantSpeech/Services/ParticipantSpeechesCreator.php | 33 +
app/Component/ParticipantSpeech/Services/ParticipantSpeechesDeleter.php | 15 +
app/Component/ParticipantSpeech/Services/ParticipantSpeechesProvider.php | 51 +-
app/Component/ParticipantSpeech/Services/ParticipantSpeechesUploader.php | 36 +
app/Component/ProphetAi/Exceptions/InsufficientTranscriptException.php | 11 +
app/Component/Transcription/DTO/Http/Transcription/AssemblyAI/AssemblyAI/NoAssemblyIdException.php | 11 +
app/Component/Transcription/DTO/Http/Transcription/AssemblyAI/AssemblyAI/SuccessfulResponse.php | 6 +
app/Component/Transcription/DTO/Http/Transcription/TranscriptionIsNotCorrectFormatException.php | 11 +
app/Component/Transcription/Diarization/Services/GetNormalizedParticipantSpeechesService.php | 23 +-
app/Component/Transcription/Diarization/Source/MeetingBotSource.php | 16 +-
app/Component/Transcription/TranscriptionProcessor/TranscriptionProcessor.php | 3 +
app/Console/Commands/Activities/ActivityHardDeleteCommand.php | 4 +-
app/Console/Commands/Activities/Copy.php | 2 +
app/Console/Commands/Activities/SetupIntegration/TwilioSetS3RecordingCredentialsCommand.php | 119 ++++
app/Console/Commands/Activities/UpdateActivityElasticSearchDocumentCommand.php | 10 +-
app/Console/Commands/Crm/BackfillOpportunityUserFromAccountCommand.php | 126 ++++
app/Console/Commands/Elasticsearch/AsyncUpdateEsActivities.php | 19 -
app/Console/Commands/Elasticsearch/AsyncUpdateEsEntities.php | 50 +-
app/Console/Commands/Elasticsearch/ResetAsyncElasticSearchCommand.php | 30 +-
app/Console/Commands/GeckoExport/GeckoExportParticipantSpeechesCommand.php | 14 +-
app/Console/Commands/IssueMcpTokenCommand.php | 84 +++
app/Console/Commands/JiminnyDebugCommand.php | 7 +-
app/Console/Commands/Tracks/CleanupActivityTracksCommand.php | 2 +-
app/Console/Kernel.php | 6 +-
app/Contracts/Services/Calendar/CalendarTrait.php | 80 ++-
app/Events/AutomatedReports/AutomatedReportGenerated.php | 3 +
app/Http/Controllers/API/AiCallScoring/AiScorecardController.php | 7 +-
app/Http/Controllers/API/TeamAiAutomationController.php | 8 +
app/Http/Controllers/CustomerApi/CustomerApiController.php | 4 +-
app/Http/Controllers/Kiosk/ActivityController.php | 58 +-
app/Http/Controllers/Settings/PlaybookController.php | 15 +-
app/Http/Kernel.php | 23 +
app/Http/Middleware/McpAuditMiddleware.php | 156 ++++
app/Http/Middleware/McpTierMiddleware.php | 54 ++
app/Http/Requests/API/V2/ZapierUploadActivityRequest.php | 28 +-
app/Jobs/Activity/Import/ImportTwilioVideoSpeechesJob.php | 25 +-
app/Jobs/Activity/Import/IsActivityReadyForProcessingJob.php | 10 +-
app/Jobs/Calendar/SetupCalendarSync.php | 21 +-
app/Jobs/ImportRemoteTrackJob.php | 96 ++-
app/Jobs/Mailbox/EmailTextRelay.php | 15 +-
app/Mcp/Contracts/McpCallRepositoryInterface.php | 30 +
app/Mcp/DTO/ListCallsFilters.php | 29 +
app/Mcp/Errors/McpError.php | 123 ++++
app/Mcp/Repositories/McpActivityHydrator.php | 145 ++++
app/Mcp/Repositories/McpCallRepository.php | 84 +++
app/Mcp/Repositories/McpElasticCallRepository.php | 171 +++++
app/Mcp/Servers/JiminnyServer.php | 38 +
app/Mcp/Tools/ListCallsTool.php | 205 ++++++
app/Models/Activity.php | 10 +-
app/Models/Activity/Transcription.php | 17 +-
app/Models/ElasticSearch/OpportunityElasticSearchTrait.php | 5 +
app/Models/Participant.php | 1 +
app/Providers/AppServiceProvider.php | 22 +
app/Repositories/Crm/ContactRepository.php | 69 +-
app/Repositories/ParticipantSpeechRepository.php | 13 +-
app/Services/Activity/ParticipantsService.php | 19 +-
app/Services/Activity/Twilio/S3RecordingCredentialsService.php | 82 +++
app/Services/ActivityService.php | 21 +-
app/Services/Calendar/CalendarActivityService.php | 46 ++
app/Services/Calendar/Command/ImportParticipants.php | 1 +
app/Services/Calendar/Command/MapActivityData.php | 106 +--
app/Services/Calendar/GoogleCalendarService.php | 12 +-
app/Services/Crm/Close/Processor/OpportunityProcessor.php | 2 +-
app/Services/Crm/Close/Service.php | 22 +-
app/Services/Crm/Copper/Service.php | 12 +-
app/Services/Crm/Hubspot/Service.php | 154 +++-
app/Services/Crm/Hubspot/ServiceTraits/OpportunitySyncTrait.php | 88 ++-
app/Services/Crm/IntegrationApp/ServiceTraits/SyncCrmEntitiesTrait.php | 22 +-
app/Services/Crm/Pipedrive/Service.php | 17 +-
app/Services/Crm/Salesforce/Service.php | 42 +-
app/Services/Mail/Office/EmailApiClient.php | 129 +---
app/Services/RecallAI/Commands/ScheduleBotCommand.php | 39 +-
app/Services/RecallAI/RecallAIService.php | 22 +-
composer.json | 3 +-
composer.lock | 87 ++-
config/mcp.php | 23 +
database/migrations/2026_04_30_120000_create_mcp_audit_log_table.php | 36 +
docs/mcp/explorer/explorer.html | 697 ++++++++++++++++++
docs/mcp/explorer/explorer.template.html | 697 ++++++++++++++++++
docs/mcp/explorer/generate.js | 215 ++++++
docs/mcp/explorer/tool-explorer-meta.json | 11 +
docs/mcp/tools-list.json | 2536 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
docs/mcp/tools.md | 621 ++++++++++++++++
front-end/package.json | 4 +-
front-end/src/components/Settings/OrgSettings/AiAutomation/CrmFilling/TemplateFieldForm.vue | 28 +-
front-end/src/components/Settings/OrgSettings/Playbooks/AddEditPlaybook.vue | 10 +
front-end/src/components/playback/comments/ActivityComment.less | 10 +-
front-end/src/components/shared/PromptTester/PromptTester.vue | 12 +-
front-end/src/components/shared/__tests__/PromptTester.spec.js | 35 +
front-end/src/components/shared/modals/EntityPickerModal/__tests__/useEntitiesCache.spec.ts | 37 +
front-end/src/components/shared/modals/EntityPickerModal/useEntitiesCache.ts | 9 +
front-end/yarn.lock | 16 +-
phpstan-baseline.neon | 50 --
routes/api.php | 11 +
sonar-project.properties | 91 ++-
tests/Feature/Component/Nudge/ProcessOrganisationImmediateNudgesJobTest.php | 534 ++++++++++++++
tests/Feature/Jobs/ImportRemoteTrackJobTest.php | 283 +++++++-
tests/Feature/Mcp/IssueMcpTokenCommandTest.php | 53 ++
tests/Feature/Mcp/ListCallsToolElasticFeatureTest.php | 155 ++++
tests/Feature/Mcp/ListCallsToolFeatureTest.php | 352 ++++++++++
tests/Feature/Mcp/McpTestHelpersTrait.php | 77 ++
tests/Feature/Services/Team/TeamDeleteHandlers/Retention/RetentionRepositoryHandlerTest.php | 1 +
tests/Stubs/SentryStub.php | 18 +
tests/Unit/Component/ActivityAnalytics/Service/CalculateTalkTimeOffsetFromTranscriptionTest.php | 28 +-
tests/Unit/Component/AiActivityType/Services/AiActivityTypeEligibilityCheckerTest.php | 103 ++-
tests/Unit/Component/AiAutomation/Actions/PrepareUpdateDtoActionTest.php | 91 +++
tests/Unit/Component/AiAutomation/Services/CrmFillingEligibilityCheckerTest.php | 124 ++++
tests/Unit/Component/AiAutomation/TestCrmAiPromptServiceTest.php | 67 +-
tests/Unit/Component/AiCallScoring/Services/AiCallScoringEligibilityCheckerTest.php | 55 ++
tests/Unit/Component/ES/ElasticSearchWorkerManagerTest.php | 135 ----
tests/Unit/Component/ES/Processor/Actions/LoadDocumentsActionTest.php | 220 ++++++
tests/Unit/Component/ES/Processor/EntityQueryBuilderTest.php | 21 +-
tests/Unit/Component/ES/Processor/Traits/SkipActivityTraitTest.php | 51 --
tests/Unit/Component/ES/Worker/ActivityWorkerTest.php | 174 -----
tests/Unit/Component/ES/Worker/EntityWorkerTest.php | 97 ---
tests/Unit/Component/ES/Worker/WorkerAmountTest.php | 116 ---
tests/Unit/Component/Encoding/Job/AnalyzeTrackChannelsJobTest.php | 52 +-
tests/Unit/Component/Encoding/Service/GenerateSpeechFromSilenceServiceTest.php | 171 ++---
tests/Unit/Component/FFMpeg/Services/GetSpeechIntervalsTest.php | 36 +-
tests/Unit/Component/LanguageDetection/Services/FindSpeechTimeServiceTest.php | 20 +-
tests/Unit/Component/MobileSettings/MobileSettingsControllerTest.php | 5 +-
tests/Unit/Component/ParticipantSpeech/Services/ParticipantSpeechesCreatorTest.php | 75 ++
tests/Unit/Component/ParticipantSpeech/Services/ParticipantSpeechesDeleterTest.php | 63 ++
tests/Unit/Component/ParticipantSpeech/Services/ParticipantSpeechesProviderTest.php | 134 ++++
tests/Unit/Component/ParticipantSpeech/Services/ParticipantSpeechesUploaderTest.php | 57 ++
tests/Unit/Component/Transcription/Diarization/Services/GetNormalizedParticipantSpeechesServiceTest.php | 51 +-
tests/Unit/Component/Transcription/Diarization/Source/MeetingBotSourceTest.php | 29 +-
tests/Unit/Contracts/Services/Calendar/CalendarTraitTest.php | 58 +-
tests/Unit/Http/Controllers/Kiosk/ActivityControllerTest.php | 159 +++++
tests/Unit/Jobs/Activity/Import/ImportTwilioVideoSpeechesJobTest.php | 22 +-
tests/Unit/Jobs/Activity/Import/IsActivityReadyForProcessingJobTest.php | 26 +-
tests/Unit/Jobs/Calendar/SetupCalendarSyncTest.php | 25 -
tests/Unit/Services/Activity/ParticipantsServiceTest.php | 12 +-
tests/Unit/Services/Activity/Twilio/S3RecordingCredentialsServiceTest.php | 180 +++++
tests/Unit/Services/ActivityServiceTest.php | 132 ++++
tests/Unit/Services/Calendar/CalendarActivityServiceTest.php | 150 +++-
tests/Unit/Services/Calendar/Command/ImportParticipantsTest.php | 6 +-
tests/Unit/Services/Calendar/Command/MapActivityDataTest.php | 78 +-
tests/Unit/Services/Calendar/GoogleCalendarServiceTest.php | 116 +++
tests/Unit/Services/Crm/Close/ServiceTest.php | 165 +++++
tests/Unit/Services/Crm/Hubspot/ServiceTest.php | 272 ++++++-
tests/Unit/Services/Crm/Hubspot/ServiceTraits/OpportunitySyncTest.php | 25 +-
tests/Unit/Services/Crm/Hubspot/ServiceTraits/OpportunitySyncTraitMatchActivitiesTest.php | 3 +-
tests/Unit/Services/Crm/IntegrationApp/ServiceTraits/SyncCrmEntitiesTraitOpportunitiesTest.php | 40 ++
tests/Unit/Services/Crm/Pipedrive/ImportOpportunityMatchActivitiesTest.php | 2 +
tests/Unit/Services/Crm/Salesforce/ServiceTest.php | 139 ++++
tests/Unit/Services/Mail/Office/EmailApiClientTest.php | 195 ++---
tests/Unit/Services/RecallAI/RecallAIServiceTest.php | 24 +-
175 files changed, 12562 insertions(+), 2162 deletions(-)
create mode 120000 CLAUDE.md
create mode 100644 app/Component/AiAutomation/Services/CrmFillingEligibilityChecker.php
delete mode 100644 app/Component/ES/ElasticSearchWorkerManager.php
delete mode 100644 app/Component/ES/Processor/Traits/SkipActivityTrait.php
delete mode 100644 app/Component/ES/Worker/ActivityWorker.php
delete mode 100644 app/Component/ES/Worker/EntityWorker.php
delete mode 100644 app/Component/ES/Worker/WorkerAmount.php
delete mode 100644 app/Component/ES/Worker/WorkerInterface.php
create mode 100644 app/Component/ProphetAi/Exceptions/InsufficientTranscriptException.php
create mode 100644 app/Component/Transcription/DTO/Http/Transcription/AssemblyAI/AssemblyAI/NoAssemblyIdException.php
create mode 100644 app/Component/Transcription/DTO/Http/Transcription/TranscriptionIsNotCorrectFormatException.php
create mode 100644 app/Console/Commands/Activities/SetupIntegration/TwilioSetS3RecordingCredentialsCommand.php
create mode 100644 app/Console/Commands/Crm/BackfillOpportunityUserFromAccountCommand.php
delete mode 100644 app/Console/Commands/Elasticsearch/AsyncUpdateEsActivities.php
create mode 100644 app/Console/Commands/IssueMcpTokenCommand.php
create mode 100644 app/Http/Middleware/McpAuditMiddleware.php
create mode 100644 app/Http/Middleware/McpTierMiddleware.php
create mode 100644 app/Mcp/Contracts/McpCallRepositoryInterface.php
create mode 100644 app/Mcp/DTO/ListCallsFilters.php
create mode 100644 app/Mcp/Errors/McpError.php
create mode 100644 app/Mcp/Repositories/McpActivityHydrator.php
create mode 100644 app/Mcp/Repositories/McpCallRepository.php
create mode 100644 app/Mcp/Repositories/McpElasticCallRepository.php
create mode 100644 app/Mcp/Servers/JiminnyServer.php
create mode 100644 app/Mcp/Tools/ListCallsTool.php
create mode 100644 app/Services/Activity/Twilio/S3RecordingCredentialsService.php
create mode 100644 config/mcp.php
create mode 100644 database/migrations/2026_04_30_120000_create_mcp_audit_log_table.php
create mode 100644 docs/mcp/explorer/explorer.html
create mode 100644 docs/mcp/explorer/explorer.template.html
create mode 100644 docs/mcp/explorer/generate.js
create mode 100644 docs/mcp/explorer/tool-explorer-meta.json
create mode 100644 docs/mcp/tools-list.json
create mode 100644 docs/mcp/tools.md
create mode 100644 front-end/src/components/shared/modals/EntityPickerModal/__tests__/useEntitiesCache.spec.ts
create mode 100644 tests/Feature/Component/Nudge/ProcessOrganisationImmediateNudgesJobTest.php
create mode 100644 tests/Feature/Mcp/IssueMcpTokenCommandTest.php
create mode 100644 tests/Feature/Mcp/ListCallsToolElasticFeatureTest.php
create mode 100644 tests/Feature/Mcp/ListCallsToolFeatureTest.php
create mode 100644 tests/Feature/Mcp/McpTestHelpersTrait.php
create mode 100644 tests/Stubs/SentryStub.php
create mode 100644 tests/Unit/Component/AiAutomation/Services/CrmFillingEligibilityCheckerTest.php
delete mode 100644 tests/Unit/Component/ES/ElasticSearchWorkerManagerTest.php
create mode 100644 tests/Unit/Component/ES/Processor/Actions/LoadDocumentsActionTest.php
delete mode 100644 tests/Unit/Component/ES/Processor/Traits/SkipActivityTraitTest.php
delete mode 100644 tests/Unit/Component/ES/Worker/ActivityWorkerTest.php
delete mode 100644 tests/Unit/Component/ES/Worker/EntityWorkerTest.php
delete mode 100644 tests/Unit/Component/ES/Worker/WorkerAmountTest.php
create mode 100644 tests/Unit/Component/ParticipantSpeech/Services/ParticipantSpeechesCreatorTest.php
create mode 100644 tests/Unit/Http/Controllers/Kiosk/ActivityControllerTest.php
create mode 100644 tests/Unit/Services/Activity/Twilio/S3RecordingCredentialsServiceTest.php
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20725-handle-HS-search-rate-limit) $ git status
On branch master
Your branch is behind 'origin/master' by 114 commits, and can be fast-forwarded.
(use "git pull" to update your local branch)
Changes not staged for commit:
(use "git add <file>..." to update what will be committed)
(use "git restore <file>..." to discard changes in working directory)
modified: .env.local
modified: app/Component/SCIM/Constants.php
modified: app/Component/SCIM/ScimProvisioning.php
modified: app/Component/Twilio/Conference/ConferenceManager/SoftPhoneManager.php
modified: app/Console/Commands/JiminnyDebugCommand.php
modified: app/DTO/SCIM/AAD/Request/CoreUserRequest.php
modified: app/DTO/SCIM/AAD/Response/CoreUser.php
modified: app/Services/Telephony/TextMessagingService.php
modified: config/logging.php
Untracked files:
(use "git add <file>..." to include in what will be committed)
.env.nikilocal
.env.other
WEBHOOK_FILTERING_IMPLEMENTATION.md
app/Component/SCIM/Mutators/Attributes/User/RoleAttr.php
app/Console/Commands/Crm/Hubspot/SimulateWebhooksCommand.php
app/Console/Commands/Reports/CreateMockAskJiminnyReportResultCommand.php
app/Rules/ListenerRoleCannotHaveAdminOrManagerPermissionRule.php
ids.txt
public/favicon.ico
raw_sql_query.sql
tests/Unit/Component/SCIM/Mutators/Attributes/User/RoleAttrTest.php
tests/Unit/Policies/CanAccessAiReportsTest.php
tests/Unit/Rules/ListenerRoleCannotHaveAdminOrManagerPermissionRuleTest.php
no changes added to commit (use "git add" and/or "git commit -a")
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (master) $ git pull
remote: Enumerating objects: 306, done.
remote: Counting objects: 100% (299/299), done.
remote: Compressing objects: 100% (183/183), done.
remote: Total 306 (delta 213), reused 171 (delta 116), pack-reused 7 (from 1)
Receiving objects: 100% (306/306), 80.12 KiB | 1000.00 KiB/s, done.
Resolving deltas: 100% (213/213), completed with 53 local objects.
From github.com:jiminny/app
90bca4e4b2..5604af40cf master -> origin/master
4e7078fd8b..0b8343d179 JY-18091-upgrade-to-php-8-5 -> origin/JY-18091-upgrade-to-php-8-5
098eeaa087..d5a447e492 JY-20613-allow-owner-role-on-team-setup -> origin/JY-20613-allow-owner-role-on-team-setup
c3a76ace91..af65249d0f JY-20749-user-can-view-recorded-meetings -> origin/JY-20749-user-can-view-recorded-meetings
d94a285ae7..7ce96cb5fe JY-20808-low-priority-indexing-queue -> origin/JY-20808-low-priority-indexing-queue
* [new branch] JY-20842-remove-partial-updater -> origin/JY-20842-remove-partial-updater
* [new branch] JY-20920-fix-participant-flip -> origin/JY-20920-fix-participant-flip
* [new branch] secfix/npm-20260519 -> origin/secfix/npm-20260519
Updating cb4ebf0c36..5604af40cf
Fast-forward
app/Component/ES/ChunkSize.php | 54 +++++++++++++++++++
app/Component/ES/Processor/DTOs/SelectionList.php | 4 +-
app/Component/ES/Processor/TargetEntitiesSelector.php | 19 ++++---
app/Component/MeetingBot/Service/ParticipantMatcher.php | 46 ++++++++++++----
app/Exceptions/RateLimitException.php | 19 ++++++-
app/Http/Middleware/McpTierMiddleware.php | 27 ++--------
app/Jobs/Crm/MatchActivityCrmData.php | 47 ++++++++++++----
app/Jobs/Middleware/HandleHubspotRateLimit.php | 42 +++++++++++++++
app/Mcp/Servers/JiminnyServer.php | 2 +
app/Mcp/Tools/GetMeTool.php | 157 +++++++++++++++++++++++++++++++++++++++++++++++++++++
app/Models/Feature/FeatureEnum.php | 1 +
app/Services/Activity/HubSpot/ProviderResolver.php | 4 +-
app/Services/Activity/HubSpot/ProviderResolverInterface.php | 2 +-
app/Services/Activity/HubSpot/Providers/Provider.php | 2 +-
app/Services/Activity/HubSpot/Providers/ProviderKixie.php | 2 +-
app/Services/Activity/HubSpot/Providers/ProviderOrum.php | 2 +-
app/Services/Activity/HubSpot/Providers/ProviderTwilio.php | 2 +-
app/Services/Activity/HubSpot/Providers/ProviderTwilioFlex.php | 5 +-
app/Services/Activity/HubSpot/Service.php | 97 +++++++++++++++++++++++++++------
app/Services/Crm/Hubspot/Client.php | 132 +++++++++++++++++++++++++++++++++++++++++++++
app/Services/Crm/Hubspot/HubspotClientInterface.php | 15 ++++++
app/Services/Crm/Hubspot/Pagination/HubspotPaginationService.php | 21 ++++----
app/Services/Crm/Hubspot/Pagination/PaginationState.php | 2 +-
database/migrations/2026_05_13_124153_create_mcp_feature_flag.php | 25 +++++++++
tests/Feature/Mcp/GetMeToolFeatureTest.php | 140 +++++++++++++++++++++++++++++++++++++++++++++++
tests/Feature/Mcp/ListCallsToolFeatureTest.php | 2 +-
tests/Feature/Mcp/McpTestHelpersTrait.php | 19 ++++++-
tests/Unit/Component/ES/ChunkSizeTest.php | 50 +++++++++++++++++
tests/Unit/Component/ES/Processor/DTOs/SelectionListTest.php | 27 +++++++---
tests/Unit/Component/ES/Processor/TargetEntitiesSelectorTest.php | 39 ++++++++------
tests/Unit/Component/MeetingBot/Service/ParticipantMatcherTest.php | 68 ++++++++++++++++++++++-
tests/Unit/Exceptions/RateLimitExceptionTest.php | 56 +++++++++++++++++++
tests/Unit/Jobs/Crm/MatchActivityCrmDataTest.php | 8 +--
tests/Unit/Jobs/Middleware/HandleHubspotRateLimitTest.php | 151 +++++++++++++++++++++++++++++++++++++++++++++++++++
tests/Unit/Services/Activity/HubSpot/ServiceTest.php | 109 +++++++++++++++++++++++++++++++++++++
tests/Unit/Services/Crm/Hubspot/ClientTest.php | 250 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
tests/Unit/Services/Crm/Hubspot/Pagination/HubspotPaginationServiceTest.php | 283 +++++++++++++++++++++---------------------------------------------------------------------------
37 files changed, 1587 insertions(+), 344 deletions(-)
create mode 100644 app/Component/ES/ChunkSize.php
create mode 100644 app/Jobs/Middleware/HandleHubspotRateLimit.php
create mode 100644 app/Mcp/Tools/GetMeTool.php
create mode 100644 database/migrations/2026_05_13_124153_create_mcp_feature_flag.php
create mode 100644 tests/Feature/Mcp/GetMeToolFeatureTest.php
create mode 100644 tests/Unit/Component/ES/ChunkSizeTest.php
create mode 100644 tests/Unit/Exceptions/RateLimitExceptionTest.php
create mode 100644 tests/Unit/Jobs/Middleware/HandleHubspotRateLimitTest.php
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (master) $ git pull
Already up to date.
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (master) $ co -b JY-20676-delete-report-related-objects
Switched to a new branch 'JY-20676-delete-report-related-objects'
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20676-delete-report-related-objects) $ csfix
docker exec -it docker_lamp_1 ./vendor/bin/php-cs-fixer fix --config=.php-cs-fixer.dist.php -v --using-cache=no --diff
PHP CS Fixer 3.87.1 Alexander by Fabien Potencier, Dariusz Ruminski and contributors.
PHP runtime: 8.3.30
Running 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!
Loaded config default from ".php-cs-fixer.dist.php".
5690/5690 [▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓] 100%
1) app/Console/Commands/JiminnyDebugCommand.php (statement_indentation, blank_line_before_statement)
---------- begin diff ----------
--- /home/jiminny/app/Console/Commands/JiminnyDebugCommand.php
+++ /home/jiminny/app/Console/Commands/JiminnyDebugCommand.php
@@ -23,6 +23,7 @@
if ($action === 'redis-set') {
$this->testRedisSet();
+
return;
}
@@ -45,7 +46,7 @@
$ttl = 60;
try {
-// $result = Redis::set($testKey, $testValue, 'EX', $ttl, 'NX');
+ // $result = Redis::set($testKey, $testValue, 'EX', $ttl, 'NX');
$result = Redis::set($testKey, $testValue, ['nx', 'ex' => $ttl]);
if ($result) {
----------- end diff -----------
Fixed 1 of 5690 files i...
|
58093
|
NULL
|
NULL
|
NULL
|
|
58103
|
2047
|
2
|
2026-05-19T11:37:18.209129+00:00
|
/Users/lukas/.screenpipe/data/data/2026-05-19/1779 /Users/lukas/.screenpipe/data/data/2026-05-19/1779190638209_m2.jpg...
|
iTerm2
|
APP (-zsh)
|
1
|
NULL
|
monitor_2
|
NULL
|
NULL
|
NULL
|
NULL
|
Last login: Mon May 18 09:17:28 on ttys007
Poetry Last login: Mon May 18 09:17:28 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 (pipedrive-sdk-poc) $ co master
error: Your local changes to the following files would be overwritten by checkout:
PIPEDRIVE_V2_MIGRATION_TICKETS.md
Please commit your changes or stash them before you switch branches.
Aborting
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (pipedrive-sdk-poc) $ git pull
remote: Enumerating objects: 1047, done.
remote: Counting objects: 100% (832/832), done.
remote: Compressing objects: 100% (298/298), done.
remote: Total 1047 (delta 634), reused 596 (delta 534), pack-reused 215 (from 3)
Receiving objects: 100% (1047/1047), 353.16 KiB | 1.56 MiB/s, done.
Resolving deltas: 100% (687/687), completed with 107 local objects.
From github.com:jiminny/app
907c54896c..34656c53ed pipedrive-sdk-poc -> origin/pipedrive-sdk-poc
03325ec50f..4e7078fd8b JY-18091-upgrade-to-php-8-5 -> origin/JY-18091-upgrade-to-php-8-5
e7d231e163..bc6a3fce6b JY-20725-handle-HS-search-rate-limit -> origin/JY-20725-handle-HS-search-rate-limit
* [new branch] JY-20749-user-can-view-recorded-meetings -> origin/JY-20749-user-can-view-recorded-meetings
98ca281a04..e0351be069 JY-20808-low-priority-indexing-queue -> origin/JY-20808-low-priority-indexing-queue
569abb5149..3906a9238a JY-20835-mcp-enable-users-to-get-a-list-of-deals-and-their-details -> origin/JY-20835-mcp-enable-users-to-get-a-list-of-deals-and-their-details
ad6c2a86e8..50eb6afba9 JY-20846-mcp-enable-the-ai-to-know-details-about-the-user -> origin/JY-20846-mcp-enable-the-ai-to-know-details-about-the-user
* [new branch] JY-20893-chunk-control-per-update-target -> origin/JY-20893-chunk-control-per-update-target
31c62924a5..cb4ebf0c36 master -> origin/master
Updating 907c54896c..34656c53ed
Fast-forward
PIPEDRIVE_V2_MIGRATION_TICKETS.md | 52 ++++++++++++++++++++++++++++++++++++++++++++++++++++
1 file changed, 52 insertions(+)
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (pipedrive-sdk-poc) $ co master
M .env.local
M config/logging.php
Switched to branch 'master'
Your branch is behind 'origin/master' by 31 commits, and can be fast-forwarded.
(use "git pull" to update your local branch)
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (master) $ git pull
Updating 31c62924a5..cb4ebf0c36
Fast-forward
app/Component/ES/Processor/Traits/SelectEntityListTrait.php | 20 ------
app/Services/Calendar/CalendarActivityService.php | 46 +++++++++++++
app/Services/Calendar/Command/MapActivityData.php | 106 +++-------------------------
docs/mcp/explorer/explorer.html | 104 +++++++++++++++++++++++++---
docs/mcp/explorer/explorer.template.html | 102 ++++++++++++++++++++++++---
docs/mcp/tools-list.json | 373 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++-------
docs/mcp/tools.md | 117 +++++++++++++++++++++++--------
tests/Unit/Component/ES/AsyncUpdateElasticSearchTest.php | 16 +----
tests/Unit/Component/ES/Listeners/UpdateMultipleTargetsListenerTest.php | 10 ---
tests/Unit/Component/ES/Listeners/UpdateSingleTargetListenerTest.php | 6 --
tests/Unit/Component/ES/Processor/TargetEntitiesSelectorTest.php | 9 ---
tests/Unit/Component/ES/Processor/Traits/SelectEntityListTraitTest.php | 15 ++--
tests/Unit/Component/ES/UpdateProcessManagerTest.php | 2 -
tests/Unit/Services/Calendar/CalendarActivityServiceTest.php | 150 ++++++++++++++++++++++++++++++++++++++--
tests/Unit/Services/Calendar/Command/MapActivityDataTest.php | 78 ++-------------------
15 files changed, 832 insertions(+), 322 deletions(-)
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (master) $ co -b JY-20613-allow-owner-role-on-team-setup
Switched to a new branch 'JY-20613-allow-owner-role-on-team-setup'
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20613-allow-owner-role-on-team-setup) $ csfix
docker exec -it docker_lamp_1 ./vendor/bin/php-cs-fixer fix --config=.php-cs-fixer.dist.php -v --using-cache=no --diff
PHP CS Fixer 3.87.1 Alexander by Fabien Potencier, Dariusz Ruminski and contributors.
PHP runtime: 8.3.30
Running 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!
Loaded config default from ".php-cs-fixer.dist.php".
5682/5682 [▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓] 100%
Fixed 0 of 5682 files in 56.978 seconds, 67.00 MB memory used
What's next:
Try Docker Debug for seamless, persistent debugging tools in any container or image → docker debug docker_lamp_1
Learn more at [URL_WITH_CREDENTIALS] ~/jiminny/app (JY-20613-allow-owner-role-on-team-setup) $ csfix
docker exec -it docker_lamp_1 ./vendor/bin/php-cs-fixer fix --config=.php-cs-fixer.dist.php -v --using-cache=no --diff
PHP CS Fixer 3.87.1 Alexander by Fabien Potencier, Dariusz Ruminski and contributors.
PHP runtime: 8.3.30
Running 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!
Loaded config default from ".php-cs-fixer.dist.php".
5682/5682 [▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓] 100%
Fixed 0 of 5682 files in 49.910 seconds, 60.00 MB memory used
What's next:
Try Docker Debug for seamless, persistent debugging tools in any container or image → docker debug docker_lamp_1
Learn more at [URL_WITH_CREDENTIALS] ~/jiminny/app (JY-20613-allow-owner-role-on-team-setup) $ git pull
remote: Enumerating objects: 248, done.
remote: Counting objects: 100% (128/128), done.
remote: Compressing objects: 100% (23/23), done.
remote: Total 59 (delta 43), reused 44 (delta 33), pack-reused 0 (from 0)
Unpacking objects: 100% (59/59), 10.48 KiB | 228.00 KiB/s, done.
From github.com:jiminny/app
b7df560451..190239dfd4 JY-20613-allow-owner-role-on-team-setup -> origin/JY-20613-allow-owner-role-on-team-setup
e0351be069..d94a285ae7 JY-20808-low-priority-indexing-queue -> origin/JY-20808-low-priority-indexing-queue
* [new branch] JY-20920-fix-participant-matcher -> origin/JY-20920-fix-participant-matcher
cb4ebf0c36..90bca4e4b2 master -> origin/master
Merge made by the 'ort' strategy.
app/Component/ES/ChunkSize.php | 54 +++++++++++++++++++++++++++
app/Component/ES/Processor/DTOs/SelectionList.php | 4 +-
app/Component/ES/Processor/TargetEntitiesSelector.php | 19 ++++++----
app/Http/Middleware/McpTierMiddleware.php | 27 +++-----------
app/Mcp/Servers/JiminnyServer.php | 2 +
app/Mcp/Tools/GetMeTool.php | 157 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
app/Models/Feature/FeatureEnum.php | 1 +
database/migrations/2026_05_13_124153_create_mcp_feature_flag.php | 25 +++++++++++++
front-end/src/components/Settings/Kiosk/modals/EditTeamModal/EditTeamModal.vue | 52 ++++++++++++++++++--------
front-end/src/components/Settings/Kiosk/modals/EditTeamModal/__tests__/EditTeamModal.spec.js | 14 +++++++
tests/Feature/Mcp/GetMeToolFeatureTest.php | 140 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
tests/Feature/Mcp/ListCallsToolFeatureTest.php | 2 +-
tests/Feature/Mcp/McpTestHelpersTrait.php | 19 +++++++++-
tests/Unit/Component/ES/ChunkSizeTest.php | 50 +++++++++++++++++++++++++
tests/Unit/Component/ES/Processor/DTOs/SelectionListTest.php | 27 ++++++++++----
tests/Unit/Component/ES/Processor/TargetEntitiesSelectorTest.php | 39 +++++++++++---------
16 files changed, 557 insertions(+), 75 deletions(-)
create mode 100644 app/Component/ES/ChunkSize.php
create mode 100644 app/Mcp/Tools/GetMeTool.php
create mode 100644 database/migrations/2026_05_13_124153_create_mcp_feature_flag.php
create mode 100644 tests/Feature/Mcp/GetMeToolFeatureTest.php
create mode 100644 tests/Unit/Component/ES/ChunkSizeTest.php
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20613-allow-owner-role-on-team-setup) $ git push
Enumerating objects: 40, done.
Counting objects: 100% (34/34), done.
Delta compression using up to 8 threads
Compressing objects: 100% (18/18), done.
Writing objects: 100% (18/18), 1.58 KiB | 1.58 MiB/s, done.
Total 18 (delta 15), reused 0 (delta 0), pack-reused 0
remote: Resolving deltas: 100% (15/15), completed with 13 local objects.
To github.com:jiminny/app.git
190239dfd4..ec1b261264 JY-20613-allow-owner-role-on-team-setup -> JY-20613-allow-owner-role-on-team-setup
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20613-allow-owner-role-on-team-setup) $ gbr
* JY-20613-allow-owner-role-on-team-setup
pipedrive-sdk-poc
master
JY-20903-update_activity-stage-on-opportunity-change
JY-20904-fix-update-es-on-activity-command
JY-20891-improve-sms-text-relays
JY-20725-handle-HS-search-rate-limit
JY-20818-move-AJ-reports-to-separated-datadog-metric
JY-20773-fix-automated-reports-user-pilot-tracking
JY-20157-AJ-report-not-send-notification
JY-20508-notify-before-AJ-report-expiration
JY-20372-ai-reports-promotion-pages
JY-20352-sync-opportunities-without-a-local-owner-user-id-is-null
JY-20738-debug-AJ-tracking-UP
a
JY-18909-automated-reports-ask-jiminny
JY-20692-fix-integration-app-[API_KEY]
JY-20553-debug-crm-sync-delays
JY-20698-fix-SF-activity-types-on-new-playbook
JY-20543-AJ-report-tracking
JY-20384-handle-auto-sync-with-no-access-to-event-type
JY-20458-ask-jiminny-user-definitions
JY-19666-fix-import-contacts-account-association
JY-19666-HS-import-contacts-and-accounts-batch-job
JY-20458-Ask-Jiminny-Reports
JY-20200-batch-update-CRM-objects-Salesforce
JY-19666-HS-webhooks-add-contact-and-company
JY-20348-trigger-setup-DI-layout-on-team-creation
JY-20326-refactor-info-message-in-command
JY-20317-fix-auto-log-delay-issue-on-all-channels-disabled
JY-20312-remove-on-update-change-last-synced-at-crm-configurations
JY-20306-SF-skip-auto-sync-for-task-based-playbook
JY-20192-remove-deleted-team-from-saved-search-filters
JY-20197-import-opportunity-batch-job
JY-20293-enable-status-field-for-pipedrive-deals
JY-20191-remove-commands-interactive-prompts
JY-20118-change-default-sync-strategy
JY-20183-add-cache-on-auto-log-delay
JY-20197-add-import-opportunity-batch-job
20118-hs-opportunity-make-webhook-strategy-default
JY-20118-make-default-hs-opportunity-sync-strategy-webhook-based
JY-20196-handle-opportunity-without-note
JY-20118-improve-opportunity-import
JY-20189-handle-activity-search-on-deleted-groups
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20613-allow-owner-role-on-team-setup) $ co JY-20725-handle-HS-search-rate-limit
M .env.local
M config/logging.php
Switched to branch 'JY-20725-handle-HS-search-rate-limit'
Your branch is behind 'origin/JY-20725-handle-HS-search-rate-limit' by 439 commits, and can be fast-forwarded.
(use "git pull" to update your local branch)
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20725-handle-HS-search-rate-limit) $ git pull
Updating 0f3e438941..bc6a3fce6b
Fast-forward
.gitignore | 3 +-
.windsurfrules | 168 ++---
CLAUDE.md | 1 +
app/Component/ActivityAnalytics/Service/CalculateTalkTimeOffsetsFromTranscription.php | 24 +-
app/Component/AiActivityType/Services/AiActivityTypeEligibilityChecker.php | 28 +-
app/Component/AiAutomation/Actions/PrepareUpdateDtoAction.php | 32 +-
app/Component/AiAutomation/Services/CrmFillingEligibilityChecker.php | 47 ++
app/Component/AiAutomation/TestCrmAiPromptService.php | 14 +
app/Component/AiCallScoring/Services/AiCallScoringEligibilityChecker.php | 9 +
app/Component/ES/ElasticSearchDocumentPartialUpdater.php | 13 +-
app/Component/ES/ElasticSearchWorkerManager.php | 86 ---
app/Component/ES/Processor/Actions/LoadDocumentsAction.php | 80 +--
app/Component/ES/Processor/EntityQueryBuilder.php | 12 +-
app/Component/ES/Processor/TargetEntitiesSelector.php | 2 +-
app/Component/ES/Processor/Traits/SkipActivityTrait.php | 25 -
app/Component/ES/Repositories/EsResetActivityRepository.php | 11 +-
app/Component/ES/Worker/ActivityWorker.php | 73 --
app/Component/ES/Worker/EntityWorker.php | 44 --
app/Component/ES/Worker/WorkerAmount.php | 60 --
app/Component/ES/Worker/WorkerInterface.php | 15 -
app/Component/ElasticSearch/Contract/Searchable.php | 4 +
app/Component/Encoding/Job/AnalyzeTrackChannelsJob.php | 20 +-
app/Component/Encoding/Service/GenerateSpeechFromSilenceService.php | 85 ++-
app/Component/FFMpeg/Services/GetSpeechIntervalsService.php | 18 +-
app/Component/LanguageDetection/Services/FindSpeechTimeService.php | 22 +-
app/Component/Nudge/Job/ProcessOrganisationImmediateNudgesJob.php | 218 +++++-
app/Component/ParagraphBreaker/Services/TranscriptionParagraphsService.php | 4 +
app/Component/ParticipantSpeech/Services/ParticipantSpeechesCreator.php | 33 +
app/Component/ParticipantSpeech/Services/ParticipantSpeechesDeleter.php | 15 +
app/Component/ParticipantSpeech/Services/ParticipantSpeechesProvider.php | 51 +-
app/Component/ParticipantSpeech/Services/ParticipantSpeechesUploader.php | 36 +
app/Component/ProphetAi/Exceptions/InsufficientTranscriptException.php | 11 +
app/Component/Transcription/DTO/Http/Transcription/AssemblyAI/AssemblyAI/NoAssemblyIdException.php | 11 +
app/Component/Transcription/DTO/Http/Transcription/AssemblyAI/AssemblyAI/SuccessfulResponse.php | 6 +
app/Component/Transcription/DTO/Http/Transcription/TranscriptionIsNotCorrectFormatException.php | 11 +
app/Component/Transcription/Diarization/Services/GetNormalizedParticipantSpeechesService.php | 23 +-
app/Component/Transcription/Diarization/Source/MeetingBotSource.php | 16 +-
app/Component/Transcription/TranscriptionProcessor/TranscriptionProcessor.php | 3 +
app/Console/Commands/Activities/ActivityHardDeleteCommand.php | 4 +-
app/Console/Commands/Activities/Copy.php | 2 +
app/Console/Commands/Activities/SetupIntegration/TwilioSetS3RecordingCredentialsCommand.php | 119 ++++
app/Console/Commands/Activities/UpdateActivityElasticSearchDocumentCommand.php | 10 +-
app/Console/Commands/Crm/BackfillOpportunityUserFromAccountCommand.php | 126 ++++
app/Console/Commands/Elasticsearch/AsyncUpdateEsActivities.php | 19 -
app/Console/Commands/Elasticsearch/AsyncUpdateEsEntities.php | 50 +-
app/Console/Commands/Elasticsearch/ResetAsyncElasticSearchCommand.php | 30 +-
app/Console/Commands/GeckoExport/GeckoExportParticipantSpeechesCommand.php | 14 +-
app/Console/Commands/IssueMcpTokenCommand.php | 84 +++
app/Console/Commands/JiminnyDebugCommand.php | 7 +-
app/Console/Commands/Tracks/CleanupActivityTracksCommand.php | 2 +-
app/Console/Kernel.php | 6 +-
app/Contracts/Services/Calendar/CalendarTrait.php | 80 ++-
app/Events/AutomatedReports/AutomatedReportGenerated.php | 3 +
app/Http/Controllers/API/AiCallScoring/AiScorecardController.php | 7 +-
app/Http/Controllers/API/TeamAiAutomationController.php | 8 +
app/Http/Controllers/CustomerApi/CustomerApiController.php | 4 +-
app/Http/Controllers/Kiosk/ActivityController.php | 58 +-
app/Http/Controllers/Settings/PlaybookController.php | 15 +-
app/Http/Kernel.php | 23 +
app/Http/Middleware/McpAuditMiddleware.php | 156 ++++
app/Http/Middleware/McpTierMiddleware.php | 54 ++
app/Http/Requests/API/V2/ZapierUploadActivityRequest.php | 28 +-
app/Jobs/Activity/Import/ImportTwilioVideoSpeechesJob.php | 25 +-
app/Jobs/Activity/Import/IsActivityReadyForProcessingJob.php | 10 +-
app/Jobs/Calendar/SetupCalendarSync.php | 21 +-
app/Jobs/ImportRemoteTrackJob.php | 96 ++-
app/Jobs/Mailbox/EmailTextRelay.php | 15 +-
app/Mcp/Contracts/McpCallRepositoryInterface.php | 30 +
app/Mcp/DTO/ListCallsFilters.php | 29 +
app/Mcp/Errors/McpError.php | 123 ++++
app/Mcp/Repositories/McpActivityHydrator.php | 145 ++++
app/Mcp/Repositories/McpCallRepository.php | 84 +++
app/Mcp/Repositories/McpElasticCallRepository.php | 171 +++++
app/Mcp/Servers/JiminnyServer.php | 38 +
app/Mcp/Tools/ListCallsTool.php | 205 ++++++
app/Models/Activity.php | 10 +-
app/Models/Activity/Transcription.php | 17 +-
app/Models/ElasticSearch/OpportunityElasticSearchTrait.php | 5 +
app/Models/Participant.php | 1 +
app/Providers/AppServiceProvider.php | 22 +
app/Repositories/Crm/ContactRepository.php | 69 +-
app/Repositories/ParticipantSpeechRepository.php | 13 +-
app/Services/Activity/ParticipantsService.php | 19 +-
app/Services/Activity/Twilio/S3RecordingCredentialsService.php | 82 +++
app/Services/ActivityService.php | 21 +-
app/Services/Calendar/CalendarActivityService.php | 46 ++
app/Services/Calendar/Command/ImportParticipants.php | 1 +
app/Services/Calendar/Command/MapActivityData.php | 106 +--
app/Services/Calendar/GoogleCalendarService.php | 12 +-
app/Services/Crm/Close/Processor/OpportunityProcessor.php | 2 +-
app/Services/Crm/Close/Service.php | 22 +-
app/Services/Crm/Copper/Service.php | 12 +-
app/Services/Crm/Hubspot/Service.php | 154 +++-
app/Services/Crm/Hubspot/ServiceTraits/OpportunitySyncTrait.php | 88 ++-
app/Services/Crm/IntegrationApp/ServiceTraits/SyncCrmEntitiesTrait.php | 22 +-
app/Services/Crm/Pipedrive/Service.php | 17 +-
app/Services/Crm/Salesforce/Service.php | 42 +-
app/Services/Mail/Office/EmailApiClient.php | 129 +---
app/Services/RecallAI/Commands/ScheduleBotCommand.php | 39 +-
app/Services/RecallAI/RecallAIService.php | 22 +-
composer.json | 3 +-
composer.lock | 87 ++-
config/mcp.php | 23 +
database/migrations/2026_04_30_120000_create_mcp_audit_log_table.php | 36 +
docs/mcp/explorer/explorer.html | 697 ++++++++++++++++++
docs/mcp/explorer/explorer.template.html | 697 ++++++++++++++++++
docs/mcp/explorer/generate.js | 215 ++++++
docs/mcp/explorer/tool-explorer-meta.json | 11 +
docs/mcp/tools-list.json | 2536 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
docs/mcp/tools.md | 621 ++++++++++++++++
front-end/package.json | 4 +-
front-end/src/components/Settings/OrgSettings/AiAutomation/CrmFilling/TemplateFieldForm.vue | 28 +-
front-end/src/components/Settings/OrgSettings/Playbooks/AddEditPlaybook.vue | 10 +
front-end/src/components/playback/comments/ActivityComment.less | 10 +-
front-end/src/components/shared/PromptTester/PromptTester.vue | 12 +-
front-end/src/components/shared/__tests__/PromptTester.spec.js | 35 +
front-end/src/components/shared/modals/EntityPickerModal/__tests__/useEntitiesCache.spec.ts | 37 +
front-end/src/components/shared/modals/EntityPickerModal/useEntitiesCache.ts | 9 +
front-end/yarn.lock | 16 +-
phpstan-baseline.neon | 50 --
routes/api.php | 11 +
sonar-project.properties | 91 ++-
tests/Feature/Component/Nudge/ProcessOrganisationImmediateNudgesJobTest.php | 534 ++++++++++++++
tests/Feature/Jobs/ImportRemoteTrackJobTest.php | 283 +++++++-
tests/Feature/Mcp/IssueMcpTokenCommandTest.php | 53 ++
tests/Feature/Mcp/ListCallsToolElasticFeatureTest.php | 155 ++++
tests/Feature/Mcp/ListCallsToolFeatureTest.php | 352 ++++++++++
tests/Feature/Mcp/McpTestHelpersTrait.php | 77 ++
tests/Feature/Services/Team/TeamDeleteHandlers/Retention/RetentionRepositoryHandlerTest.php | 1 +
tests/Stubs/SentryStub.php | 18 +
tests/Unit/Component/ActivityAnalytics/Service/CalculateTalkTimeOffsetFromTranscriptionTest.php | 28 +-
tests/Unit/Component/AiActivityType/Services/AiActivityTypeEligibilityCheckerTest.php | 103 ++-
tests/Unit/Component/AiAutomation/Actions/PrepareUpdateDtoActionTest.php | 91 +++
tests/Unit/Component/AiAutomation/Services/CrmFillingEligibilityCheckerTest.php | 124 ++++
tests/Unit/Component/AiAutomation/TestCrmAiPromptServiceTest.php | 67 +-
tests/Unit/Component/AiCallScoring/Services/AiCallScoringEligibilityCheckerTest.php | 55 ++
tests/Unit/Component/ES/ElasticSearchWorkerManagerTest.php | 135 ----
tests/Unit/Component/ES/Processor/Actions/LoadDocumentsActionTest.php | 220 ++++++
tests/Unit/Component/ES/Processor/EntityQueryBuilderTest.php | 21 +-
tests/Unit/Component/ES/Processor/Traits/SkipActivityTraitTest.php | 51 --
tests/Unit/Component/ES/Worker/ActivityWorkerTest.php | 174 -----
tests/Unit/Component/ES/Worker/EntityWorkerTest.php | 97 ---
tests/Unit/Component/ES/Worker/WorkerAmountTest.php | 116 ---
tests/Unit/Component/Encoding/Job/AnalyzeTrackChannelsJobTest.php | 52 +-
tests/Unit/Component/Encoding/Service/GenerateSpeechFromSilenceServiceTest.php | 171 ++---
tests/Unit/Component/FFMpeg/Services/GetSpeechIntervalsTest.php | 36 +-
tests/Unit/Component/LanguageDetection/Services/FindSpeechTimeServiceTest.php | 20 +-
tests/Unit/Component/MobileSettings/MobileSettingsControllerTest.php | 5 +-
tests/Unit/Component/ParticipantSpeech/Services/ParticipantSpeechesCreatorTest.php | 75 ++
tests/Unit/Component/ParticipantSpeech/Services/ParticipantSpeechesDeleterTest.php | 63 ++
tests/Unit/Component/ParticipantSpeech/Services/ParticipantSpeechesProviderTest.php | 134 ++++
tests/Unit/Component/ParticipantSpeech/Services/ParticipantSpeechesUploaderTest.php | 57 ++
tests/Unit/Component/Transcription/Diarization/Services/GetNormalizedParticipantSpeechesServiceTest.php | 51 +-
tests/Unit/Component/Transcription/Diarization/Source/MeetingBotSourceTest.php | 29 +-
tests/Unit/Contracts/Services/Calendar/CalendarTraitTest.php | 58 +-
tests/Unit/Http/Controllers/Kiosk/ActivityControllerTest.php | 159 +++++
tests/Unit/Jobs/Activity/Import/ImportTwilioVideoSpeechesJobTest.php | 22 +-
tests/Unit/Jobs/Activity/Import/IsActivityReadyForProcessingJobTest.php | 26 +-
tests/Unit/Jobs/Calendar/SetupCalendarSyncTest.php | 25 -
tests/Unit/Services/Activity/ParticipantsServiceTest.php | 12 +-
tests/Unit/Services/Activity/Twilio/S3RecordingCredentialsServiceTest.php | 180 +++++
tests/Unit/Services/ActivityServiceTest.php | 132 ++++
tests/Unit/Services/Calendar/CalendarActivityServiceTest.php | 150 +++-
tests/Unit/Services/Calendar/Command/ImportParticipantsTest.php | 6 +-
tests/Unit/Services/Calendar/Command/MapActivityDataTest.php | 78 +-
tests/Unit/Services/Calendar/GoogleCalendarServiceTest.php | 116 +++
tests/Unit/Services/Crm/Close/ServiceTest.php | 165 +++++
tests/Unit/Services/Crm/Hubspot/ServiceTest.php | 272 ++++++-
tests/Unit/Services/Crm/Hubspot/ServiceTraits/OpportunitySyncTest.php | 25 +-
tests/Unit/Services/Crm/Hubspot/ServiceTraits/OpportunitySyncTraitMatchActivitiesTest.php | 3 +-
tests/Unit/Services/Crm/IntegrationApp/ServiceTraits/SyncCrmEntitiesTraitOpportunitiesTest.php | 40 ++
tests/Unit/Services/Crm/Pipedrive/ImportOpportunityMatchActivitiesTest.php | 2 +
tests/Unit/Services/Crm/Salesforce/ServiceTest.php | 139 ++++
tests/Unit/Services/Mail/Office/EmailApiClientTest.php | 195 ++---
tests/Unit/Services/RecallAI/RecallAIServiceTest.php | 24 +-
175 files changed, 12562 insertions(+), 2162 deletions(-)
create mode 120000 CLAUDE.md
create mode 100644 app/Component/AiAutomation/Services/CrmFillingEligibilityChecker.php
delete mode 100644 app/Component/ES/ElasticSearchWorkerManager.php
delete mode 100644 app/Component/ES/Processor/Traits/SkipActivityTrait.php
delete mode 100644 app/Component/ES/Worker/ActivityWorker.php
delete mode 100644 app/Component/ES/Worker/EntityWorker.php
delete mode 100644 app/Component/ES/Worker/WorkerAmount.php
delete mode 100644 app/Component/ES/Worker/WorkerInterface.php
create mode 100644 app/Component/ProphetAi/Exceptions/InsufficientTranscriptException.php
create mode 100644 app/Component/Transcription/DTO/Http/Transcription/AssemblyAI/AssemblyAI/NoAssemblyIdException.php
create mode 100644 app/Component/Transcription/DTO/Http/Transcription/TranscriptionIsNotCorrectFormatException.php
create mode 100644 app/Console/Commands/Activities/SetupIntegration/TwilioSetS3RecordingCredentialsCommand.php
create mode 100644 app/Console/Commands/Crm/BackfillOpportunityUserFromAccountCommand.php
delete mode 100644 app/Console/Commands/Elasticsearch/AsyncUpdateEsActivities.php
create mode 100644 app/Console/Commands/IssueMcpTokenCommand.php
create mode 100644 app/Http/Middleware/McpAuditMiddleware.php
create mode 100644 app/Http/Middleware/McpTierMiddleware.php
create mode 100644 app/Mcp/Contracts/McpCallRepositoryInterface.php
create mode 100644 app/Mcp/DTO/ListCallsFilters.php
create mode 100644 app/Mcp/Errors/McpError.php
create mode 100644 app/Mcp/Repositories/McpActivityHydrator.php
create mode 100644 app/Mcp/Repositories/McpCallRepository.php
create mode 100644 app/Mcp/Repositories/McpElasticCallRepository.php
create mode 100644 app/Mcp/Servers/JiminnyServer.php
create mode 100644 app/Mcp/Tools/ListCallsTool.php
create mode 100644 app/Services/Activity/Twilio/S3RecordingCredentialsService.php
create mode 100644 config/mcp.php
create mode 100644 database/migrations/2026_04_30_120000_create_mcp_audit_log_table.php
create mode 100644 docs/mcp/explorer/explorer.html
create mode 100644 docs/mcp/explorer/explorer.template.html
create mode 100644 docs/mcp/explorer/generate.js
create mode 100644 docs/mcp/explorer/tool-explorer-meta.json
create mode 100644 docs/mcp/tools-list.json
create mode 100644 docs/mcp/tools.md
create mode 100644 front-end/src/components/shared/modals/EntityPickerModal/__tests__/useEntitiesCache.spec.ts
create mode 100644 tests/Feature/Component/Nudge/ProcessOrganisationImmediateNudgesJobTest.php
create mode 100644 tests/Feature/Mcp/IssueMcpTokenCommandTest.php
create mode 100644 tests/Feature/Mcp/ListCallsToolElasticFeatureTest.php
create mode 100644 tests/Feature/Mcp/ListCallsToolFeatureTest.php
create mode 100644 tests/Feature/Mcp/McpTestHelpersTrait.php
create mode 100644 tests/Stubs/SentryStub.php
create mode 100644 tests/Unit/Component/AiAutomation/Services/CrmFillingEligibilityCheckerTest.php
delete mode 100644 tests/Unit/Component/ES/ElasticSearchWorkerManagerTest.php
create mode 100644 tests/Unit/Component/ES/Processor/Actions/LoadDocumentsActionTest.php
delete mode 100644 tests/Unit/Component/ES/Processor/Traits/SkipActivityTraitTest.php
delete mode 100644 tests/Unit/Component/ES/Worker/ActivityWorkerTest.php
delete mode 100644 tests/Unit/Component/ES/Worker/EntityWorkerTest.php
delete mode 100644 tests/Unit/Component/ES/Worker/WorkerAmountTest.php
create mode 100644 tests/Unit/Component/ParticipantSpeech/Services/ParticipantSpeechesCreatorTest.php
create mode 100644 tests/Unit/Http/Controllers/Kiosk/ActivityControllerTest.php
create mode 100644 tests/Unit/Services/Activity/Twilio/S3RecordingCredentialsServiceTest.php
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20725-handle-HS-search-rate-limit) $ git status
On branch master
Your branch is behind 'origin/master' by 114 commits, and can be fast-forwarded.
(use "git pull" to update your local branch)
Changes not staged for commit:
(use "git add <file>..." to update what will be committed)
(use "git restore <file>..." to discard changes in working directory)
modified: .env.local
modified: app/Component/SCIM/Constants.php
modified: app/Component/SCIM/ScimProvisioning.php
modified: app/Component/Twilio/Conference/ConferenceManager/SoftPhoneManager.php
modified: app/Console/Commands/JiminnyDebugCommand.php
modified: app/DTO/SCIM/AAD/Request/CoreUserRequest.php
modified: app/DTO/SCIM/AAD/Response/CoreUser.php
modified: app/Services/Telephony/TextMessagingService.php
modified: config/logging.php
Untracked files:
(use "git add <file>..." to include in what will be committed)
.env.nikilocal
.env.other
WEBHOOK_FILTERING_IMPLEMENTATION.md
app/Component/SCIM/Mutators/Attributes/User/RoleAttr.php
app/Console/Commands/Crm/Hubspot/SimulateWebhooksCommand.php
app/Console/Commands/Reports/CreateMockAskJiminnyReportResultCommand.php
app/Rules/ListenerRoleCannotHaveAdminOrManagerPermissionRule.php
ids.txt
public/favicon.ico
raw_sql_query.sql
tests/Unit/Component/SCIM/Mutators/Attributes/User/RoleAttrTest.php
tests/Unit/Policies/CanAccessAiReportsTest.php
tests/Unit/Rules/ListenerRoleCannotHaveAdminOrManagerPermissionRuleTest.php
no changes added to commit (use "git add" and/or "git commit -a")
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (master) $ git pull
remote: Enumerating objects: 306, done.
remote: Counting objects: 100% (299/299), done.
remote: Compressing objects: 100% (183/183), done.
remote: Total 306 (delta 213), reused 171 (delta 116), pack-reused 7 (from 1)
Receiving objects: 100% (306/306), 80.12 KiB | 1000.00 KiB/s, done.
Resolving deltas: 100% (213/213), completed with 53 local objects.
From github.com:jiminny/app
90bca4e4b2..5604af40cf master -> origin/master
4e7078fd8b..0b8343d179 JY-18091-upgrade-to-php-8-5 -> origin/JY-18091-upgrade-to-php-8-5
098eeaa087..d5a447e492 JY-20613-allow-owner-role-on-team-setup -> origin/JY-20613-allow-owner-role-on-team-setup
c3a76ace91..af65249d0f JY-20749-user-can-view-recorded-meetings -> origin/JY-20749-user-can-view-recorded-meetings
d94a285ae7..7ce96cb5fe JY-20808-low-priority-indexing-queue -> origin/JY-20808-low-priority-indexing-queue
* [new branch] JY-20842-remove-partial-updater -> origin/JY-20842-remove-partial-updater
* [new branch] JY-20920-fix-participant-flip -> origin/JY-20920-fix-participant-flip
* [new branch] secfix/npm-20260519 -> origin/secfix/npm-20260519
Updating cb4ebf0c36..5604af40cf
Fast-forward
app/Component/ES/ChunkSize.php | 54 +++++++++++++++++++
app/Component/ES/Processor/DTOs/SelectionList.php | 4 +-
app/Component/ES/Processor/TargetEntitiesSelector.php | 19 ++++---
app/Component/MeetingBot/Service/ParticipantMatcher.php | 46 ++++++++++++----
app/Exceptions/RateLimitException.php | 19 ++++++-
app/Http/Middleware/McpTierMiddleware.php | 27 ++--------
app/Jobs/Crm/MatchActivityCrmData.php | 47 ++++++++++++----
app/Jobs/Middleware/HandleHubspotRateLimit.php | 42 +++++++++++++++
app/Mcp/Servers/JiminnyServer.php | 2 +
app/Mcp/Tools/GetMeTool.php | 157 +++++++++++++++++++++++++++++++++++++++++++++++++++++
app/Models/Feature/FeatureEnum.php | 1 +
app/Services/Activity/HubSpot/ProviderResolver.php | 4 +-
app/Services/Activity/HubSpot/ProviderResolverInterface.php | 2 +-
app/Services/Activity/HubSpot/Providers/Provider.php | 2 +-
app/Services/Activity/HubSpot/Providers/ProviderKixie.php | 2 +-
app/Services/Activity/HubSpot/Providers/ProviderOrum.php | 2 +-
app/Services/Activity/HubSpot/Providers/ProviderTwilio.php | 2 +-
app/Services/Activity/HubSpot/Providers/ProviderTwilioFlex.php | 5 +-
app/Services/Activity/HubSpot/Service.php | 97 +++++++++++++++++++++++++++------
app/Services/Crm/Hubspot/Client.php | 132 +++++++++++++++++++++++++++++++++++++++++++++
app/Services/Crm/Hubspot/HubspotClientInterface.php | 15 ++++++
app/Services/Crm/Hubspot/Pagination/HubspotPaginationService.php | 21 ++++----
app/Services/Crm/Hubspot/Pagination/PaginationState.php | 2 +-
database/migrations/2026_05_13_124153_create_mcp_feature_flag.php | 25 +++++++++
tests/Feature/Mcp/GetMeToolFeatureTest.php | 140 +++++++++++++++++++++++++++++++++++++++++++++++
tests/Feature/Mcp/ListCallsToolFeatureTest.php | 2 +-
tests/Feature/Mcp/McpTestHelpersTrait.php | 19 ++++++-
tests/Unit/Component/ES/ChunkSizeTest.php | 50 +++++++++++++++++
tests/Unit/Component/ES/Processor/DTOs/SelectionListTest.php | 27 +++++++---
tests/Unit/Component/ES/Processor/TargetEntitiesSelectorTest.php | 39 ++++++++------
tests/Unit/Component/MeetingBot/Service/ParticipantMatcherTest.php | 68 ++++++++++++++++++++++-
tests/Unit/Exceptions/RateLimitExceptionTest.php | 56 +++++++++++++++++++
tests/Unit/Jobs/Crm/MatchActivityCrmDataTest.php | 8 +--
tests/Unit/Jobs/Middleware/HandleHubspotRateLimitTest.php | 151 +++++++++++++++++++++++++++++++++++++++++++++++++++
tests/Unit/Services/Activity/HubSpot/ServiceTest.php | 109 +++++++++++++++++++++++++++++++++++++
tests/Unit/Services/Crm/Hubspot/ClientTest.php | 250 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
tests/Unit/Services/Crm/Hubspot/Pagination/HubspotPaginationServiceTest.php | 283 +++++++++++++++++++++---------------------------------------------------------------------------
37 files changed, 1587 insertions(+), 344 deletions(-)
create mode 100644 app/Component/ES/ChunkSize.php
create mode 100644 app/Jobs/Middleware/HandleHubspotRateLimit.php
create mode 100644 app/Mcp/Tools/GetMeTool.php
create mode 100644 database/migrations/2026_05_13_124153_create_mcp_feature_flag.php
create mode 100644 tests/Feature/Mcp/GetMeToolFeatureTest.php
create mode 100644 tests/Unit/Component/ES/ChunkSizeTest.php
create mode 100644 tests/Unit/Exceptions/RateLimitExceptionTest.php
create mode 100644 tests/Unit/Jobs/Middleware/HandleHubspotRateLimitTest.php
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (master) $ git pull
Already up to date.
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (master) $ co -b JY-20676-delete-report-related-objects
Switched to a new branch 'JY-20676-delete-report-related-objects'
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20676-delete-report-related-objects) $ csfix
docker exec -it docker_lamp_1 ./vendor/bin/php-cs-fixer fix --config=.php-cs-fixer.dist.php -v --using-cache=no --diff
PHP CS Fixer 3.87.1 Alexander by Fabien Potencier, Dariusz Ruminski and contributors.
PHP runtime: 8.3.30
Running 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!
Loaded config default from ".php-cs-fixer.dist.php".
5690/5690 [▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓] 100%
1) app/Console/Commands/JiminnyDebugCommand.php (statement_indentation, blank_line_before_statement)
---------- begin diff ----------
--- /home/jiminny/app/Console/Commands/JiminnyDebugCommand.php
+++ /home/jiminny/app/Console/Commands/JiminnyDebugCommand.php
@@ -23,6 +23,7 @@
if ($action === 'redis-set') {
$this->testRedisSet();
+
return;
}
@@ -45,7 +46,7 @@
$ttl = 60;
try {
-// $result = Redis::set($testKey, $testValue, 'EX', $ttl, 'NX');
+ // $result = Redis::set($testKey, $testValue, 'EX', $ttl, 'NX');
$result = Redis::set($testKey, $testValue, ['nx', 'ex' => $ttl]);
if ($result) {
----------- end diff -----------
Fixed 1 of 5690 files i...
|
[{"role":"AXTextArea","text [{"role":"AXTextArea","text":"Last login: Mon May 18 09:17:28 on ttys007\n\nPoetry could not find a pyproject.toml file in /Users/lukas/jiminny/app or its parents\n\nPoetry could not find a pyproject.toml file in /Users/lukas/jiminny/app or its parents\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (pipedrive-sdk-poc) $ co master\nerror: Your local changes to the following files would be overwritten by checkout:\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tPIPEDRIVE_V2_MIGRATION_TICKETS.md\nPlease commit your changes or stash them before you switch branches.\nAborting\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (pipedrive-sdk-poc) $ git pull\nremote: Enumerating objects: 1047, done.\nremote: Counting objects: 100% (832/832), done.\nremote: Compressing objects: 100% (298/298), done.\nremote: Total 1047 (delta 634), reused 596 (delta 534), pack-reused 215 (from 3)\nReceiving objects: 100% (1047/1047), 353.16 KiB | 1.56 MiB/s, done.\nResolving deltas: 100% (687/687), completed with 107 local objects.\nFrom github.com:jiminny/app\n 907c54896c..34656c53ed pipedrive-sdk-poc -> origin/pipedrive-sdk-poc\n 03325ec50f..4e7078fd8b JY-18091-upgrade-to-php-8-5 -> origin/JY-18091-upgrade-to-php-8-5\n e7d231e163..bc6a3fce6b JY-20725-handle-HS-search-rate-limit -> origin/JY-20725-handle-HS-search-rate-limit\n * [new branch] JY-20749-user-can-view-recorded-meetings -> origin/JY-20749-user-can-view-recorded-meetings\n 98ca281a04..e0351be069 JY-20808-low-priority-indexing-queue -> origin/JY-20808-low-priority-indexing-queue\n 569abb5149..3906a9238a JY-20835-mcp-enable-users-to-get-a-list-of-deals-and-their-details -> origin/JY-20835-mcp-enable-users-to-get-a-list-of-deals-and-their-details\n ad6c2a86e8..50eb6afba9 JY-20846-mcp-enable-the-ai-to-know-details-about-the-user -> origin/JY-20846-mcp-enable-the-ai-to-know-details-about-the-user\n * [new branch] JY-20893-chunk-control-per-update-target -> origin/JY-20893-chunk-control-per-update-target\n 31c62924a5..cb4ebf0c36 master -> origin/master\nUpdating 907c54896c..34656c53ed\nFast-forward\n PIPEDRIVE_V2_MIGRATION_TICKETS.md | 52 ++++++++++++++++++++++++++++++++++++++++++++++++++++\n 1 file changed, 52 insertions(+)\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (pipedrive-sdk-poc) $ co master\nM\u0000\u0000\u0000\u0000\u0000\u0000\t.env.local\nM\u0000\u0000\u0000\u0000\u0000\u0000\tconfig/logging.php\nSwitched to branch 'master'\nYour branch is behind 'origin/master' by 31 commits, and can be fast-forwarded.\n (use \"git pull\" to update your local branch)\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (master) $ git pull\nUpdating 31c62924a5..cb4ebf0c36\nFast-forward\n app/Component/ES/Processor/Traits/SelectEntityListTrait.php | 20 ------\n app/Services/Calendar/CalendarActivityService.php | 46 +++++++++++++\n app/Services/Calendar/Command/MapActivityData.php | 106 +++-------------------------\n docs/mcp/explorer/explorer.html | 104 +++++++++++++++++++++++++---\n docs/mcp/explorer/explorer.template.html | 102 ++++++++++++++++++++++++---\n docs/mcp/tools-list.json | 373 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++-------\n docs/mcp/tools.md | 117 +++++++++++++++++++++++--------\n tests/Unit/Component/ES/AsyncUpdateElasticSearchTest.php | 16 +----\n tests/Unit/Component/ES/Listeners/UpdateMultipleTargetsListenerTest.php | 10 ---\n tests/Unit/Component/ES/Listeners/UpdateSingleTargetListenerTest.php | 6 --\n tests/Unit/Component/ES/Processor/TargetEntitiesSelectorTest.php | 9 ---\n tests/Unit/Component/ES/Processor/Traits/SelectEntityListTraitTest.php | 15 ++--\n tests/Unit/Component/ES/UpdateProcessManagerTest.php | 2 -\n tests/Unit/Services/Calendar/CalendarActivityServiceTest.php | 150 ++++++++++++++++++++++++++++++++++++++--\n tests/Unit/Services/Calendar/Command/MapActivityDataTest.php | 78 ++-------------------\n 15 files changed, 832 insertions(+), 322 deletions(-)\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (master) $ co -b JY-20613-allow-owner-role-on-team-setup\nSwitched to a new branch 'JY-20613-allow-owner-role-on-team-setup'\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20613-allow-owner-role-on-team-setup) $ csfix\ndocker exec -it docker_lamp_1 ./vendor/bin/php-cs-fixer fix --config=.php-cs-fixer.dist.php -v --using-cache=no --diff \nPHP CS Fixer 3.87.1 Alexander by Fabien Potencier, Dariusz Ruminski and contributors.\nPHP runtime: 8.3.30\nRunning analysis on 7 cores with 10 files per process.\nParallel runner is an experimental feature and may be unstable, use it at your own risk. Feedback highly appreciated!\nLoaded config default from \".php-cs-fixer.dist.php\".\n 5682/5682 [▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓] 100%\n\n\nFixed 0 of 5682 files in 56.978 seconds, 67.00 MB memory used\n\nWhat's next:\n Try Docker Debug for seamless, persistent debugging tools in any container or image → docker debug docker_lamp_1\n Learn more at https://docs.docker.com/go/debug-cli/\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20613-allow-owner-role-on-team-setup) $ ;xd\ndocker exec -it docker_lamp_1 bash -c \"mv /usr/local/etc/php/conf.d/xdebug.ini ~/xdebug.ini\"\n\nWhat's next:\n Try Docker Debug for seamless, persistent debugging tools in any container or image → docker debug docker_lamp_1\n Learn more at https://docs.docker.com/go/debug-cli/\ndocker exec -it docker_lamp_1 supervisorctl restart all\njiminny-worker-processing-2:jiminny-worker-processing-2_00: stopped\njiminny-worker-processing-3:jiminny-worker-processing-3_00: stopped\njiminny-worker-processing-4:jiminny-worker-processing-4_00: stopped\njiminny-worker-processing-5:jiminny-worker-processing-5_00: stopped\njiminny-worker-processing-delayed:jiminny-worker-processing-delayed_00: stopped\nworker-analytics:worker-analytics_00: stopped\nworker-crm-update:worker-crm-update_00: stopped\nworker-download:worker-download_00: stopped\nworker-nudges:worker-nudges_00: stopped\nartisan-schedule:artisan-schedule_00: stopped\nworker-emails:worker-emails_00: stopped\nworker-calendar:worker-calendar_00: stopped\nworker:worker_00: stopped\nworker-conferences:worker-conferences_00: stopped\nworker-crm-sync:worker-crm-sync_00: stopped\njiminny-worker-processing-1:jiminny-worker-processing-1_00: stopped\nworker-audio:worker-audio_00: stopped\nworker-es-update:worker-es-update_00: stopped\nartisan-schedule:artisan-schedule_00: started\njiminny-worker-processing-1:jiminny-worker-processing-1_00: started\njiminny-worker-processing-2:jiminny-worker-processing-2_00: started\njiminny-worker-processing-3:jiminny-worker-processing-3_00: started\njiminny-worker-processing-4:jiminny-worker-processing-4_00: started\njiminny-worker-processing-5:jiminny-worker-processing-5_00: started\njiminny-worker-processing-delayed:jiminny-worker-processing-delayed_00: started\nworker:worker_00: started\nworker-analytics:worker-analytics_00: started\nworker-audio:worker-audio_00: started\nworker-calendar:worker-calendar_00: started\nworker-conferences:worker-conferences_00: started\nworker-crm-sync:worker-crm-sync_00: started\nworker-crm-update:worker-crm-update_00: started\nworker-download:worker-download_00: started\nworker-emails:worker-emails_00: started\nworker-es-update:worker-es-update_00: started\nworker-nudges:worker-nudges_00: started\n\nWhat's next:\n Try Docker Debug for seamless, persistent debugging tools in any container or image → docker debug docker_lamp_1\n Learn more at https://docs.docker.com/go/debug-cli/\ndocker exec -it docker_lamp_1 php -v\nPHP 8.3.30 (cli) (built: Mar 16 2026 22:32:32) (NTS)\nCopyright (c) The PHP Group\nZend Engine v4.3.30, Copyright (c) Zend Technologies\n with Zend OPcache v8.3.30, Copyright (c), by Zend Technologies\n\nWhat's next:\n Try Docker Debug for seamless, persistent debugging tools in any container or image → docker debug docker_lamp_1\n Learn more at https://docs.docker.com/go/debug-cli/\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20613-allow-owner-role-on-team-setup) $ csfix\ndocker exec -it docker_lamp_1 ./vendor/bin/php-cs-fixer fix --config=.php-cs-fixer.dist.php -v --using-cache=no --diff \nPHP CS Fixer 3.87.1 Alexander by Fabien Potencier, Dariusz Ruminski and contributors.\nPHP runtime: 8.3.30\nRunning analysis on 7 cores with 10 files per process.\nParallel runner is an experimental feature and may be unstable, use it at your own risk. Feedback highly appreciated!\nLoaded config default from \".php-cs-fixer.dist.php\".\n 5682/5682 [▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓] 100%\n\n\nFixed 0 of 5682 files in 49.910 seconds, 60.00 MB memory used\n\nWhat's next:\n Try Docker Debug for seamless, persistent debugging tools in any container or image → docker debug docker_lamp_1\n Learn more at https://docs.docker.com/go/debug-cli/\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20613-allow-owner-role-on-team-setup) $ git status\nOn branch JY-20613-allow-owner-role-on-team-setup\nYour branch is ahead of 'origin/JY-20613-allow-owner-role-on-team-setup' by 1 commit.\n (use \"git push\" to publish your local commits)\n\nChanges not staged for commit:\n (use \"git add <file>...\" to update what will be committed)\n (use \"git restore <file>...\" to discard changes in working directory)\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tmodified: .env.local\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tmodified: config/logging.php\n\nUntracked files:\n (use \"git add <file>...\" to include in what will be committed)\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\t.env.nikilocal\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\t.env.other\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tWEBHOOK_FILTERING_IMPLEMENTATION.md\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tapp/Console/Commands/Crm/Hubspot/SimulateWebhooksCommand.php\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tapp/Console/Commands/Reports/CreateMockAskJiminnyReportResultCommand.php\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tids.txt\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tpublic/favicon.ico\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\traw_sql_query.sql\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\ttests/Unit/Policies/CanAccessAiReportsTest.php\n\nno changes added to commit (use \"git add\" and/or \"git commit -a\")\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20613-allow-owner-role-on-team-setup) $ git pull\nremote: Enumerating objects: 248, done.\nremote: Counting objects: 100% (128/128), done.\nremote: Compressing objects: 100% (23/23), done.\nremote: Total 59 (delta 43), reused 44 (delta 33), pack-reused 0 (from 0)\nUnpacking objects: 100% (59/59), 10.48 KiB | 228.00 KiB/s, done.\nFrom github.com:jiminny/app\n b7df560451..190239dfd4 JY-20613-allow-owner-role-on-team-setup -> origin/JY-20613-allow-owner-role-on-team-setup\n e0351be069..d94a285ae7 JY-20808-low-priority-indexing-queue -> origin/JY-20808-low-priority-indexing-queue\n * [new branch] JY-20920-fix-participant-matcher -> origin/JY-20920-fix-participant-matcher\n cb4ebf0c36..90bca4e4b2 master -> origin/master\nMerge made by the 'ort' strategy.\n app/Component/ES/ChunkSize.php | 54 +++++++++++++++++++++++++++\n app/Component/ES/Processor/DTOs/SelectionList.php | 4 +-\n app/Component/ES/Processor/TargetEntitiesSelector.php | 19 ++++++----\n app/Http/Middleware/McpTierMiddleware.php | 27 +++-----------\n app/Mcp/Servers/JiminnyServer.php | 2 +\n app/Mcp/Tools/GetMeTool.php | 157 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++\n app/Models/Feature/FeatureEnum.php | 1 +\n database/migrations/2026_05_13_124153_create_mcp_feature_flag.php | 25 +++++++++++++\n front-end/src/components/Settings/Kiosk/modals/EditTeamModal/EditTeamModal.vue | 52 ++++++++++++++++++--------\n front-end/src/components/Settings/Kiosk/modals/EditTeamModal/__tests__/EditTeamModal.spec.js | 14 +++++++\n tests/Feature/Mcp/GetMeToolFeatureTest.php | 140 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++\n tests/Feature/Mcp/ListCallsToolFeatureTest.php | 2 +-\n tests/Feature/Mcp/McpTestHelpersTrait.php | 19 +++++++++-\n tests/Unit/Component/ES/ChunkSizeTest.php | 50 +++++++++++++++++++++++++\n tests/Unit/Component/ES/Processor/DTOs/SelectionListTest.php | 27 ++++++++++----\n tests/Unit/Component/ES/Processor/TargetEntitiesSelectorTest.php | 39 +++++++++++---------\n 16 files changed, 557 insertions(+), 75 deletions(-)\n create mode 100644 app/Component/ES/ChunkSize.php\n create mode 100644 app/Mcp/Tools/GetMeTool.php\n create mode 100644 database/migrations/2026_05_13_124153_create_mcp_feature_flag.php\n create mode 100644 tests/Feature/Mcp/GetMeToolFeatureTest.php\n create mode 100644 tests/Unit/Component/ES/ChunkSizeTest.php\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20613-allow-owner-role-on-team-setup) $ git push\nEnumerating objects: 40, done.\nCounting objects: 100% (34/34), done.\nDelta compression using up to 8 threads\nCompressing objects: 100% (18/18), done.\nWriting objects: 100% (18/18), 1.58 KiB | 1.58 MiB/s, done.\nTotal 18 (delta 15), reused 0 (delta 0), pack-reused 0\nremote: Resolving deltas: 100% (15/15), completed with 13 local objects.\nTo github.com:jiminny/app.git\n 190239dfd4..ec1b261264 JY-20613-allow-owner-role-on-team-setup -> JY-20613-allow-owner-role-on-team-setup\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20613-allow-owner-role-on-team-setup) $ gbr\n* JY-20613-allow-owner-role-on-team-setup\n pipedrive-sdk-poc\n master\n JY-20903-update_activity-stage-on-opportunity-change\n JY-20904-fix-update-es-on-activity-command\n JY-20891-improve-sms-text-relays\n JY-20725-handle-HS-search-rate-limit\n JY-20818-move-AJ-reports-to-separated-datadog-metric\n JY-20773-fix-automated-reports-user-pilot-tracking\n JY-20157-AJ-report-not-send-notification\n JY-20508-notify-before-AJ-report-expiration\n JY-20372-ai-reports-promotion-pages\n JY-20352-sync-opportunities-without-a-local-owner-user-id-is-null\n JY-20738-debug-AJ-tracking-UP\n a\n JY-18909-automated-reports-ask-jiminny\n JY-20692-fix-integration-app-token-auth-response-change\n JY-20553-debug-crm-sync-delays\n JY-20698-fix-SF-activity-types-on-new-playbook\n JY-20543-AJ-report-tracking\n JY-20384-handle-auto-sync-with-no-access-to-event-type\n JY-20458-ask-jiminny-user-definitions\n JY-19666-fix-import-contacts-account-association\n JY-19666-HS-import-contacts-and-accounts-batch-job\n JY-20458-Ask-Jiminny-Reports\n JY-20200-batch-update-CRM-objects-Salesforce\n JY-19666-HS-webhooks-add-contact-and-company\n JY-20348-trigger-setup-DI-layout-on-team-creation\n JY-20326-refactor-info-message-in-command\n JY-20317-fix-auto-log-delay-issue-on-all-channels-disabled\n JY-20312-remove-on-update-change-last-synced-at-crm-configurations\n JY-20306-SF-skip-auto-sync-for-task-based-playbook\n JY-20192-remove-deleted-team-from-saved-search-filters\n JY-20197-import-opportunity-batch-job\n JY-20293-enable-status-field-for-pipedrive-deals\n JY-20191-remove-commands-interactive-prompts\n JY-20118-change-default-sync-strategy\n JY-20183-add-cache-on-auto-log-delay\n JY-20197-add-import-opportunity-batch-job\n 20118-hs-opportunity-make-webhook-strategy-default\n JY-20118-make-default-hs-opportunity-sync-strategy-webhook-based\n JY-20196-handle-opportunity-without-note\n JY-20118-improve-opportunity-import\n JY-20189-handle-activity-search-on-deleted-groups\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20613-allow-owner-role-on-team-setup) $ co JY-20725-handle-HS-search-rate-limit\nM\u0000\u0000\u0000\u0000\u0000\u0000\t.env.local\nM\u0000\u0000\u0000\u0000\u0000\u0000\tconfig/logging.php\nSwitched to branch 'JY-20725-handle-HS-search-rate-limit'\nYour branch is behind 'origin/JY-20725-handle-HS-search-rate-limit' by 439 commits, and can be fast-forwarded.\n (use \"git pull\" to update your local branch)\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20725-handle-HS-search-rate-limit) $ git pull\nUpdating 0f3e438941..bc6a3fce6b\nFast-forward\n .gitignore | 3 +-\n .windsurfrules | 168 ++---\n CLAUDE.md | 1 +\n app/Component/ActivityAnalytics/Service/CalculateTalkTimeOffsetsFromTranscription.php | 24 +-\n app/Component/AiActivityType/Services/AiActivityTypeEligibilityChecker.php | 28 +-\n app/Component/AiAutomation/Actions/PrepareUpdateDtoAction.php | 32 +-\n app/Component/AiAutomation/Services/CrmFillingEligibilityChecker.php | 47 ++\n app/Component/AiAutomation/TestCrmAiPromptService.php | 14 +\n app/Component/AiCallScoring/Services/AiCallScoringEligibilityChecker.php | 9 +\n app/Component/ES/ElasticSearchDocumentPartialUpdater.php | 13 +-\n app/Component/ES/ElasticSearchWorkerManager.php | 86 ---\n app/Component/ES/Processor/Actions/LoadDocumentsAction.php | 80 +--\n app/Component/ES/Processor/EntityQueryBuilder.php | 12 +-\n app/Component/ES/Processor/TargetEntitiesSelector.php | 2 +-\n app/Component/ES/Processor/Traits/SkipActivityTrait.php | 25 -\n app/Component/ES/Repositories/EsResetActivityRepository.php | 11 +-\n app/Component/ES/Worker/ActivityWorker.php | 73 --\n app/Component/ES/Worker/EntityWorker.php | 44 --\n app/Component/ES/Worker/WorkerAmount.php | 60 --\n app/Component/ES/Worker/WorkerInterface.php | 15 -\n app/Component/ElasticSearch/Contract/Searchable.php | 4 +\n app/Component/Encoding/Job/AnalyzeTrackChannelsJob.php | 20 +-\n app/Component/Encoding/Service/GenerateSpeechFromSilenceService.php | 85 ++-\n app/Component/FFMpeg/Services/GetSpeechIntervalsService.php | 18 +-\n app/Component/LanguageDetection/Services/FindSpeechTimeService.php | 22 +-\n app/Component/Nudge/Job/ProcessOrganisationImmediateNudgesJob.php | 218 +++++-\n app/Component/ParagraphBreaker/Services/TranscriptionParagraphsService.php | 4 +\n app/Component/ParticipantSpeech/Services/ParticipantSpeechesCreator.php | 33 +\n app/Component/ParticipantSpeech/Services/ParticipantSpeechesDeleter.php | 15 +\n app/Component/ParticipantSpeech/Services/ParticipantSpeechesProvider.php | 51 +-\n app/Component/ParticipantSpeech/Services/ParticipantSpeechesUploader.php | 36 +\n app/Component/ProphetAi/Exceptions/InsufficientTranscriptException.php | 11 +\n app/Component/Transcription/DTO/Http/Transcription/AssemblyAI/AssemblyAI/NoAssemblyIdException.php | 11 +\n app/Component/Transcription/DTO/Http/Transcription/AssemblyAI/AssemblyAI/SuccessfulResponse.php | 6 +\n app/Component/Transcription/DTO/Http/Transcription/TranscriptionIsNotCorrectFormatException.php | 11 +\n app/Component/Transcription/Diarization/Services/GetNormalizedParticipantSpeechesService.php | 23 +-\n app/Component/Transcription/Diarization/Source/MeetingBotSource.php | 16 +-\n app/Component/Transcription/TranscriptionProcessor/TranscriptionProcessor.php | 3 +\n app/Console/Commands/Activities/ActivityHardDeleteCommand.php | 4 +-\n app/Console/Commands/Activities/Copy.php | 2 +\n app/Console/Commands/Activities/SetupIntegration/TwilioSetS3RecordingCredentialsCommand.php | 119 ++++\n app/Console/Commands/Activities/UpdateActivityElasticSearchDocumentCommand.php | 10 +-\n app/Console/Commands/Crm/BackfillOpportunityUserFromAccountCommand.php | 126 ++++\n app/Console/Commands/Elasticsearch/AsyncUpdateEsActivities.php | 19 -\n app/Console/Commands/Elasticsearch/AsyncUpdateEsEntities.php | 50 +-\n app/Console/Commands/Elasticsearch/ResetAsyncElasticSearchCommand.php | 30 +-\n app/Console/Commands/GeckoExport/GeckoExportParticipantSpeechesCommand.php | 14 +-\n app/Console/Commands/IssueMcpTokenCommand.php | 84 +++\n app/Console/Commands/JiminnyDebugCommand.php | 7 +-\n app/Console/Commands/Tracks/CleanupActivityTracksCommand.php | 2 +-\n app/Console/Kernel.php | 6 +-\n app/Contracts/Services/Calendar/CalendarTrait.php | 80 ++-\n app/Events/AutomatedReports/AutomatedReportGenerated.php | 3 +\n app/Http/Controllers/API/AiCallScoring/AiScorecardController.php | 7 +-\n app/Http/Controllers/API/TeamAiAutomationController.php | 8 +\n app/Http/Controllers/CustomerApi/CustomerApiController.php | 4 +-\n app/Http/Controllers/Kiosk/ActivityController.php | 58 +-\n app/Http/Controllers/Settings/PlaybookController.php | 15 +-\n app/Http/Kernel.php | 23 +\n app/Http/Middleware/McpAuditMiddleware.php | 156 ++++\n app/Http/Middleware/McpTierMiddleware.php | 54 ++\n app/Http/Requests/API/V2/ZapierUploadActivityRequest.php | 28 +-\n app/Jobs/Activity/Import/ImportTwilioVideoSpeechesJob.php | 25 +-\n app/Jobs/Activity/Import/IsActivityReadyForProcessingJob.php | 10 +-\n app/Jobs/Calendar/SetupCalendarSync.php | 21 +-\n app/Jobs/ImportRemoteTrackJob.php | 96 ++-\n app/Jobs/Mailbox/EmailTextRelay.php | 15 +-\n app/Mcp/Contracts/McpCallRepositoryInterface.php | 30 +\n app/Mcp/DTO/ListCallsFilters.php | 29 +\n app/Mcp/Errors/McpError.php | 123 ++++\n app/Mcp/Repositories/McpActivityHydrator.php | 145 ++++\n app/Mcp/Repositories/McpCallRepository.php | 84 +++\n app/Mcp/Repositories/McpElasticCallRepository.php | 171 +++++\n app/Mcp/Servers/JiminnyServer.php | 38 +\n app/Mcp/Tools/ListCallsTool.php | 205 ++++++\n app/Models/Activity.php | 10 +-\n app/Models/Activity/Transcription.php | 17 +-\n app/Models/ElasticSearch/OpportunityElasticSearchTrait.php | 5 +\n app/Models/Participant.php | 1 +\n app/Providers/AppServiceProvider.php | 22 +\n app/Repositories/Crm/ContactRepository.php | 69 +-\n app/Repositories/ParticipantSpeechRepository.php | 13 +-\n app/Services/Activity/ParticipantsService.php | 19 +-\n app/Services/Activity/Twilio/S3RecordingCredentialsService.php | 82 +++\n app/Services/ActivityService.php | 21 +-\n app/Services/Calendar/CalendarActivityService.php | 46 ++\n app/Services/Calendar/Command/ImportParticipants.php | 1 +\n app/Services/Calendar/Command/MapActivityData.php | 106 +--\n app/Services/Calendar/GoogleCalendarService.php | 12 +-\n app/Services/Crm/Close/Processor/OpportunityProcessor.php | 2 +-\n app/Services/Crm/Close/Service.php | 22 +-\n app/Services/Crm/Copper/Service.php | 12 +-\n app/Services/Crm/Hubspot/Service.php | 154 +++-\n app/Services/Crm/Hubspot/ServiceTraits/OpportunitySyncTrait.php | 88 ++-\n app/Services/Crm/IntegrationApp/ServiceTraits/SyncCrmEntitiesTrait.php | 22 +-\n app/Services/Crm/Pipedrive/Service.php | 17 +-\n app/Services/Crm/Salesforce/Service.php | 42 +-\n app/Services/Mail/Office/EmailApiClient.php | 129 +---\n app/Services/RecallAI/Commands/ScheduleBotCommand.php | 39 +-\n app/Services/RecallAI/RecallAIService.php | 22 +-\n composer.json | 3 +-\n composer.lock | 87 ++-\n config/mcp.php | 23 +\n database/migrations/2026_04_30_120000_create_mcp_audit_log_table.php | 36 +\n docs/mcp/explorer/explorer.html | 697 ++++++++++++++++++\n docs/mcp/explorer/explorer.template.html | 697 ++++++++++++++++++\n docs/mcp/explorer/generate.js | 215 ++++++\n docs/mcp/explorer/tool-explorer-meta.json | 11 +\n docs/mcp/tools-list.json | 2536 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++\n docs/mcp/tools.md | 621 ++++++++++++++++\n front-end/package.json | 4 +-\n front-end/src/components/Settings/OrgSettings/AiAutomation/CrmFilling/TemplateFieldForm.vue | 28 +-\n front-end/src/components/Settings/OrgSettings/Playbooks/AddEditPlaybook.vue | 10 +\n front-end/src/components/playback/comments/ActivityComment.less | 10 +-\n front-end/src/components/shared/PromptTester/PromptTester.vue | 12 +-\n front-end/src/components/shared/__tests__/PromptTester.spec.js | 35 +\n front-end/src/components/shared/modals/EntityPickerModal/__tests__/useEntitiesCache.spec.ts | 37 +\n front-end/src/components/shared/modals/EntityPickerModal/useEntitiesCache.ts | 9 +\n front-end/yarn.lock | 16 +-\n phpstan-baseline.neon | 50 --\n routes/api.php | 11 +\n sonar-project.properties | 91 ++-\n tests/Feature/Component/Nudge/ProcessOrganisationImmediateNudgesJobTest.php | 534 ++++++++++++++\n tests/Feature/Jobs/ImportRemoteTrackJobTest.php | 283 +++++++-\n tests/Feature/Mcp/IssueMcpTokenCommandTest.php | 53 ++\n tests/Feature/Mcp/ListCallsToolElasticFeatureTest.php | 155 ++++\n tests/Feature/Mcp/ListCallsToolFeatureTest.php | 352 ++++++++++\n tests/Feature/Mcp/McpTestHelpersTrait.php | 77 ++\n tests/Feature/Services/Team/TeamDeleteHandlers/Retention/RetentionRepositoryHandlerTest.php | 1 +\n tests/Stubs/SentryStub.php | 18 +\n tests/Unit/Component/ActivityAnalytics/Service/CalculateTalkTimeOffsetFromTranscriptionTest.php | 28 +-\n tests/Unit/Component/AiActivityType/Services/AiActivityTypeEligibilityCheckerTest.php | 103 ++-\n tests/Unit/Component/AiAutomation/Actions/PrepareUpdateDtoActionTest.php | 91 +++\n tests/Unit/Component/AiAutomation/Services/CrmFillingEligibilityCheckerTest.php | 124 ++++\n tests/Unit/Component/AiAutomation/TestCrmAiPromptServiceTest.php | 67 +-\n tests/Unit/Component/AiCallScoring/Services/AiCallScoringEligibilityCheckerTest.php | 55 ++\n tests/Unit/Component/ES/ElasticSearchWorkerManagerTest.php | 135 ----\n tests/Unit/Component/ES/Processor/Actions/LoadDocumentsActionTest.php | 220 ++++++\n tests/Unit/Component/ES/Processor/EntityQueryBuilderTest.php | 21 +-\n tests/Unit/Component/ES/Processor/Traits/SkipActivityTraitTest.php | 51 --\n tests/Unit/Component/ES/Worker/ActivityWorkerTest.php | 174 -----\n tests/Unit/Component/ES/Worker/EntityWorkerTest.php | 97 ---\n tests/Unit/Component/ES/Worker/WorkerAmountTest.php | 116 ---\n tests/Unit/Component/Encoding/Job/AnalyzeTrackChannelsJobTest.php | 52 +-\n tests/Unit/Component/Encoding/Service/GenerateSpeechFromSilenceServiceTest.php | 171 ++---\n tests/Unit/Component/FFMpeg/Services/GetSpeechIntervalsTest.php | 36 +-\n tests/Unit/Component/LanguageDetection/Services/FindSpeechTimeServiceTest.php | 20 +-\n tests/Unit/Component/MobileSettings/MobileSettingsControllerTest.php | 5 +-\n tests/Unit/Component/ParticipantSpeech/Services/ParticipantSpeechesCreatorTest.php | 75 ++\n tests/Unit/Component/ParticipantSpeech/Services/ParticipantSpeechesDeleterTest.php | 63 ++\n tests/Unit/Component/ParticipantSpeech/Services/ParticipantSpeechesProviderTest.php | 134 ++++\n tests/Unit/Component/ParticipantSpeech/Services/ParticipantSpeechesUploaderTest.php | 57 ++\n tests/Unit/Component/Transcription/Diarization/Services/GetNormalizedParticipantSpeechesServiceTest.php | 51 +-\n tests/Unit/Component/Transcription/Diarization/Source/MeetingBotSourceTest.php | 29 +-\n tests/Unit/Contracts/Services/Calendar/CalendarTraitTest.php | 58 +-\n tests/Unit/Http/Controllers/Kiosk/ActivityControllerTest.php | 159 +++++\n tests/Unit/Jobs/Activity/Import/ImportTwilioVideoSpeechesJobTest.php | 22 +-\n tests/Unit/Jobs/Activity/Import/IsActivityReadyForProcessingJobTest.php | 26 +-\n tests/Unit/Jobs/Calendar/SetupCalendarSyncTest.php | 25 -\n tests/Unit/Services/Activity/ParticipantsServiceTest.php | 12 +-\n tests/Unit/Services/Activity/Twilio/S3RecordingCredentialsServiceTest.php | 180 +++++\n tests/Unit/Services/ActivityServiceTest.php | 132 ++++\n tests/Unit/Services/Calendar/CalendarActivityServiceTest.php | 150 +++-\n tests/Unit/Services/Calendar/Command/ImportParticipantsTest.php | 6 +-\n tests/Unit/Services/Calendar/Command/MapActivityDataTest.php | 78 +-\n tests/Unit/Services/Calendar/GoogleCalendarServiceTest.php | 116 +++\n tests/Unit/Services/Crm/Close/ServiceTest.php | 165 +++++\n tests/Unit/Services/Crm/Hubspot/ServiceTest.php | 272 ++++++-\n tests/Unit/Services/Crm/Hubspot/ServiceTraits/OpportunitySyncTest.php | 25 +-\n tests/Unit/Services/Crm/Hubspot/ServiceTraits/OpportunitySyncTraitMatchActivitiesTest.php | 3 +-\n tests/Unit/Services/Crm/IntegrationApp/ServiceTraits/SyncCrmEntitiesTraitOpportunitiesTest.php | 40 ++\n tests/Unit/Services/Crm/Pipedrive/ImportOpportunityMatchActivitiesTest.php | 2 +\n tests/Unit/Services/Crm/Salesforce/ServiceTest.php | 139 ++++\n tests/Unit/Services/Mail/Office/EmailApiClientTest.php | 195 ++---\n tests/Unit/Services/RecallAI/RecallAIServiceTest.php | 24 +-\n 175 files changed, 12562 insertions(+), 2162 deletions(-)\n create mode 120000 CLAUDE.md\n create mode 100644 app/Component/AiAutomation/Services/CrmFillingEligibilityChecker.php\n delete mode 100644 app/Component/ES/ElasticSearchWorkerManager.php\n delete mode 100644 app/Component/ES/Processor/Traits/SkipActivityTrait.php\n delete mode 100644 app/Component/ES/Worker/ActivityWorker.php\n delete mode 100644 app/Component/ES/Worker/EntityWorker.php\n delete mode 100644 app/Component/ES/Worker/WorkerAmount.php\n delete mode 100644 app/Component/ES/Worker/WorkerInterface.php\n create mode 100644 app/Component/ProphetAi/Exceptions/InsufficientTranscriptException.php\n create mode 100644 app/Component/Transcription/DTO/Http/Transcription/AssemblyAI/AssemblyAI/NoAssemblyIdException.php\n create mode 100644 app/Component/Transcription/DTO/Http/Transcription/TranscriptionIsNotCorrectFormatException.php\n create mode 100644 app/Console/Commands/Activities/SetupIntegration/TwilioSetS3RecordingCredentialsCommand.php\n create mode 100644 app/Console/Commands/Crm/BackfillOpportunityUserFromAccountCommand.php\n delete mode 100644 app/Console/Commands/Elasticsearch/AsyncUpdateEsActivities.php\n create mode 100644 app/Console/Commands/IssueMcpTokenCommand.php\n create mode 100644 app/Http/Middleware/McpAuditMiddleware.php\n create mode 100644 app/Http/Middleware/McpTierMiddleware.php\n create mode 100644 app/Mcp/Contracts/McpCallRepositoryInterface.php\n create mode 100644 app/Mcp/DTO/ListCallsFilters.php\n create mode 100644 app/Mcp/Errors/McpError.php\n create mode 100644 app/Mcp/Repositories/McpActivityHydrator.php\n create mode 100644 app/Mcp/Repositories/McpCallRepository.php\n create mode 100644 app/Mcp/Repositories/McpElasticCallRepository.php\n create mode 100644 app/Mcp/Servers/JiminnyServer.php\n create mode 100644 app/Mcp/Tools/ListCallsTool.php\n create mode 100644 app/Services/Activity/Twilio/S3RecordingCredentialsService.php\n create mode 100644 config/mcp.php\n create mode 100644 database/migrations/2026_04_30_120000_create_mcp_audit_log_table.php\n create mode 100644 docs/mcp/explorer/explorer.html\n create mode 100644 docs/mcp/explorer/explorer.template.html\n create mode 100644 docs/mcp/explorer/generate.js\n create mode 100644 docs/mcp/explorer/tool-explorer-meta.json\n create mode 100644 docs/mcp/tools-list.json\n create mode 100644 docs/mcp/tools.md\n create mode 100644 front-end/src/components/shared/modals/EntityPickerModal/__tests__/useEntitiesCache.spec.ts\n create mode 100644 tests/Feature/Component/Nudge/ProcessOrganisationImmediateNudgesJobTest.php\n create mode 100644 tests/Feature/Mcp/IssueMcpTokenCommandTest.php\n create mode 100644 tests/Feature/Mcp/ListCallsToolElasticFeatureTest.php\n create mode 100644 tests/Feature/Mcp/ListCallsToolFeatureTest.php\n create mode 100644 tests/Feature/Mcp/McpTestHelpersTrait.php\n create mode 100644 tests/Stubs/SentryStub.php\n create mode 100644 tests/Unit/Component/AiAutomation/Services/CrmFillingEligibilityCheckerTest.php\n delete mode 100644 tests/Unit/Component/ES/ElasticSearchWorkerManagerTest.php\n create mode 100644 tests/Unit/Component/ES/Processor/Actions/LoadDocumentsActionTest.php\n delete mode 100644 tests/Unit/Component/ES/Processor/Traits/SkipActivityTraitTest.php\n delete mode 100644 tests/Unit/Component/ES/Worker/ActivityWorkerTest.php\n delete mode 100644 tests/Unit/Component/ES/Worker/EntityWorkerTest.php\n delete mode 100644 tests/Unit/Component/ES/Worker/WorkerAmountTest.php\n create mode 100644 tests/Unit/Component/ParticipantSpeech/Services/ParticipantSpeechesCreatorTest.php\n create mode 100644 tests/Unit/Http/Controllers/Kiosk/ActivityControllerTest.php\n create mode 100644 tests/Unit/Services/Activity/Twilio/S3RecordingCredentialsServiceTest.php\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20725-handle-HS-search-rate-limit) $ git status\nOn branch master\nYour branch is behind 'origin/master' by 114 commits, and can be fast-forwarded.\n (use \"git pull\" to update your local branch)\n\nChanges not staged for commit:\n (use \"git add <file>...\" to update what will be committed)\n (use \"git restore <file>...\" to discard changes in working directory)\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tmodified: .env.local\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tmodified: app/Component/SCIM/Constants.php\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tmodified: app/Component/SCIM/ScimProvisioning.php\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tmodified: app/Component/Twilio/Conference/ConferenceManager/SoftPhoneManager.php\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tmodified: app/Console/Commands/JiminnyDebugCommand.php\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tmodified: app/DTO/SCIM/AAD/Request/CoreUserRequest.php\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tmodified: app/DTO/SCIM/AAD/Response/CoreUser.php\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tmodified: app/Services/Telephony/TextMessagingService.php\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tmodified: config/logging.php\n\nUntracked files:\n (use \"git add <file>...\" to include in what will be committed)\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\t.env.nikilocal\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\t.env.other\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tWEBHOOK_FILTERING_IMPLEMENTATION.md\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tapp/Component/SCIM/Mutators/Attributes/User/RoleAttr.php\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tapp/Console/Commands/Crm/Hubspot/SimulateWebhooksCommand.php\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tapp/Console/Commands/Reports/CreateMockAskJiminnyReportResultCommand.php\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tapp/Rules/ListenerRoleCannotHaveAdminOrManagerPermissionRule.php\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tids.txt\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tpublic/favicon.ico\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\traw_sql_query.sql\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\ttests/Unit/Component/SCIM/Mutators/Attributes/User/RoleAttrTest.php\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\ttests/Unit/Policies/CanAccessAiReportsTest.php\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\ttests/Unit/Rules/ListenerRoleCannotHaveAdminOrManagerPermissionRuleTest.php\n\nno changes added to commit (use \"git add\" and/or \"git commit -a\")\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (master) $ git pull\nremote: Enumerating objects: 306, done.\nremote: Counting objects: 100% (299/299), done.\nremote: Compressing objects: 100% (183/183), done.\nremote: Total 306 (delta 213), reused 171 (delta 116), pack-reused 7 (from 1)\nReceiving objects: 100% (306/306), 80.12 KiB | 1000.00 KiB/s, done.\nResolving deltas: 100% (213/213), completed with 53 local objects.\nFrom github.com:jiminny/app\n 90bca4e4b2..5604af40cf master -> origin/master\n 4e7078fd8b..0b8343d179 JY-18091-upgrade-to-php-8-5 -> origin/JY-18091-upgrade-to-php-8-5\n 098eeaa087..d5a447e492 JY-20613-allow-owner-role-on-team-setup -> origin/JY-20613-allow-owner-role-on-team-setup\n c3a76ace91..af65249d0f JY-20749-user-can-view-recorded-meetings -> origin/JY-20749-user-can-view-recorded-meetings\n d94a285ae7..7ce96cb5fe JY-20808-low-priority-indexing-queue -> origin/JY-20808-low-priority-indexing-queue\n * [new branch] JY-20842-remove-partial-updater -> origin/JY-20842-remove-partial-updater\n * [new branch] JY-20920-fix-participant-flip -> origin/JY-20920-fix-participant-flip\n * [new branch] secfix/npm-20260519 -> origin/secfix/npm-20260519\nUpdating cb4ebf0c36..5604af40cf\nFast-forward\n app/Component/ES/ChunkSize.php | 54 +++++++++++++++++++\n app/Component/ES/Processor/DTOs/SelectionList.php | 4 +-\n app/Component/ES/Processor/TargetEntitiesSelector.php | 19 ++++---\n app/Component/MeetingBot/Service/ParticipantMatcher.php | 46 ++++++++++++----\n app/Exceptions/RateLimitException.php | 19 ++++++-\n app/Http/Middleware/McpTierMiddleware.php | 27 ++--------\n app/Jobs/Crm/MatchActivityCrmData.php | 47 ++++++++++++----\n app/Jobs/Middleware/HandleHubspotRateLimit.php | 42 +++++++++++++++\n app/Mcp/Servers/JiminnyServer.php | 2 +\n app/Mcp/Tools/GetMeTool.php | 157 +++++++++++++++++++++++++++++++++++++++++++++++++++++\n app/Models/Feature/FeatureEnum.php | 1 +\n app/Services/Activity/HubSpot/ProviderResolver.php | 4 +-\n app/Services/Activity/HubSpot/ProviderResolverInterface.php | 2 +-\n app/Services/Activity/HubSpot/Providers/Provider.php | 2 +-\n app/Services/Activity/HubSpot/Providers/ProviderKixie.php | 2 +-\n app/Services/Activity/HubSpot/Providers/ProviderOrum.php | 2 +-\n app/Services/Activity/HubSpot/Providers/ProviderTwilio.php | 2 +-\n app/Services/Activity/HubSpot/Providers/ProviderTwilioFlex.php | 5 +-\n app/Services/Activity/HubSpot/Service.php | 97 +++++++++++++++++++++++++++------\n app/Services/Crm/Hubspot/Client.php | 132 +++++++++++++++++++++++++++++++++++++++++++++\n app/Services/Crm/Hubspot/HubspotClientInterface.php | 15 ++++++\n app/Services/Crm/Hubspot/Pagination/HubspotPaginationService.php | 21 ++++----\n app/Services/Crm/Hubspot/Pagination/PaginationState.php | 2 +-\n database/migrations/2026_05_13_124153_create_mcp_feature_flag.php | 25 +++++++++\n tests/Feature/Mcp/GetMeToolFeatureTest.php | 140 +++++++++++++++++++++++++++++++++++++++++++++++\n tests/Feature/Mcp/ListCallsToolFeatureTest.php | 2 +-\n tests/Feature/Mcp/McpTestHelpersTrait.php | 19 ++++++-\n tests/Unit/Component/ES/ChunkSizeTest.php | 50 +++++++++++++++++\n tests/Unit/Component/ES/Processor/DTOs/SelectionListTest.php | 27 +++++++---\n tests/Unit/Component/ES/Processor/TargetEntitiesSelectorTest.php | 39 ++++++++------\n tests/Unit/Component/MeetingBot/Service/ParticipantMatcherTest.php | 68 ++++++++++++++++++++++-\n tests/Unit/Exceptions/RateLimitExceptionTest.php | 56 +++++++++++++++++++\n tests/Unit/Jobs/Crm/MatchActivityCrmDataTest.php | 8 +--\n tests/Unit/Jobs/Middleware/HandleHubspotRateLimitTest.php | 151 +++++++++++++++++++++++++++++++++++++++++++++++++++\n tests/Unit/Services/Activity/HubSpot/ServiceTest.php | 109 +++++++++++++++++++++++++++++++++++++\n tests/Unit/Services/Crm/Hubspot/ClientTest.php | 250 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++\n tests/Unit/Services/Crm/Hubspot/Pagination/HubspotPaginationServiceTest.php | 283 +++++++++++++++++++++---------------------------------------------------------------------------\n 37 files changed, 1587 insertions(+), 344 deletions(-)\n create mode 100644 app/Component/ES/ChunkSize.php\n create mode 100644 app/Jobs/Middleware/HandleHubspotRateLimit.php\n create mode 100644 app/Mcp/Tools/GetMeTool.php\n create mode 100644 database/migrations/2026_05_13_124153_create_mcp_feature_flag.php\n create mode 100644 tests/Feature/Mcp/GetMeToolFeatureTest.php\n create mode 100644 tests/Unit/Component/ES/ChunkSizeTest.php\n create mode 100644 tests/Unit/Exceptions/RateLimitExceptionTest.php\n create mode 100644 tests/Unit/Jobs/Middleware/HandleHubspotRateLimitTest.php\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (master) $ git pull\nAlready up to date.\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (master) $ co -b JY-20676-delete-report-related-objects\nSwitched to a new branch 'JY-20676-delete-report-related-objects'\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20676-delete-report-related-objects) $ csfix\ndocker exec -it docker_lamp_1 ./vendor/bin/php-cs-fixer fix --config=.php-cs-fixer.dist.php -v --using-cache=no --diff \nPHP CS Fixer 3.87.1 Alexander by Fabien Potencier, Dariusz Ruminski and contributors.\nPHP runtime: 8.3.30\nRunning analysis on 7 cores with 10 files per process.\nParallel runner is an experimental feature and may be unstable, use it at your own risk. Feedback highly appreciated!\nLoaded config default from \".php-cs-fixer.dist.php\".\n 5690/5690 [▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓] 100%\n\n 1) app/Console/Commands/JiminnyDebugCommand.php (statement_indentation, blank_line_before_statement)\n ---------- begin diff ----------\n--- /home/jiminny/app/Console/Commands/JiminnyDebugCommand.php\n+++ /home/jiminny/app/Console/Commands/JiminnyDebugCommand.php\n@@ -23,6 +23,7 @@\n \n if ($action === 'redis-set') {\n $this->testRedisSet();\n+\n return;\n }\n \n@@ -45,7 +46,7 @@\n $ttl = 60;\n \n try {\n-// $result = Redis::set($testKey, $testValue, 'EX', $ttl, 'NX');\n+ // $result = Redis::set($testKey, $testValue, 'EX', $ttl, 'NX');\n $result = Redis::set($testKey, $testValue, ['nx', 'ex' => $ttl]);\n \n if ($result) {\n\n ----------- end diff -----------\n\n\nFixed 1 of 5690 files in 50.673 seconds, 67.00 MB memory used\n\nWhat's next:\n Try Docker Debug for seamless, persistent debugging tools in any container or image → docker debug docker_lamp_1\n Learn more at https://docs.docker.com/go/debug-cli/\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20676-delete-report-related-objects) $ ;xd\ndocker exec -it docker_lamp_1 bash -c \"mv /usr/local/etc/php/conf.d/xdebug.ini ~/xdebug.ini\"\n\nWhat's next:\n Try Docker Debug for seamless, persistent debugging tools in any container or image → docker debug docker_lamp_1\n Learn more at https://docs.docker.com/go/debug-cli/\ndocker exec -it docker_lamp_1 supervisorctl restart all\njiminny-worker-processing-2:jiminny-worker-processing-2_00: stopped\njiminny-worker-processing-3:jiminny-worker-processing-3_00: stopped\njiminny-worker-processing-4:jiminny-worker-processing-4_00: stopped\njiminny-worker-processing-5:jiminny-worker-processing-5_00: stopped\njiminny-worker-processing-delayed:jiminny-worker-processing-delayed_00: stopped\nworker-analytics:worker-analytics_00: stopped\nworker-crm-update:worker-crm-update_00: stopped\nworker-download:worker-download_00: stopped\nworker-nudges:worker-nudges_00: stopped\nworker-calendar:worker-calendar_00: stopped\nworker-audio:worker-audio_00: stopped\njiminny-worker-processing-1:jiminny-worker-processing-1_00: stopped\nworker:worker_00: stopped\nworker-conferences:worker-conferences_00: stopped\nworker-crm-sync:worker-crm-sync_00: stopped\nworker-emails:worker-emails_00: stopped\nworker-es-update:worker-es-update_00: stopped\nartisan-schedule:artisan-schedule_00: stopped\nartisan-schedule:artisan-schedule_00: started\njiminny-worker-processing-1:jiminny-worker-processing-1_00: started\njiminny-worker-processing-2:jiminny-worker-processing-2_00: started\njiminny-worker-processing-3:jiminny-worker-processing-3_00: started\njiminny-worker-processing-4:jiminny-worker-processing-4_00: started\njiminny-worker-processing-5:jiminny-worker-processing-5_00: started\njiminny-worker-processing-delayed:jiminny-worker-processing-delayed_00: started\nworker:worker_00: started\nworker-analytics:worker-analytics_00: started\nworker-audio:worker-audio_00: started\nworker-calendar:worker-calendar_00: started\nworker-conferences:worker-conferences_00: started\nworker-crm-sync:worker-crm-sync_00: started\nworker-crm-update:worker-crm-update_00: started\nworker-download:worker-download_00: started\nworker-emails:worker-emails_00: started\nworker-es-update:worker-es-update_00: started\nworker-nudges:worker-nudges_00: started\n\nWhat's next:\n Try Docker Debug for seamless, persistent debugging tools in any container or image → docker debug docker_lamp_1\n Learn more at https://docs.docker.com/go/debug-cli/\ndocker exec -it docker_lamp_1 php -v\nPHP 8.3.30 (cli) (built: Mar 16 2026 22:32:32) (NTS)\nCopyright (c) The PHP Group\nZend Engine v4.3.30, Copyright (c) Zend Technologies\n with Zend OPcache v8.3.30, Copyright (c), by Zend Technologies\n\nWhat's next:\n Try Docker Debug for seamless, persistent debugging tools in any container or image → docker debug docker_lamp_1\n Learn more at https://docs.docker.com/go/debug-cli/\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20676-delete-report-related-objects) $ git status\nOn branch JY-20676-delete-report-related-objects\nChanges not staged for commit:\n (use \"git add <file>...\" to update what will be committed)\n (use \"git restore <file>...\" to discard changes in working directory)\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tmodified: .env.local\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tmodified: app/Console/Commands/JiminnyDebugCommand.php\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tmodified: config/logging.php\n\nUntracked files:\n (use \"git add <file>...\" to include in what will be committed)\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\t.env.nikilocal\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\t.env.other\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tWEBHOOK_FILTERING_IMPLEMENTATION.md\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tapp/Console/Commands/Crm/Hubspot/SimulateWebhooksCommand.php\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tapp/Console/Commands/Reports/CreateMockAskJiminnyReportResultCommand.php\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tids.txt\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tpublic/favicon.ico\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\traw_sql_query.sql\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\ttests/Unit/Policies/CanAccessAiReportsTest.php\n\nno changes added to commit (use \"git add\" and/or \"git commit -a\")\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20676-delete-report-related-objects) $ git push -u origin JY-20676-delete-report-related-objects\nEnumerating objects: 45, done.\nCounting objects: 100% (45/45), done.\nDelta compression using up to 8 threads\nCompressing objects: 100% (24/24), done.\nWriting objects: 100% (24/24), 3.62 KiB | 3.62 MiB/s, done.\nTotal 24 (delta 19), reused 0 (delta 0), pack-reused 0\nremote: Resolving deltas: 100% (19/19), completed with 19 local objects.\nremote: \nremote: Create a pull request for 'JY-20676-delete-report-related-objects' on GitHub by visiting:\nremote: https://github.com/jiminny/app/pull/new/JY-20676-delete-report-related-objects\nremote: \nTo github.com:jiminny/app.git\n * [new branch] JY-20676-delete-report-related-objects -> JY-20676-delete-report-related-objects\nbranch 'JY-20676-delete-report-related-objects' set up to track 'origin/JY-20676-delete-report-related-objects'.\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20676-delete-report-related-objects) $ csfix\ndocker exec -it docker_lamp_1 ./vendor/bin/php-cs-fixer fix --config=.php-cs-fixer.dist.php -v --using-cache=no --diff \nPHP CS Fixer 3.87.1 Alexander by Fabien Potencier, Dariusz Ruminski and contributors.\nPHP runtime: 8.3.30\nRunning analysis on 7 cores with 10 files per process.\nParallel runner is an experimental feature and may be unstable, use it at your own risk. Feedback highly appreciated!\nLoaded config default from \".php-cs-fixer.dist.php\".\n 5690/5690 [▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓] 100%\n\n 1) app/Http/Controllers/API/V2/AskJiminnyReportsController.php (blank_line_before_statement)\n ---------- begin diff ----------\n--- /home/jiminny/app/Http/Controllers/API/V2/AskJiminnyReportsController.php\n+++ /home/jiminny/app/Http/Controllers/API/V2/AskJiminnyReportsController.php\n@@ -140,6 +140,7 @@\n if ($enabled && $report->isAskJiminnyReport() && ! $report->canExecute()) {\n $error = 'This report is missing a saved search or prompt. ' .\n 'Edit the report to complete the setup before enabling it.';\n+\n return new JsonResponse(\n ['error' => $error],\n Response::HTTP_UNPROCESSABLE_ENTITY\n\n ----------- end diff -----------\n\n\nFixed 1 of 5690 files in 71.757 seconds, 60.00 MB memory used\n\nWhat's next:\n Try Docker Debug for seamless, persistent debugging tools in any container or image → docker debug docker_lamp_1\n Learn more at https://docs.docker.com/go/debug-cli/\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20676-delete-report-related-objects) $ git pull\nremote: Enumerating objects: 158, done.\nremote: Counting objects: 100% (103/103), done.\nremote: Compressing objects: 100% (37/37), done.\nremote: Total 158 (delta 80), reused 74 (delta 66), pack-reused 55 (from 3)\nReceiving objects: 100% (158/158), 80.59 KiB | 982.00 KiB/s, done.\nResolving deltas: 100% (85/85), completed with 45 local objects.\nFrom github.com:jiminny/app\n 02a33811ee..c6ce5e2440 JY-20676-delete-report-related-objects -> origin/JY-20676-delete-report-related-objects\n 7ce96cb5fe..6c59f04358 JY-20808-low-priority-indexing-queue -> origin/JY-20808-low-priority-indexing-queue\n 3906a9238a..2b5e6ea62b JY-20835-mcp-enable-users-to-get-a-list-of-deals-and-their-details -> origin/JY-20835-mcp-enable-users-to-get-a-list-of-deals-and-their-details\n 5604af40cf..ea3519f0e2 master -> origin/master\n * [new branch] switch-eu-assembly -> origin/switch-eu-assembly\nUpdating 02a33811ee..c6ce5e2440\nFast-forward\n app/Component/ES/ElasticSearchDocumentPartialUpdater.php | 48 ---\n app/Component/ParticipantSpeech/Services/ParticipantAttributionService.php | 4 +-\n app/Component/Settings/AutoScoring/Services/UpdateAutoScoreService.php | 20 +-\n app/Component/Transcription/Service/StorageService.php | 8 +-\n front-end/package.json | 2 +-\n front-end/src/components/DealInsights/Modals/AskAnythingModal.vue | 23 ++\n front-end/src/components/shared/AskAnything/AskAnythingPromptFormItem.vue | 2 +\n front-end/src/components/shared/AskAnything/AskAnythingSettingsDrawer.vue | 23 +-\n front-end/src/components/shared/AskAnything/__mocks__/AskAnythingSettingsDrawer.mocks.js | 1 +\n front-end/src/components/shared/AskAnything/__tests__/AskAnythingSettingsDrawer.spec.js | 135 ++++---\n front-end/src/components/shared/AskAnything/__tests__/__snapshots__/AskAnythingSettingsDrawer.spec.js.html | 1235 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++\n front-end/src/components/shared/AskAnything/__tests__/__snapshots__/AskAnythingSettingsDrawer.spec.js.snap | 1382 ----------------------------------------------------------------\n front-end/src/components/shared/AskAnything/prompts.js | 1 +\n front-end/src/components/shared/AskAnything/useAskAnything.js | 1 +\n front-end/yarn.lock | 8 +-\n tests/Unit/Component/ES/ElasticSearchDocumentPartialUpdaterTest.php | 42 --\n tests/Unit/Component/Settings/AutoScoring/Services/UpdateAutoScoreServiceTest.php | 86 ++--\n tests/Unit/Component/Transcription/Service/StorageServiceTest.php | 29 +-\n 18 files changed, 1448 insertions(+), 1602 deletions(-)\n delete mode 100644 app/Component/ES/ElasticSearchDocumentPartialUpdater.php\n create mode 100644 front-end/src/components/shared/AskAnything/__tests__/__snapshots__/AskAnythingSettingsDrawer.spec.js.html\n delete mode 100644 front-end/src/components/shared/AskAnything/__tests__/__snapshots__/AskAnythingSettingsDrawer.spec.js.snap\n delete mode 100644 tests/Unit/Component/ES/ElasticSearchDocumentPartialUpdaterTest.php\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20676-delete-report-related-objects) $ csfix\ndocker exec -it docker_lamp_1 ./vendor/bin/php-cs-fixer fix --config=.php-cs-fixer.dist.php -v --using-cache=no --diff \nPHP CS Fixer 3.87.1 Alexander by Fabien Potencier, Dariusz Ruminski and contributors.\nPHP runtime: 8.3.30\nRunning analysis on 7 cores with 10 files per process.\nParallel runner is an experimental feature and may be unstable, use it at your own risk. Feedback highly appreciated!\nLoaded config default from \".php-cs-fixer.dist.php\".\n 5688/5688 [▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓] 100%\n\n\nFixed 0 of 5688 files in 79.904 seconds, 60.00 MB memory used\n\nWhat's next:\n Try Docker Debug for seamless, persistent debugging tools in any container or image → docker debug docker_lamp_1\n Learn more at https://docs.docker.com/go/debug-cli/\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20676-delete-report-related-objects) $","depth":4,"on_screen":true,"value":"Last login: Mon May 18 09:17:28 on ttys007\n\nPoetry could not find a pyproject.toml file in /Users/lukas/jiminny/app or its parents\n\nPoetry could not find a pyproject.toml file in /Users/lukas/jiminny/app or its parents\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (pipedrive-sdk-poc) $ co master\nerror: Your local changes to the following files would be overwritten by checkout:\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tPIPEDRIVE_V2_MIGRATION_TICKETS.md\nPlease commit your changes or stash them before you switch branches.\nAborting\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (pipedrive-sdk-poc) $ git pull\nremote: Enumerating objects: 1047, done.\nremote: Counting objects: 100% (832/832), done.\nremote: Compressing objects: 100% (298/298), done.\nremote: Total 1047 (delta 634), reused 596 (delta 534), pack-reused 215 (from 3)\nReceiving objects: 100% (1047/1047), 353.16 KiB | 1.56 MiB/s, done.\nResolving deltas: 100% (687/687), completed with 107 local objects.\nFrom github.com:jiminny/app\n 907c54896c..34656c53ed pipedrive-sdk-poc -> origin/pipedrive-sdk-poc\n 03325ec50f..4e7078fd8b JY-18091-upgrade-to-php-8-5 -> origin/JY-18091-upgrade-to-php-8-5\n e7d231e163..bc6a3fce6b JY-20725-handle-HS-search-rate-limit -> origin/JY-20725-handle-HS-search-rate-limit\n * [new branch] JY-20749-user-can-view-recorded-meetings -> origin/JY-20749-user-can-view-recorded-meetings\n 98ca281a04..e0351be069 JY-20808-low-priority-indexing-queue -> origin/JY-20808-low-priority-indexing-queue\n 569abb5149..3906a9238a JY-20835-mcp-enable-users-to-get-a-list-of-deals-and-their-details -> origin/JY-20835-mcp-enable-users-to-get-a-list-of-deals-and-their-details\n ad6c2a86e8..50eb6afba9 JY-20846-mcp-enable-the-ai-to-know-details-about-the-user -> origin/JY-20846-mcp-enable-the-ai-to-know-details-about-the-user\n * [new branch] JY-20893-chunk-control-per-update-target -> origin/JY-20893-chunk-control-per-update-target\n 31c62924a5..cb4ebf0c36 master -> origin/master\nUpdating 907c54896c..34656c53ed\nFast-forward\n PIPEDRIVE_V2_MIGRATION_TICKETS.md | 52 ++++++++++++++++++++++++++++++++++++++++++++++++++++\n 1 file changed, 52 insertions(+)\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (pipedrive-sdk-poc) $ co master\nM\u0000\u0000\u0000\u0000\u0000\u0000\t.env.local\nM\u0000\u0000\u0000\u0000\u0000\u0000\tconfig/logging.php\nSwitched to branch 'master'\nYour branch is behind 'origin/master' by 31 commits, and can be fast-forwarded.\n (use \"git pull\" to update your local branch)\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (master) $ git pull\nUpdating 31c62924a5..cb4ebf0c36\nFast-forward\n app/Component/ES/Processor/Traits/SelectEntityListTrait.php | 20 ------\n app/Services/Calendar/CalendarActivityService.php | 46 +++++++++++++\n app/Services/Calendar/Command/MapActivityData.php | 106 +++-------------------------\n docs/mcp/explorer/explorer.html | 104 +++++++++++++++++++++++++---\n docs/mcp/explorer/explorer.template.html | 102 ++++++++++++++++++++++++---\n docs/mcp/tools-list.json | 373 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++-------\n docs/mcp/tools.md | 117 +++++++++++++++++++++++--------\n tests/Unit/Component/ES/AsyncUpdateElasticSearchTest.php | 16 +----\n tests/Unit/Component/ES/Listeners/UpdateMultipleTargetsListenerTest.php | 10 ---\n tests/Unit/Component/ES/Listeners/UpdateSingleTargetListenerTest.php | 6 --\n tests/Unit/Component/ES/Processor/TargetEntitiesSelectorTest.php | 9 ---\n tests/Unit/Component/ES/Processor/Traits/SelectEntityListTraitTest.php | 15 ++--\n tests/Unit/Component/ES/UpdateProcessManagerTest.php | 2 -\n tests/Unit/Services/Calendar/CalendarActivityServiceTest.php | 150 ++++++++++++++++++++++++++++++++++++++--\n tests/Unit/Services/Calendar/Command/MapActivityDataTest.php | 78 ++-------------------\n 15 files changed, 832 insertions(+), 322 deletions(-)\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (master) $ co -b JY-20613-allow-owner-role-on-team-setup\nSwitched to a new branch 'JY-20613-allow-owner-role-on-team-setup'\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20613-allow-owner-role-on-team-setup) $ csfix\ndocker exec -it docker_lamp_1 ./vendor/bin/php-cs-fixer fix --config=.php-cs-fixer.dist.php -v --using-cache=no --diff \nPHP CS Fixer 3.87.1 Alexander by Fabien Potencier, Dariusz Ruminski and contributors.\nPHP runtime: 8.3.30\nRunning analysis on 7 cores with 10 files per process.\nParallel runner is an experimental feature and may be unstable, use it at your own risk. Feedback highly appreciated!\nLoaded config default from \".php-cs-fixer.dist.php\".\n 5682/5682 [▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓] 100%\n\n\nFixed 0 of 5682 files in 56.978 seconds, 67.00 MB memory used\n\nWhat's next:\n Try Docker Debug for seamless, persistent debugging tools in any container or image → docker debug docker_lamp_1\n Learn more at https://docs.docker.com/go/debug-cli/\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20613-allow-owner-role-on-team-setup) $ ;xd\ndocker exec -it docker_lamp_1 bash -c \"mv /usr/local/etc/php/conf.d/xdebug.ini ~/xdebug.ini\"\n\nWhat's next:\n Try Docker Debug for seamless, persistent debugging tools in any container or image → docker debug docker_lamp_1\n Learn more at https://docs.docker.com/go/debug-cli/\ndocker exec -it docker_lamp_1 supervisorctl restart all\njiminny-worker-processing-2:jiminny-worker-processing-2_00: stopped\njiminny-worker-processing-3:jiminny-worker-processing-3_00: stopped\njiminny-worker-processing-4:jiminny-worker-processing-4_00: stopped\njiminny-worker-processing-5:jiminny-worker-processing-5_00: stopped\njiminny-worker-processing-delayed:jiminny-worker-processing-delayed_00: stopped\nworker-analytics:worker-analytics_00: stopped\nworker-crm-update:worker-crm-update_00: stopped\nworker-download:worker-download_00: stopped\nworker-nudges:worker-nudges_00: stopped\nartisan-schedule:artisan-schedule_00: stopped\nworker-emails:worker-emails_00: stopped\nworker-calendar:worker-calendar_00: stopped\nworker:worker_00: stopped\nworker-conferences:worker-conferences_00: stopped\nworker-crm-sync:worker-crm-sync_00: stopped\njiminny-worker-processing-1:jiminny-worker-processing-1_00: stopped\nworker-audio:worker-audio_00: stopped\nworker-es-update:worker-es-update_00: stopped\nartisan-schedule:artisan-schedule_00: started\njiminny-worker-processing-1:jiminny-worker-processing-1_00: started\njiminny-worker-processing-2:jiminny-worker-processing-2_00: started\njiminny-worker-processing-3:jiminny-worker-processing-3_00: started\njiminny-worker-processing-4:jiminny-worker-processing-4_00: started\njiminny-worker-processing-5:jiminny-worker-processing-5_00: started\njiminny-worker-processing-delayed:jiminny-worker-processing-delayed_00: started\nworker:worker_00: started\nworker-analytics:worker-analytics_00: started\nworker-audio:worker-audio_00: started\nworker-calendar:worker-calendar_00: started\nworker-conferences:worker-conferences_00: started\nworker-crm-sync:worker-crm-sync_00: started\nworker-crm-update:worker-crm-update_00: started\nworker-download:worker-download_00: started\nworker-emails:worker-emails_00: started\nworker-es-update:worker-es-update_00: started\nworker-nudges:worker-nudges_00: started\n\nWhat's next:\n Try Docker Debug for seamless, persistent debugging tools in any container or image → docker debug docker_lamp_1\n Learn more at https://docs.docker.com/go/debug-cli/\ndocker exec -it docker_lamp_1 php -v\nPHP 8.3.30 (cli) (built: Mar 16 2026 22:32:32) (NTS)\nCopyright (c) The PHP Group\nZend Engine v4.3.30, Copyright (c) Zend Technologies\n with Zend OPcache v8.3.30, Copyright (c), by Zend Technologies\n\nWhat's next:\n Try Docker Debug for seamless, persistent debugging tools in any container or image → docker debug docker_lamp_1\n Learn more at https://docs.docker.com/go/debug-cli/\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20613-allow-owner-role-on-team-setup) $ csfix\ndocker exec -it docker_lamp_1 ./vendor/bin/php-cs-fixer fix --config=.php-cs-fixer.dist.php -v --using-cache=no --diff \nPHP CS Fixer 3.87.1 Alexander by Fabien Potencier, Dariusz Ruminski and contributors.\nPHP runtime: 8.3.30\nRunning analysis on 7 cores with 10 files per process.\nParallel runner is an experimental feature and may be unstable, use it at your own risk. Feedback highly appreciated!\nLoaded config default from \".php-cs-fixer.dist.php\".\n 5682/5682 [▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓] 100%\n\n\nFixed 0 of 5682 files in 49.910 seconds, 60.00 MB memory used\n\nWhat's next:\n Try Docker Debug for seamless, persistent debugging tools in any container or image → docker debug docker_lamp_1\n Learn more at https://docs.docker.com/go/debug-cli/\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20613-allow-owner-role-on-team-setup) $ git status\nOn branch JY-20613-allow-owner-role-on-team-setup\nYour branch is ahead of 'origin/JY-20613-allow-owner-role-on-team-setup' by 1 commit.\n (use \"git push\" to publish your local commits)\n\nChanges not staged for commit:\n (use \"git add <file>...\" to update what will be committed)\n (use \"git restore <file>...\" to discard changes in working directory)\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tmodified: .env.local\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tmodified: config/logging.php\n\nUntracked files:\n (use \"git add <file>...\" to include in what will be committed)\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\t.env.nikilocal\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\t.env.other\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tWEBHOOK_FILTERING_IMPLEMENTATION.md\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tapp/Console/Commands/Crm/Hubspot/SimulateWebhooksCommand.php\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tapp/Console/Commands/Reports/CreateMockAskJiminnyReportResultCommand.php\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tids.txt\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tpublic/favicon.ico\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\traw_sql_query.sql\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\ttests/Unit/Policies/CanAccessAiReportsTest.php\n\nno changes added to commit (use \"git add\" and/or \"git commit -a\")\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20613-allow-owner-role-on-team-setup) $ git pull\nremote: Enumerating objects: 248, done.\nremote: Counting objects: 100% (128/128), done.\nremote: Compressing objects: 100% (23/23), done.\nremote: Total 59 (delta 43), reused 44 (delta 33), pack-reused 0 (from 0)\nUnpacking objects: 100% (59/59), 10.48 KiB | 228.00 KiB/s, done.\nFrom github.com:jiminny/app\n b7df560451..190239dfd4 JY-20613-allow-owner-role-on-team-setup -> origin/JY-20613-allow-owner-role-on-team-setup\n e0351be069..d94a285ae7 JY-20808-low-priority-indexing-queue -> origin/JY-20808-low-priority-indexing-queue\n * [new branch] JY-20920-fix-participant-matcher -> origin/JY-20920-fix-participant-matcher\n cb4ebf0c36..90bca4e4b2 master -> origin/master\nMerge made by the 'ort' strategy.\n app/Component/ES/ChunkSize.php | 54 +++++++++++++++++++++++++++\n app/Component/ES/Processor/DTOs/SelectionList.php | 4 +-\n app/Component/ES/Processor/TargetEntitiesSelector.php | 19 ++++++----\n app/Http/Middleware/McpTierMiddleware.php | 27 +++-----------\n app/Mcp/Servers/JiminnyServer.php | 2 +\n app/Mcp/Tools/GetMeTool.php | 157 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++\n app/Models/Feature/FeatureEnum.php | 1 +\n database/migrations/2026_05_13_124153_create_mcp_feature_flag.php | 25 +++++++++++++\n front-end/src/components/Settings/Kiosk/modals/EditTeamModal/EditTeamModal.vue | 52 ++++++++++++++++++--------\n front-end/src/components/Settings/Kiosk/modals/EditTeamModal/__tests__/EditTeamModal.spec.js | 14 +++++++\n tests/Feature/Mcp/GetMeToolFeatureTest.php | 140 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++\n tests/Feature/Mcp/ListCallsToolFeatureTest.php | 2 +-\n tests/Feature/Mcp/McpTestHelpersTrait.php | 19 +++++++++-\n tests/Unit/Component/ES/ChunkSizeTest.php | 50 +++++++++++++++++++++++++\n tests/Unit/Component/ES/Processor/DTOs/SelectionListTest.php | 27 ++++++++++----\n tests/Unit/Component/ES/Processor/TargetEntitiesSelectorTest.php | 39 +++++++++++---------\n 16 files changed, 557 insertions(+), 75 deletions(-)\n create mode 100644 app/Component/ES/ChunkSize.php\n create mode 100644 app/Mcp/Tools/GetMeTool.php\n create mode 100644 database/migrations/2026_05_13_124153_create_mcp_feature_flag.php\n create mode 100644 tests/Feature/Mcp/GetMeToolFeatureTest.php\n create mode 100644 tests/Unit/Component/ES/ChunkSizeTest.php\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20613-allow-owner-role-on-team-setup) $ git push\nEnumerating objects: 40, done.\nCounting objects: 100% (34/34), done.\nDelta compression using up to 8 threads\nCompressing objects: 100% (18/18), done.\nWriting objects: 100% (18/18), 1.58 KiB | 1.58 MiB/s, done.\nTotal 18 (delta 15), reused 0 (delta 0), pack-reused 0\nremote: Resolving deltas: 100% (15/15), completed with 13 local objects.\nTo github.com:jiminny/app.git\n 190239dfd4..ec1b261264 JY-20613-allow-owner-role-on-team-setup -> JY-20613-allow-owner-role-on-team-setup\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20613-allow-owner-role-on-team-setup) $ gbr\n* JY-20613-allow-owner-role-on-team-setup\n pipedrive-sdk-poc\n master\n JY-20903-update_activity-stage-on-opportunity-change\n JY-20904-fix-update-es-on-activity-command\n JY-20891-improve-sms-text-relays\n JY-20725-handle-HS-search-rate-limit\n JY-20818-move-AJ-reports-to-separated-datadog-metric\n JY-20773-fix-automated-reports-user-pilot-tracking\n JY-20157-AJ-report-not-send-notification\n JY-20508-notify-before-AJ-report-expiration\n JY-20372-ai-reports-promotion-pages\n JY-20352-sync-opportunities-without-a-local-owner-user-id-is-null\n JY-20738-debug-AJ-tracking-UP\n a\n JY-18909-automated-reports-ask-jiminny\n JY-20692-fix-integration-app-token-auth-response-change\n JY-20553-debug-crm-sync-delays\n JY-20698-fix-SF-activity-types-on-new-playbook\n JY-20543-AJ-report-tracking\n JY-20384-handle-auto-sync-with-no-access-to-event-type\n JY-20458-ask-jiminny-user-definitions\n JY-19666-fix-import-contacts-account-association\n JY-19666-HS-import-contacts-and-accounts-batch-job\n JY-20458-Ask-Jiminny-Reports\n JY-20200-batch-update-CRM-objects-Salesforce\n JY-19666-HS-webhooks-add-contact-and-company\n JY-20348-trigger-setup-DI-layout-on-team-creation\n JY-20326-refactor-info-message-in-command\n JY-20317-fix-auto-log-delay-issue-on-all-channels-disabled\n JY-20312-remove-on-update-change-last-synced-at-crm-configurations\n JY-20306-SF-skip-auto-sync-for-task-based-playbook\n JY-20192-remove-deleted-team-from-saved-search-filters\n JY-20197-import-opportunity-batch-job\n JY-20293-enable-status-field-for-pipedrive-deals\n JY-20191-remove-commands-interactive-prompts\n JY-20118-change-default-sync-strategy\n JY-20183-add-cache-on-auto-log-delay\n JY-20197-add-import-opportunity-batch-job\n 20118-hs-opportunity-make-webhook-strategy-default\n JY-20118-make-default-hs-opportunity-sync-strategy-webhook-based\n JY-20196-handle-opportunity-without-note\n JY-20118-improve-opportunity-import\n JY-20189-handle-activity-search-on-deleted-groups\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20613-allow-owner-role-on-team-setup) $ co JY-20725-handle-HS-search-rate-limit\nM\u0000\u0000\u0000\u0000\u0000\u0000\t.env.local\nM\u0000\u0000\u0000\u0000\u0000\u0000\tconfig/logging.php\nSwitched to branch 'JY-20725-handle-HS-search-rate-limit'\nYour branch is behind 'origin/JY-20725-handle-HS-search-rate-limit' by 439 commits, and can be fast-forwarded.\n (use \"git pull\" to update your local branch)\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20725-handle-HS-search-rate-limit) $ git pull\nUpdating 0f3e438941..bc6a3fce6b\nFast-forward\n .gitignore | 3 +-\n .windsurfrules | 168 ++---\n CLAUDE.md | 1 +\n app/Component/ActivityAnalytics/Service/CalculateTalkTimeOffsetsFromTranscription.php | 24 +-\n app/Component/AiActivityType/Services/AiActivityTypeEligibilityChecker.php | 28 +-\n app/Component/AiAutomation/Actions/PrepareUpdateDtoAction.php | 32 +-\n app/Component/AiAutomation/Services/CrmFillingEligibilityChecker.php | 47 ++\n app/Component/AiAutomation/TestCrmAiPromptService.php | 14 +\n app/Component/AiCallScoring/Services/AiCallScoringEligibilityChecker.php | 9 +\n app/Component/ES/ElasticSearchDocumentPartialUpdater.php | 13 +-\n app/Component/ES/ElasticSearchWorkerManager.php | 86 ---\n app/Component/ES/Processor/Actions/LoadDocumentsAction.php | 80 +--\n app/Component/ES/Processor/EntityQueryBuilder.php | 12 +-\n app/Component/ES/Processor/TargetEntitiesSelector.php | 2 +-\n app/Component/ES/Processor/Traits/SkipActivityTrait.php | 25 -\n app/Component/ES/Repositories/EsResetActivityRepository.php | 11 +-\n app/Component/ES/Worker/ActivityWorker.php | 73 --\n app/Component/ES/Worker/EntityWorker.php | 44 --\n app/Component/ES/Worker/WorkerAmount.php | 60 --\n app/Component/ES/Worker/WorkerInterface.php | 15 -\n app/Component/ElasticSearch/Contract/Searchable.php | 4 +\n app/Component/Encoding/Job/AnalyzeTrackChannelsJob.php | 20 +-\n app/Component/Encoding/Service/GenerateSpeechFromSilenceService.php | 85 ++-\n app/Component/FFMpeg/Services/GetSpeechIntervalsService.php | 18 +-\n app/Component/LanguageDetection/Services/FindSpeechTimeService.php | 22 +-\n app/Component/Nudge/Job/ProcessOrganisationImmediateNudgesJob.php | 218 +++++-\n app/Component/ParagraphBreaker/Services/TranscriptionParagraphsService.php | 4 +\n app/Component/ParticipantSpeech/Services/ParticipantSpeechesCreator.php | 33 +\n app/Component/ParticipantSpeech/Services/ParticipantSpeechesDeleter.php | 15 +\n app/Component/ParticipantSpeech/Services/ParticipantSpeechesProvider.php | 51 +-\n app/Component/ParticipantSpeech/Services/ParticipantSpeechesUploader.php | 36 +\n app/Component/ProphetAi/Exceptions/InsufficientTranscriptException.php | 11 +\n app/Component/Transcription/DTO/Http/Transcription/AssemblyAI/AssemblyAI/NoAssemblyIdException.php | 11 +\n app/Component/Transcription/DTO/Http/Transcription/AssemblyAI/AssemblyAI/SuccessfulResponse.php | 6 +\n app/Component/Transcription/DTO/Http/Transcription/TranscriptionIsNotCorrectFormatException.php | 11 +\n app/Component/Transcription/Diarization/Services/GetNormalizedParticipantSpeechesService.php | 23 +-\n app/Component/Transcription/Diarization/Source/MeetingBotSource.php | 16 +-\n app/Component/Transcription/TranscriptionProcessor/TranscriptionProcessor.php | 3 +\n app/Console/Commands/Activities/ActivityHardDeleteCommand.php | 4 +-\n app/Console/Commands/Activities/Copy.php | 2 +\n app/Console/Commands/Activities/SetupIntegration/TwilioSetS3RecordingCredentialsCommand.php | 119 ++++\n app/Console/Commands/Activities/UpdateActivityElasticSearchDocumentCommand.php | 10 +-\n app/Console/Commands/Crm/BackfillOpportunityUserFromAccountCommand.php | 126 ++++\n app/Console/Commands/Elasticsearch/AsyncUpdateEsActivities.php | 19 -\n app/Console/Commands/Elasticsearch/AsyncUpdateEsEntities.php | 50 +-\n app/Console/Commands/Elasticsearch/ResetAsyncElasticSearchCommand.php | 30 +-\n app/Console/Commands/GeckoExport/GeckoExportParticipantSpeechesCommand.php | 14 +-\n app/Console/Commands/IssueMcpTokenCommand.php | 84 +++\n app/Console/Commands/JiminnyDebugCommand.php | 7 +-\n app/Console/Commands/Tracks/CleanupActivityTracksCommand.php | 2 +-\n app/Console/Kernel.php | 6 +-\n app/Contracts/Services/Calendar/CalendarTrait.php | 80 ++-\n app/Events/AutomatedReports/AutomatedReportGenerated.php | 3 +\n app/Http/Controllers/API/AiCallScoring/AiScorecardController.php | 7 +-\n app/Http/Controllers/API/TeamAiAutomationController.php | 8 +\n app/Http/Controllers/CustomerApi/CustomerApiController.php | 4 +-\n app/Http/Controllers/Kiosk/ActivityController.php | 58 +-\n app/Http/Controllers/Settings/PlaybookController.php | 15 +-\n app/Http/Kernel.php | 23 +\n app/Http/Middleware/McpAuditMiddleware.php | 156 ++++\n app/Http/Middleware/McpTierMiddleware.php | 54 ++\n app/Http/Requests/API/V2/ZapierUploadActivityRequest.php | 28 +-\n app/Jobs/Activity/Import/ImportTwilioVideoSpeechesJob.php | 25 +-\n app/Jobs/Activity/Import/IsActivityReadyForProcessingJob.php | 10 +-\n app/Jobs/Calendar/SetupCalendarSync.php | 21 +-\n app/Jobs/ImportRemoteTrackJob.php | 96 ++-\n app/Jobs/Mailbox/EmailTextRelay.php | 15 +-\n app/Mcp/Contracts/McpCallRepositoryInterface.php | 30 +\n app/Mcp/DTO/ListCallsFilters.php | 29 +\n app/Mcp/Errors/McpError.php | 123 ++++\n app/Mcp/Repositories/McpActivityHydrator.php | 145 ++++\n app/Mcp/Repositories/McpCallRepository.php | 84 +++\n app/Mcp/Repositories/McpElasticCallRepository.php | 171 +++++\n app/Mcp/Servers/JiminnyServer.php | 38 +\n app/Mcp/Tools/ListCallsTool.php | 205 ++++++\n app/Models/Activity.php | 10 +-\n app/Models/Activity/Transcription.php | 17 +-\n app/Models/ElasticSearch/OpportunityElasticSearchTrait.php | 5 +\n app/Models/Participant.php | 1 +\n app/Providers/AppServiceProvider.php | 22 +\n app/Repositories/Crm/ContactRepository.php | 69 +-\n app/Repositories/ParticipantSpeechRepository.php | 13 +-\n app/Services/Activity/ParticipantsService.php | 19 +-\n app/Services/Activity/Twilio/S3RecordingCredentialsService.php | 82 +++\n app/Services/ActivityService.php | 21 +-\n app/Services/Calendar/CalendarActivityService.php | 46 ++\n app/Services/Calendar/Command/ImportParticipants.php | 1 +\n app/Services/Calendar/Command/MapActivityData.php | 106 +--\n app/Services/Calendar/GoogleCalendarService.php | 12 +-\n app/Services/Crm/Close/Processor/OpportunityProcessor.php | 2 +-\n app/Services/Crm/Close/Service.php | 22 +-\n app/Services/Crm/Copper/Service.php | 12 +-\n app/Services/Crm/Hubspot/Service.php | 154 +++-\n app/Services/Crm/Hubspot/ServiceTraits/OpportunitySyncTrait.php | 88 ++-\n app/Services/Crm/IntegrationApp/ServiceTraits/SyncCrmEntitiesTrait.php | 22 +-\n app/Services/Crm/Pipedrive/Service.php | 17 +-\n app/Services/Crm/Salesforce/Service.php | 42 +-\n app/Services/Mail/Office/EmailApiClient.php | 129 +---\n app/Services/RecallAI/Commands/ScheduleBotCommand.php | 39 +-\n app/Services/RecallAI/RecallAIService.php | 22 +-\n composer.json | 3 +-\n composer.lock | 87 ++-\n config/mcp.php | 23 +\n database/migrations/2026_04_30_120000_create_mcp_audit_log_table.php | 36 +\n docs/mcp/explorer/explorer.html | 697 ++++++++++++++++++\n docs/mcp/explorer/explorer.template.html | 697 ++++++++++++++++++\n docs/mcp/explorer/generate.js | 215 ++++++\n docs/mcp/explorer/tool-explorer-meta.json | 11 +\n docs/mcp/tools-list.json | 2536 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++\n docs/mcp/tools.md | 621 ++++++++++++++++\n front-end/package.json | 4 +-\n front-end/src/components/Settings/OrgSettings/AiAutomation/CrmFilling/TemplateFieldForm.vue | 28 +-\n front-end/src/components/Settings/OrgSettings/Playbooks/AddEditPlaybook.vue | 10 +\n front-end/src/components/playback/comments/ActivityComment.less | 10 +-\n front-end/src/components/shared/PromptTester/PromptTester.vue | 12 +-\n front-end/src/components/shared/__tests__/PromptTester.spec.js | 35 +\n front-end/src/components/shared/modals/EntityPickerModal/__tests__/useEntitiesCache.spec.ts | 37 +\n front-end/src/components/shared/modals/EntityPickerModal/useEntitiesCache.ts | 9 +\n front-end/yarn.lock | 16 +-\n phpstan-baseline.neon | 50 --\n routes/api.php | 11 +\n sonar-project.properties | 91 ++-\n tests/Feature/Component/Nudge/ProcessOrganisationImmediateNudgesJobTest.php | 534 ++++++++++++++\n tests/Feature/Jobs/ImportRemoteTrackJobTest.php | 283 +++++++-\n tests/Feature/Mcp/IssueMcpTokenCommandTest.php | 53 ++\n tests/Feature/Mcp/ListCallsToolElasticFeatureTest.php | 155 ++++\n tests/Feature/Mcp/ListCallsToolFeatureTest.php | 352 ++++++++++\n tests/Feature/Mcp/McpTestHelpersTrait.php | 77 ++\n tests/Feature/Services/Team/TeamDeleteHandlers/Retention/RetentionRepositoryHandlerTest.php | 1 +\n tests/Stubs/SentryStub.php | 18 +\n tests/Unit/Component/ActivityAnalytics/Service/CalculateTalkTimeOffsetFromTranscriptionTest.php | 28 +-\n tests/Unit/Component/AiActivityType/Services/AiActivityTypeEligibilityCheckerTest.php | 103 ++-\n tests/Unit/Component/AiAutomation/Actions/PrepareUpdateDtoActionTest.php | 91 +++\n tests/Unit/Component/AiAutomation/Services/CrmFillingEligibilityCheckerTest.php | 124 ++++\n tests/Unit/Component/AiAutomation/TestCrmAiPromptServiceTest.php | 67 +-\n tests/Unit/Component/AiCallScoring/Services/AiCallScoringEligibilityCheckerTest.php | 55 ++\n tests/Unit/Component/ES/ElasticSearchWorkerManagerTest.php | 135 ----\n tests/Unit/Component/ES/Processor/Actions/LoadDocumentsActionTest.php | 220 ++++++\n tests/Unit/Component/ES/Processor/EntityQueryBuilderTest.php | 21 +-\n tests/Unit/Component/ES/Processor/Traits/SkipActivityTraitTest.php | 51 --\n tests/Unit/Component/ES/Worker/ActivityWorkerTest.php | 174 -----\n tests/Unit/Component/ES/Worker/EntityWorkerTest.php | 97 ---\n tests/Unit/Component/ES/Worker/WorkerAmountTest.php | 116 ---\n tests/Unit/Component/Encoding/Job/AnalyzeTrackChannelsJobTest.php | 52 +-\n tests/Unit/Component/Encoding/Service/GenerateSpeechFromSilenceServiceTest.php | 171 ++---\n tests/Unit/Component/FFMpeg/Services/GetSpeechIntervalsTest.php | 36 +-\n tests/Unit/Component/LanguageDetection/Services/FindSpeechTimeServiceTest.php | 20 +-\n tests/Unit/Component/MobileSettings/MobileSettingsControllerTest.php | 5 +-\n tests/Unit/Component/ParticipantSpeech/Services/ParticipantSpeechesCreatorTest.php | 75 ++\n tests/Unit/Component/ParticipantSpeech/Services/ParticipantSpeechesDeleterTest.php | 63 ++\n tests/Unit/Component/ParticipantSpeech/Services/ParticipantSpeechesProviderTest.php | 134 ++++\n tests/Unit/Component/ParticipantSpeech/Services/ParticipantSpeechesUploaderTest.php | 57 ++\n tests/Unit/Component/Transcription/Diarization/Services/GetNormalizedParticipantSpeechesServiceTest.php | 51 +-\n tests/Unit/Component/Transcription/Diarization/Source/MeetingBotSourceTest.php | 29 +-\n tests/Unit/Contracts/Services/Calendar/CalendarTraitTest.php | 58 +-\n tests/Unit/Http/Controllers/Kiosk/ActivityControllerTest.php | 159 +++++\n tests/Unit/Jobs/Activity/Import/ImportTwilioVideoSpeechesJobTest.php | 22 +-\n tests/Unit/Jobs/Activity/Import/IsActivityReadyForProcessingJobTest.php | 26 +-\n tests/Unit/Jobs/Calendar/SetupCalendarSyncTest.php | 25 -\n tests/Unit/Services/Activity/ParticipantsServiceTest.php | 12 +-\n tests/Unit/Services/Activity/Twilio/S3RecordingCredentialsServiceTest.php | 180 +++++\n tests/Unit/Services/ActivityServiceTest.php | 132 ++++\n tests/Unit/Services/Calendar/CalendarActivityServiceTest.php | 150 +++-\n tests/Unit/Services/Calendar/Command/ImportParticipantsTest.php | 6 +-\n tests/Unit/Services/Calendar/Command/MapActivityDataTest.php | 78 +-\n tests/Unit/Services/Calendar/GoogleCalendarServiceTest.php | 116 +++\n tests/Unit/Services/Crm/Close/ServiceTest.php | 165 +++++\n tests/Unit/Services/Crm/Hubspot/ServiceTest.php | 272 ++++++-\n tests/Unit/Services/Crm/Hubspot/ServiceTraits/OpportunitySyncTest.php | 25 +-\n tests/Unit/Services/Crm/Hubspot/ServiceTraits/OpportunitySyncTraitMatchActivitiesTest.php | 3 +-\n tests/Unit/Services/Crm/IntegrationApp/ServiceTraits/SyncCrmEntitiesTraitOpportunitiesTest.php | 40 ++\n tests/Unit/Services/Crm/Pipedrive/ImportOpportunityMatchActivitiesTest.php | 2 +\n tests/Unit/Services/Crm/Salesforce/ServiceTest.php | 139 ++++\n tests/Unit/Services/Mail/Office/EmailApiClientTest.php | 195 ++---\n tests/Unit/Services/RecallAI/RecallAIServiceTest.php | 24 +-\n 175 files changed, 12562 insertions(+), 2162 deletions(-)\n create mode 120000 CLAUDE.md\n create mode 100644 app/Component/AiAutomation/Services/CrmFillingEligibilityChecker.php\n delete mode 100644 app/Component/ES/ElasticSearchWorkerManager.php\n delete mode 100644 app/Component/ES/Processor/Traits/SkipActivityTrait.php\n delete mode 100644 app/Component/ES/Worker/ActivityWorker.php\n delete mode 100644 app/Component/ES/Worker/EntityWorker.php\n delete mode 100644 app/Component/ES/Worker/WorkerAmount.php\n delete mode 100644 app/Component/ES/Worker/WorkerInterface.php\n create mode 100644 app/Component/ProphetAi/Exceptions/InsufficientTranscriptException.php\n create mode 100644 app/Component/Transcription/DTO/Http/Transcription/AssemblyAI/AssemblyAI/NoAssemblyIdException.php\n create mode 100644 app/Component/Transcription/DTO/Http/Transcription/TranscriptionIsNotCorrectFormatException.php\n create mode 100644 app/Console/Commands/Activities/SetupIntegration/TwilioSetS3RecordingCredentialsCommand.php\n create mode 100644 app/Console/Commands/Crm/BackfillOpportunityUserFromAccountCommand.php\n delete mode 100644 app/Console/Commands/Elasticsearch/AsyncUpdateEsActivities.php\n create mode 100644 app/Console/Commands/IssueMcpTokenCommand.php\n create mode 100644 app/Http/Middleware/McpAuditMiddleware.php\n create mode 100644 app/Http/Middleware/McpTierMiddleware.php\n create mode 100644 app/Mcp/Contracts/McpCallRepositoryInterface.php\n create mode 100644 app/Mcp/DTO/ListCallsFilters.php\n create mode 100644 app/Mcp/Errors/McpError.php\n create mode 100644 app/Mcp/Repositories/McpActivityHydrator.php\n create mode 100644 app/Mcp/Repositories/McpCallRepository.php\n create mode 100644 app/Mcp/Repositories/McpElasticCallRepository.php\n create mode 100644 app/Mcp/Servers/JiminnyServer.php\n create mode 100644 app/Mcp/Tools/ListCallsTool.php\n create mode 100644 app/Services/Activity/Twilio/S3RecordingCredentialsService.php\n create mode 100644 config/mcp.php\n create mode 100644 database/migrations/2026_04_30_120000_create_mcp_audit_log_table.php\n create mode 100644 docs/mcp/explorer/explorer.html\n create mode 100644 docs/mcp/explorer/explorer.template.html\n create mode 100644 docs/mcp/explorer/generate.js\n create mode 100644 docs/mcp/explorer/tool-explorer-meta.json\n create mode 100644 docs/mcp/tools-list.json\n create mode 100644 docs/mcp/tools.md\n create mode 100644 front-end/src/components/shared/modals/EntityPickerModal/__tests__/useEntitiesCache.spec.ts\n create mode 100644 tests/Feature/Component/Nudge/ProcessOrganisationImmediateNudgesJobTest.php\n create mode 100644 tests/Feature/Mcp/IssueMcpTokenCommandTest.php\n create mode 100644 tests/Feature/Mcp/ListCallsToolElasticFeatureTest.php\n create mode 100644 tests/Feature/Mcp/ListCallsToolFeatureTest.php\n create mode 100644 tests/Feature/Mcp/McpTestHelpersTrait.php\n create mode 100644 tests/Stubs/SentryStub.php\n create mode 100644 tests/Unit/Component/AiAutomation/Services/CrmFillingEligibilityCheckerTest.php\n delete mode 100644 tests/Unit/Component/ES/ElasticSearchWorkerManagerTest.php\n create mode 100644 tests/Unit/Component/ES/Processor/Actions/LoadDocumentsActionTest.php\n delete mode 100644 tests/Unit/Component/ES/Processor/Traits/SkipActivityTraitTest.php\n delete mode 100644 tests/Unit/Component/ES/Worker/ActivityWorkerTest.php\n delete mode 100644 tests/Unit/Component/ES/Worker/EntityWorkerTest.php\n delete mode 100644 tests/Unit/Component/ES/Worker/WorkerAmountTest.php\n create mode 100644 tests/Unit/Component/ParticipantSpeech/Services/ParticipantSpeechesCreatorTest.php\n create mode 100644 tests/Unit/Http/Controllers/Kiosk/ActivityControllerTest.php\n create mode 100644 tests/Unit/Services/Activity/Twilio/S3RecordingCredentialsServiceTest.php\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20725-handle-HS-search-rate-limit) $ git status\nOn branch master\nYour branch is behind 'origin/master' by 114 commits, and can be fast-forwarded.\n (use \"git pull\" to update your local branch)\n\nChanges not staged for commit:\n (use \"git add <file>...\" to update what will be committed)\n (use \"git restore <file>...\" to discard changes in working directory)\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tmodified: .env.local\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tmodified: app/Component/SCIM/Constants.php\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tmodified: app/Component/SCIM/ScimProvisioning.php\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tmodified: app/Component/Twilio/Conference/ConferenceManager/SoftPhoneManager.php\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tmodified: app/Console/Commands/JiminnyDebugCommand.php\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tmodified: app/DTO/SCIM/AAD/Request/CoreUserRequest.php\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tmodified: app/DTO/SCIM/AAD/Response/CoreUser.php\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tmodified: app/Services/Telephony/TextMessagingService.php\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tmodified: config/logging.php\n\nUntracked files:\n (use \"git add <file>...\" to include in what will be committed)\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\t.env.nikilocal\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\t.env.other\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tWEBHOOK_FILTERING_IMPLEMENTATION.md\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tapp/Component/SCIM/Mutators/Attributes/User/RoleAttr.php\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tapp/Console/Commands/Crm/Hubspot/SimulateWebhooksCommand.php\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tapp/Console/Commands/Reports/CreateMockAskJiminnyReportResultCommand.php\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tapp/Rules/ListenerRoleCannotHaveAdminOrManagerPermissionRule.php\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tids.txt\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tpublic/favicon.ico\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\traw_sql_query.sql\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\ttests/Unit/Component/SCIM/Mutators/Attributes/User/RoleAttrTest.php\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\ttests/Unit/Policies/CanAccessAiReportsTest.php\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\ttests/Unit/Rules/ListenerRoleCannotHaveAdminOrManagerPermissionRuleTest.php\n\nno changes added to commit (use \"git add\" and/or \"git commit -a\")\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (master) $ git pull\nremote: Enumerating objects: 306, done.\nremote: Counting objects: 100% (299/299), done.\nremote: Compressing objects: 100% (183/183), done.\nremote: Total 306 (delta 213), reused 171 (delta 116), pack-reused 7 (from 1)\nReceiving objects: 100% (306/306), 80.12 KiB | 1000.00 KiB/s, done.\nResolving deltas: 100% (213/213), completed with 53 local objects.\nFrom github.com:jiminny/app\n 90bca4e4b2..5604af40cf master -> origin/master\n 4e7078fd8b..0b8343d179 JY-18091-upgrade-to-php-8-5 -> origin/JY-18091-upgrade-to-php-8-5\n 098eeaa087..d5a447e492 JY-20613-allow-owner-role-on-team-setup -> origin/JY-20613-allow-owner-role-on-team-setup\n c3a76ace91..af65249d0f JY-20749-user-can-view-recorded-meetings -> origin/JY-20749-user-can-view-recorded-meetings\n d94a285ae7..7ce96cb5fe JY-20808-low-priority-indexing-queue -> origin/JY-20808-low-priority-indexing-queue\n * [new branch] JY-20842-remove-partial-updater -> origin/JY-20842-remove-partial-updater\n * [new branch] JY-20920-fix-participant-flip -> origin/JY-20920-fix-participant-flip\n * [new branch] secfix/npm-20260519 -> origin/secfix/npm-20260519\nUpdating cb4ebf0c36..5604af40cf\nFast-forward\n app/Component/ES/ChunkSize.php | 54 +++++++++++++++++++\n app/Component/ES/Processor/DTOs/SelectionList.php | 4 +-\n app/Component/ES/Processor/TargetEntitiesSelector.php | 19 ++++---\n app/Component/MeetingBot/Service/ParticipantMatcher.php | 46 ++++++++++++----\n app/Exceptions/RateLimitException.php | 19 ++++++-\n app/Http/Middleware/McpTierMiddleware.php | 27 ++--------\n app/Jobs/Crm/MatchActivityCrmData.php | 47 ++++++++++++----\n app/Jobs/Middleware/HandleHubspotRateLimit.php | 42 +++++++++++++++\n app/Mcp/Servers/JiminnyServer.php | 2 +\n app/Mcp/Tools/GetMeTool.php | 157 +++++++++++++++++++++++++++++++++++++++++++++++++++++\n app/Models/Feature/FeatureEnum.php | 1 +\n app/Services/Activity/HubSpot/ProviderResolver.php | 4 +-\n app/Services/Activity/HubSpot/ProviderResolverInterface.php | 2 +-\n app/Services/Activity/HubSpot/Providers/Provider.php | 2 +-\n app/Services/Activity/HubSpot/Providers/ProviderKixie.php | 2 +-\n app/Services/Activity/HubSpot/Providers/ProviderOrum.php | 2 +-\n app/Services/Activity/HubSpot/Providers/ProviderTwilio.php | 2 +-\n app/Services/Activity/HubSpot/Providers/ProviderTwilioFlex.php | 5 +-\n app/Services/Activity/HubSpot/Service.php | 97 +++++++++++++++++++++++++++------\n app/Services/Crm/Hubspot/Client.php | 132 +++++++++++++++++++++++++++++++++++++++++++++\n app/Services/Crm/Hubspot/HubspotClientInterface.php | 15 ++++++\n app/Services/Crm/Hubspot/Pagination/HubspotPaginationService.php | 21 ++++----\n app/Services/Crm/Hubspot/Pagination/PaginationState.php | 2 +-\n database/migrations/2026_05_13_124153_create_mcp_feature_flag.php | 25 +++++++++\n tests/Feature/Mcp/GetMeToolFeatureTest.php | 140 +++++++++++++++++++++++++++++++++++++++++++++++\n tests/Feature/Mcp/ListCallsToolFeatureTest.php | 2 +-\n tests/Feature/Mcp/McpTestHelpersTrait.php | 19 ++++++-\n tests/Unit/Component/ES/ChunkSizeTest.php | 50 +++++++++++++++++\n tests/Unit/Component/ES/Processor/DTOs/SelectionListTest.php | 27 +++++++---\n tests/Unit/Component/ES/Processor/TargetEntitiesSelectorTest.php | 39 ++++++++------\n tests/Unit/Component/MeetingBot/Service/ParticipantMatcherTest.php | 68 ++++++++++++++++++++++-\n tests/Unit/Exceptions/RateLimitExceptionTest.php | 56 +++++++++++++++++++\n tests/Unit/Jobs/Crm/MatchActivityCrmDataTest.php | 8 +--\n tests/Unit/Jobs/Middleware/HandleHubspotRateLimitTest.php | 151 +++++++++++++++++++++++++++++++++++++++++++++++++++\n tests/Unit/Services/Activity/HubSpot/ServiceTest.php | 109 +++++++++++++++++++++++++++++++++++++\n tests/Unit/Services/Crm/Hubspot/ClientTest.php | 250 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++\n tests/Unit/Services/Crm/Hubspot/Pagination/HubspotPaginationServiceTest.php | 283 +++++++++++++++++++++---------------------------------------------------------------------------\n 37 files changed, 1587 insertions(+), 344 deletions(-)\n create mode 100644 app/Component/ES/ChunkSize.php\n create mode 100644 app/Jobs/Middleware/HandleHubspotRateLimit.php\n create mode 100644 app/Mcp/Tools/GetMeTool.php\n create mode 100644 database/migrations/2026_05_13_124153_create_mcp_feature_flag.php\n create mode 100644 tests/Feature/Mcp/GetMeToolFeatureTest.php\n create mode 100644 tests/Unit/Component/ES/ChunkSizeTest.php\n create mode 100644 tests/Unit/Exceptions/RateLimitExceptionTest.php\n create mode 100644 tests/Unit/Jobs/Middleware/HandleHubspotRateLimitTest.php\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (master) $ git pull\nAlready up to date.\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (master) $ co -b JY-20676-delete-report-related-objects\nSwitched to a new branch 'JY-20676-delete-report-related-objects'\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20676-delete-report-related-objects) $ csfix\ndocker exec -it docker_lamp_1 ./vendor/bin/php-cs-fixer fix --config=.php-cs-fixer.dist.php -v --using-cache=no --diff \nPHP CS Fixer 3.87.1 Alexander by Fabien Potencier, Dariusz Ruminski and contributors.\nPHP runtime: 8.3.30\nRunning analysis on 7 cores with 10 files per process.\nParallel runner is an experimental feature and may be unstable, use it at your own risk. Feedback highly appreciated!\nLoaded config default from \".php-cs-fixer.dist.php\".\n 5690/5690 [▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓] 100%\n\n 1) app/Console/Commands/JiminnyDebugCommand.php (statement_indentation, blank_line_before_statement)\n ---------- begin diff ----------\n--- /home/jiminny/app/Console/Commands/JiminnyDebugCommand.php\n+++ /home/jiminny/app/Console/Commands/JiminnyDebugCommand.php\n@@ -23,6 +23,7 @@\n \n if ($action === 'redis-set') {\n $this->testRedisSet();\n+\n return;\n }\n \n@@ -45,7 +46,7 @@\n $ttl = 60;\n \n try {\n-// $result = Redis::set($testKey, $testValue, 'EX', $ttl, 'NX');\n+ // $result = Redis::set($testKey, $testValue, 'EX', $ttl, 'NX');\n $result = Redis::set($testKey, $testValue, ['nx', 'ex' => $ttl]);\n \n if ($result) {\n\n ----------- end diff -----------\n\n\nFixed 1 of 5690 files in 50.673 seconds, 67.00 MB memory used\n\nWhat's next:\n Try Docker Debug for seamless, persistent debugging tools in any container or image → docker debug docker_lamp_1\n Learn more at https://docs.docker.com/go/debug-cli/\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20676-delete-report-related-objects) $ ;xd\ndocker exec -it docker_lamp_1 bash -c \"mv /usr/local/etc/php/conf.d/xdebug.ini ~/xdebug.ini\"\n\nWhat's next:\n Try Docker Debug for seamless, persistent debugging tools in any container or image → docker debug docker_lamp_1\n Learn more at https://docs.docker.com/go/debug-cli/\ndocker exec -it docker_lamp_1 supervisorctl restart all\njiminny-worker-processing-2:jiminny-worker-processing-2_00: stopped\njiminny-worker-processing-3:jiminny-worker-processing-3_00: stopped\njiminny-worker-processing-4:jiminny-worker-processing-4_00: stopped\njiminny-worker-processing-5:jiminny-worker-processing-5_00: stopped\njiminny-worker-processing-delayed:jiminny-worker-processing-delayed_00: stopped\nworker-analytics:worker-analytics_00: stopped\nworker-crm-update:worker-crm-update_00: stopped\nworker-download:worker-download_00: stopped\nworker-nudges:worker-nudges_00: stopped\nworker-calendar:worker-calendar_00: stopped\nworker-audio:worker-audio_00: stopped\njiminny-worker-processing-1:jiminny-worker-processing-1_00: stopped\nworker:worker_00: stopped\nworker-conferences:worker-conferences_00: stopped\nworker-crm-sync:worker-crm-sync_00: stopped\nworker-emails:worker-emails_00: stopped\nworker-es-update:worker-es-update_00: stopped\nartisan-schedule:artisan-schedule_00: stopped\nartisan-schedule:artisan-schedule_00: started\njiminny-worker-processing-1:jiminny-worker-processing-1_00: started\njiminny-worker-processing-2:jiminny-worker-processing-2_00: started\njiminny-worker-processing-3:jiminny-worker-processing-3_00: started\njiminny-worker-processing-4:jiminny-worker-processing-4_00: started\njiminny-worker-processing-5:jiminny-worker-processing-5_00: started\njiminny-worker-processing-delayed:jiminny-worker-processing-delayed_00: started\nworker:worker_00: started\nworker-analytics:worker-analytics_00: started\nworker-audio:worker-audio_00: started\nworker-calendar:worker-calendar_00: started\nworker-conferences:worker-conferences_00: started\nworker-crm-sync:worker-crm-sync_00: started\nworker-crm-update:worker-crm-update_00: started\nworker-download:worker-download_00: started\nworker-emails:worker-emails_00: started\nworker-es-update:worker-es-update_00: started\nworker-nudges:worker-nudges_00: started\n\nWhat's next:\n Try Docker Debug for seamless, persistent debugging tools in any container or image → docker debug docker_lamp_1\n Learn more at https://docs.docker.com/go/debug-cli/\ndocker exec -it docker_lamp_1 php -v\nPHP 8.3.30 (cli) (built: Mar 16 2026 22:32:32) (NTS)\nCopyright (c) The PHP Group\nZend Engine v4.3.30, Copyright (c) Zend Technologies\n with Zend OPcache v8.3.30, Copyright (c), by Zend Technologies\n\nWhat's next:\n Try Docker Debug for seamless, persistent debugging tools in any container or image → docker debug docker_lamp_1\n Learn more at https://docs.docker.com/go/debug-cli/\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20676-delete-report-related-objects) $ git status\nOn branch JY-20676-delete-report-related-objects\nChanges not staged for commit:\n (use \"git add <file>...\" to update what will be committed)\n (use \"git restore <file>...\" to discard changes in working directory)\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tmodified: .env.local\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tmodified: app/Console/Commands/JiminnyDebugCommand.php\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tmodified: config/logging.php\n\nUntracked files:\n (use \"git add <file>...\" to include in what will be committed)\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\t.env.nikilocal\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\t.env.other\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tWEBHOOK_FILTERING_IMPLEMENTATION.md\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tapp/Console/Commands/Crm/Hubspot/SimulateWebhooksCommand.php\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tapp/Console/Commands/Reports/CreateMockAskJiminnyReportResultCommand.php\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tids.txt\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tpublic/favicon.ico\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\traw_sql_query.sql\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\ttests/Unit/Policies/CanAccessAiReportsTest.php\n\nno changes added to commit (use \"git add\" and/or \"git commit -a\")\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20676-delete-report-related-objects) $ git push -u origin JY-20676-delete-report-related-objects\nEnumerating objects: 45, done.\nCounting objects: 100% (45/45), done.\nDelta compression using up to 8 threads\nCompressing objects: 100% (24/24), done.\nWriting objects: 100% (24/24), 3.62 KiB | 3.62 MiB/s, done.\nTotal 24 (delta 19), reused 0 (delta 0), pack-reused 0\nremote: Resolving deltas: 100% (19/19), completed with 19 local objects.\nremote: \nremote: Create a pull request for 'JY-20676-delete-report-related-objects' on GitHub by visiting:\nremote: https://github.com/jiminny/app/pull/new/JY-20676-delete-report-related-objects\nremote: \nTo github.com:jiminny/app.git\n * [new branch] JY-20676-delete-report-related-objects -> JY-20676-delete-report-related-objects\nbranch 'JY-20676-delete-report-related-objects' set up to track 'origin/JY-20676-delete-report-related-objects'.\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20676-delete-report-related-objects) $ csfix\ndocker exec -it docker_lamp_1 ./vendor/bin/php-cs-fixer fix --config=.php-cs-fixer.dist.php -v --using-cache=no --diff \nPHP CS Fixer 3.87.1 Alexander by Fabien Potencier, Dariusz Ruminski and contributors.\nPHP runtime: 8.3.30\nRunning analysis on 7 cores with 10 files per process.\nParallel runner is an experimental feature and may be unstable, use it at your own risk. Feedback highly appreciated!\nLoaded config default from \".php-cs-fixer.dist.php\".\n 5690/5690 [▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓] 100%\n\n 1) app/Http/Controllers/API/V2/AskJiminnyReportsController.php (blank_line_before_statement)\n ---------- begin diff ----------\n--- /home/jiminny/app/Http/Controllers/API/V2/AskJiminnyReportsController.php\n+++ /home/jiminny/app/Http/Controllers/API/V2/AskJiminnyReportsController.php\n@@ -140,6 +140,7 @@\n if ($enabled && $report->isAskJiminnyReport() && ! $report->canExecute()) {\n $error = 'This report is missing a saved search or prompt. ' .\n 'Edit the report to complete the setup before enabling it.';\n+\n return new JsonResponse(\n ['error' => $error],\n Response::HTTP_UNPROCESSABLE_ENTITY\n\n ----------- end diff -----------\n\n\nFixed 1 of 5690 files in 71.757 seconds, 60.00 MB memory used\n\nWhat's next:\n Try Docker Debug for seamless, persistent debugging tools in any container or image → docker debug docker_lamp_1\n Learn more at https://docs.docker.com/go/debug-cli/\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20676-delete-report-related-objects) $ git pull\nremote: Enumerating objects: 158, done.\nremote: Counting objects: 100% (103/103), done.\nremote: Compressing objects: 100% (37/37), done.\nremote: Total 158 (delta 80), reused 74 (delta 66), pack-reused 55 (from 3)\nReceiving objects: 100% (158/158), 80.59 KiB | 982.00 KiB/s, done.\nResolving deltas: 100% (85/85), completed with 45 local objects.\nFrom github.com:jiminny/app\n 02a33811ee..c6ce5e2440 JY-20676-delete-report-related-objects -> origin/JY-20676-delete-report-related-objects\n 7ce96cb5fe..6c59f04358 JY-20808-low-priority-indexing-queue -> origin/JY-20808-low-priority-indexing-queue\n 3906a9238a..2b5e6ea62b JY-20835-mcp-enable-users-to-get-a-list-of-deals-and-their-details -> origin/JY-20835-mcp-enable-users-to-get-a-list-of-deals-and-their-details\n 5604af40cf..ea3519f0e2 master -> origin/master\n * [new branch] switch-eu-assembly -> origin/switch-eu-assembly\nUpdating 02a33811ee..c6ce5e2440\nFast-forward\n app/Component/ES/ElasticSearchDocumentPartialUpdater.php | 48 ---\n app/Component/ParticipantSpeech/Services/ParticipantAttributionService.php | 4 +-\n app/Component/Settings/AutoScoring/Services/UpdateAutoScoreService.php | 20 +-\n app/Component/Transcription/Service/StorageService.php | 8 +-\n front-end/package.json | 2 +-\n front-end/src/components/DealInsights/Modals/AskAnythingModal.vue | 23 ++\n front-end/src/components/shared/AskAnything/AskAnythingPromptFormItem.vue | 2 +\n front-end/src/components/shared/AskAnything/AskAnythingSettingsDrawer.vue | 23 +-\n front-end/src/components/shared/AskAnything/__mocks__/AskAnythingSettingsDrawer.mocks.js | 1 +\n front-end/src/components/shared/AskAnything/__tests__/AskAnythingSettingsDrawer.spec.js | 135 ++++---\n front-end/src/components/shared/AskAnything/__tests__/__snapshots__/AskAnythingSettingsDrawer.spec.js.html | 1235 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++\n front-end/src/components/shared/AskAnything/__tests__/__snapshots__/AskAnythingSettingsDrawer.spec.js.snap | 1382 ----------------------------------------------------------------\n front-end/src/components/shared/AskAnything/prompts.js | 1 +\n front-end/src/components/shared/AskAnything/useAskAnything.js | 1 +\n front-end/yarn.lock | 8 +-\n tests/Unit/Component/ES/ElasticSearchDocumentPartialUpdaterTest.php | 42 --\n tests/Unit/Component/Settings/AutoScoring/Services/UpdateAutoScoreServiceTest.php | 86 ++--\n tests/Unit/Component/Transcription/Service/StorageServiceTest.php | 29 +-\n 18 files changed, 1448 insertions(+), 1602 deletions(-)\n delete mode 100644 app/Component/ES/ElasticSearchDocumentPartialUpdater.php\n create mode 100644 front-end/src/components/shared/AskAnything/__tests__/__snapshots__/AskAnythingSettingsDrawer.spec.js.html\n delete mode 100644 front-end/src/components/shared/AskAnything/__tests__/__snapshots__/AskAnythingSettingsDrawer.spec.js.snap\n delete mode 100644 tests/Unit/Component/ES/ElasticSearchDocumentPartialUpdaterTest.php\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20676-delete-report-related-objects) $ csfix\ndocker exec -it docker_lamp_1 ./vendor/bin/php-cs-fixer fix --config=.php-cs-fixer.dist.php -v --using-cache=no --diff \nPHP CS Fixer 3.87.1 Alexander by Fabien Potencier, Dariusz Ruminski and contributors.\nPHP runtime: 8.3.30\nRunning analysis on 7 cores with 10 files per process.\nParallel runner is an experimental feature and may be unstable, use it at your own risk. Feedback highly appreciated!\nLoaded config default from \".php-cs-fixer.dist.php\".\n 5688/5688 [▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓] 100%\n\n\nFixed 0 of 5688 files in 79.904 seconds, 60.00 MB memory used\n\nWhat's next:\n Try Docker Debug for seamless, persistent debugging tools in any container or image → docker debug docker_lamp_1\n Learn more at https://docs.docker.com/go/debug-cli/\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20676-delete-report-related-objects) $","is_focused":true},{"role":"AXRadioButton","text":"DOCKER","depth":2,"bounds":{"left":0.27027926,"top":1.0,"width":0.094913565,"height":-0.042298436},"on_screen":true,"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.27227393,"top":1.0,"width":0.005319149,"height":-0.04549086},"on_screen":true,"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"DEV (docker)","depth":2,"bounds":{"left":0.36519283,"top":1.0,"width":0.094913565,"height":-0.042298436},"on_screen":true,"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.3671875,"top":1.0,"width":0.005319149,"height":-0.04549086},"on_screen":true,"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"APP (-zsh)","depth":2,"bounds":{"left":0.46010637,"top":1.0,"width":0.09474734,"height":-0.042298436},"on_screen":true,"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.46210107,"top":1.0,"width":0.005319149,"height":-0.04549086},"on_screen":true,"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"screenpipe\"","depth":2,"bounds":{"left":0.55485374,"top":1.0,"width":0.09474734,"height":-0.042298436},"on_screen":true,"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.5568484,"top":1.0,"width":0.005319149,"height":-0.04549086},"on_screen":true,"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"-zsh","depth":2,"bounds":{"left":0.64960104,"top":1.0,"width":0.09474734,"height":-0.042298436},"on_screen":true,"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.6515958,"top":1.0,"width":0.005319149,"height":-0.04549086},"on_screen":true,"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"⌥⌘1","depth":1,"bounds":{"left":0.7307181,"top":1.0,"width":0.01861702,"height":-0.023144484},"on_screen":true,"automation_id":"_NS:8","role_description":"text"},{"role":"AXStaticText","text":"APP (-zsh)","depth":1,"bounds":{"left":0.49900267,"top":1.0,"width":0.024601065,"height":-0.02394259},"on_screen":true,"role_description":"text"}]...
|
2802650493718167367
|
-1358120912881272742
|
idle
|
accessibility
|
NULL
|
Last login: Mon May 18 09:17:28 on ttys007
Poetry Last login: Mon May 18 09:17:28 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 (pipedrive-sdk-poc) $ co master
error: Your local changes to the following files would be overwritten by checkout:
PIPEDRIVE_V2_MIGRATION_TICKETS.md
Please commit your changes or stash them before you switch branches.
Aborting
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (pipedrive-sdk-poc) $ git pull
remote: Enumerating objects: 1047, done.
remote: Counting objects: 100% (832/832), done.
remote: Compressing objects: 100% (298/298), done.
remote: Total 1047 (delta 634), reused 596 (delta 534), pack-reused 215 (from 3)
Receiving objects: 100% (1047/1047), 353.16 KiB | 1.56 MiB/s, done.
Resolving deltas: 100% (687/687), completed with 107 local objects.
From github.com:jiminny/app
907c54896c..34656c53ed pipedrive-sdk-poc -> origin/pipedrive-sdk-poc
03325ec50f..4e7078fd8b JY-18091-upgrade-to-php-8-5 -> origin/JY-18091-upgrade-to-php-8-5
e7d231e163..bc6a3fce6b JY-20725-handle-HS-search-rate-limit -> origin/JY-20725-handle-HS-search-rate-limit
* [new branch] JY-20749-user-can-view-recorded-meetings -> origin/JY-20749-user-can-view-recorded-meetings
98ca281a04..e0351be069 JY-20808-low-priority-indexing-queue -> origin/JY-20808-low-priority-indexing-queue
569abb5149..3906a9238a JY-20835-mcp-enable-users-to-get-a-list-of-deals-and-their-details -> origin/JY-20835-mcp-enable-users-to-get-a-list-of-deals-and-their-details
ad6c2a86e8..50eb6afba9 JY-20846-mcp-enable-the-ai-to-know-details-about-the-user -> origin/JY-20846-mcp-enable-the-ai-to-know-details-about-the-user
* [new branch] JY-20893-chunk-control-per-update-target -> origin/JY-20893-chunk-control-per-update-target
31c62924a5..cb4ebf0c36 master -> origin/master
Updating 907c54896c..34656c53ed
Fast-forward
PIPEDRIVE_V2_MIGRATION_TICKETS.md | 52 ++++++++++++++++++++++++++++++++++++++++++++++++++++
1 file changed, 52 insertions(+)
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (pipedrive-sdk-poc) $ co master
M .env.local
M config/logging.php
Switched to branch 'master'
Your branch is behind 'origin/master' by 31 commits, and can be fast-forwarded.
(use "git pull" to update your local branch)
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (master) $ git pull
Updating 31c62924a5..cb4ebf0c36
Fast-forward
app/Component/ES/Processor/Traits/SelectEntityListTrait.php | 20 ------
app/Services/Calendar/CalendarActivityService.php | 46 +++++++++++++
app/Services/Calendar/Command/MapActivityData.php | 106 +++-------------------------
docs/mcp/explorer/explorer.html | 104 +++++++++++++++++++++++++---
docs/mcp/explorer/explorer.template.html | 102 ++++++++++++++++++++++++---
docs/mcp/tools-list.json | 373 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++-------
docs/mcp/tools.md | 117 +++++++++++++++++++++++--------
tests/Unit/Component/ES/AsyncUpdateElasticSearchTest.php | 16 +----
tests/Unit/Component/ES/Listeners/UpdateMultipleTargetsListenerTest.php | 10 ---
tests/Unit/Component/ES/Listeners/UpdateSingleTargetListenerTest.php | 6 --
tests/Unit/Component/ES/Processor/TargetEntitiesSelectorTest.php | 9 ---
tests/Unit/Component/ES/Processor/Traits/SelectEntityListTraitTest.php | 15 ++--
tests/Unit/Component/ES/UpdateProcessManagerTest.php | 2 -
tests/Unit/Services/Calendar/CalendarActivityServiceTest.php | 150 ++++++++++++++++++++++++++++++++++++++--
tests/Unit/Services/Calendar/Command/MapActivityDataTest.php | 78 ++-------------------
15 files changed, 832 insertions(+), 322 deletions(-)
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (master) $ co -b JY-20613-allow-owner-role-on-team-setup
Switched to a new branch 'JY-20613-allow-owner-role-on-team-setup'
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20613-allow-owner-role-on-team-setup) $ csfix
docker exec -it docker_lamp_1 ./vendor/bin/php-cs-fixer fix --config=.php-cs-fixer.dist.php -v --using-cache=no --diff
PHP CS Fixer 3.87.1 Alexander by Fabien Potencier, Dariusz Ruminski and contributors.
PHP runtime: 8.3.30
Running 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!
Loaded config default from ".php-cs-fixer.dist.php".
5682/5682 [▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓] 100%
Fixed 0 of 5682 files in 56.978 seconds, 67.00 MB memory used
What's next:
Try Docker Debug for seamless, persistent debugging tools in any container or image → docker debug docker_lamp_1
Learn more at [URL_WITH_CREDENTIALS] ~/jiminny/app (JY-20613-allow-owner-role-on-team-setup) $ csfix
docker exec -it docker_lamp_1 ./vendor/bin/php-cs-fixer fix --config=.php-cs-fixer.dist.php -v --using-cache=no --diff
PHP CS Fixer 3.87.1 Alexander by Fabien Potencier, Dariusz Ruminski and contributors.
PHP runtime: 8.3.30
Running 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!
Loaded config default from ".php-cs-fixer.dist.php".
5682/5682 [▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓] 100%
Fixed 0 of 5682 files in 49.910 seconds, 60.00 MB memory used
What's next:
Try Docker Debug for seamless, persistent debugging tools in any container or image → docker debug docker_lamp_1
Learn more at [URL_WITH_CREDENTIALS] ~/jiminny/app (JY-20613-allow-owner-role-on-team-setup) $ git pull
remote: Enumerating objects: 248, done.
remote: Counting objects: 100% (128/128), done.
remote: Compressing objects: 100% (23/23), done.
remote: Total 59 (delta 43), reused 44 (delta 33), pack-reused 0 (from 0)
Unpacking objects: 100% (59/59), 10.48 KiB | 228.00 KiB/s, done.
From github.com:jiminny/app
b7df560451..190239dfd4 JY-20613-allow-owner-role-on-team-setup -> origin/JY-20613-allow-owner-role-on-team-setup
e0351be069..d94a285ae7 JY-20808-low-priority-indexing-queue -> origin/JY-20808-low-priority-indexing-queue
* [new branch] JY-20920-fix-participant-matcher -> origin/JY-20920-fix-participant-matcher
cb4ebf0c36..90bca4e4b2 master -> origin/master
Merge made by the 'ort' strategy.
app/Component/ES/ChunkSize.php | 54 +++++++++++++++++++++++++++
app/Component/ES/Processor/DTOs/SelectionList.php | 4 +-
app/Component/ES/Processor/TargetEntitiesSelector.php | 19 ++++++----
app/Http/Middleware/McpTierMiddleware.php | 27 +++-----------
app/Mcp/Servers/JiminnyServer.php | 2 +
app/Mcp/Tools/GetMeTool.php | 157 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
app/Models/Feature/FeatureEnum.php | 1 +
database/migrations/2026_05_13_124153_create_mcp_feature_flag.php | 25 +++++++++++++
front-end/src/components/Settings/Kiosk/modals/EditTeamModal/EditTeamModal.vue | 52 ++++++++++++++++++--------
front-end/src/components/Settings/Kiosk/modals/EditTeamModal/__tests__/EditTeamModal.spec.js | 14 +++++++
tests/Feature/Mcp/GetMeToolFeatureTest.php | 140 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
tests/Feature/Mcp/ListCallsToolFeatureTest.php | 2 +-
tests/Feature/Mcp/McpTestHelpersTrait.php | 19 +++++++++-
tests/Unit/Component/ES/ChunkSizeTest.php | 50 +++++++++++++++++++++++++
tests/Unit/Component/ES/Processor/DTOs/SelectionListTest.php | 27 ++++++++++----
tests/Unit/Component/ES/Processor/TargetEntitiesSelectorTest.php | 39 +++++++++++---------
16 files changed, 557 insertions(+), 75 deletions(-)
create mode 100644 app/Component/ES/ChunkSize.php
create mode 100644 app/Mcp/Tools/GetMeTool.php
create mode 100644 database/migrations/2026_05_13_124153_create_mcp_feature_flag.php
create mode 100644 tests/Feature/Mcp/GetMeToolFeatureTest.php
create mode 100644 tests/Unit/Component/ES/ChunkSizeTest.php
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20613-allow-owner-role-on-team-setup) $ git push
Enumerating objects: 40, done.
Counting objects: 100% (34/34), done.
Delta compression using up to 8 threads
Compressing objects: 100% (18/18), done.
Writing objects: 100% (18/18), 1.58 KiB | 1.58 MiB/s, done.
Total 18 (delta 15), reused 0 (delta 0), pack-reused 0
remote: Resolving deltas: 100% (15/15), completed with 13 local objects.
To github.com:jiminny/app.git
190239dfd4..ec1b261264 JY-20613-allow-owner-role-on-team-setup -> JY-20613-allow-owner-role-on-team-setup
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20613-allow-owner-role-on-team-setup) $ gbr
* JY-20613-allow-owner-role-on-team-setup
pipedrive-sdk-poc
master
JY-20903-update_activity-stage-on-opportunity-change
JY-20904-fix-update-es-on-activity-command
JY-20891-improve-sms-text-relays
JY-20725-handle-HS-search-rate-limit
JY-20818-move-AJ-reports-to-separated-datadog-metric
JY-20773-fix-automated-reports-user-pilot-tracking
JY-20157-AJ-report-not-send-notification
JY-20508-notify-before-AJ-report-expiration
JY-20372-ai-reports-promotion-pages
JY-20352-sync-opportunities-without-a-local-owner-user-id-is-null
JY-20738-debug-AJ-tracking-UP
a
JY-18909-automated-reports-ask-jiminny
JY-20692-fix-integration-app-[API_KEY]
JY-20553-debug-crm-sync-delays
JY-20698-fix-SF-activity-types-on-new-playbook
JY-20543-AJ-report-tracking
JY-20384-handle-auto-sync-with-no-access-to-event-type
JY-20458-ask-jiminny-user-definitions
JY-19666-fix-import-contacts-account-association
JY-19666-HS-import-contacts-and-accounts-batch-job
JY-20458-Ask-Jiminny-Reports
JY-20200-batch-update-CRM-objects-Salesforce
JY-19666-HS-webhooks-add-contact-and-company
JY-20348-trigger-setup-DI-layout-on-team-creation
JY-20326-refactor-info-message-in-command
JY-20317-fix-auto-log-delay-issue-on-all-channels-disabled
JY-20312-remove-on-update-change-last-synced-at-crm-configurations
JY-20306-SF-skip-auto-sync-for-task-based-playbook
JY-20192-remove-deleted-team-from-saved-search-filters
JY-20197-import-opportunity-batch-job
JY-20293-enable-status-field-for-pipedrive-deals
JY-20191-remove-commands-interactive-prompts
JY-20118-change-default-sync-strategy
JY-20183-add-cache-on-auto-log-delay
JY-20197-add-import-opportunity-batch-job
20118-hs-opportunity-make-webhook-strategy-default
JY-20118-make-default-hs-opportunity-sync-strategy-webhook-based
JY-20196-handle-opportunity-without-note
JY-20118-improve-opportunity-import
JY-20189-handle-activity-search-on-deleted-groups
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20613-allow-owner-role-on-team-setup) $ co JY-20725-handle-HS-search-rate-limit
M .env.local
M config/logging.php
Switched to branch 'JY-20725-handle-HS-search-rate-limit'
Your branch is behind 'origin/JY-20725-handle-HS-search-rate-limit' by 439 commits, and can be fast-forwarded.
(use "git pull" to update your local branch)
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20725-handle-HS-search-rate-limit) $ git pull
Updating 0f3e438941..bc6a3fce6b
Fast-forward
.gitignore | 3 +-
.windsurfrules | 168 ++---
CLAUDE.md | 1 +
app/Component/ActivityAnalytics/Service/CalculateTalkTimeOffsetsFromTranscription.php | 24 +-
app/Component/AiActivityType/Services/AiActivityTypeEligibilityChecker.php | 28 +-
app/Component/AiAutomation/Actions/PrepareUpdateDtoAction.php | 32 +-
app/Component/AiAutomation/Services/CrmFillingEligibilityChecker.php | 47 ++
app/Component/AiAutomation/TestCrmAiPromptService.php | 14 +
app/Component/AiCallScoring/Services/AiCallScoringEligibilityChecker.php | 9 +
app/Component/ES/ElasticSearchDocumentPartialUpdater.php | 13 +-
app/Component/ES/ElasticSearchWorkerManager.php | 86 ---
app/Component/ES/Processor/Actions/LoadDocumentsAction.php | 80 +--
app/Component/ES/Processor/EntityQueryBuilder.php | 12 +-
app/Component/ES/Processor/TargetEntitiesSelector.php | 2 +-
app/Component/ES/Processor/Traits/SkipActivityTrait.php | 25 -
app/Component/ES/Repositories/EsResetActivityRepository.php | 11 +-
app/Component/ES/Worker/ActivityWorker.php | 73 --
app/Component/ES/Worker/EntityWorker.php | 44 --
app/Component/ES/Worker/WorkerAmount.php | 60 --
app/Component/ES/Worker/WorkerInterface.php | 15 -
app/Component/ElasticSearch/Contract/Searchable.php | 4 +
app/Component/Encoding/Job/AnalyzeTrackChannelsJob.php | 20 +-
app/Component/Encoding/Service/GenerateSpeechFromSilenceService.php | 85 ++-
app/Component/FFMpeg/Services/GetSpeechIntervalsService.php | 18 +-
app/Component/LanguageDetection/Services/FindSpeechTimeService.php | 22 +-
app/Component/Nudge/Job/ProcessOrganisationImmediateNudgesJob.php | 218 +++++-
app/Component/ParagraphBreaker/Services/TranscriptionParagraphsService.php | 4 +
app/Component/ParticipantSpeech/Services/ParticipantSpeechesCreator.php | 33 +
app/Component/ParticipantSpeech/Services/ParticipantSpeechesDeleter.php | 15 +
app/Component/ParticipantSpeech/Services/ParticipantSpeechesProvider.php | 51 +-
app/Component/ParticipantSpeech/Services/ParticipantSpeechesUploader.php | 36 +
app/Component/ProphetAi/Exceptions/InsufficientTranscriptException.php | 11 +
app/Component/Transcription/DTO/Http/Transcription/AssemblyAI/AssemblyAI/NoAssemblyIdException.php | 11 +
app/Component/Transcription/DTO/Http/Transcription/AssemblyAI/AssemblyAI/SuccessfulResponse.php | 6 +
app/Component/Transcription/DTO/Http/Transcription/TranscriptionIsNotCorrectFormatException.php | 11 +
app/Component/Transcription/Diarization/Services/GetNormalizedParticipantSpeechesService.php | 23 +-
app/Component/Transcription/Diarization/Source/MeetingBotSource.php | 16 +-
app/Component/Transcription/TranscriptionProcessor/TranscriptionProcessor.php | 3 +
app/Console/Commands/Activities/ActivityHardDeleteCommand.php | 4 +-
app/Console/Commands/Activities/Copy.php | 2 +
app/Console/Commands/Activities/SetupIntegration/TwilioSetS3RecordingCredentialsCommand.php | 119 ++++
app/Console/Commands/Activities/UpdateActivityElasticSearchDocumentCommand.php | 10 +-
app/Console/Commands/Crm/BackfillOpportunityUserFromAccountCommand.php | 126 ++++
app/Console/Commands/Elasticsearch/AsyncUpdateEsActivities.php | 19 -
app/Console/Commands/Elasticsearch/AsyncUpdateEsEntities.php | 50 +-
app/Console/Commands/Elasticsearch/ResetAsyncElasticSearchCommand.php | 30 +-
app/Console/Commands/GeckoExport/GeckoExportParticipantSpeechesCommand.php | 14 +-
app/Console/Commands/IssueMcpTokenCommand.php | 84 +++
app/Console/Commands/JiminnyDebugCommand.php | 7 +-
app/Console/Commands/Tracks/CleanupActivityTracksCommand.php | 2 +-
app/Console/Kernel.php | 6 +-
app/Contracts/Services/Calendar/CalendarTrait.php | 80 ++-
app/Events/AutomatedReports/AutomatedReportGenerated.php | 3 +
app/Http/Controllers/API/AiCallScoring/AiScorecardController.php | 7 +-
app/Http/Controllers/API/TeamAiAutomationController.php | 8 +
app/Http/Controllers/CustomerApi/CustomerApiController.php | 4 +-
app/Http/Controllers/Kiosk/ActivityController.php | 58 +-
app/Http/Controllers/Settings/PlaybookController.php | 15 +-
app/Http/Kernel.php | 23 +
app/Http/Middleware/McpAuditMiddleware.php | 156 ++++
app/Http/Middleware/McpTierMiddleware.php | 54 ++
app/Http/Requests/API/V2/ZapierUploadActivityRequest.php | 28 +-
app/Jobs/Activity/Import/ImportTwilioVideoSpeechesJob.php | 25 +-
app/Jobs/Activity/Import/IsActivityReadyForProcessingJob.php | 10 +-
app/Jobs/Calendar/SetupCalendarSync.php | 21 +-
app/Jobs/ImportRemoteTrackJob.php | 96 ++-
app/Jobs/Mailbox/EmailTextRelay.php | 15 +-
app/Mcp/Contracts/McpCallRepositoryInterface.php | 30 +
app/Mcp/DTO/ListCallsFilters.php | 29 +
app/Mcp/Errors/McpError.php | 123 ++++
app/Mcp/Repositories/McpActivityHydrator.php | 145 ++++
app/Mcp/Repositories/McpCallRepository.php | 84 +++
app/Mcp/Repositories/McpElasticCallRepository.php | 171 +++++
app/Mcp/Servers/JiminnyServer.php | 38 +
app/Mcp/Tools/ListCallsTool.php | 205 ++++++
app/Models/Activity.php | 10 +-
app/Models/Activity/Transcription.php | 17 +-
app/Models/ElasticSearch/OpportunityElasticSearchTrait.php | 5 +
app/Models/Participant.php | 1 +
app/Providers/AppServiceProvider.php | 22 +
app/Repositories/Crm/ContactRepository.php | 69 +-
app/Repositories/ParticipantSpeechRepository.php | 13 +-
app/Services/Activity/ParticipantsService.php | 19 +-
app/Services/Activity/Twilio/S3RecordingCredentialsService.php | 82 +++
app/Services/ActivityService.php | 21 +-
app/Services/Calendar/CalendarActivityService.php | 46 ++
app/Services/Calendar/Command/ImportParticipants.php | 1 +
app/Services/Calendar/Command/MapActivityData.php | 106 +--
app/Services/Calendar/GoogleCalendarService.php | 12 +-
app/Services/Crm/Close/Processor/OpportunityProcessor.php | 2 +-
app/Services/Crm/Close/Service.php | 22 +-
app/Services/Crm/Copper/Service.php | 12 +-
app/Services/Crm/Hubspot/Service.php | 154 +++-
app/Services/Crm/Hubspot/ServiceTraits/OpportunitySyncTrait.php | 88 ++-
app/Services/Crm/IntegrationApp/ServiceTraits/SyncCrmEntitiesTrait.php | 22 +-
app/Services/Crm/Pipedrive/Service.php | 17 +-
app/Services/Crm/Salesforce/Service.php | 42 +-
app/Services/Mail/Office/EmailApiClient.php | 129 +---
app/Services/RecallAI/Commands/ScheduleBotCommand.php | 39 +-
app/Services/RecallAI/RecallAIService.php | 22 +-
composer.json | 3 +-
composer.lock | 87 ++-
config/mcp.php | 23 +
database/migrations/2026_04_30_120000_create_mcp_audit_log_table.php | 36 +
docs/mcp/explorer/explorer.html | 697 ++++++++++++++++++
docs/mcp/explorer/explorer.template.html | 697 ++++++++++++++++++
docs/mcp/explorer/generate.js | 215 ++++++
docs/mcp/explorer/tool-explorer-meta.json | 11 +
docs/mcp/tools-list.json | 2536 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
docs/mcp/tools.md | 621 ++++++++++++++++
front-end/package.json | 4 +-
front-end/src/components/Settings/OrgSettings/AiAutomation/CrmFilling/TemplateFieldForm.vue | 28 +-
front-end/src/components/Settings/OrgSettings/Playbooks/AddEditPlaybook.vue | 10 +
front-end/src/components/playback/comments/ActivityComment.less | 10 +-
front-end/src/components/shared/PromptTester/PromptTester.vue | 12 +-
front-end/src/components/shared/__tests__/PromptTester.spec.js | 35 +
front-end/src/components/shared/modals/EntityPickerModal/__tests__/useEntitiesCache.spec.ts | 37 +
front-end/src/components/shared/modals/EntityPickerModal/useEntitiesCache.ts | 9 +
front-end/yarn.lock | 16 +-
phpstan-baseline.neon | 50 --
routes/api.php | 11 +
sonar-project.properties | 91 ++-
tests/Feature/Component/Nudge/ProcessOrganisationImmediateNudgesJobTest.php | 534 ++++++++++++++
tests/Feature/Jobs/ImportRemoteTrackJobTest.php | 283 +++++++-
tests/Feature/Mcp/IssueMcpTokenCommandTest.php | 53 ++
tests/Feature/Mcp/ListCallsToolElasticFeatureTest.php | 155 ++++
tests/Feature/Mcp/ListCallsToolFeatureTest.php | 352 ++++++++++
tests/Feature/Mcp/McpTestHelpersTrait.php | 77 ++
tests/Feature/Services/Team/TeamDeleteHandlers/Retention/RetentionRepositoryHandlerTest.php | 1 +
tests/Stubs/SentryStub.php | 18 +
tests/Unit/Component/ActivityAnalytics/Service/CalculateTalkTimeOffsetFromTranscriptionTest.php | 28 +-
tests/Unit/Component/AiActivityType/Services/AiActivityTypeEligibilityCheckerTest.php | 103 ++-
tests/Unit/Component/AiAutomation/Actions/PrepareUpdateDtoActionTest.php | 91 +++
tests/Unit/Component/AiAutomation/Services/CrmFillingEligibilityCheckerTest.php | 124 ++++
tests/Unit/Component/AiAutomation/TestCrmAiPromptServiceTest.php | 67 +-
tests/Unit/Component/AiCallScoring/Services/AiCallScoringEligibilityCheckerTest.php | 55 ++
tests/Unit/Component/ES/ElasticSearchWorkerManagerTest.php | 135 ----
tests/Unit/Component/ES/Processor/Actions/LoadDocumentsActionTest.php | 220 ++++++
tests/Unit/Component/ES/Processor/EntityQueryBuilderTest.php | 21 +-
tests/Unit/Component/ES/Processor/Traits/SkipActivityTraitTest.php | 51 --
tests/Unit/Component/ES/Worker/ActivityWorkerTest.php | 174 -----
tests/Unit/Component/ES/Worker/EntityWorkerTest.php | 97 ---
tests/Unit/Component/ES/Worker/WorkerAmountTest.php | 116 ---
tests/Unit/Component/Encoding/Job/AnalyzeTrackChannelsJobTest.php | 52 +-
tests/Unit/Component/Encoding/Service/GenerateSpeechFromSilenceServiceTest.php | 171 ++---
tests/Unit/Component/FFMpeg/Services/GetSpeechIntervalsTest.php | 36 +-
tests/Unit/Component/LanguageDetection/Services/FindSpeechTimeServiceTest.php | 20 +-
tests/Unit/Component/MobileSettings/MobileSettingsControllerTest.php | 5 +-
tests/Unit/Component/ParticipantSpeech/Services/ParticipantSpeechesCreatorTest.php | 75 ++
tests/Unit/Component/ParticipantSpeech/Services/ParticipantSpeechesDeleterTest.php | 63 ++
tests/Unit/Component/ParticipantSpeech/Services/ParticipantSpeechesProviderTest.php | 134 ++++
tests/Unit/Component/ParticipantSpeech/Services/ParticipantSpeechesUploaderTest.php | 57 ++
tests/Unit/Component/Transcription/Diarization/Services/GetNormalizedParticipantSpeechesServiceTest.php | 51 +-
tests/Unit/Component/Transcription/Diarization/Source/MeetingBotSourceTest.php | 29 +-
tests/Unit/Contracts/Services/Calendar/CalendarTraitTest.php | 58 +-
tests/Unit/Http/Controllers/Kiosk/ActivityControllerTest.php | 159 +++++
tests/Unit/Jobs/Activity/Import/ImportTwilioVideoSpeechesJobTest.php | 22 +-
tests/Unit/Jobs/Activity/Import/IsActivityReadyForProcessingJobTest.php | 26 +-
tests/Unit/Jobs/Calendar/SetupCalendarSyncTest.php | 25 -
tests/Unit/Services/Activity/ParticipantsServiceTest.php | 12 +-
tests/Unit/Services/Activity/Twilio/S3RecordingCredentialsServiceTest.php | 180 +++++
tests/Unit/Services/ActivityServiceTest.php | 132 ++++
tests/Unit/Services/Calendar/CalendarActivityServiceTest.php | 150 +++-
tests/Unit/Services/Calendar/Command/ImportParticipantsTest.php | 6 +-
tests/Unit/Services/Calendar/Command/MapActivityDataTest.php | 78 +-
tests/Unit/Services/Calendar/GoogleCalendarServiceTest.php | 116 +++
tests/Unit/Services/Crm/Close/ServiceTest.php | 165 +++++
tests/Unit/Services/Crm/Hubspot/ServiceTest.php | 272 ++++++-
tests/Unit/Services/Crm/Hubspot/ServiceTraits/OpportunitySyncTest.php | 25 +-
tests/Unit/Services/Crm/Hubspot/ServiceTraits/OpportunitySyncTraitMatchActivitiesTest.php | 3 +-
tests/Unit/Services/Crm/IntegrationApp/ServiceTraits/SyncCrmEntitiesTraitOpportunitiesTest.php | 40 ++
tests/Unit/Services/Crm/Pipedrive/ImportOpportunityMatchActivitiesTest.php | 2 +
tests/Unit/Services/Crm/Salesforce/ServiceTest.php | 139 ++++
tests/Unit/Services/Mail/Office/EmailApiClientTest.php | 195 ++---
tests/Unit/Services/RecallAI/RecallAIServiceTest.php | 24 +-
175 files changed, 12562 insertions(+), 2162 deletions(-)
create mode 120000 CLAUDE.md
create mode 100644 app/Component/AiAutomation/Services/CrmFillingEligibilityChecker.php
delete mode 100644 app/Component/ES/ElasticSearchWorkerManager.php
delete mode 100644 app/Component/ES/Processor/Traits/SkipActivityTrait.php
delete mode 100644 app/Component/ES/Worker/ActivityWorker.php
delete mode 100644 app/Component/ES/Worker/EntityWorker.php
delete mode 100644 app/Component/ES/Worker/WorkerAmount.php
delete mode 100644 app/Component/ES/Worker/WorkerInterface.php
create mode 100644 app/Component/ProphetAi/Exceptions/InsufficientTranscriptException.php
create mode 100644 app/Component/Transcription/DTO/Http/Transcription/AssemblyAI/AssemblyAI/NoAssemblyIdException.php
create mode 100644 app/Component/Transcription/DTO/Http/Transcription/TranscriptionIsNotCorrectFormatException.php
create mode 100644 app/Console/Commands/Activities/SetupIntegration/TwilioSetS3RecordingCredentialsCommand.php
create mode 100644 app/Console/Commands/Crm/BackfillOpportunityUserFromAccountCommand.php
delete mode 100644 app/Console/Commands/Elasticsearch/AsyncUpdateEsActivities.php
create mode 100644 app/Console/Commands/IssueMcpTokenCommand.php
create mode 100644 app/Http/Middleware/McpAuditMiddleware.php
create mode 100644 app/Http/Middleware/McpTierMiddleware.php
create mode 100644 app/Mcp/Contracts/McpCallRepositoryInterface.php
create mode 100644 app/Mcp/DTO/ListCallsFilters.php
create mode 100644 app/Mcp/Errors/McpError.php
create mode 100644 app/Mcp/Repositories/McpActivityHydrator.php
create mode 100644 app/Mcp/Repositories/McpCallRepository.php
create mode 100644 app/Mcp/Repositories/McpElasticCallRepository.php
create mode 100644 app/Mcp/Servers/JiminnyServer.php
create mode 100644 app/Mcp/Tools/ListCallsTool.php
create mode 100644 app/Services/Activity/Twilio/S3RecordingCredentialsService.php
create mode 100644 config/mcp.php
create mode 100644 database/migrations/2026_04_30_120000_create_mcp_audit_log_table.php
create mode 100644 docs/mcp/explorer/explorer.html
create mode 100644 docs/mcp/explorer/explorer.template.html
create mode 100644 docs/mcp/explorer/generate.js
create mode 100644 docs/mcp/explorer/tool-explorer-meta.json
create mode 100644 docs/mcp/tools-list.json
create mode 100644 docs/mcp/tools.md
create mode 100644 front-end/src/components/shared/modals/EntityPickerModal/__tests__/useEntitiesCache.spec.ts
create mode 100644 tests/Feature/Component/Nudge/ProcessOrganisationImmediateNudgesJobTest.php
create mode 100644 tests/Feature/Mcp/IssueMcpTokenCommandTest.php
create mode 100644 tests/Feature/Mcp/ListCallsToolElasticFeatureTest.php
create mode 100644 tests/Feature/Mcp/ListCallsToolFeatureTest.php
create mode 100644 tests/Feature/Mcp/McpTestHelpersTrait.php
create mode 100644 tests/Stubs/SentryStub.php
create mode 100644 tests/Unit/Component/AiAutomation/Services/CrmFillingEligibilityCheckerTest.php
delete mode 100644 tests/Unit/Component/ES/ElasticSearchWorkerManagerTest.php
create mode 100644 tests/Unit/Component/ES/Processor/Actions/LoadDocumentsActionTest.php
delete mode 100644 tests/Unit/Component/ES/Processor/Traits/SkipActivityTraitTest.php
delete mode 100644 tests/Unit/Component/ES/Worker/ActivityWorkerTest.php
delete mode 100644 tests/Unit/Component/ES/Worker/EntityWorkerTest.php
delete mode 100644 tests/Unit/Component/ES/Worker/WorkerAmountTest.php
create mode 100644 tests/Unit/Component/ParticipantSpeech/Services/ParticipantSpeechesCreatorTest.php
create mode 100644 tests/Unit/Http/Controllers/Kiosk/ActivityControllerTest.php
create mode 100644 tests/Unit/Services/Activity/Twilio/S3RecordingCredentialsServiceTest.php
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20725-handle-HS-search-rate-limit) $ git status
On branch master
Your branch is behind 'origin/master' by 114 commits, and can be fast-forwarded.
(use "git pull" to update your local branch)
Changes not staged for commit:
(use "git add <file>..." to update what will be committed)
(use "git restore <file>..." to discard changes in working directory)
modified: .env.local
modified: app/Component/SCIM/Constants.php
modified: app/Component/SCIM/ScimProvisioning.php
modified: app/Component/Twilio/Conference/ConferenceManager/SoftPhoneManager.php
modified: app/Console/Commands/JiminnyDebugCommand.php
modified: app/DTO/SCIM/AAD/Request/CoreUserRequest.php
modified: app/DTO/SCIM/AAD/Response/CoreUser.php
modified: app/Services/Telephony/TextMessagingService.php
modified: config/logging.php
Untracked files:
(use "git add <file>..." to include in what will be committed)
.env.nikilocal
.env.other
WEBHOOK_FILTERING_IMPLEMENTATION.md
app/Component/SCIM/Mutators/Attributes/User/RoleAttr.php
app/Console/Commands/Crm/Hubspot/SimulateWebhooksCommand.php
app/Console/Commands/Reports/CreateMockAskJiminnyReportResultCommand.php
app/Rules/ListenerRoleCannotHaveAdminOrManagerPermissionRule.php
ids.txt
public/favicon.ico
raw_sql_query.sql
tests/Unit/Component/SCIM/Mutators/Attributes/User/RoleAttrTest.php
tests/Unit/Policies/CanAccessAiReportsTest.php
tests/Unit/Rules/ListenerRoleCannotHaveAdminOrManagerPermissionRuleTest.php
no changes added to commit (use "git add" and/or "git commit -a")
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (master) $ git pull
remote: Enumerating objects: 306, done.
remote: Counting objects: 100% (299/299), done.
remote: Compressing objects: 100% (183/183), done.
remote: Total 306 (delta 213), reused 171 (delta 116), pack-reused 7 (from 1)
Receiving objects: 100% (306/306), 80.12 KiB | 1000.00 KiB/s, done.
Resolving deltas: 100% (213/213), completed with 53 local objects.
From github.com:jiminny/app
90bca4e4b2..5604af40cf master -> origin/master
4e7078fd8b..0b8343d179 JY-18091-upgrade-to-php-8-5 -> origin/JY-18091-upgrade-to-php-8-5
098eeaa087..d5a447e492 JY-20613-allow-owner-role-on-team-setup -> origin/JY-20613-allow-owner-role-on-team-setup
c3a76ace91..af65249d0f JY-20749-user-can-view-recorded-meetings -> origin/JY-20749-user-can-view-recorded-meetings
d94a285ae7..7ce96cb5fe JY-20808-low-priority-indexing-queue -> origin/JY-20808-low-priority-indexing-queue
* [new branch] JY-20842-remove-partial-updater -> origin/JY-20842-remove-partial-updater
* [new branch] JY-20920-fix-participant-flip -> origin/JY-20920-fix-participant-flip
* [new branch] secfix/npm-20260519 -> origin/secfix/npm-20260519
Updating cb4ebf0c36..5604af40cf
Fast-forward
app/Component/ES/ChunkSize.php | 54 +++++++++++++++++++
app/Component/ES/Processor/DTOs/SelectionList.php | 4 +-
app/Component/ES/Processor/TargetEntitiesSelector.php | 19 ++++---
app/Component/MeetingBot/Service/ParticipantMatcher.php | 46 ++++++++++++----
app/Exceptions/RateLimitException.php | 19 ++++++-
app/Http/Middleware/McpTierMiddleware.php | 27 ++--------
app/Jobs/Crm/MatchActivityCrmData.php | 47 ++++++++++++----
app/Jobs/Middleware/HandleHubspotRateLimit.php | 42 +++++++++++++++
app/Mcp/Servers/JiminnyServer.php | 2 +
app/Mcp/Tools/GetMeTool.php | 157 +++++++++++++++++++++++++++++++++++++++++++++++++++++
app/Models/Feature/FeatureEnum.php | 1 +
app/Services/Activity/HubSpot/ProviderResolver.php | 4 +-
app/Services/Activity/HubSpot/ProviderResolverInterface.php | 2 +-
app/Services/Activity/HubSpot/Providers/Provider.php | 2 +-
app/Services/Activity/HubSpot/Providers/ProviderKixie.php | 2 +-
app/Services/Activity/HubSpot/Providers/ProviderOrum.php | 2 +-
app/Services/Activity/HubSpot/Providers/ProviderTwilio.php | 2 +-
app/Services/Activity/HubSpot/Providers/ProviderTwilioFlex.php | 5 +-
app/Services/Activity/HubSpot/Service.php | 97 +++++++++++++++++++++++++++------
app/Services/Crm/Hubspot/Client.php | 132 +++++++++++++++++++++++++++++++++++++++++++++
app/Services/Crm/Hubspot/HubspotClientInterface.php | 15 ++++++
app/Services/Crm/Hubspot/Pagination/HubspotPaginationService.php | 21 ++++----
app/Services/Crm/Hubspot/Pagination/PaginationState.php | 2 +-
database/migrations/2026_05_13_124153_create_mcp_feature_flag.php | 25 +++++++++
tests/Feature/Mcp/GetMeToolFeatureTest.php | 140 +++++++++++++++++++++++++++++++++++++++++++++++
tests/Feature/Mcp/ListCallsToolFeatureTest.php | 2 +-
tests/Feature/Mcp/McpTestHelpersTrait.php | 19 ++++++-
tests/Unit/Component/ES/ChunkSizeTest.php | 50 +++++++++++++++++
tests/Unit/Component/ES/Processor/DTOs/SelectionListTest.php | 27 +++++++---
tests/Unit/Component/ES/Processor/TargetEntitiesSelectorTest.php | 39 ++++++++------
tests/Unit/Component/MeetingBot/Service/ParticipantMatcherTest.php | 68 ++++++++++++++++++++++-
tests/Unit/Exceptions/RateLimitExceptionTest.php | 56 +++++++++++++++++++
tests/Unit/Jobs/Crm/MatchActivityCrmDataTest.php | 8 +--
tests/Unit/Jobs/Middleware/HandleHubspotRateLimitTest.php | 151 +++++++++++++++++++++++++++++++++++++++++++++++++++
tests/Unit/Services/Activity/HubSpot/ServiceTest.php | 109 +++++++++++++++++++++++++++++++++++++
tests/Unit/Services/Crm/Hubspot/ClientTest.php | 250 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
tests/Unit/Services/Crm/Hubspot/Pagination/HubspotPaginationServiceTest.php | 283 +++++++++++++++++++++---------------------------------------------------------------------------
37 files changed, 1587 insertions(+), 344 deletions(-)
create mode 100644 app/Component/ES/ChunkSize.php
create mode 100644 app/Jobs/Middleware/HandleHubspotRateLimit.php
create mode 100644 app/Mcp/Tools/GetMeTool.php
create mode 100644 database/migrations/2026_05_13_124153_create_mcp_feature_flag.php
create mode 100644 tests/Feature/Mcp/GetMeToolFeatureTest.php
create mode 100644 tests/Unit/Component/ES/ChunkSizeTest.php
create mode 100644 tests/Unit/Exceptions/RateLimitExceptionTest.php
create mode 100644 tests/Unit/Jobs/Middleware/HandleHubspotRateLimitTest.php
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (master) $ git pull
Already up to date.
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (master) $ co -b JY-20676-delete-report-related-objects
Switched to a new branch 'JY-20676-delete-report-related-objects'
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20676-delete-report-related-objects) $ csfix
docker exec -it docker_lamp_1 ./vendor/bin/php-cs-fixer fix --config=.php-cs-fixer.dist.php -v --using-cache=no --diff
PHP CS Fixer 3.87.1 Alexander by Fabien Potencier, Dariusz Ruminski and contributors.
PHP runtime: 8.3.30
Running 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!
Loaded config default from ".php-cs-fixer.dist.php".
5690/5690 [▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓] 100%
1) app/Console/Commands/JiminnyDebugCommand.php (statement_indentation, blank_line_before_statement)
---------- begin diff ----------
--- /home/jiminny/app/Console/Commands/JiminnyDebugCommand.php
+++ /home/jiminny/app/Console/Commands/JiminnyDebugCommand.php
@@ -23,6 +23,7 @@
if ($action === 'redis-set') {
$this->testRedisSet();
+
return;
}
@@ -45,7 +46,7 @@
$ttl = 60;
try {
-// $result = Redis::set($testKey, $testValue, 'EX', $ttl, 'NX');
+ // $result = Redis::set($testKey, $testValue, 'EX', $ttl, 'NX');
$result = Redis::set($testKey, $testValue, ['nx', 'ex' => $ttl]);
if ($result) {
----------- end diff -----------
Fixed 1 of 5690 files i...
|
58091
|
NULL
|
NULL
|
NULL
|
|
58104
|
2046
|
3
|
2026-05-19T11:37:48.408351+00:00
|
/Users/lukas/.screenpipe/data/data/2026-05-19/1779 /Users/lukas/.screenpipe/data/data/2026-05-19/1779190668408_m1.jpg...
|
iTerm2
|
APP (-zsh)
|
1
|
NULL
|
monitor_1
|
NULL
|
NULL
|
NULL
|
NULL
|
Last login: Mon May 18 09:17:28 on ttys007
Poetry Last login: Mon May 18 09:17:28 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 (pipedrive-sdk-poc) $ co master
error: Your local changes to the following files would be overwritten by checkout:
PIPEDRIVE_V2_MIGRATION_TICKETS.md
Please commit your changes or stash them before you switch branches.
Aborting
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (pipedrive-sdk-poc) $ git pull
remote: Enumerating objects: 1047, done.
remote: Counting objects: 100% (832/832), done.
remote: Compressing objects: 100% (298/298), done.
remote: Total 1047 (delta 634), reused 596 (delta 534), pack-reused 215 (from 3)
Receiving objects: 100% (1047/1047), 353.16 KiB | 1.56 MiB/s, done.
Resolving deltas: 100% (687/687), completed with 107 local objects.
From github.com:jiminny/app
907c54896c..34656c53ed pipedrive-sdk-poc -> origin/pipedrive-sdk-poc
03325ec50f..4e7078fd8b JY-18091-upgrade-to-php-8-5 -> origin/JY-18091-upgrade-to-php-8-5
e7d231e163..bc6a3fce6b JY-20725-handle-HS-search-rate-limit -> origin/JY-20725-handle-HS-search-rate-limit
* [new branch] JY-20749-user-can-view-recorded-meetings -> origin/JY-20749-user-can-view-recorded-meetings
98ca281a04..e0351be069 JY-20808-low-priority-indexing-queue -> origin/JY-20808-low-priority-indexing-queue
569abb5149..3906a9238a JY-20835-mcp-enable-users-to-get-a-list-of-deals-and-their-details -> origin/JY-20835-mcp-enable-users-to-get-a-list-of-deals-and-their-details
ad6c2a86e8..50eb6afba9 JY-20846-mcp-enable-the-ai-to-know-details-about-the-user -> origin/JY-20846-mcp-enable-the-ai-to-know-details-about-the-user
* [new branch] JY-20893-chunk-control-per-update-target -> origin/JY-20893-chunk-control-per-update-target
31c62924a5..cb4ebf0c36 master -> origin/master
Updating 907c54896c..34656c53ed
Fast-forward
PIPEDRIVE_V2_MIGRATION_TICKETS.md | 52 ++++++++++++++++++++++++++++++++++++++++++++++++++++
1 file changed, 52 insertions(+)
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (pipedrive-sdk-poc) $ co master
M .env.local
M config/logging.php
Switched to branch 'master'
Your branch is behind 'origin/master' by 31 commits, and can be fast-forwarded.
(use "git pull" to update your local branch)
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (master) $ git pull
Updating 31c62924a5..cb4ebf0c36
Fast-forward
app/Component/ES/Processor/Traits/SelectEntityListTrait.php | 20 ------
app/Services/Calendar/CalendarActivityService.php | 46 +++++++++++++
app/Services/Calendar/Command/MapActivityData.php | 106 +++-------------------------
docs/mcp/explorer/explorer.html | 104 +++++++++++++++++++++++++---
docs/mcp/explorer/explorer.template.html | 102 ++++++++++++++++++++++++---
docs/mcp/tools-list.json | 373 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++-------
docs/mcp/tools.md | 117 +++++++++++++++++++++++--------
tests/Unit/Component/ES/AsyncUpdateElasticSearchTest.php | 16 +----
tests/Unit/Component/ES/Listeners/UpdateMultipleTargetsListenerTest.php | 10 ---
tests/Unit/Component/ES/Listeners/UpdateSingleTargetListenerTest.php | 6 --
tests/Unit/Component/ES/Processor/TargetEntitiesSelectorTest.php | 9 ---
tests/Unit/Component/ES/Processor/Traits/SelectEntityListTraitTest.php | 15 ++--
tests/Unit/Component/ES/UpdateProcessManagerTest.php | 2 -
tests/Unit/Services/Calendar/CalendarActivityServiceTest.php | 150 ++++++++++++++++++++++++++++++++++++++--
tests/Unit/Services/Calendar/Command/MapActivityDataTest.php | 78 ++-------------------
15 files changed, 832 insertions(+), 322 deletions(-)
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (master) $ co -b JY-20613-allow-owner-role-on-team-setup
Switched to a new branch 'JY-20613-allow-owner-role-on-team-setup'
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20613-allow-owner-role-on-team-setup) $ csfix
docker exec -it docker_lamp_1 ./vendor/bin/php-cs-fixer fix --config=.php-cs-fixer.dist.php -v --using-cache=no --diff
PHP CS Fixer 3.87.1 Alexander by Fabien Potencier, Dariusz Ruminski and contributors.
PHP runtime: 8.3.30
Running 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!
Loaded config default from ".php-cs-fixer.dist.php".
5682/5682 [▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓] 100%
Fixed 0 of 5682 files in 56.978 seconds, 67.00 MB memory used
What's next:
Try Docker Debug for seamless, persistent debugging tools in any container or image → docker debug docker_lamp_1
Learn more at [URL_WITH_CREDENTIALS] ~/jiminny/app (JY-20613-allow-owner-role-on-team-setup) $ csfix
docker exec -it docker_lamp_1 ./vendor/bin/php-cs-fixer fix --config=.php-cs-fixer.dist.php -v --using-cache=no --diff
PHP CS Fixer 3.87.1 Alexander by Fabien Potencier, Dariusz Ruminski and contributors.
PHP runtime: 8.3.30
Running 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!
Loaded config default from ".php-cs-fixer.dist.php".
5682/5682 [▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓] 100%
Fixed 0 of 5682 files in 49.910 seconds, 60.00 MB memory used
What's next:
Try Docker Debug for seamless, persistent debugging tools in any container or image → docker debug docker_lamp_1
Learn more at [URL_WITH_CREDENTIALS] ~/jiminny/app (JY-20613-allow-owner-role-on-team-setup) $ git pull
remote: Enumerating objects: 248, done.
remote: Counting objects: 100% (128/128), done.
remote: Compressing objects: 100% (23/23), done.
remote: Total 59 (delta 43), reused 44 (delta 33), pack-reused 0 (from 0)
Unpacking objects: 100% (59/59), 10.48 KiB | 228.00 KiB/s, done.
From github.com:jiminny/app
b7df560451..190239dfd4 JY-20613-allow-owner-role-on-team-setup -> origin/JY-20613-allow-owner-role-on-team-setup
e0351be069..d94a285ae7 JY-20808-low-priority-indexing-queue -> origin/JY-20808-low-priority-indexing-queue
* [new branch] JY-20920-fix-participant-matcher -> origin/JY-20920-fix-participant-matcher
cb4ebf0c36..90bca4e4b2 master -> origin/master
Merge made by the 'ort' strategy.
app/Component/ES/ChunkSize.php | 54 +++++++++++++++++++++++++++
app/Component/ES/Processor/DTOs/SelectionList.php | 4 +-
app/Component/ES/Processor/TargetEntitiesSelector.php | 19 ++++++----
app/Http/Middleware/McpTierMiddleware.php | 27 +++-----------
app/Mcp/Servers/JiminnyServer.php | 2 +
app/Mcp/Tools/GetMeTool.php | 157 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
app/Models/Feature/FeatureEnum.php | 1 +
database/migrations/2026_05_13_124153_create_mcp_feature_flag.php | 25 +++++++++++++
front-end/src/components/Settings/Kiosk/modals/EditTeamModal/EditTeamModal.vue | 52 ++++++++++++++++++--------
front-end/src/components/Settings/Kiosk/modals/EditTeamModal/__tests__/EditTeamModal.spec.js | 14 +++++++
tests/Feature/Mcp/GetMeToolFeatureTest.php | 140 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
tests/Feature/Mcp/ListCallsToolFeatureTest.php | 2 +-
tests/Feature/Mcp/McpTestHelpersTrait.php | 19 +++++++++-
tests/Unit/Component/ES/ChunkSizeTest.php | 50 +++++++++++++++++++++++++
tests/Unit/Component/ES/Processor/DTOs/SelectionListTest.php | 27 ++++++++++----
tests/Unit/Component/ES/Processor/TargetEntitiesSelectorTest.php | 39 +++++++++++---------
16 files changed, 557 insertions(+), 75 deletions(-)
create mode 100644 app/Component/ES/ChunkSize.php
create mode 100644 app/Mcp/Tools/GetMeTool.php
create mode 100644 database/migrations/2026_05_13_124153_create_mcp_feature_flag.php
create mode 100644 tests/Feature/Mcp/GetMeToolFeatureTest.php
create mode 100644 tests/Unit/Component/ES/ChunkSizeTest.php
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20613-allow-owner-role-on-team-setup) $ git push
Enumerating objects: 40, done.
Counting objects: 100% (34/34), done.
Delta compression using up to 8 threads
Compressing objects: 100% (18/18), done.
Writing objects: 100% (18/18), 1.58 KiB | 1.58 MiB/s, done.
Total 18 (delta 15), reused 0 (delta 0), pack-reused 0
remote: Resolving deltas: 100% (15/15), completed with 13 local objects.
To github.com:jiminny/app.git
190239dfd4..ec1b261264 JY-20613-allow-owner-role-on-team-setup -> JY-20613-allow-owner-role-on-team-setup
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20613-allow-owner-role-on-team-setup) $ gbr
* JY-20613-allow-owner-role-on-team-setup
pipedrive-sdk-poc
master
JY-20903-update_activity-stage-on-opportunity-change
JY-20904-fix-update-es-on-activity-command
JY-20891-improve-sms-text-relays
JY-20725-handle-HS-search-rate-limit
JY-20818-move-AJ-reports-to-separated-datadog-metric
JY-20773-fix-automated-reports-user-pilot-tracking
JY-20157-AJ-report-not-send-notification
JY-20508-notify-before-AJ-report-expiration
JY-20372-ai-reports-promotion-pages
JY-20352-sync-opportunities-without-a-local-owner-user-id-is-null
JY-20738-debug-AJ-tracking-UP
a
JY-18909-automated-reports-ask-jiminny
JY-20692-fix-integration-app-[API_KEY]
JY-20553-debug-crm-sync-delays
JY-20698-fix-SF-activity-types-on-new-playbook
JY-20543-AJ-report-tracking
JY-20384-handle-auto-sync-with-no-access-to-event-type
JY-20458-ask-jiminny-user-definitions
JY-19666-fix-import-contacts-account-association
JY-19666-HS-import-contacts-and-accounts-batch-job
JY-20458-Ask-Jiminny-Reports
JY-20200-batch-update-CRM-objects-Salesforce
JY-19666-HS-webhooks-add-contact-and-company
JY-20348-trigger-setup-DI-layout-on-team-creation
JY-20326-refactor-info-message-in-command
JY-20317-fix-auto-log-delay-issue-on-all-channels-disabled
JY-20312-remove-on-update-change-last-synced-at-crm-configurations
JY-20306-SF-skip-auto-sync-for-task-based-playbook
JY-20192-remove-deleted-team-from-saved-search-filters
JY-20197-import-opportunity-batch-job
JY-20293-enable-status-field-for-pipedrive-deals
JY-20191-remove-commands-interactive-prompts
JY-20118-change-default-sync-strategy
JY-20183-add-cache-on-auto-log-delay
JY-20197-add-import-opportunity-batch-job
20118-hs-opportunity-make-webhook-strategy-default
JY-20118-make-default-hs-opportunity-sync-strategy-webhook-based
JY-20196-handle-opportunity-without-note
JY-20118-improve-opportunity-import
JY-20189-handle-activity-search-on-deleted-groups
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20613-allow-owner-role-on-team-setup) $ co JY-20725-handle-HS-search-rate-limit
M .env.local
M config/logging.php
Switched to branch 'JY-20725-handle-HS-search-rate-limit'
Your branch is behind 'origin/JY-20725-handle-HS-search-rate-limit' by 439 commits, and can be fast-forwarded.
(use "git pull" to update your local branch)
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20725-handle-HS-search-rate-limit) $ git pull
Updating 0f3e438941..bc6a3fce6b
Fast-forward
.gitignore | 3 +-
.windsurfrules | 168 ++---
CLAUDE.md | 1 +
app/Component/ActivityAnalytics/Service/CalculateTalkTimeOffsetsFromTranscription.php | 24 +-
app/Component/AiActivityType/Services/AiActivityTypeEligibilityChecker.php | 28 +-
app/Component/AiAutomation/Actions/PrepareUpdateDtoAction.php | 32 +-
app/Component/AiAutomation/Services/CrmFillingEligibilityChecker.php | 47 ++
app/Component/AiAutomation/TestCrmAiPromptService.php | 14 +
app/Component/AiCallScoring/Services/AiCallScoringEligibilityChecker.php | 9 +
app/Component/ES/ElasticSearchDocumentPartialUpdater.php | 13 +-
app/Component/ES/ElasticSearchWorkerManager.php | 86 ---
app/Component/ES/Processor/Actions/LoadDocumentsAction.php | 80 +--
app/Component/ES/Processor/EntityQueryBuilder.php | 12 +-
app/Component/ES/Processor/TargetEntitiesSelector.php | 2 +-
app/Component/ES/Processor/Traits/SkipActivityTrait.php | 25 -
app/Component/ES/Repositories/EsResetActivityRepository.php | 11 +-
app/Component/ES/Worker/ActivityWorker.php | 73 --
app/Component/ES/Worker/EntityWorker.php | 44 --
app/Component/ES/Worker/WorkerAmount.php | 60 --
app/Component/ES/Worker/WorkerInterface.php | 15 -
app/Component/ElasticSearch/Contract/Searchable.php | 4 +
app/Component/Encoding/Job/AnalyzeTrackChannelsJob.php | 20 +-
app/Component/Encoding/Service/GenerateSpeechFromSilenceService.php | 85 ++-
app/Component/FFMpeg/Services/GetSpeechIntervalsService.php | 18 +-
app/Component/LanguageDetection/Services/FindSpeechTimeService.php | 22 +-
app/Component/Nudge/Job/ProcessOrganisationImmediateNudgesJob.php | 218 +++++-
app/Component/ParagraphBreaker/Services/TranscriptionParagraphsService.php | 4 +
app/Component/ParticipantSpeech/Services/ParticipantSpeechesCreator.php | 33 +
app/Component/ParticipantSpeech/Services/ParticipantSpeechesDeleter.php | 15 +
app/Component/ParticipantSpeech/Services/ParticipantSpeechesProvider.php | 51 +-
app/Component/ParticipantSpeech/Services/ParticipantSpeechesUploader.php | 36 +
app/Component/ProphetAi/Exceptions/InsufficientTranscriptException.php | 11 +
app/Component/Transcription/DTO/Http/Transcription/AssemblyAI/AssemblyAI/NoAssemblyIdException.php | 11 +
app/Component/Transcription/DTO/Http/Transcription/AssemblyAI/AssemblyAI/SuccessfulResponse.php | 6 +
app/Component/Transcription/DTO/Http/Transcription/TranscriptionIsNotCorrectFormatException.php | 11 +
app/Component/Transcription/Diarization/Services/GetNormalizedParticipantSpeechesService.php | 23 +-
app/Component/Transcription/Diarization/Source/MeetingBotSource.php | 16 +-
app/Component/Transcription/TranscriptionProcessor/TranscriptionProcessor.php | 3 +
app/Console/Commands/Activities/ActivityHardDeleteCommand.php | 4 +-
app/Console/Commands/Activities/Copy.php | 2 +
app/Console/Commands/Activities/SetupIntegration/TwilioSetS3RecordingCredentialsCommand.php | 119 ++++
app/Console/Commands/Activities/UpdateActivityElasticSearchDocumentCommand.php | 10 +-
app/Console/Commands/Crm/BackfillOpportunityUserFromAccountCommand.php | 126 ++++
app/Console/Commands/Elasticsearch/AsyncUpdateEsActivities.php | 19 -
app/Console/Commands/Elasticsearch/AsyncUpdateEsEntities.php | 50 +-
app/Console/Commands/Elasticsearch/ResetAsyncElasticSearchCommand.php | 30 +-
app/Console/Commands/GeckoExport/GeckoExportParticipantSpeechesCommand.php | 14 +-
app/Console/Commands/IssueMcpTokenCommand.php | 84 +++
app/Console/Commands/JiminnyDebugCommand.php | 7 +-
app/Console/Commands/Tracks/CleanupActivityTracksCommand.php | 2 +-
app/Console/Kernel.php | 6 +-
app/Contracts/Services/Calendar/CalendarTrait.php | 80 ++-
app/Events/AutomatedReports/AutomatedReportGenerated.php | 3 +
app/Http/Controllers/API/AiCallScoring/AiScorecardController.php | 7 +-
app/Http/Controllers/API/TeamAiAutomationController.php | 8 +
app/Http/Controllers/CustomerApi/CustomerApiController.php | 4 +-
app/Http/Controllers/Kiosk/ActivityController.php | 58 +-
app/Http/Controllers/Settings/PlaybookController.php | 15 +-
app/Http/Kernel.php | 23 +
app/Http/Middleware/McpAuditMiddleware.php | 156 ++++
app/Http/Middleware/McpTierMiddleware.php | 54 ++
app/Http/Requests/API/V2/ZapierUploadActivityRequest.php | 28 +-
app/Jobs/Activity/Import/ImportTwilioVideoSpeechesJob.php | 25 +-
app/Jobs/Activity/Import/IsActivityReadyForProcessingJob.php | 10 +-
app/Jobs/Calendar/SetupCalendarSync.php | 21 +-
app/Jobs/ImportRemoteTrackJob.php | 96 ++-
app/Jobs/Mailbox/EmailTextRelay.php | 15 +-
app/Mcp/Contracts/McpCallRepositoryInterface.php | 30 +
app/Mcp/DTO/ListCallsFilters.php | 29 +
app/Mcp/Errors/McpError.php | 123 ++++
app/Mcp/Repositories/McpActivityHydrator.php | 145 ++++
app/Mcp/Repositories/McpCallRepository.php | 84 +++
app/Mcp/Repositories/McpElasticCallRepository.php | 171 +++++
app/Mcp/Servers/JiminnyServer.php | 38 +
app/Mcp/Tools/ListCallsTool.php | 205 ++++++
app/Models/Activity.php | 10 +-
app/Models/Activity/Transcription.php | 17 +-
app/Models/ElasticSearch/OpportunityElasticSearchTrait.php | 5 +
app/Models/Participant.php | 1 +
app/Providers/AppServiceProvider.php | 22 +
app/Repositories/Crm/ContactRepository.php | 69 +-
app/Repositories/ParticipantSpeechRepository.php | 13 +-
app/Services/Activity/ParticipantsService.php | 19 +-
app/Services/Activity/Twilio/S3RecordingCredentialsService.php | 82 +++
app/Services/ActivityService.php | 21 +-
app/Services/Calendar/CalendarActivityService.php | 46 ++
app/Services/Calendar/Command/ImportParticipants.php | 1 +
app/Services/Calendar/Command/MapActivityData.php | 106 +--
app/Services/Calendar/GoogleCalendarService.php | 12 +-
app/Services/Crm/Close/Processor/OpportunityProcessor.php | 2 +-
app/Services/Crm/Close/Service.php | 22 +-
app/Services/Crm/Copper/Service.php | 12 +-
app/Services/Crm/Hubspot/Service.php | 154 +++-
app/Services/Crm/Hubspot/ServiceTraits/OpportunitySyncTrait.php | 88 ++-
app/Services/Crm/IntegrationApp/ServiceTraits/SyncCrmEntitiesTrait.php | 22 +-
app/Services/Crm/Pipedrive/Service.php | 17 +-
app/Services/Crm/Salesforce/Service.php | 42 +-
app/Services/Mail/Office/EmailApiClient.php | 129 +---
app/Services/RecallAI/Commands/ScheduleBotCommand.php | 39 +-
app/Services/RecallAI/RecallAIService.php | 22 +-
composer.json | 3 +-
composer.lock | 87 ++-
config/mcp.php | 23 +
database/migrations/2026_04_30_120000_create_mcp_audit_log_table.php | 36 +
docs/mcp/explorer/explorer.html | 697 ++++++++++++++++++
docs/mcp/explorer/explorer.template.html | 697 ++++++++++++++++++
docs/mcp/explorer/generate.js | 215 ++++++
docs/mcp/explorer/tool-explorer-meta.json | 11 +
docs/mcp/tools-list.json | 2536 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
docs/mcp/tools.md | 621 ++++++++++++++++
front-end/package.json | 4 +-
front-end/src/components/Settings/OrgSettings/AiAutomation/CrmFilling/TemplateFieldForm.vue | 28 +-
front-end/src/components/Settings/OrgSettings/Playbooks/AddEditPlaybook.vue | 10 +
front-end/src/components/playback/comments/ActivityComment.less | 10 +-
front-end/src/components/shared/PromptTester/PromptTester.vue | 12 +-
front-end/src/components/shared/__tests__/PromptTester.spec.js | 35 +
front-end/src/components/shared/modals/EntityPickerModal/__tests__/useEntitiesCache.spec.ts | 37 +
front-end/src/components/shared/modals/EntityPickerModal/useEntitiesCache.ts | 9 +
front-end/yarn.lock | 16 +-
phpstan-baseline.neon | 50 --
routes/api.php | 11 +
sonar-project.properties | 91 ++-
tests/Feature/Component/Nudge/ProcessOrganisationImmediateNudgesJobTest.php | 534 ++++++++++++++
tests/Feature/Jobs/ImportRemoteTrackJobTest.php | 283 +++++++-
tests/Feature/Mcp/IssueMcpTokenCommandTest.php | 53 ++
tests/Feature/Mcp/ListCallsToolElasticFeatureTest.php | 155 ++++
tests/Feature/Mcp/ListCallsToolFeatureTest.php | 352 ++++++++++
tests/Feature/Mcp/McpTestHelpersTrait.php | 77 ++
tests/Feature/Services/Team/TeamDeleteHandlers/Retention/RetentionRepositoryHandlerTest.php | 1 +
tests/Stubs/SentryStub.php | 18 +
tests/Unit/Component/ActivityAnalytics/Service/CalculateTalkTimeOffsetFromTranscriptionTest.php | 28 +-
tests/Unit/Component/AiActivityType/Services/AiActivityTypeEligibilityCheckerTest.php | 103 ++-
tests/Unit/Component/AiAutomation/Actions/PrepareUpdateDtoActionTest.php | 91 +++
tests/Unit/Component/AiAutomation/Services/CrmFillingEligibilityCheckerTest.php | 124 ++++
tests/Unit/Component/AiAutomation/TestCrmAiPromptServiceTest.php | 67 +-
tests/Unit/Component/AiCallScoring/Services/AiCallScoringEligibilityCheckerTest.php | 55 ++
tests/Unit/Component/ES/ElasticSearchWorkerManagerTest.php | 135 ----
tests/Unit/Component/ES/Processor/Actions/LoadDocumentsActionTest.php | 220 ++++++
tests/Unit/Component/ES/Processor/EntityQueryBuilderTest.php | 21 +-
tests/Unit/Component/ES/Processor/Traits/SkipActivityTraitTest.php | 51 --
tests/Unit/Component/ES/Worker/ActivityWorkerTest.php | 174 -----
tests/Unit/Component/ES/Worker/EntityWorkerTest.php | 97 ---
tests/Unit/Component/ES/Worker/WorkerAmountTest.php | 116 ---
tests/Unit/Component/Encoding/Job/AnalyzeTrackChannelsJobTest.php | 52 +-
tests/Unit/Component/Encoding/Service/GenerateSpeechFromSilenceServiceTest.php | 171 ++---
tests/Unit/Component/FFMpeg/Services/GetSpeechIntervalsTest.php | 36 +-
tests/Unit/Component/LanguageDetection/Services/FindSpeechTimeServiceTest.php | 20 +-
tests/Unit/Component/MobileSettings/MobileSettingsControllerTest.php | 5 +-
tests/Unit/Component/ParticipantSpeech/Services/ParticipantSpeechesCreatorTest.php | 75 ++
tests/Unit/Component/ParticipantSpeech/Services/ParticipantSpeechesDeleterTest.php | 63 ++
tests/Unit/Component/ParticipantSpeech/Services/ParticipantSpeechesProviderTest.php | 134 ++++
tests/Unit/Component/ParticipantSpeech/Services/ParticipantSpeechesUploaderTest.php | 57 ++
tests/Unit/Component/Transcription/Diarization/Services/GetNormalizedParticipantSpeechesServiceTest.php | 51 +-
tests/Unit/Component/Transcription/Diarization/Source/MeetingBotSourceTest.php | 29 +-
tests/Unit/Contracts/Services/Calendar/CalendarTraitTest.php | 58 +-
tests/Unit/Http/Controllers/Kiosk/ActivityControllerTest.php | 159 +++++
tests/Unit/Jobs/Activity/Import/ImportTwilioVideoSpeechesJobTest.php | 22 +-
tests/Unit/Jobs/Activity/Import/IsActivityReadyForProcessingJobTest.php | 26 +-
tests/Unit/Jobs/Calendar/SetupCalendarSyncTest.php | 25 -
tests/Unit/Services/Activity/ParticipantsServiceTest.php | 12 +-
tests/Unit/Services/Activity/Twilio/S3RecordingCredentialsServiceTest.php | 180 +++++
tests/Unit/Services/ActivityServiceTest.php | 132 ++++
tests/Unit/Services/Calendar/CalendarActivityServiceTest.php | 150 +++-
tests/Unit/Services/Calendar/Command/ImportParticipantsTest.php | 6 +-
tests/Unit/Services/Calendar/Command/MapActivityDataTest.php | 78 +-
tests/Unit/Services/Calendar/GoogleCalendarServiceTest.php | 116 +++
tests/Unit/Services/Crm/Close/ServiceTest.php | 165 +++++
tests/Unit/Services/Crm/Hubspot/ServiceTest.php | 272 ++++++-
tests/Unit/Services/Crm/Hubspot/ServiceTraits/OpportunitySyncTest.php | 25 +-
tests/Unit/Services/Crm/Hubspot/ServiceTraits/OpportunitySyncTraitMatchActivitiesTest.php | 3 +-
tests/Unit/Services/Crm/IntegrationApp/ServiceTraits/SyncCrmEntitiesTraitOpportunitiesTest.php | 40 ++
tests/Unit/Services/Crm/Pipedrive/ImportOpportunityMatchActivitiesTest.php | 2 +
tests/Unit/Services/Crm/Salesforce/ServiceTest.php | 139 ++++
tests/Unit/Services/Mail/Office/EmailApiClientTest.php | 195 ++---
tests/Unit/Services/RecallAI/RecallAIServiceTest.php | 24 +-
175 files changed, 12562 insertions(+), 2162 deletions(-)
create mode 120000 CLAUDE.md
create mode 100644 app/Component/AiAutomation/Services/CrmFillingEligibilityChecker.php
delete mode 100644 app/Component/ES/ElasticSearchWorkerManager.php
delete mode 100644 app/Component/ES/Processor/Traits/SkipActivityTrait.php
delete mode 100644 app/Component/ES/Worker/ActivityWorker.php
delete mode 100644 app/Component/ES/Worker/EntityWorker.php
delete mode 100644 app/Component/ES/Worker/WorkerAmount.php
delete mode 100644 app/Component/ES/Worker/WorkerInterface.php
create mode 100644 app/Component/ProphetAi/Exceptions/InsufficientTranscriptException.php
create mode 100644 app/Component/Transcription/DTO/Http/Transcription/AssemblyAI/AssemblyAI/NoAssemblyIdException.php
create mode 100644 app/Component/Transcription/DTO/Http/Transcription/TranscriptionIsNotCorrectFormatException.php
create mode 100644 app/Console/Commands/Activities/SetupIntegration/TwilioSetS3RecordingCredentialsCommand.php
create mode 100644 app/Console/Commands/Crm/BackfillOpportunityUserFromAccountCommand.php
delete mode 100644 app/Console/Commands/Elasticsearch/AsyncUpdateEsActivities.php
create mode 100644 app/Console/Commands/IssueMcpTokenCommand.php
create mode 100644 app/Http/Middleware/McpAuditMiddleware.php
create mode 100644 app/Http/Middleware/McpTierMiddleware.php
create mode 100644 app/Mcp/Contracts/McpCallRepositoryInterface.php
create mode 100644 app/Mcp/DTO/ListCallsFilters.php
create mode 100644 app/Mcp/Errors/McpError.php
create mode 100644 app/Mcp/Repositories/McpActivityHydrator.php
create mode 100644 app/Mcp/Repositories/McpCallRepository.php
create mode 100644 app/Mcp/Repositories/McpElasticCallRepository.php
create mode 100644 app/Mcp/Servers/JiminnyServer.php
create mode 100644 app/Mcp/Tools/ListCallsTool.php
create mode 100644 app/Services/Activity/Twilio/S3RecordingCredentialsService.php
create mode 100644 config/mcp.php
create mode 100644 database/migrations/2026_04_30_120000_create_mcp_audit_log_table.php
create mode 100644 docs/mcp/explorer/explorer.html
create mode 100644 docs/mcp/explorer/explorer.template.html
create mode 100644 docs/mcp/explorer/generate.js
create mode 100644 docs/mcp/explorer/tool-explorer-meta.json
create mode 100644 docs/mcp/tools-list.json
create mode 100644 docs/mcp/tools.md
create mode 100644 front-end/src/components/shared/modals/EntityPickerModal/__tests__/useEntitiesCache.spec.ts
create mode 100644 tests/Feature/Component/Nudge/ProcessOrganisationImmediateNudgesJobTest.php
create mode 100644 tests/Feature/Mcp/IssueMcpTokenCommandTest.php
create mode 100644 tests/Feature/Mcp/ListCallsToolElasticFeatureTest.php
create mode 100644 tests/Feature/Mcp/ListCallsToolFeatureTest.php
create mode 100644 tests/Feature/Mcp/McpTestHelpersTrait.php
create mode 100644 tests/Stubs/SentryStub.php
create mode 100644 tests/Unit/Component/AiAutomation/Services/CrmFillingEligibilityCheckerTest.php
delete mode 100644 tests/Unit/Component/ES/ElasticSearchWorkerManagerTest.php
create mode 100644 tests/Unit/Component/ES/Processor/Actions/LoadDocumentsActionTest.php
delete mode 100644 tests/Unit/Component/ES/Processor/Traits/SkipActivityTraitTest.php
delete mode 100644 tests/Unit/Component/ES/Worker/ActivityWorkerTest.php
delete mode 100644 tests/Unit/Component/ES/Worker/EntityWorkerTest.php
delete mode 100644 tests/Unit/Component/ES/Worker/WorkerAmountTest.php
create mode 100644 tests/Unit/Component/ParticipantSpeech/Services/ParticipantSpeechesCreatorTest.php
create mode 100644 tests/Unit/Http/Controllers/Kiosk/ActivityControllerTest.php
create mode 100644 tests/Unit/Services/Activity/Twilio/S3RecordingCredentialsServiceTest.php
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20725-handle-HS-search-rate-limit) $ git status
On branch master
Your branch is behind 'origin/master' by 114 commits, and can be fast-forwarded.
(use "git pull" to update your local branch)
Changes not staged for commit:
(use "git add <file>..." to update what will be committed)
(use "git restore <file>..." to discard changes in working directory)
modified: .env.local
modified: app/Component/SCIM/Constants.php
modified: app/Component/SCIM/ScimProvisioning.php
modified: app/Component/Twilio/Conference/ConferenceManager/SoftPhoneManager.php
modified: app/Console/Commands/JiminnyDebugCommand.php
modified: app/DTO/SCIM/AAD/Request/CoreUserRequest.php
modified: app/DTO/SCIM/AAD/Response/CoreUser.php
modified: app/Services/Telephony/TextMessagingService.php
modified: config/logging.php
Untracked files:
(use "git add <file>..." to include in what will be committed)
.env.nikilocal
.env.other
WEBHOOK_FILTERING_IMPLEMENTATION.md
app/Component/SCIM/Mutators/Attributes/User/RoleAttr.php
app/Console/Commands/Crm/Hubspot/SimulateWebhooksCommand.php
app/Console/Commands/Reports/CreateMockAskJiminnyReportResultCommand.php
app/Rules/ListenerRoleCannotHaveAdminOrManagerPermissionRule.php
ids.txt
public/favicon.ico
raw_sql_query.sql
tests/Unit/Component/SCIM/Mutators/Attributes/User/RoleAttrTest.php
tests/Unit/Policies/CanAccessAiReportsTest.php
tests/Unit/Rules/ListenerRoleCannotHaveAdminOrManagerPermissionRuleTest.php
no changes added to commit (use "git add" and/or "git commit -a")
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (master) $ git pull
remote: Enumerating objects: 306, done.
remote: Counting objects: 100% (299/299), done.
remote: Compressing objects: 100% (183/183), done.
remote: Total 306 (delta 213), reused 171 (delta 116), pack-reused 7 (from 1)
Receiving objects: 100% (306/306), 80.12 KiB | 1000.00 KiB/s, done.
Resolving deltas: 100% (213/213), completed with 53 local objects.
From github.com:jiminny/app
90bca4e4b2..5604af40cf master -> origin/master
4e7078fd8b..0b8343d179 JY-18091-upgrade-to-php-8-5 -> origin/JY-18091-upgrade-to-php-8-5
098eeaa087..d5a447e492 JY-20613-allow-owner-role-on-team-setup -> origin/JY-20613-allow-owner-role-on-team-setup
c3a76ace91..af65249d0f JY-20749-user-can-view-recorded-meetings -> origin/JY-20749-user-can-view-recorded-meetings
d94a285ae7..7ce96cb5fe JY-20808-low-priority-indexing-queue -> origin/JY-20808-low-priority-indexing-queue
* [new branch] JY-20842-remove-partial-updater -> origin/JY-20842-remove-partial-updater
* [new branch] JY-20920-fix-participant-flip -> origin/JY-20920-fix-participant-flip
* [new branch] secfix/npm-20260519 -> origin/secfix/npm-20260519
Updating cb4ebf0c36..5604af40cf
Fast-forward
app/Component/ES/ChunkSize.php | 54 +++++++++++++++++++
app/Component/ES/Processor/DTOs/SelectionList.php | 4 +-
app/Component/ES/Processor/TargetEntitiesSelector.php | 19 ++++---
app/Component/MeetingBot/Service/ParticipantMatcher.php | 46 ++++++++++++----
app/Exceptions/RateLimitException.php | 19 ++++++-
app/Http/Middleware/McpTierMiddleware.php | 27 ++--------
app/Jobs/Crm/MatchActivityCrmData.php | 47 ++++++++++++----
app/Jobs/Middleware/HandleHubspotRateLimit.php | 42 +++++++++++++++
app/Mcp/Servers/JiminnyServer.php | 2 +
app/Mcp/Tools/GetMeTool.php | 157 +++++++++++++++++++++++++++++++++++++++++++++++++++++
app/Models/Feature/FeatureEnum.php | 1 +
app/Services/Activity/HubSpot/ProviderResolver.php | 4 +-
app/Services/Activity/HubSpot/ProviderResolverInterface.php | 2 +-
app/Services/Activity/HubSpot/Providers/Provider.php | 2 +-
app/Services/Activity/HubSpot/Providers/ProviderKixie.php | 2 +-
app/Services/Activity/HubSpot/Providers/ProviderOrum.php | 2 +-
app/Services/Activity/HubSpot/Providers/ProviderTwilio.php | 2 +-
app/Services/Activity/HubSpot/Providers/ProviderTwilioFlex.php | 5 +-
app/Services/Activity/HubSpot/Service.php | 97 +++++++++++++++++++++++++++------
app/Services/Crm/Hubspot/Client.php | 132 +++++++++++++++++++++++++++++++++++++++++++++
app/Services/Crm/Hubspot/HubspotClientInterface.php | 15 ++++++
app/Services/Crm/Hubspot/Pagination/HubspotPaginationService.php | 21 ++++----
app/Services/Crm/Hubspot/Pagination/PaginationState.php | 2 +-
database/migrations/2026_05_13_124153_create_mcp_feature_flag.php | 25 +++++++++
tests/Feature/Mcp/GetMeToolFeatureTest.php | 140 +++++++++++++++++++++++++++++++++++++++++++++++
tests/Feature/Mcp/ListCallsToolFeatureTest.php | 2 +-
tests/Feature/Mcp/McpTestHelpersTrait.php | 19 ++++++-
tests/Unit/Component/ES/ChunkSizeTest.php | 50 +++++++++++++++++
tests/Unit/Component/ES/Processor/DTOs/SelectionListTest.php | 27 +++++++---
tests/Unit/Component/ES/Processor/TargetEntitiesSelectorTest.php | 39 ++++++++------
tests/Unit/Component/MeetingBot/Service/ParticipantMatcherTest.php | 68 ++++++++++++++++++++++-
tests/Unit/Exceptions/RateLimitExceptionTest.php | 56 +++++++++++++++++++
tests/Unit/Jobs/Crm/MatchActivityCrmDataTest.php | 8 +--
tests/Unit/Jobs/Middleware/HandleHubspotRateLimitTest.php | 151 +++++++++++++++++++++++++++++++++++++++++++++++++++
tests/Unit/Services/Activity/HubSpot/ServiceTest.php | 109 +++++++++++++++++++++++++++++++++++++
tests/Unit/Services/Crm/Hubspot/ClientTest.php | 250 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
tests/Unit/Services/Crm/Hubspot/Pagination/HubspotPaginationServiceTest.php | 283 +++++++++++++++++++++---------------------------------------------------------------------------
37 files changed, 1587 insertions(+), 344 deletions(-)
create mode 100644 app/Component/ES/ChunkSize.php
create mode 100644 app/Jobs/Middleware/HandleHubspotRateLimit.php
create mode 100644 app/Mcp/Tools/GetMeTool.php
create mode 100644 database/migrations/2026_05_13_124153_create_mcp_feature_flag.php
create mode 100644 tests/Feature/Mcp/GetMeToolFeatureTest.php
create mode 100644 tests/Unit/Component/ES/ChunkSizeTest.php
create mode 100644 tests/Unit/Exceptions/RateLimitExceptionTest.php
create mode 100644 tests/Unit/Jobs/Middleware/HandleHubspotRateLimitTest.php
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (master) $ git pull
Already up to date.
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (master) $ co -b JY-20676-delete-report-related-objects
Switched to a new branch 'JY-20676-delete-report-related-objects'
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20676-delete-report-related-objects) $ csfix
docker exec -it docker_lamp_1 ./vendor/bin/php-cs-fixer fix --config=.php-cs-fixer.dist.php -v --using-cache=no --diff
PHP CS Fixer 3.87.1 Alexander by Fabien Potencier, Dariusz Ruminski and contributors.
PHP runtime: 8.3.30
Running 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!
Loaded config default from ".php-cs-fixer.dist.php".
5690/5690 [▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓] 100%
1) app/Console/Commands/JiminnyDebugCommand.php (statement_indentation, blank_line_before_statement)
---------- begin diff ----------
--- /home/jiminny/app/Console/Commands/JiminnyDebugCommand.php
+++ /home/jiminny/app/Console/Commands/JiminnyDebugCommand.php
@@ -23,6 +23,7 @@
if ($action === 'redis-set') {
$this->testRedisSet();
+
return;
}
@@ -45,7 +46,7 @@
$ttl = 60;
try {
-// $result = Redis::set($testKey, $testValue, 'EX', $ttl, 'NX');
+ // $result = Redis::set($testKey, $testValue, 'EX', $ttl, 'NX');
$result = Redis::set($testKey, $testValue, ['nx', 'ex' => $ttl]);
if ($result) {
----------- end diff -----------
Fixed 1 of 5690 files i...
|
[{"role":"AXTextArea","text [{"role":"AXTextArea","text":"Last login: Mon May 18 09:17:28 on ttys007\n\nPoetry could not find a pyproject.toml file in /Users/lukas/jiminny/app or its parents\n\nPoetry could not find a pyproject.toml file in /Users/lukas/jiminny/app or its parents\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (pipedrive-sdk-poc) $ co master\nerror: Your local changes to the following files would be overwritten by checkout:\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tPIPEDRIVE_V2_MIGRATION_TICKETS.md\nPlease commit your changes or stash them before you switch branches.\nAborting\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (pipedrive-sdk-poc) $ git pull\nremote: Enumerating objects: 1047, done.\nremote: Counting objects: 100% (832/832), done.\nremote: Compressing objects: 100% (298/298), done.\nremote: Total 1047 (delta 634), reused 596 (delta 534), pack-reused 215 (from 3)\nReceiving objects: 100% (1047/1047), 353.16 KiB | 1.56 MiB/s, done.\nResolving deltas: 100% (687/687), completed with 107 local objects.\nFrom github.com:jiminny/app\n 907c54896c..34656c53ed pipedrive-sdk-poc -> origin/pipedrive-sdk-poc\n 03325ec50f..4e7078fd8b JY-18091-upgrade-to-php-8-5 -> origin/JY-18091-upgrade-to-php-8-5\n e7d231e163..bc6a3fce6b JY-20725-handle-HS-search-rate-limit -> origin/JY-20725-handle-HS-search-rate-limit\n * [new branch] JY-20749-user-can-view-recorded-meetings -> origin/JY-20749-user-can-view-recorded-meetings\n 98ca281a04..e0351be069 JY-20808-low-priority-indexing-queue -> origin/JY-20808-low-priority-indexing-queue\n 569abb5149..3906a9238a JY-20835-mcp-enable-users-to-get-a-list-of-deals-and-their-details -> origin/JY-20835-mcp-enable-users-to-get-a-list-of-deals-and-their-details\n ad6c2a86e8..50eb6afba9 JY-20846-mcp-enable-the-ai-to-know-details-about-the-user -> origin/JY-20846-mcp-enable-the-ai-to-know-details-about-the-user\n * [new branch] JY-20893-chunk-control-per-update-target -> origin/JY-20893-chunk-control-per-update-target\n 31c62924a5..cb4ebf0c36 master -> origin/master\nUpdating 907c54896c..34656c53ed\nFast-forward\n PIPEDRIVE_V2_MIGRATION_TICKETS.md | 52 ++++++++++++++++++++++++++++++++++++++++++++++++++++\n 1 file changed, 52 insertions(+)\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (pipedrive-sdk-poc) $ co master\nM\u0000\u0000\u0000\u0000\u0000\u0000\t.env.local\nM\u0000\u0000\u0000\u0000\u0000\u0000\tconfig/logging.php\nSwitched to branch 'master'\nYour branch is behind 'origin/master' by 31 commits, and can be fast-forwarded.\n (use \"git pull\" to update your local branch)\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (master) $ git pull\nUpdating 31c62924a5..cb4ebf0c36\nFast-forward\n app/Component/ES/Processor/Traits/SelectEntityListTrait.php | 20 ------\n app/Services/Calendar/CalendarActivityService.php | 46 +++++++++++++\n app/Services/Calendar/Command/MapActivityData.php | 106 +++-------------------------\n docs/mcp/explorer/explorer.html | 104 +++++++++++++++++++++++++---\n docs/mcp/explorer/explorer.template.html | 102 ++++++++++++++++++++++++---\n docs/mcp/tools-list.json | 373 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++-------\n docs/mcp/tools.md | 117 +++++++++++++++++++++++--------\n tests/Unit/Component/ES/AsyncUpdateElasticSearchTest.php | 16 +----\n tests/Unit/Component/ES/Listeners/UpdateMultipleTargetsListenerTest.php | 10 ---\n tests/Unit/Component/ES/Listeners/UpdateSingleTargetListenerTest.php | 6 --\n tests/Unit/Component/ES/Processor/TargetEntitiesSelectorTest.php | 9 ---\n tests/Unit/Component/ES/Processor/Traits/SelectEntityListTraitTest.php | 15 ++--\n tests/Unit/Component/ES/UpdateProcessManagerTest.php | 2 -\n tests/Unit/Services/Calendar/CalendarActivityServiceTest.php | 150 ++++++++++++++++++++++++++++++++++++++--\n tests/Unit/Services/Calendar/Command/MapActivityDataTest.php | 78 ++-------------------\n 15 files changed, 832 insertions(+), 322 deletions(-)\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (master) $ co -b JY-20613-allow-owner-role-on-team-setup\nSwitched to a new branch 'JY-20613-allow-owner-role-on-team-setup'\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20613-allow-owner-role-on-team-setup) $ csfix\ndocker exec -it docker_lamp_1 ./vendor/bin/php-cs-fixer fix --config=.php-cs-fixer.dist.php -v --using-cache=no --diff \nPHP CS Fixer 3.87.1 Alexander by Fabien Potencier, Dariusz Ruminski and contributors.\nPHP runtime: 8.3.30\nRunning analysis on 7 cores with 10 files per process.\nParallel runner is an experimental feature and may be unstable, use it at your own risk. Feedback highly appreciated!\nLoaded config default from \".php-cs-fixer.dist.php\".\n 5682/5682 [▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓] 100%\n\n\nFixed 0 of 5682 files in 56.978 seconds, 67.00 MB memory used\n\nWhat's next:\n Try Docker Debug for seamless, persistent debugging tools in any container or image → docker debug docker_lamp_1\n Learn more at https://docs.docker.com/go/debug-cli/\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20613-allow-owner-role-on-team-setup) $ ;xd\ndocker exec -it docker_lamp_1 bash -c \"mv /usr/local/etc/php/conf.d/xdebug.ini ~/xdebug.ini\"\n\nWhat's next:\n Try Docker Debug for seamless, persistent debugging tools in any container or image → docker debug docker_lamp_1\n Learn more at https://docs.docker.com/go/debug-cli/\ndocker exec -it docker_lamp_1 supervisorctl restart all\njiminny-worker-processing-2:jiminny-worker-processing-2_00: stopped\njiminny-worker-processing-3:jiminny-worker-processing-3_00: stopped\njiminny-worker-processing-4:jiminny-worker-processing-4_00: stopped\njiminny-worker-processing-5:jiminny-worker-processing-5_00: stopped\njiminny-worker-processing-delayed:jiminny-worker-processing-delayed_00: stopped\nworker-analytics:worker-analytics_00: stopped\nworker-crm-update:worker-crm-update_00: stopped\nworker-download:worker-download_00: stopped\nworker-nudges:worker-nudges_00: stopped\nartisan-schedule:artisan-schedule_00: stopped\nworker-emails:worker-emails_00: stopped\nworker-calendar:worker-calendar_00: stopped\nworker:worker_00: stopped\nworker-conferences:worker-conferences_00: stopped\nworker-crm-sync:worker-crm-sync_00: stopped\njiminny-worker-processing-1:jiminny-worker-processing-1_00: stopped\nworker-audio:worker-audio_00: stopped\nworker-es-update:worker-es-update_00: stopped\nartisan-schedule:artisan-schedule_00: started\njiminny-worker-processing-1:jiminny-worker-processing-1_00: started\njiminny-worker-processing-2:jiminny-worker-processing-2_00: started\njiminny-worker-processing-3:jiminny-worker-processing-3_00: started\njiminny-worker-processing-4:jiminny-worker-processing-4_00: started\njiminny-worker-processing-5:jiminny-worker-processing-5_00: started\njiminny-worker-processing-delayed:jiminny-worker-processing-delayed_00: started\nworker:worker_00: started\nworker-analytics:worker-analytics_00: started\nworker-audio:worker-audio_00: started\nworker-calendar:worker-calendar_00: started\nworker-conferences:worker-conferences_00: started\nworker-crm-sync:worker-crm-sync_00: started\nworker-crm-update:worker-crm-update_00: started\nworker-download:worker-download_00: started\nworker-emails:worker-emails_00: started\nworker-es-update:worker-es-update_00: started\nworker-nudges:worker-nudges_00: started\n\nWhat's next:\n Try Docker Debug for seamless, persistent debugging tools in any container or image → docker debug docker_lamp_1\n Learn more at https://docs.docker.com/go/debug-cli/\ndocker exec -it docker_lamp_1 php -v\nPHP 8.3.30 (cli) (built: Mar 16 2026 22:32:32) (NTS)\nCopyright (c) The PHP Group\nZend Engine v4.3.30, Copyright (c) Zend Technologies\n with Zend OPcache v8.3.30, Copyright (c), by Zend Technologies\n\nWhat's next:\n Try Docker Debug for seamless, persistent debugging tools in any container or image → docker debug docker_lamp_1\n Learn more at https://docs.docker.com/go/debug-cli/\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20613-allow-owner-role-on-team-setup) $ csfix\ndocker exec -it docker_lamp_1 ./vendor/bin/php-cs-fixer fix --config=.php-cs-fixer.dist.php -v --using-cache=no --diff \nPHP CS Fixer 3.87.1 Alexander by Fabien Potencier, Dariusz Ruminski and contributors.\nPHP runtime: 8.3.30\nRunning analysis on 7 cores with 10 files per process.\nParallel runner is an experimental feature and may be unstable, use it at your own risk. Feedback highly appreciated!\nLoaded config default from \".php-cs-fixer.dist.php\".\n 5682/5682 [▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓] 100%\n\n\nFixed 0 of 5682 files in 49.910 seconds, 60.00 MB memory used\n\nWhat's next:\n Try Docker Debug for seamless, persistent debugging tools in any container or image → docker debug docker_lamp_1\n Learn more at https://docs.docker.com/go/debug-cli/\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20613-allow-owner-role-on-team-setup) $ git status\nOn branch JY-20613-allow-owner-role-on-team-setup\nYour branch is ahead of 'origin/JY-20613-allow-owner-role-on-team-setup' by 1 commit.\n (use \"git push\" to publish your local commits)\n\nChanges not staged for commit:\n (use \"git add <file>...\" to update what will be committed)\n (use \"git restore <file>...\" to discard changes in working directory)\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tmodified: .env.local\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tmodified: config/logging.php\n\nUntracked files:\n (use \"git add <file>...\" to include in what will be committed)\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\t.env.nikilocal\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\t.env.other\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tWEBHOOK_FILTERING_IMPLEMENTATION.md\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tapp/Console/Commands/Crm/Hubspot/SimulateWebhooksCommand.php\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tapp/Console/Commands/Reports/CreateMockAskJiminnyReportResultCommand.php\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tids.txt\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tpublic/favicon.ico\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\traw_sql_query.sql\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\ttests/Unit/Policies/CanAccessAiReportsTest.php\n\nno changes added to commit (use \"git add\" and/or \"git commit -a\")\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20613-allow-owner-role-on-team-setup) $ git pull\nremote: Enumerating objects: 248, done.\nremote: Counting objects: 100% (128/128), done.\nremote: Compressing objects: 100% (23/23), done.\nremote: Total 59 (delta 43), reused 44 (delta 33), pack-reused 0 (from 0)\nUnpacking objects: 100% (59/59), 10.48 KiB | 228.00 KiB/s, done.\nFrom github.com:jiminny/app\n b7df560451..190239dfd4 JY-20613-allow-owner-role-on-team-setup -> origin/JY-20613-allow-owner-role-on-team-setup\n e0351be069..d94a285ae7 JY-20808-low-priority-indexing-queue -> origin/JY-20808-low-priority-indexing-queue\n * [new branch] JY-20920-fix-participant-matcher -> origin/JY-20920-fix-participant-matcher\n cb4ebf0c36..90bca4e4b2 master -> origin/master\nMerge made by the 'ort' strategy.\n app/Component/ES/ChunkSize.php | 54 +++++++++++++++++++++++++++\n app/Component/ES/Processor/DTOs/SelectionList.php | 4 +-\n app/Component/ES/Processor/TargetEntitiesSelector.php | 19 ++++++----\n app/Http/Middleware/McpTierMiddleware.php | 27 +++-----------\n app/Mcp/Servers/JiminnyServer.php | 2 +\n app/Mcp/Tools/GetMeTool.php | 157 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++\n app/Models/Feature/FeatureEnum.php | 1 +\n database/migrations/2026_05_13_124153_create_mcp_feature_flag.php | 25 +++++++++++++\n front-end/src/components/Settings/Kiosk/modals/EditTeamModal/EditTeamModal.vue | 52 ++++++++++++++++++--------\n front-end/src/components/Settings/Kiosk/modals/EditTeamModal/__tests__/EditTeamModal.spec.js | 14 +++++++\n tests/Feature/Mcp/GetMeToolFeatureTest.php | 140 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++\n tests/Feature/Mcp/ListCallsToolFeatureTest.php | 2 +-\n tests/Feature/Mcp/McpTestHelpersTrait.php | 19 +++++++++-\n tests/Unit/Component/ES/ChunkSizeTest.php | 50 +++++++++++++++++++++++++\n tests/Unit/Component/ES/Processor/DTOs/SelectionListTest.php | 27 ++++++++++----\n tests/Unit/Component/ES/Processor/TargetEntitiesSelectorTest.php | 39 +++++++++++---------\n 16 files changed, 557 insertions(+), 75 deletions(-)\n create mode 100644 app/Component/ES/ChunkSize.php\n create mode 100644 app/Mcp/Tools/GetMeTool.php\n create mode 100644 database/migrations/2026_05_13_124153_create_mcp_feature_flag.php\n create mode 100644 tests/Feature/Mcp/GetMeToolFeatureTest.php\n create mode 100644 tests/Unit/Component/ES/ChunkSizeTest.php\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20613-allow-owner-role-on-team-setup) $ git push\nEnumerating objects: 40, done.\nCounting objects: 100% (34/34), done.\nDelta compression using up to 8 threads\nCompressing objects: 100% (18/18), done.\nWriting objects: 100% (18/18), 1.58 KiB | 1.58 MiB/s, done.\nTotal 18 (delta 15), reused 0 (delta 0), pack-reused 0\nremote: Resolving deltas: 100% (15/15), completed with 13 local objects.\nTo github.com:jiminny/app.git\n 190239dfd4..ec1b261264 JY-20613-allow-owner-role-on-team-setup -> JY-20613-allow-owner-role-on-team-setup\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20613-allow-owner-role-on-team-setup) $ gbr\n* JY-20613-allow-owner-role-on-team-setup\n pipedrive-sdk-poc\n master\n JY-20903-update_activity-stage-on-opportunity-change\n JY-20904-fix-update-es-on-activity-command\n JY-20891-improve-sms-text-relays\n JY-20725-handle-HS-search-rate-limit\n JY-20818-move-AJ-reports-to-separated-datadog-metric\n JY-20773-fix-automated-reports-user-pilot-tracking\n JY-20157-AJ-report-not-send-notification\n JY-20508-notify-before-AJ-report-expiration\n JY-20372-ai-reports-promotion-pages\n JY-20352-sync-opportunities-without-a-local-owner-user-id-is-null\n JY-20738-debug-AJ-tracking-UP\n a\n JY-18909-automated-reports-ask-jiminny\n JY-20692-fix-integration-app-token-auth-response-change\n JY-20553-debug-crm-sync-delays\n JY-20698-fix-SF-activity-types-on-new-playbook\n JY-20543-AJ-report-tracking\n JY-20384-handle-auto-sync-with-no-access-to-event-type\n JY-20458-ask-jiminny-user-definitions\n JY-19666-fix-import-contacts-account-association\n JY-19666-HS-import-contacts-and-accounts-batch-job\n JY-20458-Ask-Jiminny-Reports\n JY-20200-batch-update-CRM-objects-Salesforce\n JY-19666-HS-webhooks-add-contact-and-company\n JY-20348-trigger-setup-DI-layout-on-team-creation\n JY-20326-refactor-info-message-in-command\n JY-20317-fix-auto-log-delay-issue-on-all-channels-disabled\n JY-20312-remove-on-update-change-last-synced-at-crm-configurations\n JY-20306-SF-skip-auto-sync-for-task-based-playbook\n JY-20192-remove-deleted-team-from-saved-search-filters\n JY-20197-import-opportunity-batch-job\n JY-20293-enable-status-field-for-pipedrive-deals\n JY-20191-remove-commands-interactive-prompts\n JY-20118-change-default-sync-strategy\n JY-20183-add-cache-on-auto-log-delay\n JY-20197-add-import-opportunity-batch-job\n 20118-hs-opportunity-make-webhook-strategy-default\n JY-20118-make-default-hs-opportunity-sync-strategy-webhook-based\n JY-20196-handle-opportunity-without-note\n JY-20118-improve-opportunity-import\n JY-20189-handle-activity-search-on-deleted-groups\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20613-allow-owner-role-on-team-setup) $ co JY-20725-handle-HS-search-rate-limit\nM\u0000\u0000\u0000\u0000\u0000\u0000\t.env.local\nM\u0000\u0000\u0000\u0000\u0000\u0000\tconfig/logging.php\nSwitched to branch 'JY-20725-handle-HS-search-rate-limit'\nYour branch is behind 'origin/JY-20725-handle-HS-search-rate-limit' by 439 commits, and can be fast-forwarded.\n (use \"git pull\" to update your local branch)\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20725-handle-HS-search-rate-limit) $ git pull\nUpdating 0f3e438941..bc6a3fce6b\nFast-forward\n .gitignore | 3 +-\n .windsurfrules | 168 ++---\n CLAUDE.md | 1 +\n app/Component/ActivityAnalytics/Service/CalculateTalkTimeOffsetsFromTranscription.php | 24 +-\n app/Component/AiActivityType/Services/AiActivityTypeEligibilityChecker.php | 28 +-\n app/Component/AiAutomation/Actions/PrepareUpdateDtoAction.php | 32 +-\n app/Component/AiAutomation/Services/CrmFillingEligibilityChecker.php | 47 ++\n app/Component/AiAutomation/TestCrmAiPromptService.php | 14 +\n app/Component/AiCallScoring/Services/AiCallScoringEligibilityChecker.php | 9 +\n app/Component/ES/ElasticSearchDocumentPartialUpdater.php | 13 +-\n app/Component/ES/ElasticSearchWorkerManager.php | 86 ---\n app/Component/ES/Processor/Actions/LoadDocumentsAction.php | 80 +--\n app/Component/ES/Processor/EntityQueryBuilder.php | 12 +-\n app/Component/ES/Processor/TargetEntitiesSelector.php | 2 +-\n app/Component/ES/Processor/Traits/SkipActivityTrait.php | 25 -\n app/Component/ES/Repositories/EsResetActivityRepository.php | 11 +-\n app/Component/ES/Worker/ActivityWorker.php | 73 --\n app/Component/ES/Worker/EntityWorker.php | 44 --\n app/Component/ES/Worker/WorkerAmount.php | 60 --\n app/Component/ES/Worker/WorkerInterface.php | 15 -\n app/Component/ElasticSearch/Contract/Searchable.php | 4 +\n app/Component/Encoding/Job/AnalyzeTrackChannelsJob.php | 20 +-\n app/Component/Encoding/Service/GenerateSpeechFromSilenceService.php | 85 ++-\n app/Component/FFMpeg/Services/GetSpeechIntervalsService.php | 18 +-\n app/Component/LanguageDetection/Services/FindSpeechTimeService.php | 22 +-\n app/Component/Nudge/Job/ProcessOrganisationImmediateNudgesJob.php | 218 +++++-\n app/Component/ParagraphBreaker/Services/TranscriptionParagraphsService.php | 4 +\n app/Component/ParticipantSpeech/Services/ParticipantSpeechesCreator.php | 33 +\n app/Component/ParticipantSpeech/Services/ParticipantSpeechesDeleter.php | 15 +\n app/Component/ParticipantSpeech/Services/ParticipantSpeechesProvider.php | 51 +-\n app/Component/ParticipantSpeech/Services/ParticipantSpeechesUploader.php | 36 +\n app/Component/ProphetAi/Exceptions/InsufficientTranscriptException.php | 11 +\n app/Component/Transcription/DTO/Http/Transcription/AssemblyAI/AssemblyAI/NoAssemblyIdException.php | 11 +\n app/Component/Transcription/DTO/Http/Transcription/AssemblyAI/AssemblyAI/SuccessfulResponse.php | 6 +\n app/Component/Transcription/DTO/Http/Transcription/TranscriptionIsNotCorrectFormatException.php | 11 +\n app/Component/Transcription/Diarization/Services/GetNormalizedParticipantSpeechesService.php | 23 +-\n app/Component/Transcription/Diarization/Source/MeetingBotSource.php | 16 +-\n app/Component/Transcription/TranscriptionProcessor/TranscriptionProcessor.php | 3 +\n app/Console/Commands/Activities/ActivityHardDeleteCommand.php | 4 +-\n app/Console/Commands/Activities/Copy.php | 2 +\n app/Console/Commands/Activities/SetupIntegration/TwilioSetS3RecordingCredentialsCommand.php | 119 ++++\n app/Console/Commands/Activities/UpdateActivityElasticSearchDocumentCommand.php | 10 +-\n app/Console/Commands/Crm/BackfillOpportunityUserFromAccountCommand.php | 126 ++++\n app/Console/Commands/Elasticsearch/AsyncUpdateEsActivities.php | 19 -\n app/Console/Commands/Elasticsearch/AsyncUpdateEsEntities.php | 50 +-\n app/Console/Commands/Elasticsearch/ResetAsyncElasticSearchCommand.php | 30 +-\n app/Console/Commands/GeckoExport/GeckoExportParticipantSpeechesCommand.php | 14 +-\n app/Console/Commands/IssueMcpTokenCommand.php | 84 +++\n app/Console/Commands/JiminnyDebugCommand.php | 7 +-\n app/Console/Commands/Tracks/CleanupActivityTracksCommand.php | 2 +-\n app/Console/Kernel.php | 6 +-\n app/Contracts/Services/Calendar/CalendarTrait.php | 80 ++-\n app/Events/AutomatedReports/AutomatedReportGenerated.php | 3 +\n app/Http/Controllers/API/AiCallScoring/AiScorecardController.php | 7 +-\n app/Http/Controllers/API/TeamAiAutomationController.php | 8 +\n app/Http/Controllers/CustomerApi/CustomerApiController.php | 4 +-\n app/Http/Controllers/Kiosk/ActivityController.php | 58 +-\n app/Http/Controllers/Settings/PlaybookController.php | 15 +-\n app/Http/Kernel.php | 23 +\n app/Http/Middleware/McpAuditMiddleware.php | 156 ++++\n app/Http/Middleware/McpTierMiddleware.php | 54 ++\n app/Http/Requests/API/V2/ZapierUploadActivityRequest.php | 28 +-\n app/Jobs/Activity/Import/ImportTwilioVideoSpeechesJob.php | 25 +-\n app/Jobs/Activity/Import/IsActivityReadyForProcessingJob.php | 10 +-\n app/Jobs/Calendar/SetupCalendarSync.php | 21 +-\n app/Jobs/ImportRemoteTrackJob.php | 96 ++-\n app/Jobs/Mailbox/EmailTextRelay.php | 15 +-\n app/Mcp/Contracts/McpCallRepositoryInterface.php | 30 +\n app/Mcp/DTO/ListCallsFilters.php | 29 +\n app/Mcp/Errors/McpError.php | 123 ++++\n app/Mcp/Repositories/McpActivityHydrator.php | 145 ++++\n app/Mcp/Repositories/McpCallRepository.php | 84 +++\n app/Mcp/Repositories/McpElasticCallRepository.php | 171 +++++\n app/Mcp/Servers/JiminnyServer.php | 38 +\n app/Mcp/Tools/ListCallsTool.php | 205 ++++++\n app/Models/Activity.php | 10 +-\n app/Models/Activity/Transcription.php | 17 +-\n app/Models/ElasticSearch/OpportunityElasticSearchTrait.php | 5 +\n app/Models/Participant.php | 1 +\n app/Providers/AppServiceProvider.php | 22 +\n app/Repositories/Crm/ContactRepository.php | 69 +-\n app/Repositories/ParticipantSpeechRepository.php | 13 +-\n app/Services/Activity/ParticipantsService.php | 19 +-\n app/Services/Activity/Twilio/S3RecordingCredentialsService.php | 82 +++\n app/Services/ActivityService.php | 21 +-\n app/Services/Calendar/CalendarActivityService.php | 46 ++\n app/Services/Calendar/Command/ImportParticipants.php | 1 +\n app/Services/Calendar/Command/MapActivityData.php | 106 +--\n app/Services/Calendar/GoogleCalendarService.php | 12 +-\n app/Services/Crm/Close/Processor/OpportunityProcessor.php | 2 +-\n app/Services/Crm/Close/Service.php | 22 +-\n app/Services/Crm/Copper/Service.php | 12 +-\n app/Services/Crm/Hubspot/Service.php | 154 +++-\n app/Services/Crm/Hubspot/ServiceTraits/OpportunitySyncTrait.php | 88 ++-\n app/Services/Crm/IntegrationApp/ServiceTraits/SyncCrmEntitiesTrait.php | 22 +-\n app/Services/Crm/Pipedrive/Service.php | 17 +-\n app/Services/Crm/Salesforce/Service.php | 42 +-\n app/Services/Mail/Office/EmailApiClient.php | 129 +---\n app/Services/RecallAI/Commands/ScheduleBotCommand.php | 39 +-\n app/Services/RecallAI/RecallAIService.php | 22 +-\n composer.json | 3 +-\n composer.lock | 87 ++-\n config/mcp.php | 23 +\n database/migrations/2026_04_30_120000_create_mcp_audit_log_table.php | 36 +\n docs/mcp/explorer/explorer.html | 697 ++++++++++++++++++\n docs/mcp/explorer/explorer.template.html | 697 ++++++++++++++++++\n docs/mcp/explorer/generate.js | 215 ++++++\n docs/mcp/explorer/tool-explorer-meta.json | 11 +\n docs/mcp/tools-list.json | 2536 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++\n docs/mcp/tools.md | 621 ++++++++++++++++\n front-end/package.json | 4 +-\n front-end/src/components/Settings/OrgSettings/AiAutomation/CrmFilling/TemplateFieldForm.vue | 28 +-\n front-end/src/components/Settings/OrgSettings/Playbooks/AddEditPlaybook.vue | 10 +\n front-end/src/components/playback/comments/ActivityComment.less | 10 +-\n front-end/src/components/shared/PromptTester/PromptTester.vue | 12 +-\n front-end/src/components/shared/__tests__/PromptTester.spec.js | 35 +\n front-end/src/components/shared/modals/EntityPickerModal/__tests__/useEntitiesCache.spec.ts | 37 +\n front-end/src/components/shared/modals/EntityPickerModal/useEntitiesCache.ts | 9 +\n front-end/yarn.lock | 16 +-\n phpstan-baseline.neon | 50 --\n routes/api.php | 11 +\n sonar-project.properties | 91 ++-\n tests/Feature/Component/Nudge/ProcessOrganisationImmediateNudgesJobTest.php | 534 ++++++++++++++\n tests/Feature/Jobs/ImportRemoteTrackJobTest.php | 283 +++++++-\n tests/Feature/Mcp/IssueMcpTokenCommandTest.php | 53 ++\n tests/Feature/Mcp/ListCallsToolElasticFeatureTest.php | 155 ++++\n tests/Feature/Mcp/ListCallsToolFeatureTest.php | 352 ++++++++++\n tests/Feature/Mcp/McpTestHelpersTrait.php | 77 ++\n tests/Feature/Services/Team/TeamDeleteHandlers/Retention/RetentionRepositoryHandlerTest.php | 1 +\n tests/Stubs/SentryStub.php | 18 +\n tests/Unit/Component/ActivityAnalytics/Service/CalculateTalkTimeOffsetFromTranscriptionTest.php | 28 +-\n tests/Unit/Component/AiActivityType/Services/AiActivityTypeEligibilityCheckerTest.php | 103 ++-\n tests/Unit/Component/AiAutomation/Actions/PrepareUpdateDtoActionTest.php | 91 +++\n tests/Unit/Component/AiAutomation/Services/CrmFillingEligibilityCheckerTest.php | 124 ++++\n tests/Unit/Component/AiAutomation/TestCrmAiPromptServiceTest.php | 67 +-\n tests/Unit/Component/AiCallScoring/Services/AiCallScoringEligibilityCheckerTest.php | 55 ++\n tests/Unit/Component/ES/ElasticSearchWorkerManagerTest.php | 135 ----\n tests/Unit/Component/ES/Processor/Actions/LoadDocumentsActionTest.php | 220 ++++++\n tests/Unit/Component/ES/Processor/EntityQueryBuilderTest.php | 21 +-\n tests/Unit/Component/ES/Processor/Traits/SkipActivityTraitTest.php | 51 --\n tests/Unit/Component/ES/Worker/ActivityWorkerTest.php | 174 -----\n tests/Unit/Component/ES/Worker/EntityWorkerTest.php | 97 ---\n tests/Unit/Component/ES/Worker/WorkerAmountTest.php | 116 ---\n tests/Unit/Component/Encoding/Job/AnalyzeTrackChannelsJobTest.php | 52 +-\n tests/Unit/Component/Encoding/Service/GenerateSpeechFromSilenceServiceTest.php | 171 ++---\n tests/Unit/Component/FFMpeg/Services/GetSpeechIntervalsTest.php | 36 +-\n tests/Unit/Component/LanguageDetection/Services/FindSpeechTimeServiceTest.php | 20 +-\n tests/Unit/Component/MobileSettings/MobileSettingsControllerTest.php | 5 +-\n tests/Unit/Component/ParticipantSpeech/Services/ParticipantSpeechesCreatorTest.php | 75 ++\n tests/Unit/Component/ParticipantSpeech/Services/ParticipantSpeechesDeleterTest.php | 63 ++\n tests/Unit/Component/ParticipantSpeech/Services/ParticipantSpeechesProviderTest.php | 134 ++++\n tests/Unit/Component/ParticipantSpeech/Services/ParticipantSpeechesUploaderTest.php | 57 ++\n tests/Unit/Component/Transcription/Diarization/Services/GetNormalizedParticipantSpeechesServiceTest.php | 51 +-\n tests/Unit/Component/Transcription/Diarization/Source/MeetingBotSourceTest.php | 29 +-\n tests/Unit/Contracts/Services/Calendar/CalendarTraitTest.php | 58 +-\n tests/Unit/Http/Controllers/Kiosk/ActivityControllerTest.php | 159 +++++\n tests/Unit/Jobs/Activity/Import/ImportTwilioVideoSpeechesJobTest.php | 22 +-\n tests/Unit/Jobs/Activity/Import/IsActivityReadyForProcessingJobTest.php | 26 +-\n tests/Unit/Jobs/Calendar/SetupCalendarSyncTest.php | 25 -\n tests/Unit/Services/Activity/ParticipantsServiceTest.php | 12 +-\n tests/Unit/Services/Activity/Twilio/S3RecordingCredentialsServiceTest.php | 180 +++++\n tests/Unit/Services/ActivityServiceTest.php | 132 ++++\n tests/Unit/Services/Calendar/CalendarActivityServiceTest.php | 150 +++-\n tests/Unit/Services/Calendar/Command/ImportParticipantsTest.php | 6 +-\n tests/Unit/Services/Calendar/Command/MapActivityDataTest.php | 78 +-\n tests/Unit/Services/Calendar/GoogleCalendarServiceTest.php | 116 +++\n tests/Unit/Services/Crm/Close/ServiceTest.php | 165 +++++\n tests/Unit/Services/Crm/Hubspot/ServiceTest.php | 272 ++++++-\n tests/Unit/Services/Crm/Hubspot/ServiceTraits/OpportunitySyncTest.php | 25 +-\n tests/Unit/Services/Crm/Hubspot/ServiceTraits/OpportunitySyncTraitMatchActivitiesTest.php | 3 +-\n tests/Unit/Services/Crm/IntegrationApp/ServiceTraits/SyncCrmEntitiesTraitOpportunitiesTest.php | 40 ++\n tests/Unit/Services/Crm/Pipedrive/ImportOpportunityMatchActivitiesTest.php | 2 +\n tests/Unit/Services/Crm/Salesforce/ServiceTest.php | 139 ++++\n tests/Unit/Services/Mail/Office/EmailApiClientTest.php | 195 ++---\n tests/Unit/Services/RecallAI/RecallAIServiceTest.php | 24 +-\n 175 files changed, 12562 insertions(+), 2162 deletions(-)\n create mode 120000 CLAUDE.md\n create mode 100644 app/Component/AiAutomation/Services/CrmFillingEligibilityChecker.php\n delete mode 100644 app/Component/ES/ElasticSearchWorkerManager.php\n delete mode 100644 app/Component/ES/Processor/Traits/SkipActivityTrait.php\n delete mode 100644 app/Component/ES/Worker/ActivityWorker.php\n delete mode 100644 app/Component/ES/Worker/EntityWorker.php\n delete mode 100644 app/Component/ES/Worker/WorkerAmount.php\n delete mode 100644 app/Component/ES/Worker/WorkerInterface.php\n create mode 100644 app/Component/ProphetAi/Exceptions/InsufficientTranscriptException.php\n create mode 100644 app/Component/Transcription/DTO/Http/Transcription/AssemblyAI/AssemblyAI/NoAssemblyIdException.php\n create mode 100644 app/Component/Transcription/DTO/Http/Transcription/TranscriptionIsNotCorrectFormatException.php\n create mode 100644 app/Console/Commands/Activities/SetupIntegration/TwilioSetS3RecordingCredentialsCommand.php\n create mode 100644 app/Console/Commands/Crm/BackfillOpportunityUserFromAccountCommand.php\n delete mode 100644 app/Console/Commands/Elasticsearch/AsyncUpdateEsActivities.php\n create mode 100644 app/Console/Commands/IssueMcpTokenCommand.php\n create mode 100644 app/Http/Middleware/McpAuditMiddleware.php\n create mode 100644 app/Http/Middleware/McpTierMiddleware.php\n create mode 100644 app/Mcp/Contracts/McpCallRepositoryInterface.php\n create mode 100644 app/Mcp/DTO/ListCallsFilters.php\n create mode 100644 app/Mcp/Errors/McpError.php\n create mode 100644 app/Mcp/Repositories/McpActivityHydrator.php\n create mode 100644 app/Mcp/Repositories/McpCallRepository.php\n create mode 100644 app/Mcp/Repositories/McpElasticCallRepository.php\n create mode 100644 app/Mcp/Servers/JiminnyServer.php\n create mode 100644 app/Mcp/Tools/ListCallsTool.php\n create mode 100644 app/Services/Activity/Twilio/S3RecordingCredentialsService.php\n create mode 100644 config/mcp.php\n create mode 100644 database/migrations/2026_04_30_120000_create_mcp_audit_log_table.php\n create mode 100644 docs/mcp/explorer/explorer.html\n create mode 100644 docs/mcp/explorer/explorer.template.html\n create mode 100644 docs/mcp/explorer/generate.js\n create mode 100644 docs/mcp/explorer/tool-explorer-meta.json\n create mode 100644 docs/mcp/tools-list.json\n create mode 100644 docs/mcp/tools.md\n create mode 100644 front-end/src/components/shared/modals/EntityPickerModal/__tests__/useEntitiesCache.spec.ts\n create mode 100644 tests/Feature/Component/Nudge/ProcessOrganisationImmediateNudgesJobTest.php\n create mode 100644 tests/Feature/Mcp/IssueMcpTokenCommandTest.php\n create mode 100644 tests/Feature/Mcp/ListCallsToolElasticFeatureTest.php\n create mode 100644 tests/Feature/Mcp/ListCallsToolFeatureTest.php\n create mode 100644 tests/Feature/Mcp/McpTestHelpersTrait.php\n create mode 100644 tests/Stubs/SentryStub.php\n create mode 100644 tests/Unit/Component/AiAutomation/Services/CrmFillingEligibilityCheckerTest.php\n delete mode 100644 tests/Unit/Component/ES/ElasticSearchWorkerManagerTest.php\n create mode 100644 tests/Unit/Component/ES/Processor/Actions/LoadDocumentsActionTest.php\n delete mode 100644 tests/Unit/Component/ES/Processor/Traits/SkipActivityTraitTest.php\n delete mode 100644 tests/Unit/Component/ES/Worker/ActivityWorkerTest.php\n delete mode 100644 tests/Unit/Component/ES/Worker/EntityWorkerTest.php\n delete mode 100644 tests/Unit/Component/ES/Worker/WorkerAmountTest.php\n create mode 100644 tests/Unit/Component/ParticipantSpeech/Services/ParticipantSpeechesCreatorTest.php\n create mode 100644 tests/Unit/Http/Controllers/Kiosk/ActivityControllerTest.php\n create mode 100644 tests/Unit/Services/Activity/Twilio/S3RecordingCredentialsServiceTest.php\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20725-handle-HS-search-rate-limit) $ git status\nOn branch master\nYour branch is behind 'origin/master' by 114 commits, and can be fast-forwarded.\n (use \"git pull\" to update your local branch)\n\nChanges not staged for commit:\n (use \"git add <file>...\" to update what will be committed)\n (use \"git restore <file>...\" to discard changes in working directory)\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tmodified: .env.local\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tmodified: app/Component/SCIM/Constants.php\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tmodified: app/Component/SCIM/ScimProvisioning.php\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tmodified: app/Component/Twilio/Conference/ConferenceManager/SoftPhoneManager.php\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tmodified: app/Console/Commands/JiminnyDebugCommand.php\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tmodified: app/DTO/SCIM/AAD/Request/CoreUserRequest.php\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tmodified: app/DTO/SCIM/AAD/Response/CoreUser.php\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tmodified: app/Services/Telephony/TextMessagingService.php\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tmodified: config/logging.php\n\nUntracked files:\n (use \"git add <file>...\" to include in what will be committed)\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\t.env.nikilocal\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\t.env.other\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tWEBHOOK_FILTERING_IMPLEMENTATION.md\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tapp/Component/SCIM/Mutators/Attributes/User/RoleAttr.php\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tapp/Console/Commands/Crm/Hubspot/SimulateWebhooksCommand.php\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tapp/Console/Commands/Reports/CreateMockAskJiminnyReportResultCommand.php\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tapp/Rules/ListenerRoleCannotHaveAdminOrManagerPermissionRule.php\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tids.txt\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tpublic/favicon.ico\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\traw_sql_query.sql\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\ttests/Unit/Component/SCIM/Mutators/Attributes/User/RoleAttrTest.php\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\ttests/Unit/Policies/CanAccessAiReportsTest.php\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\ttests/Unit/Rules/ListenerRoleCannotHaveAdminOrManagerPermissionRuleTest.php\n\nno changes added to commit (use \"git add\" and/or \"git commit -a\")\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (master) $ git pull\nremote: Enumerating objects: 306, done.\nremote: Counting objects: 100% (299/299), done.\nremote: Compressing objects: 100% (183/183), done.\nremote: Total 306 (delta 213), reused 171 (delta 116), pack-reused 7 (from 1)\nReceiving objects: 100% (306/306), 80.12 KiB | 1000.00 KiB/s, done.\nResolving deltas: 100% (213/213), completed with 53 local objects.\nFrom github.com:jiminny/app\n 90bca4e4b2..5604af40cf master -> origin/master\n 4e7078fd8b..0b8343d179 JY-18091-upgrade-to-php-8-5 -> origin/JY-18091-upgrade-to-php-8-5\n 098eeaa087..d5a447e492 JY-20613-allow-owner-role-on-team-setup -> origin/JY-20613-allow-owner-role-on-team-setup\n c3a76ace91..af65249d0f JY-20749-user-can-view-recorded-meetings -> origin/JY-20749-user-can-view-recorded-meetings\n d94a285ae7..7ce96cb5fe JY-20808-low-priority-indexing-queue -> origin/JY-20808-low-priority-indexing-queue\n * [new branch] JY-20842-remove-partial-updater -> origin/JY-20842-remove-partial-updater\n * [new branch] JY-20920-fix-participant-flip -> origin/JY-20920-fix-participant-flip\n * [new branch] secfix/npm-20260519 -> origin/secfix/npm-20260519\nUpdating cb4ebf0c36..5604af40cf\nFast-forward\n app/Component/ES/ChunkSize.php | 54 +++++++++++++++++++\n app/Component/ES/Processor/DTOs/SelectionList.php | 4 +-\n app/Component/ES/Processor/TargetEntitiesSelector.php | 19 ++++---\n app/Component/MeetingBot/Service/ParticipantMatcher.php | 46 ++++++++++++----\n app/Exceptions/RateLimitException.php | 19 ++++++-\n app/Http/Middleware/McpTierMiddleware.php | 27 ++--------\n app/Jobs/Crm/MatchActivityCrmData.php | 47 ++++++++++++----\n app/Jobs/Middleware/HandleHubspotRateLimit.php | 42 +++++++++++++++\n app/Mcp/Servers/JiminnyServer.php | 2 +\n app/Mcp/Tools/GetMeTool.php | 157 +++++++++++++++++++++++++++++++++++++++++++++++++++++\n app/Models/Feature/FeatureEnum.php | 1 +\n app/Services/Activity/HubSpot/ProviderResolver.php | 4 +-\n app/Services/Activity/HubSpot/ProviderResolverInterface.php | 2 +-\n app/Services/Activity/HubSpot/Providers/Provider.php | 2 +-\n app/Services/Activity/HubSpot/Providers/ProviderKixie.php | 2 +-\n app/Services/Activity/HubSpot/Providers/ProviderOrum.php | 2 +-\n app/Services/Activity/HubSpot/Providers/ProviderTwilio.php | 2 +-\n app/Services/Activity/HubSpot/Providers/ProviderTwilioFlex.php | 5 +-\n app/Services/Activity/HubSpot/Service.php | 97 +++++++++++++++++++++++++++------\n app/Services/Crm/Hubspot/Client.php | 132 +++++++++++++++++++++++++++++++++++++++++++++\n app/Services/Crm/Hubspot/HubspotClientInterface.php | 15 ++++++\n app/Services/Crm/Hubspot/Pagination/HubspotPaginationService.php | 21 ++++----\n app/Services/Crm/Hubspot/Pagination/PaginationState.php | 2 +-\n database/migrations/2026_05_13_124153_create_mcp_feature_flag.php | 25 +++++++++\n tests/Feature/Mcp/GetMeToolFeatureTest.php | 140 +++++++++++++++++++++++++++++++++++++++++++++++\n tests/Feature/Mcp/ListCallsToolFeatureTest.php | 2 +-\n tests/Feature/Mcp/McpTestHelpersTrait.php | 19 ++++++-\n tests/Unit/Component/ES/ChunkSizeTest.php | 50 +++++++++++++++++\n tests/Unit/Component/ES/Processor/DTOs/SelectionListTest.php | 27 +++++++---\n tests/Unit/Component/ES/Processor/TargetEntitiesSelectorTest.php | 39 ++++++++------\n tests/Unit/Component/MeetingBot/Service/ParticipantMatcherTest.php | 68 ++++++++++++++++++++++-\n tests/Unit/Exceptions/RateLimitExceptionTest.php | 56 +++++++++++++++++++\n tests/Unit/Jobs/Crm/MatchActivityCrmDataTest.php | 8 +--\n tests/Unit/Jobs/Middleware/HandleHubspotRateLimitTest.php | 151 +++++++++++++++++++++++++++++++++++++++++++++++++++\n tests/Unit/Services/Activity/HubSpot/ServiceTest.php | 109 +++++++++++++++++++++++++++++++++++++\n tests/Unit/Services/Crm/Hubspot/ClientTest.php | 250 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++\n tests/Unit/Services/Crm/Hubspot/Pagination/HubspotPaginationServiceTest.php | 283 +++++++++++++++++++++---------------------------------------------------------------------------\n 37 files changed, 1587 insertions(+), 344 deletions(-)\n create mode 100644 app/Component/ES/ChunkSize.php\n create mode 100644 app/Jobs/Middleware/HandleHubspotRateLimit.php\n create mode 100644 app/Mcp/Tools/GetMeTool.php\n create mode 100644 database/migrations/2026_05_13_124153_create_mcp_feature_flag.php\n create mode 100644 tests/Feature/Mcp/GetMeToolFeatureTest.php\n create mode 100644 tests/Unit/Component/ES/ChunkSizeTest.php\n create mode 100644 tests/Unit/Exceptions/RateLimitExceptionTest.php\n create mode 100644 tests/Unit/Jobs/Middleware/HandleHubspotRateLimitTest.php\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (master) $ git pull\nAlready up to date.\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (master) $ co -b JY-20676-delete-report-related-objects\nSwitched to a new branch 'JY-20676-delete-report-related-objects'\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20676-delete-report-related-objects) $ csfix\ndocker exec -it docker_lamp_1 ./vendor/bin/php-cs-fixer fix --config=.php-cs-fixer.dist.php -v --using-cache=no --diff \nPHP CS Fixer 3.87.1 Alexander by Fabien Potencier, Dariusz Ruminski and contributors.\nPHP runtime: 8.3.30\nRunning analysis on 7 cores with 10 files per process.\nParallel runner is an experimental feature and may be unstable, use it at your own risk. Feedback highly appreciated!\nLoaded config default from \".php-cs-fixer.dist.php\".\n 5690/5690 [▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓] 100%\n\n 1) app/Console/Commands/JiminnyDebugCommand.php (statement_indentation, blank_line_before_statement)\n ---------- begin diff ----------\n--- /home/jiminny/app/Console/Commands/JiminnyDebugCommand.php\n+++ /home/jiminny/app/Console/Commands/JiminnyDebugCommand.php\n@@ -23,6 +23,7 @@\n \n if ($action === 'redis-set') {\n $this->testRedisSet();\n+\n return;\n }\n \n@@ -45,7 +46,7 @@\n $ttl = 60;\n \n try {\n-// $result = Redis::set($testKey, $testValue, 'EX', $ttl, 'NX');\n+ // $result = Redis::set($testKey, $testValue, 'EX', $ttl, 'NX');\n $result = Redis::set($testKey, $testValue, ['nx', 'ex' => $ttl]);\n \n if ($result) {\n\n ----------- end diff -----------\n\n\nFixed 1 of 5690 files in 50.673 seconds, 67.00 MB memory used\n\nWhat's next:\n Try Docker Debug for seamless, persistent debugging tools in any container or image → docker debug docker_lamp_1\n Learn more at https://docs.docker.com/go/debug-cli/\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20676-delete-report-related-objects) $ ;xd\ndocker exec -it docker_lamp_1 bash -c \"mv /usr/local/etc/php/conf.d/xdebug.ini ~/xdebug.ini\"\n\nWhat's next:\n Try Docker Debug for seamless, persistent debugging tools in any container or image → docker debug docker_lamp_1\n Learn more at https://docs.docker.com/go/debug-cli/\ndocker exec -it docker_lamp_1 supervisorctl restart all\njiminny-worker-processing-2:jiminny-worker-processing-2_00: stopped\njiminny-worker-processing-3:jiminny-worker-processing-3_00: stopped\njiminny-worker-processing-4:jiminny-worker-processing-4_00: stopped\njiminny-worker-processing-5:jiminny-worker-processing-5_00: stopped\njiminny-worker-processing-delayed:jiminny-worker-processing-delayed_00: stopped\nworker-analytics:worker-analytics_00: stopped\nworker-crm-update:worker-crm-update_00: stopped\nworker-download:worker-download_00: stopped\nworker-nudges:worker-nudges_00: stopped\nworker-calendar:worker-calendar_00: stopped\nworker-audio:worker-audio_00: stopped\njiminny-worker-processing-1:jiminny-worker-processing-1_00: stopped\nworker:worker_00: stopped\nworker-conferences:worker-conferences_00: stopped\nworker-crm-sync:worker-crm-sync_00: stopped\nworker-emails:worker-emails_00: stopped\nworker-es-update:worker-es-update_00: stopped\nartisan-schedule:artisan-schedule_00: stopped\nartisan-schedule:artisan-schedule_00: started\njiminny-worker-processing-1:jiminny-worker-processing-1_00: started\njiminny-worker-processing-2:jiminny-worker-processing-2_00: started\njiminny-worker-processing-3:jiminny-worker-processing-3_00: started\njiminny-worker-processing-4:jiminny-worker-processing-4_00: started\njiminny-worker-processing-5:jiminny-worker-processing-5_00: started\njiminny-worker-processing-delayed:jiminny-worker-processing-delayed_00: started\nworker:worker_00: started\nworker-analytics:worker-analytics_00: started\nworker-audio:worker-audio_00: started\nworker-calendar:worker-calendar_00: started\nworker-conferences:worker-conferences_00: started\nworker-crm-sync:worker-crm-sync_00: started\nworker-crm-update:worker-crm-update_00: started\nworker-download:worker-download_00: started\nworker-emails:worker-emails_00: started\nworker-es-update:worker-es-update_00: started\nworker-nudges:worker-nudges_00: started\n\nWhat's next:\n Try Docker Debug for seamless, persistent debugging tools in any container or image → docker debug docker_lamp_1\n Learn more at https://docs.docker.com/go/debug-cli/\ndocker exec -it docker_lamp_1 php -v\nPHP 8.3.30 (cli) (built: Mar 16 2026 22:32:32) (NTS)\nCopyright (c) The PHP Group\nZend Engine v4.3.30, Copyright (c) Zend Technologies\n with Zend OPcache v8.3.30, Copyright (c), by Zend Technologies\n\nWhat's next:\n Try Docker Debug for seamless, persistent debugging tools in any container or image → docker debug docker_lamp_1\n Learn more at https://docs.docker.com/go/debug-cli/\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20676-delete-report-related-objects) $ git status\nOn branch JY-20676-delete-report-related-objects\nChanges not staged for commit:\n (use \"git add <file>...\" to update what will be committed)\n (use \"git restore <file>...\" to discard changes in working directory)\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tmodified: .env.local\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tmodified: app/Console/Commands/JiminnyDebugCommand.php\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tmodified: config/logging.php\n\nUntracked files:\n (use \"git add <file>...\" to include in what will be committed)\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\t.env.nikilocal\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\t.env.other\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tWEBHOOK_FILTERING_IMPLEMENTATION.md\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tapp/Console/Commands/Crm/Hubspot/SimulateWebhooksCommand.php\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tapp/Console/Commands/Reports/CreateMockAskJiminnyReportResultCommand.php\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tids.txt\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tpublic/favicon.ico\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\traw_sql_query.sql\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\ttests/Unit/Policies/CanAccessAiReportsTest.php\n\nno changes added to commit (use \"git add\" and/or \"git commit -a\")\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20676-delete-report-related-objects) $ git push -u origin JY-20676-delete-report-related-objects\nEnumerating objects: 45, done.\nCounting objects: 100% (45/45), done.\nDelta compression using up to 8 threads\nCompressing objects: 100% (24/24), done.\nWriting objects: 100% (24/24), 3.62 KiB | 3.62 MiB/s, done.\nTotal 24 (delta 19), reused 0 (delta 0), pack-reused 0\nremote: Resolving deltas: 100% (19/19), completed with 19 local objects.\nremote: \nremote: Create a pull request for 'JY-20676-delete-report-related-objects' on GitHub by visiting:\nremote: https://github.com/jiminny/app/pull/new/JY-20676-delete-report-related-objects\nremote: \nTo github.com:jiminny/app.git\n * [new branch] JY-20676-delete-report-related-objects -> JY-20676-delete-report-related-objects\nbranch 'JY-20676-delete-report-related-objects' set up to track 'origin/JY-20676-delete-report-related-objects'.\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20676-delete-report-related-objects) $ csfix\ndocker exec -it docker_lamp_1 ./vendor/bin/php-cs-fixer fix --config=.php-cs-fixer.dist.php -v --using-cache=no --diff \nPHP CS Fixer 3.87.1 Alexander by Fabien Potencier, Dariusz Ruminski and contributors.\nPHP runtime: 8.3.30\nRunning analysis on 7 cores with 10 files per process.\nParallel runner is an experimental feature and may be unstable, use it at your own risk. Feedback highly appreciated!\nLoaded config default from \".php-cs-fixer.dist.php\".\n 5690/5690 [▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓] 100%\n\n 1) app/Http/Controllers/API/V2/AskJiminnyReportsController.php (blank_line_before_statement)\n ---------- begin diff ----------\n--- /home/jiminny/app/Http/Controllers/API/V2/AskJiminnyReportsController.php\n+++ /home/jiminny/app/Http/Controllers/API/V2/AskJiminnyReportsController.php\n@@ -140,6 +140,7 @@\n if ($enabled && $report->isAskJiminnyReport() && ! $report->canExecute()) {\n $error = 'This report is missing a saved search or prompt. ' .\n 'Edit the report to complete the setup before enabling it.';\n+\n return new JsonResponse(\n ['error' => $error],\n Response::HTTP_UNPROCESSABLE_ENTITY\n\n ----------- end diff -----------\n\n\nFixed 1 of 5690 files in 71.757 seconds, 60.00 MB memory used\n\nWhat's next:\n Try Docker Debug for seamless, persistent debugging tools in any container or image → docker debug docker_lamp_1\n Learn more at https://docs.docker.com/go/debug-cli/\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20676-delete-report-related-objects) $ git pull\nremote: Enumerating objects: 158, done.\nremote: Counting objects: 100% (103/103), done.\nremote: Compressing objects: 100% (37/37), done.\nremote: Total 158 (delta 80), reused 74 (delta 66), pack-reused 55 (from 3)\nReceiving objects: 100% (158/158), 80.59 KiB | 982.00 KiB/s, done.\nResolving deltas: 100% (85/85), completed with 45 local objects.\nFrom github.com:jiminny/app\n 02a33811ee..c6ce5e2440 JY-20676-delete-report-related-objects -> origin/JY-20676-delete-report-related-objects\n 7ce96cb5fe..6c59f04358 JY-20808-low-priority-indexing-queue -> origin/JY-20808-low-priority-indexing-queue\n 3906a9238a..2b5e6ea62b JY-20835-mcp-enable-users-to-get-a-list-of-deals-and-their-details -> origin/JY-20835-mcp-enable-users-to-get-a-list-of-deals-and-their-details\n 5604af40cf..ea3519f0e2 master -> origin/master\n * [new branch] switch-eu-assembly -> origin/switch-eu-assembly\nUpdating 02a33811ee..c6ce5e2440\nFast-forward\n app/Component/ES/ElasticSearchDocumentPartialUpdater.php | 48 ---\n app/Component/ParticipantSpeech/Services/ParticipantAttributionService.php | 4 +-\n app/Component/Settings/AutoScoring/Services/UpdateAutoScoreService.php | 20 +-\n app/Component/Transcription/Service/StorageService.php | 8 +-\n front-end/package.json | 2 +-\n front-end/src/components/DealInsights/Modals/AskAnythingModal.vue | 23 ++\n front-end/src/components/shared/AskAnything/AskAnythingPromptFormItem.vue | 2 +\n front-end/src/components/shared/AskAnything/AskAnythingSettingsDrawer.vue | 23 +-\n front-end/src/components/shared/AskAnything/__mocks__/AskAnythingSettingsDrawer.mocks.js | 1 +\n front-end/src/components/shared/AskAnything/__tests__/AskAnythingSettingsDrawer.spec.js | 135 ++++---\n front-end/src/components/shared/AskAnything/__tests__/__snapshots__/AskAnythingSettingsDrawer.spec.js.html | 1235 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++\n front-end/src/components/shared/AskAnything/__tests__/__snapshots__/AskAnythingSettingsDrawer.spec.js.snap | 1382 ----------------------------------------------------------------\n front-end/src/components/shared/AskAnything/prompts.js | 1 +\n front-end/src/components/shared/AskAnything/useAskAnything.js | 1 +\n front-end/yarn.lock | 8 +-\n tests/Unit/Component/ES/ElasticSearchDocumentPartialUpdaterTest.php | 42 --\n tests/Unit/Component/Settings/AutoScoring/Services/UpdateAutoScoreServiceTest.php | 86 ++--\n tests/Unit/Component/Transcription/Service/StorageServiceTest.php | 29 +-\n 18 files changed, 1448 insertions(+), 1602 deletions(-)\n delete mode 100644 app/Component/ES/ElasticSearchDocumentPartialUpdater.php\n create mode 100644 front-end/src/components/shared/AskAnything/__tests__/__snapshots__/AskAnythingSettingsDrawer.spec.js.html\n delete mode 100644 front-end/src/components/shared/AskAnything/__tests__/__snapshots__/AskAnythingSettingsDrawer.spec.js.snap\n delete mode 100644 tests/Unit/Component/ES/ElasticSearchDocumentPartialUpdaterTest.php\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20676-delete-report-related-objects) $ csfix\ndocker exec -it docker_lamp_1 ./vendor/bin/php-cs-fixer fix --config=.php-cs-fixer.dist.php -v --using-cache=no --diff \nPHP CS Fixer 3.87.1 Alexander by Fabien Potencier, Dariusz Ruminski and contributors.\nPHP runtime: 8.3.30\nRunning analysis on 7 cores with 10 files per process.\nParallel runner is an experimental feature and may be unstable, use it at your own risk. Feedback highly appreciated!\nLoaded config default from \".php-cs-fixer.dist.php\".\n 5688/5688 [▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓] 100%\n\n\nFixed 0 of 5688 files in 79.904 seconds, 60.00 MB memory used\n\nWhat's next:\n Try Docker Debug for seamless, persistent debugging tools in any container or image → docker debug docker_lamp_1\n Learn more at https://docs.docker.com/go/debug-cli/\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20676-delete-report-related-objects) $","depth":4,"on_screen":true,"value":"Last login: Mon May 18 09:17:28 on ttys007\n\nPoetry could not find a pyproject.toml file in /Users/lukas/jiminny/app or its parents\n\nPoetry could not find a pyproject.toml file in /Users/lukas/jiminny/app or its parents\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (pipedrive-sdk-poc) $ co master\nerror: Your local changes to the following files would be overwritten by checkout:\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tPIPEDRIVE_V2_MIGRATION_TICKETS.md\nPlease commit your changes or stash them before you switch branches.\nAborting\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (pipedrive-sdk-poc) $ git pull\nremote: Enumerating objects: 1047, done.\nremote: Counting objects: 100% (832/832), done.\nremote: Compressing objects: 100% (298/298), done.\nremote: Total 1047 (delta 634), reused 596 (delta 534), pack-reused 215 (from 3)\nReceiving objects: 100% (1047/1047), 353.16 KiB | 1.56 MiB/s, done.\nResolving deltas: 100% (687/687), completed with 107 local objects.\nFrom github.com:jiminny/app\n 907c54896c..34656c53ed pipedrive-sdk-poc -> origin/pipedrive-sdk-poc\n 03325ec50f..4e7078fd8b JY-18091-upgrade-to-php-8-5 -> origin/JY-18091-upgrade-to-php-8-5\n e7d231e163..bc6a3fce6b JY-20725-handle-HS-search-rate-limit -> origin/JY-20725-handle-HS-search-rate-limit\n * [new branch] JY-20749-user-can-view-recorded-meetings -> origin/JY-20749-user-can-view-recorded-meetings\n 98ca281a04..e0351be069 JY-20808-low-priority-indexing-queue -> origin/JY-20808-low-priority-indexing-queue\n 569abb5149..3906a9238a JY-20835-mcp-enable-users-to-get-a-list-of-deals-and-their-details -> origin/JY-20835-mcp-enable-users-to-get-a-list-of-deals-and-their-details\n ad6c2a86e8..50eb6afba9 JY-20846-mcp-enable-the-ai-to-know-details-about-the-user -> origin/JY-20846-mcp-enable-the-ai-to-know-details-about-the-user\n * [new branch] JY-20893-chunk-control-per-update-target -> origin/JY-20893-chunk-control-per-update-target\n 31c62924a5..cb4ebf0c36 master -> origin/master\nUpdating 907c54896c..34656c53ed\nFast-forward\n PIPEDRIVE_V2_MIGRATION_TICKETS.md | 52 ++++++++++++++++++++++++++++++++++++++++++++++++++++\n 1 file changed, 52 insertions(+)\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (pipedrive-sdk-poc) $ co master\nM\u0000\u0000\u0000\u0000\u0000\u0000\t.env.local\nM\u0000\u0000\u0000\u0000\u0000\u0000\tconfig/logging.php\nSwitched to branch 'master'\nYour branch is behind 'origin/master' by 31 commits, and can be fast-forwarded.\n (use \"git pull\" to update your local branch)\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (master) $ git pull\nUpdating 31c62924a5..cb4ebf0c36\nFast-forward\n app/Component/ES/Processor/Traits/SelectEntityListTrait.php | 20 ------\n app/Services/Calendar/CalendarActivityService.php | 46 +++++++++++++\n app/Services/Calendar/Command/MapActivityData.php | 106 +++-------------------------\n docs/mcp/explorer/explorer.html | 104 +++++++++++++++++++++++++---\n docs/mcp/explorer/explorer.template.html | 102 ++++++++++++++++++++++++---\n docs/mcp/tools-list.json | 373 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++-------\n docs/mcp/tools.md | 117 +++++++++++++++++++++++--------\n tests/Unit/Component/ES/AsyncUpdateElasticSearchTest.php | 16 +----\n tests/Unit/Component/ES/Listeners/UpdateMultipleTargetsListenerTest.php | 10 ---\n tests/Unit/Component/ES/Listeners/UpdateSingleTargetListenerTest.php | 6 --\n tests/Unit/Component/ES/Processor/TargetEntitiesSelectorTest.php | 9 ---\n tests/Unit/Component/ES/Processor/Traits/SelectEntityListTraitTest.php | 15 ++--\n tests/Unit/Component/ES/UpdateProcessManagerTest.php | 2 -\n tests/Unit/Services/Calendar/CalendarActivityServiceTest.php | 150 ++++++++++++++++++++++++++++++++++++++--\n tests/Unit/Services/Calendar/Command/MapActivityDataTest.php | 78 ++-------------------\n 15 files changed, 832 insertions(+), 322 deletions(-)\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (master) $ co -b JY-20613-allow-owner-role-on-team-setup\nSwitched to a new branch 'JY-20613-allow-owner-role-on-team-setup'\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20613-allow-owner-role-on-team-setup) $ csfix\ndocker exec -it docker_lamp_1 ./vendor/bin/php-cs-fixer fix --config=.php-cs-fixer.dist.php -v --using-cache=no --diff \nPHP CS Fixer 3.87.1 Alexander by Fabien Potencier, Dariusz Ruminski and contributors.\nPHP runtime: 8.3.30\nRunning analysis on 7 cores with 10 files per process.\nParallel runner is an experimental feature and may be unstable, use it at your own risk. Feedback highly appreciated!\nLoaded config default from \".php-cs-fixer.dist.php\".\n 5682/5682 [▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓] 100%\n\n\nFixed 0 of 5682 files in 56.978 seconds, 67.00 MB memory used\n\nWhat's next:\n Try Docker Debug for seamless, persistent debugging tools in any container or image → docker debug docker_lamp_1\n Learn more at https://docs.docker.com/go/debug-cli/\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20613-allow-owner-role-on-team-setup) $ ;xd\ndocker exec -it docker_lamp_1 bash -c \"mv /usr/local/etc/php/conf.d/xdebug.ini ~/xdebug.ini\"\n\nWhat's next:\n Try Docker Debug for seamless, persistent debugging tools in any container or image → docker debug docker_lamp_1\n Learn more at https://docs.docker.com/go/debug-cli/\ndocker exec -it docker_lamp_1 supervisorctl restart all\njiminny-worker-processing-2:jiminny-worker-processing-2_00: stopped\njiminny-worker-processing-3:jiminny-worker-processing-3_00: stopped\njiminny-worker-processing-4:jiminny-worker-processing-4_00: stopped\njiminny-worker-processing-5:jiminny-worker-processing-5_00: stopped\njiminny-worker-processing-delayed:jiminny-worker-processing-delayed_00: stopped\nworker-analytics:worker-analytics_00: stopped\nworker-crm-update:worker-crm-update_00: stopped\nworker-download:worker-download_00: stopped\nworker-nudges:worker-nudges_00: stopped\nartisan-schedule:artisan-schedule_00: stopped\nworker-emails:worker-emails_00: stopped\nworker-calendar:worker-calendar_00: stopped\nworker:worker_00: stopped\nworker-conferences:worker-conferences_00: stopped\nworker-crm-sync:worker-crm-sync_00: stopped\njiminny-worker-processing-1:jiminny-worker-processing-1_00: stopped\nworker-audio:worker-audio_00: stopped\nworker-es-update:worker-es-update_00: stopped\nartisan-schedule:artisan-schedule_00: started\njiminny-worker-processing-1:jiminny-worker-processing-1_00: started\njiminny-worker-processing-2:jiminny-worker-processing-2_00: started\njiminny-worker-processing-3:jiminny-worker-processing-3_00: started\njiminny-worker-processing-4:jiminny-worker-processing-4_00: started\njiminny-worker-processing-5:jiminny-worker-processing-5_00: started\njiminny-worker-processing-delayed:jiminny-worker-processing-delayed_00: started\nworker:worker_00: started\nworker-analytics:worker-analytics_00: started\nworker-audio:worker-audio_00: started\nworker-calendar:worker-calendar_00: started\nworker-conferences:worker-conferences_00: started\nworker-crm-sync:worker-crm-sync_00: started\nworker-crm-update:worker-crm-update_00: started\nworker-download:worker-download_00: started\nworker-emails:worker-emails_00: started\nworker-es-update:worker-es-update_00: started\nworker-nudges:worker-nudges_00: started\n\nWhat's next:\n Try Docker Debug for seamless, persistent debugging tools in any container or image → docker debug docker_lamp_1\n Learn more at https://docs.docker.com/go/debug-cli/\ndocker exec -it docker_lamp_1 php -v\nPHP 8.3.30 (cli) (built: Mar 16 2026 22:32:32) (NTS)\nCopyright (c) The PHP Group\nZend Engine v4.3.30, Copyright (c) Zend Technologies\n with Zend OPcache v8.3.30, Copyright (c), by Zend Technologies\n\nWhat's next:\n Try Docker Debug for seamless, persistent debugging tools in any container or image → docker debug docker_lamp_1\n Learn more at https://docs.docker.com/go/debug-cli/\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20613-allow-owner-role-on-team-setup) $ csfix\ndocker exec -it docker_lamp_1 ./vendor/bin/php-cs-fixer fix --config=.php-cs-fixer.dist.php -v --using-cache=no --diff \nPHP CS Fixer 3.87.1 Alexander by Fabien Potencier, Dariusz Ruminski and contributors.\nPHP runtime: 8.3.30\nRunning analysis on 7 cores with 10 files per process.\nParallel runner is an experimental feature and may be unstable, use it at your own risk. Feedback highly appreciated!\nLoaded config default from \".php-cs-fixer.dist.php\".\n 5682/5682 [▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓] 100%\n\n\nFixed 0 of 5682 files in 49.910 seconds, 60.00 MB memory used\n\nWhat's next:\n Try Docker Debug for seamless, persistent debugging tools in any container or image → docker debug docker_lamp_1\n Learn more at https://docs.docker.com/go/debug-cli/\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20613-allow-owner-role-on-team-setup) $ git status\nOn branch JY-20613-allow-owner-role-on-team-setup\nYour branch is ahead of 'origin/JY-20613-allow-owner-role-on-team-setup' by 1 commit.\n (use \"git push\" to publish your local commits)\n\nChanges not staged for commit:\n (use \"git add <file>...\" to update what will be committed)\n (use \"git restore <file>...\" to discard changes in working directory)\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tmodified: .env.local\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tmodified: config/logging.php\n\nUntracked files:\n (use \"git add <file>...\" to include in what will be committed)\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\t.env.nikilocal\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\t.env.other\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tWEBHOOK_FILTERING_IMPLEMENTATION.md\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tapp/Console/Commands/Crm/Hubspot/SimulateWebhooksCommand.php\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tapp/Console/Commands/Reports/CreateMockAskJiminnyReportResultCommand.php\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tids.txt\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tpublic/favicon.ico\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\traw_sql_query.sql\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\ttests/Unit/Policies/CanAccessAiReportsTest.php\n\nno changes added to commit (use \"git add\" and/or \"git commit -a\")\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20613-allow-owner-role-on-team-setup) $ git pull\nremote: Enumerating objects: 248, done.\nremote: Counting objects: 100% (128/128), done.\nremote: Compressing objects: 100% (23/23), done.\nremote: Total 59 (delta 43), reused 44 (delta 33), pack-reused 0 (from 0)\nUnpacking objects: 100% (59/59), 10.48 KiB | 228.00 KiB/s, done.\nFrom github.com:jiminny/app\n b7df560451..190239dfd4 JY-20613-allow-owner-role-on-team-setup -> origin/JY-20613-allow-owner-role-on-team-setup\n e0351be069..d94a285ae7 JY-20808-low-priority-indexing-queue -> origin/JY-20808-low-priority-indexing-queue\n * [new branch] JY-20920-fix-participant-matcher -> origin/JY-20920-fix-participant-matcher\n cb4ebf0c36..90bca4e4b2 master -> origin/master\nMerge made by the 'ort' strategy.\n app/Component/ES/ChunkSize.php | 54 +++++++++++++++++++++++++++\n app/Component/ES/Processor/DTOs/SelectionList.php | 4 +-\n app/Component/ES/Processor/TargetEntitiesSelector.php | 19 ++++++----\n app/Http/Middleware/McpTierMiddleware.php | 27 +++-----------\n app/Mcp/Servers/JiminnyServer.php | 2 +\n app/Mcp/Tools/GetMeTool.php | 157 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++\n app/Models/Feature/FeatureEnum.php | 1 +\n database/migrations/2026_05_13_124153_create_mcp_feature_flag.php | 25 +++++++++++++\n front-end/src/components/Settings/Kiosk/modals/EditTeamModal/EditTeamModal.vue | 52 ++++++++++++++++++--------\n front-end/src/components/Settings/Kiosk/modals/EditTeamModal/__tests__/EditTeamModal.spec.js | 14 +++++++\n tests/Feature/Mcp/GetMeToolFeatureTest.php | 140 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++\n tests/Feature/Mcp/ListCallsToolFeatureTest.php | 2 +-\n tests/Feature/Mcp/McpTestHelpersTrait.php | 19 +++++++++-\n tests/Unit/Component/ES/ChunkSizeTest.php | 50 +++++++++++++++++++++++++\n tests/Unit/Component/ES/Processor/DTOs/SelectionListTest.php | 27 ++++++++++----\n tests/Unit/Component/ES/Processor/TargetEntitiesSelectorTest.php | 39 +++++++++++---------\n 16 files changed, 557 insertions(+), 75 deletions(-)\n create mode 100644 app/Component/ES/ChunkSize.php\n create mode 100644 app/Mcp/Tools/GetMeTool.php\n create mode 100644 database/migrations/2026_05_13_124153_create_mcp_feature_flag.php\n create mode 100644 tests/Feature/Mcp/GetMeToolFeatureTest.php\n create mode 100644 tests/Unit/Component/ES/ChunkSizeTest.php\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20613-allow-owner-role-on-team-setup) $ git push\nEnumerating objects: 40, done.\nCounting objects: 100% (34/34), done.\nDelta compression using up to 8 threads\nCompressing objects: 100% (18/18), done.\nWriting objects: 100% (18/18), 1.58 KiB | 1.58 MiB/s, done.\nTotal 18 (delta 15), reused 0 (delta 0), pack-reused 0\nremote: Resolving deltas: 100% (15/15), completed with 13 local objects.\nTo github.com:jiminny/app.git\n 190239dfd4..ec1b261264 JY-20613-allow-owner-role-on-team-setup -> JY-20613-allow-owner-role-on-team-setup\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20613-allow-owner-role-on-team-setup) $ gbr\n* JY-20613-allow-owner-role-on-team-setup\n pipedrive-sdk-poc\n master\n JY-20903-update_activity-stage-on-opportunity-change\n JY-20904-fix-update-es-on-activity-command\n JY-20891-improve-sms-text-relays\n JY-20725-handle-HS-search-rate-limit\n JY-20818-move-AJ-reports-to-separated-datadog-metric\n JY-20773-fix-automated-reports-user-pilot-tracking\n JY-20157-AJ-report-not-send-notification\n JY-20508-notify-before-AJ-report-expiration\n JY-20372-ai-reports-promotion-pages\n JY-20352-sync-opportunities-without-a-local-owner-user-id-is-null\n JY-20738-debug-AJ-tracking-UP\n a\n JY-18909-automated-reports-ask-jiminny\n JY-20692-fix-integration-app-token-auth-response-change\n JY-20553-debug-crm-sync-delays\n JY-20698-fix-SF-activity-types-on-new-playbook\n JY-20543-AJ-report-tracking\n JY-20384-handle-auto-sync-with-no-access-to-event-type\n JY-20458-ask-jiminny-user-definitions\n JY-19666-fix-import-contacts-account-association\n JY-19666-HS-import-contacts-and-accounts-batch-job\n JY-20458-Ask-Jiminny-Reports\n JY-20200-batch-update-CRM-objects-Salesforce\n JY-19666-HS-webhooks-add-contact-and-company\n JY-20348-trigger-setup-DI-layout-on-team-creation\n JY-20326-refactor-info-message-in-command\n JY-20317-fix-auto-log-delay-issue-on-all-channels-disabled\n JY-20312-remove-on-update-change-last-synced-at-crm-configurations\n JY-20306-SF-skip-auto-sync-for-task-based-playbook\n JY-20192-remove-deleted-team-from-saved-search-filters\n JY-20197-import-opportunity-batch-job\n JY-20293-enable-status-field-for-pipedrive-deals\n JY-20191-remove-commands-interactive-prompts\n JY-20118-change-default-sync-strategy\n JY-20183-add-cache-on-auto-log-delay\n JY-20197-add-import-opportunity-batch-job\n 20118-hs-opportunity-make-webhook-strategy-default\n JY-20118-make-default-hs-opportunity-sync-strategy-webhook-based\n JY-20196-handle-opportunity-without-note\n JY-20118-improve-opportunity-import\n JY-20189-handle-activity-search-on-deleted-groups\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20613-allow-owner-role-on-team-setup) $ co JY-20725-handle-HS-search-rate-limit\nM\u0000\u0000\u0000\u0000\u0000\u0000\t.env.local\nM\u0000\u0000\u0000\u0000\u0000\u0000\tconfig/logging.php\nSwitched to branch 'JY-20725-handle-HS-search-rate-limit'\nYour branch is behind 'origin/JY-20725-handle-HS-search-rate-limit' by 439 commits, and can be fast-forwarded.\n (use \"git pull\" to update your local branch)\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20725-handle-HS-search-rate-limit) $ git pull\nUpdating 0f3e438941..bc6a3fce6b\nFast-forward\n .gitignore | 3 +-\n .windsurfrules | 168 ++---\n CLAUDE.md | 1 +\n app/Component/ActivityAnalytics/Service/CalculateTalkTimeOffsetsFromTranscription.php | 24 +-\n app/Component/AiActivityType/Services/AiActivityTypeEligibilityChecker.php | 28 +-\n app/Component/AiAutomation/Actions/PrepareUpdateDtoAction.php | 32 +-\n app/Component/AiAutomation/Services/CrmFillingEligibilityChecker.php | 47 ++\n app/Component/AiAutomation/TestCrmAiPromptService.php | 14 +\n app/Component/AiCallScoring/Services/AiCallScoringEligibilityChecker.php | 9 +\n app/Component/ES/ElasticSearchDocumentPartialUpdater.php | 13 +-\n app/Component/ES/ElasticSearchWorkerManager.php | 86 ---\n app/Component/ES/Processor/Actions/LoadDocumentsAction.php | 80 +--\n app/Component/ES/Processor/EntityQueryBuilder.php | 12 +-\n app/Component/ES/Processor/TargetEntitiesSelector.php | 2 +-\n app/Component/ES/Processor/Traits/SkipActivityTrait.php | 25 -\n app/Component/ES/Repositories/EsResetActivityRepository.php | 11 +-\n app/Component/ES/Worker/ActivityWorker.php | 73 --\n app/Component/ES/Worker/EntityWorker.php | 44 --\n app/Component/ES/Worker/WorkerAmount.php | 60 --\n app/Component/ES/Worker/WorkerInterface.php | 15 -\n app/Component/ElasticSearch/Contract/Searchable.php | 4 +\n app/Component/Encoding/Job/AnalyzeTrackChannelsJob.php | 20 +-\n app/Component/Encoding/Service/GenerateSpeechFromSilenceService.php | 85 ++-\n app/Component/FFMpeg/Services/GetSpeechIntervalsService.php | 18 +-\n app/Component/LanguageDetection/Services/FindSpeechTimeService.php | 22 +-\n app/Component/Nudge/Job/ProcessOrganisationImmediateNudgesJob.php | 218 +++++-\n app/Component/ParagraphBreaker/Services/TranscriptionParagraphsService.php | 4 +\n app/Component/ParticipantSpeech/Services/ParticipantSpeechesCreator.php | 33 +\n app/Component/ParticipantSpeech/Services/ParticipantSpeechesDeleter.php | 15 +\n app/Component/ParticipantSpeech/Services/ParticipantSpeechesProvider.php | 51 +-\n app/Component/ParticipantSpeech/Services/ParticipantSpeechesUploader.php | 36 +\n app/Component/ProphetAi/Exceptions/InsufficientTranscriptException.php | 11 +\n app/Component/Transcription/DTO/Http/Transcription/AssemblyAI/AssemblyAI/NoAssemblyIdException.php | 11 +\n app/Component/Transcription/DTO/Http/Transcription/AssemblyAI/AssemblyAI/SuccessfulResponse.php | 6 +\n app/Component/Transcription/DTO/Http/Transcription/TranscriptionIsNotCorrectFormatException.php | 11 +\n app/Component/Transcription/Diarization/Services/GetNormalizedParticipantSpeechesService.php | 23 +-\n app/Component/Transcription/Diarization/Source/MeetingBotSource.php | 16 +-\n app/Component/Transcription/TranscriptionProcessor/TranscriptionProcessor.php | 3 +\n app/Console/Commands/Activities/ActivityHardDeleteCommand.php | 4 +-\n app/Console/Commands/Activities/Copy.php | 2 +\n app/Console/Commands/Activities/SetupIntegration/TwilioSetS3RecordingCredentialsCommand.php | 119 ++++\n app/Console/Commands/Activities/UpdateActivityElasticSearchDocumentCommand.php | 10 +-\n app/Console/Commands/Crm/BackfillOpportunityUserFromAccountCommand.php | 126 ++++\n app/Console/Commands/Elasticsearch/AsyncUpdateEsActivities.php | 19 -\n app/Console/Commands/Elasticsearch/AsyncUpdateEsEntities.php | 50 +-\n app/Console/Commands/Elasticsearch/ResetAsyncElasticSearchCommand.php | 30 +-\n app/Console/Commands/GeckoExport/GeckoExportParticipantSpeechesCommand.php | 14 +-\n app/Console/Commands/IssueMcpTokenCommand.php | 84 +++\n app/Console/Commands/JiminnyDebugCommand.php | 7 +-\n app/Console/Commands/Tracks/CleanupActivityTracksCommand.php | 2 +-\n app/Console/Kernel.php | 6 +-\n app/Contracts/Services/Calendar/CalendarTrait.php | 80 ++-\n app/Events/AutomatedReports/AutomatedReportGenerated.php | 3 +\n app/Http/Controllers/API/AiCallScoring/AiScorecardController.php | 7 +-\n app/Http/Controllers/API/TeamAiAutomationController.php | 8 +\n app/Http/Controllers/CustomerApi/CustomerApiController.php | 4 +-\n app/Http/Controllers/Kiosk/ActivityController.php | 58 +-\n app/Http/Controllers/Settings/PlaybookController.php | 15 +-\n app/Http/Kernel.php | 23 +\n app/Http/Middleware/McpAuditMiddleware.php | 156 ++++\n app/Http/Middleware/McpTierMiddleware.php | 54 ++\n app/Http/Requests/API/V2/ZapierUploadActivityRequest.php | 28 +-\n app/Jobs/Activity/Import/ImportTwilioVideoSpeechesJob.php | 25 +-\n app/Jobs/Activity/Import/IsActivityReadyForProcessingJob.php | 10 +-\n app/Jobs/Calendar/SetupCalendarSync.php | 21 +-\n app/Jobs/ImportRemoteTrackJob.php | 96 ++-\n app/Jobs/Mailbox/EmailTextRelay.php | 15 +-\n app/Mcp/Contracts/McpCallRepositoryInterface.php | 30 +\n app/Mcp/DTO/ListCallsFilters.php | 29 +\n app/Mcp/Errors/McpError.php | 123 ++++\n app/Mcp/Repositories/McpActivityHydrator.php | 145 ++++\n app/Mcp/Repositories/McpCallRepository.php | 84 +++\n app/Mcp/Repositories/McpElasticCallRepository.php | 171 +++++\n app/Mcp/Servers/JiminnyServer.php | 38 +\n app/Mcp/Tools/ListCallsTool.php | 205 ++++++\n app/Models/Activity.php | 10 +-\n app/Models/Activity/Transcription.php | 17 +-\n app/Models/ElasticSearch/OpportunityElasticSearchTrait.php | 5 +\n app/Models/Participant.php | 1 +\n app/Providers/AppServiceProvider.php | 22 +\n app/Repositories/Crm/ContactRepository.php | 69 +-\n app/Repositories/ParticipantSpeechRepository.php | 13 +-\n app/Services/Activity/ParticipantsService.php | 19 +-\n app/Services/Activity/Twilio/S3RecordingCredentialsService.php | 82 +++\n app/Services/ActivityService.php | 21 +-\n app/Services/Calendar/CalendarActivityService.php | 46 ++\n app/Services/Calendar/Command/ImportParticipants.php | 1 +\n app/Services/Calendar/Command/MapActivityData.php | 106 +--\n app/Services/Calendar/GoogleCalendarService.php | 12 +-\n app/Services/Crm/Close/Processor/OpportunityProcessor.php | 2 +-\n app/Services/Crm/Close/Service.php | 22 +-\n app/Services/Crm/Copper/Service.php | 12 +-\n app/Services/Crm/Hubspot/Service.php | 154 +++-\n app/Services/Crm/Hubspot/ServiceTraits/OpportunitySyncTrait.php | 88 ++-\n app/Services/Crm/IntegrationApp/ServiceTraits/SyncCrmEntitiesTrait.php | 22 +-\n app/Services/Crm/Pipedrive/Service.php | 17 +-\n app/Services/Crm/Salesforce/Service.php | 42 +-\n app/Services/Mail/Office/EmailApiClient.php | 129 +---\n app/Services/RecallAI/Commands/ScheduleBotCommand.php | 39 +-\n app/Services/RecallAI/RecallAIService.php | 22 +-\n composer.json | 3 +-\n composer.lock | 87 ++-\n config/mcp.php | 23 +\n database/migrations/2026_04_30_120000_create_mcp_audit_log_table.php | 36 +\n docs/mcp/explorer/explorer.html | 697 ++++++++++++++++++\n docs/mcp/explorer/explorer.template.html | 697 ++++++++++++++++++\n docs/mcp/explorer/generate.js | 215 ++++++\n docs/mcp/explorer/tool-explorer-meta.json | 11 +\n docs/mcp/tools-list.json | 2536 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++\n docs/mcp/tools.md | 621 ++++++++++++++++\n front-end/package.json | 4 +-\n front-end/src/components/Settings/OrgSettings/AiAutomation/CrmFilling/TemplateFieldForm.vue | 28 +-\n front-end/src/components/Settings/OrgSettings/Playbooks/AddEditPlaybook.vue | 10 +\n front-end/src/components/playback/comments/ActivityComment.less | 10 +-\n front-end/src/components/shared/PromptTester/PromptTester.vue | 12 +-\n front-end/src/components/shared/__tests__/PromptTester.spec.js | 35 +\n front-end/src/components/shared/modals/EntityPickerModal/__tests__/useEntitiesCache.spec.ts | 37 +\n front-end/src/components/shared/modals/EntityPickerModal/useEntitiesCache.ts | 9 +\n front-end/yarn.lock | 16 +-\n phpstan-baseline.neon | 50 --\n routes/api.php | 11 +\n sonar-project.properties | 91 ++-\n tests/Feature/Component/Nudge/ProcessOrganisationImmediateNudgesJobTest.php | 534 ++++++++++++++\n tests/Feature/Jobs/ImportRemoteTrackJobTest.php | 283 +++++++-\n tests/Feature/Mcp/IssueMcpTokenCommandTest.php | 53 ++\n tests/Feature/Mcp/ListCallsToolElasticFeatureTest.php | 155 ++++\n tests/Feature/Mcp/ListCallsToolFeatureTest.php | 352 ++++++++++\n tests/Feature/Mcp/McpTestHelpersTrait.php | 77 ++\n tests/Feature/Services/Team/TeamDeleteHandlers/Retention/RetentionRepositoryHandlerTest.php | 1 +\n tests/Stubs/SentryStub.php | 18 +\n tests/Unit/Component/ActivityAnalytics/Service/CalculateTalkTimeOffsetFromTranscriptionTest.php | 28 +-\n tests/Unit/Component/AiActivityType/Services/AiActivityTypeEligibilityCheckerTest.php | 103 ++-\n tests/Unit/Component/AiAutomation/Actions/PrepareUpdateDtoActionTest.php | 91 +++\n tests/Unit/Component/AiAutomation/Services/CrmFillingEligibilityCheckerTest.php | 124 ++++\n tests/Unit/Component/AiAutomation/TestCrmAiPromptServiceTest.php | 67 +-\n tests/Unit/Component/AiCallScoring/Services/AiCallScoringEligibilityCheckerTest.php | 55 ++\n tests/Unit/Component/ES/ElasticSearchWorkerManagerTest.php | 135 ----\n tests/Unit/Component/ES/Processor/Actions/LoadDocumentsActionTest.php | 220 ++++++\n tests/Unit/Component/ES/Processor/EntityQueryBuilderTest.php | 21 +-\n tests/Unit/Component/ES/Processor/Traits/SkipActivityTraitTest.php | 51 --\n tests/Unit/Component/ES/Worker/ActivityWorkerTest.php | 174 -----\n tests/Unit/Component/ES/Worker/EntityWorkerTest.php | 97 ---\n tests/Unit/Component/ES/Worker/WorkerAmountTest.php | 116 ---\n tests/Unit/Component/Encoding/Job/AnalyzeTrackChannelsJobTest.php | 52 +-\n tests/Unit/Component/Encoding/Service/GenerateSpeechFromSilenceServiceTest.php | 171 ++---\n tests/Unit/Component/FFMpeg/Services/GetSpeechIntervalsTest.php | 36 +-\n tests/Unit/Component/LanguageDetection/Services/FindSpeechTimeServiceTest.php | 20 +-\n tests/Unit/Component/MobileSettings/MobileSettingsControllerTest.php | 5 +-\n tests/Unit/Component/ParticipantSpeech/Services/ParticipantSpeechesCreatorTest.php | 75 ++\n tests/Unit/Component/ParticipantSpeech/Services/ParticipantSpeechesDeleterTest.php | 63 ++\n tests/Unit/Component/ParticipantSpeech/Services/ParticipantSpeechesProviderTest.php | 134 ++++\n tests/Unit/Component/ParticipantSpeech/Services/ParticipantSpeechesUploaderTest.php | 57 ++\n tests/Unit/Component/Transcription/Diarization/Services/GetNormalizedParticipantSpeechesServiceTest.php | 51 +-\n tests/Unit/Component/Transcription/Diarization/Source/MeetingBotSourceTest.php | 29 +-\n tests/Unit/Contracts/Services/Calendar/CalendarTraitTest.php | 58 +-\n tests/Unit/Http/Controllers/Kiosk/ActivityControllerTest.php | 159 +++++\n tests/Unit/Jobs/Activity/Import/ImportTwilioVideoSpeechesJobTest.php | 22 +-\n tests/Unit/Jobs/Activity/Import/IsActivityReadyForProcessingJobTest.php | 26 +-\n tests/Unit/Jobs/Calendar/SetupCalendarSyncTest.php | 25 -\n tests/Unit/Services/Activity/ParticipantsServiceTest.php | 12 +-\n tests/Unit/Services/Activity/Twilio/S3RecordingCredentialsServiceTest.php | 180 +++++\n tests/Unit/Services/ActivityServiceTest.php | 132 ++++\n tests/Unit/Services/Calendar/CalendarActivityServiceTest.php | 150 +++-\n tests/Unit/Services/Calendar/Command/ImportParticipantsTest.php | 6 +-\n tests/Unit/Services/Calendar/Command/MapActivityDataTest.php | 78 +-\n tests/Unit/Services/Calendar/GoogleCalendarServiceTest.php | 116 +++\n tests/Unit/Services/Crm/Close/ServiceTest.php | 165 +++++\n tests/Unit/Services/Crm/Hubspot/ServiceTest.php | 272 ++++++-\n tests/Unit/Services/Crm/Hubspot/ServiceTraits/OpportunitySyncTest.php | 25 +-\n tests/Unit/Services/Crm/Hubspot/ServiceTraits/OpportunitySyncTraitMatchActivitiesTest.php | 3 +-\n tests/Unit/Services/Crm/IntegrationApp/ServiceTraits/SyncCrmEntitiesTraitOpportunitiesTest.php | 40 ++\n tests/Unit/Services/Crm/Pipedrive/ImportOpportunityMatchActivitiesTest.php | 2 +\n tests/Unit/Services/Crm/Salesforce/ServiceTest.php | 139 ++++\n tests/Unit/Services/Mail/Office/EmailApiClientTest.php | 195 ++---\n tests/Unit/Services/RecallAI/RecallAIServiceTest.php | 24 +-\n 175 files changed, 12562 insertions(+), 2162 deletions(-)\n create mode 120000 CLAUDE.md\n create mode 100644 app/Component/AiAutomation/Services/CrmFillingEligibilityChecker.php\n delete mode 100644 app/Component/ES/ElasticSearchWorkerManager.php\n delete mode 100644 app/Component/ES/Processor/Traits/SkipActivityTrait.php\n delete mode 100644 app/Component/ES/Worker/ActivityWorker.php\n delete mode 100644 app/Component/ES/Worker/EntityWorker.php\n delete mode 100644 app/Component/ES/Worker/WorkerAmount.php\n delete mode 100644 app/Component/ES/Worker/WorkerInterface.php\n create mode 100644 app/Component/ProphetAi/Exceptions/InsufficientTranscriptException.php\n create mode 100644 app/Component/Transcription/DTO/Http/Transcription/AssemblyAI/AssemblyAI/NoAssemblyIdException.php\n create mode 100644 app/Component/Transcription/DTO/Http/Transcription/TranscriptionIsNotCorrectFormatException.php\n create mode 100644 app/Console/Commands/Activities/SetupIntegration/TwilioSetS3RecordingCredentialsCommand.php\n create mode 100644 app/Console/Commands/Crm/BackfillOpportunityUserFromAccountCommand.php\n delete mode 100644 app/Console/Commands/Elasticsearch/AsyncUpdateEsActivities.php\n create mode 100644 app/Console/Commands/IssueMcpTokenCommand.php\n create mode 100644 app/Http/Middleware/McpAuditMiddleware.php\n create mode 100644 app/Http/Middleware/McpTierMiddleware.php\n create mode 100644 app/Mcp/Contracts/McpCallRepositoryInterface.php\n create mode 100644 app/Mcp/DTO/ListCallsFilters.php\n create mode 100644 app/Mcp/Errors/McpError.php\n create mode 100644 app/Mcp/Repositories/McpActivityHydrator.php\n create mode 100644 app/Mcp/Repositories/McpCallRepository.php\n create mode 100644 app/Mcp/Repositories/McpElasticCallRepository.php\n create mode 100644 app/Mcp/Servers/JiminnyServer.php\n create mode 100644 app/Mcp/Tools/ListCallsTool.php\n create mode 100644 app/Services/Activity/Twilio/S3RecordingCredentialsService.php\n create mode 100644 config/mcp.php\n create mode 100644 database/migrations/2026_04_30_120000_create_mcp_audit_log_table.php\n create mode 100644 docs/mcp/explorer/explorer.html\n create mode 100644 docs/mcp/explorer/explorer.template.html\n create mode 100644 docs/mcp/explorer/generate.js\n create mode 100644 docs/mcp/explorer/tool-explorer-meta.json\n create mode 100644 docs/mcp/tools-list.json\n create mode 100644 docs/mcp/tools.md\n create mode 100644 front-end/src/components/shared/modals/EntityPickerModal/__tests__/useEntitiesCache.spec.ts\n create mode 100644 tests/Feature/Component/Nudge/ProcessOrganisationImmediateNudgesJobTest.php\n create mode 100644 tests/Feature/Mcp/IssueMcpTokenCommandTest.php\n create mode 100644 tests/Feature/Mcp/ListCallsToolElasticFeatureTest.php\n create mode 100644 tests/Feature/Mcp/ListCallsToolFeatureTest.php\n create mode 100644 tests/Feature/Mcp/McpTestHelpersTrait.php\n create mode 100644 tests/Stubs/SentryStub.php\n create mode 100644 tests/Unit/Component/AiAutomation/Services/CrmFillingEligibilityCheckerTest.php\n delete mode 100644 tests/Unit/Component/ES/ElasticSearchWorkerManagerTest.php\n create mode 100644 tests/Unit/Component/ES/Processor/Actions/LoadDocumentsActionTest.php\n delete mode 100644 tests/Unit/Component/ES/Processor/Traits/SkipActivityTraitTest.php\n delete mode 100644 tests/Unit/Component/ES/Worker/ActivityWorkerTest.php\n delete mode 100644 tests/Unit/Component/ES/Worker/EntityWorkerTest.php\n delete mode 100644 tests/Unit/Component/ES/Worker/WorkerAmountTest.php\n create mode 100644 tests/Unit/Component/ParticipantSpeech/Services/ParticipantSpeechesCreatorTest.php\n create mode 100644 tests/Unit/Http/Controllers/Kiosk/ActivityControllerTest.php\n create mode 100644 tests/Unit/Services/Activity/Twilio/S3RecordingCredentialsServiceTest.php\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20725-handle-HS-search-rate-limit) $ git status\nOn branch master\nYour branch is behind 'origin/master' by 114 commits, and can be fast-forwarded.\n (use \"git pull\" to update your local branch)\n\nChanges not staged for commit:\n (use \"git add <file>...\" to update what will be committed)\n (use \"git restore <file>...\" to discard changes in working directory)\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tmodified: .env.local\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tmodified: app/Component/SCIM/Constants.php\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tmodified: app/Component/SCIM/ScimProvisioning.php\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tmodified: app/Component/Twilio/Conference/ConferenceManager/SoftPhoneManager.php\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tmodified: app/Console/Commands/JiminnyDebugCommand.php\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tmodified: app/DTO/SCIM/AAD/Request/CoreUserRequest.php\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tmodified: app/DTO/SCIM/AAD/Response/CoreUser.php\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tmodified: app/Services/Telephony/TextMessagingService.php\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tmodified: config/logging.php\n\nUntracked files:\n (use \"git add <file>...\" to include in what will be committed)\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\t.env.nikilocal\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\t.env.other\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tWEBHOOK_FILTERING_IMPLEMENTATION.md\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tapp/Component/SCIM/Mutators/Attributes/User/RoleAttr.php\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tapp/Console/Commands/Crm/Hubspot/SimulateWebhooksCommand.php\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tapp/Console/Commands/Reports/CreateMockAskJiminnyReportResultCommand.php\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tapp/Rules/ListenerRoleCannotHaveAdminOrManagerPermissionRule.php\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tids.txt\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tpublic/favicon.ico\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\traw_sql_query.sql\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\ttests/Unit/Component/SCIM/Mutators/Attributes/User/RoleAttrTest.php\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\ttests/Unit/Policies/CanAccessAiReportsTest.php\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\ttests/Unit/Rules/ListenerRoleCannotHaveAdminOrManagerPermissionRuleTest.php\n\nno changes added to commit (use \"git add\" and/or \"git commit -a\")\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (master) $ git pull\nremote: Enumerating objects: 306, done.\nremote: Counting objects: 100% (299/299), done.\nremote: Compressing objects: 100% (183/183), done.\nremote: Total 306 (delta 213), reused 171 (delta 116), pack-reused 7 (from 1)\nReceiving objects: 100% (306/306), 80.12 KiB | 1000.00 KiB/s, done.\nResolving deltas: 100% (213/213), completed with 53 local objects.\nFrom github.com:jiminny/app\n 90bca4e4b2..5604af40cf master -> origin/master\n 4e7078fd8b..0b8343d179 JY-18091-upgrade-to-php-8-5 -> origin/JY-18091-upgrade-to-php-8-5\n 098eeaa087..d5a447e492 JY-20613-allow-owner-role-on-team-setup -> origin/JY-20613-allow-owner-role-on-team-setup\n c3a76ace91..af65249d0f JY-20749-user-can-view-recorded-meetings -> origin/JY-20749-user-can-view-recorded-meetings\n d94a285ae7..7ce96cb5fe JY-20808-low-priority-indexing-queue -> origin/JY-20808-low-priority-indexing-queue\n * [new branch] JY-20842-remove-partial-updater -> origin/JY-20842-remove-partial-updater\n * [new branch] JY-20920-fix-participant-flip -> origin/JY-20920-fix-participant-flip\n * [new branch] secfix/npm-20260519 -> origin/secfix/npm-20260519\nUpdating cb4ebf0c36..5604af40cf\nFast-forward\n app/Component/ES/ChunkSize.php | 54 +++++++++++++++++++\n app/Component/ES/Processor/DTOs/SelectionList.php | 4 +-\n app/Component/ES/Processor/TargetEntitiesSelector.php | 19 ++++---\n app/Component/MeetingBot/Service/ParticipantMatcher.php | 46 ++++++++++++----\n app/Exceptions/RateLimitException.php | 19 ++++++-\n app/Http/Middleware/McpTierMiddleware.php | 27 ++--------\n app/Jobs/Crm/MatchActivityCrmData.php | 47 ++++++++++++----\n app/Jobs/Middleware/HandleHubspotRateLimit.php | 42 +++++++++++++++\n app/Mcp/Servers/JiminnyServer.php | 2 +\n app/Mcp/Tools/GetMeTool.php | 157 +++++++++++++++++++++++++++++++++++++++++++++++++++++\n app/Models/Feature/FeatureEnum.php | 1 +\n app/Services/Activity/HubSpot/ProviderResolver.php | 4 +-\n app/Services/Activity/HubSpot/ProviderResolverInterface.php | 2 +-\n app/Services/Activity/HubSpot/Providers/Provider.php | 2 +-\n app/Services/Activity/HubSpot/Providers/ProviderKixie.php | 2 +-\n app/Services/Activity/HubSpot/Providers/ProviderOrum.php | 2 +-\n app/Services/Activity/HubSpot/Providers/ProviderTwilio.php | 2 +-\n app/Services/Activity/HubSpot/Providers/ProviderTwilioFlex.php | 5 +-\n app/Services/Activity/HubSpot/Service.php | 97 +++++++++++++++++++++++++++------\n app/Services/Crm/Hubspot/Client.php | 132 +++++++++++++++++++++++++++++++++++++++++++++\n app/Services/Crm/Hubspot/HubspotClientInterface.php | 15 ++++++\n app/Services/Crm/Hubspot/Pagination/HubspotPaginationService.php | 21 ++++----\n app/Services/Crm/Hubspot/Pagination/PaginationState.php | 2 +-\n database/migrations/2026_05_13_124153_create_mcp_feature_flag.php | 25 +++++++++\n tests/Feature/Mcp/GetMeToolFeatureTest.php | 140 +++++++++++++++++++++++++++++++++++++++++++++++\n tests/Feature/Mcp/ListCallsToolFeatureTest.php | 2 +-\n tests/Feature/Mcp/McpTestHelpersTrait.php | 19 ++++++-\n tests/Unit/Component/ES/ChunkSizeTest.php | 50 +++++++++++++++++\n tests/Unit/Component/ES/Processor/DTOs/SelectionListTest.php | 27 +++++++---\n tests/Unit/Component/ES/Processor/TargetEntitiesSelectorTest.php | 39 ++++++++------\n tests/Unit/Component/MeetingBot/Service/ParticipantMatcherTest.php | 68 ++++++++++++++++++++++-\n tests/Unit/Exceptions/RateLimitExceptionTest.php | 56 +++++++++++++++++++\n tests/Unit/Jobs/Crm/MatchActivityCrmDataTest.php | 8 +--\n tests/Unit/Jobs/Middleware/HandleHubspotRateLimitTest.php | 151 +++++++++++++++++++++++++++++++++++++++++++++++++++\n tests/Unit/Services/Activity/HubSpot/ServiceTest.php | 109 +++++++++++++++++++++++++++++++++++++\n tests/Unit/Services/Crm/Hubspot/ClientTest.php | 250 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++\n tests/Unit/Services/Crm/Hubspot/Pagination/HubspotPaginationServiceTest.php | 283 +++++++++++++++++++++---------------------------------------------------------------------------\n 37 files changed, 1587 insertions(+), 344 deletions(-)\n create mode 100644 app/Component/ES/ChunkSize.php\n create mode 100644 app/Jobs/Middleware/HandleHubspotRateLimit.php\n create mode 100644 app/Mcp/Tools/GetMeTool.php\n create mode 100644 database/migrations/2026_05_13_124153_create_mcp_feature_flag.php\n create mode 100644 tests/Feature/Mcp/GetMeToolFeatureTest.php\n create mode 100644 tests/Unit/Component/ES/ChunkSizeTest.php\n create mode 100644 tests/Unit/Exceptions/RateLimitExceptionTest.php\n create mode 100644 tests/Unit/Jobs/Middleware/HandleHubspotRateLimitTest.php\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (master) $ git pull\nAlready up to date.\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (master) $ co -b JY-20676-delete-report-related-objects\nSwitched to a new branch 'JY-20676-delete-report-related-objects'\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20676-delete-report-related-objects) $ csfix\ndocker exec -it docker_lamp_1 ./vendor/bin/php-cs-fixer fix --config=.php-cs-fixer.dist.php -v --using-cache=no --diff \nPHP CS Fixer 3.87.1 Alexander by Fabien Potencier, Dariusz Ruminski and contributors.\nPHP runtime: 8.3.30\nRunning analysis on 7 cores with 10 files per process.\nParallel runner is an experimental feature and may be unstable, use it at your own risk. Feedback highly appreciated!\nLoaded config default from \".php-cs-fixer.dist.php\".\n 5690/5690 [▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓] 100%\n\n 1) app/Console/Commands/JiminnyDebugCommand.php (statement_indentation, blank_line_before_statement)\n ---------- begin diff ----------\n--- /home/jiminny/app/Console/Commands/JiminnyDebugCommand.php\n+++ /home/jiminny/app/Console/Commands/JiminnyDebugCommand.php\n@@ -23,6 +23,7 @@\n \n if ($action === 'redis-set') {\n $this->testRedisSet();\n+\n return;\n }\n \n@@ -45,7 +46,7 @@\n $ttl = 60;\n \n try {\n-// $result = Redis::set($testKey, $testValue, 'EX', $ttl, 'NX');\n+ // $result = Redis::set($testKey, $testValue, 'EX', $ttl, 'NX');\n $result = Redis::set($testKey, $testValue, ['nx', 'ex' => $ttl]);\n \n if ($result) {\n\n ----------- end diff -----------\n\n\nFixed 1 of 5690 files in 50.673 seconds, 67.00 MB memory used\n\nWhat's next:\n Try Docker Debug for seamless, persistent debugging tools in any container or image → docker debug docker_lamp_1\n Learn more at https://docs.docker.com/go/debug-cli/\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20676-delete-report-related-objects) $ ;xd\ndocker exec -it docker_lamp_1 bash -c \"mv /usr/local/etc/php/conf.d/xdebug.ini ~/xdebug.ini\"\n\nWhat's next:\n Try Docker Debug for seamless, persistent debugging tools in any container or image → docker debug docker_lamp_1\n Learn more at https://docs.docker.com/go/debug-cli/\ndocker exec -it docker_lamp_1 supervisorctl restart all\njiminny-worker-processing-2:jiminny-worker-processing-2_00: stopped\njiminny-worker-processing-3:jiminny-worker-processing-3_00: stopped\njiminny-worker-processing-4:jiminny-worker-processing-4_00: stopped\njiminny-worker-processing-5:jiminny-worker-processing-5_00: stopped\njiminny-worker-processing-delayed:jiminny-worker-processing-delayed_00: stopped\nworker-analytics:worker-analytics_00: stopped\nworker-crm-update:worker-crm-update_00: stopped\nworker-download:worker-download_00: stopped\nworker-nudges:worker-nudges_00: stopped\nworker-calendar:worker-calendar_00: stopped\nworker-audio:worker-audio_00: stopped\njiminny-worker-processing-1:jiminny-worker-processing-1_00: stopped\nworker:worker_00: stopped\nworker-conferences:worker-conferences_00: stopped\nworker-crm-sync:worker-crm-sync_00: stopped\nworker-emails:worker-emails_00: stopped\nworker-es-update:worker-es-update_00: stopped\nartisan-schedule:artisan-schedule_00: stopped\nartisan-schedule:artisan-schedule_00: started\njiminny-worker-processing-1:jiminny-worker-processing-1_00: started\njiminny-worker-processing-2:jiminny-worker-processing-2_00: started\njiminny-worker-processing-3:jiminny-worker-processing-3_00: started\njiminny-worker-processing-4:jiminny-worker-processing-4_00: started\njiminny-worker-processing-5:jiminny-worker-processing-5_00: started\njiminny-worker-processing-delayed:jiminny-worker-processing-delayed_00: started\nworker:worker_00: started\nworker-analytics:worker-analytics_00: started\nworker-audio:worker-audio_00: started\nworker-calendar:worker-calendar_00: started\nworker-conferences:worker-conferences_00: started\nworker-crm-sync:worker-crm-sync_00: started\nworker-crm-update:worker-crm-update_00: started\nworker-download:worker-download_00: started\nworker-emails:worker-emails_00: started\nworker-es-update:worker-es-update_00: started\nworker-nudges:worker-nudges_00: started\n\nWhat's next:\n Try Docker Debug for seamless, persistent debugging tools in any container or image → docker debug docker_lamp_1\n Learn more at https://docs.docker.com/go/debug-cli/\ndocker exec -it docker_lamp_1 php -v\nPHP 8.3.30 (cli) (built: Mar 16 2026 22:32:32) (NTS)\nCopyright (c) The PHP Group\nZend Engine v4.3.30, Copyright (c) Zend Technologies\n with Zend OPcache v8.3.30, Copyright (c), by Zend Technologies\n\nWhat's next:\n Try Docker Debug for seamless, persistent debugging tools in any container or image → docker debug docker_lamp_1\n Learn more at https://docs.docker.com/go/debug-cli/\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20676-delete-report-related-objects) $ git status\nOn branch JY-20676-delete-report-related-objects\nChanges not staged for commit:\n (use \"git add <file>...\" to update what will be committed)\n (use \"git restore <file>...\" to discard changes in working directory)\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tmodified: .env.local\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tmodified: app/Console/Commands/JiminnyDebugCommand.php\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tmodified: config/logging.php\n\nUntracked files:\n (use \"git add <file>...\" to include in what will be committed)\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\t.env.nikilocal\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\t.env.other\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tWEBHOOK_FILTERING_IMPLEMENTATION.md\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tapp/Console/Commands/Crm/Hubspot/SimulateWebhooksCommand.php\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tapp/Console/Commands/Reports/CreateMockAskJiminnyReportResultCommand.php\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tids.txt\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tpublic/favicon.ico\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\traw_sql_query.sql\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\ttests/Unit/Policies/CanAccessAiReportsTest.php\n\nno changes added to commit (use \"git add\" and/or \"git commit -a\")\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20676-delete-report-related-objects) $ git push -u origin JY-20676-delete-report-related-objects\nEnumerating objects: 45, done.\nCounting objects: 100% (45/45), done.\nDelta compression using up to 8 threads\nCompressing objects: 100% (24/24), done.\nWriting objects: 100% (24/24), 3.62 KiB | 3.62 MiB/s, done.\nTotal 24 (delta 19), reused 0 (delta 0), pack-reused 0\nremote: Resolving deltas: 100% (19/19), completed with 19 local objects.\nremote: \nremote: Create a pull request for 'JY-20676-delete-report-related-objects' on GitHub by visiting:\nremote: https://github.com/jiminny/app/pull/new/JY-20676-delete-report-related-objects\nremote: \nTo github.com:jiminny/app.git\n * [new branch] JY-20676-delete-report-related-objects -> JY-20676-delete-report-related-objects\nbranch 'JY-20676-delete-report-related-objects' set up to track 'origin/JY-20676-delete-report-related-objects'.\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20676-delete-report-related-objects) $ csfix\ndocker exec -it docker_lamp_1 ./vendor/bin/php-cs-fixer fix --config=.php-cs-fixer.dist.php -v --using-cache=no --diff \nPHP CS Fixer 3.87.1 Alexander by Fabien Potencier, Dariusz Ruminski and contributors.\nPHP runtime: 8.3.30\nRunning analysis on 7 cores with 10 files per process.\nParallel runner is an experimental feature and may be unstable, use it at your own risk. Feedback highly appreciated!\nLoaded config default from \".php-cs-fixer.dist.php\".\n 5690/5690 [▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓] 100%\n\n 1) app/Http/Controllers/API/V2/AskJiminnyReportsController.php (blank_line_before_statement)\n ---------- begin diff ----------\n--- /home/jiminny/app/Http/Controllers/API/V2/AskJiminnyReportsController.php\n+++ /home/jiminny/app/Http/Controllers/API/V2/AskJiminnyReportsController.php\n@@ -140,6 +140,7 @@\n if ($enabled && $report->isAskJiminnyReport() && ! $report->canExecute()) {\n $error = 'This report is missing a saved search or prompt. ' .\n 'Edit the report to complete the setup before enabling it.';\n+\n return new JsonResponse(\n ['error' => $error],\n Response::HTTP_UNPROCESSABLE_ENTITY\n\n ----------- end diff -----------\n\n\nFixed 1 of 5690 files in 71.757 seconds, 60.00 MB memory used\n\nWhat's next:\n Try Docker Debug for seamless, persistent debugging tools in any container or image → docker debug docker_lamp_1\n Learn more at https://docs.docker.com/go/debug-cli/\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20676-delete-report-related-objects) $ git pull\nremote: Enumerating objects: 158, done.\nremote: Counting objects: 100% (103/103), done.\nremote: Compressing objects: 100% (37/37), done.\nremote: Total 158 (delta 80), reused 74 (delta 66), pack-reused 55 (from 3)\nReceiving objects: 100% (158/158), 80.59 KiB | 982.00 KiB/s, done.\nResolving deltas: 100% (85/85), completed with 45 local objects.\nFrom github.com:jiminny/app\n 02a33811ee..c6ce5e2440 JY-20676-delete-report-related-objects -> origin/JY-20676-delete-report-related-objects\n 7ce96cb5fe..6c59f04358 JY-20808-low-priority-indexing-queue -> origin/JY-20808-low-priority-indexing-queue\n 3906a9238a..2b5e6ea62b JY-20835-mcp-enable-users-to-get-a-list-of-deals-and-their-details -> origin/JY-20835-mcp-enable-users-to-get-a-list-of-deals-and-their-details\n 5604af40cf..ea3519f0e2 master -> origin/master\n * [new branch] switch-eu-assembly -> origin/switch-eu-assembly\nUpdating 02a33811ee..c6ce5e2440\nFast-forward\n app/Component/ES/ElasticSearchDocumentPartialUpdater.php | 48 ---\n app/Component/ParticipantSpeech/Services/ParticipantAttributionService.php | 4 +-\n app/Component/Settings/AutoScoring/Services/UpdateAutoScoreService.php | 20 +-\n app/Component/Transcription/Service/StorageService.php | 8 +-\n front-end/package.json | 2 +-\n front-end/src/components/DealInsights/Modals/AskAnythingModal.vue | 23 ++\n front-end/src/components/shared/AskAnything/AskAnythingPromptFormItem.vue | 2 +\n front-end/src/components/shared/AskAnything/AskAnythingSettingsDrawer.vue | 23 +-\n front-end/src/components/shared/AskAnything/__mocks__/AskAnythingSettingsDrawer.mocks.js | 1 +\n front-end/src/components/shared/AskAnything/__tests__/AskAnythingSettingsDrawer.spec.js | 135 ++++---\n front-end/src/components/shared/AskAnything/__tests__/__snapshots__/AskAnythingSettingsDrawer.spec.js.html | 1235 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++\n front-end/src/components/shared/AskAnything/__tests__/__snapshots__/AskAnythingSettingsDrawer.spec.js.snap | 1382 ----------------------------------------------------------------\n front-end/src/components/shared/AskAnything/prompts.js | 1 +\n front-end/src/components/shared/AskAnything/useAskAnything.js | 1 +\n front-end/yarn.lock | 8 +-\n tests/Unit/Component/ES/ElasticSearchDocumentPartialUpdaterTest.php | 42 --\n tests/Unit/Component/Settings/AutoScoring/Services/UpdateAutoScoreServiceTest.php | 86 ++--\n tests/Unit/Component/Transcription/Service/StorageServiceTest.php | 29 +-\n 18 files changed, 1448 insertions(+), 1602 deletions(-)\n delete mode 100644 app/Component/ES/ElasticSearchDocumentPartialUpdater.php\n create mode 100644 front-end/src/components/shared/AskAnything/__tests__/__snapshots__/AskAnythingSettingsDrawer.spec.js.html\n delete mode 100644 front-end/src/components/shared/AskAnything/__tests__/__snapshots__/AskAnythingSettingsDrawer.spec.js.snap\n delete mode 100644 tests/Unit/Component/ES/ElasticSearchDocumentPartialUpdaterTest.php\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20676-delete-report-related-objects) $ csfix\ndocker exec -it docker_lamp_1 ./vendor/bin/php-cs-fixer fix --config=.php-cs-fixer.dist.php -v --using-cache=no --diff \nPHP CS Fixer 3.87.1 Alexander by Fabien Potencier, Dariusz Ruminski and contributors.\nPHP runtime: 8.3.30\nRunning analysis on 7 cores with 10 files per process.\nParallel runner is an experimental feature and may be unstable, use it at your own risk. Feedback highly appreciated!\nLoaded config default from \".php-cs-fixer.dist.php\".\n 5688/5688 [▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓] 100%\n\n\nFixed 0 of 5688 files in 79.904 seconds, 60.00 MB memory used\n\nWhat's next:\n Try Docker Debug for seamless, persistent debugging tools in any container or image → docker debug docker_lamp_1\n Learn more at https://docs.docker.com/go/debug-cli/\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20676-delete-report-related-objects) $","is_focused":true},{"role":"AXRadioButton","text":"DOCKER","depth":2,"bounds":{"left":0.0,"top":0.05888889,"width":0.19826388,"height":0.026666667},"on_screen":true,"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.004166667,"top":0.06333333,"width":0.011111111,"height":0.017777778},"on_screen":true,"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"DEV (docker)","depth":2,"bounds":{"left":0.19826388,"top":0.05888889,"width":0.19826388,"height":0.026666667},"on_screen":true,"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.20243056,"top":0.06333333,"width":0.011111111,"height":0.017777778},"on_screen":true,"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"APP (-zsh)","depth":2,"bounds":{"left":0.39652777,"top":0.05888889,"width":0.19791667,"height":0.026666667},"on_screen":true,"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.40069443,"top":0.06333333,"width":0.011111111,"height":0.017777778},"on_screen":true,"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"screenpipe\"","depth":2,"bounds":{"left":0.59444445,"top":0.05888889,"width":0.19791667,"height":0.026666667},"on_screen":true,"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.5986111,"top":0.06333333,"width":0.011111111,"height":0.017777778},"on_screen":true,"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"-zsh","depth":2,"bounds":{"left":0.79236114,"top":0.05888889,"width":0.19791667,"height":0.026666667},"on_screen":true,"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.7965278,"top":0.06333333,"width":0.011111111,"height":0.017777778},"on_screen":true,"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"⌥⌘1","depth":1,"bounds":{"left":0.9618056,"top":0.032222223,"width":0.038194418,"height":0.018888889},"on_screen":true,"automation_id":"_NS:8","role_description":"text"},{"role":"AXStaticText","text":"APP (-zsh)","depth":1,"bounds":{"left":0.47777778,"top":0.033333335,"width":0.05138889,"height":0.017777778},"on_screen":true,"role_description":"text"}]...
|
2802650493718167367
|
-1358120912881272742
|
idle
|
accessibility
|
NULL
|
Last login: Mon May 18 09:17:28 on ttys007
Poetry Last login: Mon May 18 09:17:28 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 (pipedrive-sdk-poc) $ co master
error: Your local changes to the following files would be overwritten by checkout:
PIPEDRIVE_V2_MIGRATION_TICKETS.md
Please commit your changes or stash them before you switch branches.
Aborting
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (pipedrive-sdk-poc) $ git pull
remote: Enumerating objects: 1047, done.
remote: Counting objects: 100% (832/832), done.
remote: Compressing objects: 100% (298/298), done.
remote: Total 1047 (delta 634), reused 596 (delta 534), pack-reused 215 (from 3)
Receiving objects: 100% (1047/1047), 353.16 KiB | 1.56 MiB/s, done.
Resolving deltas: 100% (687/687), completed with 107 local objects.
From github.com:jiminny/app
907c54896c..34656c53ed pipedrive-sdk-poc -> origin/pipedrive-sdk-poc
03325ec50f..4e7078fd8b JY-18091-upgrade-to-php-8-5 -> origin/JY-18091-upgrade-to-php-8-5
e7d231e163..bc6a3fce6b JY-20725-handle-HS-search-rate-limit -> origin/JY-20725-handle-HS-search-rate-limit
* [new branch] JY-20749-user-can-view-recorded-meetings -> origin/JY-20749-user-can-view-recorded-meetings
98ca281a04..e0351be069 JY-20808-low-priority-indexing-queue -> origin/JY-20808-low-priority-indexing-queue
569abb5149..3906a9238a JY-20835-mcp-enable-users-to-get-a-list-of-deals-and-their-details -> origin/JY-20835-mcp-enable-users-to-get-a-list-of-deals-and-their-details
ad6c2a86e8..50eb6afba9 JY-20846-mcp-enable-the-ai-to-know-details-about-the-user -> origin/JY-20846-mcp-enable-the-ai-to-know-details-about-the-user
* [new branch] JY-20893-chunk-control-per-update-target -> origin/JY-20893-chunk-control-per-update-target
31c62924a5..cb4ebf0c36 master -> origin/master
Updating 907c54896c..34656c53ed
Fast-forward
PIPEDRIVE_V2_MIGRATION_TICKETS.md | 52 ++++++++++++++++++++++++++++++++++++++++++++++++++++
1 file changed, 52 insertions(+)
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (pipedrive-sdk-poc) $ co master
M .env.local
M config/logging.php
Switched to branch 'master'
Your branch is behind 'origin/master' by 31 commits, and can be fast-forwarded.
(use "git pull" to update your local branch)
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (master) $ git pull
Updating 31c62924a5..cb4ebf0c36
Fast-forward
app/Component/ES/Processor/Traits/SelectEntityListTrait.php | 20 ------
app/Services/Calendar/CalendarActivityService.php | 46 +++++++++++++
app/Services/Calendar/Command/MapActivityData.php | 106 +++-------------------------
docs/mcp/explorer/explorer.html | 104 +++++++++++++++++++++++++---
docs/mcp/explorer/explorer.template.html | 102 ++++++++++++++++++++++++---
docs/mcp/tools-list.json | 373 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++-------
docs/mcp/tools.md | 117 +++++++++++++++++++++++--------
tests/Unit/Component/ES/AsyncUpdateElasticSearchTest.php | 16 +----
tests/Unit/Component/ES/Listeners/UpdateMultipleTargetsListenerTest.php | 10 ---
tests/Unit/Component/ES/Listeners/UpdateSingleTargetListenerTest.php | 6 --
tests/Unit/Component/ES/Processor/TargetEntitiesSelectorTest.php | 9 ---
tests/Unit/Component/ES/Processor/Traits/SelectEntityListTraitTest.php | 15 ++--
tests/Unit/Component/ES/UpdateProcessManagerTest.php | 2 -
tests/Unit/Services/Calendar/CalendarActivityServiceTest.php | 150 ++++++++++++++++++++++++++++++++++++++--
tests/Unit/Services/Calendar/Command/MapActivityDataTest.php | 78 ++-------------------
15 files changed, 832 insertions(+), 322 deletions(-)
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (master) $ co -b JY-20613-allow-owner-role-on-team-setup
Switched to a new branch 'JY-20613-allow-owner-role-on-team-setup'
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20613-allow-owner-role-on-team-setup) $ csfix
docker exec -it docker_lamp_1 ./vendor/bin/php-cs-fixer fix --config=.php-cs-fixer.dist.php -v --using-cache=no --diff
PHP CS Fixer 3.87.1 Alexander by Fabien Potencier, Dariusz Ruminski and contributors.
PHP runtime: 8.3.30
Running 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!
Loaded config default from ".php-cs-fixer.dist.php".
5682/5682 [▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓] 100%
Fixed 0 of 5682 files in 56.978 seconds, 67.00 MB memory used
What's next:
Try Docker Debug for seamless, persistent debugging tools in any container or image → docker debug docker_lamp_1
Learn more at [URL_WITH_CREDENTIALS] ~/jiminny/app (JY-20613-allow-owner-role-on-team-setup) $ csfix
docker exec -it docker_lamp_1 ./vendor/bin/php-cs-fixer fix --config=.php-cs-fixer.dist.php -v --using-cache=no --diff
PHP CS Fixer 3.87.1 Alexander by Fabien Potencier, Dariusz Ruminski and contributors.
PHP runtime: 8.3.30
Running 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!
Loaded config default from ".php-cs-fixer.dist.php".
5682/5682 [▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓] 100%
Fixed 0 of 5682 files in 49.910 seconds, 60.00 MB memory used
What's next:
Try Docker Debug for seamless, persistent debugging tools in any container or image → docker debug docker_lamp_1
Learn more at [URL_WITH_CREDENTIALS] ~/jiminny/app (JY-20613-allow-owner-role-on-team-setup) $ git pull
remote: Enumerating objects: 248, done.
remote: Counting objects: 100% (128/128), done.
remote: Compressing objects: 100% (23/23), done.
remote: Total 59 (delta 43), reused 44 (delta 33), pack-reused 0 (from 0)
Unpacking objects: 100% (59/59), 10.48 KiB | 228.00 KiB/s, done.
From github.com:jiminny/app
b7df560451..190239dfd4 JY-20613-allow-owner-role-on-team-setup -> origin/JY-20613-allow-owner-role-on-team-setup
e0351be069..d94a285ae7 JY-20808-low-priority-indexing-queue -> origin/JY-20808-low-priority-indexing-queue
* [new branch] JY-20920-fix-participant-matcher -> origin/JY-20920-fix-participant-matcher
cb4ebf0c36..90bca4e4b2 master -> origin/master
Merge made by the 'ort' strategy.
app/Component/ES/ChunkSize.php | 54 +++++++++++++++++++++++++++
app/Component/ES/Processor/DTOs/SelectionList.php | 4 +-
app/Component/ES/Processor/TargetEntitiesSelector.php | 19 ++++++----
app/Http/Middleware/McpTierMiddleware.php | 27 +++-----------
app/Mcp/Servers/JiminnyServer.php | 2 +
app/Mcp/Tools/GetMeTool.php | 157 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
app/Models/Feature/FeatureEnum.php | 1 +
database/migrations/2026_05_13_124153_create_mcp_feature_flag.php | 25 +++++++++++++
front-end/src/components/Settings/Kiosk/modals/EditTeamModal/EditTeamModal.vue | 52 ++++++++++++++++++--------
front-end/src/components/Settings/Kiosk/modals/EditTeamModal/__tests__/EditTeamModal.spec.js | 14 +++++++
tests/Feature/Mcp/GetMeToolFeatureTest.php | 140 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
tests/Feature/Mcp/ListCallsToolFeatureTest.php | 2 +-
tests/Feature/Mcp/McpTestHelpersTrait.php | 19 +++++++++-
tests/Unit/Component/ES/ChunkSizeTest.php | 50 +++++++++++++++++++++++++
tests/Unit/Component/ES/Processor/DTOs/SelectionListTest.php | 27 ++++++++++----
tests/Unit/Component/ES/Processor/TargetEntitiesSelectorTest.php | 39 +++++++++++---------
16 files changed, 557 insertions(+), 75 deletions(-)
create mode 100644 app/Component/ES/ChunkSize.php
create mode 100644 app/Mcp/Tools/GetMeTool.php
create mode 100644 database/migrations/2026_05_13_124153_create_mcp_feature_flag.php
create mode 100644 tests/Feature/Mcp/GetMeToolFeatureTest.php
create mode 100644 tests/Unit/Component/ES/ChunkSizeTest.php
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20613-allow-owner-role-on-team-setup) $ git push
Enumerating objects: 40, done.
Counting objects: 100% (34/34), done.
Delta compression using up to 8 threads
Compressing objects: 100% (18/18), done.
Writing objects: 100% (18/18), 1.58 KiB | 1.58 MiB/s, done.
Total 18 (delta 15), reused 0 (delta 0), pack-reused 0
remote: Resolving deltas: 100% (15/15), completed with 13 local objects.
To github.com:jiminny/app.git
190239dfd4..ec1b261264 JY-20613-allow-owner-role-on-team-setup -> JY-20613-allow-owner-role-on-team-setup
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20613-allow-owner-role-on-team-setup) $ gbr
* JY-20613-allow-owner-role-on-team-setup
pipedrive-sdk-poc
master
JY-20903-update_activity-stage-on-opportunity-change
JY-20904-fix-update-es-on-activity-command
JY-20891-improve-sms-text-relays
JY-20725-handle-HS-search-rate-limit
JY-20818-move-AJ-reports-to-separated-datadog-metric
JY-20773-fix-automated-reports-user-pilot-tracking
JY-20157-AJ-report-not-send-notification
JY-20508-notify-before-AJ-report-expiration
JY-20372-ai-reports-promotion-pages
JY-20352-sync-opportunities-without-a-local-owner-user-id-is-null
JY-20738-debug-AJ-tracking-UP
a
JY-18909-automated-reports-ask-jiminny
JY-20692-fix-integration-app-[API_KEY]
JY-20553-debug-crm-sync-delays
JY-20698-fix-SF-activity-types-on-new-playbook
JY-20543-AJ-report-tracking
JY-20384-handle-auto-sync-with-no-access-to-event-type
JY-20458-ask-jiminny-user-definitions
JY-19666-fix-import-contacts-account-association
JY-19666-HS-import-contacts-and-accounts-batch-job
JY-20458-Ask-Jiminny-Reports
JY-20200-batch-update-CRM-objects-Salesforce
JY-19666-HS-webhooks-add-contact-and-company
JY-20348-trigger-setup-DI-layout-on-team-creation
JY-20326-refactor-info-message-in-command
JY-20317-fix-auto-log-delay-issue-on-all-channels-disabled
JY-20312-remove-on-update-change-last-synced-at-crm-configurations
JY-20306-SF-skip-auto-sync-for-task-based-playbook
JY-20192-remove-deleted-team-from-saved-search-filters
JY-20197-import-opportunity-batch-job
JY-20293-enable-status-field-for-pipedrive-deals
JY-20191-remove-commands-interactive-prompts
JY-20118-change-default-sync-strategy
JY-20183-add-cache-on-auto-log-delay
JY-20197-add-import-opportunity-batch-job
20118-hs-opportunity-make-webhook-strategy-default
JY-20118-make-default-hs-opportunity-sync-strategy-webhook-based
JY-20196-handle-opportunity-without-note
JY-20118-improve-opportunity-import
JY-20189-handle-activity-search-on-deleted-groups
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20613-allow-owner-role-on-team-setup) $ co JY-20725-handle-HS-search-rate-limit
M .env.local
M config/logging.php
Switched to branch 'JY-20725-handle-HS-search-rate-limit'
Your branch is behind 'origin/JY-20725-handle-HS-search-rate-limit' by 439 commits, and can be fast-forwarded.
(use "git pull" to update your local branch)
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20725-handle-HS-search-rate-limit) $ git pull
Updating 0f3e438941..bc6a3fce6b
Fast-forward
.gitignore | 3 +-
.windsurfrules | 168 ++---
CLAUDE.md | 1 +
app/Component/ActivityAnalytics/Service/CalculateTalkTimeOffsetsFromTranscription.php | 24 +-
app/Component/AiActivityType/Services/AiActivityTypeEligibilityChecker.php | 28 +-
app/Component/AiAutomation/Actions/PrepareUpdateDtoAction.php | 32 +-
app/Component/AiAutomation/Services/CrmFillingEligibilityChecker.php | 47 ++
app/Component/AiAutomation/TestCrmAiPromptService.php | 14 +
app/Component/AiCallScoring/Services/AiCallScoringEligibilityChecker.php | 9 +
app/Component/ES/ElasticSearchDocumentPartialUpdater.php | 13 +-
app/Component/ES/ElasticSearchWorkerManager.php | 86 ---
app/Component/ES/Processor/Actions/LoadDocumentsAction.php | 80 +--
app/Component/ES/Processor/EntityQueryBuilder.php | 12 +-
app/Component/ES/Processor/TargetEntitiesSelector.php | 2 +-
app/Component/ES/Processor/Traits/SkipActivityTrait.php | 25 -
app/Component/ES/Repositories/EsResetActivityRepository.php | 11 +-
app/Component/ES/Worker/ActivityWorker.php | 73 --
app/Component/ES/Worker/EntityWorker.php | 44 --
app/Component/ES/Worker/WorkerAmount.php | 60 --
app/Component/ES/Worker/WorkerInterface.php | 15 -
app/Component/ElasticSearch/Contract/Searchable.php | 4 +
app/Component/Encoding/Job/AnalyzeTrackChannelsJob.php | 20 +-
app/Component/Encoding/Service/GenerateSpeechFromSilenceService.php | 85 ++-
app/Component/FFMpeg/Services/GetSpeechIntervalsService.php | 18 +-
app/Component/LanguageDetection/Services/FindSpeechTimeService.php | 22 +-
app/Component/Nudge/Job/ProcessOrganisationImmediateNudgesJob.php | 218 +++++-
app/Component/ParagraphBreaker/Services/TranscriptionParagraphsService.php | 4 +
app/Component/ParticipantSpeech/Services/ParticipantSpeechesCreator.php | 33 +
app/Component/ParticipantSpeech/Services/ParticipantSpeechesDeleter.php | 15 +
app/Component/ParticipantSpeech/Services/ParticipantSpeechesProvider.php | 51 +-
app/Component/ParticipantSpeech/Services/ParticipantSpeechesUploader.php | 36 +
app/Component/ProphetAi/Exceptions/InsufficientTranscriptException.php | 11 +
app/Component/Transcription/DTO/Http/Transcription/AssemblyAI/AssemblyAI/NoAssemblyIdException.php | 11 +
app/Component/Transcription/DTO/Http/Transcription/AssemblyAI/AssemblyAI/SuccessfulResponse.php | 6 +
app/Component/Transcription/DTO/Http/Transcription/TranscriptionIsNotCorrectFormatException.php | 11 +
app/Component/Transcription/Diarization/Services/GetNormalizedParticipantSpeechesService.php | 23 +-
app/Component/Transcription/Diarization/Source/MeetingBotSource.php | 16 +-
app/Component/Transcription/TranscriptionProcessor/TranscriptionProcessor.php | 3 +
app/Console/Commands/Activities/ActivityHardDeleteCommand.php | 4 +-
app/Console/Commands/Activities/Copy.php | 2 +
app/Console/Commands/Activities/SetupIntegration/TwilioSetS3RecordingCredentialsCommand.php | 119 ++++
app/Console/Commands/Activities/UpdateActivityElasticSearchDocumentCommand.php | 10 +-
app/Console/Commands/Crm/BackfillOpportunityUserFromAccountCommand.php | 126 ++++
app/Console/Commands/Elasticsearch/AsyncUpdateEsActivities.php | 19 -
app/Console/Commands/Elasticsearch/AsyncUpdateEsEntities.php | 50 +-
app/Console/Commands/Elasticsearch/ResetAsyncElasticSearchCommand.php | 30 +-
app/Console/Commands/GeckoExport/GeckoExportParticipantSpeechesCommand.php | 14 +-
app/Console/Commands/IssueMcpTokenCommand.php | 84 +++
app/Console/Commands/JiminnyDebugCommand.php | 7 +-
app/Console/Commands/Tracks/CleanupActivityTracksCommand.php | 2 +-
app/Console/Kernel.php | 6 +-
app/Contracts/Services/Calendar/CalendarTrait.php | 80 ++-
app/Events/AutomatedReports/AutomatedReportGenerated.php | 3 +
app/Http/Controllers/API/AiCallScoring/AiScorecardController.php | 7 +-
app/Http/Controllers/API/TeamAiAutomationController.php | 8 +
app/Http/Controllers/CustomerApi/CustomerApiController.php | 4 +-
app/Http/Controllers/Kiosk/ActivityController.php | 58 +-
app/Http/Controllers/Settings/PlaybookController.php | 15 +-
app/Http/Kernel.php | 23 +
app/Http/Middleware/McpAuditMiddleware.php | 156 ++++
app/Http/Middleware/McpTierMiddleware.php | 54 ++
app/Http/Requests/API/V2/ZapierUploadActivityRequest.php | 28 +-
app/Jobs/Activity/Import/ImportTwilioVideoSpeechesJob.php | 25 +-
app/Jobs/Activity/Import/IsActivityReadyForProcessingJob.php | 10 +-
app/Jobs/Calendar/SetupCalendarSync.php | 21 +-
app/Jobs/ImportRemoteTrackJob.php | 96 ++-
app/Jobs/Mailbox/EmailTextRelay.php | 15 +-
app/Mcp/Contracts/McpCallRepositoryInterface.php | 30 +
app/Mcp/DTO/ListCallsFilters.php | 29 +
app/Mcp/Errors/McpError.php | 123 ++++
app/Mcp/Repositories/McpActivityHydrator.php | 145 ++++
app/Mcp/Repositories/McpCallRepository.php | 84 +++
app/Mcp/Repositories/McpElasticCallRepository.php | 171 +++++
app/Mcp/Servers/JiminnyServer.php | 38 +
app/Mcp/Tools/ListCallsTool.php | 205 ++++++
app/Models/Activity.php | 10 +-
app/Models/Activity/Transcription.php | 17 +-
app/Models/ElasticSearch/OpportunityElasticSearchTrait.php | 5 +
app/Models/Participant.php | 1 +
app/Providers/AppServiceProvider.php | 22 +
app/Repositories/Crm/ContactRepository.php | 69 +-
app/Repositories/ParticipantSpeechRepository.php | 13 +-
app/Services/Activity/ParticipantsService.php | 19 +-
app/Services/Activity/Twilio/S3RecordingCredentialsService.php | 82 +++
app/Services/ActivityService.php | 21 +-
app/Services/Calendar/CalendarActivityService.php | 46 ++
app/Services/Calendar/Command/ImportParticipants.php | 1 +
app/Services/Calendar/Command/MapActivityData.php | 106 +--
app/Services/Calendar/GoogleCalendarService.php | 12 +-
app/Services/Crm/Close/Processor/OpportunityProcessor.php | 2 +-
app/Services/Crm/Close/Service.php | 22 +-
app/Services/Crm/Copper/Service.php | 12 +-
app/Services/Crm/Hubspot/Service.php | 154 +++-
app/Services/Crm/Hubspot/ServiceTraits/OpportunitySyncTrait.php | 88 ++-
app/Services/Crm/IntegrationApp/ServiceTraits/SyncCrmEntitiesTrait.php | 22 +-
app/Services/Crm/Pipedrive/Service.php | 17 +-
app/Services/Crm/Salesforce/Service.php | 42 +-
app/Services/Mail/Office/EmailApiClient.php | 129 +---
app/Services/RecallAI/Commands/ScheduleBotCommand.php | 39 +-
app/Services/RecallAI/RecallAIService.php | 22 +-
composer.json | 3 +-
composer.lock | 87 ++-
config/mcp.php | 23 +
database/migrations/2026_04_30_120000_create_mcp_audit_log_table.php | 36 +
docs/mcp/explorer/explorer.html | 697 ++++++++++++++++++
docs/mcp/explorer/explorer.template.html | 697 ++++++++++++++++++
docs/mcp/explorer/generate.js | 215 ++++++
docs/mcp/explorer/tool-explorer-meta.json | 11 +
docs/mcp/tools-list.json | 2536 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
docs/mcp/tools.md | 621 ++++++++++++++++
front-end/package.json | 4 +-
front-end/src/components/Settings/OrgSettings/AiAutomation/CrmFilling/TemplateFieldForm.vue | 28 +-
front-end/src/components/Settings/OrgSettings/Playbooks/AddEditPlaybook.vue | 10 +
front-end/src/components/playback/comments/ActivityComment.less | 10 +-
front-end/src/components/shared/PromptTester/PromptTester.vue | 12 +-
front-end/src/components/shared/__tests__/PromptTester.spec.js | 35 +
front-end/src/components/shared/modals/EntityPickerModal/__tests__/useEntitiesCache.spec.ts | 37 +
front-end/src/components/shared/modals/EntityPickerModal/useEntitiesCache.ts | 9 +
front-end/yarn.lock | 16 +-
phpstan-baseline.neon | 50 --
routes/api.php | 11 +
sonar-project.properties | 91 ++-
tests/Feature/Component/Nudge/ProcessOrganisationImmediateNudgesJobTest.php | 534 ++++++++++++++
tests/Feature/Jobs/ImportRemoteTrackJobTest.php | 283 +++++++-
tests/Feature/Mcp/IssueMcpTokenCommandTest.php | 53 ++
tests/Feature/Mcp/ListCallsToolElasticFeatureTest.php | 155 ++++
tests/Feature/Mcp/ListCallsToolFeatureTest.php | 352 ++++++++++
tests/Feature/Mcp/McpTestHelpersTrait.php | 77 ++
tests/Feature/Services/Team/TeamDeleteHandlers/Retention/RetentionRepositoryHandlerTest.php | 1 +
tests/Stubs/SentryStub.php | 18 +
tests/Unit/Component/ActivityAnalytics/Service/CalculateTalkTimeOffsetFromTranscriptionTest.php | 28 +-
tests/Unit/Component/AiActivityType/Services/AiActivityTypeEligibilityCheckerTest.php | 103 ++-
tests/Unit/Component/AiAutomation/Actions/PrepareUpdateDtoActionTest.php | 91 +++
tests/Unit/Component/AiAutomation/Services/CrmFillingEligibilityCheckerTest.php | 124 ++++
tests/Unit/Component/AiAutomation/TestCrmAiPromptServiceTest.php | 67 +-
tests/Unit/Component/AiCallScoring/Services/AiCallScoringEligibilityCheckerTest.php | 55 ++
tests/Unit/Component/ES/ElasticSearchWorkerManagerTest.php | 135 ----
tests/Unit/Component/ES/Processor/Actions/LoadDocumentsActionTest.php | 220 ++++++
tests/Unit/Component/ES/Processor/EntityQueryBuilderTest.php | 21 +-
tests/Unit/Component/ES/Processor/Traits/SkipActivityTraitTest.php | 51 --
tests/Unit/Component/ES/Worker/ActivityWorkerTest.php | 174 -----
tests/Unit/Component/ES/Worker/EntityWorkerTest.php | 97 ---
tests/Unit/Component/ES/Worker/WorkerAmountTest.php | 116 ---
tests/Unit/Component/Encoding/Job/AnalyzeTrackChannelsJobTest.php | 52 +-
tests/Unit/Component/Encoding/Service/GenerateSpeechFromSilenceServiceTest.php | 171 ++---
tests/Unit/Component/FFMpeg/Services/GetSpeechIntervalsTest.php | 36 +-
tests/Unit/Component/LanguageDetection/Services/FindSpeechTimeServiceTest.php | 20 +-
tests/Unit/Component/MobileSettings/MobileSettingsControllerTest.php | 5 +-
tests/Unit/Component/ParticipantSpeech/Services/ParticipantSpeechesCreatorTest.php | 75 ++
tests/Unit/Component/ParticipantSpeech/Services/ParticipantSpeechesDeleterTest.php | 63 ++
tests/Unit/Component/ParticipantSpeech/Services/ParticipantSpeechesProviderTest.php | 134 ++++
tests/Unit/Component/ParticipantSpeech/Services/ParticipantSpeechesUploaderTest.php | 57 ++
tests/Unit/Component/Transcription/Diarization/Services/GetNormalizedParticipantSpeechesServiceTest.php | 51 +-
tests/Unit/Component/Transcription/Diarization/Source/MeetingBotSourceTest.php | 29 +-
tests/Unit/Contracts/Services/Calendar/CalendarTraitTest.php | 58 +-
tests/Unit/Http/Controllers/Kiosk/ActivityControllerTest.php | 159 +++++
tests/Unit/Jobs/Activity/Import/ImportTwilioVideoSpeechesJobTest.php | 22 +-
tests/Unit/Jobs/Activity/Import/IsActivityReadyForProcessingJobTest.php | 26 +-
tests/Unit/Jobs/Calendar/SetupCalendarSyncTest.php | 25 -
tests/Unit/Services/Activity/ParticipantsServiceTest.php | 12 +-
tests/Unit/Services/Activity/Twilio/S3RecordingCredentialsServiceTest.php | 180 +++++
tests/Unit/Services/ActivityServiceTest.php | 132 ++++
tests/Unit/Services/Calendar/CalendarActivityServiceTest.php | 150 +++-
tests/Unit/Services/Calendar/Command/ImportParticipantsTest.php | 6 +-
tests/Unit/Services/Calendar/Command/MapActivityDataTest.php | 78 +-
tests/Unit/Services/Calendar/GoogleCalendarServiceTest.php | 116 +++
tests/Unit/Services/Crm/Close/ServiceTest.php | 165 +++++
tests/Unit/Services/Crm/Hubspot/ServiceTest.php | 272 ++++++-
tests/Unit/Services/Crm/Hubspot/ServiceTraits/OpportunitySyncTest.php | 25 +-
tests/Unit/Services/Crm/Hubspot/ServiceTraits/OpportunitySyncTraitMatchActivitiesTest.php | 3 +-
tests/Unit/Services/Crm/IntegrationApp/ServiceTraits/SyncCrmEntitiesTraitOpportunitiesTest.php | 40 ++
tests/Unit/Services/Crm/Pipedrive/ImportOpportunityMatchActivitiesTest.php | 2 +
tests/Unit/Services/Crm/Salesforce/ServiceTest.php | 139 ++++
tests/Unit/Services/Mail/Office/EmailApiClientTest.php | 195 ++---
tests/Unit/Services/RecallAI/RecallAIServiceTest.php | 24 +-
175 files changed, 12562 insertions(+), 2162 deletions(-)
create mode 120000 CLAUDE.md
create mode 100644 app/Component/AiAutomation/Services/CrmFillingEligibilityChecker.php
delete mode 100644 app/Component/ES/ElasticSearchWorkerManager.php
delete mode 100644 app/Component/ES/Processor/Traits/SkipActivityTrait.php
delete mode 100644 app/Component/ES/Worker/ActivityWorker.php
delete mode 100644 app/Component/ES/Worker/EntityWorker.php
delete mode 100644 app/Component/ES/Worker/WorkerAmount.php
delete mode 100644 app/Component/ES/Worker/WorkerInterface.php
create mode 100644 app/Component/ProphetAi/Exceptions/InsufficientTranscriptException.php
create mode 100644 app/Component/Transcription/DTO/Http/Transcription/AssemblyAI/AssemblyAI/NoAssemblyIdException.php
create mode 100644 app/Component/Transcription/DTO/Http/Transcription/TranscriptionIsNotCorrectFormatException.php
create mode 100644 app/Console/Commands/Activities/SetupIntegration/TwilioSetS3RecordingCredentialsCommand.php
create mode 100644 app/Console/Commands/Crm/BackfillOpportunityUserFromAccountCommand.php
delete mode 100644 app/Console/Commands/Elasticsearch/AsyncUpdateEsActivities.php
create mode 100644 app/Console/Commands/IssueMcpTokenCommand.php
create mode 100644 app/Http/Middleware/McpAuditMiddleware.php
create mode 100644 app/Http/Middleware/McpTierMiddleware.php
create mode 100644 app/Mcp/Contracts/McpCallRepositoryInterface.php
create mode 100644 app/Mcp/DTO/ListCallsFilters.php
create mode 100644 app/Mcp/Errors/McpError.php
create mode 100644 app/Mcp/Repositories/McpActivityHydrator.php
create mode 100644 app/Mcp/Repositories/McpCallRepository.php
create mode 100644 app/Mcp/Repositories/McpElasticCallRepository.php
create mode 100644 app/Mcp/Servers/JiminnyServer.php
create mode 100644 app/Mcp/Tools/ListCallsTool.php
create mode 100644 app/Services/Activity/Twilio/S3RecordingCredentialsService.php
create mode 100644 config/mcp.php
create mode 100644 database/migrations/2026_04_30_120000_create_mcp_audit_log_table.php
create mode 100644 docs/mcp/explorer/explorer.html
create mode 100644 docs/mcp/explorer/explorer.template.html
create mode 100644 docs/mcp/explorer/generate.js
create mode 100644 docs/mcp/explorer/tool-explorer-meta.json
create mode 100644 docs/mcp/tools-list.json
create mode 100644 docs/mcp/tools.md
create mode 100644 front-end/src/components/shared/modals/EntityPickerModal/__tests__/useEntitiesCache.spec.ts
create mode 100644 tests/Feature/Component/Nudge/ProcessOrganisationImmediateNudgesJobTest.php
create mode 100644 tests/Feature/Mcp/IssueMcpTokenCommandTest.php
create mode 100644 tests/Feature/Mcp/ListCallsToolElasticFeatureTest.php
create mode 100644 tests/Feature/Mcp/ListCallsToolFeatureTest.php
create mode 100644 tests/Feature/Mcp/McpTestHelpersTrait.php
create mode 100644 tests/Stubs/SentryStub.php
create mode 100644 tests/Unit/Component/AiAutomation/Services/CrmFillingEligibilityCheckerTest.php
delete mode 100644 tests/Unit/Component/ES/ElasticSearchWorkerManagerTest.php
create mode 100644 tests/Unit/Component/ES/Processor/Actions/LoadDocumentsActionTest.php
delete mode 100644 tests/Unit/Component/ES/Processor/Traits/SkipActivityTraitTest.php
delete mode 100644 tests/Unit/Component/ES/Worker/ActivityWorkerTest.php
delete mode 100644 tests/Unit/Component/ES/Worker/EntityWorkerTest.php
delete mode 100644 tests/Unit/Component/ES/Worker/WorkerAmountTest.php
create mode 100644 tests/Unit/Component/ParticipantSpeech/Services/ParticipantSpeechesCreatorTest.php
create mode 100644 tests/Unit/Http/Controllers/Kiosk/ActivityControllerTest.php
create mode 100644 tests/Unit/Services/Activity/Twilio/S3RecordingCredentialsServiceTest.php
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20725-handle-HS-search-rate-limit) $ git status
On branch master
Your branch is behind 'origin/master' by 114 commits, and can be fast-forwarded.
(use "git pull" to update your local branch)
Changes not staged for commit:
(use "git add <file>..." to update what will be committed)
(use "git restore <file>..." to discard changes in working directory)
modified: .env.local
modified: app/Component/SCIM/Constants.php
modified: app/Component/SCIM/ScimProvisioning.php
modified: app/Component/Twilio/Conference/ConferenceManager/SoftPhoneManager.php
modified: app/Console/Commands/JiminnyDebugCommand.php
modified: app/DTO/SCIM/AAD/Request/CoreUserRequest.php
modified: app/DTO/SCIM/AAD/Response/CoreUser.php
modified: app/Services/Telephony/TextMessagingService.php
modified: config/logging.php
Untracked files:
(use "git add <file>..." to include in what will be committed)
.env.nikilocal
.env.other
WEBHOOK_FILTERING_IMPLEMENTATION.md
app/Component/SCIM/Mutators/Attributes/User/RoleAttr.php
app/Console/Commands/Crm/Hubspot/SimulateWebhooksCommand.php
app/Console/Commands/Reports/CreateMockAskJiminnyReportResultCommand.php
app/Rules/ListenerRoleCannotHaveAdminOrManagerPermissionRule.php
ids.txt
public/favicon.ico
raw_sql_query.sql
tests/Unit/Component/SCIM/Mutators/Attributes/User/RoleAttrTest.php
tests/Unit/Policies/CanAccessAiReportsTest.php
tests/Unit/Rules/ListenerRoleCannotHaveAdminOrManagerPermissionRuleTest.php
no changes added to commit (use "git add" and/or "git commit -a")
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (master) $ git pull
remote: Enumerating objects: 306, done.
remote: Counting objects: 100% (299/299), done.
remote: Compressing objects: 100% (183/183), done.
remote: Total 306 (delta 213), reused 171 (delta 116), pack-reused 7 (from 1)
Receiving objects: 100% (306/306), 80.12 KiB | 1000.00 KiB/s, done.
Resolving deltas: 100% (213/213), completed with 53 local objects.
From github.com:jiminny/app
90bca4e4b2..5604af40cf master -> origin/master
4e7078fd8b..0b8343d179 JY-18091-upgrade-to-php-8-5 -> origin/JY-18091-upgrade-to-php-8-5
098eeaa087..d5a447e492 JY-20613-allow-owner-role-on-team-setup -> origin/JY-20613-allow-owner-role-on-team-setup
c3a76ace91..af65249d0f JY-20749-user-can-view-recorded-meetings -> origin/JY-20749-user-can-view-recorded-meetings
d94a285ae7..7ce96cb5fe JY-20808-low-priority-indexing-queue -> origin/JY-20808-low-priority-indexing-queue
* [new branch] JY-20842-remove-partial-updater -> origin/JY-20842-remove-partial-updater
* [new branch] JY-20920-fix-participant-flip -> origin/JY-20920-fix-participant-flip
* [new branch] secfix/npm-20260519 -> origin/secfix/npm-20260519
Updating cb4ebf0c36..5604af40cf
Fast-forward
app/Component/ES/ChunkSize.php | 54 +++++++++++++++++++
app/Component/ES/Processor/DTOs/SelectionList.php | 4 +-
app/Component/ES/Processor/TargetEntitiesSelector.php | 19 ++++---
app/Component/MeetingBot/Service/ParticipantMatcher.php | 46 ++++++++++++----
app/Exceptions/RateLimitException.php | 19 ++++++-
app/Http/Middleware/McpTierMiddleware.php | 27 ++--------
app/Jobs/Crm/MatchActivityCrmData.php | 47 ++++++++++++----
app/Jobs/Middleware/HandleHubspotRateLimit.php | 42 +++++++++++++++
app/Mcp/Servers/JiminnyServer.php | 2 +
app/Mcp/Tools/GetMeTool.php | 157 +++++++++++++++++++++++++++++++++++++++++++++++++++++
app/Models/Feature/FeatureEnum.php | 1 +
app/Services/Activity/HubSpot/ProviderResolver.php | 4 +-
app/Services/Activity/HubSpot/ProviderResolverInterface.php | 2 +-
app/Services/Activity/HubSpot/Providers/Provider.php | 2 +-
app/Services/Activity/HubSpot/Providers/ProviderKixie.php | 2 +-
app/Services/Activity/HubSpot/Providers/ProviderOrum.php | 2 +-
app/Services/Activity/HubSpot/Providers/ProviderTwilio.php | 2 +-
app/Services/Activity/HubSpot/Providers/ProviderTwilioFlex.php | 5 +-
app/Services/Activity/HubSpot/Service.php | 97 +++++++++++++++++++++++++++------
app/Services/Crm/Hubspot/Client.php | 132 +++++++++++++++++++++++++++++++++++++++++++++
app/Services/Crm/Hubspot/HubspotClientInterface.php | 15 ++++++
app/Services/Crm/Hubspot/Pagination/HubspotPaginationService.php | 21 ++++----
app/Services/Crm/Hubspot/Pagination/PaginationState.php | 2 +-
database/migrations/2026_05_13_124153_create_mcp_feature_flag.php | 25 +++++++++
tests/Feature/Mcp/GetMeToolFeatureTest.php | 140 +++++++++++++++++++++++++++++++++++++++++++++++
tests/Feature/Mcp/ListCallsToolFeatureTest.php | 2 +-
tests/Feature/Mcp/McpTestHelpersTrait.php | 19 ++++++-
tests/Unit/Component/ES/ChunkSizeTest.php | 50 +++++++++++++++++
tests/Unit/Component/ES/Processor/DTOs/SelectionListTest.php | 27 +++++++---
tests/Unit/Component/ES/Processor/TargetEntitiesSelectorTest.php | 39 ++++++++------
tests/Unit/Component/MeetingBot/Service/ParticipantMatcherTest.php | 68 ++++++++++++++++++++++-
tests/Unit/Exceptions/RateLimitExceptionTest.php | 56 +++++++++++++++++++
tests/Unit/Jobs/Crm/MatchActivityCrmDataTest.php | 8 +--
tests/Unit/Jobs/Middleware/HandleHubspotRateLimitTest.php | 151 +++++++++++++++++++++++++++++++++++++++++++++++++++
tests/Unit/Services/Activity/HubSpot/ServiceTest.php | 109 +++++++++++++++++++++++++++++++++++++
tests/Unit/Services/Crm/Hubspot/ClientTest.php | 250 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
tests/Unit/Services/Crm/Hubspot/Pagination/HubspotPaginationServiceTest.php | 283 +++++++++++++++++++++---------------------------------------------------------------------------
37 files changed, 1587 insertions(+), 344 deletions(-)
create mode 100644 app/Component/ES/ChunkSize.php
create mode 100644 app/Jobs/Middleware/HandleHubspotRateLimit.php
create mode 100644 app/Mcp/Tools/GetMeTool.php
create mode 100644 database/migrations/2026_05_13_124153_create_mcp_feature_flag.php
create mode 100644 tests/Feature/Mcp/GetMeToolFeatureTest.php
create mode 100644 tests/Unit/Component/ES/ChunkSizeTest.php
create mode 100644 tests/Unit/Exceptions/RateLimitExceptionTest.php
create mode 100644 tests/Unit/Jobs/Middleware/HandleHubspotRateLimitTest.php
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (master) $ git pull
Already up to date.
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (master) $ co -b JY-20676-delete-report-related-objects
Switched to a new branch 'JY-20676-delete-report-related-objects'
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20676-delete-report-related-objects) $ csfix
docker exec -it docker_lamp_1 ./vendor/bin/php-cs-fixer fix --config=.php-cs-fixer.dist.php -v --using-cache=no --diff
PHP CS Fixer 3.87.1 Alexander by Fabien Potencier, Dariusz Ruminski and contributors.
PHP runtime: 8.3.30
Running 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!
Loaded config default from ".php-cs-fixer.dist.php".
5690/5690 [▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓] 100%
1) app/Console/Commands/JiminnyDebugCommand.php (statement_indentation, blank_line_before_statement)
---------- begin diff ----------
--- /home/jiminny/app/Console/Commands/JiminnyDebugCommand.php
+++ /home/jiminny/app/Console/Commands/JiminnyDebugCommand.php
@@ -23,6 +23,7 @@
if ($action === 'redis-set') {
$this->testRedisSet();
+
return;
}
@@ -45,7 +46,7 @@
$ttl = 60;
try {
-// $result = Redis::set($testKey, $testValue, 'EX', $ttl, 'NX');
+ // $result = Redis::set($testKey, $testValue, 'EX', $ttl, 'NX');
$result = Redis::set($testKey, $testValue, ['nx', 'ex' => $ttl]);
if ($result) {
----------- end diff -----------
Fixed 1 of 5690 files i...
|
58093
|
NULL
|
NULL
|
NULL
|
|
58105
|
2047
|
3
|
2026-05-19T11:37:48.510662+00:00
|
/Users/lukas/.screenpipe/data/data/2026-05-19/1779 /Users/lukas/.screenpipe/data/data/2026-05-19/1779190668510_m2.jpg...
|
iTerm2
|
APP (-zsh)
|
1
|
NULL
|
monitor_2
|
NULL
|
NULL
|
NULL
|
NULL
|
Last login: Mon May 18 09:17:28 on ttys007
Poetry Last login: Mon May 18 09:17:28 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 (pipedrive-sdk-poc) $ co master
error: Your local changes to the following files would be overwritten by checkout:
PIPEDRIVE_V2_MIGRATION_TICKETS.md
Please commit your changes or stash them before you switch branches.
Aborting
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (pipedrive-sdk-poc) $ git pull
remote: Enumerating objects: 1047, done.
remote: Counting objects: 100% (832/832), done.
remote: Compressing objects: 100% (298/298), done.
remote: Total 1047 (delta 634), reused 596 (delta 534), pack-reused 215 (from 3)
Receiving objects: 100% (1047/1047), 353.16 KiB | 1.56 MiB/s, done.
Resolving deltas: 100% (687/687), completed with 107 local objects.
From github.com:jiminny/app
907c54896c..34656c53ed pipedrive-sdk-poc -> origin/pipedrive-sdk-poc
03325ec50f..4e7078fd8b JY-18091-upgrade-to-php-8-5 -> origin/JY-18091-upgrade-to-php-8-5
e7d231e163..bc6a3fce6b JY-20725-handle-HS-search-rate-limit -> origin/JY-20725-handle-HS-search-rate-limit
* [new branch] JY-20749-user-can-view-recorded-meetings -> origin/JY-20749-user-can-view-recorded-meetings
98ca281a04..e0351be069 JY-20808-low-priority-indexing-queue -> origin/JY-20808-low-priority-indexing-queue
569abb5149..3906a9238a JY-20835-mcp-enable-users-to-get-a-list-of-deals-and-their-details -> origin/JY-20835-mcp-enable-users-to-get-a-list-of-deals-and-their-details
ad6c2a86e8..50eb6afba9 JY-20846-mcp-enable-the-ai-to-know-details-about-the-user -> origin/JY-20846-mcp-enable-the-ai-to-know-details-about-the-user
* [new branch] JY-20893-chunk-control-per-update-target -> origin/JY-20893-chunk-control-per-update-target
31c62924a5..cb4ebf0c36 master -> origin/master
Updating 907c54896c..34656c53ed
Fast-forward
PIPEDRIVE_V2_MIGRATION_TICKETS.md | 52 ++++++++++++++++++++++++++++++++++++++++++++++++++++
1 file changed, 52 insertions(+)
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (pipedrive-sdk-poc) $ co master
M .env.local
M config/logging.php
Switched to branch 'master'
Your branch is behind 'origin/master' by 31 commits, and can be fast-forwarded.
(use "git pull" to update your local branch)
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (master) $ git pull
Updating 31c62924a5..cb4ebf0c36
Fast-forward
app/Component/ES/Processor/Traits/SelectEntityListTrait.php | 20 ------
app/Services/Calendar/CalendarActivityService.php | 46 +++++++++++++
app/Services/Calendar/Command/MapActivityData.php | 106 +++-------------------------
docs/mcp/explorer/explorer.html | 104 +++++++++++++++++++++++++---
docs/mcp/explorer/explorer.template.html | 102 ++++++++++++++++++++++++---
docs/mcp/tools-list.json | 373 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++-------
docs/mcp/tools.md | 117 +++++++++++++++++++++++--------
tests/Unit/Component/ES/AsyncUpdateElasticSearchTest.php | 16 +----
tests/Unit/Component/ES/Listeners/UpdateMultipleTargetsListenerTest.php | 10 ---
tests/Unit/Component/ES/Listeners/UpdateSingleTargetListenerTest.php | 6 --
tests/Unit/Component/ES/Processor/TargetEntitiesSelectorTest.php | 9 ---
tests/Unit/Component/ES/Processor/Traits/SelectEntityListTraitTest.php | 15 ++--
tests/Unit/Component/ES/UpdateProcessManagerTest.php | 2 -
tests/Unit/Services/Calendar/CalendarActivityServiceTest.php | 150 ++++++++++++++++++++++++++++++++++++++--
tests/Unit/Services/Calendar/Command/MapActivityDataTest.php | 78 ++-------------------
15 files changed, 832 insertions(+), 322 deletions(-)
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (master) $ co -b JY-20613-allow-owner-role-on-team-setup
Switched to a new branch 'JY-20613-allow-owner-role-on-team-setup'
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20613-allow-owner-role-on-team-setup) $ csfix
docker exec -it docker_lamp_1 ./vendor/bin/php-cs-fixer fix --config=.php-cs-fixer.dist.php -v --using-cache=no --diff
PHP CS Fixer 3.87.1 Alexander by Fabien Potencier, Dariusz Ruminski and contributors.
PHP runtime: 8.3.30
Running 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!
Loaded config default from ".php-cs-fixer.dist.php".
5682/5682 [▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓] 100%
Fixed 0 of 5682 files in 56.978 seconds, 67.00 MB memory used
What's next:
Try Docker Debug for seamless, persistent debugging tools in any container or image → docker debug docker_lamp_1
Learn more at [URL_WITH_CREDENTIALS] ~/jiminny/app (JY-20613-allow-owner-role-on-team-setup) $ csfix
docker exec -it docker_lamp_1 ./vendor/bin/php-cs-fixer fix --config=.php-cs-fixer.dist.php -v --using-cache=no --diff
PHP CS Fixer 3.87.1 Alexander by Fabien Potencier, Dariusz Ruminski and contributors.
PHP runtime: 8.3.30
Running 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!
Loaded config default from ".php-cs-fixer.dist.php".
5682/5682 [▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓] 100%
Fixed 0 of 5682 files in 49.910 seconds, 60.00 MB memory used
What's next:
Try Docker Debug for seamless, persistent debugging tools in any container or image → docker debug docker_lamp_1
Learn more at [URL_WITH_CREDENTIALS] ~/jiminny/app (JY-20613-allow-owner-role-on-team-setup) $ git pull
remote: Enumerating objects: 248, done.
remote: Counting objects: 100% (128/128), done.
remote: Compressing objects: 100% (23/23), done.
remote: Total 59 (delta 43), reused 44 (delta 33), pack-reused 0 (from 0)
Unpacking objects: 100% (59/59), 10.48 KiB | 228.00 KiB/s, done.
From github.com:jiminny/app
b7df560451..190239dfd4 JY-20613-allow-owner-role-on-team-setup -> origin/JY-20613-allow-owner-role-on-team-setup
e0351be069..d94a285ae7 JY-20808-low-priority-indexing-queue -> origin/JY-20808-low-priority-indexing-queue
* [new branch] JY-20920-fix-participant-matcher -> origin/JY-20920-fix-participant-matcher
cb4ebf0c36..90bca4e4b2 master -> origin/master
Merge made by the 'ort' strategy.
app/Component/ES/ChunkSize.php | 54 +++++++++++++++++++++++++++
app/Component/ES/Processor/DTOs/SelectionList.php | 4 +-
app/Component/ES/Processor/TargetEntitiesSelector.php | 19 ++++++----
app/Http/Middleware/McpTierMiddleware.php | 27 +++-----------
app/Mcp/Servers/JiminnyServer.php | 2 +
app/Mcp/Tools/GetMeTool.php | 157 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
app/Models/Feature/FeatureEnum.php | 1 +
database/migrations/2026_05_13_124153_create_mcp_feature_flag.php | 25 +++++++++++++
front-end/src/components/Settings/Kiosk/modals/EditTeamModal/EditTeamModal.vue | 52 ++++++++++++++++++--------
front-end/src/components/Settings/Kiosk/modals/EditTeamModal/__tests__/EditTeamModal.spec.js | 14 +++++++
tests/Feature/Mcp/GetMeToolFeatureTest.php | 140 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
tests/Feature/Mcp/ListCallsToolFeatureTest.php | 2 +-
tests/Feature/Mcp/McpTestHelpersTrait.php | 19 +++++++++-
tests/Unit/Component/ES/ChunkSizeTest.php | 50 +++++++++++++++++++++++++
tests/Unit/Component/ES/Processor/DTOs/SelectionListTest.php | 27 ++++++++++----
tests/Unit/Component/ES/Processor/TargetEntitiesSelectorTest.php | 39 +++++++++++---------
16 files changed, 557 insertions(+), 75 deletions(-)
create mode 100644 app/Component/ES/ChunkSize.php
create mode 100644 app/Mcp/Tools/GetMeTool.php
create mode 100644 database/migrations/2026_05_13_124153_create_mcp_feature_flag.php
create mode 100644 tests/Feature/Mcp/GetMeToolFeatureTest.php
create mode 100644 tests/Unit/Component/ES/ChunkSizeTest.php
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20613-allow-owner-role-on-team-setup) $ git push
Enumerating objects: 40, done.
Counting objects: 100% (34/34), done.
Delta compression using up to 8 threads
Compressing objects: 100% (18/18), done.
Writing objects: 100% (18/18), 1.58 KiB | 1.58 MiB/s, done.
Total 18 (delta 15), reused 0 (delta 0), pack-reused 0
remote: Resolving deltas: 100% (15/15), completed with 13 local objects.
To github.com:jiminny/app.git
190239dfd4..ec1b261264 JY-20613-allow-owner-role-on-team-setup -> JY-20613-allow-owner-role-on-team-setup
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20613-allow-owner-role-on-team-setup) $ gbr
* JY-20613-allow-owner-role-on-team-setup
pipedrive-sdk-poc
master
JY-20903-update_activity-stage-on-opportunity-change
JY-20904-fix-update-es-on-activity-command
JY-20891-improve-sms-text-relays
JY-20725-handle-HS-search-rate-limit
JY-20818-move-AJ-reports-to-separated-datadog-metric
JY-20773-fix-automated-reports-user-pilot-tracking
JY-20157-AJ-report-not-send-notification
JY-20508-notify-before-AJ-report-expiration
JY-20372-ai-reports-promotion-pages
JY-20352-sync-opportunities-without-a-local-owner-user-id-is-null
JY-20738-debug-AJ-tracking-UP
a
JY-18909-automated-reports-ask-jiminny
JY-20692-fix-integration-app-[API_KEY]
JY-20553-debug-crm-sync-delays
JY-20698-fix-SF-activity-types-on-new-playbook
JY-20543-AJ-report-tracking
JY-20384-handle-auto-sync-with-no-access-to-event-type
JY-20458-ask-jiminny-user-definitions
JY-19666-fix-import-contacts-account-association
JY-19666-HS-import-contacts-and-accounts-batch-job
JY-20458-Ask-Jiminny-Reports
JY-20200-batch-update-CRM-objects-Salesforce
JY-19666-HS-webhooks-add-contact-and-company
JY-20348-trigger-setup-DI-layout-on-team-creation
JY-20326-refactor-info-message-in-command
JY-20317-fix-auto-log-delay-issue-on-all-channels-disabled
JY-20312-remove-on-update-change-last-synced-at-crm-configurations
JY-20306-SF-skip-auto-sync-for-task-based-playbook
JY-20192-remove-deleted-team-from-saved-search-filters
JY-20197-import-opportunity-batch-job
JY-20293-enable-status-field-for-pipedrive-deals
JY-20191-remove-commands-interactive-prompts
JY-20118-change-default-sync-strategy
JY-20183-add-cache-on-auto-log-delay
JY-20197-add-import-opportunity-batch-job
20118-hs-opportunity-make-webhook-strategy-default
JY-20118-make-default-hs-opportunity-sync-strategy-webhook-based
JY-20196-handle-opportunity-without-note
JY-20118-improve-opportunity-import
JY-20189-handle-activity-search-on-deleted-groups
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20613-allow-owner-role-on-team-setup) $ co JY-20725-handle-HS-search-rate-limit
M .env.local
M config/logging.php
Switched to branch 'JY-20725-handle-HS-search-rate-limit'
Your branch is behind 'origin/JY-20725-handle-HS-search-rate-limit' by 439 commits, and can be fast-forwarded.
(use "git pull" to update your local branch)
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20725-handle-HS-search-rate-limit) $ git pull
Updating 0f3e438941..bc6a3fce6b
Fast-forward
.gitignore | 3 +-
.windsurfrules | 168 ++---
CLAUDE.md | 1 +
app/Component/ActivityAnalytics/Service/CalculateTalkTimeOffsetsFromTranscription.php | 24 +-
app/Component/AiActivityType/Services/AiActivityTypeEligibilityChecker.php | 28 +-
app/Component/AiAutomation/Actions/PrepareUpdateDtoAction.php | 32 +-
app/Component/AiAutomation/Services/CrmFillingEligibilityChecker.php | 47 ++
app/Component/AiAutomation/TestCrmAiPromptService.php | 14 +
app/Component/AiCallScoring/Services/AiCallScoringEligibilityChecker.php | 9 +
app/Component/ES/ElasticSearchDocumentPartialUpdater.php | 13 +-
app/Component/ES/ElasticSearchWorkerManager.php | 86 ---
app/Component/ES/Processor/Actions/LoadDocumentsAction.php | 80 +--
app/Component/ES/Processor/EntityQueryBuilder.php | 12 +-
app/Component/ES/Processor/TargetEntitiesSelector.php | 2 +-
app/Component/ES/Processor/Traits/SkipActivityTrait.php | 25 -
app/Component/ES/Repositories/EsResetActivityRepository.php | 11 +-
app/Component/ES/Worker/ActivityWorker.php | 73 --
app/Component/ES/Worker/EntityWorker.php | 44 --
app/Component/ES/Worker/WorkerAmount.php | 60 --
app/Component/ES/Worker/WorkerInterface.php | 15 -
app/Component/ElasticSearch/Contract/Searchable.php | 4 +
app/Component/Encoding/Job/AnalyzeTrackChannelsJob.php | 20 +-
app/Component/Encoding/Service/GenerateSpeechFromSilenceService.php | 85 ++-
app/Component/FFMpeg/Services/GetSpeechIntervalsService.php | 18 +-
app/Component/LanguageDetection/Services/FindSpeechTimeService.php | 22 +-
app/Component/Nudge/Job/ProcessOrganisationImmediateNudgesJob.php | 218 +++++-
app/Component/ParagraphBreaker/Services/TranscriptionParagraphsService.php | 4 +
app/Component/ParticipantSpeech/Services/ParticipantSpeechesCreator.php | 33 +
app/Component/ParticipantSpeech/Services/ParticipantSpeechesDeleter.php | 15 +
app/Component/ParticipantSpeech/Services/ParticipantSpeechesProvider.php | 51 +-
app/Component/ParticipantSpeech/Services/ParticipantSpeechesUploader.php | 36 +
app/Component/ProphetAi/Exceptions/InsufficientTranscriptException.php | 11 +
app/Component/Transcription/DTO/Http/Transcription/AssemblyAI/AssemblyAI/NoAssemblyIdException.php | 11 +
app/Component/Transcription/DTO/Http/Transcription/AssemblyAI/AssemblyAI/SuccessfulResponse.php | 6 +
app/Component/Transcription/DTO/Http/Transcription/TranscriptionIsNotCorrectFormatException.php | 11 +
app/Component/Transcription/Diarization/Services/GetNormalizedParticipantSpeechesService.php | 23 +-
app/Component/Transcription/Diarization/Source/MeetingBotSource.php | 16 +-
app/Component/Transcription/TranscriptionProcessor/TranscriptionProcessor.php | 3 +
app/Console/Commands/Activities/ActivityHardDeleteCommand.php | 4 +-
app/Console/Commands/Activities/Copy.php | 2 +
app/Console/Commands/Activities/SetupIntegration/TwilioSetS3RecordingCredentialsCommand.php | 119 ++++
app/Console/Commands/Activities/UpdateActivityElasticSearchDocumentCommand.php | 10 +-
app/Console/Commands/Crm/BackfillOpportunityUserFromAccountCommand.php | 126 ++++
app/Console/Commands/Elasticsearch/AsyncUpdateEsActivities.php | 19 -
app/Console/Commands/Elasticsearch/AsyncUpdateEsEntities.php | 50 +-
app/Console/Commands/Elasticsearch/ResetAsyncElasticSearchCommand.php | 30 +-
app/Console/Commands/GeckoExport/GeckoExportParticipantSpeechesCommand.php | 14 +-
app/Console/Commands/IssueMcpTokenCommand.php | 84 +++
app/Console/Commands/JiminnyDebugCommand.php | 7 +-
app/Console/Commands/Tracks/CleanupActivityTracksCommand.php | 2 +-
app/Console/Kernel.php | 6 +-
app/Contracts/Services/Calendar/CalendarTrait.php | 80 ++-
app/Events/AutomatedReports/AutomatedReportGenerated.php | 3 +
app/Http/Controllers/API/AiCallScoring/AiScorecardController.php | 7 +-
app/Http/Controllers/API/TeamAiAutomationController.php | 8 +
app/Http/Controllers/CustomerApi/CustomerApiController.php | 4 +-
app/Http/Controllers/Kiosk/ActivityController.php | 58 +-
app/Http/Controllers/Settings/PlaybookController.php | 15 +-
app/Http/Kernel.php | 23 +
app/Http/Middleware/McpAuditMiddleware.php | 156 ++++
app/Http/Middleware/McpTierMiddleware.php | 54 ++
app/Http/Requests/API/V2/ZapierUploadActivityRequest.php | 28 +-
app/Jobs/Activity/Import/ImportTwilioVideoSpeechesJob.php | 25 +-
app/Jobs/Activity/Import/IsActivityReadyForProcessingJob.php | 10 +-
app/Jobs/Calendar/SetupCalendarSync.php | 21 +-
app/Jobs/ImportRemoteTrackJob.php | 96 ++-
app/Jobs/Mailbox/EmailTextRelay.php | 15 +-
app/Mcp/Contracts/McpCallRepositoryInterface.php | 30 +
app/Mcp/DTO/ListCallsFilters.php | 29 +
app/Mcp/Errors/McpError.php | 123 ++++
app/Mcp/Repositories/McpActivityHydrator.php | 145 ++++
app/Mcp/Repositories/McpCallRepository.php | 84 +++
app/Mcp/Repositories/McpElasticCallRepository.php | 171 +++++
app/Mcp/Servers/JiminnyServer.php | 38 +
app/Mcp/Tools/ListCallsTool.php | 205 ++++++
app/Models/Activity.php | 10 +-
app/Models/Activity/Transcription.php | 17 +-
app/Models/ElasticSearch/OpportunityElasticSearchTrait.php | 5 +
app/Models/Participant.php | 1 +
app/Providers/AppServiceProvider.php | 22 +
app/Repositories/Crm/ContactRepository.php | 69 +-
app/Repositories/ParticipantSpeechRepository.php | 13 +-
app/Services/Activity/ParticipantsService.php | 19 +-
app/Services/Activity/Twilio/S3RecordingCredentialsService.php | 82 +++
app/Services/ActivityService.php | 21 +-
app/Services/Calendar/CalendarActivityService.php | 46 ++
app/Services/Calendar/Command/ImportParticipants.php | 1 +
app/Services/Calendar/Command/MapActivityData.php | 106 +--
app/Services/Calendar/GoogleCalendarService.php | 12 +-
app/Services/Crm/Close/Processor/OpportunityProcessor.php | 2 +-
app/Services/Crm/Close/Service.php | 22 +-
app/Services/Crm/Copper/Service.php | 12 +-
app/Services/Crm/Hubspot/Service.php | 154 +++-
app/Services/Crm/Hubspot/ServiceTraits/OpportunitySyncTrait.php | 88 ++-
app/Services/Crm/IntegrationApp/ServiceTraits/SyncCrmEntitiesTrait.php | 22 +-
app/Services/Crm/Pipedrive/Service.php | 17 +-
app/Services/Crm/Salesforce/Service.php | 42 +-
app/Services/Mail/Office/EmailApiClient.php | 129 +---
app/Services/RecallAI/Commands/ScheduleBotCommand.php | 39 +-
app/Services/RecallAI/RecallAIService.php | 22 +-
composer.json | 3 +-
composer.lock | 87 ++-
config/mcp.php | 23 +
database/migrations/2026_04_30_120000_create_mcp_audit_log_table.php | 36 +
docs/mcp/explorer/explorer.html | 697 ++++++++++++++++++
docs/mcp/explorer/explorer.template.html | 697 ++++++++++++++++++
docs/mcp/explorer/generate.js | 215 ++++++
docs/mcp/explorer/tool-explorer-meta.json | 11 +
docs/mcp/tools-list.json | 2536 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
docs/mcp/tools.md | 621 ++++++++++++++++
front-end/package.json | 4 +-
front-end/src/components/Settings/OrgSettings/AiAutomation/CrmFilling/TemplateFieldForm.vue | 28 +-
front-end/src/components/Settings/OrgSettings/Playbooks/AddEditPlaybook.vue | 10 +
front-end/src/components/playback/comments/ActivityComment.less | 10 +-
front-end/src/components/shared/PromptTester/PromptTester.vue | 12 +-
front-end/src/components/shared/__tests__/PromptTester.spec.js | 35 +
front-end/src/components/shared/modals/EntityPickerModal/__tests__/useEntitiesCache.spec.ts | 37 +
front-end/src/components/shared/modals/EntityPickerModal/useEntitiesCache.ts | 9 +
front-end/yarn.lock | 16 +-
phpstan-baseline.neon | 50 --
routes/api.php | 11 +
sonar-project.properties | 91 ++-
tests/Feature/Component/Nudge/ProcessOrganisationImmediateNudgesJobTest.php | 534 ++++++++++++++
tests/Feature/Jobs/ImportRemoteTrackJobTest.php | 283 +++++++-
tests/Feature/Mcp/IssueMcpTokenCommandTest.php | 53 ++
tests/Feature/Mcp/ListCallsToolElasticFeatureTest.php | 155 ++++
tests/Feature/Mcp/ListCallsToolFeatureTest.php | 352 ++++++++++
tests/Feature/Mcp/McpTestHelpersTrait.php | 77 ++
tests/Feature/Services/Team/TeamDeleteHandlers/Retention/RetentionRepositoryHandlerTest.php | 1 +
tests/Stubs/SentryStub.php | 18 +
tests/Unit/Component/ActivityAnalytics/Service/CalculateTalkTimeOffsetFromTranscriptionTest.php | 28 +-
tests/Unit/Component/AiActivityType/Services/AiActivityTypeEligibilityCheckerTest.php | 103 ++-
tests/Unit/Component/AiAutomation/Actions/PrepareUpdateDtoActionTest.php | 91 +++
tests/Unit/Component/AiAutomation/Services/CrmFillingEligibilityCheckerTest.php | 124 ++++
tests/Unit/Component/AiAutomation/TestCrmAiPromptServiceTest.php | 67 +-
tests/Unit/Component/AiCallScoring/Services/AiCallScoringEligibilityCheckerTest.php | 55 ++
tests/Unit/Component/ES/ElasticSearchWorkerManagerTest.php | 135 ----
tests/Unit/Component/ES/Processor/Actions/LoadDocumentsActionTest.php | 220 ++++++
tests/Unit/Component/ES/Processor/EntityQueryBuilderTest.php | 21 +-
tests/Unit/Component/ES/Processor/Traits/SkipActivityTraitTest.php | 51 --
tests/Unit/Component/ES/Worker/ActivityWorkerTest.php | 174 -----
tests/Unit/Component/ES/Worker/EntityWorkerTest.php | 97 ---
tests/Unit/Component/ES/Worker/WorkerAmountTest.php | 116 ---
tests/Unit/Component/Encoding/Job/AnalyzeTrackChannelsJobTest.php | 52 +-
tests/Unit/Component/Encoding/Service/GenerateSpeechFromSilenceServiceTest.php | 171 ++---
tests/Unit/Component/FFMpeg/Services/GetSpeechIntervalsTest.php | 36 +-
tests/Unit/Component/LanguageDetection/Services/FindSpeechTimeServiceTest.php | 20 +-
tests/Unit/Component/MobileSettings/MobileSettingsControllerTest.php | 5 +-
tests/Unit/Component/ParticipantSpeech/Services/ParticipantSpeechesCreatorTest.php | 75 ++
tests/Unit/Component/ParticipantSpeech/Services/ParticipantSpeechesDeleterTest.php | 63 ++
tests/Unit/Component/ParticipantSpeech/Services/ParticipantSpeechesProviderTest.php | 134 ++++
tests/Unit/Component/ParticipantSpeech/Services/ParticipantSpeechesUploaderTest.php | 57 ++
tests/Unit/Component/Transcription/Diarization/Services/GetNormalizedParticipantSpeechesServiceTest.php | 51 +-
tests/Unit/Component/Transcription/Diarization/Source/MeetingBotSourceTest.php | 29 +-
tests/Unit/Contracts/Services/Calendar/CalendarTraitTest.php | 58 +-
tests/Unit/Http/Controllers/Kiosk/ActivityControllerTest.php | 159 +++++
tests/Unit/Jobs/Activity/Import/ImportTwilioVideoSpeechesJobTest.php | 22 +-
tests/Unit/Jobs/Activity/Import/IsActivityReadyForProcessingJobTest.php | 26 +-
tests/Unit/Jobs/Calendar/SetupCalendarSyncTest.php | 25 -
tests/Unit/Services/Activity/ParticipantsServiceTest.php | 12 +-
tests/Unit/Services/Activity/Twilio/S3RecordingCredentialsServiceTest.php | 180 +++++
tests/Unit/Services/ActivityServiceTest.php | 132 ++++
tests/Unit/Services/Calendar/CalendarActivityServiceTest.php | 150 +++-
tests/Unit/Services/Calendar/Command/ImportParticipantsTest.php | 6 +-
tests/Unit/Services/Calendar/Command/MapActivityDataTest.php | 78 +-
tests/Unit/Services/Calendar/GoogleCalendarServiceTest.php | 116 +++
tests/Unit/Services/Crm/Close/ServiceTest.php | 165 +++++
tests/Unit/Services/Crm/Hubspot/ServiceTest.php | 272 ++++++-
tests/Unit/Services/Crm/Hubspot/ServiceTraits/OpportunitySyncTest.php | 25 +-
tests/Unit/Services/Crm/Hubspot/ServiceTraits/OpportunitySyncTraitMatchActivitiesTest.php | 3 +-
tests/Unit/Services/Crm/IntegrationApp/ServiceTraits/SyncCrmEntitiesTraitOpportunitiesTest.php | 40 ++
tests/Unit/Services/Crm/Pipedrive/ImportOpportunityMatchActivitiesTest.php | 2 +
tests/Unit/Services/Crm/Salesforce/ServiceTest.php | 139 ++++
tests/Unit/Services/Mail/Office/EmailApiClientTest.php | 195 ++---
tests/Unit/Services/RecallAI/RecallAIServiceTest.php | 24 +-
175 files changed, 12562 insertions(+), 2162 deletions(-)
create mode 120000 CLAUDE.md
create mode 100644 app/Component/AiAutomation/Services/CrmFillingEligibilityChecker.php
delete mode 100644 app/Component/ES/ElasticSearchWorkerManager.php
delete mode 100644 app/Component/ES/Processor/Traits/SkipActivityTrait.php
delete mode 100644 app/Component/ES/Worker/ActivityWorker.php
delete mode 100644 app/Component/ES/Worker/EntityWorker.php
delete mode 100644 app/Component/ES/Worker/WorkerAmount.php
delete mode 100644 app/Component/ES/Worker/WorkerInterface.php
create mode 100644 app/Component/ProphetAi/Exceptions/InsufficientTranscriptException.php
create mode 100644 app/Component/Transcription/DTO/Http/Transcription/AssemblyAI/AssemblyAI/NoAssemblyIdException.php
create mode 100644 app/Component/Transcription/DTO/Http/Transcription/TranscriptionIsNotCorrectFormatException.php
create mode 100644 app/Console/Commands/Activities/SetupIntegration/TwilioSetS3RecordingCredentialsCommand.php
create mode 100644 app/Console/Commands/Crm/BackfillOpportunityUserFromAccountCommand.php
delete mode 100644 app/Console/Commands/Elasticsearch/AsyncUpdateEsActivities.php
create mode 100644 app/Console/Commands/IssueMcpTokenCommand.php
create mode 100644 app/Http/Middleware/McpAuditMiddleware.php
create mode 100644 app/Http/Middleware/McpTierMiddleware.php
create mode 100644 app/Mcp/Contracts/McpCallRepositoryInterface.php
create mode 100644 app/Mcp/DTO/ListCallsFilters.php
create mode 100644 app/Mcp/Errors/McpError.php
create mode 100644 app/Mcp/Repositories/McpActivityHydrator.php
create mode 100644 app/Mcp/Repositories/McpCallRepository.php
create mode 100644 app/Mcp/Repositories/McpElasticCallRepository.php
create mode 100644 app/Mcp/Servers/JiminnyServer.php
create mode 100644 app/Mcp/Tools/ListCallsTool.php
create mode 100644 app/Services/Activity/Twilio/S3RecordingCredentialsService.php
create mode 100644 config/mcp.php
create mode 100644 database/migrations/2026_04_30_120000_create_mcp_audit_log_table.php
create mode 100644 docs/mcp/explorer/explorer.html
create mode 100644 docs/mcp/explorer/explorer.template.html
create mode 100644 docs/mcp/explorer/generate.js
create mode 100644 docs/mcp/explorer/tool-explorer-meta.json
create mode 100644 docs/mcp/tools-list.json
create mode 100644 docs/mcp/tools.md
create mode 100644 front-end/src/components/shared/modals/EntityPickerModal/__tests__/useEntitiesCache.spec.ts
create mode 100644 tests/Feature/Component/Nudge/ProcessOrganisationImmediateNudgesJobTest.php
create mode 100644 tests/Feature/Mcp/IssueMcpTokenCommandTest.php
create mode 100644 tests/Feature/Mcp/ListCallsToolElasticFeatureTest.php
create mode 100644 tests/Feature/Mcp/ListCallsToolFeatureTest.php
create mode 100644 tests/Feature/Mcp/McpTestHelpersTrait.php
create mode 100644 tests/Stubs/SentryStub.php
create mode 100644 tests/Unit/Component/AiAutomation/Services/CrmFillingEligibilityCheckerTest.php
delete mode 100644 tests/Unit/Component/ES/ElasticSearchWorkerManagerTest.php
create mode 100644 tests/Unit/Component/ES/Processor/Actions/LoadDocumentsActionTest.php
delete mode 100644 tests/Unit/Component/ES/Processor/Traits/SkipActivityTraitTest.php
delete mode 100644 tests/Unit/Component/ES/Worker/ActivityWorkerTest.php
delete mode 100644 tests/Unit/Component/ES/Worker/EntityWorkerTest.php
delete mode 100644 tests/Unit/Component/ES/Worker/WorkerAmountTest.php
create mode 100644 tests/Unit/Component/ParticipantSpeech/Services/ParticipantSpeechesCreatorTest.php
create mode 100644 tests/Unit/Http/Controllers/Kiosk/ActivityControllerTest.php
create mode 100644 tests/Unit/Services/Activity/Twilio/S3RecordingCredentialsServiceTest.php
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20725-handle-HS-search-rate-limit) $ git status
On branch master
Your branch is behind 'origin/master' by 114 commits, and can be fast-forwarded.
(use "git pull" to update your local branch)
Changes not staged for commit:
(use "git add <file>..." to update what will be committed)
(use "git restore <file>..." to discard changes in working directory)
modified: .env.local
modified: app/Component/SCIM/Constants.php
modified: app/Component/SCIM/ScimProvisioning.php
modified: app/Component/Twilio/Conference/ConferenceManager/SoftPhoneManager.php
modified: app/Console/Commands/JiminnyDebugCommand.php
modified: app/DTO/SCIM/AAD/Request/CoreUserRequest.php
modified: app/DTO/SCIM/AAD/Response/CoreUser.php
modified: app/Services/Telephony/TextMessagingService.php
modified: config/logging.php
Untracked files:
(use "git add <file>..." to include in what will be committed)
.env.nikilocal
.env.other
WEBHOOK_FILTERING_IMPLEMENTATION.md
app/Component/SCIM/Mutators/Attributes/User/RoleAttr.php
app/Console/Commands/Crm/Hubspot/SimulateWebhooksCommand.php
app/Console/Commands/Reports/CreateMockAskJiminnyReportResultCommand.php
app/Rules/ListenerRoleCannotHaveAdminOrManagerPermissionRule.php
ids.txt
public/favicon.ico
raw_sql_query.sql
tests/Unit/Component/SCIM/Mutators/Attributes/User/RoleAttrTest.php
tests/Unit/Policies/CanAccessAiReportsTest.php
tests/Unit/Rules/ListenerRoleCannotHaveAdminOrManagerPermissionRuleTest.php
no changes added to commit (use "git add" and/or "git commit -a")
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (master) $ git pull
remote: Enumerating objects: 306, done.
remote: Counting objects: 100% (299/299), done.
remote: Compressing objects: 100% (183/183), done.
remote: Total 306 (delta 213), reused 171 (delta 116), pack-reused 7 (from 1)
Receiving objects: 100% (306/306), 80.12 KiB | 1000.00 KiB/s, done.
Resolving deltas: 100% (213/213), completed with 53 local objects.
From github.com:jiminny/app
90bca4e4b2..5604af40cf master -> origin/master
4e7078fd8b..0b8343d179 JY-18091-upgrade-to-php-8-5 -> origin/JY-18091-upgrade-to-php-8-5
098eeaa087..d5a447e492 JY-20613-allow-owner-role-on-team-setup -> origin/JY-20613-allow-owner-role-on-team-setup
c3a76ace91..af65249d0f JY-20749-user-can-view-recorded-meetings -> origin/JY-20749-user-can-view-recorded-meetings
d94a285ae7..7ce96cb5fe JY-20808-low-priority-indexing-queue -> origin/JY-20808-low-priority-indexing-queue
* [new branch] JY-20842-remove-partial-updater -> origin/JY-20842-remove-partial-updater
* [new branch] JY-20920-fix-participant-flip -> origin/JY-20920-fix-participant-flip
* [new branch] secfix/npm-20260519 -> origin/secfix/npm-20260519
Updating cb4ebf0c36..5604af40cf
Fast-forward
app/Component/ES/ChunkSize.php | 54 +++++++++++++++++++
app/Component/ES/Processor/DTOs/SelectionList.php | 4 +-
app/Component/ES/Processor/TargetEntitiesSelector.php | 19 ++++---
app/Component/MeetingBot/Service/ParticipantMatcher.php | 46 ++++++++++++----
app/Exceptions/RateLimitException.php | 19 ++++++-
app/Http/Middleware/McpTierMiddleware.php | 27 ++--------
app/Jobs/Crm/MatchActivityCrmData.php | 47 ++++++++++++----
app/Jobs/Middleware/HandleHubspotRateLimit.php | 42 +++++++++++++++
app/Mcp/Servers/JiminnyServer.php | 2 +
app/Mcp/Tools/GetMeTool.php | 157 +++++++++++++++++++++++++++++++++++++++++++++++++++++
app/Models/Feature/FeatureEnum.php | 1 +
app/Services/Activity/HubSpot/ProviderResolver.php | 4 +-
app/Services/Activity/HubSpot/ProviderResolverInterface.php | 2 +-
app/Services/Activity/HubSpot/Providers/Provider.php | 2 +-
app/Services/Activity/HubSpot/Providers/ProviderKixie.php | 2 +-
app/Services/Activity/HubSpot/Providers/ProviderOrum.php | 2 +-
app/Services/Activity/HubSpot/Providers/ProviderTwilio.php | 2 +-
app/Services/Activity/HubSpot/Providers/ProviderTwilioFlex.php | 5 +-
app/Services/Activity/HubSpot/Service.php | 97 +++++++++++++++++++++++++++------
app/Services/Crm/Hubspot/Client.php | 132 +++++++++++++++++++++++++++++++++++++++++++++
app/Services/Crm/Hubspot/HubspotClientInterface.php | 15 ++++++
app/Services/Crm/Hubspot/Pagination/HubspotPaginationService.php | 21 ++++----
app/Services/Crm/Hubspot/Pagination/PaginationState.php | 2 +-
database/migrations/2026_05_13_124153_create_mcp_feature_flag.php | 25 +++++++++
tests/Feature/Mcp/GetMeToolFeatureTest.php | 140 +++++++++++++++++++++++++++++++++++++++++++++++
tests/Feature/Mcp/ListCallsToolFeatureTest.php | 2 +-
tests/Feature/Mcp/McpTestHelpersTrait.php | 19 ++++++-
tests/Unit/Component/ES/ChunkSizeTest.php | 50 +++++++++++++++++
tests/Unit/Component/ES/Processor/DTOs/SelectionListTest.php | 27 +++++++---
tests/Unit/Component/ES/Processor/TargetEntitiesSelectorTest.php | 39 ++++++++------
tests/Unit/Component/MeetingBot/Service/ParticipantMatcherTest.php | 68 ++++++++++++++++++++++-
tests/Unit/Exceptions/RateLimitExceptionTest.php | 56 +++++++++++++++++++
tests/Unit/Jobs/Crm/MatchActivityCrmDataTest.php | 8 +--
tests/Unit/Jobs/Middleware/HandleHubspotRateLimitTest.php | 151 +++++++++++++++++++++++++++++++++++++++++++++++++++
tests/Unit/Services/Activity/HubSpot/ServiceTest.php | 109 +++++++++++++++++++++++++++++++++++++
tests/Unit/Services/Crm/Hubspot/ClientTest.php | 250 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
tests/Unit/Services/Crm/Hubspot/Pagination/HubspotPaginationServiceTest.php | 283 +++++++++++++++++++++---------------------------------------------------------------------------
37 files changed, 1587 insertions(+), 344 deletions(-)
create mode 100644 app/Component/ES/ChunkSize.php
create mode 100644 app/Jobs/Middleware/HandleHubspotRateLimit.php
create mode 100644 app/Mcp/Tools/GetMeTool.php
create mode 100644 database/migrations/2026_05_13_124153_create_mcp_feature_flag.php
create mode 100644 tests/Feature/Mcp/GetMeToolFeatureTest.php
create mode 100644 tests/Unit/Component/ES/ChunkSizeTest.php
create mode 100644 tests/Unit/Exceptions/RateLimitExceptionTest.php
create mode 100644 tests/Unit/Jobs/Middleware/HandleHubspotRateLimitTest.php
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (master) $ git pull
Already up to date.
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (master) $ co -b JY-20676-delete-report-related-objects
Switched to a new branch 'JY-20676-delete-report-related-objects'
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20676-delete-report-related-objects) $ csfix
docker exec -it docker_lamp_1 ./vendor/bin/php-cs-fixer fix --config=.php-cs-fixer.dist.php -v --using-cache=no --diff
PHP CS Fixer 3.87.1 Alexander by Fabien Potencier, Dariusz Ruminski and contributors.
PHP runtime: 8.3.30
Running 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!
Loaded config default from ".php-cs-fixer.dist.php".
5690/5690 [▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓] 100%
1) app/Console/Commands/JiminnyDebugCommand.php (statement_indentation, blank_line_before_statement)
---------- begin diff ----------
--- /home/jiminny/app/Console/Commands/JiminnyDebugCommand.php
+++ /home/jiminny/app/Console/Commands/JiminnyDebugCommand.php
@@ -23,6 +23,7 @@
if ($action === 'redis-set') {
$this->testRedisSet();
+
return;
}
@@ -45,7 +46,7 @@
$ttl = 60;
try {
-// $result = Redis::set($testKey, $testValue, 'EX', $ttl, 'NX');
+ // $result = Redis::set($testKey, $testValue, 'EX', $ttl, 'NX');
$result = Redis::set($testKey, $testValue, ['nx', 'ex' => $ttl]);
if ($result) {
----------- end diff -----------
Fixed 1 of 5690 files i...
|
[{"role":"AXTextArea","text [{"role":"AXTextArea","text":"Last login: Mon May 18 09:17:28 on ttys007\n\nPoetry could not find a pyproject.toml file in /Users/lukas/jiminny/app or its parents\n\nPoetry could not find a pyproject.toml file in /Users/lukas/jiminny/app or its parents\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (pipedrive-sdk-poc) $ co master\nerror: Your local changes to the following files would be overwritten by checkout:\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tPIPEDRIVE_V2_MIGRATION_TICKETS.md\nPlease commit your changes or stash them before you switch branches.\nAborting\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (pipedrive-sdk-poc) $ git pull\nremote: Enumerating objects: 1047, done.\nremote: Counting objects: 100% (832/832), done.\nremote: Compressing objects: 100% (298/298), done.\nremote: Total 1047 (delta 634), reused 596 (delta 534), pack-reused 215 (from 3)\nReceiving objects: 100% (1047/1047), 353.16 KiB | 1.56 MiB/s, done.\nResolving deltas: 100% (687/687), completed with 107 local objects.\nFrom github.com:jiminny/app\n 907c54896c..34656c53ed pipedrive-sdk-poc -> origin/pipedrive-sdk-poc\n 03325ec50f..4e7078fd8b JY-18091-upgrade-to-php-8-5 -> origin/JY-18091-upgrade-to-php-8-5\n e7d231e163..bc6a3fce6b JY-20725-handle-HS-search-rate-limit -> origin/JY-20725-handle-HS-search-rate-limit\n * [new branch] JY-20749-user-can-view-recorded-meetings -> origin/JY-20749-user-can-view-recorded-meetings\n 98ca281a04..e0351be069 JY-20808-low-priority-indexing-queue -> origin/JY-20808-low-priority-indexing-queue\n 569abb5149..3906a9238a JY-20835-mcp-enable-users-to-get-a-list-of-deals-and-their-details -> origin/JY-20835-mcp-enable-users-to-get-a-list-of-deals-and-their-details\n ad6c2a86e8..50eb6afba9 JY-20846-mcp-enable-the-ai-to-know-details-about-the-user -> origin/JY-20846-mcp-enable-the-ai-to-know-details-about-the-user\n * [new branch] JY-20893-chunk-control-per-update-target -> origin/JY-20893-chunk-control-per-update-target\n 31c62924a5..cb4ebf0c36 master -> origin/master\nUpdating 907c54896c..34656c53ed\nFast-forward\n PIPEDRIVE_V2_MIGRATION_TICKETS.md | 52 ++++++++++++++++++++++++++++++++++++++++++++++++++++\n 1 file changed, 52 insertions(+)\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (pipedrive-sdk-poc) $ co master\nM\u0000\u0000\u0000\u0000\u0000\u0000\t.env.local\nM\u0000\u0000\u0000\u0000\u0000\u0000\tconfig/logging.php\nSwitched to branch 'master'\nYour branch is behind 'origin/master' by 31 commits, and can be fast-forwarded.\n (use \"git pull\" to update your local branch)\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (master) $ git pull\nUpdating 31c62924a5..cb4ebf0c36\nFast-forward\n app/Component/ES/Processor/Traits/SelectEntityListTrait.php | 20 ------\n app/Services/Calendar/CalendarActivityService.php | 46 +++++++++++++\n app/Services/Calendar/Command/MapActivityData.php | 106 +++-------------------------\n docs/mcp/explorer/explorer.html | 104 +++++++++++++++++++++++++---\n docs/mcp/explorer/explorer.template.html | 102 ++++++++++++++++++++++++---\n docs/mcp/tools-list.json | 373 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++-------\n docs/mcp/tools.md | 117 +++++++++++++++++++++++--------\n tests/Unit/Component/ES/AsyncUpdateElasticSearchTest.php | 16 +----\n tests/Unit/Component/ES/Listeners/UpdateMultipleTargetsListenerTest.php | 10 ---\n tests/Unit/Component/ES/Listeners/UpdateSingleTargetListenerTest.php | 6 --\n tests/Unit/Component/ES/Processor/TargetEntitiesSelectorTest.php | 9 ---\n tests/Unit/Component/ES/Processor/Traits/SelectEntityListTraitTest.php | 15 ++--\n tests/Unit/Component/ES/UpdateProcessManagerTest.php | 2 -\n tests/Unit/Services/Calendar/CalendarActivityServiceTest.php | 150 ++++++++++++++++++++++++++++++++++++++--\n tests/Unit/Services/Calendar/Command/MapActivityDataTest.php | 78 ++-------------------\n 15 files changed, 832 insertions(+), 322 deletions(-)\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (master) $ co -b JY-20613-allow-owner-role-on-team-setup\nSwitched to a new branch 'JY-20613-allow-owner-role-on-team-setup'\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20613-allow-owner-role-on-team-setup) $ csfix\ndocker exec -it docker_lamp_1 ./vendor/bin/php-cs-fixer fix --config=.php-cs-fixer.dist.php -v --using-cache=no --diff \nPHP CS Fixer 3.87.1 Alexander by Fabien Potencier, Dariusz Ruminski and contributors.\nPHP runtime: 8.3.30\nRunning analysis on 7 cores with 10 files per process.\nParallel runner is an experimental feature and may be unstable, use it at your own risk. Feedback highly appreciated!\nLoaded config default from \".php-cs-fixer.dist.php\".\n 5682/5682 [▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓] 100%\n\n\nFixed 0 of 5682 files in 56.978 seconds, 67.00 MB memory used\n\nWhat's next:\n Try Docker Debug for seamless, persistent debugging tools in any container or image → docker debug docker_lamp_1\n Learn more at https://docs.docker.com/go/debug-cli/\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20613-allow-owner-role-on-team-setup) $ ;xd\ndocker exec -it docker_lamp_1 bash -c \"mv /usr/local/etc/php/conf.d/xdebug.ini ~/xdebug.ini\"\n\nWhat's next:\n Try Docker Debug for seamless, persistent debugging tools in any container or image → docker debug docker_lamp_1\n Learn more at https://docs.docker.com/go/debug-cli/\ndocker exec -it docker_lamp_1 supervisorctl restart all\njiminny-worker-processing-2:jiminny-worker-processing-2_00: stopped\njiminny-worker-processing-3:jiminny-worker-processing-3_00: stopped\njiminny-worker-processing-4:jiminny-worker-processing-4_00: stopped\njiminny-worker-processing-5:jiminny-worker-processing-5_00: stopped\njiminny-worker-processing-delayed:jiminny-worker-processing-delayed_00: stopped\nworker-analytics:worker-analytics_00: stopped\nworker-crm-update:worker-crm-update_00: stopped\nworker-download:worker-download_00: stopped\nworker-nudges:worker-nudges_00: stopped\nartisan-schedule:artisan-schedule_00: stopped\nworker-emails:worker-emails_00: stopped\nworker-calendar:worker-calendar_00: stopped\nworker:worker_00: stopped\nworker-conferences:worker-conferences_00: stopped\nworker-crm-sync:worker-crm-sync_00: stopped\njiminny-worker-processing-1:jiminny-worker-processing-1_00: stopped\nworker-audio:worker-audio_00: stopped\nworker-es-update:worker-es-update_00: stopped\nartisan-schedule:artisan-schedule_00: started\njiminny-worker-processing-1:jiminny-worker-processing-1_00: started\njiminny-worker-processing-2:jiminny-worker-processing-2_00: started\njiminny-worker-processing-3:jiminny-worker-processing-3_00: started\njiminny-worker-processing-4:jiminny-worker-processing-4_00: started\njiminny-worker-processing-5:jiminny-worker-processing-5_00: started\njiminny-worker-processing-delayed:jiminny-worker-processing-delayed_00: started\nworker:worker_00: started\nworker-analytics:worker-analytics_00: started\nworker-audio:worker-audio_00: started\nworker-calendar:worker-calendar_00: started\nworker-conferences:worker-conferences_00: started\nworker-crm-sync:worker-crm-sync_00: started\nworker-crm-update:worker-crm-update_00: started\nworker-download:worker-download_00: started\nworker-emails:worker-emails_00: started\nworker-es-update:worker-es-update_00: started\nworker-nudges:worker-nudges_00: started\n\nWhat's next:\n Try Docker Debug for seamless, persistent debugging tools in any container or image → docker debug docker_lamp_1\n Learn more at https://docs.docker.com/go/debug-cli/\ndocker exec -it docker_lamp_1 php -v\nPHP 8.3.30 (cli) (built: Mar 16 2026 22:32:32) (NTS)\nCopyright (c) The PHP Group\nZend Engine v4.3.30, Copyright (c) Zend Technologies\n with Zend OPcache v8.3.30, Copyright (c), by Zend Technologies\n\nWhat's next:\n Try Docker Debug for seamless, persistent debugging tools in any container or image → docker debug docker_lamp_1\n Learn more at https://docs.docker.com/go/debug-cli/\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20613-allow-owner-role-on-team-setup) $ csfix\ndocker exec -it docker_lamp_1 ./vendor/bin/php-cs-fixer fix --config=.php-cs-fixer.dist.php -v --using-cache=no --diff \nPHP CS Fixer 3.87.1 Alexander by Fabien Potencier, Dariusz Ruminski and contributors.\nPHP runtime: 8.3.30\nRunning analysis on 7 cores with 10 files per process.\nParallel runner is an experimental feature and may be unstable, use it at your own risk. Feedback highly appreciated!\nLoaded config default from \".php-cs-fixer.dist.php\".\n 5682/5682 [▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓] 100%\n\n\nFixed 0 of 5682 files in 49.910 seconds, 60.00 MB memory used\n\nWhat's next:\n Try Docker Debug for seamless, persistent debugging tools in any container or image → docker debug docker_lamp_1\n Learn more at https://docs.docker.com/go/debug-cli/\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20613-allow-owner-role-on-team-setup) $ git status\nOn branch JY-20613-allow-owner-role-on-team-setup\nYour branch is ahead of 'origin/JY-20613-allow-owner-role-on-team-setup' by 1 commit.\n (use \"git push\" to publish your local commits)\n\nChanges not staged for commit:\n (use \"git add <file>...\" to update what will be committed)\n (use \"git restore <file>...\" to discard changes in working directory)\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tmodified: .env.local\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tmodified: config/logging.php\n\nUntracked files:\n (use \"git add <file>...\" to include in what will be committed)\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\t.env.nikilocal\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\t.env.other\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tWEBHOOK_FILTERING_IMPLEMENTATION.md\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tapp/Console/Commands/Crm/Hubspot/SimulateWebhooksCommand.php\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tapp/Console/Commands/Reports/CreateMockAskJiminnyReportResultCommand.php\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tids.txt\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tpublic/favicon.ico\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\traw_sql_query.sql\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\ttests/Unit/Policies/CanAccessAiReportsTest.php\n\nno changes added to commit (use \"git add\" and/or \"git commit -a\")\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20613-allow-owner-role-on-team-setup) $ git pull\nremote: Enumerating objects: 248, done.\nremote: Counting objects: 100% (128/128), done.\nremote: Compressing objects: 100% (23/23), done.\nremote: Total 59 (delta 43), reused 44 (delta 33), pack-reused 0 (from 0)\nUnpacking objects: 100% (59/59), 10.48 KiB | 228.00 KiB/s, done.\nFrom github.com:jiminny/app\n b7df560451..190239dfd4 JY-20613-allow-owner-role-on-team-setup -> origin/JY-20613-allow-owner-role-on-team-setup\n e0351be069..d94a285ae7 JY-20808-low-priority-indexing-queue -> origin/JY-20808-low-priority-indexing-queue\n * [new branch] JY-20920-fix-participant-matcher -> origin/JY-20920-fix-participant-matcher\n cb4ebf0c36..90bca4e4b2 master -> origin/master\nMerge made by the 'ort' strategy.\n app/Component/ES/ChunkSize.php | 54 +++++++++++++++++++++++++++\n app/Component/ES/Processor/DTOs/SelectionList.php | 4 +-\n app/Component/ES/Processor/TargetEntitiesSelector.php | 19 ++++++----\n app/Http/Middleware/McpTierMiddleware.php | 27 +++-----------\n app/Mcp/Servers/JiminnyServer.php | 2 +\n app/Mcp/Tools/GetMeTool.php | 157 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++\n app/Models/Feature/FeatureEnum.php | 1 +\n database/migrations/2026_05_13_124153_create_mcp_feature_flag.php | 25 +++++++++++++\n front-end/src/components/Settings/Kiosk/modals/EditTeamModal/EditTeamModal.vue | 52 ++++++++++++++++++--------\n front-end/src/components/Settings/Kiosk/modals/EditTeamModal/__tests__/EditTeamModal.spec.js | 14 +++++++\n tests/Feature/Mcp/GetMeToolFeatureTest.php | 140 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++\n tests/Feature/Mcp/ListCallsToolFeatureTest.php | 2 +-\n tests/Feature/Mcp/McpTestHelpersTrait.php | 19 +++++++++-\n tests/Unit/Component/ES/ChunkSizeTest.php | 50 +++++++++++++++++++++++++\n tests/Unit/Component/ES/Processor/DTOs/SelectionListTest.php | 27 ++++++++++----\n tests/Unit/Component/ES/Processor/TargetEntitiesSelectorTest.php | 39 +++++++++++---------\n 16 files changed, 557 insertions(+), 75 deletions(-)\n create mode 100644 app/Component/ES/ChunkSize.php\n create mode 100644 app/Mcp/Tools/GetMeTool.php\n create mode 100644 database/migrations/2026_05_13_124153_create_mcp_feature_flag.php\n create mode 100644 tests/Feature/Mcp/GetMeToolFeatureTest.php\n create mode 100644 tests/Unit/Component/ES/ChunkSizeTest.php\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20613-allow-owner-role-on-team-setup) $ git push\nEnumerating objects: 40, done.\nCounting objects: 100% (34/34), done.\nDelta compression using up to 8 threads\nCompressing objects: 100% (18/18), done.\nWriting objects: 100% (18/18), 1.58 KiB | 1.58 MiB/s, done.\nTotal 18 (delta 15), reused 0 (delta 0), pack-reused 0\nremote: Resolving deltas: 100% (15/15), completed with 13 local objects.\nTo github.com:jiminny/app.git\n 190239dfd4..ec1b261264 JY-20613-allow-owner-role-on-team-setup -> JY-20613-allow-owner-role-on-team-setup\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20613-allow-owner-role-on-team-setup) $ gbr\n* JY-20613-allow-owner-role-on-team-setup\n pipedrive-sdk-poc\n master\n JY-20903-update_activity-stage-on-opportunity-change\n JY-20904-fix-update-es-on-activity-command\n JY-20891-improve-sms-text-relays\n JY-20725-handle-HS-search-rate-limit\n JY-20818-move-AJ-reports-to-separated-datadog-metric\n JY-20773-fix-automated-reports-user-pilot-tracking\n JY-20157-AJ-report-not-send-notification\n JY-20508-notify-before-AJ-report-expiration\n JY-20372-ai-reports-promotion-pages\n JY-20352-sync-opportunities-without-a-local-owner-user-id-is-null\n JY-20738-debug-AJ-tracking-UP\n a\n JY-18909-automated-reports-ask-jiminny\n JY-20692-fix-integration-app-token-auth-response-change\n JY-20553-debug-crm-sync-delays\n JY-20698-fix-SF-activity-types-on-new-playbook\n JY-20543-AJ-report-tracking\n JY-20384-handle-auto-sync-with-no-access-to-event-type\n JY-20458-ask-jiminny-user-definitions\n JY-19666-fix-import-contacts-account-association\n JY-19666-HS-import-contacts-and-accounts-batch-job\n JY-20458-Ask-Jiminny-Reports\n JY-20200-batch-update-CRM-objects-Salesforce\n JY-19666-HS-webhooks-add-contact-and-company\n JY-20348-trigger-setup-DI-layout-on-team-creation\n JY-20326-refactor-info-message-in-command\n JY-20317-fix-auto-log-delay-issue-on-all-channels-disabled\n JY-20312-remove-on-update-change-last-synced-at-crm-configurations\n JY-20306-SF-skip-auto-sync-for-task-based-playbook\n JY-20192-remove-deleted-team-from-saved-search-filters\n JY-20197-import-opportunity-batch-job\n JY-20293-enable-status-field-for-pipedrive-deals\n JY-20191-remove-commands-interactive-prompts\n JY-20118-change-default-sync-strategy\n JY-20183-add-cache-on-auto-log-delay\n JY-20197-add-import-opportunity-batch-job\n 20118-hs-opportunity-make-webhook-strategy-default\n JY-20118-make-default-hs-opportunity-sync-strategy-webhook-based\n JY-20196-handle-opportunity-without-note\n JY-20118-improve-opportunity-import\n JY-20189-handle-activity-search-on-deleted-groups\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20613-allow-owner-role-on-team-setup) $ co JY-20725-handle-HS-search-rate-limit\nM\u0000\u0000\u0000\u0000\u0000\u0000\t.env.local\nM\u0000\u0000\u0000\u0000\u0000\u0000\tconfig/logging.php\nSwitched to branch 'JY-20725-handle-HS-search-rate-limit'\nYour branch is behind 'origin/JY-20725-handle-HS-search-rate-limit' by 439 commits, and can be fast-forwarded.\n (use \"git pull\" to update your local branch)\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20725-handle-HS-search-rate-limit) $ git pull\nUpdating 0f3e438941..bc6a3fce6b\nFast-forward\n .gitignore | 3 +-\n .windsurfrules | 168 ++---\n CLAUDE.md | 1 +\n app/Component/ActivityAnalytics/Service/CalculateTalkTimeOffsetsFromTranscription.php | 24 +-\n app/Component/AiActivityType/Services/AiActivityTypeEligibilityChecker.php | 28 +-\n app/Component/AiAutomation/Actions/PrepareUpdateDtoAction.php | 32 +-\n app/Component/AiAutomation/Services/CrmFillingEligibilityChecker.php | 47 ++\n app/Component/AiAutomation/TestCrmAiPromptService.php | 14 +\n app/Component/AiCallScoring/Services/AiCallScoringEligibilityChecker.php | 9 +\n app/Component/ES/ElasticSearchDocumentPartialUpdater.php | 13 +-\n app/Component/ES/ElasticSearchWorkerManager.php | 86 ---\n app/Component/ES/Processor/Actions/LoadDocumentsAction.php | 80 +--\n app/Component/ES/Processor/EntityQueryBuilder.php | 12 +-\n app/Component/ES/Processor/TargetEntitiesSelector.php | 2 +-\n app/Component/ES/Processor/Traits/SkipActivityTrait.php | 25 -\n app/Component/ES/Repositories/EsResetActivityRepository.php | 11 +-\n app/Component/ES/Worker/ActivityWorker.php | 73 --\n app/Component/ES/Worker/EntityWorker.php | 44 --\n app/Component/ES/Worker/WorkerAmount.php | 60 --\n app/Component/ES/Worker/WorkerInterface.php | 15 -\n app/Component/ElasticSearch/Contract/Searchable.php | 4 +\n app/Component/Encoding/Job/AnalyzeTrackChannelsJob.php | 20 +-\n app/Component/Encoding/Service/GenerateSpeechFromSilenceService.php | 85 ++-\n app/Component/FFMpeg/Services/GetSpeechIntervalsService.php | 18 +-\n app/Component/LanguageDetection/Services/FindSpeechTimeService.php | 22 +-\n app/Component/Nudge/Job/ProcessOrganisationImmediateNudgesJob.php | 218 +++++-\n app/Component/ParagraphBreaker/Services/TranscriptionParagraphsService.php | 4 +\n app/Component/ParticipantSpeech/Services/ParticipantSpeechesCreator.php | 33 +\n app/Component/ParticipantSpeech/Services/ParticipantSpeechesDeleter.php | 15 +\n app/Component/ParticipantSpeech/Services/ParticipantSpeechesProvider.php | 51 +-\n app/Component/ParticipantSpeech/Services/ParticipantSpeechesUploader.php | 36 +\n app/Component/ProphetAi/Exceptions/InsufficientTranscriptException.php | 11 +\n app/Component/Transcription/DTO/Http/Transcription/AssemblyAI/AssemblyAI/NoAssemblyIdException.php | 11 +\n app/Component/Transcription/DTO/Http/Transcription/AssemblyAI/AssemblyAI/SuccessfulResponse.php | 6 +\n app/Component/Transcription/DTO/Http/Transcription/TranscriptionIsNotCorrectFormatException.php | 11 +\n app/Component/Transcription/Diarization/Services/GetNormalizedParticipantSpeechesService.php | 23 +-\n app/Component/Transcription/Diarization/Source/MeetingBotSource.php | 16 +-\n app/Component/Transcription/TranscriptionProcessor/TranscriptionProcessor.php | 3 +\n app/Console/Commands/Activities/ActivityHardDeleteCommand.php | 4 +-\n app/Console/Commands/Activities/Copy.php | 2 +\n app/Console/Commands/Activities/SetupIntegration/TwilioSetS3RecordingCredentialsCommand.php | 119 ++++\n app/Console/Commands/Activities/UpdateActivityElasticSearchDocumentCommand.php | 10 +-\n app/Console/Commands/Crm/BackfillOpportunityUserFromAccountCommand.php | 126 ++++\n app/Console/Commands/Elasticsearch/AsyncUpdateEsActivities.php | 19 -\n app/Console/Commands/Elasticsearch/AsyncUpdateEsEntities.php | 50 +-\n app/Console/Commands/Elasticsearch/ResetAsyncElasticSearchCommand.php | 30 +-\n app/Console/Commands/GeckoExport/GeckoExportParticipantSpeechesCommand.php | 14 +-\n app/Console/Commands/IssueMcpTokenCommand.php | 84 +++\n app/Console/Commands/JiminnyDebugCommand.php | 7 +-\n app/Console/Commands/Tracks/CleanupActivityTracksCommand.php | 2 +-\n app/Console/Kernel.php | 6 +-\n app/Contracts/Services/Calendar/CalendarTrait.php | 80 ++-\n app/Events/AutomatedReports/AutomatedReportGenerated.php | 3 +\n app/Http/Controllers/API/AiCallScoring/AiScorecardController.php | 7 +-\n app/Http/Controllers/API/TeamAiAutomationController.php | 8 +\n app/Http/Controllers/CustomerApi/CustomerApiController.php | 4 +-\n app/Http/Controllers/Kiosk/ActivityController.php | 58 +-\n app/Http/Controllers/Settings/PlaybookController.php | 15 +-\n app/Http/Kernel.php | 23 +\n app/Http/Middleware/McpAuditMiddleware.php | 156 ++++\n app/Http/Middleware/McpTierMiddleware.php | 54 ++\n app/Http/Requests/API/V2/ZapierUploadActivityRequest.php | 28 +-\n app/Jobs/Activity/Import/ImportTwilioVideoSpeechesJob.php | 25 +-\n app/Jobs/Activity/Import/IsActivityReadyForProcessingJob.php | 10 +-\n app/Jobs/Calendar/SetupCalendarSync.php | 21 +-\n app/Jobs/ImportRemoteTrackJob.php | 96 ++-\n app/Jobs/Mailbox/EmailTextRelay.php | 15 +-\n app/Mcp/Contracts/McpCallRepositoryInterface.php | 30 +\n app/Mcp/DTO/ListCallsFilters.php | 29 +\n app/Mcp/Errors/McpError.php | 123 ++++\n app/Mcp/Repositories/McpActivityHydrator.php | 145 ++++\n app/Mcp/Repositories/McpCallRepository.php | 84 +++\n app/Mcp/Repositories/McpElasticCallRepository.php | 171 +++++\n app/Mcp/Servers/JiminnyServer.php | 38 +\n app/Mcp/Tools/ListCallsTool.php | 205 ++++++\n app/Models/Activity.php | 10 +-\n app/Models/Activity/Transcription.php | 17 +-\n app/Models/ElasticSearch/OpportunityElasticSearchTrait.php | 5 +\n app/Models/Participant.php | 1 +\n app/Providers/AppServiceProvider.php | 22 +\n app/Repositories/Crm/ContactRepository.php | 69 +-\n app/Repositories/ParticipantSpeechRepository.php | 13 +-\n app/Services/Activity/ParticipantsService.php | 19 +-\n app/Services/Activity/Twilio/S3RecordingCredentialsService.php | 82 +++\n app/Services/ActivityService.php | 21 +-\n app/Services/Calendar/CalendarActivityService.php | 46 ++\n app/Services/Calendar/Command/ImportParticipants.php | 1 +\n app/Services/Calendar/Command/MapActivityData.php | 106 +--\n app/Services/Calendar/GoogleCalendarService.php | 12 +-\n app/Services/Crm/Close/Processor/OpportunityProcessor.php | 2 +-\n app/Services/Crm/Close/Service.php | 22 +-\n app/Services/Crm/Copper/Service.php | 12 +-\n app/Services/Crm/Hubspot/Service.php | 154 +++-\n app/Services/Crm/Hubspot/ServiceTraits/OpportunitySyncTrait.php | 88 ++-\n app/Services/Crm/IntegrationApp/ServiceTraits/SyncCrmEntitiesTrait.php | 22 +-\n app/Services/Crm/Pipedrive/Service.php | 17 +-\n app/Services/Crm/Salesforce/Service.php | 42 +-\n app/Services/Mail/Office/EmailApiClient.php | 129 +---\n app/Services/RecallAI/Commands/ScheduleBotCommand.php | 39 +-\n app/Services/RecallAI/RecallAIService.php | 22 +-\n composer.json | 3 +-\n composer.lock | 87 ++-\n config/mcp.php | 23 +\n database/migrations/2026_04_30_120000_create_mcp_audit_log_table.php | 36 +\n docs/mcp/explorer/explorer.html | 697 ++++++++++++++++++\n docs/mcp/explorer/explorer.template.html | 697 ++++++++++++++++++\n docs/mcp/explorer/generate.js | 215 ++++++\n docs/mcp/explorer/tool-explorer-meta.json | 11 +\n docs/mcp/tools-list.json | 2536 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++\n docs/mcp/tools.md | 621 ++++++++++++++++\n front-end/package.json | 4 +-\n front-end/src/components/Settings/OrgSettings/AiAutomation/CrmFilling/TemplateFieldForm.vue | 28 +-\n front-end/src/components/Settings/OrgSettings/Playbooks/AddEditPlaybook.vue | 10 +\n front-end/src/components/playback/comments/ActivityComment.less | 10 +-\n front-end/src/components/shared/PromptTester/PromptTester.vue | 12 +-\n front-end/src/components/shared/__tests__/PromptTester.spec.js | 35 +\n front-end/src/components/shared/modals/EntityPickerModal/__tests__/useEntitiesCache.spec.ts | 37 +\n front-end/src/components/shared/modals/EntityPickerModal/useEntitiesCache.ts | 9 +\n front-end/yarn.lock | 16 +-\n phpstan-baseline.neon | 50 --\n routes/api.php | 11 +\n sonar-project.properties | 91 ++-\n tests/Feature/Component/Nudge/ProcessOrganisationImmediateNudgesJobTest.php | 534 ++++++++++++++\n tests/Feature/Jobs/ImportRemoteTrackJobTest.php | 283 +++++++-\n tests/Feature/Mcp/IssueMcpTokenCommandTest.php | 53 ++\n tests/Feature/Mcp/ListCallsToolElasticFeatureTest.php | 155 ++++\n tests/Feature/Mcp/ListCallsToolFeatureTest.php | 352 ++++++++++\n tests/Feature/Mcp/McpTestHelpersTrait.php | 77 ++\n tests/Feature/Services/Team/TeamDeleteHandlers/Retention/RetentionRepositoryHandlerTest.php | 1 +\n tests/Stubs/SentryStub.php | 18 +\n tests/Unit/Component/ActivityAnalytics/Service/CalculateTalkTimeOffsetFromTranscriptionTest.php | 28 +-\n tests/Unit/Component/AiActivityType/Services/AiActivityTypeEligibilityCheckerTest.php | 103 ++-\n tests/Unit/Component/AiAutomation/Actions/PrepareUpdateDtoActionTest.php | 91 +++\n tests/Unit/Component/AiAutomation/Services/CrmFillingEligibilityCheckerTest.php | 124 ++++\n tests/Unit/Component/AiAutomation/TestCrmAiPromptServiceTest.php | 67 +-\n tests/Unit/Component/AiCallScoring/Services/AiCallScoringEligibilityCheckerTest.php | 55 ++\n tests/Unit/Component/ES/ElasticSearchWorkerManagerTest.php | 135 ----\n tests/Unit/Component/ES/Processor/Actions/LoadDocumentsActionTest.php | 220 ++++++\n tests/Unit/Component/ES/Processor/EntityQueryBuilderTest.php | 21 +-\n tests/Unit/Component/ES/Processor/Traits/SkipActivityTraitTest.php | 51 --\n tests/Unit/Component/ES/Worker/ActivityWorkerTest.php | 174 -----\n tests/Unit/Component/ES/Worker/EntityWorkerTest.php | 97 ---\n tests/Unit/Component/ES/Worker/WorkerAmountTest.php | 116 ---\n tests/Unit/Component/Encoding/Job/AnalyzeTrackChannelsJobTest.php | 52 +-\n tests/Unit/Component/Encoding/Service/GenerateSpeechFromSilenceServiceTest.php | 171 ++---\n tests/Unit/Component/FFMpeg/Services/GetSpeechIntervalsTest.php | 36 +-\n tests/Unit/Component/LanguageDetection/Services/FindSpeechTimeServiceTest.php | 20 +-\n tests/Unit/Component/MobileSettings/MobileSettingsControllerTest.php | 5 +-\n tests/Unit/Component/ParticipantSpeech/Services/ParticipantSpeechesCreatorTest.php | 75 ++\n tests/Unit/Component/ParticipantSpeech/Services/ParticipantSpeechesDeleterTest.php | 63 ++\n tests/Unit/Component/ParticipantSpeech/Services/ParticipantSpeechesProviderTest.php | 134 ++++\n tests/Unit/Component/ParticipantSpeech/Services/ParticipantSpeechesUploaderTest.php | 57 ++\n tests/Unit/Component/Transcription/Diarization/Services/GetNormalizedParticipantSpeechesServiceTest.php | 51 +-\n tests/Unit/Component/Transcription/Diarization/Source/MeetingBotSourceTest.php | 29 +-\n tests/Unit/Contracts/Services/Calendar/CalendarTraitTest.php | 58 +-\n tests/Unit/Http/Controllers/Kiosk/ActivityControllerTest.php | 159 +++++\n tests/Unit/Jobs/Activity/Import/ImportTwilioVideoSpeechesJobTest.php | 22 +-\n tests/Unit/Jobs/Activity/Import/IsActivityReadyForProcessingJobTest.php | 26 +-\n tests/Unit/Jobs/Calendar/SetupCalendarSyncTest.php | 25 -\n tests/Unit/Services/Activity/ParticipantsServiceTest.php | 12 +-\n tests/Unit/Services/Activity/Twilio/S3RecordingCredentialsServiceTest.php | 180 +++++\n tests/Unit/Services/ActivityServiceTest.php | 132 ++++\n tests/Unit/Services/Calendar/CalendarActivityServiceTest.php | 150 +++-\n tests/Unit/Services/Calendar/Command/ImportParticipantsTest.php | 6 +-\n tests/Unit/Services/Calendar/Command/MapActivityDataTest.php | 78 +-\n tests/Unit/Services/Calendar/GoogleCalendarServiceTest.php | 116 +++\n tests/Unit/Services/Crm/Close/ServiceTest.php | 165 +++++\n tests/Unit/Services/Crm/Hubspot/ServiceTest.php | 272 ++++++-\n tests/Unit/Services/Crm/Hubspot/ServiceTraits/OpportunitySyncTest.php | 25 +-\n tests/Unit/Services/Crm/Hubspot/ServiceTraits/OpportunitySyncTraitMatchActivitiesTest.php | 3 +-\n tests/Unit/Services/Crm/IntegrationApp/ServiceTraits/SyncCrmEntitiesTraitOpportunitiesTest.php | 40 ++\n tests/Unit/Services/Crm/Pipedrive/ImportOpportunityMatchActivitiesTest.php | 2 +\n tests/Unit/Services/Crm/Salesforce/ServiceTest.php | 139 ++++\n tests/Unit/Services/Mail/Office/EmailApiClientTest.php | 195 ++---\n tests/Unit/Services/RecallAI/RecallAIServiceTest.php | 24 +-\n 175 files changed, 12562 insertions(+), 2162 deletions(-)\n create mode 120000 CLAUDE.md\n create mode 100644 app/Component/AiAutomation/Services/CrmFillingEligibilityChecker.php\n delete mode 100644 app/Component/ES/ElasticSearchWorkerManager.php\n delete mode 100644 app/Component/ES/Processor/Traits/SkipActivityTrait.php\n delete mode 100644 app/Component/ES/Worker/ActivityWorker.php\n delete mode 100644 app/Component/ES/Worker/EntityWorker.php\n delete mode 100644 app/Component/ES/Worker/WorkerAmount.php\n delete mode 100644 app/Component/ES/Worker/WorkerInterface.php\n create mode 100644 app/Component/ProphetAi/Exceptions/InsufficientTranscriptException.php\n create mode 100644 app/Component/Transcription/DTO/Http/Transcription/AssemblyAI/AssemblyAI/NoAssemblyIdException.php\n create mode 100644 app/Component/Transcription/DTO/Http/Transcription/TranscriptionIsNotCorrectFormatException.php\n create mode 100644 app/Console/Commands/Activities/SetupIntegration/TwilioSetS3RecordingCredentialsCommand.php\n create mode 100644 app/Console/Commands/Crm/BackfillOpportunityUserFromAccountCommand.php\n delete mode 100644 app/Console/Commands/Elasticsearch/AsyncUpdateEsActivities.php\n create mode 100644 app/Console/Commands/IssueMcpTokenCommand.php\n create mode 100644 app/Http/Middleware/McpAuditMiddleware.php\n create mode 100644 app/Http/Middleware/McpTierMiddleware.php\n create mode 100644 app/Mcp/Contracts/McpCallRepositoryInterface.php\n create mode 100644 app/Mcp/DTO/ListCallsFilters.php\n create mode 100644 app/Mcp/Errors/McpError.php\n create mode 100644 app/Mcp/Repositories/McpActivityHydrator.php\n create mode 100644 app/Mcp/Repositories/McpCallRepository.php\n create mode 100644 app/Mcp/Repositories/McpElasticCallRepository.php\n create mode 100644 app/Mcp/Servers/JiminnyServer.php\n create mode 100644 app/Mcp/Tools/ListCallsTool.php\n create mode 100644 app/Services/Activity/Twilio/S3RecordingCredentialsService.php\n create mode 100644 config/mcp.php\n create mode 100644 database/migrations/2026_04_30_120000_create_mcp_audit_log_table.php\n create mode 100644 docs/mcp/explorer/explorer.html\n create mode 100644 docs/mcp/explorer/explorer.template.html\n create mode 100644 docs/mcp/explorer/generate.js\n create mode 100644 docs/mcp/explorer/tool-explorer-meta.json\n create mode 100644 docs/mcp/tools-list.json\n create mode 100644 docs/mcp/tools.md\n create mode 100644 front-end/src/components/shared/modals/EntityPickerModal/__tests__/useEntitiesCache.spec.ts\n create mode 100644 tests/Feature/Component/Nudge/ProcessOrganisationImmediateNudgesJobTest.php\n create mode 100644 tests/Feature/Mcp/IssueMcpTokenCommandTest.php\n create mode 100644 tests/Feature/Mcp/ListCallsToolElasticFeatureTest.php\n create mode 100644 tests/Feature/Mcp/ListCallsToolFeatureTest.php\n create mode 100644 tests/Feature/Mcp/McpTestHelpersTrait.php\n create mode 100644 tests/Stubs/SentryStub.php\n create mode 100644 tests/Unit/Component/AiAutomation/Services/CrmFillingEligibilityCheckerTest.php\n delete mode 100644 tests/Unit/Component/ES/ElasticSearchWorkerManagerTest.php\n create mode 100644 tests/Unit/Component/ES/Processor/Actions/LoadDocumentsActionTest.php\n delete mode 100644 tests/Unit/Component/ES/Processor/Traits/SkipActivityTraitTest.php\n delete mode 100644 tests/Unit/Component/ES/Worker/ActivityWorkerTest.php\n delete mode 100644 tests/Unit/Component/ES/Worker/EntityWorkerTest.php\n delete mode 100644 tests/Unit/Component/ES/Worker/WorkerAmountTest.php\n create mode 100644 tests/Unit/Component/ParticipantSpeech/Services/ParticipantSpeechesCreatorTest.php\n create mode 100644 tests/Unit/Http/Controllers/Kiosk/ActivityControllerTest.php\n create mode 100644 tests/Unit/Services/Activity/Twilio/S3RecordingCredentialsServiceTest.php\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20725-handle-HS-search-rate-limit) $ git status\nOn branch master\nYour branch is behind 'origin/master' by 114 commits, and can be fast-forwarded.\n (use \"git pull\" to update your local branch)\n\nChanges not staged for commit:\n (use \"git add <file>...\" to update what will be committed)\n (use \"git restore <file>...\" to discard changes in working directory)\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tmodified: .env.local\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tmodified: app/Component/SCIM/Constants.php\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tmodified: app/Component/SCIM/ScimProvisioning.php\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tmodified: app/Component/Twilio/Conference/ConferenceManager/SoftPhoneManager.php\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tmodified: app/Console/Commands/JiminnyDebugCommand.php\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tmodified: app/DTO/SCIM/AAD/Request/CoreUserRequest.php\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tmodified: app/DTO/SCIM/AAD/Response/CoreUser.php\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tmodified: app/Services/Telephony/TextMessagingService.php\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tmodified: config/logging.php\n\nUntracked files:\n (use \"git add <file>...\" to include in what will be committed)\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\t.env.nikilocal\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\t.env.other\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tWEBHOOK_FILTERING_IMPLEMENTATION.md\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tapp/Component/SCIM/Mutators/Attributes/User/RoleAttr.php\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tapp/Console/Commands/Crm/Hubspot/SimulateWebhooksCommand.php\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tapp/Console/Commands/Reports/CreateMockAskJiminnyReportResultCommand.php\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tapp/Rules/ListenerRoleCannotHaveAdminOrManagerPermissionRule.php\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tids.txt\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tpublic/favicon.ico\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\traw_sql_query.sql\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\ttests/Unit/Component/SCIM/Mutators/Attributes/User/RoleAttrTest.php\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\ttests/Unit/Policies/CanAccessAiReportsTest.php\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\ttests/Unit/Rules/ListenerRoleCannotHaveAdminOrManagerPermissionRuleTest.php\n\nno changes added to commit (use \"git add\" and/or \"git commit -a\")\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (master) $ git pull\nremote: Enumerating objects: 306, done.\nremote: Counting objects: 100% (299/299), done.\nremote: Compressing objects: 100% (183/183), done.\nremote: Total 306 (delta 213), reused 171 (delta 116), pack-reused 7 (from 1)\nReceiving objects: 100% (306/306), 80.12 KiB | 1000.00 KiB/s, done.\nResolving deltas: 100% (213/213), completed with 53 local objects.\nFrom github.com:jiminny/app\n 90bca4e4b2..5604af40cf master -> origin/master\n 4e7078fd8b..0b8343d179 JY-18091-upgrade-to-php-8-5 -> origin/JY-18091-upgrade-to-php-8-5\n 098eeaa087..d5a447e492 JY-20613-allow-owner-role-on-team-setup -> origin/JY-20613-allow-owner-role-on-team-setup\n c3a76ace91..af65249d0f JY-20749-user-can-view-recorded-meetings -> origin/JY-20749-user-can-view-recorded-meetings\n d94a285ae7..7ce96cb5fe JY-20808-low-priority-indexing-queue -> origin/JY-20808-low-priority-indexing-queue\n * [new branch] JY-20842-remove-partial-updater -> origin/JY-20842-remove-partial-updater\n * [new branch] JY-20920-fix-participant-flip -> origin/JY-20920-fix-participant-flip\n * [new branch] secfix/npm-20260519 -> origin/secfix/npm-20260519\nUpdating cb4ebf0c36..5604af40cf\nFast-forward\n app/Component/ES/ChunkSize.php | 54 +++++++++++++++++++\n app/Component/ES/Processor/DTOs/SelectionList.php | 4 +-\n app/Component/ES/Processor/TargetEntitiesSelector.php | 19 ++++---\n app/Component/MeetingBot/Service/ParticipantMatcher.php | 46 ++++++++++++----\n app/Exceptions/RateLimitException.php | 19 ++++++-\n app/Http/Middleware/McpTierMiddleware.php | 27 ++--------\n app/Jobs/Crm/MatchActivityCrmData.php | 47 ++++++++++++----\n app/Jobs/Middleware/HandleHubspotRateLimit.php | 42 +++++++++++++++\n app/Mcp/Servers/JiminnyServer.php | 2 +\n app/Mcp/Tools/GetMeTool.php | 157 +++++++++++++++++++++++++++++++++++++++++++++++++++++\n app/Models/Feature/FeatureEnum.php | 1 +\n app/Services/Activity/HubSpot/ProviderResolver.php | 4 +-\n app/Services/Activity/HubSpot/ProviderResolverInterface.php | 2 +-\n app/Services/Activity/HubSpot/Providers/Provider.php | 2 +-\n app/Services/Activity/HubSpot/Providers/ProviderKixie.php | 2 +-\n app/Services/Activity/HubSpot/Providers/ProviderOrum.php | 2 +-\n app/Services/Activity/HubSpot/Providers/ProviderTwilio.php | 2 +-\n app/Services/Activity/HubSpot/Providers/ProviderTwilioFlex.php | 5 +-\n app/Services/Activity/HubSpot/Service.php | 97 +++++++++++++++++++++++++++------\n app/Services/Crm/Hubspot/Client.php | 132 +++++++++++++++++++++++++++++++++++++++++++++\n app/Services/Crm/Hubspot/HubspotClientInterface.php | 15 ++++++\n app/Services/Crm/Hubspot/Pagination/HubspotPaginationService.php | 21 ++++----\n app/Services/Crm/Hubspot/Pagination/PaginationState.php | 2 +-\n database/migrations/2026_05_13_124153_create_mcp_feature_flag.php | 25 +++++++++\n tests/Feature/Mcp/GetMeToolFeatureTest.php | 140 +++++++++++++++++++++++++++++++++++++++++++++++\n tests/Feature/Mcp/ListCallsToolFeatureTest.php | 2 +-\n tests/Feature/Mcp/McpTestHelpersTrait.php | 19 ++++++-\n tests/Unit/Component/ES/ChunkSizeTest.php | 50 +++++++++++++++++\n tests/Unit/Component/ES/Processor/DTOs/SelectionListTest.php | 27 +++++++---\n tests/Unit/Component/ES/Processor/TargetEntitiesSelectorTest.php | 39 ++++++++------\n tests/Unit/Component/MeetingBot/Service/ParticipantMatcherTest.php | 68 ++++++++++++++++++++++-\n tests/Unit/Exceptions/RateLimitExceptionTest.php | 56 +++++++++++++++++++\n tests/Unit/Jobs/Crm/MatchActivityCrmDataTest.php | 8 +--\n tests/Unit/Jobs/Middleware/HandleHubspotRateLimitTest.php | 151 +++++++++++++++++++++++++++++++++++++++++++++++++++\n tests/Unit/Services/Activity/HubSpot/ServiceTest.php | 109 +++++++++++++++++++++++++++++++++++++\n tests/Unit/Services/Crm/Hubspot/ClientTest.php | 250 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++\n tests/Unit/Services/Crm/Hubspot/Pagination/HubspotPaginationServiceTest.php | 283 +++++++++++++++++++++---------------------------------------------------------------------------\n 37 files changed, 1587 insertions(+), 344 deletions(-)\n create mode 100644 app/Component/ES/ChunkSize.php\n create mode 100644 app/Jobs/Middleware/HandleHubspotRateLimit.php\n create mode 100644 app/Mcp/Tools/GetMeTool.php\n create mode 100644 database/migrations/2026_05_13_124153_create_mcp_feature_flag.php\n create mode 100644 tests/Feature/Mcp/GetMeToolFeatureTest.php\n create mode 100644 tests/Unit/Component/ES/ChunkSizeTest.php\n create mode 100644 tests/Unit/Exceptions/RateLimitExceptionTest.php\n create mode 100644 tests/Unit/Jobs/Middleware/HandleHubspotRateLimitTest.php\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (master) $ git pull\nAlready up to date.\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (master) $ co -b JY-20676-delete-report-related-objects\nSwitched to a new branch 'JY-20676-delete-report-related-objects'\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20676-delete-report-related-objects) $ csfix\ndocker exec -it docker_lamp_1 ./vendor/bin/php-cs-fixer fix --config=.php-cs-fixer.dist.php -v --using-cache=no --diff \nPHP CS Fixer 3.87.1 Alexander by Fabien Potencier, Dariusz Ruminski and contributors.\nPHP runtime: 8.3.30\nRunning analysis on 7 cores with 10 files per process.\nParallel runner is an experimental feature and may be unstable, use it at your own risk. Feedback highly appreciated!\nLoaded config default from \".php-cs-fixer.dist.php\".\n 5690/5690 [▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓] 100%\n\n 1) app/Console/Commands/JiminnyDebugCommand.php (statement_indentation, blank_line_before_statement)\n ---------- begin diff ----------\n--- /home/jiminny/app/Console/Commands/JiminnyDebugCommand.php\n+++ /home/jiminny/app/Console/Commands/JiminnyDebugCommand.php\n@@ -23,6 +23,7 @@\n \n if ($action === 'redis-set') {\n $this->testRedisSet();\n+\n return;\n }\n \n@@ -45,7 +46,7 @@\n $ttl = 60;\n \n try {\n-// $result = Redis::set($testKey, $testValue, 'EX', $ttl, 'NX');\n+ // $result = Redis::set($testKey, $testValue, 'EX', $ttl, 'NX');\n $result = Redis::set($testKey, $testValue, ['nx', 'ex' => $ttl]);\n \n if ($result) {\n\n ----------- end diff -----------\n\n\nFixed 1 of 5690 files in 50.673 seconds, 67.00 MB memory used\n\nWhat's next:\n Try Docker Debug for seamless, persistent debugging tools in any container or image → docker debug docker_lamp_1\n Learn more at https://docs.docker.com/go/debug-cli/\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20676-delete-report-related-objects) $ ;xd\ndocker exec -it docker_lamp_1 bash -c \"mv /usr/local/etc/php/conf.d/xdebug.ini ~/xdebug.ini\"\n\nWhat's next:\n Try Docker Debug for seamless, persistent debugging tools in any container or image → docker debug docker_lamp_1\n Learn more at https://docs.docker.com/go/debug-cli/\ndocker exec -it docker_lamp_1 supervisorctl restart all\njiminny-worker-processing-2:jiminny-worker-processing-2_00: stopped\njiminny-worker-processing-3:jiminny-worker-processing-3_00: stopped\njiminny-worker-processing-4:jiminny-worker-processing-4_00: stopped\njiminny-worker-processing-5:jiminny-worker-processing-5_00: stopped\njiminny-worker-processing-delayed:jiminny-worker-processing-delayed_00: stopped\nworker-analytics:worker-analytics_00: stopped\nworker-crm-update:worker-crm-update_00: stopped\nworker-download:worker-download_00: stopped\nworker-nudges:worker-nudges_00: stopped\nworker-calendar:worker-calendar_00: stopped\nworker-audio:worker-audio_00: stopped\njiminny-worker-processing-1:jiminny-worker-processing-1_00: stopped\nworker:worker_00: stopped\nworker-conferences:worker-conferences_00: stopped\nworker-crm-sync:worker-crm-sync_00: stopped\nworker-emails:worker-emails_00: stopped\nworker-es-update:worker-es-update_00: stopped\nartisan-schedule:artisan-schedule_00: stopped\nartisan-schedule:artisan-schedule_00: started\njiminny-worker-processing-1:jiminny-worker-processing-1_00: started\njiminny-worker-processing-2:jiminny-worker-processing-2_00: started\njiminny-worker-processing-3:jiminny-worker-processing-3_00: started\njiminny-worker-processing-4:jiminny-worker-processing-4_00: started\njiminny-worker-processing-5:jiminny-worker-processing-5_00: started\njiminny-worker-processing-delayed:jiminny-worker-processing-delayed_00: started\nworker:worker_00: started\nworker-analytics:worker-analytics_00: started\nworker-audio:worker-audio_00: started\nworker-calendar:worker-calendar_00: started\nworker-conferences:worker-conferences_00: started\nworker-crm-sync:worker-crm-sync_00: started\nworker-crm-update:worker-crm-update_00: started\nworker-download:worker-download_00: started\nworker-emails:worker-emails_00: started\nworker-es-update:worker-es-update_00: started\nworker-nudges:worker-nudges_00: started\n\nWhat's next:\n Try Docker Debug for seamless, persistent debugging tools in any container or image → docker debug docker_lamp_1\n Learn more at https://docs.docker.com/go/debug-cli/\ndocker exec -it docker_lamp_1 php -v\nPHP 8.3.30 (cli) (built: Mar 16 2026 22:32:32) (NTS)\nCopyright (c) The PHP Group\nZend Engine v4.3.30, Copyright (c) Zend Technologies\n with Zend OPcache v8.3.30, Copyright (c), by Zend Technologies\n\nWhat's next:\n Try Docker Debug for seamless, persistent debugging tools in any container or image → docker debug docker_lamp_1\n Learn more at https://docs.docker.com/go/debug-cli/\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20676-delete-report-related-objects) $ git status\nOn branch JY-20676-delete-report-related-objects\nChanges not staged for commit:\n (use \"git add <file>...\" to update what will be committed)\n (use \"git restore <file>...\" to discard changes in working directory)\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tmodified: .env.local\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tmodified: app/Console/Commands/JiminnyDebugCommand.php\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tmodified: config/logging.php\n\nUntracked files:\n (use \"git add <file>...\" to include in what will be committed)\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\t.env.nikilocal\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\t.env.other\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tWEBHOOK_FILTERING_IMPLEMENTATION.md\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tapp/Console/Commands/Crm/Hubspot/SimulateWebhooksCommand.php\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tapp/Console/Commands/Reports/CreateMockAskJiminnyReportResultCommand.php\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tids.txt\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tpublic/favicon.ico\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\traw_sql_query.sql\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\ttests/Unit/Policies/CanAccessAiReportsTest.php\n\nno changes added to commit (use \"git add\" and/or \"git commit -a\")\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20676-delete-report-related-objects) $ git push -u origin JY-20676-delete-report-related-objects\nEnumerating objects: 45, done.\nCounting objects: 100% (45/45), done.\nDelta compression using up to 8 threads\nCompressing objects: 100% (24/24), done.\nWriting objects: 100% (24/24), 3.62 KiB | 3.62 MiB/s, done.\nTotal 24 (delta 19), reused 0 (delta 0), pack-reused 0\nremote: Resolving deltas: 100% (19/19), completed with 19 local objects.\nremote: \nremote: Create a pull request for 'JY-20676-delete-report-related-objects' on GitHub by visiting:\nremote: https://github.com/jiminny/app/pull/new/JY-20676-delete-report-related-objects\nremote: \nTo github.com:jiminny/app.git\n * [new branch] JY-20676-delete-report-related-objects -> JY-20676-delete-report-related-objects\nbranch 'JY-20676-delete-report-related-objects' set up to track 'origin/JY-20676-delete-report-related-objects'.\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20676-delete-report-related-objects) $ csfix\ndocker exec -it docker_lamp_1 ./vendor/bin/php-cs-fixer fix --config=.php-cs-fixer.dist.php -v --using-cache=no --diff \nPHP CS Fixer 3.87.1 Alexander by Fabien Potencier, Dariusz Ruminski and contributors.\nPHP runtime: 8.3.30\nRunning analysis on 7 cores with 10 files per process.\nParallel runner is an experimental feature and may be unstable, use it at your own risk. Feedback highly appreciated!\nLoaded config default from \".php-cs-fixer.dist.php\".\n 5690/5690 [▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓] 100%\n\n 1) app/Http/Controllers/API/V2/AskJiminnyReportsController.php (blank_line_before_statement)\n ---------- begin diff ----------\n--- /home/jiminny/app/Http/Controllers/API/V2/AskJiminnyReportsController.php\n+++ /home/jiminny/app/Http/Controllers/API/V2/AskJiminnyReportsController.php\n@@ -140,6 +140,7 @@\n if ($enabled && $report->isAskJiminnyReport() && ! $report->canExecute()) {\n $error = 'This report is missing a saved search or prompt. ' .\n 'Edit the report to complete the setup before enabling it.';\n+\n return new JsonResponse(\n ['error' => $error],\n Response::HTTP_UNPROCESSABLE_ENTITY\n\n ----------- end diff -----------\n\n\nFixed 1 of 5690 files in 71.757 seconds, 60.00 MB memory used\n\nWhat's next:\n Try Docker Debug for seamless, persistent debugging tools in any container or image → docker debug docker_lamp_1\n Learn more at https://docs.docker.com/go/debug-cli/\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20676-delete-report-related-objects) $ git pull\nremote: Enumerating objects: 158, done.\nremote: Counting objects: 100% (103/103), done.\nremote: Compressing objects: 100% (37/37), done.\nremote: Total 158 (delta 80), reused 74 (delta 66), pack-reused 55 (from 3)\nReceiving objects: 100% (158/158), 80.59 KiB | 982.00 KiB/s, done.\nResolving deltas: 100% (85/85), completed with 45 local objects.\nFrom github.com:jiminny/app\n 02a33811ee..c6ce5e2440 JY-20676-delete-report-related-objects -> origin/JY-20676-delete-report-related-objects\n 7ce96cb5fe..6c59f04358 JY-20808-low-priority-indexing-queue -> origin/JY-20808-low-priority-indexing-queue\n 3906a9238a..2b5e6ea62b JY-20835-mcp-enable-users-to-get-a-list-of-deals-and-their-details -> origin/JY-20835-mcp-enable-users-to-get-a-list-of-deals-and-their-details\n 5604af40cf..ea3519f0e2 master -> origin/master\n * [new branch] switch-eu-assembly -> origin/switch-eu-assembly\nUpdating 02a33811ee..c6ce5e2440\nFast-forward\n app/Component/ES/ElasticSearchDocumentPartialUpdater.php | 48 ---\n app/Component/ParticipantSpeech/Services/ParticipantAttributionService.php | 4 +-\n app/Component/Settings/AutoScoring/Services/UpdateAutoScoreService.php | 20 +-\n app/Component/Transcription/Service/StorageService.php | 8 +-\n front-end/package.json | 2 +-\n front-end/src/components/DealInsights/Modals/AskAnythingModal.vue | 23 ++\n front-end/src/components/shared/AskAnything/AskAnythingPromptFormItem.vue | 2 +\n front-end/src/components/shared/AskAnything/AskAnythingSettingsDrawer.vue | 23 +-\n front-end/src/components/shared/AskAnything/__mocks__/AskAnythingSettingsDrawer.mocks.js | 1 +\n front-end/src/components/shared/AskAnything/__tests__/AskAnythingSettingsDrawer.spec.js | 135 ++++---\n front-end/src/components/shared/AskAnything/__tests__/__snapshots__/AskAnythingSettingsDrawer.spec.js.html | 1235 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++\n front-end/src/components/shared/AskAnything/__tests__/__snapshots__/AskAnythingSettingsDrawer.spec.js.snap | 1382 ----------------------------------------------------------------\n front-end/src/components/shared/AskAnything/prompts.js | 1 +\n front-end/src/components/shared/AskAnything/useAskAnything.js | 1 +\n front-end/yarn.lock | 8 +-\n tests/Unit/Component/ES/ElasticSearchDocumentPartialUpdaterTest.php | 42 --\n tests/Unit/Component/Settings/AutoScoring/Services/UpdateAutoScoreServiceTest.php | 86 ++--\n tests/Unit/Component/Transcription/Service/StorageServiceTest.php | 29 +-\n 18 files changed, 1448 insertions(+), 1602 deletions(-)\n delete mode 100644 app/Component/ES/ElasticSearchDocumentPartialUpdater.php\n create mode 100644 front-end/src/components/shared/AskAnything/__tests__/__snapshots__/AskAnythingSettingsDrawer.spec.js.html\n delete mode 100644 front-end/src/components/shared/AskAnything/__tests__/__snapshots__/AskAnythingSettingsDrawer.spec.js.snap\n delete mode 100644 tests/Unit/Component/ES/ElasticSearchDocumentPartialUpdaterTest.php\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20676-delete-report-related-objects) $ csfix\ndocker exec -it docker_lamp_1 ./vendor/bin/php-cs-fixer fix --config=.php-cs-fixer.dist.php -v --using-cache=no --diff \nPHP CS Fixer 3.87.1 Alexander by Fabien Potencier, Dariusz Ruminski and contributors.\nPHP runtime: 8.3.30\nRunning analysis on 7 cores with 10 files per process.\nParallel runner is an experimental feature and may be unstable, use it at your own risk. Feedback highly appreciated!\nLoaded config default from \".php-cs-fixer.dist.php\".\n 5688/5688 [▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓] 100%\n\n\nFixed 0 of 5688 files in 79.904 seconds, 60.00 MB memory used\n\nWhat's next:\n Try Docker Debug for seamless, persistent debugging tools in any container or image → docker debug docker_lamp_1\n Learn more at https://docs.docker.com/go/debug-cli/\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20676-delete-report-related-objects) $","depth":4,"on_screen":true,"value":"Last login: Mon May 18 09:17:28 on ttys007\n\nPoetry could not find a pyproject.toml file in /Users/lukas/jiminny/app or its parents\n\nPoetry could not find a pyproject.toml file in /Users/lukas/jiminny/app or its parents\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (pipedrive-sdk-poc) $ co master\nerror: Your local changes to the following files would be overwritten by checkout:\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tPIPEDRIVE_V2_MIGRATION_TICKETS.md\nPlease commit your changes or stash them before you switch branches.\nAborting\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (pipedrive-sdk-poc) $ git pull\nremote: Enumerating objects: 1047, done.\nremote: Counting objects: 100% (832/832), done.\nremote: Compressing objects: 100% (298/298), done.\nremote: Total 1047 (delta 634), reused 596 (delta 534), pack-reused 215 (from 3)\nReceiving objects: 100% (1047/1047), 353.16 KiB | 1.56 MiB/s, done.\nResolving deltas: 100% (687/687), completed with 107 local objects.\nFrom github.com:jiminny/app\n 907c54896c..34656c53ed pipedrive-sdk-poc -> origin/pipedrive-sdk-poc\n 03325ec50f..4e7078fd8b JY-18091-upgrade-to-php-8-5 -> origin/JY-18091-upgrade-to-php-8-5\n e7d231e163..bc6a3fce6b JY-20725-handle-HS-search-rate-limit -> origin/JY-20725-handle-HS-search-rate-limit\n * [new branch] JY-20749-user-can-view-recorded-meetings -> origin/JY-20749-user-can-view-recorded-meetings\n 98ca281a04..e0351be069 JY-20808-low-priority-indexing-queue -> origin/JY-20808-low-priority-indexing-queue\n 569abb5149..3906a9238a JY-20835-mcp-enable-users-to-get-a-list-of-deals-and-their-details -> origin/JY-20835-mcp-enable-users-to-get-a-list-of-deals-and-their-details\n ad6c2a86e8..50eb6afba9 JY-20846-mcp-enable-the-ai-to-know-details-about-the-user -> origin/JY-20846-mcp-enable-the-ai-to-know-details-about-the-user\n * [new branch] JY-20893-chunk-control-per-update-target -> origin/JY-20893-chunk-control-per-update-target\n 31c62924a5..cb4ebf0c36 master -> origin/master\nUpdating 907c54896c..34656c53ed\nFast-forward\n PIPEDRIVE_V2_MIGRATION_TICKETS.md | 52 ++++++++++++++++++++++++++++++++++++++++++++++++++++\n 1 file changed, 52 insertions(+)\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (pipedrive-sdk-poc) $ co master\nM\u0000\u0000\u0000\u0000\u0000\u0000\t.env.local\nM\u0000\u0000\u0000\u0000\u0000\u0000\tconfig/logging.php\nSwitched to branch 'master'\nYour branch is behind 'origin/master' by 31 commits, and can be fast-forwarded.\n (use \"git pull\" to update your local branch)\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (master) $ git pull\nUpdating 31c62924a5..cb4ebf0c36\nFast-forward\n app/Component/ES/Processor/Traits/SelectEntityListTrait.php | 20 ------\n app/Services/Calendar/CalendarActivityService.php | 46 +++++++++++++\n app/Services/Calendar/Command/MapActivityData.php | 106 +++-------------------------\n docs/mcp/explorer/explorer.html | 104 +++++++++++++++++++++++++---\n docs/mcp/explorer/explorer.template.html | 102 ++++++++++++++++++++++++---\n docs/mcp/tools-list.json | 373 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++-------\n docs/mcp/tools.md | 117 +++++++++++++++++++++++--------\n tests/Unit/Component/ES/AsyncUpdateElasticSearchTest.php | 16 +----\n tests/Unit/Component/ES/Listeners/UpdateMultipleTargetsListenerTest.php | 10 ---\n tests/Unit/Component/ES/Listeners/UpdateSingleTargetListenerTest.php | 6 --\n tests/Unit/Component/ES/Processor/TargetEntitiesSelectorTest.php | 9 ---\n tests/Unit/Component/ES/Processor/Traits/SelectEntityListTraitTest.php | 15 ++--\n tests/Unit/Component/ES/UpdateProcessManagerTest.php | 2 -\n tests/Unit/Services/Calendar/CalendarActivityServiceTest.php | 150 ++++++++++++++++++++++++++++++++++++++--\n tests/Unit/Services/Calendar/Command/MapActivityDataTest.php | 78 ++-------------------\n 15 files changed, 832 insertions(+), 322 deletions(-)\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (master) $ co -b JY-20613-allow-owner-role-on-team-setup\nSwitched to a new branch 'JY-20613-allow-owner-role-on-team-setup'\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20613-allow-owner-role-on-team-setup) $ csfix\ndocker exec -it docker_lamp_1 ./vendor/bin/php-cs-fixer fix --config=.php-cs-fixer.dist.php -v --using-cache=no --diff \nPHP CS Fixer 3.87.1 Alexander by Fabien Potencier, Dariusz Ruminski and contributors.\nPHP runtime: 8.3.30\nRunning analysis on 7 cores with 10 files per process.\nParallel runner is an experimental feature and may be unstable, use it at your own risk. Feedback highly appreciated!\nLoaded config default from \".php-cs-fixer.dist.php\".\n 5682/5682 [▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓] 100%\n\n\nFixed 0 of 5682 files in 56.978 seconds, 67.00 MB memory used\n\nWhat's next:\n Try Docker Debug for seamless, persistent debugging tools in any container or image → docker debug docker_lamp_1\n Learn more at https://docs.docker.com/go/debug-cli/\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20613-allow-owner-role-on-team-setup) $ ;xd\ndocker exec -it docker_lamp_1 bash -c \"mv /usr/local/etc/php/conf.d/xdebug.ini ~/xdebug.ini\"\n\nWhat's next:\n Try Docker Debug for seamless, persistent debugging tools in any container or image → docker debug docker_lamp_1\n Learn more at https://docs.docker.com/go/debug-cli/\ndocker exec -it docker_lamp_1 supervisorctl restart all\njiminny-worker-processing-2:jiminny-worker-processing-2_00: stopped\njiminny-worker-processing-3:jiminny-worker-processing-3_00: stopped\njiminny-worker-processing-4:jiminny-worker-processing-4_00: stopped\njiminny-worker-processing-5:jiminny-worker-processing-5_00: stopped\njiminny-worker-processing-delayed:jiminny-worker-processing-delayed_00: stopped\nworker-analytics:worker-analytics_00: stopped\nworker-crm-update:worker-crm-update_00: stopped\nworker-download:worker-download_00: stopped\nworker-nudges:worker-nudges_00: stopped\nartisan-schedule:artisan-schedule_00: stopped\nworker-emails:worker-emails_00: stopped\nworker-calendar:worker-calendar_00: stopped\nworker:worker_00: stopped\nworker-conferences:worker-conferences_00: stopped\nworker-crm-sync:worker-crm-sync_00: stopped\njiminny-worker-processing-1:jiminny-worker-processing-1_00: stopped\nworker-audio:worker-audio_00: stopped\nworker-es-update:worker-es-update_00: stopped\nartisan-schedule:artisan-schedule_00: started\njiminny-worker-processing-1:jiminny-worker-processing-1_00: started\njiminny-worker-processing-2:jiminny-worker-processing-2_00: started\njiminny-worker-processing-3:jiminny-worker-processing-3_00: started\njiminny-worker-processing-4:jiminny-worker-processing-4_00: started\njiminny-worker-processing-5:jiminny-worker-processing-5_00: started\njiminny-worker-processing-delayed:jiminny-worker-processing-delayed_00: started\nworker:worker_00: started\nworker-analytics:worker-analytics_00: started\nworker-audio:worker-audio_00: started\nworker-calendar:worker-calendar_00: started\nworker-conferences:worker-conferences_00: started\nworker-crm-sync:worker-crm-sync_00: started\nworker-crm-update:worker-crm-update_00: started\nworker-download:worker-download_00: started\nworker-emails:worker-emails_00: started\nworker-es-update:worker-es-update_00: started\nworker-nudges:worker-nudges_00: started\n\nWhat's next:\n Try Docker Debug for seamless, persistent debugging tools in any container or image → docker debug docker_lamp_1\n Learn more at https://docs.docker.com/go/debug-cli/\ndocker exec -it docker_lamp_1 php -v\nPHP 8.3.30 (cli) (built: Mar 16 2026 22:32:32) (NTS)\nCopyright (c) The PHP Group\nZend Engine v4.3.30, Copyright (c) Zend Technologies\n with Zend OPcache v8.3.30, Copyright (c), by Zend Technologies\n\nWhat's next:\n Try Docker Debug for seamless, persistent debugging tools in any container or image → docker debug docker_lamp_1\n Learn more at https://docs.docker.com/go/debug-cli/\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20613-allow-owner-role-on-team-setup) $ csfix\ndocker exec -it docker_lamp_1 ./vendor/bin/php-cs-fixer fix --config=.php-cs-fixer.dist.php -v --using-cache=no --diff \nPHP CS Fixer 3.87.1 Alexander by Fabien Potencier, Dariusz Ruminski and contributors.\nPHP runtime: 8.3.30\nRunning analysis on 7 cores with 10 files per process.\nParallel runner is an experimental feature and may be unstable, use it at your own risk. Feedback highly appreciated!\nLoaded config default from \".php-cs-fixer.dist.php\".\n 5682/5682 [▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓] 100%\n\n\nFixed 0 of 5682 files in 49.910 seconds, 60.00 MB memory used\n\nWhat's next:\n Try Docker Debug for seamless, persistent debugging tools in any container or image → docker debug docker_lamp_1\n Learn more at https://docs.docker.com/go/debug-cli/\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20613-allow-owner-role-on-team-setup) $ git status\nOn branch JY-20613-allow-owner-role-on-team-setup\nYour branch is ahead of 'origin/JY-20613-allow-owner-role-on-team-setup' by 1 commit.\n (use \"git push\" to publish your local commits)\n\nChanges not staged for commit:\n (use \"git add <file>...\" to update what will be committed)\n (use \"git restore <file>...\" to discard changes in working directory)\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tmodified: .env.local\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tmodified: config/logging.php\n\nUntracked files:\n (use \"git add <file>...\" to include in what will be committed)\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\t.env.nikilocal\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\t.env.other\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tWEBHOOK_FILTERING_IMPLEMENTATION.md\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tapp/Console/Commands/Crm/Hubspot/SimulateWebhooksCommand.php\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tapp/Console/Commands/Reports/CreateMockAskJiminnyReportResultCommand.php\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tids.txt\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tpublic/favicon.ico\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\traw_sql_query.sql\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\ttests/Unit/Policies/CanAccessAiReportsTest.php\n\nno changes added to commit (use \"git add\" and/or \"git commit -a\")\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20613-allow-owner-role-on-team-setup) $ git pull\nremote: Enumerating objects: 248, done.\nremote: Counting objects: 100% (128/128), done.\nremote: Compressing objects: 100% (23/23), done.\nremote: Total 59 (delta 43), reused 44 (delta 33), pack-reused 0 (from 0)\nUnpacking objects: 100% (59/59), 10.48 KiB | 228.00 KiB/s, done.\nFrom github.com:jiminny/app\n b7df560451..190239dfd4 JY-20613-allow-owner-role-on-team-setup -> origin/JY-20613-allow-owner-role-on-team-setup\n e0351be069..d94a285ae7 JY-20808-low-priority-indexing-queue -> origin/JY-20808-low-priority-indexing-queue\n * [new branch] JY-20920-fix-participant-matcher -> origin/JY-20920-fix-participant-matcher\n cb4ebf0c36..90bca4e4b2 master -> origin/master\nMerge made by the 'ort' strategy.\n app/Component/ES/ChunkSize.php | 54 +++++++++++++++++++++++++++\n app/Component/ES/Processor/DTOs/SelectionList.php | 4 +-\n app/Component/ES/Processor/TargetEntitiesSelector.php | 19 ++++++----\n app/Http/Middleware/McpTierMiddleware.php | 27 +++-----------\n app/Mcp/Servers/JiminnyServer.php | 2 +\n app/Mcp/Tools/GetMeTool.php | 157 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++\n app/Models/Feature/FeatureEnum.php | 1 +\n database/migrations/2026_05_13_124153_create_mcp_feature_flag.php | 25 +++++++++++++\n front-end/src/components/Settings/Kiosk/modals/EditTeamModal/EditTeamModal.vue | 52 ++++++++++++++++++--------\n front-end/src/components/Settings/Kiosk/modals/EditTeamModal/__tests__/EditTeamModal.spec.js | 14 +++++++\n tests/Feature/Mcp/GetMeToolFeatureTest.php | 140 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++\n tests/Feature/Mcp/ListCallsToolFeatureTest.php | 2 +-\n tests/Feature/Mcp/McpTestHelpersTrait.php | 19 +++++++++-\n tests/Unit/Component/ES/ChunkSizeTest.php | 50 +++++++++++++++++++++++++\n tests/Unit/Component/ES/Processor/DTOs/SelectionListTest.php | 27 ++++++++++----\n tests/Unit/Component/ES/Processor/TargetEntitiesSelectorTest.php | 39 +++++++++++---------\n 16 files changed, 557 insertions(+), 75 deletions(-)\n create mode 100644 app/Component/ES/ChunkSize.php\n create mode 100644 app/Mcp/Tools/GetMeTool.php\n create mode 100644 database/migrations/2026_05_13_124153_create_mcp_feature_flag.php\n create mode 100644 tests/Feature/Mcp/GetMeToolFeatureTest.php\n create mode 100644 tests/Unit/Component/ES/ChunkSizeTest.php\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20613-allow-owner-role-on-team-setup) $ git push\nEnumerating objects: 40, done.\nCounting objects: 100% (34/34), done.\nDelta compression using up to 8 threads\nCompressing objects: 100% (18/18), done.\nWriting objects: 100% (18/18), 1.58 KiB | 1.58 MiB/s, done.\nTotal 18 (delta 15), reused 0 (delta 0), pack-reused 0\nremote: Resolving deltas: 100% (15/15), completed with 13 local objects.\nTo github.com:jiminny/app.git\n 190239dfd4..ec1b261264 JY-20613-allow-owner-role-on-team-setup -> JY-20613-allow-owner-role-on-team-setup\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20613-allow-owner-role-on-team-setup) $ gbr\n* JY-20613-allow-owner-role-on-team-setup\n pipedrive-sdk-poc\n master\n JY-20903-update_activity-stage-on-opportunity-change\n JY-20904-fix-update-es-on-activity-command\n JY-20891-improve-sms-text-relays\n JY-20725-handle-HS-search-rate-limit\n JY-20818-move-AJ-reports-to-separated-datadog-metric\n JY-20773-fix-automated-reports-user-pilot-tracking\n JY-20157-AJ-report-not-send-notification\n JY-20508-notify-before-AJ-report-expiration\n JY-20372-ai-reports-promotion-pages\n JY-20352-sync-opportunities-without-a-local-owner-user-id-is-null\n JY-20738-debug-AJ-tracking-UP\n a\n JY-18909-automated-reports-ask-jiminny\n JY-20692-fix-integration-app-token-auth-response-change\n JY-20553-debug-crm-sync-delays\n JY-20698-fix-SF-activity-types-on-new-playbook\n JY-20543-AJ-report-tracking\n JY-20384-handle-auto-sync-with-no-access-to-event-type\n JY-20458-ask-jiminny-user-definitions\n JY-19666-fix-import-contacts-account-association\n JY-19666-HS-import-contacts-and-accounts-batch-job\n JY-20458-Ask-Jiminny-Reports\n JY-20200-batch-update-CRM-objects-Salesforce\n JY-19666-HS-webhooks-add-contact-and-company\n JY-20348-trigger-setup-DI-layout-on-team-creation\n JY-20326-refactor-info-message-in-command\n JY-20317-fix-auto-log-delay-issue-on-all-channels-disabled\n JY-20312-remove-on-update-change-last-synced-at-crm-configurations\n JY-20306-SF-skip-auto-sync-for-task-based-playbook\n JY-20192-remove-deleted-team-from-saved-search-filters\n JY-20197-import-opportunity-batch-job\n JY-20293-enable-status-field-for-pipedrive-deals\n JY-20191-remove-commands-interactive-prompts\n JY-20118-change-default-sync-strategy\n JY-20183-add-cache-on-auto-log-delay\n JY-20197-add-import-opportunity-batch-job\n 20118-hs-opportunity-make-webhook-strategy-default\n JY-20118-make-default-hs-opportunity-sync-strategy-webhook-based\n JY-20196-handle-opportunity-without-note\n JY-20118-improve-opportunity-import\n JY-20189-handle-activity-search-on-deleted-groups\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20613-allow-owner-role-on-team-setup) $ co JY-20725-handle-HS-search-rate-limit\nM\u0000\u0000\u0000\u0000\u0000\u0000\t.env.local\nM\u0000\u0000\u0000\u0000\u0000\u0000\tconfig/logging.php\nSwitched to branch 'JY-20725-handle-HS-search-rate-limit'\nYour branch is behind 'origin/JY-20725-handle-HS-search-rate-limit' by 439 commits, and can be fast-forwarded.\n (use \"git pull\" to update your local branch)\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20725-handle-HS-search-rate-limit) $ git pull\nUpdating 0f3e438941..bc6a3fce6b\nFast-forward\n .gitignore | 3 +-\n .windsurfrules | 168 ++---\n CLAUDE.md | 1 +\n app/Component/ActivityAnalytics/Service/CalculateTalkTimeOffsetsFromTranscription.php | 24 +-\n app/Component/AiActivityType/Services/AiActivityTypeEligibilityChecker.php | 28 +-\n app/Component/AiAutomation/Actions/PrepareUpdateDtoAction.php | 32 +-\n app/Component/AiAutomation/Services/CrmFillingEligibilityChecker.php | 47 ++\n app/Component/AiAutomation/TestCrmAiPromptService.php | 14 +\n app/Component/AiCallScoring/Services/AiCallScoringEligibilityChecker.php | 9 +\n app/Component/ES/ElasticSearchDocumentPartialUpdater.php | 13 +-\n app/Component/ES/ElasticSearchWorkerManager.php | 86 ---\n app/Component/ES/Processor/Actions/LoadDocumentsAction.php | 80 +--\n app/Component/ES/Processor/EntityQueryBuilder.php | 12 +-\n app/Component/ES/Processor/TargetEntitiesSelector.php | 2 +-\n app/Component/ES/Processor/Traits/SkipActivityTrait.php | 25 -\n app/Component/ES/Repositories/EsResetActivityRepository.php | 11 +-\n app/Component/ES/Worker/ActivityWorker.php | 73 --\n app/Component/ES/Worker/EntityWorker.php | 44 --\n app/Component/ES/Worker/WorkerAmount.php | 60 --\n app/Component/ES/Worker/WorkerInterface.php | 15 -\n app/Component/ElasticSearch/Contract/Searchable.php | 4 +\n app/Component/Encoding/Job/AnalyzeTrackChannelsJob.php | 20 +-\n app/Component/Encoding/Service/GenerateSpeechFromSilenceService.php | 85 ++-\n app/Component/FFMpeg/Services/GetSpeechIntervalsService.php | 18 +-\n app/Component/LanguageDetection/Services/FindSpeechTimeService.php | 22 +-\n app/Component/Nudge/Job/ProcessOrganisationImmediateNudgesJob.php | 218 +++++-\n app/Component/ParagraphBreaker/Services/TranscriptionParagraphsService.php | 4 +\n app/Component/ParticipantSpeech/Services/ParticipantSpeechesCreator.php | 33 +\n app/Component/ParticipantSpeech/Services/ParticipantSpeechesDeleter.php | 15 +\n app/Component/ParticipantSpeech/Services/ParticipantSpeechesProvider.php | 51 +-\n app/Component/ParticipantSpeech/Services/ParticipantSpeechesUploader.php | 36 +\n app/Component/ProphetAi/Exceptions/InsufficientTranscriptException.php | 11 +\n app/Component/Transcription/DTO/Http/Transcription/AssemblyAI/AssemblyAI/NoAssemblyIdException.php | 11 +\n app/Component/Transcription/DTO/Http/Transcription/AssemblyAI/AssemblyAI/SuccessfulResponse.php | 6 +\n app/Component/Transcription/DTO/Http/Transcription/TranscriptionIsNotCorrectFormatException.php | 11 +\n app/Component/Transcription/Diarization/Services/GetNormalizedParticipantSpeechesService.php | 23 +-\n app/Component/Transcription/Diarization/Source/MeetingBotSource.php | 16 +-\n app/Component/Transcription/TranscriptionProcessor/TranscriptionProcessor.php | 3 +\n app/Console/Commands/Activities/ActivityHardDeleteCommand.php | 4 +-\n app/Console/Commands/Activities/Copy.php | 2 +\n app/Console/Commands/Activities/SetupIntegration/TwilioSetS3RecordingCredentialsCommand.php | 119 ++++\n app/Console/Commands/Activities/UpdateActivityElasticSearchDocumentCommand.php | 10 +-\n app/Console/Commands/Crm/BackfillOpportunityUserFromAccountCommand.php | 126 ++++\n app/Console/Commands/Elasticsearch/AsyncUpdateEsActivities.php | 19 -\n app/Console/Commands/Elasticsearch/AsyncUpdateEsEntities.php | 50 +-\n app/Console/Commands/Elasticsearch/ResetAsyncElasticSearchCommand.php | 30 +-\n app/Console/Commands/GeckoExport/GeckoExportParticipantSpeechesCommand.php | 14 +-\n app/Console/Commands/IssueMcpTokenCommand.php | 84 +++\n app/Console/Commands/JiminnyDebugCommand.php | 7 +-\n app/Console/Commands/Tracks/CleanupActivityTracksCommand.php | 2 +-\n app/Console/Kernel.php | 6 +-\n app/Contracts/Services/Calendar/CalendarTrait.php | 80 ++-\n app/Events/AutomatedReports/AutomatedReportGenerated.php | 3 +\n app/Http/Controllers/API/AiCallScoring/AiScorecardController.php | 7 +-\n app/Http/Controllers/API/TeamAiAutomationController.php | 8 +\n app/Http/Controllers/CustomerApi/CustomerApiController.php | 4 +-\n app/Http/Controllers/Kiosk/ActivityController.php | 58 +-\n app/Http/Controllers/Settings/PlaybookController.php | 15 +-\n app/Http/Kernel.php | 23 +\n app/Http/Middleware/McpAuditMiddleware.php | 156 ++++\n app/Http/Middleware/McpTierMiddleware.php | 54 ++\n app/Http/Requests/API/V2/ZapierUploadActivityRequest.php | 28 +-\n app/Jobs/Activity/Import/ImportTwilioVideoSpeechesJob.php | 25 +-\n app/Jobs/Activity/Import/IsActivityReadyForProcessingJob.php | 10 +-\n app/Jobs/Calendar/SetupCalendarSync.php | 21 +-\n app/Jobs/ImportRemoteTrackJob.php | 96 ++-\n app/Jobs/Mailbox/EmailTextRelay.php | 15 +-\n app/Mcp/Contracts/McpCallRepositoryInterface.php | 30 +\n app/Mcp/DTO/ListCallsFilters.php | 29 +\n app/Mcp/Errors/McpError.php | 123 ++++\n app/Mcp/Repositories/McpActivityHydrator.php | 145 ++++\n app/Mcp/Repositories/McpCallRepository.php | 84 +++\n app/Mcp/Repositories/McpElasticCallRepository.php | 171 +++++\n app/Mcp/Servers/JiminnyServer.php | 38 +\n app/Mcp/Tools/ListCallsTool.php | 205 ++++++\n app/Models/Activity.php | 10 +-\n app/Models/Activity/Transcription.php | 17 +-\n app/Models/ElasticSearch/OpportunityElasticSearchTrait.php | 5 +\n app/Models/Participant.php | 1 +\n app/Providers/AppServiceProvider.php | 22 +\n app/Repositories/Crm/ContactRepository.php | 69 +-\n app/Repositories/ParticipantSpeechRepository.php | 13 +-\n app/Services/Activity/ParticipantsService.php | 19 +-\n app/Services/Activity/Twilio/S3RecordingCredentialsService.php | 82 +++\n app/Services/ActivityService.php | 21 +-\n app/Services/Calendar/CalendarActivityService.php | 46 ++\n app/Services/Calendar/Command/ImportParticipants.php | 1 +\n app/Services/Calendar/Command/MapActivityData.php | 106 +--\n app/Services/Calendar/GoogleCalendarService.php | 12 +-\n app/Services/Crm/Close/Processor/OpportunityProcessor.php | 2 +-\n app/Services/Crm/Close/Service.php | 22 +-\n app/Services/Crm/Copper/Service.php | 12 +-\n app/Services/Crm/Hubspot/Service.php | 154 +++-\n app/Services/Crm/Hubspot/ServiceTraits/OpportunitySyncTrait.php | 88 ++-\n app/Services/Crm/IntegrationApp/ServiceTraits/SyncCrmEntitiesTrait.php | 22 +-\n app/Services/Crm/Pipedrive/Service.php | 17 +-\n app/Services/Crm/Salesforce/Service.php | 42 +-\n app/Services/Mail/Office/EmailApiClient.php | 129 +---\n app/Services/RecallAI/Commands/ScheduleBotCommand.php | 39 +-\n app/Services/RecallAI/RecallAIService.php | 22 +-\n composer.json | 3 +-\n composer.lock | 87 ++-\n config/mcp.php | 23 +\n database/migrations/2026_04_30_120000_create_mcp_audit_log_table.php | 36 +\n docs/mcp/explorer/explorer.html | 697 ++++++++++++++++++\n docs/mcp/explorer/explorer.template.html | 697 ++++++++++++++++++\n docs/mcp/explorer/generate.js | 215 ++++++\n docs/mcp/explorer/tool-explorer-meta.json | 11 +\n docs/mcp/tools-list.json | 2536 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++\n docs/mcp/tools.md | 621 ++++++++++++++++\n front-end/package.json | 4 +-\n front-end/src/components/Settings/OrgSettings/AiAutomation/CrmFilling/TemplateFieldForm.vue | 28 +-\n front-end/src/components/Settings/OrgSettings/Playbooks/AddEditPlaybook.vue | 10 +\n front-end/src/components/playback/comments/ActivityComment.less | 10 +-\n front-end/src/components/shared/PromptTester/PromptTester.vue | 12 +-\n front-end/src/components/shared/__tests__/PromptTester.spec.js | 35 +\n front-end/src/components/shared/modals/EntityPickerModal/__tests__/useEntitiesCache.spec.ts | 37 +\n front-end/src/components/shared/modals/EntityPickerModal/useEntitiesCache.ts | 9 +\n front-end/yarn.lock | 16 +-\n phpstan-baseline.neon | 50 --\n routes/api.php | 11 +\n sonar-project.properties | 91 ++-\n tests/Feature/Component/Nudge/ProcessOrganisationImmediateNudgesJobTest.php | 534 ++++++++++++++\n tests/Feature/Jobs/ImportRemoteTrackJobTest.php | 283 +++++++-\n tests/Feature/Mcp/IssueMcpTokenCommandTest.php | 53 ++\n tests/Feature/Mcp/ListCallsToolElasticFeatureTest.php | 155 ++++\n tests/Feature/Mcp/ListCallsToolFeatureTest.php | 352 ++++++++++\n tests/Feature/Mcp/McpTestHelpersTrait.php | 77 ++\n tests/Feature/Services/Team/TeamDeleteHandlers/Retention/RetentionRepositoryHandlerTest.php | 1 +\n tests/Stubs/SentryStub.php | 18 +\n tests/Unit/Component/ActivityAnalytics/Service/CalculateTalkTimeOffsetFromTranscriptionTest.php | 28 +-\n tests/Unit/Component/AiActivityType/Services/AiActivityTypeEligibilityCheckerTest.php | 103 ++-\n tests/Unit/Component/AiAutomation/Actions/PrepareUpdateDtoActionTest.php | 91 +++\n tests/Unit/Component/AiAutomation/Services/CrmFillingEligibilityCheckerTest.php | 124 ++++\n tests/Unit/Component/AiAutomation/TestCrmAiPromptServiceTest.php | 67 +-\n tests/Unit/Component/AiCallScoring/Services/AiCallScoringEligibilityCheckerTest.php | 55 ++\n tests/Unit/Component/ES/ElasticSearchWorkerManagerTest.php | 135 ----\n tests/Unit/Component/ES/Processor/Actions/LoadDocumentsActionTest.php | 220 ++++++\n tests/Unit/Component/ES/Processor/EntityQueryBuilderTest.php | 21 +-\n tests/Unit/Component/ES/Processor/Traits/SkipActivityTraitTest.php | 51 --\n tests/Unit/Component/ES/Worker/ActivityWorkerTest.php | 174 -----\n tests/Unit/Component/ES/Worker/EntityWorkerTest.php | 97 ---\n tests/Unit/Component/ES/Worker/WorkerAmountTest.php | 116 ---\n tests/Unit/Component/Encoding/Job/AnalyzeTrackChannelsJobTest.php | 52 +-\n tests/Unit/Component/Encoding/Service/GenerateSpeechFromSilenceServiceTest.php | 171 ++---\n tests/Unit/Component/FFMpeg/Services/GetSpeechIntervalsTest.php | 36 +-\n tests/Unit/Component/LanguageDetection/Services/FindSpeechTimeServiceTest.php | 20 +-\n tests/Unit/Component/MobileSettings/MobileSettingsControllerTest.php | 5 +-\n tests/Unit/Component/ParticipantSpeech/Services/ParticipantSpeechesCreatorTest.php | 75 ++\n tests/Unit/Component/ParticipantSpeech/Services/ParticipantSpeechesDeleterTest.php | 63 ++\n tests/Unit/Component/ParticipantSpeech/Services/ParticipantSpeechesProviderTest.php | 134 ++++\n tests/Unit/Component/ParticipantSpeech/Services/ParticipantSpeechesUploaderTest.php | 57 ++\n tests/Unit/Component/Transcription/Diarization/Services/GetNormalizedParticipantSpeechesServiceTest.php | 51 +-\n tests/Unit/Component/Transcription/Diarization/Source/MeetingBotSourceTest.php | 29 +-\n tests/Unit/Contracts/Services/Calendar/CalendarTraitTest.php | 58 +-\n tests/Unit/Http/Controllers/Kiosk/ActivityControllerTest.php | 159 +++++\n tests/Unit/Jobs/Activity/Import/ImportTwilioVideoSpeechesJobTest.php | 22 +-\n tests/Unit/Jobs/Activity/Import/IsActivityReadyForProcessingJobTest.php | 26 +-\n tests/Unit/Jobs/Calendar/SetupCalendarSyncTest.php | 25 -\n tests/Unit/Services/Activity/ParticipantsServiceTest.php | 12 +-\n tests/Unit/Services/Activity/Twilio/S3RecordingCredentialsServiceTest.php | 180 +++++\n tests/Unit/Services/ActivityServiceTest.php | 132 ++++\n tests/Unit/Services/Calendar/CalendarActivityServiceTest.php | 150 +++-\n tests/Unit/Services/Calendar/Command/ImportParticipantsTest.php | 6 +-\n tests/Unit/Services/Calendar/Command/MapActivityDataTest.php | 78 +-\n tests/Unit/Services/Calendar/GoogleCalendarServiceTest.php | 116 +++\n tests/Unit/Services/Crm/Close/ServiceTest.php | 165 +++++\n tests/Unit/Services/Crm/Hubspot/ServiceTest.php | 272 ++++++-\n tests/Unit/Services/Crm/Hubspot/ServiceTraits/OpportunitySyncTest.php | 25 +-\n tests/Unit/Services/Crm/Hubspot/ServiceTraits/OpportunitySyncTraitMatchActivitiesTest.php | 3 +-\n tests/Unit/Services/Crm/IntegrationApp/ServiceTraits/SyncCrmEntitiesTraitOpportunitiesTest.php | 40 ++\n tests/Unit/Services/Crm/Pipedrive/ImportOpportunityMatchActivitiesTest.php | 2 +\n tests/Unit/Services/Crm/Salesforce/ServiceTest.php | 139 ++++\n tests/Unit/Services/Mail/Office/EmailApiClientTest.php | 195 ++---\n tests/Unit/Services/RecallAI/RecallAIServiceTest.php | 24 +-\n 175 files changed, 12562 insertions(+), 2162 deletions(-)\n create mode 120000 CLAUDE.md\n create mode 100644 app/Component/AiAutomation/Services/CrmFillingEligibilityChecker.php\n delete mode 100644 app/Component/ES/ElasticSearchWorkerManager.php\n delete mode 100644 app/Component/ES/Processor/Traits/SkipActivityTrait.php\n delete mode 100644 app/Component/ES/Worker/ActivityWorker.php\n delete mode 100644 app/Component/ES/Worker/EntityWorker.php\n delete mode 100644 app/Component/ES/Worker/WorkerAmount.php\n delete mode 100644 app/Component/ES/Worker/WorkerInterface.php\n create mode 100644 app/Component/ProphetAi/Exceptions/InsufficientTranscriptException.php\n create mode 100644 app/Component/Transcription/DTO/Http/Transcription/AssemblyAI/AssemblyAI/NoAssemblyIdException.php\n create mode 100644 app/Component/Transcription/DTO/Http/Transcription/TranscriptionIsNotCorrectFormatException.php\n create mode 100644 app/Console/Commands/Activities/SetupIntegration/TwilioSetS3RecordingCredentialsCommand.php\n create mode 100644 app/Console/Commands/Crm/BackfillOpportunityUserFromAccountCommand.php\n delete mode 100644 app/Console/Commands/Elasticsearch/AsyncUpdateEsActivities.php\n create mode 100644 app/Console/Commands/IssueMcpTokenCommand.php\n create mode 100644 app/Http/Middleware/McpAuditMiddleware.php\n create mode 100644 app/Http/Middleware/McpTierMiddleware.php\n create mode 100644 app/Mcp/Contracts/McpCallRepositoryInterface.php\n create mode 100644 app/Mcp/DTO/ListCallsFilters.php\n create mode 100644 app/Mcp/Errors/McpError.php\n create mode 100644 app/Mcp/Repositories/McpActivityHydrator.php\n create mode 100644 app/Mcp/Repositories/McpCallRepository.php\n create mode 100644 app/Mcp/Repositories/McpElasticCallRepository.php\n create mode 100644 app/Mcp/Servers/JiminnyServer.php\n create mode 100644 app/Mcp/Tools/ListCallsTool.php\n create mode 100644 app/Services/Activity/Twilio/S3RecordingCredentialsService.php\n create mode 100644 config/mcp.php\n create mode 100644 database/migrations/2026_04_30_120000_create_mcp_audit_log_table.php\n create mode 100644 docs/mcp/explorer/explorer.html\n create mode 100644 docs/mcp/explorer/explorer.template.html\n create mode 100644 docs/mcp/explorer/generate.js\n create mode 100644 docs/mcp/explorer/tool-explorer-meta.json\n create mode 100644 docs/mcp/tools-list.json\n create mode 100644 docs/mcp/tools.md\n create mode 100644 front-end/src/components/shared/modals/EntityPickerModal/__tests__/useEntitiesCache.spec.ts\n create mode 100644 tests/Feature/Component/Nudge/ProcessOrganisationImmediateNudgesJobTest.php\n create mode 100644 tests/Feature/Mcp/IssueMcpTokenCommandTest.php\n create mode 100644 tests/Feature/Mcp/ListCallsToolElasticFeatureTest.php\n create mode 100644 tests/Feature/Mcp/ListCallsToolFeatureTest.php\n create mode 100644 tests/Feature/Mcp/McpTestHelpersTrait.php\n create mode 100644 tests/Stubs/SentryStub.php\n create mode 100644 tests/Unit/Component/AiAutomation/Services/CrmFillingEligibilityCheckerTest.php\n delete mode 100644 tests/Unit/Component/ES/ElasticSearchWorkerManagerTest.php\n create mode 100644 tests/Unit/Component/ES/Processor/Actions/LoadDocumentsActionTest.php\n delete mode 100644 tests/Unit/Component/ES/Processor/Traits/SkipActivityTraitTest.php\n delete mode 100644 tests/Unit/Component/ES/Worker/ActivityWorkerTest.php\n delete mode 100644 tests/Unit/Component/ES/Worker/EntityWorkerTest.php\n delete mode 100644 tests/Unit/Component/ES/Worker/WorkerAmountTest.php\n create mode 100644 tests/Unit/Component/ParticipantSpeech/Services/ParticipantSpeechesCreatorTest.php\n create mode 100644 tests/Unit/Http/Controllers/Kiosk/ActivityControllerTest.php\n create mode 100644 tests/Unit/Services/Activity/Twilio/S3RecordingCredentialsServiceTest.php\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20725-handle-HS-search-rate-limit) $ git status\nOn branch master\nYour branch is behind 'origin/master' by 114 commits, and can be fast-forwarded.\n (use \"git pull\" to update your local branch)\n\nChanges not staged for commit:\n (use \"git add <file>...\" to update what will be committed)\n (use \"git restore <file>...\" to discard changes in working directory)\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tmodified: .env.local\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tmodified: app/Component/SCIM/Constants.php\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tmodified: app/Component/SCIM/ScimProvisioning.php\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tmodified: app/Component/Twilio/Conference/ConferenceManager/SoftPhoneManager.php\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tmodified: app/Console/Commands/JiminnyDebugCommand.php\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tmodified: app/DTO/SCIM/AAD/Request/CoreUserRequest.php\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tmodified: app/DTO/SCIM/AAD/Response/CoreUser.php\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tmodified: app/Services/Telephony/TextMessagingService.php\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tmodified: config/logging.php\n\nUntracked files:\n (use \"git add <file>...\" to include in what will be committed)\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\t.env.nikilocal\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\t.env.other\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tWEBHOOK_FILTERING_IMPLEMENTATION.md\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tapp/Component/SCIM/Mutators/Attributes/User/RoleAttr.php\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tapp/Console/Commands/Crm/Hubspot/SimulateWebhooksCommand.php\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tapp/Console/Commands/Reports/CreateMockAskJiminnyReportResultCommand.php\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tapp/Rules/ListenerRoleCannotHaveAdminOrManagerPermissionRule.php\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tids.txt\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tpublic/favicon.ico\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\traw_sql_query.sql\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\ttests/Unit/Component/SCIM/Mutators/Attributes/User/RoleAttrTest.php\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\ttests/Unit/Policies/CanAccessAiReportsTest.php\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\ttests/Unit/Rules/ListenerRoleCannotHaveAdminOrManagerPermissionRuleTest.php\n\nno changes added to commit (use \"git add\" and/or \"git commit -a\")\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (master) $ git pull\nremote: Enumerating objects: 306, done.\nremote: Counting objects: 100% (299/299), done.\nremote: Compressing objects: 100% (183/183), done.\nremote: Total 306 (delta 213), reused 171 (delta 116), pack-reused 7 (from 1)\nReceiving objects: 100% (306/306), 80.12 KiB | 1000.00 KiB/s, done.\nResolving deltas: 100% (213/213), completed with 53 local objects.\nFrom github.com:jiminny/app\n 90bca4e4b2..5604af40cf master -> origin/master\n 4e7078fd8b..0b8343d179 JY-18091-upgrade-to-php-8-5 -> origin/JY-18091-upgrade-to-php-8-5\n 098eeaa087..d5a447e492 JY-20613-allow-owner-role-on-team-setup -> origin/JY-20613-allow-owner-role-on-team-setup\n c3a76ace91..af65249d0f JY-20749-user-can-view-recorded-meetings -> origin/JY-20749-user-can-view-recorded-meetings\n d94a285ae7..7ce96cb5fe JY-20808-low-priority-indexing-queue -> origin/JY-20808-low-priority-indexing-queue\n * [new branch] JY-20842-remove-partial-updater -> origin/JY-20842-remove-partial-updater\n * [new branch] JY-20920-fix-participant-flip -> origin/JY-20920-fix-participant-flip\n * [new branch] secfix/npm-20260519 -> origin/secfix/npm-20260519\nUpdating cb4ebf0c36..5604af40cf\nFast-forward\n app/Component/ES/ChunkSize.php | 54 +++++++++++++++++++\n app/Component/ES/Processor/DTOs/SelectionList.php | 4 +-\n app/Component/ES/Processor/TargetEntitiesSelector.php | 19 ++++---\n app/Component/MeetingBot/Service/ParticipantMatcher.php | 46 ++++++++++++----\n app/Exceptions/RateLimitException.php | 19 ++++++-\n app/Http/Middleware/McpTierMiddleware.php | 27 ++--------\n app/Jobs/Crm/MatchActivityCrmData.php | 47 ++++++++++++----\n app/Jobs/Middleware/HandleHubspotRateLimit.php | 42 +++++++++++++++\n app/Mcp/Servers/JiminnyServer.php | 2 +\n app/Mcp/Tools/GetMeTool.php | 157 +++++++++++++++++++++++++++++++++++++++++++++++++++++\n app/Models/Feature/FeatureEnum.php | 1 +\n app/Services/Activity/HubSpot/ProviderResolver.php | 4 +-\n app/Services/Activity/HubSpot/ProviderResolverInterface.php | 2 +-\n app/Services/Activity/HubSpot/Providers/Provider.php | 2 +-\n app/Services/Activity/HubSpot/Providers/ProviderKixie.php | 2 +-\n app/Services/Activity/HubSpot/Providers/ProviderOrum.php | 2 +-\n app/Services/Activity/HubSpot/Providers/ProviderTwilio.php | 2 +-\n app/Services/Activity/HubSpot/Providers/ProviderTwilioFlex.php | 5 +-\n app/Services/Activity/HubSpot/Service.php | 97 +++++++++++++++++++++++++++------\n app/Services/Crm/Hubspot/Client.php | 132 +++++++++++++++++++++++++++++++++++++++++++++\n app/Services/Crm/Hubspot/HubspotClientInterface.php | 15 ++++++\n app/Services/Crm/Hubspot/Pagination/HubspotPaginationService.php | 21 ++++----\n app/Services/Crm/Hubspot/Pagination/PaginationState.php | 2 +-\n database/migrations/2026_05_13_124153_create_mcp_feature_flag.php | 25 +++++++++\n tests/Feature/Mcp/GetMeToolFeatureTest.php | 140 +++++++++++++++++++++++++++++++++++++++++++++++\n tests/Feature/Mcp/ListCallsToolFeatureTest.php | 2 +-\n tests/Feature/Mcp/McpTestHelpersTrait.php | 19 ++++++-\n tests/Unit/Component/ES/ChunkSizeTest.php | 50 +++++++++++++++++\n tests/Unit/Component/ES/Processor/DTOs/SelectionListTest.php | 27 +++++++---\n tests/Unit/Component/ES/Processor/TargetEntitiesSelectorTest.php | 39 ++++++++------\n tests/Unit/Component/MeetingBot/Service/ParticipantMatcherTest.php | 68 ++++++++++++++++++++++-\n tests/Unit/Exceptions/RateLimitExceptionTest.php | 56 +++++++++++++++++++\n tests/Unit/Jobs/Crm/MatchActivityCrmDataTest.php | 8 +--\n tests/Unit/Jobs/Middleware/HandleHubspotRateLimitTest.php | 151 +++++++++++++++++++++++++++++++++++++++++++++++++++\n tests/Unit/Services/Activity/HubSpot/ServiceTest.php | 109 +++++++++++++++++++++++++++++++++++++\n tests/Unit/Services/Crm/Hubspot/ClientTest.php | 250 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++\n tests/Unit/Services/Crm/Hubspot/Pagination/HubspotPaginationServiceTest.php | 283 +++++++++++++++++++++---------------------------------------------------------------------------\n 37 files changed, 1587 insertions(+), 344 deletions(-)\n create mode 100644 app/Component/ES/ChunkSize.php\n create mode 100644 app/Jobs/Middleware/HandleHubspotRateLimit.php\n create mode 100644 app/Mcp/Tools/GetMeTool.php\n create mode 100644 database/migrations/2026_05_13_124153_create_mcp_feature_flag.php\n create mode 100644 tests/Feature/Mcp/GetMeToolFeatureTest.php\n create mode 100644 tests/Unit/Component/ES/ChunkSizeTest.php\n create mode 100644 tests/Unit/Exceptions/RateLimitExceptionTest.php\n create mode 100644 tests/Unit/Jobs/Middleware/HandleHubspotRateLimitTest.php\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (master) $ git pull\nAlready up to date.\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (master) $ co -b JY-20676-delete-report-related-objects\nSwitched to a new branch 'JY-20676-delete-report-related-objects'\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20676-delete-report-related-objects) $ csfix\ndocker exec -it docker_lamp_1 ./vendor/bin/php-cs-fixer fix --config=.php-cs-fixer.dist.php -v --using-cache=no --diff \nPHP CS Fixer 3.87.1 Alexander by Fabien Potencier, Dariusz Ruminski and contributors.\nPHP runtime: 8.3.30\nRunning analysis on 7 cores with 10 files per process.\nParallel runner is an experimental feature and may be unstable, use it at your own risk. Feedback highly appreciated!\nLoaded config default from \".php-cs-fixer.dist.php\".\n 5690/5690 [▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓] 100%\n\n 1) app/Console/Commands/JiminnyDebugCommand.php (statement_indentation, blank_line_before_statement)\n ---------- begin diff ----------\n--- /home/jiminny/app/Console/Commands/JiminnyDebugCommand.php\n+++ /home/jiminny/app/Console/Commands/JiminnyDebugCommand.php\n@@ -23,6 +23,7 @@\n \n if ($action === 'redis-set') {\n $this->testRedisSet();\n+\n return;\n }\n \n@@ -45,7 +46,7 @@\n $ttl = 60;\n \n try {\n-// $result = Redis::set($testKey, $testValue, 'EX', $ttl, 'NX');\n+ // $result = Redis::set($testKey, $testValue, 'EX', $ttl, 'NX');\n $result = Redis::set($testKey, $testValue, ['nx', 'ex' => $ttl]);\n \n if ($result) {\n\n ----------- end diff -----------\n\n\nFixed 1 of 5690 files in 50.673 seconds, 67.00 MB memory used\n\nWhat's next:\n Try Docker Debug for seamless, persistent debugging tools in any container or image → docker debug docker_lamp_1\n Learn more at https://docs.docker.com/go/debug-cli/\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20676-delete-report-related-objects) $ ;xd\ndocker exec -it docker_lamp_1 bash -c \"mv /usr/local/etc/php/conf.d/xdebug.ini ~/xdebug.ini\"\n\nWhat's next:\n Try Docker Debug for seamless, persistent debugging tools in any container or image → docker debug docker_lamp_1\n Learn more at https://docs.docker.com/go/debug-cli/\ndocker exec -it docker_lamp_1 supervisorctl restart all\njiminny-worker-processing-2:jiminny-worker-processing-2_00: stopped\njiminny-worker-processing-3:jiminny-worker-processing-3_00: stopped\njiminny-worker-processing-4:jiminny-worker-processing-4_00: stopped\njiminny-worker-processing-5:jiminny-worker-processing-5_00: stopped\njiminny-worker-processing-delayed:jiminny-worker-processing-delayed_00: stopped\nworker-analytics:worker-analytics_00: stopped\nworker-crm-update:worker-crm-update_00: stopped\nworker-download:worker-download_00: stopped\nworker-nudges:worker-nudges_00: stopped\nworker-calendar:worker-calendar_00: stopped\nworker-audio:worker-audio_00: stopped\njiminny-worker-processing-1:jiminny-worker-processing-1_00: stopped\nworker:worker_00: stopped\nworker-conferences:worker-conferences_00: stopped\nworker-crm-sync:worker-crm-sync_00: stopped\nworker-emails:worker-emails_00: stopped\nworker-es-update:worker-es-update_00: stopped\nartisan-schedule:artisan-schedule_00: stopped\nartisan-schedule:artisan-schedule_00: started\njiminny-worker-processing-1:jiminny-worker-processing-1_00: started\njiminny-worker-processing-2:jiminny-worker-processing-2_00: started\njiminny-worker-processing-3:jiminny-worker-processing-3_00: started\njiminny-worker-processing-4:jiminny-worker-processing-4_00: started\njiminny-worker-processing-5:jiminny-worker-processing-5_00: started\njiminny-worker-processing-delayed:jiminny-worker-processing-delayed_00: started\nworker:worker_00: started\nworker-analytics:worker-analytics_00: started\nworker-audio:worker-audio_00: started\nworker-calendar:worker-calendar_00: started\nworker-conferences:worker-conferences_00: started\nworker-crm-sync:worker-crm-sync_00: started\nworker-crm-update:worker-crm-update_00: started\nworker-download:worker-download_00: started\nworker-emails:worker-emails_00: started\nworker-es-update:worker-es-update_00: started\nworker-nudges:worker-nudges_00: started\n\nWhat's next:\n Try Docker Debug for seamless, persistent debugging tools in any container or image → docker debug docker_lamp_1\n Learn more at https://docs.docker.com/go/debug-cli/\ndocker exec -it docker_lamp_1 php -v\nPHP 8.3.30 (cli) (built: Mar 16 2026 22:32:32) (NTS)\nCopyright (c) The PHP Group\nZend Engine v4.3.30, Copyright (c) Zend Technologies\n with Zend OPcache v8.3.30, Copyright (c), by Zend Technologies\n\nWhat's next:\n Try Docker Debug for seamless, persistent debugging tools in any container or image → docker debug docker_lamp_1\n Learn more at https://docs.docker.com/go/debug-cli/\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20676-delete-report-related-objects) $ git status\nOn branch JY-20676-delete-report-related-objects\nChanges not staged for commit:\n (use \"git add <file>...\" to update what will be committed)\n (use \"git restore <file>...\" to discard changes in working directory)\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tmodified: .env.local\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tmodified: app/Console/Commands/JiminnyDebugCommand.php\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tmodified: config/logging.php\n\nUntracked files:\n (use \"git add <file>...\" to include in what will be committed)\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\t.env.nikilocal\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\t.env.other\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tWEBHOOK_FILTERING_IMPLEMENTATION.md\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tapp/Console/Commands/Crm/Hubspot/SimulateWebhooksCommand.php\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tapp/Console/Commands/Reports/CreateMockAskJiminnyReportResultCommand.php\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tids.txt\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tpublic/favicon.ico\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\traw_sql_query.sql\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\ttests/Unit/Policies/CanAccessAiReportsTest.php\n\nno changes added to commit (use \"git add\" and/or \"git commit -a\")\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20676-delete-report-related-objects) $ git push -u origin JY-20676-delete-report-related-objects\nEnumerating objects: 45, done.\nCounting objects: 100% (45/45), done.\nDelta compression using up to 8 threads\nCompressing objects: 100% (24/24), done.\nWriting objects: 100% (24/24), 3.62 KiB | 3.62 MiB/s, done.\nTotal 24 (delta 19), reused 0 (delta 0), pack-reused 0\nremote: Resolving deltas: 100% (19/19), completed with 19 local objects.\nremote: \nremote: Create a pull request for 'JY-20676-delete-report-related-objects' on GitHub by visiting:\nremote: https://github.com/jiminny/app/pull/new/JY-20676-delete-report-related-objects\nremote: \nTo github.com:jiminny/app.git\n * [new branch] JY-20676-delete-report-related-objects -> JY-20676-delete-report-related-objects\nbranch 'JY-20676-delete-report-related-objects' set up to track 'origin/JY-20676-delete-report-related-objects'.\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20676-delete-report-related-objects) $ csfix\ndocker exec -it docker_lamp_1 ./vendor/bin/php-cs-fixer fix --config=.php-cs-fixer.dist.php -v --using-cache=no --diff \nPHP CS Fixer 3.87.1 Alexander by Fabien Potencier, Dariusz Ruminski and contributors.\nPHP runtime: 8.3.30\nRunning analysis on 7 cores with 10 files per process.\nParallel runner is an experimental feature and may be unstable, use it at your own risk. Feedback highly appreciated!\nLoaded config default from \".php-cs-fixer.dist.php\".\n 5690/5690 [▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓] 100%\n\n 1) app/Http/Controllers/API/V2/AskJiminnyReportsController.php (blank_line_before_statement)\n ---------- begin diff ----------\n--- /home/jiminny/app/Http/Controllers/API/V2/AskJiminnyReportsController.php\n+++ /home/jiminny/app/Http/Controllers/API/V2/AskJiminnyReportsController.php\n@@ -140,6 +140,7 @@\n if ($enabled && $report->isAskJiminnyReport() && ! $report->canExecute()) {\n $error = 'This report is missing a saved search or prompt. ' .\n 'Edit the report to complete the setup before enabling it.';\n+\n return new JsonResponse(\n ['error' => $error],\n Response::HTTP_UNPROCESSABLE_ENTITY\n\n ----------- end diff -----------\n\n\nFixed 1 of 5690 files in 71.757 seconds, 60.00 MB memory used\n\nWhat's next:\n Try Docker Debug for seamless, persistent debugging tools in any container or image → docker debug docker_lamp_1\n Learn more at https://docs.docker.com/go/debug-cli/\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20676-delete-report-related-objects) $ git pull\nremote: Enumerating objects: 158, done.\nremote: Counting objects: 100% (103/103), done.\nremote: Compressing objects: 100% (37/37), done.\nremote: Total 158 (delta 80), reused 74 (delta 66), pack-reused 55 (from 3)\nReceiving objects: 100% (158/158), 80.59 KiB | 982.00 KiB/s, done.\nResolving deltas: 100% (85/85), completed with 45 local objects.\nFrom github.com:jiminny/app\n 02a33811ee..c6ce5e2440 JY-20676-delete-report-related-objects -> origin/JY-20676-delete-report-related-objects\n 7ce96cb5fe..6c59f04358 JY-20808-low-priority-indexing-queue -> origin/JY-20808-low-priority-indexing-queue\n 3906a9238a..2b5e6ea62b JY-20835-mcp-enable-users-to-get-a-list-of-deals-and-their-details -> origin/JY-20835-mcp-enable-users-to-get-a-list-of-deals-and-their-details\n 5604af40cf..ea3519f0e2 master -> origin/master\n * [new branch] switch-eu-assembly -> origin/switch-eu-assembly\nUpdating 02a33811ee..c6ce5e2440\nFast-forward\n app/Component/ES/ElasticSearchDocumentPartialUpdater.php | 48 ---\n app/Component/ParticipantSpeech/Services/ParticipantAttributionService.php | 4 +-\n app/Component/Settings/AutoScoring/Services/UpdateAutoScoreService.php | 20 +-\n app/Component/Transcription/Service/StorageService.php | 8 +-\n front-end/package.json | 2 +-\n front-end/src/components/DealInsights/Modals/AskAnythingModal.vue | 23 ++\n front-end/src/components/shared/AskAnything/AskAnythingPromptFormItem.vue | 2 +\n front-end/src/components/shared/AskAnything/AskAnythingSettingsDrawer.vue | 23 +-\n front-end/src/components/shared/AskAnything/__mocks__/AskAnythingSettingsDrawer.mocks.js | 1 +\n front-end/src/components/shared/AskAnything/__tests__/AskAnythingSettingsDrawer.spec.js | 135 ++++---\n front-end/src/components/shared/AskAnything/__tests__/__snapshots__/AskAnythingSettingsDrawer.spec.js.html | 1235 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++\n front-end/src/components/shared/AskAnything/__tests__/__snapshots__/AskAnythingSettingsDrawer.spec.js.snap | 1382 ----------------------------------------------------------------\n front-end/src/components/shared/AskAnything/prompts.js | 1 +\n front-end/src/components/shared/AskAnything/useAskAnything.js | 1 +\n front-end/yarn.lock | 8 +-\n tests/Unit/Component/ES/ElasticSearchDocumentPartialUpdaterTest.php | 42 --\n tests/Unit/Component/Settings/AutoScoring/Services/UpdateAutoScoreServiceTest.php | 86 ++--\n tests/Unit/Component/Transcription/Service/StorageServiceTest.php | 29 +-\n 18 files changed, 1448 insertions(+), 1602 deletions(-)\n delete mode 100644 app/Component/ES/ElasticSearchDocumentPartialUpdater.php\n create mode 100644 front-end/src/components/shared/AskAnything/__tests__/__snapshots__/AskAnythingSettingsDrawer.spec.js.html\n delete mode 100644 front-end/src/components/shared/AskAnything/__tests__/__snapshots__/AskAnythingSettingsDrawer.spec.js.snap\n delete mode 100644 tests/Unit/Component/ES/ElasticSearchDocumentPartialUpdaterTest.php\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20676-delete-report-related-objects) $ csfix\ndocker exec -it docker_lamp_1 ./vendor/bin/php-cs-fixer fix --config=.php-cs-fixer.dist.php -v --using-cache=no --diff \nPHP CS Fixer 3.87.1 Alexander by Fabien Potencier, Dariusz Ruminski and contributors.\nPHP runtime: 8.3.30\nRunning analysis on 7 cores with 10 files per process.\nParallel runner is an experimental feature and may be unstable, use it at your own risk. Feedback highly appreciated!\nLoaded config default from \".php-cs-fixer.dist.php\".\n 5688/5688 [▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓] 100%\n\n\nFixed 0 of 5688 files in 79.904 seconds, 60.00 MB memory used\n\nWhat's next:\n Try Docker Debug for seamless, persistent debugging tools in any container or image → docker debug docker_lamp_1\n Learn more at https://docs.docker.com/go/debug-cli/\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20676-delete-report-related-objects) $","is_focused":true},{"role":"AXRadioButton","text":"DOCKER","depth":2,"bounds":{"left":0.27027926,"top":1.0,"width":0.094913565,"height":-0.042298436},"on_screen":true,"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.27227393,"top":1.0,"width":0.005319149,"height":-0.04549086},"on_screen":true,"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"DEV (docker)","depth":2,"bounds":{"left":0.36519283,"top":1.0,"width":0.094913565,"height":-0.042298436},"on_screen":true,"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.3671875,"top":1.0,"width":0.005319149,"height":-0.04549086},"on_screen":true,"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"APP (-zsh)","depth":2,"bounds":{"left":0.46010637,"top":1.0,"width":0.09474734,"height":-0.042298436},"on_screen":true,"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.46210107,"top":1.0,"width":0.005319149,"height":-0.04549086},"on_screen":true,"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"screenpipe\"","depth":2,"bounds":{"left":0.55485374,"top":1.0,"width":0.09474734,"height":-0.042298436},"on_screen":true,"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.5568484,"top":1.0,"width":0.005319149,"height":-0.04549086},"on_screen":true,"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"-zsh","depth":2,"bounds":{"left":0.64960104,"top":1.0,"width":0.09474734,"height":-0.042298436},"on_screen":true,"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.6515958,"top":1.0,"width":0.005319149,"height":-0.04549086},"on_screen":true,"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"⌥⌘1","depth":1,"bounds":{"left":0.7307181,"top":1.0,"width":0.01861702,"height":-0.023144484},"on_screen":true,"automation_id":"_NS:8","role_description":"text"},{"role":"AXStaticText","text":"APP (-zsh)","depth":1,"bounds":{"left":0.49900267,"top":1.0,"width":0.024601065,"height":-0.02394259},"on_screen":true,"role_description":"text"}]...
|
2802650493718167367
|
-1358120912881272742
|
idle
|
accessibility
|
NULL
|
Last login: Mon May 18 09:17:28 on ttys007
Poetry Last login: Mon May 18 09:17:28 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 (pipedrive-sdk-poc) $ co master
error: Your local changes to the following files would be overwritten by checkout:
PIPEDRIVE_V2_MIGRATION_TICKETS.md
Please commit your changes or stash them before you switch branches.
Aborting
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (pipedrive-sdk-poc) $ git pull
remote: Enumerating objects: 1047, done.
remote: Counting objects: 100% (832/832), done.
remote: Compressing objects: 100% (298/298), done.
remote: Total 1047 (delta 634), reused 596 (delta 534), pack-reused 215 (from 3)
Receiving objects: 100% (1047/1047), 353.16 KiB | 1.56 MiB/s, done.
Resolving deltas: 100% (687/687), completed with 107 local objects.
From github.com:jiminny/app
907c54896c..34656c53ed pipedrive-sdk-poc -> origin/pipedrive-sdk-poc
03325ec50f..4e7078fd8b JY-18091-upgrade-to-php-8-5 -> origin/JY-18091-upgrade-to-php-8-5
e7d231e163..bc6a3fce6b JY-20725-handle-HS-search-rate-limit -> origin/JY-20725-handle-HS-search-rate-limit
* [new branch] JY-20749-user-can-view-recorded-meetings -> origin/JY-20749-user-can-view-recorded-meetings
98ca281a04..e0351be069 JY-20808-low-priority-indexing-queue -> origin/JY-20808-low-priority-indexing-queue
569abb5149..3906a9238a JY-20835-mcp-enable-users-to-get-a-list-of-deals-and-their-details -> origin/JY-20835-mcp-enable-users-to-get-a-list-of-deals-and-their-details
ad6c2a86e8..50eb6afba9 JY-20846-mcp-enable-the-ai-to-know-details-about-the-user -> origin/JY-20846-mcp-enable-the-ai-to-know-details-about-the-user
* [new branch] JY-20893-chunk-control-per-update-target -> origin/JY-20893-chunk-control-per-update-target
31c62924a5..cb4ebf0c36 master -> origin/master
Updating 907c54896c..34656c53ed
Fast-forward
PIPEDRIVE_V2_MIGRATION_TICKETS.md | 52 ++++++++++++++++++++++++++++++++++++++++++++++++++++
1 file changed, 52 insertions(+)
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (pipedrive-sdk-poc) $ co master
M .env.local
M config/logging.php
Switched to branch 'master'
Your branch is behind 'origin/master' by 31 commits, and can be fast-forwarded.
(use "git pull" to update your local branch)
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (master) $ git pull
Updating 31c62924a5..cb4ebf0c36
Fast-forward
app/Component/ES/Processor/Traits/SelectEntityListTrait.php | 20 ------
app/Services/Calendar/CalendarActivityService.php | 46 +++++++++++++
app/Services/Calendar/Command/MapActivityData.php | 106 +++-------------------------
docs/mcp/explorer/explorer.html | 104 +++++++++++++++++++++++++---
docs/mcp/explorer/explorer.template.html | 102 ++++++++++++++++++++++++---
docs/mcp/tools-list.json | 373 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++-------
docs/mcp/tools.md | 117 +++++++++++++++++++++++--------
tests/Unit/Component/ES/AsyncUpdateElasticSearchTest.php | 16 +----
tests/Unit/Component/ES/Listeners/UpdateMultipleTargetsListenerTest.php | 10 ---
tests/Unit/Component/ES/Listeners/UpdateSingleTargetListenerTest.php | 6 --
tests/Unit/Component/ES/Processor/TargetEntitiesSelectorTest.php | 9 ---
tests/Unit/Component/ES/Processor/Traits/SelectEntityListTraitTest.php | 15 ++--
tests/Unit/Component/ES/UpdateProcessManagerTest.php | 2 -
tests/Unit/Services/Calendar/CalendarActivityServiceTest.php | 150 ++++++++++++++++++++++++++++++++++++++--
tests/Unit/Services/Calendar/Command/MapActivityDataTest.php | 78 ++-------------------
15 files changed, 832 insertions(+), 322 deletions(-)
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (master) $ co -b JY-20613-allow-owner-role-on-team-setup
Switched to a new branch 'JY-20613-allow-owner-role-on-team-setup'
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20613-allow-owner-role-on-team-setup) $ csfix
docker exec -it docker_lamp_1 ./vendor/bin/php-cs-fixer fix --config=.php-cs-fixer.dist.php -v --using-cache=no --diff
PHP CS Fixer 3.87.1 Alexander by Fabien Potencier, Dariusz Ruminski and contributors.
PHP runtime: 8.3.30
Running 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!
Loaded config default from ".php-cs-fixer.dist.php".
5682/5682 [▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓] 100%
Fixed 0 of 5682 files in 56.978 seconds, 67.00 MB memory used
What's next:
Try Docker Debug for seamless, persistent debugging tools in any container or image → docker debug docker_lamp_1
Learn more at [URL_WITH_CREDENTIALS] ~/jiminny/app (JY-20613-allow-owner-role-on-team-setup) $ csfix
docker exec -it docker_lamp_1 ./vendor/bin/php-cs-fixer fix --config=.php-cs-fixer.dist.php -v --using-cache=no --diff
PHP CS Fixer 3.87.1 Alexander by Fabien Potencier, Dariusz Ruminski and contributors.
PHP runtime: 8.3.30
Running 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!
Loaded config default from ".php-cs-fixer.dist.php".
5682/5682 [▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓] 100%
Fixed 0 of 5682 files in 49.910 seconds, 60.00 MB memory used
What's next:
Try Docker Debug for seamless, persistent debugging tools in any container or image → docker debug docker_lamp_1
Learn more at [URL_WITH_CREDENTIALS] ~/jiminny/app (JY-20613-allow-owner-role-on-team-setup) $ git pull
remote: Enumerating objects: 248, done.
remote: Counting objects: 100% (128/128), done.
remote: Compressing objects: 100% (23/23), done.
remote: Total 59 (delta 43), reused 44 (delta 33), pack-reused 0 (from 0)
Unpacking objects: 100% (59/59), 10.48 KiB | 228.00 KiB/s, done.
From github.com:jiminny/app
b7df560451..190239dfd4 JY-20613-allow-owner-role-on-team-setup -> origin/JY-20613-allow-owner-role-on-team-setup
e0351be069..d94a285ae7 JY-20808-low-priority-indexing-queue -> origin/JY-20808-low-priority-indexing-queue
* [new branch] JY-20920-fix-participant-matcher -> origin/JY-20920-fix-participant-matcher
cb4ebf0c36..90bca4e4b2 master -> origin/master
Merge made by the 'ort' strategy.
app/Component/ES/ChunkSize.php | 54 +++++++++++++++++++++++++++
app/Component/ES/Processor/DTOs/SelectionList.php | 4 +-
app/Component/ES/Processor/TargetEntitiesSelector.php | 19 ++++++----
app/Http/Middleware/McpTierMiddleware.php | 27 +++-----------
app/Mcp/Servers/JiminnyServer.php | 2 +
app/Mcp/Tools/GetMeTool.php | 157 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
app/Models/Feature/FeatureEnum.php | 1 +
database/migrations/2026_05_13_124153_create_mcp_feature_flag.php | 25 +++++++++++++
front-end/src/components/Settings/Kiosk/modals/EditTeamModal/EditTeamModal.vue | 52 ++++++++++++++++++--------
front-end/src/components/Settings/Kiosk/modals/EditTeamModal/__tests__/EditTeamModal.spec.js | 14 +++++++
tests/Feature/Mcp/GetMeToolFeatureTest.php | 140 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
tests/Feature/Mcp/ListCallsToolFeatureTest.php | 2 +-
tests/Feature/Mcp/McpTestHelpersTrait.php | 19 +++++++++-
tests/Unit/Component/ES/ChunkSizeTest.php | 50 +++++++++++++++++++++++++
tests/Unit/Component/ES/Processor/DTOs/SelectionListTest.php | 27 ++++++++++----
tests/Unit/Component/ES/Processor/TargetEntitiesSelectorTest.php | 39 +++++++++++---------
16 files changed, 557 insertions(+), 75 deletions(-)
create mode 100644 app/Component/ES/ChunkSize.php
create mode 100644 app/Mcp/Tools/GetMeTool.php
create mode 100644 database/migrations/2026_05_13_124153_create_mcp_feature_flag.php
create mode 100644 tests/Feature/Mcp/GetMeToolFeatureTest.php
create mode 100644 tests/Unit/Component/ES/ChunkSizeTest.php
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20613-allow-owner-role-on-team-setup) $ git push
Enumerating objects: 40, done.
Counting objects: 100% (34/34), done.
Delta compression using up to 8 threads
Compressing objects: 100% (18/18), done.
Writing objects: 100% (18/18), 1.58 KiB | 1.58 MiB/s, done.
Total 18 (delta 15), reused 0 (delta 0), pack-reused 0
remote: Resolving deltas: 100% (15/15), completed with 13 local objects.
To github.com:jiminny/app.git
190239dfd4..ec1b261264 JY-20613-allow-owner-role-on-team-setup -> JY-20613-allow-owner-role-on-team-setup
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20613-allow-owner-role-on-team-setup) $ gbr
* JY-20613-allow-owner-role-on-team-setup
pipedrive-sdk-poc
master
JY-20903-update_activity-stage-on-opportunity-change
JY-20904-fix-update-es-on-activity-command
JY-20891-improve-sms-text-relays
JY-20725-handle-HS-search-rate-limit
JY-20818-move-AJ-reports-to-separated-datadog-metric
JY-20773-fix-automated-reports-user-pilot-tracking
JY-20157-AJ-report-not-send-notification
JY-20508-notify-before-AJ-report-expiration
JY-20372-ai-reports-promotion-pages
JY-20352-sync-opportunities-without-a-local-owner-user-id-is-null
JY-20738-debug-AJ-tracking-UP
a
JY-18909-automated-reports-ask-jiminny
JY-20692-fix-integration-app-[API_KEY]
JY-20553-debug-crm-sync-delays
JY-20698-fix-SF-activity-types-on-new-playbook
JY-20543-AJ-report-tracking
JY-20384-handle-auto-sync-with-no-access-to-event-type
JY-20458-ask-jiminny-user-definitions
JY-19666-fix-import-contacts-account-association
JY-19666-HS-import-contacts-and-accounts-batch-job
JY-20458-Ask-Jiminny-Reports
JY-20200-batch-update-CRM-objects-Salesforce
JY-19666-HS-webhooks-add-contact-and-company
JY-20348-trigger-setup-DI-layout-on-team-creation
JY-20326-refactor-info-message-in-command
JY-20317-fix-auto-log-delay-issue-on-all-channels-disabled
JY-20312-remove-on-update-change-last-synced-at-crm-configurations
JY-20306-SF-skip-auto-sync-for-task-based-playbook
JY-20192-remove-deleted-team-from-saved-search-filters
JY-20197-import-opportunity-batch-job
JY-20293-enable-status-field-for-pipedrive-deals
JY-20191-remove-commands-interactive-prompts
JY-20118-change-default-sync-strategy
JY-20183-add-cache-on-auto-log-delay
JY-20197-add-import-opportunity-batch-job
20118-hs-opportunity-make-webhook-strategy-default
JY-20118-make-default-hs-opportunity-sync-strategy-webhook-based
JY-20196-handle-opportunity-without-note
JY-20118-improve-opportunity-import
JY-20189-handle-activity-search-on-deleted-groups
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20613-allow-owner-role-on-team-setup) $ co JY-20725-handle-HS-search-rate-limit
M .env.local
M config/logging.php
Switched to branch 'JY-20725-handle-HS-search-rate-limit'
Your branch is behind 'origin/JY-20725-handle-HS-search-rate-limit' by 439 commits, and can be fast-forwarded.
(use "git pull" to update your local branch)
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20725-handle-HS-search-rate-limit) $ git pull
Updating 0f3e438941..bc6a3fce6b
Fast-forward
.gitignore | 3 +-
.windsurfrules | 168 ++---
CLAUDE.md | 1 +
app/Component/ActivityAnalytics/Service/CalculateTalkTimeOffsetsFromTranscription.php | 24 +-
app/Component/AiActivityType/Services/AiActivityTypeEligibilityChecker.php | 28 +-
app/Component/AiAutomation/Actions/PrepareUpdateDtoAction.php | 32 +-
app/Component/AiAutomation/Services/CrmFillingEligibilityChecker.php | 47 ++
app/Component/AiAutomation/TestCrmAiPromptService.php | 14 +
app/Component/AiCallScoring/Services/AiCallScoringEligibilityChecker.php | 9 +
app/Component/ES/ElasticSearchDocumentPartialUpdater.php | 13 +-
app/Component/ES/ElasticSearchWorkerManager.php | 86 ---
app/Component/ES/Processor/Actions/LoadDocumentsAction.php | 80 +--
app/Component/ES/Processor/EntityQueryBuilder.php | 12 +-
app/Component/ES/Processor/TargetEntitiesSelector.php | 2 +-
app/Component/ES/Processor/Traits/SkipActivityTrait.php | 25 -
app/Component/ES/Repositories/EsResetActivityRepository.php | 11 +-
app/Component/ES/Worker/ActivityWorker.php | 73 --
app/Component/ES/Worker/EntityWorker.php | 44 --
app/Component/ES/Worker/WorkerAmount.php | 60 --
app/Component/ES/Worker/WorkerInterface.php | 15 -
app/Component/ElasticSearch/Contract/Searchable.php | 4 +
app/Component/Encoding/Job/AnalyzeTrackChannelsJob.php | 20 +-
app/Component/Encoding/Service/GenerateSpeechFromSilenceService.php | 85 ++-
app/Component/FFMpeg/Services/GetSpeechIntervalsService.php | 18 +-
app/Component/LanguageDetection/Services/FindSpeechTimeService.php | 22 +-
app/Component/Nudge/Job/ProcessOrganisationImmediateNudgesJob.php | 218 +++++-
app/Component/ParagraphBreaker/Services/TranscriptionParagraphsService.php | 4 +
app/Component/ParticipantSpeech/Services/ParticipantSpeechesCreator.php | 33 +
app/Component/ParticipantSpeech/Services/ParticipantSpeechesDeleter.php | 15 +
app/Component/ParticipantSpeech/Services/ParticipantSpeechesProvider.php | 51 +-
app/Component/ParticipantSpeech/Services/ParticipantSpeechesUploader.php | 36 +
app/Component/ProphetAi/Exceptions/InsufficientTranscriptException.php | 11 +
app/Component/Transcription/DTO/Http/Transcription/AssemblyAI/AssemblyAI/NoAssemblyIdException.php | 11 +
app/Component/Transcription/DTO/Http/Transcription/AssemblyAI/AssemblyAI/SuccessfulResponse.php | 6 +
app/Component/Transcription/DTO/Http/Transcription/TranscriptionIsNotCorrectFormatException.php | 11 +
app/Component/Transcription/Diarization/Services/GetNormalizedParticipantSpeechesService.php | 23 +-
app/Component/Transcription/Diarization/Source/MeetingBotSource.php | 16 +-
app/Component/Transcription/TranscriptionProcessor/TranscriptionProcessor.php | 3 +
app/Console/Commands/Activities/ActivityHardDeleteCommand.php | 4 +-
app/Console/Commands/Activities/Copy.php | 2 +
app/Console/Commands/Activities/SetupIntegration/TwilioSetS3RecordingCredentialsCommand.php | 119 ++++
app/Console/Commands/Activities/UpdateActivityElasticSearchDocumentCommand.php | 10 +-
app/Console/Commands/Crm/BackfillOpportunityUserFromAccountCommand.php | 126 ++++
app/Console/Commands/Elasticsearch/AsyncUpdateEsActivities.php | 19 -
app/Console/Commands/Elasticsearch/AsyncUpdateEsEntities.php | 50 +-
app/Console/Commands/Elasticsearch/ResetAsyncElasticSearchCommand.php | 30 +-
app/Console/Commands/GeckoExport/GeckoExportParticipantSpeechesCommand.php | 14 +-
app/Console/Commands/IssueMcpTokenCommand.php | 84 +++
app/Console/Commands/JiminnyDebugCommand.php | 7 +-
app/Console/Commands/Tracks/CleanupActivityTracksCommand.php | 2 +-
app/Console/Kernel.php | 6 +-
app/Contracts/Services/Calendar/CalendarTrait.php | 80 ++-
app/Events/AutomatedReports/AutomatedReportGenerated.php | 3 +
app/Http/Controllers/API/AiCallScoring/AiScorecardController.php | 7 +-
app/Http/Controllers/API/TeamAiAutomationController.php | 8 +
app/Http/Controllers/CustomerApi/CustomerApiController.php | 4 +-
app/Http/Controllers/Kiosk/ActivityController.php | 58 +-
app/Http/Controllers/Settings/PlaybookController.php | 15 +-
app/Http/Kernel.php | 23 +
app/Http/Middleware/McpAuditMiddleware.php | 156 ++++
app/Http/Middleware/McpTierMiddleware.php | 54 ++
app/Http/Requests/API/V2/ZapierUploadActivityRequest.php | 28 +-
app/Jobs/Activity/Import/ImportTwilioVideoSpeechesJob.php | 25 +-
app/Jobs/Activity/Import/IsActivityReadyForProcessingJob.php | 10 +-
app/Jobs/Calendar/SetupCalendarSync.php | 21 +-
app/Jobs/ImportRemoteTrackJob.php | 96 ++-
app/Jobs/Mailbox/EmailTextRelay.php | 15 +-
app/Mcp/Contracts/McpCallRepositoryInterface.php | 30 +
app/Mcp/DTO/ListCallsFilters.php | 29 +
app/Mcp/Errors/McpError.php | 123 ++++
app/Mcp/Repositories/McpActivityHydrator.php | 145 ++++
app/Mcp/Repositories/McpCallRepository.php | 84 +++
app/Mcp/Repositories/McpElasticCallRepository.php | 171 +++++
app/Mcp/Servers/JiminnyServer.php | 38 +
app/Mcp/Tools/ListCallsTool.php | 205 ++++++
app/Models/Activity.php | 10 +-
app/Models/Activity/Transcription.php | 17 +-
app/Models/ElasticSearch/OpportunityElasticSearchTrait.php | 5 +
app/Models/Participant.php | 1 +
app/Providers/AppServiceProvider.php | 22 +
app/Repositories/Crm/ContactRepository.php | 69 +-
app/Repositories/ParticipantSpeechRepository.php | 13 +-
app/Services/Activity/ParticipantsService.php | 19 +-
app/Services/Activity/Twilio/S3RecordingCredentialsService.php | 82 +++
app/Services/ActivityService.php | 21 +-
app/Services/Calendar/CalendarActivityService.php | 46 ++
app/Services/Calendar/Command/ImportParticipants.php | 1 +
app/Services/Calendar/Command/MapActivityData.php | 106 +--
app/Services/Calendar/GoogleCalendarService.php | 12 +-
app/Services/Crm/Close/Processor/OpportunityProcessor.php | 2 +-
app/Services/Crm/Close/Service.php | 22 +-
app/Services/Crm/Copper/Service.php | 12 +-
app/Services/Crm/Hubspot/Service.php | 154 +++-
app/Services/Crm/Hubspot/ServiceTraits/OpportunitySyncTrait.php | 88 ++-
app/Services/Crm/IntegrationApp/ServiceTraits/SyncCrmEntitiesTrait.php | 22 +-
app/Services/Crm/Pipedrive/Service.php | 17 +-
app/Services/Crm/Salesforce/Service.php | 42 +-
app/Services/Mail/Office/EmailApiClient.php | 129 +---
app/Services/RecallAI/Commands/ScheduleBotCommand.php | 39 +-
app/Services/RecallAI/RecallAIService.php | 22 +-
composer.json | 3 +-
composer.lock | 87 ++-
config/mcp.php | 23 +
database/migrations/2026_04_30_120000_create_mcp_audit_log_table.php | 36 +
docs/mcp/explorer/explorer.html | 697 ++++++++++++++++++
docs/mcp/explorer/explorer.template.html | 697 ++++++++++++++++++
docs/mcp/explorer/generate.js | 215 ++++++
docs/mcp/explorer/tool-explorer-meta.json | 11 +
docs/mcp/tools-list.json | 2536 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
docs/mcp/tools.md | 621 ++++++++++++++++
front-end/package.json | 4 +-
front-end/src/components/Settings/OrgSettings/AiAutomation/CrmFilling/TemplateFieldForm.vue | 28 +-
front-end/src/components/Settings/OrgSettings/Playbooks/AddEditPlaybook.vue | 10 +
front-end/src/components/playback/comments/ActivityComment.less | 10 +-
front-end/src/components/shared/PromptTester/PromptTester.vue | 12 +-
front-end/src/components/shared/__tests__/PromptTester.spec.js | 35 +
front-end/src/components/shared/modals/EntityPickerModal/__tests__/useEntitiesCache.spec.ts | 37 +
front-end/src/components/shared/modals/EntityPickerModal/useEntitiesCache.ts | 9 +
front-end/yarn.lock | 16 +-
phpstan-baseline.neon | 50 --
routes/api.php | 11 +
sonar-project.properties | 91 ++-
tests/Feature/Component/Nudge/ProcessOrganisationImmediateNudgesJobTest.php | 534 ++++++++++++++
tests/Feature/Jobs/ImportRemoteTrackJobTest.php | 283 +++++++-
tests/Feature/Mcp/IssueMcpTokenCommandTest.php | 53 ++
tests/Feature/Mcp/ListCallsToolElasticFeatureTest.php | 155 ++++
tests/Feature/Mcp/ListCallsToolFeatureTest.php | 352 ++++++++++
tests/Feature/Mcp/McpTestHelpersTrait.php | 77 ++
tests/Feature/Services/Team/TeamDeleteHandlers/Retention/RetentionRepositoryHandlerTest.php | 1 +
tests/Stubs/SentryStub.php | 18 +
tests/Unit/Component/ActivityAnalytics/Service/CalculateTalkTimeOffsetFromTranscriptionTest.php | 28 +-
tests/Unit/Component/AiActivityType/Services/AiActivityTypeEligibilityCheckerTest.php | 103 ++-
tests/Unit/Component/AiAutomation/Actions/PrepareUpdateDtoActionTest.php | 91 +++
tests/Unit/Component/AiAutomation/Services/CrmFillingEligibilityCheckerTest.php | 124 ++++
tests/Unit/Component/AiAutomation/TestCrmAiPromptServiceTest.php | 67 +-
tests/Unit/Component/AiCallScoring/Services/AiCallScoringEligibilityCheckerTest.php | 55 ++
tests/Unit/Component/ES/ElasticSearchWorkerManagerTest.php | 135 ----
tests/Unit/Component/ES/Processor/Actions/LoadDocumentsActionTest.php | 220 ++++++
tests/Unit/Component/ES/Processor/EntityQueryBuilderTest.php | 21 +-
tests/Unit/Component/ES/Processor/Traits/SkipActivityTraitTest.php | 51 --
tests/Unit/Component/ES/Worker/ActivityWorkerTest.php | 174 -----
tests/Unit/Component/ES/Worker/EntityWorkerTest.php | 97 ---
tests/Unit/Component/ES/Worker/WorkerAmountTest.php | 116 ---
tests/Unit/Component/Encoding/Job/AnalyzeTrackChannelsJobTest.php | 52 +-
tests/Unit/Component/Encoding/Service/GenerateSpeechFromSilenceServiceTest.php | 171 ++---
tests/Unit/Component/FFMpeg/Services/GetSpeechIntervalsTest.php | 36 +-
tests/Unit/Component/LanguageDetection/Services/FindSpeechTimeServiceTest.php | 20 +-
tests/Unit/Component/MobileSettings/MobileSettingsControllerTest.php | 5 +-
tests/Unit/Component/ParticipantSpeech/Services/ParticipantSpeechesCreatorTest.php | 75 ++
tests/Unit/Component/ParticipantSpeech/Services/ParticipantSpeechesDeleterTest.php | 63 ++
tests/Unit/Component/ParticipantSpeech/Services/ParticipantSpeechesProviderTest.php | 134 ++++
tests/Unit/Component/ParticipantSpeech/Services/ParticipantSpeechesUploaderTest.php | 57 ++
tests/Unit/Component/Transcription/Diarization/Services/GetNormalizedParticipantSpeechesServiceTest.php | 51 +-
tests/Unit/Component/Transcription/Diarization/Source/MeetingBotSourceTest.php | 29 +-
tests/Unit/Contracts/Services/Calendar/CalendarTraitTest.php | 58 +-
tests/Unit/Http/Controllers/Kiosk/ActivityControllerTest.php | 159 +++++
tests/Unit/Jobs/Activity/Import/ImportTwilioVideoSpeechesJobTest.php | 22 +-
tests/Unit/Jobs/Activity/Import/IsActivityReadyForProcessingJobTest.php | 26 +-
tests/Unit/Jobs/Calendar/SetupCalendarSyncTest.php | 25 -
tests/Unit/Services/Activity/ParticipantsServiceTest.php | 12 +-
tests/Unit/Services/Activity/Twilio/S3RecordingCredentialsServiceTest.php | 180 +++++
tests/Unit/Services/ActivityServiceTest.php | 132 ++++
tests/Unit/Services/Calendar/CalendarActivityServiceTest.php | 150 +++-
tests/Unit/Services/Calendar/Command/ImportParticipantsTest.php | 6 +-
tests/Unit/Services/Calendar/Command/MapActivityDataTest.php | 78 +-
tests/Unit/Services/Calendar/GoogleCalendarServiceTest.php | 116 +++
tests/Unit/Services/Crm/Close/ServiceTest.php | 165 +++++
tests/Unit/Services/Crm/Hubspot/ServiceTest.php | 272 ++++++-
tests/Unit/Services/Crm/Hubspot/ServiceTraits/OpportunitySyncTest.php | 25 +-
tests/Unit/Services/Crm/Hubspot/ServiceTraits/OpportunitySyncTraitMatchActivitiesTest.php | 3 +-
tests/Unit/Services/Crm/IntegrationApp/ServiceTraits/SyncCrmEntitiesTraitOpportunitiesTest.php | 40 ++
tests/Unit/Services/Crm/Pipedrive/ImportOpportunityMatchActivitiesTest.php | 2 +
tests/Unit/Services/Crm/Salesforce/ServiceTest.php | 139 ++++
tests/Unit/Services/Mail/Office/EmailApiClientTest.php | 195 ++---
tests/Unit/Services/RecallAI/RecallAIServiceTest.php | 24 +-
175 files changed, 12562 insertions(+), 2162 deletions(-)
create mode 120000 CLAUDE.md
create mode 100644 app/Component/AiAutomation/Services/CrmFillingEligibilityChecker.php
delete mode 100644 app/Component/ES/ElasticSearchWorkerManager.php
delete mode 100644 app/Component/ES/Processor/Traits/SkipActivityTrait.php
delete mode 100644 app/Component/ES/Worker/ActivityWorker.php
delete mode 100644 app/Component/ES/Worker/EntityWorker.php
delete mode 100644 app/Component/ES/Worker/WorkerAmount.php
delete mode 100644 app/Component/ES/Worker/WorkerInterface.php
create mode 100644 app/Component/ProphetAi/Exceptions/InsufficientTranscriptException.php
create mode 100644 app/Component/Transcription/DTO/Http/Transcription/AssemblyAI/AssemblyAI/NoAssemblyIdException.php
create mode 100644 app/Component/Transcription/DTO/Http/Transcription/TranscriptionIsNotCorrectFormatException.php
create mode 100644 app/Console/Commands/Activities/SetupIntegration/TwilioSetS3RecordingCredentialsCommand.php
create mode 100644 app/Console/Commands/Crm/BackfillOpportunityUserFromAccountCommand.php
delete mode 100644 app/Console/Commands/Elasticsearch/AsyncUpdateEsActivities.php
create mode 100644 app/Console/Commands/IssueMcpTokenCommand.php
create mode 100644 app/Http/Middleware/McpAuditMiddleware.php
create mode 100644 app/Http/Middleware/McpTierMiddleware.php
create mode 100644 app/Mcp/Contracts/McpCallRepositoryInterface.php
create mode 100644 app/Mcp/DTO/ListCallsFilters.php
create mode 100644 app/Mcp/Errors/McpError.php
create mode 100644 app/Mcp/Repositories/McpActivityHydrator.php
create mode 100644 app/Mcp/Repositories/McpCallRepository.php
create mode 100644 app/Mcp/Repositories/McpElasticCallRepository.php
create mode 100644 app/Mcp/Servers/JiminnyServer.php
create mode 100644 app/Mcp/Tools/ListCallsTool.php
create mode 100644 app/Services/Activity/Twilio/S3RecordingCredentialsService.php
create mode 100644 config/mcp.php
create mode 100644 database/migrations/2026_04_30_120000_create_mcp_audit_log_table.php
create mode 100644 docs/mcp/explorer/explorer.html
create mode 100644 docs/mcp/explorer/explorer.template.html
create mode 100644 docs/mcp/explorer/generate.js
create mode 100644 docs/mcp/explorer/tool-explorer-meta.json
create mode 100644 docs/mcp/tools-list.json
create mode 100644 docs/mcp/tools.md
create mode 100644 front-end/src/components/shared/modals/EntityPickerModal/__tests__/useEntitiesCache.spec.ts
create mode 100644 tests/Feature/Component/Nudge/ProcessOrganisationImmediateNudgesJobTest.php
create mode 100644 tests/Feature/Mcp/IssueMcpTokenCommandTest.php
create mode 100644 tests/Feature/Mcp/ListCallsToolElasticFeatureTest.php
create mode 100644 tests/Feature/Mcp/ListCallsToolFeatureTest.php
create mode 100644 tests/Feature/Mcp/McpTestHelpersTrait.php
create mode 100644 tests/Stubs/SentryStub.php
create mode 100644 tests/Unit/Component/AiAutomation/Services/CrmFillingEligibilityCheckerTest.php
delete mode 100644 tests/Unit/Component/ES/ElasticSearchWorkerManagerTest.php
create mode 100644 tests/Unit/Component/ES/Processor/Actions/LoadDocumentsActionTest.php
delete mode 100644 tests/Unit/Component/ES/Processor/Traits/SkipActivityTraitTest.php
delete mode 100644 tests/Unit/Component/ES/Worker/ActivityWorkerTest.php
delete mode 100644 tests/Unit/Component/ES/Worker/EntityWorkerTest.php
delete mode 100644 tests/Unit/Component/ES/Worker/WorkerAmountTest.php
create mode 100644 tests/Unit/Component/ParticipantSpeech/Services/ParticipantSpeechesCreatorTest.php
create mode 100644 tests/Unit/Http/Controllers/Kiosk/ActivityControllerTest.php
create mode 100644 tests/Unit/Services/Activity/Twilio/S3RecordingCredentialsServiceTest.php
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20725-handle-HS-search-rate-limit) $ git status
On branch master
Your branch is behind 'origin/master' by 114 commits, and can be fast-forwarded.
(use "git pull" to update your local branch)
Changes not staged for commit:
(use "git add <file>..." to update what will be committed)
(use "git restore <file>..." to discard changes in working directory)
modified: .env.local
modified: app/Component/SCIM/Constants.php
modified: app/Component/SCIM/ScimProvisioning.php
modified: app/Component/Twilio/Conference/ConferenceManager/SoftPhoneManager.php
modified: app/Console/Commands/JiminnyDebugCommand.php
modified: app/DTO/SCIM/AAD/Request/CoreUserRequest.php
modified: app/DTO/SCIM/AAD/Response/CoreUser.php
modified: app/Services/Telephony/TextMessagingService.php
modified: config/logging.php
Untracked files:
(use "git add <file>..." to include in what will be committed)
.env.nikilocal
.env.other
WEBHOOK_FILTERING_IMPLEMENTATION.md
app/Component/SCIM/Mutators/Attributes/User/RoleAttr.php
app/Console/Commands/Crm/Hubspot/SimulateWebhooksCommand.php
app/Console/Commands/Reports/CreateMockAskJiminnyReportResultCommand.php
app/Rules/ListenerRoleCannotHaveAdminOrManagerPermissionRule.php
ids.txt
public/favicon.ico
raw_sql_query.sql
tests/Unit/Component/SCIM/Mutators/Attributes/User/RoleAttrTest.php
tests/Unit/Policies/CanAccessAiReportsTest.php
tests/Unit/Rules/ListenerRoleCannotHaveAdminOrManagerPermissionRuleTest.php
no changes added to commit (use "git add" and/or "git commit -a")
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (master) $ git pull
remote: Enumerating objects: 306, done.
remote: Counting objects: 100% (299/299), done.
remote: Compressing objects: 100% (183/183), done.
remote: Total 306 (delta 213), reused 171 (delta 116), pack-reused 7 (from 1)
Receiving objects: 100% (306/306), 80.12 KiB | 1000.00 KiB/s, done.
Resolving deltas: 100% (213/213), completed with 53 local objects.
From github.com:jiminny/app
90bca4e4b2..5604af40cf master -> origin/master
4e7078fd8b..0b8343d179 JY-18091-upgrade-to-php-8-5 -> origin/JY-18091-upgrade-to-php-8-5
098eeaa087..d5a447e492 JY-20613-allow-owner-role-on-team-setup -> origin/JY-20613-allow-owner-role-on-team-setup
c3a76ace91..af65249d0f JY-20749-user-can-view-recorded-meetings -> origin/JY-20749-user-can-view-recorded-meetings
d94a285ae7..7ce96cb5fe JY-20808-low-priority-indexing-queue -> origin/JY-20808-low-priority-indexing-queue
* [new branch] JY-20842-remove-partial-updater -> origin/JY-20842-remove-partial-updater
* [new branch] JY-20920-fix-participant-flip -> origin/JY-20920-fix-participant-flip
* [new branch] secfix/npm-20260519 -> origin/secfix/npm-20260519
Updating cb4ebf0c36..5604af40cf
Fast-forward
app/Component/ES/ChunkSize.php | 54 +++++++++++++++++++
app/Component/ES/Processor/DTOs/SelectionList.php | 4 +-
app/Component/ES/Processor/TargetEntitiesSelector.php | 19 ++++---
app/Component/MeetingBot/Service/ParticipantMatcher.php | 46 ++++++++++++----
app/Exceptions/RateLimitException.php | 19 ++++++-
app/Http/Middleware/McpTierMiddleware.php | 27 ++--------
app/Jobs/Crm/MatchActivityCrmData.php | 47 ++++++++++++----
app/Jobs/Middleware/HandleHubspotRateLimit.php | 42 +++++++++++++++
app/Mcp/Servers/JiminnyServer.php | 2 +
app/Mcp/Tools/GetMeTool.php | 157 +++++++++++++++++++++++++++++++++++++++++++++++++++++
app/Models/Feature/FeatureEnum.php | 1 +
app/Services/Activity/HubSpot/ProviderResolver.php | 4 +-
app/Services/Activity/HubSpot/ProviderResolverInterface.php | 2 +-
app/Services/Activity/HubSpot/Providers/Provider.php | 2 +-
app/Services/Activity/HubSpot/Providers/ProviderKixie.php | 2 +-
app/Services/Activity/HubSpot/Providers/ProviderOrum.php | 2 +-
app/Services/Activity/HubSpot/Providers/ProviderTwilio.php | 2 +-
app/Services/Activity/HubSpot/Providers/ProviderTwilioFlex.php | 5 +-
app/Services/Activity/HubSpot/Service.php | 97 +++++++++++++++++++++++++++------
app/Services/Crm/Hubspot/Client.php | 132 +++++++++++++++++++++++++++++++++++++++++++++
app/Services/Crm/Hubspot/HubspotClientInterface.php | 15 ++++++
app/Services/Crm/Hubspot/Pagination/HubspotPaginationService.php | 21 ++++----
app/Services/Crm/Hubspot/Pagination/PaginationState.php | 2 +-
database/migrations/2026_05_13_124153_create_mcp_feature_flag.php | 25 +++++++++
tests/Feature/Mcp/GetMeToolFeatureTest.php | 140 +++++++++++++++++++++++++++++++++++++++++++++++
tests/Feature/Mcp/ListCallsToolFeatureTest.php | 2 +-
tests/Feature/Mcp/McpTestHelpersTrait.php | 19 ++++++-
tests/Unit/Component/ES/ChunkSizeTest.php | 50 +++++++++++++++++
tests/Unit/Component/ES/Processor/DTOs/SelectionListTest.php | 27 +++++++---
tests/Unit/Component/ES/Processor/TargetEntitiesSelectorTest.php | 39 ++++++++------
tests/Unit/Component/MeetingBot/Service/ParticipantMatcherTest.php | 68 ++++++++++++++++++++++-
tests/Unit/Exceptions/RateLimitExceptionTest.php | 56 +++++++++++++++++++
tests/Unit/Jobs/Crm/MatchActivityCrmDataTest.php | 8 +--
tests/Unit/Jobs/Middleware/HandleHubspotRateLimitTest.php | 151 +++++++++++++++++++++++++++++++++++++++++++++++++++
tests/Unit/Services/Activity/HubSpot/ServiceTest.php | 109 +++++++++++++++++++++++++++++++++++++
tests/Unit/Services/Crm/Hubspot/ClientTest.php | 250 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
tests/Unit/Services/Crm/Hubspot/Pagination/HubspotPaginationServiceTest.php | 283 +++++++++++++++++++++---------------------------------------------------------------------------
37 files changed, 1587 insertions(+), 344 deletions(-)
create mode 100644 app/Component/ES/ChunkSize.php
create mode 100644 app/Jobs/Middleware/HandleHubspotRateLimit.php
create mode 100644 app/Mcp/Tools/GetMeTool.php
create mode 100644 database/migrations/2026_05_13_124153_create_mcp_feature_flag.php
create mode 100644 tests/Feature/Mcp/GetMeToolFeatureTest.php
create mode 100644 tests/Unit/Component/ES/ChunkSizeTest.php
create mode 100644 tests/Unit/Exceptions/RateLimitExceptionTest.php
create mode 100644 tests/Unit/Jobs/Middleware/HandleHubspotRateLimitTest.php
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (master) $ git pull
Already up to date.
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (master) $ co -b JY-20676-delete-report-related-objects
Switched to a new branch 'JY-20676-delete-report-related-objects'
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20676-delete-report-related-objects) $ csfix
docker exec -it docker_lamp_1 ./vendor/bin/php-cs-fixer fix --config=.php-cs-fixer.dist.php -v --using-cache=no --diff
PHP CS Fixer 3.87.1 Alexander by Fabien Potencier, Dariusz Ruminski and contributors.
PHP runtime: 8.3.30
Running 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!
Loaded config default from ".php-cs-fixer.dist.php".
5690/5690 [▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓] 100%
1) app/Console/Commands/JiminnyDebugCommand.php (statement_indentation, blank_line_before_statement)
---------- begin diff ----------
--- /home/jiminny/app/Console/Commands/JiminnyDebugCommand.php
+++ /home/jiminny/app/Console/Commands/JiminnyDebugCommand.php
@@ -23,6 +23,7 @@
if ($action === 'redis-set') {
$this->testRedisSet();
+
return;
}
@@ -45,7 +46,7 @@
$ttl = 60;
try {
-// $result = Redis::set($testKey, $testValue, 'EX', $ttl, 'NX');
+ // $result = Redis::set($testKey, $testValue, 'EX', $ttl, 'NX');
$result = Redis::set($testKey, $testValue, ['nx', 'ex' => $ttl]);
if ($result) {
----------- end diff -----------
Fixed 1 of 5690 files i...
|
58091
|
NULL
|
NULL
|
NULL
|
|
58106
|
2046
|
4
|
2026-05-19T11:38:18.560228+00:00
|
/Users/lukas/.screenpipe/data/data/2026-05-19/1779 /Users/lukas/.screenpipe/data/data/2026-05-19/1779190698560_m1.jpg...
|
iTerm2
|
APP (-zsh)
|
1
|
NULL
|
monitor_1
|
NULL
|
NULL
|
NULL
|
NULL
|
Last login: Mon May 18 09:17:28 on ttys007
Poetry Last login: Mon May 18 09:17:28 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 (pipedrive-sdk-poc) $ co master
error: Your local changes to the following files would be overwritten by checkout:
PIPEDRIVE_V2_MIGRATION_TICKETS.md
Please commit your changes or stash them before you switch branches.
Aborting
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (pipedrive-sdk-poc) $ git pull
remote: Enumerating objects: 1047, done.
remote: Counting objects: 100% (832/832), done.
remote: Compressing objects: 100% (298/298), done.
remote: Total 1047 (delta 634), reused 596 (delta 534), pack-reused 215 (from 3)
Receiving objects: 100% (1047/1047), 353.16 KiB | 1.56 MiB/s, done.
Resolving deltas: 100% (687/687), completed with 107 local objects.
From github.com:jiminny/app
907c54896c..34656c53ed pipedrive-sdk-poc -> origin/pipedrive-sdk-poc
03325ec50f..4e7078fd8b JY-18091-upgrade-to-php-8-5 -> origin/JY-18091-upgrade-to-php-8-5
e7d231e163..bc6a3fce6b JY-20725-handle-HS-search-rate-limit -> origin/JY-20725-handle-HS-search-rate-limit
* [new branch] JY-20749-user-can-view-recorded-meetings -> origin/JY-20749-user-can-view-recorded-meetings
98ca281a04..e0351be069 JY-20808-low-priority-indexing-queue -> origin/JY-20808-low-priority-indexing-queue
569abb5149..3906a9238a JY-20835-mcp-enable-users-to-get-a-list-of-deals-and-their-details -> origin/JY-20835-mcp-enable-users-to-get-a-list-of-deals-and-their-details
ad6c2a86e8..50eb6afba9 JY-20846-mcp-enable-the-ai-to-know-details-about-the-user -> origin/JY-20846-mcp-enable-the-ai-to-know-details-about-the-user
* [new branch] JY-20893-chunk-control-per-update-target -> origin/JY-20893-chunk-control-per-update-target
31c62924a5..cb4ebf0c36 master -> origin/master
Updating 907c54896c..34656c53ed
Fast-forward
PIPEDRIVE_V2_MIGRATION_TICKETS.md | 52 ++++++++++++++++++++++++++++++++++++++++++++++++++++
1 file changed, 52 insertions(+)
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (pipedrive-sdk-poc) $ co master
M .env.local
M config/logging.php
Switched to branch 'master'
Your branch is behind 'origin/master' by 31 commits, and can be fast-forwarded.
(use "git pull" to update your local branch)
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (master) $ git pull
Updating 31c62924a5..cb4ebf0c36
Fast-forward
app/Component/ES/Processor/Traits/SelectEntityListTrait.php | 20 ------
app/Services/Calendar/CalendarActivityService.php | 46 +++++++++++++
app/Services/Calendar/Command/MapActivityData.php | 106 +++-------------------------
docs/mcp/explorer/explorer.html | 104 +++++++++++++++++++++++++---
docs/mcp/explorer/explorer.template.html | 102 ++++++++++++++++++++++++---
docs/mcp/tools-list.json | 373 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++-------
docs/mcp/tools.md | 117 +++++++++++++++++++++++--------
tests/Unit/Component/ES/AsyncUpdateElasticSearchTest.php | 16 +----
tests/Unit/Component/ES/Listeners/UpdateMultipleTargetsListenerTest.php | 10 ---
tests/Unit/Component/ES/Listeners/UpdateSingleTargetListenerTest.php | 6 --
tests/Unit/Component/ES/Processor/TargetEntitiesSelectorTest.php | 9 ---
tests/Unit/Component/ES/Processor/Traits/SelectEntityListTraitTest.php | 15 ++--
tests/Unit/Component/ES/UpdateProcessManagerTest.php | 2 -
tests/Unit/Services/Calendar/CalendarActivityServiceTest.php | 150 ++++++++++++++++++++++++++++++++++++++--
tests/Unit/Services/Calendar/Command/MapActivityDataTest.php | 78 ++-------------------
15 files changed, 832 insertions(+), 322 deletions(-)
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (master) $ co -b JY-20613-allow-owner-role-on-team-setup
Switched to a new branch 'JY-20613-allow-owner-role-on-team-setup'
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20613-allow-owner-role-on-team-setup) $ csfix
docker exec -it docker_lamp_1 ./vendor/bin/php-cs-fixer fix --config=.php-cs-fixer.dist.php -v --using-cache=no --diff
PHP CS Fixer 3.87.1 Alexander by Fabien Potencier, Dariusz Ruminski and contributors.
PHP runtime: 8.3.30
Running 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!
Loaded config default from ".php-cs-fixer.dist.php".
5682/5682 [▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓] 100%
Fixed 0 of 5682 files in 56.978 seconds, 67.00 MB memory used
What's next:
Try Docker Debug for seamless, persistent debugging tools in any container or image → docker debug docker_lamp_1
Learn more at [URL_WITH_CREDENTIALS] ~/jiminny/app (JY-20613-allow-owner-role-on-team-setup) $ csfix
docker exec -it docker_lamp_1 ./vendor/bin/php-cs-fixer fix --config=.php-cs-fixer.dist.php -v --using-cache=no --diff
PHP CS Fixer 3.87.1 Alexander by Fabien Potencier, Dariusz Ruminski and contributors.
PHP runtime: 8.3.30
Running 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!
Loaded config default from ".php-cs-fixer.dist.php".
5682/5682 [▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓] 100%
Fixed 0 of 5682 files in 49.910 seconds, 60.00 MB memory used
What's next:
Try Docker Debug for seamless, persistent debugging tools in any container or image → docker debug docker_lamp_1
Learn more at [URL_WITH_CREDENTIALS] ~/jiminny/app (JY-20613-allow-owner-role-on-team-setup) $ git pull
remote: Enumerating objects: 248, done.
remote: Counting objects: 100% (128/128), done.
remote: Compressing objects: 100% (23/23), done.
remote: Total 59 (delta 43), reused 44 (delta 33), pack-reused 0 (from 0)
Unpacking objects: 100% (59/59), 10.48 KiB | 228.00 KiB/s, done.
From github.com:jiminny/app
b7df560451..190239dfd4 JY-20613-allow-owner-role-on-team-setup -> origin/JY-20613-allow-owner-role-on-team-setup
e0351be069..d94a285ae7 JY-20808-low-priority-indexing-queue -> origin/JY-20808-low-priority-indexing-queue
* [new branch] JY-20920-fix-participant-matcher -> origin/JY-20920-fix-participant-matcher
cb4ebf0c36..90bca4e4b2 master -> origin/master
Merge made by the 'ort' strategy.
app/Component/ES/ChunkSize.php | 54 +++++++++++++++++++++++++++
app/Component/ES/Processor/DTOs/SelectionList.php | 4 +-
app/Component/ES/Processor/TargetEntitiesSelector.php | 19 ++++++----
app/Http/Middleware/McpTierMiddleware.php | 27 +++-----------
app/Mcp/Servers/JiminnyServer.php | 2 +
app/Mcp/Tools/GetMeTool.php | 157 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
app/Models/Feature/FeatureEnum.php | 1 +
database/migrations/2026_05_13_124153_create_mcp_feature_flag.php | 25 +++++++++++++
front-end/src/components/Settings/Kiosk/modals/EditTeamModal/EditTeamModal.vue | 52 ++++++++++++++++++--------
front-end/src/components/Settings/Kiosk/modals/EditTeamModal/__tests__/EditTeamModal.spec.js | 14 +++++++
tests/Feature/Mcp/GetMeToolFeatureTest.php | 140 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
tests/Feature/Mcp/ListCallsToolFeatureTest.php | 2 +-
tests/Feature/Mcp/McpTestHelpersTrait.php | 19 +++++++++-
tests/Unit/Component/ES/ChunkSizeTest.php | 50 +++++++++++++++++++++++++
tests/Unit/Component/ES/Processor/DTOs/SelectionListTest.php | 27 ++++++++++----
tests/Unit/Component/ES/Processor/TargetEntitiesSelectorTest.php | 39 +++++++++++---------
16 files changed, 557 insertions(+), 75 deletions(-)
create mode 100644 app/Component/ES/ChunkSize.php
create mode 100644 app/Mcp/Tools/GetMeTool.php
create mode 100644 database/migrations/2026_05_13_124153_create_mcp_feature_flag.php
create mode 100644 tests/Feature/Mcp/GetMeToolFeatureTest.php
create mode 100644 tests/Unit/Component/ES/ChunkSizeTest.php
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20613-allow-owner-role-on-team-setup) $ git push
Enumerating objects: 40, done.
Counting objects: 100% (34/34), done.
Delta compression using up to 8 threads
Compressing objects: 100% (18/18), done.
Writing objects: 100% (18/18), 1.58 KiB | 1.58 MiB/s, done.
Total 18 (delta 15), reused 0 (delta 0), pack-reused 0
remote: Resolving deltas: 100% (15/15), completed with 13 local objects.
To github.com:jiminny/app.git
190239dfd4..ec1b261264 JY-20613-allow-owner-role-on-team-setup -> JY-20613-allow-owner-role-on-team-setup
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20613-allow-owner-role-on-team-setup) $ gbr
* JY-20613-allow-owner-role-on-team-setup
pipedrive-sdk-poc
master
JY-20903-update_activity-stage-on-opportunity-change
JY-20904-fix-update-es-on-activity-command
JY-20891-improve-sms-text-relays
JY-20725-handle-HS-search-rate-limit
JY-20818-move-AJ-reports-to-separated-datadog-metric
JY-20773-fix-automated-reports-user-pilot-tracking
JY-20157-AJ-report-not-send-notification
JY-20508-notify-before-AJ-report-expiration
JY-20372-ai-reports-promotion-pages
JY-20352-sync-opportunities-without-a-local-owner-user-id-is-null
JY-20738-debug-AJ-tracking-UP
a
JY-18909-automated-reports-ask-jiminny
JY-20692-fix-integration-app-[API_KEY]
JY-20553-debug-crm-sync-delays
JY-20698-fix-SF-activity-types-on-new-playbook
JY-20543-AJ-report-tracking
JY-20384-handle-auto-sync-with-no-access-to-event-type
JY-20458-ask-jiminny-user-definitions
JY-19666-fix-import-contacts-account-association
JY-19666-HS-import-contacts-and-accounts-batch-job
JY-20458-Ask-Jiminny-Reports
JY-20200-batch-update-CRM-objects-Salesforce
JY-19666-HS-webhooks-add-contact-and-company
JY-20348-trigger-setup-DI-layout-on-team-creation
JY-20326-refactor-info-message-in-command
JY-20317-fix-auto-log-delay-issue-on-all-channels-disabled
JY-20312-remove-on-update-change-last-synced-at-crm-configurations
JY-20306-SF-skip-auto-sync-for-task-based-playbook
JY-20192-remove-deleted-team-from-saved-search-filters
JY-20197-import-opportunity-batch-job
JY-20293-enable-status-field-for-pipedrive-deals
JY-20191-remove-commands-interactive-prompts
JY-20118-change-default-sync-strategy
JY-20183-add-cache-on-auto-log-delay
JY-20197-add-import-opportunity-batch-job
20118-hs-opportunity-make-webhook-strategy-default
JY-20118-make-default-hs-opportunity-sync-strategy-webhook-based
JY-20196-handle-opportunity-without-note
JY-20118-improve-opportunity-import
JY-20189-handle-activity-search-on-deleted-groups
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20613-allow-owner-role-on-team-setup) $ co JY-20725-handle-HS-search-rate-limit
M .env.local
M config/logging.php
Switched to branch 'JY-20725-handle-HS-search-rate-limit'
Your branch is behind 'origin/JY-20725-handle-HS-search-rate-limit' by 439 commits, and can be fast-forwarded.
(use "git pull" to update your local branch)
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20725-handle-HS-search-rate-limit) $ git pull
Updating 0f3e438941..bc6a3fce6b
Fast-forward
.gitignore | 3 +-
.windsurfrules | 168 ++---
CLAUDE.md | 1 +
app/Component/ActivityAnalytics/Service/CalculateTalkTimeOffsetsFromTranscription.php | 24 +-
app/Component/AiActivityType/Services/AiActivityTypeEligibilityChecker.php | 28 +-
app/Component/AiAutomation/Actions/PrepareUpdateDtoAction.php | 32 +-
app/Component/AiAutomation/Services/CrmFillingEligibilityChecker.php | 47 ++
app/Component/AiAutomation/TestCrmAiPromptService.php | 14 +
app/Component/AiCallScoring/Services/AiCallScoringEligibilityChecker.php | 9 +
app/Component/ES/ElasticSearchDocumentPartialUpdater.php | 13 +-
app/Component/ES/ElasticSearchWorkerManager.php | 86 ---
app/Component/ES/Processor/Actions/LoadDocumentsAction.php | 80 +--
app/Component/ES/Processor/EntityQueryBuilder.php | 12 +-
app/Component/ES/Processor/TargetEntitiesSelector.php | 2 +-
app/Component/ES/Processor/Traits/SkipActivityTrait.php | 25 -
app/Component/ES/Repositories/EsResetActivityRepository.php | 11 +-
app/Component/ES/Worker/ActivityWorker.php | 73 --
app/Component/ES/Worker/EntityWorker.php | 44 --
app/Component/ES/Worker/WorkerAmount.php | 60 --
app/Component/ES/Worker/WorkerInterface.php | 15 -
app/Component/ElasticSearch/Contract/Searchable.php | 4 +
app/Component/Encoding/Job/AnalyzeTrackChannelsJob.php | 20 +-
app/Component/Encoding/Service/GenerateSpeechFromSilenceService.php | 85 ++-
app/Component/FFMpeg/Services/GetSpeechIntervalsService.php | 18 +-
app/Component/LanguageDetection/Services/FindSpeechTimeService.php | 22 +-
app/Component/Nudge/Job/ProcessOrganisationImmediateNudgesJob.php | 218 +++++-
app/Component/ParagraphBreaker/Services/TranscriptionParagraphsService.php | 4 +
app/Component/ParticipantSpeech/Services/ParticipantSpeechesCreator.php | 33 +
app/Component/ParticipantSpeech/Services/ParticipantSpeechesDeleter.php | 15 +
app/Component/ParticipantSpeech/Services/ParticipantSpeechesProvider.php | 51 +-
app/Component/ParticipantSpeech/Services/ParticipantSpeechesUploader.php | 36 +
app/Component/ProphetAi/Exceptions/InsufficientTranscriptException.php | 11 +
app/Component/Transcription/DTO/Http/Transcription/AssemblyAI/AssemblyAI/NoAssemblyIdException.php | 11 +
app/Component/Transcription/DTO/Http/Transcription/AssemblyAI/AssemblyAI/SuccessfulResponse.php | 6 +
app/Component/Transcription/DTO/Http/Transcription/TranscriptionIsNotCorrectFormatException.php | 11 +
app/Component/Transcription/Diarization/Services/GetNormalizedParticipantSpeechesService.php | 23 +-
app/Component/Transcription/Diarization/Source/MeetingBotSource.php | 16 +-
app/Component/Transcription/TranscriptionProcessor/TranscriptionProcessor.php | 3 +
app/Console/Commands/Activities/ActivityHardDeleteCommand.php | 4 +-
app/Console/Commands/Activities/Copy.php | 2 +
app/Console/Commands/Activities/SetupIntegration/TwilioSetS3RecordingCredentialsCommand.php | 119 ++++
app/Console/Commands/Activities/UpdateActivityElasticSearchDocumentCommand.php | 10 +-
app/Console/Commands/Crm/BackfillOpportunityUserFromAccountCommand.php | 126 ++++
app/Console/Commands/Elasticsearch/AsyncUpdateEsActivities.php | 19 -
app/Console/Commands/Elasticsearch/AsyncUpdateEsEntities.php | 50 +-
app/Console/Commands/Elasticsearch/ResetAsyncElasticSearchCommand.php | 30 +-
app/Console/Commands/GeckoExport/GeckoExportParticipantSpeechesCommand.php | 14 +-
app/Console/Commands/IssueMcpTokenCommand.php | 84 +++
app/Console/Commands/JiminnyDebugCommand.php | 7 +-
app/Console/Commands/Tracks/CleanupActivityTracksCommand.php | 2 +-
app/Console/Kernel.php | 6 +-
app/Contracts/Services/Calendar/CalendarTrait.php | 80 ++-
app/Events/AutomatedReports/AutomatedReportGenerated.php | 3 +
app/Http/Controllers/API/AiCallScoring/AiScorecardController.php | 7 +-
app/Http/Controllers/API/TeamAiAutomationController.php | 8 +
app/Http/Controllers/CustomerApi/CustomerApiController.php | 4 +-
app/Http/Controllers/Kiosk/ActivityController.php | 58 +-
app/Http/Controllers/Settings/PlaybookController.php | 15 +-
app/Http/Kernel.php | 23 +
app/Http/Middleware/McpAuditMiddleware.php | 156 ++++
app/Http/Middleware/McpTierMiddleware.php | 54 ++
app/Http/Requests/API/V2/ZapierUploadActivityRequest.php | 28 +-
app/Jobs/Activity/Import/ImportTwilioVideoSpeechesJob.php | 25 +-
app/Jobs/Activity/Import/IsActivityReadyForProcessingJob.php | 10 +-
app/Jobs/Calendar/SetupCalendarSync.php | 21 +-
app/Jobs/ImportRemoteTrackJob.php | 96 ++-
app/Jobs/Mailbox/EmailTextRelay.php | 15 +-
app/Mcp/Contracts/McpCallRepositoryInterface.php | 30 +
app/Mcp/DTO/ListCallsFilters.php | 29 +
app/Mcp/Errors/McpError.php | 123 ++++
app/Mcp/Repositories/McpActivityHydrator.php | 145 ++++
app/Mcp/Repositories/McpCallRepository.php | 84 +++
app/Mcp/Repositories/McpElasticCallRepository.php | 171 +++++
app/Mcp/Servers/JiminnyServer.php | 38 +
app/Mcp/Tools/ListCallsTool.php | 205 ++++++
app/Models/Activity.php | 10 +-
app/Models/Activity/Transcription.php | 17 +-
app/Models/ElasticSearch/OpportunityElasticSearchTrait.php | 5 +
app/Models/Participant.php | 1 +
app/Providers/AppServiceProvider.php | 22 +
app/Repositories/Crm/ContactRepository.php | 69 +-
app/Repositories/ParticipantSpeechRepository.php | 13 +-
app/Services/Activity/ParticipantsService.php | 19 +-
app/Services/Activity/Twilio/S3RecordingCredentialsService.php | 82 +++
app/Services/ActivityService.php | 21 +-
app/Services/Calendar/CalendarActivityService.php | 46 ++
app/Services/Calendar/Command/ImportParticipants.php | 1 +
app/Services/Calendar/Command/MapActivityData.php | 106 +--
app/Services/Calendar/GoogleCalendarService.php | 12 +-
app/Services/Crm/Close/Processor/OpportunityProcessor.php | 2 +-
app/Services/Crm/Close/Service.php | 22 +-
app/Services/Crm/Copper/Service.php | 12 +-
app/Services/Crm/Hubspot/Service.php | 154 +++-
app/Services/Crm/Hubspot/ServiceTraits/OpportunitySyncTrait.php | 88 ++-
app/Services/Crm/IntegrationApp/ServiceTraits/SyncCrmEntitiesTrait.php | 22 +-
app/Services/Crm/Pipedrive/Service.php | 17 +-
app/Services/Crm/Salesforce/Service.php | 42 +-
app/Services/Mail/Office/EmailApiClient.php | 129 +---
app/Services/RecallAI/Commands/ScheduleBotCommand.php | 39 +-
app/Services/RecallAI/RecallAIService.php | 22 +-
composer.json | 3 +-
composer.lock | 87 ++-
config/mcp.php | 23 +
database/migrations/2026_04_30_120000_create_mcp_audit_log_table.php | 36 +
docs/mcp/explorer/explorer.html | 697 ++++++++++++++++++
docs/mcp/explorer/explorer.template.html | 697 ++++++++++++++++++
docs/mcp/explorer/generate.js | 215 ++++++
docs/mcp/explorer/tool-explorer-meta.json | 11 +
docs/mcp/tools-list.json | 2536 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
docs/mcp/tools.md | 621 ++++++++++++++++
front-end/package.json | 4 +-
front-end/src/components/Settings/OrgSettings/AiAutomation/CrmFilling/TemplateFieldForm.vue | 28 +-
front-end/src/components/Settings/OrgSettings/Playbooks/AddEditPlaybook.vue | 10 +
front-end/src/components/playback/comments/ActivityComment.less | 10 +-
front-end/src/components/shared/PromptTester/PromptTester.vue | 12 +-
front-end/src/components/shared/__tests__/PromptTester.spec.js | 35 +
front-end/src/components/shared/modals/EntityPickerModal/__tests__/useEntitiesCache.spec.ts | 37 +
front-end/src/components/shared/modals/EntityPickerModal/useEntitiesCache.ts | 9 +
front-end/yarn.lock | 16 +-
phpstan-baseline.neon | 50 --
routes/api.php | 11 +
sonar-project.properties | 91 ++-
tests/Feature/Component/Nudge/ProcessOrganisationImmediateNudgesJobTest.php | 534 ++++++++++++++
tests/Feature/Jobs/ImportRemoteTrackJobTest.php | 283 +++++++-
tests/Feature/Mcp/IssueMcpTokenCommandTest.php | 53 ++
tests/Feature/Mcp/ListCallsToolElasticFeatureTest.php | 155 ++++
tests/Feature/Mcp/ListCallsToolFeatureTest.php | 352 ++++++++++
tests/Feature/Mcp/McpTestHelpersTrait.php | 77 ++
tests/Feature/Services/Team/TeamDeleteHandlers/Retention/RetentionRepositoryHandlerTest.php | 1 +
tests/Stubs/SentryStub.php | 18 +
tests/Unit/Component/ActivityAnalytics/Service/CalculateTalkTimeOffsetFromTranscriptionTest.php | 28 +-
tests/Unit/Component/AiActivityType/Services/AiActivityTypeEligibilityCheckerTest.php | 103 ++-
tests/Unit/Component/AiAutomation/Actions/PrepareUpdateDtoActionTest.php | 91 +++
tests/Unit/Component/AiAutomation/Services/CrmFillingEligibilityCheckerTest.php | 124 ++++
tests/Unit/Component/AiAutomation/TestCrmAiPromptServiceTest.php | 67 +-
tests/Unit/Component/AiCallScoring/Services/AiCallScoringEligibilityCheckerTest.php | 55 ++
tests/Unit/Component/ES/ElasticSearchWorkerManagerTest.php | 135 ----
tests/Unit/Component/ES/Processor/Actions/LoadDocumentsActionTest.php | 220 ++++++
tests/Unit/Component/ES/Processor/EntityQueryBuilderTest.php | 21 +-
tests/Unit/Component/ES/Processor/Traits/SkipActivityTraitTest.php | 51 --
tests/Unit/Component/ES/Worker/ActivityWorkerTest.php | 174 -----
tests/Unit/Component/ES/Worker/EntityWorkerTest.php | 97 ---
tests/Unit/Component/ES/Worker/WorkerAmountTest.php | 116 ---
tests/Unit/Component/Encoding/Job/AnalyzeTrackChannelsJobTest.php | 52 +-
tests/Unit/Component/Encoding/Service/GenerateSpeechFromSilenceServiceTest.php | 171 ++---
tests/Unit/Component/FFMpeg/Services/GetSpeechIntervalsTest.php | 36 +-
tests/Unit/Component/LanguageDetection/Services/FindSpeechTimeServiceTest.php | 20 +-
tests/Unit/Component/MobileSettings/MobileSettingsControllerTest.php | 5 +-
tests/Unit/Component/ParticipantSpeech/Services/ParticipantSpeechesCreatorTest.php | 75 ++
tests/Unit/Component/ParticipantSpeech/Services/ParticipantSpeechesDeleterTest.php | 63 ++
tests/Unit/Component/ParticipantSpeech/Services/ParticipantSpeechesProviderTest.php | 134 ++++
tests/Unit/Component/ParticipantSpeech/Services/ParticipantSpeechesUploaderTest.php | 57 ++
tests/Unit/Component/Transcription/Diarization/Services/GetNormalizedParticipantSpeechesServiceTest.php | 51 +-
tests/Unit/Component/Transcription/Diarization/Source/MeetingBotSourceTest.php | 29 +-
tests/Unit/Contracts/Services/Calendar/CalendarTraitTest.php | 58 +-
tests/Unit/Http/Controllers/Kiosk/ActivityControllerTest.php | 159 +++++
tests/Unit/Jobs/Activity/Import/ImportTwilioVideoSpeechesJobTest.php | 22 +-
tests/Unit/Jobs/Activity/Import/IsActivityReadyForProcessingJobTest.php | 26 +-
tests/Unit/Jobs/Calendar/SetupCalendarSyncTest.php | 25 -
tests/Unit/Services/Activity/ParticipantsServiceTest.php | 12 +-
tests/Unit/Services/Activity/Twilio/S3RecordingCredentialsServiceTest.php | 180 +++++
tests/Unit/Services/ActivityServiceTest.php | 132 ++++
tests/Unit/Services/Calendar/CalendarActivityServiceTest.php | 150 +++-
tests/Unit/Services/Calendar/Command/ImportParticipantsTest.php | 6 +-
tests/Unit/Services/Calendar/Command/MapActivityDataTest.php | 78 +-
tests/Unit/Services/Calendar/GoogleCalendarServiceTest.php | 116 +++
tests/Unit/Services/Crm/Close/ServiceTest.php | 165 +++++
tests/Unit/Services/Crm/Hubspot/ServiceTest.php | 272 ++++++-
tests/Unit/Services/Crm/Hubspot/ServiceTraits/OpportunitySyncTest.php | 25 +-
tests/Unit/Services/Crm/Hubspot/ServiceTraits/OpportunitySyncTraitMatchActivitiesTest.php | 3 +-
tests/Unit/Services/Crm/IntegrationApp/ServiceTraits/SyncCrmEntitiesTraitOpportunitiesTest.php | 40 ++
tests/Unit/Services/Crm/Pipedrive/ImportOpportunityMatchActivitiesTest.php | 2 +
tests/Unit/Services/Crm/Salesforce/ServiceTest.php | 139 ++++
tests/Unit/Services/Mail/Office/EmailApiClientTest.php | 195 ++---
tests/Unit/Services/RecallAI/RecallAIServiceTest.php | 24 +-
175 files changed, 12562 insertions(+), 2162 deletions(-)
create mode 120000 CLAUDE.md
create mode 100644 app/Component/AiAutomation/Services/CrmFillingEligibilityChecker.php
delete mode 100644 app/Component/ES/ElasticSearchWorkerManager.php
delete mode 100644 app/Component/ES/Processor/Traits/SkipActivityTrait.php
delete mode 100644 app/Component/ES/Worker/ActivityWorker.php
delete mode 100644 app/Component/ES/Worker/EntityWorker.php
delete mode 100644 app/Component/ES/Worker/WorkerAmount.php
delete mode 100644 app/Component/ES/Worker/WorkerInterface.php
create mode 100644 app/Component/ProphetAi/Exceptions/InsufficientTranscriptException.php
create mode 100644 app/Component/Transcription/DTO/Http/Transcription/AssemblyAI/AssemblyAI/NoAssemblyIdException.php
create mode 100644 app/Component/Transcription/DTO/Http/Transcription/TranscriptionIsNotCorrectFormatException.php
create mode 100644 app/Console/Commands/Activities/SetupIntegration/TwilioSetS3RecordingCredentialsCommand.php
create mode 100644 app/Console/Commands/Crm/BackfillOpportunityUserFromAccountCommand.php
delete mode 100644 app/Console/Commands/Elasticsearch/AsyncUpdateEsActivities.php
create mode 100644 app/Console/Commands/IssueMcpTokenCommand.php
create mode 100644 app/Http/Middleware/McpAuditMiddleware.php
create mode 100644 app/Http/Middleware/McpTierMiddleware.php
create mode 100644 app/Mcp/Contracts/McpCallRepositoryInterface.php
create mode 100644 app/Mcp/DTO/ListCallsFilters.php
create mode 100644 app/Mcp/Errors/McpError.php
create mode 100644 app/Mcp/Repositories/McpActivityHydrator.php
create mode 100644 app/Mcp/Repositories/McpCallRepository.php
create mode 100644 app/Mcp/Repositories/McpElasticCallRepository.php
create mode 100644 app/Mcp/Servers/JiminnyServer.php
create mode 100644 app/Mcp/Tools/ListCallsTool.php
create mode 100644 app/Services/Activity/Twilio/S3RecordingCredentialsService.php
create mode 100644 config/mcp.php
create mode 100644 database/migrations/2026_04_30_120000_create_mcp_audit_log_table.php
create mode 100644 docs/mcp/explorer/explorer.html
create mode 100644 docs/mcp/explorer/explorer.template.html
create mode 100644 docs/mcp/explorer/generate.js
create mode 100644 docs/mcp/explorer/tool-explorer-meta.json
create mode 100644 docs/mcp/tools-list.json
create mode 100644 docs/mcp/tools.md
create mode 100644 front-end/src/components/shared/modals/EntityPickerModal/__tests__/useEntitiesCache.spec.ts
create mode 100644 tests/Feature/Component/Nudge/ProcessOrganisationImmediateNudgesJobTest.php
create mode 100644 tests/Feature/Mcp/IssueMcpTokenCommandTest.php
create mode 100644 tests/Feature/Mcp/ListCallsToolElasticFeatureTest.php
create mode 100644 tests/Feature/Mcp/ListCallsToolFeatureTest.php
create mode 100644 tests/Feature/Mcp/McpTestHelpersTrait.php
create mode 100644 tests/Stubs/SentryStub.php
create mode 100644 tests/Unit/Component/AiAutomation/Services/CrmFillingEligibilityCheckerTest.php
delete mode 100644 tests/Unit/Component/ES/ElasticSearchWorkerManagerTest.php
create mode 100644 tests/Unit/Component/ES/Processor/Actions/LoadDocumentsActionTest.php
delete mode 100644 tests/Unit/Component/ES/Processor/Traits/SkipActivityTraitTest.php
delete mode 100644 tests/Unit/Component/ES/Worker/ActivityWorkerTest.php
delete mode 100644 tests/Unit/Component/ES/Worker/EntityWorkerTest.php
delete mode 100644 tests/Unit/Component/ES/Worker/WorkerAmountTest.php
create mode 100644 tests/Unit/Component/ParticipantSpeech/Services/ParticipantSpeechesCreatorTest.php
create mode 100644 tests/Unit/Http/Controllers/Kiosk/ActivityControllerTest.php
create mode 100644 tests/Unit/Services/Activity/Twilio/S3RecordingCredentialsServiceTest.php
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20725-handle-HS-search-rate-limit) $ git status
On branch master
Your branch is behind 'origin/master' by 114 commits, and can be fast-forwarded.
(use "git pull" to update your local branch)
Changes not staged for commit:
(use "git add <file>..." to update what will be committed)
(use "git restore <file>..." to discard changes in working directory)
modified: .env.local
modified: app/Component/SCIM/Constants.php
modified: app/Component/SCIM/ScimProvisioning.php
modified: app/Component/Twilio/Conference/ConferenceManager/SoftPhoneManager.php
modified: app/Console/Commands/JiminnyDebugCommand.php
modified: app/DTO/SCIM/AAD/Request/CoreUserRequest.php
modified: app/DTO/SCIM/AAD/Response/CoreUser.php
modified: app/Services/Telephony/TextMessagingService.php
modified: config/logging.php
Untracked files:
(use "git add <file>..." to include in what will be committed)
.env.nikilocal
.env.other
WEBHOOK_FILTERING_IMPLEMENTATION.md
app/Component/SCIM/Mutators/Attributes/User/RoleAttr.php
app/Console/Commands/Crm/Hubspot/SimulateWebhooksCommand.php
app/Console/Commands/Reports/CreateMockAskJiminnyReportResultCommand.php
app/Rules/ListenerRoleCannotHaveAdminOrManagerPermissionRule.php
ids.txt
public/favicon.ico
raw_sql_query.sql
tests/Unit/Component/SCIM/Mutators/Attributes/User/RoleAttrTest.php
tests/Unit/Policies/CanAccessAiReportsTest.php
tests/Unit/Rules/ListenerRoleCannotHaveAdminOrManagerPermissionRuleTest.php
no changes added to commit (use "git add" and/or "git commit -a")
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (master) $ git pull
remote: Enumerating objects: 306, done.
remote: Counting objects: 100% (299/299), done.
remote: Compressing objects: 100% (183/183), done.
remote: Total 306 (delta 213), reused 171 (delta 116), pack-reused 7 (from 1)
Receiving objects: 100% (306/306), 80.12 KiB | 1000.00 KiB/s, done.
Resolving deltas: 100% (213/213), completed with 53 local objects.
From github.com:jiminny/app
90bca4e4b2..5604af40cf master -> origin/master
4e7078fd8b..0b8343d179 JY-18091-upgrade-to-php-8-5 -> origin/JY-18091-upgrade-to-php-8-5
098eeaa087..d5a447e492 JY-20613-allow-owner-role-on-team-setup -> origin/JY-20613-allow-owner-role-on-team-setup
c3a76ace91..af65249d0f JY-20749-user-can-view-recorded-meetings -> origin/JY-20749-user-can-view-recorded-meetings
d94a285ae7..7ce96cb5fe JY-20808-low-priority-indexing-queue -> origin/JY-20808-low-priority-indexing-queue
* [new branch] JY-20842-remove-partial-updater -> origin/JY-20842-remove-partial-updater
* [new branch] JY-20920-fix-participant-flip -> origin/JY-20920-fix-participant-flip
* [new branch] secfix/npm-20260519 -> origin/secfix/npm-20260519
Updating cb4ebf0c36..5604af40cf
Fast-forward
app/Component/ES/ChunkSize.php | 54 +++++++++++++++++++
app/Component/ES/Processor/DTOs/SelectionList.php | 4 +-
app/Component/ES/Processor/TargetEntitiesSelector.php | 19 ++++---
app/Component/MeetingBot/Service/ParticipantMatcher.php | 46 ++++++++++++----
app/Exceptions/RateLimitException.php | 19 ++++++-
app/Http/Middleware/McpTierMiddleware.php | 27 ++--------
app/Jobs/Crm/MatchActivityCrmData.php | 47 ++++++++++++----
app/Jobs/Middleware/HandleHubspotRateLimit.php | 42 +++++++++++++++
app/Mcp/Servers/JiminnyServer.php | 2 +
app/Mcp/Tools/GetMeTool.php | 157 +++++++++++++++++++++++++++++++++++++++++++++++++++++
app/Models/Feature/FeatureEnum.php | 1 +
app/Services/Activity/HubSpot/ProviderResolver.php | 4 +-
app/Services/Activity/HubSpot/ProviderResolverInterface.php | 2 +-
app/Services/Activity/HubSpot/Providers/Provider.php | 2 +-
app/Services/Activity/HubSpot/Providers/ProviderKixie.php | 2 +-
app/Services/Activity/HubSpot/Providers/ProviderOrum.php | 2 +-
app/Services/Activity/HubSpot/Providers/ProviderTwilio.php | 2 +-
app/Services/Activity/HubSpot/Providers/ProviderTwilioFlex.php | 5 +-
app/Services/Activity/HubSpot/Service.php | 97 +++++++++++++++++++++++++++------
app/Services/Crm/Hubspot/Client.php | 132 +++++++++++++++++++++++++++++++++++++++++++++
app/Services/Crm/Hubspot/HubspotClientInterface.php | 15 ++++++
app/Services/Crm/Hubspot/Pagination/HubspotPaginationService.php | 21 ++++----
app/Services/Crm/Hubspot/Pagination/PaginationState.php | 2 +-
database/migrations/2026_05_13_124153_create_mcp_feature_flag.php | 25 +++++++++
tests/Feature/Mcp/GetMeToolFeatureTest.php | 140 +++++++++++++++++++++++++++++++++++++++++++++++
tests/Feature/Mcp/ListCallsToolFeatureTest.php | 2 +-
tests/Feature/Mcp/McpTestHelpersTrait.php | 19 ++++++-
tests/Unit/Component/ES/ChunkSizeTest.php | 50 +++++++++++++++++
tests/Unit/Component/ES/Processor/DTOs/SelectionListTest.php | 27 +++++++---
tests/Unit/Component/ES/Processor/TargetEntitiesSelectorTest.php | 39 ++++++++------
tests/Unit/Component/MeetingBot/Service/ParticipantMatcherTest.php | 68 ++++++++++++++++++++++-
tests/Unit/Exceptions/RateLimitExceptionTest.php | 56 +++++++++++++++++++
tests/Unit/Jobs/Crm/MatchActivityCrmDataTest.php | 8 +--
tests/Unit/Jobs/Middleware/HandleHubspotRateLimitTest.php | 151 +++++++++++++++++++++++++++++++++++++++++++++++++++
tests/Unit/Services/Activity/HubSpot/ServiceTest.php | 109 +++++++++++++++++++++++++++++++++++++
tests/Unit/Services/Crm/Hubspot/ClientTest.php | 250 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
tests/Unit/Services/Crm/Hubspot/Pagination/HubspotPaginationServiceTest.php | 283 +++++++++++++++++++++---------------------------------------------------------------------------
37 files changed, 1587 insertions(+), 344 deletions(-)
create mode 100644 app/Component/ES/ChunkSize.php
create mode 100644 app/Jobs/Middleware/HandleHubspotRateLimit.php
create mode 100644 app/Mcp/Tools/GetMeTool.php
create mode 100644 database/migrations/2026_05_13_124153_create_mcp_feature_flag.php
create mode 100644 tests/Feature/Mcp/GetMeToolFeatureTest.php
create mode 100644 tests/Unit/Component/ES/ChunkSizeTest.php
create mode 100644 tests/Unit/Exceptions/RateLimitExceptionTest.php
create mode 100644 tests/Unit/Jobs/Middleware/HandleHubspotRateLimitTest.php
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (master) $ git pull
Already up to date.
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (master) $ co -b JY-20676-delete-report-related-objects
Switched to a new branch 'JY-20676-delete-report-related-objects'
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20676-delete-report-related-objects) $ csfix
docker exec -it docker_lamp_1 ./vendor/bin/php-cs-fixer fix --config=.php-cs-fixer.dist.php -v --using-cache=no --diff
PHP CS Fixer 3.87.1 Alexander by Fabien Potencier, Dariusz Ruminski and contributors.
PHP runtime: 8.3.30
Running 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!
Loaded config default from ".php-cs-fixer.dist.php".
5690/5690 [▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓] 100%
1) app/Console/Commands/JiminnyDebugCommand.php (statement_indentation, blank_line_before_statement)
---------- begin diff ----------
--- /home/jiminny/app/Console/Commands/JiminnyDebugCommand.php
+++ /home/jiminny/app/Console/Commands/JiminnyDebugCommand.php
@@ -23,6 +23,7 @@
if ($action === 'redis-set') {
$this->testRedisSet();
+
return;
}
@@ -45,7 +46,7 @@
$ttl = 60;
try {
-// $result = Redis::set($testKey, $testValue, 'EX', $ttl, 'NX');
+ // $result = Redis::set($testKey, $testValue, 'EX', $ttl, 'NX');
$result = Redis::set($testKey, $testValue, ['nx', 'ex' => $ttl]);
if ($result) {
----------- end diff -----------
Fixed 1 of 5690 files i...
|
[{"role":"AXTextArea","text [{"role":"AXTextArea","text":"Last login: Mon May 18 09:17:28 on ttys007\n\nPoetry could not find a pyproject.toml file in /Users/lukas/jiminny/app or its parents\n\nPoetry could not find a pyproject.toml file in /Users/lukas/jiminny/app or its parents\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (pipedrive-sdk-poc) $ co master\nerror: Your local changes to the following files would be overwritten by checkout:\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tPIPEDRIVE_V2_MIGRATION_TICKETS.md\nPlease commit your changes or stash them before you switch branches.\nAborting\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (pipedrive-sdk-poc) $ git pull\nremote: Enumerating objects: 1047, done.\nremote: Counting objects: 100% (832/832), done.\nremote: Compressing objects: 100% (298/298), done.\nremote: Total 1047 (delta 634), reused 596 (delta 534), pack-reused 215 (from 3)\nReceiving objects: 100% (1047/1047), 353.16 KiB | 1.56 MiB/s, done.\nResolving deltas: 100% (687/687), completed with 107 local objects.\nFrom github.com:jiminny/app\n 907c54896c..34656c53ed pipedrive-sdk-poc -> origin/pipedrive-sdk-poc\n 03325ec50f..4e7078fd8b JY-18091-upgrade-to-php-8-5 -> origin/JY-18091-upgrade-to-php-8-5\n e7d231e163..bc6a3fce6b JY-20725-handle-HS-search-rate-limit -> origin/JY-20725-handle-HS-search-rate-limit\n * [new branch] JY-20749-user-can-view-recorded-meetings -> origin/JY-20749-user-can-view-recorded-meetings\n 98ca281a04..e0351be069 JY-20808-low-priority-indexing-queue -> origin/JY-20808-low-priority-indexing-queue\n 569abb5149..3906a9238a JY-20835-mcp-enable-users-to-get-a-list-of-deals-and-their-details -> origin/JY-20835-mcp-enable-users-to-get-a-list-of-deals-and-their-details\n ad6c2a86e8..50eb6afba9 JY-20846-mcp-enable-the-ai-to-know-details-about-the-user -> origin/JY-20846-mcp-enable-the-ai-to-know-details-about-the-user\n * [new branch] JY-20893-chunk-control-per-update-target -> origin/JY-20893-chunk-control-per-update-target\n 31c62924a5..cb4ebf0c36 master -> origin/master\nUpdating 907c54896c..34656c53ed\nFast-forward\n PIPEDRIVE_V2_MIGRATION_TICKETS.md | 52 ++++++++++++++++++++++++++++++++++++++++++++++++++++\n 1 file changed, 52 insertions(+)\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (pipedrive-sdk-poc) $ co master\nM\u0000\u0000\u0000\u0000\u0000\u0000\t.env.local\nM\u0000\u0000\u0000\u0000\u0000\u0000\tconfig/logging.php\nSwitched to branch 'master'\nYour branch is behind 'origin/master' by 31 commits, and can be fast-forwarded.\n (use \"git pull\" to update your local branch)\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (master) $ git pull\nUpdating 31c62924a5..cb4ebf0c36\nFast-forward\n app/Component/ES/Processor/Traits/SelectEntityListTrait.php | 20 ------\n app/Services/Calendar/CalendarActivityService.php | 46 +++++++++++++\n app/Services/Calendar/Command/MapActivityData.php | 106 +++-------------------------\n docs/mcp/explorer/explorer.html | 104 +++++++++++++++++++++++++---\n docs/mcp/explorer/explorer.template.html | 102 ++++++++++++++++++++++++---\n docs/mcp/tools-list.json | 373 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++-------\n docs/mcp/tools.md | 117 +++++++++++++++++++++++--------\n tests/Unit/Component/ES/AsyncUpdateElasticSearchTest.php | 16 +----\n tests/Unit/Component/ES/Listeners/UpdateMultipleTargetsListenerTest.php | 10 ---\n tests/Unit/Component/ES/Listeners/UpdateSingleTargetListenerTest.php | 6 --\n tests/Unit/Component/ES/Processor/TargetEntitiesSelectorTest.php | 9 ---\n tests/Unit/Component/ES/Processor/Traits/SelectEntityListTraitTest.php | 15 ++--\n tests/Unit/Component/ES/UpdateProcessManagerTest.php | 2 -\n tests/Unit/Services/Calendar/CalendarActivityServiceTest.php | 150 ++++++++++++++++++++++++++++++++++++++--\n tests/Unit/Services/Calendar/Command/MapActivityDataTest.php | 78 ++-------------------\n 15 files changed, 832 insertions(+), 322 deletions(-)\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (master) $ co -b JY-20613-allow-owner-role-on-team-setup\nSwitched to a new branch 'JY-20613-allow-owner-role-on-team-setup'\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20613-allow-owner-role-on-team-setup) $ csfix\ndocker exec -it docker_lamp_1 ./vendor/bin/php-cs-fixer fix --config=.php-cs-fixer.dist.php -v --using-cache=no --diff \nPHP CS Fixer 3.87.1 Alexander by Fabien Potencier, Dariusz Ruminski and contributors.\nPHP runtime: 8.3.30\nRunning analysis on 7 cores with 10 files per process.\nParallel runner is an experimental feature and may be unstable, use it at your own risk. Feedback highly appreciated!\nLoaded config default from \".php-cs-fixer.dist.php\".\n 5682/5682 [▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓] 100%\n\n\nFixed 0 of 5682 files in 56.978 seconds, 67.00 MB memory used\n\nWhat's next:\n Try Docker Debug for seamless, persistent debugging tools in any container or image → docker debug docker_lamp_1\n Learn more at https://docs.docker.com/go/debug-cli/\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20613-allow-owner-role-on-team-setup) $ ;xd\ndocker exec -it docker_lamp_1 bash -c \"mv /usr/local/etc/php/conf.d/xdebug.ini ~/xdebug.ini\"\n\nWhat's next:\n Try Docker Debug for seamless, persistent debugging tools in any container or image → docker debug docker_lamp_1\n Learn more at https://docs.docker.com/go/debug-cli/\ndocker exec -it docker_lamp_1 supervisorctl restart all\njiminny-worker-processing-2:jiminny-worker-processing-2_00: stopped\njiminny-worker-processing-3:jiminny-worker-processing-3_00: stopped\njiminny-worker-processing-4:jiminny-worker-processing-4_00: stopped\njiminny-worker-processing-5:jiminny-worker-processing-5_00: stopped\njiminny-worker-processing-delayed:jiminny-worker-processing-delayed_00: stopped\nworker-analytics:worker-analytics_00: stopped\nworker-crm-update:worker-crm-update_00: stopped\nworker-download:worker-download_00: stopped\nworker-nudges:worker-nudges_00: stopped\nartisan-schedule:artisan-schedule_00: stopped\nworker-emails:worker-emails_00: stopped\nworker-calendar:worker-calendar_00: stopped\nworker:worker_00: stopped\nworker-conferences:worker-conferences_00: stopped\nworker-crm-sync:worker-crm-sync_00: stopped\njiminny-worker-processing-1:jiminny-worker-processing-1_00: stopped\nworker-audio:worker-audio_00: stopped\nworker-es-update:worker-es-update_00: stopped\nartisan-schedule:artisan-schedule_00: started\njiminny-worker-processing-1:jiminny-worker-processing-1_00: started\njiminny-worker-processing-2:jiminny-worker-processing-2_00: started\njiminny-worker-processing-3:jiminny-worker-processing-3_00: started\njiminny-worker-processing-4:jiminny-worker-processing-4_00: started\njiminny-worker-processing-5:jiminny-worker-processing-5_00: started\njiminny-worker-processing-delayed:jiminny-worker-processing-delayed_00: started\nworker:worker_00: started\nworker-analytics:worker-analytics_00: started\nworker-audio:worker-audio_00: started\nworker-calendar:worker-calendar_00: started\nworker-conferences:worker-conferences_00: started\nworker-crm-sync:worker-crm-sync_00: started\nworker-crm-update:worker-crm-update_00: started\nworker-download:worker-download_00: started\nworker-emails:worker-emails_00: started\nworker-es-update:worker-es-update_00: started\nworker-nudges:worker-nudges_00: started\n\nWhat's next:\n Try Docker Debug for seamless, persistent debugging tools in any container or image → docker debug docker_lamp_1\n Learn more at https://docs.docker.com/go/debug-cli/\ndocker exec -it docker_lamp_1 php -v\nPHP 8.3.30 (cli) (built: Mar 16 2026 22:32:32) (NTS)\nCopyright (c) The PHP Group\nZend Engine v4.3.30, Copyright (c) Zend Technologies\n with Zend OPcache v8.3.30, Copyright (c), by Zend Technologies\n\nWhat's next:\n Try Docker Debug for seamless, persistent debugging tools in any container or image → docker debug docker_lamp_1\n Learn more at https://docs.docker.com/go/debug-cli/\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20613-allow-owner-role-on-team-setup) $ csfix\ndocker exec -it docker_lamp_1 ./vendor/bin/php-cs-fixer fix --config=.php-cs-fixer.dist.php -v --using-cache=no --diff \nPHP CS Fixer 3.87.1 Alexander by Fabien Potencier, Dariusz Ruminski and contributors.\nPHP runtime: 8.3.30\nRunning analysis on 7 cores with 10 files per process.\nParallel runner is an experimental feature and may be unstable, use it at your own risk. Feedback highly appreciated!\nLoaded config default from \".php-cs-fixer.dist.php\".\n 5682/5682 [▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓] 100%\n\n\nFixed 0 of 5682 files in 49.910 seconds, 60.00 MB memory used\n\nWhat's next:\n Try Docker Debug for seamless, persistent debugging tools in any container or image → docker debug docker_lamp_1\n Learn more at https://docs.docker.com/go/debug-cli/\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20613-allow-owner-role-on-team-setup) $ git status\nOn branch JY-20613-allow-owner-role-on-team-setup\nYour branch is ahead of 'origin/JY-20613-allow-owner-role-on-team-setup' by 1 commit.\n (use \"git push\" to publish your local commits)\n\nChanges not staged for commit:\n (use \"git add <file>...\" to update what will be committed)\n (use \"git restore <file>...\" to discard changes in working directory)\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tmodified: .env.local\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tmodified: config/logging.php\n\nUntracked files:\n (use \"git add <file>...\" to include in what will be committed)\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\t.env.nikilocal\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\t.env.other\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tWEBHOOK_FILTERING_IMPLEMENTATION.md\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tapp/Console/Commands/Crm/Hubspot/SimulateWebhooksCommand.php\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tapp/Console/Commands/Reports/CreateMockAskJiminnyReportResultCommand.php\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tids.txt\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tpublic/favicon.ico\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\traw_sql_query.sql\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\ttests/Unit/Policies/CanAccessAiReportsTest.php\n\nno changes added to commit (use \"git add\" and/or \"git commit -a\")\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20613-allow-owner-role-on-team-setup) $ git pull\nremote: Enumerating objects: 248, done.\nremote: Counting objects: 100% (128/128), done.\nremote: Compressing objects: 100% (23/23), done.\nremote: Total 59 (delta 43), reused 44 (delta 33), pack-reused 0 (from 0)\nUnpacking objects: 100% (59/59), 10.48 KiB | 228.00 KiB/s, done.\nFrom github.com:jiminny/app\n b7df560451..190239dfd4 JY-20613-allow-owner-role-on-team-setup -> origin/JY-20613-allow-owner-role-on-team-setup\n e0351be069..d94a285ae7 JY-20808-low-priority-indexing-queue -> origin/JY-20808-low-priority-indexing-queue\n * [new branch] JY-20920-fix-participant-matcher -> origin/JY-20920-fix-participant-matcher\n cb4ebf0c36..90bca4e4b2 master -> origin/master\nMerge made by the 'ort' strategy.\n app/Component/ES/ChunkSize.php | 54 +++++++++++++++++++++++++++\n app/Component/ES/Processor/DTOs/SelectionList.php | 4 +-\n app/Component/ES/Processor/TargetEntitiesSelector.php | 19 ++++++----\n app/Http/Middleware/McpTierMiddleware.php | 27 +++-----------\n app/Mcp/Servers/JiminnyServer.php | 2 +\n app/Mcp/Tools/GetMeTool.php | 157 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++\n app/Models/Feature/FeatureEnum.php | 1 +\n database/migrations/2026_05_13_124153_create_mcp_feature_flag.php | 25 +++++++++++++\n front-end/src/components/Settings/Kiosk/modals/EditTeamModal/EditTeamModal.vue | 52 ++++++++++++++++++--------\n front-end/src/components/Settings/Kiosk/modals/EditTeamModal/__tests__/EditTeamModal.spec.js | 14 +++++++\n tests/Feature/Mcp/GetMeToolFeatureTest.php | 140 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++\n tests/Feature/Mcp/ListCallsToolFeatureTest.php | 2 +-\n tests/Feature/Mcp/McpTestHelpersTrait.php | 19 +++++++++-\n tests/Unit/Component/ES/ChunkSizeTest.php | 50 +++++++++++++++++++++++++\n tests/Unit/Component/ES/Processor/DTOs/SelectionListTest.php | 27 ++++++++++----\n tests/Unit/Component/ES/Processor/TargetEntitiesSelectorTest.php | 39 +++++++++++---------\n 16 files changed, 557 insertions(+), 75 deletions(-)\n create mode 100644 app/Component/ES/ChunkSize.php\n create mode 100644 app/Mcp/Tools/GetMeTool.php\n create mode 100644 database/migrations/2026_05_13_124153_create_mcp_feature_flag.php\n create mode 100644 tests/Feature/Mcp/GetMeToolFeatureTest.php\n create mode 100644 tests/Unit/Component/ES/ChunkSizeTest.php\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20613-allow-owner-role-on-team-setup) $ git push\nEnumerating objects: 40, done.\nCounting objects: 100% (34/34), done.\nDelta compression using up to 8 threads\nCompressing objects: 100% (18/18), done.\nWriting objects: 100% (18/18), 1.58 KiB | 1.58 MiB/s, done.\nTotal 18 (delta 15), reused 0 (delta 0), pack-reused 0\nremote: Resolving deltas: 100% (15/15), completed with 13 local objects.\nTo github.com:jiminny/app.git\n 190239dfd4..ec1b261264 JY-20613-allow-owner-role-on-team-setup -> JY-20613-allow-owner-role-on-team-setup\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20613-allow-owner-role-on-team-setup) $ gbr\n* JY-20613-allow-owner-role-on-team-setup\n pipedrive-sdk-poc\n master\n JY-20903-update_activity-stage-on-opportunity-change\n JY-20904-fix-update-es-on-activity-command\n JY-20891-improve-sms-text-relays\n JY-20725-handle-HS-search-rate-limit\n JY-20818-move-AJ-reports-to-separated-datadog-metric\n JY-20773-fix-automated-reports-user-pilot-tracking\n JY-20157-AJ-report-not-send-notification\n JY-20508-notify-before-AJ-report-expiration\n JY-20372-ai-reports-promotion-pages\n JY-20352-sync-opportunities-without-a-local-owner-user-id-is-null\n JY-20738-debug-AJ-tracking-UP\n a\n JY-18909-automated-reports-ask-jiminny\n JY-20692-fix-integration-app-token-auth-response-change\n JY-20553-debug-crm-sync-delays\n JY-20698-fix-SF-activity-types-on-new-playbook\n JY-20543-AJ-report-tracking\n JY-20384-handle-auto-sync-with-no-access-to-event-type\n JY-20458-ask-jiminny-user-definitions\n JY-19666-fix-import-contacts-account-association\n JY-19666-HS-import-contacts-and-accounts-batch-job\n JY-20458-Ask-Jiminny-Reports\n JY-20200-batch-update-CRM-objects-Salesforce\n JY-19666-HS-webhooks-add-contact-and-company\n JY-20348-trigger-setup-DI-layout-on-team-creation\n JY-20326-refactor-info-message-in-command\n JY-20317-fix-auto-log-delay-issue-on-all-channels-disabled\n JY-20312-remove-on-update-change-last-synced-at-crm-configurations\n JY-20306-SF-skip-auto-sync-for-task-based-playbook\n JY-20192-remove-deleted-team-from-saved-search-filters\n JY-20197-import-opportunity-batch-job\n JY-20293-enable-status-field-for-pipedrive-deals\n JY-20191-remove-commands-interactive-prompts\n JY-20118-change-default-sync-strategy\n JY-20183-add-cache-on-auto-log-delay\n JY-20197-add-import-opportunity-batch-job\n 20118-hs-opportunity-make-webhook-strategy-default\n JY-20118-make-default-hs-opportunity-sync-strategy-webhook-based\n JY-20196-handle-opportunity-without-note\n JY-20118-improve-opportunity-import\n JY-20189-handle-activity-search-on-deleted-groups\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20613-allow-owner-role-on-team-setup) $ co JY-20725-handle-HS-search-rate-limit\nM\u0000\u0000\u0000\u0000\u0000\u0000\t.env.local\nM\u0000\u0000\u0000\u0000\u0000\u0000\tconfig/logging.php\nSwitched to branch 'JY-20725-handle-HS-search-rate-limit'\nYour branch is behind 'origin/JY-20725-handle-HS-search-rate-limit' by 439 commits, and can be fast-forwarded.\n (use \"git pull\" to update your local branch)\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20725-handle-HS-search-rate-limit) $ git pull\nUpdating 0f3e438941..bc6a3fce6b\nFast-forward\n .gitignore | 3 +-\n .windsurfrules | 168 ++---\n CLAUDE.md | 1 +\n app/Component/ActivityAnalytics/Service/CalculateTalkTimeOffsetsFromTranscription.php | 24 +-\n app/Component/AiActivityType/Services/AiActivityTypeEligibilityChecker.php | 28 +-\n app/Component/AiAutomation/Actions/PrepareUpdateDtoAction.php | 32 +-\n app/Component/AiAutomation/Services/CrmFillingEligibilityChecker.php | 47 ++\n app/Component/AiAutomation/TestCrmAiPromptService.php | 14 +\n app/Component/AiCallScoring/Services/AiCallScoringEligibilityChecker.php | 9 +\n app/Component/ES/ElasticSearchDocumentPartialUpdater.php | 13 +-\n app/Component/ES/ElasticSearchWorkerManager.php | 86 ---\n app/Component/ES/Processor/Actions/LoadDocumentsAction.php | 80 +--\n app/Component/ES/Processor/EntityQueryBuilder.php | 12 +-\n app/Component/ES/Processor/TargetEntitiesSelector.php | 2 +-\n app/Component/ES/Processor/Traits/SkipActivityTrait.php | 25 -\n app/Component/ES/Repositories/EsResetActivityRepository.php | 11 +-\n app/Component/ES/Worker/ActivityWorker.php | 73 --\n app/Component/ES/Worker/EntityWorker.php | 44 --\n app/Component/ES/Worker/WorkerAmount.php | 60 --\n app/Component/ES/Worker/WorkerInterface.php | 15 -\n app/Component/ElasticSearch/Contract/Searchable.php | 4 +\n app/Component/Encoding/Job/AnalyzeTrackChannelsJob.php | 20 +-\n app/Component/Encoding/Service/GenerateSpeechFromSilenceService.php | 85 ++-\n app/Component/FFMpeg/Services/GetSpeechIntervalsService.php | 18 +-\n app/Component/LanguageDetection/Services/FindSpeechTimeService.php | 22 +-\n app/Component/Nudge/Job/ProcessOrganisationImmediateNudgesJob.php | 218 +++++-\n app/Component/ParagraphBreaker/Services/TranscriptionParagraphsService.php | 4 +\n app/Component/ParticipantSpeech/Services/ParticipantSpeechesCreator.php | 33 +\n app/Component/ParticipantSpeech/Services/ParticipantSpeechesDeleter.php | 15 +\n app/Component/ParticipantSpeech/Services/ParticipantSpeechesProvider.php | 51 +-\n app/Component/ParticipantSpeech/Services/ParticipantSpeechesUploader.php | 36 +\n app/Component/ProphetAi/Exceptions/InsufficientTranscriptException.php | 11 +\n app/Component/Transcription/DTO/Http/Transcription/AssemblyAI/AssemblyAI/NoAssemblyIdException.php | 11 +\n app/Component/Transcription/DTO/Http/Transcription/AssemblyAI/AssemblyAI/SuccessfulResponse.php | 6 +\n app/Component/Transcription/DTO/Http/Transcription/TranscriptionIsNotCorrectFormatException.php | 11 +\n app/Component/Transcription/Diarization/Services/GetNormalizedParticipantSpeechesService.php | 23 +-\n app/Component/Transcription/Diarization/Source/MeetingBotSource.php | 16 +-\n app/Component/Transcription/TranscriptionProcessor/TranscriptionProcessor.php | 3 +\n app/Console/Commands/Activities/ActivityHardDeleteCommand.php | 4 +-\n app/Console/Commands/Activities/Copy.php | 2 +\n app/Console/Commands/Activities/SetupIntegration/TwilioSetS3RecordingCredentialsCommand.php | 119 ++++\n app/Console/Commands/Activities/UpdateActivityElasticSearchDocumentCommand.php | 10 +-\n app/Console/Commands/Crm/BackfillOpportunityUserFromAccountCommand.php | 126 ++++\n app/Console/Commands/Elasticsearch/AsyncUpdateEsActivities.php | 19 -\n app/Console/Commands/Elasticsearch/AsyncUpdateEsEntities.php | 50 +-\n app/Console/Commands/Elasticsearch/ResetAsyncElasticSearchCommand.php | 30 +-\n app/Console/Commands/GeckoExport/GeckoExportParticipantSpeechesCommand.php | 14 +-\n app/Console/Commands/IssueMcpTokenCommand.php | 84 +++\n app/Console/Commands/JiminnyDebugCommand.php | 7 +-\n app/Console/Commands/Tracks/CleanupActivityTracksCommand.php | 2 +-\n app/Console/Kernel.php | 6 +-\n app/Contracts/Services/Calendar/CalendarTrait.php | 80 ++-\n app/Events/AutomatedReports/AutomatedReportGenerated.php | 3 +\n app/Http/Controllers/API/AiCallScoring/AiScorecardController.php | 7 +-\n app/Http/Controllers/API/TeamAiAutomationController.php | 8 +\n app/Http/Controllers/CustomerApi/CustomerApiController.php | 4 +-\n app/Http/Controllers/Kiosk/ActivityController.php | 58 +-\n app/Http/Controllers/Settings/PlaybookController.php | 15 +-\n app/Http/Kernel.php | 23 +\n app/Http/Middleware/McpAuditMiddleware.php | 156 ++++\n app/Http/Middleware/McpTierMiddleware.php | 54 ++\n app/Http/Requests/API/V2/ZapierUploadActivityRequest.php | 28 +-\n app/Jobs/Activity/Import/ImportTwilioVideoSpeechesJob.php | 25 +-\n app/Jobs/Activity/Import/IsActivityReadyForProcessingJob.php | 10 +-\n app/Jobs/Calendar/SetupCalendarSync.php | 21 +-\n app/Jobs/ImportRemoteTrackJob.php | 96 ++-\n app/Jobs/Mailbox/EmailTextRelay.php | 15 +-\n app/Mcp/Contracts/McpCallRepositoryInterface.php | 30 +\n app/Mcp/DTO/ListCallsFilters.php | 29 +\n app/Mcp/Errors/McpError.php | 123 ++++\n app/Mcp/Repositories/McpActivityHydrator.php | 145 ++++\n app/Mcp/Repositories/McpCallRepository.php | 84 +++\n app/Mcp/Repositories/McpElasticCallRepository.php | 171 +++++\n app/Mcp/Servers/JiminnyServer.php | 38 +\n app/Mcp/Tools/ListCallsTool.php | 205 ++++++\n app/Models/Activity.php | 10 +-\n app/Models/Activity/Transcription.php | 17 +-\n app/Models/ElasticSearch/OpportunityElasticSearchTrait.php | 5 +\n app/Models/Participant.php | 1 +\n app/Providers/AppServiceProvider.php | 22 +\n app/Repositories/Crm/ContactRepository.php | 69 +-\n app/Repositories/ParticipantSpeechRepository.php | 13 +-\n app/Services/Activity/ParticipantsService.php | 19 +-\n app/Services/Activity/Twilio/S3RecordingCredentialsService.php | 82 +++\n app/Services/ActivityService.php | 21 +-\n app/Services/Calendar/CalendarActivityService.php | 46 ++\n app/Services/Calendar/Command/ImportParticipants.php | 1 +\n app/Services/Calendar/Command/MapActivityData.php | 106 +--\n app/Services/Calendar/GoogleCalendarService.php | 12 +-\n app/Services/Crm/Close/Processor/OpportunityProcessor.php | 2 +-\n app/Services/Crm/Close/Service.php | 22 +-\n app/Services/Crm/Copper/Service.php | 12 +-\n app/Services/Crm/Hubspot/Service.php | 154 +++-\n app/Services/Crm/Hubspot/ServiceTraits/OpportunitySyncTrait.php | 88 ++-\n app/Services/Crm/IntegrationApp/ServiceTraits/SyncCrmEntitiesTrait.php | 22 +-\n app/Services/Crm/Pipedrive/Service.php | 17 +-\n app/Services/Crm/Salesforce/Service.php | 42 +-\n app/Services/Mail/Office/EmailApiClient.php | 129 +---\n app/Services/RecallAI/Commands/ScheduleBotCommand.php | 39 +-\n app/Services/RecallAI/RecallAIService.php | 22 +-\n composer.json | 3 +-\n composer.lock | 87 ++-\n config/mcp.php | 23 +\n database/migrations/2026_04_30_120000_create_mcp_audit_log_table.php | 36 +\n docs/mcp/explorer/explorer.html | 697 ++++++++++++++++++\n docs/mcp/explorer/explorer.template.html | 697 ++++++++++++++++++\n docs/mcp/explorer/generate.js | 215 ++++++\n docs/mcp/explorer/tool-explorer-meta.json | 11 +\n docs/mcp/tools-list.json | 2536 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++\n docs/mcp/tools.md | 621 ++++++++++++++++\n front-end/package.json | 4 +-\n front-end/src/components/Settings/OrgSettings/AiAutomation/CrmFilling/TemplateFieldForm.vue | 28 +-\n front-end/src/components/Settings/OrgSettings/Playbooks/AddEditPlaybook.vue | 10 +\n front-end/src/components/playback/comments/ActivityComment.less | 10 +-\n front-end/src/components/shared/PromptTester/PromptTester.vue | 12 +-\n front-end/src/components/shared/__tests__/PromptTester.spec.js | 35 +\n front-end/src/components/shared/modals/EntityPickerModal/__tests__/useEntitiesCache.spec.ts | 37 +\n front-end/src/components/shared/modals/EntityPickerModal/useEntitiesCache.ts | 9 +\n front-end/yarn.lock | 16 +-\n phpstan-baseline.neon | 50 --\n routes/api.php | 11 +\n sonar-project.properties | 91 ++-\n tests/Feature/Component/Nudge/ProcessOrganisationImmediateNudgesJobTest.php | 534 ++++++++++++++\n tests/Feature/Jobs/ImportRemoteTrackJobTest.php | 283 +++++++-\n tests/Feature/Mcp/IssueMcpTokenCommandTest.php | 53 ++\n tests/Feature/Mcp/ListCallsToolElasticFeatureTest.php | 155 ++++\n tests/Feature/Mcp/ListCallsToolFeatureTest.php | 352 ++++++++++\n tests/Feature/Mcp/McpTestHelpersTrait.php | 77 ++\n tests/Feature/Services/Team/TeamDeleteHandlers/Retention/RetentionRepositoryHandlerTest.php | 1 +\n tests/Stubs/SentryStub.php | 18 +\n tests/Unit/Component/ActivityAnalytics/Service/CalculateTalkTimeOffsetFromTranscriptionTest.php | 28 +-\n tests/Unit/Component/AiActivityType/Services/AiActivityTypeEligibilityCheckerTest.php | 103 ++-\n tests/Unit/Component/AiAutomation/Actions/PrepareUpdateDtoActionTest.php | 91 +++\n tests/Unit/Component/AiAutomation/Services/CrmFillingEligibilityCheckerTest.php | 124 ++++\n tests/Unit/Component/AiAutomation/TestCrmAiPromptServiceTest.php | 67 +-\n tests/Unit/Component/AiCallScoring/Services/AiCallScoringEligibilityCheckerTest.php | 55 ++\n tests/Unit/Component/ES/ElasticSearchWorkerManagerTest.php | 135 ----\n tests/Unit/Component/ES/Processor/Actions/LoadDocumentsActionTest.php | 220 ++++++\n tests/Unit/Component/ES/Processor/EntityQueryBuilderTest.php | 21 +-\n tests/Unit/Component/ES/Processor/Traits/SkipActivityTraitTest.php | 51 --\n tests/Unit/Component/ES/Worker/ActivityWorkerTest.php | 174 -----\n tests/Unit/Component/ES/Worker/EntityWorkerTest.php | 97 ---\n tests/Unit/Component/ES/Worker/WorkerAmountTest.php | 116 ---\n tests/Unit/Component/Encoding/Job/AnalyzeTrackChannelsJobTest.php | 52 +-\n tests/Unit/Component/Encoding/Service/GenerateSpeechFromSilenceServiceTest.php | 171 ++---\n tests/Unit/Component/FFMpeg/Services/GetSpeechIntervalsTest.php | 36 +-\n tests/Unit/Component/LanguageDetection/Services/FindSpeechTimeServiceTest.php | 20 +-\n tests/Unit/Component/MobileSettings/MobileSettingsControllerTest.php | 5 +-\n tests/Unit/Component/ParticipantSpeech/Services/ParticipantSpeechesCreatorTest.php | 75 ++\n tests/Unit/Component/ParticipantSpeech/Services/ParticipantSpeechesDeleterTest.php | 63 ++\n tests/Unit/Component/ParticipantSpeech/Services/ParticipantSpeechesProviderTest.php | 134 ++++\n tests/Unit/Component/ParticipantSpeech/Services/ParticipantSpeechesUploaderTest.php | 57 ++\n tests/Unit/Component/Transcription/Diarization/Services/GetNormalizedParticipantSpeechesServiceTest.php | 51 +-\n tests/Unit/Component/Transcription/Diarization/Source/MeetingBotSourceTest.php | 29 +-\n tests/Unit/Contracts/Services/Calendar/CalendarTraitTest.php | 58 +-\n tests/Unit/Http/Controllers/Kiosk/ActivityControllerTest.php | 159 +++++\n tests/Unit/Jobs/Activity/Import/ImportTwilioVideoSpeechesJobTest.php | 22 +-\n tests/Unit/Jobs/Activity/Import/IsActivityReadyForProcessingJobTest.php | 26 +-\n tests/Unit/Jobs/Calendar/SetupCalendarSyncTest.php | 25 -\n tests/Unit/Services/Activity/ParticipantsServiceTest.php | 12 +-\n tests/Unit/Services/Activity/Twilio/S3RecordingCredentialsServiceTest.php | 180 +++++\n tests/Unit/Services/ActivityServiceTest.php | 132 ++++\n tests/Unit/Services/Calendar/CalendarActivityServiceTest.php | 150 +++-\n tests/Unit/Services/Calendar/Command/ImportParticipantsTest.php | 6 +-\n tests/Unit/Services/Calendar/Command/MapActivityDataTest.php | 78 +-\n tests/Unit/Services/Calendar/GoogleCalendarServiceTest.php | 116 +++\n tests/Unit/Services/Crm/Close/ServiceTest.php | 165 +++++\n tests/Unit/Services/Crm/Hubspot/ServiceTest.php | 272 ++++++-\n tests/Unit/Services/Crm/Hubspot/ServiceTraits/OpportunitySyncTest.php | 25 +-\n tests/Unit/Services/Crm/Hubspot/ServiceTraits/OpportunitySyncTraitMatchActivitiesTest.php | 3 +-\n tests/Unit/Services/Crm/IntegrationApp/ServiceTraits/SyncCrmEntitiesTraitOpportunitiesTest.php | 40 ++\n tests/Unit/Services/Crm/Pipedrive/ImportOpportunityMatchActivitiesTest.php | 2 +\n tests/Unit/Services/Crm/Salesforce/ServiceTest.php | 139 ++++\n tests/Unit/Services/Mail/Office/EmailApiClientTest.php | 195 ++---\n tests/Unit/Services/RecallAI/RecallAIServiceTest.php | 24 +-\n 175 files changed, 12562 insertions(+), 2162 deletions(-)\n create mode 120000 CLAUDE.md\n create mode 100644 app/Component/AiAutomation/Services/CrmFillingEligibilityChecker.php\n delete mode 100644 app/Component/ES/ElasticSearchWorkerManager.php\n delete mode 100644 app/Component/ES/Processor/Traits/SkipActivityTrait.php\n delete mode 100644 app/Component/ES/Worker/ActivityWorker.php\n delete mode 100644 app/Component/ES/Worker/EntityWorker.php\n delete mode 100644 app/Component/ES/Worker/WorkerAmount.php\n delete mode 100644 app/Component/ES/Worker/WorkerInterface.php\n create mode 100644 app/Component/ProphetAi/Exceptions/InsufficientTranscriptException.php\n create mode 100644 app/Component/Transcription/DTO/Http/Transcription/AssemblyAI/AssemblyAI/NoAssemblyIdException.php\n create mode 100644 app/Component/Transcription/DTO/Http/Transcription/TranscriptionIsNotCorrectFormatException.php\n create mode 100644 app/Console/Commands/Activities/SetupIntegration/TwilioSetS3RecordingCredentialsCommand.php\n create mode 100644 app/Console/Commands/Crm/BackfillOpportunityUserFromAccountCommand.php\n delete mode 100644 app/Console/Commands/Elasticsearch/AsyncUpdateEsActivities.php\n create mode 100644 app/Console/Commands/IssueMcpTokenCommand.php\n create mode 100644 app/Http/Middleware/McpAuditMiddleware.php\n create mode 100644 app/Http/Middleware/McpTierMiddleware.php\n create mode 100644 app/Mcp/Contracts/McpCallRepositoryInterface.php\n create mode 100644 app/Mcp/DTO/ListCallsFilters.php\n create mode 100644 app/Mcp/Errors/McpError.php\n create mode 100644 app/Mcp/Repositories/McpActivityHydrator.php\n create mode 100644 app/Mcp/Repositories/McpCallRepository.php\n create mode 100644 app/Mcp/Repositories/McpElasticCallRepository.php\n create mode 100644 app/Mcp/Servers/JiminnyServer.php\n create mode 100644 app/Mcp/Tools/ListCallsTool.php\n create mode 100644 app/Services/Activity/Twilio/S3RecordingCredentialsService.php\n create mode 100644 config/mcp.php\n create mode 100644 database/migrations/2026_04_30_120000_create_mcp_audit_log_table.php\n create mode 100644 docs/mcp/explorer/explorer.html\n create mode 100644 docs/mcp/explorer/explorer.template.html\n create mode 100644 docs/mcp/explorer/generate.js\n create mode 100644 docs/mcp/explorer/tool-explorer-meta.json\n create mode 100644 docs/mcp/tools-list.json\n create mode 100644 docs/mcp/tools.md\n create mode 100644 front-end/src/components/shared/modals/EntityPickerModal/__tests__/useEntitiesCache.spec.ts\n create mode 100644 tests/Feature/Component/Nudge/ProcessOrganisationImmediateNudgesJobTest.php\n create mode 100644 tests/Feature/Mcp/IssueMcpTokenCommandTest.php\n create mode 100644 tests/Feature/Mcp/ListCallsToolElasticFeatureTest.php\n create mode 100644 tests/Feature/Mcp/ListCallsToolFeatureTest.php\n create mode 100644 tests/Feature/Mcp/McpTestHelpersTrait.php\n create mode 100644 tests/Stubs/SentryStub.php\n create mode 100644 tests/Unit/Component/AiAutomation/Services/CrmFillingEligibilityCheckerTest.php\n delete mode 100644 tests/Unit/Component/ES/ElasticSearchWorkerManagerTest.php\n create mode 100644 tests/Unit/Component/ES/Processor/Actions/LoadDocumentsActionTest.php\n delete mode 100644 tests/Unit/Component/ES/Processor/Traits/SkipActivityTraitTest.php\n delete mode 100644 tests/Unit/Component/ES/Worker/ActivityWorkerTest.php\n delete mode 100644 tests/Unit/Component/ES/Worker/EntityWorkerTest.php\n delete mode 100644 tests/Unit/Component/ES/Worker/WorkerAmountTest.php\n create mode 100644 tests/Unit/Component/ParticipantSpeech/Services/ParticipantSpeechesCreatorTest.php\n create mode 100644 tests/Unit/Http/Controllers/Kiosk/ActivityControllerTest.php\n create mode 100644 tests/Unit/Services/Activity/Twilio/S3RecordingCredentialsServiceTest.php\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20725-handle-HS-search-rate-limit) $ git status\nOn branch master\nYour branch is behind 'origin/master' by 114 commits, and can be fast-forwarded.\n (use \"git pull\" to update your local branch)\n\nChanges not staged for commit:\n (use \"git add <file>...\" to update what will be committed)\n (use \"git restore <file>...\" to discard changes in working directory)\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tmodified: .env.local\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tmodified: app/Component/SCIM/Constants.php\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tmodified: app/Component/SCIM/ScimProvisioning.php\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tmodified: app/Component/Twilio/Conference/ConferenceManager/SoftPhoneManager.php\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tmodified: app/Console/Commands/JiminnyDebugCommand.php\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tmodified: app/DTO/SCIM/AAD/Request/CoreUserRequest.php\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tmodified: app/DTO/SCIM/AAD/Response/CoreUser.php\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tmodified: app/Services/Telephony/TextMessagingService.php\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tmodified: config/logging.php\n\nUntracked files:\n (use \"git add <file>...\" to include in what will be committed)\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\t.env.nikilocal\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\t.env.other\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tWEBHOOK_FILTERING_IMPLEMENTATION.md\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tapp/Component/SCIM/Mutators/Attributes/User/RoleAttr.php\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tapp/Console/Commands/Crm/Hubspot/SimulateWebhooksCommand.php\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tapp/Console/Commands/Reports/CreateMockAskJiminnyReportResultCommand.php\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tapp/Rules/ListenerRoleCannotHaveAdminOrManagerPermissionRule.php\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tids.txt\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tpublic/favicon.ico\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\traw_sql_query.sql\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\ttests/Unit/Component/SCIM/Mutators/Attributes/User/RoleAttrTest.php\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\ttests/Unit/Policies/CanAccessAiReportsTest.php\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\ttests/Unit/Rules/ListenerRoleCannotHaveAdminOrManagerPermissionRuleTest.php\n\nno changes added to commit (use \"git add\" and/or \"git commit -a\")\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (master) $ git pull\nremote: Enumerating objects: 306, done.\nremote: Counting objects: 100% (299/299), done.\nremote: Compressing objects: 100% (183/183), done.\nremote: Total 306 (delta 213), reused 171 (delta 116), pack-reused 7 (from 1)\nReceiving objects: 100% (306/306), 80.12 KiB | 1000.00 KiB/s, done.\nResolving deltas: 100% (213/213), completed with 53 local objects.\nFrom github.com:jiminny/app\n 90bca4e4b2..5604af40cf master -> origin/master\n 4e7078fd8b..0b8343d179 JY-18091-upgrade-to-php-8-5 -> origin/JY-18091-upgrade-to-php-8-5\n 098eeaa087..d5a447e492 JY-20613-allow-owner-role-on-team-setup -> origin/JY-20613-allow-owner-role-on-team-setup\n c3a76ace91..af65249d0f JY-20749-user-can-view-recorded-meetings -> origin/JY-20749-user-can-view-recorded-meetings\n d94a285ae7..7ce96cb5fe JY-20808-low-priority-indexing-queue -> origin/JY-20808-low-priority-indexing-queue\n * [new branch] JY-20842-remove-partial-updater -> origin/JY-20842-remove-partial-updater\n * [new branch] JY-20920-fix-participant-flip -> origin/JY-20920-fix-participant-flip\n * [new branch] secfix/npm-20260519 -> origin/secfix/npm-20260519\nUpdating cb4ebf0c36..5604af40cf\nFast-forward\n app/Component/ES/ChunkSize.php | 54 +++++++++++++++++++\n app/Component/ES/Processor/DTOs/SelectionList.php | 4 +-\n app/Component/ES/Processor/TargetEntitiesSelector.php | 19 ++++---\n app/Component/MeetingBot/Service/ParticipantMatcher.php | 46 ++++++++++++----\n app/Exceptions/RateLimitException.php | 19 ++++++-\n app/Http/Middleware/McpTierMiddleware.php | 27 ++--------\n app/Jobs/Crm/MatchActivityCrmData.php | 47 ++++++++++++----\n app/Jobs/Middleware/HandleHubspotRateLimit.php | 42 +++++++++++++++\n app/Mcp/Servers/JiminnyServer.php | 2 +\n app/Mcp/Tools/GetMeTool.php | 157 +++++++++++++++++++++++++++++++++++++++++++++++++++++\n app/Models/Feature/FeatureEnum.php | 1 +\n app/Services/Activity/HubSpot/ProviderResolver.php | 4 +-\n app/Services/Activity/HubSpot/ProviderResolverInterface.php | 2 +-\n app/Services/Activity/HubSpot/Providers/Provider.php | 2 +-\n app/Services/Activity/HubSpot/Providers/ProviderKixie.php | 2 +-\n app/Services/Activity/HubSpot/Providers/ProviderOrum.php | 2 +-\n app/Services/Activity/HubSpot/Providers/ProviderTwilio.php | 2 +-\n app/Services/Activity/HubSpot/Providers/ProviderTwilioFlex.php | 5 +-\n app/Services/Activity/HubSpot/Service.php | 97 +++++++++++++++++++++++++++------\n app/Services/Crm/Hubspot/Client.php | 132 +++++++++++++++++++++++++++++++++++++++++++++\n app/Services/Crm/Hubspot/HubspotClientInterface.php | 15 ++++++\n app/Services/Crm/Hubspot/Pagination/HubspotPaginationService.php | 21 ++++----\n app/Services/Crm/Hubspot/Pagination/PaginationState.php | 2 +-\n database/migrations/2026_05_13_124153_create_mcp_feature_flag.php | 25 +++++++++\n tests/Feature/Mcp/GetMeToolFeatureTest.php | 140 +++++++++++++++++++++++++++++++++++++++++++++++\n tests/Feature/Mcp/ListCallsToolFeatureTest.php | 2 +-\n tests/Feature/Mcp/McpTestHelpersTrait.php | 19 ++++++-\n tests/Unit/Component/ES/ChunkSizeTest.php | 50 +++++++++++++++++\n tests/Unit/Component/ES/Processor/DTOs/SelectionListTest.php | 27 +++++++---\n tests/Unit/Component/ES/Processor/TargetEntitiesSelectorTest.php | 39 ++++++++------\n tests/Unit/Component/MeetingBot/Service/ParticipantMatcherTest.php | 68 ++++++++++++++++++++++-\n tests/Unit/Exceptions/RateLimitExceptionTest.php | 56 +++++++++++++++++++\n tests/Unit/Jobs/Crm/MatchActivityCrmDataTest.php | 8 +--\n tests/Unit/Jobs/Middleware/HandleHubspotRateLimitTest.php | 151 +++++++++++++++++++++++++++++++++++++++++++++++++++\n tests/Unit/Services/Activity/HubSpot/ServiceTest.php | 109 +++++++++++++++++++++++++++++++++++++\n tests/Unit/Services/Crm/Hubspot/ClientTest.php | 250 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++\n tests/Unit/Services/Crm/Hubspot/Pagination/HubspotPaginationServiceTest.php | 283 +++++++++++++++++++++---------------------------------------------------------------------------\n 37 files changed, 1587 insertions(+), 344 deletions(-)\n create mode 100644 app/Component/ES/ChunkSize.php\n create mode 100644 app/Jobs/Middleware/HandleHubspotRateLimit.php\n create mode 100644 app/Mcp/Tools/GetMeTool.php\n create mode 100644 database/migrations/2026_05_13_124153_create_mcp_feature_flag.php\n create mode 100644 tests/Feature/Mcp/GetMeToolFeatureTest.php\n create mode 100644 tests/Unit/Component/ES/ChunkSizeTest.php\n create mode 100644 tests/Unit/Exceptions/RateLimitExceptionTest.php\n create mode 100644 tests/Unit/Jobs/Middleware/HandleHubspotRateLimitTest.php\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (master) $ git pull\nAlready up to date.\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (master) $ co -b JY-20676-delete-report-related-objects\nSwitched to a new branch 'JY-20676-delete-report-related-objects'\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20676-delete-report-related-objects) $ csfix\ndocker exec -it docker_lamp_1 ./vendor/bin/php-cs-fixer fix --config=.php-cs-fixer.dist.php -v --using-cache=no --diff \nPHP CS Fixer 3.87.1 Alexander by Fabien Potencier, Dariusz Ruminski and contributors.\nPHP runtime: 8.3.30\nRunning analysis on 7 cores with 10 files per process.\nParallel runner is an experimental feature and may be unstable, use it at your own risk. Feedback highly appreciated!\nLoaded config default from \".php-cs-fixer.dist.php\".\n 5690/5690 [▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓] 100%\n\n 1) app/Console/Commands/JiminnyDebugCommand.php (statement_indentation, blank_line_before_statement)\n ---------- begin diff ----------\n--- /home/jiminny/app/Console/Commands/JiminnyDebugCommand.php\n+++ /home/jiminny/app/Console/Commands/JiminnyDebugCommand.php\n@@ -23,6 +23,7 @@\n \n if ($action === 'redis-set') {\n $this->testRedisSet();\n+\n return;\n }\n \n@@ -45,7 +46,7 @@\n $ttl = 60;\n \n try {\n-// $result = Redis::set($testKey, $testValue, 'EX', $ttl, 'NX');\n+ // $result = Redis::set($testKey, $testValue, 'EX', $ttl, 'NX');\n $result = Redis::set($testKey, $testValue, ['nx', 'ex' => $ttl]);\n \n if ($result) {\n\n ----------- end diff -----------\n\n\nFixed 1 of 5690 files in 50.673 seconds, 67.00 MB memory used\n\nWhat's next:\n Try Docker Debug for seamless, persistent debugging tools in any container or image → docker debug docker_lamp_1\n Learn more at https://docs.docker.com/go/debug-cli/\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20676-delete-report-related-objects) $ ;xd\ndocker exec -it docker_lamp_1 bash -c \"mv /usr/local/etc/php/conf.d/xdebug.ini ~/xdebug.ini\"\n\nWhat's next:\n Try Docker Debug for seamless, persistent debugging tools in any container or image → docker debug docker_lamp_1\n Learn more at https://docs.docker.com/go/debug-cli/\ndocker exec -it docker_lamp_1 supervisorctl restart all\njiminny-worker-processing-2:jiminny-worker-processing-2_00: stopped\njiminny-worker-processing-3:jiminny-worker-processing-3_00: stopped\njiminny-worker-processing-4:jiminny-worker-processing-4_00: stopped\njiminny-worker-processing-5:jiminny-worker-processing-5_00: stopped\njiminny-worker-processing-delayed:jiminny-worker-processing-delayed_00: stopped\nworker-analytics:worker-analytics_00: stopped\nworker-crm-update:worker-crm-update_00: stopped\nworker-download:worker-download_00: stopped\nworker-nudges:worker-nudges_00: stopped\nworker-calendar:worker-calendar_00: stopped\nworker-audio:worker-audio_00: stopped\njiminny-worker-processing-1:jiminny-worker-processing-1_00: stopped\nworker:worker_00: stopped\nworker-conferences:worker-conferences_00: stopped\nworker-crm-sync:worker-crm-sync_00: stopped\nworker-emails:worker-emails_00: stopped\nworker-es-update:worker-es-update_00: stopped\nartisan-schedule:artisan-schedule_00: stopped\nartisan-schedule:artisan-schedule_00: started\njiminny-worker-processing-1:jiminny-worker-processing-1_00: started\njiminny-worker-processing-2:jiminny-worker-processing-2_00: started\njiminny-worker-processing-3:jiminny-worker-processing-3_00: started\njiminny-worker-processing-4:jiminny-worker-processing-4_00: started\njiminny-worker-processing-5:jiminny-worker-processing-5_00: started\njiminny-worker-processing-delayed:jiminny-worker-processing-delayed_00: started\nworker:worker_00: started\nworker-analytics:worker-analytics_00: started\nworker-audio:worker-audio_00: started\nworker-calendar:worker-calendar_00: started\nworker-conferences:worker-conferences_00: started\nworker-crm-sync:worker-crm-sync_00: started\nworker-crm-update:worker-crm-update_00: started\nworker-download:worker-download_00: started\nworker-emails:worker-emails_00: started\nworker-es-update:worker-es-update_00: started\nworker-nudges:worker-nudges_00: started\n\nWhat's next:\n Try Docker Debug for seamless, persistent debugging tools in any container or image → docker debug docker_lamp_1\n Learn more at https://docs.docker.com/go/debug-cli/\ndocker exec -it docker_lamp_1 php -v\nPHP 8.3.30 (cli) (built: Mar 16 2026 22:32:32) (NTS)\nCopyright (c) The PHP Group\nZend Engine v4.3.30, Copyright (c) Zend Technologies\n with Zend OPcache v8.3.30, Copyright (c), by Zend Technologies\n\nWhat's next:\n Try Docker Debug for seamless, persistent debugging tools in any container or image → docker debug docker_lamp_1\n Learn more at https://docs.docker.com/go/debug-cli/\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20676-delete-report-related-objects) $ git status\nOn branch JY-20676-delete-report-related-objects\nChanges not staged for commit:\n (use \"git add <file>...\" to update what will be committed)\n (use \"git restore <file>...\" to discard changes in working directory)\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tmodified: .env.local\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tmodified: app/Console/Commands/JiminnyDebugCommand.php\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tmodified: config/logging.php\n\nUntracked files:\n (use \"git add <file>...\" to include in what will be committed)\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\t.env.nikilocal\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\t.env.other\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tWEBHOOK_FILTERING_IMPLEMENTATION.md\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tapp/Console/Commands/Crm/Hubspot/SimulateWebhooksCommand.php\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tapp/Console/Commands/Reports/CreateMockAskJiminnyReportResultCommand.php\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tids.txt\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tpublic/favicon.ico\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\traw_sql_query.sql\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\ttests/Unit/Policies/CanAccessAiReportsTest.php\n\nno changes added to commit (use \"git add\" and/or \"git commit -a\")\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20676-delete-report-related-objects) $ git push -u origin JY-20676-delete-report-related-objects\nEnumerating objects: 45, done.\nCounting objects: 100% (45/45), done.\nDelta compression using up to 8 threads\nCompressing objects: 100% (24/24), done.\nWriting objects: 100% (24/24), 3.62 KiB | 3.62 MiB/s, done.\nTotal 24 (delta 19), reused 0 (delta 0), pack-reused 0\nremote: Resolving deltas: 100% (19/19), completed with 19 local objects.\nremote: \nremote: Create a pull request for 'JY-20676-delete-report-related-objects' on GitHub by visiting:\nremote: https://github.com/jiminny/app/pull/new/JY-20676-delete-report-related-objects\nremote: \nTo github.com:jiminny/app.git\n * [new branch] JY-20676-delete-report-related-objects -> JY-20676-delete-report-related-objects\nbranch 'JY-20676-delete-report-related-objects' set up to track 'origin/JY-20676-delete-report-related-objects'.\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20676-delete-report-related-objects) $ csfix\ndocker exec -it docker_lamp_1 ./vendor/bin/php-cs-fixer fix --config=.php-cs-fixer.dist.php -v --using-cache=no --diff \nPHP CS Fixer 3.87.1 Alexander by Fabien Potencier, Dariusz Ruminski and contributors.\nPHP runtime: 8.3.30\nRunning analysis on 7 cores with 10 files per process.\nParallel runner is an experimental feature and may be unstable, use it at your own risk. Feedback highly appreciated!\nLoaded config default from \".php-cs-fixer.dist.php\".\n 5690/5690 [▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓] 100%\n\n 1) app/Http/Controllers/API/V2/AskJiminnyReportsController.php (blank_line_before_statement)\n ---------- begin diff ----------\n--- /home/jiminny/app/Http/Controllers/API/V2/AskJiminnyReportsController.php\n+++ /home/jiminny/app/Http/Controllers/API/V2/AskJiminnyReportsController.php\n@@ -140,6 +140,7 @@\n if ($enabled && $report->isAskJiminnyReport() && ! $report->canExecute()) {\n $error = 'This report is missing a saved search or prompt. ' .\n 'Edit the report to complete the setup before enabling it.';\n+\n return new JsonResponse(\n ['error' => $error],\n Response::HTTP_UNPROCESSABLE_ENTITY\n\n ----------- end diff -----------\n\n\nFixed 1 of 5690 files in 71.757 seconds, 60.00 MB memory used\n\nWhat's next:\n Try Docker Debug for seamless, persistent debugging tools in any container or image → docker debug docker_lamp_1\n Learn more at https://docs.docker.com/go/debug-cli/\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20676-delete-report-related-objects) $ git pull\nremote: Enumerating objects: 158, done.\nremote: Counting objects: 100% (103/103), done.\nremote: Compressing objects: 100% (37/37), done.\nremote: Total 158 (delta 80), reused 74 (delta 66), pack-reused 55 (from 3)\nReceiving objects: 100% (158/158), 80.59 KiB | 982.00 KiB/s, done.\nResolving deltas: 100% (85/85), completed with 45 local objects.\nFrom github.com:jiminny/app\n 02a33811ee..c6ce5e2440 JY-20676-delete-report-related-objects -> origin/JY-20676-delete-report-related-objects\n 7ce96cb5fe..6c59f04358 JY-20808-low-priority-indexing-queue -> origin/JY-20808-low-priority-indexing-queue\n 3906a9238a..2b5e6ea62b JY-20835-mcp-enable-users-to-get-a-list-of-deals-and-their-details -> origin/JY-20835-mcp-enable-users-to-get-a-list-of-deals-and-their-details\n 5604af40cf..ea3519f0e2 master -> origin/master\n * [new branch] switch-eu-assembly -> origin/switch-eu-assembly\nUpdating 02a33811ee..c6ce5e2440\nFast-forward\n app/Component/ES/ElasticSearchDocumentPartialUpdater.php | 48 ---\n app/Component/ParticipantSpeech/Services/ParticipantAttributionService.php | 4 +-\n app/Component/Settings/AutoScoring/Services/UpdateAutoScoreService.php | 20 +-\n app/Component/Transcription/Service/StorageService.php | 8 +-\n front-end/package.json | 2 +-\n front-end/src/components/DealInsights/Modals/AskAnythingModal.vue | 23 ++\n front-end/src/components/shared/AskAnything/AskAnythingPromptFormItem.vue | 2 +\n front-end/src/components/shared/AskAnything/AskAnythingSettingsDrawer.vue | 23 +-\n front-end/src/components/shared/AskAnything/__mocks__/AskAnythingSettingsDrawer.mocks.js | 1 +\n front-end/src/components/shared/AskAnything/__tests__/AskAnythingSettingsDrawer.spec.js | 135 ++++---\n front-end/src/components/shared/AskAnything/__tests__/__snapshots__/AskAnythingSettingsDrawer.spec.js.html | 1235 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++\n front-end/src/components/shared/AskAnything/__tests__/__snapshots__/AskAnythingSettingsDrawer.spec.js.snap | 1382 ----------------------------------------------------------------\n front-end/src/components/shared/AskAnything/prompts.js | 1 +\n front-end/src/components/shared/AskAnything/useAskAnything.js | 1 +\n front-end/yarn.lock | 8 +-\n tests/Unit/Component/ES/ElasticSearchDocumentPartialUpdaterTest.php | 42 --\n tests/Unit/Component/Settings/AutoScoring/Services/UpdateAutoScoreServiceTest.php | 86 ++--\n tests/Unit/Component/Transcription/Service/StorageServiceTest.php | 29 +-\n 18 files changed, 1448 insertions(+), 1602 deletions(-)\n delete mode 100644 app/Component/ES/ElasticSearchDocumentPartialUpdater.php\n create mode 100644 front-end/src/components/shared/AskAnything/__tests__/__snapshots__/AskAnythingSettingsDrawer.spec.js.html\n delete mode 100644 front-end/src/components/shared/AskAnything/__tests__/__snapshots__/AskAnythingSettingsDrawer.spec.js.snap\n delete mode 100644 tests/Unit/Component/ES/ElasticSearchDocumentPartialUpdaterTest.php\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20676-delete-report-related-objects) $ csfix\ndocker exec -it docker_lamp_1 ./vendor/bin/php-cs-fixer fix --config=.php-cs-fixer.dist.php -v --using-cache=no --diff \nPHP CS Fixer 3.87.1 Alexander by Fabien Potencier, Dariusz Ruminski and contributors.\nPHP runtime: 8.3.30\nRunning analysis on 7 cores with 10 files per process.\nParallel runner is an experimental feature and may be unstable, use it at your own risk. Feedback highly appreciated!\nLoaded config default from \".php-cs-fixer.dist.php\".\n 5688/5688 [▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓] 100%\n\n\nFixed 0 of 5688 files in 79.904 seconds, 60.00 MB memory used\n\nWhat's next:\n Try Docker Debug for seamless, persistent debugging tools in any container or image → docker debug docker_lamp_1\n Learn more at https://docs.docker.com/go/debug-cli/\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20676-delete-report-related-objects) $","depth":4,"on_screen":true,"value":"Last login: Mon May 18 09:17:28 on ttys007\n\nPoetry could not find a pyproject.toml file in /Users/lukas/jiminny/app or its parents\n\nPoetry could not find a pyproject.toml file in /Users/lukas/jiminny/app or its parents\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (pipedrive-sdk-poc) $ co master\nerror: Your local changes to the following files would be overwritten by checkout:\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tPIPEDRIVE_V2_MIGRATION_TICKETS.md\nPlease commit your changes or stash them before you switch branches.\nAborting\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (pipedrive-sdk-poc) $ git pull\nremote: Enumerating objects: 1047, done.\nremote: Counting objects: 100% (832/832), done.\nremote: Compressing objects: 100% (298/298), done.\nremote: Total 1047 (delta 634), reused 596 (delta 534), pack-reused 215 (from 3)\nReceiving objects: 100% (1047/1047), 353.16 KiB | 1.56 MiB/s, done.\nResolving deltas: 100% (687/687), completed with 107 local objects.\nFrom github.com:jiminny/app\n 907c54896c..34656c53ed pipedrive-sdk-poc -> origin/pipedrive-sdk-poc\n 03325ec50f..4e7078fd8b JY-18091-upgrade-to-php-8-5 -> origin/JY-18091-upgrade-to-php-8-5\n e7d231e163..bc6a3fce6b JY-20725-handle-HS-search-rate-limit -> origin/JY-20725-handle-HS-search-rate-limit\n * [new branch] JY-20749-user-can-view-recorded-meetings -> origin/JY-20749-user-can-view-recorded-meetings\n 98ca281a04..e0351be069 JY-20808-low-priority-indexing-queue -> origin/JY-20808-low-priority-indexing-queue\n 569abb5149..3906a9238a JY-20835-mcp-enable-users-to-get-a-list-of-deals-and-their-details -> origin/JY-20835-mcp-enable-users-to-get-a-list-of-deals-and-their-details\n ad6c2a86e8..50eb6afba9 JY-20846-mcp-enable-the-ai-to-know-details-about-the-user -> origin/JY-20846-mcp-enable-the-ai-to-know-details-about-the-user\n * [new branch] JY-20893-chunk-control-per-update-target -> origin/JY-20893-chunk-control-per-update-target\n 31c62924a5..cb4ebf0c36 master -> origin/master\nUpdating 907c54896c..34656c53ed\nFast-forward\n PIPEDRIVE_V2_MIGRATION_TICKETS.md | 52 ++++++++++++++++++++++++++++++++++++++++++++++++++++\n 1 file changed, 52 insertions(+)\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (pipedrive-sdk-poc) $ co master\nM\u0000\u0000\u0000\u0000\u0000\u0000\t.env.local\nM\u0000\u0000\u0000\u0000\u0000\u0000\tconfig/logging.php\nSwitched to branch 'master'\nYour branch is behind 'origin/master' by 31 commits, and can be fast-forwarded.\n (use \"git pull\" to update your local branch)\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (master) $ git pull\nUpdating 31c62924a5..cb4ebf0c36\nFast-forward\n app/Component/ES/Processor/Traits/SelectEntityListTrait.php | 20 ------\n app/Services/Calendar/CalendarActivityService.php | 46 +++++++++++++\n app/Services/Calendar/Command/MapActivityData.php | 106 +++-------------------------\n docs/mcp/explorer/explorer.html | 104 +++++++++++++++++++++++++---\n docs/mcp/explorer/explorer.template.html | 102 ++++++++++++++++++++++++---\n docs/mcp/tools-list.json | 373 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++-------\n docs/mcp/tools.md | 117 +++++++++++++++++++++++--------\n tests/Unit/Component/ES/AsyncUpdateElasticSearchTest.php | 16 +----\n tests/Unit/Component/ES/Listeners/UpdateMultipleTargetsListenerTest.php | 10 ---\n tests/Unit/Component/ES/Listeners/UpdateSingleTargetListenerTest.php | 6 --\n tests/Unit/Component/ES/Processor/TargetEntitiesSelectorTest.php | 9 ---\n tests/Unit/Component/ES/Processor/Traits/SelectEntityListTraitTest.php | 15 ++--\n tests/Unit/Component/ES/UpdateProcessManagerTest.php | 2 -\n tests/Unit/Services/Calendar/CalendarActivityServiceTest.php | 150 ++++++++++++++++++++++++++++++++++++++--\n tests/Unit/Services/Calendar/Command/MapActivityDataTest.php | 78 ++-------------------\n 15 files changed, 832 insertions(+), 322 deletions(-)\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (master) $ co -b JY-20613-allow-owner-role-on-team-setup\nSwitched to a new branch 'JY-20613-allow-owner-role-on-team-setup'\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20613-allow-owner-role-on-team-setup) $ csfix\ndocker exec -it docker_lamp_1 ./vendor/bin/php-cs-fixer fix --config=.php-cs-fixer.dist.php -v --using-cache=no --diff \nPHP CS Fixer 3.87.1 Alexander by Fabien Potencier, Dariusz Ruminski and contributors.\nPHP runtime: 8.3.30\nRunning analysis on 7 cores with 10 files per process.\nParallel runner is an experimental feature and may be unstable, use it at your own risk. Feedback highly appreciated!\nLoaded config default from \".php-cs-fixer.dist.php\".\n 5682/5682 [▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓] 100%\n\n\nFixed 0 of 5682 files in 56.978 seconds, 67.00 MB memory used\n\nWhat's next:\n Try Docker Debug for seamless, persistent debugging tools in any container or image → docker debug docker_lamp_1\n Learn more at https://docs.docker.com/go/debug-cli/\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20613-allow-owner-role-on-team-setup) $ ;xd\ndocker exec -it docker_lamp_1 bash -c \"mv /usr/local/etc/php/conf.d/xdebug.ini ~/xdebug.ini\"\n\nWhat's next:\n Try Docker Debug for seamless, persistent debugging tools in any container or image → docker debug docker_lamp_1\n Learn more at https://docs.docker.com/go/debug-cli/\ndocker exec -it docker_lamp_1 supervisorctl restart all\njiminny-worker-processing-2:jiminny-worker-processing-2_00: stopped\njiminny-worker-processing-3:jiminny-worker-processing-3_00: stopped\njiminny-worker-processing-4:jiminny-worker-processing-4_00: stopped\njiminny-worker-processing-5:jiminny-worker-processing-5_00: stopped\njiminny-worker-processing-delayed:jiminny-worker-processing-delayed_00: stopped\nworker-analytics:worker-analytics_00: stopped\nworker-crm-update:worker-crm-update_00: stopped\nworker-download:worker-download_00: stopped\nworker-nudges:worker-nudges_00: stopped\nartisan-schedule:artisan-schedule_00: stopped\nworker-emails:worker-emails_00: stopped\nworker-calendar:worker-calendar_00: stopped\nworker:worker_00: stopped\nworker-conferences:worker-conferences_00: stopped\nworker-crm-sync:worker-crm-sync_00: stopped\njiminny-worker-processing-1:jiminny-worker-processing-1_00: stopped\nworker-audio:worker-audio_00: stopped\nworker-es-update:worker-es-update_00: stopped\nartisan-schedule:artisan-schedule_00: started\njiminny-worker-processing-1:jiminny-worker-processing-1_00: started\njiminny-worker-processing-2:jiminny-worker-processing-2_00: started\njiminny-worker-processing-3:jiminny-worker-processing-3_00: started\njiminny-worker-processing-4:jiminny-worker-processing-4_00: started\njiminny-worker-processing-5:jiminny-worker-processing-5_00: started\njiminny-worker-processing-delayed:jiminny-worker-processing-delayed_00: started\nworker:worker_00: started\nworker-analytics:worker-analytics_00: started\nworker-audio:worker-audio_00: started\nworker-calendar:worker-calendar_00: started\nworker-conferences:worker-conferences_00: started\nworker-crm-sync:worker-crm-sync_00: started\nworker-crm-update:worker-crm-update_00: started\nworker-download:worker-download_00: started\nworker-emails:worker-emails_00: started\nworker-es-update:worker-es-update_00: started\nworker-nudges:worker-nudges_00: started\n\nWhat's next:\n Try Docker Debug for seamless, persistent debugging tools in any container or image → docker debug docker_lamp_1\n Learn more at https://docs.docker.com/go/debug-cli/\ndocker exec -it docker_lamp_1 php -v\nPHP 8.3.30 (cli) (built: Mar 16 2026 22:32:32) (NTS)\nCopyright (c) The PHP Group\nZend Engine v4.3.30, Copyright (c) Zend Technologies\n with Zend OPcache v8.3.30, Copyright (c), by Zend Technologies\n\nWhat's next:\n Try Docker Debug for seamless, persistent debugging tools in any container or image → docker debug docker_lamp_1\n Learn more at https://docs.docker.com/go/debug-cli/\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20613-allow-owner-role-on-team-setup) $ csfix\ndocker exec -it docker_lamp_1 ./vendor/bin/php-cs-fixer fix --config=.php-cs-fixer.dist.php -v --using-cache=no --diff \nPHP CS Fixer 3.87.1 Alexander by Fabien Potencier, Dariusz Ruminski and contributors.\nPHP runtime: 8.3.30\nRunning analysis on 7 cores with 10 files per process.\nParallel runner is an experimental feature and may be unstable, use it at your own risk. Feedback highly appreciated!\nLoaded config default from \".php-cs-fixer.dist.php\".\n 5682/5682 [▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓] 100%\n\n\nFixed 0 of 5682 files in 49.910 seconds, 60.00 MB memory used\n\nWhat's next:\n Try Docker Debug for seamless, persistent debugging tools in any container or image → docker debug docker_lamp_1\n Learn more at https://docs.docker.com/go/debug-cli/\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20613-allow-owner-role-on-team-setup) $ git status\nOn branch JY-20613-allow-owner-role-on-team-setup\nYour branch is ahead of 'origin/JY-20613-allow-owner-role-on-team-setup' by 1 commit.\n (use \"git push\" to publish your local commits)\n\nChanges not staged for commit:\n (use \"git add <file>...\" to update what will be committed)\n (use \"git restore <file>...\" to discard changes in working directory)\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tmodified: .env.local\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tmodified: config/logging.php\n\nUntracked files:\n (use \"git add <file>...\" to include in what will be committed)\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\t.env.nikilocal\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\t.env.other\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tWEBHOOK_FILTERING_IMPLEMENTATION.md\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tapp/Console/Commands/Crm/Hubspot/SimulateWebhooksCommand.php\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tapp/Console/Commands/Reports/CreateMockAskJiminnyReportResultCommand.php\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tids.txt\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tpublic/favicon.ico\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\traw_sql_query.sql\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\ttests/Unit/Policies/CanAccessAiReportsTest.php\n\nno changes added to commit (use \"git add\" and/or \"git commit -a\")\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20613-allow-owner-role-on-team-setup) $ git pull\nremote: Enumerating objects: 248, done.\nremote: Counting objects: 100% (128/128), done.\nremote: Compressing objects: 100% (23/23), done.\nremote: Total 59 (delta 43), reused 44 (delta 33), pack-reused 0 (from 0)\nUnpacking objects: 100% (59/59), 10.48 KiB | 228.00 KiB/s, done.\nFrom github.com:jiminny/app\n b7df560451..190239dfd4 JY-20613-allow-owner-role-on-team-setup -> origin/JY-20613-allow-owner-role-on-team-setup\n e0351be069..d94a285ae7 JY-20808-low-priority-indexing-queue -> origin/JY-20808-low-priority-indexing-queue\n * [new branch] JY-20920-fix-participant-matcher -> origin/JY-20920-fix-participant-matcher\n cb4ebf0c36..90bca4e4b2 master -> origin/master\nMerge made by the 'ort' strategy.\n app/Component/ES/ChunkSize.php | 54 +++++++++++++++++++++++++++\n app/Component/ES/Processor/DTOs/SelectionList.php | 4 +-\n app/Component/ES/Processor/TargetEntitiesSelector.php | 19 ++++++----\n app/Http/Middleware/McpTierMiddleware.php | 27 +++-----------\n app/Mcp/Servers/JiminnyServer.php | 2 +\n app/Mcp/Tools/GetMeTool.php | 157 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++\n app/Models/Feature/FeatureEnum.php | 1 +\n database/migrations/2026_05_13_124153_create_mcp_feature_flag.php | 25 +++++++++++++\n front-end/src/components/Settings/Kiosk/modals/EditTeamModal/EditTeamModal.vue | 52 ++++++++++++++++++--------\n front-end/src/components/Settings/Kiosk/modals/EditTeamModal/__tests__/EditTeamModal.spec.js | 14 +++++++\n tests/Feature/Mcp/GetMeToolFeatureTest.php | 140 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++\n tests/Feature/Mcp/ListCallsToolFeatureTest.php | 2 +-\n tests/Feature/Mcp/McpTestHelpersTrait.php | 19 +++++++++-\n tests/Unit/Component/ES/ChunkSizeTest.php | 50 +++++++++++++++++++++++++\n tests/Unit/Component/ES/Processor/DTOs/SelectionListTest.php | 27 ++++++++++----\n tests/Unit/Component/ES/Processor/TargetEntitiesSelectorTest.php | 39 +++++++++++---------\n 16 files changed, 557 insertions(+), 75 deletions(-)\n create mode 100644 app/Component/ES/ChunkSize.php\n create mode 100644 app/Mcp/Tools/GetMeTool.php\n create mode 100644 database/migrations/2026_05_13_124153_create_mcp_feature_flag.php\n create mode 100644 tests/Feature/Mcp/GetMeToolFeatureTest.php\n create mode 100644 tests/Unit/Component/ES/ChunkSizeTest.php\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20613-allow-owner-role-on-team-setup) $ git push\nEnumerating objects: 40, done.\nCounting objects: 100% (34/34), done.\nDelta compression using up to 8 threads\nCompressing objects: 100% (18/18), done.\nWriting objects: 100% (18/18), 1.58 KiB | 1.58 MiB/s, done.\nTotal 18 (delta 15), reused 0 (delta 0), pack-reused 0\nremote: Resolving deltas: 100% (15/15), completed with 13 local objects.\nTo github.com:jiminny/app.git\n 190239dfd4..ec1b261264 JY-20613-allow-owner-role-on-team-setup -> JY-20613-allow-owner-role-on-team-setup\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20613-allow-owner-role-on-team-setup) $ gbr\n* JY-20613-allow-owner-role-on-team-setup\n pipedrive-sdk-poc\n master\n JY-20903-update_activity-stage-on-opportunity-change\n JY-20904-fix-update-es-on-activity-command\n JY-20891-improve-sms-text-relays\n JY-20725-handle-HS-search-rate-limit\n JY-20818-move-AJ-reports-to-separated-datadog-metric\n JY-20773-fix-automated-reports-user-pilot-tracking\n JY-20157-AJ-report-not-send-notification\n JY-20508-notify-before-AJ-report-expiration\n JY-20372-ai-reports-promotion-pages\n JY-20352-sync-opportunities-without-a-local-owner-user-id-is-null\n JY-20738-debug-AJ-tracking-UP\n a\n JY-18909-automated-reports-ask-jiminny\n JY-20692-fix-integration-app-token-auth-response-change\n JY-20553-debug-crm-sync-delays\n JY-20698-fix-SF-activity-types-on-new-playbook\n JY-20543-AJ-report-tracking\n JY-20384-handle-auto-sync-with-no-access-to-event-type\n JY-20458-ask-jiminny-user-definitions\n JY-19666-fix-import-contacts-account-association\n JY-19666-HS-import-contacts-and-accounts-batch-job\n JY-20458-Ask-Jiminny-Reports\n JY-20200-batch-update-CRM-objects-Salesforce\n JY-19666-HS-webhooks-add-contact-and-company\n JY-20348-trigger-setup-DI-layout-on-team-creation\n JY-20326-refactor-info-message-in-command\n JY-20317-fix-auto-log-delay-issue-on-all-channels-disabled\n JY-20312-remove-on-update-change-last-synced-at-crm-configurations\n JY-20306-SF-skip-auto-sync-for-task-based-playbook\n JY-20192-remove-deleted-team-from-saved-search-filters\n JY-20197-import-opportunity-batch-job\n JY-20293-enable-status-field-for-pipedrive-deals\n JY-20191-remove-commands-interactive-prompts\n JY-20118-change-default-sync-strategy\n JY-20183-add-cache-on-auto-log-delay\n JY-20197-add-import-opportunity-batch-job\n 20118-hs-opportunity-make-webhook-strategy-default\n JY-20118-make-default-hs-opportunity-sync-strategy-webhook-based\n JY-20196-handle-opportunity-without-note\n JY-20118-improve-opportunity-import\n JY-20189-handle-activity-search-on-deleted-groups\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20613-allow-owner-role-on-team-setup) $ co JY-20725-handle-HS-search-rate-limit\nM\u0000\u0000\u0000\u0000\u0000\u0000\t.env.local\nM\u0000\u0000\u0000\u0000\u0000\u0000\tconfig/logging.php\nSwitched to branch 'JY-20725-handle-HS-search-rate-limit'\nYour branch is behind 'origin/JY-20725-handle-HS-search-rate-limit' by 439 commits, and can be fast-forwarded.\n (use \"git pull\" to update your local branch)\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20725-handle-HS-search-rate-limit) $ git pull\nUpdating 0f3e438941..bc6a3fce6b\nFast-forward\n .gitignore | 3 +-\n .windsurfrules | 168 ++---\n CLAUDE.md | 1 +\n app/Component/ActivityAnalytics/Service/CalculateTalkTimeOffsetsFromTranscription.php | 24 +-\n app/Component/AiActivityType/Services/AiActivityTypeEligibilityChecker.php | 28 +-\n app/Component/AiAutomation/Actions/PrepareUpdateDtoAction.php | 32 +-\n app/Component/AiAutomation/Services/CrmFillingEligibilityChecker.php | 47 ++\n app/Component/AiAutomation/TestCrmAiPromptService.php | 14 +\n app/Component/AiCallScoring/Services/AiCallScoringEligibilityChecker.php | 9 +\n app/Component/ES/ElasticSearchDocumentPartialUpdater.php | 13 +-\n app/Component/ES/ElasticSearchWorkerManager.php | 86 ---\n app/Component/ES/Processor/Actions/LoadDocumentsAction.php | 80 +--\n app/Component/ES/Processor/EntityQueryBuilder.php | 12 +-\n app/Component/ES/Processor/TargetEntitiesSelector.php | 2 +-\n app/Component/ES/Processor/Traits/SkipActivityTrait.php | 25 -\n app/Component/ES/Repositories/EsResetActivityRepository.php | 11 +-\n app/Component/ES/Worker/ActivityWorker.php | 73 --\n app/Component/ES/Worker/EntityWorker.php | 44 --\n app/Component/ES/Worker/WorkerAmount.php | 60 --\n app/Component/ES/Worker/WorkerInterface.php | 15 -\n app/Component/ElasticSearch/Contract/Searchable.php | 4 +\n app/Component/Encoding/Job/AnalyzeTrackChannelsJob.php | 20 +-\n app/Component/Encoding/Service/GenerateSpeechFromSilenceService.php | 85 ++-\n app/Component/FFMpeg/Services/GetSpeechIntervalsService.php | 18 +-\n app/Component/LanguageDetection/Services/FindSpeechTimeService.php | 22 +-\n app/Component/Nudge/Job/ProcessOrganisationImmediateNudgesJob.php | 218 +++++-\n app/Component/ParagraphBreaker/Services/TranscriptionParagraphsService.php | 4 +\n app/Component/ParticipantSpeech/Services/ParticipantSpeechesCreator.php | 33 +\n app/Component/ParticipantSpeech/Services/ParticipantSpeechesDeleter.php | 15 +\n app/Component/ParticipantSpeech/Services/ParticipantSpeechesProvider.php | 51 +-\n app/Component/ParticipantSpeech/Services/ParticipantSpeechesUploader.php | 36 +\n app/Component/ProphetAi/Exceptions/InsufficientTranscriptException.php | 11 +\n app/Component/Transcription/DTO/Http/Transcription/AssemblyAI/AssemblyAI/NoAssemblyIdException.php | 11 +\n app/Component/Transcription/DTO/Http/Transcription/AssemblyAI/AssemblyAI/SuccessfulResponse.php | 6 +\n app/Component/Transcription/DTO/Http/Transcription/TranscriptionIsNotCorrectFormatException.php | 11 +\n app/Component/Transcription/Diarization/Services/GetNormalizedParticipantSpeechesService.php | 23 +-\n app/Component/Transcription/Diarization/Source/MeetingBotSource.php | 16 +-\n app/Component/Transcription/TranscriptionProcessor/TranscriptionProcessor.php | 3 +\n app/Console/Commands/Activities/ActivityHardDeleteCommand.php | 4 +-\n app/Console/Commands/Activities/Copy.php | 2 +\n app/Console/Commands/Activities/SetupIntegration/TwilioSetS3RecordingCredentialsCommand.php | 119 ++++\n app/Console/Commands/Activities/UpdateActivityElasticSearchDocumentCommand.php | 10 +-\n app/Console/Commands/Crm/BackfillOpportunityUserFromAccountCommand.php | 126 ++++\n app/Console/Commands/Elasticsearch/AsyncUpdateEsActivities.php | 19 -\n app/Console/Commands/Elasticsearch/AsyncUpdateEsEntities.php | 50 +-\n app/Console/Commands/Elasticsearch/ResetAsyncElasticSearchCommand.php | 30 +-\n app/Console/Commands/GeckoExport/GeckoExportParticipantSpeechesCommand.php | 14 +-\n app/Console/Commands/IssueMcpTokenCommand.php | 84 +++\n app/Console/Commands/JiminnyDebugCommand.php | 7 +-\n app/Console/Commands/Tracks/CleanupActivityTracksCommand.php | 2 +-\n app/Console/Kernel.php | 6 +-\n app/Contracts/Services/Calendar/CalendarTrait.php | 80 ++-\n app/Events/AutomatedReports/AutomatedReportGenerated.php | 3 +\n app/Http/Controllers/API/AiCallScoring/AiScorecardController.php | 7 +-\n app/Http/Controllers/API/TeamAiAutomationController.php | 8 +\n app/Http/Controllers/CustomerApi/CustomerApiController.php | 4 +-\n app/Http/Controllers/Kiosk/ActivityController.php | 58 +-\n app/Http/Controllers/Settings/PlaybookController.php | 15 +-\n app/Http/Kernel.php | 23 +\n app/Http/Middleware/McpAuditMiddleware.php | 156 ++++\n app/Http/Middleware/McpTierMiddleware.php | 54 ++\n app/Http/Requests/API/V2/ZapierUploadActivityRequest.php | 28 +-\n app/Jobs/Activity/Import/ImportTwilioVideoSpeechesJob.php | 25 +-\n app/Jobs/Activity/Import/IsActivityReadyForProcessingJob.php | 10 +-\n app/Jobs/Calendar/SetupCalendarSync.php | 21 +-\n app/Jobs/ImportRemoteTrackJob.php | 96 ++-\n app/Jobs/Mailbox/EmailTextRelay.php | 15 +-\n app/Mcp/Contracts/McpCallRepositoryInterface.php | 30 +\n app/Mcp/DTO/ListCallsFilters.php | 29 +\n app/Mcp/Errors/McpError.php | 123 ++++\n app/Mcp/Repositories/McpActivityHydrator.php | 145 ++++\n app/Mcp/Repositories/McpCallRepository.php | 84 +++\n app/Mcp/Repositories/McpElasticCallRepository.php | 171 +++++\n app/Mcp/Servers/JiminnyServer.php | 38 +\n app/Mcp/Tools/ListCallsTool.php | 205 ++++++\n app/Models/Activity.php | 10 +-\n app/Models/Activity/Transcription.php | 17 +-\n app/Models/ElasticSearch/OpportunityElasticSearchTrait.php | 5 +\n app/Models/Participant.php | 1 +\n app/Providers/AppServiceProvider.php | 22 +\n app/Repositories/Crm/ContactRepository.php | 69 +-\n app/Repositories/ParticipantSpeechRepository.php | 13 +-\n app/Services/Activity/ParticipantsService.php | 19 +-\n app/Services/Activity/Twilio/S3RecordingCredentialsService.php | 82 +++\n app/Services/ActivityService.php | 21 +-\n app/Services/Calendar/CalendarActivityService.php | 46 ++\n app/Services/Calendar/Command/ImportParticipants.php | 1 +\n app/Services/Calendar/Command/MapActivityData.php | 106 +--\n app/Services/Calendar/GoogleCalendarService.php | 12 +-\n app/Services/Crm/Close/Processor/OpportunityProcessor.php | 2 +-\n app/Services/Crm/Close/Service.php | 22 +-\n app/Services/Crm/Copper/Service.php | 12 +-\n app/Services/Crm/Hubspot/Service.php | 154 +++-\n app/Services/Crm/Hubspot/ServiceTraits/OpportunitySyncTrait.php | 88 ++-\n app/Services/Crm/IntegrationApp/ServiceTraits/SyncCrmEntitiesTrait.php | 22 +-\n app/Services/Crm/Pipedrive/Service.php | 17 +-\n app/Services/Crm/Salesforce/Service.php | 42 +-\n app/Services/Mail/Office/EmailApiClient.php | 129 +---\n app/Services/RecallAI/Commands/ScheduleBotCommand.php | 39 +-\n app/Services/RecallAI/RecallAIService.php | 22 +-\n composer.json | 3 +-\n composer.lock | 87 ++-\n config/mcp.php | 23 +\n database/migrations/2026_04_30_120000_create_mcp_audit_log_table.php | 36 +\n docs/mcp/explorer/explorer.html | 697 ++++++++++++++++++\n docs/mcp/explorer/explorer.template.html | 697 ++++++++++++++++++\n docs/mcp/explorer/generate.js | 215 ++++++\n docs/mcp/explorer/tool-explorer-meta.json | 11 +\n docs/mcp/tools-list.json | 2536 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++\n docs/mcp/tools.md | 621 ++++++++++++++++\n front-end/package.json | 4 +-\n front-end/src/components/Settings/OrgSettings/AiAutomation/CrmFilling/TemplateFieldForm.vue | 28 +-\n front-end/src/components/Settings/OrgSettings/Playbooks/AddEditPlaybook.vue | 10 +\n front-end/src/components/playback/comments/ActivityComment.less | 10 +-\n front-end/src/components/shared/PromptTester/PromptTester.vue | 12 +-\n front-end/src/components/shared/__tests__/PromptTester.spec.js | 35 +\n front-end/src/components/shared/modals/EntityPickerModal/__tests__/useEntitiesCache.spec.ts | 37 +\n front-end/src/components/shared/modals/EntityPickerModal/useEntitiesCache.ts | 9 +\n front-end/yarn.lock | 16 +-\n phpstan-baseline.neon | 50 --\n routes/api.php | 11 +\n sonar-project.properties | 91 ++-\n tests/Feature/Component/Nudge/ProcessOrganisationImmediateNudgesJobTest.php | 534 ++++++++++++++\n tests/Feature/Jobs/ImportRemoteTrackJobTest.php | 283 +++++++-\n tests/Feature/Mcp/IssueMcpTokenCommandTest.php | 53 ++\n tests/Feature/Mcp/ListCallsToolElasticFeatureTest.php | 155 ++++\n tests/Feature/Mcp/ListCallsToolFeatureTest.php | 352 ++++++++++\n tests/Feature/Mcp/McpTestHelpersTrait.php | 77 ++\n tests/Feature/Services/Team/TeamDeleteHandlers/Retention/RetentionRepositoryHandlerTest.php | 1 +\n tests/Stubs/SentryStub.php | 18 +\n tests/Unit/Component/ActivityAnalytics/Service/CalculateTalkTimeOffsetFromTranscriptionTest.php | 28 +-\n tests/Unit/Component/AiActivityType/Services/AiActivityTypeEligibilityCheckerTest.php | 103 ++-\n tests/Unit/Component/AiAutomation/Actions/PrepareUpdateDtoActionTest.php | 91 +++\n tests/Unit/Component/AiAutomation/Services/CrmFillingEligibilityCheckerTest.php | 124 ++++\n tests/Unit/Component/AiAutomation/TestCrmAiPromptServiceTest.php | 67 +-\n tests/Unit/Component/AiCallScoring/Services/AiCallScoringEligibilityCheckerTest.php | 55 ++\n tests/Unit/Component/ES/ElasticSearchWorkerManagerTest.php | 135 ----\n tests/Unit/Component/ES/Processor/Actions/LoadDocumentsActionTest.php | 220 ++++++\n tests/Unit/Component/ES/Processor/EntityQueryBuilderTest.php | 21 +-\n tests/Unit/Component/ES/Processor/Traits/SkipActivityTraitTest.php | 51 --\n tests/Unit/Component/ES/Worker/ActivityWorkerTest.php | 174 -----\n tests/Unit/Component/ES/Worker/EntityWorkerTest.php | 97 ---\n tests/Unit/Component/ES/Worker/WorkerAmountTest.php | 116 ---\n tests/Unit/Component/Encoding/Job/AnalyzeTrackChannelsJobTest.php | 52 +-\n tests/Unit/Component/Encoding/Service/GenerateSpeechFromSilenceServiceTest.php | 171 ++---\n tests/Unit/Component/FFMpeg/Services/GetSpeechIntervalsTest.php | 36 +-\n tests/Unit/Component/LanguageDetection/Services/FindSpeechTimeServiceTest.php | 20 +-\n tests/Unit/Component/MobileSettings/MobileSettingsControllerTest.php | 5 +-\n tests/Unit/Component/ParticipantSpeech/Services/ParticipantSpeechesCreatorTest.php | 75 ++\n tests/Unit/Component/ParticipantSpeech/Services/ParticipantSpeechesDeleterTest.php | 63 ++\n tests/Unit/Component/ParticipantSpeech/Services/ParticipantSpeechesProviderTest.php | 134 ++++\n tests/Unit/Component/ParticipantSpeech/Services/ParticipantSpeechesUploaderTest.php | 57 ++\n tests/Unit/Component/Transcription/Diarization/Services/GetNormalizedParticipantSpeechesServiceTest.php | 51 +-\n tests/Unit/Component/Transcription/Diarization/Source/MeetingBotSourceTest.php | 29 +-\n tests/Unit/Contracts/Services/Calendar/CalendarTraitTest.php | 58 +-\n tests/Unit/Http/Controllers/Kiosk/ActivityControllerTest.php | 159 +++++\n tests/Unit/Jobs/Activity/Import/ImportTwilioVideoSpeechesJobTest.php | 22 +-\n tests/Unit/Jobs/Activity/Import/IsActivityReadyForProcessingJobTest.php | 26 +-\n tests/Unit/Jobs/Calendar/SetupCalendarSyncTest.php | 25 -\n tests/Unit/Services/Activity/ParticipantsServiceTest.php | 12 +-\n tests/Unit/Services/Activity/Twilio/S3RecordingCredentialsServiceTest.php | 180 +++++\n tests/Unit/Services/ActivityServiceTest.php | 132 ++++\n tests/Unit/Services/Calendar/CalendarActivityServiceTest.php | 150 +++-\n tests/Unit/Services/Calendar/Command/ImportParticipantsTest.php | 6 +-\n tests/Unit/Services/Calendar/Command/MapActivityDataTest.php | 78 +-\n tests/Unit/Services/Calendar/GoogleCalendarServiceTest.php | 116 +++\n tests/Unit/Services/Crm/Close/ServiceTest.php | 165 +++++\n tests/Unit/Services/Crm/Hubspot/ServiceTest.php | 272 ++++++-\n tests/Unit/Services/Crm/Hubspot/ServiceTraits/OpportunitySyncTest.php | 25 +-\n tests/Unit/Services/Crm/Hubspot/ServiceTraits/OpportunitySyncTraitMatchActivitiesTest.php | 3 +-\n tests/Unit/Services/Crm/IntegrationApp/ServiceTraits/SyncCrmEntitiesTraitOpportunitiesTest.php | 40 ++\n tests/Unit/Services/Crm/Pipedrive/ImportOpportunityMatchActivitiesTest.php | 2 +\n tests/Unit/Services/Crm/Salesforce/ServiceTest.php | 139 ++++\n tests/Unit/Services/Mail/Office/EmailApiClientTest.php | 195 ++---\n tests/Unit/Services/RecallAI/RecallAIServiceTest.php | 24 +-\n 175 files changed, 12562 insertions(+), 2162 deletions(-)\n create mode 120000 CLAUDE.md\n create mode 100644 app/Component/AiAutomation/Services/CrmFillingEligibilityChecker.php\n delete mode 100644 app/Component/ES/ElasticSearchWorkerManager.php\n delete mode 100644 app/Component/ES/Processor/Traits/SkipActivityTrait.php\n delete mode 100644 app/Component/ES/Worker/ActivityWorker.php\n delete mode 100644 app/Component/ES/Worker/EntityWorker.php\n delete mode 100644 app/Component/ES/Worker/WorkerAmount.php\n delete mode 100644 app/Component/ES/Worker/WorkerInterface.php\n create mode 100644 app/Component/ProphetAi/Exceptions/InsufficientTranscriptException.php\n create mode 100644 app/Component/Transcription/DTO/Http/Transcription/AssemblyAI/AssemblyAI/NoAssemblyIdException.php\n create mode 100644 app/Component/Transcription/DTO/Http/Transcription/TranscriptionIsNotCorrectFormatException.php\n create mode 100644 app/Console/Commands/Activities/SetupIntegration/TwilioSetS3RecordingCredentialsCommand.php\n create mode 100644 app/Console/Commands/Crm/BackfillOpportunityUserFromAccountCommand.php\n delete mode 100644 app/Console/Commands/Elasticsearch/AsyncUpdateEsActivities.php\n create mode 100644 app/Console/Commands/IssueMcpTokenCommand.php\n create mode 100644 app/Http/Middleware/McpAuditMiddleware.php\n create mode 100644 app/Http/Middleware/McpTierMiddleware.php\n create mode 100644 app/Mcp/Contracts/McpCallRepositoryInterface.php\n create mode 100644 app/Mcp/DTO/ListCallsFilters.php\n create mode 100644 app/Mcp/Errors/McpError.php\n create mode 100644 app/Mcp/Repositories/McpActivityHydrator.php\n create mode 100644 app/Mcp/Repositories/McpCallRepository.php\n create mode 100644 app/Mcp/Repositories/McpElasticCallRepository.php\n create mode 100644 app/Mcp/Servers/JiminnyServer.php\n create mode 100644 app/Mcp/Tools/ListCallsTool.php\n create mode 100644 app/Services/Activity/Twilio/S3RecordingCredentialsService.php\n create mode 100644 config/mcp.php\n create mode 100644 database/migrations/2026_04_30_120000_create_mcp_audit_log_table.php\n create mode 100644 docs/mcp/explorer/explorer.html\n create mode 100644 docs/mcp/explorer/explorer.template.html\n create mode 100644 docs/mcp/explorer/generate.js\n create mode 100644 docs/mcp/explorer/tool-explorer-meta.json\n create mode 100644 docs/mcp/tools-list.json\n create mode 100644 docs/mcp/tools.md\n create mode 100644 front-end/src/components/shared/modals/EntityPickerModal/__tests__/useEntitiesCache.spec.ts\n create mode 100644 tests/Feature/Component/Nudge/ProcessOrganisationImmediateNudgesJobTest.php\n create mode 100644 tests/Feature/Mcp/IssueMcpTokenCommandTest.php\n create mode 100644 tests/Feature/Mcp/ListCallsToolElasticFeatureTest.php\n create mode 100644 tests/Feature/Mcp/ListCallsToolFeatureTest.php\n create mode 100644 tests/Feature/Mcp/McpTestHelpersTrait.php\n create mode 100644 tests/Stubs/SentryStub.php\n create mode 100644 tests/Unit/Component/AiAutomation/Services/CrmFillingEligibilityCheckerTest.php\n delete mode 100644 tests/Unit/Component/ES/ElasticSearchWorkerManagerTest.php\n create mode 100644 tests/Unit/Component/ES/Processor/Actions/LoadDocumentsActionTest.php\n delete mode 100644 tests/Unit/Component/ES/Processor/Traits/SkipActivityTraitTest.php\n delete mode 100644 tests/Unit/Component/ES/Worker/ActivityWorkerTest.php\n delete mode 100644 tests/Unit/Component/ES/Worker/EntityWorkerTest.php\n delete mode 100644 tests/Unit/Component/ES/Worker/WorkerAmountTest.php\n create mode 100644 tests/Unit/Component/ParticipantSpeech/Services/ParticipantSpeechesCreatorTest.php\n create mode 100644 tests/Unit/Http/Controllers/Kiosk/ActivityControllerTest.php\n create mode 100644 tests/Unit/Services/Activity/Twilio/S3RecordingCredentialsServiceTest.php\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20725-handle-HS-search-rate-limit) $ git status\nOn branch master\nYour branch is behind 'origin/master' by 114 commits, and can be fast-forwarded.\n (use \"git pull\" to update your local branch)\n\nChanges not staged for commit:\n (use \"git add <file>...\" to update what will be committed)\n (use \"git restore <file>...\" to discard changes in working directory)\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tmodified: .env.local\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tmodified: app/Component/SCIM/Constants.php\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tmodified: app/Component/SCIM/ScimProvisioning.php\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tmodified: app/Component/Twilio/Conference/ConferenceManager/SoftPhoneManager.php\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tmodified: app/Console/Commands/JiminnyDebugCommand.php\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tmodified: app/DTO/SCIM/AAD/Request/CoreUserRequest.php\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tmodified: app/DTO/SCIM/AAD/Response/CoreUser.php\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tmodified: app/Services/Telephony/TextMessagingService.php\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tmodified: config/logging.php\n\nUntracked files:\n (use \"git add <file>...\" to include in what will be committed)\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\t.env.nikilocal\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\t.env.other\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tWEBHOOK_FILTERING_IMPLEMENTATION.md\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tapp/Component/SCIM/Mutators/Attributes/User/RoleAttr.php\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tapp/Console/Commands/Crm/Hubspot/SimulateWebhooksCommand.php\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tapp/Console/Commands/Reports/CreateMockAskJiminnyReportResultCommand.php\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tapp/Rules/ListenerRoleCannotHaveAdminOrManagerPermissionRule.php\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tids.txt\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tpublic/favicon.ico\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\traw_sql_query.sql\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\ttests/Unit/Component/SCIM/Mutators/Attributes/User/RoleAttrTest.php\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\ttests/Unit/Policies/CanAccessAiReportsTest.php\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\ttests/Unit/Rules/ListenerRoleCannotHaveAdminOrManagerPermissionRuleTest.php\n\nno changes added to commit (use \"git add\" and/or \"git commit -a\")\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (master) $ git pull\nremote: Enumerating objects: 306, done.\nremote: Counting objects: 100% (299/299), done.\nremote: Compressing objects: 100% (183/183), done.\nremote: Total 306 (delta 213), reused 171 (delta 116), pack-reused 7 (from 1)\nReceiving objects: 100% (306/306), 80.12 KiB | 1000.00 KiB/s, done.\nResolving deltas: 100% (213/213), completed with 53 local objects.\nFrom github.com:jiminny/app\n 90bca4e4b2..5604af40cf master -> origin/master\n 4e7078fd8b..0b8343d179 JY-18091-upgrade-to-php-8-5 -> origin/JY-18091-upgrade-to-php-8-5\n 098eeaa087..d5a447e492 JY-20613-allow-owner-role-on-team-setup -> origin/JY-20613-allow-owner-role-on-team-setup\n c3a76ace91..af65249d0f JY-20749-user-can-view-recorded-meetings -> origin/JY-20749-user-can-view-recorded-meetings\n d94a285ae7..7ce96cb5fe JY-20808-low-priority-indexing-queue -> origin/JY-20808-low-priority-indexing-queue\n * [new branch] JY-20842-remove-partial-updater -> origin/JY-20842-remove-partial-updater\n * [new branch] JY-20920-fix-participant-flip -> origin/JY-20920-fix-participant-flip\n * [new branch] secfix/npm-20260519 -> origin/secfix/npm-20260519\nUpdating cb4ebf0c36..5604af40cf\nFast-forward\n app/Component/ES/ChunkSize.php | 54 +++++++++++++++++++\n app/Component/ES/Processor/DTOs/SelectionList.php | 4 +-\n app/Component/ES/Processor/TargetEntitiesSelector.php | 19 ++++---\n app/Component/MeetingBot/Service/ParticipantMatcher.php | 46 ++++++++++++----\n app/Exceptions/RateLimitException.php | 19 ++++++-\n app/Http/Middleware/McpTierMiddleware.php | 27 ++--------\n app/Jobs/Crm/MatchActivityCrmData.php | 47 ++++++++++++----\n app/Jobs/Middleware/HandleHubspotRateLimit.php | 42 +++++++++++++++\n app/Mcp/Servers/JiminnyServer.php | 2 +\n app/Mcp/Tools/GetMeTool.php | 157 +++++++++++++++++++++++++++++++++++++++++++++++++++++\n app/Models/Feature/FeatureEnum.php | 1 +\n app/Services/Activity/HubSpot/ProviderResolver.php | 4 +-\n app/Services/Activity/HubSpot/ProviderResolverInterface.php | 2 +-\n app/Services/Activity/HubSpot/Providers/Provider.php | 2 +-\n app/Services/Activity/HubSpot/Providers/ProviderKixie.php | 2 +-\n app/Services/Activity/HubSpot/Providers/ProviderOrum.php | 2 +-\n app/Services/Activity/HubSpot/Providers/ProviderTwilio.php | 2 +-\n app/Services/Activity/HubSpot/Providers/ProviderTwilioFlex.php | 5 +-\n app/Services/Activity/HubSpot/Service.php | 97 +++++++++++++++++++++++++++------\n app/Services/Crm/Hubspot/Client.php | 132 +++++++++++++++++++++++++++++++++++++++++++++\n app/Services/Crm/Hubspot/HubspotClientInterface.php | 15 ++++++\n app/Services/Crm/Hubspot/Pagination/HubspotPaginationService.php | 21 ++++----\n app/Services/Crm/Hubspot/Pagination/PaginationState.php | 2 +-\n database/migrations/2026_05_13_124153_create_mcp_feature_flag.php | 25 +++++++++\n tests/Feature/Mcp/GetMeToolFeatureTest.php | 140 +++++++++++++++++++++++++++++++++++++++++++++++\n tests/Feature/Mcp/ListCallsToolFeatureTest.php | 2 +-\n tests/Feature/Mcp/McpTestHelpersTrait.php | 19 ++++++-\n tests/Unit/Component/ES/ChunkSizeTest.php | 50 +++++++++++++++++\n tests/Unit/Component/ES/Processor/DTOs/SelectionListTest.php | 27 +++++++---\n tests/Unit/Component/ES/Processor/TargetEntitiesSelectorTest.php | 39 ++++++++------\n tests/Unit/Component/MeetingBot/Service/ParticipantMatcherTest.php | 68 ++++++++++++++++++++++-\n tests/Unit/Exceptions/RateLimitExceptionTest.php | 56 +++++++++++++++++++\n tests/Unit/Jobs/Crm/MatchActivityCrmDataTest.php | 8 +--\n tests/Unit/Jobs/Middleware/HandleHubspotRateLimitTest.php | 151 +++++++++++++++++++++++++++++++++++++++++++++++++++\n tests/Unit/Services/Activity/HubSpot/ServiceTest.php | 109 +++++++++++++++++++++++++++++++++++++\n tests/Unit/Services/Crm/Hubspot/ClientTest.php | 250 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++\n tests/Unit/Services/Crm/Hubspot/Pagination/HubspotPaginationServiceTest.php | 283 +++++++++++++++++++++---------------------------------------------------------------------------\n 37 files changed, 1587 insertions(+), 344 deletions(-)\n create mode 100644 app/Component/ES/ChunkSize.php\n create mode 100644 app/Jobs/Middleware/HandleHubspotRateLimit.php\n create mode 100644 app/Mcp/Tools/GetMeTool.php\n create mode 100644 database/migrations/2026_05_13_124153_create_mcp_feature_flag.php\n create mode 100644 tests/Feature/Mcp/GetMeToolFeatureTest.php\n create mode 100644 tests/Unit/Component/ES/ChunkSizeTest.php\n create mode 100644 tests/Unit/Exceptions/RateLimitExceptionTest.php\n create mode 100644 tests/Unit/Jobs/Middleware/HandleHubspotRateLimitTest.php\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (master) $ git pull\nAlready up to date.\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (master) $ co -b JY-20676-delete-report-related-objects\nSwitched to a new branch 'JY-20676-delete-report-related-objects'\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20676-delete-report-related-objects) $ csfix\ndocker exec -it docker_lamp_1 ./vendor/bin/php-cs-fixer fix --config=.php-cs-fixer.dist.php -v --using-cache=no --diff \nPHP CS Fixer 3.87.1 Alexander by Fabien Potencier, Dariusz Ruminski and contributors.\nPHP runtime: 8.3.30\nRunning analysis on 7 cores with 10 files per process.\nParallel runner is an experimental feature and may be unstable, use it at your own risk. Feedback highly appreciated!\nLoaded config default from \".php-cs-fixer.dist.php\".\n 5690/5690 [▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓] 100%\n\n 1) app/Console/Commands/JiminnyDebugCommand.php (statement_indentation, blank_line_before_statement)\n ---------- begin diff ----------\n--- /home/jiminny/app/Console/Commands/JiminnyDebugCommand.php\n+++ /home/jiminny/app/Console/Commands/JiminnyDebugCommand.php\n@@ -23,6 +23,7 @@\n \n if ($action === 'redis-set') {\n $this->testRedisSet();\n+\n return;\n }\n \n@@ -45,7 +46,7 @@\n $ttl = 60;\n \n try {\n-// $result = Redis::set($testKey, $testValue, 'EX', $ttl, 'NX');\n+ // $result = Redis::set($testKey, $testValue, 'EX', $ttl, 'NX');\n $result = Redis::set($testKey, $testValue, ['nx', 'ex' => $ttl]);\n \n if ($result) {\n\n ----------- end diff -----------\n\n\nFixed 1 of 5690 files in 50.673 seconds, 67.00 MB memory used\n\nWhat's next:\n Try Docker Debug for seamless, persistent debugging tools in any container or image → docker debug docker_lamp_1\n Learn more at https://docs.docker.com/go/debug-cli/\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20676-delete-report-related-objects) $ ;xd\ndocker exec -it docker_lamp_1 bash -c \"mv /usr/local/etc/php/conf.d/xdebug.ini ~/xdebug.ini\"\n\nWhat's next:\n Try Docker Debug for seamless, persistent debugging tools in any container or image → docker debug docker_lamp_1\n Learn more at https://docs.docker.com/go/debug-cli/\ndocker exec -it docker_lamp_1 supervisorctl restart all\njiminny-worker-processing-2:jiminny-worker-processing-2_00: stopped\njiminny-worker-processing-3:jiminny-worker-processing-3_00: stopped\njiminny-worker-processing-4:jiminny-worker-processing-4_00: stopped\njiminny-worker-processing-5:jiminny-worker-processing-5_00: stopped\njiminny-worker-processing-delayed:jiminny-worker-processing-delayed_00: stopped\nworker-analytics:worker-analytics_00: stopped\nworker-crm-update:worker-crm-update_00: stopped\nworker-download:worker-download_00: stopped\nworker-nudges:worker-nudges_00: stopped\nworker-calendar:worker-calendar_00: stopped\nworker-audio:worker-audio_00: stopped\njiminny-worker-processing-1:jiminny-worker-processing-1_00: stopped\nworker:worker_00: stopped\nworker-conferences:worker-conferences_00: stopped\nworker-crm-sync:worker-crm-sync_00: stopped\nworker-emails:worker-emails_00: stopped\nworker-es-update:worker-es-update_00: stopped\nartisan-schedule:artisan-schedule_00: stopped\nartisan-schedule:artisan-schedule_00: started\njiminny-worker-processing-1:jiminny-worker-processing-1_00: started\njiminny-worker-processing-2:jiminny-worker-processing-2_00: started\njiminny-worker-processing-3:jiminny-worker-processing-3_00: started\njiminny-worker-processing-4:jiminny-worker-processing-4_00: started\njiminny-worker-processing-5:jiminny-worker-processing-5_00: started\njiminny-worker-processing-delayed:jiminny-worker-processing-delayed_00: started\nworker:worker_00: started\nworker-analytics:worker-analytics_00: started\nworker-audio:worker-audio_00: started\nworker-calendar:worker-calendar_00: started\nworker-conferences:worker-conferences_00: started\nworker-crm-sync:worker-crm-sync_00: started\nworker-crm-update:worker-crm-update_00: started\nworker-download:worker-download_00: started\nworker-emails:worker-emails_00: started\nworker-es-update:worker-es-update_00: started\nworker-nudges:worker-nudges_00: started\n\nWhat's next:\n Try Docker Debug for seamless, persistent debugging tools in any container or image → docker debug docker_lamp_1\n Learn more at https://docs.docker.com/go/debug-cli/\ndocker exec -it docker_lamp_1 php -v\nPHP 8.3.30 (cli) (built: Mar 16 2026 22:32:32) (NTS)\nCopyright (c) The PHP Group\nZend Engine v4.3.30, Copyright (c) Zend Technologies\n with Zend OPcache v8.3.30, Copyright (c), by Zend Technologies\n\nWhat's next:\n Try Docker Debug for seamless, persistent debugging tools in any container or image → docker debug docker_lamp_1\n Learn more at https://docs.docker.com/go/debug-cli/\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20676-delete-report-related-objects) $ git status\nOn branch JY-20676-delete-report-related-objects\nChanges not staged for commit:\n (use \"git add <file>...\" to update what will be committed)\n (use \"git restore <file>...\" to discard changes in working directory)\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tmodified: .env.local\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tmodified: app/Console/Commands/JiminnyDebugCommand.php\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tmodified: config/logging.php\n\nUntracked files:\n (use \"git add <file>...\" to include in what will be committed)\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\t.env.nikilocal\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\t.env.other\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tWEBHOOK_FILTERING_IMPLEMENTATION.md\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tapp/Console/Commands/Crm/Hubspot/SimulateWebhooksCommand.php\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tapp/Console/Commands/Reports/CreateMockAskJiminnyReportResultCommand.php\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tids.txt\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tpublic/favicon.ico\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\traw_sql_query.sql\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\ttests/Unit/Policies/CanAccessAiReportsTest.php\n\nno changes added to commit (use \"git add\" and/or \"git commit -a\")\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20676-delete-report-related-objects) $ git push -u origin JY-20676-delete-report-related-objects\nEnumerating objects: 45, done.\nCounting objects: 100% (45/45), done.\nDelta compression using up to 8 threads\nCompressing objects: 100% (24/24), done.\nWriting objects: 100% (24/24), 3.62 KiB | 3.62 MiB/s, done.\nTotal 24 (delta 19), reused 0 (delta 0), pack-reused 0\nremote: Resolving deltas: 100% (19/19), completed with 19 local objects.\nremote: \nremote: Create a pull request for 'JY-20676-delete-report-related-objects' on GitHub by visiting:\nremote: https://github.com/jiminny/app/pull/new/JY-20676-delete-report-related-objects\nremote: \nTo github.com:jiminny/app.git\n * [new branch] JY-20676-delete-report-related-objects -> JY-20676-delete-report-related-objects\nbranch 'JY-20676-delete-report-related-objects' set up to track 'origin/JY-20676-delete-report-related-objects'.\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20676-delete-report-related-objects) $ csfix\ndocker exec -it docker_lamp_1 ./vendor/bin/php-cs-fixer fix --config=.php-cs-fixer.dist.php -v --using-cache=no --diff \nPHP CS Fixer 3.87.1 Alexander by Fabien Potencier, Dariusz Ruminski and contributors.\nPHP runtime: 8.3.30\nRunning analysis on 7 cores with 10 files per process.\nParallel runner is an experimental feature and may be unstable, use it at your own risk. Feedback highly appreciated!\nLoaded config default from \".php-cs-fixer.dist.php\".\n 5690/5690 [▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓] 100%\n\n 1) app/Http/Controllers/API/V2/AskJiminnyReportsController.php (blank_line_before_statement)\n ---------- begin diff ----------\n--- /home/jiminny/app/Http/Controllers/API/V2/AskJiminnyReportsController.php\n+++ /home/jiminny/app/Http/Controllers/API/V2/AskJiminnyReportsController.php\n@@ -140,6 +140,7 @@\n if ($enabled && $report->isAskJiminnyReport() && ! $report->canExecute()) {\n $error = 'This report is missing a saved search or prompt. ' .\n 'Edit the report to complete the setup before enabling it.';\n+\n return new JsonResponse(\n ['error' => $error],\n Response::HTTP_UNPROCESSABLE_ENTITY\n\n ----------- end diff -----------\n\n\nFixed 1 of 5690 files in 71.757 seconds, 60.00 MB memory used\n\nWhat's next:\n Try Docker Debug for seamless, persistent debugging tools in any container or image → docker debug docker_lamp_1\n Learn more at https://docs.docker.com/go/debug-cli/\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20676-delete-report-related-objects) $ git pull\nremote: Enumerating objects: 158, done.\nremote: Counting objects: 100% (103/103), done.\nremote: Compressing objects: 100% (37/37), done.\nremote: Total 158 (delta 80), reused 74 (delta 66), pack-reused 55 (from 3)\nReceiving objects: 100% (158/158), 80.59 KiB | 982.00 KiB/s, done.\nResolving deltas: 100% (85/85), completed with 45 local objects.\nFrom github.com:jiminny/app\n 02a33811ee..c6ce5e2440 JY-20676-delete-report-related-objects -> origin/JY-20676-delete-report-related-objects\n 7ce96cb5fe..6c59f04358 JY-20808-low-priority-indexing-queue -> origin/JY-20808-low-priority-indexing-queue\n 3906a9238a..2b5e6ea62b JY-20835-mcp-enable-users-to-get-a-list-of-deals-and-their-details -> origin/JY-20835-mcp-enable-users-to-get-a-list-of-deals-and-their-details\n 5604af40cf..ea3519f0e2 master -> origin/master\n * [new branch] switch-eu-assembly -> origin/switch-eu-assembly\nUpdating 02a33811ee..c6ce5e2440\nFast-forward\n app/Component/ES/ElasticSearchDocumentPartialUpdater.php | 48 ---\n app/Component/ParticipantSpeech/Services/ParticipantAttributionService.php | 4 +-\n app/Component/Settings/AutoScoring/Services/UpdateAutoScoreService.php | 20 +-\n app/Component/Transcription/Service/StorageService.php | 8 +-\n front-end/package.json | 2 +-\n front-end/src/components/DealInsights/Modals/AskAnythingModal.vue | 23 ++\n front-end/src/components/shared/AskAnything/AskAnythingPromptFormItem.vue | 2 +\n front-end/src/components/shared/AskAnything/AskAnythingSettingsDrawer.vue | 23 +-\n front-end/src/components/shared/AskAnything/__mocks__/AskAnythingSettingsDrawer.mocks.js | 1 +\n front-end/src/components/shared/AskAnything/__tests__/AskAnythingSettingsDrawer.spec.js | 135 ++++---\n front-end/src/components/shared/AskAnything/__tests__/__snapshots__/AskAnythingSettingsDrawer.spec.js.html | 1235 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++\n front-end/src/components/shared/AskAnything/__tests__/__snapshots__/AskAnythingSettingsDrawer.spec.js.snap | 1382 ----------------------------------------------------------------\n front-end/src/components/shared/AskAnything/prompts.js | 1 +\n front-end/src/components/shared/AskAnything/useAskAnything.js | 1 +\n front-end/yarn.lock | 8 +-\n tests/Unit/Component/ES/ElasticSearchDocumentPartialUpdaterTest.php | 42 --\n tests/Unit/Component/Settings/AutoScoring/Services/UpdateAutoScoreServiceTest.php | 86 ++--\n tests/Unit/Component/Transcription/Service/StorageServiceTest.php | 29 +-\n 18 files changed, 1448 insertions(+), 1602 deletions(-)\n delete mode 100644 app/Component/ES/ElasticSearchDocumentPartialUpdater.php\n create mode 100644 front-end/src/components/shared/AskAnything/__tests__/__snapshots__/AskAnythingSettingsDrawer.spec.js.html\n delete mode 100644 front-end/src/components/shared/AskAnything/__tests__/__snapshots__/AskAnythingSettingsDrawer.spec.js.snap\n delete mode 100644 tests/Unit/Component/ES/ElasticSearchDocumentPartialUpdaterTest.php\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20676-delete-report-related-objects) $ csfix\ndocker exec -it docker_lamp_1 ./vendor/bin/php-cs-fixer fix --config=.php-cs-fixer.dist.php -v --using-cache=no --diff \nPHP CS Fixer 3.87.1 Alexander by Fabien Potencier, Dariusz Ruminski and contributors.\nPHP runtime: 8.3.30\nRunning analysis on 7 cores with 10 files per process.\nParallel runner is an experimental feature and may be unstable, use it at your own risk. Feedback highly appreciated!\nLoaded config default from \".php-cs-fixer.dist.php\".\n 5688/5688 [▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓] 100%\n\n\nFixed 0 of 5688 files in 79.904 seconds, 60.00 MB memory used\n\nWhat's next:\n Try Docker Debug for seamless, persistent debugging tools in any container or image → docker debug docker_lamp_1\n Learn more at https://docs.docker.com/go/debug-cli/\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20676-delete-report-related-objects) $","is_focused":true},{"role":"AXRadioButton","text":"DOCKER","depth":2,"bounds":{"left":0.0,"top":0.05888889,"width":0.19826388,"height":0.026666667},"on_screen":true,"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.004166667,"top":0.06333333,"width":0.011111111,"height":0.017777778},"on_screen":true,"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"DEV (docker)","depth":2,"bounds":{"left":0.19826388,"top":0.05888889,"width":0.19826388,"height":0.026666667},"on_screen":true,"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.20243056,"top":0.06333333,"width":0.011111111,"height":0.017777778},"on_screen":true,"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"APP (-zsh)","depth":2,"bounds":{"left":0.39652777,"top":0.05888889,"width":0.19791667,"height":0.026666667},"on_screen":true,"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.40069443,"top":0.06333333,"width":0.011111111,"height":0.017777778},"on_screen":true,"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"screenpipe\"","depth":2,"bounds":{"left":0.59444445,"top":0.05888889,"width":0.19791667,"height":0.026666667},"on_screen":true,"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.5986111,"top":0.06333333,"width":0.011111111,"height":0.017777778},"on_screen":true,"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"-zsh","depth":2,"bounds":{"left":0.79236114,"top":0.05888889,"width":0.19791667,"height":0.026666667},"on_screen":true,"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.7965278,"top":0.06333333,"width":0.011111111,"height":0.017777778},"on_screen":true,"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"⌥⌘1","depth":1,"bounds":{"left":0.9618056,"top":0.032222223,"width":0.038194418,"height":0.018888889},"on_screen":true,"automation_id":"_NS:8","role_description":"text"},{"role":"AXStaticText","text":"APP (-zsh)","depth":1,"bounds":{"left":0.47777778,"top":0.033333335,"width":0.05138889,"height":0.017777778},"on_screen":true,"role_description":"text"}]...
|
2802650493718167367
|
-1358120912881272742
|
idle
|
accessibility
|
NULL
|
Last login: Mon May 18 09:17:28 on ttys007
Poetry Last login: Mon May 18 09:17:28 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 (pipedrive-sdk-poc) $ co master
error: Your local changes to the following files would be overwritten by checkout:
PIPEDRIVE_V2_MIGRATION_TICKETS.md
Please commit your changes or stash them before you switch branches.
Aborting
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (pipedrive-sdk-poc) $ git pull
remote: Enumerating objects: 1047, done.
remote: Counting objects: 100% (832/832), done.
remote: Compressing objects: 100% (298/298), done.
remote: Total 1047 (delta 634), reused 596 (delta 534), pack-reused 215 (from 3)
Receiving objects: 100% (1047/1047), 353.16 KiB | 1.56 MiB/s, done.
Resolving deltas: 100% (687/687), completed with 107 local objects.
From github.com:jiminny/app
907c54896c..34656c53ed pipedrive-sdk-poc -> origin/pipedrive-sdk-poc
03325ec50f..4e7078fd8b JY-18091-upgrade-to-php-8-5 -> origin/JY-18091-upgrade-to-php-8-5
e7d231e163..bc6a3fce6b JY-20725-handle-HS-search-rate-limit -> origin/JY-20725-handle-HS-search-rate-limit
* [new branch] JY-20749-user-can-view-recorded-meetings -> origin/JY-20749-user-can-view-recorded-meetings
98ca281a04..e0351be069 JY-20808-low-priority-indexing-queue -> origin/JY-20808-low-priority-indexing-queue
569abb5149..3906a9238a JY-20835-mcp-enable-users-to-get-a-list-of-deals-and-their-details -> origin/JY-20835-mcp-enable-users-to-get-a-list-of-deals-and-their-details
ad6c2a86e8..50eb6afba9 JY-20846-mcp-enable-the-ai-to-know-details-about-the-user -> origin/JY-20846-mcp-enable-the-ai-to-know-details-about-the-user
* [new branch] JY-20893-chunk-control-per-update-target -> origin/JY-20893-chunk-control-per-update-target
31c62924a5..cb4ebf0c36 master -> origin/master
Updating 907c54896c..34656c53ed
Fast-forward
PIPEDRIVE_V2_MIGRATION_TICKETS.md | 52 ++++++++++++++++++++++++++++++++++++++++++++++++++++
1 file changed, 52 insertions(+)
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (pipedrive-sdk-poc) $ co master
M .env.local
M config/logging.php
Switched to branch 'master'
Your branch is behind 'origin/master' by 31 commits, and can be fast-forwarded.
(use "git pull" to update your local branch)
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (master) $ git pull
Updating 31c62924a5..cb4ebf0c36
Fast-forward
app/Component/ES/Processor/Traits/SelectEntityListTrait.php | 20 ------
app/Services/Calendar/CalendarActivityService.php | 46 +++++++++++++
app/Services/Calendar/Command/MapActivityData.php | 106 +++-------------------------
docs/mcp/explorer/explorer.html | 104 +++++++++++++++++++++++++---
docs/mcp/explorer/explorer.template.html | 102 ++++++++++++++++++++++++---
docs/mcp/tools-list.json | 373 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++-------
docs/mcp/tools.md | 117 +++++++++++++++++++++++--------
tests/Unit/Component/ES/AsyncUpdateElasticSearchTest.php | 16 +----
tests/Unit/Component/ES/Listeners/UpdateMultipleTargetsListenerTest.php | 10 ---
tests/Unit/Component/ES/Listeners/UpdateSingleTargetListenerTest.php | 6 --
tests/Unit/Component/ES/Processor/TargetEntitiesSelectorTest.php | 9 ---
tests/Unit/Component/ES/Processor/Traits/SelectEntityListTraitTest.php | 15 ++--
tests/Unit/Component/ES/UpdateProcessManagerTest.php | 2 -
tests/Unit/Services/Calendar/CalendarActivityServiceTest.php | 150 ++++++++++++++++++++++++++++++++++++++--
tests/Unit/Services/Calendar/Command/MapActivityDataTest.php | 78 ++-------------------
15 files changed, 832 insertions(+), 322 deletions(-)
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (master) $ co -b JY-20613-allow-owner-role-on-team-setup
Switched to a new branch 'JY-20613-allow-owner-role-on-team-setup'
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20613-allow-owner-role-on-team-setup) $ csfix
docker exec -it docker_lamp_1 ./vendor/bin/php-cs-fixer fix --config=.php-cs-fixer.dist.php -v --using-cache=no --diff
PHP CS Fixer 3.87.1 Alexander by Fabien Potencier, Dariusz Ruminski and contributors.
PHP runtime: 8.3.30
Running 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!
Loaded config default from ".php-cs-fixer.dist.php".
5682/5682 [▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓] 100%
Fixed 0 of 5682 files in 56.978 seconds, 67.00 MB memory used
What's next:
Try Docker Debug for seamless, persistent debugging tools in any container or image → docker debug docker_lamp_1
Learn more at [URL_WITH_CREDENTIALS] ~/jiminny/app (JY-20613-allow-owner-role-on-team-setup) $ csfix
docker exec -it docker_lamp_1 ./vendor/bin/php-cs-fixer fix --config=.php-cs-fixer.dist.php -v --using-cache=no --diff
PHP CS Fixer 3.87.1 Alexander by Fabien Potencier, Dariusz Ruminski and contributors.
PHP runtime: 8.3.30
Running 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!
Loaded config default from ".php-cs-fixer.dist.php".
5682/5682 [▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓] 100%
Fixed 0 of 5682 files in 49.910 seconds, 60.00 MB memory used
What's next:
Try Docker Debug for seamless, persistent debugging tools in any container or image → docker debug docker_lamp_1
Learn more at [URL_WITH_CREDENTIALS] ~/jiminny/app (JY-20613-allow-owner-role-on-team-setup) $ git pull
remote: Enumerating objects: 248, done.
remote: Counting objects: 100% (128/128), done.
remote: Compressing objects: 100% (23/23), done.
remote: Total 59 (delta 43), reused 44 (delta 33), pack-reused 0 (from 0)
Unpacking objects: 100% (59/59), 10.48 KiB | 228.00 KiB/s, done.
From github.com:jiminny/app
b7df560451..190239dfd4 JY-20613-allow-owner-role-on-team-setup -> origin/JY-20613-allow-owner-role-on-team-setup
e0351be069..d94a285ae7 JY-20808-low-priority-indexing-queue -> origin/JY-20808-low-priority-indexing-queue
* [new branch] JY-20920-fix-participant-matcher -> origin/JY-20920-fix-participant-matcher
cb4ebf0c36..90bca4e4b2 master -> origin/master
Merge made by the 'ort' strategy.
app/Component/ES/ChunkSize.php | 54 +++++++++++++++++++++++++++
app/Component/ES/Processor/DTOs/SelectionList.php | 4 +-
app/Component/ES/Processor/TargetEntitiesSelector.php | 19 ++++++----
app/Http/Middleware/McpTierMiddleware.php | 27 +++-----------
app/Mcp/Servers/JiminnyServer.php | 2 +
app/Mcp/Tools/GetMeTool.php | 157 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
app/Models/Feature/FeatureEnum.php | 1 +
database/migrations/2026_05_13_124153_create_mcp_feature_flag.php | 25 +++++++++++++
front-end/src/components/Settings/Kiosk/modals/EditTeamModal/EditTeamModal.vue | 52 ++++++++++++++++++--------
front-end/src/components/Settings/Kiosk/modals/EditTeamModal/__tests__/EditTeamModal.spec.js | 14 +++++++
tests/Feature/Mcp/GetMeToolFeatureTest.php | 140 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
tests/Feature/Mcp/ListCallsToolFeatureTest.php | 2 +-
tests/Feature/Mcp/McpTestHelpersTrait.php | 19 +++++++++-
tests/Unit/Component/ES/ChunkSizeTest.php | 50 +++++++++++++++++++++++++
tests/Unit/Component/ES/Processor/DTOs/SelectionListTest.php | 27 ++++++++++----
tests/Unit/Component/ES/Processor/TargetEntitiesSelectorTest.php | 39 +++++++++++---------
16 files changed, 557 insertions(+), 75 deletions(-)
create mode 100644 app/Component/ES/ChunkSize.php
create mode 100644 app/Mcp/Tools/GetMeTool.php
create mode 100644 database/migrations/2026_05_13_124153_create_mcp_feature_flag.php
create mode 100644 tests/Feature/Mcp/GetMeToolFeatureTest.php
create mode 100644 tests/Unit/Component/ES/ChunkSizeTest.php
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20613-allow-owner-role-on-team-setup) $ git push
Enumerating objects: 40, done.
Counting objects: 100% (34/34), done.
Delta compression using up to 8 threads
Compressing objects: 100% (18/18), done.
Writing objects: 100% (18/18), 1.58 KiB | 1.58 MiB/s, done.
Total 18 (delta 15), reused 0 (delta 0), pack-reused 0
remote: Resolving deltas: 100% (15/15), completed with 13 local objects.
To github.com:jiminny/app.git
190239dfd4..ec1b261264 JY-20613-allow-owner-role-on-team-setup -> JY-20613-allow-owner-role-on-team-setup
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20613-allow-owner-role-on-team-setup) $ gbr
* JY-20613-allow-owner-role-on-team-setup
pipedrive-sdk-poc
master
JY-20903-update_activity-stage-on-opportunity-change
JY-20904-fix-update-es-on-activity-command
JY-20891-improve-sms-text-relays
JY-20725-handle-HS-search-rate-limit
JY-20818-move-AJ-reports-to-separated-datadog-metric
JY-20773-fix-automated-reports-user-pilot-tracking
JY-20157-AJ-report-not-send-notification
JY-20508-notify-before-AJ-report-expiration
JY-20372-ai-reports-promotion-pages
JY-20352-sync-opportunities-without-a-local-owner-user-id-is-null
JY-20738-debug-AJ-tracking-UP
a
JY-18909-automated-reports-ask-jiminny
JY-20692-fix-integration-app-[API_KEY]
JY-20553-debug-crm-sync-delays
JY-20698-fix-SF-activity-types-on-new-playbook
JY-20543-AJ-report-tracking
JY-20384-handle-auto-sync-with-no-access-to-event-type
JY-20458-ask-jiminny-user-definitions
JY-19666-fix-import-contacts-account-association
JY-19666-HS-import-contacts-and-accounts-batch-job
JY-20458-Ask-Jiminny-Reports
JY-20200-batch-update-CRM-objects-Salesforce
JY-19666-HS-webhooks-add-contact-and-company
JY-20348-trigger-setup-DI-layout-on-team-creation
JY-20326-refactor-info-message-in-command
JY-20317-fix-auto-log-delay-issue-on-all-channels-disabled
JY-20312-remove-on-update-change-last-synced-at-crm-configurations
JY-20306-SF-skip-auto-sync-for-task-based-playbook
JY-20192-remove-deleted-team-from-saved-search-filters
JY-20197-import-opportunity-batch-job
JY-20293-enable-status-field-for-pipedrive-deals
JY-20191-remove-commands-interactive-prompts
JY-20118-change-default-sync-strategy
JY-20183-add-cache-on-auto-log-delay
JY-20197-add-import-opportunity-batch-job
20118-hs-opportunity-make-webhook-strategy-default
JY-20118-make-default-hs-opportunity-sync-strategy-webhook-based
JY-20196-handle-opportunity-without-note
JY-20118-improve-opportunity-import
JY-20189-handle-activity-search-on-deleted-groups
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20613-allow-owner-role-on-team-setup) $ co JY-20725-handle-HS-search-rate-limit
M .env.local
M config/logging.php
Switched to branch 'JY-20725-handle-HS-search-rate-limit'
Your branch is behind 'origin/JY-20725-handle-HS-search-rate-limit' by 439 commits, and can be fast-forwarded.
(use "git pull" to update your local branch)
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20725-handle-HS-search-rate-limit) $ git pull
Updating 0f3e438941..bc6a3fce6b
Fast-forward
.gitignore | 3 +-
.windsurfrules | 168 ++---
CLAUDE.md | 1 +
app/Component/ActivityAnalytics/Service/CalculateTalkTimeOffsetsFromTranscription.php | 24 +-
app/Component/AiActivityType/Services/AiActivityTypeEligibilityChecker.php | 28 +-
app/Component/AiAutomation/Actions/PrepareUpdateDtoAction.php | 32 +-
app/Component/AiAutomation/Services/CrmFillingEligibilityChecker.php | 47 ++
app/Component/AiAutomation/TestCrmAiPromptService.php | 14 +
app/Component/AiCallScoring/Services/AiCallScoringEligibilityChecker.php | 9 +
app/Component/ES/ElasticSearchDocumentPartialUpdater.php | 13 +-
app/Component/ES/ElasticSearchWorkerManager.php | 86 ---
app/Component/ES/Processor/Actions/LoadDocumentsAction.php | 80 +--
app/Component/ES/Processor/EntityQueryBuilder.php | 12 +-
app/Component/ES/Processor/TargetEntitiesSelector.php | 2 +-
app/Component/ES/Processor/Traits/SkipActivityTrait.php | 25 -
app/Component/ES/Repositories/EsResetActivityRepository.php | 11 +-
app/Component/ES/Worker/ActivityWorker.php | 73 --
app/Component/ES/Worker/EntityWorker.php | 44 --
app/Component/ES/Worker/WorkerAmount.php | 60 --
app/Component/ES/Worker/WorkerInterface.php | 15 -
app/Component/ElasticSearch/Contract/Searchable.php | 4 +
app/Component/Encoding/Job/AnalyzeTrackChannelsJob.php | 20 +-
app/Component/Encoding/Service/GenerateSpeechFromSilenceService.php | 85 ++-
app/Component/FFMpeg/Services/GetSpeechIntervalsService.php | 18 +-
app/Component/LanguageDetection/Services/FindSpeechTimeService.php | 22 +-
app/Component/Nudge/Job/ProcessOrganisationImmediateNudgesJob.php | 218 +++++-
app/Component/ParagraphBreaker/Services/TranscriptionParagraphsService.php | 4 +
app/Component/ParticipantSpeech/Services/ParticipantSpeechesCreator.php | 33 +
app/Component/ParticipantSpeech/Services/ParticipantSpeechesDeleter.php | 15 +
app/Component/ParticipantSpeech/Services/ParticipantSpeechesProvider.php | 51 +-
app/Component/ParticipantSpeech/Services/ParticipantSpeechesUploader.php | 36 +
app/Component/ProphetAi/Exceptions/InsufficientTranscriptException.php | 11 +
app/Component/Transcription/DTO/Http/Transcription/AssemblyAI/AssemblyAI/NoAssemblyIdException.php | 11 +
app/Component/Transcription/DTO/Http/Transcription/AssemblyAI/AssemblyAI/SuccessfulResponse.php | 6 +
app/Component/Transcription/DTO/Http/Transcription/TranscriptionIsNotCorrectFormatException.php | 11 +
app/Component/Transcription/Diarization/Services/GetNormalizedParticipantSpeechesService.php | 23 +-
app/Component/Transcription/Diarization/Source/MeetingBotSource.php | 16 +-
app/Component/Transcription/TranscriptionProcessor/TranscriptionProcessor.php | 3 +
app/Console/Commands/Activities/ActivityHardDeleteCommand.php | 4 +-
app/Console/Commands/Activities/Copy.php | 2 +
app/Console/Commands/Activities/SetupIntegration/TwilioSetS3RecordingCredentialsCommand.php | 119 ++++
app/Console/Commands/Activities/UpdateActivityElasticSearchDocumentCommand.php | 10 +-
app/Console/Commands/Crm/BackfillOpportunityUserFromAccountCommand.php | 126 ++++
app/Console/Commands/Elasticsearch/AsyncUpdateEsActivities.php | 19 -
app/Console/Commands/Elasticsearch/AsyncUpdateEsEntities.php | 50 +-
app/Console/Commands/Elasticsearch/ResetAsyncElasticSearchCommand.php | 30 +-
app/Console/Commands/GeckoExport/GeckoExportParticipantSpeechesCommand.php | 14 +-
app/Console/Commands/IssueMcpTokenCommand.php | 84 +++
app/Console/Commands/JiminnyDebugCommand.php | 7 +-
app/Console/Commands/Tracks/CleanupActivityTracksCommand.php | 2 +-
app/Console/Kernel.php | 6 +-
app/Contracts/Services/Calendar/CalendarTrait.php | 80 ++-
app/Events/AutomatedReports/AutomatedReportGenerated.php | 3 +
app/Http/Controllers/API/AiCallScoring/AiScorecardController.php | 7 +-
app/Http/Controllers/API/TeamAiAutomationController.php | 8 +
app/Http/Controllers/CustomerApi/CustomerApiController.php | 4 +-
app/Http/Controllers/Kiosk/ActivityController.php | 58 +-
app/Http/Controllers/Settings/PlaybookController.php | 15 +-
app/Http/Kernel.php | 23 +
app/Http/Middleware/McpAuditMiddleware.php | 156 ++++
app/Http/Middleware/McpTierMiddleware.php | 54 ++
app/Http/Requests/API/V2/ZapierUploadActivityRequest.php | 28 +-
app/Jobs/Activity/Import/ImportTwilioVideoSpeechesJob.php | 25 +-
app/Jobs/Activity/Import/IsActivityReadyForProcessingJob.php | 10 +-
app/Jobs/Calendar/SetupCalendarSync.php | 21 +-
app/Jobs/ImportRemoteTrackJob.php | 96 ++-
app/Jobs/Mailbox/EmailTextRelay.php | 15 +-
app/Mcp/Contracts/McpCallRepositoryInterface.php | 30 +
app/Mcp/DTO/ListCallsFilters.php | 29 +
app/Mcp/Errors/McpError.php | 123 ++++
app/Mcp/Repositories/McpActivityHydrator.php | 145 ++++
app/Mcp/Repositories/McpCallRepository.php | 84 +++
app/Mcp/Repositories/McpElasticCallRepository.php | 171 +++++
app/Mcp/Servers/JiminnyServer.php | 38 +
app/Mcp/Tools/ListCallsTool.php | 205 ++++++
app/Models/Activity.php | 10 +-
app/Models/Activity/Transcription.php | 17 +-
app/Models/ElasticSearch/OpportunityElasticSearchTrait.php | 5 +
app/Models/Participant.php | 1 +
app/Providers/AppServiceProvider.php | 22 +
app/Repositories/Crm/ContactRepository.php | 69 +-
app/Repositories/ParticipantSpeechRepository.php | 13 +-
app/Services/Activity/ParticipantsService.php | 19 +-
app/Services/Activity/Twilio/S3RecordingCredentialsService.php | 82 +++
app/Services/ActivityService.php | 21 +-
app/Services/Calendar/CalendarActivityService.php | 46 ++
app/Services/Calendar/Command/ImportParticipants.php | 1 +
app/Services/Calendar/Command/MapActivityData.php | 106 +--
app/Services/Calendar/GoogleCalendarService.php | 12 +-
app/Services/Crm/Close/Processor/OpportunityProcessor.php | 2 +-
app/Services/Crm/Close/Service.php | 22 +-
app/Services/Crm/Copper/Service.php | 12 +-
app/Services/Crm/Hubspot/Service.php | 154 +++-
app/Services/Crm/Hubspot/ServiceTraits/OpportunitySyncTrait.php | 88 ++-
app/Services/Crm/IntegrationApp/ServiceTraits/SyncCrmEntitiesTrait.php | 22 +-
app/Services/Crm/Pipedrive/Service.php | 17 +-
app/Services/Crm/Salesforce/Service.php | 42 +-
app/Services/Mail/Office/EmailApiClient.php | 129 +---
app/Services/RecallAI/Commands/ScheduleBotCommand.php | 39 +-
app/Services/RecallAI/RecallAIService.php | 22 +-
composer.json | 3 +-
composer.lock | 87 ++-
config/mcp.php | 23 +
database/migrations/2026_04_30_120000_create_mcp_audit_log_table.php | 36 +
docs/mcp/explorer/explorer.html | 697 ++++++++++++++++++
docs/mcp/explorer/explorer.template.html | 697 ++++++++++++++++++
docs/mcp/explorer/generate.js | 215 ++++++
docs/mcp/explorer/tool-explorer-meta.json | 11 +
docs/mcp/tools-list.json | 2536 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
docs/mcp/tools.md | 621 ++++++++++++++++
front-end/package.json | 4 +-
front-end/src/components/Settings/OrgSettings/AiAutomation/CrmFilling/TemplateFieldForm.vue | 28 +-
front-end/src/components/Settings/OrgSettings/Playbooks/AddEditPlaybook.vue | 10 +
front-end/src/components/playback/comments/ActivityComment.less | 10 +-
front-end/src/components/shared/PromptTester/PromptTester.vue | 12 +-
front-end/src/components/shared/__tests__/PromptTester.spec.js | 35 +
front-end/src/components/shared/modals/EntityPickerModal/__tests__/useEntitiesCache.spec.ts | 37 +
front-end/src/components/shared/modals/EntityPickerModal/useEntitiesCache.ts | 9 +
front-end/yarn.lock | 16 +-
phpstan-baseline.neon | 50 --
routes/api.php | 11 +
sonar-project.properties | 91 ++-
tests/Feature/Component/Nudge/ProcessOrganisationImmediateNudgesJobTest.php | 534 ++++++++++++++
tests/Feature/Jobs/ImportRemoteTrackJobTest.php | 283 +++++++-
tests/Feature/Mcp/IssueMcpTokenCommandTest.php | 53 ++
tests/Feature/Mcp/ListCallsToolElasticFeatureTest.php | 155 ++++
tests/Feature/Mcp/ListCallsToolFeatureTest.php | 352 ++++++++++
tests/Feature/Mcp/McpTestHelpersTrait.php | 77 ++
tests/Feature/Services/Team/TeamDeleteHandlers/Retention/RetentionRepositoryHandlerTest.php | 1 +
tests/Stubs/SentryStub.php | 18 +
tests/Unit/Component/ActivityAnalytics/Service/CalculateTalkTimeOffsetFromTranscriptionTest.php | 28 +-
tests/Unit/Component/AiActivityType/Services/AiActivityTypeEligibilityCheckerTest.php | 103 ++-
tests/Unit/Component/AiAutomation/Actions/PrepareUpdateDtoActionTest.php | 91 +++
tests/Unit/Component/AiAutomation/Services/CrmFillingEligibilityCheckerTest.php | 124 ++++
tests/Unit/Component/AiAutomation/TestCrmAiPromptServiceTest.php | 67 +-
tests/Unit/Component/AiCallScoring/Services/AiCallScoringEligibilityCheckerTest.php | 55 ++
tests/Unit/Component/ES/ElasticSearchWorkerManagerTest.php | 135 ----
tests/Unit/Component/ES/Processor/Actions/LoadDocumentsActionTest.php | 220 ++++++
tests/Unit/Component/ES/Processor/EntityQueryBuilderTest.php | 21 +-
tests/Unit/Component/ES/Processor/Traits/SkipActivityTraitTest.php | 51 --
tests/Unit/Component/ES/Worker/ActivityWorkerTest.php | 174 -----
tests/Unit/Component/ES/Worker/EntityWorkerTest.php | 97 ---
tests/Unit/Component/ES/Worker/WorkerAmountTest.php | 116 ---
tests/Unit/Component/Encoding/Job/AnalyzeTrackChannelsJobTest.php | 52 +-
tests/Unit/Component/Encoding/Service/GenerateSpeechFromSilenceServiceTest.php | 171 ++---
tests/Unit/Component/FFMpeg/Services/GetSpeechIntervalsTest.php | 36 +-
tests/Unit/Component/LanguageDetection/Services/FindSpeechTimeServiceTest.php | 20 +-
tests/Unit/Component/MobileSettings/MobileSettingsControllerTest.php | 5 +-
tests/Unit/Component/ParticipantSpeech/Services/ParticipantSpeechesCreatorTest.php | 75 ++
tests/Unit/Component/ParticipantSpeech/Services/ParticipantSpeechesDeleterTest.php | 63 ++
tests/Unit/Component/ParticipantSpeech/Services/ParticipantSpeechesProviderTest.php | 134 ++++
tests/Unit/Component/ParticipantSpeech/Services/ParticipantSpeechesUploaderTest.php | 57 ++
tests/Unit/Component/Transcription/Diarization/Services/GetNormalizedParticipantSpeechesServiceTest.php | 51 +-
tests/Unit/Component/Transcription/Diarization/Source/MeetingBotSourceTest.php | 29 +-
tests/Unit/Contracts/Services/Calendar/CalendarTraitTest.php | 58 +-
tests/Unit/Http/Controllers/Kiosk/ActivityControllerTest.php | 159 +++++
tests/Unit/Jobs/Activity/Import/ImportTwilioVideoSpeechesJobTest.php | 22 +-
tests/Unit/Jobs/Activity/Import/IsActivityReadyForProcessingJobTest.php | 26 +-
tests/Unit/Jobs/Calendar/SetupCalendarSyncTest.php | 25 -
tests/Unit/Services/Activity/ParticipantsServiceTest.php | 12 +-
tests/Unit/Services/Activity/Twilio/S3RecordingCredentialsServiceTest.php | 180 +++++
tests/Unit/Services/ActivityServiceTest.php | 132 ++++
tests/Unit/Services/Calendar/CalendarActivityServiceTest.php | 150 +++-
tests/Unit/Services/Calendar/Command/ImportParticipantsTest.php | 6 +-
tests/Unit/Services/Calendar/Command/MapActivityDataTest.php | 78 +-
tests/Unit/Services/Calendar/GoogleCalendarServiceTest.php | 116 +++
tests/Unit/Services/Crm/Close/ServiceTest.php | 165 +++++
tests/Unit/Services/Crm/Hubspot/ServiceTest.php | 272 ++++++-
tests/Unit/Services/Crm/Hubspot/ServiceTraits/OpportunitySyncTest.php | 25 +-
tests/Unit/Services/Crm/Hubspot/ServiceTraits/OpportunitySyncTraitMatchActivitiesTest.php | 3 +-
tests/Unit/Services/Crm/IntegrationApp/ServiceTraits/SyncCrmEntitiesTraitOpportunitiesTest.php | 40 ++
tests/Unit/Services/Crm/Pipedrive/ImportOpportunityMatchActivitiesTest.php | 2 +
tests/Unit/Services/Crm/Salesforce/ServiceTest.php | 139 ++++
tests/Unit/Services/Mail/Office/EmailApiClientTest.php | 195 ++---
tests/Unit/Services/RecallAI/RecallAIServiceTest.php | 24 +-
175 files changed, 12562 insertions(+), 2162 deletions(-)
create mode 120000 CLAUDE.md
create mode 100644 app/Component/AiAutomation/Services/CrmFillingEligibilityChecker.php
delete mode 100644 app/Component/ES/ElasticSearchWorkerManager.php
delete mode 100644 app/Component/ES/Processor/Traits/SkipActivityTrait.php
delete mode 100644 app/Component/ES/Worker/ActivityWorker.php
delete mode 100644 app/Component/ES/Worker/EntityWorker.php
delete mode 100644 app/Component/ES/Worker/WorkerAmount.php
delete mode 100644 app/Component/ES/Worker/WorkerInterface.php
create mode 100644 app/Component/ProphetAi/Exceptions/InsufficientTranscriptException.php
create mode 100644 app/Component/Transcription/DTO/Http/Transcription/AssemblyAI/AssemblyAI/NoAssemblyIdException.php
create mode 100644 app/Component/Transcription/DTO/Http/Transcription/TranscriptionIsNotCorrectFormatException.php
create mode 100644 app/Console/Commands/Activities/SetupIntegration/TwilioSetS3RecordingCredentialsCommand.php
create mode 100644 app/Console/Commands/Crm/BackfillOpportunityUserFromAccountCommand.php
delete mode 100644 app/Console/Commands/Elasticsearch/AsyncUpdateEsActivities.php
create mode 100644 app/Console/Commands/IssueMcpTokenCommand.php
create mode 100644 app/Http/Middleware/McpAuditMiddleware.php
create mode 100644 app/Http/Middleware/McpTierMiddleware.php
create mode 100644 app/Mcp/Contracts/McpCallRepositoryInterface.php
create mode 100644 app/Mcp/DTO/ListCallsFilters.php
create mode 100644 app/Mcp/Errors/McpError.php
create mode 100644 app/Mcp/Repositories/McpActivityHydrator.php
create mode 100644 app/Mcp/Repositories/McpCallRepository.php
create mode 100644 app/Mcp/Repositories/McpElasticCallRepository.php
create mode 100644 app/Mcp/Servers/JiminnyServer.php
create mode 100644 app/Mcp/Tools/ListCallsTool.php
create mode 100644 app/Services/Activity/Twilio/S3RecordingCredentialsService.php
create mode 100644 config/mcp.php
create mode 100644 database/migrations/2026_04_30_120000_create_mcp_audit_log_table.php
create mode 100644 docs/mcp/explorer/explorer.html
create mode 100644 docs/mcp/explorer/explorer.template.html
create mode 100644 docs/mcp/explorer/generate.js
create mode 100644 docs/mcp/explorer/tool-explorer-meta.json
create mode 100644 docs/mcp/tools-list.json
create mode 100644 docs/mcp/tools.md
create mode 100644 front-end/src/components/shared/modals/EntityPickerModal/__tests__/useEntitiesCache.spec.ts
create mode 100644 tests/Feature/Component/Nudge/ProcessOrganisationImmediateNudgesJobTest.php
create mode 100644 tests/Feature/Mcp/IssueMcpTokenCommandTest.php
create mode 100644 tests/Feature/Mcp/ListCallsToolElasticFeatureTest.php
create mode 100644 tests/Feature/Mcp/ListCallsToolFeatureTest.php
create mode 100644 tests/Feature/Mcp/McpTestHelpersTrait.php
create mode 100644 tests/Stubs/SentryStub.php
create mode 100644 tests/Unit/Component/AiAutomation/Services/CrmFillingEligibilityCheckerTest.php
delete mode 100644 tests/Unit/Component/ES/ElasticSearchWorkerManagerTest.php
create mode 100644 tests/Unit/Component/ES/Processor/Actions/LoadDocumentsActionTest.php
delete mode 100644 tests/Unit/Component/ES/Processor/Traits/SkipActivityTraitTest.php
delete mode 100644 tests/Unit/Component/ES/Worker/ActivityWorkerTest.php
delete mode 100644 tests/Unit/Component/ES/Worker/EntityWorkerTest.php
delete mode 100644 tests/Unit/Component/ES/Worker/WorkerAmountTest.php
create mode 100644 tests/Unit/Component/ParticipantSpeech/Services/ParticipantSpeechesCreatorTest.php
create mode 100644 tests/Unit/Http/Controllers/Kiosk/ActivityControllerTest.php
create mode 100644 tests/Unit/Services/Activity/Twilio/S3RecordingCredentialsServiceTest.php
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20725-handle-HS-search-rate-limit) $ git status
On branch master
Your branch is behind 'origin/master' by 114 commits, and can be fast-forwarded.
(use "git pull" to update your local branch)
Changes not staged for commit:
(use "git add <file>..." to update what will be committed)
(use "git restore <file>..." to discard changes in working directory)
modified: .env.local
modified: app/Component/SCIM/Constants.php
modified: app/Component/SCIM/ScimProvisioning.php
modified: app/Component/Twilio/Conference/ConferenceManager/SoftPhoneManager.php
modified: app/Console/Commands/JiminnyDebugCommand.php
modified: app/DTO/SCIM/AAD/Request/CoreUserRequest.php
modified: app/DTO/SCIM/AAD/Response/CoreUser.php
modified: app/Services/Telephony/TextMessagingService.php
modified: config/logging.php
Untracked files:
(use "git add <file>..." to include in what will be committed)
.env.nikilocal
.env.other
WEBHOOK_FILTERING_IMPLEMENTATION.md
app/Component/SCIM/Mutators/Attributes/User/RoleAttr.php
app/Console/Commands/Crm/Hubspot/SimulateWebhooksCommand.php
app/Console/Commands/Reports/CreateMockAskJiminnyReportResultCommand.php
app/Rules/ListenerRoleCannotHaveAdminOrManagerPermissionRule.php
ids.txt
public/favicon.ico
raw_sql_query.sql
tests/Unit/Component/SCIM/Mutators/Attributes/User/RoleAttrTest.php
tests/Unit/Policies/CanAccessAiReportsTest.php
tests/Unit/Rules/ListenerRoleCannotHaveAdminOrManagerPermissionRuleTest.php
no changes added to commit (use "git add" and/or "git commit -a")
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (master) $ git pull
remote: Enumerating objects: 306, done.
remote: Counting objects: 100% (299/299), done.
remote: Compressing objects: 100% (183/183), done.
remote: Total 306 (delta 213), reused 171 (delta 116), pack-reused 7 (from 1)
Receiving objects: 100% (306/306), 80.12 KiB | 1000.00 KiB/s, done.
Resolving deltas: 100% (213/213), completed with 53 local objects.
From github.com:jiminny/app
90bca4e4b2..5604af40cf master -> origin/master
4e7078fd8b..0b8343d179 JY-18091-upgrade-to-php-8-5 -> origin/JY-18091-upgrade-to-php-8-5
098eeaa087..d5a447e492 JY-20613-allow-owner-role-on-team-setup -> origin/JY-20613-allow-owner-role-on-team-setup
c3a76ace91..af65249d0f JY-20749-user-can-view-recorded-meetings -> origin/JY-20749-user-can-view-recorded-meetings
d94a285ae7..7ce96cb5fe JY-20808-low-priority-indexing-queue -> origin/JY-20808-low-priority-indexing-queue
* [new branch] JY-20842-remove-partial-updater -> origin/JY-20842-remove-partial-updater
* [new branch] JY-20920-fix-participant-flip -> origin/JY-20920-fix-participant-flip
* [new branch] secfix/npm-20260519 -> origin/secfix/npm-20260519
Updating cb4ebf0c36..5604af40cf
Fast-forward
app/Component/ES/ChunkSize.php | 54 +++++++++++++++++++
app/Component/ES/Processor/DTOs/SelectionList.php | 4 +-
app/Component/ES/Processor/TargetEntitiesSelector.php | 19 ++++---
app/Component/MeetingBot/Service/ParticipantMatcher.php | 46 ++++++++++++----
app/Exceptions/RateLimitException.php | 19 ++++++-
app/Http/Middleware/McpTierMiddleware.php | 27 ++--------
app/Jobs/Crm/MatchActivityCrmData.php | 47 ++++++++++++----
app/Jobs/Middleware/HandleHubspotRateLimit.php | 42 +++++++++++++++
app/Mcp/Servers/JiminnyServer.php | 2 +
app/Mcp/Tools/GetMeTool.php | 157 +++++++++++++++++++++++++++++++++++++++++++++++++++++
app/Models/Feature/FeatureEnum.php | 1 +
app/Services/Activity/HubSpot/ProviderResolver.php | 4 +-
app/Services/Activity/HubSpot/ProviderResolverInterface.php | 2 +-
app/Services/Activity/HubSpot/Providers/Provider.php | 2 +-
app/Services/Activity/HubSpot/Providers/ProviderKixie.php | 2 +-
app/Services/Activity/HubSpot/Providers/ProviderOrum.php | 2 +-
app/Services/Activity/HubSpot/Providers/ProviderTwilio.php | 2 +-
app/Services/Activity/HubSpot/Providers/ProviderTwilioFlex.php | 5 +-
app/Services/Activity/HubSpot/Service.php | 97 +++++++++++++++++++++++++++------
app/Services/Crm/Hubspot/Client.php | 132 +++++++++++++++++++++++++++++++++++++++++++++
app/Services/Crm/Hubspot/HubspotClientInterface.php | 15 ++++++
app/Services/Crm/Hubspot/Pagination/HubspotPaginationService.php | 21 ++++----
app/Services/Crm/Hubspot/Pagination/PaginationState.php | 2 +-
database/migrations/2026_05_13_124153_create_mcp_feature_flag.php | 25 +++++++++
tests/Feature/Mcp/GetMeToolFeatureTest.php | 140 +++++++++++++++++++++++++++++++++++++++++++++++
tests/Feature/Mcp/ListCallsToolFeatureTest.php | 2 +-
tests/Feature/Mcp/McpTestHelpersTrait.php | 19 ++++++-
tests/Unit/Component/ES/ChunkSizeTest.php | 50 +++++++++++++++++
tests/Unit/Component/ES/Processor/DTOs/SelectionListTest.php | 27 +++++++---
tests/Unit/Component/ES/Processor/TargetEntitiesSelectorTest.php | 39 ++++++++------
tests/Unit/Component/MeetingBot/Service/ParticipantMatcherTest.php | 68 ++++++++++++++++++++++-
tests/Unit/Exceptions/RateLimitExceptionTest.php | 56 +++++++++++++++++++
tests/Unit/Jobs/Crm/MatchActivityCrmDataTest.php | 8 +--
tests/Unit/Jobs/Middleware/HandleHubspotRateLimitTest.php | 151 +++++++++++++++++++++++++++++++++++++++++++++++++++
tests/Unit/Services/Activity/HubSpot/ServiceTest.php | 109 +++++++++++++++++++++++++++++++++++++
tests/Unit/Services/Crm/Hubspot/ClientTest.php | 250 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
tests/Unit/Services/Crm/Hubspot/Pagination/HubspotPaginationServiceTest.php | 283 +++++++++++++++++++++---------------------------------------------------------------------------
37 files changed, 1587 insertions(+), 344 deletions(-)
create mode 100644 app/Component/ES/ChunkSize.php
create mode 100644 app/Jobs/Middleware/HandleHubspotRateLimit.php
create mode 100644 app/Mcp/Tools/GetMeTool.php
create mode 100644 database/migrations/2026_05_13_124153_create_mcp_feature_flag.php
create mode 100644 tests/Feature/Mcp/GetMeToolFeatureTest.php
create mode 100644 tests/Unit/Component/ES/ChunkSizeTest.php
create mode 100644 tests/Unit/Exceptions/RateLimitExceptionTest.php
create mode 100644 tests/Unit/Jobs/Middleware/HandleHubspotRateLimitTest.php
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (master) $ git pull
Already up to date.
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (master) $ co -b JY-20676-delete-report-related-objects
Switched to a new branch 'JY-20676-delete-report-related-objects'
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20676-delete-report-related-objects) $ csfix
docker exec -it docker_lamp_1 ./vendor/bin/php-cs-fixer fix --config=.php-cs-fixer.dist.php -v --using-cache=no --diff
PHP CS Fixer 3.87.1 Alexander by Fabien Potencier, Dariusz Ruminski and contributors.
PHP runtime: 8.3.30
Running 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!
Loaded config default from ".php-cs-fixer.dist.php".
5690/5690 [▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓] 100%
1) app/Console/Commands/JiminnyDebugCommand.php (statement_indentation, blank_line_before_statement)
---------- begin diff ----------
--- /home/jiminny/app/Console/Commands/JiminnyDebugCommand.php
+++ /home/jiminny/app/Console/Commands/JiminnyDebugCommand.php
@@ -23,6 +23,7 @@
if ($action === 'redis-set') {
$this->testRedisSet();
+
return;
}
@@ -45,7 +46,7 @@
$ttl = 60;
try {
-// $result = Redis::set($testKey, $testValue, 'EX', $ttl, 'NX');
+ // $result = Redis::set($testKey, $testValue, 'EX', $ttl, 'NX');
$result = Redis::set($testKey, $testValue, ['nx', 'ex' => $ttl]);
if ($result) {
----------- end diff -----------
Fixed 1 of 5690 files i...
|
58093
|
NULL
|
NULL
|
NULL
|
|
58107
|
2047
|
4
|
2026-05-19T11:38:18.744788+00:00
|
/Users/lukas/.screenpipe/data/data/2026-05-19/1779 /Users/lukas/.screenpipe/data/data/2026-05-19/1779190698744_m2.jpg...
|
iTerm2
|
APP (-zsh)
|
1
|
NULL
|
monitor_2
|
NULL
|
NULL
|
NULL
|
NULL
|
Last login: Mon May 18 09:17:28 on ttys007
Poetry Last login: Mon May 18 09:17:28 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 (pipedrive-sdk-poc) $ co master
error: Your local changes to the following files would be overwritten by checkout:
PIPEDRIVE_V2_MIGRATION_TICKETS.md
Please commit your changes or stash them before you switch branches.
Aborting
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (pipedrive-sdk-poc) $ git pull
remote: Enumerating objects: 1047, done.
remote: Counting objects: 100% (832/832), done.
remote: Compressing objects: 100% (298/298), done.
remote: Total 1047 (delta 634), reused 596 (delta 534), pack-reused 215 (from 3)
Receiving objects: 100% (1047/1047), 353.16 KiB | 1.56 MiB/s, done.
Resolving deltas: 100% (687/687), completed with 107 local objects.
From github.com:jiminny/app
907c54896c..34656c53ed pipedrive-sdk-poc -> origin/pipedrive-sdk-poc
03325ec50f..4e7078fd8b JY-18091-upgrade-to-php-8-5 -> origin/JY-18091-upgrade-to-php-8-5
e7d231e163..bc6a3fce6b JY-20725-handle-HS-search-rate-limit -> origin/JY-20725-handle-HS-search-rate-limit
* [new branch] JY-20749-user-can-view-recorded-meetings -> origin/JY-20749-user-can-view-recorded-meetings
98ca281a04..e0351be069 JY-20808-low-priority-indexing-queue -> origin/JY-20808-low-priority-indexing-queue
569abb5149..3906a9238a JY-20835-mcp-enable-users-to-get-a-list-of-deals-and-their-details -> origin/JY-20835-mcp-enable-users-to-get-a-list-of-deals-and-their-details
ad6c2a86e8..50eb6afba9 JY-20846-mcp-enable-the-ai-to-know-details-about-the-user -> origin/JY-20846-mcp-enable-the-ai-to-know-details-about-the-user
* [new branch] JY-20893-chunk-control-per-update-target -> origin/JY-20893-chunk-control-per-update-target
31c62924a5..cb4ebf0c36 master -> origin/master
Updating 907c54896c..34656c53ed
Fast-forward
PIPEDRIVE_V2_MIGRATION_TICKETS.md | 52 ++++++++++++++++++++++++++++++++++++++++++++++++++++
1 file changed, 52 insertions(+)
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (pipedrive-sdk-poc) $ co master
M .env.local
M config/logging.php
Switched to branch 'master'
Your branch is behind 'origin/master' by 31 commits, and can be fast-forwarded.
(use "git pull" to update your local branch)
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (master) $ git pull
Updating 31c62924a5..cb4ebf0c36
Fast-forward
app/Component/ES/Processor/Traits/SelectEntityListTrait.php | 20 ------
app/Services/Calendar/CalendarActivityService.php | 46 +++++++++++++
app/Services/Calendar/Command/MapActivityData.php | 106 +++-------------------------
docs/mcp/explorer/explorer.html | 104 +++++++++++++++++++++++++---
docs/mcp/explorer/explorer.template.html | 102 ++++++++++++++++++++++++---
docs/mcp/tools-list.json | 373 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++-------
docs/mcp/tools.md | 117 +++++++++++++++++++++++--------
tests/Unit/Component/ES/AsyncUpdateElasticSearchTest.php | 16 +----
tests/Unit/Component/ES/Listeners/UpdateMultipleTargetsListenerTest.php | 10 ---
tests/Unit/Component/ES/Listeners/UpdateSingleTargetListenerTest.php | 6 --
tests/Unit/Component/ES/Processor/TargetEntitiesSelectorTest.php | 9 ---
tests/Unit/Component/ES/Processor/Traits/SelectEntityListTraitTest.php | 15 ++--
tests/Unit/Component/ES/UpdateProcessManagerTest.php | 2 -
tests/Unit/Services/Calendar/CalendarActivityServiceTest.php | 150 ++++++++++++++++++++++++++++++++++++++--
tests/Unit/Services/Calendar/Command/MapActivityDataTest.php | 78 ++-------------------
15 files changed, 832 insertions(+), 322 deletions(-)
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (master) $ co -b JY-20613-allow-owner-role-on-team-setup
Switched to a new branch 'JY-20613-allow-owner-role-on-team-setup'
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20613-allow-owner-role-on-team-setup) $ csfix
docker exec -it docker_lamp_1 ./vendor/bin/php-cs-fixer fix --config=.php-cs-fixer.dist.php -v --using-cache=no --diff
PHP CS Fixer 3.87.1 Alexander by Fabien Potencier, Dariusz Ruminski and contributors.
PHP runtime: 8.3.30
Running 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!
Loaded config default from ".php-cs-fixer.dist.php".
5682/5682 [▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓] 100%
Fixed 0 of 5682 files in 56.978 seconds, 67.00 MB memory used
What's next:
Try Docker Debug for seamless, persistent debugging tools in any container or image → docker debug docker_lamp_1
Learn more at [URL_WITH_CREDENTIALS] ~/jiminny/app (JY-20613-allow-owner-role-on-team-setup) $ csfix
docker exec -it docker_lamp_1 ./vendor/bin/php-cs-fixer fix --config=.php-cs-fixer.dist.php -v --using-cache=no --diff
PHP CS Fixer 3.87.1 Alexander by Fabien Potencier, Dariusz Ruminski and contributors.
PHP runtime: 8.3.30
Running 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!
Loaded config default from ".php-cs-fixer.dist.php".
5682/5682 [▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓] 100%
Fixed 0 of 5682 files in 49.910 seconds, 60.00 MB memory used
What's next:
Try Docker Debug for seamless, persistent debugging tools in any container or image → docker debug docker_lamp_1
Learn more at [URL_WITH_CREDENTIALS] ~/jiminny/app (JY-20613-allow-owner-role-on-team-setup) $ git pull
remote: Enumerating objects: 248, done.
remote: Counting objects: 100% (128/128), done.
remote: Compressing objects: 100% (23/23), done.
remote: Total 59 (delta 43), reused 44 (delta 33), pack-reused 0 (from 0)
Unpacking objects: 100% (59/59), 10.48 KiB | 228.00 KiB/s, done.
From github.com:jiminny/app
b7df560451..190239dfd4 JY-20613-allow-owner-role-on-team-setup -> origin/JY-20613-allow-owner-role-on-team-setup
e0351be069..d94a285ae7 JY-20808-low-priority-indexing-queue -> origin/JY-20808-low-priority-indexing-queue
* [new branch] JY-20920-fix-participant-matcher -> origin/JY-20920-fix-participant-matcher
cb4ebf0c36..90bca4e4b2 master -> origin/master
Merge made by the 'ort' strategy.
app/Component/ES/ChunkSize.php | 54 +++++++++++++++++++++++++++
app/Component/ES/Processor/DTOs/SelectionList.php | 4 +-
app/Component/ES/Processor/TargetEntitiesSelector.php | 19 ++++++----
app/Http/Middleware/McpTierMiddleware.php | 27 +++-----------
app/Mcp/Servers/JiminnyServer.php | 2 +
app/Mcp/Tools/GetMeTool.php | 157 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
app/Models/Feature/FeatureEnum.php | 1 +
database/migrations/2026_05_13_124153_create_mcp_feature_flag.php | 25 +++++++++++++
front-end/src/components/Settings/Kiosk/modals/EditTeamModal/EditTeamModal.vue | 52 ++++++++++++++++++--------
front-end/src/components/Settings/Kiosk/modals/EditTeamModal/__tests__/EditTeamModal.spec.js | 14 +++++++
tests/Feature/Mcp/GetMeToolFeatureTest.php | 140 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
tests/Feature/Mcp/ListCallsToolFeatureTest.php | 2 +-
tests/Feature/Mcp/McpTestHelpersTrait.php | 19 +++++++++-
tests/Unit/Component/ES/ChunkSizeTest.php | 50 +++++++++++++++++++++++++
tests/Unit/Component/ES/Processor/DTOs/SelectionListTest.php | 27 ++++++++++----
tests/Unit/Component/ES/Processor/TargetEntitiesSelectorTest.php | 39 +++++++++++---------
16 files changed, 557 insertions(+), 75 deletions(-)
create mode 100644 app/Component/ES/ChunkSize.php
create mode 100644 app/Mcp/Tools/GetMeTool.php
create mode 100644 database/migrations/2026_05_13_124153_create_mcp_feature_flag.php
create mode 100644 tests/Feature/Mcp/GetMeToolFeatureTest.php
create mode 100644 tests/Unit/Component/ES/ChunkSizeTest.php
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20613-allow-owner-role-on-team-setup) $ git push
Enumerating objects: 40, done.
Counting objects: 100% (34/34), done.
Delta compression using up to 8 threads
Compressing objects: 100% (18/18), done.
Writing objects: 100% (18/18), 1.58 KiB | 1.58 MiB/s, done.
Total 18 (delta 15), reused 0 (delta 0), pack-reused 0
remote: Resolving deltas: 100% (15/15), completed with 13 local objects.
To github.com:jiminny/app.git
190239dfd4..ec1b261264 JY-20613-allow-owner-role-on-team-setup -> JY-20613-allow-owner-role-on-team-setup
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20613-allow-owner-role-on-team-setup) $ gbr
* JY-20613-allow-owner-role-on-team-setup
pipedrive-sdk-poc
master
JY-20903-update_activity-stage-on-opportunity-change
JY-20904-fix-update-es-on-activity-command
JY-20891-improve-sms-text-relays
JY-20725-handle-HS-search-rate-limit
JY-20818-move-AJ-reports-to-separated-datadog-metric
JY-20773-fix-automated-reports-user-pilot-tracking
JY-20157-AJ-report-not-send-notification
JY-20508-notify-before-AJ-report-expiration
JY-20372-ai-reports-promotion-pages
JY-20352-sync-opportunities-without-a-local-owner-user-id-is-null
JY-20738-debug-AJ-tracking-UP
a
JY-18909-automated-reports-ask-jiminny
JY-20692-fix-integration-app-[API_KEY]
JY-20553-debug-crm-sync-delays
JY-20698-fix-SF-activity-types-on-new-playbook
JY-20543-AJ-report-tracking
JY-20384-handle-auto-sync-with-no-access-to-event-type
JY-20458-ask-jiminny-user-definitions
JY-19666-fix-import-contacts-account-association
JY-19666-HS-import-contacts-and-accounts-batch-job
JY-20458-Ask-Jiminny-Reports
JY-20200-batch-update-CRM-objects-Salesforce
JY-19666-HS-webhooks-add-contact-and-company
JY-20348-trigger-setup-DI-layout-on-team-creation
JY-20326-refactor-info-message-in-command
JY-20317-fix-auto-log-delay-issue-on-all-channels-disabled
JY-20312-remove-on-update-change-last-synced-at-crm-configurations
JY-20306-SF-skip-auto-sync-for-task-based-playbook
JY-20192-remove-deleted-team-from-saved-search-filters
JY-20197-import-opportunity-batch-job
JY-20293-enable-status-field-for-pipedrive-deals
JY-20191-remove-commands-interactive-prompts
JY-20118-change-default-sync-strategy
JY-20183-add-cache-on-auto-log-delay
JY-20197-add-import-opportunity-batch-job
20118-hs-opportunity-make-webhook-strategy-default
JY-20118-make-default-hs-opportunity-sync-strategy-webhook-based
JY-20196-handle-opportunity-without-note
JY-20118-improve-opportunity-import
JY-20189-handle-activity-search-on-deleted-groups
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20613-allow-owner-role-on-team-setup) $ co JY-20725-handle-HS-search-rate-limit
M .env.local
M config/logging.php
Switched to branch 'JY-20725-handle-HS-search-rate-limit'
Your branch is behind 'origin/JY-20725-handle-HS-search-rate-limit' by 439 commits, and can be fast-forwarded.
(use "git pull" to update your local branch)
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20725-handle-HS-search-rate-limit) $ git pull
Updating 0f3e438941..bc6a3fce6b
Fast-forward
.gitignore | 3 +-
.windsurfrules | 168 ++---
CLAUDE.md | 1 +
app/Component/ActivityAnalytics/Service/CalculateTalkTimeOffsetsFromTranscription.php | 24 +-
app/Component/AiActivityType/Services/AiActivityTypeEligibilityChecker.php | 28 +-
app/Component/AiAutomation/Actions/PrepareUpdateDtoAction.php | 32 +-
app/Component/AiAutomation/Services/CrmFillingEligibilityChecker.php | 47 ++
app/Component/AiAutomation/TestCrmAiPromptService.php | 14 +
app/Component/AiCallScoring/Services/AiCallScoringEligibilityChecker.php | 9 +
app/Component/ES/ElasticSearchDocumentPartialUpdater.php | 13 +-
app/Component/ES/ElasticSearchWorkerManager.php | 86 ---
app/Component/ES/Processor/Actions/LoadDocumentsAction.php | 80 +--
app/Component/ES/Processor/EntityQueryBuilder.php | 12 +-
app/Component/ES/Processor/TargetEntitiesSelector.php | 2 +-
app/Component/ES/Processor/Traits/SkipActivityTrait.php | 25 -
app/Component/ES/Repositories/EsResetActivityRepository.php | 11 +-
app/Component/ES/Worker/ActivityWorker.php | 73 --
app/Component/ES/Worker/EntityWorker.php | 44 --
app/Component/ES/Worker/WorkerAmount.php | 60 --
app/Component/ES/Worker/WorkerInterface.php | 15 -
app/Component/ElasticSearch/Contract/Searchable.php | 4 +
app/Component/Encoding/Job/AnalyzeTrackChannelsJob.php | 20 +-
app/Component/Encoding/Service/GenerateSpeechFromSilenceService.php | 85 ++-
app/Component/FFMpeg/Services/GetSpeechIntervalsService.php | 18 +-
app/Component/LanguageDetection/Services/FindSpeechTimeService.php | 22 +-
app/Component/Nudge/Job/ProcessOrganisationImmediateNudgesJob.php | 218 +++++-
app/Component/ParagraphBreaker/Services/TranscriptionParagraphsService.php | 4 +
app/Component/ParticipantSpeech/Services/ParticipantSpeechesCreator.php | 33 +
app/Component/ParticipantSpeech/Services/ParticipantSpeechesDeleter.php | 15 +
app/Component/ParticipantSpeech/Services/ParticipantSpeechesProvider.php | 51 +-
app/Component/ParticipantSpeech/Services/ParticipantSpeechesUploader.php | 36 +
app/Component/ProphetAi/Exceptions/InsufficientTranscriptException.php | 11 +
app/Component/Transcription/DTO/Http/Transcription/AssemblyAI/AssemblyAI/NoAssemblyIdException.php | 11 +
app/Component/Transcription/DTO/Http/Transcription/AssemblyAI/AssemblyAI/SuccessfulResponse.php | 6 +
app/Component/Transcription/DTO/Http/Transcription/TranscriptionIsNotCorrectFormatException.php | 11 +
app/Component/Transcription/Diarization/Services/GetNormalizedParticipantSpeechesService.php | 23 +-
app/Component/Transcription/Diarization/Source/MeetingBotSource.php | 16 +-
app/Component/Transcription/TranscriptionProcessor/TranscriptionProcessor.php | 3 +
app/Console/Commands/Activities/ActivityHardDeleteCommand.php | 4 +-
app/Console/Commands/Activities/Copy.php | 2 +
app/Console/Commands/Activities/SetupIntegration/TwilioSetS3RecordingCredentialsCommand.php | 119 ++++
app/Console/Commands/Activities/UpdateActivityElasticSearchDocumentCommand.php | 10 +-
app/Console/Commands/Crm/BackfillOpportunityUserFromAccountCommand.php | 126 ++++
app/Console/Commands/Elasticsearch/AsyncUpdateEsActivities.php | 19 -
app/Console/Commands/Elasticsearch/AsyncUpdateEsEntities.php | 50 +-
app/Console/Commands/Elasticsearch/ResetAsyncElasticSearchCommand.php | 30 +-
app/Console/Commands/GeckoExport/GeckoExportParticipantSpeechesCommand.php | 14 +-
app/Console/Commands/IssueMcpTokenCommand.php | 84 +++
app/Console/Commands/JiminnyDebugCommand.php | 7 +-
app/Console/Commands/Tracks/CleanupActivityTracksCommand.php | 2 +-
app/Console/Kernel.php | 6 +-
app/Contracts/Services/Calendar/CalendarTrait.php | 80 ++-
app/Events/AutomatedReports/AutomatedReportGenerated.php | 3 +
app/Http/Controllers/API/AiCallScoring/AiScorecardController.php | 7 +-
app/Http/Controllers/API/TeamAiAutomationController.php | 8 +
app/Http/Controllers/CustomerApi/CustomerApiController.php | 4 +-
app/Http/Controllers/Kiosk/ActivityController.php | 58 +-
app/Http/Controllers/Settings/PlaybookController.php | 15 +-
app/Http/Kernel.php | 23 +
app/Http/Middleware/McpAuditMiddleware.php | 156 ++++
app/Http/Middleware/McpTierMiddleware.php | 54 ++
app/Http/Requests/API/V2/ZapierUploadActivityRequest.php | 28 +-
app/Jobs/Activity/Import/ImportTwilioVideoSpeechesJob.php | 25 +-
app/Jobs/Activity/Import/IsActivityReadyForProcessingJob.php | 10 +-
app/Jobs/Calendar/SetupCalendarSync.php | 21 +-
app/Jobs/ImportRemoteTrackJob.php | 96 ++-
app/Jobs/Mailbox/EmailTextRelay.php | 15 +-
app/Mcp/Contracts/McpCallRepositoryInterface.php | 30 +
app/Mcp/DTO/ListCallsFilters.php | 29 +
app/Mcp/Errors/McpError.php | 123 ++++
app/Mcp/Repositories/McpActivityHydrator.php | 145 ++++
app/Mcp/Repositories/McpCallRepository.php | 84 +++
app/Mcp/Repositories/McpElasticCallRepository.php | 171 +++++
app/Mcp/Servers/JiminnyServer.php | 38 +
app/Mcp/Tools/ListCallsTool.php | 205 ++++++
app/Models/Activity.php | 10 +-
app/Models/Activity/Transcription.php | 17 +-
app/Models/ElasticSearch/OpportunityElasticSearchTrait.php | 5 +
app/Models/Participant.php | 1 +
app/Providers/AppServiceProvider.php | 22 +
app/Repositories/Crm/ContactRepository.php | 69 +-
app/Repositories/ParticipantSpeechRepository.php | 13 +-
app/Services/Activity/ParticipantsService.php | 19 +-
app/Services/Activity/Twilio/S3RecordingCredentialsService.php | 82 +++
app/Services/ActivityService.php | 21 +-
app/Services/Calendar/CalendarActivityService.php | 46 ++
app/Services/Calendar/Command/ImportParticipants.php | 1 +
app/Services/Calendar/Command/MapActivityData.php | 106 +--
app/Services/Calendar/GoogleCalendarService.php | 12 +-
app/Services/Crm/Close/Processor/OpportunityProcessor.php | 2 +-
app/Services/Crm/Close/Service.php | 22 +-
app/Services/Crm/Copper/Service.php | 12 +-
app/Services/Crm/Hubspot/Service.php | 154 +++-
app/Services/Crm/Hubspot/ServiceTraits/OpportunitySyncTrait.php | 88 ++-
app/Services/Crm/IntegrationApp/ServiceTraits/SyncCrmEntitiesTrait.php | 22 +-
app/Services/Crm/Pipedrive/Service.php | 17 +-
app/Services/Crm/Salesforce/Service.php | 42 +-
app/Services/Mail/Office/EmailApiClient.php | 129 +---
app/Services/RecallAI/Commands/ScheduleBotCommand.php | 39 +-
app/Services/RecallAI/RecallAIService.php | 22 +-
composer.json | 3 +-
composer.lock | 87 ++-
config/mcp.php | 23 +
database/migrations/2026_04_30_120000_create_mcp_audit_log_table.php | 36 +
docs/mcp/explorer/explorer.html | 697 ++++++++++++++++++
docs/mcp/explorer/explorer.template.html | 697 ++++++++++++++++++
docs/mcp/explorer/generate.js | 215 ++++++
docs/mcp/explorer/tool-explorer-meta.json | 11 +
docs/mcp/tools-list.json | 2536 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
docs/mcp/tools.md | 621 ++++++++++++++++
front-end/package.json | 4 +-
front-end/src/components/Settings/OrgSettings/AiAutomation/CrmFilling/TemplateFieldForm.vue | 28 +-
front-end/src/components/Settings/OrgSettings/Playbooks/AddEditPlaybook.vue | 10 +
front-end/src/components/playback/comments/ActivityComment.less | 10 +-
front-end/src/components/shared/PromptTester/PromptTester.vue | 12 +-
front-end/src/components/shared/__tests__/PromptTester.spec.js | 35 +
front-end/src/components/shared/modals/EntityPickerModal/__tests__/useEntitiesCache.spec.ts | 37 +
front-end/src/components/shared/modals/EntityPickerModal/useEntitiesCache.ts | 9 +
front-end/yarn.lock | 16 +-
phpstan-baseline.neon | 50 --
routes/api.php | 11 +
sonar-project.properties | 91 ++-
tests/Feature/Component/Nudge/ProcessOrganisationImmediateNudgesJobTest.php | 534 ++++++++++++++
tests/Feature/Jobs/ImportRemoteTrackJobTest.php | 283 +++++++-
tests/Feature/Mcp/IssueMcpTokenCommandTest.php | 53 ++
tests/Feature/Mcp/ListCallsToolElasticFeatureTest.php | 155 ++++
tests/Feature/Mcp/ListCallsToolFeatureTest.php | 352 ++++++++++
tests/Feature/Mcp/McpTestHelpersTrait.php | 77 ++
tests/Feature/Services/Team/TeamDeleteHandlers/Retention/RetentionRepositoryHandlerTest.php | 1 +
tests/Stubs/SentryStub.php | 18 +
tests/Unit/Component/ActivityAnalytics/Service/CalculateTalkTimeOffsetFromTranscriptionTest.php | 28 +-
tests/Unit/Component/AiActivityType/Services/AiActivityTypeEligibilityCheckerTest.php | 103 ++-
tests/Unit/Component/AiAutomation/Actions/PrepareUpdateDtoActionTest.php | 91 +++
tests/Unit/Component/AiAutomation/Services/CrmFillingEligibilityCheckerTest.php | 124 ++++
tests/Unit/Component/AiAutomation/TestCrmAiPromptServiceTest.php | 67 +-
tests/Unit/Component/AiCallScoring/Services/AiCallScoringEligibilityCheckerTest.php | 55 ++
tests/Unit/Component/ES/ElasticSearchWorkerManagerTest.php | 135 ----
tests/Unit/Component/ES/Processor/Actions/LoadDocumentsActionTest.php | 220 ++++++
tests/Unit/Component/ES/Processor/EntityQueryBuilderTest.php | 21 +-
tests/Unit/Component/ES/Processor/Traits/SkipActivityTraitTest.php | 51 --
tests/Unit/Component/ES/Worker/ActivityWorkerTest.php | 174 -----
tests/Unit/Component/ES/Worker/EntityWorkerTest.php | 97 ---
tests/Unit/Component/ES/Worker/WorkerAmountTest.php | 116 ---
tests/Unit/Component/Encoding/Job/AnalyzeTrackChannelsJobTest.php | 52 +-
tests/Unit/Component/Encoding/Service/GenerateSpeechFromSilenceServiceTest.php | 171 ++---
tests/Unit/Component/FFMpeg/Services/GetSpeechIntervalsTest.php | 36 +-
tests/Unit/Component/LanguageDetection/Services/FindSpeechTimeServiceTest.php | 20 +-
tests/Unit/Component/MobileSettings/MobileSettingsControllerTest.php | 5 +-
tests/Unit/Component/ParticipantSpeech/Services/ParticipantSpeechesCreatorTest.php | 75 ++
tests/Unit/Component/ParticipantSpeech/Services/ParticipantSpeechesDeleterTest.php | 63 ++
tests/Unit/Component/ParticipantSpeech/Services/ParticipantSpeechesProviderTest.php | 134 ++++
tests/Unit/Component/ParticipantSpeech/Services/ParticipantSpeechesUploaderTest.php | 57 ++
tests/Unit/Component/Transcription/Diarization/Services/GetNormalizedParticipantSpeechesServiceTest.php | 51 +-
tests/Unit/Component/Transcription/Diarization/Source/MeetingBotSourceTest.php | 29 +-
tests/Unit/Contracts/Services/Calendar/CalendarTraitTest.php | 58 +-
tests/Unit/Http/Controllers/Kiosk/ActivityControllerTest.php | 159 +++++
tests/Unit/Jobs/Activity/Import/ImportTwilioVideoSpeechesJobTest.php | 22 +-
tests/Unit/Jobs/Activity/Import/IsActivityReadyForProcessingJobTest.php | 26 +-
tests/Unit/Jobs/Calendar/SetupCalendarSyncTest.php | 25 -
tests/Unit/Services/Activity/ParticipantsServiceTest.php | 12 +-
tests/Unit/Services/Activity/Twilio/S3RecordingCredentialsServiceTest.php | 180 +++++
tests/Unit/Services/ActivityServiceTest.php | 132 ++++
tests/Unit/Services/Calendar/CalendarActivityServiceTest.php | 150 +++-
tests/Unit/Services/Calendar/Command/ImportParticipantsTest.php | 6 +-
tests/Unit/Services/Calendar/Command/MapActivityDataTest.php | 78 +-
tests/Unit/Services/Calendar/GoogleCalendarServiceTest.php | 116 +++
tests/Unit/Services/Crm/Close/ServiceTest.php | 165 +++++
tests/Unit/Services/Crm/Hubspot/ServiceTest.php | 272 ++++++-
tests/Unit/Services/Crm/Hubspot/ServiceTraits/OpportunitySyncTest.php | 25 +-
tests/Unit/Services/Crm/Hubspot/ServiceTraits/OpportunitySyncTraitMatchActivitiesTest.php | 3 +-
tests/Unit/Services/Crm/IntegrationApp/ServiceTraits/SyncCrmEntitiesTraitOpportunitiesTest.php | 40 ++
tests/Unit/Services/Crm/Pipedrive/ImportOpportunityMatchActivitiesTest.php | 2 +
tests/Unit/Services/Crm/Salesforce/ServiceTest.php | 139 ++++
tests/Unit/Services/Mail/Office/EmailApiClientTest.php | 195 ++---
tests/Unit/Services/RecallAI/RecallAIServiceTest.php | 24 +-
175 files changed, 12562 insertions(+), 2162 deletions(-)
create mode 120000 CLAUDE.md
create mode 100644 app/Component/AiAutomation/Services/CrmFillingEligibilityChecker.php
delete mode 100644 app/Component/ES/ElasticSearchWorkerManager.php
delete mode 100644 app/Component/ES/Processor/Traits/SkipActivityTrait.php
delete mode 100644 app/Component/ES/Worker/ActivityWorker.php
delete mode 100644 app/Component/ES/Worker/EntityWorker.php
delete mode 100644 app/Component/ES/Worker/WorkerAmount.php
delete mode 100644 app/Component/ES/Worker/WorkerInterface.php
create mode 100644 app/Component/ProphetAi/Exceptions/InsufficientTranscriptException.php
create mode 100644 app/Component/Transcription/DTO/Http/Transcription/AssemblyAI/AssemblyAI/NoAssemblyIdException.php
create mode 100644 app/Component/Transcription/DTO/Http/Transcription/TranscriptionIsNotCorrectFormatException.php
create mode 100644 app/Console/Commands/Activities/SetupIntegration/TwilioSetS3RecordingCredentialsCommand.php
create mode 100644 app/Console/Commands/Crm/BackfillOpportunityUserFromAccountCommand.php
delete mode 100644 app/Console/Commands/Elasticsearch/AsyncUpdateEsActivities.php
create mode 100644 app/Console/Commands/IssueMcpTokenCommand.php
create mode 100644 app/Http/Middleware/McpAuditMiddleware.php
create mode 100644 app/Http/Middleware/McpTierMiddleware.php
create mode 100644 app/Mcp/Contracts/McpCallRepositoryInterface.php
create mode 100644 app/Mcp/DTO/ListCallsFilters.php
create mode 100644 app/Mcp/Errors/McpError.php
create mode 100644 app/Mcp/Repositories/McpActivityHydrator.php
create mode 100644 app/Mcp/Repositories/McpCallRepository.php
create mode 100644 app/Mcp/Repositories/McpElasticCallRepository.php
create mode 100644 app/Mcp/Servers/JiminnyServer.php
create mode 100644 app/Mcp/Tools/ListCallsTool.php
create mode 100644 app/Services/Activity/Twilio/S3RecordingCredentialsService.php
create mode 100644 config/mcp.php
create mode 100644 database/migrations/2026_04_30_120000_create_mcp_audit_log_table.php
create mode 100644 docs/mcp/explorer/explorer.html
create mode 100644 docs/mcp/explorer/explorer.template.html
create mode 100644 docs/mcp/explorer/generate.js
create mode 100644 docs/mcp/explorer/tool-explorer-meta.json
create mode 100644 docs/mcp/tools-list.json
create mode 100644 docs/mcp/tools.md
create mode 100644 front-end/src/components/shared/modals/EntityPickerModal/__tests__/useEntitiesCache.spec.ts
create mode 100644 tests/Feature/Component/Nudge/ProcessOrganisationImmediateNudgesJobTest.php
create mode 100644 tests/Feature/Mcp/IssueMcpTokenCommandTest.php
create mode 100644 tests/Feature/Mcp/ListCallsToolElasticFeatureTest.php
create mode 100644 tests/Feature/Mcp/ListCallsToolFeatureTest.php
create mode 100644 tests/Feature/Mcp/McpTestHelpersTrait.php
create mode 100644 tests/Stubs/SentryStub.php
create mode 100644 tests/Unit/Component/AiAutomation/Services/CrmFillingEligibilityCheckerTest.php
delete mode 100644 tests/Unit/Component/ES/ElasticSearchWorkerManagerTest.php
create mode 100644 tests/Unit/Component/ES/Processor/Actions/LoadDocumentsActionTest.php
delete mode 100644 tests/Unit/Component/ES/Processor/Traits/SkipActivityTraitTest.php
delete mode 100644 tests/Unit/Component/ES/Worker/ActivityWorkerTest.php
delete mode 100644 tests/Unit/Component/ES/Worker/EntityWorkerTest.php
delete mode 100644 tests/Unit/Component/ES/Worker/WorkerAmountTest.php
create mode 100644 tests/Unit/Component/ParticipantSpeech/Services/ParticipantSpeechesCreatorTest.php
create mode 100644 tests/Unit/Http/Controllers/Kiosk/ActivityControllerTest.php
create mode 100644 tests/Unit/Services/Activity/Twilio/S3RecordingCredentialsServiceTest.php
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20725-handle-HS-search-rate-limit) $ git status
On branch master
Your branch is behind 'origin/master' by 114 commits, and can be fast-forwarded.
(use "git pull" to update your local branch)
Changes not staged for commit:
(use "git add <file>..." to update what will be committed)
(use "git restore <file>..." to discard changes in working directory)
modified: .env.local
modified: app/Component/SCIM/Constants.php
modified: app/Component/SCIM/ScimProvisioning.php
modified: app/Component/Twilio/Conference/ConferenceManager/SoftPhoneManager.php
modified: app/Console/Commands/JiminnyDebugCommand.php
modified: app/DTO/SCIM/AAD/Request/CoreUserRequest.php
modified: app/DTO/SCIM/AAD/Response/CoreUser.php
modified: app/Services/Telephony/TextMessagingService.php
modified: config/logging.php
Untracked files:
(use "git add <file>..." to include in what will be committed)
.env.nikilocal
.env.other
WEBHOOK_FILTERING_IMPLEMENTATION.md
app/Component/SCIM/Mutators/Attributes/User/RoleAttr.php
app/Console/Commands/Crm/Hubspot/SimulateWebhooksCommand.php
app/Console/Commands/Reports/CreateMockAskJiminnyReportResultCommand.php
app/Rules/ListenerRoleCannotHaveAdminOrManagerPermissionRule.php
ids.txt
public/favicon.ico
raw_sql_query.sql
tests/Unit/Component/SCIM/Mutators/Attributes/User/RoleAttrTest.php
tests/Unit/Policies/CanAccessAiReportsTest.php
tests/Unit/Rules/ListenerRoleCannotHaveAdminOrManagerPermissionRuleTest.php
no changes added to commit (use "git add" and/or "git commit -a")
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (master) $ git pull
remote: Enumerating objects: 306, done.
remote: Counting objects: 100% (299/299), done.
remote: Compressing objects: 100% (183/183), done.
remote: Total 306 (delta 213), reused 171 (delta 116), pack-reused 7 (from 1)
Receiving objects: 100% (306/306), 80.12 KiB | 1000.00 KiB/s, done.
Resolving deltas: 100% (213/213), completed with 53 local objects.
From github.com:jiminny/app
90bca4e4b2..5604af40cf master -> origin/master
4e7078fd8b..0b8343d179 JY-18091-upgrade-to-php-8-5 -> origin/JY-18091-upgrade-to-php-8-5
098eeaa087..d5a447e492 JY-20613-allow-owner-role-on-team-setup -> origin/JY-20613-allow-owner-role-on-team-setup
c3a76ace91..af65249d0f JY-20749-user-can-view-recorded-meetings -> origin/JY-20749-user-can-view-recorded-meetings
d94a285ae7..7ce96cb5fe JY-20808-low-priority-indexing-queue -> origin/JY-20808-low-priority-indexing-queue
* [new branch] JY-20842-remove-partial-updater -> origin/JY-20842-remove-partial-updater
* [new branch] JY-20920-fix-participant-flip -> origin/JY-20920-fix-participant-flip
* [new branch] secfix/npm-20260519 -> origin/secfix/npm-20260519
Updating cb4ebf0c36..5604af40cf
Fast-forward
app/Component/ES/ChunkSize.php | 54 +++++++++++++++++++
app/Component/ES/Processor/DTOs/SelectionList.php | 4 +-
app/Component/ES/Processor/TargetEntitiesSelector.php | 19 ++++---
app/Component/MeetingBot/Service/ParticipantMatcher.php | 46 ++++++++++++----
app/Exceptions/RateLimitException.php | 19 ++++++-
app/Http/Middleware/McpTierMiddleware.php | 27 ++--------
app/Jobs/Crm/MatchActivityCrmData.php | 47 ++++++++++++----
app/Jobs/Middleware/HandleHubspotRateLimit.php | 42 +++++++++++++++
app/Mcp/Servers/JiminnyServer.php | 2 +
app/Mcp/Tools/GetMeTool.php | 157 +++++++++++++++++++++++++++++++++++++++++++++++++++++
app/Models/Feature/FeatureEnum.php | 1 +
app/Services/Activity/HubSpot/ProviderResolver.php | 4 +-
app/Services/Activity/HubSpot/ProviderResolverInterface.php | 2 +-
app/Services/Activity/HubSpot/Providers/Provider.php | 2 +-
app/Services/Activity/HubSpot/Providers/ProviderKixie.php | 2 +-
app/Services/Activity/HubSpot/Providers/ProviderOrum.php | 2 +-
app/Services/Activity/HubSpot/Providers/ProviderTwilio.php | 2 +-
app/Services/Activity/HubSpot/Providers/ProviderTwilioFlex.php | 5 +-
app/Services/Activity/HubSpot/Service.php | 97 +++++++++++++++++++++++++++------
app/Services/Crm/Hubspot/Client.php | 132 +++++++++++++++++++++++++++++++++++++++++++++
app/Services/Crm/Hubspot/HubspotClientInterface.php | 15 ++++++
app/Services/Crm/Hubspot/Pagination/HubspotPaginationService.php | 21 ++++----
app/Services/Crm/Hubspot/Pagination/PaginationState.php | 2 +-
database/migrations/2026_05_13_124153_create_mcp_feature_flag.php | 25 +++++++++
tests/Feature/Mcp/GetMeToolFeatureTest.php | 140 +++++++++++++++++++++++++++++++++++++++++++++++
tests/Feature/Mcp/ListCallsToolFeatureTest.php | 2 +-
tests/Feature/Mcp/McpTestHelpersTrait.php | 19 ++++++-
tests/Unit/Component/ES/ChunkSizeTest.php | 50 +++++++++++++++++
tests/Unit/Component/ES/Processor/DTOs/SelectionListTest.php | 27 +++++++---
tests/Unit/Component/ES/Processor/TargetEntitiesSelectorTest.php | 39 ++++++++------
tests/Unit/Component/MeetingBot/Service/ParticipantMatcherTest.php | 68 ++++++++++++++++++++++-
tests/Unit/Exceptions/RateLimitExceptionTest.php | 56 +++++++++++++++++++
tests/Unit/Jobs/Crm/MatchActivityCrmDataTest.php | 8 +--
tests/Unit/Jobs/Middleware/HandleHubspotRateLimitTest.php | 151 +++++++++++++++++++++++++++++++++++++++++++++++++++
tests/Unit/Services/Activity/HubSpot/ServiceTest.php | 109 +++++++++++++++++++++++++++++++++++++
tests/Unit/Services/Crm/Hubspot/ClientTest.php | 250 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
tests/Unit/Services/Crm/Hubspot/Pagination/HubspotPaginationServiceTest.php | 283 +++++++++++++++++++++---------------------------------------------------------------------------
37 files changed, 1587 insertions(+), 344 deletions(-)
create mode 100644 app/Component/ES/ChunkSize.php
create mode 100644 app/Jobs/Middleware/HandleHubspotRateLimit.php
create mode 100644 app/Mcp/Tools/GetMeTool.php
create mode 100644 database/migrations/2026_05_13_124153_create_mcp_feature_flag.php
create mode 100644 tests/Feature/Mcp/GetMeToolFeatureTest.php
create mode 100644 tests/Unit/Component/ES/ChunkSizeTest.php
create mode 100644 tests/Unit/Exceptions/RateLimitExceptionTest.php
create mode 100644 tests/Unit/Jobs/Middleware/HandleHubspotRateLimitTest.php
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (master) $ git pull
Already up to date.
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (master) $ co -b JY-20676-delete-report-related-objects
Switched to a new branch 'JY-20676-delete-report-related-objects'
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20676-delete-report-related-objects) $ csfix
docker exec -it docker_lamp_1 ./vendor/bin/php-cs-fixer fix --config=.php-cs-fixer.dist.php -v --using-cache=no --diff
PHP CS Fixer 3.87.1 Alexander by Fabien Potencier, Dariusz Ruminski and contributors.
PHP runtime: 8.3.30
Running 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!
Loaded config default from ".php-cs-fixer.dist.php".
5690/5690 [▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓] 100%
1) app/Console/Commands/JiminnyDebugCommand.php (statement_indentation, blank_line_before_statement)
---------- begin diff ----------
--- /home/jiminny/app/Console/Commands/JiminnyDebugCommand.php
+++ /home/jiminny/app/Console/Commands/JiminnyDebugCommand.php
@@ -23,6 +23,7 @@
if ($action === 'redis-set') {
$this->testRedisSet();
+
return;
}
@@ -45,7 +46,7 @@
$ttl = 60;
try {
-// $result = Redis::set($testKey, $testValue, 'EX', $ttl, 'NX');
+ // $result = Redis::set($testKey, $testValue, 'EX', $ttl, 'NX');
$result = Redis::set($testKey, $testValue, ['nx', 'ex' => $ttl]);
if ($result) {
----------- end diff -----------
Fixed 1 of 5690 files i...
|
[{"role":"AXTextArea","text [{"role":"AXTextArea","text":"Last login: Mon May 18 09:17:28 on ttys007\n\nPoetry could not find a pyproject.toml file in /Users/lukas/jiminny/app or its parents\n\nPoetry could not find a pyproject.toml file in /Users/lukas/jiminny/app or its parents\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (pipedrive-sdk-poc) $ co master\nerror: Your local changes to the following files would be overwritten by checkout:\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tPIPEDRIVE_V2_MIGRATION_TICKETS.md\nPlease commit your changes or stash them before you switch branches.\nAborting\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (pipedrive-sdk-poc) $ git pull\nremote: Enumerating objects: 1047, done.\nremote: Counting objects: 100% (832/832), done.\nremote: Compressing objects: 100% (298/298), done.\nremote: Total 1047 (delta 634), reused 596 (delta 534), pack-reused 215 (from 3)\nReceiving objects: 100% (1047/1047), 353.16 KiB | 1.56 MiB/s, done.\nResolving deltas: 100% (687/687), completed with 107 local objects.\nFrom github.com:jiminny/app\n 907c54896c..34656c53ed pipedrive-sdk-poc -> origin/pipedrive-sdk-poc\n 03325ec50f..4e7078fd8b JY-18091-upgrade-to-php-8-5 -> origin/JY-18091-upgrade-to-php-8-5\n e7d231e163..bc6a3fce6b JY-20725-handle-HS-search-rate-limit -> origin/JY-20725-handle-HS-search-rate-limit\n * [new branch] JY-20749-user-can-view-recorded-meetings -> origin/JY-20749-user-can-view-recorded-meetings\n 98ca281a04..e0351be069 JY-20808-low-priority-indexing-queue -> origin/JY-20808-low-priority-indexing-queue\n 569abb5149..3906a9238a JY-20835-mcp-enable-users-to-get-a-list-of-deals-and-their-details -> origin/JY-20835-mcp-enable-users-to-get-a-list-of-deals-and-their-details\n ad6c2a86e8..50eb6afba9 JY-20846-mcp-enable-the-ai-to-know-details-about-the-user -> origin/JY-20846-mcp-enable-the-ai-to-know-details-about-the-user\n * [new branch] JY-20893-chunk-control-per-update-target -> origin/JY-20893-chunk-control-per-update-target\n 31c62924a5..cb4ebf0c36 master -> origin/master\nUpdating 907c54896c..34656c53ed\nFast-forward\n PIPEDRIVE_V2_MIGRATION_TICKETS.md | 52 ++++++++++++++++++++++++++++++++++++++++++++++++++++\n 1 file changed, 52 insertions(+)\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (pipedrive-sdk-poc) $ co master\nM\u0000\u0000\u0000\u0000\u0000\u0000\t.env.local\nM\u0000\u0000\u0000\u0000\u0000\u0000\tconfig/logging.php\nSwitched to branch 'master'\nYour branch is behind 'origin/master' by 31 commits, and can be fast-forwarded.\n (use \"git pull\" to update your local branch)\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (master) $ git pull\nUpdating 31c62924a5..cb4ebf0c36\nFast-forward\n app/Component/ES/Processor/Traits/SelectEntityListTrait.php | 20 ------\n app/Services/Calendar/CalendarActivityService.php | 46 +++++++++++++\n app/Services/Calendar/Command/MapActivityData.php | 106 +++-------------------------\n docs/mcp/explorer/explorer.html | 104 +++++++++++++++++++++++++---\n docs/mcp/explorer/explorer.template.html | 102 ++++++++++++++++++++++++---\n docs/mcp/tools-list.json | 373 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++-------\n docs/mcp/tools.md | 117 +++++++++++++++++++++++--------\n tests/Unit/Component/ES/AsyncUpdateElasticSearchTest.php | 16 +----\n tests/Unit/Component/ES/Listeners/UpdateMultipleTargetsListenerTest.php | 10 ---\n tests/Unit/Component/ES/Listeners/UpdateSingleTargetListenerTest.php | 6 --\n tests/Unit/Component/ES/Processor/TargetEntitiesSelectorTest.php | 9 ---\n tests/Unit/Component/ES/Processor/Traits/SelectEntityListTraitTest.php | 15 ++--\n tests/Unit/Component/ES/UpdateProcessManagerTest.php | 2 -\n tests/Unit/Services/Calendar/CalendarActivityServiceTest.php | 150 ++++++++++++++++++++++++++++++++++++++--\n tests/Unit/Services/Calendar/Command/MapActivityDataTest.php | 78 ++-------------------\n 15 files changed, 832 insertions(+), 322 deletions(-)\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (master) $ co -b JY-20613-allow-owner-role-on-team-setup\nSwitched to a new branch 'JY-20613-allow-owner-role-on-team-setup'\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20613-allow-owner-role-on-team-setup) $ csfix\ndocker exec -it docker_lamp_1 ./vendor/bin/php-cs-fixer fix --config=.php-cs-fixer.dist.php -v --using-cache=no --diff \nPHP CS Fixer 3.87.1 Alexander by Fabien Potencier, Dariusz Ruminski and contributors.\nPHP runtime: 8.3.30\nRunning analysis on 7 cores with 10 files per process.\nParallel runner is an experimental feature and may be unstable, use it at your own risk. Feedback highly appreciated!\nLoaded config default from \".php-cs-fixer.dist.php\".\n 5682/5682 [▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓] 100%\n\n\nFixed 0 of 5682 files in 56.978 seconds, 67.00 MB memory used\n\nWhat's next:\n Try Docker Debug for seamless, persistent debugging tools in any container or image → docker debug docker_lamp_1\n Learn more at https://docs.docker.com/go/debug-cli/\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20613-allow-owner-role-on-team-setup) $ ;xd\ndocker exec -it docker_lamp_1 bash -c \"mv /usr/local/etc/php/conf.d/xdebug.ini ~/xdebug.ini\"\n\nWhat's next:\n Try Docker Debug for seamless, persistent debugging tools in any container or image → docker debug docker_lamp_1\n Learn more at https://docs.docker.com/go/debug-cli/\ndocker exec -it docker_lamp_1 supervisorctl restart all\njiminny-worker-processing-2:jiminny-worker-processing-2_00: stopped\njiminny-worker-processing-3:jiminny-worker-processing-3_00: stopped\njiminny-worker-processing-4:jiminny-worker-processing-4_00: stopped\njiminny-worker-processing-5:jiminny-worker-processing-5_00: stopped\njiminny-worker-processing-delayed:jiminny-worker-processing-delayed_00: stopped\nworker-analytics:worker-analytics_00: stopped\nworker-crm-update:worker-crm-update_00: stopped\nworker-download:worker-download_00: stopped\nworker-nudges:worker-nudges_00: stopped\nartisan-schedule:artisan-schedule_00: stopped\nworker-emails:worker-emails_00: stopped\nworker-calendar:worker-calendar_00: stopped\nworker:worker_00: stopped\nworker-conferences:worker-conferences_00: stopped\nworker-crm-sync:worker-crm-sync_00: stopped\njiminny-worker-processing-1:jiminny-worker-processing-1_00: stopped\nworker-audio:worker-audio_00: stopped\nworker-es-update:worker-es-update_00: stopped\nartisan-schedule:artisan-schedule_00: started\njiminny-worker-processing-1:jiminny-worker-processing-1_00: started\njiminny-worker-processing-2:jiminny-worker-processing-2_00: started\njiminny-worker-processing-3:jiminny-worker-processing-3_00: started\njiminny-worker-processing-4:jiminny-worker-processing-4_00: started\njiminny-worker-processing-5:jiminny-worker-processing-5_00: started\njiminny-worker-processing-delayed:jiminny-worker-processing-delayed_00: started\nworker:worker_00: started\nworker-analytics:worker-analytics_00: started\nworker-audio:worker-audio_00: started\nworker-calendar:worker-calendar_00: started\nworker-conferences:worker-conferences_00: started\nworker-crm-sync:worker-crm-sync_00: started\nworker-crm-update:worker-crm-update_00: started\nworker-download:worker-download_00: started\nworker-emails:worker-emails_00: started\nworker-es-update:worker-es-update_00: started\nworker-nudges:worker-nudges_00: started\n\nWhat's next:\n Try Docker Debug for seamless, persistent debugging tools in any container or image → docker debug docker_lamp_1\n Learn more at https://docs.docker.com/go/debug-cli/\ndocker exec -it docker_lamp_1 php -v\nPHP 8.3.30 (cli) (built: Mar 16 2026 22:32:32) (NTS)\nCopyright (c) The PHP Group\nZend Engine v4.3.30, Copyright (c) Zend Technologies\n with Zend OPcache v8.3.30, Copyright (c), by Zend Technologies\n\nWhat's next:\n Try Docker Debug for seamless, persistent debugging tools in any container or image → docker debug docker_lamp_1\n Learn more at https://docs.docker.com/go/debug-cli/\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20613-allow-owner-role-on-team-setup) $ csfix\ndocker exec -it docker_lamp_1 ./vendor/bin/php-cs-fixer fix --config=.php-cs-fixer.dist.php -v --using-cache=no --diff \nPHP CS Fixer 3.87.1 Alexander by Fabien Potencier, Dariusz Ruminski and contributors.\nPHP runtime: 8.3.30\nRunning analysis on 7 cores with 10 files per process.\nParallel runner is an experimental feature and may be unstable, use it at your own risk. Feedback highly appreciated!\nLoaded config default from \".php-cs-fixer.dist.php\".\n 5682/5682 [▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓] 100%\n\n\nFixed 0 of 5682 files in 49.910 seconds, 60.00 MB memory used\n\nWhat's next:\n Try Docker Debug for seamless, persistent debugging tools in any container or image → docker debug docker_lamp_1\n Learn more at https://docs.docker.com/go/debug-cli/\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20613-allow-owner-role-on-team-setup) $ git status\nOn branch JY-20613-allow-owner-role-on-team-setup\nYour branch is ahead of 'origin/JY-20613-allow-owner-role-on-team-setup' by 1 commit.\n (use \"git push\" to publish your local commits)\n\nChanges not staged for commit:\n (use \"git add <file>...\" to update what will be committed)\n (use \"git restore <file>...\" to discard changes in working directory)\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tmodified: .env.local\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tmodified: config/logging.php\n\nUntracked files:\n (use \"git add <file>...\" to include in what will be committed)\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\t.env.nikilocal\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\t.env.other\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tWEBHOOK_FILTERING_IMPLEMENTATION.md\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tapp/Console/Commands/Crm/Hubspot/SimulateWebhooksCommand.php\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tapp/Console/Commands/Reports/CreateMockAskJiminnyReportResultCommand.php\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tids.txt\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tpublic/favicon.ico\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\traw_sql_query.sql\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\ttests/Unit/Policies/CanAccessAiReportsTest.php\n\nno changes added to commit (use \"git add\" and/or \"git commit -a\")\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20613-allow-owner-role-on-team-setup) $ git pull\nremote: Enumerating objects: 248, done.\nremote: Counting objects: 100% (128/128), done.\nremote: Compressing objects: 100% (23/23), done.\nremote: Total 59 (delta 43), reused 44 (delta 33), pack-reused 0 (from 0)\nUnpacking objects: 100% (59/59), 10.48 KiB | 228.00 KiB/s, done.\nFrom github.com:jiminny/app\n b7df560451..190239dfd4 JY-20613-allow-owner-role-on-team-setup -> origin/JY-20613-allow-owner-role-on-team-setup\n e0351be069..d94a285ae7 JY-20808-low-priority-indexing-queue -> origin/JY-20808-low-priority-indexing-queue\n * [new branch] JY-20920-fix-participant-matcher -> origin/JY-20920-fix-participant-matcher\n cb4ebf0c36..90bca4e4b2 master -> origin/master\nMerge made by the 'ort' strategy.\n app/Component/ES/ChunkSize.php | 54 +++++++++++++++++++++++++++\n app/Component/ES/Processor/DTOs/SelectionList.php | 4 +-\n app/Component/ES/Processor/TargetEntitiesSelector.php | 19 ++++++----\n app/Http/Middleware/McpTierMiddleware.php | 27 +++-----------\n app/Mcp/Servers/JiminnyServer.php | 2 +\n app/Mcp/Tools/GetMeTool.php | 157 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++\n app/Models/Feature/FeatureEnum.php | 1 +\n database/migrations/2026_05_13_124153_create_mcp_feature_flag.php | 25 +++++++++++++\n front-end/src/components/Settings/Kiosk/modals/EditTeamModal/EditTeamModal.vue | 52 ++++++++++++++++++--------\n front-end/src/components/Settings/Kiosk/modals/EditTeamModal/__tests__/EditTeamModal.spec.js | 14 +++++++\n tests/Feature/Mcp/GetMeToolFeatureTest.php | 140 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++\n tests/Feature/Mcp/ListCallsToolFeatureTest.php | 2 +-\n tests/Feature/Mcp/McpTestHelpersTrait.php | 19 +++++++++-\n tests/Unit/Component/ES/ChunkSizeTest.php | 50 +++++++++++++++++++++++++\n tests/Unit/Component/ES/Processor/DTOs/SelectionListTest.php | 27 ++++++++++----\n tests/Unit/Component/ES/Processor/TargetEntitiesSelectorTest.php | 39 +++++++++++---------\n 16 files changed, 557 insertions(+), 75 deletions(-)\n create mode 100644 app/Component/ES/ChunkSize.php\n create mode 100644 app/Mcp/Tools/GetMeTool.php\n create mode 100644 database/migrations/2026_05_13_124153_create_mcp_feature_flag.php\n create mode 100644 tests/Feature/Mcp/GetMeToolFeatureTest.php\n create mode 100644 tests/Unit/Component/ES/ChunkSizeTest.php\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20613-allow-owner-role-on-team-setup) $ git push\nEnumerating objects: 40, done.\nCounting objects: 100% (34/34), done.\nDelta compression using up to 8 threads\nCompressing objects: 100% (18/18), done.\nWriting objects: 100% (18/18), 1.58 KiB | 1.58 MiB/s, done.\nTotal 18 (delta 15), reused 0 (delta 0), pack-reused 0\nremote: Resolving deltas: 100% (15/15), completed with 13 local objects.\nTo github.com:jiminny/app.git\n 190239dfd4..ec1b261264 JY-20613-allow-owner-role-on-team-setup -> JY-20613-allow-owner-role-on-team-setup\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20613-allow-owner-role-on-team-setup) $ gbr\n* JY-20613-allow-owner-role-on-team-setup\n pipedrive-sdk-poc\n master\n JY-20903-update_activity-stage-on-opportunity-change\n JY-20904-fix-update-es-on-activity-command\n JY-20891-improve-sms-text-relays\n JY-20725-handle-HS-search-rate-limit\n JY-20818-move-AJ-reports-to-separated-datadog-metric\n JY-20773-fix-automated-reports-user-pilot-tracking\n JY-20157-AJ-report-not-send-notification\n JY-20508-notify-before-AJ-report-expiration\n JY-20372-ai-reports-promotion-pages\n JY-20352-sync-opportunities-without-a-local-owner-user-id-is-null\n JY-20738-debug-AJ-tracking-UP\n a\n JY-18909-automated-reports-ask-jiminny\n JY-20692-fix-integration-app-token-auth-response-change\n JY-20553-debug-crm-sync-delays\n JY-20698-fix-SF-activity-types-on-new-playbook\n JY-20543-AJ-report-tracking\n JY-20384-handle-auto-sync-with-no-access-to-event-type\n JY-20458-ask-jiminny-user-definitions\n JY-19666-fix-import-contacts-account-association\n JY-19666-HS-import-contacts-and-accounts-batch-job\n JY-20458-Ask-Jiminny-Reports\n JY-20200-batch-update-CRM-objects-Salesforce\n JY-19666-HS-webhooks-add-contact-and-company\n JY-20348-trigger-setup-DI-layout-on-team-creation\n JY-20326-refactor-info-message-in-command\n JY-20317-fix-auto-log-delay-issue-on-all-channels-disabled\n JY-20312-remove-on-update-change-last-synced-at-crm-configurations\n JY-20306-SF-skip-auto-sync-for-task-based-playbook\n JY-20192-remove-deleted-team-from-saved-search-filters\n JY-20197-import-opportunity-batch-job\n JY-20293-enable-status-field-for-pipedrive-deals\n JY-20191-remove-commands-interactive-prompts\n JY-20118-change-default-sync-strategy\n JY-20183-add-cache-on-auto-log-delay\n JY-20197-add-import-opportunity-batch-job\n 20118-hs-opportunity-make-webhook-strategy-default\n JY-20118-make-default-hs-opportunity-sync-strategy-webhook-based\n JY-20196-handle-opportunity-without-note\n JY-20118-improve-opportunity-import\n JY-20189-handle-activity-search-on-deleted-groups\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20613-allow-owner-role-on-team-setup) $ co JY-20725-handle-HS-search-rate-limit\nM\u0000\u0000\u0000\u0000\u0000\u0000\t.env.local\nM\u0000\u0000\u0000\u0000\u0000\u0000\tconfig/logging.php\nSwitched to branch 'JY-20725-handle-HS-search-rate-limit'\nYour branch is behind 'origin/JY-20725-handle-HS-search-rate-limit' by 439 commits, and can be fast-forwarded.\n (use \"git pull\" to update your local branch)\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20725-handle-HS-search-rate-limit) $ git pull\nUpdating 0f3e438941..bc6a3fce6b\nFast-forward\n .gitignore | 3 +-\n .windsurfrules | 168 ++---\n CLAUDE.md | 1 +\n app/Component/ActivityAnalytics/Service/CalculateTalkTimeOffsetsFromTranscription.php | 24 +-\n app/Component/AiActivityType/Services/AiActivityTypeEligibilityChecker.php | 28 +-\n app/Component/AiAutomation/Actions/PrepareUpdateDtoAction.php | 32 +-\n app/Component/AiAutomation/Services/CrmFillingEligibilityChecker.php | 47 ++\n app/Component/AiAutomation/TestCrmAiPromptService.php | 14 +\n app/Component/AiCallScoring/Services/AiCallScoringEligibilityChecker.php | 9 +\n app/Component/ES/ElasticSearchDocumentPartialUpdater.php | 13 +-\n app/Component/ES/ElasticSearchWorkerManager.php | 86 ---\n app/Component/ES/Processor/Actions/LoadDocumentsAction.php | 80 +--\n app/Component/ES/Processor/EntityQueryBuilder.php | 12 +-\n app/Component/ES/Processor/TargetEntitiesSelector.php | 2 +-\n app/Component/ES/Processor/Traits/SkipActivityTrait.php | 25 -\n app/Component/ES/Repositories/EsResetActivityRepository.php | 11 +-\n app/Component/ES/Worker/ActivityWorker.php | 73 --\n app/Component/ES/Worker/EntityWorker.php | 44 --\n app/Component/ES/Worker/WorkerAmount.php | 60 --\n app/Component/ES/Worker/WorkerInterface.php | 15 -\n app/Component/ElasticSearch/Contract/Searchable.php | 4 +\n app/Component/Encoding/Job/AnalyzeTrackChannelsJob.php | 20 +-\n app/Component/Encoding/Service/GenerateSpeechFromSilenceService.php | 85 ++-\n app/Component/FFMpeg/Services/GetSpeechIntervalsService.php | 18 +-\n app/Component/LanguageDetection/Services/FindSpeechTimeService.php | 22 +-\n app/Component/Nudge/Job/ProcessOrganisationImmediateNudgesJob.php | 218 +++++-\n app/Component/ParagraphBreaker/Services/TranscriptionParagraphsService.php | 4 +\n app/Component/ParticipantSpeech/Services/ParticipantSpeechesCreator.php | 33 +\n app/Component/ParticipantSpeech/Services/ParticipantSpeechesDeleter.php | 15 +\n app/Component/ParticipantSpeech/Services/ParticipantSpeechesProvider.php | 51 +-\n app/Component/ParticipantSpeech/Services/ParticipantSpeechesUploader.php | 36 +\n app/Component/ProphetAi/Exceptions/InsufficientTranscriptException.php | 11 +\n app/Component/Transcription/DTO/Http/Transcription/AssemblyAI/AssemblyAI/NoAssemblyIdException.php | 11 +\n app/Component/Transcription/DTO/Http/Transcription/AssemblyAI/AssemblyAI/SuccessfulResponse.php | 6 +\n app/Component/Transcription/DTO/Http/Transcription/TranscriptionIsNotCorrectFormatException.php | 11 +\n app/Component/Transcription/Diarization/Services/GetNormalizedParticipantSpeechesService.php | 23 +-\n app/Component/Transcription/Diarization/Source/MeetingBotSource.php | 16 +-\n app/Component/Transcription/TranscriptionProcessor/TranscriptionProcessor.php | 3 +\n app/Console/Commands/Activities/ActivityHardDeleteCommand.php | 4 +-\n app/Console/Commands/Activities/Copy.php | 2 +\n app/Console/Commands/Activities/SetupIntegration/TwilioSetS3RecordingCredentialsCommand.php | 119 ++++\n app/Console/Commands/Activities/UpdateActivityElasticSearchDocumentCommand.php | 10 +-\n app/Console/Commands/Crm/BackfillOpportunityUserFromAccountCommand.php | 126 ++++\n app/Console/Commands/Elasticsearch/AsyncUpdateEsActivities.php | 19 -\n app/Console/Commands/Elasticsearch/AsyncUpdateEsEntities.php | 50 +-\n app/Console/Commands/Elasticsearch/ResetAsyncElasticSearchCommand.php | 30 +-\n app/Console/Commands/GeckoExport/GeckoExportParticipantSpeechesCommand.php | 14 +-\n app/Console/Commands/IssueMcpTokenCommand.php | 84 +++\n app/Console/Commands/JiminnyDebugCommand.php | 7 +-\n app/Console/Commands/Tracks/CleanupActivityTracksCommand.php | 2 +-\n app/Console/Kernel.php | 6 +-\n app/Contracts/Services/Calendar/CalendarTrait.php | 80 ++-\n app/Events/AutomatedReports/AutomatedReportGenerated.php | 3 +\n app/Http/Controllers/API/AiCallScoring/AiScorecardController.php | 7 +-\n app/Http/Controllers/API/TeamAiAutomationController.php | 8 +\n app/Http/Controllers/CustomerApi/CustomerApiController.php | 4 +-\n app/Http/Controllers/Kiosk/ActivityController.php | 58 +-\n app/Http/Controllers/Settings/PlaybookController.php | 15 +-\n app/Http/Kernel.php | 23 +\n app/Http/Middleware/McpAuditMiddleware.php | 156 ++++\n app/Http/Middleware/McpTierMiddleware.php | 54 ++\n app/Http/Requests/API/V2/ZapierUploadActivityRequest.php | 28 +-\n app/Jobs/Activity/Import/ImportTwilioVideoSpeechesJob.php | 25 +-\n app/Jobs/Activity/Import/IsActivityReadyForProcessingJob.php | 10 +-\n app/Jobs/Calendar/SetupCalendarSync.php | 21 +-\n app/Jobs/ImportRemoteTrackJob.php | 96 ++-\n app/Jobs/Mailbox/EmailTextRelay.php | 15 +-\n app/Mcp/Contracts/McpCallRepositoryInterface.php | 30 +\n app/Mcp/DTO/ListCallsFilters.php | 29 +\n app/Mcp/Errors/McpError.php | 123 ++++\n app/Mcp/Repositories/McpActivityHydrator.php | 145 ++++\n app/Mcp/Repositories/McpCallRepository.php | 84 +++\n app/Mcp/Repositories/McpElasticCallRepository.php | 171 +++++\n app/Mcp/Servers/JiminnyServer.php | 38 +\n app/Mcp/Tools/ListCallsTool.php | 205 ++++++\n app/Models/Activity.php | 10 +-\n app/Models/Activity/Transcription.php | 17 +-\n app/Models/ElasticSearch/OpportunityElasticSearchTrait.php | 5 +\n app/Models/Participant.php | 1 +\n app/Providers/AppServiceProvider.php | 22 +\n app/Repositories/Crm/ContactRepository.php | 69 +-\n app/Repositories/ParticipantSpeechRepository.php | 13 +-\n app/Services/Activity/ParticipantsService.php | 19 +-\n app/Services/Activity/Twilio/S3RecordingCredentialsService.php | 82 +++\n app/Services/ActivityService.php | 21 +-\n app/Services/Calendar/CalendarActivityService.php | 46 ++\n app/Services/Calendar/Command/ImportParticipants.php | 1 +\n app/Services/Calendar/Command/MapActivityData.php | 106 +--\n app/Services/Calendar/GoogleCalendarService.php | 12 +-\n app/Services/Crm/Close/Processor/OpportunityProcessor.php | 2 +-\n app/Services/Crm/Close/Service.php | 22 +-\n app/Services/Crm/Copper/Service.php | 12 +-\n app/Services/Crm/Hubspot/Service.php | 154 +++-\n app/Services/Crm/Hubspot/ServiceTraits/OpportunitySyncTrait.php | 88 ++-\n app/Services/Crm/IntegrationApp/ServiceTraits/SyncCrmEntitiesTrait.php | 22 +-\n app/Services/Crm/Pipedrive/Service.php | 17 +-\n app/Services/Crm/Salesforce/Service.php | 42 +-\n app/Services/Mail/Office/EmailApiClient.php | 129 +---\n app/Services/RecallAI/Commands/ScheduleBotCommand.php | 39 +-\n app/Services/RecallAI/RecallAIService.php | 22 +-\n composer.json | 3 +-\n composer.lock | 87 ++-\n config/mcp.php | 23 +\n database/migrations/2026_04_30_120000_create_mcp_audit_log_table.php | 36 +\n docs/mcp/explorer/explorer.html | 697 ++++++++++++++++++\n docs/mcp/explorer/explorer.template.html | 697 ++++++++++++++++++\n docs/mcp/explorer/generate.js | 215 ++++++\n docs/mcp/explorer/tool-explorer-meta.json | 11 +\n docs/mcp/tools-list.json | 2536 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++\n docs/mcp/tools.md | 621 ++++++++++++++++\n front-end/package.json | 4 +-\n front-end/src/components/Settings/OrgSettings/AiAutomation/CrmFilling/TemplateFieldForm.vue | 28 +-\n front-end/src/components/Settings/OrgSettings/Playbooks/AddEditPlaybook.vue | 10 +\n front-end/src/components/playback/comments/ActivityComment.less | 10 +-\n front-end/src/components/shared/PromptTester/PromptTester.vue | 12 +-\n front-end/src/components/shared/__tests__/PromptTester.spec.js | 35 +\n front-end/src/components/shared/modals/EntityPickerModal/__tests__/useEntitiesCache.spec.ts | 37 +\n front-end/src/components/shared/modals/EntityPickerModal/useEntitiesCache.ts | 9 +\n front-end/yarn.lock | 16 +-\n phpstan-baseline.neon | 50 --\n routes/api.php | 11 +\n sonar-project.properties | 91 ++-\n tests/Feature/Component/Nudge/ProcessOrganisationImmediateNudgesJobTest.php | 534 ++++++++++++++\n tests/Feature/Jobs/ImportRemoteTrackJobTest.php | 283 +++++++-\n tests/Feature/Mcp/IssueMcpTokenCommandTest.php | 53 ++\n tests/Feature/Mcp/ListCallsToolElasticFeatureTest.php | 155 ++++\n tests/Feature/Mcp/ListCallsToolFeatureTest.php | 352 ++++++++++\n tests/Feature/Mcp/McpTestHelpersTrait.php | 77 ++\n tests/Feature/Services/Team/TeamDeleteHandlers/Retention/RetentionRepositoryHandlerTest.php | 1 +\n tests/Stubs/SentryStub.php | 18 +\n tests/Unit/Component/ActivityAnalytics/Service/CalculateTalkTimeOffsetFromTranscriptionTest.php | 28 +-\n tests/Unit/Component/AiActivityType/Services/AiActivityTypeEligibilityCheckerTest.php | 103 ++-\n tests/Unit/Component/AiAutomation/Actions/PrepareUpdateDtoActionTest.php | 91 +++\n tests/Unit/Component/AiAutomation/Services/CrmFillingEligibilityCheckerTest.php | 124 ++++\n tests/Unit/Component/AiAutomation/TestCrmAiPromptServiceTest.php | 67 +-\n tests/Unit/Component/AiCallScoring/Services/AiCallScoringEligibilityCheckerTest.php | 55 ++\n tests/Unit/Component/ES/ElasticSearchWorkerManagerTest.php | 135 ----\n tests/Unit/Component/ES/Processor/Actions/LoadDocumentsActionTest.php | 220 ++++++\n tests/Unit/Component/ES/Processor/EntityQueryBuilderTest.php | 21 +-\n tests/Unit/Component/ES/Processor/Traits/SkipActivityTraitTest.php | 51 --\n tests/Unit/Component/ES/Worker/ActivityWorkerTest.php | 174 -----\n tests/Unit/Component/ES/Worker/EntityWorkerTest.php | 97 ---\n tests/Unit/Component/ES/Worker/WorkerAmountTest.php | 116 ---\n tests/Unit/Component/Encoding/Job/AnalyzeTrackChannelsJobTest.php | 52 +-\n tests/Unit/Component/Encoding/Service/GenerateSpeechFromSilenceServiceTest.php | 171 ++---\n tests/Unit/Component/FFMpeg/Services/GetSpeechIntervalsTest.php | 36 +-\n tests/Unit/Component/LanguageDetection/Services/FindSpeechTimeServiceTest.php | 20 +-\n tests/Unit/Component/MobileSettings/MobileSettingsControllerTest.php | 5 +-\n tests/Unit/Component/ParticipantSpeech/Services/ParticipantSpeechesCreatorTest.php | 75 ++\n tests/Unit/Component/ParticipantSpeech/Services/ParticipantSpeechesDeleterTest.php | 63 ++\n tests/Unit/Component/ParticipantSpeech/Services/ParticipantSpeechesProviderTest.php | 134 ++++\n tests/Unit/Component/ParticipantSpeech/Services/ParticipantSpeechesUploaderTest.php | 57 ++\n tests/Unit/Component/Transcription/Diarization/Services/GetNormalizedParticipantSpeechesServiceTest.php | 51 +-\n tests/Unit/Component/Transcription/Diarization/Source/MeetingBotSourceTest.php | 29 +-\n tests/Unit/Contracts/Services/Calendar/CalendarTraitTest.php | 58 +-\n tests/Unit/Http/Controllers/Kiosk/ActivityControllerTest.php | 159 +++++\n tests/Unit/Jobs/Activity/Import/ImportTwilioVideoSpeechesJobTest.php | 22 +-\n tests/Unit/Jobs/Activity/Import/IsActivityReadyForProcessingJobTest.php | 26 +-\n tests/Unit/Jobs/Calendar/SetupCalendarSyncTest.php | 25 -\n tests/Unit/Services/Activity/ParticipantsServiceTest.php | 12 +-\n tests/Unit/Services/Activity/Twilio/S3RecordingCredentialsServiceTest.php | 180 +++++\n tests/Unit/Services/ActivityServiceTest.php | 132 ++++\n tests/Unit/Services/Calendar/CalendarActivityServiceTest.php | 150 +++-\n tests/Unit/Services/Calendar/Command/ImportParticipantsTest.php | 6 +-\n tests/Unit/Services/Calendar/Command/MapActivityDataTest.php | 78 +-\n tests/Unit/Services/Calendar/GoogleCalendarServiceTest.php | 116 +++\n tests/Unit/Services/Crm/Close/ServiceTest.php | 165 +++++\n tests/Unit/Services/Crm/Hubspot/ServiceTest.php | 272 ++++++-\n tests/Unit/Services/Crm/Hubspot/ServiceTraits/OpportunitySyncTest.php | 25 +-\n tests/Unit/Services/Crm/Hubspot/ServiceTraits/OpportunitySyncTraitMatchActivitiesTest.php | 3 +-\n tests/Unit/Services/Crm/IntegrationApp/ServiceTraits/SyncCrmEntitiesTraitOpportunitiesTest.php | 40 ++\n tests/Unit/Services/Crm/Pipedrive/ImportOpportunityMatchActivitiesTest.php | 2 +\n tests/Unit/Services/Crm/Salesforce/ServiceTest.php | 139 ++++\n tests/Unit/Services/Mail/Office/EmailApiClientTest.php | 195 ++---\n tests/Unit/Services/RecallAI/RecallAIServiceTest.php | 24 +-\n 175 files changed, 12562 insertions(+), 2162 deletions(-)\n create mode 120000 CLAUDE.md\n create mode 100644 app/Component/AiAutomation/Services/CrmFillingEligibilityChecker.php\n delete mode 100644 app/Component/ES/ElasticSearchWorkerManager.php\n delete mode 100644 app/Component/ES/Processor/Traits/SkipActivityTrait.php\n delete mode 100644 app/Component/ES/Worker/ActivityWorker.php\n delete mode 100644 app/Component/ES/Worker/EntityWorker.php\n delete mode 100644 app/Component/ES/Worker/WorkerAmount.php\n delete mode 100644 app/Component/ES/Worker/WorkerInterface.php\n create mode 100644 app/Component/ProphetAi/Exceptions/InsufficientTranscriptException.php\n create mode 100644 app/Component/Transcription/DTO/Http/Transcription/AssemblyAI/AssemblyAI/NoAssemblyIdException.php\n create mode 100644 app/Component/Transcription/DTO/Http/Transcription/TranscriptionIsNotCorrectFormatException.php\n create mode 100644 app/Console/Commands/Activities/SetupIntegration/TwilioSetS3RecordingCredentialsCommand.php\n create mode 100644 app/Console/Commands/Crm/BackfillOpportunityUserFromAccountCommand.php\n delete mode 100644 app/Console/Commands/Elasticsearch/AsyncUpdateEsActivities.php\n create mode 100644 app/Console/Commands/IssueMcpTokenCommand.php\n create mode 100644 app/Http/Middleware/McpAuditMiddleware.php\n create mode 100644 app/Http/Middleware/McpTierMiddleware.php\n create mode 100644 app/Mcp/Contracts/McpCallRepositoryInterface.php\n create mode 100644 app/Mcp/DTO/ListCallsFilters.php\n create mode 100644 app/Mcp/Errors/McpError.php\n create mode 100644 app/Mcp/Repositories/McpActivityHydrator.php\n create mode 100644 app/Mcp/Repositories/McpCallRepository.php\n create mode 100644 app/Mcp/Repositories/McpElasticCallRepository.php\n create mode 100644 app/Mcp/Servers/JiminnyServer.php\n create mode 100644 app/Mcp/Tools/ListCallsTool.php\n create mode 100644 app/Services/Activity/Twilio/S3RecordingCredentialsService.php\n create mode 100644 config/mcp.php\n create mode 100644 database/migrations/2026_04_30_120000_create_mcp_audit_log_table.php\n create mode 100644 docs/mcp/explorer/explorer.html\n create mode 100644 docs/mcp/explorer/explorer.template.html\n create mode 100644 docs/mcp/explorer/generate.js\n create mode 100644 docs/mcp/explorer/tool-explorer-meta.json\n create mode 100644 docs/mcp/tools-list.json\n create mode 100644 docs/mcp/tools.md\n create mode 100644 front-end/src/components/shared/modals/EntityPickerModal/__tests__/useEntitiesCache.spec.ts\n create mode 100644 tests/Feature/Component/Nudge/ProcessOrganisationImmediateNudgesJobTest.php\n create mode 100644 tests/Feature/Mcp/IssueMcpTokenCommandTest.php\n create mode 100644 tests/Feature/Mcp/ListCallsToolElasticFeatureTest.php\n create mode 100644 tests/Feature/Mcp/ListCallsToolFeatureTest.php\n create mode 100644 tests/Feature/Mcp/McpTestHelpersTrait.php\n create mode 100644 tests/Stubs/SentryStub.php\n create mode 100644 tests/Unit/Component/AiAutomation/Services/CrmFillingEligibilityCheckerTest.php\n delete mode 100644 tests/Unit/Component/ES/ElasticSearchWorkerManagerTest.php\n create mode 100644 tests/Unit/Component/ES/Processor/Actions/LoadDocumentsActionTest.php\n delete mode 100644 tests/Unit/Component/ES/Processor/Traits/SkipActivityTraitTest.php\n delete mode 100644 tests/Unit/Component/ES/Worker/ActivityWorkerTest.php\n delete mode 100644 tests/Unit/Component/ES/Worker/EntityWorkerTest.php\n delete mode 100644 tests/Unit/Component/ES/Worker/WorkerAmountTest.php\n create mode 100644 tests/Unit/Component/ParticipantSpeech/Services/ParticipantSpeechesCreatorTest.php\n create mode 100644 tests/Unit/Http/Controllers/Kiosk/ActivityControllerTest.php\n create mode 100644 tests/Unit/Services/Activity/Twilio/S3RecordingCredentialsServiceTest.php\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20725-handle-HS-search-rate-limit) $ git status\nOn branch master\nYour branch is behind 'origin/master' by 114 commits, and can be fast-forwarded.\n (use \"git pull\" to update your local branch)\n\nChanges not staged for commit:\n (use \"git add <file>...\" to update what will be committed)\n (use \"git restore <file>...\" to discard changes in working directory)\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tmodified: .env.local\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tmodified: app/Component/SCIM/Constants.php\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tmodified: app/Component/SCIM/ScimProvisioning.php\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tmodified: app/Component/Twilio/Conference/ConferenceManager/SoftPhoneManager.php\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tmodified: app/Console/Commands/JiminnyDebugCommand.php\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tmodified: app/DTO/SCIM/AAD/Request/CoreUserRequest.php\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tmodified: app/DTO/SCIM/AAD/Response/CoreUser.php\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tmodified: app/Services/Telephony/TextMessagingService.php\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tmodified: config/logging.php\n\nUntracked files:\n (use \"git add <file>...\" to include in what will be committed)\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\t.env.nikilocal\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\t.env.other\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tWEBHOOK_FILTERING_IMPLEMENTATION.md\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tapp/Component/SCIM/Mutators/Attributes/User/RoleAttr.php\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tapp/Console/Commands/Crm/Hubspot/SimulateWebhooksCommand.php\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tapp/Console/Commands/Reports/CreateMockAskJiminnyReportResultCommand.php\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tapp/Rules/ListenerRoleCannotHaveAdminOrManagerPermissionRule.php\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tids.txt\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tpublic/favicon.ico\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\traw_sql_query.sql\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\ttests/Unit/Component/SCIM/Mutators/Attributes/User/RoleAttrTest.php\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\ttests/Unit/Policies/CanAccessAiReportsTest.php\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\ttests/Unit/Rules/ListenerRoleCannotHaveAdminOrManagerPermissionRuleTest.php\n\nno changes added to commit (use \"git add\" and/or \"git commit -a\")\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (master) $ git pull\nremote: Enumerating objects: 306, done.\nremote: Counting objects: 100% (299/299), done.\nremote: Compressing objects: 100% (183/183), done.\nremote: Total 306 (delta 213), reused 171 (delta 116), pack-reused 7 (from 1)\nReceiving objects: 100% (306/306), 80.12 KiB | 1000.00 KiB/s, done.\nResolving deltas: 100% (213/213), completed with 53 local objects.\nFrom github.com:jiminny/app\n 90bca4e4b2..5604af40cf master -> origin/master\n 4e7078fd8b..0b8343d179 JY-18091-upgrade-to-php-8-5 -> origin/JY-18091-upgrade-to-php-8-5\n 098eeaa087..d5a447e492 JY-20613-allow-owner-role-on-team-setup -> origin/JY-20613-allow-owner-role-on-team-setup\n c3a76ace91..af65249d0f JY-20749-user-can-view-recorded-meetings -> origin/JY-20749-user-can-view-recorded-meetings\n d94a285ae7..7ce96cb5fe JY-20808-low-priority-indexing-queue -> origin/JY-20808-low-priority-indexing-queue\n * [new branch] JY-20842-remove-partial-updater -> origin/JY-20842-remove-partial-updater\n * [new branch] JY-20920-fix-participant-flip -> origin/JY-20920-fix-participant-flip\n * [new branch] secfix/npm-20260519 -> origin/secfix/npm-20260519\nUpdating cb4ebf0c36..5604af40cf\nFast-forward\n app/Component/ES/ChunkSize.php | 54 +++++++++++++++++++\n app/Component/ES/Processor/DTOs/SelectionList.php | 4 +-\n app/Component/ES/Processor/TargetEntitiesSelector.php | 19 ++++---\n app/Component/MeetingBot/Service/ParticipantMatcher.php | 46 ++++++++++++----\n app/Exceptions/RateLimitException.php | 19 ++++++-\n app/Http/Middleware/McpTierMiddleware.php | 27 ++--------\n app/Jobs/Crm/MatchActivityCrmData.php | 47 ++++++++++++----\n app/Jobs/Middleware/HandleHubspotRateLimit.php | 42 +++++++++++++++\n app/Mcp/Servers/JiminnyServer.php | 2 +\n app/Mcp/Tools/GetMeTool.php | 157 +++++++++++++++++++++++++++++++++++++++++++++++++++++\n app/Models/Feature/FeatureEnum.php | 1 +\n app/Services/Activity/HubSpot/ProviderResolver.php | 4 +-\n app/Services/Activity/HubSpot/ProviderResolverInterface.php | 2 +-\n app/Services/Activity/HubSpot/Providers/Provider.php | 2 +-\n app/Services/Activity/HubSpot/Providers/ProviderKixie.php | 2 +-\n app/Services/Activity/HubSpot/Providers/ProviderOrum.php | 2 +-\n app/Services/Activity/HubSpot/Providers/ProviderTwilio.php | 2 +-\n app/Services/Activity/HubSpot/Providers/ProviderTwilioFlex.php | 5 +-\n app/Services/Activity/HubSpot/Service.php | 97 +++++++++++++++++++++++++++------\n app/Services/Crm/Hubspot/Client.php | 132 +++++++++++++++++++++++++++++++++++++++++++++\n app/Services/Crm/Hubspot/HubspotClientInterface.php | 15 ++++++\n app/Services/Crm/Hubspot/Pagination/HubspotPaginationService.php | 21 ++++----\n app/Services/Crm/Hubspot/Pagination/PaginationState.php | 2 +-\n database/migrations/2026_05_13_124153_create_mcp_feature_flag.php | 25 +++++++++\n tests/Feature/Mcp/GetMeToolFeatureTest.php | 140 +++++++++++++++++++++++++++++++++++++++++++++++\n tests/Feature/Mcp/ListCallsToolFeatureTest.php | 2 +-\n tests/Feature/Mcp/McpTestHelpersTrait.php | 19 ++++++-\n tests/Unit/Component/ES/ChunkSizeTest.php | 50 +++++++++++++++++\n tests/Unit/Component/ES/Processor/DTOs/SelectionListTest.php | 27 +++++++---\n tests/Unit/Component/ES/Processor/TargetEntitiesSelectorTest.php | 39 ++++++++------\n tests/Unit/Component/MeetingBot/Service/ParticipantMatcherTest.php | 68 ++++++++++++++++++++++-\n tests/Unit/Exceptions/RateLimitExceptionTest.php | 56 +++++++++++++++++++\n tests/Unit/Jobs/Crm/MatchActivityCrmDataTest.php | 8 +--\n tests/Unit/Jobs/Middleware/HandleHubspotRateLimitTest.php | 151 +++++++++++++++++++++++++++++++++++++++++++++++++++\n tests/Unit/Services/Activity/HubSpot/ServiceTest.php | 109 +++++++++++++++++++++++++++++++++++++\n tests/Unit/Services/Crm/Hubspot/ClientTest.php | 250 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++\n tests/Unit/Services/Crm/Hubspot/Pagination/HubspotPaginationServiceTest.php | 283 +++++++++++++++++++++---------------------------------------------------------------------------\n 37 files changed, 1587 insertions(+), 344 deletions(-)\n create mode 100644 app/Component/ES/ChunkSize.php\n create mode 100644 app/Jobs/Middleware/HandleHubspotRateLimit.php\n create mode 100644 app/Mcp/Tools/GetMeTool.php\n create mode 100644 database/migrations/2026_05_13_124153_create_mcp_feature_flag.php\n create mode 100644 tests/Feature/Mcp/GetMeToolFeatureTest.php\n create mode 100644 tests/Unit/Component/ES/ChunkSizeTest.php\n create mode 100644 tests/Unit/Exceptions/RateLimitExceptionTest.php\n create mode 100644 tests/Unit/Jobs/Middleware/HandleHubspotRateLimitTest.php\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (master) $ git pull\nAlready up to date.\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (master) $ co -b JY-20676-delete-report-related-objects\nSwitched to a new branch 'JY-20676-delete-report-related-objects'\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20676-delete-report-related-objects) $ csfix\ndocker exec -it docker_lamp_1 ./vendor/bin/php-cs-fixer fix --config=.php-cs-fixer.dist.php -v --using-cache=no --diff \nPHP CS Fixer 3.87.1 Alexander by Fabien Potencier, Dariusz Ruminski and contributors.\nPHP runtime: 8.3.30\nRunning analysis on 7 cores with 10 files per process.\nParallel runner is an experimental feature and may be unstable, use it at your own risk. Feedback highly appreciated!\nLoaded config default from \".php-cs-fixer.dist.php\".\n 5690/5690 [▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓] 100%\n\n 1) app/Console/Commands/JiminnyDebugCommand.php (statement_indentation, blank_line_before_statement)\n ---------- begin diff ----------\n--- /home/jiminny/app/Console/Commands/JiminnyDebugCommand.php\n+++ /home/jiminny/app/Console/Commands/JiminnyDebugCommand.php\n@@ -23,6 +23,7 @@\n \n if ($action === 'redis-set') {\n $this->testRedisSet();\n+\n return;\n }\n \n@@ -45,7 +46,7 @@\n $ttl = 60;\n \n try {\n-// $result = Redis::set($testKey, $testValue, 'EX', $ttl, 'NX');\n+ // $result = Redis::set($testKey, $testValue, 'EX', $ttl, 'NX');\n $result = Redis::set($testKey, $testValue, ['nx', 'ex' => $ttl]);\n \n if ($result) {\n\n ----------- end diff -----------\n\n\nFixed 1 of 5690 files in 50.673 seconds, 67.00 MB memory used\n\nWhat's next:\n Try Docker Debug for seamless, persistent debugging tools in any container or image → docker debug docker_lamp_1\n Learn more at https://docs.docker.com/go/debug-cli/\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20676-delete-report-related-objects) $ ;xd\ndocker exec -it docker_lamp_1 bash -c \"mv /usr/local/etc/php/conf.d/xdebug.ini ~/xdebug.ini\"\n\nWhat's next:\n Try Docker Debug for seamless, persistent debugging tools in any container or image → docker debug docker_lamp_1\n Learn more at https://docs.docker.com/go/debug-cli/\ndocker exec -it docker_lamp_1 supervisorctl restart all\njiminny-worker-processing-2:jiminny-worker-processing-2_00: stopped\njiminny-worker-processing-3:jiminny-worker-processing-3_00: stopped\njiminny-worker-processing-4:jiminny-worker-processing-4_00: stopped\njiminny-worker-processing-5:jiminny-worker-processing-5_00: stopped\njiminny-worker-processing-delayed:jiminny-worker-processing-delayed_00: stopped\nworker-analytics:worker-analytics_00: stopped\nworker-crm-update:worker-crm-update_00: stopped\nworker-download:worker-download_00: stopped\nworker-nudges:worker-nudges_00: stopped\nworker-calendar:worker-calendar_00: stopped\nworker-audio:worker-audio_00: stopped\njiminny-worker-processing-1:jiminny-worker-processing-1_00: stopped\nworker:worker_00: stopped\nworker-conferences:worker-conferences_00: stopped\nworker-crm-sync:worker-crm-sync_00: stopped\nworker-emails:worker-emails_00: stopped\nworker-es-update:worker-es-update_00: stopped\nartisan-schedule:artisan-schedule_00: stopped\nartisan-schedule:artisan-schedule_00: started\njiminny-worker-processing-1:jiminny-worker-processing-1_00: started\njiminny-worker-processing-2:jiminny-worker-processing-2_00: started\njiminny-worker-processing-3:jiminny-worker-processing-3_00: started\njiminny-worker-processing-4:jiminny-worker-processing-4_00: started\njiminny-worker-processing-5:jiminny-worker-processing-5_00: started\njiminny-worker-processing-delayed:jiminny-worker-processing-delayed_00: started\nworker:worker_00: started\nworker-analytics:worker-analytics_00: started\nworker-audio:worker-audio_00: started\nworker-calendar:worker-calendar_00: started\nworker-conferences:worker-conferences_00: started\nworker-crm-sync:worker-crm-sync_00: started\nworker-crm-update:worker-crm-update_00: started\nworker-download:worker-download_00: started\nworker-emails:worker-emails_00: started\nworker-es-update:worker-es-update_00: started\nworker-nudges:worker-nudges_00: started\n\nWhat's next:\n Try Docker Debug for seamless, persistent debugging tools in any container or image → docker debug docker_lamp_1\n Learn more at https://docs.docker.com/go/debug-cli/\ndocker exec -it docker_lamp_1 php -v\nPHP 8.3.30 (cli) (built: Mar 16 2026 22:32:32) (NTS)\nCopyright (c) The PHP Group\nZend Engine v4.3.30, Copyright (c) Zend Technologies\n with Zend OPcache v8.3.30, Copyright (c), by Zend Technologies\n\nWhat's next:\n Try Docker Debug for seamless, persistent debugging tools in any container or image → docker debug docker_lamp_1\n Learn more at https://docs.docker.com/go/debug-cli/\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20676-delete-report-related-objects) $ git status\nOn branch JY-20676-delete-report-related-objects\nChanges not staged for commit:\n (use \"git add <file>...\" to update what will be committed)\n (use \"git restore <file>...\" to discard changes in working directory)\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tmodified: .env.local\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tmodified: app/Console/Commands/JiminnyDebugCommand.php\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tmodified: config/logging.php\n\nUntracked files:\n (use \"git add <file>...\" to include in what will be committed)\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\t.env.nikilocal\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\t.env.other\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tWEBHOOK_FILTERING_IMPLEMENTATION.md\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tapp/Console/Commands/Crm/Hubspot/SimulateWebhooksCommand.php\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tapp/Console/Commands/Reports/CreateMockAskJiminnyReportResultCommand.php\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tids.txt\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tpublic/favicon.ico\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\traw_sql_query.sql\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\ttests/Unit/Policies/CanAccessAiReportsTest.php\n\nno changes added to commit (use \"git add\" and/or \"git commit -a\")\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20676-delete-report-related-objects) $ git push -u origin JY-20676-delete-report-related-objects\nEnumerating objects: 45, done.\nCounting objects: 100% (45/45), done.\nDelta compression using up to 8 threads\nCompressing objects: 100% (24/24), done.\nWriting objects: 100% (24/24), 3.62 KiB | 3.62 MiB/s, done.\nTotal 24 (delta 19), reused 0 (delta 0), pack-reused 0\nremote: Resolving deltas: 100% (19/19), completed with 19 local objects.\nremote: \nremote: Create a pull request for 'JY-20676-delete-report-related-objects' on GitHub by visiting:\nremote: https://github.com/jiminny/app/pull/new/JY-20676-delete-report-related-objects\nremote: \nTo github.com:jiminny/app.git\n * [new branch] JY-20676-delete-report-related-objects -> JY-20676-delete-report-related-objects\nbranch 'JY-20676-delete-report-related-objects' set up to track 'origin/JY-20676-delete-report-related-objects'.\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20676-delete-report-related-objects) $ csfix\ndocker exec -it docker_lamp_1 ./vendor/bin/php-cs-fixer fix --config=.php-cs-fixer.dist.php -v --using-cache=no --diff \nPHP CS Fixer 3.87.1 Alexander by Fabien Potencier, Dariusz Ruminski and contributors.\nPHP runtime: 8.3.30\nRunning analysis on 7 cores with 10 files per process.\nParallel runner is an experimental feature and may be unstable, use it at your own risk. Feedback highly appreciated!\nLoaded config default from \".php-cs-fixer.dist.php\".\n 5690/5690 [▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓] 100%\n\n 1) app/Http/Controllers/API/V2/AskJiminnyReportsController.php (blank_line_before_statement)\n ---------- begin diff ----------\n--- /home/jiminny/app/Http/Controllers/API/V2/AskJiminnyReportsController.php\n+++ /home/jiminny/app/Http/Controllers/API/V2/AskJiminnyReportsController.php\n@@ -140,6 +140,7 @@\n if ($enabled && $report->isAskJiminnyReport() && ! $report->canExecute()) {\n $error = 'This report is missing a saved search or prompt. ' .\n 'Edit the report to complete the setup before enabling it.';\n+\n return new JsonResponse(\n ['error' => $error],\n Response::HTTP_UNPROCESSABLE_ENTITY\n\n ----------- end diff -----------\n\n\nFixed 1 of 5690 files in 71.757 seconds, 60.00 MB memory used\n\nWhat's next:\n Try Docker Debug for seamless, persistent debugging tools in any container or image → docker debug docker_lamp_1\n Learn more at https://docs.docker.com/go/debug-cli/\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20676-delete-report-related-objects) $ git pull\nremote: Enumerating objects: 158, done.\nremote: Counting objects: 100% (103/103), done.\nremote: Compressing objects: 100% (37/37), done.\nremote: Total 158 (delta 80), reused 74 (delta 66), pack-reused 55 (from 3)\nReceiving objects: 100% (158/158), 80.59 KiB | 982.00 KiB/s, done.\nResolving deltas: 100% (85/85), completed with 45 local objects.\nFrom github.com:jiminny/app\n 02a33811ee..c6ce5e2440 JY-20676-delete-report-related-objects -> origin/JY-20676-delete-report-related-objects\n 7ce96cb5fe..6c59f04358 JY-20808-low-priority-indexing-queue -> origin/JY-20808-low-priority-indexing-queue\n 3906a9238a..2b5e6ea62b JY-20835-mcp-enable-users-to-get-a-list-of-deals-and-their-details -> origin/JY-20835-mcp-enable-users-to-get-a-list-of-deals-and-their-details\n 5604af40cf..ea3519f0e2 master -> origin/master\n * [new branch] switch-eu-assembly -> origin/switch-eu-assembly\nUpdating 02a33811ee..c6ce5e2440\nFast-forward\n app/Component/ES/ElasticSearchDocumentPartialUpdater.php | 48 ---\n app/Component/ParticipantSpeech/Services/ParticipantAttributionService.php | 4 +-\n app/Component/Settings/AutoScoring/Services/UpdateAutoScoreService.php | 20 +-\n app/Component/Transcription/Service/StorageService.php | 8 +-\n front-end/package.json | 2 +-\n front-end/src/components/DealInsights/Modals/AskAnythingModal.vue | 23 ++\n front-end/src/components/shared/AskAnything/AskAnythingPromptFormItem.vue | 2 +\n front-end/src/components/shared/AskAnything/AskAnythingSettingsDrawer.vue | 23 +-\n front-end/src/components/shared/AskAnything/__mocks__/AskAnythingSettingsDrawer.mocks.js | 1 +\n front-end/src/components/shared/AskAnything/__tests__/AskAnythingSettingsDrawer.spec.js | 135 ++++---\n front-end/src/components/shared/AskAnything/__tests__/__snapshots__/AskAnythingSettingsDrawer.spec.js.html | 1235 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++\n front-end/src/components/shared/AskAnything/__tests__/__snapshots__/AskAnythingSettingsDrawer.spec.js.snap | 1382 ----------------------------------------------------------------\n front-end/src/components/shared/AskAnything/prompts.js | 1 +\n front-end/src/components/shared/AskAnything/useAskAnything.js | 1 +\n front-end/yarn.lock | 8 +-\n tests/Unit/Component/ES/ElasticSearchDocumentPartialUpdaterTest.php | 42 --\n tests/Unit/Component/Settings/AutoScoring/Services/UpdateAutoScoreServiceTest.php | 86 ++--\n tests/Unit/Component/Transcription/Service/StorageServiceTest.php | 29 +-\n 18 files changed, 1448 insertions(+), 1602 deletions(-)\n delete mode 100644 app/Component/ES/ElasticSearchDocumentPartialUpdater.php\n create mode 100644 front-end/src/components/shared/AskAnything/__tests__/__snapshots__/AskAnythingSettingsDrawer.spec.js.html\n delete mode 100644 front-end/src/components/shared/AskAnything/__tests__/__snapshots__/AskAnythingSettingsDrawer.spec.js.snap\n delete mode 100644 tests/Unit/Component/ES/ElasticSearchDocumentPartialUpdaterTest.php\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20676-delete-report-related-objects) $ csfix\ndocker exec -it docker_lamp_1 ./vendor/bin/php-cs-fixer fix --config=.php-cs-fixer.dist.php -v --using-cache=no --diff \nPHP CS Fixer 3.87.1 Alexander by Fabien Potencier, Dariusz Ruminski and contributors.\nPHP runtime: 8.3.30\nRunning analysis on 7 cores with 10 files per process.\nParallel runner is an experimental feature and may be unstable, use it at your own risk. Feedback highly appreciated!\nLoaded config default from \".php-cs-fixer.dist.php\".\n 5688/5688 [▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓] 100%\n\n\nFixed 0 of 5688 files in 79.904 seconds, 60.00 MB memory used\n\nWhat's next:\n Try Docker Debug for seamless, persistent debugging tools in any container or image → docker debug docker_lamp_1\n Learn more at https://docs.docker.com/go/debug-cli/\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20676-delete-report-related-objects) $","depth":4,"on_screen":true,"value":"Last login: Mon May 18 09:17:28 on ttys007\n\nPoetry could not find a pyproject.toml file in /Users/lukas/jiminny/app or its parents\n\nPoetry could not find a pyproject.toml file in /Users/lukas/jiminny/app or its parents\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (pipedrive-sdk-poc) $ co master\nerror: Your local changes to the following files would be overwritten by checkout:\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tPIPEDRIVE_V2_MIGRATION_TICKETS.md\nPlease commit your changes or stash them before you switch branches.\nAborting\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (pipedrive-sdk-poc) $ git pull\nremote: Enumerating objects: 1047, done.\nremote: Counting objects: 100% (832/832), done.\nremote: Compressing objects: 100% (298/298), done.\nremote: Total 1047 (delta 634), reused 596 (delta 534), pack-reused 215 (from 3)\nReceiving objects: 100% (1047/1047), 353.16 KiB | 1.56 MiB/s, done.\nResolving deltas: 100% (687/687), completed with 107 local objects.\nFrom github.com:jiminny/app\n 907c54896c..34656c53ed pipedrive-sdk-poc -> origin/pipedrive-sdk-poc\n 03325ec50f..4e7078fd8b JY-18091-upgrade-to-php-8-5 -> origin/JY-18091-upgrade-to-php-8-5\n e7d231e163..bc6a3fce6b JY-20725-handle-HS-search-rate-limit -> origin/JY-20725-handle-HS-search-rate-limit\n * [new branch] JY-20749-user-can-view-recorded-meetings -> origin/JY-20749-user-can-view-recorded-meetings\n 98ca281a04..e0351be069 JY-20808-low-priority-indexing-queue -> origin/JY-20808-low-priority-indexing-queue\n 569abb5149..3906a9238a JY-20835-mcp-enable-users-to-get-a-list-of-deals-and-their-details -> origin/JY-20835-mcp-enable-users-to-get-a-list-of-deals-and-their-details\n ad6c2a86e8..50eb6afba9 JY-20846-mcp-enable-the-ai-to-know-details-about-the-user -> origin/JY-20846-mcp-enable-the-ai-to-know-details-about-the-user\n * [new branch] JY-20893-chunk-control-per-update-target -> origin/JY-20893-chunk-control-per-update-target\n 31c62924a5..cb4ebf0c36 master -> origin/master\nUpdating 907c54896c..34656c53ed\nFast-forward\n PIPEDRIVE_V2_MIGRATION_TICKETS.md | 52 ++++++++++++++++++++++++++++++++++++++++++++++++++++\n 1 file changed, 52 insertions(+)\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (pipedrive-sdk-poc) $ co master\nM\u0000\u0000\u0000\u0000\u0000\u0000\t.env.local\nM\u0000\u0000\u0000\u0000\u0000\u0000\tconfig/logging.php\nSwitched to branch 'master'\nYour branch is behind 'origin/master' by 31 commits, and can be fast-forwarded.\n (use \"git pull\" to update your local branch)\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (master) $ git pull\nUpdating 31c62924a5..cb4ebf0c36\nFast-forward\n app/Component/ES/Processor/Traits/SelectEntityListTrait.php | 20 ------\n app/Services/Calendar/CalendarActivityService.php | 46 +++++++++++++\n app/Services/Calendar/Command/MapActivityData.php | 106 +++-------------------------\n docs/mcp/explorer/explorer.html | 104 +++++++++++++++++++++++++---\n docs/mcp/explorer/explorer.template.html | 102 ++++++++++++++++++++++++---\n docs/mcp/tools-list.json | 373 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++-------\n docs/mcp/tools.md | 117 +++++++++++++++++++++++--------\n tests/Unit/Component/ES/AsyncUpdateElasticSearchTest.php | 16 +----\n tests/Unit/Component/ES/Listeners/UpdateMultipleTargetsListenerTest.php | 10 ---\n tests/Unit/Component/ES/Listeners/UpdateSingleTargetListenerTest.php | 6 --\n tests/Unit/Component/ES/Processor/TargetEntitiesSelectorTest.php | 9 ---\n tests/Unit/Component/ES/Processor/Traits/SelectEntityListTraitTest.php | 15 ++--\n tests/Unit/Component/ES/UpdateProcessManagerTest.php | 2 -\n tests/Unit/Services/Calendar/CalendarActivityServiceTest.php | 150 ++++++++++++++++++++++++++++++++++++++--\n tests/Unit/Services/Calendar/Command/MapActivityDataTest.php | 78 ++-------------------\n 15 files changed, 832 insertions(+), 322 deletions(-)\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (master) $ co -b JY-20613-allow-owner-role-on-team-setup\nSwitched to a new branch 'JY-20613-allow-owner-role-on-team-setup'\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20613-allow-owner-role-on-team-setup) $ csfix\ndocker exec -it docker_lamp_1 ./vendor/bin/php-cs-fixer fix --config=.php-cs-fixer.dist.php -v --using-cache=no --diff \nPHP CS Fixer 3.87.1 Alexander by Fabien Potencier, Dariusz Ruminski and contributors.\nPHP runtime: 8.3.30\nRunning analysis on 7 cores with 10 files per process.\nParallel runner is an experimental feature and may be unstable, use it at your own risk. Feedback highly appreciated!\nLoaded config default from \".php-cs-fixer.dist.php\".\n 5682/5682 [▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓] 100%\n\n\nFixed 0 of 5682 files in 56.978 seconds, 67.00 MB memory used\n\nWhat's next:\n Try Docker Debug for seamless, persistent debugging tools in any container or image → docker debug docker_lamp_1\n Learn more at https://docs.docker.com/go/debug-cli/\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20613-allow-owner-role-on-team-setup) $ ;xd\ndocker exec -it docker_lamp_1 bash -c \"mv /usr/local/etc/php/conf.d/xdebug.ini ~/xdebug.ini\"\n\nWhat's next:\n Try Docker Debug for seamless, persistent debugging tools in any container or image → docker debug docker_lamp_1\n Learn more at https://docs.docker.com/go/debug-cli/\ndocker exec -it docker_lamp_1 supervisorctl restart all\njiminny-worker-processing-2:jiminny-worker-processing-2_00: stopped\njiminny-worker-processing-3:jiminny-worker-processing-3_00: stopped\njiminny-worker-processing-4:jiminny-worker-processing-4_00: stopped\njiminny-worker-processing-5:jiminny-worker-processing-5_00: stopped\njiminny-worker-processing-delayed:jiminny-worker-processing-delayed_00: stopped\nworker-analytics:worker-analytics_00: stopped\nworker-crm-update:worker-crm-update_00: stopped\nworker-download:worker-download_00: stopped\nworker-nudges:worker-nudges_00: stopped\nartisan-schedule:artisan-schedule_00: stopped\nworker-emails:worker-emails_00: stopped\nworker-calendar:worker-calendar_00: stopped\nworker:worker_00: stopped\nworker-conferences:worker-conferences_00: stopped\nworker-crm-sync:worker-crm-sync_00: stopped\njiminny-worker-processing-1:jiminny-worker-processing-1_00: stopped\nworker-audio:worker-audio_00: stopped\nworker-es-update:worker-es-update_00: stopped\nartisan-schedule:artisan-schedule_00: started\njiminny-worker-processing-1:jiminny-worker-processing-1_00: started\njiminny-worker-processing-2:jiminny-worker-processing-2_00: started\njiminny-worker-processing-3:jiminny-worker-processing-3_00: started\njiminny-worker-processing-4:jiminny-worker-processing-4_00: started\njiminny-worker-processing-5:jiminny-worker-processing-5_00: started\njiminny-worker-processing-delayed:jiminny-worker-processing-delayed_00: started\nworker:worker_00: started\nworker-analytics:worker-analytics_00: started\nworker-audio:worker-audio_00: started\nworker-calendar:worker-calendar_00: started\nworker-conferences:worker-conferences_00: started\nworker-crm-sync:worker-crm-sync_00: started\nworker-crm-update:worker-crm-update_00: started\nworker-download:worker-download_00: started\nworker-emails:worker-emails_00: started\nworker-es-update:worker-es-update_00: started\nworker-nudges:worker-nudges_00: started\n\nWhat's next:\n Try Docker Debug for seamless, persistent debugging tools in any container or image → docker debug docker_lamp_1\n Learn more at https://docs.docker.com/go/debug-cli/\ndocker exec -it docker_lamp_1 php -v\nPHP 8.3.30 (cli) (built: Mar 16 2026 22:32:32) (NTS)\nCopyright (c) The PHP Group\nZend Engine v4.3.30, Copyright (c) Zend Technologies\n with Zend OPcache v8.3.30, Copyright (c), by Zend Technologies\n\nWhat's next:\n Try Docker Debug for seamless, persistent debugging tools in any container or image → docker debug docker_lamp_1\n Learn more at https://docs.docker.com/go/debug-cli/\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20613-allow-owner-role-on-team-setup) $ csfix\ndocker exec -it docker_lamp_1 ./vendor/bin/php-cs-fixer fix --config=.php-cs-fixer.dist.php -v --using-cache=no --diff \nPHP CS Fixer 3.87.1 Alexander by Fabien Potencier, Dariusz Ruminski and contributors.\nPHP runtime: 8.3.30\nRunning analysis on 7 cores with 10 files per process.\nParallel runner is an experimental feature and may be unstable, use it at your own risk. Feedback highly appreciated!\nLoaded config default from \".php-cs-fixer.dist.php\".\n 5682/5682 [▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓] 100%\n\n\nFixed 0 of 5682 files in 49.910 seconds, 60.00 MB memory used\n\nWhat's next:\n Try Docker Debug for seamless, persistent debugging tools in any container or image → docker debug docker_lamp_1\n Learn more at https://docs.docker.com/go/debug-cli/\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20613-allow-owner-role-on-team-setup) $ git status\nOn branch JY-20613-allow-owner-role-on-team-setup\nYour branch is ahead of 'origin/JY-20613-allow-owner-role-on-team-setup' by 1 commit.\n (use \"git push\" to publish your local commits)\n\nChanges not staged for commit:\n (use \"git add <file>...\" to update what will be committed)\n (use \"git restore <file>...\" to discard changes in working directory)\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tmodified: .env.local\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tmodified: config/logging.php\n\nUntracked files:\n (use \"git add <file>...\" to include in what will be committed)\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\t.env.nikilocal\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\t.env.other\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tWEBHOOK_FILTERING_IMPLEMENTATION.md\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tapp/Console/Commands/Crm/Hubspot/SimulateWebhooksCommand.php\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tapp/Console/Commands/Reports/CreateMockAskJiminnyReportResultCommand.php\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tids.txt\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tpublic/favicon.ico\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\traw_sql_query.sql\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\ttests/Unit/Policies/CanAccessAiReportsTest.php\n\nno changes added to commit (use \"git add\" and/or \"git commit -a\")\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20613-allow-owner-role-on-team-setup) $ git pull\nremote: Enumerating objects: 248, done.\nremote: Counting objects: 100% (128/128), done.\nremote: Compressing objects: 100% (23/23), done.\nremote: Total 59 (delta 43), reused 44 (delta 33), pack-reused 0 (from 0)\nUnpacking objects: 100% (59/59), 10.48 KiB | 228.00 KiB/s, done.\nFrom github.com:jiminny/app\n b7df560451..190239dfd4 JY-20613-allow-owner-role-on-team-setup -> origin/JY-20613-allow-owner-role-on-team-setup\n e0351be069..d94a285ae7 JY-20808-low-priority-indexing-queue -> origin/JY-20808-low-priority-indexing-queue\n * [new branch] JY-20920-fix-participant-matcher -> origin/JY-20920-fix-participant-matcher\n cb4ebf0c36..90bca4e4b2 master -> origin/master\nMerge made by the 'ort' strategy.\n app/Component/ES/ChunkSize.php | 54 +++++++++++++++++++++++++++\n app/Component/ES/Processor/DTOs/SelectionList.php | 4 +-\n app/Component/ES/Processor/TargetEntitiesSelector.php | 19 ++++++----\n app/Http/Middleware/McpTierMiddleware.php | 27 +++-----------\n app/Mcp/Servers/JiminnyServer.php | 2 +\n app/Mcp/Tools/GetMeTool.php | 157 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++\n app/Models/Feature/FeatureEnum.php | 1 +\n database/migrations/2026_05_13_124153_create_mcp_feature_flag.php | 25 +++++++++++++\n front-end/src/components/Settings/Kiosk/modals/EditTeamModal/EditTeamModal.vue | 52 ++++++++++++++++++--------\n front-end/src/components/Settings/Kiosk/modals/EditTeamModal/__tests__/EditTeamModal.spec.js | 14 +++++++\n tests/Feature/Mcp/GetMeToolFeatureTest.php | 140 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++\n tests/Feature/Mcp/ListCallsToolFeatureTest.php | 2 +-\n tests/Feature/Mcp/McpTestHelpersTrait.php | 19 +++++++++-\n tests/Unit/Component/ES/ChunkSizeTest.php | 50 +++++++++++++++++++++++++\n tests/Unit/Component/ES/Processor/DTOs/SelectionListTest.php | 27 ++++++++++----\n tests/Unit/Component/ES/Processor/TargetEntitiesSelectorTest.php | 39 +++++++++++---------\n 16 files changed, 557 insertions(+), 75 deletions(-)\n create mode 100644 app/Component/ES/ChunkSize.php\n create mode 100644 app/Mcp/Tools/GetMeTool.php\n create mode 100644 database/migrations/2026_05_13_124153_create_mcp_feature_flag.php\n create mode 100644 tests/Feature/Mcp/GetMeToolFeatureTest.php\n create mode 100644 tests/Unit/Component/ES/ChunkSizeTest.php\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20613-allow-owner-role-on-team-setup) $ git push\nEnumerating objects: 40, done.\nCounting objects: 100% (34/34), done.\nDelta compression using up to 8 threads\nCompressing objects: 100% (18/18), done.\nWriting objects: 100% (18/18), 1.58 KiB | 1.58 MiB/s, done.\nTotal 18 (delta 15), reused 0 (delta 0), pack-reused 0\nremote: Resolving deltas: 100% (15/15), completed with 13 local objects.\nTo github.com:jiminny/app.git\n 190239dfd4..ec1b261264 JY-20613-allow-owner-role-on-team-setup -> JY-20613-allow-owner-role-on-team-setup\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20613-allow-owner-role-on-team-setup) $ gbr\n* JY-20613-allow-owner-role-on-team-setup\n pipedrive-sdk-poc\n master\n JY-20903-update_activity-stage-on-opportunity-change\n JY-20904-fix-update-es-on-activity-command\n JY-20891-improve-sms-text-relays\n JY-20725-handle-HS-search-rate-limit\n JY-20818-move-AJ-reports-to-separated-datadog-metric\n JY-20773-fix-automated-reports-user-pilot-tracking\n JY-20157-AJ-report-not-send-notification\n JY-20508-notify-before-AJ-report-expiration\n JY-20372-ai-reports-promotion-pages\n JY-20352-sync-opportunities-without-a-local-owner-user-id-is-null\n JY-20738-debug-AJ-tracking-UP\n a\n JY-18909-automated-reports-ask-jiminny\n JY-20692-fix-integration-app-token-auth-response-change\n JY-20553-debug-crm-sync-delays\n JY-20698-fix-SF-activity-types-on-new-playbook\n JY-20543-AJ-report-tracking\n JY-20384-handle-auto-sync-with-no-access-to-event-type\n JY-20458-ask-jiminny-user-definitions\n JY-19666-fix-import-contacts-account-association\n JY-19666-HS-import-contacts-and-accounts-batch-job\n JY-20458-Ask-Jiminny-Reports\n JY-20200-batch-update-CRM-objects-Salesforce\n JY-19666-HS-webhooks-add-contact-and-company\n JY-20348-trigger-setup-DI-layout-on-team-creation\n JY-20326-refactor-info-message-in-command\n JY-20317-fix-auto-log-delay-issue-on-all-channels-disabled\n JY-20312-remove-on-update-change-last-synced-at-crm-configurations\n JY-20306-SF-skip-auto-sync-for-task-based-playbook\n JY-20192-remove-deleted-team-from-saved-search-filters\n JY-20197-import-opportunity-batch-job\n JY-20293-enable-status-field-for-pipedrive-deals\n JY-20191-remove-commands-interactive-prompts\n JY-20118-change-default-sync-strategy\n JY-20183-add-cache-on-auto-log-delay\n JY-20197-add-import-opportunity-batch-job\n 20118-hs-opportunity-make-webhook-strategy-default\n JY-20118-make-default-hs-opportunity-sync-strategy-webhook-based\n JY-20196-handle-opportunity-without-note\n JY-20118-improve-opportunity-import\n JY-20189-handle-activity-search-on-deleted-groups\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20613-allow-owner-role-on-team-setup) $ co JY-20725-handle-HS-search-rate-limit\nM\u0000\u0000\u0000\u0000\u0000\u0000\t.env.local\nM\u0000\u0000\u0000\u0000\u0000\u0000\tconfig/logging.php\nSwitched to branch 'JY-20725-handle-HS-search-rate-limit'\nYour branch is behind 'origin/JY-20725-handle-HS-search-rate-limit' by 439 commits, and can be fast-forwarded.\n (use \"git pull\" to update your local branch)\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20725-handle-HS-search-rate-limit) $ git pull\nUpdating 0f3e438941..bc6a3fce6b\nFast-forward\n .gitignore | 3 +-\n .windsurfrules | 168 ++---\n CLAUDE.md | 1 +\n app/Component/ActivityAnalytics/Service/CalculateTalkTimeOffsetsFromTranscription.php | 24 +-\n app/Component/AiActivityType/Services/AiActivityTypeEligibilityChecker.php | 28 +-\n app/Component/AiAutomation/Actions/PrepareUpdateDtoAction.php | 32 +-\n app/Component/AiAutomation/Services/CrmFillingEligibilityChecker.php | 47 ++\n app/Component/AiAutomation/TestCrmAiPromptService.php | 14 +\n app/Component/AiCallScoring/Services/AiCallScoringEligibilityChecker.php | 9 +\n app/Component/ES/ElasticSearchDocumentPartialUpdater.php | 13 +-\n app/Component/ES/ElasticSearchWorkerManager.php | 86 ---\n app/Component/ES/Processor/Actions/LoadDocumentsAction.php | 80 +--\n app/Component/ES/Processor/EntityQueryBuilder.php | 12 +-\n app/Component/ES/Processor/TargetEntitiesSelector.php | 2 +-\n app/Component/ES/Processor/Traits/SkipActivityTrait.php | 25 -\n app/Component/ES/Repositories/EsResetActivityRepository.php | 11 +-\n app/Component/ES/Worker/ActivityWorker.php | 73 --\n app/Component/ES/Worker/EntityWorker.php | 44 --\n app/Component/ES/Worker/WorkerAmount.php | 60 --\n app/Component/ES/Worker/WorkerInterface.php | 15 -\n app/Component/ElasticSearch/Contract/Searchable.php | 4 +\n app/Component/Encoding/Job/AnalyzeTrackChannelsJob.php | 20 +-\n app/Component/Encoding/Service/GenerateSpeechFromSilenceService.php | 85 ++-\n app/Component/FFMpeg/Services/GetSpeechIntervalsService.php | 18 +-\n app/Component/LanguageDetection/Services/FindSpeechTimeService.php | 22 +-\n app/Component/Nudge/Job/ProcessOrganisationImmediateNudgesJob.php | 218 +++++-\n app/Component/ParagraphBreaker/Services/TranscriptionParagraphsService.php | 4 +\n app/Component/ParticipantSpeech/Services/ParticipantSpeechesCreator.php | 33 +\n app/Component/ParticipantSpeech/Services/ParticipantSpeechesDeleter.php | 15 +\n app/Component/ParticipantSpeech/Services/ParticipantSpeechesProvider.php | 51 +-\n app/Component/ParticipantSpeech/Services/ParticipantSpeechesUploader.php | 36 +\n app/Component/ProphetAi/Exceptions/InsufficientTranscriptException.php | 11 +\n app/Component/Transcription/DTO/Http/Transcription/AssemblyAI/AssemblyAI/NoAssemblyIdException.php | 11 +\n app/Component/Transcription/DTO/Http/Transcription/AssemblyAI/AssemblyAI/SuccessfulResponse.php | 6 +\n app/Component/Transcription/DTO/Http/Transcription/TranscriptionIsNotCorrectFormatException.php | 11 +\n app/Component/Transcription/Diarization/Services/GetNormalizedParticipantSpeechesService.php | 23 +-\n app/Component/Transcription/Diarization/Source/MeetingBotSource.php | 16 +-\n app/Component/Transcription/TranscriptionProcessor/TranscriptionProcessor.php | 3 +\n app/Console/Commands/Activities/ActivityHardDeleteCommand.php | 4 +-\n app/Console/Commands/Activities/Copy.php | 2 +\n app/Console/Commands/Activities/SetupIntegration/TwilioSetS3RecordingCredentialsCommand.php | 119 ++++\n app/Console/Commands/Activities/UpdateActivityElasticSearchDocumentCommand.php | 10 +-\n app/Console/Commands/Crm/BackfillOpportunityUserFromAccountCommand.php | 126 ++++\n app/Console/Commands/Elasticsearch/AsyncUpdateEsActivities.php | 19 -\n app/Console/Commands/Elasticsearch/AsyncUpdateEsEntities.php | 50 +-\n app/Console/Commands/Elasticsearch/ResetAsyncElasticSearchCommand.php | 30 +-\n app/Console/Commands/GeckoExport/GeckoExportParticipantSpeechesCommand.php | 14 +-\n app/Console/Commands/IssueMcpTokenCommand.php | 84 +++\n app/Console/Commands/JiminnyDebugCommand.php | 7 +-\n app/Console/Commands/Tracks/CleanupActivityTracksCommand.php | 2 +-\n app/Console/Kernel.php | 6 +-\n app/Contracts/Services/Calendar/CalendarTrait.php | 80 ++-\n app/Events/AutomatedReports/AutomatedReportGenerated.php | 3 +\n app/Http/Controllers/API/AiCallScoring/AiScorecardController.php | 7 +-\n app/Http/Controllers/API/TeamAiAutomationController.php | 8 +\n app/Http/Controllers/CustomerApi/CustomerApiController.php | 4 +-\n app/Http/Controllers/Kiosk/ActivityController.php | 58 +-\n app/Http/Controllers/Settings/PlaybookController.php | 15 +-\n app/Http/Kernel.php | 23 +\n app/Http/Middleware/McpAuditMiddleware.php | 156 ++++\n app/Http/Middleware/McpTierMiddleware.php | 54 ++\n app/Http/Requests/API/V2/ZapierUploadActivityRequest.php | 28 +-\n app/Jobs/Activity/Import/ImportTwilioVideoSpeechesJob.php | 25 +-\n app/Jobs/Activity/Import/IsActivityReadyForProcessingJob.php | 10 +-\n app/Jobs/Calendar/SetupCalendarSync.php | 21 +-\n app/Jobs/ImportRemoteTrackJob.php | 96 ++-\n app/Jobs/Mailbox/EmailTextRelay.php | 15 +-\n app/Mcp/Contracts/McpCallRepositoryInterface.php | 30 +\n app/Mcp/DTO/ListCallsFilters.php | 29 +\n app/Mcp/Errors/McpError.php | 123 ++++\n app/Mcp/Repositories/McpActivityHydrator.php | 145 ++++\n app/Mcp/Repositories/McpCallRepository.php | 84 +++\n app/Mcp/Repositories/McpElasticCallRepository.php | 171 +++++\n app/Mcp/Servers/JiminnyServer.php | 38 +\n app/Mcp/Tools/ListCallsTool.php | 205 ++++++\n app/Models/Activity.php | 10 +-\n app/Models/Activity/Transcription.php | 17 +-\n app/Models/ElasticSearch/OpportunityElasticSearchTrait.php | 5 +\n app/Models/Participant.php | 1 +\n app/Providers/AppServiceProvider.php | 22 +\n app/Repositories/Crm/ContactRepository.php | 69 +-\n app/Repositories/ParticipantSpeechRepository.php | 13 +-\n app/Services/Activity/ParticipantsService.php | 19 +-\n app/Services/Activity/Twilio/S3RecordingCredentialsService.php | 82 +++\n app/Services/ActivityService.php | 21 +-\n app/Services/Calendar/CalendarActivityService.php | 46 ++\n app/Services/Calendar/Command/ImportParticipants.php | 1 +\n app/Services/Calendar/Command/MapActivityData.php | 106 +--\n app/Services/Calendar/GoogleCalendarService.php | 12 +-\n app/Services/Crm/Close/Processor/OpportunityProcessor.php | 2 +-\n app/Services/Crm/Close/Service.php | 22 +-\n app/Services/Crm/Copper/Service.php | 12 +-\n app/Services/Crm/Hubspot/Service.php | 154 +++-\n app/Services/Crm/Hubspot/ServiceTraits/OpportunitySyncTrait.php | 88 ++-\n app/Services/Crm/IntegrationApp/ServiceTraits/SyncCrmEntitiesTrait.php | 22 +-\n app/Services/Crm/Pipedrive/Service.php | 17 +-\n app/Services/Crm/Salesforce/Service.php | 42 +-\n app/Services/Mail/Office/EmailApiClient.php | 129 +---\n app/Services/RecallAI/Commands/ScheduleBotCommand.php | 39 +-\n app/Services/RecallAI/RecallAIService.php | 22 +-\n composer.json | 3 +-\n composer.lock | 87 ++-\n config/mcp.php | 23 +\n database/migrations/2026_04_30_120000_create_mcp_audit_log_table.php | 36 +\n docs/mcp/explorer/explorer.html | 697 ++++++++++++++++++\n docs/mcp/explorer/explorer.template.html | 697 ++++++++++++++++++\n docs/mcp/explorer/generate.js | 215 ++++++\n docs/mcp/explorer/tool-explorer-meta.json | 11 +\n docs/mcp/tools-list.json | 2536 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++\n docs/mcp/tools.md | 621 ++++++++++++++++\n front-end/package.json | 4 +-\n front-end/src/components/Settings/OrgSettings/AiAutomation/CrmFilling/TemplateFieldForm.vue | 28 +-\n front-end/src/components/Settings/OrgSettings/Playbooks/AddEditPlaybook.vue | 10 +\n front-end/src/components/playback/comments/ActivityComment.less | 10 +-\n front-end/src/components/shared/PromptTester/PromptTester.vue | 12 +-\n front-end/src/components/shared/__tests__/PromptTester.spec.js | 35 +\n front-end/src/components/shared/modals/EntityPickerModal/__tests__/useEntitiesCache.spec.ts | 37 +\n front-end/src/components/shared/modals/EntityPickerModal/useEntitiesCache.ts | 9 +\n front-end/yarn.lock | 16 +-\n phpstan-baseline.neon | 50 --\n routes/api.php | 11 +\n sonar-project.properties | 91 ++-\n tests/Feature/Component/Nudge/ProcessOrganisationImmediateNudgesJobTest.php | 534 ++++++++++++++\n tests/Feature/Jobs/ImportRemoteTrackJobTest.php | 283 +++++++-\n tests/Feature/Mcp/IssueMcpTokenCommandTest.php | 53 ++\n tests/Feature/Mcp/ListCallsToolElasticFeatureTest.php | 155 ++++\n tests/Feature/Mcp/ListCallsToolFeatureTest.php | 352 ++++++++++\n tests/Feature/Mcp/McpTestHelpersTrait.php | 77 ++\n tests/Feature/Services/Team/TeamDeleteHandlers/Retention/RetentionRepositoryHandlerTest.php | 1 +\n tests/Stubs/SentryStub.php | 18 +\n tests/Unit/Component/ActivityAnalytics/Service/CalculateTalkTimeOffsetFromTranscriptionTest.php | 28 +-\n tests/Unit/Component/AiActivityType/Services/AiActivityTypeEligibilityCheckerTest.php | 103 ++-\n tests/Unit/Component/AiAutomation/Actions/PrepareUpdateDtoActionTest.php | 91 +++\n tests/Unit/Component/AiAutomation/Services/CrmFillingEligibilityCheckerTest.php | 124 ++++\n tests/Unit/Component/AiAutomation/TestCrmAiPromptServiceTest.php | 67 +-\n tests/Unit/Component/AiCallScoring/Services/AiCallScoringEligibilityCheckerTest.php | 55 ++\n tests/Unit/Component/ES/ElasticSearchWorkerManagerTest.php | 135 ----\n tests/Unit/Component/ES/Processor/Actions/LoadDocumentsActionTest.php | 220 ++++++\n tests/Unit/Component/ES/Processor/EntityQueryBuilderTest.php | 21 +-\n tests/Unit/Component/ES/Processor/Traits/SkipActivityTraitTest.php | 51 --\n tests/Unit/Component/ES/Worker/ActivityWorkerTest.php | 174 -----\n tests/Unit/Component/ES/Worker/EntityWorkerTest.php | 97 ---\n tests/Unit/Component/ES/Worker/WorkerAmountTest.php | 116 ---\n tests/Unit/Component/Encoding/Job/AnalyzeTrackChannelsJobTest.php | 52 +-\n tests/Unit/Component/Encoding/Service/GenerateSpeechFromSilenceServiceTest.php | 171 ++---\n tests/Unit/Component/FFMpeg/Services/GetSpeechIntervalsTest.php | 36 +-\n tests/Unit/Component/LanguageDetection/Services/FindSpeechTimeServiceTest.php | 20 +-\n tests/Unit/Component/MobileSettings/MobileSettingsControllerTest.php | 5 +-\n tests/Unit/Component/ParticipantSpeech/Services/ParticipantSpeechesCreatorTest.php | 75 ++\n tests/Unit/Component/ParticipantSpeech/Services/ParticipantSpeechesDeleterTest.php | 63 ++\n tests/Unit/Component/ParticipantSpeech/Services/ParticipantSpeechesProviderTest.php | 134 ++++\n tests/Unit/Component/ParticipantSpeech/Services/ParticipantSpeechesUploaderTest.php | 57 ++\n tests/Unit/Component/Transcription/Diarization/Services/GetNormalizedParticipantSpeechesServiceTest.php | 51 +-\n tests/Unit/Component/Transcription/Diarization/Source/MeetingBotSourceTest.php | 29 +-\n tests/Unit/Contracts/Services/Calendar/CalendarTraitTest.php | 58 +-\n tests/Unit/Http/Controllers/Kiosk/ActivityControllerTest.php | 159 +++++\n tests/Unit/Jobs/Activity/Import/ImportTwilioVideoSpeechesJobTest.php | 22 +-\n tests/Unit/Jobs/Activity/Import/IsActivityReadyForProcessingJobTest.php | 26 +-\n tests/Unit/Jobs/Calendar/SetupCalendarSyncTest.php | 25 -\n tests/Unit/Services/Activity/ParticipantsServiceTest.php | 12 +-\n tests/Unit/Services/Activity/Twilio/S3RecordingCredentialsServiceTest.php | 180 +++++\n tests/Unit/Services/ActivityServiceTest.php | 132 ++++\n tests/Unit/Services/Calendar/CalendarActivityServiceTest.php | 150 +++-\n tests/Unit/Services/Calendar/Command/ImportParticipantsTest.php | 6 +-\n tests/Unit/Services/Calendar/Command/MapActivityDataTest.php | 78 +-\n tests/Unit/Services/Calendar/GoogleCalendarServiceTest.php | 116 +++\n tests/Unit/Services/Crm/Close/ServiceTest.php | 165 +++++\n tests/Unit/Services/Crm/Hubspot/ServiceTest.php | 272 ++++++-\n tests/Unit/Services/Crm/Hubspot/ServiceTraits/OpportunitySyncTest.php | 25 +-\n tests/Unit/Services/Crm/Hubspot/ServiceTraits/OpportunitySyncTraitMatchActivitiesTest.php | 3 +-\n tests/Unit/Services/Crm/IntegrationApp/ServiceTraits/SyncCrmEntitiesTraitOpportunitiesTest.php | 40 ++\n tests/Unit/Services/Crm/Pipedrive/ImportOpportunityMatchActivitiesTest.php | 2 +\n tests/Unit/Services/Crm/Salesforce/ServiceTest.php | 139 ++++\n tests/Unit/Services/Mail/Office/EmailApiClientTest.php | 195 ++---\n tests/Unit/Services/RecallAI/RecallAIServiceTest.php | 24 +-\n 175 files changed, 12562 insertions(+), 2162 deletions(-)\n create mode 120000 CLAUDE.md\n create mode 100644 app/Component/AiAutomation/Services/CrmFillingEligibilityChecker.php\n delete mode 100644 app/Component/ES/ElasticSearchWorkerManager.php\n delete mode 100644 app/Component/ES/Processor/Traits/SkipActivityTrait.php\n delete mode 100644 app/Component/ES/Worker/ActivityWorker.php\n delete mode 100644 app/Component/ES/Worker/EntityWorker.php\n delete mode 100644 app/Component/ES/Worker/WorkerAmount.php\n delete mode 100644 app/Component/ES/Worker/WorkerInterface.php\n create mode 100644 app/Component/ProphetAi/Exceptions/InsufficientTranscriptException.php\n create mode 100644 app/Component/Transcription/DTO/Http/Transcription/AssemblyAI/AssemblyAI/NoAssemblyIdException.php\n create mode 100644 app/Component/Transcription/DTO/Http/Transcription/TranscriptionIsNotCorrectFormatException.php\n create mode 100644 app/Console/Commands/Activities/SetupIntegration/TwilioSetS3RecordingCredentialsCommand.php\n create mode 100644 app/Console/Commands/Crm/BackfillOpportunityUserFromAccountCommand.php\n delete mode 100644 app/Console/Commands/Elasticsearch/AsyncUpdateEsActivities.php\n create mode 100644 app/Console/Commands/IssueMcpTokenCommand.php\n create mode 100644 app/Http/Middleware/McpAuditMiddleware.php\n create mode 100644 app/Http/Middleware/McpTierMiddleware.php\n create mode 100644 app/Mcp/Contracts/McpCallRepositoryInterface.php\n create mode 100644 app/Mcp/DTO/ListCallsFilters.php\n create mode 100644 app/Mcp/Errors/McpError.php\n create mode 100644 app/Mcp/Repositories/McpActivityHydrator.php\n create mode 100644 app/Mcp/Repositories/McpCallRepository.php\n create mode 100644 app/Mcp/Repositories/McpElasticCallRepository.php\n create mode 100644 app/Mcp/Servers/JiminnyServer.php\n create mode 100644 app/Mcp/Tools/ListCallsTool.php\n create mode 100644 app/Services/Activity/Twilio/S3RecordingCredentialsService.php\n create mode 100644 config/mcp.php\n create mode 100644 database/migrations/2026_04_30_120000_create_mcp_audit_log_table.php\n create mode 100644 docs/mcp/explorer/explorer.html\n create mode 100644 docs/mcp/explorer/explorer.template.html\n create mode 100644 docs/mcp/explorer/generate.js\n create mode 100644 docs/mcp/explorer/tool-explorer-meta.json\n create mode 100644 docs/mcp/tools-list.json\n create mode 100644 docs/mcp/tools.md\n create mode 100644 front-end/src/components/shared/modals/EntityPickerModal/__tests__/useEntitiesCache.spec.ts\n create mode 100644 tests/Feature/Component/Nudge/ProcessOrganisationImmediateNudgesJobTest.php\n create mode 100644 tests/Feature/Mcp/IssueMcpTokenCommandTest.php\n create mode 100644 tests/Feature/Mcp/ListCallsToolElasticFeatureTest.php\n create mode 100644 tests/Feature/Mcp/ListCallsToolFeatureTest.php\n create mode 100644 tests/Feature/Mcp/McpTestHelpersTrait.php\n create mode 100644 tests/Stubs/SentryStub.php\n create mode 100644 tests/Unit/Component/AiAutomation/Services/CrmFillingEligibilityCheckerTest.php\n delete mode 100644 tests/Unit/Component/ES/ElasticSearchWorkerManagerTest.php\n create mode 100644 tests/Unit/Component/ES/Processor/Actions/LoadDocumentsActionTest.php\n delete mode 100644 tests/Unit/Component/ES/Processor/Traits/SkipActivityTraitTest.php\n delete mode 100644 tests/Unit/Component/ES/Worker/ActivityWorkerTest.php\n delete mode 100644 tests/Unit/Component/ES/Worker/EntityWorkerTest.php\n delete mode 100644 tests/Unit/Component/ES/Worker/WorkerAmountTest.php\n create mode 100644 tests/Unit/Component/ParticipantSpeech/Services/ParticipantSpeechesCreatorTest.php\n create mode 100644 tests/Unit/Http/Controllers/Kiosk/ActivityControllerTest.php\n create mode 100644 tests/Unit/Services/Activity/Twilio/S3RecordingCredentialsServiceTest.php\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20725-handle-HS-search-rate-limit) $ git status\nOn branch master\nYour branch is behind 'origin/master' by 114 commits, and can be fast-forwarded.\n (use \"git pull\" to update your local branch)\n\nChanges not staged for commit:\n (use \"git add <file>...\" to update what will be committed)\n (use \"git restore <file>...\" to discard changes in working directory)\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tmodified: .env.local\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tmodified: app/Component/SCIM/Constants.php\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tmodified: app/Component/SCIM/ScimProvisioning.php\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tmodified: app/Component/Twilio/Conference/ConferenceManager/SoftPhoneManager.php\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tmodified: app/Console/Commands/JiminnyDebugCommand.php\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tmodified: app/DTO/SCIM/AAD/Request/CoreUserRequest.php\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tmodified: app/DTO/SCIM/AAD/Response/CoreUser.php\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tmodified: app/Services/Telephony/TextMessagingService.php\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tmodified: config/logging.php\n\nUntracked files:\n (use \"git add <file>...\" to include in what will be committed)\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\t.env.nikilocal\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\t.env.other\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tWEBHOOK_FILTERING_IMPLEMENTATION.md\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tapp/Component/SCIM/Mutators/Attributes/User/RoleAttr.php\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tapp/Console/Commands/Crm/Hubspot/SimulateWebhooksCommand.php\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tapp/Console/Commands/Reports/CreateMockAskJiminnyReportResultCommand.php\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tapp/Rules/ListenerRoleCannotHaveAdminOrManagerPermissionRule.php\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tids.txt\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tpublic/favicon.ico\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\traw_sql_query.sql\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\ttests/Unit/Component/SCIM/Mutators/Attributes/User/RoleAttrTest.php\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\ttests/Unit/Policies/CanAccessAiReportsTest.php\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\ttests/Unit/Rules/ListenerRoleCannotHaveAdminOrManagerPermissionRuleTest.php\n\nno changes added to commit (use \"git add\" and/or \"git commit -a\")\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (master) $ git pull\nremote: Enumerating objects: 306, done.\nremote: Counting objects: 100% (299/299), done.\nremote: Compressing objects: 100% (183/183), done.\nremote: Total 306 (delta 213), reused 171 (delta 116), pack-reused 7 (from 1)\nReceiving objects: 100% (306/306), 80.12 KiB | 1000.00 KiB/s, done.\nResolving deltas: 100% (213/213), completed with 53 local objects.\nFrom github.com:jiminny/app\n 90bca4e4b2..5604af40cf master -> origin/master\n 4e7078fd8b..0b8343d179 JY-18091-upgrade-to-php-8-5 -> origin/JY-18091-upgrade-to-php-8-5\n 098eeaa087..d5a447e492 JY-20613-allow-owner-role-on-team-setup -> origin/JY-20613-allow-owner-role-on-team-setup\n c3a76ace91..af65249d0f JY-20749-user-can-view-recorded-meetings -> origin/JY-20749-user-can-view-recorded-meetings\n d94a285ae7..7ce96cb5fe JY-20808-low-priority-indexing-queue -> origin/JY-20808-low-priority-indexing-queue\n * [new branch] JY-20842-remove-partial-updater -> origin/JY-20842-remove-partial-updater\n * [new branch] JY-20920-fix-participant-flip -> origin/JY-20920-fix-participant-flip\n * [new branch] secfix/npm-20260519 -> origin/secfix/npm-20260519\nUpdating cb4ebf0c36..5604af40cf\nFast-forward\n app/Component/ES/ChunkSize.php | 54 +++++++++++++++++++\n app/Component/ES/Processor/DTOs/SelectionList.php | 4 +-\n app/Component/ES/Processor/TargetEntitiesSelector.php | 19 ++++---\n app/Component/MeetingBot/Service/ParticipantMatcher.php | 46 ++++++++++++----\n app/Exceptions/RateLimitException.php | 19 ++++++-\n app/Http/Middleware/McpTierMiddleware.php | 27 ++--------\n app/Jobs/Crm/MatchActivityCrmData.php | 47 ++++++++++++----\n app/Jobs/Middleware/HandleHubspotRateLimit.php | 42 +++++++++++++++\n app/Mcp/Servers/JiminnyServer.php | 2 +\n app/Mcp/Tools/GetMeTool.php | 157 +++++++++++++++++++++++++++++++++++++++++++++++++++++\n app/Models/Feature/FeatureEnum.php | 1 +\n app/Services/Activity/HubSpot/ProviderResolver.php | 4 +-\n app/Services/Activity/HubSpot/ProviderResolverInterface.php | 2 +-\n app/Services/Activity/HubSpot/Providers/Provider.php | 2 +-\n app/Services/Activity/HubSpot/Providers/ProviderKixie.php | 2 +-\n app/Services/Activity/HubSpot/Providers/ProviderOrum.php | 2 +-\n app/Services/Activity/HubSpot/Providers/ProviderTwilio.php | 2 +-\n app/Services/Activity/HubSpot/Providers/ProviderTwilioFlex.php | 5 +-\n app/Services/Activity/HubSpot/Service.php | 97 +++++++++++++++++++++++++++------\n app/Services/Crm/Hubspot/Client.php | 132 +++++++++++++++++++++++++++++++++++++++++++++\n app/Services/Crm/Hubspot/HubspotClientInterface.php | 15 ++++++\n app/Services/Crm/Hubspot/Pagination/HubspotPaginationService.php | 21 ++++----\n app/Services/Crm/Hubspot/Pagination/PaginationState.php | 2 +-\n database/migrations/2026_05_13_124153_create_mcp_feature_flag.php | 25 +++++++++\n tests/Feature/Mcp/GetMeToolFeatureTest.php | 140 +++++++++++++++++++++++++++++++++++++++++++++++\n tests/Feature/Mcp/ListCallsToolFeatureTest.php | 2 +-\n tests/Feature/Mcp/McpTestHelpersTrait.php | 19 ++++++-\n tests/Unit/Component/ES/ChunkSizeTest.php | 50 +++++++++++++++++\n tests/Unit/Component/ES/Processor/DTOs/SelectionListTest.php | 27 +++++++---\n tests/Unit/Component/ES/Processor/TargetEntitiesSelectorTest.php | 39 ++++++++------\n tests/Unit/Component/MeetingBot/Service/ParticipantMatcherTest.php | 68 ++++++++++++++++++++++-\n tests/Unit/Exceptions/RateLimitExceptionTest.php | 56 +++++++++++++++++++\n tests/Unit/Jobs/Crm/MatchActivityCrmDataTest.php | 8 +--\n tests/Unit/Jobs/Middleware/HandleHubspotRateLimitTest.php | 151 +++++++++++++++++++++++++++++++++++++++++++++++++++\n tests/Unit/Services/Activity/HubSpot/ServiceTest.php | 109 +++++++++++++++++++++++++++++++++++++\n tests/Unit/Services/Crm/Hubspot/ClientTest.php | 250 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++\n tests/Unit/Services/Crm/Hubspot/Pagination/HubspotPaginationServiceTest.php | 283 +++++++++++++++++++++---------------------------------------------------------------------------\n 37 files changed, 1587 insertions(+), 344 deletions(-)\n create mode 100644 app/Component/ES/ChunkSize.php\n create mode 100644 app/Jobs/Middleware/HandleHubspotRateLimit.php\n create mode 100644 app/Mcp/Tools/GetMeTool.php\n create mode 100644 database/migrations/2026_05_13_124153_create_mcp_feature_flag.php\n create mode 100644 tests/Feature/Mcp/GetMeToolFeatureTest.php\n create mode 100644 tests/Unit/Component/ES/ChunkSizeTest.php\n create mode 100644 tests/Unit/Exceptions/RateLimitExceptionTest.php\n create mode 100644 tests/Unit/Jobs/Middleware/HandleHubspotRateLimitTest.php\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (master) $ git pull\nAlready up to date.\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (master) $ co -b JY-20676-delete-report-related-objects\nSwitched to a new branch 'JY-20676-delete-report-related-objects'\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20676-delete-report-related-objects) $ csfix\ndocker exec -it docker_lamp_1 ./vendor/bin/php-cs-fixer fix --config=.php-cs-fixer.dist.php -v --using-cache=no --diff \nPHP CS Fixer 3.87.1 Alexander by Fabien Potencier, Dariusz Ruminski and contributors.\nPHP runtime: 8.3.30\nRunning analysis on 7 cores with 10 files per process.\nParallel runner is an experimental feature and may be unstable, use it at your own risk. Feedback highly appreciated!\nLoaded config default from \".php-cs-fixer.dist.php\".\n 5690/5690 [▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓] 100%\n\n 1) app/Console/Commands/JiminnyDebugCommand.php (statement_indentation, blank_line_before_statement)\n ---------- begin diff ----------\n--- /home/jiminny/app/Console/Commands/JiminnyDebugCommand.php\n+++ /home/jiminny/app/Console/Commands/JiminnyDebugCommand.php\n@@ -23,6 +23,7 @@\n \n if ($action === 'redis-set') {\n $this->testRedisSet();\n+\n return;\n }\n \n@@ -45,7 +46,7 @@\n $ttl = 60;\n \n try {\n-// $result = Redis::set($testKey, $testValue, 'EX', $ttl, 'NX');\n+ // $result = Redis::set($testKey, $testValue, 'EX', $ttl, 'NX');\n $result = Redis::set($testKey, $testValue, ['nx', 'ex' => $ttl]);\n \n if ($result) {\n\n ----------- end diff -----------\n\n\nFixed 1 of 5690 files in 50.673 seconds, 67.00 MB memory used\n\nWhat's next:\n Try Docker Debug for seamless, persistent debugging tools in any container or image → docker debug docker_lamp_1\n Learn more at https://docs.docker.com/go/debug-cli/\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20676-delete-report-related-objects) $ ;xd\ndocker exec -it docker_lamp_1 bash -c \"mv /usr/local/etc/php/conf.d/xdebug.ini ~/xdebug.ini\"\n\nWhat's next:\n Try Docker Debug for seamless, persistent debugging tools in any container or image → docker debug docker_lamp_1\n Learn more at https://docs.docker.com/go/debug-cli/\ndocker exec -it docker_lamp_1 supervisorctl restart all\njiminny-worker-processing-2:jiminny-worker-processing-2_00: stopped\njiminny-worker-processing-3:jiminny-worker-processing-3_00: stopped\njiminny-worker-processing-4:jiminny-worker-processing-4_00: stopped\njiminny-worker-processing-5:jiminny-worker-processing-5_00: stopped\njiminny-worker-processing-delayed:jiminny-worker-processing-delayed_00: stopped\nworker-analytics:worker-analytics_00: stopped\nworker-crm-update:worker-crm-update_00: stopped\nworker-download:worker-download_00: stopped\nworker-nudges:worker-nudges_00: stopped\nworker-calendar:worker-calendar_00: stopped\nworker-audio:worker-audio_00: stopped\njiminny-worker-processing-1:jiminny-worker-processing-1_00: stopped\nworker:worker_00: stopped\nworker-conferences:worker-conferences_00: stopped\nworker-crm-sync:worker-crm-sync_00: stopped\nworker-emails:worker-emails_00: stopped\nworker-es-update:worker-es-update_00: stopped\nartisan-schedule:artisan-schedule_00: stopped\nartisan-schedule:artisan-schedule_00: started\njiminny-worker-processing-1:jiminny-worker-processing-1_00: started\njiminny-worker-processing-2:jiminny-worker-processing-2_00: started\njiminny-worker-processing-3:jiminny-worker-processing-3_00: started\njiminny-worker-processing-4:jiminny-worker-processing-4_00: started\njiminny-worker-processing-5:jiminny-worker-processing-5_00: started\njiminny-worker-processing-delayed:jiminny-worker-processing-delayed_00: started\nworker:worker_00: started\nworker-analytics:worker-analytics_00: started\nworker-audio:worker-audio_00: started\nworker-calendar:worker-calendar_00: started\nworker-conferences:worker-conferences_00: started\nworker-crm-sync:worker-crm-sync_00: started\nworker-crm-update:worker-crm-update_00: started\nworker-download:worker-download_00: started\nworker-emails:worker-emails_00: started\nworker-es-update:worker-es-update_00: started\nworker-nudges:worker-nudges_00: started\n\nWhat's next:\n Try Docker Debug for seamless, persistent debugging tools in any container or image → docker debug docker_lamp_1\n Learn more at https://docs.docker.com/go/debug-cli/\ndocker exec -it docker_lamp_1 php -v\nPHP 8.3.30 (cli) (built: Mar 16 2026 22:32:32) (NTS)\nCopyright (c) The PHP Group\nZend Engine v4.3.30, Copyright (c) Zend Technologies\n with Zend OPcache v8.3.30, Copyright (c), by Zend Technologies\n\nWhat's next:\n Try Docker Debug for seamless, persistent debugging tools in any container or image → docker debug docker_lamp_1\n Learn more at https://docs.docker.com/go/debug-cli/\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20676-delete-report-related-objects) $ git status\nOn branch JY-20676-delete-report-related-objects\nChanges not staged for commit:\n (use \"git add <file>...\" to update what will be committed)\n (use \"git restore <file>...\" to discard changes in working directory)\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tmodified: .env.local\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tmodified: app/Console/Commands/JiminnyDebugCommand.php\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tmodified: config/logging.php\n\nUntracked files:\n (use \"git add <file>...\" to include in what will be committed)\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\t.env.nikilocal\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\t.env.other\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tWEBHOOK_FILTERING_IMPLEMENTATION.md\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tapp/Console/Commands/Crm/Hubspot/SimulateWebhooksCommand.php\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tapp/Console/Commands/Reports/CreateMockAskJiminnyReportResultCommand.php\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tids.txt\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tpublic/favicon.ico\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\traw_sql_query.sql\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\ttests/Unit/Policies/CanAccessAiReportsTest.php\n\nno changes added to commit (use \"git add\" and/or \"git commit -a\")\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20676-delete-report-related-objects) $ git push -u origin JY-20676-delete-report-related-objects\nEnumerating objects: 45, done.\nCounting objects: 100% (45/45), done.\nDelta compression using up to 8 threads\nCompressing objects: 100% (24/24), done.\nWriting objects: 100% (24/24), 3.62 KiB | 3.62 MiB/s, done.\nTotal 24 (delta 19), reused 0 (delta 0), pack-reused 0\nremote: Resolving deltas: 100% (19/19), completed with 19 local objects.\nremote: \nremote: Create a pull request for 'JY-20676-delete-report-related-objects' on GitHub by visiting:\nremote: https://github.com/jiminny/app/pull/new/JY-20676-delete-report-related-objects\nremote: \nTo github.com:jiminny/app.git\n * [new branch] JY-20676-delete-report-related-objects -> JY-20676-delete-report-related-objects\nbranch 'JY-20676-delete-report-related-objects' set up to track 'origin/JY-20676-delete-report-related-objects'.\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20676-delete-report-related-objects) $ csfix\ndocker exec -it docker_lamp_1 ./vendor/bin/php-cs-fixer fix --config=.php-cs-fixer.dist.php -v --using-cache=no --diff \nPHP CS Fixer 3.87.1 Alexander by Fabien Potencier, Dariusz Ruminski and contributors.\nPHP runtime: 8.3.30\nRunning analysis on 7 cores with 10 files per process.\nParallel runner is an experimental feature and may be unstable, use it at your own risk. Feedback highly appreciated!\nLoaded config default from \".php-cs-fixer.dist.php\".\n 5690/5690 [▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓] 100%\n\n 1) app/Http/Controllers/API/V2/AskJiminnyReportsController.php (blank_line_before_statement)\n ---------- begin diff ----------\n--- /home/jiminny/app/Http/Controllers/API/V2/AskJiminnyReportsController.php\n+++ /home/jiminny/app/Http/Controllers/API/V2/AskJiminnyReportsController.php\n@@ -140,6 +140,7 @@\n if ($enabled && $report->isAskJiminnyReport() && ! $report->canExecute()) {\n $error = 'This report is missing a saved search or prompt. ' .\n 'Edit the report to complete the setup before enabling it.';\n+\n return new JsonResponse(\n ['error' => $error],\n Response::HTTP_UNPROCESSABLE_ENTITY\n\n ----------- end diff -----------\n\n\nFixed 1 of 5690 files in 71.757 seconds, 60.00 MB memory used\n\nWhat's next:\n Try Docker Debug for seamless, persistent debugging tools in any container or image → docker debug docker_lamp_1\n Learn more at https://docs.docker.com/go/debug-cli/\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20676-delete-report-related-objects) $ git pull\nremote: Enumerating objects: 158, done.\nremote: Counting objects: 100% (103/103), done.\nremote: Compressing objects: 100% (37/37), done.\nremote: Total 158 (delta 80), reused 74 (delta 66), pack-reused 55 (from 3)\nReceiving objects: 100% (158/158), 80.59 KiB | 982.00 KiB/s, done.\nResolving deltas: 100% (85/85), completed with 45 local objects.\nFrom github.com:jiminny/app\n 02a33811ee..c6ce5e2440 JY-20676-delete-report-related-objects -> origin/JY-20676-delete-report-related-objects\n 7ce96cb5fe..6c59f04358 JY-20808-low-priority-indexing-queue -> origin/JY-20808-low-priority-indexing-queue\n 3906a9238a..2b5e6ea62b JY-20835-mcp-enable-users-to-get-a-list-of-deals-and-their-details -> origin/JY-20835-mcp-enable-users-to-get-a-list-of-deals-and-their-details\n 5604af40cf..ea3519f0e2 master -> origin/master\n * [new branch] switch-eu-assembly -> origin/switch-eu-assembly\nUpdating 02a33811ee..c6ce5e2440\nFast-forward\n app/Component/ES/ElasticSearchDocumentPartialUpdater.php | 48 ---\n app/Component/ParticipantSpeech/Services/ParticipantAttributionService.php | 4 +-\n app/Component/Settings/AutoScoring/Services/UpdateAutoScoreService.php | 20 +-\n app/Component/Transcription/Service/StorageService.php | 8 +-\n front-end/package.json | 2 +-\n front-end/src/components/DealInsights/Modals/AskAnythingModal.vue | 23 ++\n front-end/src/components/shared/AskAnything/AskAnythingPromptFormItem.vue | 2 +\n front-end/src/components/shared/AskAnything/AskAnythingSettingsDrawer.vue | 23 +-\n front-end/src/components/shared/AskAnything/__mocks__/AskAnythingSettingsDrawer.mocks.js | 1 +\n front-end/src/components/shared/AskAnything/__tests__/AskAnythingSettingsDrawer.spec.js | 135 ++++---\n front-end/src/components/shared/AskAnything/__tests__/__snapshots__/AskAnythingSettingsDrawer.spec.js.html | 1235 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++\n front-end/src/components/shared/AskAnything/__tests__/__snapshots__/AskAnythingSettingsDrawer.spec.js.snap | 1382 ----------------------------------------------------------------\n front-end/src/components/shared/AskAnything/prompts.js | 1 +\n front-end/src/components/shared/AskAnything/useAskAnything.js | 1 +\n front-end/yarn.lock | 8 +-\n tests/Unit/Component/ES/ElasticSearchDocumentPartialUpdaterTest.php | 42 --\n tests/Unit/Component/Settings/AutoScoring/Services/UpdateAutoScoreServiceTest.php | 86 ++--\n tests/Unit/Component/Transcription/Service/StorageServiceTest.php | 29 +-\n 18 files changed, 1448 insertions(+), 1602 deletions(-)\n delete mode 100644 app/Component/ES/ElasticSearchDocumentPartialUpdater.php\n create mode 100644 front-end/src/components/shared/AskAnything/__tests__/__snapshots__/AskAnythingSettingsDrawer.spec.js.html\n delete mode 100644 front-end/src/components/shared/AskAnything/__tests__/__snapshots__/AskAnythingSettingsDrawer.spec.js.snap\n delete mode 100644 tests/Unit/Component/ES/ElasticSearchDocumentPartialUpdaterTest.php\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20676-delete-report-related-objects) $ csfix\ndocker exec -it docker_lamp_1 ./vendor/bin/php-cs-fixer fix --config=.php-cs-fixer.dist.php -v --using-cache=no --diff \nPHP CS Fixer 3.87.1 Alexander by Fabien Potencier, Dariusz Ruminski and contributors.\nPHP runtime: 8.3.30\nRunning analysis on 7 cores with 10 files per process.\nParallel runner is an experimental feature and may be unstable, use it at your own risk. Feedback highly appreciated!\nLoaded config default from \".php-cs-fixer.dist.php\".\n 5688/5688 [▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓] 100%\n\n\nFixed 0 of 5688 files in 79.904 seconds, 60.00 MB memory used\n\nWhat's next:\n Try Docker Debug for seamless, persistent debugging tools in any container or image → docker debug docker_lamp_1\n Learn more at https://docs.docker.com/go/debug-cli/\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20676-delete-report-related-objects) $","is_focused":true},{"role":"AXRadioButton","text":"DOCKER","depth":2,"bounds":{"left":0.27027926,"top":1.0,"width":0.094913565,"height":-0.042298436},"on_screen":true,"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.27227393,"top":1.0,"width":0.005319149,"height":-0.04549086},"on_screen":true,"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"DEV (docker)","depth":2,"bounds":{"left":0.36519283,"top":1.0,"width":0.094913565,"height":-0.042298436},"on_screen":true,"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.3671875,"top":1.0,"width":0.005319149,"height":-0.04549086},"on_screen":true,"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"APP (-zsh)","depth":2,"bounds":{"left":0.46010637,"top":1.0,"width":0.09474734,"height":-0.042298436},"on_screen":true,"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.46210107,"top":1.0,"width":0.005319149,"height":-0.04549086},"on_screen":true,"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"screenpipe\"","depth":2,"bounds":{"left":0.55485374,"top":1.0,"width":0.09474734,"height":-0.042298436},"on_screen":true,"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.5568484,"top":1.0,"width":0.005319149,"height":-0.04549086},"on_screen":true,"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"-zsh","depth":2,"bounds":{"left":0.64960104,"top":1.0,"width":0.09474734,"height":-0.042298436},"on_screen":true,"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.6515958,"top":1.0,"width":0.005319149,"height":-0.04549086},"on_screen":true,"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"⌥⌘1","depth":1,"bounds":{"left":0.7307181,"top":1.0,"width":0.01861702,"height":-0.023144484},"on_screen":true,"automation_id":"_NS:8","role_description":"text"},{"role":"AXStaticText","text":"APP (-zsh)","depth":1,"bounds":{"left":0.49900267,"top":1.0,"width":0.024601065,"height":-0.02394259},"on_screen":true,"role_description":"text"}]...
|
2802650493718167367
|
-1358120912881272742
|
idle
|
accessibility
|
NULL
|
Last login: Mon May 18 09:17:28 on ttys007
Poetry Last login: Mon May 18 09:17:28 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 (pipedrive-sdk-poc) $ co master
error: Your local changes to the following files would be overwritten by checkout:
PIPEDRIVE_V2_MIGRATION_TICKETS.md
Please commit your changes or stash them before you switch branches.
Aborting
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (pipedrive-sdk-poc) $ git pull
remote: Enumerating objects: 1047, done.
remote: Counting objects: 100% (832/832), done.
remote: Compressing objects: 100% (298/298), done.
remote: Total 1047 (delta 634), reused 596 (delta 534), pack-reused 215 (from 3)
Receiving objects: 100% (1047/1047), 353.16 KiB | 1.56 MiB/s, done.
Resolving deltas: 100% (687/687), completed with 107 local objects.
From github.com:jiminny/app
907c54896c..34656c53ed pipedrive-sdk-poc -> origin/pipedrive-sdk-poc
03325ec50f..4e7078fd8b JY-18091-upgrade-to-php-8-5 -> origin/JY-18091-upgrade-to-php-8-5
e7d231e163..bc6a3fce6b JY-20725-handle-HS-search-rate-limit -> origin/JY-20725-handle-HS-search-rate-limit
* [new branch] JY-20749-user-can-view-recorded-meetings -> origin/JY-20749-user-can-view-recorded-meetings
98ca281a04..e0351be069 JY-20808-low-priority-indexing-queue -> origin/JY-20808-low-priority-indexing-queue
569abb5149..3906a9238a JY-20835-mcp-enable-users-to-get-a-list-of-deals-and-their-details -> origin/JY-20835-mcp-enable-users-to-get-a-list-of-deals-and-their-details
ad6c2a86e8..50eb6afba9 JY-20846-mcp-enable-the-ai-to-know-details-about-the-user -> origin/JY-20846-mcp-enable-the-ai-to-know-details-about-the-user
* [new branch] JY-20893-chunk-control-per-update-target -> origin/JY-20893-chunk-control-per-update-target
31c62924a5..cb4ebf0c36 master -> origin/master
Updating 907c54896c..34656c53ed
Fast-forward
PIPEDRIVE_V2_MIGRATION_TICKETS.md | 52 ++++++++++++++++++++++++++++++++++++++++++++++++++++
1 file changed, 52 insertions(+)
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (pipedrive-sdk-poc) $ co master
M .env.local
M config/logging.php
Switched to branch 'master'
Your branch is behind 'origin/master' by 31 commits, and can be fast-forwarded.
(use "git pull" to update your local branch)
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (master) $ git pull
Updating 31c62924a5..cb4ebf0c36
Fast-forward
app/Component/ES/Processor/Traits/SelectEntityListTrait.php | 20 ------
app/Services/Calendar/CalendarActivityService.php | 46 +++++++++++++
app/Services/Calendar/Command/MapActivityData.php | 106 +++-------------------------
docs/mcp/explorer/explorer.html | 104 +++++++++++++++++++++++++---
docs/mcp/explorer/explorer.template.html | 102 ++++++++++++++++++++++++---
docs/mcp/tools-list.json | 373 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++-------
docs/mcp/tools.md | 117 +++++++++++++++++++++++--------
tests/Unit/Component/ES/AsyncUpdateElasticSearchTest.php | 16 +----
tests/Unit/Component/ES/Listeners/UpdateMultipleTargetsListenerTest.php | 10 ---
tests/Unit/Component/ES/Listeners/UpdateSingleTargetListenerTest.php | 6 --
tests/Unit/Component/ES/Processor/TargetEntitiesSelectorTest.php | 9 ---
tests/Unit/Component/ES/Processor/Traits/SelectEntityListTraitTest.php | 15 ++--
tests/Unit/Component/ES/UpdateProcessManagerTest.php | 2 -
tests/Unit/Services/Calendar/CalendarActivityServiceTest.php | 150 ++++++++++++++++++++++++++++++++++++++--
tests/Unit/Services/Calendar/Command/MapActivityDataTest.php | 78 ++-------------------
15 files changed, 832 insertions(+), 322 deletions(-)
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (master) $ co -b JY-20613-allow-owner-role-on-team-setup
Switched to a new branch 'JY-20613-allow-owner-role-on-team-setup'
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20613-allow-owner-role-on-team-setup) $ csfix
docker exec -it docker_lamp_1 ./vendor/bin/php-cs-fixer fix --config=.php-cs-fixer.dist.php -v --using-cache=no --diff
PHP CS Fixer 3.87.1 Alexander by Fabien Potencier, Dariusz Ruminski and contributors.
PHP runtime: 8.3.30
Running 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!
Loaded config default from ".php-cs-fixer.dist.php".
5682/5682 [▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓] 100%
Fixed 0 of 5682 files in 56.978 seconds, 67.00 MB memory used
What's next:
Try Docker Debug for seamless, persistent debugging tools in any container or image → docker debug docker_lamp_1
Learn more at [URL_WITH_CREDENTIALS] ~/jiminny/app (JY-20613-allow-owner-role-on-team-setup) $ csfix
docker exec -it docker_lamp_1 ./vendor/bin/php-cs-fixer fix --config=.php-cs-fixer.dist.php -v --using-cache=no --diff
PHP CS Fixer 3.87.1 Alexander by Fabien Potencier, Dariusz Ruminski and contributors.
PHP runtime: 8.3.30
Running 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!
Loaded config default from ".php-cs-fixer.dist.php".
5682/5682 [▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓] 100%
Fixed 0 of 5682 files in 49.910 seconds, 60.00 MB memory used
What's next:
Try Docker Debug for seamless, persistent debugging tools in any container or image → docker debug docker_lamp_1
Learn more at [URL_WITH_CREDENTIALS] ~/jiminny/app (JY-20613-allow-owner-role-on-team-setup) $ git pull
remote: Enumerating objects: 248, done.
remote: Counting objects: 100% (128/128), done.
remote: Compressing objects: 100% (23/23), done.
remote: Total 59 (delta 43), reused 44 (delta 33), pack-reused 0 (from 0)
Unpacking objects: 100% (59/59), 10.48 KiB | 228.00 KiB/s, done.
From github.com:jiminny/app
b7df560451..190239dfd4 JY-20613-allow-owner-role-on-team-setup -> origin/JY-20613-allow-owner-role-on-team-setup
e0351be069..d94a285ae7 JY-20808-low-priority-indexing-queue -> origin/JY-20808-low-priority-indexing-queue
* [new branch] JY-20920-fix-participant-matcher -> origin/JY-20920-fix-participant-matcher
cb4ebf0c36..90bca4e4b2 master -> origin/master
Merge made by the 'ort' strategy.
app/Component/ES/ChunkSize.php | 54 +++++++++++++++++++++++++++
app/Component/ES/Processor/DTOs/SelectionList.php | 4 +-
app/Component/ES/Processor/TargetEntitiesSelector.php | 19 ++++++----
app/Http/Middleware/McpTierMiddleware.php | 27 +++-----------
app/Mcp/Servers/JiminnyServer.php | 2 +
app/Mcp/Tools/GetMeTool.php | 157 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
app/Models/Feature/FeatureEnum.php | 1 +
database/migrations/2026_05_13_124153_create_mcp_feature_flag.php | 25 +++++++++++++
front-end/src/components/Settings/Kiosk/modals/EditTeamModal/EditTeamModal.vue | 52 ++++++++++++++++++--------
front-end/src/components/Settings/Kiosk/modals/EditTeamModal/__tests__/EditTeamModal.spec.js | 14 +++++++
tests/Feature/Mcp/GetMeToolFeatureTest.php | 140 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
tests/Feature/Mcp/ListCallsToolFeatureTest.php | 2 +-
tests/Feature/Mcp/McpTestHelpersTrait.php | 19 +++++++++-
tests/Unit/Component/ES/ChunkSizeTest.php | 50 +++++++++++++++++++++++++
tests/Unit/Component/ES/Processor/DTOs/SelectionListTest.php | 27 ++++++++++----
tests/Unit/Component/ES/Processor/TargetEntitiesSelectorTest.php | 39 +++++++++++---------
16 files changed, 557 insertions(+), 75 deletions(-)
create mode 100644 app/Component/ES/ChunkSize.php
create mode 100644 app/Mcp/Tools/GetMeTool.php
create mode 100644 database/migrations/2026_05_13_124153_create_mcp_feature_flag.php
create mode 100644 tests/Feature/Mcp/GetMeToolFeatureTest.php
create mode 100644 tests/Unit/Component/ES/ChunkSizeTest.php
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20613-allow-owner-role-on-team-setup) $ git push
Enumerating objects: 40, done.
Counting objects: 100% (34/34), done.
Delta compression using up to 8 threads
Compressing objects: 100% (18/18), done.
Writing objects: 100% (18/18), 1.58 KiB | 1.58 MiB/s, done.
Total 18 (delta 15), reused 0 (delta 0), pack-reused 0
remote: Resolving deltas: 100% (15/15), completed with 13 local objects.
To github.com:jiminny/app.git
190239dfd4..ec1b261264 JY-20613-allow-owner-role-on-team-setup -> JY-20613-allow-owner-role-on-team-setup
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20613-allow-owner-role-on-team-setup) $ gbr
* JY-20613-allow-owner-role-on-team-setup
pipedrive-sdk-poc
master
JY-20903-update_activity-stage-on-opportunity-change
JY-20904-fix-update-es-on-activity-command
JY-20891-improve-sms-text-relays
JY-20725-handle-HS-search-rate-limit
JY-20818-move-AJ-reports-to-separated-datadog-metric
JY-20773-fix-automated-reports-user-pilot-tracking
JY-20157-AJ-report-not-send-notification
JY-20508-notify-before-AJ-report-expiration
JY-20372-ai-reports-promotion-pages
JY-20352-sync-opportunities-without-a-local-owner-user-id-is-null
JY-20738-debug-AJ-tracking-UP
a
JY-18909-automated-reports-ask-jiminny
JY-20692-fix-integration-app-[API_KEY]
JY-20553-debug-crm-sync-delays
JY-20698-fix-SF-activity-types-on-new-playbook
JY-20543-AJ-report-tracking
JY-20384-handle-auto-sync-with-no-access-to-event-type
JY-20458-ask-jiminny-user-definitions
JY-19666-fix-import-contacts-account-association
JY-19666-HS-import-contacts-and-accounts-batch-job
JY-20458-Ask-Jiminny-Reports
JY-20200-batch-update-CRM-objects-Salesforce
JY-19666-HS-webhooks-add-contact-and-company
JY-20348-trigger-setup-DI-layout-on-team-creation
JY-20326-refactor-info-message-in-command
JY-20317-fix-auto-log-delay-issue-on-all-channels-disabled
JY-20312-remove-on-update-change-last-synced-at-crm-configurations
JY-20306-SF-skip-auto-sync-for-task-based-playbook
JY-20192-remove-deleted-team-from-saved-search-filters
JY-20197-import-opportunity-batch-job
JY-20293-enable-status-field-for-pipedrive-deals
JY-20191-remove-commands-interactive-prompts
JY-20118-change-default-sync-strategy
JY-20183-add-cache-on-auto-log-delay
JY-20197-add-import-opportunity-batch-job
20118-hs-opportunity-make-webhook-strategy-default
JY-20118-make-default-hs-opportunity-sync-strategy-webhook-based
JY-20196-handle-opportunity-without-note
JY-20118-improve-opportunity-import
JY-20189-handle-activity-search-on-deleted-groups
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20613-allow-owner-role-on-team-setup) $ co JY-20725-handle-HS-search-rate-limit
M .env.local
M config/logging.php
Switched to branch 'JY-20725-handle-HS-search-rate-limit'
Your branch is behind 'origin/JY-20725-handle-HS-search-rate-limit' by 439 commits, and can be fast-forwarded.
(use "git pull" to update your local branch)
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20725-handle-HS-search-rate-limit) $ git pull
Updating 0f3e438941..bc6a3fce6b
Fast-forward
.gitignore | 3 +-
.windsurfrules | 168 ++---
CLAUDE.md | 1 +
app/Component/ActivityAnalytics/Service/CalculateTalkTimeOffsetsFromTranscription.php | 24 +-
app/Component/AiActivityType/Services/AiActivityTypeEligibilityChecker.php | 28 +-
app/Component/AiAutomation/Actions/PrepareUpdateDtoAction.php | 32 +-
app/Component/AiAutomation/Services/CrmFillingEligibilityChecker.php | 47 ++
app/Component/AiAutomation/TestCrmAiPromptService.php | 14 +
app/Component/AiCallScoring/Services/AiCallScoringEligibilityChecker.php | 9 +
app/Component/ES/ElasticSearchDocumentPartialUpdater.php | 13 +-
app/Component/ES/ElasticSearchWorkerManager.php | 86 ---
app/Component/ES/Processor/Actions/LoadDocumentsAction.php | 80 +--
app/Component/ES/Processor/EntityQueryBuilder.php | 12 +-
app/Component/ES/Processor/TargetEntitiesSelector.php | 2 +-
app/Component/ES/Processor/Traits/SkipActivityTrait.php | 25 -
app/Component/ES/Repositories/EsResetActivityRepository.php | 11 +-
app/Component/ES/Worker/ActivityWorker.php | 73 --
app/Component/ES/Worker/EntityWorker.php | 44 --
app/Component/ES/Worker/WorkerAmount.php | 60 --
app/Component/ES/Worker/WorkerInterface.php | 15 -
app/Component/ElasticSearch/Contract/Searchable.php | 4 +
app/Component/Encoding/Job/AnalyzeTrackChannelsJob.php | 20 +-
app/Component/Encoding/Service/GenerateSpeechFromSilenceService.php | 85 ++-
app/Component/FFMpeg/Services/GetSpeechIntervalsService.php | 18 +-
app/Component/LanguageDetection/Services/FindSpeechTimeService.php | 22 +-
app/Component/Nudge/Job/ProcessOrganisationImmediateNudgesJob.php | 218 +++++-
app/Component/ParagraphBreaker/Services/TranscriptionParagraphsService.php | 4 +
app/Component/ParticipantSpeech/Services/ParticipantSpeechesCreator.php | 33 +
app/Component/ParticipantSpeech/Services/ParticipantSpeechesDeleter.php | 15 +
app/Component/ParticipantSpeech/Services/ParticipantSpeechesProvider.php | 51 +-
app/Component/ParticipantSpeech/Services/ParticipantSpeechesUploader.php | 36 +
app/Component/ProphetAi/Exceptions/InsufficientTranscriptException.php | 11 +
app/Component/Transcription/DTO/Http/Transcription/AssemblyAI/AssemblyAI/NoAssemblyIdException.php | 11 +
app/Component/Transcription/DTO/Http/Transcription/AssemblyAI/AssemblyAI/SuccessfulResponse.php | 6 +
app/Component/Transcription/DTO/Http/Transcription/TranscriptionIsNotCorrectFormatException.php | 11 +
app/Component/Transcription/Diarization/Services/GetNormalizedParticipantSpeechesService.php | 23 +-
app/Component/Transcription/Diarization/Source/MeetingBotSource.php | 16 +-
app/Component/Transcription/TranscriptionProcessor/TranscriptionProcessor.php | 3 +
app/Console/Commands/Activities/ActivityHardDeleteCommand.php | 4 +-
app/Console/Commands/Activities/Copy.php | 2 +
app/Console/Commands/Activities/SetupIntegration/TwilioSetS3RecordingCredentialsCommand.php | 119 ++++
app/Console/Commands/Activities/UpdateActivityElasticSearchDocumentCommand.php | 10 +-
app/Console/Commands/Crm/BackfillOpportunityUserFromAccountCommand.php | 126 ++++
app/Console/Commands/Elasticsearch/AsyncUpdateEsActivities.php | 19 -
app/Console/Commands/Elasticsearch/AsyncUpdateEsEntities.php | 50 +-
app/Console/Commands/Elasticsearch/ResetAsyncElasticSearchCommand.php | 30 +-
app/Console/Commands/GeckoExport/GeckoExportParticipantSpeechesCommand.php | 14 +-
app/Console/Commands/IssueMcpTokenCommand.php | 84 +++
app/Console/Commands/JiminnyDebugCommand.php | 7 +-
app/Console/Commands/Tracks/CleanupActivityTracksCommand.php | 2 +-
app/Console/Kernel.php | 6 +-
app/Contracts/Services/Calendar/CalendarTrait.php | 80 ++-
app/Events/AutomatedReports/AutomatedReportGenerated.php | 3 +
app/Http/Controllers/API/AiCallScoring/AiScorecardController.php | 7 +-
app/Http/Controllers/API/TeamAiAutomationController.php | 8 +
app/Http/Controllers/CustomerApi/CustomerApiController.php | 4 +-
app/Http/Controllers/Kiosk/ActivityController.php | 58 +-
app/Http/Controllers/Settings/PlaybookController.php | 15 +-
app/Http/Kernel.php | 23 +
app/Http/Middleware/McpAuditMiddleware.php | 156 ++++
app/Http/Middleware/McpTierMiddleware.php | 54 ++
app/Http/Requests/API/V2/ZapierUploadActivityRequest.php | 28 +-
app/Jobs/Activity/Import/ImportTwilioVideoSpeechesJob.php | 25 +-
app/Jobs/Activity/Import/IsActivityReadyForProcessingJob.php | 10 +-
app/Jobs/Calendar/SetupCalendarSync.php | 21 +-
app/Jobs/ImportRemoteTrackJob.php | 96 ++-
app/Jobs/Mailbox/EmailTextRelay.php | 15 +-
app/Mcp/Contracts/McpCallRepositoryInterface.php | 30 +
app/Mcp/DTO/ListCallsFilters.php | 29 +
app/Mcp/Errors/McpError.php | 123 ++++
app/Mcp/Repositories/McpActivityHydrator.php | 145 ++++
app/Mcp/Repositories/McpCallRepository.php | 84 +++
app/Mcp/Repositories/McpElasticCallRepository.php | 171 +++++
app/Mcp/Servers/JiminnyServer.php | 38 +
app/Mcp/Tools/ListCallsTool.php | 205 ++++++
app/Models/Activity.php | 10 +-
app/Models/Activity/Transcription.php | 17 +-
app/Models/ElasticSearch/OpportunityElasticSearchTrait.php | 5 +
app/Models/Participant.php | 1 +
app/Providers/AppServiceProvider.php | 22 +
app/Repositories/Crm/ContactRepository.php | 69 +-
app/Repositories/ParticipantSpeechRepository.php | 13 +-
app/Services/Activity/ParticipantsService.php | 19 +-
app/Services/Activity/Twilio/S3RecordingCredentialsService.php | 82 +++
app/Services/ActivityService.php | 21 +-
app/Services/Calendar/CalendarActivityService.php | 46 ++
app/Services/Calendar/Command/ImportParticipants.php | 1 +
app/Services/Calendar/Command/MapActivityData.php | 106 +--
app/Services/Calendar/GoogleCalendarService.php | 12 +-
app/Services/Crm/Close/Processor/OpportunityProcessor.php | 2 +-
app/Services/Crm/Close/Service.php | 22 +-
app/Services/Crm/Copper/Service.php | 12 +-
app/Services/Crm/Hubspot/Service.php | 154 +++-
app/Services/Crm/Hubspot/ServiceTraits/OpportunitySyncTrait.php | 88 ++-
app/Services/Crm/IntegrationApp/ServiceTraits/SyncCrmEntitiesTrait.php | 22 +-
app/Services/Crm/Pipedrive/Service.php | 17 +-
app/Services/Crm/Salesforce/Service.php | 42 +-
app/Services/Mail/Office/EmailApiClient.php | 129 +---
app/Services/RecallAI/Commands/ScheduleBotCommand.php | 39 +-
app/Services/RecallAI/RecallAIService.php | 22 +-
composer.json | 3 +-
composer.lock | 87 ++-
config/mcp.php | 23 +
database/migrations/2026_04_30_120000_create_mcp_audit_log_table.php | 36 +
docs/mcp/explorer/explorer.html | 697 ++++++++++++++++++
docs/mcp/explorer/explorer.template.html | 697 ++++++++++++++++++
docs/mcp/explorer/generate.js | 215 ++++++
docs/mcp/explorer/tool-explorer-meta.json | 11 +
docs/mcp/tools-list.json | 2536 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
docs/mcp/tools.md | 621 ++++++++++++++++
front-end/package.json | 4 +-
front-end/src/components/Settings/OrgSettings/AiAutomation/CrmFilling/TemplateFieldForm.vue | 28 +-
front-end/src/components/Settings/OrgSettings/Playbooks/AddEditPlaybook.vue | 10 +
front-end/src/components/playback/comments/ActivityComment.less | 10 +-
front-end/src/components/shared/PromptTester/PromptTester.vue | 12 +-
front-end/src/components/shared/__tests__/PromptTester.spec.js | 35 +
front-end/src/components/shared/modals/EntityPickerModal/__tests__/useEntitiesCache.spec.ts | 37 +
front-end/src/components/shared/modals/EntityPickerModal/useEntitiesCache.ts | 9 +
front-end/yarn.lock | 16 +-
phpstan-baseline.neon | 50 --
routes/api.php | 11 +
sonar-project.properties | 91 ++-
tests/Feature/Component/Nudge/ProcessOrganisationImmediateNudgesJobTest.php | 534 ++++++++++++++
tests/Feature/Jobs/ImportRemoteTrackJobTest.php | 283 +++++++-
tests/Feature/Mcp/IssueMcpTokenCommandTest.php | 53 ++
tests/Feature/Mcp/ListCallsToolElasticFeatureTest.php | 155 ++++
tests/Feature/Mcp/ListCallsToolFeatureTest.php | 352 ++++++++++
tests/Feature/Mcp/McpTestHelpersTrait.php | 77 ++
tests/Feature/Services/Team/TeamDeleteHandlers/Retention/RetentionRepositoryHandlerTest.php | 1 +
tests/Stubs/SentryStub.php | 18 +
tests/Unit/Component/ActivityAnalytics/Service/CalculateTalkTimeOffsetFromTranscriptionTest.php | 28 +-
tests/Unit/Component/AiActivityType/Services/AiActivityTypeEligibilityCheckerTest.php | 103 ++-
tests/Unit/Component/AiAutomation/Actions/PrepareUpdateDtoActionTest.php | 91 +++
tests/Unit/Component/AiAutomation/Services/CrmFillingEligibilityCheckerTest.php | 124 ++++
tests/Unit/Component/AiAutomation/TestCrmAiPromptServiceTest.php | 67 +-
tests/Unit/Component/AiCallScoring/Services/AiCallScoringEligibilityCheckerTest.php | 55 ++
tests/Unit/Component/ES/ElasticSearchWorkerManagerTest.php | 135 ----
tests/Unit/Component/ES/Processor/Actions/LoadDocumentsActionTest.php | 220 ++++++
tests/Unit/Component/ES/Processor/EntityQueryBuilderTest.php | 21 +-
tests/Unit/Component/ES/Processor/Traits/SkipActivityTraitTest.php | 51 --
tests/Unit/Component/ES/Worker/ActivityWorkerTest.php | 174 -----
tests/Unit/Component/ES/Worker/EntityWorkerTest.php | 97 ---
tests/Unit/Component/ES/Worker/WorkerAmountTest.php | 116 ---
tests/Unit/Component/Encoding/Job/AnalyzeTrackChannelsJobTest.php | 52 +-
tests/Unit/Component/Encoding/Service/GenerateSpeechFromSilenceServiceTest.php | 171 ++---
tests/Unit/Component/FFMpeg/Services/GetSpeechIntervalsTest.php | 36 +-
tests/Unit/Component/LanguageDetection/Services/FindSpeechTimeServiceTest.php | 20 +-
tests/Unit/Component/MobileSettings/MobileSettingsControllerTest.php | 5 +-
tests/Unit/Component/ParticipantSpeech/Services/ParticipantSpeechesCreatorTest.php | 75 ++
tests/Unit/Component/ParticipantSpeech/Services/ParticipantSpeechesDeleterTest.php | 63 ++
tests/Unit/Component/ParticipantSpeech/Services/ParticipantSpeechesProviderTest.php | 134 ++++
tests/Unit/Component/ParticipantSpeech/Services/ParticipantSpeechesUploaderTest.php | 57 ++
tests/Unit/Component/Transcription/Diarization/Services/GetNormalizedParticipantSpeechesServiceTest.php | 51 +-
tests/Unit/Component/Transcription/Diarization/Source/MeetingBotSourceTest.php | 29 +-
tests/Unit/Contracts/Services/Calendar/CalendarTraitTest.php | 58 +-
tests/Unit/Http/Controllers/Kiosk/ActivityControllerTest.php | 159 +++++
tests/Unit/Jobs/Activity/Import/ImportTwilioVideoSpeechesJobTest.php | 22 +-
tests/Unit/Jobs/Activity/Import/IsActivityReadyForProcessingJobTest.php | 26 +-
tests/Unit/Jobs/Calendar/SetupCalendarSyncTest.php | 25 -
tests/Unit/Services/Activity/ParticipantsServiceTest.php | 12 +-
tests/Unit/Services/Activity/Twilio/S3RecordingCredentialsServiceTest.php | 180 +++++
tests/Unit/Services/ActivityServiceTest.php | 132 ++++
tests/Unit/Services/Calendar/CalendarActivityServiceTest.php | 150 +++-
tests/Unit/Services/Calendar/Command/ImportParticipantsTest.php | 6 +-
tests/Unit/Services/Calendar/Command/MapActivityDataTest.php | 78 +-
tests/Unit/Services/Calendar/GoogleCalendarServiceTest.php | 116 +++
tests/Unit/Services/Crm/Close/ServiceTest.php | 165 +++++
tests/Unit/Services/Crm/Hubspot/ServiceTest.php | 272 ++++++-
tests/Unit/Services/Crm/Hubspot/ServiceTraits/OpportunitySyncTest.php | 25 +-
tests/Unit/Services/Crm/Hubspot/ServiceTraits/OpportunitySyncTraitMatchActivitiesTest.php | 3 +-
tests/Unit/Services/Crm/IntegrationApp/ServiceTraits/SyncCrmEntitiesTraitOpportunitiesTest.php | 40 ++
tests/Unit/Services/Crm/Pipedrive/ImportOpportunityMatchActivitiesTest.php | 2 +
tests/Unit/Services/Crm/Salesforce/ServiceTest.php | 139 ++++
tests/Unit/Services/Mail/Office/EmailApiClientTest.php | 195 ++---
tests/Unit/Services/RecallAI/RecallAIServiceTest.php | 24 +-
175 files changed, 12562 insertions(+), 2162 deletions(-)
create mode 120000 CLAUDE.md
create mode 100644 app/Component/AiAutomation/Services/CrmFillingEligibilityChecker.php
delete mode 100644 app/Component/ES/ElasticSearchWorkerManager.php
delete mode 100644 app/Component/ES/Processor/Traits/SkipActivityTrait.php
delete mode 100644 app/Component/ES/Worker/ActivityWorker.php
delete mode 100644 app/Component/ES/Worker/EntityWorker.php
delete mode 100644 app/Component/ES/Worker/WorkerAmount.php
delete mode 100644 app/Component/ES/Worker/WorkerInterface.php
create mode 100644 app/Component/ProphetAi/Exceptions/InsufficientTranscriptException.php
create mode 100644 app/Component/Transcription/DTO/Http/Transcription/AssemblyAI/AssemblyAI/NoAssemblyIdException.php
create mode 100644 app/Component/Transcription/DTO/Http/Transcription/TranscriptionIsNotCorrectFormatException.php
create mode 100644 app/Console/Commands/Activities/SetupIntegration/TwilioSetS3RecordingCredentialsCommand.php
create mode 100644 app/Console/Commands/Crm/BackfillOpportunityUserFromAccountCommand.php
delete mode 100644 app/Console/Commands/Elasticsearch/AsyncUpdateEsActivities.php
create mode 100644 app/Console/Commands/IssueMcpTokenCommand.php
create mode 100644 app/Http/Middleware/McpAuditMiddleware.php
create mode 100644 app/Http/Middleware/McpTierMiddleware.php
create mode 100644 app/Mcp/Contracts/McpCallRepositoryInterface.php
create mode 100644 app/Mcp/DTO/ListCallsFilters.php
create mode 100644 app/Mcp/Errors/McpError.php
create mode 100644 app/Mcp/Repositories/McpActivityHydrator.php
create mode 100644 app/Mcp/Repositories/McpCallRepository.php
create mode 100644 app/Mcp/Repositories/McpElasticCallRepository.php
create mode 100644 app/Mcp/Servers/JiminnyServer.php
create mode 100644 app/Mcp/Tools/ListCallsTool.php
create mode 100644 app/Services/Activity/Twilio/S3RecordingCredentialsService.php
create mode 100644 config/mcp.php
create mode 100644 database/migrations/2026_04_30_120000_create_mcp_audit_log_table.php
create mode 100644 docs/mcp/explorer/explorer.html
create mode 100644 docs/mcp/explorer/explorer.template.html
create mode 100644 docs/mcp/explorer/generate.js
create mode 100644 docs/mcp/explorer/tool-explorer-meta.json
create mode 100644 docs/mcp/tools-list.json
create mode 100644 docs/mcp/tools.md
create mode 100644 front-end/src/components/shared/modals/EntityPickerModal/__tests__/useEntitiesCache.spec.ts
create mode 100644 tests/Feature/Component/Nudge/ProcessOrganisationImmediateNudgesJobTest.php
create mode 100644 tests/Feature/Mcp/IssueMcpTokenCommandTest.php
create mode 100644 tests/Feature/Mcp/ListCallsToolElasticFeatureTest.php
create mode 100644 tests/Feature/Mcp/ListCallsToolFeatureTest.php
create mode 100644 tests/Feature/Mcp/McpTestHelpersTrait.php
create mode 100644 tests/Stubs/SentryStub.php
create mode 100644 tests/Unit/Component/AiAutomation/Services/CrmFillingEligibilityCheckerTest.php
delete mode 100644 tests/Unit/Component/ES/ElasticSearchWorkerManagerTest.php
create mode 100644 tests/Unit/Component/ES/Processor/Actions/LoadDocumentsActionTest.php
delete mode 100644 tests/Unit/Component/ES/Processor/Traits/SkipActivityTraitTest.php
delete mode 100644 tests/Unit/Component/ES/Worker/ActivityWorkerTest.php
delete mode 100644 tests/Unit/Component/ES/Worker/EntityWorkerTest.php
delete mode 100644 tests/Unit/Component/ES/Worker/WorkerAmountTest.php
create mode 100644 tests/Unit/Component/ParticipantSpeech/Services/ParticipantSpeechesCreatorTest.php
create mode 100644 tests/Unit/Http/Controllers/Kiosk/ActivityControllerTest.php
create mode 100644 tests/Unit/Services/Activity/Twilio/S3RecordingCredentialsServiceTest.php
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20725-handle-HS-search-rate-limit) $ git status
On branch master
Your branch is behind 'origin/master' by 114 commits, and can be fast-forwarded.
(use "git pull" to update your local branch)
Changes not staged for commit:
(use "git add <file>..." to update what will be committed)
(use "git restore <file>..." to discard changes in working directory)
modified: .env.local
modified: app/Component/SCIM/Constants.php
modified: app/Component/SCIM/ScimProvisioning.php
modified: app/Component/Twilio/Conference/ConferenceManager/SoftPhoneManager.php
modified: app/Console/Commands/JiminnyDebugCommand.php
modified: app/DTO/SCIM/AAD/Request/CoreUserRequest.php
modified: app/DTO/SCIM/AAD/Response/CoreUser.php
modified: app/Services/Telephony/TextMessagingService.php
modified: config/logging.php
Untracked files:
(use "git add <file>..." to include in what will be committed)
.env.nikilocal
.env.other
WEBHOOK_FILTERING_IMPLEMENTATION.md
app/Component/SCIM/Mutators/Attributes/User/RoleAttr.php
app/Console/Commands/Crm/Hubspot/SimulateWebhooksCommand.php
app/Console/Commands/Reports/CreateMockAskJiminnyReportResultCommand.php
app/Rules/ListenerRoleCannotHaveAdminOrManagerPermissionRule.php
ids.txt
public/favicon.ico
raw_sql_query.sql
tests/Unit/Component/SCIM/Mutators/Attributes/User/RoleAttrTest.php
tests/Unit/Policies/CanAccessAiReportsTest.php
tests/Unit/Rules/ListenerRoleCannotHaveAdminOrManagerPermissionRuleTest.php
no changes added to commit (use "git add" and/or "git commit -a")
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (master) $ git pull
remote: Enumerating objects: 306, done.
remote: Counting objects: 100% (299/299), done.
remote: Compressing objects: 100% (183/183), done.
remote: Total 306 (delta 213), reused 171 (delta 116), pack-reused 7 (from 1)
Receiving objects: 100% (306/306), 80.12 KiB | 1000.00 KiB/s, done.
Resolving deltas: 100% (213/213), completed with 53 local objects.
From github.com:jiminny/app
90bca4e4b2..5604af40cf master -> origin/master
4e7078fd8b..0b8343d179 JY-18091-upgrade-to-php-8-5 -> origin/JY-18091-upgrade-to-php-8-5
098eeaa087..d5a447e492 JY-20613-allow-owner-role-on-team-setup -> origin/JY-20613-allow-owner-role-on-team-setup
c3a76ace91..af65249d0f JY-20749-user-can-view-recorded-meetings -> origin/JY-20749-user-can-view-recorded-meetings
d94a285ae7..7ce96cb5fe JY-20808-low-priority-indexing-queue -> origin/JY-20808-low-priority-indexing-queue
* [new branch] JY-20842-remove-partial-updater -> origin/JY-20842-remove-partial-updater
* [new branch] JY-20920-fix-participant-flip -> origin/JY-20920-fix-participant-flip
* [new branch] secfix/npm-20260519 -> origin/secfix/npm-20260519
Updating cb4ebf0c36..5604af40cf
Fast-forward
app/Component/ES/ChunkSize.php | 54 +++++++++++++++++++
app/Component/ES/Processor/DTOs/SelectionList.php | 4 +-
app/Component/ES/Processor/TargetEntitiesSelector.php | 19 ++++---
app/Component/MeetingBot/Service/ParticipantMatcher.php | 46 ++++++++++++----
app/Exceptions/RateLimitException.php | 19 ++++++-
app/Http/Middleware/McpTierMiddleware.php | 27 ++--------
app/Jobs/Crm/MatchActivityCrmData.php | 47 ++++++++++++----
app/Jobs/Middleware/HandleHubspotRateLimit.php | 42 +++++++++++++++
app/Mcp/Servers/JiminnyServer.php | 2 +
app/Mcp/Tools/GetMeTool.php | 157 +++++++++++++++++++++++++++++++++++++++++++++++++++++
app/Models/Feature/FeatureEnum.php | 1 +
app/Services/Activity/HubSpot/ProviderResolver.php | 4 +-
app/Services/Activity/HubSpot/ProviderResolverInterface.php | 2 +-
app/Services/Activity/HubSpot/Providers/Provider.php | 2 +-
app/Services/Activity/HubSpot/Providers/ProviderKixie.php | 2 +-
app/Services/Activity/HubSpot/Providers/ProviderOrum.php | 2 +-
app/Services/Activity/HubSpot/Providers/ProviderTwilio.php | 2 +-
app/Services/Activity/HubSpot/Providers/ProviderTwilioFlex.php | 5 +-
app/Services/Activity/HubSpot/Service.php | 97 +++++++++++++++++++++++++++------
app/Services/Crm/Hubspot/Client.php | 132 +++++++++++++++++++++++++++++++++++++++++++++
app/Services/Crm/Hubspot/HubspotClientInterface.php | 15 ++++++
app/Services/Crm/Hubspot/Pagination/HubspotPaginationService.php | 21 ++++----
app/Services/Crm/Hubspot/Pagination/PaginationState.php | 2 +-
database/migrations/2026_05_13_124153_create_mcp_feature_flag.php | 25 +++++++++
tests/Feature/Mcp/GetMeToolFeatureTest.php | 140 +++++++++++++++++++++++++++++++++++++++++++++++
tests/Feature/Mcp/ListCallsToolFeatureTest.php | 2 +-
tests/Feature/Mcp/McpTestHelpersTrait.php | 19 ++++++-
tests/Unit/Component/ES/ChunkSizeTest.php | 50 +++++++++++++++++
tests/Unit/Component/ES/Processor/DTOs/SelectionListTest.php | 27 +++++++---
tests/Unit/Component/ES/Processor/TargetEntitiesSelectorTest.php | 39 ++++++++------
tests/Unit/Component/MeetingBot/Service/ParticipantMatcherTest.php | 68 ++++++++++++++++++++++-
tests/Unit/Exceptions/RateLimitExceptionTest.php | 56 +++++++++++++++++++
tests/Unit/Jobs/Crm/MatchActivityCrmDataTest.php | 8 +--
tests/Unit/Jobs/Middleware/HandleHubspotRateLimitTest.php | 151 +++++++++++++++++++++++++++++++++++++++++++++++++++
tests/Unit/Services/Activity/HubSpot/ServiceTest.php | 109 +++++++++++++++++++++++++++++++++++++
tests/Unit/Services/Crm/Hubspot/ClientTest.php | 250 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
tests/Unit/Services/Crm/Hubspot/Pagination/HubspotPaginationServiceTest.php | 283 +++++++++++++++++++++---------------------------------------------------------------------------
37 files changed, 1587 insertions(+), 344 deletions(-)
create mode 100644 app/Component/ES/ChunkSize.php
create mode 100644 app/Jobs/Middleware/HandleHubspotRateLimit.php
create mode 100644 app/Mcp/Tools/GetMeTool.php
create mode 100644 database/migrations/2026_05_13_124153_create_mcp_feature_flag.php
create mode 100644 tests/Feature/Mcp/GetMeToolFeatureTest.php
create mode 100644 tests/Unit/Component/ES/ChunkSizeTest.php
create mode 100644 tests/Unit/Exceptions/RateLimitExceptionTest.php
create mode 100644 tests/Unit/Jobs/Middleware/HandleHubspotRateLimitTest.php
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (master) $ git pull
Already up to date.
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (master) $ co -b JY-20676-delete-report-related-objects
Switched to a new branch 'JY-20676-delete-report-related-objects'
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20676-delete-report-related-objects) $ csfix
docker exec -it docker_lamp_1 ./vendor/bin/php-cs-fixer fix --config=.php-cs-fixer.dist.php -v --using-cache=no --diff
PHP CS Fixer 3.87.1 Alexander by Fabien Potencier, Dariusz Ruminski and contributors.
PHP runtime: 8.3.30
Running 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!
Loaded config default from ".php-cs-fixer.dist.php".
5690/5690 [▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓] 100%
1) app/Console/Commands/JiminnyDebugCommand.php (statement_indentation, blank_line_before_statement)
---------- begin diff ----------
--- /home/jiminny/app/Console/Commands/JiminnyDebugCommand.php
+++ /home/jiminny/app/Console/Commands/JiminnyDebugCommand.php
@@ -23,6 +23,7 @@
if ($action === 'redis-set') {
$this->testRedisSet();
+
return;
}
@@ -45,7 +46,7 @@
$ttl = 60;
try {
-// $result = Redis::set($testKey, $testValue, 'EX', $ttl, 'NX');
+ // $result = Redis::set($testKey, $testValue, 'EX', $ttl, 'NX');
$result = Redis::set($testKey, $testValue, ['nx', 'ex' => $ttl]);
if ($result) {
----------- end diff -----------
Fixed 1 of 5690 files i...
|
58091
|
NULL
|
NULL
|
NULL
|
|
58108
|
2046
|
5
|
2026-05-19T11:38:48.774066+00:00
|
/Users/lukas/.screenpipe/data/data/2026-05-19/1779 /Users/lukas/.screenpipe/data/data/2026-05-19/1779190728774_m1.jpg...
|
iTerm2
|
APP (-zsh)
|
1
|
NULL
|
monitor_1
|
NULL
|
NULL
|
NULL
|
NULL
|
Last login: Mon May 18 09:17:28 on ttys007
Poetry Last login: Mon May 18 09:17:28 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 (pipedrive-sdk-poc) $ co master
error: Your local changes to the following files would be overwritten by checkout:
PIPEDRIVE_V2_MIGRATION_TICKETS.md
Please commit your changes or stash them before you switch branches.
Aborting
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (pipedrive-sdk-poc) $ git pull
remote: Enumerating objects: 1047, done.
remote: Counting objects: 100% (832/832), done.
remote: Compressing objects: 100% (298/298), done.
remote: Total 1047 (delta 634), reused 596 (delta 534), pack-reused 215 (from 3)
Receiving objects: 100% (1047/1047), 353.16 KiB | 1.56 MiB/s, done.
Resolving deltas: 100% (687/687), completed with 107 local objects.
From github.com:jiminny/app
907c54896c..34656c53ed pipedrive-sdk-poc -> origin/pipedrive-sdk-poc
03325ec50f..4e7078fd8b JY-18091-upgrade-to-php-8-5 -> origin/JY-18091-upgrade-to-php-8-5
e7d231e163..bc6a3fce6b JY-20725-handle-HS-search-rate-limit -> origin/JY-20725-handle-HS-search-rate-limit
* [new branch] JY-20749-user-can-view-recorded-meetings -> origin/JY-20749-user-can-view-recorded-meetings
98ca281a04..e0351be069 JY-20808-low-priority-indexing-queue -> origin/JY-20808-low-priority-indexing-queue
569abb5149..3906a9238a JY-20835-mcp-enable-users-to-get-a-list-of-deals-and-their-details -> origin/JY-20835-mcp-enable-users-to-get-a-list-of-deals-and-their-details
ad6c2a86e8..50eb6afba9 JY-20846-mcp-enable-the-ai-to-know-details-about-the-user -> origin/JY-20846-mcp-enable-the-ai-to-know-details-about-the-user
* [new branch] JY-20893-chunk-control-per-update-target -> origin/JY-20893-chunk-control-per-update-target
31c62924a5..cb4ebf0c36 master -> origin/master
Updating 907c54896c..34656c53ed
Fast-forward
PIPEDRIVE_V2_MIGRATION_TICKETS.md | 52 ++++++++++++++++++++++++++++++++++++++++++++++++++++
1 file changed, 52 insertions(+)
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (pipedrive-sdk-poc) $ co master
M .env.local
M config/logging.php
Switched to branch 'master'
Your branch is behind 'origin/master' by 31 commits, and can be fast-forwarded.
(use "git pull" to update your local branch)
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (master) $ git pull
Updating 31c62924a5..cb4ebf0c36
Fast-forward
app/Component/ES/Processor/Traits/SelectEntityListTrait.php | 20 ------
app/Services/Calendar/CalendarActivityService.php | 46 +++++++++++++
app/Services/Calendar/Command/MapActivityData.php | 106 +++-------------------------
docs/mcp/explorer/explorer.html | 104 +++++++++++++++++++++++++---
docs/mcp/explorer/explorer.template.html | 102 ++++++++++++++++++++++++---
docs/mcp/tools-list.json | 373 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++-------
docs/mcp/tools.md | 117 +++++++++++++++++++++++--------
tests/Unit/Component/ES/AsyncUpdateElasticSearchTest.php | 16 +----
tests/Unit/Component/ES/Listeners/UpdateMultipleTargetsListenerTest.php | 10 ---
tests/Unit/Component/ES/Listeners/UpdateSingleTargetListenerTest.php | 6 --
tests/Unit/Component/ES/Processor/TargetEntitiesSelectorTest.php | 9 ---
tests/Unit/Component/ES/Processor/Traits/SelectEntityListTraitTest.php | 15 ++--
tests/Unit/Component/ES/UpdateProcessManagerTest.php | 2 -
tests/Unit/Services/Calendar/CalendarActivityServiceTest.php | 150 ++++++++++++++++++++++++++++++++++++++--
tests/Unit/Services/Calendar/Command/MapActivityDataTest.php | 78 ++-------------------
15 files changed, 832 insertions(+), 322 deletions(-)
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (master) $ co -b JY-20613-allow-owner-role-on-team-setup
Switched to a new branch 'JY-20613-allow-owner-role-on-team-setup'
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20613-allow-owner-role-on-team-setup) $ csfix
docker exec -it docker_lamp_1 ./vendor/bin/php-cs-fixer fix --config=.php-cs-fixer.dist.php -v --using-cache=no --diff
PHP CS Fixer 3.87.1 Alexander by Fabien Potencier, Dariusz Ruminski and contributors.
PHP runtime: 8.3.30
Running 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!
Loaded config default from ".php-cs-fixer.dist.php".
5682/5682 [▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓] 100%
Fixed 0 of 5682 files in 56.978 seconds, 67.00 MB memory used
What's next:
Try Docker Debug for seamless, persistent debugging tools in any container or image → docker debug docker_lamp_1
Learn more at [URL_WITH_CREDENTIALS] ~/jiminny/app (JY-20613-allow-owner-role-on-team-setup) $ csfix
docker exec -it docker_lamp_1 ./vendor/bin/php-cs-fixer fix --config=.php-cs-fixer.dist.php -v --using-cache=no --diff
PHP CS Fixer 3.87.1 Alexander by Fabien Potencier, Dariusz Ruminski and contributors.
PHP runtime: 8.3.30
Running 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!
Loaded config default from ".php-cs-fixer.dist.php".
5682/5682 [▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓] 100%
Fixed 0 of 5682 files in 49.910 seconds, 60.00 MB memory used
What's next:
Try Docker Debug for seamless, persistent debugging tools in any container or image → docker debug docker_lamp_1
Learn more at [URL_WITH_CREDENTIALS] ~/jiminny/app (JY-20613-allow-owner-role-on-team-setup) $ git pull
remote: Enumerating objects: 248, done.
remote: Counting objects: 100% (128/128), done.
remote: Compressing objects: 100% (23/23), done.
remote: Total 59 (delta 43), reused 44 (delta 33), pack-reused 0 (from 0)
Unpacking objects: 100% (59/59), 10.48 KiB | 228.00 KiB/s, done.
From github.com:jiminny/app
b7df560451..190239dfd4 JY-20613-allow-owner-role-on-team-setup -> origin/JY-20613-allow-owner-role-on-team-setup
e0351be069..d94a285ae7 JY-20808-low-priority-indexing-queue -> origin/JY-20808-low-priority-indexing-queue
* [new branch] JY-20920-fix-participant-matcher -> origin/JY-20920-fix-participant-matcher
cb4ebf0c36..90bca4e4b2 master -> origin/master
Merge made by the 'ort' strategy.
app/Component/ES/ChunkSize.php | 54 +++++++++++++++++++++++++++
app/Component/ES/Processor/DTOs/SelectionList.php | 4 +-
app/Component/ES/Processor/TargetEntitiesSelector.php | 19 ++++++----
app/Http/Middleware/McpTierMiddleware.php | 27 +++-----------
app/Mcp/Servers/JiminnyServer.php | 2 +
app/Mcp/Tools/GetMeTool.php | 157 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
app/Models/Feature/FeatureEnum.php | 1 +
database/migrations/2026_05_13_124153_create_mcp_feature_flag.php | 25 +++++++++++++
front-end/src/components/Settings/Kiosk/modals/EditTeamModal/EditTeamModal.vue | 52 ++++++++++++++++++--------
front-end/src/components/Settings/Kiosk/modals/EditTeamModal/__tests__/EditTeamModal.spec.js | 14 +++++++
tests/Feature/Mcp/GetMeToolFeatureTest.php | 140 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
tests/Feature/Mcp/ListCallsToolFeatureTest.php | 2 +-
tests/Feature/Mcp/McpTestHelpersTrait.php | 19 +++++++++-
tests/Unit/Component/ES/ChunkSizeTest.php | 50 +++++++++++++++++++++++++
tests/Unit/Component/ES/Processor/DTOs/SelectionListTest.php | 27 ++++++++++----
tests/Unit/Component/ES/Processor/TargetEntitiesSelectorTest.php | 39 +++++++++++---------
16 files changed, 557 insertions(+), 75 deletions(-)
create mode 100644 app/Component/ES/ChunkSize.php
create mode 100644 app/Mcp/Tools/GetMeTool.php
create mode 100644 database/migrations/2026_05_13_124153_create_mcp_feature_flag.php
create mode 100644 tests/Feature/Mcp/GetMeToolFeatureTest.php
create mode 100644 tests/Unit/Component/ES/ChunkSizeTest.php
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20613-allow-owner-role-on-team-setup) $ git push
Enumerating objects: 40, done.
Counting objects: 100% (34/34), done.
Delta compression using up to 8 threads
Compressing objects: 100% (18/18), done.
Writing objects: 100% (18/18), 1.58 KiB | 1.58 MiB/s, done.
Total 18 (delta 15), reused 0 (delta 0), pack-reused 0
remote: Resolving deltas: 100% (15/15), completed with 13 local objects.
To github.com:jiminny/app.git
190239dfd4..ec1b261264 JY-20613-allow-owner-role-on-team-setup -> JY-20613-allow-owner-role-on-team-setup
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20613-allow-owner-role-on-team-setup) $ gbr
* JY-20613-allow-owner-role-on-team-setup
pipedrive-sdk-poc
master
JY-20903-update_activity-stage-on-opportunity-change
JY-20904-fix-update-es-on-activity-command
JY-20891-improve-sms-text-relays
JY-20725-handle-HS-search-rate-limit
JY-20818-move-AJ-reports-to-separated-datadog-metric
JY-20773-fix-automated-reports-user-pilot-tracking
JY-20157-AJ-report-not-send-notification
JY-20508-notify-before-AJ-report-expiration
JY-20372-ai-reports-promotion-pages
JY-20352-sync-opportunities-without-a-local-owner-user-id-is-null
JY-20738-debug-AJ-tracking-UP
a
JY-18909-automated-reports-ask-jiminny
JY-20692-fix-integration-app-[API_KEY]
JY-20553-debug-crm-sync-delays
JY-20698-fix-SF-activity-types-on-new-playbook
JY-20543-AJ-report-tracking
JY-20384-handle-auto-sync-with-no-access-to-event-type
JY-20458-ask-jiminny-user-definitions
JY-19666-fix-import-contacts-account-association
JY-19666-HS-import-contacts-and-accounts-batch-job
JY-20458-Ask-Jiminny-Reports
JY-20200-batch-update-CRM-objects-Salesforce
JY-19666-HS-webhooks-add-contact-and-company
JY-20348-trigger-setup-DI-layout-on-team-creation
JY-20326-refactor-info-message-in-command
JY-20317-fix-auto-log-delay-issue-on-all-channels-disabled
JY-20312-remove-on-update-change-last-synced-at-crm-configurations
JY-20306-SF-skip-auto-sync-for-task-based-playbook
JY-20192-remove-deleted-team-from-saved-search-filters
JY-20197-import-opportunity-batch-job
JY-20293-enable-status-field-for-pipedrive-deals
JY-20191-remove-commands-interactive-prompts
JY-20118-change-default-sync-strategy
JY-20183-add-cache-on-auto-log-delay
JY-20197-add-import-opportunity-batch-job
20118-hs-opportunity-make-webhook-strategy-default
JY-20118-make-default-hs-opportunity-sync-strategy-webhook-based
JY-20196-handle-opportunity-without-note
JY-20118-improve-opportunity-import
JY-20189-handle-activity-search-on-deleted-groups
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20613-allow-owner-role-on-team-setup) $ co JY-20725-handle-HS-search-rate-limit
M .env.local
M config/logging.php
Switched to branch 'JY-20725-handle-HS-search-rate-limit'
Your branch is behind 'origin/JY-20725-handle-HS-search-rate-limit' by 439 commits, and can be fast-forwarded.
(use "git pull" to update your local branch)
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20725-handle-HS-search-rate-limit) $ git pull
Updating 0f3e438941..bc6a3fce6b
Fast-forward
.gitignore | 3 +-
.windsurfrules | 168 ++---
CLAUDE.md | 1 +
app/Component/ActivityAnalytics/Service/CalculateTalkTimeOffsetsFromTranscription.php | 24 +-
app/Component/AiActivityType/Services/AiActivityTypeEligibilityChecker.php | 28 +-
app/Component/AiAutomation/Actions/PrepareUpdateDtoAction.php | 32 +-
app/Component/AiAutomation/Services/CrmFillingEligibilityChecker.php | 47 ++
app/Component/AiAutomation/TestCrmAiPromptService.php | 14 +
app/Component/AiCallScoring/Services/AiCallScoringEligibilityChecker.php | 9 +
app/Component/ES/ElasticSearchDocumentPartialUpdater.php | 13 +-
app/Component/ES/ElasticSearchWorkerManager.php | 86 ---
app/Component/ES/Processor/Actions/LoadDocumentsAction.php | 80 +--
app/Component/ES/Processor/EntityQueryBuilder.php | 12 +-
app/Component/ES/Processor/TargetEntitiesSelector.php | 2 +-
app/Component/ES/Processor/Traits/SkipActivityTrait.php | 25 -
app/Component/ES/Repositories/EsResetActivityRepository.php | 11 +-
app/Component/ES/Worker/ActivityWorker.php | 73 --
app/Component/ES/Worker/EntityWorker.php | 44 --
app/Component/ES/Worker/WorkerAmount.php | 60 --
app/Component/ES/Worker/WorkerInterface.php | 15 -
app/Component/ElasticSearch/Contract/Searchable.php | 4 +
app/Component/Encoding/Job/AnalyzeTrackChannelsJob.php | 20 +-
app/Component/Encoding/Service/GenerateSpeechFromSilenceService.php | 85 ++-
app/Component/FFMpeg/Services/GetSpeechIntervalsService.php | 18 +-
app/Component/LanguageDetection/Services/FindSpeechTimeService.php | 22 +-
app/Component/Nudge/Job/ProcessOrganisationImmediateNudgesJob.php | 218 +++++-
app/Component/ParagraphBreaker/Services/TranscriptionParagraphsService.php | 4 +
app/Component/ParticipantSpeech/Services/ParticipantSpeechesCreator.php | 33 +
app/Component/ParticipantSpeech/Services/ParticipantSpeechesDeleter.php | 15 +
app/Component/ParticipantSpeech/Services/ParticipantSpeechesProvider.php | 51 +-
app/Component/ParticipantSpeech/Services/ParticipantSpeechesUploader.php | 36 +
app/Component/ProphetAi/Exceptions/InsufficientTranscriptException.php | 11 +
app/Component/Transcription/DTO/Http/Transcription/AssemblyAI/AssemblyAI/NoAssemblyIdException.php | 11 +
app/Component/Transcription/DTO/Http/Transcription/AssemblyAI/AssemblyAI/SuccessfulResponse.php | 6 +
app/Component/Transcription/DTO/Http/Transcription/TranscriptionIsNotCorrectFormatException.php | 11 +
app/Component/Transcription/Diarization/Services/GetNormalizedParticipantSpeechesService.php | 23 +-
app/Component/Transcription/Diarization/Source/MeetingBotSource.php | 16 +-
app/Component/Transcription/TranscriptionProcessor/TranscriptionProcessor.php | 3 +
app/Console/Commands/Activities/ActivityHardDeleteCommand.php | 4 +-
app/Console/Commands/Activities/Copy.php | 2 +
app/Console/Commands/Activities/SetupIntegration/TwilioSetS3RecordingCredentialsCommand.php | 119 ++++
app/Console/Commands/Activities/UpdateActivityElasticSearchDocumentCommand.php | 10 +-
app/Console/Commands/Crm/BackfillOpportunityUserFromAccountCommand.php | 126 ++++
app/Console/Commands/Elasticsearch/AsyncUpdateEsActivities.php | 19 -
app/Console/Commands/Elasticsearch/AsyncUpdateEsEntities.php | 50 +-
app/Console/Commands/Elasticsearch/ResetAsyncElasticSearchCommand.php | 30 +-
app/Console/Commands/GeckoExport/GeckoExportParticipantSpeechesCommand.php | 14 +-
app/Console/Commands/IssueMcpTokenCommand.php | 84 +++
app/Console/Commands/JiminnyDebugCommand.php | 7 +-
app/Console/Commands/Tracks/CleanupActivityTracksCommand.php | 2 +-
app/Console/Kernel.php | 6 +-
app/Contracts/Services/Calendar/CalendarTrait.php | 80 ++-
app/Events/AutomatedReports/AutomatedReportGenerated.php | 3 +
app/Http/Controllers/API/AiCallScoring/AiScorecardController.php | 7 +-
app/Http/Controllers/API/TeamAiAutomationController.php | 8 +
app/Http/Controllers/CustomerApi/CustomerApiController.php | 4 +-
app/Http/Controllers/Kiosk/ActivityController.php | 58 +-
app/Http/Controllers/Settings/PlaybookController.php | 15 +-
app/Http/Kernel.php | 23 +
app/Http/Middleware/McpAuditMiddleware.php | 156 ++++
app/Http/Middleware/McpTierMiddleware.php | 54 ++
app/Http/Requests/API/V2/ZapierUploadActivityRequest.php | 28 +-
app/Jobs/Activity/Import/ImportTwilioVideoSpeechesJob.php | 25 +-
app/Jobs/Activity/Import/IsActivityReadyForProcessingJob.php | 10 +-
app/Jobs/Calendar/SetupCalendarSync.php | 21 +-
app/Jobs/ImportRemoteTrackJob.php | 96 ++-
app/Jobs/Mailbox/EmailTextRelay.php | 15 +-
app/Mcp/Contracts/McpCallRepositoryInterface.php | 30 +
app/Mcp/DTO/ListCallsFilters.php | 29 +
app/Mcp/Errors/McpError.php | 123 ++++
app/Mcp/Repositories/McpActivityHydrator.php | 145 ++++
app/Mcp/Repositories/McpCallRepository.php | 84 +++
app/Mcp/Repositories/McpElasticCallRepository.php | 171 +++++
app/Mcp/Servers/JiminnyServer.php | 38 +
app/Mcp/Tools/ListCallsTool.php | 205 ++++++
app/Models/Activity.php | 10 +-
app/Models/Activity/Transcription.php | 17 +-
app/Models/ElasticSearch/OpportunityElasticSearchTrait.php | 5 +
app/Models/Participant.php | 1 +
app/Providers/AppServiceProvider.php | 22 +
app/Repositories/Crm/ContactRepository.php | 69 +-
app/Repositories/ParticipantSpeechRepository.php | 13 +-
app/Services/Activity/ParticipantsService.php | 19 +-
app/Services/Activity/Twilio/S3RecordingCredentialsService.php | 82 +++
app/Services/ActivityService.php | 21 +-
app/Services/Calendar/CalendarActivityService.php | 46 ++
app/Services/Calendar/Command/ImportParticipants.php | 1 +
app/Services/Calendar/Command/MapActivityData.php | 106 +--
app/Services/Calendar/GoogleCalendarService.php | 12 +-
app/Services/Crm/Close/Processor/OpportunityProcessor.php | 2 +-
app/Services/Crm/Close/Service.php | 22 +-
app/Services/Crm/Copper/Service.php | 12 +-
app/Services/Crm/Hubspot/Service.php | 154 +++-
app/Services/Crm/Hubspot/ServiceTraits/OpportunitySyncTrait.php | 88 ++-
app/Services/Crm/IntegrationApp/ServiceTraits/SyncCrmEntitiesTrait.php | 22 +-
app/Services/Crm/Pipedrive/Service.php | 17 +-
app/Services/Crm/Salesforce/Service.php | 42 +-
app/Services/Mail/Office/EmailApiClient.php | 129 +---
app/Services/RecallAI/Commands/ScheduleBotCommand.php | 39 +-
app/Services/RecallAI/RecallAIService.php | 22 +-
composer.json | 3 +-
composer.lock | 87 ++-
config/mcp.php | 23 +
database/migrations/2026_04_30_120000_create_mcp_audit_log_table.php | 36 +
docs/mcp/explorer/explorer.html | 697 ++++++++++++++++++
docs/mcp/explorer/explorer.template.html | 697 ++++++++++++++++++
docs/mcp/explorer/generate.js | 215 ++++++
docs/mcp/explorer/tool-explorer-meta.json | 11 +
docs/mcp/tools-list.json | 2536 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
docs/mcp/tools.md | 621 ++++++++++++++++
front-end/package.json | 4 +-
front-end/src/components/Settings/OrgSettings/AiAutomation/CrmFilling/TemplateFieldForm.vue | 28 +-
front-end/src/components/Settings/OrgSettings/Playbooks/AddEditPlaybook.vue | 10 +
front-end/src/components/playback/comments/ActivityComment.less | 10 +-
front-end/src/components/shared/PromptTester/PromptTester.vue | 12 +-
front-end/src/components/shared/__tests__/PromptTester.spec.js | 35 +
front-end/src/components/shared/modals/EntityPickerModal/__tests__/useEntitiesCache.spec.ts | 37 +
front-end/src/components/shared/modals/EntityPickerModal/useEntitiesCache.ts | 9 +
front-end/yarn.lock | 16 +-
phpstan-baseline.neon | 50 --
routes/api.php | 11 +
sonar-project.properties | 91 ++-
tests/Feature/Component/Nudge/ProcessOrganisationImmediateNudgesJobTest.php | 534 ++++++++++++++
tests/Feature/Jobs/ImportRemoteTrackJobTest.php | 283 +++++++-
tests/Feature/Mcp/IssueMcpTokenCommandTest.php | 53 ++
tests/Feature/Mcp/ListCallsToolElasticFeatureTest.php | 155 ++++
tests/Feature/Mcp/ListCallsToolFeatureTest.php | 352 ++++++++++
tests/Feature/Mcp/McpTestHelpersTrait.php | 77 ++
tests/Feature/Services/Team/TeamDeleteHandlers/Retention/RetentionRepositoryHandlerTest.php | 1 +
tests/Stubs/SentryStub.php | 18 +
tests/Unit/Component/ActivityAnalytics/Service/CalculateTalkTimeOffsetFromTranscriptionTest.php | 28 +-
tests/Unit/Component/AiActivityType/Services/AiActivityTypeEligibilityCheckerTest.php | 103 ++-
tests/Unit/Component/AiAutomation/Actions/PrepareUpdateDtoActionTest.php | 91 +++
tests/Unit/Component/AiAutomation/Services/CrmFillingEligibilityCheckerTest.php | 124 ++++
tests/Unit/Component/AiAutomation/TestCrmAiPromptServiceTest.php | 67 +-
tests/Unit/Component/AiCallScoring/Services/AiCallScoringEligibilityCheckerTest.php | 55 ++
tests/Unit/Component/ES/ElasticSearchWorkerManagerTest.php | 135 ----
tests/Unit/Component/ES/Processor/Actions/LoadDocumentsActionTest.php | 220 ++++++
tests/Unit/Component/ES/Processor/EntityQueryBuilderTest.php | 21 +-
tests/Unit/Component/ES/Processor/Traits/SkipActivityTraitTest.php | 51 --
tests/Unit/Component/ES/Worker/ActivityWorkerTest.php | 174 -----
tests/Unit/Component/ES/Worker/EntityWorkerTest.php | 97 ---
tests/Unit/Component/ES/Worker/WorkerAmountTest.php | 116 ---
tests/Unit/Component/Encoding/Job/AnalyzeTrackChannelsJobTest.php | 52 +-
tests/Unit/Component/Encoding/Service/GenerateSpeechFromSilenceServiceTest.php | 171 ++---
tests/Unit/Component/FFMpeg/Services/GetSpeechIntervalsTest.php | 36 +-
tests/Unit/Component/LanguageDetection/Services/FindSpeechTimeServiceTest.php | 20 +-
tests/Unit/Component/MobileSettings/MobileSettingsControllerTest.php | 5 +-
tests/Unit/Component/ParticipantSpeech/Services/ParticipantSpeechesCreatorTest.php | 75 ++
tests/Unit/Component/ParticipantSpeech/Services/ParticipantSpeechesDeleterTest.php | 63 ++
tests/Unit/Component/ParticipantSpeech/Services/ParticipantSpeechesProviderTest.php | 134 ++++
tests/Unit/Component/ParticipantSpeech/Services/ParticipantSpeechesUploaderTest.php | 57 ++
tests/Unit/Component/Transcription/Diarization/Services/GetNormalizedParticipantSpeechesServiceTest.php | 51 +-
tests/Unit/Component/Transcription/Diarization/Source/MeetingBotSourceTest.php | 29 +-
tests/Unit/Contracts/Services/Calendar/CalendarTraitTest.php | 58 +-
tests/Unit/Http/Controllers/Kiosk/ActivityControllerTest.php | 159 +++++
tests/Unit/Jobs/Activity/Import/ImportTwilioVideoSpeechesJobTest.php | 22 +-
tests/Unit/Jobs/Activity/Import/IsActivityReadyForProcessingJobTest.php | 26 +-
tests/Unit/Jobs/Calendar/SetupCalendarSyncTest.php | 25 -
tests/Unit/Services/Activity/ParticipantsServiceTest.php | 12 +-
tests/Unit/Services/Activity/Twilio/S3RecordingCredentialsServiceTest.php | 180 +++++
tests/Unit/Services/ActivityServiceTest.php | 132 ++++
tests/Unit/Services/Calendar/CalendarActivityServiceTest.php | 150 +++-
tests/Unit/Services/Calendar/Command/ImportParticipantsTest.php | 6 +-
tests/Unit/Services/Calendar/Command/MapActivityDataTest.php | 78 +-
tests/Unit/Services/Calendar/GoogleCalendarServiceTest.php | 116 +++
tests/Unit/Services/Crm/Close/ServiceTest.php | 165 +++++
tests/Unit/Services/Crm/Hubspot/ServiceTest.php | 272 ++++++-
tests/Unit/Services/Crm/Hubspot/ServiceTraits/OpportunitySyncTest.php | 25 +-
tests/Unit/Services/Crm/Hubspot/ServiceTraits/OpportunitySyncTraitMatchActivitiesTest.php | 3 +-
tests/Unit/Services/Crm/IntegrationApp/ServiceTraits/SyncCrmEntitiesTraitOpportunitiesTest.php | 40 ++
tests/Unit/Services/Crm/Pipedrive/ImportOpportunityMatchActivitiesTest.php | 2 +
tests/Unit/Services/Crm/Salesforce/ServiceTest.php | 139 ++++
tests/Unit/Services/Mail/Office/EmailApiClientTest.php | 195 ++---
tests/Unit/Services/RecallAI/RecallAIServiceTest.php | 24 +-
175 files changed, 12562 insertions(+), 2162 deletions(-)
create mode 120000 CLAUDE.md
create mode 100644 app/Component/AiAutomation/Services/CrmFillingEligibilityChecker.php
delete mode 100644 app/Component/ES/ElasticSearchWorkerManager.php
delete mode 100644 app/Component/ES/Processor/Traits/SkipActivityTrait.php
delete mode 100644 app/Component/ES/Worker/ActivityWorker.php
delete mode 100644 app/Component/ES/Worker/EntityWorker.php
delete mode 100644 app/Component/ES/Worker/WorkerAmount.php
delete mode 100644 app/Component/ES/Worker/WorkerInterface.php
create mode 100644 app/Component/ProphetAi/Exceptions/InsufficientTranscriptException.php
create mode 100644 app/Component/Transcription/DTO/Http/Transcription/AssemblyAI/AssemblyAI/NoAssemblyIdException.php
create mode 100644 app/Component/Transcription/DTO/Http/Transcription/TranscriptionIsNotCorrectFormatException.php
create mode 100644 app/Console/Commands/Activities/SetupIntegration/TwilioSetS3RecordingCredentialsCommand.php
create mode 100644 app/Console/Commands/Crm/BackfillOpportunityUserFromAccountCommand.php
delete mode 100644 app/Console/Commands/Elasticsearch/AsyncUpdateEsActivities.php
create mode 100644 app/Console/Commands/IssueMcpTokenCommand.php
create mode 100644 app/Http/Middleware/McpAuditMiddleware.php
create mode 100644 app/Http/Middleware/McpTierMiddleware.php
create mode 100644 app/Mcp/Contracts/McpCallRepositoryInterface.php
create mode 100644 app/Mcp/DTO/ListCallsFilters.php
create mode 100644 app/Mcp/Errors/McpError.php
create mode 100644 app/Mcp/Repositories/McpActivityHydrator.php
create mode 100644 app/Mcp/Repositories/McpCallRepository.php
create mode 100644 app/Mcp/Repositories/McpElasticCallRepository.php
create mode 100644 app/Mcp/Servers/JiminnyServer.php
create mode 100644 app/Mcp/Tools/ListCallsTool.php
create mode 100644 app/Services/Activity/Twilio/S3RecordingCredentialsService.php
create mode 100644 config/mcp.php
create mode 100644 database/migrations/2026_04_30_120000_create_mcp_audit_log_table.php
create mode 100644 docs/mcp/explorer/explorer.html
create mode 100644 docs/mcp/explorer/explorer.template.html
create mode 100644 docs/mcp/explorer/generate.js
create mode 100644 docs/mcp/explorer/tool-explorer-meta.json
create mode 100644 docs/mcp/tools-list.json
create mode 100644 docs/mcp/tools.md
create mode 100644 front-end/src/components/shared/modals/EntityPickerModal/__tests__/useEntitiesCache.spec.ts
create mode 100644 tests/Feature/Component/Nudge/ProcessOrganisationImmediateNudgesJobTest.php
create mode 100644 tests/Feature/Mcp/IssueMcpTokenCommandTest.php
create mode 100644 tests/Feature/Mcp/ListCallsToolElasticFeatureTest.php
create mode 100644 tests/Feature/Mcp/ListCallsToolFeatureTest.php
create mode 100644 tests/Feature/Mcp/McpTestHelpersTrait.php
create mode 100644 tests/Stubs/SentryStub.php
create mode 100644 tests/Unit/Component/AiAutomation/Services/CrmFillingEligibilityCheckerTest.php
delete mode 100644 tests/Unit/Component/ES/ElasticSearchWorkerManagerTest.php
create mode 100644 tests/Unit/Component/ES/Processor/Actions/LoadDocumentsActionTest.php
delete mode 100644 tests/Unit/Component/ES/Processor/Traits/SkipActivityTraitTest.php
delete mode 100644 tests/Unit/Component/ES/Worker/ActivityWorkerTest.php
delete mode 100644 tests/Unit/Component/ES/Worker/EntityWorkerTest.php
delete mode 100644 tests/Unit/Component/ES/Worker/WorkerAmountTest.php
create mode 100644 tests/Unit/Component/ParticipantSpeech/Services/ParticipantSpeechesCreatorTest.php
create mode 100644 tests/Unit/Http/Controllers/Kiosk/ActivityControllerTest.php
create mode 100644 tests/Unit/Services/Activity/Twilio/S3RecordingCredentialsServiceTest.php
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20725-handle-HS-search-rate-limit) $ git status
On branch master
Your branch is behind 'origin/master' by 114 commits, and can be fast-forwarded.
(use "git pull" to update your local branch)
Changes not staged for commit:
(use "git add <file>..." to update what will be committed)
(use "git restore <file>..." to discard changes in working directory)
modified: .env.local
modified: app/Component/SCIM/Constants.php
modified: app/Component/SCIM/ScimProvisioning.php
modified: app/Component/Twilio/Conference/ConferenceManager/SoftPhoneManager.php
modified: app/Console/Commands/JiminnyDebugCommand.php
modified: app/DTO/SCIM/AAD/Request/CoreUserRequest.php
modified: app/DTO/SCIM/AAD/Response/CoreUser.php
modified: app/Services/Telephony/TextMessagingService.php
modified: config/logging.php
Untracked files:
(use "git add <file>..." to include in what will be committed)
.env.nikilocal
.env.other
WEBHOOK_FILTERING_IMPLEMENTATION.md
app/Component/SCIM/Mutators/Attributes/User/RoleAttr.php
app/Console/Commands/Crm/Hubspot/SimulateWebhooksCommand.php
app/Console/Commands/Reports/CreateMockAskJiminnyReportResultCommand.php
app/Rules/ListenerRoleCannotHaveAdminOrManagerPermissionRule.php
ids.txt
public/favicon.ico
raw_sql_query.sql
tests/Unit/Component/SCIM/Mutators/Attributes/User/RoleAttrTest.php
tests/Unit/Policies/CanAccessAiReportsTest.php
tests/Unit/Rules/ListenerRoleCannotHaveAdminOrManagerPermissionRuleTest.php
no changes added to commit (use "git add" and/or "git commit -a")
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (master) $ git pull
remote: Enumerating objects: 306, done.
remote: Counting objects: 100% (299/299), done.
remote: Compressing objects: 100% (183/183), done.
remote: Total 306 (delta 213), reused 171 (delta 116), pack-reused 7 (from 1)
Receiving objects: 100% (306/306), 80.12 KiB | 1000.00 KiB/s, done.
Resolving deltas: 100% (213/213), completed with 53 local objects.
From github.com:jiminny/app
90bca4e4b2..5604af40cf master -> origin/master
4e7078fd8b..0b8343d179 JY-18091-upgrade-to-php-8-5 -> origin/JY-18091-upgrade-to-php-8-5
098eeaa087..d5a447e492 JY-20613-allow-owner-role-on-team-setup -> origin/JY-20613-allow-owner-role-on-team-setup
c3a76ace91..af65249d0f JY-20749-user-can-view-recorded-meetings -> origin/JY-20749-user-can-view-recorded-meetings
d94a285ae7..7ce96cb5fe JY-20808-low-priority-indexing-queue -> origin/JY-20808-low-priority-indexing-queue
* [new branch] JY-20842-remove-partial-updater -> origin/JY-20842-remove-partial-updater
* [new branch] JY-20920-fix-participant-flip -> origin/JY-20920-fix-participant-flip
* [new branch] secfix/npm-20260519 -> origin/secfix/npm-20260519
Updating cb4ebf0c36..5604af40cf
Fast-forward
app/Component/ES/ChunkSize.php | 54 +++++++++++++++++++
app/Component/ES/Processor/DTOs/SelectionList.php | 4 +-
app/Component/ES/Processor/TargetEntitiesSelector.php | 19 ++++---
app/Component/MeetingBot/Service/ParticipantMatcher.php | 46 ++++++++++++----
app/Exceptions/RateLimitException.php | 19 ++++++-
app/Http/Middleware/McpTierMiddleware.php | 27 ++--------
app/Jobs/Crm/MatchActivityCrmData.php | 47 ++++++++++++----
app/Jobs/Middleware/HandleHubspotRateLimit.php | 42 +++++++++++++++
app/Mcp/Servers/JiminnyServer.php | 2 +
app/Mcp/Tools/GetMeTool.php | 157 +++++++++++++++++++++++++++++++++++++++++++++++++++++
app/Models/Feature/FeatureEnum.php | 1 +
app/Services/Activity/HubSpot/ProviderResolver.php | 4 +-
app/Services/Activity/HubSpot/ProviderResolverInterface.php | 2 +-
app/Services/Activity/HubSpot/Providers/Provider.php | 2 +-
app/Services/Activity/HubSpot/Providers/ProviderKixie.php | 2 +-
app/Services/Activity/HubSpot/Providers/ProviderOrum.php | 2 +-
app/Services/Activity/HubSpot/Providers/ProviderTwilio.php | 2 +-
app/Services/Activity/HubSpot/Providers/ProviderTwilioFlex.php | 5 +-
app/Services/Activity/HubSpot/Service.php | 97 +++++++++++++++++++++++++++------
app/Services/Crm/Hubspot/Client.php | 132 +++++++++++++++++++++++++++++++++++++++++++++
app/Services/Crm/Hubspot/HubspotClientInterface.php | 15 ++++++
app/Services/Crm/Hubspot/Pagination/HubspotPaginationService.php | 21 ++++----
app/Services/Crm/Hubspot/Pagination/PaginationState.php | 2 +-
database/migrations/2026_05_13_124153_create_mcp_feature_flag.php | 25 +++++++++
tests/Feature/Mcp/GetMeToolFeatureTest.php | 140 +++++++++++++++++++++++++++++++++++++++++++++++
tests/Feature/Mcp/ListCallsToolFeatureTest.php | 2 +-
tests/Feature/Mcp/McpTestHelpersTrait.php | 19 ++++++-
tests/Unit/Component/ES/ChunkSizeTest.php | 50 +++++++++++++++++
tests/Unit/Component/ES/Processor/DTOs/SelectionListTest.php | 27 +++++++---
tests/Unit/Component/ES/Processor/TargetEntitiesSelectorTest.php | 39 ++++++++------
tests/Unit/Component/MeetingBot/Service/ParticipantMatcherTest.php | 68 ++++++++++++++++++++++-
tests/Unit/Exceptions/RateLimitExceptionTest.php | 56 +++++++++++++++++++
tests/Unit/Jobs/Crm/MatchActivityCrmDataTest.php | 8 +--
tests/Unit/Jobs/Middleware/HandleHubspotRateLimitTest.php | 151 +++++++++++++++++++++++++++++++++++++++++++++++++++
tests/Unit/Services/Activity/HubSpot/ServiceTest.php | 109 +++++++++++++++++++++++++++++++++++++
tests/Unit/Services/Crm/Hubspot/ClientTest.php | 250 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
tests/Unit/Services/Crm/Hubspot/Pagination/HubspotPaginationServiceTest.php | 283 +++++++++++++++++++++---------------------------------------------------------------------------
37 files changed, 1587 insertions(+), 344 deletions(-)
create mode 100644 app/Component/ES/ChunkSize.php
create mode 100644 app/Jobs/Middleware/HandleHubspotRateLimit.php
create mode 100644 app/Mcp/Tools/GetMeTool.php
create mode 100644 database/migrations/2026_05_13_124153_create_mcp_feature_flag.php
create mode 100644 tests/Feature/Mcp/GetMeToolFeatureTest.php
create mode 100644 tests/Unit/Component/ES/ChunkSizeTest.php
create mode 100644 tests/Unit/Exceptions/RateLimitExceptionTest.php
create mode 100644 tests/Unit/Jobs/Middleware/HandleHubspotRateLimitTest.php
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (master) $ git pull
Already up to date.
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (master) $ co -b JY-20676-delete-report-related-objects
Switched to a new branch 'JY-20676-delete-report-related-objects'
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20676-delete-report-related-objects) $ csfix
docker exec -it docker_lamp_1 ./vendor/bin/php-cs-fixer fix --config=.php-cs-fixer.dist.php -v --using-cache=no --diff
PHP CS Fixer 3.87.1 Alexander by Fabien Potencier, Dariusz Ruminski and contributors.
PHP runtime: 8.3.30
Running 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!
Loaded config default from ".php-cs-fixer.dist.php".
5690/5690 [▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓] 100%
1) app/Console/Commands/JiminnyDebugCommand.php (statement_indentation, blank_line_before_statement)
---------- begin diff ----------
--- /home/jiminny/app/Console/Commands/JiminnyDebugCommand.php
+++ /home/jiminny/app/Console/Commands/JiminnyDebugCommand.php
@@ -23,6 +23,7 @@
if ($action === 'redis-set') {
$this->testRedisSet();
+
return;
}
@@ -45,7 +46,7 @@
$ttl = 60;
try {
-// $result = Redis::set($testKey, $testValue, 'EX', $ttl, 'NX');
+ // $result = Redis::set($testKey, $testValue, 'EX', $ttl, 'NX');
$result = Redis::set($testKey, $testValue, ['nx', 'ex' => $ttl]);
if ($result) {
----------- end diff -----------
Fixed 1 of 5690 files i...
|
[{"role":"AXTextArea","text [{"role":"AXTextArea","text":"Last login: Mon May 18 09:17:28 on ttys007\n\nPoetry could not find a pyproject.toml file in /Users/lukas/jiminny/app or its parents\n\nPoetry could not find a pyproject.toml file in /Users/lukas/jiminny/app or its parents\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (pipedrive-sdk-poc) $ co master\nerror: Your local changes to the following files would be overwritten by checkout:\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tPIPEDRIVE_V2_MIGRATION_TICKETS.md\nPlease commit your changes or stash them before you switch branches.\nAborting\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (pipedrive-sdk-poc) $ git pull\nremote: Enumerating objects: 1047, done.\nremote: Counting objects: 100% (832/832), done.\nremote: Compressing objects: 100% (298/298), done.\nremote: Total 1047 (delta 634), reused 596 (delta 534), pack-reused 215 (from 3)\nReceiving objects: 100% (1047/1047), 353.16 KiB | 1.56 MiB/s, done.\nResolving deltas: 100% (687/687), completed with 107 local objects.\nFrom github.com:jiminny/app\n 907c54896c..34656c53ed pipedrive-sdk-poc -> origin/pipedrive-sdk-poc\n 03325ec50f..4e7078fd8b JY-18091-upgrade-to-php-8-5 -> origin/JY-18091-upgrade-to-php-8-5\n e7d231e163..bc6a3fce6b JY-20725-handle-HS-search-rate-limit -> origin/JY-20725-handle-HS-search-rate-limit\n * [new branch] JY-20749-user-can-view-recorded-meetings -> origin/JY-20749-user-can-view-recorded-meetings\n 98ca281a04..e0351be069 JY-20808-low-priority-indexing-queue -> origin/JY-20808-low-priority-indexing-queue\n 569abb5149..3906a9238a JY-20835-mcp-enable-users-to-get-a-list-of-deals-and-their-details -> origin/JY-20835-mcp-enable-users-to-get-a-list-of-deals-and-their-details\n ad6c2a86e8..50eb6afba9 JY-20846-mcp-enable-the-ai-to-know-details-about-the-user -> origin/JY-20846-mcp-enable-the-ai-to-know-details-about-the-user\n * [new branch] JY-20893-chunk-control-per-update-target -> origin/JY-20893-chunk-control-per-update-target\n 31c62924a5..cb4ebf0c36 master -> origin/master\nUpdating 907c54896c..34656c53ed\nFast-forward\n PIPEDRIVE_V2_MIGRATION_TICKETS.md | 52 ++++++++++++++++++++++++++++++++++++++++++++++++++++\n 1 file changed, 52 insertions(+)\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (pipedrive-sdk-poc) $ co master\nM\u0000\u0000\u0000\u0000\u0000\u0000\t.env.local\nM\u0000\u0000\u0000\u0000\u0000\u0000\tconfig/logging.php\nSwitched to branch 'master'\nYour branch is behind 'origin/master' by 31 commits, and can be fast-forwarded.\n (use \"git pull\" to update your local branch)\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (master) $ git pull\nUpdating 31c62924a5..cb4ebf0c36\nFast-forward\n app/Component/ES/Processor/Traits/SelectEntityListTrait.php | 20 ------\n app/Services/Calendar/CalendarActivityService.php | 46 +++++++++++++\n app/Services/Calendar/Command/MapActivityData.php | 106 +++-------------------------\n docs/mcp/explorer/explorer.html | 104 +++++++++++++++++++++++++---\n docs/mcp/explorer/explorer.template.html | 102 ++++++++++++++++++++++++---\n docs/mcp/tools-list.json | 373 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++-------\n docs/mcp/tools.md | 117 +++++++++++++++++++++++--------\n tests/Unit/Component/ES/AsyncUpdateElasticSearchTest.php | 16 +----\n tests/Unit/Component/ES/Listeners/UpdateMultipleTargetsListenerTest.php | 10 ---\n tests/Unit/Component/ES/Listeners/UpdateSingleTargetListenerTest.php | 6 --\n tests/Unit/Component/ES/Processor/TargetEntitiesSelectorTest.php | 9 ---\n tests/Unit/Component/ES/Processor/Traits/SelectEntityListTraitTest.php | 15 ++--\n tests/Unit/Component/ES/UpdateProcessManagerTest.php | 2 -\n tests/Unit/Services/Calendar/CalendarActivityServiceTest.php | 150 ++++++++++++++++++++++++++++++++++++++--\n tests/Unit/Services/Calendar/Command/MapActivityDataTest.php | 78 ++-------------------\n 15 files changed, 832 insertions(+), 322 deletions(-)\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (master) $ co -b JY-20613-allow-owner-role-on-team-setup\nSwitched to a new branch 'JY-20613-allow-owner-role-on-team-setup'\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20613-allow-owner-role-on-team-setup) $ csfix\ndocker exec -it docker_lamp_1 ./vendor/bin/php-cs-fixer fix --config=.php-cs-fixer.dist.php -v --using-cache=no --diff \nPHP CS Fixer 3.87.1 Alexander by Fabien Potencier, Dariusz Ruminski and contributors.\nPHP runtime: 8.3.30\nRunning analysis on 7 cores with 10 files per process.\nParallel runner is an experimental feature and may be unstable, use it at your own risk. Feedback highly appreciated!\nLoaded config default from \".php-cs-fixer.dist.php\".\n 5682/5682 [▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓] 100%\n\n\nFixed 0 of 5682 files in 56.978 seconds, 67.00 MB memory used\n\nWhat's next:\n Try Docker Debug for seamless, persistent debugging tools in any container or image → docker debug docker_lamp_1\n Learn more at https://docs.docker.com/go/debug-cli/\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20613-allow-owner-role-on-team-setup) $ ;xd\ndocker exec -it docker_lamp_1 bash -c \"mv /usr/local/etc/php/conf.d/xdebug.ini ~/xdebug.ini\"\n\nWhat's next:\n Try Docker Debug for seamless, persistent debugging tools in any container or image → docker debug docker_lamp_1\n Learn more at https://docs.docker.com/go/debug-cli/\ndocker exec -it docker_lamp_1 supervisorctl restart all\njiminny-worker-processing-2:jiminny-worker-processing-2_00: stopped\njiminny-worker-processing-3:jiminny-worker-processing-3_00: stopped\njiminny-worker-processing-4:jiminny-worker-processing-4_00: stopped\njiminny-worker-processing-5:jiminny-worker-processing-5_00: stopped\njiminny-worker-processing-delayed:jiminny-worker-processing-delayed_00: stopped\nworker-analytics:worker-analytics_00: stopped\nworker-crm-update:worker-crm-update_00: stopped\nworker-download:worker-download_00: stopped\nworker-nudges:worker-nudges_00: stopped\nartisan-schedule:artisan-schedule_00: stopped\nworker-emails:worker-emails_00: stopped\nworker-calendar:worker-calendar_00: stopped\nworker:worker_00: stopped\nworker-conferences:worker-conferences_00: stopped\nworker-crm-sync:worker-crm-sync_00: stopped\njiminny-worker-processing-1:jiminny-worker-processing-1_00: stopped\nworker-audio:worker-audio_00: stopped\nworker-es-update:worker-es-update_00: stopped\nartisan-schedule:artisan-schedule_00: started\njiminny-worker-processing-1:jiminny-worker-processing-1_00: started\njiminny-worker-processing-2:jiminny-worker-processing-2_00: started\njiminny-worker-processing-3:jiminny-worker-processing-3_00: started\njiminny-worker-processing-4:jiminny-worker-processing-4_00: started\njiminny-worker-processing-5:jiminny-worker-processing-5_00: started\njiminny-worker-processing-delayed:jiminny-worker-processing-delayed_00: started\nworker:worker_00: started\nworker-analytics:worker-analytics_00: started\nworker-audio:worker-audio_00: started\nworker-calendar:worker-calendar_00: started\nworker-conferences:worker-conferences_00: started\nworker-crm-sync:worker-crm-sync_00: started\nworker-crm-update:worker-crm-update_00: started\nworker-download:worker-download_00: started\nworker-emails:worker-emails_00: started\nworker-es-update:worker-es-update_00: started\nworker-nudges:worker-nudges_00: started\n\nWhat's next:\n Try Docker Debug for seamless, persistent debugging tools in any container or image → docker debug docker_lamp_1\n Learn more at https://docs.docker.com/go/debug-cli/\ndocker exec -it docker_lamp_1 php -v\nPHP 8.3.30 (cli) (built: Mar 16 2026 22:32:32) (NTS)\nCopyright (c) The PHP Group\nZend Engine v4.3.30, Copyright (c) Zend Technologies\n with Zend OPcache v8.3.30, Copyright (c), by Zend Technologies\n\nWhat's next:\n Try Docker Debug for seamless, persistent debugging tools in any container or image → docker debug docker_lamp_1\n Learn more at https://docs.docker.com/go/debug-cli/\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20613-allow-owner-role-on-team-setup) $ csfix\ndocker exec -it docker_lamp_1 ./vendor/bin/php-cs-fixer fix --config=.php-cs-fixer.dist.php -v --using-cache=no --diff \nPHP CS Fixer 3.87.1 Alexander by Fabien Potencier, Dariusz Ruminski and contributors.\nPHP runtime: 8.3.30\nRunning analysis on 7 cores with 10 files per process.\nParallel runner is an experimental feature and may be unstable, use it at your own risk. Feedback highly appreciated!\nLoaded config default from \".php-cs-fixer.dist.php\".\n 5682/5682 [▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓] 100%\n\n\nFixed 0 of 5682 files in 49.910 seconds, 60.00 MB memory used\n\nWhat's next:\n Try Docker Debug for seamless, persistent debugging tools in any container or image → docker debug docker_lamp_1\n Learn more at https://docs.docker.com/go/debug-cli/\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20613-allow-owner-role-on-team-setup) $ git status\nOn branch JY-20613-allow-owner-role-on-team-setup\nYour branch is ahead of 'origin/JY-20613-allow-owner-role-on-team-setup' by 1 commit.\n (use \"git push\" to publish your local commits)\n\nChanges not staged for commit:\n (use \"git add <file>...\" to update what will be committed)\n (use \"git restore <file>...\" to discard changes in working directory)\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tmodified: .env.local\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tmodified: config/logging.php\n\nUntracked files:\n (use \"git add <file>...\" to include in what will be committed)\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\t.env.nikilocal\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\t.env.other\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tWEBHOOK_FILTERING_IMPLEMENTATION.md\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tapp/Console/Commands/Crm/Hubspot/SimulateWebhooksCommand.php\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tapp/Console/Commands/Reports/CreateMockAskJiminnyReportResultCommand.php\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tids.txt\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tpublic/favicon.ico\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\traw_sql_query.sql\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\ttests/Unit/Policies/CanAccessAiReportsTest.php\n\nno changes added to commit (use \"git add\" and/or \"git commit -a\")\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20613-allow-owner-role-on-team-setup) $ git pull\nremote: Enumerating objects: 248, done.\nremote: Counting objects: 100% (128/128), done.\nremote: Compressing objects: 100% (23/23), done.\nremote: Total 59 (delta 43), reused 44 (delta 33), pack-reused 0 (from 0)\nUnpacking objects: 100% (59/59), 10.48 KiB | 228.00 KiB/s, done.\nFrom github.com:jiminny/app\n b7df560451..190239dfd4 JY-20613-allow-owner-role-on-team-setup -> origin/JY-20613-allow-owner-role-on-team-setup\n e0351be069..d94a285ae7 JY-20808-low-priority-indexing-queue -> origin/JY-20808-low-priority-indexing-queue\n * [new branch] JY-20920-fix-participant-matcher -> origin/JY-20920-fix-participant-matcher\n cb4ebf0c36..90bca4e4b2 master -> origin/master\nMerge made by the 'ort' strategy.\n app/Component/ES/ChunkSize.php | 54 +++++++++++++++++++++++++++\n app/Component/ES/Processor/DTOs/SelectionList.php | 4 +-\n app/Component/ES/Processor/TargetEntitiesSelector.php | 19 ++++++----\n app/Http/Middleware/McpTierMiddleware.php | 27 +++-----------\n app/Mcp/Servers/JiminnyServer.php | 2 +\n app/Mcp/Tools/GetMeTool.php | 157 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++\n app/Models/Feature/FeatureEnum.php | 1 +\n database/migrations/2026_05_13_124153_create_mcp_feature_flag.php | 25 +++++++++++++\n front-end/src/components/Settings/Kiosk/modals/EditTeamModal/EditTeamModal.vue | 52 ++++++++++++++++++--------\n front-end/src/components/Settings/Kiosk/modals/EditTeamModal/__tests__/EditTeamModal.spec.js | 14 +++++++\n tests/Feature/Mcp/GetMeToolFeatureTest.php | 140 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++\n tests/Feature/Mcp/ListCallsToolFeatureTest.php | 2 +-\n tests/Feature/Mcp/McpTestHelpersTrait.php | 19 +++++++++-\n tests/Unit/Component/ES/ChunkSizeTest.php | 50 +++++++++++++++++++++++++\n tests/Unit/Component/ES/Processor/DTOs/SelectionListTest.php | 27 ++++++++++----\n tests/Unit/Component/ES/Processor/TargetEntitiesSelectorTest.php | 39 +++++++++++---------\n 16 files changed, 557 insertions(+), 75 deletions(-)\n create mode 100644 app/Component/ES/ChunkSize.php\n create mode 100644 app/Mcp/Tools/GetMeTool.php\n create mode 100644 database/migrations/2026_05_13_124153_create_mcp_feature_flag.php\n create mode 100644 tests/Feature/Mcp/GetMeToolFeatureTest.php\n create mode 100644 tests/Unit/Component/ES/ChunkSizeTest.php\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20613-allow-owner-role-on-team-setup) $ git push\nEnumerating objects: 40, done.\nCounting objects: 100% (34/34), done.\nDelta compression using up to 8 threads\nCompressing objects: 100% (18/18), done.\nWriting objects: 100% (18/18), 1.58 KiB | 1.58 MiB/s, done.\nTotal 18 (delta 15), reused 0 (delta 0), pack-reused 0\nremote: Resolving deltas: 100% (15/15), completed with 13 local objects.\nTo github.com:jiminny/app.git\n 190239dfd4..ec1b261264 JY-20613-allow-owner-role-on-team-setup -> JY-20613-allow-owner-role-on-team-setup\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20613-allow-owner-role-on-team-setup) $ gbr\n* JY-20613-allow-owner-role-on-team-setup\n pipedrive-sdk-poc\n master\n JY-20903-update_activity-stage-on-opportunity-change\n JY-20904-fix-update-es-on-activity-command\n JY-20891-improve-sms-text-relays\n JY-20725-handle-HS-search-rate-limit\n JY-20818-move-AJ-reports-to-separated-datadog-metric\n JY-20773-fix-automated-reports-user-pilot-tracking\n JY-20157-AJ-report-not-send-notification\n JY-20508-notify-before-AJ-report-expiration\n JY-20372-ai-reports-promotion-pages\n JY-20352-sync-opportunities-without-a-local-owner-user-id-is-null\n JY-20738-debug-AJ-tracking-UP\n a\n JY-18909-automated-reports-ask-jiminny\n JY-20692-fix-integration-app-token-auth-response-change\n JY-20553-debug-crm-sync-delays\n JY-20698-fix-SF-activity-types-on-new-playbook\n JY-20543-AJ-report-tracking\n JY-20384-handle-auto-sync-with-no-access-to-event-type\n JY-20458-ask-jiminny-user-definitions\n JY-19666-fix-import-contacts-account-association\n JY-19666-HS-import-contacts-and-accounts-batch-job\n JY-20458-Ask-Jiminny-Reports\n JY-20200-batch-update-CRM-objects-Salesforce\n JY-19666-HS-webhooks-add-contact-and-company\n JY-20348-trigger-setup-DI-layout-on-team-creation\n JY-20326-refactor-info-message-in-command\n JY-20317-fix-auto-log-delay-issue-on-all-channels-disabled\n JY-20312-remove-on-update-change-last-synced-at-crm-configurations\n JY-20306-SF-skip-auto-sync-for-task-based-playbook\n JY-20192-remove-deleted-team-from-saved-search-filters\n JY-20197-import-opportunity-batch-job\n JY-20293-enable-status-field-for-pipedrive-deals\n JY-20191-remove-commands-interactive-prompts\n JY-20118-change-default-sync-strategy\n JY-20183-add-cache-on-auto-log-delay\n JY-20197-add-import-opportunity-batch-job\n 20118-hs-opportunity-make-webhook-strategy-default\n JY-20118-make-default-hs-opportunity-sync-strategy-webhook-based\n JY-20196-handle-opportunity-without-note\n JY-20118-improve-opportunity-import\n JY-20189-handle-activity-search-on-deleted-groups\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20613-allow-owner-role-on-team-setup) $ co JY-20725-handle-HS-search-rate-limit\nM\u0000\u0000\u0000\u0000\u0000\u0000\t.env.local\nM\u0000\u0000\u0000\u0000\u0000\u0000\tconfig/logging.php\nSwitched to branch 'JY-20725-handle-HS-search-rate-limit'\nYour branch is behind 'origin/JY-20725-handle-HS-search-rate-limit' by 439 commits, and can be fast-forwarded.\n (use \"git pull\" to update your local branch)\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20725-handle-HS-search-rate-limit) $ git pull\nUpdating 0f3e438941..bc6a3fce6b\nFast-forward\n .gitignore | 3 +-\n .windsurfrules | 168 ++---\n CLAUDE.md | 1 +\n app/Component/ActivityAnalytics/Service/CalculateTalkTimeOffsetsFromTranscription.php | 24 +-\n app/Component/AiActivityType/Services/AiActivityTypeEligibilityChecker.php | 28 +-\n app/Component/AiAutomation/Actions/PrepareUpdateDtoAction.php | 32 +-\n app/Component/AiAutomation/Services/CrmFillingEligibilityChecker.php | 47 ++\n app/Component/AiAutomation/TestCrmAiPromptService.php | 14 +\n app/Component/AiCallScoring/Services/AiCallScoringEligibilityChecker.php | 9 +\n app/Component/ES/ElasticSearchDocumentPartialUpdater.php | 13 +-\n app/Component/ES/ElasticSearchWorkerManager.php | 86 ---\n app/Component/ES/Processor/Actions/LoadDocumentsAction.php | 80 +--\n app/Component/ES/Processor/EntityQueryBuilder.php | 12 +-\n app/Component/ES/Processor/TargetEntitiesSelector.php | 2 +-\n app/Component/ES/Processor/Traits/SkipActivityTrait.php | 25 -\n app/Component/ES/Repositories/EsResetActivityRepository.php | 11 +-\n app/Component/ES/Worker/ActivityWorker.php | 73 --\n app/Component/ES/Worker/EntityWorker.php | 44 --\n app/Component/ES/Worker/WorkerAmount.php | 60 --\n app/Component/ES/Worker/WorkerInterface.php | 15 -\n app/Component/ElasticSearch/Contract/Searchable.php | 4 +\n app/Component/Encoding/Job/AnalyzeTrackChannelsJob.php | 20 +-\n app/Component/Encoding/Service/GenerateSpeechFromSilenceService.php | 85 ++-\n app/Component/FFMpeg/Services/GetSpeechIntervalsService.php | 18 +-\n app/Component/LanguageDetection/Services/FindSpeechTimeService.php | 22 +-\n app/Component/Nudge/Job/ProcessOrganisationImmediateNudgesJob.php | 218 +++++-\n app/Component/ParagraphBreaker/Services/TranscriptionParagraphsService.php | 4 +\n app/Component/ParticipantSpeech/Services/ParticipantSpeechesCreator.php | 33 +\n app/Component/ParticipantSpeech/Services/ParticipantSpeechesDeleter.php | 15 +\n app/Component/ParticipantSpeech/Services/ParticipantSpeechesProvider.php | 51 +-\n app/Component/ParticipantSpeech/Services/ParticipantSpeechesUploader.php | 36 +\n app/Component/ProphetAi/Exceptions/InsufficientTranscriptException.php | 11 +\n app/Component/Transcription/DTO/Http/Transcription/AssemblyAI/AssemblyAI/NoAssemblyIdException.php | 11 +\n app/Component/Transcription/DTO/Http/Transcription/AssemblyAI/AssemblyAI/SuccessfulResponse.php | 6 +\n app/Component/Transcription/DTO/Http/Transcription/TranscriptionIsNotCorrectFormatException.php | 11 +\n app/Component/Transcription/Diarization/Services/GetNormalizedParticipantSpeechesService.php | 23 +-\n app/Component/Transcription/Diarization/Source/MeetingBotSource.php | 16 +-\n app/Component/Transcription/TranscriptionProcessor/TranscriptionProcessor.php | 3 +\n app/Console/Commands/Activities/ActivityHardDeleteCommand.php | 4 +-\n app/Console/Commands/Activities/Copy.php | 2 +\n app/Console/Commands/Activities/SetupIntegration/TwilioSetS3RecordingCredentialsCommand.php | 119 ++++\n app/Console/Commands/Activities/UpdateActivityElasticSearchDocumentCommand.php | 10 +-\n app/Console/Commands/Crm/BackfillOpportunityUserFromAccountCommand.php | 126 ++++\n app/Console/Commands/Elasticsearch/AsyncUpdateEsActivities.php | 19 -\n app/Console/Commands/Elasticsearch/AsyncUpdateEsEntities.php | 50 +-\n app/Console/Commands/Elasticsearch/ResetAsyncElasticSearchCommand.php | 30 +-\n app/Console/Commands/GeckoExport/GeckoExportParticipantSpeechesCommand.php | 14 +-\n app/Console/Commands/IssueMcpTokenCommand.php | 84 +++\n app/Console/Commands/JiminnyDebugCommand.php | 7 +-\n app/Console/Commands/Tracks/CleanupActivityTracksCommand.php | 2 +-\n app/Console/Kernel.php | 6 +-\n app/Contracts/Services/Calendar/CalendarTrait.php | 80 ++-\n app/Events/AutomatedReports/AutomatedReportGenerated.php | 3 +\n app/Http/Controllers/API/AiCallScoring/AiScorecardController.php | 7 +-\n app/Http/Controllers/API/TeamAiAutomationController.php | 8 +\n app/Http/Controllers/CustomerApi/CustomerApiController.php | 4 +-\n app/Http/Controllers/Kiosk/ActivityController.php | 58 +-\n app/Http/Controllers/Settings/PlaybookController.php | 15 +-\n app/Http/Kernel.php | 23 +\n app/Http/Middleware/McpAuditMiddleware.php | 156 ++++\n app/Http/Middleware/McpTierMiddleware.php | 54 ++\n app/Http/Requests/API/V2/ZapierUploadActivityRequest.php | 28 +-\n app/Jobs/Activity/Import/ImportTwilioVideoSpeechesJob.php | 25 +-\n app/Jobs/Activity/Import/IsActivityReadyForProcessingJob.php | 10 +-\n app/Jobs/Calendar/SetupCalendarSync.php | 21 +-\n app/Jobs/ImportRemoteTrackJob.php | 96 ++-\n app/Jobs/Mailbox/EmailTextRelay.php | 15 +-\n app/Mcp/Contracts/McpCallRepositoryInterface.php | 30 +\n app/Mcp/DTO/ListCallsFilters.php | 29 +\n app/Mcp/Errors/McpError.php | 123 ++++\n app/Mcp/Repositories/McpActivityHydrator.php | 145 ++++\n app/Mcp/Repositories/McpCallRepository.php | 84 +++\n app/Mcp/Repositories/McpElasticCallRepository.php | 171 +++++\n app/Mcp/Servers/JiminnyServer.php | 38 +\n app/Mcp/Tools/ListCallsTool.php | 205 ++++++\n app/Models/Activity.php | 10 +-\n app/Models/Activity/Transcription.php | 17 +-\n app/Models/ElasticSearch/OpportunityElasticSearchTrait.php | 5 +\n app/Models/Participant.php | 1 +\n app/Providers/AppServiceProvider.php | 22 +\n app/Repositories/Crm/ContactRepository.php | 69 +-\n app/Repositories/ParticipantSpeechRepository.php | 13 +-\n app/Services/Activity/ParticipantsService.php | 19 +-\n app/Services/Activity/Twilio/S3RecordingCredentialsService.php | 82 +++\n app/Services/ActivityService.php | 21 +-\n app/Services/Calendar/CalendarActivityService.php | 46 ++\n app/Services/Calendar/Command/ImportParticipants.php | 1 +\n app/Services/Calendar/Command/MapActivityData.php | 106 +--\n app/Services/Calendar/GoogleCalendarService.php | 12 +-\n app/Services/Crm/Close/Processor/OpportunityProcessor.php | 2 +-\n app/Services/Crm/Close/Service.php | 22 +-\n app/Services/Crm/Copper/Service.php | 12 +-\n app/Services/Crm/Hubspot/Service.php | 154 +++-\n app/Services/Crm/Hubspot/ServiceTraits/OpportunitySyncTrait.php | 88 ++-\n app/Services/Crm/IntegrationApp/ServiceTraits/SyncCrmEntitiesTrait.php | 22 +-\n app/Services/Crm/Pipedrive/Service.php | 17 +-\n app/Services/Crm/Salesforce/Service.php | 42 +-\n app/Services/Mail/Office/EmailApiClient.php | 129 +---\n app/Services/RecallAI/Commands/ScheduleBotCommand.php | 39 +-\n app/Services/RecallAI/RecallAIService.php | 22 +-\n composer.json | 3 +-\n composer.lock | 87 ++-\n config/mcp.php | 23 +\n database/migrations/2026_04_30_120000_create_mcp_audit_log_table.php | 36 +\n docs/mcp/explorer/explorer.html | 697 ++++++++++++++++++\n docs/mcp/explorer/explorer.template.html | 697 ++++++++++++++++++\n docs/mcp/explorer/generate.js | 215 ++++++\n docs/mcp/explorer/tool-explorer-meta.json | 11 +\n docs/mcp/tools-list.json | 2536 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++\n docs/mcp/tools.md | 621 ++++++++++++++++\n front-end/package.json | 4 +-\n front-end/src/components/Settings/OrgSettings/AiAutomation/CrmFilling/TemplateFieldForm.vue | 28 +-\n front-end/src/components/Settings/OrgSettings/Playbooks/AddEditPlaybook.vue | 10 +\n front-end/src/components/playback/comments/ActivityComment.less | 10 +-\n front-end/src/components/shared/PromptTester/PromptTester.vue | 12 +-\n front-end/src/components/shared/__tests__/PromptTester.spec.js | 35 +\n front-end/src/components/shared/modals/EntityPickerModal/__tests__/useEntitiesCache.spec.ts | 37 +\n front-end/src/components/shared/modals/EntityPickerModal/useEntitiesCache.ts | 9 +\n front-end/yarn.lock | 16 +-\n phpstan-baseline.neon | 50 --\n routes/api.php | 11 +\n sonar-project.properties | 91 ++-\n tests/Feature/Component/Nudge/ProcessOrganisationImmediateNudgesJobTest.php | 534 ++++++++++++++\n tests/Feature/Jobs/ImportRemoteTrackJobTest.php | 283 +++++++-\n tests/Feature/Mcp/IssueMcpTokenCommandTest.php | 53 ++\n tests/Feature/Mcp/ListCallsToolElasticFeatureTest.php | 155 ++++\n tests/Feature/Mcp/ListCallsToolFeatureTest.php | 352 ++++++++++\n tests/Feature/Mcp/McpTestHelpersTrait.php | 77 ++\n tests/Feature/Services/Team/TeamDeleteHandlers/Retention/RetentionRepositoryHandlerTest.php | 1 +\n tests/Stubs/SentryStub.php | 18 +\n tests/Unit/Component/ActivityAnalytics/Service/CalculateTalkTimeOffsetFromTranscriptionTest.php | 28 +-\n tests/Unit/Component/AiActivityType/Services/AiActivityTypeEligibilityCheckerTest.php | 103 ++-\n tests/Unit/Component/AiAutomation/Actions/PrepareUpdateDtoActionTest.php | 91 +++\n tests/Unit/Component/AiAutomation/Services/CrmFillingEligibilityCheckerTest.php | 124 ++++\n tests/Unit/Component/AiAutomation/TestCrmAiPromptServiceTest.php | 67 +-\n tests/Unit/Component/AiCallScoring/Services/AiCallScoringEligibilityCheckerTest.php | 55 ++\n tests/Unit/Component/ES/ElasticSearchWorkerManagerTest.php | 135 ----\n tests/Unit/Component/ES/Processor/Actions/LoadDocumentsActionTest.php | 220 ++++++\n tests/Unit/Component/ES/Processor/EntityQueryBuilderTest.php | 21 +-\n tests/Unit/Component/ES/Processor/Traits/SkipActivityTraitTest.php | 51 --\n tests/Unit/Component/ES/Worker/ActivityWorkerTest.php | 174 -----\n tests/Unit/Component/ES/Worker/EntityWorkerTest.php | 97 ---\n tests/Unit/Component/ES/Worker/WorkerAmountTest.php | 116 ---\n tests/Unit/Component/Encoding/Job/AnalyzeTrackChannelsJobTest.php | 52 +-\n tests/Unit/Component/Encoding/Service/GenerateSpeechFromSilenceServiceTest.php | 171 ++---\n tests/Unit/Component/FFMpeg/Services/GetSpeechIntervalsTest.php | 36 +-\n tests/Unit/Component/LanguageDetection/Services/FindSpeechTimeServiceTest.php | 20 +-\n tests/Unit/Component/MobileSettings/MobileSettingsControllerTest.php | 5 +-\n tests/Unit/Component/ParticipantSpeech/Services/ParticipantSpeechesCreatorTest.php | 75 ++\n tests/Unit/Component/ParticipantSpeech/Services/ParticipantSpeechesDeleterTest.php | 63 ++\n tests/Unit/Component/ParticipantSpeech/Services/ParticipantSpeechesProviderTest.php | 134 ++++\n tests/Unit/Component/ParticipantSpeech/Services/ParticipantSpeechesUploaderTest.php | 57 ++\n tests/Unit/Component/Transcription/Diarization/Services/GetNormalizedParticipantSpeechesServiceTest.php | 51 +-\n tests/Unit/Component/Transcription/Diarization/Source/MeetingBotSourceTest.php | 29 +-\n tests/Unit/Contracts/Services/Calendar/CalendarTraitTest.php | 58 +-\n tests/Unit/Http/Controllers/Kiosk/ActivityControllerTest.php | 159 +++++\n tests/Unit/Jobs/Activity/Import/ImportTwilioVideoSpeechesJobTest.php | 22 +-\n tests/Unit/Jobs/Activity/Import/IsActivityReadyForProcessingJobTest.php | 26 +-\n tests/Unit/Jobs/Calendar/SetupCalendarSyncTest.php | 25 -\n tests/Unit/Services/Activity/ParticipantsServiceTest.php | 12 +-\n tests/Unit/Services/Activity/Twilio/S3RecordingCredentialsServiceTest.php | 180 +++++\n tests/Unit/Services/ActivityServiceTest.php | 132 ++++\n tests/Unit/Services/Calendar/CalendarActivityServiceTest.php | 150 +++-\n tests/Unit/Services/Calendar/Command/ImportParticipantsTest.php | 6 +-\n tests/Unit/Services/Calendar/Command/MapActivityDataTest.php | 78 +-\n tests/Unit/Services/Calendar/GoogleCalendarServiceTest.php | 116 +++\n tests/Unit/Services/Crm/Close/ServiceTest.php | 165 +++++\n tests/Unit/Services/Crm/Hubspot/ServiceTest.php | 272 ++++++-\n tests/Unit/Services/Crm/Hubspot/ServiceTraits/OpportunitySyncTest.php | 25 +-\n tests/Unit/Services/Crm/Hubspot/ServiceTraits/OpportunitySyncTraitMatchActivitiesTest.php | 3 +-\n tests/Unit/Services/Crm/IntegrationApp/ServiceTraits/SyncCrmEntitiesTraitOpportunitiesTest.php | 40 ++\n tests/Unit/Services/Crm/Pipedrive/ImportOpportunityMatchActivitiesTest.php | 2 +\n tests/Unit/Services/Crm/Salesforce/ServiceTest.php | 139 ++++\n tests/Unit/Services/Mail/Office/EmailApiClientTest.php | 195 ++---\n tests/Unit/Services/RecallAI/RecallAIServiceTest.php | 24 +-\n 175 files changed, 12562 insertions(+), 2162 deletions(-)\n create mode 120000 CLAUDE.md\n create mode 100644 app/Component/AiAutomation/Services/CrmFillingEligibilityChecker.php\n delete mode 100644 app/Component/ES/ElasticSearchWorkerManager.php\n delete mode 100644 app/Component/ES/Processor/Traits/SkipActivityTrait.php\n delete mode 100644 app/Component/ES/Worker/ActivityWorker.php\n delete mode 100644 app/Component/ES/Worker/EntityWorker.php\n delete mode 100644 app/Component/ES/Worker/WorkerAmount.php\n delete mode 100644 app/Component/ES/Worker/WorkerInterface.php\n create mode 100644 app/Component/ProphetAi/Exceptions/InsufficientTranscriptException.php\n create mode 100644 app/Component/Transcription/DTO/Http/Transcription/AssemblyAI/AssemblyAI/NoAssemblyIdException.php\n create mode 100644 app/Component/Transcription/DTO/Http/Transcription/TranscriptionIsNotCorrectFormatException.php\n create mode 100644 app/Console/Commands/Activities/SetupIntegration/TwilioSetS3RecordingCredentialsCommand.php\n create mode 100644 app/Console/Commands/Crm/BackfillOpportunityUserFromAccountCommand.php\n delete mode 100644 app/Console/Commands/Elasticsearch/AsyncUpdateEsActivities.php\n create mode 100644 app/Console/Commands/IssueMcpTokenCommand.php\n create mode 100644 app/Http/Middleware/McpAuditMiddleware.php\n create mode 100644 app/Http/Middleware/McpTierMiddleware.php\n create mode 100644 app/Mcp/Contracts/McpCallRepositoryInterface.php\n create mode 100644 app/Mcp/DTO/ListCallsFilters.php\n create mode 100644 app/Mcp/Errors/McpError.php\n create mode 100644 app/Mcp/Repositories/McpActivityHydrator.php\n create mode 100644 app/Mcp/Repositories/McpCallRepository.php\n create mode 100644 app/Mcp/Repositories/McpElasticCallRepository.php\n create mode 100644 app/Mcp/Servers/JiminnyServer.php\n create mode 100644 app/Mcp/Tools/ListCallsTool.php\n create mode 100644 app/Services/Activity/Twilio/S3RecordingCredentialsService.php\n create mode 100644 config/mcp.php\n create mode 100644 database/migrations/2026_04_30_120000_create_mcp_audit_log_table.php\n create mode 100644 docs/mcp/explorer/explorer.html\n create mode 100644 docs/mcp/explorer/explorer.template.html\n create mode 100644 docs/mcp/explorer/generate.js\n create mode 100644 docs/mcp/explorer/tool-explorer-meta.json\n create mode 100644 docs/mcp/tools-list.json\n create mode 100644 docs/mcp/tools.md\n create mode 100644 front-end/src/components/shared/modals/EntityPickerModal/__tests__/useEntitiesCache.spec.ts\n create mode 100644 tests/Feature/Component/Nudge/ProcessOrganisationImmediateNudgesJobTest.php\n create mode 100644 tests/Feature/Mcp/IssueMcpTokenCommandTest.php\n create mode 100644 tests/Feature/Mcp/ListCallsToolElasticFeatureTest.php\n create mode 100644 tests/Feature/Mcp/ListCallsToolFeatureTest.php\n create mode 100644 tests/Feature/Mcp/McpTestHelpersTrait.php\n create mode 100644 tests/Stubs/SentryStub.php\n create mode 100644 tests/Unit/Component/AiAutomation/Services/CrmFillingEligibilityCheckerTest.php\n delete mode 100644 tests/Unit/Component/ES/ElasticSearchWorkerManagerTest.php\n create mode 100644 tests/Unit/Component/ES/Processor/Actions/LoadDocumentsActionTest.php\n delete mode 100644 tests/Unit/Component/ES/Processor/Traits/SkipActivityTraitTest.php\n delete mode 100644 tests/Unit/Component/ES/Worker/ActivityWorkerTest.php\n delete mode 100644 tests/Unit/Component/ES/Worker/EntityWorkerTest.php\n delete mode 100644 tests/Unit/Component/ES/Worker/WorkerAmountTest.php\n create mode 100644 tests/Unit/Component/ParticipantSpeech/Services/ParticipantSpeechesCreatorTest.php\n create mode 100644 tests/Unit/Http/Controllers/Kiosk/ActivityControllerTest.php\n create mode 100644 tests/Unit/Services/Activity/Twilio/S3RecordingCredentialsServiceTest.php\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20725-handle-HS-search-rate-limit) $ git status\nOn branch master\nYour branch is behind 'origin/master' by 114 commits, and can be fast-forwarded.\n (use \"git pull\" to update your local branch)\n\nChanges not staged for commit:\n (use \"git add <file>...\" to update what will be committed)\n (use \"git restore <file>...\" to discard changes in working directory)\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tmodified: .env.local\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tmodified: app/Component/SCIM/Constants.php\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tmodified: app/Component/SCIM/ScimProvisioning.php\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tmodified: app/Component/Twilio/Conference/ConferenceManager/SoftPhoneManager.php\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tmodified: app/Console/Commands/JiminnyDebugCommand.php\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tmodified: app/DTO/SCIM/AAD/Request/CoreUserRequest.php\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tmodified: app/DTO/SCIM/AAD/Response/CoreUser.php\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tmodified: app/Services/Telephony/TextMessagingService.php\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tmodified: config/logging.php\n\nUntracked files:\n (use \"git add <file>...\" to include in what will be committed)\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\t.env.nikilocal\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\t.env.other\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tWEBHOOK_FILTERING_IMPLEMENTATION.md\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tapp/Component/SCIM/Mutators/Attributes/User/RoleAttr.php\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tapp/Console/Commands/Crm/Hubspot/SimulateWebhooksCommand.php\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tapp/Console/Commands/Reports/CreateMockAskJiminnyReportResultCommand.php\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tapp/Rules/ListenerRoleCannotHaveAdminOrManagerPermissionRule.php\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tids.txt\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tpublic/favicon.ico\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\traw_sql_query.sql\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\ttests/Unit/Component/SCIM/Mutators/Attributes/User/RoleAttrTest.php\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\ttests/Unit/Policies/CanAccessAiReportsTest.php\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\ttests/Unit/Rules/ListenerRoleCannotHaveAdminOrManagerPermissionRuleTest.php\n\nno changes added to commit (use \"git add\" and/or \"git commit -a\")\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (master) $ git pull\nremote: Enumerating objects: 306, done.\nremote: Counting objects: 100% (299/299), done.\nremote: Compressing objects: 100% (183/183), done.\nremote: Total 306 (delta 213), reused 171 (delta 116), pack-reused 7 (from 1)\nReceiving objects: 100% (306/306), 80.12 KiB | 1000.00 KiB/s, done.\nResolving deltas: 100% (213/213), completed with 53 local objects.\nFrom github.com:jiminny/app\n 90bca4e4b2..5604af40cf master -> origin/master\n 4e7078fd8b..0b8343d179 JY-18091-upgrade-to-php-8-5 -> origin/JY-18091-upgrade-to-php-8-5\n 098eeaa087..d5a447e492 JY-20613-allow-owner-role-on-team-setup -> origin/JY-20613-allow-owner-role-on-team-setup\n c3a76ace91..af65249d0f JY-20749-user-can-view-recorded-meetings -> origin/JY-20749-user-can-view-recorded-meetings\n d94a285ae7..7ce96cb5fe JY-20808-low-priority-indexing-queue -> origin/JY-20808-low-priority-indexing-queue\n * [new branch] JY-20842-remove-partial-updater -> origin/JY-20842-remove-partial-updater\n * [new branch] JY-20920-fix-participant-flip -> origin/JY-20920-fix-participant-flip\n * [new branch] secfix/npm-20260519 -> origin/secfix/npm-20260519\nUpdating cb4ebf0c36..5604af40cf\nFast-forward\n app/Component/ES/ChunkSize.php | 54 +++++++++++++++++++\n app/Component/ES/Processor/DTOs/SelectionList.php | 4 +-\n app/Component/ES/Processor/TargetEntitiesSelector.php | 19 ++++---\n app/Component/MeetingBot/Service/ParticipantMatcher.php | 46 ++++++++++++----\n app/Exceptions/RateLimitException.php | 19 ++++++-\n app/Http/Middleware/McpTierMiddleware.php | 27 ++--------\n app/Jobs/Crm/MatchActivityCrmData.php | 47 ++++++++++++----\n app/Jobs/Middleware/HandleHubspotRateLimit.php | 42 +++++++++++++++\n app/Mcp/Servers/JiminnyServer.php | 2 +\n app/Mcp/Tools/GetMeTool.php | 157 +++++++++++++++++++++++++++++++++++++++++++++++++++++\n app/Models/Feature/FeatureEnum.php | 1 +\n app/Services/Activity/HubSpot/ProviderResolver.php | 4 +-\n app/Services/Activity/HubSpot/ProviderResolverInterface.php | 2 +-\n app/Services/Activity/HubSpot/Providers/Provider.php | 2 +-\n app/Services/Activity/HubSpot/Providers/ProviderKixie.php | 2 +-\n app/Services/Activity/HubSpot/Providers/ProviderOrum.php | 2 +-\n app/Services/Activity/HubSpot/Providers/ProviderTwilio.php | 2 +-\n app/Services/Activity/HubSpot/Providers/ProviderTwilioFlex.php | 5 +-\n app/Services/Activity/HubSpot/Service.php | 97 +++++++++++++++++++++++++++------\n app/Services/Crm/Hubspot/Client.php | 132 +++++++++++++++++++++++++++++++++++++++++++++\n app/Services/Crm/Hubspot/HubspotClientInterface.php | 15 ++++++\n app/Services/Crm/Hubspot/Pagination/HubspotPaginationService.php | 21 ++++----\n app/Services/Crm/Hubspot/Pagination/PaginationState.php | 2 +-\n database/migrations/2026_05_13_124153_create_mcp_feature_flag.php | 25 +++++++++\n tests/Feature/Mcp/GetMeToolFeatureTest.php | 140 +++++++++++++++++++++++++++++++++++++++++++++++\n tests/Feature/Mcp/ListCallsToolFeatureTest.php | 2 +-\n tests/Feature/Mcp/McpTestHelpersTrait.php | 19 ++++++-\n tests/Unit/Component/ES/ChunkSizeTest.php | 50 +++++++++++++++++\n tests/Unit/Component/ES/Processor/DTOs/SelectionListTest.php | 27 +++++++---\n tests/Unit/Component/ES/Processor/TargetEntitiesSelectorTest.php | 39 ++++++++------\n tests/Unit/Component/MeetingBot/Service/ParticipantMatcherTest.php | 68 ++++++++++++++++++++++-\n tests/Unit/Exceptions/RateLimitExceptionTest.php | 56 +++++++++++++++++++\n tests/Unit/Jobs/Crm/MatchActivityCrmDataTest.php | 8 +--\n tests/Unit/Jobs/Middleware/HandleHubspotRateLimitTest.php | 151 +++++++++++++++++++++++++++++++++++++++++++++++++++\n tests/Unit/Services/Activity/HubSpot/ServiceTest.php | 109 +++++++++++++++++++++++++++++++++++++\n tests/Unit/Services/Crm/Hubspot/ClientTest.php | 250 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++\n tests/Unit/Services/Crm/Hubspot/Pagination/HubspotPaginationServiceTest.php | 283 +++++++++++++++++++++---------------------------------------------------------------------------\n 37 files changed, 1587 insertions(+), 344 deletions(-)\n create mode 100644 app/Component/ES/ChunkSize.php\n create mode 100644 app/Jobs/Middleware/HandleHubspotRateLimit.php\n create mode 100644 app/Mcp/Tools/GetMeTool.php\n create mode 100644 database/migrations/2026_05_13_124153_create_mcp_feature_flag.php\n create mode 100644 tests/Feature/Mcp/GetMeToolFeatureTest.php\n create mode 100644 tests/Unit/Component/ES/ChunkSizeTest.php\n create mode 100644 tests/Unit/Exceptions/RateLimitExceptionTest.php\n create mode 100644 tests/Unit/Jobs/Middleware/HandleHubspotRateLimitTest.php\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (master) $ git pull\nAlready up to date.\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (master) $ co -b JY-20676-delete-report-related-objects\nSwitched to a new branch 'JY-20676-delete-report-related-objects'\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20676-delete-report-related-objects) $ csfix\ndocker exec -it docker_lamp_1 ./vendor/bin/php-cs-fixer fix --config=.php-cs-fixer.dist.php -v --using-cache=no --diff \nPHP CS Fixer 3.87.1 Alexander by Fabien Potencier, Dariusz Ruminski and contributors.\nPHP runtime: 8.3.30\nRunning analysis on 7 cores with 10 files per process.\nParallel runner is an experimental feature and may be unstable, use it at your own risk. Feedback highly appreciated!\nLoaded config default from \".php-cs-fixer.dist.php\".\n 5690/5690 [▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓] 100%\n\n 1) app/Console/Commands/JiminnyDebugCommand.php (statement_indentation, blank_line_before_statement)\n ---------- begin diff ----------\n--- /home/jiminny/app/Console/Commands/JiminnyDebugCommand.php\n+++ /home/jiminny/app/Console/Commands/JiminnyDebugCommand.php\n@@ -23,6 +23,7 @@\n \n if ($action === 'redis-set') {\n $this->testRedisSet();\n+\n return;\n }\n \n@@ -45,7 +46,7 @@\n $ttl = 60;\n \n try {\n-// $result = Redis::set($testKey, $testValue, 'EX', $ttl, 'NX');\n+ // $result = Redis::set($testKey, $testValue, 'EX', $ttl, 'NX');\n $result = Redis::set($testKey, $testValue, ['nx', 'ex' => $ttl]);\n \n if ($result) {\n\n ----------- end diff -----------\n\n\nFixed 1 of 5690 files in 50.673 seconds, 67.00 MB memory used\n\nWhat's next:\n Try Docker Debug for seamless, persistent debugging tools in any container or image → docker debug docker_lamp_1\n Learn more at https://docs.docker.com/go/debug-cli/\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20676-delete-report-related-objects) $ ;xd\ndocker exec -it docker_lamp_1 bash -c \"mv /usr/local/etc/php/conf.d/xdebug.ini ~/xdebug.ini\"\n\nWhat's next:\n Try Docker Debug for seamless, persistent debugging tools in any container or image → docker debug docker_lamp_1\n Learn more at https://docs.docker.com/go/debug-cli/\ndocker exec -it docker_lamp_1 supervisorctl restart all\njiminny-worker-processing-2:jiminny-worker-processing-2_00: stopped\njiminny-worker-processing-3:jiminny-worker-processing-3_00: stopped\njiminny-worker-processing-4:jiminny-worker-processing-4_00: stopped\njiminny-worker-processing-5:jiminny-worker-processing-5_00: stopped\njiminny-worker-processing-delayed:jiminny-worker-processing-delayed_00: stopped\nworker-analytics:worker-analytics_00: stopped\nworker-crm-update:worker-crm-update_00: stopped\nworker-download:worker-download_00: stopped\nworker-nudges:worker-nudges_00: stopped\nworker-calendar:worker-calendar_00: stopped\nworker-audio:worker-audio_00: stopped\njiminny-worker-processing-1:jiminny-worker-processing-1_00: stopped\nworker:worker_00: stopped\nworker-conferences:worker-conferences_00: stopped\nworker-crm-sync:worker-crm-sync_00: stopped\nworker-emails:worker-emails_00: stopped\nworker-es-update:worker-es-update_00: stopped\nartisan-schedule:artisan-schedule_00: stopped\nartisan-schedule:artisan-schedule_00: started\njiminny-worker-processing-1:jiminny-worker-processing-1_00: started\njiminny-worker-processing-2:jiminny-worker-processing-2_00: started\njiminny-worker-processing-3:jiminny-worker-processing-3_00: started\njiminny-worker-processing-4:jiminny-worker-processing-4_00: started\njiminny-worker-processing-5:jiminny-worker-processing-5_00: started\njiminny-worker-processing-delayed:jiminny-worker-processing-delayed_00: started\nworker:worker_00: started\nworker-analytics:worker-analytics_00: started\nworker-audio:worker-audio_00: started\nworker-calendar:worker-calendar_00: started\nworker-conferences:worker-conferences_00: started\nworker-crm-sync:worker-crm-sync_00: started\nworker-crm-update:worker-crm-update_00: started\nworker-download:worker-download_00: started\nworker-emails:worker-emails_00: started\nworker-es-update:worker-es-update_00: started\nworker-nudges:worker-nudges_00: started\n\nWhat's next:\n Try Docker Debug for seamless, persistent debugging tools in any container or image → docker debug docker_lamp_1\n Learn more at https://docs.docker.com/go/debug-cli/\ndocker exec -it docker_lamp_1 php -v\nPHP 8.3.30 (cli) (built: Mar 16 2026 22:32:32) (NTS)\nCopyright (c) The PHP Group\nZend Engine v4.3.30, Copyright (c) Zend Technologies\n with Zend OPcache v8.3.30, Copyright (c), by Zend Technologies\n\nWhat's next:\n Try Docker Debug for seamless, persistent debugging tools in any container or image → docker debug docker_lamp_1\n Learn more at https://docs.docker.com/go/debug-cli/\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20676-delete-report-related-objects) $ git status\nOn branch JY-20676-delete-report-related-objects\nChanges not staged for commit:\n (use \"git add <file>...\" to update what will be committed)\n (use \"git restore <file>...\" to discard changes in working directory)\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tmodified: .env.local\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tmodified: app/Console/Commands/JiminnyDebugCommand.php\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tmodified: config/logging.php\n\nUntracked files:\n (use \"git add <file>...\" to include in what will be committed)\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\t.env.nikilocal\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\t.env.other\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tWEBHOOK_FILTERING_IMPLEMENTATION.md\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tapp/Console/Commands/Crm/Hubspot/SimulateWebhooksCommand.php\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tapp/Console/Commands/Reports/CreateMockAskJiminnyReportResultCommand.php\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tids.txt\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tpublic/favicon.ico\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\traw_sql_query.sql\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\ttests/Unit/Policies/CanAccessAiReportsTest.php\n\nno changes added to commit (use \"git add\" and/or \"git commit -a\")\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20676-delete-report-related-objects) $ git push -u origin JY-20676-delete-report-related-objects\nEnumerating objects: 45, done.\nCounting objects: 100% (45/45), done.\nDelta compression using up to 8 threads\nCompressing objects: 100% (24/24), done.\nWriting objects: 100% (24/24), 3.62 KiB | 3.62 MiB/s, done.\nTotal 24 (delta 19), reused 0 (delta 0), pack-reused 0\nremote: Resolving deltas: 100% (19/19), completed with 19 local objects.\nremote: \nremote: Create a pull request for 'JY-20676-delete-report-related-objects' on GitHub by visiting:\nremote: https://github.com/jiminny/app/pull/new/JY-20676-delete-report-related-objects\nremote: \nTo github.com:jiminny/app.git\n * [new branch] JY-20676-delete-report-related-objects -> JY-20676-delete-report-related-objects\nbranch 'JY-20676-delete-report-related-objects' set up to track 'origin/JY-20676-delete-report-related-objects'.\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20676-delete-report-related-objects) $ csfix\ndocker exec -it docker_lamp_1 ./vendor/bin/php-cs-fixer fix --config=.php-cs-fixer.dist.php -v --using-cache=no --diff \nPHP CS Fixer 3.87.1 Alexander by Fabien Potencier, Dariusz Ruminski and contributors.\nPHP runtime: 8.3.30\nRunning analysis on 7 cores with 10 files per process.\nParallel runner is an experimental feature and may be unstable, use it at your own risk. Feedback highly appreciated!\nLoaded config default from \".php-cs-fixer.dist.php\".\n 5690/5690 [▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓] 100%\n\n 1) app/Http/Controllers/API/V2/AskJiminnyReportsController.php (blank_line_before_statement)\n ---------- begin diff ----------\n--- /home/jiminny/app/Http/Controllers/API/V2/AskJiminnyReportsController.php\n+++ /home/jiminny/app/Http/Controllers/API/V2/AskJiminnyReportsController.php\n@@ -140,6 +140,7 @@\n if ($enabled && $report->isAskJiminnyReport() && ! $report->canExecute()) {\n $error = 'This report is missing a saved search or prompt. ' .\n 'Edit the report to complete the setup before enabling it.';\n+\n return new JsonResponse(\n ['error' => $error],\n Response::HTTP_UNPROCESSABLE_ENTITY\n\n ----------- end diff -----------\n\n\nFixed 1 of 5690 files in 71.757 seconds, 60.00 MB memory used\n\nWhat's next:\n Try Docker Debug for seamless, persistent debugging tools in any container or image → docker debug docker_lamp_1\n Learn more at https://docs.docker.com/go/debug-cli/\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20676-delete-report-related-objects) $ git pull\nremote: Enumerating objects: 158, done.\nremote: Counting objects: 100% (103/103), done.\nremote: Compressing objects: 100% (37/37), done.\nremote: Total 158 (delta 80), reused 74 (delta 66), pack-reused 55 (from 3)\nReceiving objects: 100% (158/158), 80.59 KiB | 982.00 KiB/s, done.\nResolving deltas: 100% (85/85), completed with 45 local objects.\nFrom github.com:jiminny/app\n 02a33811ee..c6ce5e2440 JY-20676-delete-report-related-objects -> origin/JY-20676-delete-report-related-objects\n 7ce96cb5fe..6c59f04358 JY-20808-low-priority-indexing-queue -> origin/JY-20808-low-priority-indexing-queue\n 3906a9238a..2b5e6ea62b JY-20835-mcp-enable-users-to-get-a-list-of-deals-and-their-details -> origin/JY-20835-mcp-enable-users-to-get-a-list-of-deals-and-their-details\n 5604af40cf..ea3519f0e2 master -> origin/master\n * [new branch] switch-eu-assembly -> origin/switch-eu-assembly\nUpdating 02a33811ee..c6ce5e2440\nFast-forward\n app/Component/ES/ElasticSearchDocumentPartialUpdater.php | 48 ---\n app/Component/ParticipantSpeech/Services/ParticipantAttributionService.php | 4 +-\n app/Component/Settings/AutoScoring/Services/UpdateAutoScoreService.php | 20 +-\n app/Component/Transcription/Service/StorageService.php | 8 +-\n front-end/package.json | 2 +-\n front-end/src/components/DealInsights/Modals/AskAnythingModal.vue | 23 ++\n front-end/src/components/shared/AskAnything/AskAnythingPromptFormItem.vue | 2 +\n front-end/src/components/shared/AskAnything/AskAnythingSettingsDrawer.vue | 23 +-\n front-end/src/components/shared/AskAnything/__mocks__/AskAnythingSettingsDrawer.mocks.js | 1 +\n front-end/src/components/shared/AskAnything/__tests__/AskAnythingSettingsDrawer.spec.js | 135 ++++---\n front-end/src/components/shared/AskAnything/__tests__/__snapshots__/AskAnythingSettingsDrawer.spec.js.html | 1235 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++\n front-end/src/components/shared/AskAnything/__tests__/__snapshots__/AskAnythingSettingsDrawer.spec.js.snap | 1382 ----------------------------------------------------------------\n front-end/src/components/shared/AskAnything/prompts.js | 1 +\n front-end/src/components/shared/AskAnything/useAskAnything.js | 1 +\n front-end/yarn.lock | 8 +-\n tests/Unit/Component/ES/ElasticSearchDocumentPartialUpdaterTest.php | 42 --\n tests/Unit/Component/Settings/AutoScoring/Services/UpdateAutoScoreServiceTest.php | 86 ++--\n tests/Unit/Component/Transcription/Service/StorageServiceTest.php | 29 +-\n 18 files changed, 1448 insertions(+), 1602 deletions(-)\n delete mode 100644 app/Component/ES/ElasticSearchDocumentPartialUpdater.php\n create mode 100644 front-end/src/components/shared/AskAnything/__tests__/__snapshots__/AskAnythingSettingsDrawer.spec.js.html\n delete mode 100644 front-end/src/components/shared/AskAnything/__tests__/__snapshots__/AskAnythingSettingsDrawer.spec.js.snap\n delete mode 100644 tests/Unit/Component/ES/ElasticSearchDocumentPartialUpdaterTest.php\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20676-delete-report-related-objects) $ csfix\ndocker exec -it docker_lamp_1 ./vendor/bin/php-cs-fixer fix --config=.php-cs-fixer.dist.php -v --using-cache=no --diff \nPHP CS Fixer 3.87.1 Alexander by Fabien Potencier, Dariusz Ruminski and contributors.\nPHP runtime: 8.3.30\nRunning analysis on 7 cores with 10 files per process.\nParallel runner is an experimental feature and may be unstable, use it at your own risk. Feedback highly appreciated!\nLoaded config default from \".php-cs-fixer.dist.php\".\n 5688/5688 [▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓] 100%\n\n\nFixed 0 of 5688 files in 79.904 seconds, 60.00 MB memory used\n\nWhat's next:\n Try Docker Debug for seamless, persistent debugging tools in any container or image → docker debug docker_lamp_1\n Learn more at https://docs.docker.com/go/debug-cli/\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20676-delete-report-related-objects) $","depth":4,"on_screen":true,"value":"Last login: Mon May 18 09:17:28 on ttys007\n\nPoetry could not find a pyproject.toml file in /Users/lukas/jiminny/app or its parents\n\nPoetry could not find a pyproject.toml file in /Users/lukas/jiminny/app or its parents\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (pipedrive-sdk-poc) $ co master\nerror: Your local changes to the following files would be overwritten by checkout:\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tPIPEDRIVE_V2_MIGRATION_TICKETS.md\nPlease commit your changes or stash them before you switch branches.\nAborting\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (pipedrive-sdk-poc) $ git pull\nremote: Enumerating objects: 1047, done.\nremote: Counting objects: 100% (832/832), done.\nremote: Compressing objects: 100% (298/298), done.\nremote: Total 1047 (delta 634), reused 596 (delta 534), pack-reused 215 (from 3)\nReceiving objects: 100% (1047/1047), 353.16 KiB | 1.56 MiB/s, done.\nResolving deltas: 100% (687/687), completed with 107 local objects.\nFrom github.com:jiminny/app\n 907c54896c..34656c53ed pipedrive-sdk-poc -> origin/pipedrive-sdk-poc\n 03325ec50f..4e7078fd8b JY-18091-upgrade-to-php-8-5 -> origin/JY-18091-upgrade-to-php-8-5\n e7d231e163..bc6a3fce6b JY-20725-handle-HS-search-rate-limit -> origin/JY-20725-handle-HS-search-rate-limit\n * [new branch] JY-20749-user-can-view-recorded-meetings -> origin/JY-20749-user-can-view-recorded-meetings\n 98ca281a04..e0351be069 JY-20808-low-priority-indexing-queue -> origin/JY-20808-low-priority-indexing-queue\n 569abb5149..3906a9238a JY-20835-mcp-enable-users-to-get-a-list-of-deals-and-their-details -> origin/JY-20835-mcp-enable-users-to-get-a-list-of-deals-and-their-details\n ad6c2a86e8..50eb6afba9 JY-20846-mcp-enable-the-ai-to-know-details-about-the-user -> origin/JY-20846-mcp-enable-the-ai-to-know-details-about-the-user\n * [new branch] JY-20893-chunk-control-per-update-target -> origin/JY-20893-chunk-control-per-update-target\n 31c62924a5..cb4ebf0c36 master -> origin/master\nUpdating 907c54896c..34656c53ed\nFast-forward\n PIPEDRIVE_V2_MIGRATION_TICKETS.md | 52 ++++++++++++++++++++++++++++++++++++++++++++++++++++\n 1 file changed, 52 insertions(+)\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (pipedrive-sdk-poc) $ co master\nM\u0000\u0000\u0000\u0000\u0000\u0000\t.env.local\nM\u0000\u0000\u0000\u0000\u0000\u0000\tconfig/logging.php\nSwitched to branch 'master'\nYour branch is behind 'origin/master' by 31 commits, and can be fast-forwarded.\n (use \"git pull\" to update your local branch)\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (master) $ git pull\nUpdating 31c62924a5..cb4ebf0c36\nFast-forward\n app/Component/ES/Processor/Traits/SelectEntityListTrait.php | 20 ------\n app/Services/Calendar/CalendarActivityService.php | 46 +++++++++++++\n app/Services/Calendar/Command/MapActivityData.php | 106 +++-------------------------\n docs/mcp/explorer/explorer.html | 104 +++++++++++++++++++++++++---\n docs/mcp/explorer/explorer.template.html | 102 ++++++++++++++++++++++++---\n docs/mcp/tools-list.json | 373 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++-------\n docs/mcp/tools.md | 117 +++++++++++++++++++++++--------\n tests/Unit/Component/ES/AsyncUpdateElasticSearchTest.php | 16 +----\n tests/Unit/Component/ES/Listeners/UpdateMultipleTargetsListenerTest.php | 10 ---\n tests/Unit/Component/ES/Listeners/UpdateSingleTargetListenerTest.php | 6 --\n tests/Unit/Component/ES/Processor/TargetEntitiesSelectorTest.php | 9 ---\n tests/Unit/Component/ES/Processor/Traits/SelectEntityListTraitTest.php | 15 ++--\n tests/Unit/Component/ES/UpdateProcessManagerTest.php | 2 -\n tests/Unit/Services/Calendar/CalendarActivityServiceTest.php | 150 ++++++++++++++++++++++++++++++++++++++--\n tests/Unit/Services/Calendar/Command/MapActivityDataTest.php | 78 ++-------------------\n 15 files changed, 832 insertions(+), 322 deletions(-)\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (master) $ co -b JY-20613-allow-owner-role-on-team-setup\nSwitched to a new branch 'JY-20613-allow-owner-role-on-team-setup'\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20613-allow-owner-role-on-team-setup) $ csfix\ndocker exec -it docker_lamp_1 ./vendor/bin/php-cs-fixer fix --config=.php-cs-fixer.dist.php -v --using-cache=no --diff \nPHP CS Fixer 3.87.1 Alexander by Fabien Potencier, Dariusz Ruminski and contributors.\nPHP runtime: 8.3.30\nRunning analysis on 7 cores with 10 files per process.\nParallel runner is an experimental feature and may be unstable, use it at your own risk. Feedback highly appreciated!\nLoaded config default from \".php-cs-fixer.dist.php\".\n 5682/5682 [▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓] 100%\n\n\nFixed 0 of 5682 files in 56.978 seconds, 67.00 MB memory used\n\nWhat's next:\n Try Docker Debug for seamless, persistent debugging tools in any container or image → docker debug docker_lamp_1\n Learn more at https://docs.docker.com/go/debug-cli/\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20613-allow-owner-role-on-team-setup) $ ;xd\ndocker exec -it docker_lamp_1 bash -c \"mv /usr/local/etc/php/conf.d/xdebug.ini ~/xdebug.ini\"\n\nWhat's next:\n Try Docker Debug for seamless, persistent debugging tools in any container or image → docker debug docker_lamp_1\n Learn more at https://docs.docker.com/go/debug-cli/\ndocker exec -it docker_lamp_1 supervisorctl restart all\njiminny-worker-processing-2:jiminny-worker-processing-2_00: stopped\njiminny-worker-processing-3:jiminny-worker-processing-3_00: stopped\njiminny-worker-processing-4:jiminny-worker-processing-4_00: stopped\njiminny-worker-processing-5:jiminny-worker-processing-5_00: stopped\njiminny-worker-processing-delayed:jiminny-worker-processing-delayed_00: stopped\nworker-analytics:worker-analytics_00: stopped\nworker-crm-update:worker-crm-update_00: stopped\nworker-download:worker-download_00: stopped\nworker-nudges:worker-nudges_00: stopped\nartisan-schedule:artisan-schedule_00: stopped\nworker-emails:worker-emails_00: stopped\nworker-calendar:worker-calendar_00: stopped\nworker:worker_00: stopped\nworker-conferences:worker-conferences_00: stopped\nworker-crm-sync:worker-crm-sync_00: stopped\njiminny-worker-processing-1:jiminny-worker-processing-1_00: stopped\nworker-audio:worker-audio_00: stopped\nworker-es-update:worker-es-update_00: stopped\nartisan-schedule:artisan-schedule_00: started\njiminny-worker-processing-1:jiminny-worker-processing-1_00: started\njiminny-worker-processing-2:jiminny-worker-processing-2_00: started\njiminny-worker-processing-3:jiminny-worker-processing-3_00: started\njiminny-worker-processing-4:jiminny-worker-processing-4_00: started\njiminny-worker-processing-5:jiminny-worker-processing-5_00: started\njiminny-worker-processing-delayed:jiminny-worker-processing-delayed_00: started\nworker:worker_00: started\nworker-analytics:worker-analytics_00: started\nworker-audio:worker-audio_00: started\nworker-calendar:worker-calendar_00: started\nworker-conferences:worker-conferences_00: started\nworker-crm-sync:worker-crm-sync_00: started\nworker-crm-update:worker-crm-update_00: started\nworker-download:worker-download_00: started\nworker-emails:worker-emails_00: started\nworker-es-update:worker-es-update_00: started\nworker-nudges:worker-nudges_00: started\n\nWhat's next:\n Try Docker Debug for seamless, persistent debugging tools in any container or image → docker debug docker_lamp_1\n Learn more at https://docs.docker.com/go/debug-cli/\ndocker exec -it docker_lamp_1 php -v\nPHP 8.3.30 (cli) (built: Mar 16 2026 22:32:32) (NTS)\nCopyright (c) The PHP Group\nZend Engine v4.3.30, Copyright (c) Zend Technologies\n with Zend OPcache v8.3.30, Copyright (c), by Zend Technologies\n\nWhat's next:\n Try Docker Debug for seamless, persistent debugging tools in any container or image → docker debug docker_lamp_1\n Learn more at https://docs.docker.com/go/debug-cli/\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20613-allow-owner-role-on-team-setup) $ csfix\ndocker exec -it docker_lamp_1 ./vendor/bin/php-cs-fixer fix --config=.php-cs-fixer.dist.php -v --using-cache=no --diff \nPHP CS Fixer 3.87.1 Alexander by Fabien Potencier, Dariusz Ruminski and contributors.\nPHP runtime: 8.3.30\nRunning analysis on 7 cores with 10 files per process.\nParallel runner is an experimental feature and may be unstable, use it at your own risk. Feedback highly appreciated!\nLoaded config default from \".php-cs-fixer.dist.php\".\n 5682/5682 [▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓] 100%\n\n\nFixed 0 of 5682 files in 49.910 seconds, 60.00 MB memory used\n\nWhat's next:\n Try Docker Debug for seamless, persistent debugging tools in any container or image → docker debug docker_lamp_1\n Learn more at https://docs.docker.com/go/debug-cli/\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20613-allow-owner-role-on-team-setup) $ git status\nOn branch JY-20613-allow-owner-role-on-team-setup\nYour branch is ahead of 'origin/JY-20613-allow-owner-role-on-team-setup' by 1 commit.\n (use \"git push\" to publish your local commits)\n\nChanges not staged for commit:\n (use \"git add <file>...\" to update what will be committed)\n (use \"git restore <file>...\" to discard changes in working directory)\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tmodified: .env.local\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tmodified: config/logging.php\n\nUntracked files:\n (use \"git add <file>...\" to include in what will be committed)\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\t.env.nikilocal\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\t.env.other\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tWEBHOOK_FILTERING_IMPLEMENTATION.md\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tapp/Console/Commands/Crm/Hubspot/SimulateWebhooksCommand.php\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tapp/Console/Commands/Reports/CreateMockAskJiminnyReportResultCommand.php\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tids.txt\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tpublic/favicon.ico\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\traw_sql_query.sql\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\ttests/Unit/Policies/CanAccessAiReportsTest.php\n\nno changes added to commit (use \"git add\" and/or \"git commit -a\")\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20613-allow-owner-role-on-team-setup) $ git pull\nremote: Enumerating objects: 248, done.\nremote: Counting objects: 100% (128/128), done.\nremote: Compressing objects: 100% (23/23), done.\nremote: Total 59 (delta 43), reused 44 (delta 33), pack-reused 0 (from 0)\nUnpacking objects: 100% (59/59), 10.48 KiB | 228.00 KiB/s, done.\nFrom github.com:jiminny/app\n b7df560451..190239dfd4 JY-20613-allow-owner-role-on-team-setup -> origin/JY-20613-allow-owner-role-on-team-setup\n e0351be069..d94a285ae7 JY-20808-low-priority-indexing-queue -> origin/JY-20808-low-priority-indexing-queue\n * [new branch] JY-20920-fix-participant-matcher -> origin/JY-20920-fix-participant-matcher\n cb4ebf0c36..90bca4e4b2 master -> origin/master\nMerge made by the 'ort' strategy.\n app/Component/ES/ChunkSize.php | 54 +++++++++++++++++++++++++++\n app/Component/ES/Processor/DTOs/SelectionList.php | 4 +-\n app/Component/ES/Processor/TargetEntitiesSelector.php | 19 ++++++----\n app/Http/Middleware/McpTierMiddleware.php | 27 +++-----------\n app/Mcp/Servers/JiminnyServer.php | 2 +\n app/Mcp/Tools/GetMeTool.php | 157 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++\n app/Models/Feature/FeatureEnum.php | 1 +\n database/migrations/2026_05_13_124153_create_mcp_feature_flag.php | 25 +++++++++++++\n front-end/src/components/Settings/Kiosk/modals/EditTeamModal/EditTeamModal.vue | 52 ++++++++++++++++++--------\n front-end/src/components/Settings/Kiosk/modals/EditTeamModal/__tests__/EditTeamModal.spec.js | 14 +++++++\n tests/Feature/Mcp/GetMeToolFeatureTest.php | 140 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++\n tests/Feature/Mcp/ListCallsToolFeatureTest.php | 2 +-\n tests/Feature/Mcp/McpTestHelpersTrait.php | 19 +++++++++-\n tests/Unit/Component/ES/ChunkSizeTest.php | 50 +++++++++++++++++++++++++\n tests/Unit/Component/ES/Processor/DTOs/SelectionListTest.php | 27 ++++++++++----\n tests/Unit/Component/ES/Processor/TargetEntitiesSelectorTest.php | 39 +++++++++++---------\n 16 files changed, 557 insertions(+), 75 deletions(-)\n create mode 100644 app/Component/ES/ChunkSize.php\n create mode 100644 app/Mcp/Tools/GetMeTool.php\n create mode 100644 database/migrations/2026_05_13_124153_create_mcp_feature_flag.php\n create mode 100644 tests/Feature/Mcp/GetMeToolFeatureTest.php\n create mode 100644 tests/Unit/Component/ES/ChunkSizeTest.php\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20613-allow-owner-role-on-team-setup) $ git push\nEnumerating objects: 40, done.\nCounting objects: 100% (34/34), done.\nDelta compression using up to 8 threads\nCompressing objects: 100% (18/18), done.\nWriting objects: 100% (18/18), 1.58 KiB | 1.58 MiB/s, done.\nTotal 18 (delta 15), reused 0 (delta 0), pack-reused 0\nremote: Resolving deltas: 100% (15/15), completed with 13 local objects.\nTo github.com:jiminny/app.git\n 190239dfd4..ec1b261264 JY-20613-allow-owner-role-on-team-setup -> JY-20613-allow-owner-role-on-team-setup\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20613-allow-owner-role-on-team-setup) $ gbr\n* JY-20613-allow-owner-role-on-team-setup\n pipedrive-sdk-poc\n master\n JY-20903-update_activity-stage-on-opportunity-change\n JY-20904-fix-update-es-on-activity-command\n JY-20891-improve-sms-text-relays\n JY-20725-handle-HS-search-rate-limit\n JY-20818-move-AJ-reports-to-separated-datadog-metric\n JY-20773-fix-automated-reports-user-pilot-tracking\n JY-20157-AJ-report-not-send-notification\n JY-20508-notify-before-AJ-report-expiration\n JY-20372-ai-reports-promotion-pages\n JY-20352-sync-opportunities-without-a-local-owner-user-id-is-null\n JY-20738-debug-AJ-tracking-UP\n a\n JY-18909-automated-reports-ask-jiminny\n JY-20692-fix-integration-app-token-auth-response-change\n JY-20553-debug-crm-sync-delays\n JY-20698-fix-SF-activity-types-on-new-playbook\n JY-20543-AJ-report-tracking\n JY-20384-handle-auto-sync-with-no-access-to-event-type\n JY-20458-ask-jiminny-user-definitions\n JY-19666-fix-import-contacts-account-association\n JY-19666-HS-import-contacts-and-accounts-batch-job\n JY-20458-Ask-Jiminny-Reports\n JY-20200-batch-update-CRM-objects-Salesforce\n JY-19666-HS-webhooks-add-contact-and-company\n JY-20348-trigger-setup-DI-layout-on-team-creation\n JY-20326-refactor-info-message-in-command\n JY-20317-fix-auto-log-delay-issue-on-all-channels-disabled\n JY-20312-remove-on-update-change-last-synced-at-crm-configurations\n JY-20306-SF-skip-auto-sync-for-task-based-playbook\n JY-20192-remove-deleted-team-from-saved-search-filters\n JY-20197-import-opportunity-batch-job\n JY-20293-enable-status-field-for-pipedrive-deals\n JY-20191-remove-commands-interactive-prompts\n JY-20118-change-default-sync-strategy\n JY-20183-add-cache-on-auto-log-delay\n JY-20197-add-import-opportunity-batch-job\n 20118-hs-opportunity-make-webhook-strategy-default\n JY-20118-make-default-hs-opportunity-sync-strategy-webhook-based\n JY-20196-handle-opportunity-without-note\n JY-20118-improve-opportunity-import\n JY-20189-handle-activity-search-on-deleted-groups\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20613-allow-owner-role-on-team-setup) $ co JY-20725-handle-HS-search-rate-limit\nM\u0000\u0000\u0000\u0000\u0000\u0000\t.env.local\nM\u0000\u0000\u0000\u0000\u0000\u0000\tconfig/logging.php\nSwitched to branch 'JY-20725-handle-HS-search-rate-limit'\nYour branch is behind 'origin/JY-20725-handle-HS-search-rate-limit' by 439 commits, and can be fast-forwarded.\n (use \"git pull\" to update your local branch)\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20725-handle-HS-search-rate-limit) $ git pull\nUpdating 0f3e438941..bc6a3fce6b\nFast-forward\n .gitignore | 3 +-\n .windsurfrules | 168 ++---\n CLAUDE.md | 1 +\n app/Component/ActivityAnalytics/Service/CalculateTalkTimeOffsetsFromTranscription.php | 24 +-\n app/Component/AiActivityType/Services/AiActivityTypeEligibilityChecker.php | 28 +-\n app/Component/AiAutomation/Actions/PrepareUpdateDtoAction.php | 32 +-\n app/Component/AiAutomation/Services/CrmFillingEligibilityChecker.php | 47 ++\n app/Component/AiAutomation/TestCrmAiPromptService.php | 14 +\n app/Component/AiCallScoring/Services/AiCallScoringEligibilityChecker.php | 9 +\n app/Component/ES/ElasticSearchDocumentPartialUpdater.php | 13 +-\n app/Component/ES/ElasticSearchWorkerManager.php | 86 ---\n app/Component/ES/Processor/Actions/LoadDocumentsAction.php | 80 +--\n app/Component/ES/Processor/EntityQueryBuilder.php | 12 +-\n app/Component/ES/Processor/TargetEntitiesSelector.php | 2 +-\n app/Component/ES/Processor/Traits/SkipActivityTrait.php | 25 -\n app/Component/ES/Repositories/EsResetActivityRepository.php | 11 +-\n app/Component/ES/Worker/ActivityWorker.php | 73 --\n app/Component/ES/Worker/EntityWorker.php | 44 --\n app/Component/ES/Worker/WorkerAmount.php | 60 --\n app/Component/ES/Worker/WorkerInterface.php | 15 -\n app/Component/ElasticSearch/Contract/Searchable.php | 4 +\n app/Component/Encoding/Job/AnalyzeTrackChannelsJob.php | 20 +-\n app/Component/Encoding/Service/GenerateSpeechFromSilenceService.php | 85 ++-\n app/Component/FFMpeg/Services/GetSpeechIntervalsService.php | 18 +-\n app/Component/LanguageDetection/Services/FindSpeechTimeService.php | 22 +-\n app/Component/Nudge/Job/ProcessOrganisationImmediateNudgesJob.php | 218 +++++-\n app/Component/ParagraphBreaker/Services/TranscriptionParagraphsService.php | 4 +\n app/Component/ParticipantSpeech/Services/ParticipantSpeechesCreator.php | 33 +\n app/Component/ParticipantSpeech/Services/ParticipantSpeechesDeleter.php | 15 +\n app/Component/ParticipantSpeech/Services/ParticipantSpeechesProvider.php | 51 +-\n app/Component/ParticipantSpeech/Services/ParticipantSpeechesUploader.php | 36 +\n app/Component/ProphetAi/Exceptions/InsufficientTranscriptException.php | 11 +\n app/Component/Transcription/DTO/Http/Transcription/AssemblyAI/AssemblyAI/NoAssemblyIdException.php | 11 +\n app/Component/Transcription/DTO/Http/Transcription/AssemblyAI/AssemblyAI/SuccessfulResponse.php | 6 +\n app/Component/Transcription/DTO/Http/Transcription/TranscriptionIsNotCorrectFormatException.php | 11 +\n app/Component/Transcription/Diarization/Services/GetNormalizedParticipantSpeechesService.php | 23 +-\n app/Component/Transcription/Diarization/Source/MeetingBotSource.php | 16 +-\n app/Component/Transcription/TranscriptionProcessor/TranscriptionProcessor.php | 3 +\n app/Console/Commands/Activities/ActivityHardDeleteCommand.php | 4 +-\n app/Console/Commands/Activities/Copy.php | 2 +\n app/Console/Commands/Activities/SetupIntegration/TwilioSetS3RecordingCredentialsCommand.php | 119 ++++\n app/Console/Commands/Activities/UpdateActivityElasticSearchDocumentCommand.php | 10 +-\n app/Console/Commands/Crm/BackfillOpportunityUserFromAccountCommand.php | 126 ++++\n app/Console/Commands/Elasticsearch/AsyncUpdateEsActivities.php | 19 -\n app/Console/Commands/Elasticsearch/AsyncUpdateEsEntities.php | 50 +-\n app/Console/Commands/Elasticsearch/ResetAsyncElasticSearchCommand.php | 30 +-\n app/Console/Commands/GeckoExport/GeckoExportParticipantSpeechesCommand.php | 14 +-\n app/Console/Commands/IssueMcpTokenCommand.php | 84 +++\n app/Console/Commands/JiminnyDebugCommand.php | 7 +-\n app/Console/Commands/Tracks/CleanupActivityTracksCommand.php | 2 +-\n app/Console/Kernel.php | 6 +-\n app/Contracts/Services/Calendar/CalendarTrait.php | 80 ++-\n app/Events/AutomatedReports/AutomatedReportGenerated.php | 3 +\n app/Http/Controllers/API/AiCallScoring/AiScorecardController.php | 7 +-\n app/Http/Controllers/API/TeamAiAutomationController.php | 8 +\n app/Http/Controllers/CustomerApi/CustomerApiController.php | 4 +-\n app/Http/Controllers/Kiosk/ActivityController.php | 58 +-\n app/Http/Controllers/Settings/PlaybookController.php | 15 +-\n app/Http/Kernel.php | 23 +\n app/Http/Middleware/McpAuditMiddleware.php | 156 ++++\n app/Http/Middleware/McpTierMiddleware.php | 54 ++\n app/Http/Requests/API/V2/ZapierUploadActivityRequest.php | 28 +-\n app/Jobs/Activity/Import/ImportTwilioVideoSpeechesJob.php | 25 +-\n app/Jobs/Activity/Import/IsActivityReadyForProcessingJob.php | 10 +-\n app/Jobs/Calendar/SetupCalendarSync.php | 21 +-\n app/Jobs/ImportRemoteTrackJob.php | 96 ++-\n app/Jobs/Mailbox/EmailTextRelay.php | 15 +-\n app/Mcp/Contracts/McpCallRepositoryInterface.php | 30 +\n app/Mcp/DTO/ListCallsFilters.php | 29 +\n app/Mcp/Errors/McpError.php | 123 ++++\n app/Mcp/Repositories/McpActivityHydrator.php | 145 ++++\n app/Mcp/Repositories/McpCallRepository.php | 84 +++\n app/Mcp/Repositories/McpElasticCallRepository.php | 171 +++++\n app/Mcp/Servers/JiminnyServer.php | 38 +\n app/Mcp/Tools/ListCallsTool.php | 205 ++++++\n app/Models/Activity.php | 10 +-\n app/Models/Activity/Transcription.php | 17 +-\n app/Models/ElasticSearch/OpportunityElasticSearchTrait.php | 5 +\n app/Models/Participant.php | 1 +\n app/Providers/AppServiceProvider.php | 22 +\n app/Repositories/Crm/ContactRepository.php | 69 +-\n app/Repositories/ParticipantSpeechRepository.php | 13 +-\n app/Services/Activity/ParticipantsService.php | 19 +-\n app/Services/Activity/Twilio/S3RecordingCredentialsService.php | 82 +++\n app/Services/ActivityService.php | 21 +-\n app/Services/Calendar/CalendarActivityService.php | 46 ++\n app/Services/Calendar/Command/ImportParticipants.php | 1 +\n app/Services/Calendar/Command/MapActivityData.php | 106 +--\n app/Services/Calendar/GoogleCalendarService.php | 12 +-\n app/Services/Crm/Close/Processor/OpportunityProcessor.php | 2 +-\n app/Services/Crm/Close/Service.php | 22 +-\n app/Services/Crm/Copper/Service.php | 12 +-\n app/Services/Crm/Hubspot/Service.php | 154 +++-\n app/Services/Crm/Hubspot/ServiceTraits/OpportunitySyncTrait.php | 88 ++-\n app/Services/Crm/IntegrationApp/ServiceTraits/SyncCrmEntitiesTrait.php | 22 +-\n app/Services/Crm/Pipedrive/Service.php | 17 +-\n app/Services/Crm/Salesforce/Service.php | 42 +-\n app/Services/Mail/Office/EmailApiClient.php | 129 +---\n app/Services/RecallAI/Commands/ScheduleBotCommand.php | 39 +-\n app/Services/RecallAI/RecallAIService.php | 22 +-\n composer.json | 3 +-\n composer.lock | 87 ++-\n config/mcp.php | 23 +\n database/migrations/2026_04_30_120000_create_mcp_audit_log_table.php | 36 +\n docs/mcp/explorer/explorer.html | 697 ++++++++++++++++++\n docs/mcp/explorer/explorer.template.html | 697 ++++++++++++++++++\n docs/mcp/explorer/generate.js | 215 ++++++\n docs/mcp/explorer/tool-explorer-meta.json | 11 +\n docs/mcp/tools-list.json | 2536 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++\n docs/mcp/tools.md | 621 ++++++++++++++++\n front-end/package.json | 4 +-\n front-end/src/components/Settings/OrgSettings/AiAutomation/CrmFilling/TemplateFieldForm.vue | 28 +-\n front-end/src/components/Settings/OrgSettings/Playbooks/AddEditPlaybook.vue | 10 +\n front-end/src/components/playback/comments/ActivityComment.less | 10 +-\n front-end/src/components/shared/PromptTester/PromptTester.vue | 12 +-\n front-end/src/components/shared/__tests__/PromptTester.spec.js | 35 +\n front-end/src/components/shared/modals/EntityPickerModal/__tests__/useEntitiesCache.spec.ts | 37 +\n front-end/src/components/shared/modals/EntityPickerModal/useEntitiesCache.ts | 9 +\n front-end/yarn.lock | 16 +-\n phpstan-baseline.neon | 50 --\n routes/api.php | 11 +\n sonar-project.properties | 91 ++-\n tests/Feature/Component/Nudge/ProcessOrganisationImmediateNudgesJobTest.php | 534 ++++++++++++++\n tests/Feature/Jobs/ImportRemoteTrackJobTest.php | 283 +++++++-\n tests/Feature/Mcp/IssueMcpTokenCommandTest.php | 53 ++\n tests/Feature/Mcp/ListCallsToolElasticFeatureTest.php | 155 ++++\n tests/Feature/Mcp/ListCallsToolFeatureTest.php | 352 ++++++++++\n tests/Feature/Mcp/McpTestHelpersTrait.php | 77 ++\n tests/Feature/Services/Team/TeamDeleteHandlers/Retention/RetentionRepositoryHandlerTest.php | 1 +\n tests/Stubs/SentryStub.php | 18 +\n tests/Unit/Component/ActivityAnalytics/Service/CalculateTalkTimeOffsetFromTranscriptionTest.php | 28 +-\n tests/Unit/Component/AiActivityType/Services/AiActivityTypeEligibilityCheckerTest.php | 103 ++-\n tests/Unit/Component/AiAutomation/Actions/PrepareUpdateDtoActionTest.php | 91 +++\n tests/Unit/Component/AiAutomation/Services/CrmFillingEligibilityCheckerTest.php | 124 ++++\n tests/Unit/Component/AiAutomation/TestCrmAiPromptServiceTest.php | 67 +-\n tests/Unit/Component/AiCallScoring/Services/AiCallScoringEligibilityCheckerTest.php | 55 ++\n tests/Unit/Component/ES/ElasticSearchWorkerManagerTest.php | 135 ----\n tests/Unit/Component/ES/Processor/Actions/LoadDocumentsActionTest.php | 220 ++++++\n tests/Unit/Component/ES/Processor/EntityQueryBuilderTest.php | 21 +-\n tests/Unit/Component/ES/Processor/Traits/SkipActivityTraitTest.php | 51 --\n tests/Unit/Component/ES/Worker/ActivityWorkerTest.php | 174 -----\n tests/Unit/Component/ES/Worker/EntityWorkerTest.php | 97 ---\n tests/Unit/Component/ES/Worker/WorkerAmountTest.php | 116 ---\n tests/Unit/Component/Encoding/Job/AnalyzeTrackChannelsJobTest.php | 52 +-\n tests/Unit/Component/Encoding/Service/GenerateSpeechFromSilenceServiceTest.php | 171 ++---\n tests/Unit/Component/FFMpeg/Services/GetSpeechIntervalsTest.php | 36 +-\n tests/Unit/Component/LanguageDetection/Services/FindSpeechTimeServiceTest.php | 20 +-\n tests/Unit/Component/MobileSettings/MobileSettingsControllerTest.php | 5 +-\n tests/Unit/Component/ParticipantSpeech/Services/ParticipantSpeechesCreatorTest.php | 75 ++\n tests/Unit/Component/ParticipantSpeech/Services/ParticipantSpeechesDeleterTest.php | 63 ++\n tests/Unit/Component/ParticipantSpeech/Services/ParticipantSpeechesProviderTest.php | 134 ++++\n tests/Unit/Component/ParticipantSpeech/Services/ParticipantSpeechesUploaderTest.php | 57 ++\n tests/Unit/Component/Transcription/Diarization/Services/GetNormalizedParticipantSpeechesServiceTest.php | 51 +-\n tests/Unit/Component/Transcription/Diarization/Source/MeetingBotSourceTest.php | 29 +-\n tests/Unit/Contracts/Services/Calendar/CalendarTraitTest.php | 58 +-\n tests/Unit/Http/Controllers/Kiosk/ActivityControllerTest.php | 159 +++++\n tests/Unit/Jobs/Activity/Import/ImportTwilioVideoSpeechesJobTest.php | 22 +-\n tests/Unit/Jobs/Activity/Import/IsActivityReadyForProcessingJobTest.php | 26 +-\n tests/Unit/Jobs/Calendar/SetupCalendarSyncTest.php | 25 -\n tests/Unit/Services/Activity/ParticipantsServiceTest.php | 12 +-\n tests/Unit/Services/Activity/Twilio/S3RecordingCredentialsServiceTest.php | 180 +++++\n tests/Unit/Services/ActivityServiceTest.php | 132 ++++\n tests/Unit/Services/Calendar/CalendarActivityServiceTest.php | 150 +++-\n tests/Unit/Services/Calendar/Command/ImportParticipantsTest.php | 6 +-\n tests/Unit/Services/Calendar/Command/MapActivityDataTest.php | 78 +-\n tests/Unit/Services/Calendar/GoogleCalendarServiceTest.php | 116 +++\n tests/Unit/Services/Crm/Close/ServiceTest.php | 165 +++++\n tests/Unit/Services/Crm/Hubspot/ServiceTest.php | 272 ++++++-\n tests/Unit/Services/Crm/Hubspot/ServiceTraits/OpportunitySyncTest.php | 25 +-\n tests/Unit/Services/Crm/Hubspot/ServiceTraits/OpportunitySyncTraitMatchActivitiesTest.php | 3 +-\n tests/Unit/Services/Crm/IntegrationApp/ServiceTraits/SyncCrmEntitiesTraitOpportunitiesTest.php | 40 ++\n tests/Unit/Services/Crm/Pipedrive/ImportOpportunityMatchActivitiesTest.php | 2 +\n tests/Unit/Services/Crm/Salesforce/ServiceTest.php | 139 ++++\n tests/Unit/Services/Mail/Office/EmailApiClientTest.php | 195 ++---\n tests/Unit/Services/RecallAI/RecallAIServiceTest.php | 24 +-\n 175 files changed, 12562 insertions(+), 2162 deletions(-)\n create mode 120000 CLAUDE.md\n create mode 100644 app/Component/AiAutomation/Services/CrmFillingEligibilityChecker.php\n delete mode 100644 app/Component/ES/ElasticSearchWorkerManager.php\n delete mode 100644 app/Component/ES/Processor/Traits/SkipActivityTrait.php\n delete mode 100644 app/Component/ES/Worker/ActivityWorker.php\n delete mode 100644 app/Component/ES/Worker/EntityWorker.php\n delete mode 100644 app/Component/ES/Worker/WorkerAmount.php\n delete mode 100644 app/Component/ES/Worker/WorkerInterface.php\n create mode 100644 app/Component/ProphetAi/Exceptions/InsufficientTranscriptException.php\n create mode 100644 app/Component/Transcription/DTO/Http/Transcription/AssemblyAI/AssemblyAI/NoAssemblyIdException.php\n create mode 100644 app/Component/Transcription/DTO/Http/Transcription/TranscriptionIsNotCorrectFormatException.php\n create mode 100644 app/Console/Commands/Activities/SetupIntegration/TwilioSetS3RecordingCredentialsCommand.php\n create mode 100644 app/Console/Commands/Crm/BackfillOpportunityUserFromAccountCommand.php\n delete mode 100644 app/Console/Commands/Elasticsearch/AsyncUpdateEsActivities.php\n create mode 100644 app/Console/Commands/IssueMcpTokenCommand.php\n create mode 100644 app/Http/Middleware/McpAuditMiddleware.php\n create mode 100644 app/Http/Middleware/McpTierMiddleware.php\n create mode 100644 app/Mcp/Contracts/McpCallRepositoryInterface.php\n create mode 100644 app/Mcp/DTO/ListCallsFilters.php\n create mode 100644 app/Mcp/Errors/McpError.php\n create mode 100644 app/Mcp/Repositories/McpActivityHydrator.php\n create mode 100644 app/Mcp/Repositories/McpCallRepository.php\n create mode 100644 app/Mcp/Repositories/McpElasticCallRepository.php\n create mode 100644 app/Mcp/Servers/JiminnyServer.php\n create mode 100644 app/Mcp/Tools/ListCallsTool.php\n create mode 100644 app/Services/Activity/Twilio/S3RecordingCredentialsService.php\n create mode 100644 config/mcp.php\n create mode 100644 database/migrations/2026_04_30_120000_create_mcp_audit_log_table.php\n create mode 100644 docs/mcp/explorer/explorer.html\n create mode 100644 docs/mcp/explorer/explorer.template.html\n create mode 100644 docs/mcp/explorer/generate.js\n create mode 100644 docs/mcp/explorer/tool-explorer-meta.json\n create mode 100644 docs/mcp/tools-list.json\n create mode 100644 docs/mcp/tools.md\n create mode 100644 front-end/src/components/shared/modals/EntityPickerModal/__tests__/useEntitiesCache.spec.ts\n create mode 100644 tests/Feature/Component/Nudge/ProcessOrganisationImmediateNudgesJobTest.php\n create mode 100644 tests/Feature/Mcp/IssueMcpTokenCommandTest.php\n create mode 100644 tests/Feature/Mcp/ListCallsToolElasticFeatureTest.php\n create mode 100644 tests/Feature/Mcp/ListCallsToolFeatureTest.php\n create mode 100644 tests/Feature/Mcp/McpTestHelpersTrait.php\n create mode 100644 tests/Stubs/SentryStub.php\n create mode 100644 tests/Unit/Component/AiAutomation/Services/CrmFillingEligibilityCheckerTest.php\n delete mode 100644 tests/Unit/Component/ES/ElasticSearchWorkerManagerTest.php\n create mode 100644 tests/Unit/Component/ES/Processor/Actions/LoadDocumentsActionTest.php\n delete mode 100644 tests/Unit/Component/ES/Processor/Traits/SkipActivityTraitTest.php\n delete mode 100644 tests/Unit/Component/ES/Worker/ActivityWorkerTest.php\n delete mode 100644 tests/Unit/Component/ES/Worker/EntityWorkerTest.php\n delete mode 100644 tests/Unit/Component/ES/Worker/WorkerAmountTest.php\n create mode 100644 tests/Unit/Component/ParticipantSpeech/Services/ParticipantSpeechesCreatorTest.php\n create mode 100644 tests/Unit/Http/Controllers/Kiosk/ActivityControllerTest.php\n create mode 100644 tests/Unit/Services/Activity/Twilio/S3RecordingCredentialsServiceTest.php\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20725-handle-HS-search-rate-limit) $ git status\nOn branch master\nYour branch is behind 'origin/master' by 114 commits, and can be fast-forwarded.\n (use \"git pull\" to update your local branch)\n\nChanges not staged for commit:\n (use \"git add <file>...\" to update what will be committed)\n (use \"git restore <file>...\" to discard changes in working directory)\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tmodified: .env.local\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tmodified: app/Component/SCIM/Constants.php\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tmodified: app/Component/SCIM/ScimProvisioning.php\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tmodified: app/Component/Twilio/Conference/ConferenceManager/SoftPhoneManager.php\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tmodified: app/Console/Commands/JiminnyDebugCommand.php\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tmodified: app/DTO/SCIM/AAD/Request/CoreUserRequest.php\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tmodified: app/DTO/SCIM/AAD/Response/CoreUser.php\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tmodified: app/Services/Telephony/TextMessagingService.php\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tmodified: config/logging.php\n\nUntracked files:\n (use \"git add <file>...\" to include in what will be committed)\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\t.env.nikilocal\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\t.env.other\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tWEBHOOK_FILTERING_IMPLEMENTATION.md\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tapp/Component/SCIM/Mutators/Attributes/User/RoleAttr.php\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tapp/Console/Commands/Crm/Hubspot/SimulateWebhooksCommand.php\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tapp/Console/Commands/Reports/CreateMockAskJiminnyReportResultCommand.php\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tapp/Rules/ListenerRoleCannotHaveAdminOrManagerPermissionRule.php\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tids.txt\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tpublic/favicon.ico\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\traw_sql_query.sql\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\ttests/Unit/Component/SCIM/Mutators/Attributes/User/RoleAttrTest.php\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\ttests/Unit/Policies/CanAccessAiReportsTest.php\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\ttests/Unit/Rules/ListenerRoleCannotHaveAdminOrManagerPermissionRuleTest.php\n\nno changes added to commit (use \"git add\" and/or \"git commit -a\")\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (master) $ git pull\nremote: Enumerating objects: 306, done.\nremote: Counting objects: 100% (299/299), done.\nremote: Compressing objects: 100% (183/183), done.\nremote: Total 306 (delta 213), reused 171 (delta 116), pack-reused 7 (from 1)\nReceiving objects: 100% (306/306), 80.12 KiB | 1000.00 KiB/s, done.\nResolving deltas: 100% (213/213), completed with 53 local objects.\nFrom github.com:jiminny/app\n 90bca4e4b2..5604af40cf master -> origin/master\n 4e7078fd8b..0b8343d179 JY-18091-upgrade-to-php-8-5 -> origin/JY-18091-upgrade-to-php-8-5\n 098eeaa087..d5a447e492 JY-20613-allow-owner-role-on-team-setup -> origin/JY-20613-allow-owner-role-on-team-setup\n c3a76ace91..af65249d0f JY-20749-user-can-view-recorded-meetings -> origin/JY-20749-user-can-view-recorded-meetings\n d94a285ae7..7ce96cb5fe JY-20808-low-priority-indexing-queue -> origin/JY-20808-low-priority-indexing-queue\n * [new branch] JY-20842-remove-partial-updater -> origin/JY-20842-remove-partial-updater\n * [new branch] JY-20920-fix-participant-flip -> origin/JY-20920-fix-participant-flip\n * [new branch] secfix/npm-20260519 -> origin/secfix/npm-20260519\nUpdating cb4ebf0c36..5604af40cf\nFast-forward\n app/Component/ES/ChunkSize.php | 54 +++++++++++++++++++\n app/Component/ES/Processor/DTOs/SelectionList.php | 4 +-\n app/Component/ES/Processor/TargetEntitiesSelector.php | 19 ++++---\n app/Component/MeetingBot/Service/ParticipantMatcher.php | 46 ++++++++++++----\n app/Exceptions/RateLimitException.php | 19 ++++++-\n app/Http/Middleware/McpTierMiddleware.php | 27 ++--------\n app/Jobs/Crm/MatchActivityCrmData.php | 47 ++++++++++++----\n app/Jobs/Middleware/HandleHubspotRateLimit.php | 42 +++++++++++++++\n app/Mcp/Servers/JiminnyServer.php | 2 +\n app/Mcp/Tools/GetMeTool.php | 157 +++++++++++++++++++++++++++++++++++++++++++++++++++++\n app/Models/Feature/FeatureEnum.php | 1 +\n app/Services/Activity/HubSpot/ProviderResolver.php | 4 +-\n app/Services/Activity/HubSpot/ProviderResolverInterface.php | 2 +-\n app/Services/Activity/HubSpot/Providers/Provider.php | 2 +-\n app/Services/Activity/HubSpot/Providers/ProviderKixie.php | 2 +-\n app/Services/Activity/HubSpot/Providers/ProviderOrum.php | 2 +-\n app/Services/Activity/HubSpot/Providers/ProviderTwilio.php | 2 +-\n app/Services/Activity/HubSpot/Providers/ProviderTwilioFlex.php | 5 +-\n app/Services/Activity/HubSpot/Service.php | 97 +++++++++++++++++++++++++++------\n app/Services/Crm/Hubspot/Client.php | 132 +++++++++++++++++++++++++++++++++++++++++++++\n app/Services/Crm/Hubspot/HubspotClientInterface.php | 15 ++++++\n app/Services/Crm/Hubspot/Pagination/HubspotPaginationService.php | 21 ++++----\n app/Services/Crm/Hubspot/Pagination/PaginationState.php | 2 +-\n database/migrations/2026_05_13_124153_create_mcp_feature_flag.php | 25 +++++++++\n tests/Feature/Mcp/GetMeToolFeatureTest.php | 140 +++++++++++++++++++++++++++++++++++++++++++++++\n tests/Feature/Mcp/ListCallsToolFeatureTest.php | 2 +-\n tests/Feature/Mcp/McpTestHelpersTrait.php | 19 ++++++-\n tests/Unit/Component/ES/ChunkSizeTest.php | 50 +++++++++++++++++\n tests/Unit/Component/ES/Processor/DTOs/SelectionListTest.php | 27 +++++++---\n tests/Unit/Component/ES/Processor/TargetEntitiesSelectorTest.php | 39 ++++++++------\n tests/Unit/Component/MeetingBot/Service/ParticipantMatcherTest.php | 68 ++++++++++++++++++++++-\n tests/Unit/Exceptions/RateLimitExceptionTest.php | 56 +++++++++++++++++++\n tests/Unit/Jobs/Crm/MatchActivityCrmDataTest.php | 8 +--\n tests/Unit/Jobs/Middleware/HandleHubspotRateLimitTest.php | 151 +++++++++++++++++++++++++++++++++++++++++++++++++++\n tests/Unit/Services/Activity/HubSpot/ServiceTest.php | 109 +++++++++++++++++++++++++++++++++++++\n tests/Unit/Services/Crm/Hubspot/ClientTest.php | 250 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++\n tests/Unit/Services/Crm/Hubspot/Pagination/HubspotPaginationServiceTest.php | 283 +++++++++++++++++++++---------------------------------------------------------------------------\n 37 files changed, 1587 insertions(+), 344 deletions(-)\n create mode 100644 app/Component/ES/ChunkSize.php\n create mode 100644 app/Jobs/Middleware/HandleHubspotRateLimit.php\n create mode 100644 app/Mcp/Tools/GetMeTool.php\n create mode 100644 database/migrations/2026_05_13_124153_create_mcp_feature_flag.php\n create mode 100644 tests/Feature/Mcp/GetMeToolFeatureTest.php\n create mode 100644 tests/Unit/Component/ES/ChunkSizeTest.php\n create mode 100644 tests/Unit/Exceptions/RateLimitExceptionTest.php\n create mode 100644 tests/Unit/Jobs/Middleware/HandleHubspotRateLimitTest.php\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (master) $ git pull\nAlready up to date.\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (master) $ co -b JY-20676-delete-report-related-objects\nSwitched to a new branch 'JY-20676-delete-report-related-objects'\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20676-delete-report-related-objects) $ csfix\ndocker exec -it docker_lamp_1 ./vendor/bin/php-cs-fixer fix --config=.php-cs-fixer.dist.php -v --using-cache=no --diff \nPHP CS Fixer 3.87.1 Alexander by Fabien Potencier, Dariusz Ruminski and contributors.\nPHP runtime: 8.3.30\nRunning analysis on 7 cores with 10 files per process.\nParallel runner is an experimental feature and may be unstable, use it at your own risk. Feedback highly appreciated!\nLoaded config default from \".php-cs-fixer.dist.php\".\n 5690/5690 [▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓] 100%\n\n 1) app/Console/Commands/JiminnyDebugCommand.php (statement_indentation, blank_line_before_statement)\n ---------- begin diff ----------\n--- /home/jiminny/app/Console/Commands/JiminnyDebugCommand.php\n+++ /home/jiminny/app/Console/Commands/JiminnyDebugCommand.php\n@@ -23,6 +23,7 @@\n \n if ($action === 'redis-set') {\n $this->testRedisSet();\n+\n return;\n }\n \n@@ -45,7 +46,7 @@\n $ttl = 60;\n \n try {\n-// $result = Redis::set($testKey, $testValue, 'EX', $ttl, 'NX');\n+ // $result = Redis::set($testKey, $testValue, 'EX', $ttl, 'NX');\n $result = Redis::set($testKey, $testValue, ['nx', 'ex' => $ttl]);\n \n if ($result) {\n\n ----------- end diff -----------\n\n\nFixed 1 of 5690 files in 50.673 seconds, 67.00 MB memory used\n\nWhat's next:\n Try Docker Debug for seamless, persistent debugging tools in any container or image → docker debug docker_lamp_1\n Learn more at https://docs.docker.com/go/debug-cli/\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20676-delete-report-related-objects) $ ;xd\ndocker exec -it docker_lamp_1 bash -c \"mv /usr/local/etc/php/conf.d/xdebug.ini ~/xdebug.ini\"\n\nWhat's next:\n Try Docker Debug for seamless, persistent debugging tools in any container or image → docker debug docker_lamp_1\n Learn more at https://docs.docker.com/go/debug-cli/\ndocker exec -it docker_lamp_1 supervisorctl restart all\njiminny-worker-processing-2:jiminny-worker-processing-2_00: stopped\njiminny-worker-processing-3:jiminny-worker-processing-3_00: stopped\njiminny-worker-processing-4:jiminny-worker-processing-4_00: stopped\njiminny-worker-processing-5:jiminny-worker-processing-5_00: stopped\njiminny-worker-processing-delayed:jiminny-worker-processing-delayed_00: stopped\nworker-analytics:worker-analytics_00: stopped\nworker-crm-update:worker-crm-update_00: stopped\nworker-download:worker-download_00: stopped\nworker-nudges:worker-nudges_00: stopped\nworker-calendar:worker-calendar_00: stopped\nworker-audio:worker-audio_00: stopped\njiminny-worker-processing-1:jiminny-worker-processing-1_00: stopped\nworker:worker_00: stopped\nworker-conferences:worker-conferences_00: stopped\nworker-crm-sync:worker-crm-sync_00: stopped\nworker-emails:worker-emails_00: stopped\nworker-es-update:worker-es-update_00: stopped\nartisan-schedule:artisan-schedule_00: stopped\nartisan-schedule:artisan-schedule_00: started\njiminny-worker-processing-1:jiminny-worker-processing-1_00: started\njiminny-worker-processing-2:jiminny-worker-processing-2_00: started\njiminny-worker-processing-3:jiminny-worker-processing-3_00: started\njiminny-worker-processing-4:jiminny-worker-processing-4_00: started\njiminny-worker-processing-5:jiminny-worker-processing-5_00: started\njiminny-worker-processing-delayed:jiminny-worker-processing-delayed_00: started\nworker:worker_00: started\nworker-analytics:worker-analytics_00: started\nworker-audio:worker-audio_00: started\nworker-calendar:worker-calendar_00: started\nworker-conferences:worker-conferences_00: started\nworker-crm-sync:worker-crm-sync_00: started\nworker-crm-update:worker-crm-update_00: started\nworker-download:worker-download_00: started\nworker-emails:worker-emails_00: started\nworker-es-update:worker-es-update_00: started\nworker-nudges:worker-nudges_00: started\n\nWhat's next:\n Try Docker Debug for seamless, persistent debugging tools in any container or image → docker debug docker_lamp_1\n Learn more at https://docs.docker.com/go/debug-cli/\ndocker exec -it docker_lamp_1 php -v\nPHP 8.3.30 (cli) (built: Mar 16 2026 22:32:32) (NTS)\nCopyright (c) The PHP Group\nZend Engine v4.3.30, Copyright (c) Zend Technologies\n with Zend OPcache v8.3.30, Copyright (c), by Zend Technologies\n\nWhat's next:\n Try Docker Debug for seamless, persistent debugging tools in any container or image → docker debug docker_lamp_1\n Learn more at https://docs.docker.com/go/debug-cli/\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20676-delete-report-related-objects) $ git status\nOn branch JY-20676-delete-report-related-objects\nChanges not staged for commit:\n (use \"git add <file>...\" to update what will be committed)\n (use \"git restore <file>...\" to discard changes in working directory)\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tmodified: .env.local\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tmodified: app/Console/Commands/JiminnyDebugCommand.php\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tmodified: config/logging.php\n\nUntracked files:\n (use \"git add <file>...\" to include in what will be committed)\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\t.env.nikilocal\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\t.env.other\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tWEBHOOK_FILTERING_IMPLEMENTATION.md\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tapp/Console/Commands/Crm/Hubspot/SimulateWebhooksCommand.php\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tapp/Console/Commands/Reports/CreateMockAskJiminnyReportResultCommand.php\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tids.txt\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tpublic/favicon.ico\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\traw_sql_query.sql\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\ttests/Unit/Policies/CanAccessAiReportsTest.php\n\nno changes added to commit (use \"git add\" and/or \"git commit -a\")\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20676-delete-report-related-objects) $ git push -u origin JY-20676-delete-report-related-objects\nEnumerating objects: 45, done.\nCounting objects: 100% (45/45), done.\nDelta compression using up to 8 threads\nCompressing objects: 100% (24/24), done.\nWriting objects: 100% (24/24), 3.62 KiB | 3.62 MiB/s, done.\nTotal 24 (delta 19), reused 0 (delta 0), pack-reused 0\nremote: Resolving deltas: 100% (19/19), completed with 19 local objects.\nremote: \nremote: Create a pull request for 'JY-20676-delete-report-related-objects' on GitHub by visiting:\nremote: https://github.com/jiminny/app/pull/new/JY-20676-delete-report-related-objects\nremote: \nTo github.com:jiminny/app.git\n * [new branch] JY-20676-delete-report-related-objects -> JY-20676-delete-report-related-objects\nbranch 'JY-20676-delete-report-related-objects' set up to track 'origin/JY-20676-delete-report-related-objects'.\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20676-delete-report-related-objects) $ csfix\ndocker exec -it docker_lamp_1 ./vendor/bin/php-cs-fixer fix --config=.php-cs-fixer.dist.php -v --using-cache=no --diff \nPHP CS Fixer 3.87.1 Alexander by Fabien Potencier, Dariusz Ruminski and contributors.\nPHP runtime: 8.3.30\nRunning analysis on 7 cores with 10 files per process.\nParallel runner is an experimental feature and may be unstable, use it at your own risk. Feedback highly appreciated!\nLoaded config default from \".php-cs-fixer.dist.php\".\n 5690/5690 [▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓] 100%\n\n 1) app/Http/Controllers/API/V2/AskJiminnyReportsController.php (blank_line_before_statement)\n ---------- begin diff ----------\n--- /home/jiminny/app/Http/Controllers/API/V2/AskJiminnyReportsController.php\n+++ /home/jiminny/app/Http/Controllers/API/V2/AskJiminnyReportsController.php\n@@ -140,6 +140,7 @@\n if ($enabled && $report->isAskJiminnyReport() && ! $report->canExecute()) {\n $error = 'This report is missing a saved search or prompt. ' .\n 'Edit the report to complete the setup before enabling it.';\n+\n return new JsonResponse(\n ['error' => $error],\n Response::HTTP_UNPROCESSABLE_ENTITY\n\n ----------- end diff -----------\n\n\nFixed 1 of 5690 files in 71.757 seconds, 60.00 MB memory used\n\nWhat's next:\n Try Docker Debug for seamless, persistent debugging tools in any container or image → docker debug docker_lamp_1\n Learn more at https://docs.docker.com/go/debug-cli/\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20676-delete-report-related-objects) $ git pull\nremote: Enumerating objects: 158, done.\nremote: Counting objects: 100% (103/103), done.\nremote: Compressing objects: 100% (37/37), done.\nremote: Total 158 (delta 80), reused 74 (delta 66), pack-reused 55 (from 3)\nReceiving objects: 100% (158/158), 80.59 KiB | 982.00 KiB/s, done.\nResolving deltas: 100% (85/85), completed with 45 local objects.\nFrom github.com:jiminny/app\n 02a33811ee..c6ce5e2440 JY-20676-delete-report-related-objects -> origin/JY-20676-delete-report-related-objects\n 7ce96cb5fe..6c59f04358 JY-20808-low-priority-indexing-queue -> origin/JY-20808-low-priority-indexing-queue\n 3906a9238a..2b5e6ea62b JY-20835-mcp-enable-users-to-get-a-list-of-deals-and-their-details -> origin/JY-20835-mcp-enable-users-to-get-a-list-of-deals-and-their-details\n 5604af40cf..ea3519f0e2 master -> origin/master\n * [new branch] switch-eu-assembly -> origin/switch-eu-assembly\nUpdating 02a33811ee..c6ce5e2440\nFast-forward\n app/Component/ES/ElasticSearchDocumentPartialUpdater.php | 48 ---\n app/Component/ParticipantSpeech/Services/ParticipantAttributionService.php | 4 +-\n app/Component/Settings/AutoScoring/Services/UpdateAutoScoreService.php | 20 +-\n app/Component/Transcription/Service/StorageService.php | 8 +-\n front-end/package.json | 2 +-\n front-end/src/components/DealInsights/Modals/AskAnythingModal.vue | 23 ++\n front-end/src/components/shared/AskAnything/AskAnythingPromptFormItem.vue | 2 +\n front-end/src/components/shared/AskAnything/AskAnythingSettingsDrawer.vue | 23 +-\n front-end/src/components/shared/AskAnything/__mocks__/AskAnythingSettingsDrawer.mocks.js | 1 +\n front-end/src/components/shared/AskAnything/__tests__/AskAnythingSettingsDrawer.spec.js | 135 ++++---\n front-end/src/components/shared/AskAnything/__tests__/__snapshots__/AskAnythingSettingsDrawer.spec.js.html | 1235 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++\n front-end/src/components/shared/AskAnything/__tests__/__snapshots__/AskAnythingSettingsDrawer.spec.js.snap | 1382 ----------------------------------------------------------------\n front-end/src/components/shared/AskAnything/prompts.js | 1 +\n front-end/src/components/shared/AskAnything/useAskAnything.js | 1 +\n front-end/yarn.lock | 8 +-\n tests/Unit/Component/ES/ElasticSearchDocumentPartialUpdaterTest.php | 42 --\n tests/Unit/Component/Settings/AutoScoring/Services/UpdateAutoScoreServiceTest.php | 86 ++--\n tests/Unit/Component/Transcription/Service/StorageServiceTest.php | 29 +-\n 18 files changed, 1448 insertions(+), 1602 deletions(-)\n delete mode 100644 app/Component/ES/ElasticSearchDocumentPartialUpdater.php\n create mode 100644 front-end/src/components/shared/AskAnything/__tests__/__snapshots__/AskAnythingSettingsDrawer.spec.js.html\n delete mode 100644 front-end/src/components/shared/AskAnything/__tests__/__snapshots__/AskAnythingSettingsDrawer.spec.js.snap\n delete mode 100644 tests/Unit/Component/ES/ElasticSearchDocumentPartialUpdaterTest.php\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20676-delete-report-related-objects) $ csfix\ndocker exec -it docker_lamp_1 ./vendor/bin/php-cs-fixer fix --config=.php-cs-fixer.dist.php -v --using-cache=no --diff \nPHP CS Fixer 3.87.1 Alexander by Fabien Potencier, Dariusz Ruminski and contributors.\nPHP runtime: 8.3.30\nRunning analysis on 7 cores with 10 files per process.\nParallel runner is an experimental feature and may be unstable, use it at your own risk. Feedback highly appreciated!\nLoaded config default from \".php-cs-fixer.dist.php\".\n 5688/5688 [▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓] 100%\n\n\nFixed 0 of 5688 files in 79.904 seconds, 60.00 MB memory used\n\nWhat's next:\n Try Docker Debug for seamless, persistent debugging tools in any container or image → docker debug docker_lamp_1\n Learn more at https://docs.docker.com/go/debug-cli/\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20676-delete-report-related-objects) $","is_focused":true},{"role":"AXRadioButton","text":"DOCKER","depth":2,"bounds":{"left":0.0,"top":0.05888889,"width":0.19826388,"height":0.026666667},"on_screen":true,"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.004166667,"top":0.06333333,"width":0.011111111,"height":0.017777778},"on_screen":true,"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"DEV (docker)","depth":2,"bounds":{"left":0.19826388,"top":0.05888889,"width":0.19826388,"height":0.026666667},"on_screen":true,"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.20243056,"top":0.06333333,"width":0.011111111,"height":0.017777778},"on_screen":true,"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"APP (-zsh)","depth":2,"bounds":{"left":0.39652777,"top":0.05888889,"width":0.19791667,"height":0.026666667},"on_screen":true,"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.40069443,"top":0.06333333,"width":0.011111111,"height":0.017777778},"on_screen":true,"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"screenpipe\"","depth":2,"bounds":{"left":0.59444445,"top":0.05888889,"width":0.19791667,"height":0.026666667},"on_screen":true,"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.5986111,"top":0.06333333,"width":0.011111111,"height":0.017777778},"on_screen":true,"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"-zsh","depth":2,"bounds":{"left":0.79236114,"top":0.05888889,"width":0.19791667,"height":0.026666667},"on_screen":true,"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.7965278,"top":0.06333333,"width":0.011111111,"height":0.017777778},"on_screen":true,"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"⌥⌘1","depth":1,"bounds":{"left":0.9618056,"top":0.032222223,"width":0.038194418,"height":0.018888889},"on_screen":true,"automation_id":"_NS:8","role_description":"text"},{"role":"AXStaticText","text":"APP (-zsh)","depth":1,"bounds":{"left":0.47777778,"top":0.033333335,"width":0.05138889,"height":0.017777778},"on_screen":true,"role_description":"text"}]...
|
2802650493718167367
|
-1358120912881272742
|
idle
|
accessibility
|
NULL
|
Last login: Mon May 18 09:17:28 on ttys007
Poetry Last login: Mon May 18 09:17:28 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 (pipedrive-sdk-poc) $ co master
error: Your local changes to the following files would be overwritten by checkout:
PIPEDRIVE_V2_MIGRATION_TICKETS.md
Please commit your changes or stash them before you switch branches.
Aborting
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (pipedrive-sdk-poc) $ git pull
remote: Enumerating objects: 1047, done.
remote: Counting objects: 100% (832/832), done.
remote: Compressing objects: 100% (298/298), done.
remote: Total 1047 (delta 634), reused 596 (delta 534), pack-reused 215 (from 3)
Receiving objects: 100% (1047/1047), 353.16 KiB | 1.56 MiB/s, done.
Resolving deltas: 100% (687/687), completed with 107 local objects.
From github.com:jiminny/app
907c54896c..34656c53ed pipedrive-sdk-poc -> origin/pipedrive-sdk-poc
03325ec50f..4e7078fd8b JY-18091-upgrade-to-php-8-5 -> origin/JY-18091-upgrade-to-php-8-5
e7d231e163..bc6a3fce6b JY-20725-handle-HS-search-rate-limit -> origin/JY-20725-handle-HS-search-rate-limit
* [new branch] JY-20749-user-can-view-recorded-meetings -> origin/JY-20749-user-can-view-recorded-meetings
98ca281a04..e0351be069 JY-20808-low-priority-indexing-queue -> origin/JY-20808-low-priority-indexing-queue
569abb5149..3906a9238a JY-20835-mcp-enable-users-to-get-a-list-of-deals-and-their-details -> origin/JY-20835-mcp-enable-users-to-get-a-list-of-deals-and-their-details
ad6c2a86e8..50eb6afba9 JY-20846-mcp-enable-the-ai-to-know-details-about-the-user -> origin/JY-20846-mcp-enable-the-ai-to-know-details-about-the-user
* [new branch] JY-20893-chunk-control-per-update-target -> origin/JY-20893-chunk-control-per-update-target
31c62924a5..cb4ebf0c36 master -> origin/master
Updating 907c54896c..34656c53ed
Fast-forward
PIPEDRIVE_V2_MIGRATION_TICKETS.md | 52 ++++++++++++++++++++++++++++++++++++++++++++++++++++
1 file changed, 52 insertions(+)
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (pipedrive-sdk-poc) $ co master
M .env.local
M config/logging.php
Switched to branch 'master'
Your branch is behind 'origin/master' by 31 commits, and can be fast-forwarded.
(use "git pull" to update your local branch)
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (master) $ git pull
Updating 31c62924a5..cb4ebf0c36
Fast-forward
app/Component/ES/Processor/Traits/SelectEntityListTrait.php | 20 ------
app/Services/Calendar/CalendarActivityService.php | 46 +++++++++++++
app/Services/Calendar/Command/MapActivityData.php | 106 +++-------------------------
docs/mcp/explorer/explorer.html | 104 +++++++++++++++++++++++++---
docs/mcp/explorer/explorer.template.html | 102 ++++++++++++++++++++++++---
docs/mcp/tools-list.json | 373 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++-------
docs/mcp/tools.md | 117 +++++++++++++++++++++++--------
tests/Unit/Component/ES/AsyncUpdateElasticSearchTest.php | 16 +----
tests/Unit/Component/ES/Listeners/UpdateMultipleTargetsListenerTest.php | 10 ---
tests/Unit/Component/ES/Listeners/UpdateSingleTargetListenerTest.php | 6 --
tests/Unit/Component/ES/Processor/TargetEntitiesSelectorTest.php | 9 ---
tests/Unit/Component/ES/Processor/Traits/SelectEntityListTraitTest.php | 15 ++--
tests/Unit/Component/ES/UpdateProcessManagerTest.php | 2 -
tests/Unit/Services/Calendar/CalendarActivityServiceTest.php | 150 ++++++++++++++++++++++++++++++++++++++--
tests/Unit/Services/Calendar/Command/MapActivityDataTest.php | 78 ++-------------------
15 files changed, 832 insertions(+), 322 deletions(-)
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (master) $ co -b JY-20613-allow-owner-role-on-team-setup
Switched to a new branch 'JY-20613-allow-owner-role-on-team-setup'
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20613-allow-owner-role-on-team-setup) $ csfix
docker exec -it docker_lamp_1 ./vendor/bin/php-cs-fixer fix --config=.php-cs-fixer.dist.php -v --using-cache=no --diff
PHP CS Fixer 3.87.1 Alexander by Fabien Potencier, Dariusz Ruminski and contributors.
PHP runtime: 8.3.30
Running 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!
Loaded config default from ".php-cs-fixer.dist.php".
5682/5682 [▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓] 100%
Fixed 0 of 5682 files in 56.978 seconds, 67.00 MB memory used
What's next:
Try Docker Debug for seamless, persistent debugging tools in any container or image → docker debug docker_lamp_1
Learn more at [URL_WITH_CREDENTIALS] ~/jiminny/app (JY-20613-allow-owner-role-on-team-setup) $ csfix
docker exec -it docker_lamp_1 ./vendor/bin/php-cs-fixer fix --config=.php-cs-fixer.dist.php -v --using-cache=no --diff
PHP CS Fixer 3.87.1 Alexander by Fabien Potencier, Dariusz Ruminski and contributors.
PHP runtime: 8.3.30
Running 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!
Loaded config default from ".php-cs-fixer.dist.php".
5682/5682 [▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓] 100%
Fixed 0 of 5682 files in 49.910 seconds, 60.00 MB memory used
What's next:
Try Docker Debug for seamless, persistent debugging tools in any container or image → docker debug docker_lamp_1
Learn more at [URL_WITH_CREDENTIALS] ~/jiminny/app (JY-20613-allow-owner-role-on-team-setup) $ git pull
remote: Enumerating objects: 248, done.
remote: Counting objects: 100% (128/128), done.
remote: Compressing objects: 100% (23/23), done.
remote: Total 59 (delta 43), reused 44 (delta 33), pack-reused 0 (from 0)
Unpacking objects: 100% (59/59), 10.48 KiB | 228.00 KiB/s, done.
From github.com:jiminny/app
b7df560451..190239dfd4 JY-20613-allow-owner-role-on-team-setup -> origin/JY-20613-allow-owner-role-on-team-setup
e0351be069..d94a285ae7 JY-20808-low-priority-indexing-queue -> origin/JY-20808-low-priority-indexing-queue
* [new branch] JY-20920-fix-participant-matcher -> origin/JY-20920-fix-participant-matcher
cb4ebf0c36..90bca4e4b2 master -> origin/master
Merge made by the 'ort' strategy.
app/Component/ES/ChunkSize.php | 54 +++++++++++++++++++++++++++
app/Component/ES/Processor/DTOs/SelectionList.php | 4 +-
app/Component/ES/Processor/TargetEntitiesSelector.php | 19 ++++++----
app/Http/Middleware/McpTierMiddleware.php | 27 +++-----------
app/Mcp/Servers/JiminnyServer.php | 2 +
app/Mcp/Tools/GetMeTool.php | 157 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
app/Models/Feature/FeatureEnum.php | 1 +
database/migrations/2026_05_13_124153_create_mcp_feature_flag.php | 25 +++++++++++++
front-end/src/components/Settings/Kiosk/modals/EditTeamModal/EditTeamModal.vue | 52 ++++++++++++++++++--------
front-end/src/components/Settings/Kiosk/modals/EditTeamModal/__tests__/EditTeamModal.spec.js | 14 +++++++
tests/Feature/Mcp/GetMeToolFeatureTest.php | 140 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
tests/Feature/Mcp/ListCallsToolFeatureTest.php | 2 +-
tests/Feature/Mcp/McpTestHelpersTrait.php | 19 +++++++++-
tests/Unit/Component/ES/ChunkSizeTest.php | 50 +++++++++++++++++++++++++
tests/Unit/Component/ES/Processor/DTOs/SelectionListTest.php | 27 ++++++++++----
tests/Unit/Component/ES/Processor/TargetEntitiesSelectorTest.php | 39 +++++++++++---------
16 files changed, 557 insertions(+), 75 deletions(-)
create mode 100644 app/Component/ES/ChunkSize.php
create mode 100644 app/Mcp/Tools/GetMeTool.php
create mode 100644 database/migrations/2026_05_13_124153_create_mcp_feature_flag.php
create mode 100644 tests/Feature/Mcp/GetMeToolFeatureTest.php
create mode 100644 tests/Unit/Component/ES/ChunkSizeTest.php
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20613-allow-owner-role-on-team-setup) $ git push
Enumerating objects: 40, done.
Counting objects: 100% (34/34), done.
Delta compression using up to 8 threads
Compressing objects: 100% (18/18), done.
Writing objects: 100% (18/18), 1.58 KiB | 1.58 MiB/s, done.
Total 18 (delta 15), reused 0 (delta 0), pack-reused 0
remote: Resolving deltas: 100% (15/15), completed with 13 local objects.
To github.com:jiminny/app.git
190239dfd4..ec1b261264 JY-20613-allow-owner-role-on-team-setup -> JY-20613-allow-owner-role-on-team-setup
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20613-allow-owner-role-on-team-setup) $ gbr
* JY-20613-allow-owner-role-on-team-setup
pipedrive-sdk-poc
master
JY-20903-update_activity-stage-on-opportunity-change
JY-20904-fix-update-es-on-activity-command
JY-20891-improve-sms-text-relays
JY-20725-handle-HS-search-rate-limit
JY-20818-move-AJ-reports-to-separated-datadog-metric
JY-20773-fix-automated-reports-user-pilot-tracking
JY-20157-AJ-report-not-send-notification
JY-20508-notify-before-AJ-report-expiration
JY-20372-ai-reports-promotion-pages
JY-20352-sync-opportunities-without-a-local-owner-user-id-is-null
JY-20738-debug-AJ-tracking-UP
a
JY-18909-automated-reports-ask-jiminny
JY-20692-fix-integration-app-[API_KEY]
JY-20553-debug-crm-sync-delays
JY-20698-fix-SF-activity-types-on-new-playbook
JY-20543-AJ-report-tracking
JY-20384-handle-auto-sync-with-no-access-to-event-type
JY-20458-ask-jiminny-user-definitions
JY-19666-fix-import-contacts-account-association
JY-19666-HS-import-contacts-and-accounts-batch-job
JY-20458-Ask-Jiminny-Reports
JY-20200-batch-update-CRM-objects-Salesforce
JY-19666-HS-webhooks-add-contact-and-company
JY-20348-trigger-setup-DI-layout-on-team-creation
JY-20326-refactor-info-message-in-command
JY-20317-fix-auto-log-delay-issue-on-all-channels-disabled
JY-20312-remove-on-update-change-last-synced-at-crm-configurations
JY-20306-SF-skip-auto-sync-for-task-based-playbook
JY-20192-remove-deleted-team-from-saved-search-filters
JY-20197-import-opportunity-batch-job
JY-20293-enable-status-field-for-pipedrive-deals
JY-20191-remove-commands-interactive-prompts
JY-20118-change-default-sync-strategy
JY-20183-add-cache-on-auto-log-delay
JY-20197-add-import-opportunity-batch-job
20118-hs-opportunity-make-webhook-strategy-default
JY-20118-make-default-hs-opportunity-sync-strategy-webhook-based
JY-20196-handle-opportunity-without-note
JY-20118-improve-opportunity-import
JY-20189-handle-activity-search-on-deleted-groups
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20613-allow-owner-role-on-team-setup) $ co JY-20725-handle-HS-search-rate-limit
M .env.local
M config/logging.php
Switched to branch 'JY-20725-handle-HS-search-rate-limit'
Your branch is behind 'origin/JY-20725-handle-HS-search-rate-limit' by 439 commits, and can be fast-forwarded.
(use "git pull" to update your local branch)
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20725-handle-HS-search-rate-limit) $ git pull
Updating 0f3e438941..bc6a3fce6b
Fast-forward
.gitignore | 3 +-
.windsurfrules | 168 ++---
CLAUDE.md | 1 +
app/Component/ActivityAnalytics/Service/CalculateTalkTimeOffsetsFromTranscription.php | 24 +-
app/Component/AiActivityType/Services/AiActivityTypeEligibilityChecker.php | 28 +-
app/Component/AiAutomation/Actions/PrepareUpdateDtoAction.php | 32 +-
app/Component/AiAutomation/Services/CrmFillingEligibilityChecker.php | 47 ++
app/Component/AiAutomation/TestCrmAiPromptService.php | 14 +
app/Component/AiCallScoring/Services/AiCallScoringEligibilityChecker.php | 9 +
app/Component/ES/ElasticSearchDocumentPartialUpdater.php | 13 +-
app/Component/ES/ElasticSearchWorkerManager.php | 86 ---
app/Component/ES/Processor/Actions/LoadDocumentsAction.php | 80 +--
app/Component/ES/Processor/EntityQueryBuilder.php | 12 +-
app/Component/ES/Processor/TargetEntitiesSelector.php | 2 +-
app/Component/ES/Processor/Traits/SkipActivityTrait.php | 25 -
app/Component/ES/Repositories/EsResetActivityRepository.php | 11 +-
app/Component/ES/Worker/ActivityWorker.php | 73 --
app/Component/ES/Worker/EntityWorker.php | 44 --
app/Component/ES/Worker/WorkerAmount.php | 60 --
app/Component/ES/Worker/WorkerInterface.php | 15 -
app/Component/ElasticSearch/Contract/Searchable.php | 4 +
app/Component/Encoding/Job/AnalyzeTrackChannelsJob.php | 20 +-
app/Component/Encoding/Service/GenerateSpeechFromSilenceService.php | 85 ++-
app/Component/FFMpeg/Services/GetSpeechIntervalsService.php | 18 +-
app/Component/LanguageDetection/Services/FindSpeechTimeService.php | 22 +-
app/Component/Nudge/Job/ProcessOrganisationImmediateNudgesJob.php | 218 +++++-
app/Component/ParagraphBreaker/Services/TranscriptionParagraphsService.php | 4 +
app/Component/ParticipantSpeech/Services/ParticipantSpeechesCreator.php | 33 +
app/Component/ParticipantSpeech/Services/ParticipantSpeechesDeleter.php | 15 +
app/Component/ParticipantSpeech/Services/ParticipantSpeechesProvider.php | 51 +-
app/Component/ParticipantSpeech/Services/ParticipantSpeechesUploader.php | 36 +
app/Component/ProphetAi/Exceptions/InsufficientTranscriptException.php | 11 +
app/Component/Transcription/DTO/Http/Transcription/AssemblyAI/AssemblyAI/NoAssemblyIdException.php | 11 +
app/Component/Transcription/DTO/Http/Transcription/AssemblyAI/AssemblyAI/SuccessfulResponse.php | 6 +
app/Component/Transcription/DTO/Http/Transcription/TranscriptionIsNotCorrectFormatException.php | 11 +
app/Component/Transcription/Diarization/Services/GetNormalizedParticipantSpeechesService.php | 23 +-
app/Component/Transcription/Diarization/Source/MeetingBotSource.php | 16 +-
app/Component/Transcription/TranscriptionProcessor/TranscriptionProcessor.php | 3 +
app/Console/Commands/Activities/ActivityHardDeleteCommand.php | 4 +-
app/Console/Commands/Activities/Copy.php | 2 +
app/Console/Commands/Activities/SetupIntegration/TwilioSetS3RecordingCredentialsCommand.php | 119 ++++
app/Console/Commands/Activities/UpdateActivityElasticSearchDocumentCommand.php | 10 +-
app/Console/Commands/Crm/BackfillOpportunityUserFromAccountCommand.php | 126 ++++
app/Console/Commands/Elasticsearch/AsyncUpdateEsActivities.php | 19 -
app/Console/Commands/Elasticsearch/AsyncUpdateEsEntities.php | 50 +-
app/Console/Commands/Elasticsearch/ResetAsyncElasticSearchCommand.php | 30 +-
app/Console/Commands/GeckoExport/GeckoExportParticipantSpeechesCommand.php | 14 +-
app/Console/Commands/IssueMcpTokenCommand.php | 84 +++
app/Console/Commands/JiminnyDebugCommand.php | 7 +-
app/Console/Commands/Tracks/CleanupActivityTracksCommand.php | 2 +-
app/Console/Kernel.php | 6 +-
app/Contracts/Services/Calendar/CalendarTrait.php | 80 ++-
app/Events/AutomatedReports/AutomatedReportGenerated.php | 3 +
app/Http/Controllers/API/AiCallScoring/AiScorecardController.php | 7 +-
app/Http/Controllers/API/TeamAiAutomationController.php | 8 +
app/Http/Controllers/CustomerApi/CustomerApiController.php | 4 +-
app/Http/Controllers/Kiosk/ActivityController.php | 58 +-
app/Http/Controllers/Settings/PlaybookController.php | 15 +-
app/Http/Kernel.php | 23 +
app/Http/Middleware/McpAuditMiddleware.php | 156 ++++
app/Http/Middleware/McpTierMiddleware.php | 54 ++
app/Http/Requests/API/V2/ZapierUploadActivityRequest.php | 28 +-
app/Jobs/Activity/Import/ImportTwilioVideoSpeechesJob.php | 25 +-
app/Jobs/Activity/Import/IsActivityReadyForProcessingJob.php | 10 +-
app/Jobs/Calendar/SetupCalendarSync.php | 21 +-
app/Jobs/ImportRemoteTrackJob.php | 96 ++-
app/Jobs/Mailbox/EmailTextRelay.php | 15 +-
app/Mcp/Contracts/McpCallRepositoryInterface.php | 30 +
app/Mcp/DTO/ListCallsFilters.php | 29 +
app/Mcp/Errors/McpError.php | 123 ++++
app/Mcp/Repositories/McpActivityHydrator.php | 145 ++++
app/Mcp/Repositories/McpCallRepository.php | 84 +++
app/Mcp/Repositories/McpElasticCallRepository.php | 171 +++++
app/Mcp/Servers/JiminnyServer.php | 38 +
app/Mcp/Tools/ListCallsTool.php | 205 ++++++
app/Models/Activity.php | 10 +-
app/Models/Activity/Transcription.php | 17 +-
app/Models/ElasticSearch/OpportunityElasticSearchTrait.php | 5 +
app/Models/Participant.php | 1 +
app/Providers/AppServiceProvider.php | 22 +
app/Repositories/Crm/ContactRepository.php | 69 +-
app/Repositories/ParticipantSpeechRepository.php | 13 +-
app/Services/Activity/ParticipantsService.php | 19 +-
app/Services/Activity/Twilio/S3RecordingCredentialsService.php | 82 +++
app/Services/ActivityService.php | 21 +-
app/Services/Calendar/CalendarActivityService.php | 46 ++
app/Services/Calendar/Command/ImportParticipants.php | 1 +
app/Services/Calendar/Command/MapActivityData.php | 106 +--
app/Services/Calendar/GoogleCalendarService.php | 12 +-
app/Services/Crm/Close/Processor/OpportunityProcessor.php | 2 +-
app/Services/Crm/Close/Service.php | 22 +-
app/Services/Crm/Copper/Service.php | 12 +-
app/Services/Crm/Hubspot/Service.php | 154 +++-
app/Services/Crm/Hubspot/ServiceTraits/OpportunitySyncTrait.php | 88 ++-
app/Services/Crm/IntegrationApp/ServiceTraits/SyncCrmEntitiesTrait.php | 22 +-
app/Services/Crm/Pipedrive/Service.php | 17 +-
app/Services/Crm/Salesforce/Service.php | 42 +-
app/Services/Mail/Office/EmailApiClient.php | 129 +---
app/Services/RecallAI/Commands/ScheduleBotCommand.php | 39 +-
app/Services/RecallAI/RecallAIService.php | 22 +-
composer.json | 3 +-
composer.lock | 87 ++-
config/mcp.php | 23 +
database/migrations/2026_04_30_120000_create_mcp_audit_log_table.php | 36 +
docs/mcp/explorer/explorer.html | 697 ++++++++++++++++++
docs/mcp/explorer/explorer.template.html | 697 ++++++++++++++++++
docs/mcp/explorer/generate.js | 215 ++++++
docs/mcp/explorer/tool-explorer-meta.json | 11 +
docs/mcp/tools-list.json | 2536 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
docs/mcp/tools.md | 621 ++++++++++++++++
front-end/package.json | 4 +-
front-end/src/components/Settings/OrgSettings/AiAutomation/CrmFilling/TemplateFieldForm.vue | 28 +-
front-end/src/components/Settings/OrgSettings/Playbooks/AddEditPlaybook.vue | 10 +
front-end/src/components/playback/comments/ActivityComment.less | 10 +-
front-end/src/components/shared/PromptTester/PromptTester.vue | 12 +-
front-end/src/components/shared/__tests__/PromptTester.spec.js | 35 +
front-end/src/components/shared/modals/EntityPickerModal/__tests__/useEntitiesCache.spec.ts | 37 +
front-end/src/components/shared/modals/EntityPickerModal/useEntitiesCache.ts | 9 +
front-end/yarn.lock | 16 +-
phpstan-baseline.neon | 50 --
routes/api.php | 11 +
sonar-project.properties | 91 ++-
tests/Feature/Component/Nudge/ProcessOrganisationImmediateNudgesJobTest.php | 534 ++++++++++++++
tests/Feature/Jobs/ImportRemoteTrackJobTest.php | 283 +++++++-
tests/Feature/Mcp/IssueMcpTokenCommandTest.php | 53 ++
tests/Feature/Mcp/ListCallsToolElasticFeatureTest.php | 155 ++++
tests/Feature/Mcp/ListCallsToolFeatureTest.php | 352 ++++++++++
tests/Feature/Mcp/McpTestHelpersTrait.php | 77 ++
tests/Feature/Services/Team/TeamDeleteHandlers/Retention/RetentionRepositoryHandlerTest.php | 1 +
tests/Stubs/SentryStub.php | 18 +
tests/Unit/Component/ActivityAnalytics/Service/CalculateTalkTimeOffsetFromTranscriptionTest.php | 28 +-
tests/Unit/Component/AiActivityType/Services/AiActivityTypeEligibilityCheckerTest.php | 103 ++-
tests/Unit/Component/AiAutomation/Actions/PrepareUpdateDtoActionTest.php | 91 +++
tests/Unit/Component/AiAutomation/Services/CrmFillingEligibilityCheckerTest.php | 124 ++++
tests/Unit/Component/AiAutomation/TestCrmAiPromptServiceTest.php | 67 +-
tests/Unit/Component/AiCallScoring/Services/AiCallScoringEligibilityCheckerTest.php | 55 ++
tests/Unit/Component/ES/ElasticSearchWorkerManagerTest.php | 135 ----
tests/Unit/Component/ES/Processor/Actions/LoadDocumentsActionTest.php | 220 ++++++
tests/Unit/Component/ES/Processor/EntityQueryBuilderTest.php | 21 +-
tests/Unit/Component/ES/Processor/Traits/SkipActivityTraitTest.php | 51 --
tests/Unit/Component/ES/Worker/ActivityWorkerTest.php | 174 -----
tests/Unit/Component/ES/Worker/EntityWorkerTest.php | 97 ---
tests/Unit/Component/ES/Worker/WorkerAmountTest.php | 116 ---
tests/Unit/Component/Encoding/Job/AnalyzeTrackChannelsJobTest.php | 52 +-
tests/Unit/Component/Encoding/Service/GenerateSpeechFromSilenceServiceTest.php | 171 ++---
tests/Unit/Component/FFMpeg/Services/GetSpeechIntervalsTest.php | 36 +-
tests/Unit/Component/LanguageDetection/Services/FindSpeechTimeServiceTest.php | 20 +-
tests/Unit/Component/MobileSettings/MobileSettingsControllerTest.php | 5 +-
tests/Unit/Component/ParticipantSpeech/Services/ParticipantSpeechesCreatorTest.php | 75 ++
tests/Unit/Component/ParticipantSpeech/Services/ParticipantSpeechesDeleterTest.php | 63 ++
tests/Unit/Component/ParticipantSpeech/Services/ParticipantSpeechesProviderTest.php | 134 ++++
tests/Unit/Component/ParticipantSpeech/Services/ParticipantSpeechesUploaderTest.php | 57 ++
tests/Unit/Component/Transcription/Diarization/Services/GetNormalizedParticipantSpeechesServiceTest.php | 51 +-
tests/Unit/Component/Transcription/Diarization/Source/MeetingBotSourceTest.php | 29 +-
tests/Unit/Contracts/Services/Calendar/CalendarTraitTest.php | 58 +-
tests/Unit/Http/Controllers/Kiosk/ActivityControllerTest.php | 159 +++++
tests/Unit/Jobs/Activity/Import/ImportTwilioVideoSpeechesJobTest.php | 22 +-
tests/Unit/Jobs/Activity/Import/IsActivityReadyForProcessingJobTest.php | 26 +-
tests/Unit/Jobs/Calendar/SetupCalendarSyncTest.php | 25 -
tests/Unit/Services/Activity/ParticipantsServiceTest.php | 12 +-
tests/Unit/Services/Activity/Twilio/S3RecordingCredentialsServiceTest.php | 180 +++++
tests/Unit/Services/ActivityServiceTest.php | 132 ++++
tests/Unit/Services/Calendar/CalendarActivityServiceTest.php | 150 +++-
tests/Unit/Services/Calendar/Command/ImportParticipantsTest.php | 6 +-
tests/Unit/Services/Calendar/Command/MapActivityDataTest.php | 78 +-
tests/Unit/Services/Calendar/GoogleCalendarServiceTest.php | 116 +++
tests/Unit/Services/Crm/Close/ServiceTest.php | 165 +++++
tests/Unit/Services/Crm/Hubspot/ServiceTest.php | 272 ++++++-
tests/Unit/Services/Crm/Hubspot/ServiceTraits/OpportunitySyncTest.php | 25 +-
tests/Unit/Services/Crm/Hubspot/ServiceTraits/OpportunitySyncTraitMatchActivitiesTest.php | 3 +-
tests/Unit/Services/Crm/IntegrationApp/ServiceTraits/SyncCrmEntitiesTraitOpportunitiesTest.php | 40 ++
tests/Unit/Services/Crm/Pipedrive/ImportOpportunityMatchActivitiesTest.php | 2 +
tests/Unit/Services/Crm/Salesforce/ServiceTest.php | 139 ++++
tests/Unit/Services/Mail/Office/EmailApiClientTest.php | 195 ++---
tests/Unit/Services/RecallAI/RecallAIServiceTest.php | 24 +-
175 files changed, 12562 insertions(+), 2162 deletions(-)
create mode 120000 CLAUDE.md
create mode 100644 app/Component/AiAutomation/Services/CrmFillingEligibilityChecker.php
delete mode 100644 app/Component/ES/ElasticSearchWorkerManager.php
delete mode 100644 app/Component/ES/Processor/Traits/SkipActivityTrait.php
delete mode 100644 app/Component/ES/Worker/ActivityWorker.php
delete mode 100644 app/Component/ES/Worker/EntityWorker.php
delete mode 100644 app/Component/ES/Worker/WorkerAmount.php
delete mode 100644 app/Component/ES/Worker/WorkerInterface.php
create mode 100644 app/Component/ProphetAi/Exceptions/InsufficientTranscriptException.php
create mode 100644 app/Component/Transcription/DTO/Http/Transcription/AssemblyAI/AssemblyAI/NoAssemblyIdException.php
create mode 100644 app/Component/Transcription/DTO/Http/Transcription/TranscriptionIsNotCorrectFormatException.php
create mode 100644 app/Console/Commands/Activities/SetupIntegration/TwilioSetS3RecordingCredentialsCommand.php
create mode 100644 app/Console/Commands/Crm/BackfillOpportunityUserFromAccountCommand.php
delete mode 100644 app/Console/Commands/Elasticsearch/AsyncUpdateEsActivities.php
create mode 100644 app/Console/Commands/IssueMcpTokenCommand.php
create mode 100644 app/Http/Middleware/McpAuditMiddleware.php
create mode 100644 app/Http/Middleware/McpTierMiddleware.php
create mode 100644 app/Mcp/Contracts/McpCallRepositoryInterface.php
create mode 100644 app/Mcp/DTO/ListCallsFilters.php
create mode 100644 app/Mcp/Errors/McpError.php
create mode 100644 app/Mcp/Repositories/McpActivityHydrator.php
create mode 100644 app/Mcp/Repositories/McpCallRepository.php
create mode 100644 app/Mcp/Repositories/McpElasticCallRepository.php
create mode 100644 app/Mcp/Servers/JiminnyServer.php
create mode 100644 app/Mcp/Tools/ListCallsTool.php
create mode 100644 app/Services/Activity/Twilio/S3RecordingCredentialsService.php
create mode 100644 config/mcp.php
create mode 100644 database/migrations/2026_04_30_120000_create_mcp_audit_log_table.php
create mode 100644 docs/mcp/explorer/explorer.html
create mode 100644 docs/mcp/explorer/explorer.template.html
create mode 100644 docs/mcp/explorer/generate.js
create mode 100644 docs/mcp/explorer/tool-explorer-meta.json
create mode 100644 docs/mcp/tools-list.json
create mode 100644 docs/mcp/tools.md
create mode 100644 front-end/src/components/shared/modals/EntityPickerModal/__tests__/useEntitiesCache.spec.ts
create mode 100644 tests/Feature/Component/Nudge/ProcessOrganisationImmediateNudgesJobTest.php
create mode 100644 tests/Feature/Mcp/IssueMcpTokenCommandTest.php
create mode 100644 tests/Feature/Mcp/ListCallsToolElasticFeatureTest.php
create mode 100644 tests/Feature/Mcp/ListCallsToolFeatureTest.php
create mode 100644 tests/Feature/Mcp/McpTestHelpersTrait.php
create mode 100644 tests/Stubs/SentryStub.php
create mode 100644 tests/Unit/Component/AiAutomation/Services/CrmFillingEligibilityCheckerTest.php
delete mode 100644 tests/Unit/Component/ES/ElasticSearchWorkerManagerTest.php
create mode 100644 tests/Unit/Component/ES/Processor/Actions/LoadDocumentsActionTest.php
delete mode 100644 tests/Unit/Component/ES/Processor/Traits/SkipActivityTraitTest.php
delete mode 100644 tests/Unit/Component/ES/Worker/ActivityWorkerTest.php
delete mode 100644 tests/Unit/Component/ES/Worker/EntityWorkerTest.php
delete mode 100644 tests/Unit/Component/ES/Worker/WorkerAmountTest.php
create mode 100644 tests/Unit/Component/ParticipantSpeech/Services/ParticipantSpeechesCreatorTest.php
create mode 100644 tests/Unit/Http/Controllers/Kiosk/ActivityControllerTest.php
create mode 100644 tests/Unit/Services/Activity/Twilio/S3RecordingCredentialsServiceTest.php
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20725-handle-HS-search-rate-limit) $ git status
On branch master
Your branch is behind 'origin/master' by 114 commits, and can be fast-forwarded.
(use "git pull" to update your local branch)
Changes not staged for commit:
(use "git add <file>..." to update what will be committed)
(use "git restore <file>..." to discard changes in working directory)
modified: .env.local
modified: app/Component/SCIM/Constants.php
modified: app/Component/SCIM/ScimProvisioning.php
modified: app/Component/Twilio/Conference/ConferenceManager/SoftPhoneManager.php
modified: app/Console/Commands/JiminnyDebugCommand.php
modified: app/DTO/SCIM/AAD/Request/CoreUserRequest.php
modified: app/DTO/SCIM/AAD/Response/CoreUser.php
modified: app/Services/Telephony/TextMessagingService.php
modified: config/logging.php
Untracked files:
(use "git add <file>..." to include in what will be committed)
.env.nikilocal
.env.other
WEBHOOK_FILTERING_IMPLEMENTATION.md
app/Component/SCIM/Mutators/Attributes/User/RoleAttr.php
app/Console/Commands/Crm/Hubspot/SimulateWebhooksCommand.php
app/Console/Commands/Reports/CreateMockAskJiminnyReportResultCommand.php
app/Rules/ListenerRoleCannotHaveAdminOrManagerPermissionRule.php
ids.txt
public/favicon.ico
raw_sql_query.sql
tests/Unit/Component/SCIM/Mutators/Attributes/User/RoleAttrTest.php
tests/Unit/Policies/CanAccessAiReportsTest.php
tests/Unit/Rules/ListenerRoleCannotHaveAdminOrManagerPermissionRuleTest.php
no changes added to commit (use "git add" and/or "git commit -a")
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (master) $ git pull
remote: Enumerating objects: 306, done.
remote: Counting objects: 100% (299/299), done.
remote: Compressing objects: 100% (183/183), done.
remote: Total 306 (delta 213), reused 171 (delta 116), pack-reused 7 (from 1)
Receiving objects: 100% (306/306), 80.12 KiB | 1000.00 KiB/s, done.
Resolving deltas: 100% (213/213), completed with 53 local objects.
From github.com:jiminny/app
90bca4e4b2..5604af40cf master -> origin/master
4e7078fd8b..0b8343d179 JY-18091-upgrade-to-php-8-5 -> origin/JY-18091-upgrade-to-php-8-5
098eeaa087..d5a447e492 JY-20613-allow-owner-role-on-team-setup -> origin/JY-20613-allow-owner-role-on-team-setup
c3a76ace91..af65249d0f JY-20749-user-can-view-recorded-meetings -> origin/JY-20749-user-can-view-recorded-meetings
d94a285ae7..7ce96cb5fe JY-20808-low-priority-indexing-queue -> origin/JY-20808-low-priority-indexing-queue
* [new branch] JY-20842-remove-partial-updater -> origin/JY-20842-remove-partial-updater
* [new branch] JY-20920-fix-participant-flip -> origin/JY-20920-fix-participant-flip
* [new branch] secfix/npm-20260519 -> origin/secfix/npm-20260519
Updating cb4ebf0c36..5604af40cf
Fast-forward
app/Component/ES/ChunkSize.php | 54 +++++++++++++++++++
app/Component/ES/Processor/DTOs/SelectionList.php | 4 +-
app/Component/ES/Processor/TargetEntitiesSelector.php | 19 ++++---
app/Component/MeetingBot/Service/ParticipantMatcher.php | 46 ++++++++++++----
app/Exceptions/RateLimitException.php | 19 ++++++-
app/Http/Middleware/McpTierMiddleware.php | 27 ++--------
app/Jobs/Crm/MatchActivityCrmData.php | 47 ++++++++++++----
app/Jobs/Middleware/HandleHubspotRateLimit.php | 42 +++++++++++++++
app/Mcp/Servers/JiminnyServer.php | 2 +
app/Mcp/Tools/GetMeTool.php | 157 +++++++++++++++++++++++++++++++++++++++++++++++++++++
app/Models/Feature/FeatureEnum.php | 1 +
app/Services/Activity/HubSpot/ProviderResolver.php | 4 +-
app/Services/Activity/HubSpot/ProviderResolverInterface.php | 2 +-
app/Services/Activity/HubSpot/Providers/Provider.php | 2 +-
app/Services/Activity/HubSpot/Providers/ProviderKixie.php | 2 +-
app/Services/Activity/HubSpot/Providers/ProviderOrum.php | 2 +-
app/Services/Activity/HubSpot/Providers/ProviderTwilio.php | 2 +-
app/Services/Activity/HubSpot/Providers/ProviderTwilioFlex.php | 5 +-
app/Services/Activity/HubSpot/Service.php | 97 +++++++++++++++++++++++++++------
app/Services/Crm/Hubspot/Client.php | 132 +++++++++++++++++++++++++++++++++++++++++++++
app/Services/Crm/Hubspot/HubspotClientInterface.php | 15 ++++++
app/Services/Crm/Hubspot/Pagination/HubspotPaginationService.php | 21 ++++----
app/Services/Crm/Hubspot/Pagination/PaginationState.php | 2 +-
database/migrations/2026_05_13_124153_create_mcp_feature_flag.php | 25 +++++++++
tests/Feature/Mcp/GetMeToolFeatureTest.php | 140 +++++++++++++++++++++++++++++++++++++++++++++++
tests/Feature/Mcp/ListCallsToolFeatureTest.php | 2 +-
tests/Feature/Mcp/McpTestHelpersTrait.php | 19 ++++++-
tests/Unit/Component/ES/ChunkSizeTest.php | 50 +++++++++++++++++
tests/Unit/Component/ES/Processor/DTOs/SelectionListTest.php | 27 +++++++---
tests/Unit/Component/ES/Processor/TargetEntitiesSelectorTest.php | 39 ++++++++------
tests/Unit/Component/MeetingBot/Service/ParticipantMatcherTest.php | 68 ++++++++++++++++++++++-
tests/Unit/Exceptions/RateLimitExceptionTest.php | 56 +++++++++++++++++++
tests/Unit/Jobs/Crm/MatchActivityCrmDataTest.php | 8 +--
tests/Unit/Jobs/Middleware/HandleHubspotRateLimitTest.php | 151 +++++++++++++++++++++++++++++++++++++++++++++++++++
tests/Unit/Services/Activity/HubSpot/ServiceTest.php | 109 +++++++++++++++++++++++++++++++++++++
tests/Unit/Services/Crm/Hubspot/ClientTest.php | 250 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
tests/Unit/Services/Crm/Hubspot/Pagination/HubspotPaginationServiceTest.php | 283 +++++++++++++++++++++---------------------------------------------------------------------------
37 files changed, 1587 insertions(+), 344 deletions(-)
create mode 100644 app/Component/ES/ChunkSize.php
create mode 100644 app/Jobs/Middleware/HandleHubspotRateLimit.php
create mode 100644 app/Mcp/Tools/GetMeTool.php
create mode 100644 database/migrations/2026_05_13_124153_create_mcp_feature_flag.php
create mode 100644 tests/Feature/Mcp/GetMeToolFeatureTest.php
create mode 100644 tests/Unit/Component/ES/ChunkSizeTest.php
create mode 100644 tests/Unit/Exceptions/RateLimitExceptionTest.php
create mode 100644 tests/Unit/Jobs/Middleware/HandleHubspotRateLimitTest.php
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (master) $ git pull
Already up to date.
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (master) $ co -b JY-20676-delete-report-related-objects
Switched to a new branch 'JY-20676-delete-report-related-objects'
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20676-delete-report-related-objects) $ csfix
docker exec -it docker_lamp_1 ./vendor/bin/php-cs-fixer fix --config=.php-cs-fixer.dist.php -v --using-cache=no --diff
PHP CS Fixer 3.87.1 Alexander by Fabien Potencier, Dariusz Ruminski and contributors.
PHP runtime: 8.3.30
Running 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!
Loaded config default from ".php-cs-fixer.dist.php".
5690/5690 [▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓] 100%
1) app/Console/Commands/JiminnyDebugCommand.php (statement_indentation, blank_line_before_statement)
---------- begin diff ----------
--- /home/jiminny/app/Console/Commands/JiminnyDebugCommand.php
+++ /home/jiminny/app/Console/Commands/JiminnyDebugCommand.php
@@ -23,6 +23,7 @@
if ($action === 'redis-set') {
$this->testRedisSet();
+
return;
}
@@ -45,7 +46,7 @@
$ttl = 60;
try {
-// $result = Redis::set($testKey, $testValue, 'EX', $ttl, 'NX');
+ // $result = Redis::set($testKey, $testValue, 'EX', $ttl, 'NX');
$result = Redis::set($testKey, $testValue, ['nx', 'ex' => $ttl]);
if ($result) {
----------- end diff -----------
Fixed 1 of 5690 files i...
|
58093
|
NULL
|
NULL
|
NULL
|
|
58109
|
2047
|
5
|
2026-05-19T11:38:49.117447+00:00
|
/Users/lukas/.screenpipe/data/data/2026-05-19/1779 /Users/lukas/.screenpipe/data/data/2026-05-19/1779190729117_m2.jpg...
|
iTerm2
|
APP (-zsh)
|
1
|
NULL
|
monitor_2
|
NULL
|
NULL
|
NULL
|
NULL
|
Last login: Mon May 18 09:17:28 on ttys007
Poetry Last login: Mon May 18 09:17:28 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 (pipedrive-sdk-poc) $ co master
error: Your local changes to the following files would be overwritten by checkout:
PIPEDRIVE_V2_MIGRATION_TICKETS.md
Please commit your changes or stash them before you switch branches.
Aborting
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (pipedrive-sdk-poc) $ git pull
remote: Enumerating objects: 1047, done.
remote: Counting objects: 100% (832/832), done.
remote: Compressing objects: 100% (298/298), done.
remote: Total 1047 (delta 634), reused 596 (delta 534), pack-reused 215 (from 3)
Receiving objects: 100% (1047/1047), 353.16 KiB | 1.56 MiB/s, done.
Resolving deltas: 100% (687/687), completed with 107 local objects.
From github.com:jiminny/app
907c54896c..34656c53ed pipedrive-sdk-poc -> origin/pipedrive-sdk-poc
03325ec50f..4e7078fd8b JY-18091-upgrade-to-php-8-5 -> origin/JY-18091-upgrade-to-php-8-5
e7d231e163..bc6a3fce6b JY-20725-handle-HS-search-rate-limit -> origin/JY-20725-handle-HS-search-rate-limit
* [new branch] JY-20749-user-can-view-recorded-meetings -> origin/JY-20749-user-can-view-recorded-meetings
98ca281a04..e0351be069 JY-20808-low-priority-indexing-queue -> origin/JY-20808-low-priority-indexing-queue
569abb5149..3906a9238a JY-20835-mcp-enable-users-to-get-a-list-of-deals-and-their-details -> origin/JY-20835-mcp-enable-users-to-get-a-list-of-deals-and-their-details
ad6c2a86e8..50eb6afba9 JY-20846-mcp-enable-the-ai-to-know-details-about-the-user -> origin/JY-20846-mcp-enable-the-ai-to-know-details-about-the-user
* [new branch] JY-20893-chunk-control-per-update-target -> origin/JY-20893-chunk-control-per-update-target
31c62924a5..cb4ebf0c36 master -> origin/master
Updating 907c54896c..34656c53ed
Fast-forward
PIPEDRIVE_V2_MIGRATION_TICKETS.md | 52 ++++++++++++++++++++++++++++++++++++++++++++++++++++
1 file changed, 52 insertions(+)
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (pipedrive-sdk-poc) $ co master
M .env.local
M config/logging.php
Switched to branch 'master'
Your branch is behind 'origin/master' by 31 commits, and can be fast-forwarded.
(use "git pull" to update your local branch)
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (master) $ git pull
Updating 31c62924a5..cb4ebf0c36
Fast-forward
app/Component/ES/Processor/Traits/SelectEntityListTrait.php | 20 ------
app/Services/Calendar/CalendarActivityService.php | 46 +++++++++++++
app/Services/Calendar/Command/MapActivityData.php | 106 +++-------------------------
docs/mcp/explorer/explorer.html | 104 +++++++++++++++++++++++++---
docs/mcp/explorer/explorer.template.html | 102 ++++++++++++++++++++++++---
docs/mcp/tools-list.json | 373 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++-------
docs/mcp/tools.md | 117 +++++++++++++++++++++++--------
tests/Unit/Component/ES/AsyncUpdateElasticSearchTest.php | 16 +----
tests/Unit/Component/ES/Listeners/UpdateMultipleTargetsListenerTest.php | 10 ---
tests/Unit/Component/ES/Listeners/UpdateSingleTargetListenerTest.php | 6 --
tests/Unit/Component/ES/Processor/TargetEntitiesSelectorTest.php | 9 ---
tests/Unit/Component/ES/Processor/Traits/SelectEntityListTraitTest.php | 15 ++--
tests/Unit/Component/ES/UpdateProcessManagerTest.php | 2 -
tests/Unit/Services/Calendar/CalendarActivityServiceTest.php | 150 ++++++++++++++++++++++++++++++++++++++--
tests/Unit/Services/Calendar/Command/MapActivityDataTest.php | 78 ++-------------------
15 files changed, 832 insertions(+), 322 deletions(-)
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (master) $ co -b JY-20613-allow-owner-role-on-team-setup
Switched to a new branch 'JY-20613-allow-owner-role-on-team-setup'
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20613-allow-owner-role-on-team-setup) $ csfix
docker exec -it docker_lamp_1 ./vendor/bin/php-cs-fixer fix --config=.php-cs-fixer.dist.php -v --using-cache=no --diff
PHP CS Fixer 3.87.1 Alexander by Fabien Potencier, Dariusz Ruminski and contributors.
PHP runtime: 8.3.30
Running 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!
Loaded config default from ".php-cs-fixer.dist.php".
5682/5682 [▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓] 100%
Fixed 0 of 5682 files in 56.978 seconds, 67.00 MB memory used
What's next:
Try Docker Debug for seamless, persistent debugging tools in any container or image → docker debug docker_lamp_1
Learn more at [URL_WITH_CREDENTIALS] ~/jiminny/app (JY-20613-allow-owner-role-on-team-setup) $ csfix
docker exec -it docker_lamp_1 ./vendor/bin/php-cs-fixer fix --config=.php-cs-fixer.dist.php -v --using-cache=no --diff
PHP CS Fixer 3.87.1 Alexander by Fabien Potencier, Dariusz Ruminski and contributors.
PHP runtime: 8.3.30
Running 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!
Loaded config default from ".php-cs-fixer.dist.php".
5682/5682 [▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓] 100%
Fixed 0 of 5682 files in 49.910 seconds, 60.00 MB memory used
What's next:
Try Docker Debug for seamless, persistent debugging tools in any container or image → docker debug docker_lamp_1
Learn more at [URL_WITH_CREDENTIALS] ~/jiminny/app (JY-20613-allow-owner-role-on-team-setup) $ git pull
remote: Enumerating objects: 248, done.
remote: Counting objects: 100% (128/128), done.
remote: Compressing objects: 100% (23/23), done.
remote: Total 59 (delta 43), reused 44 (delta 33), pack-reused 0 (from 0)
Unpacking objects: 100% (59/59), 10.48 KiB | 228.00 KiB/s, done.
From github.com:jiminny/app
b7df560451..190239dfd4 JY-20613-allow-owner-role-on-team-setup -> origin/JY-20613-allow-owner-role-on-team-setup
e0351be069..d94a285ae7 JY-20808-low-priority-indexing-queue -> origin/JY-20808-low-priority-indexing-queue
* [new branch] JY-20920-fix-participant-matcher -> origin/JY-20920-fix-participant-matcher
cb4ebf0c36..90bca4e4b2 master -> origin/master
Merge made by the 'ort' strategy.
app/Component/ES/ChunkSize.php | 54 +++++++++++++++++++++++++++
app/Component/ES/Processor/DTOs/SelectionList.php | 4 +-
app/Component/ES/Processor/TargetEntitiesSelector.php | 19 ++++++----
app/Http/Middleware/McpTierMiddleware.php | 27 +++-----------
app/Mcp/Servers/JiminnyServer.php | 2 +
app/Mcp/Tools/GetMeTool.php | 157 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
app/Models/Feature/FeatureEnum.php | 1 +
database/migrations/2026_05_13_124153_create_mcp_feature_flag.php | 25 +++++++++++++
front-end/src/components/Settings/Kiosk/modals/EditTeamModal/EditTeamModal.vue | 52 ++++++++++++++++++--------
front-end/src/components/Settings/Kiosk/modals/EditTeamModal/__tests__/EditTeamModal.spec.js | 14 +++++++
tests/Feature/Mcp/GetMeToolFeatureTest.php | 140 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
tests/Feature/Mcp/ListCallsToolFeatureTest.php | 2 +-
tests/Feature/Mcp/McpTestHelpersTrait.php | 19 +++++++++-
tests/Unit/Component/ES/ChunkSizeTest.php | 50 +++++++++++++++++++++++++
tests/Unit/Component/ES/Processor/DTOs/SelectionListTest.php | 27 ++++++++++----
tests/Unit/Component/ES/Processor/TargetEntitiesSelectorTest.php | 39 +++++++++++---------
16 files changed, 557 insertions(+), 75 deletions(-)
create mode 100644 app/Component/ES/ChunkSize.php
create mode 100644 app/Mcp/Tools/GetMeTool.php
create mode 100644 database/migrations/2026_05_13_124153_create_mcp_feature_flag.php
create mode 100644 tests/Feature/Mcp/GetMeToolFeatureTest.php
create mode 100644 tests/Unit/Component/ES/ChunkSizeTest.php
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20613-allow-owner-role-on-team-setup) $ git push
Enumerating objects: 40, done.
Counting objects: 100% (34/34), done.
Delta compression using up to 8 threads
Compressing objects: 100% (18/18), done.
Writing objects: 100% (18/18), 1.58 KiB | 1.58 MiB/s, done.
Total 18 (delta 15), reused 0 (delta 0), pack-reused 0
remote: Resolving deltas: 100% (15/15), completed with 13 local objects.
To github.com:jiminny/app.git
190239dfd4..ec1b261264 JY-20613-allow-owner-role-on-team-setup -> JY-20613-allow-owner-role-on-team-setup
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20613-allow-owner-role-on-team-setup) $ gbr
* JY-20613-allow-owner-role-on-team-setup
pipedrive-sdk-poc
master
JY-20903-update_activity-stage-on-opportunity-change
JY-20904-fix-update-es-on-activity-command
JY-20891-improve-sms-text-relays
JY-20725-handle-HS-search-rate-limit
JY-20818-move-AJ-reports-to-separated-datadog-metric
JY-20773-fix-automated-reports-user-pilot-tracking
JY-20157-AJ-report-not-send-notification
JY-20508-notify-before-AJ-report-expiration
JY-20372-ai-reports-promotion-pages
JY-20352-sync-opportunities-without-a-local-owner-user-id-is-null
JY-20738-debug-AJ-tracking-UP
a
JY-18909-automated-reports-ask-jiminny
JY-20692-fix-integration-app-[API_KEY]
JY-20553-debug-crm-sync-delays
JY-20698-fix-SF-activity-types-on-new-playbook
JY-20543-AJ-report-tracking
JY-20384-handle-auto-sync-with-no-access-to-event-type
JY-20458-ask-jiminny-user-definitions
JY-19666-fix-import-contacts-account-association
JY-19666-HS-import-contacts-and-accounts-batch-job
JY-20458-Ask-Jiminny-Reports
JY-20200-batch-update-CRM-objects-Salesforce
JY-19666-HS-webhooks-add-contact-and-company
JY-20348-trigger-setup-DI-layout-on-team-creation
JY-20326-refactor-info-message-in-command
JY-20317-fix-auto-log-delay-issue-on-all-channels-disabled
JY-20312-remove-on-update-change-last-synced-at-crm-configurations
JY-20306-SF-skip-auto-sync-for-task-based-playbook
JY-20192-remove-deleted-team-from-saved-search-filters
JY-20197-import-opportunity-batch-job
JY-20293-enable-status-field-for-pipedrive-deals
JY-20191-remove-commands-interactive-prompts
JY-20118-change-default-sync-strategy
JY-20183-add-cache-on-auto-log-delay
JY-20197-add-import-opportunity-batch-job
20118-hs-opportunity-make-webhook-strategy-default
JY-20118-make-default-hs-opportunity-sync-strategy-webhook-based
JY-20196-handle-opportunity-without-note
JY-20118-improve-opportunity-import
JY-20189-handle-activity-search-on-deleted-groups
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20613-allow-owner-role-on-team-setup) $ co JY-20725-handle-HS-search-rate-limit
M .env.local
M config/logging.php
Switched to branch 'JY-20725-handle-HS-search-rate-limit'
Your branch is behind 'origin/JY-20725-handle-HS-search-rate-limit' by 439 commits, and can be fast-forwarded.
(use "git pull" to update your local branch)
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20725-handle-HS-search-rate-limit) $ git pull
Updating 0f3e438941..bc6a3fce6b
Fast-forward
.gitignore | 3 +-
.windsurfrules | 168 ++---
CLAUDE.md | 1 +
app/Component/ActivityAnalytics/Service/CalculateTalkTimeOffsetsFromTranscription.php | 24 +-
app/Component/AiActivityType/Services/AiActivityTypeEligibilityChecker.php | 28 +-
app/Component/AiAutomation/Actions/PrepareUpdateDtoAction.php | 32 +-
app/Component/AiAutomation/Services/CrmFillingEligibilityChecker.php | 47 ++
app/Component/AiAutomation/TestCrmAiPromptService.php | 14 +
app/Component/AiCallScoring/Services/AiCallScoringEligibilityChecker.php | 9 +
app/Component/ES/ElasticSearchDocumentPartialUpdater.php | 13 +-
app/Component/ES/ElasticSearchWorkerManager.php | 86 ---
app/Component/ES/Processor/Actions/LoadDocumentsAction.php | 80 +--
app/Component/ES/Processor/EntityQueryBuilder.php | 12 +-
app/Component/ES/Processor/TargetEntitiesSelector.php | 2 +-
app/Component/ES/Processor/Traits/SkipActivityTrait.php | 25 -
app/Component/ES/Repositories/EsResetActivityRepository.php | 11 +-
app/Component/ES/Worker/ActivityWorker.php | 73 --
app/Component/ES/Worker/EntityWorker.php | 44 --
app/Component/ES/Worker/WorkerAmount.php | 60 --
app/Component/ES/Worker/WorkerInterface.php | 15 -
app/Component/ElasticSearch/Contract/Searchable.php | 4 +
app/Component/Encoding/Job/AnalyzeTrackChannelsJob.php | 20 +-
app/Component/Encoding/Service/GenerateSpeechFromSilenceService.php | 85 ++-
app/Component/FFMpeg/Services/GetSpeechIntervalsService.php | 18 +-
app/Component/LanguageDetection/Services/FindSpeechTimeService.php | 22 +-
app/Component/Nudge/Job/ProcessOrganisationImmediateNudgesJob.php | 218 +++++-
app/Component/ParagraphBreaker/Services/TranscriptionParagraphsService.php | 4 +
app/Component/ParticipantSpeech/Services/ParticipantSpeechesCreator.php | 33 +
app/Component/ParticipantSpeech/Services/ParticipantSpeechesDeleter.php | 15 +
app/Component/ParticipantSpeech/Services/ParticipantSpeechesProvider.php | 51 +-
app/Component/ParticipantSpeech/Services/ParticipantSpeechesUploader.php | 36 +
app/Component/ProphetAi/Exceptions/InsufficientTranscriptException.php | 11 +
app/Component/Transcription/DTO/Http/Transcription/AssemblyAI/AssemblyAI/NoAssemblyIdException.php | 11 +
app/Component/Transcription/DTO/Http/Transcription/AssemblyAI/AssemblyAI/SuccessfulResponse.php | 6 +
app/Component/Transcription/DTO/Http/Transcription/TranscriptionIsNotCorrectFormatException.php | 11 +
app/Component/Transcription/Diarization/Services/GetNormalizedParticipantSpeechesService.php | 23 +-
app/Component/Transcription/Diarization/Source/MeetingBotSource.php | 16 +-
app/Component/Transcription/TranscriptionProcessor/TranscriptionProcessor.php | 3 +
app/Console/Commands/Activities/ActivityHardDeleteCommand.php | 4 +-
app/Console/Commands/Activities/Copy.php | 2 +
app/Console/Commands/Activities/SetupIntegration/TwilioSetS3RecordingCredentialsCommand.php | 119 ++++
app/Console/Commands/Activities/UpdateActivityElasticSearchDocumentCommand.php | 10 +-
app/Console/Commands/Crm/BackfillOpportunityUserFromAccountCommand.php | 126 ++++
app/Console/Commands/Elasticsearch/AsyncUpdateEsActivities.php | 19 -
app/Console/Commands/Elasticsearch/AsyncUpdateEsEntities.php | 50 +-
app/Console/Commands/Elasticsearch/ResetAsyncElasticSearchCommand.php | 30 +-
app/Console/Commands/GeckoExport/GeckoExportParticipantSpeechesCommand.php | 14 +-
app/Console/Commands/IssueMcpTokenCommand.php | 84 +++
app/Console/Commands/JiminnyDebugCommand.php | 7 +-
app/Console/Commands/Tracks/CleanupActivityTracksCommand.php | 2 +-
app/Console/Kernel.php | 6 +-
app/Contracts/Services/Calendar/CalendarTrait.php | 80 ++-
app/Events/AutomatedReports/AutomatedReportGenerated.php | 3 +
app/Http/Controllers/API/AiCallScoring/AiScorecardController.php | 7 +-
app/Http/Controllers/API/TeamAiAutomationController.php | 8 +
app/Http/Controllers/CustomerApi/CustomerApiController.php | 4 +-
app/Http/Controllers/Kiosk/ActivityController.php | 58 +-
app/Http/Controllers/Settings/PlaybookController.php | 15 +-
app/Http/Kernel.php | 23 +
app/Http/Middleware/McpAuditMiddleware.php | 156 ++++
app/Http/Middleware/McpTierMiddleware.php | 54 ++
app/Http/Requests/API/V2/ZapierUploadActivityRequest.php | 28 +-
app/Jobs/Activity/Import/ImportTwilioVideoSpeechesJob.php | 25 +-
app/Jobs/Activity/Import/IsActivityReadyForProcessingJob.php | 10 +-
app/Jobs/Calendar/SetupCalendarSync.php | 21 +-
app/Jobs/ImportRemoteTrackJob.php | 96 ++-
app/Jobs/Mailbox/EmailTextRelay.php | 15 +-
app/Mcp/Contracts/McpCallRepositoryInterface.php | 30 +
app/Mcp/DTO/ListCallsFilters.php | 29 +
app/Mcp/Errors/McpError.php | 123 ++++
app/Mcp/Repositories/McpActivityHydrator.php | 145 ++++
app/Mcp/Repositories/McpCallRepository.php | 84 +++
app/Mcp/Repositories/McpElasticCallRepository.php | 171 +++++
app/Mcp/Servers/JiminnyServer.php | 38 +
app/Mcp/Tools/ListCallsTool.php | 205 ++++++
app/Models/Activity.php | 10 +-
app/Models/Activity/Transcription.php | 17 +-
app/Models/ElasticSearch/OpportunityElasticSearchTrait.php | 5 +
app/Models/Participant.php | 1 +
app/Providers/AppServiceProvider.php | 22 +
app/Repositories/Crm/ContactRepository.php | 69 +-
app/Repositories/ParticipantSpeechRepository.php | 13 +-
app/Services/Activity/ParticipantsService.php | 19 +-
app/Services/Activity/Twilio/S3RecordingCredentialsService.php | 82 +++
app/Services/ActivityService.php | 21 +-
app/Services/Calendar/CalendarActivityService.php | 46 ++
app/Services/Calendar/Command/ImportParticipants.php | 1 +
app/Services/Calendar/Command/MapActivityData.php | 106 +--
app/Services/Calendar/GoogleCalendarService.php | 12 +-
app/Services/Crm/Close/Processor/OpportunityProcessor.php | 2 +-
app/Services/Crm/Close/Service.php | 22 +-
app/Services/Crm/Copper/Service.php | 12 +-
app/Services/Crm/Hubspot/Service.php | 154 +++-
app/Services/Crm/Hubspot/ServiceTraits/OpportunitySyncTrait.php | 88 ++-
app/Services/Crm/IntegrationApp/ServiceTraits/SyncCrmEntitiesTrait.php | 22 +-
app/Services/Crm/Pipedrive/Service.php | 17 +-
app/Services/Crm/Salesforce/Service.php | 42 +-
app/Services/Mail/Office/EmailApiClient.php | 129 +---
app/Services/RecallAI/Commands/ScheduleBotCommand.php | 39 +-
app/Services/RecallAI/RecallAIService.php | 22 +-
composer.json | 3 +-
composer.lock | 87 ++-
config/mcp.php | 23 +
database/migrations/2026_04_30_120000_create_mcp_audit_log_table.php | 36 +
docs/mcp/explorer/explorer.html | 697 ++++++++++++++++++
docs/mcp/explorer/explorer.template.html | 697 ++++++++++++++++++
docs/mcp/explorer/generate.js | 215 ++++++
docs/mcp/explorer/tool-explorer-meta.json | 11 +
docs/mcp/tools-list.json | 2536 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
docs/mcp/tools.md | 621 ++++++++++++++++
front-end/package.json | 4 +-
front-end/src/components/Settings/OrgSettings/AiAutomation/CrmFilling/TemplateFieldForm.vue | 28 +-
front-end/src/components/Settings/OrgSettings/Playbooks/AddEditPlaybook.vue | 10 +
front-end/src/components/playback/comments/ActivityComment.less | 10 +-
front-end/src/components/shared/PromptTester/PromptTester.vue | 12 +-
front-end/src/components/shared/__tests__/PromptTester.spec.js | 35 +
front-end/src/components/shared/modals/EntityPickerModal/__tests__/useEntitiesCache.spec.ts | 37 +
front-end/src/components/shared/modals/EntityPickerModal/useEntitiesCache.ts | 9 +
front-end/yarn.lock | 16 +-
phpstan-baseline.neon | 50 --
routes/api.php | 11 +
sonar-project.properties | 91 ++-
tests/Feature/Component/Nudge/ProcessOrganisationImmediateNudgesJobTest.php | 534 ++++++++++++++
tests/Feature/Jobs/ImportRemoteTrackJobTest.php | 283 +++++++-
tests/Feature/Mcp/IssueMcpTokenCommandTest.php | 53 ++
tests/Feature/Mcp/ListCallsToolElasticFeatureTest.php | 155 ++++
tests/Feature/Mcp/ListCallsToolFeatureTest.php | 352 ++++++++++
tests/Feature/Mcp/McpTestHelpersTrait.php | 77 ++
tests/Feature/Services/Team/TeamDeleteHandlers/Retention/RetentionRepositoryHandlerTest.php | 1 +
tests/Stubs/SentryStub.php | 18 +
tests/Unit/Component/ActivityAnalytics/Service/CalculateTalkTimeOffsetFromTranscriptionTest.php | 28 +-
tests/Unit/Component/AiActivityType/Services/AiActivityTypeEligibilityCheckerTest.php | 103 ++-
tests/Unit/Component/AiAutomation/Actions/PrepareUpdateDtoActionTest.php | 91 +++
tests/Unit/Component/AiAutomation/Services/CrmFillingEligibilityCheckerTest.php | 124 ++++
tests/Unit/Component/AiAutomation/TestCrmAiPromptServiceTest.php | 67 +-
tests/Unit/Component/AiCallScoring/Services/AiCallScoringEligibilityCheckerTest.php | 55 ++
tests/Unit/Component/ES/ElasticSearchWorkerManagerTest.php | 135 ----
tests/Unit/Component/ES/Processor/Actions/LoadDocumentsActionTest.php | 220 ++++++
tests/Unit/Component/ES/Processor/EntityQueryBuilderTest.php | 21 +-
tests/Unit/Component/ES/Processor/Traits/SkipActivityTraitTest.php | 51 --
tests/Unit/Component/ES/Worker/ActivityWorkerTest.php | 174 -----
tests/Unit/Component/ES/Worker/EntityWorkerTest.php | 97 ---
tests/Unit/Component/ES/Worker/WorkerAmountTest.php | 116 ---
tests/Unit/Component/Encoding/Job/AnalyzeTrackChannelsJobTest.php | 52 +-
tests/Unit/Component/Encoding/Service/GenerateSpeechFromSilenceServiceTest.php | 171 ++---
tests/Unit/Component/FFMpeg/Services/GetSpeechIntervalsTest.php | 36 +-
tests/Unit/Component/LanguageDetection/Services/FindSpeechTimeServiceTest.php | 20 +-
tests/Unit/Component/MobileSettings/MobileSettingsControllerTest.php | 5 +-
tests/Unit/Component/ParticipantSpeech/Services/ParticipantSpeechesCreatorTest.php | 75 ++
tests/Unit/Component/ParticipantSpeech/Services/ParticipantSpeechesDeleterTest.php | 63 ++
tests/Unit/Component/ParticipantSpeech/Services/ParticipantSpeechesProviderTest.php | 134 ++++
tests/Unit/Component/ParticipantSpeech/Services/ParticipantSpeechesUploaderTest.php | 57 ++
tests/Unit/Component/Transcription/Diarization/Services/GetNormalizedParticipantSpeechesServiceTest.php | 51 +-
tests/Unit/Component/Transcription/Diarization/Source/MeetingBotSourceTest.php | 29 +-
tests/Unit/Contracts/Services/Calendar/CalendarTraitTest.php | 58 +-
tests/Unit/Http/Controllers/Kiosk/ActivityControllerTest.php | 159 +++++
tests/Unit/Jobs/Activity/Import/ImportTwilioVideoSpeechesJobTest.php | 22 +-
tests/Unit/Jobs/Activity/Import/IsActivityReadyForProcessingJobTest.php | 26 +-
tests/Unit/Jobs/Calendar/SetupCalendarSyncTest.php | 25 -
tests/Unit/Services/Activity/ParticipantsServiceTest.php | 12 +-
tests/Unit/Services/Activity/Twilio/S3RecordingCredentialsServiceTest.php | 180 +++++
tests/Unit/Services/ActivityServiceTest.php | 132 ++++
tests/Unit/Services/Calendar/CalendarActivityServiceTest.php | 150 +++-
tests/Unit/Services/Calendar/Command/ImportParticipantsTest.php | 6 +-
tests/Unit/Services/Calendar/Command/MapActivityDataTest.php | 78 +-
tests/Unit/Services/Calendar/GoogleCalendarServiceTest.php | 116 +++
tests/Unit/Services/Crm/Close/ServiceTest.php | 165 +++++
tests/Unit/Services/Crm/Hubspot/ServiceTest.php | 272 ++++++-
tests/Unit/Services/Crm/Hubspot/ServiceTraits/OpportunitySyncTest.php | 25 +-
tests/Unit/Services/Crm/Hubspot/ServiceTraits/OpportunitySyncTraitMatchActivitiesTest.php | 3 +-
tests/Unit/Services/Crm/IntegrationApp/ServiceTraits/SyncCrmEntitiesTraitOpportunitiesTest.php | 40 ++
tests/Unit/Services/Crm/Pipedrive/ImportOpportunityMatchActivitiesTest.php | 2 +
tests/Unit/Services/Crm/Salesforce/ServiceTest.php | 139 ++++
tests/Unit/Services/Mail/Office/EmailApiClientTest.php | 195 ++---
tests/Unit/Services/RecallAI/RecallAIServiceTest.php | 24 +-
175 files changed, 12562 insertions(+), 2162 deletions(-)
create mode 120000 CLAUDE.md
create mode 100644 app/Component/AiAutomation/Services/CrmFillingEligibilityChecker.php
delete mode 100644 app/Component/ES/ElasticSearchWorkerManager.php
delete mode 100644 app/Component/ES/Processor/Traits/SkipActivityTrait.php
delete mode 100644 app/Component/ES/Worker/ActivityWorker.php
delete mode 100644 app/Component/ES/Worker/EntityWorker.php
delete mode 100644 app/Component/ES/Worker/WorkerAmount.php
delete mode 100644 app/Component/ES/Worker/WorkerInterface.php
create mode 100644 app/Component/ProphetAi/Exceptions/InsufficientTranscriptException.php
create mode 100644 app/Component/Transcription/DTO/Http/Transcription/AssemblyAI/AssemblyAI/NoAssemblyIdException.php
create mode 100644 app/Component/Transcription/DTO/Http/Transcription/TranscriptionIsNotCorrectFormatException.php
create mode 100644 app/Console/Commands/Activities/SetupIntegration/TwilioSetS3RecordingCredentialsCommand.php
create mode 100644 app/Console/Commands/Crm/BackfillOpportunityUserFromAccountCommand.php
delete mode 100644 app/Console/Commands/Elasticsearch/AsyncUpdateEsActivities.php
create mode 100644 app/Console/Commands/IssueMcpTokenCommand.php
create mode 100644 app/Http/Middleware/McpAuditMiddleware.php
create mode 100644 app/Http/Middleware/McpTierMiddleware.php
create mode 100644 app/Mcp/Contracts/McpCallRepositoryInterface.php
create mode 100644 app/Mcp/DTO/ListCallsFilters.php
create mode 100644 app/Mcp/Errors/McpError.php
create mode 100644 app/Mcp/Repositories/McpActivityHydrator.php
create mode 100644 app/Mcp/Repositories/McpCallRepository.php
create mode 100644 app/Mcp/Repositories/McpElasticCallRepository.php
create mode 100644 app/Mcp/Servers/JiminnyServer.php
create mode 100644 app/Mcp/Tools/ListCallsTool.php
create mode 100644 app/Services/Activity/Twilio/S3RecordingCredentialsService.php
create mode 100644 config/mcp.php
create mode 100644 database/migrations/2026_04_30_120000_create_mcp_audit_log_table.php
create mode 100644 docs/mcp/explorer/explorer.html
create mode 100644 docs/mcp/explorer/explorer.template.html
create mode 100644 docs/mcp/explorer/generate.js
create mode 100644 docs/mcp/explorer/tool-explorer-meta.json
create mode 100644 docs/mcp/tools-list.json
create mode 100644 docs/mcp/tools.md
create mode 100644 front-end/src/components/shared/modals/EntityPickerModal/__tests__/useEntitiesCache.spec.ts
create mode 100644 tests/Feature/Component/Nudge/ProcessOrganisationImmediateNudgesJobTest.php
create mode 100644 tests/Feature/Mcp/IssueMcpTokenCommandTest.php
create mode 100644 tests/Feature/Mcp/ListCallsToolElasticFeatureTest.php
create mode 100644 tests/Feature/Mcp/ListCallsToolFeatureTest.php
create mode 100644 tests/Feature/Mcp/McpTestHelpersTrait.php
create mode 100644 tests/Stubs/SentryStub.php
create mode 100644 tests/Unit/Component/AiAutomation/Services/CrmFillingEligibilityCheckerTest.php
delete mode 100644 tests/Unit/Component/ES/ElasticSearchWorkerManagerTest.php
create mode 100644 tests/Unit/Component/ES/Processor/Actions/LoadDocumentsActionTest.php
delete mode 100644 tests/Unit/Component/ES/Processor/Traits/SkipActivityTraitTest.php
delete mode 100644 tests/Unit/Component/ES/Worker/ActivityWorkerTest.php
delete mode 100644 tests/Unit/Component/ES/Worker/EntityWorkerTest.php
delete mode 100644 tests/Unit/Component/ES/Worker/WorkerAmountTest.php
create mode 100644 tests/Unit/Component/ParticipantSpeech/Services/ParticipantSpeechesCreatorTest.php
create mode 100644 tests/Unit/Http/Controllers/Kiosk/ActivityControllerTest.php
create mode 100644 tests/Unit/Services/Activity/Twilio/S3RecordingCredentialsServiceTest.php
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20725-handle-HS-search-rate-limit) $ git status
On branch master
Your branch is behind 'origin/master' by 114 commits, and can be fast-forwarded.
(use "git pull" to update your local branch)
Changes not staged for commit:
(use "git add <file>..." to update what will be committed)
(use "git restore <file>..." to discard changes in working directory)
modified: .env.local
modified: app/Component/SCIM/Constants.php
modified: app/Component/SCIM/ScimProvisioning.php
modified: app/Component/Twilio/Conference/ConferenceManager/SoftPhoneManager.php
modified: app/Console/Commands/JiminnyDebugCommand.php
modified: app/DTO/SCIM/AAD/Request/CoreUserRequest.php
modified: app/DTO/SCIM/AAD/Response/CoreUser.php
modified: app/Services/Telephony/TextMessagingService.php
modified: config/logging.php
Untracked files:
(use "git add <file>..." to include in what will be committed)
.env.nikilocal
.env.other
WEBHOOK_FILTERING_IMPLEMENTATION.md
app/Component/SCIM/Mutators/Attributes/User/RoleAttr.php
app/Console/Commands/Crm/Hubspot/SimulateWebhooksCommand.php
app/Console/Commands/Reports/CreateMockAskJiminnyReportResultCommand.php
app/Rules/ListenerRoleCannotHaveAdminOrManagerPermissionRule.php
ids.txt
public/favicon.ico
raw_sql_query.sql
tests/Unit/Component/SCIM/Mutators/Attributes/User/RoleAttrTest.php
tests/Unit/Policies/CanAccessAiReportsTest.php
tests/Unit/Rules/ListenerRoleCannotHaveAdminOrManagerPermissionRuleTest.php
no changes added to commit (use "git add" and/or "git commit -a")
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (master) $ git pull
remote: Enumerating objects: 306, done.
remote: Counting objects: 100% (299/299), done.
remote: Compressing objects: 100% (183/183), done.
remote: Total 306 (delta 213), reused 171 (delta 116), pack-reused 7 (from 1)
Receiving objects: 100% (306/306), 80.12 KiB | 1000.00 KiB/s, done.
Resolving deltas: 100% (213/213), completed with 53 local objects.
From github.com:jiminny/app
90bca4e4b2..5604af40cf master -> origin/master
4e7078fd8b..0b8343d179 JY-18091-upgrade-to-php-8-5 -> origin/JY-18091-upgrade-to-php-8-5
098eeaa087..d5a447e492 JY-20613-allow-owner-role-on-team-setup -> origin/JY-20613-allow-owner-role-on-team-setup
c3a76ace91..af65249d0f JY-20749-user-can-view-recorded-meetings -> origin/JY-20749-user-can-view-recorded-meetings
d94a285ae7..7ce96cb5fe JY-20808-low-priority-indexing-queue -> origin/JY-20808-low-priority-indexing-queue
* [new branch] JY-20842-remove-partial-updater -> origin/JY-20842-remove-partial-updater
* [new branch] JY-20920-fix-participant-flip -> origin/JY-20920-fix-participant-flip
* [new branch] secfix/npm-20260519 -> origin/secfix/npm-20260519
Updating cb4ebf0c36..5604af40cf
Fast-forward
app/Component/ES/ChunkSize.php | 54 +++++++++++++++++++
app/Component/ES/Processor/DTOs/SelectionList.php | 4 +-
app/Component/ES/Processor/TargetEntitiesSelector.php | 19 ++++---
app/Component/MeetingBot/Service/ParticipantMatcher.php | 46 ++++++++++++----
app/Exceptions/RateLimitException.php | 19 ++++++-
app/Http/Middleware/McpTierMiddleware.php | 27 ++--------
app/Jobs/Crm/MatchActivityCrmData.php | 47 ++++++++++++----
app/Jobs/Middleware/HandleHubspotRateLimit.php | 42 +++++++++++++++
app/Mcp/Servers/JiminnyServer.php | 2 +
app/Mcp/Tools/GetMeTool.php | 157 +++++++++++++++++++++++++++++++++++++++++++++++++++++
app/Models/Feature/FeatureEnum.php | 1 +
app/Services/Activity/HubSpot/ProviderResolver.php | 4 +-
app/Services/Activity/HubSpot/ProviderResolverInterface.php | 2 +-
app/Services/Activity/HubSpot/Providers/Provider.php | 2 +-
app/Services/Activity/HubSpot/Providers/ProviderKixie.php | 2 +-
app/Services/Activity/HubSpot/Providers/ProviderOrum.php | 2 +-
app/Services/Activity/HubSpot/Providers/ProviderTwilio.php | 2 +-
app/Services/Activity/HubSpot/Providers/ProviderTwilioFlex.php | 5 +-
app/Services/Activity/HubSpot/Service.php | 97 +++++++++++++++++++++++++++------
app/Services/Crm/Hubspot/Client.php | 132 +++++++++++++++++++++++++++++++++++++++++++++
app/Services/Crm/Hubspot/HubspotClientInterface.php | 15 ++++++
app/Services/Crm/Hubspot/Pagination/HubspotPaginationService.php | 21 ++++----
app/Services/Crm/Hubspot/Pagination/PaginationState.php | 2 +-
database/migrations/2026_05_13_124153_create_mcp_feature_flag.php | 25 +++++++++
tests/Feature/Mcp/GetMeToolFeatureTest.php | 140 +++++++++++++++++++++++++++++++++++++++++++++++
tests/Feature/Mcp/ListCallsToolFeatureTest.php | 2 +-
tests/Feature/Mcp/McpTestHelpersTrait.php | 19 ++++++-
tests/Unit/Component/ES/ChunkSizeTest.php | 50 +++++++++++++++++
tests/Unit/Component/ES/Processor/DTOs/SelectionListTest.php | 27 +++++++---
tests/Unit/Component/ES/Processor/TargetEntitiesSelectorTest.php | 39 ++++++++------
tests/Unit/Component/MeetingBot/Service/ParticipantMatcherTest.php | 68 ++++++++++++++++++++++-
tests/Unit/Exceptions/RateLimitExceptionTest.php | 56 +++++++++++++++++++
tests/Unit/Jobs/Crm/MatchActivityCrmDataTest.php | 8 +--
tests/Unit/Jobs/Middleware/HandleHubspotRateLimitTest.php | 151 +++++++++++++++++++++++++++++++++++++++++++++++++++
tests/Unit/Services/Activity/HubSpot/ServiceTest.php | 109 +++++++++++++++++++++++++++++++++++++
tests/Unit/Services/Crm/Hubspot/ClientTest.php | 250 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
tests/Unit/Services/Crm/Hubspot/Pagination/HubspotPaginationServiceTest.php | 283 +++++++++++++++++++++---------------------------------------------------------------------------
37 files changed, 1587 insertions(+), 344 deletions(-)
create mode 100644 app/Component/ES/ChunkSize.php
create mode 100644 app/Jobs/Middleware/HandleHubspotRateLimit.php
create mode 100644 app/Mcp/Tools/GetMeTool.php
create mode 100644 database/migrations/2026_05_13_124153_create_mcp_feature_flag.php
create mode 100644 tests/Feature/Mcp/GetMeToolFeatureTest.php
create mode 100644 tests/Unit/Component/ES/ChunkSizeTest.php
create mode 100644 tests/Unit/Exceptions/RateLimitExceptionTest.php
create mode 100644 tests/Unit/Jobs/Middleware/HandleHubspotRateLimitTest.php
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (master) $ git pull
Already up to date.
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (master) $ co -b JY-20676-delete-report-related-objects
Switched to a new branch 'JY-20676-delete-report-related-objects'
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20676-delete-report-related-objects) $ csfix
docker exec -it docker_lamp_1 ./vendor/bin/php-cs-fixer fix --config=.php-cs-fixer.dist.php -v --using-cache=no --diff
PHP CS Fixer 3.87.1 Alexander by Fabien Potencier, Dariusz Ruminski and contributors.
PHP runtime: 8.3.30
Running 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!
Loaded config default from ".php-cs-fixer.dist.php".
5690/5690 [▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓] 100%
1) app/Console/Commands/JiminnyDebugCommand.php (statement_indentation, blank_line_before_statement)
---------- begin diff ----------
--- /home/jiminny/app/Console/Commands/JiminnyDebugCommand.php
+++ /home/jiminny/app/Console/Commands/JiminnyDebugCommand.php
@@ -23,6 +23,7 @@
if ($action === 'redis-set') {
$this->testRedisSet();
+
return;
}
@@ -45,7 +46,7 @@
$ttl = 60;
try {
-// $result = Redis::set($testKey, $testValue, 'EX', $ttl, 'NX');
+ // $result = Redis::set($testKey, $testValue, 'EX', $ttl, 'NX');
$result = Redis::set($testKey, $testValue, ['nx', 'ex' => $ttl]);
if ($result) {
----------- end diff -----------
Fixed 1 of 5690 files i...
|
[{"role":"AXTextArea","text [{"role":"AXTextArea","text":"Last login: Mon May 18 09:17:28 on ttys007\n\nPoetry could not find a pyproject.toml file in /Users/lukas/jiminny/app or its parents\n\nPoetry could not find a pyproject.toml file in /Users/lukas/jiminny/app or its parents\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (pipedrive-sdk-poc) $ co master\nerror: Your local changes to the following files would be overwritten by checkout:\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tPIPEDRIVE_V2_MIGRATION_TICKETS.md\nPlease commit your changes or stash them before you switch branches.\nAborting\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (pipedrive-sdk-poc) $ git pull\nremote: Enumerating objects: 1047, done.\nremote: Counting objects: 100% (832/832), done.\nremote: Compressing objects: 100% (298/298), done.\nremote: Total 1047 (delta 634), reused 596 (delta 534), pack-reused 215 (from 3)\nReceiving objects: 100% (1047/1047), 353.16 KiB | 1.56 MiB/s, done.\nResolving deltas: 100% (687/687), completed with 107 local objects.\nFrom github.com:jiminny/app\n 907c54896c..34656c53ed pipedrive-sdk-poc -> origin/pipedrive-sdk-poc\n 03325ec50f..4e7078fd8b JY-18091-upgrade-to-php-8-5 -> origin/JY-18091-upgrade-to-php-8-5\n e7d231e163..bc6a3fce6b JY-20725-handle-HS-search-rate-limit -> origin/JY-20725-handle-HS-search-rate-limit\n * [new branch] JY-20749-user-can-view-recorded-meetings -> origin/JY-20749-user-can-view-recorded-meetings\n 98ca281a04..e0351be069 JY-20808-low-priority-indexing-queue -> origin/JY-20808-low-priority-indexing-queue\n 569abb5149..3906a9238a JY-20835-mcp-enable-users-to-get-a-list-of-deals-and-their-details -> origin/JY-20835-mcp-enable-users-to-get-a-list-of-deals-and-their-details\n ad6c2a86e8..50eb6afba9 JY-20846-mcp-enable-the-ai-to-know-details-about-the-user -> origin/JY-20846-mcp-enable-the-ai-to-know-details-about-the-user\n * [new branch] JY-20893-chunk-control-per-update-target -> origin/JY-20893-chunk-control-per-update-target\n 31c62924a5..cb4ebf0c36 master -> origin/master\nUpdating 907c54896c..34656c53ed\nFast-forward\n PIPEDRIVE_V2_MIGRATION_TICKETS.md | 52 ++++++++++++++++++++++++++++++++++++++++++++++++++++\n 1 file changed, 52 insertions(+)\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (pipedrive-sdk-poc) $ co master\nM\u0000\u0000\u0000\u0000\u0000\u0000\t.env.local\nM\u0000\u0000\u0000\u0000\u0000\u0000\tconfig/logging.php\nSwitched to branch 'master'\nYour branch is behind 'origin/master' by 31 commits, and can be fast-forwarded.\n (use \"git pull\" to update your local branch)\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (master) $ git pull\nUpdating 31c62924a5..cb4ebf0c36\nFast-forward\n app/Component/ES/Processor/Traits/SelectEntityListTrait.php | 20 ------\n app/Services/Calendar/CalendarActivityService.php | 46 +++++++++++++\n app/Services/Calendar/Command/MapActivityData.php | 106 +++-------------------------\n docs/mcp/explorer/explorer.html | 104 +++++++++++++++++++++++++---\n docs/mcp/explorer/explorer.template.html | 102 ++++++++++++++++++++++++---\n docs/mcp/tools-list.json | 373 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++-------\n docs/mcp/tools.md | 117 +++++++++++++++++++++++--------\n tests/Unit/Component/ES/AsyncUpdateElasticSearchTest.php | 16 +----\n tests/Unit/Component/ES/Listeners/UpdateMultipleTargetsListenerTest.php | 10 ---\n tests/Unit/Component/ES/Listeners/UpdateSingleTargetListenerTest.php | 6 --\n tests/Unit/Component/ES/Processor/TargetEntitiesSelectorTest.php | 9 ---\n tests/Unit/Component/ES/Processor/Traits/SelectEntityListTraitTest.php | 15 ++--\n tests/Unit/Component/ES/UpdateProcessManagerTest.php | 2 -\n tests/Unit/Services/Calendar/CalendarActivityServiceTest.php | 150 ++++++++++++++++++++++++++++++++++++++--\n tests/Unit/Services/Calendar/Command/MapActivityDataTest.php | 78 ++-------------------\n 15 files changed, 832 insertions(+), 322 deletions(-)\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (master) $ co -b JY-20613-allow-owner-role-on-team-setup\nSwitched to a new branch 'JY-20613-allow-owner-role-on-team-setup'\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20613-allow-owner-role-on-team-setup) $ csfix\ndocker exec -it docker_lamp_1 ./vendor/bin/php-cs-fixer fix --config=.php-cs-fixer.dist.php -v --using-cache=no --diff \nPHP CS Fixer 3.87.1 Alexander by Fabien Potencier, Dariusz Ruminski and contributors.\nPHP runtime: 8.3.30\nRunning analysis on 7 cores with 10 files per process.\nParallel runner is an experimental feature and may be unstable, use it at your own risk. Feedback highly appreciated!\nLoaded config default from \".php-cs-fixer.dist.php\".\n 5682/5682 [▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓] 100%\n\n\nFixed 0 of 5682 files in 56.978 seconds, 67.00 MB memory used\n\nWhat's next:\n Try Docker Debug for seamless, persistent debugging tools in any container or image → docker debug docker_lamp_1\n Learn more at https://docs.docker.com/go/debug-cli/\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20613-allow-owner-role-on-team-setup) $ ;xd\ndocker exec -it docker_lamp_1 bash -c \"mv /usr/local/etc/php/conf.d/xdebug.ini ~/xdebug.ini\"\n\nWhat's next:\n Try Docker Debug for seamless, persistent debugging tools in any container or image → docker debug docker_lamp_1\n Learn more at https://docs.docker.com/go/debug-cli/\ndocker exec -it docker_lamp_1 supervisorctl restart all\njiminny-worker-processing-2:jiminny-worker-processing-2_00: stopped\njiminny-worker-processing-3:jiminny-worker-processing-3_00: stopped\njiminny-worker-processing-4:jiminny-worker-processing-4_00: stopped\njiminny-worker-processing-5:jiminny-worker-processing-5_00: stopped\njiminny-worker-processing-delayed:jiminny-worker-processing-delayed_00: stopped\nworker-analytics:worker-analytics_00: stopped\nworker-crm-update:worker-crm-update_00: stopped\nworker-download:worker-download_00: stopped\nworker-nudges:worker-nudges_00: stopped\nartisan-schedule:artisan-schedule_00: stopped\nworker-emails:worker-emails_00: stopped\nworker-calendar:worker-calendar_00: stopped\nworker:worker_00: stopped\nworker-conferences:worker-conferences_00: stopped\nworker-crm-sync:worker-crm-sync_00: stopped\njiminny-worker-processing-1:jiminny-worker-processing-1_00: stopped\nworker-audio:worker-audio_00: stopped\nworker-es-update:worker-es-update_00: stopped\nartisan-schedule:artisan-schedule_00: started\njiminny-worker-processing-1:jiminny-worker-processing-1_00: started\njiminny-worker-processing-2:jiminny-worker-processing-2_00: started\njiminny-worker-processing-3:jiminny-worker-processing-3_00: started\njiminny-worker-processing-4:jiminny-worker-processing-4_00: started\njiminny-worker-processing-5:jiminny-worker-processing-5_00: started\njiminny-worker-processing-delayed:jiminny-worker-processing-delayed_00: started\nworker:worker_00: started\nworker-analytics:worker-analytics_00: started\nworker-audio:worker-audio_00: started\nworker-calendar:worker-calendar_00: started\nworker-conferences:worker-conferences_00: started\nworker-crm-sync:worker-crm-sync_00: started\nworker-crm-update:worker-crm-update_00: started\nworker-download:worker-download_00: started\nworker-emails:worker-emails_00: started\nworker-es-update:worker-es-update_00: started\nworker-nudges:worker-nudges_00: started\n\nWhat's next:\n Try Docker Debug for seamless, persistent debugging tools in any container or image → docker debug docker_lamp_1\n Learn more at https://docs.docker.com/go/debug-cli/\ndocker exec -it docker_lamp_1 php -v\nPHP 8.3.30 (cli) (built: Mar 16 2026 22:32:32) (NTS)\nCopyright (c) The PHP Group\nZend Engine v4.3.30, Copyright (c) Zend Technologies\n with Zend OPcache v8.3.30, Copyright (c), by Zend Technologies\n\nWhat's next:\n Try Docker Debug for seamless, persistent debugging tools in any container or image → docker debug docker_lamp_1\n Learn more at https://docs.docker.com/go/debug-cli/\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20613-allow-owner-role-on-team-setup) $ csfix\ndocker exec -it docker_lamp_1 ./vendor/bin/php-cs-fixer fix --config=.php-cs-fixer.dist.php -v --using-cache=no --diff \nPHP CS Fixer 3.87.1 Alexander by Fabien Potencier, Dariusz Ruminski and contributors.\nPHP runtime: 8.3.30\nRunning analysis on 7 cores with 10 files per process.\nParallel runner is an experimental feature and may be unstable, use it at your own risk. Feedback highly appreciated!\nLoaded config default from \".php-cs-fixer.dist.php\".\n 5682/5682 [▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓] 100%\n\n\nFixed 0 of 5682 files in 49.910 seconds, 60.00 MB memory used\n\nWhat's next:\n Try Docker Debug for seamless, persistent debugging tools in any container or image → docker debug docker_lamp_1\n Learn more at https://docs.docker.com/go/debug-cli/\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20613-allow-owner-role-on-team-setup) $ git status\nOn branch JY-20613-allow-owner-role-on-team-setup\nYour branch is ahead of 'origin/JY-20613-allow-owner-role-on-team-setup' by 1 commit.\n (use \"git push\" to publish your local commits)\n\nChanges not staged for commit:\n (use \"git add <file>...\" to update what will be committed)\n (use \"git restore <file>...\" to discard changes in working directory)\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tmodified: .env.local\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tmodified: config/logging.php\n\nUntracked files:\n (use \"git add <file>...\" to include in what will be committed)\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\t.env.nikilocal\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\t.env.other\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tWEBHOOK_FILTERING_IMPLEMENTATION.md\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tapp/Console/Commands/Crm/Hubspot/SimulateWebhooksCommand.php\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tapp/Console/Commands/Reports/CreateMockAskJiminnyReportResultCommand.php\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tids.txt\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tpublic/favicon.ico\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\traw_sql_query.sql\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\ttests/Unit/Policies/CanAccessAiReportsTest.php\n\nno changes added to commit (use \"git add\" and/or \"git commit -a\")\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20613-allow-owner-role-on-team-setup) $ git pull\nremote: Enumerating objects: 248, done.\nremote: Counting objects: 100% (128/128), done.\nremote: Compressing objects: 100% (23/23), done.\nremote: Total 59 (delta 43), reused 44 (delta 33), pack-reused 0 (from 0)\nUnpacking objects: 100% (59/59), 10.48 KiB | 228.00 KiB/s, done.\nFrom github.com:jiminny/app\n b7df560451..190239dfd4 JY-20613-allow-owner-role-on-team-setup -> origin/JY-20613-allow-owner-role-on-team-setup\n e0351be069..d94a285ae7 JY-20808-low-priority-indexing-queue -> origin/JY-20808-low-priority-indexing-queue\n * [new branch] JY-20920-fix-participant-matcher -> origin/JY-20920-fix-participant-matcher\n cb4ebf0c36..90bca4e4b2 master -> origin/master\nMerge made by the 'ort' strategy.\n app/Component/ES/ChunkSize.php | 54 +++++++++++++++++++++++++++\n app/Component/ES/Processor/DTOs/SelectionList.php | 4 +-\n app/Component/ES/Processor/TargetEntitiesSelector.php | 19 ++++++----\n app/Http/Middleware/McpTierMiddleware.php | 27 +++-----------\n app/Mcp/Servers/JiminnyServer.php | 2 +\n app/Mcp/Tools/GetMeTool.php | 157 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++\n app/Models/Feature/FeatureEnum.php | 1 +\n database/migrations/2026_05_13_124153_create_mcp_feature_flag.php | 25 +++++++++++++\n front-end/src/components/Settings/Kiosk/modals/EditTeamModal/EditTeamModal.vue | 52 ++++++++++++++++++--------\n front-end/src/components/Settings/Kiosk/modals/EditTeamModal/__tests__/EditTeamModal.spec.js | 14 +++++++\n tests/Feature/Mcp/GetMeToolFeatureTest.php | 140 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++\n tests/Feature/Mcp/ListCallsToolFeatureTest.php | 2 +-\n tests/Feature/Mcp/McpTestHelpersTrait.php | 19 +++++++++-\n tests/Unit/Component/ES/ChunkSizeTest.php | 50 +++++++++++++++++++++++++\n tests/Unit/Component/ES/Processor/DTOs/SelectionListTest.php | 27 ++++++++++----\n tests/Unit/Component/ES/Processor/TargetEntitiesSelectorTest.php | 39 +++++++++++---------\n 16 files changed, 557 insertions(+), 75 deletions(-)\n create mode 100644 app/Component/ES/ChunkSize.php\n create mode 100644 app/Mcp/Tools/GetMeTool.php\n create mode 100644 database/migrations/2026_05_13_124153_create_mcp_feature_flag.php\n create mode 100644 tests/Feature/Mcp/GetMeToolFeatureTest.php\n create mode 100644 tests/Unit/Component/ES/ChunkSizeTest.php\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20613-allow-owner-role-on-team-setup) $ git push\nEnumerating objects: 40, done.\nCounting objects: 100% (34/34), done.\nDelta compression using up to 8 threads\nCompressing objects: 100% (18/18), done.\nWriting objects: 100% (18/18), 1.58 KiB | 1.58 MiB/s, done.\nTotal 18 (delta 15), reused 0 (delta 0), pack-reused 0\nremote: Resolving deltas: 100% (15/15), completed with 13 local objects.\nTo github.com:jiminny/app.git\n 190239dfd4..ec1b261264 JY-20613-allow-owner-role-on-team-setup -> JY-20613-allow-owner-role-on-team-setup\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20613-allow-owner-role-on-team-setup) $ gbr\n* JY-20613-allow-owner-role-on-team-setup\n pipedrive-sdk-poc\n master\n JY-20903-update_activity-stage-on-opportunity-change\n JY-20904-fix-update-es-on-activity-command\n JY-20891-improve-sms-text-relays\n JY-20725-handle-HS-search-rate-limit\n JY-20818-move-AJ-reports-to-separated-datadog-metric\n JY-20773-fix-automated-reports-user-pilot-tracking\n JY-20157-AJ-report-not-send-notification\n JY-20508-notify-before-AJ-report-expiration\n JY-20372-ai-reports-promotion-pages\n JY-20352-sync-opportunities-without-a-local-owner-user-id-is-null\n JY-20738-debug-AJ-tracking-UP\n a\n JY-18909-automated-reports-ask-jiminny\n JY-20692-fix-integration-app-token-auth-response-change\n JY-20553-debug-crm-sync-delays\n JY-20698-fix-SF-activity-types-on-new-playbook\n JY-20543-AJ-report-tracking\n JY-20384-handle-auto-sync-with-no-access-to-event-type\n JY-20458-ask-jiminny-user-definitions\n JY-19666-fix-import-contacts-account-association\n JY-19666-HS-import-contacts-and-accounts-batch-job\n JY-20458-Ask-Jiminny-Reports\n JY-20200-batch-update-CRM-objects-Salesforce\n JY-19666-HS-webhooks-add-contact-and-company\n JY-20348-trigger-setup-DI-layout-on-team-creation\n JY-20326-refactor-info-message-in-command\n JY-20317-fix-auto-log-delay-issue-on-all-channels-disabled\n JY-20312-remove-on-update-change-last-synced-at-crm-configurations\n JY-20306-SF-skip-auto-sync-for-task-based-playbook\n JY-20192-remove-deleted-team-from-saved-search-filters\n JY-20197-import-opportunity-batch-job\n JY-20293-enable-status-field-for-pipedrive-deals\n JY-20191-remove-commands-interactive-prompts\n JY-20118-change-default-sync-strategy\n JY-20183-add-cache-on-auto-log-delay\n JY-20197-add-import-opportunity-batch-job\n 20118-hs-opportunity-make-webhook-strategy-default\n JY-20118-make-default-hs-opportunity-sync-strategy-webhook-based\n JY-20196-handle-opportunity-without-note\n JY-20118-improve-opportunity-import\n JY-20189-handle-activity-search-on-deleted-groups\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20613-allow-owner-role-on-team-setup) $ co JY-20725-handle-HS-search-rate-limit\nM\u0000\u0000\u0000\u0000\u0000\u0000\t.env.local\nM\u0000\u0000\u0000\u0000\u0000\u0000\tconfig/logging.php\nSwitched to branch 'JY-20725-handle-HS-search-rate-limit'\nYour branch is behind 'origin/JY-20725-handle-HS-search-rate-limit' by 439 commits, and can be fast-forwarded.\n (use \"git pull\" to update your local branch)\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20725-handle-HS-search-rate-limit) $ git pull\nUpdating 0f3e438941..bc6a3fce6b\nFast-forward\n .gitignore | 3 +-\n .windsurfrules | 168 ++---\n CLAUDE.md | 1 +\n app/Component/ActivityAnalytics/Service/CalculateTalkTimeOffsetsFromTranscription.php | 24 +-\n app/Component/AiActivityType/Services/AiActivityTypeEligibilityChecker.php | 28 +-\n app/Component/AiAutomation/Actions/PrepareUpdateDtoAction.php | 32 +-\n app/Component/AiAutomation/Services/CrmFillingEligibilityChecker.php | 47 ++\n app/Component/AiAutomation/TestCrmAiPromptService.php | 14 +\n app/Component/AiCallScoring/Services/AiCallScoringEligibilityChecker.php | 9 +\n app/Component/ES/ElasticSearchDocumentPartialUpdater.php | 13 +-\n app/Component/ES/ElasticSearchWorkerManager.php | 86 ---\n app/Component/ES/Processor/Actions/LoadDocumentsAction.php | 80 +--\n app/Component/ES/Processor/EntityQueryBuilder.php | 12 +-\n app/Component/ES/Processor/TargetEntitiesSelector.php | 2 +-\n app/Component/ES/Processor/Traits/SkipActivityTrait.php | 25 -\n app/Component/ES/Repositories/EsResetActivityRepository.php | 11 +-\n app/Component/ES/Worker/ActivityWorker.php | 73 --\n app/Component/ES/Worker/EntityWorker.php | 44 --\n app/Component/ES/Worker/WorkerAmount.php | 60 --\n app/Component/ES/Worker/WorkerInterface.php | 15 -\n app/Component/ElasticSearch/Contract/Searchable.php | 4 +\n app/Component/Encoding/Job/AnalyzeTrackChannelsJob.php | 20 +-\n app/Component/Encoding/Service/GenerateSpeechFromSilenceService.php | 85 ++-\n app/Component/FFMpeg/Services/GetSpeechIntervalsService.php | 18 +-\n app/Component/LanguageDetection/Services/FindSpeechTimeService.php | 22 +-\n app/Component/Nudge/Job/ProcessOrganisationImmediateNudgesJob.php | 218 +++++-\n app/Component/ParagraphBreaker/Services/TranscriptionParagraphsService.php | 4 +\n app/Component/ParticipantSpeech/Services/ParticipantSpeechesCreator.php | 33 +\n app/Component/ParticipantSpeech/Services/ParticipantSpeechesDeleter.php | 15 +\n app/Component/ParticipantSpeech/Services/ParticipantSpeechesProvider.php | 51 +-\n app/Component/ParticipantSpeech/Services/ParticipantSpeechesUploader.php | 36 +\n app/Component/ProphetAi/Exceptions/InsufficientTranscriptException.php | 11 +\n app/Component/Transcription/DTO/Http/Transcription/AssemblyAI/AssemblyAI/NoAssemblyIdException.php | 11 +\n app/Component/Transcription/DTO/Http/Transcription/AssemblyAI/AssemblyAI/SuccessfulResponse.php | 6 +\n app/Component/Transcription/DTO/Http/Transcription/TranscriptionIsNotCorrectFormatException.php | 11 +\n app/Component/Transcription/Diarization/Services/GetNormalizedParticipantSpeechesService.php | 23 +-\n app/Component/Transcription/Diarization/Source/MeetingBotSource.php | 16 +-\n app/Component/Transcription/TranscriptionProcessor/TranscriptionProcessor.php | 3 +\n app/Console/Commands/Activities/ActivityHardDeleteCommand.php | 4 +-\n app/Console/Commands/Activities/Copy.php | 2 +\n app/Console/Commands/Activities/SetupIntegration/TwilioSetS3RecordingCredentialsCommand.php | 119 ++++\n app/Console/Commands/Activities/UpdateActivityElasticSearchDocumentCommand.php | 10 +-\n app/Console/Commands/Crm/BackfillOpportunityUserFromAccountCommand.php | 126 ++++\n app/Console/Commands/Elasticsearch/AsyncUpdateEsActivities.php | 19 -\n app/Console/Commands/Elasticsearch/AsyncUpdateEsEntities.php | 50 +-\n app/Console/Commands/Elasticsearch/ResetAsyncElasticSearchCommand.php | 30 +-\n app/Console/Commands/GeckoExport/GeckoExportParticipantSpeechesCommand.php | 14 +-\n app/Console/Commands/IssueMcpTokenCommand.php | 84 +++\n app/Console/Commands/JiminnyDebugCommand.php | 7 +-\n app/Console/Commands/Tracks/CleanupActivityTracksCommand.php | 2 +-\n app/Console/Kernel.php | 6 +-\n app/Contracts/Services/Calendar/CalendarTrait.php | 80 ++-\n app/Events/AutomatedReports/AutomatedReportGenerated.php | 3 +\n app/Http/Controllers/API/AiCallScoring/AiScorecardController.php | 7 +-\n app/Http/Controllers/API/TeamAiAutomationController.php | 8 +\n app/Http/Controllers/CustomerApi/CustomerApiController.php | 4 +-\n app/Http/Controllers/Kiosk/ActivityController.php | 58 +-\n app/Http/Controllers/Settings/PlaybookController.php | 15 +-\n app/Http/Kernel.php | 23 +\n app/Http/Middleware/McpAuditMiddleware.php | 156 ++++\n app/Http/Middleware/McpTierMiddleware.php | 54 ++\n app/Http/Requests/API/V2/ZapierUploadActivityRequest.php | 28 +-\n app/Jobs/Activity/Import/ImportTwilioVideoSpeechesJob.php | 25 +-\n app/Jobs/Activity/Import/IsActivityReadyForProcessingJob.php | 10 +-\n app/Jobs/Calendar/SetupCalendarSync.php | 21 +-\n app/Jobs/ImportRemoteTrackJob.php | 96 ++-\n app/Jobs/Mailbox/EmailTextRelay.php | 15 +-\n app/Mcp/Contracts/McpCallRepositoryInterface.php | 30 +\n app/Mcp/DTO/ListCallsFilters.php | 29 +\n app/Mcp/Errors/McpError.php | 123 ++++\n app/Mcp/Repositories/McpActivityHydrator.php | 145 ++++\n app/Mcp/Repositories/McpCallRepository.php | 84 +++\n app/Mcp/Repositories/McpElasticCallRepository.php | 171 +++++\n app/Mcp/Servers/JiminnyServer.php | 38 +\n app/Mcp/Tools/ListCallsTool.php | 205 ++++++\n app/Models/Activity.php | 10 +-\n app/Models/Activity/Transcription.php | 17 +-\n app/Models/ElasticSearch/OpportunityElasticSearchTrait.php | 5 +\n app/Models/Participant.php | 1 +\n app/Providers/AppServiceProvider.php | 22 +\n app/Repositories/Crm/ContactRepository.php | 69 +-\n app/Repositories/ParticipantSpeechRepository.php | 13 +-\n app/Services/Activity/ParticipantsService.php | 19 +-\n app/Services/Activity/Twilio/S3RecordingCredentialsService.php | 82 +++\n app/Services/ActivityService.php | 21 +-\n app/Services/Calendar/CalendarActivityService.php | 46 ++\n app/Services/Calendar/Command/ImportParticipants.php | 1 +\n app/Services/Calendar/Command/MapActivityData.php | 106 +--\n app/Services/Calendar/GoogleCalendarService.php | 12 +-\n app/Services/Crm/Close/Processor/OpportunityProcessor.php | 2 +-\n app/Services/Crm/Close/Service.php | 22 +-\n app/Services/Crm/Copper/Service.php | 12 +-\n app/Services/Crm/Hubspot/Service.php | 154 +++-\n app/Services/Crm/Hubspot/ServiceTraits/OpportunitySyncTrait.php | 88 ++-\n app/Services/Crm/IntegrationApp/ServiceTraits/SyncCrmEntitiesTrait.php | 22 +-\n app/Services/Crm/Pipedrive/Service.php | 17 +-\n app/Services/Crm/Salesforce/Service.php | 42 +-\n app/Services/Mail/Office/EmailApiClient.php | 129 +---\n app/Services/RecallAI/Commands/ScheduleBotCommand.php | 39 +-\n app/Services/RecallAI/RecallAIService.php | 22 +-\n composer.json | 3 +-\n composer.lock | 87 ++-\n config/mcp.php | 23 +\n database/migrations/2026_04_30_120000_create_mcp_audit_log_table.php | 36 +\n docs/mcp/explorer/explorer.html | 697 ++++++++++++++++++\n docs/mcp/explorer/explorer.template.html | 697 ++++++++++++++++++\n docs/mcp/explorer/generate.js | 215 ++++++\n docs/mcp/explorer/tool-explorer-meta.json | 11 +\n docs/mcp/tools-list.json | 2536 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++\n docs/mcp/tools.md | 621 ++++++++++++++++\n front-end/package.json | 4 +-\n front-end/src/components/Settings/OrgSettings/AiAutomation/CrmFilling/TemplateFieldForm.vue | 28 +-\n front-end/src/components/Settings/OrgSettings/Playbooks/AddEditPlaybook.vue | 10 +\n front-end/src/components/playback/comments/ActivityComment.less | 10 +-\n front-end/src/components/shared/PromptTester/PromptTester.vue | 12 +-\n front-end/src/components/shared/__tests__/PromptTester.spec.js | 35 +\n front-end/src/components/shared/modals/EntityPickerModal/__tests__/useEntitiesCache.spec.ts | 37 +\n front-end/src/components/shared/modals/EntityPickerModal/useEntitiesCache.ts | 9 +\n front-end/yarn.lock | 16 +-\n phpstan-baseline.neon | 50 --\n routes/api.php | 11 +\n sonar-project.properties | 91 ++-\n tests/Feature/Component/Nudge/ProcessOrganisationImmediateNudgesJobTest.php | 534 ++++++++++++++\n tests/Feature/Jobs/ImportRemoteTrackJobTest.php | 283 +++++++-\n tests/Feature/Mcp/IssueMcpTokenCommandTest.php | 53 ++\n tests/Feature/Mcp/ListCallsToolElasticFeatureTest.php | 155 ++++\n tests/Feature/Mcp/ListCallsToolFeatureTest.php | 352 ++++++++++\n tests/Feature/Mcp/McpTestHelpersTrait.php | 77 ++\n tests/Feature/Services/Team/TeamDeleteHandlers/Retention/RetentionRepositoryHandlerTest.php | 1 +\n tests/Stubs/SentryStub.php | 18 +\n tests/Unit/Component/ActivityAnalytics/Service/CalculateTalkTimeOffsetFromTranscriptionTest.php | 28 +-\n tests/Unit/Component/AiActivityType/Services/AiActivityTypeEligibilityCheckerTest.php | 103 ++-\n tests/Unit/Component/AiAutomation/Actions/PrepareUpdateDtoActionTest.php | 91 +++\n tests/Unit/Component/AiAutomation/Services/CrmFillingEligibilityCheckerTest.php | 124 ++++\n tests/Unit/Component/AiAutomation/TestCrmAiPromptServiceTest.php | 67 +-\n tests/Unit/Component/AiCallScoring/Services/AiCallScoringEligibilityCheckerTest.php | 55 ++\n tests/Unit/Component/ES/ElasticSearchWorkerManagerTest.php | 135 ----\n tests/Unit/Component/ES/Processor/Actions/LoadDocumentsActionTest.php | 220 ++++++\n tests/Unit/Component/ES/Processor/EntityQueryBuilderTest.php | 21 +-\n tests/Unit/Component/ES/Processor/Traits/SkipActivityTraitTest.php | 51 --\n tests/Unit/Component/ES/Worker/ActivityWorkerTest.php | 174 -----\n tests/Unit/Component/ES/Worker/EntityWorkerTest.php | 97 ---\n tests/Unit/Component/ES/Worker/WorkerAmountTest.php | 116 ---\n tests/Unit/Component/Encoding/Job/AnalyzeTrackChannelsJobTest.php | 52 +-\n tests/Unit/Component/Encoding/Service/GenerateSpeechFromSilenceServiceTest.php | 171 ++---\n tests/Unit/Component/FFMpeg/Services/GetSpeechIntervalsTest.php | 36 +-\n tests/Unit/Component/LanguageDetection/Services/FindSpeechTimeServiceTest.php | 20 +-\n tests/Unit/Component/MobileSettings/MobileSettingsControllerTest.php | 5 +-\n tests/Unit/Component/ParticipantSpeech/Services/ParticipantSpeechesCreatorTest.php | 75 ++\n tests/Unit/Component/ParticipantSpeech/Services/ParticipantSpeechesDeleterTest.php | 63 ++\n tests/Unit/Component/ParticipantSpeech/Services/ParticipantSpeechesProviderTest.php | 134 ++++\n tests/Unit/Component/ParticipantSpeech/Services/ParticipantSpeechesUploaderTest.php | 57 ++\n tests/Unit/Component/Transcription/Diarization/Services/GetNormalizedParticipantSpeechesServiceTest.php | 51 +-\n tests/Unit/Component/Transcription/Diarization/Source/MeetingBotSourceTest.php | 29 +-\n tests/Unit/Contracts/Services/Calendar/CalendarTraitTest.php | 58 +-\n tests/Unit/Http/Controllers/Kiosk/ActivityControllerTest.php | 159 +++++\n tests/Unit/Jobs/Activity/Import/ImportTwilioVideoSpeechesJobTest.php | 22 +-\n tests/Unit/Jobs/Activity/Import/IsActivityReadyForProcessingJobTest.php | 26 +-\n tests/Unit/Jobs/Calendar/SetupCalendarSyncTest.php | 25 -\n tests/Unit/Services/Activity/ParticipantsServiceTest.php | 12 +-\n tests/Unit/Services/Activity/Twilio/S3RecordingCredentialsServiceTest.php | 180 +++++\n tests/Unit/Services/ActivityServiceTest.php | 132 ++++\n tests/Unit/Services/Calendar/CalendarActivityServiceTest.php | 150 +++-\n tests/Unit/Services/Calendar/Command/ImportParticipantsTest.php | 6 +-\n tests/Unit/Services/Calendar/Command/MapActivityDataTest.php | 78 +-\n tests/Unit/Services/Calendar/GoogleCalendarServiceTest.php | 116 +++\n tests/Unit/Services/Crm/Close/ServiceTest.php | 165 +++++\n tests/Unit/Services/Crm/Hubspot/ServiceTest.php | 272 ++++++-\n tests/Unit/Services/Crm/Hubspot/ServiceTraits/OpportunitySyncTest.php | 25 +-\n tests/Unit/Services/Crm/Hubspot/ServiceTraits/OpportunitySyncTraitMatchActivitiesTest.php | 3 +-\n tests/Unit/Services/Crm/IntegrationApp/ServiceTraits/SyncCrmEntitiesTraitOpportunitiesTest.php | 40 ++\n tests/Unit/Services/Crm/Pipedrive/ImportOpportunityMatchActivitiesTest.php | 2 +\n tests/Unit/Services/Crm/Salesforce/ServiceTest.php | 139 ++++\n tests/Unit/Services/Mail/Office/EmailApiClientTest.php | 195 ++---\n tests/Unit/Services/RecallAI/RecallAIServiceTest.php | 24 +-\n 175 files changed, 12562 insertions(+), 2162 deletions(-)\n create mode 120000 CLAUDE.md\n create mode 100644 app/Component/AiAutomation/Services/CrmFillingEligibilityChecker.php\n delete mode 100644 app/Component/ES/ElasticSearchWorkerManager.php\n delete mode 100644 app/Component/ES/Processor/Traits/SkipActivityTrait.php\n delete mode 100644 app/Component/ES/Worker/ActivityWorker.php\n delete mode 100644 app/Component/ES/Worker/EntityWorker.php\n delete mode 100644 app/Component/ES/Worker/WorkerAmount.php\n delete mode 100644 app/Component/ES/Worker/WorkerInterface.php\n create mode 100644 app/Component/ProphetAi/Exceptions/InsufficientTranscriptException.php\n create mode 100644 app/Component/Transcription/DTO/Http/Transcription/AssemblyAI/AssemblyAI/NoAssemblyIdException.php\n create mode 100644 app/Component/Transcription/DTO/Http/Transcription/TranscriptionIsNotCorrectFormatException.php\n create mode 100644 app/Console/Commands/Activities/SetupIntegration/TwilioSetS3RecordingCredentialsCommand.php\n create mode 100644 app/Console/Commands/Crm/BackfillOpportunityUserFromAccountCommand.php\n delete mode 100644 app/Console/Commands/Elasticsearch/AsyncUpdateEsActivities.php\n create mode 100644 app/Console/Commands/IssueMcpTokenCommand.php\n create mode 100644 app/Http/Middleware/McpAuditMiddleware.php\n create mode 100644 app/Http/Middleware/McpTierMiddleware.php\n create mode 100644 app/Mcp/Contracts/McpCallRepositoryInterface.php\n create mode 100644 app/Mcp/DTO/ListCallsFilters.php\n create mode 100644 app/Mcp/Errors/McpError.php\n create mode 100644 app/Mcp/Repositories/McpActivityHydrator.php\n create mode 100644 app/Mcp/Repositories/McpCallRepository.php\n create mode 100644 app/Mcp/Repositories/McpElasticCallRepository.php\n create mode 100644 app/Mcp/Servers/JiminnyServer.php\n create mode 100644 app/Mcp/Tools/ListCallsTool.php\n create mode 100644 app/Services/Activity/Twilio/S3RecordingCredentialsService.php\n create mode 100644 config/mcp.php\n create mode 100644 database/migrations/2026_04_30_120000_create_mcp_audit_log_table.php\n create mode 100644 docs/mcp/explorer/explorer.html\n create mode 100644 docs/mcp/explorer/explorer.template.html\n create mode 100644 docs/mcp/explorer/generate.js\n create mode 100644 docs/mcp/explorer/tool-explorer-meta.json\n create mode 100644 docs/mcp/tools-list.json\n create mode 100644 docs/mcp/tools.md\n create mode 100644 front-end/src/components/shared/modals/EntityPickerModal/__tests__/useEntitiesCache.spec.ts\n create mode 100644 tests/Feature/Component/Nudge/ProcessOrganisationImmediateNudgesJobTest.php\n create mode 100644 tests/Feature/Mcp/IssueMcpTokenCommandTest.php\n create mode 100644 tests/Feature/Mcp/ListCallsToolElasticFeatureTest.php\n create mode 100644 tests/Feature/Mcp/ListCallsToolFeatureTest.php\n create mode 100644 tests/Feature/Mcp/McpTestHelpersTrait.php\n create mode 100644 tests/Stubs/SentryStub.php\n create mode 100644 tests/Unit/Component/AiAutomation/Services/CrmFillingEligibilityCheckerTest.php\n delete mode 100644 tests/Unit/Component/ES/ElasticSearchWorkerManagerTest.php\n create mode 100644 tests/Unit/Component/ES/Processor/Actions/LoadDocumentsActionTest.php\n delete mode 100644 tests/Unit/Component/ES/Processor/Traits/SkipActivityTraitTest.php\n delete mode 100644 tests/Unit/Component/ES/Worker/ActivityWorkerTest.php\n delete mode 100644 tests/Unit/Component/ES/Worker/EntityWorkerTest.php\n delete mode 100644 tests/Unit/Component/ES/Worker/WorkerAmountTest.php\n create mode 100644 tests/Unit/Component/ParticipantSpeech/Services/ParticipantSpeechesCreatorTest.php\n create mode 100644 tests/Unit/Http/Controllers/Kiosk/ActivityControllerTest.php\n create mode 100644 tests/Unit/Services/Activity/Twilio/S3RecordingCredentialsServiceTest.php\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20725-handle-HS-search-rate-limit) $ git status\nOn branch master\nYour branch is behind 'origin/master' by 114 commits, and can be fast-forwarded.\n (use \"git pull\" to update your local branch)\n\nChanges not staged for commit:\n (use \"git add <file>...\" to update what will be committed)\n (use \"git restore <file>...\" to discard changes in working directory)\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tmodified: .env.local\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tmodified: app/Component/SCIM/Constants.php\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tmodified: app/Component/SCIM/ScimProvisioning.php\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tmodified: app/Component/Twilio/Conference/ConferenceManager/SoftPhoneManager.php\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tmodified: app/Console/Commands/JiminnyDebugCommand.php\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tmodified: app/DTO/SCIM/AAD/Request/CoreUserRequest.php\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tmodified: app/DTO/SCIM/AAD/Response/CoreUser.php\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tmodified: app/Services/Telephony/TextMessagingService.php\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tmodified: config/logging.php\n\nUntracked files:\n (use \"git add <file>...\" to include in what will be committed)\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\t.env.nikilocal\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\t.env.other\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tWEBHOOK_FILTERING_IMPLEMENTATION.md\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tapp/Component/SCIM/Mutators/Attributes/User/RoleAttr.php\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tapp/Console/Commands/Crm/Hubspot/SimulateWebhooksCommand.php\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tapp/Console/Commands/Reports/CreateMockAskJiminnyReportResultCommand.php\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tapp/Rules/ListenerRoleCannotHaveAdminOrManagerPermissionRule.php\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tids.txt\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tpublic/favicon.ico\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\traw_sql_query.sql\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\ttests/Unit/Component/SCIM/Mutators/Attributes/User/RoleAttrTest.php\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\ttests/Unit/Policies/CanAccessAiReportsTest.php\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\ttests/Unit/Rules/ListenerRoleCannotHaveAdminOrManagerPermissionRuleTest.php\n\nno changes added to commit (use \"git add\" and/or \"git commit -a\")\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (master) $ git pull\nremote: Enumerating objects: 306, done.\nremote: Counting objects: 100% (299/299), done.\nremote: Compressing objects: 100% (183/183), done.\nremote: Total 306 (delta 213), reused 171 (delta 116), pack-reused 7 (from 1)\nReceiving objects: 100% (306/306), 80.12 KiB | 1000.00 KiB/s, done.\nResolving deltas: 100% (213/213), completed with 53 local objects.\nFrom github.com:jiminny/app\n 90bca4e4b2..5604af40cf master -> origin/master\n 4e7078fd8b..0b8343d179 JY-18091-upgrade-to-php-8-5 -> origin/JY-18091-upgrade-to-php-8-5\n 098eeaa087..d5a447e492 JY-20613-allow-owner-role-on-team-setup -> origin/JY-20613-allow-owner-role-on-team-setup\n c3a76ace91..af65249d0f JY-20749-user-can-view-recorded-meetings -> origin/JY-20749-user-can-view-recorded-meetings\n d94a285ae7..7ce96cb5fe JY-20808-low-priority-indexing-queue -> origin/JY-20808-low-priority-indexing-queue\n * [new branch] JY-20842-remove-partial-updater -> origin/JY-20842-remove-partial-updater\n * [new branch] JY-20920-fix-participant-flip -> origin/JY-20920-fix-participant-flip\n * [new branch] secfix/npm-20260519 -> origin/secfix/npm-20260519\nUpdating cb4ebf0c36..5604af40cf\nFast-forward\n app/Component/ES/ChunkSize.php | 54 +++++++++++++++++++\n app/Component/ES/Processor/DTOs/SelectionList.php | 4 +-\n app/Component/ES/Processor/TargetEntitiesSelector.php | 19 ++++---\n app/Component/MeetingBot/Service/ParticipantMatcher.php | 46 ++++++++++++----\n app/Exceptions/RateLimitException.php | 19 ++++++-\n app/Http/Middleware/McpTierMiddleware.php | 27 ++--------\n app/Jobs/Crm/MatchActivityCrmData.php | 47 ++++++++++++----\n app/Jobs/Middleware/HandleHubspotRateLimit.php | 42 +++++++++++++++\n app/Mcp/Servers/JiminnyServer.php | 2 +\n app/Mcp/Tools/GetMeTool.php | 157 +++++++++++++++++++++++++++++++++++++++++++++++++++++\n app/Models/Feature/FeatureEnum.php | 1 +\n app/Services/Activity/HubSpot/ProviderResolver.php | 4 +-\n app/Services/Activity/HubSpot/ProviderResolverInterface.php | 2 +-\n app/Services/Activity/HubSpot/Providers/Provider.php | 2 +-\n app/Services/Activity/HubSpot/Providers/ProviderKixie.php | 2 +-\n app/Services/Activity/HubSpot/Providers/ProviderOrum.php | 2 +-\n app/Services/Activity/HubSpot/Providers/ProviderTwilio.php | 2 +-\n app/Services/Activity/HubSpot/Providers/ProviderTwilioFlex.php | 5 +-\n app/Services/Activity/HubSpot/Service.php | 97 +++++++++++++++++++++++++++------\n app/Services/Crm/Hubspot/Client.php | 132 +++++++++++++++++++++++++++++++++++++++++++++\n app/Services/Crm/Hubspot/HubspotClientInterface.php | 15 ++++++\n app/Services/Crm/Hubspot/Pagination/HubspotPaginationService.php | 21 ++++----\n app/Services/Crm/Hubspot/Pagination/PaginationState.php | 2 +-\n database/migrations/2026_05_13_124153_create_mcp_feature_flag.php | 25 +++++++++\n tests/Feature/Mcp/GetMeToolFeatureTest.php | 140 +++++++++++++++++++++++++++++++++++++++++++++++\n tests/Feature/Mcp/ListCallsToolFeatureTest.php | 2 +-\n tests/Feature/Mcp/McpTestHelpersTrait.php | 19 ++++++-\n tests/Unit/Component/ES/ChunkSizeTest.php | 50 +++++++++++++++++\n tests/Unit/Component/ES/Processor/DTOs/SelectionListTest.php | 27 +++++++---\n tests/Unit/Component/ES/Processor/TargetEntitiesSelectorTest.php | 39 ++++++++------\n tests/Unit/Component/MeetingBot/Service/ParticipantMatcherTest.php | 68 ++++++++++++++++++++++-\n tests/Unit/Exceptions/RateLimitExceptionTest.php | 56 +++++++++++++++++++\n tests/Unit/Jobs/Crm/MatchActivityCrmDataTest.php | 8 +--\n tests/Unit/Jobs/Middleware/HandleHubspotRateLimitTest.php | 151 +++++++++++++++++++++++++++++++++++++++++++++++++++\n tests/Unit/Services/Activity/HubSpot/ServiceTest.php | 109 +++++++++++++++++++++++++++++++++++++\n tests/Unit/Services/Crm/Hubspot/ClientTest.php | 250 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++\n tests/Unit/Services/Crm/Hubspot/Pagination/HubspotPaginationServiceTest.php | 283 +++++++++++++++++++++---------------------------------------------------------------------------\n 37 files changed, 1587 insertions(+), 344 deletions(-)\n create mode 100644 app/Component/ES/ChunkSize.php\n create mode 100644 app/Jobs/Middleware/HandleHubspotRateLimit.php\n create mode 100644 app/Mcp/Tools/GetMeTool.php\n create mode 100644 database/migrations/2026_05_13_124153_create_mcp_feature_flag.php\n create mode 100644 tests/Feature/Mcp/GetMeToolFeatureTest.php\n create mode 100644 tests/Unit/Component/ES/ChunkSizeTest.php\n create mode 100644 tests/Unit/Exceptions/RateLimitExceptionTest.php\n create mode 100644 tests/Unit/Jobs/Middleware/HandleHubspotRateLimitTest.php\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (master) $ git pull\nAlready up to date.\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (master) $ co -b JY-20676-delete-report-related-objects\nSwitched to a new branch 'JY-20676-delete-report-related-objects'\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20676-delete-report-related-objects) $ csfix\ndocker exec -it docker_lamp_1 ./vendor/bin/php-cs-fixer fix --config=.php-cs-fixer.dist.php -v --using-cache=no --diff \nPHP CS Fixer 3.87.1 Alexander by Fabien Potencier, Dariusz Ruminski and contributors.\nPHP runtime: 8.3.30\nRunning analysis on 7 cores with 10 files per process.\nParallel runner is an experimental feature and may be unstable, use it at your own risk. Feedback highly appreciated!\nLoaded config default from \".php-cs-fixer.dist.php\".\n 5690/5690 [▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓] 100%\n\n 1) app/Console/Commands/JiminnyDebugCommand.php (statement_indentation, blank_line_before_statement)\n ---------- begin diff ----------\n--- /home/jiminny/app/Console/Commands/JiminnyDebugCommand.php\n+++ /home/jiminny/app/Console/Commands/JiminnyDebugCommand.php\n@@ -23,6 +23,7 @@\n \n if ($action === 'redis-set') {\n $this->testRedisSet();\n+\n return;\n }\n \n@@ -45,7 +46,7 @@\n $ttl = 60;\n \n try {\n-// $result = Redis::set($testKey, $testValue, 'EX', $ttl, 'NX');\n+ // $result = Redis::set($testKey, $testValue, 'EX', $ttl, 'NX');\n $result = Redis::set($testKey, $testValue, ['nx', 'ex' => $ttl]);\n \n if ($result) {\n\n ----------- end diff -----------\n\n\nFixed 1 of 5690 files in 50.673 seconds, 67.00 MB memory used\n\nWhat's next:\n Try Docker Debug for seamless, persistent debugging tools in any container or image → docker debug docker_lamp_1\n Learn more at https://docs.docker.com/go/debug-cli/\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20676-delete-report-related-objects) $ ;xd\ndocker exec -it docker_lamp_1 bash -c \"mv /usr/local/etc/php/conf.d/xdebug.ini ~/xdebug.ini\"\n\nWhat's next:\n Try Docker Debug for seamless, persistent debugging tools in any container or image → docker debug docker_lamp_1\n Learn more at https://docs.docker.com/go/debug-cli/\ndocker exec -it docker_lamp_1 supervisorctl restart all\njiminny-worker-processing-2:jiminny-worker-processing-2_00: stopped\njiminny-worker-processing-3:jiminny-worker-processing-3_00: stopped\njiminny-worker-processing-4:jiminny-worker-processing-4_00: stopped\njiminny-worker-processing-5:jiminny-worker-processing-5_00: stopped\njiminny-worker-processing-delayed:jiminny-worker-processing-delayed_00: stopped\nworker-analytics:worker-analytics_00: stopped\nworker-crm-update:worker-crm-update_00: stopped\nworker-download:worker-download_00: stopped\nworker-nudges:worker-nudges_00: stopped\nworker-calendar:worker-calendar_00: stopped\nworker-audio:worker-audio_00: stopped\njiminny-worker-processing-1:jiminny-worker-processing-1_00: stopped\nworker:worker_00: stopped\nworker-conferences:worker-conferences_00: stopped\nworker-crm-sync:worker-crm-sync_00: stopped\nworker-emails:worker-emails_00: stopped\nworker-es-update:worker-es-update_00: stopped\nartisan-schedule:artisan-schedule_00: stopped\nartisan-schedule:artisan-schedule_00: started\njiminny-worker-processing-1:jiminny-worker-processing-1_00: started\njiminny-worker-processing-2:jiminny-worker-processing-2_00: started\njiminny-worker-processing-3:jiminny-worker-processing-3_00: started\njiminny-worker-processing-4:jiminny-worker-processing-4_00: started\njiminny-worker-processing-5:jiminny-worker-processing-5_00: started\njiminny-worker-processing-delayed:jiminny-worker-processing-delayed_00: started\nworker:worker_00: started\nworker-analytics:worker-analytics_00: started\nworker-audio:worker-audio_00: started\nworker-calendar:worker-calendar_00: started\nworker-conferences:worker-conferences_00: started\nworker-crm-sync:worker-crm-sync_00: started\nworker-crm-update:worker-crm-update_00: started\nworker-download:worker-download_00: started\nworker-emails:worker-emails_00: started\nworker-es-update:worker-es-update_00: started\nworker-nudges:worker-nudges_00: started\n\nWhat's next:\n Try Docker Debug for seamless, persistent debugging tools in any container or image → docker debug docker_lamp_1\n Learn more at https://docs.docker.com/go/debug-cli/\ndocker exec -it docker_lamp_1 php -v\nPHP 8.3.30 (cli) (built: Mar 16 2026 22:32:32) (NTS)\nCopyright (c) The PHP Group\nZend Engine v4.3.30, Copyright (c) Zend Technologies\n with Zend OPcache v8.3.30, Copyright (c), by Zend Technologies\n\nWhat's next:\n Try Docker Debug for seamless, persistent debugging tools in any container or image → docker debug docker_lamp_1\n Learn more at https://docs.docker.com/go/debug-cli/\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20676-delete-report-related-objects) $ git status\nOn branch JY-20676-delete-report-related-objects\nChanges not staged for commit:\n (use \"git add <file>...\" to update what will be committed)\n (use \"git restore <file>...\" to discard changes in working directory)\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tmodified: .env.local\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tmodified: app/Console/Commands/JiminnyDebugCommand.php\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tmodified: config/logging.php\n\nUntracked files:\n (use \"git add <file>...\" to include in what will be committed)\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\t.env.nikilocal\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\t.env.other\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tWEBHOOK_FILTERING_IMPLEMENTATION.md\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tapp/Console/Commands/Crm/Hubspot/SimulateWebhooksCommand.php\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tapp/Console/Commands/Reports/CreateMockAskJiminnyReportResultCommand.php\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tids.txt\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tpublic/favicon.ico\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\traw_sql_query.sql\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\ttests/Unit/Policies/CanAccessAiReportsTest.php\n\nno changes added to commit (use \"git add\" and/or \"git commit -a\")\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20676-delete-report-related-objects) $ git push -u origin JY-20676-delete-report-related-objects\nEnumerating objects: 45, done.\nCounting objects: 100% (45/45), done.\nDelta compression using up to 8 threads\nCompressing objects: 100% (24/24), done.\nWriting objects: 100% (24/24), 3.62 KiB | 3.62 MiB/s, done.\nTotal 24 (delta 19), reused 0 (delta 0), pack-reused 0\nremote: Resolving deltas: 100% (19/19), completed with 19 local objects.\nremote: \nremote: Create a pull request for 'JY-20676-delete-report-related-objects' on GitHub by visiting:\nremote: https://github.com/jiminny/app/pull/new/JY-20676-delete-report-related-objects\nremote: \nTo github.com:jiminny/app.git\n * [new branch] JY-20676-delete-report-related-objects -> JY-20676-delete-report-related-objects\nbranch 'JY-20676-delete-report-related-objects' set up to track 'origin/JY-20676-delete-report-related-objects'.\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20676-delete-report-related-objects) $ csfix\ndocker exec -it docker_lamp_1 ./vendor/bin/php-cs-fixer fix --config=.php-cs-fixer.dist.php -v --using-cache=no --diff \nPHP CS Fixer 3.87.1 Alexander by Fabien Potencier, Dariusz Ruminski and contributors.\nPHP runtime: 8.3.30\nRunning analysis on 7 cores with 10 files per process.\nParallel runner is an experimental feature and may be unstable, use it at your own risk. Feedback highly appreciated!\nLoaded config default from \".php-cs-fixer.dist.php\".\n 5690/5690 [▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓] 100%\n\n 1) app/Http/Controllers/API/V2/AskJiminnyReportsController.php (blank_line_before_statement)\n ---------- begin diff ----------\n--- /home/jiminny/app/Http/Controllers/API/V2/AskJiminnyReportsController.php\n+++ /home/jiminny/app/Http/Controllers/API/V2/AskJiminnyReportsController.php\n@@ -140,6 +140,7 @@\n if ($enabled && $report->isAskJiminnyReport() && ! $report->canExecute()) {\n $error = 'This report is missing a saved search or prompt. ' .\n 'Edit the report to complete the setup before enabling it.';\n+\n return new JsonResponse(\n ['error' => $error],\n Response::HTTP_UNPROCESSABLE_ENTITY\n\n ----------- end diff -----------\n\n\nFixed 1 of 5690 files in 71.757 seconds, 60.00 MB memory used\n\nWhat's next:\n Try Docker Debug for seamless, persistent debugging tools in any container or image → docker debug docker_lamp_1\n Learn more at https://docs.docker.com/go/debug-cli/\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20676-delete-report-related-objects) $ git pull\nremote: Enumerating objects: 158, done.\nremote: Counting objects: 100% (103/103), done.\nremote: Compressing objects: 100% (37/37), done.\nremote: Total 158 (delta 80), reused 74 (delta 66), pack-reused 55 (from 3)\nReceiving objects: 100% (158/158), 80.59 KiB | 982.00 KiB/s, done.\nResolving deltas: 100% (85/85), completed with 45 local objects.\nFrom github.com:jiminny/app\n 02a33811ee..c6ce5e2440 JY-20676-delete-report-related-objects -> origin/JY-20676-delete-report-related-objects\n 7ce96cb5fe..6c59f04358 JY-20808-low-priority-indexing-queue -> origin/JY-20808-low-priority-indexing-queue\n 3906a9238a..2b5e6ea62b JY-20835-mcp-enable-users-to-get-a-list-of-deals-and-their-details -> origin/JY-20835-mcp-enable-users-to-get-a-list-of-deals-and-their-details\n 5604af40cf..ea3519f0e2 master -> origin/master\n * [new branch] switch-eu-assembly -> origin/switch-eu-assembly\nUpdating 02a33811ee..c6ce5e2440\nFast-forward\n app/Component/ES/ElasticSearchDocumentPartialUpdater.php | 48 ---\n app/Component/ParticipantSpeech/Services/ParticipantAttributionService.php | 4 +-\n app/Component/Settings/AutoScoring/Services/UpdateAutoScoreService.php | 20 +-\n app/Component/Transcription/Service/StorageService.php | 8 +-\n front-end/package.json | 2 +-\n front-end/src/components/DealInsights/Modals/AskAnythingModal.vue | 23 ++\n front-end/src/components/shared/AskAnything/AskAnythingPromptFormItem.vue | 2 +\n front-end/src/components/shared/AskAnything/AskAnythingSettingsDrawer.vue | 23 +-\n front-end/src/components/shared/AskAnything/__mocks__/AskAnythingSettingsDrawer.mocks.js | 1 +\n front-end/src/components/shared/AskAnything/__tests__/AskAnythingSettingsDrawer.spec.js | 135 ++++---\n front-end/src/components/shared/AskAnything/__tests__/__snapshots__/AskAnythingSettingsDrawer.spec.js.html | 1235 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++\n front-end/src/components/shared/AskAnything/__tests__/__snapshots__/AskAnythingSettingsDrawer.spec.js.snap | 1382 ----------------------------------------------------------------\n front-end/src/components/shared/AskAnything/prompts.js | 1 +\n front-end/src/components/shared/AskAnything/useAskAnything.js | 1 +\n front-end/yarn.lock | 8 +-\n tests/Unit/Component/ES/ElasticSearchDocumentPartialUpdaterTest.php | 42 --\n tests/Unit/Component/Settings/AutoScoring/Services/UpdateAutoScoreServiceTest.php | 86 ++--\n tests/Unit/Component/Transcription/Service/StorageServiceTest.php | 29 +-\n 18 files changed, 1448 insertions(+), 1602 deletions(-)\n delete mode 100644 app/Component/ES/ElasticSearchDocumentPartialUpdater.php\n create mode 100644 front-end/src/components/shared/AskAnything/__tests__/__snapshots__/AskAnythingSettingsDrawer.spec.js.html\n delete mode 100644 front-end/src/components/shared/AskAnything/__tests__/__snapshots__/AskAnythingSettingsDrawer.spec.js.snap\n delete mode 100644 tests/Unit/Component/ES/ElasticSearchDocumentPartialUpdaterTest.php\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20676-delete-report-related-objects) $ csfix\ndocker exec -it docker_lamp_1 ./vendor/bin/php-cs-fixer fix --config=.php-cs-fixer.dist.php -v --using-cache=no --diff \nPHP CS Fixer 3.87.1 Alexander by Fabien Potencier, Dariusz Ruminski and contributors.\nPHP runtime: 8.3.30\nRunning analysis on 7 cores with 10 files per process.\nParallel runner is an experimental feature and may be unstable, use it at your own risk. Feedback highly appreciated!\nLoaded config default from \".php-cs-fixer.dist.php\".\n 5688/5688 [▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓] 100%\n\n\nFixed 0 of 5688 files in 79.904 seconds, 60.00 MB memory used\n\nWhat's next:\n Try Docker Debug for seamless, persistent debugging tools in any container or image → docker debug docker_lamp_1\n Learn more at https://docs.docker.com/go/debug-cli/\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20676-delete-report-related-objects) $","depth":4,"on_screen":true,"value":"Last login: Mon May 18 09:17:28 on ttys007\n\nPoetry could not find a pyproject.toml file in /Users/lukas/jiminny/app or its parents\n\nPoetry could not find a pyproject.toml file in /Users/lukas/jiminny/app or its parents\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (pipedrive-sdk-poc) $ co master\nerror: Your local changes to the following files would be overwritten by checkout:\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tPIPEDRIVE_V2_MIGRATION_TICKETS.md\nPlease commit your changes or stash them before you switch branches.\nAborting\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (pipedrive-sdk-poc) $ git pull\nremote: Enumerating objects: 1047, done.\nremote: Counting objects: 100% (832/832), done.\nremote: Compressing objects: 100% (298/298), done.\nremote: Total 1047 (delta 634), reused 596 (delta 534), pack-reused 215 (from 3)\nReceiving objects: 100% (1047/1047), 353.16 KiB | 1.56 MiB/s, done.\nResolving deltas: 100% (687/687), completed with 107 local objects.\nFrom github.com:jiminny/app\n 907c54896c..34656c53ed pipedrive-sdk-poc -> origin/pipedrive-sdk-poc\n 03325ec50f..4e7078fd8b JY-18091-upgrade-to-php-8-5 -> origin/JY-18091-upgrade-to-php-8-5\n e7d231e163..bc6a3fce6b JY-20725-handle-HS-search-rate-limit -> origin/JY-20725-handle-HS-search-rate-limit\n * [new branch] JY-20749-user-can-view-recorded-meetings -> origin/JY-20749-user-can-view-recorded-meetings\n 98ca281a04..e0351be069 JY-20808-low-priority-indexing-queue -> origin/JY-20808-low-priority-indexing-queue\n 569abb5149..3906a9238a JY-20835-mcp-enable-users-to-get-a-list-of-deals-and-their-details -> origin/JY-20835-mcp-enable-users-to-get-a-list-of-deals-and-their-details\n ad6c2a86e8..50eb6afba9 JY-20846-mcp-enable-the-ai-to-know-details-about-the-user -> origin/JY-20846-mcp-enable-the-ai-to-know-details-about-the-user\n * [new branch] JY-20893-chunk-control-per-update-target -> origin/JY-20893-chunk-control-per-update-target\n 31c62924a5..cb4ebf0c36 master -> origin/master\nUpdating 907c54896c..34656c53ed\nFast-forward\n PIPEDRIVE_V2_MIGRATION_TICKETS.md | 52 ++++++++++++++++++++++++++++++++++++++++++++++++++++\n 1 file changed, 52 insertions(+)\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (pipedrive-sdk-poc) $ co master\nM\u0000\u0000\u0000\u0000\u0000\u0000\t.env.local\nM\u0000\u0000\u0000\u0000\u0000\u0000\tconfig/logging.php\nSwitched to branch 'master'\nYour branch is behind 'origin/master' by 31 commits, and can be fast-forwarded.\n (use \"git pull\" to update your local branch)\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (master) $ git pull\nUpdating 31c62924a5..cb4ebf0c36\nFast-forward\n app/Component/ES/Processor/Traits/SelectEntityListTrait.php | 20 ------\n app/Services/Calendar/CalendarActivityService.php | 46 +++++++++++++\n app/Services/Calendar/Command/MapActivityData.php | 106 +++-------------------------\n docs/mcp/explorer/explorer.html | 104 +++++++++++++++++++++++++---\n docs/mcp/explorer/explorer.template.html | 102 ++++++++++++++++++++++++---\n docs/mcp/tools-list.json | 373 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++-------\n docs/mcp/tools.md | 117 +++++++++++++++++++++++--------\n tests/Unit/Component/ES/AsyncUpdateElasticSearchTest.php | 16 +----\n tests/Unit/Component/ES/Listeners/UpdateMultipleTargetsListenerTest.php | 10 ---\n tests/Unit/Component/ES/Listeners/UpdateSingleTargetListenerTest.php | 6 --\n tests/Unit/Component/ES/Processor/TargetEntitiesSelectorTest.php | 9 ---\n tests/Unit/Component/ES/Processor/Traits/SelectEntityListTraitTest.php | 15 ++--\n tests/Unit/Component/ES/UpdateProcessManagerTest.php | 2 -\n tests/Unit/Services/Calendar/CalendarActivityServiceTest.php | 150 ++++++++++++++++++++++++++++++++++++++--\n tests/Unit/Services/Calendar/Command/MapActivityDataTest.php | 78 ++-------------------\n 15 files changed, 832 insertions(+), 322 deletions(-)\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (master) $ co -b JY-20613-allow-owner-role-on-team-setup\nSwitched to a new branch 'JY-20613-allow-owner-role-on-team-setup'\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20613-allow-owner-role-on-team-setup) $ csfix\ndocker exec -it docker_lamp_1 ./vendor/bin/php-cs-fixer fix --config=.php-cs-fixer.dist.php -v --using-cache=no --diff \nPHP CS Fixer 3.87.1 Alexander by Fabien Potencier, Dariusz Ruminski and contributors.\nPHP runtime: 8.3.30\nRunning analysis on 7 cores with 10 files per process.\nParallel runner is an experimental feature and may be unstable, use it at your own risk. Feedback highly appreciated!\nLoaded config default from \".php-cs-fixer.dist.php\".\n 5682/5682 [▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓] 100%\n\n\nFixed 0 of 5682 files in 56.978 seconds, 67.00 MB memory used\n\nWhat's next:\n Try Docker Debug for seamless, persistent debugging tools in any container or image → docker debug docker_lamp_1\n Learn more at https://docs.docker.com/go/debug-cli/\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20613-allow-owner-role-on-team-setup) $ ;xd\ndocker exec -it docker_lamp_1 bash -c \"mv /usr/local/etc/php/conf.d/xdebug.ini ~/xdebug.ini\"\n\nWhat's next:\n Try Docker Debug for seamless, persistent debugging tools in any container or image → docker debug docker_lamp_1\n Learn more at https://docs.docker.com/go/debug-cli/\ndocker exec -it docker_lamp_1 supervisorctl restart all\njiminny-worker-processing-2:jiminny-worker-processing-2_00: stopped\njiminny-worker-processing-3:jiminny-worker-processing-3_00: stopped\njiminny-worker-processing-4:jiminny-worker-processing-4_00: stopped\njiminny-worker-processing-5:jiminny-worker-processing-5_00: stopped\njiminny-worker-processing-delayed:jiminny-worker-processing-delayed_00: stopped\nworker-analytics:worker-analytics_00: stopped\nworker-crm-update:worker-crm-update_00: stopped\nworker-download:worker-download_00: stopped\nworker-nudges:worker-nudges_00: stopped\nartisan-schedule:artisan-schedule_00: stopped\nworker-emails:worker-emails_00: stopped\nworker-calendar:worker-calendar_00: stopped\nworker:worker_00: stopped\nworker-conferences:worker-conferences_00: stopped\nworker-crm-sync:worker-crm-sync_00: stopped\njiminny-worker-processing-1:jiminny-worker-processing-1_00: stopped\nworker-audio:worker-audio_00: stopped\nworker-es-update:worker-es-update_00: stopped\nartisan-schedule:artisan-schedule_00: started\njiminny-worker-processing-1:jiminny-worker-processing-1_00: started\njiminny-worker-processing-2:jiminny-worker-processing-2_00: started\njiminny-worker-processing-3:jiminny-worker-processing-3_00: started\njiminny-worker-processing-4:jiminny-worker-processing-4_00: started\njiminny-worker-processing-5:jiminny-worker-processing-5_00: started\njiminny-worker-processing-delayed:jiminny-worker-processing-delayed_00: started\nworker:worker_00: started\nworker-analytics:worker-analytics_00: started\nworker-audio:worker-audio_00: started\nworker-calendar:worker-calendar_00: started\nworker-conferences:worker-conferences_00: started\nworker-crm-sync:worker-crm-sync_00: started\nworker-crm-update:worker-crm-update_00: started\nworker-download:worker-download_00: started\nworker-emails:worker-emails_00: started\nworker-es-update:worker-es-update_00: started\nworker-nudges:worker-nudges_00: started\n\nWhat's next:\n Try Docker Debug for seamless, persistent debugging tools in any container or image → docker debug docker_lamp_1\n Learn more at https://docs.docker.com/go/debug-cli/\ndocker exec -it docker_lamp_1 php -v\nPHP 8.3.30 (cli) (built: Mar 16 2026 22:32:32) (NTS)\nCopyright (c) The PHP Group\nZend Engine v4.3.30, Copyright (c) Zend Technologies\n with Zend OPcache v8.3.30, Copyright (c), by Zend Technologies\n\nWhat's next:\n Try Docker Debug for seamless, persistent debugging tools in any container or image → docker debug docker_lamp_1\n Learn more at https://docs.docker.com/go/debug-cli/\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20613-allow-owner-role-on-team-setup) $ csfix\ndocker exec -it docker_lamp_1 ./vendor/bin/php-cs-fixer fix --config=.php-cs-fixer.dist.php -v --using-cache=no --diff \nPHP CS Fixer 3.87.1 Alexander by Fabien Potencier, Dariusz Ruminski and contributors.\nPHP runtime: 8.3.30\nRunning analysis on 7 cores with 10 files per process.\nParallel runner is an experimental feature and may be unstable, use it at your own risk. Feedback highly appreciated!\nLoaded config default from \".php-cs-fixer.dist.php\".\n 5682/5682 [▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓] 100%\n\n\nFixed 0 of 5682 files in 49.910 seconds, 60.00 MB memory used\n\nWhat's next:\n Try Docker Debug for seamless, persistent debugging tools in any container or image → docker debug docker_lamp_1\n Learn more at https://docs.docker.com/go/debug-cli/\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20613-allow-owner-role-on-team-setup) $ git status\nOn branch JY-20613-allow-owner-role-on-team-setup\nYour branch is ahead of 'origin/JY-20613-allow-owner-role-on-team-setup' by 1 commit.\n (use \"git push\" to publish your local commits)\n\nChanges not staged for commit:\n (use \"git add <file>...\" to update what will be committed)\n (use \"git restore <file>...\" to discard changes in working directory)\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tmodified: .env.local\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tmodified: config/logging.php\n\nUntracked files:\n (use \"git add <file>...\" to include in what will be committed)\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\t.env.nikilocal\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\t.env.other\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tWEBHOOK_FILTERING_IMPLEMENTATION.md\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tapp/Console/Commands/Crm/Hubspot/SimulateWebhooksCommand.php\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tapp/Console/Commands/Reports/CreateMockAskJiminnyReportResultCommand.php\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tids.txt\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tpublic/favicon.ico\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\traw_sql_query.sql\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\ttests/Unit/Policies/CanAccessAiReportsTest.php\n\nno changes added to commit (use \"git add\" and/or \"git commit -a\")\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20613-allow-owner-role-on-team-setup) $ git pull\nremote: Enumerating objects: 248, done.\nremote: Counting objects: 100% (128/128), done.\nremote: Compressing objects: 100% (23/23), done.\nremote: Total 59 (delta 43), reused 44 (delta 33), pack-reused 0 (from 0)\nUnpacking objects: 100% (59/59), 10.48 KiB | 228.00 KiB/s, done.\nFrom github.com:jiminny/app\n b7df560451..190239dfd4 JY-20613-allow-owner-role-on-team-setup -> origin/JY-20613-allow-owner-role-on-team-setup\n e0351be069..d94a285ae7 JY-20808-low-priority-indexing-queue -> origin/JY-20808-low-priority-indexing-queue\n * [new branch] JY-20920-fix-participant-matcher -> origin/JY-20920-fix-participant-matcher\n cb4ebf0c36..90bca4e4b2 master -> origin/master\nMerge made by the 'ort' strategy.\n app/Component/ES/ChunkSize.php | 54 +++++++++++++++++++++++++++\n app/Component/ES/Processor/DTOs/SelectionList.php | 4 +-\n app/Component/ES/Processor/TargetEntitiesSelector.php | 19 ++++++----\n app/Http/Middleware/McpTierMiddleware.php | 27 +++-----------\n app/Mcp/Servers/JiminnyServer.php | 2 +\n app/Mcp/Tools/GetMeTool.php | 157 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++\n app/Models/Feature/FeatureEnum.php | 1 +\n database/migrations/2026_05_13_124153_create_mcp_feature_flag.php | 25 +++++++++++++\n front-end/src/components/Settings/Kiosk/modals/EditTeamModal/EditTeamModal.vue | 52 ++++++++++++++++++--------\n front-end/src/components/Settings/Kiosk/modals/EditTeamModal/__tests__/EditTeamModal.spec.js | 14 +++++++\n tests/Feature/Mcp/GetMeToolFeatureTest.php | 140 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++\n tests/Feature/Mcp/ListCallsToolFeatureTest.php | 2 +-\n tests/Feature/Mcp/McpTestHelpersTrait.php | 19 +++++++++-\n tests/Unit/Component/ES/ChunkSizeTest.php | 50 +++++++++++++++++++++++++\n tests/Unit/Component/ES/Processor/DTOs/SelectionListTest.php | 27 ++++++++++----\n tests/Unit/Component/ES/Processor/TargetEntitiesSelectorTest.php | 39 +++++++++++---------\n 16 files changed, 557 insertions(+), 75 deletions(-)\n create mode 100644 app/Component/ES/ChunkSize.php\n create mode 100644 app/Mcp/Tools/GetMeTool.php\n create mode 100644 database/migrations/2026_05_13_124153_create_mcp_feature_flag.php\n create mode 100644 tests/Feature/Mcp/GetMeToolFeatureTest.php\n create mode 100644 tests/Unit/Component/ES/ChunkSizeTest.php\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20613-allow-owner-role-on-team-setup) $ git push\nEnumerating objects: 40, done.\nCounting objects: 100% (34/34), done.\nDelta compression using up to 8 threads\nCompressing objects: 100% (18/18), done.\nWriting objects: 100% (18/18), 1.58 KiB | 1.58 MiB/s, done.\nTotal 18 (delta 15), reused 0 (delta 0), pack-reused 0\nremote: Resolving deltas: 100% (15/15), completed with 13 local objects.\nTo github.com:jiminny/app.git\n 190239dfd4..ec1b261264 JY-20613-allow-owner-role-on-team-setup -> JY-20613-allow-owner-role-on-team-setup\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20613-allow-owner-role-on-team-setup) $ gbr\n* JY-20613-allow-owner-role-on-team-setup\n pipedrive-sdk-poc\n master\n JY-20903-update_activity-stage-on-opportunity-change\n JY-20904-fix-update-es-on-activity-command\n JY-20891-improve-sms-text-relays\n JY-20725-handle-HS-search-rate-limit\n JY-20818-move-AJ-reports-to-separated-datadog-metric\n JY-20773-fix-automated-reports-user-pilot-tracking\n JY-20157-AJ-report-not-send-notification\n JY-20508-notify-before-AJ-report-expiration\n JY-20372-ai-reports-promotion-pages\n JY-20352-sync-opportunities-without-a-local-owner-user-id-is-null\n JY-20738-debug-AJ-tracking-UP\n a\n JY-18909-automated-reports-ask-jiminny\n JY-20692-fix-integration-app-token-auth-response-change\n JY-20553-debug-crm-sync-delays\n JY-20698-fix-SF-activity-types-on-new-playbook\n JY-20543-AJ-report-tracking\n JY-20384-handle-auto-sync-with-no-access-to-event-type\n JY-20458-ask-jiminny-user-definitions\n JY-19666-fix-import-contacts-account-association\n JY-19666-HS-import-contacts-and-accounts-batch-job\n JY-20458-Ask-Jiminny-Reports\n JY-20200-batch-update-CRM-objects-Salesforce\n JY-19666-HS-webhooks-add-contact-and-company\n JY-20348-trigger-setup-DI-layout-on-team-creation\n JY-20326-refactor-info-message-in-command\n JY-20317-fix-auto-log-delay-issue-on-all-channels-disabled\n JY-20312-remove-on-update-change-last-synced-at-crm-configurations\n JY-20306-SF-skip-auto-sync-for-task-based-playbook\n JY-20192-remove-deleted-team-from-saved-search-filters\n JY-20197-import-opportunity-batch-job\n JY-20293-enable-status-field-for-pipedrive-deals\n JY-20191-remove-commands-interactive-prompts\n JY-20118-change-default-sync-strategy\n JY-20183-add-cache-on-auto-log-delay\n JY-20197-add-import-opportunity-batch-job\n 20118-hs-opportunity-make-webhook-strategy-default\n JY-20118-make-default-hs-opportunity-sync-strategy-webhook-based\n JY-20196-handle-opportunity-without-note\n JY-20118-improve-opportunity-import\n JY-20189-handle-activity-search-on-deleted-groups\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20613-allow-owner-role-on-team-setup) $ co JY-20725-handle-HS-search-rate-limit\nM\u0000\u0000\u0000\u0000\u0000\u0000\t.env.local\nM\u0000\u0000\u0000\u0000\u0000\u0000\tconfig/logging.php\nSwitched to branch 'JY-20725-handle-HS-search-rate-limit'\nYour branch is behind 'origin/JY-20725-handle-HS-search-rate-limit' by 439 commits, and can be fast-forwarded.\n (use \"git pull\" to update your local branch)\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20725-handle-HS-search-rate-limit) $ git pull\nUpdating 0f3e438941..bc6a3fce6b\nFast-forward\n .gitignore | 3 +-\n .windsurfrules | 168 ++---\n CLAUDE.md | 1 +\n app/Component/ActivityAnalytics/Service/CalculateTalkTimeOffsetsFromTranscription.php | 24 +-\n app/Component/AiActivityType/Services/AiActivityTypeEligibilityChecker.php | 28 +-\n app/Component/AiAutomation/Actions/PrepareUpdateDtoAction.php | 32 +-\n app/Component/AiAutomation/Services/CrmFillingEligibilityChecker.php | 47 ++\n app/Component/AiAutomation/TestCrmAiPromptService.php | 14 +\n app/Component/AiCallScoring/Services/AiCallScoringEligibilityChecker.php | 9 +\n app/Component/ES/ElasticSearchDocumentPartialUpdater.php | 13 +-\n app/Component/ES/ElasticSearchWorkerManager.php | 86 ---\n app/Component/ES/Processor/Actions/LoadDocumentsAction.php | 80 +--\n app/Component/ES/Processor/EntityQueryBuilder.php | 12 +-\n app/Component/ES/Processor/TargetEntitiesSelector.php | 2 +-\n app/Component/ES/Processor/Traits/SkipActivityTrait.php | 25 -\n app/Component/ES/Repositories/EsResetActivityRepository.php | 11 +-\n app/Component/ES/Worker/ActivityWorker.php | 73 --\n app/Component/ES/Worker/EntityWorker.php | 44 --\n app/Component/ES/Worker/WorkerAmount.php | 60 --\n app/Component/ES/Worker/WorkerInterface.php | 15 -\n app/Component/ElasticSearch/Contract/Searchable.php | 4 +\n app/Component/Encoding/Job/AnalyzeTrackChannelsJob.php | 20 +-\n app/Component/Encoding/Service/GenerateSpeechFromSilenceService.php | 85 ++-\n app/Component/FFMpeg/Services/GetSpeechIntervalsService.php | 18 +-\n app/Component/LanguageDetection/Services/FindSpeechTimeService.php | 22 +-\n app/Component/Nudge/Job/ProcessOrganisationImmediateNudgesJob.php | 218 +++++-\n app/Component/ParagraphBreaker/Services/TranscriptionParagraphsService.php | 4 +\n app/Component/ParticipantSpeech/Services/ParticipantSpeechesCreator.php | 33 +\n app/Component/ParticipantSpeech/Services/ParticipantSpeechesDeleter.php | 15 +\n app/Component/ParticipantSpeech/Services/ParticipantSpeechesProvider.php | 51 +-\n app/Component/ParticipantSpeech/Services/ParticipantSpeechesUploader.php | 36 +\n app/Component/ProphetAi/Exceptions/InsufficientTranscriptException.php | 11 +\n app/Component/Transcription/DTO/Http/Transcription/AssemblyAI/AssemblyAI/NoAssemblyIdException.php | 11 +\n app/Component/Transcription/DTO/Http/Transcription/AssemblyAI/AssemblyAI/SuccessfulResponse.php | 6 +\n app/Component/Transcription/DTO/Http/Transcription/TranscriptionIsNotCorrectFormatException.php | 11 +\n app/Component/Transcription/Diarization/Services/GetNormalizedParticipantSpeechesService.php | 23 +-\n app/Component/Transcription/Diarization/Source/MeetingBotSource.php | 16 +-\n app/Component/Transcription/TranscriptionProcessor/TranscriptionProcessor.php | 3 +\n app/Console/Commands/Activities/ActivityHardDeleteCommand.php | 4 +-\n app/Console/Commands/Activities/Copy.php | 2 +\n app/Console/Commands/Activities/SetupIntegration/TwilioSetS3RecordingCredentialsCommand.php | 119 ++++\n app/Console/Commands/Activities/UpdateActivityElasticSearchDocumentCommand.php | 10 +-\n app/Console/Commands/Crm/BackfillOpportunityUserFromAccountCommand.php | 126 ++++\n app/Console/Commands/Elasticsearch/AsyncUpdateEsActivities.php | 19 -\n app/Console/Commands/Elasticsearch/AsyncUpdateEsEntities.php | 50 +-\n app/Console/Commands/Elasticsearch/ResetAsyncElasticSearchCommand.php | 30 +-\n app/Console/Commands/GeckoExport/GeckoExportParticipantSpeechesCommand.php | 14 +-\n app/Console/Commands/IssueMcpTokenCommand.php | 84 +++\n app/Console/Commands/JiminnyDebugCommand.php | 7 +-\n app/Console/Commands/Tracks/CleanupActivityTracksCommand.php | 2 +-\n app/Console/Kernel.php | 6 +-\n app/Contracts/Services/Calendar/CalendarTrait.php | 80 ++-\n app/Events/AutomatedReports/AutomatedReportGenerated.php | 3 +\n app/Http/Controllers/API/AiCallScoring/AiScorecardController.php | 7 +-\n app/Http/Controllers/API/TeamAiAutomationController.php | 8 +\n app/Http/Controllers/CustomerApi/CustomerApiController.php | 4 +-\n app/Http/Controllers/Kiosk/ActivityController.php | 58 +-\n app/Http/Controllers/Settings/PlaybookController.php | 15 +-\n app/Http/Kernel.php | 23 +\n app/Http/Middleware/McpAuditMiddleware.php | 156 ++++\n app/Http/Middleware/McpTierMiddleware.php | 54 ++\n app/Http/Requests/API/V2/ZapierUploadActivityRequest.php | 28 +-\n app/Jobs/Activity/Import/ImportTwilioVideoSpeechesJob.php | 25 +-\n app/Jobs/Activity/Import/IsActivityReadyForProcessingJob.php | 10 +-\n app/Jobs/Calendar/SetupCalendarSync.php | 21 +-\n app/Jobs/ImportRemoteTrackJob.php | 96 ++-\n app/Jobs/Mailbox/EmailTextRelay.php | 15 +-\n app/Mcp/Contracts/McpCallRepositoryInterface.php | 30 +\n app/Mcp/DTO/ListCallsFilters.php | 29 +\n app/Mcp/Errors/McpError.php | 123 ++++\n app/Mcp/Repositories/McpActivityHydrator.php | 145 ++++\n app/Mcp/Repositories/McpCallRepository.php | 84 +++\n app/Mcp/Repositories/McpElasticCallRepository.php | 171 +++++\n app/Mcp/Servers/JiminnyServer.php | 38 +\n app/Mcp/Tools/ListCallsTool.php | 205 ++++++\n app/Models/Activity.php | 10 +-\n app/Models/Activity/Transcription.php | 17 +-\n app/Models/ElasticSearch/OpportunityElasticSearchTrait.php | 5 +\n app/Models/Participant.php | 1 +\n app/Providers/AppServiceProvider.php | 22 +\n app/Repositories/Crm/ContactRepository.php | 69 +-\n app/Repositories/ParticipantSpeechRepository.php | 13 +-\n app/Services/Activity/ParticipantsService.php | 19 +-\n app/Services/Activity/Twilio/S3RecordingCredentialsService.php | 82 +++\n app/Services/ActivityService.php | 21 +-\n app/Services/Calendar/CalendarActivityService.php | 46 ++\n app/Services/Calendar/Command/ImportParticipants.php | 1 +\n app/Services/Calendar/Command/MapActivityData.php | 106 +--\n app/Services/Calendar/GoogleCalendarService.php | 12 +-\n app/Services/Crm/Close/Processor/OpportunityProcessor.php | 2 +-\n app/Services/Crm/Close/Service.php | 22 +-\n app/Services/Crm/Copper/Service.php | 12 +-\n app/Services/Crm/Hubspot/Service.php | 154 +++-\n app/Services/Crm/Hubspot/ServiceTraits/OpportunitySyncTrait.php | 88 ++-\n app/Services/Crm/IntegrationApp/ServiceTraits/SyncCrmEntitiesTrait.php | 22 +-\n app/Services/Crm/Pipedrive/Service.php | 17 +-\n app/Services/Crm/Salesforce/Service.php | 42 +-\n app/Services/Mail/Office/EmailApiClient.php | 129 +---\n app/Services/RecallAI/Commands/ScheduleBotCommand.php | 39 +-\n app/Services/RecallAI/RecallAIService.php | 22 +-\n composer.json | 3 +-\n composer.lock | 87 ++-\n config/mcp.php | 23 +\n database/migrations/2026_04_30_120000_create_mcp_audit_log_table.php | 36 +\n docs/mcp/explorer/explorer.html | 697 ++++++++++++++++++\n docs/mcp/explorer/explorer.template.html | 697 ++++++++++++++++++\n docs/mcp/explorer/generate.js | 215 ++++++\n docs/mcp/explorer/tool-explorer-meta.json | 11 +\n docs/mcp/tools-list.json | 2536 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++\n docs/mcp/tools.md | 621 ++++++++++++++++\n front-end/package.json | 4 +-\n front-end/src/components/Settings/OrgSettings/AiAutomation/CrmFilling/TemplateFieldForm.vue | 28 +-\n front-end/src/components/Settings/OrgSettings/Playbooks/AddEditPlaybook.vue | 10 +\n front-end/src/components/playback/comments/ActivityComment.less | 10 +-\n front-end/src/components/shared/PromptTester/PromptTester.vue | 12 +-\n front-end/src/components/shared/__tests__/PromptTester.spec.js | 35 +\n front-end/src/components/shared/modals/EntityPickerModal/__tests__/useEntitiesCache.spec.ts | 37 +\n front-end/src/components/shared/modals/EntityPickerModal/useEntitiesCache.ts | 9 +\n front-end/yarn.lock | 16 +-\n phpstan-baseline.neon | 50 --\n routes/api.php | 11 +\n sonar-project.properties | 91 ++-\n tests/Feature/Component/Nudge/ProcessOrganisationImmediateNudgesJobTest.php | 534 ++++++++++++++\n tests/Feature/Jobs/ImportRemoteTrackJobTest.php | 283 +++++++-\n tests/Feature/Mcp/IssueMcpTokenCommandTest.php | 53 ++\n tests/Feature/Mcp/ListCallsToolElasticFeatureTest.php | 155 ++++\n tests/Feature/Mcp/ListCallsToolFeatureTest.php | 352 ++++++++++\n tests/Feature/Mcp/McpTestHelpersTrait.php | 77 ++\n tests/Feature/Services/Team/TeamDeleteHandlers/Retention/RetentionRepositoryHandlerTest.php | 1 +\n tests/Stubs/SentryStub.php | 18 +\n tests/Unit/Component/ActivityAnalytics/Service/CalculateTalkTimeOffsetFromTranscriptionTest.php | 28 +-\n tests/Unit/Component/AiActivityType/Services/AiActivityTypeEligibilityCheckerTest.php | 103 ++-\n tests/Unit/Component/AiAutomation/Actions/PrepareUpdateDtoActionTest.php | 91 +++\n tests/Unit/Component/AiAutomation/Services/CrmFillingEligibilityCheckerTest.php | 124 ++++\n tests/Unit/Component/AiAutomation/TestCrmAiPromptServiceTest.php | 67 +-\n tests/Unit/Component/AiCallScoring/Services/AiCallScoringEligibilityCheckerTest.php | 55 ++\n tests/Unit/Component/ES/ElasticSearchWorkerManagerTest.php | 135 ----\n tests/Unit/Component/ES/Processor/Actions/LoadDocumentsActionTest.php | 220 ++++++\n tests/Unit/Component/ES/Processor/EntityQueryBuilderTest.php | 21 +-\n tests/Unit/Component/ES/Processor/Traits/SkipActivityTraitTest.php | 51 --\n tests/Unit/Component/ES/Worker/ActivityWorkerTest.php | 174 -----\n tests/Unit/Component/ES/Worker/EntityWorkerTest.php | 97 ---\n tests/Unit/Component/ES/Worker/WorkerAmountTest.php | 116 ---\n tests/Unit/Component/Encoding/Job/AnalyzeTrackChannelsJobTest.php | 52 +-\n tests/Unit/Component/Encoding/Service/GenerateSpeechFromSilenceServiceTest.php | 171 ++---\n tests/Unit/Component/FFMpeg/Services/GetSpeechIntervalsTest.php | 36 +-\n tests/Unit/Component/LanguageDetection/Services/FindSpeechTimeServiceTest.php | 20 +-\n tests/Unit/Component/MobileSettings/MobileSettingsControllerTest.php | 5 +-\n tests/Unit/Component/ParticipantSpeech/Services/ParticipantSpeechesCreatorTest.php | 75 ++\n tests/Unit/Component/ParticipantSpeech/Services/ParticipantSpeechesDeleterTest.php | 63 ++\n tests/Unit/Component/ParticipantSpeech/Services/ParticipantSpeechesProviderTest.php | 134 ++++\n tests/Unit/Component/ParticipantSpeech/Services/ParticipantSpeechesUploaderTest.php | 57 ++\n tests/Unit/Component/Transcription/Diarization/Services/GetNormalizedParticipantSpeechesServiceTest.php | 51 +-\n tests/Unit/Component/Transcription/Diarization/Source/MeetingBotSourceTest.php | 29 +-\n tests/Unit/Contracts/Services/Calendar/CalendarTraitTest.php | 58 +-\n tests/Unit/Http/Controllers/Kiosk/ActivityControllerTest.php | 159 +++++\n tests/Unit/Jobs/Activity/Import/ImportTwilioVideoSpeechesJobTest.php | 22 +-\n tests/Unit/Jobs/Activity/Import/IsActivityReadyForProcessingJobTest.php | 26 +-\n tests/Unit/Jobs/Calendar/SetupCalendarSyncTest.php | 25 -\n tests/Unit/Services/Activity/ParticipantsServiceTest.php | 12 +-\n tests/Unit/Services/Activity/Twilio/S3RecordingCredentialsServiceTest.php | 180 +++++\n tests/Unit/Services/ActivityServiceTest.php | 132 ++++\n tests/Unit/Services/Calendar/CalendarActivityServiceTest.php | 150 +++-\n tests/Unit/Services/Calendar/Command/ImportParticipantsTest.php | 6 +-\n tests/Unit/Services/Calendar/Command/MapActivityDataTest.php | 78 +-\n tests/Unit/Services/Calendar/GoogleCalendarServiceTest.php | 116 +++\n tests/Unit/Services/Crm/Close/ServiceTest.php | 165 +++++\n tests/Unit/Services/Crm/Hubspot/ServiceTest.php | 272 ++++++-\n tests/Unit/Services/Crm/Hubspot/ServiceTraits/OpportunitySyncTest.php | 25 +-\n tests/Unit/Services/Crm/Hubspot/ServiceTraits/OpportunitySyncTraitMatchActivitiesTest.php | 3 +-\n tests/Unit/Services/Crm/IntegrationApp/ServiceTraits/SyncCrmEntitiesTraitOpportunitiesTest.php | 40 ++\n tests/Unit/Services/Crm/Pipedrive/ImportOpportunityMatchActivitiesTest.php | 2 +\n tests/Unit/Services/Crm/Salesforce/ServiceTest.php | 139 ++++\n tests/Unit/Services/Mail/Office/EmailApiClientTest.php | 195 ++---\n tests/Unit/Services/RecallAI/RecallAIServiceTest.php | 24 +-\n 175 files changed, 12562 insertions(+), 2162 deletions(-)\n create mode 120000 CLAUDE.md\n create mode 100644 app/Component/AiAutomation/Services/CrmFillingEligibilityChecker.php\n delete mode 100644 app/Component/ES/ElasticSearchWorkerManager.php\n delete mode 100644 app/Component/ES/Processor/Traits/SkipActivityTrait.php\n delete mode 100644 app/Component/ES/Worker/ActivityWorker.php\n delete mode 100644 app/Component/ES/Worker/EntityWorker.php\n delete mode 100644 app/Component/ES/Worker/WorkerAmount.php\n delete mode 100644 app/Component/ES/Worker/WorkerInterface.php\n create mode 100644 app/Component/ProphetAi/Exceptions/InsufficientTranscriptException.php\n create mode 100644 app/Component/Transcription/DTO/Http/Transcription/AssemblyAI/AssemblyAI/NoAssemblyIdException.php\n create mode 100644 app/Component/Transcription/DTO/Http/Transcription/TranscriptionIsNotCorrectFormatException.php\n create mode 100644 app/Console/Commands/Activities/SetupIntegration/TwilioSetS3RecordingCredentialsCommand.php\n create mode 100644 app/Console/Commands/Crm/BackfillOpportunityUserFromAccountCommand.php\n delete mode 100644 app/Console/Commands/Elasticsearch/AsyncUpdateEsActivities.php\n create mode 100644 app/Console/Commands/IssueMcpTokenCommand.php\n create mode 100644 app/Http/Middleware/McpAuditMiddleware.php\n create mode 100644 app/Http/Middleware/McpTierMiddleware.php\n create mode 100644 app/Mcp/Contracts/McpCallRepositoryInterface.php\n create mode 100644 app/Mcp/DTO/ListCallsFilters.php\n create mode 100644 app/Mcp/Errors/McpError.php\n create mode 100644 app/Mcp/Repositories/McpActivityHydrator.php\n create mode 100644 app/Mcp/Repositories/McpCallRepository.php\n create mode 100644 app/Mcp/Repositories/McpElasticCallRepository.php\n create mode 100644 app/Mcp/Servers/JiminnyServer.php\n create mode 100644 app/Mcp/Tools/ListCallsTool.php\n create mode 100644 app/Services/Activity/Twilio/S3RecordingCredentialsService.php\n create mode 100644 config/mcp.php\n create mode 100644 database/migrations/2026_04_30_120000_create_mcp_audit_log_table.php\n create mode 100644 docs/mcp/explorer/explorer.html\n create mode 100644 docs/mcp/explorer/explorer.template.html\n create mode 100644 docs/mcp/explorer/generate.js\n create mode 100644 docs/mcp/explorer/tool-explorer-meta.json\n create mode 100644 docs/mcp/tools-list.json\n create mode 100644 docs/mcp/tools.md\n create mode 100644 front-end/src/components/shared/modals/EntityPickerModal/__tests__/useEntitiesCache.spec.ts\n create mode 100644 tests/Feature/Component/Nudge/ProcessOrganisationImmediateNudgesJobTest.php\n create mode 100644 tests/Feature/Mcp/IssueMcpTokenCommandTest.php\n create mode 100644 tests/Feature/Mcp/ListCallsToolElasticFeatureTest.php\n create mode 100644 tests/Feature/Mcp/ListCallsToolFeatureTest.php\n create mode 100644 tests/Feature/Mcp/McpTestHelpersTrait.php\n create mode 100644 tests/Stubs/SentryStub.php\n create mode 100644 tests/Unit/Component/AiAutomation/Services/CrmFillingEligibilityCheckerTest.php\n delete mode 100644 tests/Unit/Component/ES/ElasticSearchWorkerManagerTest.php\n create mode 100644 tests/Unit/Component/ES/Processor/Actions/LoadDocumentsActionTest.php\n delete mode 100644 tests/Unit/Component/ES/Processor/Traits/SkipActivityTraitTest.php\n delete mode 100644 tests/Unit/Component/ES/Worker/ActivityWorkerTest.php\n delete mode 100644 tests/Unit/Component/ES/Worker/EntityWorkerTest.php\n delete mode 100644 tests/Unit/Component/ES/Worker/WorkerAmountTest.php\n create mode 100644 tests/Unit/Component/ParticipantSpeech/Services/ParticipantSpeechesCreatorTest.php\n create mode 100644 tests/Unit/Http/Controllers/Kiosk/ActivityControllerTest.php\n create mode 100644 tests/Unit/Services/Activity/Twilio/S3RecordingCredentialsServiceTest.php\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20725-handle-HS-search-rate-limit) $ git status\nOn branch master\nYour branch is behind 'origin/master' by 114 commits, and can be fast-forwarded.\n (use \"git pull\" to update your local branch)\n\nChanges not staged for commit:\n (use \"git add <file>...\" to update what will be committed)\n (use \"git restore <file>...\" to discard changes in working directory)\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tmodified: .env.local\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tmodified: app/Component/SCIM/Constants.php\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tmodified: app/Component/SCIM/ScimProvisioning.php\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tmodified: app/Component/Twilio/Conference/ConferenceManager/SoftPhoneManager.php\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tmodified: app/Console/Commands/JiminnyDebugCommand.php\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tmodified: app/DTO/SCIM/AAD/Request/CoreUserRequest.php\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tmodified: app/DTO/SCIM/AAD/Response/CoreUser.php\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tmodified: app/Services/Telephony/TextMessagingService.php\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tmodified: config/logging.php\n\nUntracked files:\n (use \"git add <file>...\" to include in what will be committed)\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\t.env.nikilocal\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\t.env.other\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tWEBHOOK_FILTERING_IMPLEMENTATION.md\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tapp/Component/SCIM/Mutators/Attributes/User/RoleAttr.php\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tapp/Console/Commands/Crm/Hubspot/SimulateWebhooksCommand.php\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tapp/Console/Commands/Reports/CreateMockAskJiminnyReportResultCommand.php\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tapp/Rules/ListenerRoleCannotHaveAdminOrManagerPermissionRule.php\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tids.txt\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tpublic/favicon.ico\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\traw_sql_query.sql\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\ttests/Unit/Component/SCIM/Mutators/Attributes/User/RoleAttrTest.php\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\ttests/Unit/Policies/CanAccessAiReportsTest.php\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\ttests/Unit/Rules/ListenerRoleCannotHaveAdminOrManagerPermissionRuleTest.php\n\nno changes added to commit (use \"git add\" and/or \"git commit -a\")\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (master) $ git pull\nremote: Enumerating objects: 306, done.\nremote: Counting objects: 100% (299/299), done.\nremote: Compressing objects: 100% (183/183), done.\nremote: Total 306 (delta 213), reused 171 (delta 116), pack-reused 7 (from 1)\nReceiving objects: 100% (306/306), 80.12 KiB | 1000.00 KiB/s, done.\nResolving deltas: 100% (213/213), completed with 53 local objects.\nFrom github.com:jiminny/app\n 90bca4e4b2..5604af40cf master -> origin/master\n 4e7078fd8b..0b8343d179 JY-18091-upgrade-to-php-8-5 -> origin/JY-18091-upgrade-to-php-8-5\n 098eeaa087..d5a447e492 JY-20613-allow-owner-role-on-team-setup -> origin/JY-20613-allow-owner-role-on-team-setup\n c3a76ace91..af65249d0f JY-20749-user-can-view-recorded-meetings -> origin/JY-20749-user-can-view-recorded-meetings\n d94a285ae7..7ce96cb5fe JY-20808-low-priority-indexing-queue -> origin/JY-20808-low-priority-indexing-queue\n * [new branch] JY-20842-remove-partial-updater -> origin/JY-20842-remove-partial-updater\n * [new branch] JY-20920-fix-participant-flip -> origin/JY-20920-fix-participant-flip\n * [new branch] secfix/npm-20260519 -> origin/secfix/npm-20260519\nUpdating cb4ebf0c36..5604af40cf\nFast-forward\n app/Component/ES/ChunkSize.php | 54 +++++++++++++++++++\n app/Component/ES/Processor/DTOs/SelectionList.php | 4 +-\n app/Component/ES/Processor/TargetEntitiesSelector.php | 19 ++++---\n app/Component/MeetingBot/Service/ParticipantMatcher.php | 46 ++++++++++++----\n app/Exceptions/RateLimitException.php | 19 ++++++-\n app/Http/Middleware/McpTierMiddleware.php | 27 ++--------\n app/Jobs/Crm/MatchActivityCrmData.php | 47 ++++++++++++----\n app/Jobs/Middleware/HandleHubspotRateLimit.php | 42 +++++++++++++++\n app/Mcp/Servers/JiminnyServer.php | 2 +\n app/Mcp/Tools/GetMeTool.php | 157 +++++++++++++++++++++++++++++++++++++++++++++++++++++\n app/Models/Feature/FeatureEnum.php | 1 +\n app/Services/Activity/HubSpot/ProviderResolver.php | 4 +-\n app/Services/Activity/HubSpot/ProviderResolverInterface.php | 2 +-\n app/Services/Activity/HubSpot/Providers/Provider.php | 2 +-\n app/Services/Activity/HubSpot/Providers/ProviderKixie.php | 2 +-\n app/Services/Activity/HubSpot/Providers/ProviderOrum.php | 2 +-\n app/Services/Activity/HubSpot/Providers/ProviderTwilio.php | 2 +-\n app/Services/Activity/HubSpot/Providers/ProviderTwilioFlex.php | 5 +-\n app/Services/Activity/HubSpot/Service.php | 97 +++++++++++++++++++++++++++------\n app/Services/Crm/Hubspot/Client.php | 132 +++++++++++++++++++++++++++++++++++++++++++++\n app/Services/Crm/Hubspot/HubspotClientInterface.php | 15 ++++++\n app/Services/Crm/Hubspot/Pagination/HubspotPaginationService.php | 21 ++++----\n app/Services/Crm/Hubspot/Pagination/PaginationState.php | 2 +-\n database/migrations/2026_05_13_124153_create_mcp_feature_flag.php | 25 +++++++++\n tests/Feature/Mcp/GetMeToolFeatureTest.php | 140 +++++++++++++++++++++++++++++++++++++++++++++++\n tests/Feature/Mcp/ListCallsToolFeatureTest.php | 2 +-\n tests/Feature/Mcp/McpTestHelpersTrait.php | 19 ++++++-\n tests/Unit/Component/ES/ChunkSizeTest.php | 50 +++++++++++++++++\n tests/Unit/Component/ES/Processor/DTOs/SelectionListTest.php | 27 +++++++---\n tests/Unit/Component/ES/Processor/TargetEntitiesSelectorTest.php | 39 ++++++++------\n tests/Unit/Component/MeetingBot/Service/ParticipantMatcherTest.php | 68 ++++++++++++++++++++++-\n tests/Unit/Exceptions/RateLimitExceptionTest.php | 56 +++++++++++++++++++\n tests/Unit/Jobs/Crm/MatchActivityCrmDataTest.php | 8 +--\n tests/Unit/Jobs/Middleware/HandleHubspotRateLimitTest.php | 151 +++++++++++++++++++++++++++++++++++++++++++++++++++\n tests/Unit/Services/Activity/HubSpot/ServiceTest.php | 109 +++++++++++++++++++++++++++++++++++++\n tests/Unit/Services/Crm/Hubspot/ClientTest.php | 250 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++\n tests/Unit/Services/Crm/Hubspot/Pagination/HubspotPaginationServiceTest.php | 283 +++++++++++++++++++++---------------------------------------------------------------------------\n 37 files changed, 1587 insertions(+), 344 deletions(-)\n create mode 100644 app/Component/ES/ChunkSize.php\n create mode 100644 app/Jobs/Middleware/HandleHubspotRateLimit.php\n create mode 100644 app/Mcp/Tools/GetMeTool.php\n create mode 100644 database/migrations/2026_05_13_124153_create_mcp_feature_flag.php\n create mode 100644 tests/Feature/Mcp/GetMeToolFeatureTest.php\n create mode 100644 tests/Unit/Component/ES/ChunkSizeTest.php\n create mode 100644 tests/Unit/Exceptions/RateLimitExceptionTest.php\n create mode 100644 tests/Unit/Jobs/Middleware/HandleHubspotRateLimitTest.php\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (master) $ git pull\nAlready up to date.\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (master) $ co -b JY-20676-delete-report-related-objects\nSwitched to a new branch 'JY-20676-delete-report-related-objects'\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20676-delete-report-related-objects) $ csfix\ndocker exec -it docker_lamp_1 ./vendor/bin/php-cs-fixer fix --config=.php-cs-fixer.dist.php -v --using-cache=no --diff \nPHP CS Fixer 3.87.1 Alexander by Fabien Potencier, Dariusz Ruminski and contributors.\nPHP runtime: 8.3.30\nRunning analysis on 7 cores with 10 files per process.\nParallel runner is an experimental feature and may be unstable, use it at your own risk. Feedback highly appreciated!\nLoaded config default from \".php-cs-fixer.dist.php\".\n 5690/5690 [▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓] 100%\n\n 1) app/Console/Commands/JiminnyDebugCommand.php (statement_indentation, blank_line_before_statement)\n ---------- begin diff ----------\n--- /home/jiminny/app/Console/Commands/JiminnyDebugCommand.php\n+++ /home/jiminny/app/Console/Commands/JiminnyDebugCommand.php\n@@ -23,6 +23,7 @@\n \n if ($action === 'redis-set') {\n $this->testRedisSet();\n+\n return;\n }\n \n@@ -45,7 +46,7 @@\n $ttl = 60;\n \n try {\n-// $result = Redis::set($testKey, $testValue, 'EX', $ttl, 'NX');\n+ // $result = Redis::set($testKey, $testValue, 'EX', $ttl, 'NX');\n $result = Redis::set($testKey, $testValue, ['nx', 'ex' => $ttl]);\n \n if ($result) {\n\n ----------- end diff -----------\n\n\nFixed 1 of 5690 files in 50.673 seconds, 67.00 MB memory used\n\nWhat's next:\n Try Docker Debug for seamless, persistent debugging tools in any container or image → docker debug docker_lamp_1\n Learn more at https://docs.docker.com/go/debug-cli/\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20676-delete-report-related-objects) $ ;xd\ndocker exec -it docker_lamp_1 bash -c \"mv /usr/local/etc/php/conf.d/xdebug.ini ~/xdebug.ini\"\n\nWhat's next:\n Try Docker Debug for seamless, persistent debugging tools in any container or image → docker debug docker_lamp_1\n Learn more at https://docs.docker.com/go/debug-cli/\ndocker exec -it docker_lamp_1 supervisorctl restart all\njiminny-worker-processing-2:jiminny-worker-processing-2_00: stopped\njiminny-worker-processing-3:jiminny-worker-processing-3_00: stopped\njiminny-worker-processing-4:jiminny-worker-processing-4_00: stopped\njiminny-worker-processing-5:jiminny-worker-processing-5_00: stopped\njiminny-worker-processing-delayed:jiminny-worker-processing-delayed_00: stopped\nworker-analytics:worker-analytics_00: stopped\nworker-crm-update:worker-crm-update_00: stopped\nworker-download:worker-download_00: stopped\nworker-nudges:worker-nudges_00: stopped\nworker-calendar:worker-calendar_00: stopped\nworker-audio:worker-audio_00: stopped\njiminny-worker-processing-1:jiminny-worker-processing-1_00: stopped\nworker:worker_00: stopped\nworker-conferences:worker-conferences_00: stopped\nworker-crm-sync:worker-crm-sync_00: stopped\nworker-emails:worker-emails_00: stopped\nworker-es-update:worker-es-update_00: stopped\nartisan-schedule:artisan-schedule_00: stopped\nartisan-schedule:artisan-schedule_00: started\njiminny-worker-processing-1:jiminny-worker-processing-1_00: started\njiminny-worker-processing-2:jiminny-worker-processing-2_00: started\njiminny-worker-processing-3:jiminny-worker-processing-3_00: started\njiminny-worker-processing-4:jiminny-worker-processing-4_00: started\njiminny-worker-processing-5:jiminny-worker-processing-5_00: started\njiminny-worker-processing-delayed:jiminny-worker-processing-delayed_00: started\nworker:worker_00: started\nworker-analytics:worker-analytics_00: started\nworker-audio:worker-audio_00: started\nworker-calendar:worker-calendar_00: started\nworker-conferences:worker-conferences_00: started\nworker-crm-sync:worker-crm-sync_00: started\nworker-crm-update:worker-crm-update_00: started\nworker-download:worker-download_00: started\nworker-emails:worker-emails_00: started\nworker-es-update:worker-es-update_00: started\nworker-nudges:worker-nudges_00: started\n\nWhat's next:\n Try Docker Debug for seamless, persistent debugging tools in any container or image → docker debug docker_lamp_1\n Learn more at https://docs.docker.com/go/debug-cli/\ndocker exec -it docker_lamp_1 php -v\nPHP 8.3.30 (cli) (built: Mar 16 2026 22:32:32) (NTS)\nCopyright (c) The PHP Group\nZend Engine v4.3.30, Copyright (c) Zend Technologies\n with Zend OPcache v8.3.30, Copyright (c), by Zend Technologies\n\nWhat's next:\n Try Docker Debug for seamless, persistent debugging tools in any container or image → docker debug docker_lamp_1\n Learn more at https://docs.docker.com/go/debug-cli/\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20676-delete-report-related-objects) $ git status\nOn branch JY-20676-delete-report-related-objects\nChanges not staged for commit:\n (use \"git add <file>...\" to update what will be committed)\n (use \"git restore <file>...\" to discard changes in working directory)\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tmodified: .env.local\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tmodified: app/Console/Commands/JiminnyDebugCommand.php\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tmodified: config/logging.php\n\nUntracked files:\n (use \"git add <file>...\" to include in what will be committed)\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\t.env.nikilocal\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\t.env.other\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tWEBHOOK_FILTERING_IMPLEMENTATION.md\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tapp/Console/Commands/Crm/Hubspot/SimulateWebhooksCommand.php\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tapp/Console/Commands/Reports/CreateMockAskJiminnyReportResultCommand.php\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tids.txt\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tpublic/favicon.ico\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\traw_sql_query.sql\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\ttests/Unit/Policies/CanAccessAiReportsTest.php\n\nno changes added to commit (use \"git add\" and/or \"git commit -a\")\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20676-delete-report-related-objects) $ git push -u origin JY-20676-delete-report-related-objects\nEnumerating objects: 45, done.\nCounting objects: 100% (45/45), done.\nDelta compression using up to 8 threads\nCompressing objects: 100% (24/24), done.\nWriting objects: 100% (24/24), 3.62 KiB | 3.62 MiB/s, done.\nTotal 24 (delta 19), reused 0 (delta 0), pack-reused 0\nremote: Resolving deltas: 100% (19/19), completed with 19 local objects.\nremote: \nremote: Create a pull request for 'JY-20676-delete-report-related-objects' on GitHub by visiting:\nremote: https://github.com/jiminny/app/pull/new/JY-20676-delete-report-related-objects\nremote: \nTo github.com:jiminny/app.git\n * [new branch] JY-20676-delete-report-related-objects -> JY-20676-delete-report-related-objects\nbranch 'JY-20676-delete-report-related-objects' set up to track 'origin/JY-20676-delete-report-related-objects'.\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20676-delete-report-related-objects) $ csfix\ndocker exec -it docker_lamp_1 ./vendor/bin/php-cs-fixer fix --config=.php-cs-fixer.dist.php -v --using-cache=no --diff \nPHP CS Fixer 3.87.1 Alexander by Fabien Potencier, Dariusz Ruminski and contributors.\nPHP runtime: 8.3.30\nRunning analysis on 7 cores with 10 files per process.\nParallel runner is an experimental feature and may be unstable, use it at your own risk. Feedback highly appreciated!\nLoaded config default from \".php-cs-fixer.dist.php\".\n 5690/5690 [▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓] 100%\n\n 1) app/Http/Controllers/API/V2/AskJiminnyReportsController.php (blank_line_before_statement)\n ---------- begin diff ----------\n--- /home/jiminny/app/Http/Controllers/API/V2/AskJiminnyReportsController.php\n+++ /home/jiminny/app/Http/Controllers/API/V2/AskJiminnyReportsController.php\n@@ -140,6 +140,7 @@\n if ($enabled && $report->isAskJiminnyReport() && ! $report->canExecute()) {\n $error = 'This report is missing a saved search or prompt. ' .\n 'Edit the report to complete the setup before enabling it.';\n+\n return new JsonResponse(\n ['error' => $error],\n Response::HTTP_UNPROCESSABLE_ENTITY\n\n ----------- end diff -----------\n\n\nFixed 1 of 5690 files in 71.757 seconds, 60.00 MB memory used\n\nWhat's next:\n Try Docker Debug for seamless, persistent debugging tools in any container or image → docker debug docker_lamp_1\n Learn more at https://docs.docker.com/go/debug-cli/\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20676-delete-report-related-objects) $ git pull\nremote: Enumerating objects: 158, done.\nremote: Counting objects: 100% (103/103), done.\nremote: Compressing objects: 100% (37/37), done.\nremote: Total 158 (delta 80), reused 74 (delta 66), pack-reused 55 (from 3)\nReceiving objects: 100% (158/158), 80.59 KiB | 982.00 KiB/s, done.\nResolving deltas: 100% (85/85), completed with 45 local objects.\nFrom github.com:jiminny/app\n 02a33811ee..c6ce5e2440 JY-20676-delete-report-related-objects -> origin/JY-20676-delete-report-related-objects\n 7ce96cb5fe..6c59f04358 JY-20808-low-priority-indexing-queue -> origin/JY-20808-low-priority-indexing-queue\n 3906a9238a..2b5e6ea62b JY-20835-mcp-enable-users-to-get-a-list-of-deals-and-their-details -> origin/JY-20835-mcp-enable-users-to-get-a-list-of-deals-and-their-details\n 5604af40cf..ea3519f0e2 master -> origin/master\n * [new branch] switch-eu-assembly -> origin/switch-eu-assembly\nUpdating 02a33811ee..c6ce5e2440\nFast-forward\n app/Component/ES/ElasticSearchDocumentPartialUpdater.php | 48 ---\n app/Component/ParticipantSpeech/Services/ParticipantAttributionService.php | 4 +-\n app/Component/Settings/AutoScoring/Services/UpdateAutoScoreService.php | 20 +-\n app/Component/Transcription/Service/StorageService.php | 8 +-\n front-end/package.json | 2 +-\n front-end/src/components/DealInsights/Modals/AskAnythingModal.vue | 23 ++\n front-end/src/components/shared/AskAnything/AskAnythingPromptFormItem.vue | 2 +\n front-end/src/components/shared/AskAnything/AskAnythingSettingsDrawer.vue | 23 +-\n front-end/src/components/shared/AskAnything/__mocks__/AskAnythingSettingsDrawer.mocks.js | 1 +\n front-end/src/components/shared/AskAnything/__tests__/AskAnythingSettingsDrawer.spec.js | 135 ++++---\n front-end/src/components/shared/AskAnything/__tests__/__snapshots__/AskAnythingSettingsDrawer.spec.js.html | 1235 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++\n front-end/src/components/shared/AskAnything/__tests__/__snapshots__/AskAnythingSettingsDrawer.spec.js.snap | 1382 ----------------------------------------------------------------\n front-end/src/components/shared/AskAnything/prompts.js | 1 +\n front-end/src/components/shared/AskAnything/useAskAnything.js | 1 +\n front-end/yarn.lock | 8 +-\n tests/Unit/Component/ES/ElasticSearchDocumentPartialUpdaterTest.php | 42 --\n tests/Unit/Component/Settings/AutoScoring/Services/UpdateAutoScoreServiceTest.php | 86 ++--\n tests/Unit/Component/Transcription/Service/StorageServiceTest.php | 29 +-\n 18 files changed, 1448 insertions(+), 1602 deletions(-)\n delete mode 100644 app/Component/ES/ElasticSearchDocumentPartialUpdater.php\n create mode 100644 front-end/src/components/shared/AskAnything/__tests__/__snapshots__/AskAnythingSettingsDrawer.spec.js.html\n delete mode 100644 front-end/src/components/shared/AskAnything/__tests__/__snapshots__/AskAnythingSettingsDrawer.spec.js.snap\n delete mode 100644 tests/Unit/Component/ES/ElasticSearchDocumentPartialUpdaterTest.php\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20676-delete-report-related-objects) $ csfix\ndocker exec -it docker_lamp_1 ./vendor/bin/php-cs-fixer fix --config=.php-cs-fixer.dist.php -v --using-cache=no --diff \nPHP CS Fixer 3.87.1 Alexander by Fabien Potencier, Dariusz Ruminski and contributors.\nPHP runtime: 8.3.30\nRunning analysis on 7 cores with 10 files per process.\nParallel runner is an experimental feature and may be unstable, use it at your own risk. Feedback highly appreciated!\nLoaded config default from \".php-cs-fixer.dist.php\".\n 5688/5688 [▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓] 100%\n\n\nFixed 0 of 5688 files in 79.904 seconds, 60.00 MB memory used\n\nWhat's next:\n Try Docker Debug for seamless, persistent debugging tools in any container or image → docker debug docker_lamp_1\n Learn more at https://docs.docker.com/go/debug-cli/\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20676-delete-report-related-objects) $","is_focused":true},{"role":"AXRadioButton","text":"DOCKER","depth":2,"bounds":{"left":0.27027926,"top":1.0,"width":0.094913565,"height":-0.042298436},"on_screen":true,"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.27227393,"top":1.0,"width":0.005319149,"height":-0.04549086},"on_screen":true,"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"DEV (docker)","depth":2,"bounds":{"left":0.36519283,"top":1.0,"width":0.094913565,"height":-0.042298436},"on_screen":true,"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.3671875,"top":1.0,"width":0.005319149,"height":-0.04549086},"on_screen":true,"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"APP (-zsh)","depth":2,"bounds":{"left":0.46010637,"top":1.0,"width":0.09474734,"height":-0.042298436},"on_screen":true,"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.46210107,"top":1.0,"width":0.005319149,"height":-0.04549086},"on_screen":true,"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"screenpipe\"","depth":2,"bounds":{"left":0.55485374,"top":1.0,"width":0.09474734,"height":-0.042298436},"on_screen":true,"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.5568484,"top":1.0,"width":0.005319149,"height":-0.04549086},"on_screen":true,"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"-zsh","depth":2,"bounds":{"left":0.64960104,"top":1.0,"width":0.09474734,"height":-0.042298436},"on_screen":true,"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.6515958,"top":1.0,"width":0.005319149,"height":-0.04549086},"on_screen":true,"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"⌥⌘1","depth":1,"bounds":{"left":0.7307181,"top":1.0,"width":0.01861702,"height":-0.023144484},"on_screen":true,"automation_id":"_NS:8","role_description":"text"},{"role":"AXStaticText","text":"APP (-zsh)","depth":1,"bounds":{"left":0.49900267,"top":1.0,"width":0.024601065,"height":-0.02394259},"on_screen":true,"role_description":"text"}]...
|
2802650493718167367
|
-1358120912881272742
|
idle
|
accessibility
|
NULL
|
Last login: Mon May 18 09:17:28 on ttys007
Poetry Last login: Mon May 18 09:17:28 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 (pipedrive-sdk-poc) $ co master
error: Your local changes to the following files would be overwritten by checkout:
PIPEDRIVE_V2_MIGRATION_TICKETS.md
Please commit your changes or stash them before you switch branches.
Aborting
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (pipedrive-sdk-poc) $ git pull
remote: Enumerating objects: 1047, done.
remote: Counting objects: 100% (832/832), done.
remote: Compressing objects: 100% (298/298), done.
remote: Total 1047 (delta 634), reused 596 (delta 534), pack-reused 215 (from 3)
Receiving objects: 100% (1047/1047), 353.16 KiB | 1.56 MiB/s, done.
Resolving deltas: 100% (687/687), completed with 107 local objects.
From github.com:jiminny/app
907c54896c..34656c53ed pipedrive-sdk-poc -> origin/pipedrive-sdk-poc
03325ec50f..4e7078fd8b JY-18091-upgrade-to-php-8-5 -> origin/JY-18091-upgrade-to-php-8-5
e7d231e163..bc6a3fce6b JY-20725-handle-HS-search-rate-limit -> origin/JY-20725-handle-HS-search-rate-limit
* [new branch] JY-20749-user-can-view-recorded-meetings -> origin/JY-20749-user-can-view-recorded-meetings
98ca281a04..e0351be069 JY-20808-low-priority-indexing-queue -> origin/JY-20808-low-priority-indexing-queue
569abb5149..3906a9238a JY-20835-mcp-enable-users-to-get-a-list-of-deals-and-their-details -> origin/JY-20835-mcp-enable-users-to-get-a-list-of-deals-and-their-details
ad6c2a86e8..50eb6afba9 JY-20846-mcp-enable-the-ai-to-know-details-about-the-user -> origin/JY-20846-mcp-enable-the-ai-to-know-details-about-the-user
* [new branch] JY-20893-chunk-control-per-update-target -> origin/JY-20893-chunk-control-per-update-target
31c62924a5..cb4ebf0c36 master -> origin/master
Updating 907c54896c..34656c53ed
Fast-forward
PIPEDRIVE_V2_MIGRATION_TICKETS.md | 52 ++++++++++++++++++++++++++++++++++++++++++++++++++++
1 file changed, 52 insertions(+)
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (pipedrive-sdk-poc) $ co master
M .env.local
M config/logging.php
Switched to branch 'master'
Your branch is behind 'origin/master' by 31 commits, and can be fast-forwarded.
(use "git pull" to update your local branch)
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (master) $ git pull
Updating 31c62924a5..cb4ebf0c36
Fast-forward
app/Component/ES/Processor/Traits/SelectEntityListTrait.php | 20 ------
app/Services/Calendar/CalendarActivityService.php | 46 +++++++++++++
app/Services/Calendar/Command/MapActivityData.php | 106 +++-------------------------
docs/mcp/explorer/explorer.html | 104 +++++++++++++++++++++++++---
docs/mcp/explorer/explorer.template.html | 102 ++++++++++++++++++++++++---
docs/mcp/tools-list.json | 373 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++-------
docs/mcp/tools.md | 117 +++++++++++++++++++++++--------
tests/Unit/Component/ES/AsyncUpdateElasticSearchTest.php | 16 +----
tests/Unit/Component/ES/Listeners/UpdateMultipleTargetsListenerTest.php | 10 ---
tests/Unit/Component/ES/Listeners/UpdateSingleTargetListenerTest.php | 6 --
tests/Unit/Component/ES/Processor/TargetEntitiesSelectorTest.php | 9 ---
tests/Unit/Component/ES/Processor/Traits/SelectEntityListTraitTest.php | 15 ++--
tests/Unit/Component/ES/UpdateProcessManagerTest.php | 2 -
tests/Unit/Services/Calendar/CalendarActivityServiceTest.php | 150 ++++++++++++++++++++++++++++++++++++++--
tests/Unit/Services/Calendar/Command/MapActivityDataTest.php | 78 ++-------------------
15 files changed, 832 insertions(+), 322 deletions(-)
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (master) $ co -b JY-20613-allow-owner-role-on-team-setup
Switched to a new branch 'JY-20613-allow-owner-role-on-team-setup'
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20613-allow-owner-role-on-team-setup) $ csfix
docker exec -it docker_lamp_1 ./vendor/bin/php-cs-fixer fix --config=.php-cs-fixer.dist.php -v --using-cache=no --diff
PHP CS Fixer 3.87.1 Alexander by Fabien Potencier, Dariusz Ruminski and contributors.
PHP runtime: 8.3.30
Running 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!
Loaded config default from ".php-cs-fixer.dist.php".
5682/5682 [▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓] 100%
Fixed 0 of 5682 files in 56.978 seconds, 67.00 MB memory used
What's next:
Try Docker Debug for seamless, persistent debugging tools in any container or image → docker debug docker_lamp_1
Learn more at [URL_WITH_CREDENTIALS] ~/jiminny/app (JY-20613-allow-owner-role-on-team-setup) $ csfix
docker exec -it docker_lamp_1 ./vendor/bin/php-cs-fixer fix --config=.php-cs-fixer.dist.php -v --using-cache=no --diff
PHP CS Fixer 3.87.1 Alexander by Fabien Potencier, Dariusz Ruminski and contributors.
PHP runtime: 8.3.30
Running 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!
Loaded config default from ".php-cs-fixer.dist.php".
5682/5682 [▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓] 100%
Fixed 0 of 5682 files in 49.910 seconds, 60.00 MB memory used
What's next:
Try Docker Debug for seamless, persistent debugging tools in any container or image → docker debug docker_lamp_1
Learn more at [URL_WITH_CREDENTIALS] ~/jiminny/app (JY-20613-allow-owner-role-on-team-setup) $ git pull
remote: Enumerating objects: 248, done.
remote: Counting objects: 100% (128/128), done.
remote: Compressing objects: 100% (23/23), done.
remote: Total 59 (delta 43), reused 44 (delta 33), pack-reused 0 (from 0)
Unpacking objects: 100% (59/59), 10.48 KiB | 228.00 KiB/s, done.
From github.com:jiminny/app
b7df560451..190239dfd4 JY-20613-allow-owner-role-on-team-setup -> origin/JY-20613-allow-owner-role-on-team-setup
e0351be069..d94a285ae7 JY-20808-low-priority-indexing-queue -> origin/JY-20808-low-priority-indexing-queue
* [new branch] JY-20920-fix-participant-matcher -> origin/JY-20920-fix-participant-matcher
cb4ebf0c36..90bca4e4b2 master -> origin/master
Merge made by the 'ort' strategy.
app/Component/ES/ChunkSize.php | 54 +++++++++++++++++++++++++++
app/Component/ES/Processor/DTOs/SelectionList.php | 4 +-
app/Component/ES/Processor/TargetEntitiesSelector.php | 19 ++++++----
app/Http/Middleware/McpTierMiddleware.php | 27 +++-----------
app/Mcp/Servers/JiminnyServer.php | 2 +
app/Mcp/Tools/GetMeTool.php | 157 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
app/Models/Feature/FeatureEnum.php | 1 +
database/migrations/2026_05_13_124153_create_mcp_feature_flag.php | 25 +++++++++++++
front-end/src/components/Settings/Kiosk/modals/EditTeamModal/EditTeamModal.vue | 52 ++++++++++++++++++--------
front-end/src/components/Settings/Kiosk/modals/EditTeamModal/__tests__/EditTeamModal.spec.js | 14 +++++++
tests/Feature/Mcp/GetMeToolFeatureTest.php | 140 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
tests/Feature/Mcp/ListCallsToolFeatureTest.php | 2 +-
tests/Feature/Mcp/McpTestHelpersTrait.php | 19 +++++++++-
tests/Unit/Component/ES/ChunkSizeTest.php | 50 +++++++++++++++++++++++++
tests/Unit/Component/ES/Processor/DTOs/SelectionListTest.php | 27 ++++++++++----
tests/Unit/Component/ES/Processor/TargetEntitiesSelectorTest.php | 39 +++++++++++---------
16 files changed, 557 insertions(+), 75 deletions(-)
create mode 100644 app/Component/ES/ChunkSize.php
create mode 100644 app/Mcp/Tools/GetMeTool.php
create mode 100644 database/migrations/2026_05_13_124153_create_mcp_feature_flag.php
create mode 100644 tests/Feature/Mcp/GetMeToolFeatureTest.php
create mode 100644 tests/Unit/Component/ES/ChunkSizeTest.php
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20613-allow-owner-role-on-team-setup) $ git push
Enumerating objects: 40, done.
Counting objects: 100% (34/34), done.
Delta compression using up to 8 threads
Compressing objects: 100% (18/18), done.
Writing objects: 100% (18/18), 1.58 KiB | 1.58 MiB/s, done.
Total 18 (delta 15), reused 0 (delta 0), pack-reused 0
remote: Resolving deltas: 100% (15/15), completed with 13 local objects.
To github.com:jiminny/app.git
190239dfd4..ec1b261264 JY-20613-allow-owner-role-on-team-setup -> JY-20613-allow-owner-role-on-team-setup
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20613-allow-owner-role-on-team-setup) $ gbr
* JY-20613-allow-owner-role-on-team-setup
pipedrive-sdk-poc
master
JY-20903-update_activity-stage-on-opportunity-change
JY-20904-fix-update-es-on-activity-command
JY-20891-improve-sms-text-relays
JY-20725-handle-HS-search-rate-limit
JY-20818-move-AJ-reports-to-separated-datadog-metric
JY-20773-fix-automated-reports-user-pilot-tracking
JY-20157-AJ-report-not-send-notification
JY-20508-notify-before-AJ-report-expiration
JY-20372-ai-reports-promotion-pages
JY-20352-sync-opportunities-without-a-local-owner-user-id-is-null
JY-20738-debug-AJ-tracking-UP
a
JY-18909-automated-reports-ask-jiminny
JY-20692-fix-integration-app-[API_KEY]
JY-20553-debug-crm-sync-delays
JY-20698-fix-SF-activity-types-on-new-playbook
JY-20543-AJ-report-tracking
JY-20384-handle-auto-sync-with-no-access-to-event-type
JY-20458-ask-jiminny-user-definitions
JY-19666-fix-import-contacts-account-association
JY-19666-HS-import-contacts-and-accounts-batch-job
JY-20458-Ask-Jiminny-Reports
JY-20200-batch-update-CRM-objects-Salesforce
JY-19666-HS-webhooks-add-contact-and-company
JY-20348-trigger-setup-DI-layout-on-team-creation
JY-20326-refactor-info-message-in-command
JY-20317-fix-auto-log-delay-issue-on-all-channels-disabled
JY-20312-remove-on-update-change-last-synced-at-crm-configurations
JY-20306-SF-skip-auto-sync-for-task-based-playbook
JY-20192-remove-deleted-team-from-saved-search-filters
JY-20197-import-opportunity-batch-job
JY-20293-enable-status-field-for-pipedrive-deals
JY-20191-remove-commands-interactive-prompts
JY-20118-change-default-sync-strategy
JY-20183-add-cache-on-auto-log-delay
JY-20197-add-import-opportunity-batch-job
20118-hs-opportunity-make-webhook-strategy-default
JY-20118-make-default-hs-opportunity-sync-strategy-webhook-based
JY-20196-handle-opportunity-without-note
JY-20118-improve-opportunity-import
JY-20189-handle-activity-search-on-deleted-groups
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20613-allow-owner-role-on-team-setup) $ co JY-20725-handle-HS-search-rate-limit
M .env.local
M config/logging.php
Switched to branch 'JY-20725-handle-HS-search-rate-limit'
Your branch is behind 'origin/JY-20725-handle-HS-search-rate-limit' by 439 commits, and can be fast-forwarded.
(use "git pull" to update your local branch)
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20725-handle-HS-search-rate-limit) $ git pull
Updating 0f3e438941..bc6a3fce6b
Fast-forward
.gitignore | 3 +-
.windsurfrules | 168 ++---
CLAUDE.md | 1 +
app/Component/ActivityAnalytics/Service/CalculateTalkTimeOffsetsFromTranscription.php | 24 +-
app/Component/AiActivityType/Services/AiActivityTypeEligibilityChecker.php | 28 +-
app/Component/AiAutomation/Actions/PrepareUpdateDtoAction.php | 32 +-
app/Component/AiAutomation/Services/CrmFillingEligibilityChecker.php | 47 ++
app/Component/AiAutomation/TestCrmAiPromptService.php | 14 +
app/Component/AiCallScoring/Services/AiCallScoringEligibilityChecker.php | 9 +
app/Component/ES/ElasticSearchDocumentPartialUpdater.php | 13 +-
app/Component/ES/ElasticSearchWorkerManager.php | 86 ---
app/Component/ES/Processor/Actions/LoadDocumentsAction.php | 80 +--
app/Component/ES/Processor/EntityQueryBuilder.php | 12 +-
app/Component/ES/Processor/TargetEntitiesSelector.php | 2 +-
app/Component/ES/Processor/Traits/SkipActivityTrait.php | 25 -
app/Component/ES/Repositories/EsResetActivityRepository.php | 11 +-
app/Component/ES/Worker/ActivityWorker.php | 73 --
app/Component/ES/Worker/EntityWorker.php | 44 --
app/Component/ES/Worker/WorkerAmount.php | 60 --
app/Component/ES/Worker/WorkerInterface.php | 15 -
app/Component/ElasticSearch/Contract/Searchable.php | 4 +
app/Component/Encoding/Job/AnalyzeTrackChannelsJob.php | 20 +-
app/Component/Encoding/Service/GenerateSpeechFromSilenceService.php | 85 ++-
app/Component/FFMpeg/Services/GetSpeechIntervalsService.php | 18 +-
app/Component/LanguageDetection/Services/FindSpeechTimeService.php | 22 +-
app/Component/Nudge/Job/ProcessOrganisationImmediateNudgesJob.php | 218 +++++-
app/Component/ParagraphBreaker/Services/TranscriptionParagraphsService.php | 4 +
app/Component/ParticipantSpeech/Services/ParticipantSpeechesCreator.php | 33 +
app/Component/ParticipantSpeech/Services/ParticipantSpeechesDeleter.php | 15 +
app/Component/ParticipantSpeech/Services/ParticipantSpeechesProvider.php | 51 +-
app/Component/ParticipantSpeech/Services/ParticipantSpeechesUploader.php | 36 +
app/Component/ProphetAi/Exceptions/InsufficientTranscriptException.php | 11 +
app/Component/Transcription/DTO/Http/Transcription/AssemblyAI/AssemblyAI/NoAssemblyIdException.php | 11 +
app/Component/Transcription/DTO/Http/Transcription/AssemblyAI/AssemblyAI/SuccessfulResponse.php | 6 +
app/Component/Transcription/DTO/Http/Transcription/TranscriptionIsNotCorrectFormatException.php | 11 +
app/Component/Transcription/Diarization/Services/GetNormalizedParticipantSpeechesService.php | 23 +-
app/Component/Transcription/Diarization/Source/MeetingBotSource.php | 16 +-
app/Component/Transcription/TranscriptionProcessor/TranscriptionProcessor.php | 3 +
app/Console/Commands/Activities/ActivityHardDeleteCommand.php | 4 +-
app/Console/Commands/Activities/Copy.php | 2 +
app/Console/Commands/Activities/SetupIntegration/TwilioSetS3RecordingCredentialsCommand.php | 119 ++++
app/Console/Commands/Activities/UpdateActivityElasticSearchDocumentCommand.php | 10 +-
app/Console/Commands/Crm/BackfillOpportunityUserFromAccountCommand.php | 126 ++++
app/Console/Commands/Elasticsearch/AsyncUpdateEsActivities.php | 19 -
app/Console/Commands/Elasticsearch/AsyncUpdateEsEntities.php | 50 +-
app/Console/Commands/Elasticsearch/ResetAsyncElasticSearchCommand.php | 30 +-
app/Console/Commands/GeckoExport/GeckoExportParticipantSpeechesCommand.php | 14 +-
app/Console/Commands/IssueMcpTokenCommand.php | 84 +++
app/Console/Commands/JiminnyDebugCommand.php | 7 +-
app/Console/Commands/Tracks/CleanupActivityTracksCommand.php | 2 +-
app/Console/Kernel.php | 6 +-
app/Contracts/Services/Calendar/CalendarTrait.php | 80 ++-
app/Events/AutomatedReports/AutomatedReportGenerated.php | 3 +
app/Http/Controllers/API/AiCallScoring/AiScorecardController.php | 7 +-
app/Http/Controllers/API/TeamAiAutomationController.php | 8 +
app/Http/Controllers/CustomerApi/CustomerApiController.php | 4 +-
app/Http/Controllers/Kiosk/ActivityController.php | 58 +-
app/Http/Controllers/Settings/PlaybookController.php | 15 +-
app/Http/Kernel.php | 23 +
app/Http/Middleware/McpAuditMiddleware.php | 156 ++++
app/Http/Middleware/McpTierMiddleware.php | 54 ++
app/Http/Requests/API/V2/ZapierUploadActivityRequest.php | 28 +-
app/Jobs/Activity/Import/ImportTwilioVideoSpeechesJob.php | 25 +-
app/Jobs/Activity/Import/IsActivityReadyForProcessingJob.php | 10 +-
app/Jobs/Calendar/SetupCalendarSync.php | 21 +-
app/Jobs/ImportRemoteTrackJob.php | 96 ++-
app/Jobs/Mailbox/EmailTextRelay.php | 15 +-
app/Mcp/Contracts/McpCallRepositoryInterface.php | 30 +
app/Mcp/DTO/ListCallsFilters.php | 29 +
app/Mcp/Errors/McpError.php | 123 ++++
app/Mcp/Repositories/McpActivityHydrator.php | 145 ++++
app/Mcp/Repositories/McpCallRepository.php | 84 +++
app/Mcp/Repositories/McpElasticCallRepository.php | 171 +++++
app/Mcp/Servers/JiminnyServer.php | 38 +
app/Mcp/Tools/ListCallsTool.php | 205 ++++++
app/Models/Activity.php | 10 +-
app/Models/Activity/Transcription.php | 17 +-
app/Models/ElasticSearch/OpportunityElasticSearchTrait.php | 5 +
app/Models/Participant.php | 1 +
app/Providers/AppServiceProvider.php | 22 +
app/Repositories/Crm/ContactRepository.php | 69 +-
app/Repositories/ParticipantSpeechRepository.php | 13 +-
app/Services/Activity/ParticipantsService.php | 19 +-
app/Services/Activity/Twilio/S3RecordingCredentialsService.php | 82 +++
app/Services/ActivityService.php | 21 +-
app/Services/Calendar/CalendarActivityService.php | 46 ++
app/Services/Calendar/Command/ImportParticipants.php | 1 +
app/Services/Calendar/Command/MapActivityData.php | 106 +--
app/Services/Calendar/GoogleCalendarService.php | 12 +-
app/Services/Crm/Close/Processor/OpportunityProcessor.php | 2 +-
app/Services/Crm/Close/Service.php | 22 +-
app/Services/Crm/Copper/Service.php | 12 +-
app/Services/Crm/Hubspot/Service.php | 154 +++-
app/Services/Crm/Hubspot/ServiceTraits/OpportunitySyncTrait.php | 88 ++-
app/Services/Crm/IntegrationApp/ServiceTraits/SyncCrmEntitiesTrait.php | 22 +-
app/Services/Crm/Pipedrive/Service.php | 17 +-
app/Services/Crm/Salesforce/Service.php | 42 +-
app/Services/Mail/Office/EmailApiClient.php | 129 +---
app/Services/RecallAI/Commands/ScheduleBotCommand.php | 39 +-
app/Services/RecallAI/RecallAIService.php | 22 +-
composer.json | 3 +-
composer.lock | 87 ++-
config/mcp.php | 23 +
database/migrations/2026_04_30_120000_create_mcp_audit_log_table.php | 36 +
docs/mcp/explorer/explorer.html | 697 ++++++++++++++++++
docs/mcp/explorer/explorer.template.html | 697 ++++++++++++++++++
docs/mcp/explorer/generate.js | 215 ++++++
docs/mcp/explorer/tool-explorer-meta.json | 11 +
docs/mcp/tools-list.json | 2536 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
docs/mcp/tools.md | 621 ++++++++++++++++
front-end/package.json | 4 +-
front-end/src/components/Settings/OrgSettings/AiAutomation/CrmFilling/TemplateFieldForm.vue | 28 +-
front-end/src/components/Settings/OrgSettings/Playbooks/AddEditPlaybook.vue | 10 +
front-end/src/components/playback/comments/ActivityComment.less | 10 +-
front-end/src/components/shared/PromptTester/PromptTester.vue | 12 +-
front-end/src/components/shared/__tests__/PromptTester.spec.js | 35 +
front-end/src/components/shared/modals/EntityPickerModal/__tests__/useEntitiesCache.spec.ts | 37 +
front-end/src/components/shared/modals/EntityPickerModal/useEntitiesCache.ts | 9 +
front-end/yarn.lock | 16 +-
phpstan-baseline.neon | 50 --
routes/api.php | 11 +
sonar-project.properties | 91 ++-
tests/Feature/Component/Nudge/ProcessOrganisationImmediateNudgesJobTest.php | 534 ++++++++++++++
tests/Feature/Jobs/ImportRemoteTrackJobTest.php | 283 +++++++-
tests/Feature/Mcp/IssueMcpTokenCommandTest.php | 53 ++
tests/Feature/Mcp/ListCallsToolElasticFeatureTest.php | 155 ++++
tests/Feature/Mcp/ListCallsToolFeatureTest.php | 352 ++++++++++
tests/Feature/Mcp/McpTestHelpersTrait.php | 77 ++
tests/Feature/Services/Team/TeamDeleteHandlers/Retention/RetentionRepositoryHandlerTest.php | 1 +
tests/Stubs/SentryStub.php | 18 +
tests/Unit/Component/ActivityAnalytics/Service/CalculateTalkTimeOffsetFromTranscriptionTest.php | 28 +-
tests/Unit/Component/AiActivityType/Services/AiActivityTypeEligibilityCheckerTest.php | 103 ++-
tests/Unit/Component/AiAutomation/Actions/PrepareUpdateDtoActionTest.php | 91 +++
tests/Unit/Component/AiAutomation/Services/CrmFillingEligibilityCheckerTest.php | 124 ++++
tests/Unit/Component/AiAutomation/TestCrmAiPromptServiceTest.php | 67 +-
tests/Unit/Component/AiCallScoring/Services/AiCallScoringEligibilityCheckerTest.php | 55 ++
tests/Unit/Component/ES/ElasticSearchWorkerManagerTest.php | 135 ----
tests/Unit/Component/ES/Processor/Actions/LoadDocumentsActionTest.php | 220 ++++++
tests/Unit/Component/ES/Processor/EntityQueryBuilderTest.php | 21 +-
tests/Unit/Component/ES/Processor/Traits/SkipActivityTraitTest.php | 51 --
tests/Unit/Component/ES/Worker/ActivityWorkerTest.php | 174 -----
tests/Unit/Component/ES/Worker/EntityWorkerTest.php | 97 ---
tests/Unit/Component/ES/Worker/WorkerAmountTest.php | 116 ---
tests/Unit/Component/Encoding/Job/AnalyzeTrackChannelsJobTest.php | 52 +-
tests/Unit/Component/Encoding/Service/GenerateSpeechFromSilenceServiceTest.php | 171 ++---
tests/Unit/Component/FFMpeg/Services/GetSpeechIntervalsTest.php | 36 +-
tests/Unit/Component/LanguageDetection/Services/FindSpeechTimeServiceTest.php | 20 +-
tests/Unit/Component/MobileSettings/MobileSettingsControllerTest.php | 5 +-
tests/Unit/Component/ParticipantSpeech/Services/ParticipantSpeechesCreatorTest.php | 75 ++
tests/Unit/Component/ParticipantSpeech/Services/ParticipantSpeechesDeleterTest.php | 63 ++
tests/Unit/Component/ParticipantSpeech/Services/ParticipantSpeechesProviderTest.php | 134 ++++
tests/Unit/Component/ParticipantSpeech/Services/ParticipantSpeechesUploaderTest.php | 57 ++
tests/Unit/Component/Transcription/Diarization/Services/GetNormalizedParticipantSpeechesServiceTest.php | 51 +-
tests/Unit/Component/Transcription/Diarization/Source/MeetingBotSourceTest.php | 29 +-
tests/Unit/Contracts/Services/Calendar/CalendarTraitTest.php | 58 +-
tests/Unit/Http/Controllers/Kiosk/ActivityControllerTest.php | 159 +++++
tests/Unit/Jobs/Activity/Import/ImportTwilioVideoSpeechesJobTest.php | 22 +-
tests/Unit/Jobs/Activity/Import/IsActivityReadyForProcessingJobTest.php | 26 +-
tests/Unit/Jobs/Calendar/SetupCalendarSyncTest.php | 25 -
tests/Unit/Services/Activity/ParticipantsServiceTest.php | 12 +-
tests/Unit/Services/Activity/Twilio/S3RecordingCredentialsServiceTest.php | 180 +++++
tests/Unit/Services/ActivityServiceTest.php | 132 ++++
tests/Unit/Services/Calendar/CalendarActivityServiceTest.php | 150 +++-
tests/Unit/Services/Calendar/Command/ImportParticipantsTest.php | 6 +-
tests/Unit/Services/Calendar/Command/MapActivityDataTest.php | 78 +-
tests/Unit/Services/Calendar/GoogleCalendarServiceTest.php | 116 +++
tests/Unit/Services/Crm/Close/ServiceTest.php | 165 +++++
tests/Unit/Services/Crm/Hubspot/ServiceTest.php | 272 ++++++-
tests/Unit/Services/Crm/Hubspot/ServiceTraits/OpportunitySyncTest.php | 25 +-
tests/Unit/Services/Crm/Hubspot/ServiceTraits/OpportunitySyncTraitMatchActivitiesTest.php | 3 +-
tests/Unit/Services/Crm/IntegrationApp/ServiceTraits/SyncCrmEntitiesTraitOpportunitiesTest.php | 40 ++
tests/Unit/Services/Crm/Pipedrive/ImportOpportunityMatchActivitiesTest.php | 2 +
tests/Unit/Services/Crm/Salesforce/ServiceTest.php | 139 ++++
tests/Unit/Services/Mail/Office/EmailApiClientTest.php | 195 ++---
tests/Unit/Services/RecallAI/RecallAIServiceTest.php | 24 +-
175 files changed, 12562 insertions(+), 2162 deletions(-)
create mode 120000 CLAUDE.md
create mode 100644 app/Component/AiAutomation/Services/CrmFillingEligibilityChecker.php
delete mode 100644 app/Component/ES/ElasticSearchWorkerManager.php
delete mode 100644 app/Component/ES/Processor/Traits/SkipActivityTrait.php
delete mode 100644 app/Component/ES/Worker/ActivityWorker.php
delete mode 100644 app/Component/ES/Worker/EntityWorker.php
delete mode 100644 app/Component/ES/Worker/WorkerAmount.php
delete mode 100644 app/Component/ES/Worker/WorkerInterface.php
create mode 100644 app/Component/ProphetAi/Exceptions/InsufficientTranscriptException.php
create mode 100644 app/Component/Transcription/DTO/Http/Transcription/AssemblyAI/AssemblyAI/NoAssemblyIdException.php
create mode 100644 app/Component/Transcription/DTO/Http/Transcription/TranscriptionIsNotCorrectFormatException.php
create mode 100644 app/Console/Commands/Activities/SetupIntegration/TwilioSetS3RecordingCredentialsCommand.php
create mode 100644 app/Console/Commands/Crm/BackfillOpportunityUserFromAccountCommand.php
delete mode 100644 app/Console/Commands/Elasticsearch/AsyncUpdateEsActivities.php
create mode 100644 app/Console/Commands/IssueMcpTokenCommand.php
create mode 100644 app/Http/Middleware/McpAuditMiddleware.php
create mode 100644 app/Http/Middleware/McpTierMiddleware.php
create mode 100644 app/Mcp/Contracts/McpCallRepositoryInterface.php
create mode 100644 app/Mcp/DTO/ListCallsFilters.php
create mode 100644 app/Mcp/Errors/McpError.php
create mode 100644 app/Mcp/Repositories/McpActivityHydrator.php
create mode 100644 app/Mcp/Repositories/McpCallRepository.php
create mode 100644 app/Mcp/Repositories/McpElasticCallRepository.php
create mode 100644 app/Mcp/Servers/JiminnyServer.php
create mode 100644 app/Mcp/Tools/ListCallsTool.php
create mode 100644 app/Services/Activity/Twilio/S3RecordingCredentialsService.php
create mode 100644 config/mcp.php
create mode 100644 database/migrations/2026_04_30_120000_create_mcp_audit_log_table.php
create mode 100644 docs/mcp/explorer/explorer.html
create mode 100644 docs/mcp/explorer/explorer.template.html
create mode 100644 docs/mcp/explorer/generate.js
create mode 100644 docs/mcp/explorer/tool-explorer-meta.json
create mode 100644 docs/mcp/tools-list.json
create mode 100644 docs/mcp/tools.md
create mode 100644 front-end/src/components/shared/modals/EntityPickerModal/__tests__/useEntitiesCache.spec.ts
create mode 100644 tests/Feature/Component/Nudge/ProcessOrganisationImmediateNudgesJobTest.php
create mode 100644 tests/Feature/Mcp/IssueMcpTokenCommandTest.php
create mode 100644 tests/Feature/Mcp/ListCallsToolElasticFeatureTest.php
create mode 100644 tests/Feature/Mcp/ListCallsToolFeatureTest.php
create mode 100644 tests/Feature/Mcp/McpTestHelpersTrait.php
create mode 100644 tests/Stubs/SentryStub.php
create mode 100644 tests/Unit/Component/AiAutomation/Services/CrmFillingEligibilityCheckerTest.php
delete mode 100644 tests/Unit/Component/ES/ElasticSearchWorkerManagerTest.php
create mode 100644 tests/Unit/Component/ES/Processor/Actions/LoadDocumentsActionTest.php
delete mode 100644 tests/Unit/Component/ES/Processor/Traits/SkipActivityTraitTest.php
delete mode 100644 tests/Unit/Component/ES/Worker/ActivityWorkerTest.php
delete mode 100644 tests/Unit/Component/ES/Worker/EntityWorkerTest.php
delete mode 100644 tests/Unit/Component/ES/Worker/WorkerAmountTest.php
create mode 100644 tests/Unit/Component/ParticipantSpeech/Services/ParticipantSpeechesCreatorTest.php
create mode 100644 tests/Unit/Http/Controllers/Kiosk/ActivityControllerTest.php
create mode 100644 tests/Unit/Services/Activity/Twilio/S3RecordingCredentialsServiceTest.php
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20725-handle-HS-search-rate-limit) $ git status
On branch master
Your branch is behind 'origin/master' by 114 commits, and can be fast-forwarded.
(use "git pull" to update your local branch)
Changes not staged for commit:
(use "git add <file>..." to update what will be committed)
(use "git restore <file>..." to discard changes in working directory)
modified: .env.local
modified: app/Component/SCIM/Constants.php
modified: app/Component/SCIM/ScimProvisioning.php
modified: app/Component/Twilio/Conference/ConferenceManager/SoftPhoneManager.php
modified: app/Console/Commands/JiminnyDebugCommand.php
modified: app/DTO/SCIM/AAD/Request/CoreUserRequest.php
modified: app/DTO/SCIM/AAD/Response/CoreUser.php
modified: app/Services/Telephony/TextMessagingService.php
modified: config/logging.php
Untracked files:
(use "git add <file>..." to include in what will be committed)
.env.nikilocal
.env.other
WEBHOOK_FILTERING_IMPLEMENTATION.md
app/Component/SCIM/Mutators/Attributes/User/RoleAttr.php
app/Console/Commands/Crm/Hubspot/SimulateWebhooksCommand.php
app/Console/Commands/Reports/CreateMockAskJiminnyReportResultCommand.php
app/Rules/ListenerRoleCannotHaveAdminOrManagerPermissionRule.php
ids.txt
public/favicon.ico
raw_sql_query.sql
tests/Unit/Component/SCIM/Mutators/Attributes/User/RoleAttrTest.php
tests/Unit/Policies/CanAccessAiReportsTest.php
tests/Unit/Rules/ListenerRoleCannotHaveAdminOrManagerPermissionRuleTest.php
no changes added to commit (use "git add" and/or "git commit -a")
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (master) $ git pull
remote: Enumerating objects: 306, done.
remote: Counting objects: 100% (299/299), done.
remote: Compressing objects: 100% (183/183), done.
remote: Total 306 (delta 213), reused 171 (delta 116), pack-reused 7 (from 1)
Receiving objects: 100% (306/306), 80.12 KiB | 1000.00 KiB/s, done.
Resolving deltas: 100% (213/213), completed with 53 local objects.
From github.com:jiminny/app
90bca4e4b2..5604af40cf master -> origin/master
4e7078fd8b..0b8343d179 JY-18091-upgrade-to-php-8-5 -> origin/JY-18091-upgrade-to-php-8-5
098eeaa087..d5a447e492 JY-20613-allow-owner-role-on-team-setup -> origin/JY-20613-allow-owner-role-on-team-setup
c3a76ace91..af65249d0f JY-20749-user-can-view-recorded-meetings -> origin/JY-20749-user-can-view-recorded-meetings
d94a285ae7..7ce96cb5fe JY-20808-low-priority-indexing-queue -> origin/JY-20808-low-priority-indexing-queue
* [new branch] JY-20842-remove-partial-updater -> origin/JY-20842-remove-partial-updater
* [new branch] JY-20920-fix-participant-flip -> origin/JY-20920-fix-participant-flip
* [new branch] secfix/npm-20260519 -> origin/secfix/npm-20260519
Updating cb4ebf0c36..5604af40cf
Fast-forward
app/Component/ES/ChunkSize.php | 54 +++++++++++++++++++
app/Component/ES/Processor/DTOs/SelectionList.php | 4 +-
app/Component/ES/Processor/TargetEntitiesSelector.php | 19 ++++---
app/Component/MeetingBot/Service/ParticipantMatcher.php | 46 ++++++++++++----
app/Exceptions/RateLimitException.php | 19 ++++++-
app/Http/Middleware/McpTierMiddleware.php | 27 ++--------
app/Jobs/Crm/MatchActivityCrmData.php | 47 ++++++++++++----
app/Jobs/Middleware/HandleHubspotRateLimit.php | 42 +++++++++++++++
app/Mcp/Servers/JiminnyServer.php | 2 +
app/Mcp/Tools/GetMeTool.php | 157 +++++++++++++++++++++++++++++++++++++++++++++++++++++
app/Models/Feature/FeatureEnum.php | 1 +
app/Services/Activity/HubSpot/ProviderResolver.php | 4 +-
app/Services/Activity/HubSpot/ProviderResolverInterface.php | 2 +-
app/Services/Activity/HubSpot/Providers/Provider.php | 2 +-
app/Services/Activity/HubSpot/Providers/ProviderKixie.php | 2 +-
app/Services/Activity/HubSpot/Providers/ProviderOrum.php | 2 +-
app/Services/Activity/HubSpot/Providers/ProviderTwilio.php | 2 +-
app/Services/Activity/HubSpot/Providers/ProviderTwilioFlex.php | 5 +-
app/Services/Activity/HubSpot/Service.php | 97 +++++++++++++++++++++++++++------
app/Services/Crm/Hubspot/Client.php | 132 +++++++++++++++++++++++++++++++++++++++++++++
app/Services/Crm/Hubspot/HubspotClientInterface.php | 15 ++++++
app/Services/Crm/Hubspot/Pagination/HubspotPaginationService.php | 21 ++++----
app/Services/Crm/Hubspot/Pagination/PaginationState.php | 2 +-
database/migrations/2026_05_13_124153_create_mcp_feature_flag.php | 25 +++++++++
tests/Feature/Mcp/GetMeToolFeatureTest.php | 140 +++++++++++++++++++++++++++++++++++++++++++++++
tests/Feature/Mcp/ListCallsToolFeatureTest.php | 2 +-
tests/Feature/Mcp/McpTestHelpersTrait.php | 19 ++++++-
tests/Unit/Component/ES/ChunkSizeTest.php | 50 +++++++++++++++++
tests/Unit/Component/ES/Processor/DTOs/SelectionListTest.php | 27 +++++++---
tests/Unit/Component/ES/Processor/TargetEntitiesSelectorTest.php | 39 ++++++++------
tests/Unit/Component/MeetingBot/Service/ParticipantMatcherTest.php | 68 ++++++++++++++++++++++-
tests/Unit/Exceptions/RateLimitExceptionTest.php | 56 +++++++++++++++++++
tests/Unit/Jobs/Crm/MatchActivityCrmDataTest.php | 8 +--
tests/Unit/Jobs/Middleware/HandleHubspotRateLimitTest.php | 151 +++++++++++++++++++++++++++++++++++++++++++++++++++
tests/Unit/Services/Activity/HubSpot/ServiceTest.php | 109 +++++++++++++++++++++++++++++++++++++
tests/Unit/Services/Crm/Hubspot/ClientTest.php | 250 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
tests/Unit/Services/Crm/Hubspot/Pagination/HubspotPaginationServiceTest.php | 283 +++++++++++++++++++++---------------------------------------------------------------------------
37 files changed, 1587 insertions(+), 344 deletions(-)
create mode 100644 app/Component/ES/ChunkSize.php
create mode 100644 app/Jobs/Middleware/HandleHubspotRateLimit.php
create mode 100644 app/Mcp/Tools/GetMeTool.php
create mode 100644 database/migrations/2026_05_13_124153_create_mcp_feature_flag.php
create mode 100644 tests/Feature/Mcp/GetMeToolFeatureTest.php
create mode 100644 tests/Unit/Component/ES/ChunkSizeTest.php
create mode 100644 tests/Unit/Exceptions/RateLimitExceptionTest.php
create mode 100644 tests/Unit/Jobs/Middleware/HandleHubspotRateLimitTest.php
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (master) $ git pull
Already up to date.
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (master) $ co -b JY-20676-delete-report-related-objects
Switched to a new branch 'JY-20676-delete-report-related-objects'
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20676-delete-report-related-objects) $ csfix
docker exec -it docker_lamp_1 ./vendor/bin/php-cs-fixer fix --config=.php-cs-fixer.dist.php -v --using-cache=no --diff
PHP CS Fixer 3.87.1 Alexander by Fabien Potencier, Dariusz Ruminski and contributors.
PHP runtime: 8.3.30
Running 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!
Loaded config default from ".php-cs-fixer.dist.php".
5690/5690 [▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓] 100%
1) app/Console/Commands/JiminnyDebugCommand.php (statement_indentation, blank_line_before_statement)
---------- begin diff ----------
--- /home/jiminny/app/Console/Commands/JiminnyDebugCommand.php
+++ /home/jiminny/app/Console/Commands/JiminnyDebugCommand.php
@@ -23,6 +23,7 @@
if ($action === 'redis-set') {
$this->testRedisSet();
+
return;
}
@@ -45,7 +46,7 @@
$ttl = 60;
try {
-// $result = Redis::set($testKey, $testValue, 'EX', $ttl, 'NX');
+ // $result = Redis::set($testKey, $testValue, 'EX', $ttl, 'NX');
$result = Redis::set($testKey, $testValue, ['nx', 'ex' => $ttl]);
if ($result) {
----------- end diff -----------
Fixed 1 of 5690 files i...
|
58091
|
NULL
|
NULL
|
NULL
|
|
58110
|
2046
|
6
|
2026-05-19T11:39:18.948453+00:00
|
/Users/lukas/.screenpipe/data/data/2026-05-19/1779 /Users/lukas/.screenpipe/data/data/2026-05-19/1779190758948_m1.jpg...
|
iTerm2
|
APP (-zsh)
|
1
|
NULL
|
monitor_1
|
NULL
|
NULL
|
NULL
|
NULL
|
Last login: Mon May 18 09:17:28 on ttys007
Poetry Last login: Mon May 18 09:17:28 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 (pipedrive-sdk-poc) $ co master
error: Your local changes to the following files would be overwritten by checkout:
PIPEDRIVE_V2_MIGRATION_TICKETS.md
Please commit your changes or stash them before you switch branches.
Aborting
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (pipedrive-sdk-poc) $ git pull
remote: Enumerating objects: 1047, done.
remote: Counting objects: 100% (832/832), done.
remote: Compressing objects: 100% (298/298), done.
remote: Total 1047 (delta 634), reused 596 (delta 534), pack-reused 215 (from 3)
Receiving objects: 100% (1047/1047), 353.16 KiB | 1.56 MiB/s, done.
Resolving deltas: 100% (687/687), completed with 107 local objects.
From github.com:jiminny/app
907c54896c..34656c53ed pipedrive-sdk-poc -> origin/pipedrive-sdk-poc
03325ec50f..4e7078fd8b JY-18091-upgrade-to-php-8-5 -> origin/JY-18091-upgrade-to-php-8-5
e7d231e163..bc6a3fce6b JY-20725-handle-HS-search-rate-limit -> origin/JY-20725-handle-HS-search-rate-limit
* [new branch] JY-20749-user-can-view-recorded-meetings -> origin/JY-20749-user-can-view-recorded-meetings
98ca281a04..e0351be069 JY-20808-low-priority-indexing-queue -> origin/JY-20808-low-priority-indexing-queue
569abb5149..3906a9238a JY-20835-mcp-enable-users-to-get-a-list-of-deals-and-their-details -> origin/JY-20835-mcp-enable-users-to-get-a-list-of-deals-and-their-details
ad6c2a86e8..50eb6afba9 JY-20846-mcp-enable-the-ai-to-know-details-about-the-user -> origin/JY-20846-mcp-enable-the-ai-to-know-details-about-the-user
* [new branch] JY-20893-chunk-control-per-update-target -> origin/JY-20893-chunk-control-per-update-target
31c62924a5..cb4ebf0c36 master -> origin/master
Updating 907c54896c..34656c53ed
Fast-forward
PIPEDRIVE_V2_MIGRATION_TICKETS.md | 52 ++++++++++++++++++++++++++++++++++++++++++++++++++++
1 file changed, 52 insertions(+)
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (pipedrive-sdk-poc) $ co master
M .env.local
M config/logging.php
Switched to branch 'master'
Your branch is behind 'origin/master' by 31 commits, and can be fast-forwarded.
(use "git pull" to update your local branch)
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (master) $ git pull
Updating 31c62924a5..cb4ebf0c36
Fast-forward
app/Component/ES/Processor/Traits/SelectEntityListTrait.php | 20 ------
app/Services/Calendar/CalendarActivityService.php | 46 +++++++++++++
app/Services/Calendar/Command/MapActivityData.php | 106 +++-------------------------
docs/mcp/explorer/explorer.html | 104 +++++++++++++++++++++++++---
docs/mcp/explorer/explorer.template.html | 102 ++++++++++++++++++++++++---
docs/mcp/tools-list.json | 373 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++-------
docs/mcp/tools.md | 117 +++++++++++++++++++++++--------
tests/Unit/Component/ES/AsyncUpdateElasticSearchTest.php | 16 +----
tests/Unit/Component/ES/Listeners/UpdateMultipleTargetsListenerTest.php | 10 ---
tests/Unit/Component/ES/Listeners/UpdateSingleTargetListenerTest.php | 6 --
tests/Unit/Component/ES/Processor/TargetEntitiesSelectorTest.php | 9 ---
tests/Unit/Component/ES/Processor/Traits/SelectEntityListTraitTest.php | 15 ++--
tests/Unit/Component/ES/UpdateProcessManagerTest.php | 2 -
tests/Unit/Services/Calendar/CalendarActivityServiceTest.php | 150 ++++++++++++++++++++++++++++++++++++++--
tests/Unit/Services/Calendar/Command/MapActivityDataTest.php | 78 ++-------------------
15 files changed, 832 insertions(+), 322 deletions(-)
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (master) $ co -b JY-20613-allow-owner-role-on-team-setup
Switched to a new branch 'JY-20613-allow-owner-role-on-team-setup'
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20613-allow-owner-role-on-team-setup) $ csfix
docker exec -it docker_lamp_1 ./vendor/bin/php-cs-fixer fix --config=.php-cs-fixer.dist.php -v --using-cache=no --diff
PHP CS Fixer 3.87.1 Alexander by Fabien Potencier, Dariusz Ruminski and contributors.
PHP runtime: 8.3.30
Running 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!
Loaded config default from ".php-cs-fixer.dist.php".
5682/5682 [▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓] 100%
Fixed 0 of 5682 files in 56.978 seconds, 67.00 MB memory used
What's next:
Try Docker Debug for seamless, persistent debugging tools in any container or image → docker debug docker_lamp_1
Learn more at [URL_WITH_CREDENTIALS] ~/jiminny/app (JY-20613-allow-owner-role-on-team-setup) $ csfix
docker exec -it docker_lamp_1 ./vendor/bin/php-cs-fixer fix --config=.php-cs-fixer.dist.php -v --using-cache=no --diff
PHP CS Fixer 3.87.1 Alexander by Fabien Potencier, Dariusz Ruminski and contributors.
PHP runtime: 8.3.30
Running 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!
Loaded config default from ".php-cs-fixer.dist.php".
5682/5682 [▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓] 100%
Fixed 0 of 5682 files in 49.910 seconds, 60.00 MB memory used
What's next:
Try Docker Debug for seamless, persistent debugging tools in any container or image → docker debug docker_lamp_1
Learn more at [URL_WITH_CREDENTIALS] ~/jiminny/app (JY-20613-allow-owner-role-on-team-setup) $ git pull
remote: Enumerating objects: 248, done.
remote: Counting objects: 100% (128/128), done.
remote: Compressing objects: 100% (23/23), done.
remote: Total 59 (delta 43), reused 44 (delta 33), pack-reused 0 (from 0)
Unpacking objects: 100% (59/59), 10.48 KiB | 228.00 KiB/s, done.
From github.com:jiminny/app
b7df560451..190239dfd4 JY-20613-allow-owner-role-on-team-setup -> origin/JY-20613-allow-owner-role-on-team-setup
e0351be069..d94a285ae7 JY-20808-low-priority-indexing-queue -> origin/JY-20808-low-priority-indexing-queue
* [new branch] JY-20920-fix-participant-matcher -> origin/JY-20920-fix-participant-matcher
cb4ebf0c36..90bca4e4b2 master -> origin/master
Merge made by the 'ort' strategy.
app/Component/ES/ChunkSize.php | 54 +++++++++++++++++++++++++++
app/Component/ES/Processor/DTOs/SelectionList.php | 4 +-
app/Component/ES/Processor/TargetEntitiesSelector.php | 19 ++++++----
app/Http/Middleware/McpTierMiddleware.php | 27 +++-----------
app/Mcp/Servers/JiminnyServer.php | 2 +
app/Mcp/Tools/GetMeTool.php | 157 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
app/Models/Feature/FeatureEnum.php | 1 +
database/migrations/2026_05_13_124153_create_mcp_feature_flag.php | 25 +++++++++++++
front-end/src/components/Settings/Kiosk/modals/EditTeamModal/EditTeamModal.vue | 52 ++++++++++++++++++--------
front-end/src/components/Settings/Kiosk/modals/EditTeamModal/__tests__/EditTeamModal.spec.js | 14 +++++++
tests/Feature/Mcp/GetMeToolFeatureTest.php | 140 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
tests/Feature/Mcp/ListCallsToolFeatureTest.php | 2 +-
tests/Feature/Mcp/McpTestHelpersTrait.php | 19 +++++++++-
tests/Unit/Component/ES/ChunkSizeTest.php | 50 +++++++++++++++++++++++++
tests/Unit/Component/ES/Processor/DTOs/SelectionListTest.php | 27 ++++++++++----
tests/Unit/Component/ES/Processor/TargetEntitiesSelectorTest.php | 39 +++++++++++---------
16 files changed, 557 insertions(+), 75 deletions(-)
create mode 100644 app/Component/ES/ChunkSize.php
create mode 100644 app/Mcp/Tools/GetMeTool.php
create mode 100644 database/migrations/2026_05_13_124153_create_mcp_feature_flag.php
create mode 100644 tests/Feature/Mcp/GetMeToolFeatureTest.php
create mode 100644 tests/Unit/Component/ES/ChunkSizeTest.php
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20613-allow-owner-role-on-team-setup) $ git push
Enumerating objects: 40, done.
Counting objects: 100% (34/34), done.
Delta compression using up to 8 threads
Compressing objects: 100% (18/18), done.
Writing objects: 100% (18/18), 1.58 KiB | 1.58 MiB/s, done.
Total 18 (delta 15), reused 0 (delta 0), pack-reused 0
remote: Resolving deltas: 100% (15/15), completed with 13 local objects.
To github.com:jiminny/app.git
190239dfd4..ec1b261264 JY-20613-allow-owner-role-on-team-setup -> JY-20613-allow-owner-role-on-team-setup
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20613-allow-owner-role-on-team-setup) $ gbr
* JY-20613-allow-owner-role-on-team-setup
pipedrive-sdk-poc
master
JY-20903-update_activity-stage-on-opportunity-change
JY-20904-fix-update-es-on-activity-command
JY-20891-improve-sms-text-relays
JY-20725-handle-HS-search-rate-limit
JY-20818-move-AJ-reports-to-separated-datadog-metric
JY-20773-fix-automated-reports-user-pilot-tracking
JY-20157-AJ-report-not-send-notification
JY-20508-notify-before-AJ-report-expiration
JY-20372-ai-reports-promotion-pages
JY-20352-sync-opportunities-without-a-local-owner-user-id-is-null
JY-20738-debug-AJ-tracking-UP
a
JY-18909-automated-reports-ask-jiminny
JY-20692-fix-integration-app-[API_KEY]
JY-20553-debug-crm-sync-delays
JY-20698-fix-SF-activity-types-on-new-playbook
JY-20543-AJ-report-tracking
JY-20384-handle-auto-sync-with-no-access-to-event-type
JY-20458-ask-jiminny-user-definitions
JY-19666-fix-import-contacts-account-association
JY-19666-HS-import-contacts-and-accounts-batch-job
JY-20458-Ask-Jiminny-Reports
JY-20200-batch-update-CRM-objects-Salesforce
JY-19666-HS-webhooks-add-contact-and-company
JY-20348-trigger-setup-DI-layout-on-team-creation
JY-20326-refactor-info-message-in-command
JY-20317-fix-auto-log-delay-issue-on-all-channels-disabled
JY-20312-remove-on-update-change-last-synced-at-crm-configurations
JY-20306-SF-skip-auto-sync-for-task-based-playbook
JY-20192-remove-deleted-team-from-saved-search-filters
JY-20197-import-opportunity-batch-job
JY-20293-enable-status-field-for-pipedrive-deals
JY-20191-remove-commands-interactive-prompts
JY-20118-change-default-sync-strategy
JY-20183-add-cache-on-auto-log-delay
JY-20197-add-import-opportunity-batch-job
20118-hs-opportunity-make-webhook-strategy-default
JY-20118-make-default-hs-opportunity-sync-strategy-webhook-based
JY-20196-handle-opportunity-without-note
JY-20118-improve-opportunity-import
JY-20189-handle-activity-search-on-deleted-groups
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20613-allow-owner-role-on-team-setup) $ co JY-20725-handle-HS-search-rate-limit
M .env.local
M config/logging.php
Switched to branch 'JY-20725-handle-HS-search-rate-limit'
Your branch is behind 'origin/JY-20725-handle-HS-search-rate-limit' by 439 commits, and can be fast-forwarded.
(use "git pull" to update your local branch)
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20725-handle-HS-search-rate-limit) $ git pull
Updating 0f3e438941..bc6a3fce6b
Fast-forward
.gitignore | 3 +-
.windsurfrules | 168 ++---
CLAUDE.md | 1 +
app/Component/ActivityAnalytics/Service/CalculateTalkTimeOffsetsFromTranscription.php | 24 +-
app/Component/AiActivityType/Services/AiActivityTypeEligibilityChecker.php | 28 +-
app/Component/AiAutomation/Actions/PrepareUpdateDtoAction.php | 32 +-
app/Component/AiAutomation/Services/CrmFillingEligibilityChecker.php | 47 ++
app/Component/AiAutomation/TestCrmAiPromptService.php | 14 +
app/Component/AiCallScoring/Services/AiCallScoringEligibilityChecker.php | 9 +
app/Component/ES/ElasticSearchDocumentPartialUpdater.php | 13 +-
app/Component/ES/ElasticSearchWorkerManager.php | 86 ---
app/Component/ES/Processor/Actions/LoadDocumentsAction.php | 80 +--
app/Component/ES/Processor/EntityQueryBuilder.php | 12 +-
app/Component/ES/Processor/TargetEntitiesSelector.php | 2 +-
app/Component/ES/Processor/Traits/SkipActivityTrait.php | 25 -
app/Component/ES/Repositories/EsResetActivityRepository.php | 11 +-
app/Component/ES/Worker/ActivityWorker.php | 73 --
app/Component/ES/Worker/EntityWorker.php | 44 --
app/Component/ES/Worker/WorkerAmount.php | 60 --
app/Component/ES/Worker/WorkerInterface.php | 15 -
app/Component/ElasticSearch/Contract/Searchable.php | 4 +
app/Component/Encoding/Job/AnalyzeTrackChannelsJob.php | 20 +-
app/Component/Encoding/Service/GenerateSpeechFromSilenceService.php | 85 ++-
app/Component/FFMpeg/Services/GetSpeechIntervalsService.php | 18 +-
app/Component/LanguageDetection/Services/FindSpeechTimeService.php | 22 +-
app/Component/Nudge/Job/ProcessOrganisationImmediateNudgesJob.php | 218 +++++-
app/Component/ParagraphBreaker/Services/TranscriptionParagraphsService.php | 4 +
app/Component/ParticipantSpeech/Services/ParticipantSpeechesCreator.php | 33 +
app/Component/ParticipantSpeech/Services/ParticipantSpeechesDeleter.php | 15 +
app/Component/ParticipantSpeech/Services/ParticipantSpeechesProvider.php | 51 +-
app/Component/ParticipantSpeech/Services/ParticipantSpeechesUploader.php | 36 +
app/Component/ProphetAi/Exceptions/InsufficientTranscriptException.php | 11 +
app/Component/Transcription/DTO/Http/Transcription/AssemblyAI/AssemblyAI/NoAssemblyIdException.php | 11 +
app/Component/Transcription/DTO/Http/Transcription/AssemblyAI/AssemblyAI/SuccessfulResponse.php | 6 +
app/Component/Transcription/DTO/Http/Transcription/TranscriptionIsNotCorrectFormatException.php | 11 +
app/Component/Transcription/Diarization/Services/GetNormalizedParticipantSpeechesService.php | 23 +-
app/Component/Transcription/Diarization/Source/MeetingBotSource.php | 16 +-
app/Component/Transcription/TranscriptionProcessor/TranscriptionProcessor.php | 3 +
app/Console/Commands/Activities/ActivityHardDeleteCommand.php | 4 +-
app/Console/Commands/Activities/Copy.php | 2 +
app/Console/Commands/Activities/SetupIntegration/TwilioSetS3RecordingCredentialsCommand.php | 119 ++++
app/Console/Commands/Activities/UpdateActivityElasticSearchDocumentCommand.php | 10 +-
app/Console/Commands/Crm/BackfillOpportunityUserFromAccountCommand.php | 126 ++++
app/Console/Commands/Elasticsearch/AsyncUpdateEsActivities.php | 19 -
app/Console/Commands/Elasticsearch/AsyncUpdateEsEntities.php | 50 +-
app/Console/Commands/Elasticsearch/ResetAsyncElasticSearchCommand.php | 30 +-
app/Console/Commands/GeckoExport/GeckoExportParticipantSpeechesCommand.php | 14 +-
app/Console/Commands/IssueMcpTokenCommand.php | 84 +++
app/Console/Commands/JiminnyDebugCommand.php | 7 +-
app/Console/Commands/Tracks/CleanupActivityTracksCommand.php | 2 +-
app/Console/Kernel.php | 6 +-
app/Contracts/Services/Calendar/CalendarTrait.php | 80 ++-
app/Events/AutomatedReports/AutomatedReportGenerated.php | 3 +
app/Http/Controllers/API/AiCallScoring/AiScorecardController.php | 7 +-
app/Http/Controllers/API/TeamAiAutomationController.php | 8 +
app/Http/Controllers/CustomerApi/CustomerApiController.php | 4 +-
app/Http/Controllers/Kiosk/ActivityController.php | 58 +-
app/Http/Controllers/Settings/PlaybookController.php | 15 +-
app/Http/Kernel.php | 23 +
app/Http/Middleware/McpAuditMiddleware.php | 156 ++++
app/Http/Middleware/McpTierMiddleware.php | 54 ++
app/Http/Requests/API/V2/ZapierUploadActivityRequest.php | 28 +-
app/Jobs/Activity/Import/ImportTwilioVideoSpeechesJob.php | 25 +-
app/Jobs/Activity/Import/IsActivityReadyForProcessingJob.php | 10 +-
app/Jobs/Calendar/SetupCalendarSync.php | 21 +-
app/Jobs/ImportRemoteTrackJob.php | 96 ++-
app/Jobs/Mailbox/EmailTextRelay.php | 15 +-
app/Mcp/Contracts/McpCallRepositoryInterface.php | 30 +
app/Mcp/DTO/ListCallsFilters.php | 29 +
app/Mcp/Errors/McpError.php | 123 ++++
app/Mcp/Repositories/McpActivityHydrator.php | 145 ++++
app/Mcp/Repositories/McpCallRepository.php | 84 +++
app/Mcp/Repositories/McpElasticCallRepository.php | 171 +++++
app/Mcp/Servers/JiminnyServer.php | 38 +
app/Mcp/Tools/ListCallsTool.php | 205 ++++++
app/Models/Activity.php | 10 +-
app/Models/Activity/Transcription.php | 17 +-
app/Models/ElasticSearch/OpportunityElasticSearchTrait.php | 5 +
app/Models/Participant.php | 1 +
app/Providers/AppServiceProvider.php | 22 +
app/Repositories/Crm/ContactRepository.php | 69 +-
app/Repositories/ParticipantSpeechRepository.php | 13 +-
app/Services/Activity/ParticipantsService.php | 19 +-
app/Services/Activity/Twilio/S3RecordingCredentialsService.php | 82 +++
app/Services/ActivityService.php | 21 +-
app/Services/Calendar/CalendarActivityService.php | 46 ++
app/Services/Calendar/Command/ImportParticipants.php | 1 +
app/Services/Calendar/Command/MapActivityData.php | 106 +--
app/Services/Calendar/GoogleCalendarService.php | 12 +-
app/Services/Crm/Close/Processor/OpportunityProcessor.php | 2 +-
app/Services/Crm/Close/Service.php | 22 +-
app/Services/Crm/Copper/Service.php | 12 +-
app/Services/Crm/Hubspot/Service.php | 154 +++-
app/Services/Crm/Hubspot/ServiceTraits/OpportunitySyncTrait.php | 88 ++-
app/Services/Crm/IntegrationApp/ServiceTraits/SyncCrmEntitiesTrait.php | 22 +-
app/Services/Crm/Pipedrive/Service.php | 17 +-
app/Services/Crm/Salesforce/Service.php | 42 +-
app/Services/Mail/Office/EmailApiClient.php | 129 +---
app/Services/RecallAI/Commands/ScheduleBotCommand.php | 39 +-
app/Services/RecallAI/RecallAIService.php | 22 +-
composer.json | 3 +-
composer.lock | 87 ++-
config/mcp.php | 23 +
database/migrations/2026_04_30_120000_create_mcp_audit_log_table.php | 36 +
docs/mcp/explorer/explorer.html | 697 ++++++++++++++++++
docs/mcp/explorer/explorer.template.html | 697 ++++++++++++++++++
docs/mcp/explorer/generate.js | 215 ++++++
docs/mcp/explorer/tool-explorer-meta.json | 11 +
docs/mcp/tools-list.json | 2536 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
docs/mcp/tools.md | 621 ++++++++++++++++
front-end/package.json | 4 +-
front-end/src/components/Settings/OrgSettings/AiAutomation/CrmFilling/TemplateFieldForm.vue | 28 +-
front-end/src/components/Settings/OrgSettings/Playbooks/AddEditPlaybook.vue | 10 +
front-end/src/components/playback/comments/ActivityComment.less | 10 +-
front-end/src/components/shared/PromptTester/PromptTester.vue | 12 +-
front-end/src/components/shared/__tests__/PromptTester.spec.js | 35 +
front-end/src/components/shared/modals/EntityPickerModal/__tests__/useEntitiesCache.spec.ts | 37 +
front-end/src/components/shared/modals/EntityPickerModal/useEntitiesCache.ts | 9 +
front-end/yarn.lock | 16 +-
phpstan-baseline.neon | 50 --
routes/api.php | 11 +
sonar-project.properties | 91 ++-
tests/Feature/Component/Nudge/ProcessOrganisationImmediateNudgesJobTest.php | 534 ++++++++++++++
tests/Feature/Jobs/ImportRemoteTrackJobTest.php | 283 +++++++-
tests/Feature/Mcp/IssueMcpTokenCommandTest.php | 53 ++
tests/Feature/Mcp/ListCallsToolElasticFeatureTest.php | 155 ++++
tests/Feature/Mcp/ListCallsToolFeatureTest.php | 352 ++++++++++
tests/Feature/Mcp/McpTestHelpersTrait.php | 77 ++
tests/Feature/Services/Team/TeamDeleteHandlers/Retention/RetentionRepositoryHandlerTest.php | 1 +
tests/Stubs/SentryStub.php | 18 +
tests/Unit/Component/ActivityAnalytics/Service/CalculateTalkTimeOffsetFromTranscriptionTest.php | 28 +-
tests/Unit/Component/AiActivityType/Services/AiActivityTypeEligibilityCheckerTest.php | 103 ++-
tests/Unit/Component/AiAutomation/Actions/PrepareUpdateDtoActionTest.php | 91 +++
tests/Unit/Component/AiAutomation/Services/CrmFillingEligibilityCheckerTest.php | 124 ++++
tests/Unit/Component/AiAutomation/TestCrmAiPromptServiceTest.php | 67 +-
tests/Unit/Component/AiCallScoring/Services/AiCallScoringEligibilityCheckerTest.php | 55 ++
tests/Unit/Component/ES/ElasticSearchWorkerManagerTest.php | 135 ----
tests/Unit/Component/ES/Processor/Actions/LoadDocumentsActionTest.php | 220 ++++++
tests/Unit/Component/ES/Processor/EntityQueryBuilderTest.php | 21 +-
tests/Unit/Component/ES/Processor/Traits/SkipActivityTraitTest.php | 51 --
tests/Unit/Component/ES/Worker/ActivityWorkerTest.php | 174 -----
tests/Unit/Component/ES/Worker/EntityWorkerTest.php | 97 ---
tests/Unit/Component/ES/Worker/WorkerAmountTest.php | 116 ---
tests/Unit/Component/Encoding/Job/AnalyzeTrackChannelsJobTest.php | 52 +-
tests/Unit/Component/Encoding/Service/GenerateSpeechFromSilenceServiceTest.php | 171 ++---
tests/Unit/Component/FFMpeg/Services/GetSpeechIntervalsTest.php | 36 +-
tests/Unit/Component/LanguageDetection/Services/FindSpeechTimeServiceTest.php | 20 +-
tests/Unit/Component/MobileSettings/MobileSettingsControllerTest.php | 5 +-
tests/Unit/Component/ParticipantSpeech/Services/ParticipantSpeechesCreatorTest.php | 75 ++
tests/Unit/Component/ParticipantSpeech/Services/ParticipantSpeechesDeleterTest.php | 63 ++
tests/Unit/Component/ParticipantSpeech/Services/ParticipantSpeechesProviderTest.php | 134 ++++
tests/Unit/Component/ParticipantSpeech/Services/ParticipantSpeechesUploaderTest.php | 57 ++
tests/Unit/Component/Transcription/Diarization/Services/GetNormalizedParticipantSpeechesServiceTest.php | 51 +-
tests/Unit/Component/Transcription/Diarization/Source/MeetingBotSourceTest.php | 29 +-
tests/Unit/Contracts/Services/Calendar/CalendarTraitTest.php | 58 +-
tests/Unit/Http/Controllers/Kiosk/ActivityControllerTest.php | 159 +++++
tests/Unit/Jobs/Activity/Import/ImportTwilioVideoSpeechesJobTest.php | 22 +-
tests/Unit/Jobs/Activity/Import/IsActivityReadyForProcessingJobTest.php | 26 +-
tests/Unit/Jobs/Calendar/SetupCalendarSyncTest.php | 25 -
tests/Unit/Services/Activity/ParticipantsServiceTest.php | 12 +-
tests/Unit/Services/Activity/Twilio/S3RecordingCredentialsServiceTest.php | 180 +++++
tests/Unit/Services/ActivityServiceTest.php | 132 ++++
tests/Unit/Services/Calendar/CalendarActivityServiceTest.php | 150 +++-
tests/Unit/Services/Calendar/Command/ImportParticipantsTest.php | 6 +-
tests/Unit/Services/Calendar/Command/MapActivityDataTest.php | 78 +-
tests/Unit/Services/Calendar/GoogleCalendarServiceTest.php | 116 +++
tests/Unit/Services/Crm/Close/ServiceTest.php | 165 +++++
tests/Unit/Services/Crm/Hubspot/ServiceTest.php | 272 ++++++-
tests/Unit/Services/Crm/Hubspot/ServiceTraits/OpportunitySyncTest.php | 25 +-
tests/Unit/Services/Crm/Hubspot/ServiceTraits/OpportunitySyncTraitMatchActivitiesTest.php | 3 +-
tests/Unit/Services/Crm/IntegrationApp/ServiceTraits/SyncCrmEntitiesTraitOpportunitiesTest.php | 40 ++
tests/Unit/Services/Crm/Pipedrive/ImportOpportunityMatchActivitiesTest.php | 2 +
tests/Unit/Services/Crm/Salesforce/ServiceTest.php | 139 ++++
tests/Unit/Services/Mail/Office/EmailApiClientTest.php | 195 ++---
tests/Unit/Services/RecallAI/RecallAIServiceTest.php | 24 +-
175 files changed, 12562 insertions(+), 2162 deletions(-)
create mode 120000 CLAUDE.md
create mode 100644 app/Component/AiAutomation/Services/CrmFillingEligibilityChecker.php
delete mode 100644 app/Component/ES/ElasticSearchWorkerManager.php
delete mode 100644 app/Component/ES/Processor/Traits/SkipActivityTrait.php
delete mode 100644 app/Component/ES/Worker/ActivityWorker.php
delete mode 100644 app/Component/ES/Worker/EntityWorker.php
delete mode 100644 app/Component/ES/Worker/WorkerAmount.php
delete mode 100644 app/Component/ES/Worker/WorkerInterface.php
create mode 100644 app/Component/ProphetAi/Exceptions/InsufficientTranscriptException.php
create mode 100644 app/Component/Transcription/DTO/Http/Transcription/AssemblyAI/AssemblyAI/NoAssemblyIdException.php
create mode 100644 app/Component/Transcription/DTO/Http/Transcription/TranscriptionIsNotCorrectFormatException.php
create mode 100644 app/Console/Commands/Activities/SetupIntegration/TwilioSetS3RecordingCredentialsCommand.php
create mode 100644 app/Console/Commands/Crm/BackfillOpportunityUserFromAccountCommand.php
delete mode 100644 app/Console/Commands/Elasticsearch/AsyncUpdateEsActivities.php
create mode 100644 app/Console/Commands/IssueMcpTokenCommand.php
create mode 100644 app/Http/Middleware/McpAuditMiddleware.php
create mode 100644 app/Http/Middleware/McpTierMiddleware.php
create mode 100644 app/Mcp/Contracts/McpCallRepositoryInterface.php
create mode 100644 app/Mcp/DTO/ListCallsFilters.php
create mode 100644 app/Mcp/Errors/McpError.php
create mode 100644 app/Mcp/Repositories/McpActivityHydrator.php
create mode 100644 app/Mcp/Repositories/McpCallRepository.php
create mode 100644 app/Mcp/Repositories/McpElasticCallRepository.php
create mode 100644 app/Mcp/Servers/JiminnyServer.php
create mode 100644 app/Mcp/Tools/ListCallsTool.php
create mode 100644 app/Services/Activity/Twilio/S3RecordingCredentialsService.php
create mode 100644 config/mcp.php
create mode 100644 database/migrations/2026_04_30_120000_create_mcp_audit_log_table.php
create mode 100644 docs/mcp/explorer/explorer.html
create mode 100644 docs/mcp/explorer/explorer.template.html
create mode 100644 docs/mcp/explorer/generate.js
create mode 100644 docs/mcp/explorer/tool-explorer-meta.json
create mode 100644 docs/mcp/tools-list.json
create mode 100644 docs/mcp/tools.md
create mode 100644 front-end/src/components/shared/modals/EntityPickerModal/__tests__/useEntitiesCache.spec.ts
create mode 100644 tests/Feature/Component/Nudge/ProcessOrganisationImmediateNudgesJobTest.php
create mode 100644 tests/Feature/Mcp/IssueMcpTokenCommandTest.php
create mode 100644 tests/Feature/Mcp/ListCallsToolElasticFeatureTest.php
create mode 100644 tests/Feature/Mcp/ListCallsToolFeatureTest.php
create mode 100644 tests/Feature/Mcp/McpTestHelpersTrait.php
create mode 100644 tests/Stubs/SentryStub.php
create mode 100644 tests/Unit/Component/AiAutomation/Services/CrmFillingEligibilityCheckerTest.php
delete mode 100644 tests/Unit/Component/ES/ElasticSearchWorkerManagerTest.php
create mode 100644 tests/Unit/Component/ES/Processor/Actions/LoadDocumentsActionTest.php
delete mode 100644 tests/Unit/Component/ES/Processor/Traits/SkipActivityTraitTest.php
delete mode 100644 tests/Unit/Component/ES/Worker/ActivityWorkerTest.php
delete mode 100644 tests/Unit/Component/ES/Worker/EntityWorkerTest.php
delete mode 100644 tests/Unit/Component/ES/Worker/WorkerAmountTest.php
create mode 100644 tests/Unit/Component/ParticipantSpeech/Services/ParticipantSpeechesCreatorTest.php
create mode 100644 tests/Unit/Http/Controllers/Kiosk/ActivityControllerTest.php
create mode 100644 tests/Unit/Services/Activity/Twilio/S3RecordingCredentialsServiceTest.php
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20725-handle-HS-search-rate-limit) $ git status
On branch master
Your branch is behind 'origin/master' by 114 commits, and can be fast-forwarded.
(use "git pull" to update your local branch)
Changes not staged for commit:
(use "git add <file>..." to update what will be committed)
(use "git restore <file>..." to discard changes in working directory)
modified: .env.local
modified: app/Component/SCIM/Constants.php
modified: app/Component/SCIM/ScimProvisioning.php
modified: app/Component/Twilio/Conference/ConferenceManager/SoftPhoneManager.php
modified: app/Console/Commands/JiminnyDebugCommand.php
modified: app/DTO/SCIM/AAD/Request/CoreUserRequest.php
modified: app/DTO/SCIM/AAD/Response/CoreUser.php
modified: app/Services/Telephony/TextMessagingService.php
modified: config/logging.php
Untracked files:
(use "git add <file>..." to include in what will be committed)
.env.nikilocal
.env.other
WEBHOOK_FILTERING_IMPLEMENTATION.md
app/Component/SCIM/Mutators/Attributes/User/RoleAttr.php
app/Console/Commands/Crm/Hubspot/SimulateWebhooksCommand.php
app/Console/Commands/Reports/CreateMockAskJiminnyReportResultCommand.php
app/Rules/ListenerRoleCannotHaveAdminOrManagerPermissionRule.php
ids.txt
public/favicon.ico
raw_sql_query.sql
tests/Unit/Component/SCIM/Mutators/Attributes/User/RoleAttrTest.php
tests/Unit/Policies/CanAccessAiReportsTest.php
tests/Unit/Rules/ListenerRoleCannotHaveAdminOrManagerPermissionRuleTest.php
no changes added to commit (use "git add" and/or "git commit -a")
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (master) $ git pull
remote: Enumerating objects: 306, done.
remote: Counting objects: 100% (299/299), done.
remote: Compressing objects: 100% (183/183), done.
remote: Total 306 (delta 213), reused 171 (delta 116), pack-reused 7 (from 1)
Receiving objects: 100% (306/306), 80.12 KiB | 1000.00 KiB/s, done.
Resolving deltas: 100% (213/213), completed with 53 local objects.
From github.com:jiminny/app
90bca4e4b2..5604af40cf master -> origin/master
4e7078fd8b..0b8343d179 JY-18091-upgrade-to-php-8-5 -> origin/JY-18091-upgrade-to-php-8-5
098eeaa087..d5a447e492 JY-20613-allow-owner-role-on-team-setup -> origin/JY-20613-allow-owner-role-on-team-setup
c3a76ace91..af65249d0f JY-20749-user-can-view-recorded-meetings -> origin/JY-20749-user-can-view-recorded-meetings
d94a285ae7..7ce96cb5fe JY-20808-low-priority-indexing-queue -> origin/JY-20808-low-priority-indexing-queue
* [new branch] JY-20842-remove-partial-updater -> origin/JY-20842-remove-partial-updater
* [new branch] JY-20920-fix-participant-flip -> origin/JY-20920-fix-participant-flip
* [new branch] secfix/npm-20260519 -> origin/secfix/npm-20260519
Updating cb4ebf0c36..5604af40cf
Fast-forward
app/Component/ES/ChunkSize.php | 54 +++++++++++++++++++
app/Component/ES/Processor/DTOs/SelectionList.php | 4 +-
app/Component/ES/Processor/TargetEntitiesSelector.php | 19 ++++---
app/Component/MeetingBot/Service/ParticipantMatcher.php | 46 ++++++++++++----
app/Exceptions/RateLimitException.php | 19 ++++++-
app/Http/Middleware/McpTierMiddleware.php | 27 ++--------
app/Jobs/Crm/MatchActivityCrmData.php | 47 ++++++++++++----
app/Jobs/Middleware/HandleHubspotRateLimit.php | 42 +++++++++++++++
app/Mcp/Servers/JiminnyServer.php | 2 +
app/Mcp/Tools/GetMeTool.php | 157 +++++++++++++++++++++++++++++++++++++++++++++++++++++
app/Models/Feature/FeatureEnum.php | 1 +
app/Services/Activity/HubSpot/ProviderResolver.php | 4 +-
app/Services/Activity/HubSpot/ProviderResolverInterface.php | 2 +-
app/Services/Activity/HubSpot/Providers/Provider.php | 2 +-
app/Services/Activity/HubSpot/Providers/ProviderKixie.php | 2 +-
app/Services/Activity/HubSpot/Providers/ProviderOrum.php | 2 +-
app/Services/Activity/HubSpot/Providers/ProviderTwilio.php | 2 +-
app/Services/Activity/HubSpot/Providers/ProviderTwilioFlex.php | 5 +-
app/Services/Activity/HubSpot/Service.php | 97 +++++++++++++++++++++++++++------
app/Services/Crm/Hubspot/Client.php | 132 +++++++++++++++++++++++++++++++++++++++++++++
app/Services/Crm/Hubspot/HubspotClientInterface.php | 15 ++++++
app/Services/Crm/Hubspot/Pagination/HubspotPaginationService.php | 21 ++++----
app/Services/Crm/Hubspot/Pagination/PaginationState.php | 2 +-
database/migrations/2026_05_13_124153_create_mcp_feature_flag.php | 25 +++++++++
tests/Feature/Mcp/GetMeToolFeatureTest.php | 140 +++++++++++++++++++++++++++++++++++++++++++++++
tests/Feature/Mcp/ListCallsToolFeatureTest.php | 2 +-
tests/Feature/Mcp/McpTestHelpersTrait.php | 19 ++++++-
tests/Unit/Component/ES/ChunkSizeTest.php | 50 +++++++++++++++++
tests/Unit/Component/ES/Processor/DTOs/SelectionListTest.php | 27 +++++++---
tests/Unit/Component/ES/Processor/TargetEntitiesSelectorTest.php | 39 ++++++++------
tests/Unit/Component/MeetingBot/Service/ParticipantMatcherTest.php | 68 ++++++++++++++++++++++-
tests/Unit/Exceptions/RateLimitExceptionTest.php | 56 +++++++++++++++++++
tests/Unit/Jobs/Crm/MatchActivityCrmDataTest.php | 8 +--
tests/Unit/Jobs/Middleware/HandleHubspotRateLimitTest.php | 151 +++++++++++++++++++++++++++++++++++++++++++++++++++
tests/Unit/Services/Activity/HubSpot/ServiceTest.php | 109 +++++++++++++++++++++++++++++++++++++
tests/Unit/Services/Crm/Hubspot/ClientTest.php | 250 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
tests/Unit/Services/Crm/Hubspot/Pagination/HubspotPaginationServiceTest.php | 283 +++++++++++++++++++++---------------------------------------------------------------------------
37 files changed, 1587 insertions(+), 344 deletions(-)
create mode 100644 app/Component/ES/ChunkSize.php
create mode 100644 app/Jobs/Middleware/HandleHubspotRateLimit.php
create mode 100644 app/Mcp/Tools/GetMeTool.php
create mode 100644 database/migrations/2026_05_13_124153_create_mcp_feature_flag.php
create mode 100644 tests/Feature/Mcp/GetMeToolFeatureTest.php
create mode 100644 tests/Unit/Component/ES/ChunkSizeTest.php
create mode 100644 tests/Unit/Exceptions/RateLimitExceptionTest.php
create mode 100644 tests/Unit/Jobs/Middleware/HandleHubspotRateLimitTest.php
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (master) $ git pull
Already up to date.
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (master) $ co -b JY-20676-delete-report-related-objects
Switched to a new branch 'JY-20676-delete-report-related-objects'
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20676-delete-report-related-objects) $ csfix
docker exec -it docker_lamp_1 ./vendor/bin/php-cs-fixer fix --config=.php-cs-fixer.dist.php -v --using-cache=no --diff
PHP CS Fixer 3.87.1 Alexander by Fabien Potencier, Dariusz Ruminski and contributors.
PHP runtime: 8.3.30
Running 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!
Loaded config default from ".php-cs-fixer.dist.php".
5690/5690 [▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓] 100%
1) app/Console/Commands/JiminnyDebugCommand.php (statement_indentation, blank_line_before_statement)
---------- begin diff ----------
--- /home/jiminny/app/Console/Commands/JiminnyDebugCommand.php
+++ /home/jiminny/app/Console/Commands/JiminnyDebugCommand.php
@@ -23,6 +23,7 @@
if ($action === 'redis-set') {
$this->testRedisSet();
+
return;
}
@@ -45,7 +46,7 @@
$ttl = 60;
try {
-// $result = Redis::set($testKey, $testValue, 'EX', $ttl, 'NX');
+ // $result = Redis::set($testKey, $testValue, 'EX', $ttl, 'NX');
$result = Redis::set($testKey, $testValue, ['nx', 'ex' => $ttl]);
if ($result) {
----------- end diff -----------
Fixed 1 of 5690 files i...
|
[{"role":"AXTextArea","text [{"role":"AXTextArea","text":"Last login: Mon May 18 09:17:28 on ttys007\n\nPoetry could not find a pyproject.toml file in /Users/lukas/jiminny/app or its parents\n\nPoetry could not find a pyproject.toml file in /Users/lukas/jiminny/app or its parents\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (pipedrive-sdk-poc) $ co master\nerror: Your local changes to the following files would be overwritten by checkout:\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tPIPEDRIVE_V2_MIGRATION_TICKETS.md\nPlease commit your changes or stash them before you switch branches.\nAborting\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (pipedrive-sdk-poc) $ git pull\nremote: Enumerating objects: 1047, done.\nremote: Counting objects: 100% (832/832), done.\nremote: Compressing objects: 100% (298/298), done.\nremote: Total 1047 (delta 634), reused 596 (delta 534), pack-reused 215 (from 3)\nReceiving objects: 100% (1047/1047), 353.16 KiB | 1.56 MiB/s, done.\nResolving deltas: 100% (687/687), completed with 107 local objects.\nFrom github.com:jiminny/app\n 907c54896c..34656c53ed pipedrive-sdk-poc -> origin/pipedrive-sdk-poc\n 03325ec50f..4e7078fd8b JY-18091-upgrade-to-php-8-5 -> origin/JY-18091-upgrade-to-php-8-5\n e7d231e163..bc6a3fce6b JY-20725-handle-HS-search-rate-limit -> origin/JY-20725-handle-HS-search-rate-limit\n * [new branch] JY-20749-user-can-view-recorded-meetings -> origin/JY-20749-user-can-view-recorded-meetings\n 98ca281a04..e0351be069 JY-20808-low-priority-indexing-queue -> origin/JY-20808-low-priority-indexing-queue\n 569abb5149..3906a9238a JY-20835-mcp-enable-users-to-get-a-list-of-deals-and-their-details -> origin/JY-20835-mcp-enable-users-to-get-a-list-of-deals-and-their-details\n ad6c2a86e8..50eb6afba9 JY-20846-mcp-enable-the-ai-to-know-details-about-the-user -> origin/JY-20846-mcp-enable-the-ai-to-know-details-about-the-user\n * [new branch] JY-20893-chunk-control-per-update-target -> origin/JY-20893-chunk-control-per-update-target\n 31c62924a5..cb4ebf0c36 master -> origin/master\nUpdating 907c54896c..34656c53ed\nFast-forward\n PIPEDRIVE_V2_MIGRATION_TICKETS.md | 52 ++++++++++++++++++++++++++++++++++++++++++++++++++++\n 1 file changed, 52 insertions(+)\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (pipedrive-sdk-poc) $ co master\nM\u0000\u0000\u0000\u0000\u0000\u0000\t.env.local\nM\u0000\u0000\u0000\u0000\u0000\u0000\tconfig/logging.php\nSwitched to branch 'master'\nYour branch is behind 'origin/master' by 31 commits, and can be fast-forwarded.\n (use \"git pull\" to update your local branch)\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (master) $ git pull\nUpdating 31c62924a5..cb4ebf0c36\nFast-forward\n app/Component/ES/Processor/Traits/SelectEntityListTrait.php | 20 ------\n app/Services/Calendar/CalendarActivityService.php | 46 +++++++++++++\n app/Services/Calendar/Command/MapActivityData.php | 106 +++-------------------------\n docs/mcp/explorer/explorer.html | 104 +++++++++++++++++++++++++---\n docs/mcp/explorer/explorer.template.html | 102 ++++++++++++++++++++++++---\n docs/mcp/tools-list.json | 373 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++-------\n docs/mcp/tools.md | 117 +++++++++++++++++++++++--------\n tests/Unit/Component/ES/AsyncUpdateElasticSearchTest.php | 16 +----\n tests/Unit/Component/ES/Listeners/UpdateMultipleTargetsListenerTest.php | 10 ---\n tests/Unit/Component/ES/Listeners/UpdateSingleTargetListenerTest.php | 6 --\n tests/Unit/Component/ES/Processor/TargetEntitiesSelectorTest.php | 9 ---\n tests/Unit/Component/ES/Processor/Traits/SelectEntityListTraitTest.php | 15 ++--\n tests/Unit/Component/ES/UpdateProcessManagerTest.php | 2 -\n tests/Unit/Services/Calendar/CalendarActivityServiceTest.php | 150 ++++++++++++++++++++++++++++++++++++++--\n tests/Unit/Services/Calendar/Command/MapActivityDataTest.php | 78 ++-------------------\n 15 files changed, 832 insertions(+), 322 deletions(-)\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (master) $ co -b JY-20613-allow-owner-role-on-team-setup\nSwitched to a new branch 'JY-20613-allow-owner-role-on-team-setup'\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20613-allow-owner-role-on-team-setup) $ csfix\ndocker exec -it docker_lamp_1 ./vendor/bin/php-cs-fixer fix --config=.php-cs-fixer.dist.php -v --using-cache=no --diff \nPHP CS Fixer 3.87.1 Alexander by Fabien Potencier, Dariusz Ruminski and contributors.\nPHP runtime: 8.3.30\nRunning analysis on 7 cores with 10 files per process.\nParallel runner is an experimental feature and may be unstable, use it at your own risk. Feedback highly appreciated!\nLoaded config default from \".php-cs-fixer.dist.php\".\n 5682/5682 [▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓] 100%\n\n\nFixed 0 of 5682 files in 56.978 seconds, 67.00 MB memory used\n\nWhat's next:\n Try Docker Debug for seamless, persistent debugging tools in any container or image → docker debug docker_lamp_1\n Learn more at https://docs.docker.com/go/debug-cli/\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20613-allow-owner-role-on-team-setup) $ ;xd\ndocker exec -it docker_lamp_1 bash -c \"mv /usr/local/etc/php/conf.d/xdebug.ini ~/xdebug.ini\"\n\nWhat's next:\n Try Docker Debug for seamless, persistent debugging tools in any container or image → docker debug docker_lamp_1\n Learn more at https://docs.docker.com/go/debug-cli/\ndocker exec -it docker_lamp_1 supervisorctl restart all\njiminny-worker-processing-2:jiminny-worker-processing-2_00: stopped\njiminny-worker-processing-3:jiminny-worker-processing-3_00: stopped\njiminny-worker-processing-4:jiminny-worker-processing-4_00: stopped\njiminny-worker-processing-5:jiminny-worker-processing-5_00: stopped\njiminny-worker-processing-delayed:jiminny-worker-processing-delayed_00: stopped\nworker-analytics:worker-analytics_00: stopped\nworker-crm-update:worker-crm-update_00: stopped\nworker-download:worker-download_00: stopped\nworker-nudges:worker-nudges_00: stopped\nartisan-schedule:artisan-schedule_00: stopped\nworker-emails:worker-emails_00: stopped\nworker-calendar:worker-calendar_00: stopped\nworker:worker_00: stopped\nworker-conferences:worker-conferences_00: stopped\nworker-crm-sync:worker-crm-sync_00: stopped\njiminny-worker-processing-1:jiminny-worker-processing-1_00: stopped\nworker-audio:worker-audio_00: stopped\nworker-es-update:worker-es-update_00: stopped\nartisan-schedule:artisan-schedule_00: started\njiminny-worker-processing-1:jiminny-worker-processing-1_00: started\njiminny-worker-processing-2:jiminny-worker-processing-2_00: started\njiminny-worker-processing-3:jiminny-worker-processing-3_00: started\njiminny-worker-processing-4:jiminny-worker-processing-4_00: started\njiminny-worker-processing-5:jiminny-worker-processing-5_00: started\njiminny-worker-processing-delayed:jiminny-worker-processing-delayed_00: started\nworker:worker_00: started\nworker-analytics:worker-analytics_00: started\nworker-audio:worker-audio_00: started\nworker-calendar:worker-calendar_00: started\nworker-conferences:worker-conferences_00: started\nworker-crm-sync:worker-crm-sync_00: started\nworker-crm-update:worker-crm-update_00: started\nworker-download:worker-download_00: started\nworker-emails:worker-emails_00: started\nworker-es-update:worker-es-update_00: started\nworker-nudges:worker-nudges_00: started\n\nWhat's next:\n Try Docker Debug for seamless, persistent debugging tools in any container or image → docker debug docker_lamp_1\n Learn more at https://docs.docker.com/go/debug-cli/\ndocker exec -it docker_lamp_1 php -v\nPHP 8.3.30 (cli) (built: Mar 16 2026 22:32:32) (NTS)\nCopyright (c) The PHP Group\nZend Engine v4.3.30, Copyright (c) Zend Technologies\n with Zend OPcache v8.3.30, Copyright (c), by Zend Technologies\n\nWhat's next:\n Try Docker Debug for seamless, persistent debugging tools in any container or image → docker debug docker_lamp_1\n Learn more at https://docs.docker.com/go/debug-cli/\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20613-allow-owner-role-on-team-setup) $ csfix\ndocker exec -it docker_lamp_1 ./vendor/bin/php-cs-fixer fix --config=.php-cs-fixer.dist.php -v --using-cache=no --diff \nPHP CS Fixer 3.87.1 Alexander by Fabien Potencier, Dariusz Ruminski and contributors.\nPHP runtime: 8.3.30\nRunning analysis on 7 cores with 10 files per process.\nParallel runner is an experimental feature and may be unstable, use it at your own risk. Feedback highly appreciated!\nLoaded config default from \".php-cs-fixer.dist.php\".\n 5682/5682 [▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓] 100%\n\n\nFixed 0 of 5682 files in 49.910 seconds, 60.00 MB memory used\n\nWhat's next:\n Try Docker Debug for seamless, persistent debugging tools in any container or image → docker debug docker_lamp_1\n Learn more at https://docs.docker.com/go/debug-cli/\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20613-allow-owner-role-on-team-setup) $ git status\nOn branch JY-20613-allow-owner-role-on-team-setup\nYour branch is ahead of 'origin/JY-20613-allow-owner-role-on-team-setup' by 1 commit.\n (use \"git push\" to publish your local commits)\n\nChanges not staged for commit:\n (use \"git add <file>...\" to update what will be committed)\n (use \"git restore <file>...\" to discard changes in working directory)\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tmodified: .env.local\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tmodified: config/logging.php\n\nUntracked files:\n (use \"git add <file>...\" to include in what will be committed)\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\t.env.nikilocal\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\t.env.other\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tWEBHOOK_FILTERING_IMPLEMENTATION.md\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tapp/Console/Commands/Crm/Hubspot/SimulateWebhooksCommand.php\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tapp/Console/Commands/Reports/CreateMockAskJiminnyReportResultCommand.php\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tids.txt\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tpublic/favicon.ico\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\traw_sql_query.sql\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\ttests/Unit/Policies/CanAccessAiReportsTest.php\n\nno changes added to commit (use \"git add\" and/or \"git commit -a\")\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20613-allow-owner-role-on-team-setup) $ git pull\nremote: Enumerating objects: 248, done.\nremote: Counting objects: 100% (128/128), done.\nremote: Compressing objects: 100% (23/23), done.\nremote: Total 59 (delta 43), reused 44 (delta 33), pack-reused 0 (from 0)\nUnpacking objects: 100% (59/59), 10.48 KiB | 228.00 KiB/s, done.\nFrom github.com:jiminny/app\n b7df560451..190239dfd4 JY-20613-allow-owner-role-on-team-setup -> origin/JY-20613-allow-owner-role-on-team-setup\n e0351be069..d94a285ae7 JY-20808-low-priority-indexing-queue -> origin/JY-20808-low-priority-indexing-queue\n * [new branch] JY-20920-fix-participant-matcher -> origin/JY-20920-fix-participant-matcher\n cb4ebf0c36..90bca4e4b2 master -> origin/master\nMerge made by the 'ort' strategy.\n app/Component/ES/ChunkSize.php | 54 +++++++++++++++++++++++++++\n app/Component/ES/Processor/DTOs/SelectionList.php | 4 +-\n app/Component/ES/Processor/TargetEntitiesSelector.php | 19 ++++++----\n app/Http/Middleware/McpTierMiddleware.php | 27 +++-----------\n app/Mcp/Servers/JiminnyServer.php | 2 +\n app/Mcp/Tools/GetMeTool.php | 157 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++\n app/Models/Feature/FeatureEnum.php | 1 +\n database/migrations/2026_05_13_124153_create_mcp_feature_flag.php | 25 +++++++++++++\n front-end/src/components/Settings/Kiosk/modals/EditTeamModal/EditTeamModal.vue | 52 ++++++++++++++++++--------\n front-end/src/components/Settings/Kiosk/modals/EditTeamModal/__tests__/EditTeamModal.spec.js | 14 +++++++\n tests/Feature/Mcp/GetMeToolFeatureTest.php | 140 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++\n tests/Feature/Mcp/ListCallsToolFeatureTest.php | 2 +-\n tests/Feature/Mcp/McpTestHelpersTrait.php | 19 +++++++++-\n tests/Unit/Component/ES/ChunkSizeTest.php | 50 +++++++++++++++++++++++++\n tests/Unit/Component/ES/Processor/DTOs/SelectionListTest.php | 27 ++++++++++----\n tests/Unit/Component/ES/Processor/TargetEntitiesSelectorTest.php | 39 +++++++++++---------\n 16 files changed, 557 insertions(+), 75 deletions(-)\n create mode 100644 app/Component/ES/ChunkSize.php\n create mode 100644 app/Mcp/Tools/GetMeTool.php\n create mode 100644 database/migrations/2026_05_13_124153_create_mcp_feature_flag.php\n create mode 100644 tests/Feature/Mcp/GetMeToolFeatureTest.php\n create mode 100644 tests/Unit/Component/ES/ChunkSizeTest.php\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20613-allow-owner-role-on-team-setup) $ git push\nEnumerating objects: 40, done.\nCounting objects: 100% (34/34), done.\nDelta compression using up to 8 threads\nCompressing objects: 100% (18/18), done.\nWriting objects: 100% (18/18), 1.58 KiB | 1.58 MiB/s, done.\nTotal 18 (delta 15), reused 0 (delta 0), pack-reused 0\nremote: Resolving deltas: 100% (15/15), completed with 13 local objects.\nTo github.com:jiminny/app.git\n 190239dfd4..ec1b261264 JY-20613-allow-owner-role-on-team-setup -> JY-20613-allow-owner-role-on-team-setup\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20613-allow-owner-role-on-team-setup) $ gbr\n* JY-20613-allow-owner-role-on-team-setup\n pipedrive-sdk-poc\n master\n JY-20903-update_activity-stage-on-opportunity-change\n JY-20904-fix-update-es-on-activity-command\n JY-20891-improve-sms-text-relays\n JY-20725-handle-HS-search-rate-limit\n JY-20818-move-AJ-reports-to-separated-datadog-metric\n JY-20773-fix-automated-reports-user-pilot-tracking\n JY-20157-AJ-report-not-send-notification\n JY-20508-notify-before-AJ-report-expiration\n JY-20372-ai-reports-promotion-pages\n JY-20352-sync-opportunities-without-a-local-owner-user-id-is-null\n JY-20738-debug-AJ-tracking-UP\n a\n JY-18909-automated-reports-ask-jiminny\n JY-20692-fix-integration-app-token-auth-response-change\n JY-20553-debug-crm-sync-delays\n JY-20698-fix-SF-activity-types-on-new-playbook\n JY-20543-AJ-report-tracking\n JY-20384-handle-auto-sync-with-no-access-to-event-type\n JY-20458-ask-jiminny-user-definitions\n JY-19666-fix-import-contacts-account-association\n JY-19666-HS-import-contacts-and-accounts-batch-job\n JY-20458-Ask-Jiminny-Reports\n JY-20200-batch-update-CRM-objects-Salesforce\n JY-19666-HS-webhooks-add-contact-and-company\n JY-20348-trigger-setup-DI-layout-on-team-creation\n JY-20326-refactor-info-message-in-command\n JY-20317-fix-auto-log-delay-issue-on-all-channels-disabled\n JY-20312-remove-on-update-change-last-synced-at-crm-configurations\n JY-20306-SF-skip-auto-sync-for-task-based-playbook\n JY-20192-remove-deleted-team-from-saved-search-filters\n JY-20197-import-opportunity-batch-job\n JY-20293-enable-status-field-for-pipedrive-deals\n JY-20191-remove-commands-interactive-prompts\n JY-20118-change-default-sync-strategy\n JY-20183-add-cache-on-auto-log-delay\n JY-20197-add-import-opportunity-batch-job\n 20118-hs-opportunity-make-webhook-strategy-default\n JY-20118-make-default-hs-opportunity-sync-strategy-webhook-based\n JY-20196-handle-opportunity-without-note\n JY-20118-improve-opportunity-import\n JY-20189-handle-activity-search-on-deleted-groups\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20613-allow-owner-role-on-team-setup) $ co JY-20725-handle-HS-search-rate-limit\nM\u0000\u0000\u0000\u0000\u0000\u0000\t.env.local\nM\u0000\u0000\u0000\u0000\u0000\u0000\tconfig/logging.php\nSwitched to branch 'JY-20725-handle-HS-search-rate-limit'\nYour branch is behind 'origin/JY-20725-handle-HS-search-rate-limit' by 439 commits, and can be fast-forwarded.\n (use \"git pull\" to update your local branch)\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20725-handle-HS-search-rate-limit) $ git pull\nUpdating 0f3e438941..bc6a3fce6b\nFast-forward\n .gitignore | 3 +-\n .windsurfrules | 168 ++---\n CLAUDE.md | 1 +\n app/Component/ActivityAnalytics/Service/CalculateTalkTimeOffsetsFromTranscription.php | 24 +-\n app/Component/AiActivityType/Services/AiActivityTypeEligibilityChecker.php | 28 +-\n app/Component/AiAutomation/Actions/PrepareUpdateDtoAction.php | 32 +-\n app/Component/AiAutomation/Services/CrmFillingEligibilityChecker.php | 47 ++\n app/Component/AiAutomation/TestCrmAiPromptService.php | 14 +\n app/Component/AiCallScoring/Services/AiCallScoringEligibilityChecker.php | 9 +\n app/Component/ES/ElasticSearchDocumentPartialUpdater.php | 13 +-\n app/Component/ES/ElasticSearchWorkerManager.php | 86 ---\n app/Component/ES/Processor/Actions/LoadDocumentsAction.php | 80 +--\n app/Component/ES/Processor/EntityQueryBuilder.php | 12 +-\n app/Component/ES/Processor/TargetEntitiesSelector.php | 2 +-\n app/Component/ES/Processor/Traits/SkipActivityTrait.php | 25 -\n app/Component/ES/Repositories/EsResetActivityRepository.php | 11 +-\n app/Component/ES/Worker/ActivityWorker.php | 73 --\n app/Component/ES/Worker/EntityWorker.php | 44 --\n app/Component/ES/Worker/WorkerAmount.php | 60 --\n app/Component/ES/Worker/WorkerInterface.php | 15 -\n app/Component/ElasticSearch/Contract/Searchable.php | 4 +\n app/Component/Encoding/Job/AnalyzeTrackChannelsJob.php | 20 +-\n app/Component/Encoding/Service/GenerateSpeechFromSilenceService.php | 85 ++-\n app/Component/FFMpeg/Services/GetSpeechIntervalsService.php | 18 +-\n app/Component/LanguageDetection/Services/FindSpeechTimeService.php | 22 +-\n app/Component/Nudge/Job/ProcessOrganisationImmediateNudgesJob.php | 218 +++++-\n app/Component/ParagraphBreaker/Services/TranscriptionParagraphsService.php | 4 +\n app/Component/ParticipantSpeech/Services/ParticipantSpeechesCreator.php | 33 +\n app/Component/ParticipantSpeech/Services/ParticipantSpeechesDeleter.php | 15 +\n app/Component/ParticipantSpeech/Services/ParticipantSpeechesProvider.php | 51 +-\n app/Component/ParticipantSpeech/Services/ParticipantSpeechesUploader.php | 36 +\n app/Component/ProphetAi/Exceptions/InsufficientTranscriptException.php | 11 +\n app/Component/Transcription/DTO/Http/Transcription/AssemblyAI/AssemblyAI/NoAssemblyIdException.php | 11 +\n app/Component/Transcription/DTO/Http/Transcription/AssemblyAI/AssemblyAI/SuccessfulResponse.php | 6 +\n app/Component/Transcription/DTO/Http/Transcription/TranscriptionIsNotCorrectFormatException.php | 11 +\n app/Component/Transcription/Diarization/Services/GetNormalizedParticipantSpeechesService.php | 23 +-\n app/Component/Transcription/Diarization/Source/MeetingBotSource.php | 16 +-\n app/Component/Transcription/TranscriptionProcessor/TranscriptionProcessor.php | 3 +\n app/Console/Commands/Activities/ActivityHardDeleteCommand.php | 4 +-\n app/Console/Commands/Activities/Copy.php | 2 +\n app/Console/Commands/Activities/SetupIntegration/TwilioSetS3RecordingCredentialsCommand.php | 119 ++++\n app/Console/Commands/Activities/UpdateActivityElasticSearchDocumentCommand.php | 10 +-\n app/Console/Commands/Crm/BackfillOpportunityUserFromAccountCommand.php | 126 ++++\n app/Console/Commands/Elasticsearch/AsyncUpdateEsActivities.php | 19 -\n app/Console/Commands/Elasticsearch/AsyncUpdateEsEntities.php | 50 +-\n app/Console/Commands/Elasticsearch/ResetAsyncElasticSearchCommand.php | 30 +-\n app/Console/Commands/GeckoExport/GeckoExportParticipantSpeechesCommand.php | 14 +-\n app/Console/Commands/IssueMcpTokenCommand.php | 84 +++\n app/Console/Commands/JiminnyDebugCommand.php | 7 +-\n app/Console/Commands/Tracks/CleanupActivityTracksCommand.php | 2 +-\n app/Console/Kernel.php | 6 +-\n app/Contracts/Services/Calendar/CalendarTrait.php | 80 ++-\n app/Events/AutomatedReports/AutomatedReportGenerated.php | 3 +\n app/Http/Controllers/API/AiCallScoring/AiScorecardController.php | 7 +-\n app/Http/Controllers/API/TeamAiAutomationController.php | 8 +\n app/Http/Controllers/CustomerApi/CustomerApiController.php | 4 +-\n app/Http/Controllers/Kiosk/ActivityController.php | 58 +-\n app/Http/Controllers/Settings/PlaybookController.php | 15 +-\n app/Http/Kernel.php | 23 +\n app/Http/Middleware/McpAuditMiddleware.php | 156 ++++\n app/Http/Middleware/McpTierMiddleware.php | 54 ++\n app/Http/Requests/API/V2/ZapierUploadActivityRequest.php | 28 +-\n app/Jobs/Activity/Import/ImportTwilioVideoSpeechesJob.php | 25 +-\n app/Jobs/Activity/Import/IsActivityReadyForProcessingJob.php | 10 +-\n app/Jobs/Calendar/SetupCalendarSync.php | 21 +-\n app/Jobs/ImportRemoteTrackJob.php | 96 ++-\n app/Jobs/Mailbox/EmailTextRelay.php | 15 +-\n app/Mcp/Contracts/McpCallRepositoryInterface.php | 30 +\n app/Mcp/DTO/ListCallsFilters.php | 29 +\n app/Mcp/Errors/McpError.php | 123 ++++\n app/Mcp/Repositories/McpActivityHydrator.php | 145 ++++\n app/Mcp/Repositories/McpCallRepository.php | 84 +++\n app/Mcp/Repositories/McpElasticCallRepository.php | 171 +++++\n app/Mcp/Servers/JiminnyServer.php | 38 +\n app/Mcp/Tools/ListCallsTool.php | 205 ++++++\n app/Models/Activity.php | 10 +-\n app/Models/Activity/Transcription.php | 17 +-\n app/Models/ElasticSearch/OpportunityElasticSearchTrait.php | 5 +\n app/Models/Participant.php | 1 +\n app/Providers/AppServiceProvider.php | 22 +\n app/Repositories/Crm/ContactRepository.php | 69 +-\n app/Repositories/ParticipantSpeechRepository.php | 13 +-\n app/Services/Activity/ParticipantsService.php | 19 +-\n app/Services/Activity/Twilio/S3RecordingCredentialsService.php | 82 +++\n app/Services/ActivityService.php | 21 +-\n app/Services/Calendar/CalendarActivityService.php | 46 ++\n app/Services/Calendar/Command/ImportParticipants.php | 1 +\n app/Services/Calendar/Command/MapActivityData.php | 106 +--\n app/Services/Calendar/GoogleCalendarService.php | 12 +-\n app/Services/Crm/Close/Processor/OpportunityProcessor.php | 2 +-\n app/Services/Crm/Close/Service.php | 22 +-\n app/Services/Crm/Copper/Service.php | 12 +-\n app/Services/Crm/Hubspot/Service.php | 154 +++-\n app/Services/Crm/Hubspot/ServiceTraits/OpportunitySyncTrait.php | 88 ++-\n app/Services/Crm/IntegrationApp/ServiceTraits/SyncCrmEntitiesTrait.php | 22 +-\n app/Services/Crm/Pipedrive/Service.php | 17 +-\n app/Services/Crm/Salesforce/Service.php | 42 +-\n app/Services/Mail/Office/EmailApiClient.php | 129 +---\n app/Services/RecallAI/Commands/ScheduleBotCommand.php | 39 +-\n app/Services/RecallAI/RecallAIService.php | 22 +-\n composer.json | 3 +-\n composer.lock | 87 ++-\n config/mcp.php | 23 +\n database/migrations/2026_04_30_120000_create_mcp_audit_log_table.php | 36 +\n docs/mcp/explorer/explorer.html | 697 ++++++++++++++++++\n docs/mcp/explorer/explorer.template.html | 697 ++++++++++++++++++\n docs/mcp/explorer/generate.js | 215 ++++++\n docs/mcp/explorer/tool-explorer-meta.json | 11 +\n docs/mcp/tools-list.json | 2536 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++\n docs/mcp/tools.md | 621 ++++++++++++++++\n front-end/package.json | 4 +-\n front-end/src/components/Settings/OrgSettings/AiAutomation/CrmFilling/TemplateFieldForm.vue | 28 +-\n front-end/src/components/Settings/OrgSettings/Playbooks/AddEditPlaybook.vue | 10 +\n front-end/src/components/playback/comments/ActivityComment.less | 10 +-\n front-end/src/components/shared/PromptTester/PromptTester.vue | 12 +-\n front-end/src/components/shared/__tests__/PromptTester.spec.js | 35 +\n front-end/src/components/shared/modals/EntityPickerModal/__tests__/useEntitiesCache.spec.ts | 37 +\n front-end/src/components/shared/modals/EntityPickerModal/useEntitiesCache.ts | 9 +\n front-end/yarn.lock | 16 +-\n phpstan-baseline.neon | 50 --\n routes/api.php | 11 +\n sonar-project.properties | 91 ++-\n tests/Feature/Component/Nudge/ProcessOrganisationImmediateNudgesJobTest.php | 534 ++++++++++++++\n tests/Feature/Jobs/ImportRemoteTrackJobTest.php | 283 +++++++-\n tests/Feature/Mcp/IssueMcpTokenCommandTest.php | 53 ++\n tests/Feature/Mcp/ListCallsToolElasticFeatureTest.php | 155 ++++\n tests/Feature/Mcp/ListCallsToolFeatureTest.php | 352 ++++++++++\n tests/Feature/Mcp/McpTestHelpersTrait.php | 77 ++\n tests/Feature/Services/Team/TeamDeleteHandlers/Retention/RetentionRepositoryHandlerTest.php | 1 +\n tests/Stubs/SentryStub.php | 18 +\n tests/Unit/Component/ActivityAnalytics/Service/CalculateTalkTimeOffsetFromTranscriptionTest.php | 28 +-\n tests/Unit/Component/AiActivityType/Services/AiActivityTypeEligibilityCheckerTest.php | 103 ++-\n tests/Unit/Component/AiAutomation/Actions/PrepareUpdateDtoActionTest.php | 91 +++\n tests/Unit/Component/AiAutomation/Services/CrmFillingEligibilityCheckerTest.php | 124 ++++\n tests/Unit/Component/AiAutomation/TestCrmAiPromptServiceTest.php | 67 +-\n tests/Unit/Component/AiCallScoring/Services/AiCallScoringEligibilityCheckerTest.php | 55 ++\n tests/Unit/Component/ES/ElasticSearchWorkerManagerTest.php | 135 ----\n tests/Unit/Component/ES/Processor/Actions/LoadDocumentsActionTest.php | 220 ++++++\n tests/Unit/Component/ES/Processor/EntityQueryBuilderTest.php | 21 +-\n tests/Unit/Component/ES/Processor/Traits/SkipActivityTraitTest.php | 51 --\n tests/Unit/Component/ES/Worker/ActivityWorkerTest.php | 174 -----\n tests/Unit/Component/ES/Worker/EntityWorkerTest.php | 97 ---\n tests/Unit/Component/ES/Worker/WorkerAmountTest.php | 116 ---\n tests/Unit/Component/Encoding/Job/AnalyzeTrackChannelsJobTest.php | 52 +-\n tests/Unit/Component/Encoding/Service/GenerateSpeechFromSilenceServiceTest.php | 171 ++---\n tests/Unit/Component/FFMpeg/Services/GetSpeechIntervalsTest.php | 36 +-\n tests/Unit/Component/LanguageDetection/Services/FindSpeechTimeServiceTest.php | 20 +-\n tests/Unit/Component/MobileSettings/MobileSettingsControllerTest.php | 5 +-\n tests/Unit/Component/ParticipantSpeech/Services/ParticipantSpeechesCreatorTest.php | 75 ++\n tests/Unit/Component/ParticipantSpeech/Services/ParticipantSpeechesDeleterTest.php | 63 ++\n tests/Unit/Component/ParticipantSpeech/Services/ParticipantSpeechesProviderTest.php | 134 ++++\n tests/Unit/Component/ParticipantSpeech/Services/ParticipantSpeechesUploaderTest.php | 57 ++\n tests/Unit/Component/Transcription/Diarization/Services/GetNormalizedParticipantSpeechesServiceTest.php | 51 +-\n tests/Unit/Component/Transcription/Diarization/Source/MeetingBotSourceTest.php | 29 +-\n tests/Unit/Contracts/Services/Calendar/CalendarTraitTest.php | 58 +-\n tests/Unit/Http/Controllers/Kiosk/ActivityControllerTest.php | 159 +++++\n tests/Unit/Jobs/Activity/Import/ImportTwilioVideoSpeechesJobTest.php | 22 +-\n tests/Unit/Jobs/Activity/Import/IsActivityReadyForProcessingJobTest.php | 26 +-\n tests/Unit/Jobs/Calendar/SetupCalendarSyncTest.php | 25 -\n tests/Unit/Services/Activity/ParticipantsServiceTest.php | 12 +-\n tests/Unit/Services/Activity/Twilio/S3RecordingCredentialsServiceTest.php | 180 +++++\n tests/Unit/Services/ActivityServiceTest.php | 132 ++++\n tests/Unit/Services/Calendar/CalendarActivityServiceTest.php | 150 +++-\n tests/Unit/Services/Calendar/Command/ImportParticipantsTest.php | 6 +-\n tests/Unit/Services/Calendar/Command/MapActivityDataTest.php | 78 +-\n tests/Unit/Services/Calendar/GoogleCalendarServiceTest.php | 116 +++\n tests/Unit/Services/Crm/Close/ServiceTest.php | 165 +++++\n tests/Unit/Services/Crm/Hubspot/ServiceTest.php | 272 ++++++-\n tests/Unit/Services/Crm/Hubspot/ServiceTraits/OpportunitySyncTest.php | 25 +-\n tests/Unit/Services/Crm/Hubspot/ServiceTraits/OpportunitySyncTraitMatchActivitiesTest.php | 3 +-\n tests/Unit/Services/Crm/IntegrationApp/ServiceTraits/SyncCrmEntitiesTraitOpportunitiesTest.php | 40 ++\n tests/Unit/Services/Crm/Pipedrive/ImportOpportunityMatchActivitiesTest.php | 2 +\n tests/Unit/Services/Crm/Salesforce/ServiceTest.php | 139 ++++\n tests/Unit/Services/Mail/Office/EmailApiClientTest.php | 195 ++---\n tests/Unit/Services/RecallAI/RecallAIServiceTest.php | 24 +-\n 175 files changed, 12562 insertions(+), 2162 deletions(-)\n create mode 120000 CLAUDE.md\n create mode 100644 app/Component/AiAutomation/Services/CrmFillingEligibilityChecker.php\n delete mode 100644 app/Component/ES/ElasticSearchWorkerManager.php\n delete mode 100644 app/Component/ES/Processor/Traits/SkipActivityTrait.php\n delete mode 100644 app/Component/ES/Worker/ActivityWorker.php\n delete mode 100644 app/Component/ES/Worker/EntityWorker.php\n delete mode 100644 app/Component/ES/Worker/WorkerAmount.php\n delete mode 100644 app/Component/ES/Worker/WorkerInterface.php\n create mode 100644 app/Component/ProphetAi/Exceptions/InsufficientTranscriptException.php\n create mode 100644 app/Component/Transcription/DTO/Http/Transcription/AssemblyAI/AssemblyAI/NoAssemblyIdException.php\n create mode 100644 app/Component/Transcription/DTO/Http/Transcription/TranscriptionIsNotCorrectFormatException.php\n create mode 100644 app/Console/Commands/Activities/SetupIntegration/TwilioSetS3RecordingCredentialsCommand.php\n create mode 100644 app/Console/Commands/Crm/BackfillOpportunityUserFromAccountCommand.php\n delete mode 100644 app/Console/Commands/Elasticsearch/AsyncUpdateEsActivities.php\n create mode 100644 app/Console/Commands/IssueMcpTokenCommand.php\n create mode 100644 app/Http/Middleware/McpAuditMiddleware.php\n create mode 100644 app/Http/Middleware/McpTierMiddleware.php\n create mode 100644 app/Mcp/Contracts/McpCallRepositoryInterface.php\n create mode 100644 app/Mcp/DTO/ListCallsFilters.php\n create mode 100644 app/Mcp/Errors/McpError.php\n create mode 100644 app/Mcp/Repositories/McpActivityHydrator.php\n create mode 100644 app/Mcp/Repositories/McpCallRepository.php\n create mode 100644 app/Mcp/Repositories/McpElasticCallRepository.php\n create mode 100644 app/Mcp/Servers/JiminnyServer.php\n create mode 100644 app/Mcp/Tools/ListCallsTool.php\n create mode 100644 app/Services/Activity/Twilio/S3RecordingCredentialsService.php\n create mode 100644 config/mcp.php\n create mode 100644 database/migrations/2026_04_30_120000_create_mcp_audit_log_table.php\n create mode 100644 docs/mcp/explorer/explorer.html\n create mode 100644 docs/mcp/explorer/explorer.template.html\n create mode 100644 docs/mcp/explorer/generate.js\n create mode 100644 docs/mcp/explorer/tool-explorer-meta.json\n create mode 100644 docs/mcp/tools-list.json\n create mode 100644 docs/mcp/tools.md\n create mode 100644 front-end/src/components/shared/modals/EntityPickerModal/__tests__/useEntitiesCache.spec.ts\n create mode 100644 tests/Feature/Component/Nudge/ProcessOrganisationImmediateNudgesJobTest.php\n create mode 100644 tests/Feature/Mcp/IssueMcpTokenCommandTest.php\n create mode 100644 tests/Feature/Mcp/ListCallsToolElasticFeatureTest.php\n create mode 100644 tests/Feature/Mcp/ListCallsToolFeatureTest.php\n create mode 100644 tests/Feature/Mcp/McpTestHelpersTrait.php\n create mode 100644 tests/Stubs/SentryStub.php\n create mode 100644 tests/Unit/Component/AiAutomation/Services/CrmFillingEligibilityCheckerTest.php\n delete mode 100644 tests/Unit/Component/ES/ElasticSearchWorkerManagerTest.php\n create mode 100644 tests/Unit/Component/ES/Processor/Actions/LoadDocumentsActionTest.php\n delete mode 100644 tests/Unit/Component/ES/Processor/Traits/SkipActivityTraitTest.php\n delete mode 100644 tests/Unit/Component/ES/Worker/ActivityWorkerTest.php\n delete mode 100644 tests/Unit/Component/ES/Worker/EntityWorkerTest.php\n delete mode 100644 tests/Unit/Component/ES/Worker/WorkerAmountTest.php\n create mode 100644 tests/Unit/Component/ParticipantSpeech/Services/ParticipantSpeechesCreatorTest.php\n create mode 100644 tests/Unit/Http/Controllers/Kiosk/ActivityControllerTest.php\n create mode 100644 tests/Unit/Services/Activity/Twilio/S3RecordingCredentialsServiceTest.php\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20725-handle-HS-search-rate-limit) $ git status\nOn branch master\nYour branch is behind 'origin/master' by 114 commits, and can be fast-forwarded.\n (use \"git pull\" to update your local branch)\n\nChanges not staged for commit:\n (use \"git add <file>...\" to update what will be committed)\n (use \"git restore <file>...\" to discard changes in working directory)\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tmodified: .env.local\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tmodified: app/Component/SCIM/Constants.php\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tmodified: app/Component/SCIM/ScimProvisioning.php\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tmodified: app/Component/Twilio/Conference/ConferenceManager/SoftPhoneManager.php\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tmodified: app/Console/Commands/JiminnyDebugCommand.php\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tmodified: app/DTO/SCIM/AAD/Request/CoreUserRequest.php\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tmodified: app/DTO/SCIM/AAD/Response/CoreUser.php\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tmodified: app/Services/Telephony/TextMessagingService.php\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tmodified: config/logging.php\n\nUntracked files:\n (use \"git add <file>...\" to include in what will be committed)\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\t.env.nikilocal\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\t.env.other\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tWEBHOOK_FILTERING_IMPLEMENTATION.md\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tapp/Component/SCIM/Mutators/Attributes/User/RoleAttr.php\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tapp/Console/Commands/Crm/Hubspot/SimulateWebhooksCommand.php\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tapp/Console/Commands/Reports/CreateMockAskJiminnyReportResultCommand.php\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tapp/Rules/ListenerRoleCannotHaveAdminOrManagerPermissionRule.php\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tids.txt\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tpublic/favicon.ico\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\traw_sql_query.sql\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\ttests/Unit/Component/SCIM/Mutators/Attributes/User/RoleAttrTest.php\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\ttests/Unit/Policies/CanAccessAiReportsTest.php\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\ttests/Unit/Rules/ListenerRoleCannotHaveAdminOrManagerPermissionRuleTest.php\n\nno changes added to commit (use \"git add\" and/or \"git commit -a\")\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (master) $ git pull\nremote: Enumerating objects: 306, done.\nremote: Counting objects: 100% (299/299), done.\nremote: Compressing objects: 100% (183/183), done.\nremote: Total 306 (delta 213), reused 171 (delta 116), pack-reused 7 (from 1)\nReceiving objects: 100% (306/306), 80.12 KiB | 1000.00 KiB/s, done.\nResolving deltas: 100% (213/213), completed with 53 local objects.\nFrom github.com:jiminny/app\n 90bca4e4b2..5604af40cf master -> origin/master\n 4e7078fd8b..0b8343d179 JY-18091-upgrade-to-php-8-5 -> origin/JY-18091-upgrade-to-php-8-5\n 098eeaa087..d5a447e492 JY-20613-allow-owner-role-on-team-setup -> origin/JY-20613-allow-owner-role-on-team-setup\n c3a76ace91..af65249d0f JY-20749-user-can-view-recorded-meetings -> origin/JY-20749-user-can-view-recorded-meetings\n d94a285ae7..7ce96cb5fe JY-20808-low-priority-indexing-queue -> origin/JY-20808-low-priority-indexing-queue\n * [new branch] JY-20842-remove-partial-updater -> origin/JY-20842-remove-partial-updater\n * [new branch] JY-20920-fix-participant-flip -> origin/JY-20920-fix-participant-flip\n * [new branch] secfix/npm-20260519 -> origin/secfix/npm-20260519\nUpdating cb4ebf0c36..5604af40cf\nFast-forward\n app/Component/ES/ChunkSize.php | 54 +++++++++++++++++++\n app/Component/ES/Processor/DTOs/SelectionList.php | 4 +-\n app/Component/ES/Processor/TargetEntitiesSelector.php | 19 ++++---\n app/Component/MeetingBot/Service/ParticipantMatcher.php | 46 ++++++++++++----\n app/Exceptions/RateLimitException.php | 19 ++++++-\n app/Http/Middleware/McpTierMiddleware.php | 27 ++--------\n app/Jobs/Crm/MatchActivityCrmData.php | 47 ++++++++++++----\n app/Jobs/Middleware/HandleHubspotRateLimit.php | 42 +++++++++++++++\n app/Mcp/Servers/JiminnyServer.php | 2 +\n app/Mcp/Tools/GetMeTool.php | 157 +++++++++++++++++++++++++++++++++++++++++++++++++++++\n app/Models/Feature/FeatureEnum.php | 1 +\n app/Services/Activity/HubSpot/ProviderResolver.php | 4 +-\n app/Services/Activity/HubSpot/ProviderResolverInterface.php | 2 +-\n app/Services/Activity/HubSpot/Providers/Provider.php | 2 +-\n app/Services/Activity/HubSpot/Providers/ProviderKixie.php | 2 +-\n app/Services/Activity/HubSpot/Providers/ProviderOrum.php | 2 +-\n app/Services/Activity/HubSpot/Providers/ProviderTwilio.php | 2 +-\n app/Services/Activity/HubSpot/Providers/ProviderTwilioFlex.php | 5 +-\n app/Services/Activity/HubSpot/Service.php | 97 +++++++++++++++++++++++++++------\n app/Services/Crm/Hubspot/Client.php | 132 +++++++++++++++++++++++++++++++++++++++++++++\n app/Services/Crm/Hubspot/HubspotClientInterface.php | 15 ++++++\n app/Services/Crm/Hubspot/Pagination/HubspotPaginationService.php | 21 ++++----\n app/Services/Crm/Hubspot/Pagination/PaginationState.php | 2 +-\n database/migrations/2026_05_13_124153_create_mcp_feature_flag.php | 25 +++++++++\n tests/Feature/Mcp/GetMeToolFeatureTest.php | 140 +++++++++++++++++++++++++++++++++++++++++++++++\n tests/Feature/Mcp/ListCallsToolFeatureTest.php | 2 +-\n tests/Feature/Mcp/McpTestHelpersTrait.php | 19 ++++++-\n tests/Unit/Component/ES/ChunkSizeTest.php | 50 +++++++++++++++++\n tests/Unit/Component/ES/Processor/DTOs/SelectionListTest.php | 27 +++++++---\n tests/Unit/Component/ES/Processor/TargetEntitiesSelectorTest.php | 39 ++++++++------\n tests/Unit/Component/MeetingBot/Service/ParticipantMatcherTest.php | 68 ++++++++++++++++++++++-\n tests/Unit/Exceptions/RateLimitExceptionTest.php | 56 +++++++++++++++++++\n tests/Unit/Jobs/Crm/MatchActivityCrmDataTest.php | 8 +--\n tests/Unit/Jobs/Middleware/HandleHubspotRateLimitTest.php | 151 +++++++++++++++++++++++++++++++++++++++++++++++++++\n tests/Unit/Services/Activity/HubSpot/ServiceTest.php | 109 +++++++++++++++++++++++++++++++++++++\n tests/Unit/Services/Crm/Hubspot/ClientTest.php | 250 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++\n tests/Unit/Services/Crm/Hubspot/Pagination/HubspotPaginationServiceTest.php | 283 +++++++++++++++++++++---------------------------------------------------------------------------\n 37 files changed, 1587 insertions(+), 344 deletions(-)\n create mode 100644 app/Component/ES/ChunkSize.php\n create mode 100644 app/Jobs/Middleware/HandleHubspotRateLimit.php\n create mode 100644 app/Mcp/Tools/GetMeTool.php\n create mode 100644 database/migrations/2026_05_13_124153_create_mcp_feature_flag.php\n create mode 100644 tests/Feature/Mcp/GetMeToolFeatureTest.php\n create mode 100644 tests/Unit/Component/ES/ChunkSizeTest.php\n create mode 100644 tests/Unit/Exceptions/RateLimitExceptionTest.php\n create mode 100644 tests/Unit/Jobs/Middleware/HandleHubspotRateLimitTest.php\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (master) $ git pull\nAlready up to date.\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (master) $ co -b JY-20676-delete-report-related-objects\nSwitched to a new branch 'JY-20676-delete-report-related-objects'\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20676-delete-report-related-objects) $ csfix\ndocker exec -it docker_lamp_1 ./vendor/bin/php-cs-fixer fix --config=.php-cs-fixer.dist.php -v --using-cache=no --diff \nPHP CS Fixer 3.87.1 Alexander by Fabien Potencier, Dariusz Ruminski and contributors.\nPHP runtime: 8.3.30\nRunning analysis on 7 cores with 10 files per process.\nParallel runner is an experimental feature and may be unstable, use it at your own risk. Feedback highly appreciated!\nLoaded config default from \".php-cs-fixer.dist.php\".\n 5690/5690 [▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓] 100%\n\n 1) app/Console/Commands/JiminnyDebugCommand.php (statement_indentation, blank_line_before_statement)\n ---------- begin diff ----------\n--- /home/jiminny/app/Console/Commands/JiminnyDebugCommand.php\n+++ /home/jiminny/app/Console/Commands/JiminnyDebugCommand.php\n@@ -23,6 +23,7 @@\n \n if ($action === 'redis-set') {\n $this->testRedisSet();\n+\n return;\n }\n \n@@ -45,7 +46,7 @@\n $ttl = 60;\n \n try {\n-// $result = Redis::set($testKey, $testValue, 'EX', $ttl, 'NX');\n+ // $result = Redis::set($testKey, $testValue, 'EX', $ttl, 'NX');\n $result = Redis::set($testKey, $testValue, ['nx', 'ex' => $ttl]);\n \n if ($result) {\n\n ----------- end diff -----------\n\n\nFixed 1 of 5690 files in 50.673 seconds, 67.00 MB memory used\n\nWhat's next:\n Try Docker Debug for seamless, persistent debugging tools in any container or image → docker debug docker_lamp_1\n Learn more at https://docs.docker.com/go/debug-cli/\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20676-delete-report-related-objects) $ ;xd\ndocker exec -it docker_lamp_1 bash -c \"mv /usr/local/etc/php/conf.d/xdebug.ini ~/xdebug.ini\"\n\nWhat's next:\n Try Docker Debug for seamless, persistent debugging tools in any container or image → docker debug docker_lamp_1\n Learn more at https://docs.docker.com/go/debug-cli/\ndocker exec -it docker_lamp_1 supervisorctl restart all\njiminny-worker-processing-2:jiminny-worker-processing-2_00: stopped\njiminny-worker-processing-3:jiminny-worker-processing-3_00: stopped\njiminny-worker-processing-4:jiminny-worker-processing-4_00: stopped\njiminny-worker-processing-5:jiminny-worker-processing-5_00: stopped\njiminny-worker-processing-delayed:jiminny-worker-processing-delayed_00: stopped\nworker-analytics:worker-analytics_00: stopped\nworker-crm-update:worker-crm-update_00: stopped\nworker-download:worker-download_00: stopped\nworker-nudges:worker-nudges_00: stopped\nworker-calendar:worker-calendar_00: stopped\nworker-audio:worker-audio_00: stopped\njiminny-worker-processing-1:jiminny-worker-processing-1_00: stopped\nworker:worker_00: stopped\nworker-conferences:worker-conferences_00: stopped\nworker-crm-sync:worker-crm-sync_00: stopped\nworker-emails:worker-emails_00: stopped\nworker-es-update:worker-es-update_00: stopped\nartisan-schedule:artisan-schedule_00: stopped\nartisan-schedule:artisan-schedule_00: started\njiminny-worker-processing-1:jiminny-worker-processing-1_00: started\njiminny-worker-processing-2:jiminny-worker-processing-2_00: started\njiminny-worker-processing-3:jiminny-worker-processing-3_00: started\njiminny-worker-processing-4:jiminny-worker-processing-4_00: started\njiminny-worker-processing-5:jiminny-worker-processing-5_00: started\njiminny-worker-processing-delayed:jiminny-worker-processing-delayed_00: started\nworker:worker_00: started\nworker-analytics:worker-analytics_00: started\nworker-audio:worker-audio_00: started\nworker-calendar:worker-calendar_00: started\nworker-conferences:worker-conferences_00: started\nworker-crm-sync:worker-crm-sync_00: started\nworker-crm-update:worker-crm-update_00: started\nworker-download:worker-download_00: started\nworker-emails:worker-emails_00: started\nworker-es-update:worker-es-update_00: started\nworker-nudges:worker-nudges_00: started\n\nWhat's next:\n Try Docker Debug for seamless, persistent debugging tools in any container or image → docker debug docker_lamp_1\n Learn more at https://docs.docker.com/go/debug-cli/\ndocker exec -it docker_lamp_1 php -v\nPHP 8.3.30 (cli) (built: Mar 16 2026 22:32:32) (NTS)\nCopyright (c) The PHP Group\nZend Engine v4.3.30, Copyright (c) Zend Technologies\n with Zend OPcache v8.3.30, Copyright (c), by Zend Technologies\n\nWhat's next:\n Try Docker Debug for seamless, persistent debugging tools in any container or image → docker debug docker_lamp_1\n Learn more at https://docs.docker.com/go/debug-cli/\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20676-delete-report-related-objects) $ git status\nOn branch JY-20676-delete-report-related-objects\nChanges not staged for commit:\n (use \"git add <file>...\" to update what will be committed)\n (use \"git restore <file>...\" to discard changes in working directory)\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tmodified: .env.local\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tmodified: app/Console/Commands/JiminnyDebugCommand.php\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tmodified: config/logging.php\n\nUntracked files:\n (use \"git add <file>...\" to include in what will be committed)\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\t.env.nikilocal\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\t.env.other\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tWEBHOOK_FILTERING_IMPLEMENTATION.md\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tapp/Console/Commands/Crm/Hubspot/SimulateWebhooksCommand.php\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tapp/Console/Commands/Reports/CreateMockAskJiminnyReportResultCommand.php\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tids.txt\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tpublic/favicon.ico\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\traw_sql_query.sql\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\ttests/Unit/Policies/CanAccessAiReportsTest.php\n\nno changes added to commit (use \"git add\" and/or \"git commit -a\")\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20676-delete-report-related-objects) $ git push -u origin JY-20676-delete-report-related-objects\nEnumerating objects: 45, done.\nCounting objects: 100% (45/45), done.\nDelta compression using up to 8 threads\nCompressing objects: 100% (24/24), done.\nWriting objects: 100% (24/24), 3.62 KiB | 3.62 MiB/s, done.\nTotal 24 (delta 19), reused 0 (delta 0), pack-reused 0\nremote: Resolving deltas: 100% (19/19), completed with 19 local objects.\nremote: \nremote: Create a pull request for 'JY-20676-delete-report-related-objects' on GitHub by visiting:\nremote: https://github.com/jiminny/app/pull/new/JY-20676-delete-report-related-objects\nremote: \nTo github.com:jiminny/app.git\n * [new branch] JY-20676-delete-report-related-objects -> JY-20676-delete-report-related-objects\nbranch 'JY-20676-delete-report-related-objects' set up to track 'origin/JY-20676-delete-report-related-objects'.\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20676-delete-report-related-objects) $ csfix\ndocker exec -it docker_lamp_1 ./vendor/bin/php-cs-fixer fix --config=.php-cs-fixer.dist.php -v --using-cache=no --diff \nPHP CS Fixer 3.87.1 Alexander by Fabien Potencier, Dariusz Ruminski and contributors.\nPHP runtime: 8.3.30\nRunning analysis on 7 cores with 10 files per process.\nParallel runner is an experimental feature and may be unstable, use it at your own risk. Feedback highly appreciated!\nLoaded config default from \".php-cs-fixer.dist.php\".\n 5690/5690 [▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓] 100%\n\n 1) app/Http/Controllers/API/V2/AskJiminnyReportsController.php (blank_line_before_statement)\n ---------- begin diff ----------\n--- /home/jiminny/app/Http/Controllers/API/V2/AskJiminnyReportsController.php\n+++ /home/jiminny/app/Http/Controllers/API/V2/AskJiminnyReportsController.php\n@@ -140,6 +140,7 @@\n if ($enabled && $report->isAskJiminnyReport() && ! $report->canExecute()) {\n $error = 'This report is missing a saved search or prompt. ' .\n 'Edit the report to complete the setup before enabling it.';\n+\n return new JsonResponse(\n ['error' => $error],\n Response::HTTP_UNPROCESSABLE_ENTITY\n\n ----------- end diff -----------\n\n\nFixed 1 of 5690 files in 71.757 seconds, 60.00 MB memory used\n\nWhat's next:\n Try Docker Debug for seamless, persistent debugging tools in any container or image → docker debug docker_lamp_1\n Learn more at https://docs.docker.com/go/debug-cli/\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20676-delete-report-related-objects) $ git pull\nremote: Enumerating objects: 158, done.\nremote: Counting objects: 100% (103/103), done.\nremote: Compressing objects: 100% (37/37), done.\nremote: Total 158 (delta 80), reused 74 (delta 66), pack-reused 55 (from 3)\nReceiving objects: 100% (158/158), 80.59 KiB | 982.00 KiB/s, done.\nResolving deltas: 100% (85/85), completed with 45 local objects.\nFrom github.com:jiminny/app\n 02a33811ee..c6ce5e2440 JY-20676-delete-report-related-objects -> origin/JY-20676-delete-report-related-objects\n 7ce96cb5fe..6c59f04358 JY-20808-low-priority-indexing-queue -> origin/JY-20808-low-priority-indexing-queue\n 3906a9238a..2b5e6ea62b JY-20835-mcp-enable-users-to-get-a-list-of-deals-and-their-details -> origin/JY-20835-mcp-enable-users-to-get-a-list-of-deals-and-their-details\n 5604af40cf..ea3519f0e2 master -> origin/master\n * [new branch] switch-eu-assembly -> origin/switch-eu-assembly\nUpdating 02a33811ee..c6ce5e2440\nFast-forward\n app/Component/ES/ElasticSearchDocumentPartialUpdater.php | 48 ---\n app/Component/ParticipantSpeech/Services/ParticipantAttributionService.php | 4 +-\n app/Component/Settings/AutoScoring/Services/UpdateAutoScoreService.php | 20 +-\n app/Component/Transcription/Service/StorageService.php | 8 +-\n front-end/package.json | 2 +-\n front-end/src/components/DealInsights/Modals/AskAnythingModal.vue | 23 ++\n front-end/src/components/shared/AskAnything/AskAnythingPromptFormItem.vue | 2 +\n front-end/src/components/shared/AskAnything/AskAnythingSettingsDrawer.vue | 23 +-\n front-end/src/components/shared/AskAnything/__mocks__/AskAnythingSettingsDrawer.mocks.js | 1 +\n front-end/src/components/shared/AskAnything/__tests__/AskAnythingSettingsDrawer.spec.js | 135 ++++---\n front-end/src/components/shared/AskAnything/__tests__/__snapshots__/AskAnythingSettingsDrawer.spec.js.html | 1235 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++\n front-end/src/components/shared/AskAnything/__tests__/__snapshots__/AskAnythingSettingsDrawer.spec.js.snap | 1382 ----------------------------------------------------------------\n front-end/src/components/shared/AskAnything/prompts.js | 1 +\n front-end/src/components/shared/AskAnything/useAskAnything.js | 1 +\n front-end/yarn.lock | 8 +-\n tests/Unit/Component/ES/ElasticSearchDocumentPartialUpdaterTest.php | 42 --\n tests/Unit/Component/Settings/AutoScoring/Services/UpdateAutoScoreServiceTest.php | 86 ++--\n tests/Unit/Component/Transcription/Service/StorageServiceTest.php | 29 +-\n 18 files changed, 1448 insertions(+), 1602 deletions(-)\n delete mode 100644 app/Component/ES/ElasticSearchDocumentPartialUpdater.php\n create mode 100644 front-end/src/components/shared/AskAnything/__tests__/__snapshots__/AskAnythingSettingsDrawer.spec.js.html\n delete mode 100644 front-end/src/components/shared/AskAnything/__tests__/__snapshots__/AskAnythingSettingsDrawer.spec.js.snap\n delete mode 100644 tests/Unit/Component/ES/ElasticSearchDocumentPartialUpdaterTest.php\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20676-delete-report-related-objects) $ csfix\ndocker exec -it docker_lamp_1 ./vendor/bin/php-cs-fixer fix --config=.php-cs-fixer.dist.php -v --using-cache=no --diff \nPHP CS Fixer 3.87.1 Alexander by Fabien Potencier, Dariusz Ruminski and contributors.\nPHP runtime: 8.3.30\nRunning analysis on 7 cores with 10 files per process.\nParallel runner is an experimental feature and may be unstable, use it at your own risk. Feedback highly appreciated!\nLoaded config default from \".php-cs-fixer.dist.php\".\n 5688/5688 [▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓] 100%\n\n\nFixed 0 of 5688 files in 79.904 seconds, 60.00 MB memory used\n\nWhat's next:\n Try Docker Debug for seamless, persistent debugging tools in any container or image → docker debug docker_lamp_1\n Learn more at https://docs.docker.com/go/debug-cli/\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20676-delete-report-related-objects) $","depth":4,"on_screen":true,"value":"Last login: Mon May 18 09:17:28 on ttys007\n\nPoetry could not find a pyproject.toml file in /Users/lukas/jiminny/app or its parents\n\nPoetry could not find a pyproject.toml file in /Users/lukas/jiminny/app or its parents\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (pipedrive-sdk-poc) $ co master\nerror: Your local changes to the following files would be overwritten by checkout:\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tPIPEDRIVE_V2_MIGRATION_TICKETS.md\nPlease commit your changes or stash them before you switch branches.\nAborting\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (pipedrive-sdk-poc) $ git pull\nremote: Enumerating objects: 1047, done.\nremote: Counting objects: 100% (832/832), done.\nremote: Compressing objects: 100% (298/298), done.\nremote: Total 1047 (delta 634), reused 596 (delta 534), pack-reused 215 (from 3)\nReceiving objects: 100% (1047/1047), 353.16 KiB | 1.56 MiB/s, done.\nResolving deltas: 100% (687/687), completed with 107 local objects.\nFrom github.com:jiminny/app\n 907c54896c..34656c53ed pipedrive-sdk-poc -> origin/pipedrive-sdk-poc\n 03325ec50f..4e7078fd8b JY-18091-upgrade-to-php-8-5 -> origin/JY-18091-upgrade-to-php-8-5\n e7d231e163..bc6a3fce6b JY-20725-handle-HS-search-rate-limit -> origin/JY-20725-handle-HS-search-rate-limit\n * [new branch] JY-20749-user-can-view-recorded-meetings -> origin/JY-20749-user-can-view-recorded-meetings\n 98ca281a04..e0351be069 JY-20808-low-priority-indexing-queue -> origin/JY-20808-low-priority-indexing-queue\n 569abb5149..3906a9238a JY-20835-mcp-enable-users-to-get-a-list-of-deals-and-their-details -> origin/JY-20835-mcp-enable-users-to-get-a-list-of-deals-and-their-details\n ad6c2a86e8..50eb6afba9 JY-20846-mcp-enable-the-ai-to-know-details-about-the-user -> origin/JY-20846-mcp-enable-the-ai-to-know-details-about-the-user\n * [new branch] JY-20893-chunk-control-per-update-target -> origin/JY-20893-chunk-control-per-update-target\n 31c62924a5..cb4ebf0c36 master -> origin/master\nUpdating 907c54896c..34656c53ed\nFast-forward\n PIPEDRIVE_V2_MIGRATION_TICKETS.md | 52 ++++++++++++++++++++++++++++++++++++++++++++++++++++\n 1 file changed, 52 insertions(+)\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (pipedrive-sdk-poc) $ co master\nM\u0000\u0000\u0000\u0000\u0000\u0000\t.env.local\nM\u0000\u0000\u0000\u0000\u0000\u0000\tconfig/logging.php\nSwitched to branch 'master'\nYour branch is behind 'origin/master' by 31 commits, and can be fast-forwarded.\n (use \"git pull\" to update your local branch)\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (master) $ git pull\nUpdating 31c62924a5..cb4ebf0c36\nFast-forward\n app/Component/ES/Processor/Traits/SelectEntityListTrait.php | 20 ------\n app/Services/Calendar/CalendarActivityService.php | 46 +++++++++++++\n app/Services/Calendar/Command/MapActivityData.php | 106 +++-------------------------\n docs/mcp/explorer/explorer.html | 104 +++++++++++++++++++++++++---\n docs/mcp/explorer/explorer.template.html | 102 ++++++++++++++++++++++++---\n docs/mcp/tools-list.json | 373 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++-------\n docs/mcp/tools.md | 117 +++++++++++++++++++++++--------\n tests/Unit/Component/ES/AsyncUpdateElasticSearchTest.php | 16 +----\n tests/Unit/Component/ES/Listeners/UpdateMultipleTargetsListenerTest.php | 10 ---\n tests/Unit/Component/ES/Listeners/UpdateSingleTargetListenerTest.php | 6 --\n tests/Unit/Component/ES/Processor/TargetEntitiesSelectorTest.php | 9 ---\n tests/Unit/Component/ES/Processor/Traits/SelectEntityListTraitTest.php | 15 ++--\n tests/Unit/Component/ES/UpdateProcessManagerTest.php | 2 -\n tests/Unit/Services/Calendar/CalendarActivityServiceTest.php | 150 ++++++++++++++++++++++++++++++++++++++--\n tests/Unit/Services/Calendar/Command/MapActivityDataTest.php | 78 ++-------------------\n 15 files changed, 832 insertions(+), 322 deletions(-)\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (master) $ co -b JY-20613-allow-owner-role-on-team-setup\nSwitched to a new branch 'JY-20613-allow-owner-role-on-team-setup'\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20613-allow-owner-role-on-team-setup) $ csfix\ndocker exec -it docker_lamp_1 ./vendor/bin/php-cs-fixer fix --config=.php-cs-fixer.dist.php -v --using-cache=no --diff \nPHP CS Fixer 3.87.1 Alexander by Fabien Potencier, Dariusz Ruminski and contributors.\nPHP runtime: 8.3.30\nRunning analysis on 7 cores with 10 files per process.\nParallel runner is an experimental feature and may be unstable, use it at your own risk. Feedback highly appreciated!\nLoaded config default from \".php-cs-fixer.dist.php\".\n 5682/5682 [▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓] 100%\n\n\nFixed 0 of 5682 files in 56.978 seconds, 67.00 MB memory used\n\nWhat's next:\n Try Docker Debug for seamless, persistent debugging tools in any container or image → docker debug docker_lamp_1\n Learn more at https://docs.docker.com/go/debug-cli/\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20613-allow-owner-role-on-team-setup) $ ;xd\ndocker exec -it docker_lamp_1 bash -c \"mv /usr/local/etc/php/conf.d/xdebug.ini ~/xdebug.ini\"\n\nWhat's next:\n Try Docker Debug for seamless, persistent debugging tools in any container or image → docker debug docker_lamp_1\n Learn more at https://docs.docker.com/go/debug-cli/\ndocker exec -it docker_lamp_1 supervisorctl restart all\njiminny-worker-processing-2:jiminny-worker-processing-2_00: stopped\njiminny-worker-processing-3:jiminny-worker-processing-3_00: stopped\njiminny-worker-processing-4:jiminny-worker-processing-4_00: stopped\njiminny-worker-processing-5:jiminny-worker-processing-5_00: stopped\njiminny-worker-processing-delayed:jiminny-worker-processing-delayed_00: stopped\nworker-analytics:worker-analytics_00: stopped\nworker-crm-update:worker-crm-update_00: stopped\nworker-download:worker-download_00: stopped\nworker-nudges:worker-nudges_00: stopped\nartisan-schedule:artisan-schedule_00: stopped\nworker-emails:worker-emails_00: stopped\nworker-calendar:worker-calendar_00: stopped\nworker:worker_00: stopped\nworker-conferences:worker-conferences_00: stopped\nworker-crm-sync:worker-crm-sync_00: stopped\njiminny-worker-processing-1:jiminny-worker-processing-1_00: stopped\nworker-audio:worker-audio_00: stopped\nworker-es-update:worker-es-update_00: stopped\nartisan-schedule:artisan-schedule_00: started\njiminny-worker-processing-1:jiminny-worker-processing-1_00: started\njiminny-worker-processing-2:jiminny-worker-processing-2_00: started\njiminny-worker-processing-3:jiminny-worker-processing-3_00: started\njiminny-worker-processing-4:jiminny-worker-processing-4_00: started\njiminny-worker-processing-5:jiminny-worker-processing-5_00: started\njiminny-worker-processing-delayed:jiminny-worker-processing-delayed_00: started\nworker:worker_00: started\nworker-analytics:worker-analytics_00: started\nworker-audio:worker-audio_00: started\nworker-calendar:worker-calendar_00: started\nworker-conferences:worker-conferences_00: started\nworker-crm-sync:worker-crm-sync_00: started\nworker-crm-update:worker-crm-update_00: started\nworker-download:worker-download_00: started\nworker-emails:worker-emails_00: started\nworker-es-update:worker-es-update_00: started\nworker-nudges:worker-nudges_00: started\n\nWhat's next:\n Try Docker Debug for seamless, persistent debugging tools in any container or image → docker debug docker_lamp_1\n Learn more at https://docs.docker.com/go/debug-cli/\ndocker exec -it docker_lamp_1 php -v\nPHP 8.3.30 (cli) (built: Mar 16 2026 22:32:32) (NTS)\nCopyright (c) The PHP Group\nZend Engine v4.3.30, Copyright (c) Zend Technologies\n with Zend OPcache v8.3.30, Copyright (c), by Zend Technologies\n\nWhat's next:\n Try Docker Debug for seamless, persistent debugging tools in any container or image → docker debug docker_lamp_1\n Learn more at https://docs.docker.com/go/debug-cli/\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20613-allow-owner-role-on-team-setup) $ csfix\ndocker exec -it docker_lamp_1 ./vendor/bin/php-cs-fixer fix --config=.php-cs-fixer.dist.php -v --using-cache=no --diff \nPHP CS Fixer 3.87.1 Alexander by Fabien Potencier, Dariusz Ruminski and contributors.\nPHP runtime: 8.3.30\nRunning analysis on 7 cores with 10 files per process.\nParallel runner is an experimental feature and may be unstable, use it at your own risk. Feedback highly appreciated!\nLoaded config default from \".php-cs-fixer.dist.php\".\n 5682/5682 [▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓] 100%\n\n\nFixed 0 of 5682 files in 49.910 seconds, 60.00 MB memory used\n\nWhat's next:\n Try Docker Debug for seamless, persistent debugging tools in any container or image → docker debug docker_lamp_1\n Learn more at https://docs.docker.com/go/debug-cli/\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20613-allow-owner-role-on-team-setup) $ git status\nOn branch JY-20613-allow-owner-role-on-team-setup\nYour branch is ahead of 'origin/JY-20613-allow-owner-role-on-team-setup' by 1 commit.\n (use \"git push\" to publish your local commits)\n\nChanges not staged for commit:\n (use \"git add <file>...\" to update what will be committed)\n (use \"git restore <file>...\" to discard changes in working directory)\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tmodified: .env.local\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tmodified: config/logging.php\n\nUntracked files:\n (use \"git add <file>...\" to include in what will be committed)\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\t.env.nikilocal\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\t.env.other\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tWEBHOOK_FILTERING_IMPLEMENTATION.md\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tapp/Console/Commands/Crm/Hubspot/SimulateWebhooksCommand.php\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tapp/Console/Commands/Reports/CreateMockAskJiminnyReportResultCommand.php\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tids.txt\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tpublic/favicon.ico\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\traw_sql_query.sql\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\ttests/Unit/Policies/CanAccessAiReportsTest.php\n\nno changes added to commit (use \"git add\" and/or \"git commit -a\")\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20613-allow-owner-role-on-team-setup) $ git pull\nremote: Enumerating objects: 248, done.\nremote: Counting objects: 100% (128/128), done.\nremote: Compressing objects: 100% (23/23), done.\nremote: Total 59 (delta 43), reused 44 (delta 33), pack-reused 0 (from 0)\nUnpacking objects: 100% (59/59), 10.48 KiB | 228.00 KiB/s, done.\nFrom github.com:jiminny/app\n b7df560451..190239dfd4 JY-20613-allow-owner-role-on-team-setup -> origin/JY-20613-allow-owner-role-on-team-setup\n e0351be069..d94a285ae7 JY-20808-low-priority-indexing-queue -> origin/JY-20808-low-priority-indexing-queue\n * [new branch] JY-20920-fix-participant-matcher -> origin/JY-20920-fix-participant-matcher\n cb4ebf0c36..90bca4e4b2 master -> origin/master\nMerge made by the 'ort' strategy.\n app/Component/ES/ChunkSize.php | 54 +++++++++++++++++++++++++++\n app/Component/ES/Processor/DTOs/SelectionList.php | 4 +-\n app/Component/ES/Processor/TargetEntitiesSelector.php | 19 ++++++----\n app/Http/Middleware/McpTierMiddleware.php | 27 +++-----------\n app/Mcp/Servers/JiminnyServer.php | 2 +\n app/Mcp/Tools/GetMeTool.php | 157 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++\n app/Models/Feature/FeatureEnum.php | 1 +\n database/migrations/2026_05_13_124153_create_mcp_feature_flag.php | 25 +++++++++++++\n front-end/src/components/Settings/Kiosk/modals/EditTeamModal/EditTeamModal.vue | 52 ++++++++++++++++++--------\n front-end/src/components/Settings/Kiosk/modals/EditTeamModal/__tests__/EditTeamModal.spec.js | 14 +++++++\n tests/Feature/Mcp/GetMeToolFeatureTest.php | 140 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++\n tests/Feature/Mcp/ListCallsToolFeatureTest.php | 2 +-\n tests/Feature/Mcp/McpTestHelpersTrait.php | 19 +++++++++-\n tests/Unit/Component/ES/ChunkSizeTest.php | 50 +++++++++++++++++++++++++\n tests/Unit/Component/ES/Processor/DTOs/SelectionListTest.php | 27 ++++++++++----\n tests/Unit/Component/ES/Processor/TargetEntitiesSelectorTest.php | 39 +++++++++++---------\n 16 files changed, 557 insertions(+), 75 deletions(-)\n create mode 100644 app/Component/ES/ChunkSize.php\n create mode 100644 app/Mcp/Tools/GetMeTool.php\n create mode 100644 database/migrations/2026_05_13_124153_create_mcp_feature_flag.php\n create mode 100644 tests/Feature/Mcp/GetMeToolFeatureTest.php\n create mode 100644 tests/Unit/Component/ES/ChunkSizeTest.php\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20613-allow-owner-role-on-team-setup) $ git push\nEnumerating objects: 40, done.\nCounting objects: 100% (34/34), done.\nDelta compression using up to 8 threads\nCompressing objects: 100% (18/18), done.\nWriting objects: 100% (18/18), 1.58 KiB | 1.58 MiB/s, done.\nTotal 18 (delta 15), reused 0 (delta 0), pack-reused 0\nremote: Resolving deltas: 100% (15/15), completed with 13 local objects.\nTo github.com:jiminny/app.git\n 190239dfd4..ec1b261264 JY-20613-allow-owner-role-on-team-setup -> JY-20613-allow-owner-role-on-team-setup\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20613-allow-owner-role-on-team-setup) $ gbr\n* JY-20613-allow-owner-role-on-team-setup\n pipedrive-sdk-poc\n master\n JY-20903-update_activity-stage-on-opportunity-change\n JY-20904-fix-update-es-on-activity-command\n JY-20891-improve-sms-text-relays\n JY-20725-handle-HS-search-rate-limit\n JY-20818-move-AJ-reports-to-separated-datadog-metric\n JY-20773-fix-automated-reports-user-pilot-tracking\n JY-20157-AJ-report-not-send-notification\n JY-20508-notify-before-AJ-report-expiration\n JY-20372-ai-reports-promotion-pages\n JY-20352-sync-opportunities-without-a-local-owner-user-id-is-null\n JY-20738-debug-AJ-tracking-UP\n a\n JY-18909-automated-reports-ask-jiminny\n JY-20692-fix-integration-app-token-auth-response-change\n JY-20553-debug-crm-sync-delays\n JY-20698-fix-SF-activity-types-on-new-playbook\n JY-20543-AJ-report-tracking\n JY-20384-handle-auto-sync-with-no-access-to-event-type\n JY-20458-ask-jiminny-user-definitions\n JY-19666-fix-import-contacts-account-association\n JY-19666-HS-import-contacts-and-accounts-batch-job\n JY-20458-Ask-Jiminny-Reports\n JY-20200-batch-update-CRM-objects-Salesforce\n JY-19666-HS-webhooks-add-contact-and-company\n JY-20348-trigger-setup-DI-layout-on-team-creation\n JY-20326-refactor-info-message-in-command\n JY-20317-fix-auto-log-delay-issue-on-all-channels-disabled\n JY-20312-remove-on-update-change-last-synced-at-crm-configurations\n JY-20306-SF-skip-auto-sync-for-task-based-playbook\n JY-20192-remove-deleted-team-from-saved-search-filters\n JY-20197-import-opportunity-batch-job\n JY-20293-enable-status-field-for-pipedrive-deals\n JY-20191-remove-commands-interactive-prompts\n JY-20118-change-default-sync-strategy\n JY-20183-add-cache-on-auto-log-delay\n JY-20197-add-import-opportunity-batch-job\n 20118-hs-opportunity-make-webhook-strategy-default\n JY-20118-make-default-hs-opportunity-sync-strategy-webhook-based\n JY-20196-handle-opportunity-without-note\n JY-20118-improve-opportunity-import\n JY-20189-handle-activity-search-on-deleted-groups\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20613-allow-owner-role-on-team-setup) $ co JY-20725-handle-HS-search-rate-limit\nM\u0000\u0000\u0000\u0000\u0000\u0000\t.env.local\nM\u0000\u0000\u0000\u0000\u0000\u0000\tconfig/logging.php\nSwitched to branch 'JY-20725-handle-HS-search-rate-limit'\nYour branch is behind 'origin/JY-20725-handle-HS-search-rate-limit' by 439 commits, and can be fast-forwarded.\n (use \"git pull\" to update your local branch)\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20725-handle-HS-search-rate-limit) $ git pull\nUpdating 0f3e438941..bc6a3fce6b\nFast-forward\n .gitignore | 3 +-\n .windsurfrules | 168 ++---\n CLAUDE.md | 1 +\n app/Component/ActivityAnalytics/Service/CalculateTalkTimeOffsetsFromTranscription.php | 24 +-\n app/Component/AiActivityType/Services/AiActivityTypeEligibilityChecker.php | 28 +-\n app/Component/AiAutomation/Actions/PrepareUpdateDtoAction.php | 32 +-\n app/Component/AiAutomation/Services/CrmFillingEligibilityChecker.php | 47 ++\n app/Component/AiAutomation/TestCrmAiPromptService.php | 14 +\n app/Component/AiCallScoring/Services/AiCallScoringEligibilityChecker.php | 9 +\n app/Component/ES/ElasticSearchDocumentPartialUpdater.php | 13 +-\n app/Component/ES/ElasticSearchWorkerManager.php | 86 ---\n app/Component/ES/Processor/Actions/LoadDocumentsAction.php | 80 +--\n app/Component/ES/Processor/EntityQueryBuilder.php | 12 +-\n app/Component/ES/Processor/TargetEntitiesSelector.php | 2 +-\n app/Component/ES/Processor/Traits/SkipActivityTrait.php | 25 -\n app/Component/ES/Repositories/EsResetActivityRepository.php | 11 +-\n app/Component/ES/Worker/ActivityWorker.php | 73 --\n app/Component/ES/Worker/EntityWorker.php | 44 --\n app/Component/ES/Worker/WorkerAmount.php | 60 --\n app/Component/ES/Worker/WorkerInterface.php | 15 -\n app/Component/ElasticSearch/Contract/Searchable.php | 4 +\n app/Component/Encoding/Job/AnalyzeTrackChannelsJob.php | 20 +-\n app/Component/Encoding/Service/GenerateSpeechFromSilenceService.php | 85 ++-\n app/Component/FFMpeg/Services/GetSpeechIntervalsService.php | 18 +-\n app/Component/LanguageDetection/Services/FindSpeechTimeService.php | 22 +-\n app/Component/Nudge/Job/ProcessOrganisationImmediateNudgesJob.php | 218 +++++-\n app/Component/ParagraphBreaker/Services/TranscriptionParagraphsService.php | 4 +\n app/Component/ParticipantSpeech/Services/ParticipantSpeechesCreator.php | 33 +\n app/Component/ParticipantSpeech/Services/ParticipantSpeechesDeleter.php | 15 +\n app/Component/ParticipantSpeech/Services/ParticipantSpeechesProvider.php | 51 +-\n app/Component/ParticipantSpeech/Services/ParticipantSpeechesUploader.php | 36 +\n app/Component/ProphetAi/Exceptions/InsufficientTranscriptException.php | 11 +\n app/Component/Transcription/DTO/Http/Transcription/AssemblyAI/AssemblyAI/NoAssemblyIdException.php | 11 +\n app/Component/Transcription/DTO/Http/Transcription/AssemblyAI/AssemblyAI/SuccessfulResponse.php | 6 +\n app/Component/Transcription/DTO/Http/Transcription/TranscriptionIsNotCorrectFormatException.php | 11 +\n app/Component/Transcription/Diarization/Services/GetNormalizedParticipantSpeechesService.php | 23 +-\n app/Component/Transcription/Diarization/Source/MeetingBotSource.php | 16 +-\n app/Component/Transcription/TranscriptionProcessor/TranscriptionProcessor.php | 3 +\n app/Console/Commands/Activities/ActivityHardDeleteCommand.php | 4 +-\n app/Console/Commands/Activities/Copy.php | 2 +\n app/Console/Commands/Activities/SetupIntegration/TwilioSetS3RecordingCredentialsCommand.php | 119 ++++\n app/Console/Commands/Activities/UpdateActivityElasticSearchDocumentCommand.php | 10 +-\n app/Console/Commands/Crm/BackfillOpportunityUserFromAccountCommand.php | 126 ++++\n app/Console/Commands/Elasticsearch/AsyncUpdateEsActivities.php | 19 -\n app/Console/Commands/Elasticsearch/AsyncUpdateEsEntities.php | 50 +-\n app/Console/Commands/Elasticsearch/ResetAsyncElasticSearchCommand.php | 30 +-\n app/Console/Commands/GeckoExport/GeckoExportParticipantSpeechesCommand.php | 14 +-\n app/Console/Commands/IssueMcpTokenCommand.php | 84 +++\n app/Console/Commands/JiminnyDebugCommand.php | 7 +-\n app/Console/Commands/Tracks/CleanupActivityTracksCommand.php | 2 +-\n app/Console/Kernel.php | 6 +-\n app/Contracts/Services/Calendar/CalendarTrait.php | 80 ++-\n app/Events/AutomatedReports/AutomatedReportGenerated.php | 3 +\n app/Http/Controllers/API/AiCallScoring/AiScorecardController.php | 7 +-\n app/Http/Controllers/API/TeamAiAutomationController.php | 8 +\n app/Http/Controllers/CustomerApi/CustomerApiController.php | 4 +-\n app/Http/Controllers/Kiosk/ActivityController.php | 58 +-\n app/Http/Controllers/Settings/PlaybookController.php | 15 +-\n app/Http/Kernel.php | 23 +\n app/Http/Middleware/McpAuditMiddleware.php | 156 ++++\n app/Http/Middleware/McpTierMiddleware.php | 54 ++\n app/Http/Requests/API/V2/ZapierUploadActivityRequest.php | 28 +-\n app/Jobs/Activity/Import/ImportTwilioVideoSpeechesJob.php | 25 +-\n app/Jobs/Activity/Import/IsActivityReadyForProcessingJob.php | 10 +-\n app/Jobs/Calendar/SetupCalendarSync.php | 21 +-\n app/Jobs/ImportRemoteTrackJob.php | 96 ++-\n app/Jobs/Mailbox/EmailTextRelay.php | 15 +-\n app/Mcp/Contracts/McpCallRepositoryInterface.php | 30 +\n app/Mcp/DTO/ListCallsFilters.php | 29 +\n app/Mcp/Errors/McpError.php | 123 ++++\n app/Mcp/Repositories/McpActivityHydrator.php | 145 ++++\n app/Mcp/Repositories/McpCallRepository.php | 84 +++\n app/Mcp/Repositories/McpElasticCallRepository.php | 171 +++++\n app/Mcp/Servers/JiminnyServer.php | 38 +\n app/Mcp/Tools/ListCallsTool.php | 205 ++++++\n app/Models/Activity.php | 10 +-\n app/Models/Activity/Transcription.php | 17 +-\n app/Models/ElasticSearch/OpportunityElasticSearchTrait.php | 5 +\n app/Models/Participant.php | 1 +\n app/Providers/AppServiceProvider.php | 22 +\n app/Repositories/Crm/ContactRepository.php | 69 +-\n app/Repositories/ParticipantSpeechRepository.php | 13 +-\n app/Services/Activity/ParticipantsService.php | 19 +-\n app/Services/Activity/Twilio/S3RecordingCredentialsService.php | 82 +++\n app/Services/ActivityService.php | 21 +-\n app/Services/Calendar/CalendarActivityService.php | 46 ++\n app/Services/Calendar/Command/ImportParticipants.php | 1 +\n app/Services/Calendar/Command/MapActivityData.php | 106 +--\n app/Services/Calendar/GoogleCalendarService.php | 12 +-\n app/Services/Crm/Close/Processor/OpportunityProcessor.php | 2 +-\n app/Services/Crm/Close/Service.php | 22 +-\n app/Services/Crm/Copper/Service.php | 12 +-\n app/Services/Crm/Hubspot/Service.php | 154 +++-\n app/Services/Crm/Hubspot/ServiceTraits/OpportunitySyncTrait.php | 88 ++-\n app/Services/Crm/IntegrationApp/ServiceTraits/SyncCrmEntitiesTrait.php | 22 +-\n app/Services/Crm/Pipedrive/Service.php | 17 +-\n app/Services/Crm/Salesforce/Service.php | 42 +-\n app/Services/Mail/Office/EmailApiClient.php | 129 +---\n app/Services/RecallAI/Commands/ScheduleBotCommand.php | 39 +-\n app/Services/RecallAI/RecallAIService.php | 22 +-\n composer.json | 3 +-\n composer.lock | 87 ++-\n config/mcp.php | 23 +\n database/migrations/2026_04_30_120000_create_mcp_audit_log_table.php | 36 +\n docs/mcp/explorer/explorer.html | 697 ++++++++++++++++++\n docs/mcp/explorer/explorer.template.html | 697 ++++++++++++++++++\n docs/mcp/explorer/generate.js | 215 ++++++\n docs/mcp/explorer/tool-explorer-meta.json | 11 +\n docs/mcp/tools-list.json | 2536 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++\n docs/mcp/tools.md | 621 ++++++++++++++++\n front-end/package.json | 4 +-\n front-end/src/components/Settings/OrgSettings/AiAutomation/CrmFilling/TemplateFieldForm.vue | 28 +-\n front-end/src/components/Settings/OrgSettings/Playbooks/AddEditPlaybook.vue | 10 +\n front-end/src/components/playback/comments/ActivityComment.less | 10 +-\n front-end/src/components/shared/PromptTester/PromptTester.vue | 12 +-\n front-end/src/components/shared/__tests__/PromptTester.spec.js | 35 +\n front-end/src/components/shared/modals/EntityPickerModal/__tests__/useEntitiesCache.spec.ts | 37 +\n front-end/src/components/shared/modals/EntityPickerModal/useEntitiesCache.ts | 9 +\n front-end/yarn.lock | 16 +-\n phpstan-baseline.neon | 50 --\n routes/api.php | 11 +\n sonar-project.properties | 91 ++-\n tests/Feature/Component/Nudge/ProcessOrganisationImmediateNudgesJobTest.php | 534 ++++++++++++++\n tests/Feature/Jobs/ImportRemoteTrackJobTest.php | 283 +++++++-\n tests/Feature/Mcp/IssueMcpTokenCommandTest.php | 53 ++\n tests/Feature/Mcp/ListCallsToolElasticFeatureTest.php | 155 ++++\n tests/Feature/Mcp/ListCallsToolFeatureTest.php | 352 ++++++++++\n tests/Feature/Mcp/McpTestHelpersTrait.php | 77 ++\n tests/Feature/Services/Team/TeamDeleteHandlers/Retention/RetentionRepositoryHandlerTest.php | 1 +\n tests/Stubs/SentryStub.php | 18 +\n tests/Unit/Component/ActivityAnalytics/Service/CalculateTalkTimeOffsetFromTranscriptionTest.php | 28 +-\n tests/Unit/Component/AiActivityType/Services/AiActivityTypeEligibilityCheckerTest.php | 103 ++-\n tests/Unit/Component/AiAutomation/Actions/PrepareUpdateDtoActionTest.php | 91 +++\n tests/Unit/Component/AiAutomation/Services/CrmFillingEligibilityCheckerTest.php | 124 ++++\n tests/Unit/Component/AiAutomation/TestCrmAiPromptServiceTest.php | 67 +-\n tests/Unit/Component/AiCallScoring/Services/AiCallScoringEligibilityCheckerTest.php | 55 ++\n tests/Unit/Component/ES/ElasticSearchWorkerManagerTest.php | 135 ----\n tests/Unit/Component/ES/Processor/Actions/LoadDocumentsActionTest.php | 220 ++++++\n tests/Unit/Component/ES/Processor/EntityQueryBuilderTest.php | 21 +-\n tests/Unit/Component/ES/Processor/Traits/SkipActivityTraitTest.php | 51 --\n tests/Unit/Component/ES/Worker/ActivityWorkerTest.php | 174 -----\n tests/Unit/Component/ES/Worker/EntityWorkerTest.php | 97 ---\n tests/Unit/Component/ES/Worker/WorkerAmountTest.php | 116 ---\n tests/Unit/Component/Encoding/Job/AnalyzeTrackChannelsJobTest.php | 52 +-\n tests/Unit/Component/Encoding/Service/GenerateSpeechFromSilenceServiceTest.php | 171 ++---\n tests/Unit/Component/FFMpeg/Services/GetSpeechIntervalsTest.php | 36 +-\n tests/Unit/Component/LanguageDetection/Services/FindSpeechTimeServiceTest.php | 20 +-\n tests/Unit/Component/MobileSettings/MobileSettingsControllerTest.php | 5 +-\n tests/Unit/Component/ParticipantSpeech/Services/ParticipantSpeechesCreatorTest.php | 75 ++\n tests/Unit/Component/ParticipantSpeech/Services/ParticipantSpeechesDeleterTest.php | 63 ++\n tests/Unit/Component/ParticipantSpeech/Services/ParticipantSpeechesProviderTest.php | 134 ++++\n tests/Unit/Component/ParticipantSpeech/Services/ParticipantSpeechesUploaderTest.php | 57 ++\n tests/Unit/Component/Transcription/Diarization/Services/GetNormalizedParticipantSpeechesServiceTest.php | 51 +-\n tests/Unit/Component/Transcription/Diarization/Source/MeetingBotSourceTest.php | 29 +-\n tests/Unit/Contracts/Services/Calendar/CalendarTraitTest.php | 58 +-\n tests/Unit/Http/Controllers/Kiosk/ActivityControllerTest.php | 159 +++++\n tests/Unit/Jobs/Activity/Import/ImportTwilioVideoSpeechesJobTest.php | 22 +-\n tests/Unit/Jobs/Activity/Import/IsActivityReadyForProcessingJobTest.php | 26 +-\n tests/Unit/Jobs/Calendar/SetupCalendarSyncTest.php | 25 -\n tests/Unit/Services/Activity/ParticipantsServiceTest.php | 12 +-\n tests/Unit/Services/Activity/Twilio/S3RecordingCredentialsServiceTest.php | 180 +++++\n tests/Unit/Services/ActivityServiceTest.php | 132 ++++\n tests/Unit/Services/Calendar/CalendarActivityServiceTest.php | 150 +++-\n tests/Unit/Services/Calendar/Command/ImportParticipantsTest.php | 6 +-\n tests/Unit/Services/Calendar/Command/MapActivityDataTest.php | 78 +-\n tests/Unit/Services/Calendar/GoogleCalendarServiceTest.php | 116 +++\n tests/Unit/Services/Crm/Close/ServiceTest.php | 165 +++++\n tests/Unit/Services/Crm/Hubspot/ServiceTest.php | 272 ++++++-\n tests/Unit/Services/Crm/Hubspot/ServiceTraits/OpportunitySyncTest.php | 25 +-\n tests/Unit/Services/Crm/Hubspot/ServiceTraits/OpportunitySyncTraitMatchActivitiesTest.php | 3 +-\n tests/Unit/Services/Crm/IntegrationApp/ServiceTraits/SyncCrmEntitiesTraitOpportunitiesTest.php | 40 ++\n tests/Unit/Services/Crm/Pipedrive/ImportOpportunityMatchActivitiesTest.php | 2 +\n tests/Unit/Services/Crm/Salesforce/ServiceTest.php | 139 ++++\n tests/Unit/Services/Mail/Office/EmailApiClientTest.php | 195 ++---\n tests/Unit/Services/RecallAI/RecallAIServiceTest.php | 24 +-\n 175 files changed, 12562 insertions(+), 2162 deletions(-)\n create mode 120000 CLAUDE.md\n create mode 100644 app/Component/AiAutomation/Services/CrmFillingEligibilityChecker.php\n delete mode 100644 app/Component/ES/ElasticSearchWorkerManager.php\n delete mode 100644 app/Component/ES/Processor/Traits/SkipActivityTrait.php\n delete mode 100644 app/Component/ES/Worker/ActivityWorker.php\n delete mode 100644 app/Component/ES/Worker/EntityWorker.php\n delete mode 100644 app/Component/ES/Worker/WorkerAmount.php\n delete mode 100644 app/Component/ES/Worker/WorkerInterface.php\n create mode 100644 app/Component/ProphetAi/Exceptions/InsufficientTranscriptException.php\n create mode 100644 app/Component/Transcription/DTO/Http/Transcription/AssemblyAI/AssemblyAI/NoAssemblyIdException.php\n create mode 100644 app/Component/Transcription/DTO/Http/Transcription/TranscriptionIsNotCorrectFormatException.php\n create mode 100644 app/Console/Commands/Activities/SetupIntegration/TwilioSetS3RecordingCredentialsCommand.php\n create mode 100644 app/Console/Commands/Crm/BackfillOpportunityUserFromAccountCommand.php\n delete mode 100644 app/Console/Commands/Elasticsearch/AsyncUpdateEsActivities.php\n create mode 100644 app/Console/Commands/IssueMcpTokenCommand.php\n create mode 100644 app/Http/Middleware/McpAuditMiddleware.php\n create mode 100644 app/Http/Middleware/McpTierMiddleware.php\n create mode 100644 app/Mcp/Contracts/McpCallRepositoryInterface.php\n create mode 100644 app/Mcp/DTO/ListCallsFilters.php\n create mode 100644 app/Mcp/Errors/McpError.php\n create mode 100644 app/Mcp/Repositories/McpActivityHydrator.php\n create mode 100644 app/Mcp/Repositories/McpCallRepository.php\n create mode 100644 app/Mcp/Repositories/McpElasticCallRepository.php\n create mode 100644 app/Mcp/Servers/JiminnyServer.php\n create mode 100644 app/Mcp/Tools/ListCallsTool.php\n create mode 100644 app/Services/Activity/Twilio/S3RecordingCredentialsService.php\n create mode 100644 config/mcp.php\n create mode 100644 database/migrations/2026_04_30_120000_create_mcp_audit_log_table.php\n create mode 100644 docs/mcp/explorer/explorer.html\n create mode 100644 docs/mcp/explorer/explorer.template.html\n create mode 100644 docs/mcp/explorer/generate.js\n create mode 100644 docs/mcp/explorer/tool-explorer-meta.json\n create mode 100644 docs/mcp/tools-list.json\n create mode 100644 docs/mcp/tools.md\n create mode 100644 front-end/src/components/shared/modals/EntityPickerModal/__tests__/useEntitiesCache.spec.ts\n create mode 100644 tests/Feature/Component/Nudge/ProcessOrganisationImmediateNudgesJobTest.php\n create mode 100644 tests/Feature/Mcp/IssueMcpTokenCommandTest.php\n create mode 100644 tests/Feature/Mcp/ListCallsToolElasticFeatureTest.php\n create mode 100644 tests/Feature/Mcp/ListCallsToolFeatureTest.php\n create mode 100644 tests/Feature/Mcp/McpTestHelpersTrait.php\n create mode 100644 tests/Stubs/SentryStub.php\n create mode 100644 tests/Unit/Component/AiAutomation/Services/CrmFillingEligibilityCheckerTest.php\n delete mode 100644 tests/Unit/Component/ES/ElasticSearchWorkerManagerTest.php\n create mode 100644 tests/Unit/Component/ES/Processor/Actions/LoadDocumentsActionTest.php\n delete mode 100644 tests/Unit/Component/ES/Processor/Traits/SkipActivityTraitTest.php\n delete mode 100644 tests/Unit/Component/ES/Worker/ActivityWorkerTest.php\n delete mode 100644 tests/Unit/Component/ES/Worker/EntityWorkerTest.php\n delete mode 100644 tests/Unit/Component/ES/Worker/WorkerAmountTest.php\n create mode 100644 tests/Unit/Component/ParticipantSpeech/Services/ParticipantSpeechesCreatorTest.php\n create mode 100644 tests/Unit/Http/Controllers/Kiosk/ActivityControllerTest.php\n create mode 100644 tests/Unit/Services/Activity/Twilio/S3RecordingCredentialsServiceTest.php\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20725-handle-HS-search-rate-limit) $ git status\nOn branch master\nYour branch is behind 'origin/master' by 114 commits, and can be fast-forwarded.\n (use \"git pull\" to update your local branch)\n\nChanges not staged for commit:\n (use \"git add <file>...\" to update what will be committed)\n (use \"git restore <file>...\" to discard changes in working directory)\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tmodified: .env.local\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tmodified: app/Component/SCIM/Constants.php\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tmodified: app/Component/SCIM/ScimProvisioning.php\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tmodified: app/Component/Twilio/Conference/ConferenceManager/SoftPhoneManager.php\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tmodified: app/Console/Commands/JiminnyDebugCommand.php\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tmodified: app/DTO/SCIM/AAD/Request/CoreUserRequest.php\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tmodified: app/DTO/SCIM/AAD/Response/CoreUser.php\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tmodified: app/Services/Telephony/TextMessagingService.php\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tmodified: config/logging.php\n\nUntracked files:\n (use \"git add <file>...\" to include in what will be committed)\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\t.env.nikilocal\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\t.env.other\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tWEBHOOK_FILTERING_IMPLEMENTATION.md\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tapp/Component/SCIM/Mutators/Attributes/User/RoleAttr.php\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tapp/Console/Commands/Crm/Hubspot/SimulateWebhooksCommand.php\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tapp/Console/Commands/Reports/CreateMockAskJiminnyReportResultCommand.php\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tapp/Rules/ListenerRoleCannotHaveAdminOrManagerPermissionRule.php\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tids.txt\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tpublic/favicon.ico\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\traw_sql_query.sql\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\ttests/Unit/Component/SCIM/Mutators/Attributes/User/RoleAttrTest.php\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\ttests/Unit/Policies/CanAccessAiReportsTest.php\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\ttests/Unit/Rules/ListenerRoleCannotHaveAdminOrManagerPermissionRuleTest.php\n\nno changes added to commit (use \"git add\" and/or \"git commit -a\")\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (master) $ git pull\nremote: Enumerating objects: 306, done.\nremote: Counting objects: 100% (299/299), done.\nremote: Compressing objects: 100% (183/183), done.\nremote: Total 306 (delta 213), reused 171 (delta 116), pack-reused 7 (from 1)\nReceiving objects: 100% (306/306), 80.12 KiB | 1000.00 KiB/s, done.\nResolving deltas: 100% (213/213), completed with 53 local objects.\nFrom github.com:jiminny/app\n 90bca4e4b2..5604af40cf master -> origin/master\n 4e7078fd8b..0b8343d179 JY-18091-upgrade-to-php-8-5 -> origin/JY-18091-upgrade-to-php-8-5\n 098eeaa087..d5a447e492 JY-20613-allow-owner-role-on-team-setup -> origin/JY-20613-allow-owner-role-on-team-setup\n c3a76ace91..af65249d0f JY-20749-user-can-view-recorded-meetings -> origin/JY-20749-user-can-view-recorded-meetings\n d94a285ae7..7ce96cb5fe JY-20808-low-priority-indexing-queue -> origin/JY-20808-low-priority-indexing-queue\n * [new branch] JY-20842-remove-partial-updater -> origin/JY-20842-remove-partial-updater\n * [new branch] JY-20920-fix-participant-flip -> origin/JY-20920-fix-participant-flip\n * [new branch] secfix/npm-20260519 -> origin/secfix/npm-20260519\nUpdating cb4ebf0c36..5604af40cf\nFast-forward\n app/Component/ES/ChunkSize.php | 54 +++++++++++++++++++\n app/Component/ES/Processor/DTOs/SelectionList.php | 4 +-\n app/Component/ES/Processor/TargetEntitiesSelector.php | 19 ++++---\n app/Component/MeetingBot/Service/ParticipantMatcher.php | 46 ++++++++++++----\n app/Exceptions/RateLimitException.php | 19 ++++++-\n app/Http/Middleware/McpTierMiddleware.php | 27 ++--------\n app/Jobs/Crm/MatchActivityCrmData.php | 47 ++++++++++++----\n app/Jobs/Middleware/HandleHubspotRateLimit.php | 42 +++++++++++++++\n app/Mcp/Servers/JiminnyServer.php | 2 +\n app/Mcp/Tools/GetMeTool.php | 157 +++++++++++++++++++++++++++++++++++++++++++++++++++++\n app/Models/Feature/FeatureEnum.php | 1 +\n app/Services/Activity/HubSpot/ProviderResolver.php | 4 +-\n app/Services/Activity/HubSpot/ProviderResolverInterface.php | 2 +-\n app/Services/Activity/HubSpot/Providers/Provider.php | 2 +-\n app/Services/Activity/HubSpot/Providers/ProviderKixie.php | 2 +-\n app/Services/Activity/HubSpot/Providers/ProviderOrum.php | 2 +-\n app/Services/Activity/HubSpot/Providers/ProviderTwilio.php | 2 +-\n app/Services/Activity/HubSpot/Providers/ProviderTwilioFlex.php | 5 +-\n app/Services/Activity/HubSpot/Service.php | 97 +++++++++++++++++++++++++++------\n app/Services/Crm/Hubspot/Client.php | 132 +++++++++++++++++++++++++++++++++++++++++++++\n app/Services/Crm/Hubspot/HubspotClientInterface.php | 15 ++++++\n app/Services/Crm/Hubspot/Pagination/HubspotPaginationService.php | 21 ++++----\n app/Services/Crm/Hubspot/Pagination/PaginationState.php | 2 +-\n database/migrations/2026_05_13_124153_create_mcp_feature_flag.php | 25 +++++++++\n tests/Feature/Mcp/GetMeToolFeatureTest.php | 140 +++++++++++++++++++++++++++++++++++++++++++++++\n tests/Feature/Mcp/ListCallsToolFeatureTest.php | 2 +-\n tests/Feature/Mcp/McpTestHelpersTrait.php | 19 ++++++-\n tests/Unit/Component/ES/ChunkSizeTest.php | 50 +++++++++++++++++\n tests/Unit/Component/ES/Processor/DTOs/SelectionListTest.php | 27 +++++++---\n tests/Unit/Component/ES/Processor/TargetEntitiesSelectorTest.php | 39 ++++++++------\n tests/Unit/Component/MeetingBot/Service/ParticipantMatcherTest.php | 68 ++++++++++++++++++++++-\n tests/Unit/Exceptions/RateLimitExceptionTest.php | 56 +++++++++++++++++++\n tests/Unit/Jobs/Crm/MatchActivityCrmDataTest.php | 8 +--\n tests/Unit/Jobs/Middleware/HandleHubspotRateLimitTest.php | 151 +++++++++++++++++++++++++++++++++++++++++++++++++++\n tests/Unit/Services/Activity/HubSpot/ServiceTest.php | 109 +++++++++++++++++++++++++++++++++++++\n tests/Unit/Services/Crm/Hubspot/ClientTest.php | 250 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++\n tests/Unit/Services/Crm/Hubspot/Pagination/HubspotPaginationServiceTest.php | 283 +++++++++++++++++++++---------------------------------------------------------------------------\n 37 files changed, 1587 insertions(+), 344 deletions(-)\n create mode 100644 app/Component/ES/ChunkSize.php\n create mode 100644 app/Jobs/Middleware/HandleHubspotRateLimit.php\n create mode 100644 app/Mcp/Tools/GetMeTool.php\n create mode 100644 database/migrations/2026_05_13_124153_create_mcp_feature_flag.php\n create mode 100644 tests/Feature/Mcp/GetMeToolFeatureTest.php\n create mode 100644 tests/Unit/Component/ES/ChunkSizeTest.php\n create mode 100644 tests/Unit/Exceptions/RateLimitExceptionTest.php\n create mode 100644 tests/Unit/Jobs/Middleware/HandleHubspotRateLimitTest.php\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (master) $ git pull\nAlready up to date.\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (master) $ co -b JY-20676-delete-report-related-objects\nSwitched to a new branch 'JY-20676-delete-report-related-objects'\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20676-delete-report-related-objects) $ csfix\ndocker exec -it docker_lamp_1 ./vendor/bin/php-cs-fixer fix --config=.php-cs-fixer.dist.php -v --using-cache=no --diff \nPHP CS Fixer 3.87.1 Alexander by Fabien Potencier, Dariusz Ruminski and contributors.\nPHP runtime: 8.3.30\nRunning analysis on 7 cores with 10 files per process.\nParallel runner is an experimental feature and may be unstable, use it at your own risk. Feedback highly appreciated!\nLoaded config default from \".php-cs-fixer.dist.php\".\n 5690/5690 [▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓] 100%\n\n 1) app/Console/Commands/JiminnyDebugCommand.php (statement_indentation, blank_line_before_statement)\n ---------- begin diff ----------\n--- /home/jiminny/app/Console/Commands/JiminnyDebugCommand.php\n+++ /home/jiminny/app/Console/Commands/JiminnyDebugCommand.php\n@@ -23,6 +23,7 @@\n \n if ($action === 'redis-set') {\n $this->testRedisSet();\n+\n return;\n }\n \n@@ -45,7 +46,7 @@\n $ttl = 60;\n \n try {\n-// $result = Redis::set($testKey, $testValue, 'EX', $ttl, 'NX');\n+ // $result = Redis::set($testKey, $testValue, 'EX', $ttl, 'NX');\n $result = Redis::set($testKey, $testValue, ['nx', 'ex' => $ttl]);\n \n if ($result) {\n\n ----------- end diff -----------\n\n\nFixed 1 of 5690 files in 50.673 seconds, 67.00 MB memory used\n\nWhat's next:\n Try Docker Debug for seamless, persistent debugging tools in any container or image → docker debug docker_lamp_1\n Learn more at https://docs.docker.com/go/debug-cli/\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20676-delete-report-related-objects) $ ;xd\ndocker exec -it docker_lamp_1 bash -c \"mv /usr/local/etc/php/conf.d/xdebug.ini ~/xdebug.ini\"\n\nWhat's next:\n Try Docker Debug for seamless, persistent debugging tools in any container or image → docker debug docker_lamp_1\n Learn more at https://docs.docker.com/go/debug-cli/\ndocker exec -it docker_lamp_1 supervisorctl restart all\njiminny-worker-processing-2:jiminny-worker-processing-2_00: stopped\njiminny-worker-processing-3:jiminny-worker-processing-3_00: stopped\njiminny-worker-processing-4:jiminny-worker-processing-4_00: stopped\njiminny-worker-processing-5:jiminny-worker-processing-5_00: stopped\njiminny-worker-processing-delayed:jiminny-worker-processing-delayed_00: stopped\nworker-analytics:worker-analytics_00: stopped\nworker-crm-update:worker-crm-update_00: stopped\nworker-download:worker-download_00: stopped\nworker-nudges:worker-nudges_00: stopped\nworker-calendar:worker-calendar_00: stopped\nworker-audio:worker-audio_00: stopped\njiminny-worker-processing-1:jiminny-worker-processing-1_00: stopped\nworker:worker_00: stopped\nworker-conferences:worker-conferences_00: stopped\nworker-crm-sync:worker-crm-sync_00: stopped\nworker-emails:worker-emails_00: stopped\nworker-es-update:worker-es-update_00: stopped\nartisan-schedule:artisan-schedule_00: stopped\nartisan-schedule:artisan-schedule_00: started\njiminny-worker-processing-1:jiminny-worker-processing-1_00: started\njiminny-worker-processing-2:jiminny-worker-processing-2_00: started\njiminny-worker-processing-3:jiminny-worker-processing-3_00: started\njiminny-worker-processing-4:jiminny-worker-processing-4_00: started\njiminny-worker-processing-5:jiminny-worker-processing-5_00: started\njiminny-worker-processing-delayed:jiminny-worker-processing-delayed_00: started\nworker:worker_00: started\nworker-analytics:worker-analytics_00: started\nworker-audio:worker-audio_00: started\nworker-calendar:worker-calendar_00: started\nworker-conferences:worker-conferences_00: started\nworker-crm-sync:worker-crm-sync_00: started\nworker-crm-update:worker-crm-update_00: started\nworker-download:worker-download_00: started\nworker-emails:worker-emails_00: started\nworker-es-update:worker-es-update_00: started\nworker-nudges:worker-nudges_00: started\n\nWhat's next:\n Try Docker Debug for seamless, persistent debugging tools in any container or image → docker debug docker_lamp_1\n Learn more at https://docs.docker.com/go/debug-cli/\ndocker exec -it docker_lamp_1 php -v\nPHP 8.3.30 (cli) (built: Mar 16 2026 22:32:32) (NTS)\nCopyright (c) The PHP Group\nZend Engine v4.3.30, Copyright (c) Zend Technologies\n with Zend OPcache v8.3.30, Copyright (c), by Zend Technologies\n\nWhat's next:\n Try Docker Debug for seamless, persistent debugging tools in any container or image → docker debug docker_lamp_1\n Learn more at https://docs.docker.com/go/debug-cli/\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20676-delete-report-related-objects) $ git status\nOn branch JY-20676-delete-report-related-objects\nChanges not staged for commit:\n (use \"git add <file>...\" to update what will be committed)\n (use \"git restore <file>...\" to discard changes in working directory)\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tmodified: .env.local\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tmodified: app/Console/Commands/JiminnyDebugCommand.php\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tmodified: config/logging.php\n\nUntracked files:\n (use \"git add <file>...\" to include in what will be committed)\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\t.env.nikilocal\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\t.env.other\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tWEBHOOK_FILTERING_IMPLEMENTATION.md\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tapp/Console/Commands/Crm/Hubspot/SimulateWebhooksCommand.php\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tapp/Console/Commands/Reports/CreateMockAskJiminnyReportResultCommand.php\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tids.txt\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tpublic/favicon.ico\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\traw_sql_query.sql\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\ttests/Unit/Policies/CanAccessAiReportsTest.php\n\nno changes added to commit (use \"git add\" and/or \"git commit -a\")\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20676-delete-report-related-objects) $ git push -u origin JY-20676-delete-report-related-objects\nEnumerating objects: 45, done.\nCounting objects: 100% (45/45), done.\nDelta compression using up to 8 threads\nCompressing objects: 100% (24/24), done.\nWriting objects: 100% (24/24), 3.62 KiB | 3.62 MiB/s, done.\nTotal 24 (delta 19), reused 0 (delta 0), pack-reused 0\nremote: Resolving deltas: 100% (19/19), completed with 19 local objects.\nremote: \nremote: Create a pull request for 'JY-20676-delete-report-related-objects' on GitHub by visiting:\nremote: https://github.com/jiminny/app/pull/new/JY-20676-delete-report-related-objects\nremote: \nTo github.com:jiminny/app.git\n * [new branch] JY-20676-delete-report-related-objects -> JY-20676-delete-report-related-objects\nbranch 'JY-20676-delete-report-related-objects' set up to track 'origin/JY-20676-delete-report-related-objects'.\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20676-delete-report-related-objects) $ csfix\ndocker exec -it docker_lamp_1 ./vendor/bin/php-cs-fixer fix --config=.php-cs-fixer.dist.php -v --using-cache=no --diff \nPHP CS Fixer 3.87.1 Alexander by Fabien Potencier, Dariusz Ruminski and contributors.\nPHP runtime: 8.3.30\nRunning analysis on 7 cores with 10 files per process.\nParallel runner is an experimental feature and may be unstable, use it at your own risk. Feedback highly appreciated!\nLoaded config default from \".php-cs-fixer.dist.php\".\n 5690/5690 [▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓] 100%\n\n 1) app/Http/Controllers/API/V2/AskJiminnyReportsController.php (blank_line_before_statement)\n ---------- begin diff ----------\n--- /home/jiminny/app/Http/Controllers/API/V2/AskJiminnyReportsController.php\n+++ /home/jiminny/app/Http/Controllers/API/V2/AskJiminnyReportsController.php\n@@ -140,6 +140,7 @@\n if ($enabled && $report->isAskJiminnyReport() && ! $report->canExecute()) {\n $error = 'This report is missing a saved search or prompt. ' .\n 'Edit the report to complete the setup before enabling it.';\n+\n return new JsonResponse(\n ['error' => $error],\n Response::HTTP_UNPROCESSABLE_ENTITY\n\n ----------- end diff -----------\n\n\nFixed 1 of 5690 files in 71.757 seconds, 60.00 MB memory used\n\nWhat's next:\n Try Docker Debug for seamless, persistent debugging tools in any container or image → docker debug docker_lamp_1\n Learn more at https://docs.docker.com/go/debug-cli/\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20676-delete-report-related-objects) $ git pull\nremote: Enumerating objects: 158, done.\nremote: Counting objects: 100% (103/103), done.\nremote: Compressing objects: 100% (37/37), done.\nremote: Total 158 (delta 80), reused 74 (delta 66), pack-reused 55 (from 3)\nReceiving objects: 100% (158/158), 80.59 KiB | 982.00 KiB/s, done.\nResolving deltas: 100% (85/85), completed with 45 local objects.\nFrom github.com:jiminny/app\n 02a33811ee..c6ce5e2440 JY-20676-delete-report-related-objects -> origin/JY-20676-delete-report-related-objects\n 7ce96cb5fe..6c59f04358 JY-20808-low-priority-indexing-queue -> origin/JY-20808-low-priority-indexing-queue\n 3906a9238a..2b5e6ea62b JY-20835-mcp-enable-users-to-get-a-list-of-deals-and-their-details -> origin/JY-20835-mcp-enable-users-to-get-a-list-of-deals-and-their-details\n 5604af40cf..ea3519f0e2 master -> origin/master\n * [new branch] switch-eu-assembly -> origin/switch-eu-assembly\nUpdating 02a33811ee..c6ce5e2440\nFast-forward\n app/Component/ES/ElasticSearchDocumentPartialUpdater.php | 48 ---\n app/Component/ParticipantSpeech/Services/ParticipantAttributionService.php | 4 +-\n app/Component/Settings/AutoScoring/Services/UpdateAutoScoreService.php | 20 +-\n app/Component/Transcription/Service/StorageService.php | 8 +-\n front-end/package.json | 2 +-\n front-end/src/components/DealInsights/Modals/AskAnythingModal.vue | 23 ++\n front-end/src/components/shared/AskAnything/AskAnythingPromptFormItem.vue | 2 +\n front-end/src/components/shared/AskAnything/AskAnythingSettingsDrawer.vue | 23 +-\n front-end/src/components/shared/AskAnything/__mocks__/AskAnythingSettingsDrawer.mocks.js | 1 +\n front-end/src/components/shared/AskAnything/__tests__/AskAnythingSettingsDrawer.spec.js | 135 ++++---\n front-end/src/components/shared/AskAnything/__tests__/__snapshots__/AskAnythingSettingsDrawer.spec.js.html | 1235 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++\n front-end/src/components/shared/AskAnything/__tests__/__snapshots__/AskAnythingSettingsDrawer.spec.js.snap | 1382 ----------------------------------------------------------------\n front-end/src/components/shared/AskAnything/prompts.js | 1 +\n front-end/src/components/shared/AskAnything/useAskAnything.js | 1 +\n front-end/yarn.lock | 8 +-\n tests/Unit/Component/ES/ElasticSearchDocumentPartialUpdaterTest.php | 42 --\n tests/Unit/Component/Settings/AutoScoring/Services/UpdateAutoScoreServiceTest.php | 86 ++--\n tests/Unit/Component/Transcription/Service/StorageServiceTest.php | 29 +-\n 18 files changed, 1448 insertions(+), 1602 deletions(-)\n delete mode 100644 app/Component/ES/ElasticSearchDocumentPartialUpdater.php\n create mode 100644 front-end/src/components/shared/AskAnything/__tests__/__snapshots__/AskAnythingSettingsDrawer.spec.js.html\n delete mode 100644 front-end/src/components/shared/AskAnything/__tests__/__snapshots__/AskAnythingSettingsDrawer.spec.js.snap\n delete mode 100644 tests/Unit/Component/ES/ElasticSearchDocumentPartialUpdaterTest.php\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20676-delete-report-related-objects) $ csfix\ndocker exec -it docker_lamp_1 ./vendor/bin/php-cs-fixer fix --config=.php-cs-fixer.dist.php -v --using-cache=no --diff \nPHP CS Fixer 3.87.1 Alexander by Fabien Potencier, Dariusz Ruminski and contributors.\nPHP runtime: 8.3.30\nRunning analysis on 7 cores with 10 files per process.\nParallel runner is an experimental feature and may be unstable, use it at your own risk. Feedback highly appreciated!\nLoaded config default from \".php-cs-fixer.dist.php\".\n 5688/5688 [▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓] 100%\n\n\nFixed 0 of 5688 files in 79.904 seconds, 60.00 MB memory used\n\nWhat's next:\n Try Docker Debug for seamless, persistent debugging tools in any container or image → docker debug docker_lamp_1\n Learn more at https://docs.docker.com/go/debug-cli/\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20676-delete-report-related-objects) $","is_focused":true},{"role":"AXRadioButton","text":"DOCKER","depth":2,"bounds":{"left":0.0,"top":0.05888889,"width":0.19826388,"height":0.026666667},"on_screen":true,"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.004166667,"top":0.06333333,"width":0.011111111,"height":0.017777778},"on_screen":true,"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"DEV (docker)","depth":2,"bounds":{"left":0.19826388,"top":0.05888889,"width":0.19826388,"height":0.026666667},"on_screen":true,"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.20243056,"top":0.06333333,"width":0.011111111,"height":0.017777778},"on_screen":true,"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"APP (-zsh)","depth":2,"bounds":{"left":0.39652777,"top":0.05888889,"width":0.19791667,"height":0.026666667},"on_screen":true,"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.40069443,"top":0.06333333,"width":0.011111111,"height":0.017777778},"on_screen":true,"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"screenpipe\"","depth":2,"bounds":{"left":0.59444445,"top":0.05888889,"width":0.19791667,"height":0.026666667},"on_screen":true,"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.5986111,"top":0.06333333,"width":0.011111111,"height":0.017777778},"on_screen":true,"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"-zsh","depth":2,"bounds":{"left":0.79236114,"top":0.05888889,"width":0.19791667,"height":0.026666667},"on_screen":true,"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.7965278,"top":0.06333333,"width":0.011111111,"height":0.017777778},"on_screen":true,"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"⌥⌘1","depth":1,"bounds":{"left":0.9618056,"top":0.032222223,"width":0.038194418,"height":0.018888889},"on_screen":true,"automation_id":"_NS:8","role_description":"text"},{"role":"AXStaticText","text":"APP (-zsh)","depth":1,"bounds":{"left":0.47777778,"top":0.033333335,"width":0.05138889,"height":0.017777778},"on_screen":true,"role_description":"text"}]...
|
2802650493718167367
|
-1358120912881272742
|
idle
|
accessibility
|
NULL
|
Last login: Mon May 18 09:17:28 on ttys007
Poetry Last login: Mon May 18 09:17:28 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 (pipedrive-sdk-poc) $ co master
error: Your local changes to the following files would be overwritten by checkout:
PIPEDRIVE_V2_MIGRATION_TICKETS.md
Please commit your changes or stash them before you switch branches.
Aborting
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (pipedrive-sdk-poc) $ git pull
remote: Enumerating objects: 1047, done.
remote: Counting objects: 100% (832/832), done.
remote: Compressing objects: 100% (298/298), done.
remote: Total 1047 (delta 634), reused 596 (delta 534), pack-reused 215 (from 3)
Receiving objects: 100% (1047/1047), 353.16 KiB | 1.56 MiB/s, done.
Resolving deltas: 100% (687/687), completed with 107 local objects.
From github.com:jiminny/app
907c54896c..34656c53ed pipedrive-sdk-poc -> origin/pipedrive-sdk-poc
03325ec50f..4e7078fd8b JY-18091-upgrade-to-php-8-5 -> origin/JY-18091-upgrade-to-php-8-5
e7d231e163..bc6a3fce6b JY-20725-handle-HS-search-rate-limit -> origin/JY-20725-handle-HS-search-rate-limit
* [new branch] JY-20749-user-can-view-recorded-meetings -> origin/JY-20749-user-can-view-recorded-meetings
98ca281a04..e0351be069 JY-20808-low-priority-indexing-queue -> origin/JY-20808-low-priority-indexing-queue
569abb5149..3906a9238a JY-20835-mcp-enable-users-to-get-a-list-of-deals-and-their-details -> origin/JY-20835-mcp-enable-users-to-get-a-list-of-deals-and-their-details
ad6c2a86e8..50eb6afba9 JY-20846-mcp-enable-the-ai-to-know-details-about-the-user -> origin/JY-20846-mcp-enable-the-ai-to-know-details-about-the-user
* [new branch] JY-20893-chunk-control-per-update-target -> origin/JY-20893-chunk-control-per-update-target
31c62924a5..cb4ebf0c36 master -> origin/master
Updating 907c54896c..34656c53ed
Fast-forward
PIPEDRIVE_V2_MIGRATION_TICKETS.md | 52 ++++++++++++++++++++++++++++++++++++++++++++++++++++
1 file changed, 52 insertions(+)
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (pipedrive-sdk-poc) $ co master
M .env.local
M config/logging.php
Switched to branch 'master'
Your branch is behind 'origin/master' by 31 commits, and can be fast-forwarded.
(use "git pull" to update your local branch)
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (master) $ git pull
Updating 31c62924a5..cb4ebf0c36
Fast-forward
app/Component/ES/Processor/Traits/SelectEntityListTrait.php | 20 ------
app/Services/Calendar/CalendarActivityService.php | 46 +++++++++++++
app/Services/Calendar/Command/MapActivityData.php | 106 +++-------------------------
docs/mcp/explorer/explorer.html | 104 +++++++++++++++++++++++++---
docs/mcp/explorer/explorer.template.html | 102 ++++++++++++++++++++++++---
docs/mcp/tools-list.json | 373 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++-------
docs/mcp/tools.md | 117 +++++++++++++++++++++++--------
tests/Unit/Component/ES/AsyncUpdateElasticSearchTest.php | 16 +----
tests/Unit/Component/ES/Listeners/UpdateMultipleTargetsListenerTest.php | 10 ---
tests/Unit/Component/ES/Listeners/UpdateSingleTargetListenerTest.php | 6 --
tests/Unit/Component/ES/Processor/TargetEntitiesSelectorTest.php | 9 ---
tests/Unit/Component/ES/Processor/Traits/SelectEntityListTraitTest.php | 15 ++--
tests/Unit/Component/ES/UpdateProcessManagerTest.php | 2 -
tests/Unit/Services/Calendar/CalendarActivityServiceTest.php | 150 ++++++++++++++++++++++++++++++++++++++--
tests/Unit/Services/Calendar/Command/MapActivityDataTest.php | 78 ++-------------------
15 files changed, 832 insertions(+), 322 deletions(-)
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (master) $ co -b JY-20613-allow-owner-role-on-team-setup
Switched to a new branch 'JY-20613-allow-owner-role-on-team-setup'
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20613-allow-owner-role-on-team-setup) $ csfix
docker exec -it docker_lamp_1 ./vendor/bin/php-cs-fixer fix --config=.php-cs-fixer.dist.php -v --using-cache=no --diff
PHP CS Fixer 3.87.1 Alexander by Fabien Potencier, Dariusz Ruminski and contributors.
PHP runtime: 8.3.30
Running 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!
Loaded config default from ".php-cs-fixer.dist.php".
5682/5682 [▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓] 100%
Fixed 0 of 5682 files in 56.978 seconds, 67.00 MB memory used
What's next:
Try Docker Debug for seamless, persistent debugging tools in any container or image → docker debug docker_lamp_1
Learn more at [URL_WITH_CREDENTIALS] ~/jiminny/app (JY-20613-allow-owner-role-on-team-setup) $ csfix
docker exec -it docker_lamp_1 ./vendor/bin/php-cs-fixer fix --config=.php-cs-fixer.dist.php -v --using-cache=no --diff
PHP CS Fixer 3.87.1 Alexander by Fabien Potencier, Dariusz Ruminski and contributors.
PHP runtime: 8.3.30
Running 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!
Loaded config default from ".php-cs-fixer.dist.php".
5682/5682 [▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓] 100%
Fixed 0 of 5682 files in 49.910 seconds, 60.00 MB memory used
What's next:
Try Docker Debug for seamless, persistent debugging tools in any container or image → docker debug docker_lamp_1
Learn more at [URL_WITH_CREDENTIALS] ~/jiminny/app (JY-20613-allow-owner-role-on-team-setup) $ git pull
remote: Enumerating objects: 248, done.
remote: Counting objects: 100% (128/128), done.
remote: Compressing objects: 100% (23/23), done.
remote: Total 59 (delta 43), reused 44 (delta 33), pack-reused 0 (from 0)
Unpacking objects: 100% (59/59), 10.48 KiB | 228.00 KiB/s, done.
From github.com:jiminny/app
b7df560451..190239dfd4 JY-20613-allow-owner-role-on-team-setup -> origin/JY-20613-allow-owner-role-on-team-setup
e0351be069..d94a285ae7 JY-20808-low-priority-indexing-queue -> origin/JY-20808-low-priority-indexing-queue
* [new branch] JY-20920-fix-participant-matcher -> origin/JY-20920-fix-participant-matcher
cb4ebf0c36..90bca4e4b2 master -> origin/master
Merge made by the 'ort' strategy.
app/Component/ES/ChunkSize.php | 54 +++++++++++++++++++++++++++
app/Component/ES/Processor/DTOs/SelectionList.php | 4 +-
app/Component/ES/Processor/TargetEntitiesSelector.php | 19 ++++++----
app/Http/Middleware/McpTierMiddleware.php | 27 +++-----------
app/Mcp/Servers/JiminnyServer.php | 2 +
app/Mcp/Tools/GetMeTool.php | 157 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
app/Models/Feature/FeatureEnum.php | 1 +
database/migrations/2026_05_13_124153_create_mcp_feature_flag.php | 25 +++++++++++++
front-end/src/components/Settings/Kiosk/modals/EditTeamModal/EditTeamModal.vue | 52 ++++++++++++++++++--------
front-end/src/components/Settings/Kiosk/modals/EditTeamModal/__tests__/EditTeamModal.spec.js | 14 +++++++
tests/Feature/Mcp/GetMeToolFeatureTest.php | 140 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
tests/Feature/Mcp/ListCallsToolFeatureTest.php | 2 +-
tests/Feature/Mcp/McpTestHelpersTrait.php | 19 +++++++++-
tests/Unit/Component/ES/ChunkSizeTest.php | 50 +++++++++++++++++++++++++
tests/Unit/Component/ES/Processor/DTOs/SelectionListTest.php | 27 ++++++++++----
tests/Unit/Component/ES/Processor/TargetEntitiesSelectorTest.php | 39 +++++++++++---------
16 files changed, 557 insertions(+), 75 deletions(-)
create mode 100644 app/Component/ES/ChunkSize.php
create mode 100644 app/Mcp/Tools/GetMeTool.php
create mode 100644 database/migrations/2026_05_13_124153_create_mcp_feature_flag.php
create mode 100644 tests/Feature/Mcp/GetMeToolFeatureTest.php
create mode 100644 tests/Unit/Component/ES/ChunkSizeTest.php
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20613-allow-owner-role-on-team-setup) $ git push
Enumerating objects: 40, done.
Counting objects: 100% (34/34), done.
Delta compression using up to 8 threads
Compressing objects: 100% (18/18), done.
Writing objects: 100% (18/18), 1.58 KiB | 1.58 MiB/s, done.
Total 18 (delta 15), reused 0 (delta 0), pack-reused 0
remote: Resolving deltas: 100% (15/15), completed with 13 local objects.
To github.com:jiminny/app.git
190239dfd4..ec1b261264 JY-20613-allow-owner-role-on-team-setup -> JY-20613-allow-owner-role-on-team-setup
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20613-allow-owner-role-on-team-setup) $ gbr
* JY-20613-allow-owner-role-on-team-setup
pipedrive-sdk-poc
master
JY-20903-update_activity-stage-on-opportunity-change
JY-20904-fix-update-es-on-activity-command
JY-20891-improve-sms-text-relays
JY-20725-handle-HS-search-rate-limit
JY-20818-move-AJ-reports-to-separated-datadog-metric
JY-20773-fix-automated-reports-user-pilot-tracking
JY-20157-AJ-report-not-send-notification
JY-20508-notify-before-AJ-report-expiration
JY-20372-ai-reports-promotion-pages
JY-20352-sync-opportunities-without-a-local-owner-user-id-is-null
JY-20738-debug-AJ-tracking-UP
a
JY-18909-automated-reports-ask-jiminny
JY-20692-fix-integration-app-[API_KEY]
JY-20553-debug-crm-sync-delays
JY-20698-fix-SF-activity-types-on-new-playbook
JY-20543-AJ-report-tracking
JY-20384-handle-auto-sync-with-no-access-to-event-type
JY-20458-ask-jiminny-user-definitions
JY-19666-fix-import-contacts-account-association
JY-19666-HS-import-contacts-and-accounts-batch-job
JY-20458-Ask-Jiminny-Reports
JY-20200-batch-update-CRM-objects-Salesforce
JY-19666-HS-webhooks-add-contact-and-company
JY-20348-trigger-setup-DI-layout-on-team-creation
JY-20326-refactor-info-message-in-command
JY-20317-fix-auto-log-delay-issue-on-all-channels-disabled
JY-20312-remove-on-update-change-last-synced-at-crm-configurations
JY-20306-SF-skip-auto-sync-for-task-based-playbook
JY-20192-remove-deleted-team-from-saved-search-filters
JY-20197-import-opportunity-batch-job
JY-20293-enable-status-field-for-pipedrive-deals
JY-20191-remove-commands-interactive-prompts
JY-20118-change-default-sync-strategy
JY-20183-add-cache-on-auto-log-delay
JY-20197-add-import-opportunity-batch-job
20118-hs-opportunity-make-webhook-strategy-default
JY-20118-make-default-hs-opportunity-sync-strategy-webhook-based
JY-20196-handle-opportunity-without-note
JY-20118-improve-opportunity-import
JY-20189-handle-activity-search-on-deleted-groups
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20613-allow-owner-role-on-team-setup) $ co JY-20725-handle-HS-search-rate-limit
M .env.local
M config/logging.php
Switched to branch 'JY-20725-handle-HS-search-rate-limit'
Your branch is behind 'origin/JY-20725-handle-HS-search-rate-limit' by 439 commits, and can be fast-forwarded.
(use "git pull" to update your local branch)
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20725-handle-HS-search-rate-limit) $ git pull
Updating 0f3e438941..bc6a3fce6b
Fast-forward
.gitignore | 3 +-
.windsurfrules | 168 ++---
CLAUDE.md | 1 +
app/Component/ActivityAnalytics/Service/CalculateTalkTimeOffsetsFromTranscription.php | 24 +-
app/Component/AiActivityType/Services/AiActivityTypeEligibilityChecker.php | 28 +-
app/Component/AiAutomation/Actions/PrepareUpdateDtoAction.php | 32 +-
app/Component/AiAutomation/Services/CrmFillingEligibilityChecker.php | 47 ++
app/Component/AiAutomation/TestCrmAiPromptService.php | 14 +
app/Component/AiCallScoring/Services/AiCallScoringEligibilityChecker.php | 9 +
app/Component/ES/ElasticSearchDocumentPartialUpdater.php | 13 +-
app/Component/ES/ElasticSearchWorkerManager.php | 86 ---
app/Component/ES/Processor/Actions/LoadDocumentsAction.php | 80 +--
app/Component/ES/Processor/EntityQueryBuilder.php | 12 +-
app/Component/ES/Processor/TargetEntitiesSelector.php | 2 +-
app/Component/ES/Processor/Traits/SkipActivityTrait.php | 25 -
app/Component/ES/Repositories/EsResetActivityRepository.php | 11 +-
app/Component/ES/Worker/ActivityWorker.php | 73 --
app/Component/ES/Worker/EntityWorker.php | 44 --
app/Component/ES/Worker/WorkerAmount.php | 60 --
app/Component/ES/Worker/WorkerInterface.php | 15 -
app/Component/ElasticSearch/Contract/Searchable.php | 4 +
app/Component/Encoding/Job/AnalyzeTrackChannelsJob.php | 20 +-
app/Component/Encoding/Service/GenerateSpeechFromSilenceService.php | 85 ++-
app/Component/FFMpeg/Services/GetSpeechIntervalsService.php | 18 +-
app/Component/LanguageDetection/Services/FindSpeechTimeService.php | 22 +-
app/Component/Nudge/Job/ProcessOrganisationImmediateNudgesJob.php | 218 +++++-
app/Component/ParagraphBreaker/Services/TranscriptionParagraphsService.php | 4 +
app/Component/ParticipantSpeech/Services/ParticipantSpeechesCreator.php | 33 +
app/Component/ParticipantSpeech/Services/ParticipantSpeechesDeleter.php | 15 +
app/Component/ParticipantSpeech/Services/ParticipantSpeechesProvider.php | 51 +-
app/Component/ParticipantSpeech/Services/ParticipantSpeechesUploader.php | 36 +
app/Component/ProphetAi/Exceptions/InsufficientTranscriptException.php | 11 +
app/Component/Transcription/DTO/Http/Transcription/AssemblyAI/AssemblyAI/NoAssemblyIdException.php | 11 +
app/Component/Transcription/DTO/Http/Transcription/AssemblyAI/AssemblyAI/SuccessfulResponse.php | 6 +
app/Component/Transcription/DTO/Http/Transcription/TranscriptionIsNotCorrectFormatException.php | 11 +
app/Component/Transcription/Diarization/Services/GetNormalizedParticipantSpeechesService.php | 23 +-
app/Component/Transcription/Diarization/Source/MeetingBotSource.php | 16 +-
app/Component/Transcription/TranscriptionProcessor/TranscriptionProcessor.php | 3 +
app/Console/Commands/Activities/ActivityHardDeleteCommand.php | 4 +-
app/Console/Commands/Activities/Copy.php | 2 +
app/Console/Commands/Activities/SetupIntegration/TwilioSetS3RecordingCredentialsCommand.php | 119 ++++
app/Console/Commands/Activities/UpdateActivityElasticSearchDocumentCommand.php | 10 +-
app/Console/Commands/Crm/BackfillOpportunityUserFromAccountCommand.php | 126 ++++
app/Console/Commands/Elasticsearch/AsyncUpdateEsActivities.php | 19 -
app/Console/Commands/Elasticsearch/AsyncUpdateEsEntities.php | 50 +-
app/Console/Commands/Elasticsearch/ResetAsyncElasticSearchCommand.php | 30 +-
app/Console/Commands/GeckoExport/GeckoExportParticipantSpeechesCommand.php | 14 +-
app/Console/Commands/IssueMcpTokenCommand.php | 84 +++
app/Console/Commands/JiminnyDebugCommand.php | 7 +-
app/Console/Commands/Tracks/CleanupActivityTracksCommand.php | 2 +-
app/Console/Kernel.php | 6 +-
app/Contracts/Services/Calendar/CalendarTrait.php | 80 ++-
app/Events/AutomatedReports/AutomatedReportGenerated.php | 3 +
app/Http/Controllers/API/AiCallScoring/AiScorecardController.php | 7 +-
app/Http/Controllers/API/TeamAiAutomationController.php | 8 +
app/Http/Controllers/CustomerApi/CustomerApiController.php | 4 +-
app/Http/Controllers/Kiosk/ActivityController.php | 58 +-
app/Http/Controllers/Settings/PlaybookController.php | 15 +-
app/Http/Kernel.php | 23 +
app/Http/Middleware/McpAuditMiddleware.php | 156 ++++
app/Http/Middleware/McpTierMiddleware.php | 54 ++
app/Http/Requests/API/V2/ZapierUploadActivityRequest.php | 28 +-
app/Jobs/Activity/Import/ImportTwilioVideoSpeechesJob.php | 25 +-
app/Jobs/Activity/Import/IsActivityReadyForProcessingJob.php | 10 +-
app/Jobs/Calendar/SetupCalendarSync.php | 21 +-
app/Jobs/ImportRemoteTrackJob.php | 96 ++-
app/Jobs/Mailbox/EmailTextRelay.php | 15 +-
app/Mcp/Contracts/McpCallRepositoryInterface.php | 30 +
app/Mcp/DTO/ListCallsFilters.php | 29 +
app/Mcp/Errors/McpError.php | 123 ++++
app/Mcp/Repositories/McpActivityHydrator.php | 145 ++++
app/Mcp/Repositories/McpCallRepository.php | 84 +++
app/Mcp/Repositories/McpElasticCallRepository.php | 171 +++++
app/Mcp/Servers/JiminnyServer.php | 38 +
app/Mcp/Tools/ListCallsTool.php | 205 ++++++
app/Models/Activity.php | 10 +-
app/Models/Activity/Transcription.php | 17 +-
app/Models/ElasticSearch/OpportunityElasticSearchTrait.php | 5 +
app/Models/Participant.php | 1 +
app/Providers/AppServiceProvider.php | 22 +
app/Repositories/Crm/ContactRepository.php | 69 +-
app/Repositories/ParticipantSpeechRepository.php | 13 +-
app/Services/Activity/ParticipantsService.php | 19 +-
app/Services/Activity/Twilio/S3RecordingCredentialsService.php | 82 +++
app/Services/ActivityService.php | 21 +-
app/Services/Calendar/CalendarActivityService.php | 46 ++
app/Services/Calendar/Command/ImportParticipants.php | 1 +
app/Services/Calendar/Command/MapActivityData.php | 106 +--
app/Services/Calendar/GoogleCalendarService.php | 12 +-
app/Services/Crm/Close/Processor/OpportunityProcessor.php | 2 +-
app/Services/Crm/Close/Service.php | 22 +-
app/Services/Crm/Copper/Service.php | 12 +-
app/Services/Crm/Hubspot/Service.php | 154 +++-
app/Services/Crm/Hubspot/ServiceTraits/OpportunitySyncTrait.php | 88 ++-
app/Services/Crm/IntegrationApp/ServiceTraits/SyncCrmEntitiesTrait.php | 22 +-
app/Services/Crm/Pipedrive/Service.php | 17 +-
app/Services/Crm/Salesforce/Service.php | 42 +-
app/Services/Mail/Office/EmailApiClient.php | 129 +---
app/Services/RecallAI/Commands/ScheduleBotCommand.php | 39 +-
app/Services/RecallAI/RecallAIService.php | 22 +-
composer.json | 3 +-
composer.lock | 87 ++-
config/mcp.php | 23 +
database/migrations/2026_04_30_120000_create_mcp_audit_log_table.php | 36 +
docs/mcp/explorer/explorer.html | 697 ++++++++++++++++++
docs/mcp/explorer/explorer.template.html | 697 ++++++++++++++++++
docs/mcp/explorer/generate.js | 215 ++++++
docs/mcp/explorer/tool-explorer-meta.json | 11 +
docs/mcp/tools-list.json | 2536 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
docs/mcp/tools.md | 621 ++++++++++++++++
front-end/package.json | 4 +-
front-end/src/components/Settings/OrgSettings/AiAutomation/CrmFilling/TemplateFieldForm.vue | 28 +-
front-end/src/components/Settings/OrgSettings/Playbooks/AddEditPlaybook.vue | 10 +
front-end/src/components/playback/comments/ActivityComment.less | 10 +-
front-end/src/components/shared/PromptTester/PromptTester.vue | 12 +-
front-end/src/components/shared/__tests__/PromptTester.spec.js | 35 +
front-end/src/components/shared/modals/EntityPickerModal/__tests__/useEntitiesCache.spec.ts | 37 +
front-end/src/components/shared/modals/EntityPickerModal/useEntitiesCache.ts | 9 +
front-end/yarn.lock | 16 +-
phpstan-baseline.neon | 50 --
routes/api.php | 11 +
sonar-project.properties | 91 ++-
tests/Feature/Component/Nudge/ProcessOrganisationImmediateNudgesJobTest.php | 534 ++++++++++++++
tests/Feature/Jobs/ImportRemoteTrackJobTest.php | 283 +++++++-
tests/Feature/Mcp/IssueMcpTokenCommandTest.php | 53 ++
tests/Feature/Mcp/ListCallsToolElasticFeatureTest.php | 155 ++++
tests/Feature/Mcp/ListCallsToolFeatureTest.php | 352 ++++++++++
tests/Feature/Mcp/McpTestHelpersTrait.php | 77 ++
tests/Feature/Services/Team/TeamDeleteHandlers/Retention/RetentionRepositoryHandlerTest.php | 1 +
tests/Stubs/SentryStub.php | 18 +
tests/Unit/Component/ActivityAnalytics/Service/CalculateTalkTimeOffsetFromTranscriptionTest.php | 28 +-
tests/Unit/Component/AiActivityType/Services/AiActivityTypeEligibilityCheckerTest.php | 103 ++-
tests/Unit/Component/AiAutomation/Actions/PrepareUpdateDtoActionTest.php | 91 +++
tests/Unit/Component/AiAutomation/Services/CrmFillingEligibilityCheckerTest.php | 124 ++++
tests/Unit/Component/AiAutomation/TestCrmAiPromptServiceTest.php | 67 +-
tests/Unit/Component/AiCallScoring/Services/AiCallScoringEligibilityCheckerTest.php | 55 ++
tests/Unit/Component/ES/ElasticSearchWorkerManagerTest.php | 135 ----
tests/Unit/Component/ES/Processor/Actions/LoadDocumentsActionTest.php | 220 ++++++
tests/Unit/Component/ES/Processor/EntityQueryBuilderTest.php | 21 +-
tests/Unit/Component/ES/Processor/Traits/SkipActivityTraitTest.php | 51 --
tests/Unit/Component/ES/Worker/ActivityWorkerTest.php | 174 -----
tests/Unit/Component/ES/Worker/EntityWorkerTest.php | 97 ---
tests/Unit/Component/ES/Worker/WorkerAmountTest.php | 116 ---
tests/Unit/Component/Encoding/Job/AnalyzeTrackChannelsJobTest.php | 52 +-
tests/Unit/Component/Encoding/Service/GenerateSpeechFromSilenceServiceTest.php | 171 ++---
tests/Unit/Component/FFMpeg/Services/GetSpeechIntervalsTest.php | 36 +-
tests/Unit/Component/LanguageDetection/Services/FindSpeechTimeServiceTest.php | 20 +-
tests/Unit/Component/MobileSettings/MobileSettingsControllerTest.php | 5 +-
tests/Unit/Component/ParticipantSpeech/Services/ParticipantSpeechesCreatorTest.php | 75 ++
tests/Unit/Component/ParticipantSpeech/Services/ParticipantSpeechesDeleterTest.php | 63 ++
tests/Unit/Component/ParticipantSpeech/Services/ParticipantSpeechesProviderTest.php | 134 ++++
tests/Unit/Component/ParticipantSpeech/Services/ParticipantSpeechesUploaderTest.php | 57 ++
tests/Unit/Component/Transcription/Diarization/Services/GetNormalizedParticipantSpeechesServiceTest.php | 51 +-
tests/Unit/Component/Transcription/Diarization/Source/MeetingBotSourceTest.php | 29 +-
tests/Unit/Contracts/Services/Calendar/CalendarTraitTest.php | 58 +-
tests/Unit/Http/Controllers/Kiosk/ActivityControllerTest.php | 159 +++++
tests/Unit/Jobs/Activity/Import/ImportTwilioVideoSpeechesJobTest.php | 22 +-
tests/Unit/Jobs/Activity/Import/IsActivityReadyForProcessingJobTest.php | 26 +-
tests/Unit/Jobs/Calendar/SetupCalendarSyncTest.php | 25 -
tests/Unit/Services/Activity/ParticipantsServiceTest.php | 12 +-
tests/Unit/Services/Activity/Twilio/S3RecordingCredentialsServiceTest.php | 180 +++++
tests/Unit/Services/ActivityServiceTest.php | 132 ++++
tests/Unit/Services/Calendar/CalendarActivityServiceTest.php | 150 +++-
tests/Unit/Services/Calendar/Command/ImportParticipantsTest.php | 6 +-
tests/Unit/Services/Calendar/Command/MapActivityDataTest.php | 78 +-
tests/Unit/Services/Calendar/GoogleCalendarServiceTest.php | 116 +++
tests/Unit/Services/Crm/Close/ServiceTest.php | 165 +++++
tests/Unit/Services/Crm/Hubspot/ServiceTest.php | 272 ++++++-
tests/Unit/Services/Crm/Hubspot/ServiceTraits/OpportunitySyncTest.php | 25 +-
tests/Unit/Services/Crm/Hubspot/ServiceTraits/OpportunitySyncTraitMatchActivitiesTest.php | 3 +-
tests/Unit/Services/Crm/IntegrationApp/ServiceTraits/SyncCrmEntitiesTraitOpportunitiesTest.php | 40 ++
tests/Unit/Services/Crm/Pipedrive/ImportOpportunityMatchActivitiesTest.php | 2 +
tests/Unit/Services/Crm/Salesforce/ServiceTest.php | 139 ++++
tests/Unit/Services/Mail/Office/EmailApiClientTest.php | 195 ++---
tests/Unit/Services/RecallAI/RecallAIServiceTest.php | 24 +-
175 files changed, 12562 insertions(+), 2162 deletions(-)
create mode 120000 CLAUDE.md
create mode 100644 app/Component/AiAutomation/Services/CrmFillingEligibilityChecker.php
delete mode 100644 app/Component/ES/ElasticSearchWorkerManager.php
delete mode 100644 app/Component/ES/Processor/Traits/SkipActivityTrait.php
delete mode 100644 app/Component/ES/Worker/ActivityWorker.php
delete mode 100644 app/Component/ES/Worker/EntityWorker.php
delete mode 100644 app/Component/ES/Worker/WorkerAmount.php
delete mode 100644 app/Component/ES/Worker/WorkerInterface.php
create mode 100644 app/Component/ProphetAi/Exceptions/InsufficientTranscriptException.php
create mode 100644 app/Component/Transcription/DTO/Http/Transcription/AssemblyAI/AssemblyAI/NoAssemblyIdException.php
create mode 100644 app/Component/Transcription/DTO/Http/Transcription/TranscriptionIsNotCorrectFormatException.php
create mode 100644 app/Console/Commands/Activities/SetupIntegration/TwilioSetS3RecordingCredentialsCommand.php
create mode 100644 app/Console/Commands/Crm/BackfillOpportunityUserFromAccountCommand.php
delete mode 100644 app/Console/Commands/Elasticsearch/AsyncUpdateEsActivities.php
create mode 100644 app/Console/Commands/IssueMcpTokenCommand.php
create mode 100644 app/Http/Middleware/McpAuditMiddleware.php
create mode 100644 app/Http/Middleware/McpTierMiddleware.php
create mode 100644 app/Mcp/Contracts/McpCallRepositoryInterface.php
create mode 100644 app/Mcp/DTO/ListCallsFilters.php
create mode 100644 app/Mcp/Errors/McpError.php
create mode 100644 app/Mcp/Repositories/McpActivityHydrator.php
create mode 100644 app/Mcp/Repositories/McpCallRepository.php
create mode 100644 app/Mcp/Repositories/McpElasticCallRepository.php
create mode 100644 app/Mcp/Servers/JiminnyServer.php
create mode 100644 app/Mcp/Tools/ListCallsTool.php
create mode 100644 app/Services/Activity/Twilio/S3RecordingCredentialsService.php
create mode 100644 config/mcp.php
create mode 100644 database/migrations/2026_04_30_120000_create_mcp_audit_log_table.php
create mode 100644 docs/mcp/explorer/explorer.html
create mode 100644 docs/mcp/explorer/explorer.template.html
create mode 100644 docs/mcp/explorer/generate.js
create mode 100644 docs/mcp/explorer/tool-explorer-meta.json
create mode 100644 docs/mcp/tools-list.json
create mode 100644 docs/mcp/tools.md
create mode 100644 front-end/src/components/shared/modals/EntityPickerModal/__tests__/useEntitiesCache.spec.ts
create mode 100644 tests/Feature/Component/Nudge/ProcessOrganisationImmediateNudgesJobTest.php
create mode 100644 tests/Feature/Mcp/IssueMcpTokenCommandTest.php
create mode 100644 tests/Feature/Mcp/ListCallsToolElasticFeatureTest.php
create mode 100644 tests/Feature/Mcp/ListCallsToolFeatureTest.php
create mode 100644 tests/Feature/Mcp/McpTestHelpersTrait.php
create mode 100644 tests/Stubs/SentryStub.php
create mode 100644 tests/Unit/Component/AiAutomation/Services/CrmFillingEligibilityCheckerTest.php
delete mode 100644 tests/Unit/Component/ES/ElasticSearchWorkerManagerTest.php
create mode 100644 tests/Unit/Component/ES/Processor/Actions/LoadDocumentsActionTest.php
delete mode 100644 tests/Unit/Component/ES/Processor/Traits/SkipActivityTraitTest.php
delete mode 100644 tests/Unit/Component/ES/Worker/ActivityWorkerTest.php
delete mode 100644 tests/Unit/Component/ES/Worker/EntityWorkerTest.php
delete mode 100644 tests/Unit/Component/ES/Worker/WorkerAmountTest.php
create mode 100644 tests/Unit/Component/ParticipantSpeech/Services/ParticipantSpeechesCreatorTest.php
create mode 100644 tests/Unit/Http/Controllers/Kiosk/ActivityControllerTest.php
create mode 100644 tests/Unit/Services/Activity/Twilio/S3RecordingCredentialsServiceTest.php
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20725-handle-HS-search-rate-limit) $ git status
On branch master
Your branch is behind 'origin/master' by 114 commits, and can be fast-forwarded.
(use "git pull" to update your local branch)
Changes not staged for commit:
(use "git add <file>..." to update what will be committed)
(use "git restore <file>..." to discard changes in working directory)
modified: .env.local
modified: app/Component/SCIM/Constants.php
modified: app/Component/SCIM/ScimProvisioning.php
modified: app/Component/Twilio/Conference/ConferenceManager/SoftPhoneManager.php
modified: app/Console/Commands/JiminnyDebugCommand.php
modified: app/DTO/SCIM/AAD/Request/CoreUserRequest.php
modified: app/DTO/SCIM/AAD/Response/CoreUser.php
modified: app/Services/Telephony/TextMessagingService.php
modified: config/logging.php
Untracked files:
(use "git add <file>..." to include in what will be committed)
.env.nikilocal
.env.other
WEBHOOK_FILTERING_IMPLEMENTATION.md
app/Component/SCIM/Mutators/Attributes/User/RoleAttr.php
app/Console/Commands/Crm/Hubspot/SimulateWebhooksCommand.php
app/Console/Commands/Reports/CreateMockAskJiminnyReportResultCommand.php
app/Rules/ListenerRoleCannotHaveAdminOrManagerPermissionRule.php
ids.txt
public/favicon.ico
raw_sql_query.sql
tests/Unit/Component/SCIM/Mutators/Attributes/User/RoleAttrTest.php
tests/Unit/Policies/CanAccessAiReportsTest.php
tests/Unit/Rules/ListenerRoleCannotHaveAdminOrManagerPermissionRuleTest.php
no changes added to commit (use "git add" and/or "git commit -a")
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (master) $ git pull
remote: Enumerating objects: 306, done.
remote: Counting objects: 100% (299/299), done.
remote: Compressing objects: 100% (183/183), done.
remote: Total 306 (delta 213), reused 171 (delta 116), pack-reused 7 (from 1)
Receiving objects: 100% (306/306), 80.12 KiB | 1000.00 KiB/s, done.
Resolving deltas: 100% (213/213), completed with 53 local objects.
From github.com:jiminny/app
90bca4e4b2..5604af40cf master -> origin/master
4e7078fd8b..0b8343d179 JY-18091-upgrade-to-php-8-5 -> origin/JY-18091-upgrade-to-php-8-5
098eeaa087..d5a447e492 JY-20613-allow-owner-role-on-team-setup -> origin/JY-20613-allow-owner-role-on-team-setup
c3a76ace91..af65249d0f JY-20749-user-can-view-recorded-meetings -> origin/JY-20749-user-can-view-recorded-meetings
d94a285ae7..7ce96cb5fe JY-20808-low-priority-indexing-queue -> origin/JY-20808-low-priority-indexing-queue
* [new branch] JY-20842-remove-partial-updater -> origin/JY-20842-remove-partial-updater
* [new branch] JY-20920-fix-participant-flip -> origin/JY-20920-fix-participant-flip
* [new branch] secfix/npm-20260519 -> origin/secfix/npm-20260519
Updating cb4ebf0c36..5604af40cf
Fast-forward
app/Component/ES/ChunkSize.php | 54 +++++++++++++++++++
app/Component/ES/Processor/DTOs/SelectionList.php | 4 +-
app/Component/ES/Processor/TargetEntitiesSelector.php | 19 ++++---
app/Component/MeetingBot/Service/ParticipantMatcher.php | 46 ++++++++++++----
app/Exceptions/RateLimitException.php | 19 ++++++-
app/Http/Middleware/McpTierMiddleware.php | 27 ++--------
app/Jobs/Crm/MatchActivityCrmData.php | 47 ++++++++++++----
app/Jobs/Middleware/HandleHubspotRateLimit.php | 42 +++++++++++++++
app/Mcp/Servers/JiminnyServer.php | 2 +
app/Mcp/Tools/GetMeTool.php | 157 +++++++++++++++++++++++++++++++++++++++++++++++++++++
app/Models/Feature/FeatureEnum.php | 1 +
app/Services/Activity/HubSpot/ProviderResolver.php | 4 +-
app/Services/Activity/HubSpot/ProviderResolverInterface.php | 2 +-
app/Services/Activity/HubSpot/Providers/Provider.php | 2 +-
app/Services/Activity/HubSpot/Providers/ProviderKixie.php | 2 +-
app/Services/Activity/HubSpot/Providers/ProviderOrum.php | 2 +-
app/Services/Activity/HubSpot/Providers/ProviderTwilio.php | 2 +-
app/Services/Activity/HubSpot/Providers/ProviderTwilioFlex.php | 5 +-
app/Services/Activity/HubSpot/Service.php | 97 +++++++++++++++++++++++++++------
app/Services/Crm/Hubspot/Client.php | 132 +++++++++++++++++++++++++++++++++++++++++++++
app/Services/Crm/Hubspot/HubspotClientInterface.php | 15 ++++++
app/Services/Crm/Hubspot/Pagination/HubspotPaginationService.php | 21 ++++----
app/Services/Crm/Hubspot/Pagination/PaginationState.php | 2 +-
database/migrations/2026_05_13_124153_create_mcp_feature_flag.php | 25 +++++++++
tests/Feature/Mcp/GetMeToolFeatureTest.php | 140 +++++++++++++++++++++++++++++++++++++++++++++++
tests/Feature/Mcp/ListCallsToolFeatureTest.php | 2 +-
tests/Feature/Mcp/McpTestHelpersTrait.php | 19 ++++++-
tests/Unit/Component/ES/ChunkSizeTest.php | 50 +++++++++++++++++
tests/Unit/Component/ES/Processor/DTOs/SelectionListTest.php | 27 +++++++---
tests/Unit/Component/ES/Processor/TargetEntitiesSelectorTest.php | 39 ++++++++------
tests/Unit/Component/MeetingBot/Service/ParticipantMatcherTest.php | 68 ++++++++++++++++++++++-
tests/Unit/Exceptions/RateLimitExceptionTest.php | 56 +++++++++++++++++++
tests/Unit/Jobs/Crm/MatchActivityCrmDataTest.php | 8 +--
tests/Unit/Jobs/Middleware/HandleHubspotRateLimitTest.php | 151 +++++++++++++++++++++++++++++++++++++++++++++++++++
tests/Unit/Services/Activity/HubSpot/ServiceTest.php | 109 +++++++++++++++++++++++++++++++++++++
tests/Unit/Services/Crm/Hubspot/ClientTest.php | 250 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
tests/Unit/Services/Crm/Hubspot/Pagination/HubspotPaginationServiceTest.php | 283 +++++++++++++++++++++---------------------------------------------------------------------------
37 files changed, 1587 insertions(+), 344 deletions(-)
create mode 100644 app/Component/ES/ChunkSize.php
create mode 100644 app/Jobs/Middleware/HandleHubspotRateLimit.php
create mode 100644 app/Mcp/Tools/GetMeTool.php
create mode 100644 database/migrations/2026_05_13_124153_create_mcp_feature_flag.php
create mode 100644 tests/Feature/Mcp/GetMeToolFeatureTest.php
create mode 100644 tests/Unit/Component/ES/ChunkSizeTest.php
create mode 100644 tests/Unit/Exceptions/RateLimitExceptionTest.php
create mode 100644 tests/Unit/Jobs/Middleware/HandleHubspotRateLimitTest.php
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (master) $ git pull
Already up to date.
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (master) $ co -b JY-20676-delete-report-related-objects
Switched to a new branch 'JY-20676-delete-report-related-objects'
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20676-delete-report-related-objects) $ csfix
docker exec -it docker_lamp_1 ./vendor/bin/php-cs-fixer fix --config=.php-cs-fixer.dist.php -v --using-cache=no --diff
PHP CS Fixer 3.87.1 Alexander by Fabien Potencier, Dariusz Ruminski and contributors.
PHP runtime: 8.3.30
Running 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!
Loaded config default from ".php-cs-fixer.dist.php".
5690/5690 [▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓] 100%
1) app/Console/Commands/JiminnyDebugCommand.php (statement_indentation, blank_line_before_statement)
---------- begin diff ----------
--- /home/jiminny/app/Console/Commands/JiminnyDebugCommand.php
+++ /home/jiminny/app/Console/Commands/JiminnyDebugCommand.php
@@ -23,6 +23,7 @@
if ($action === 'redis-set') {
$this->testRedisSet();
+
return;
}
@@ -45,7 +46,7 @@
$ttl = 60;
try {
-// $result = Redis::set($testKey, $testValue, 'EX', $ttl, 'NX');
+ // $result = Redis::set($testKey, $testValue, 'EX', $ttl, 'NX');
$result = Redis::set($testKey, $testValue, ['nx', 'ex' => $ttl]);
if ($result) {
----------- end diff -----------
Fixed 1 of 5690 files i...
|
58093
|
NULL
|
NULL
|
NULL
|
|
58111
|
2047
|
6
|
2026-05-19T11:39:19.326559+00:00
|
/Users/lukas/.screenpipe/data/data/2026-05-19/1779 /Users/lukas/.screenpipe/data/data/2026-05-19/1779190759326_m2.jpg...
|
iTerm2
|
APP (-zsh)
|
1
|
NULL
|
monitor_2
|
NULL
|
NULL
|
NULL
|
NULL
|
Last login: Mon May 18 09:17:28 on ttys007
Poetry Last login: Mon May 18 09:17:28 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 (pipedrive-sdk-poc) $ co master
error: Your local changes to the following files would be overwritten by checkout:
PIPEDRIVE_V2_MIGRATION_TICKETS.md
Please commit your changes or stash them before you switch branches.
Aborting
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (pipedrive-sdk-poc) $ git pull
remote: Enumerating objects: 1047, done.
remote: Counting objects: 100% (832/832), done.
remote: Compressing objects: 100% (298/298), done.
remote: Total 1047 (delta 634), reused 596 (delta 534), pack-reused 215 (from 3)
Receiving objects: 100% (1047/1047), 353.16 KiB | 1.56 MiB/s, done.
Resolving deltas: 100% (687/687), completed with 107 local objects.
From github.com:jiminny/app
907c54896c..34656c53ed pipedrive-sdk-poc -> origin/pipedrive-sdk-poc
03325ec50f..4e7078fd8b JY-18091-upgrade-to-php-8-5 -> origin/JY-18091-upgrade-to-php-8-5
e7d231e163..bc6a3fce6b JY-20725-handle-HS-search-rate-limit -> origin/JY-20725-handle-HS-search-rate-limit
* [new branch] JY-20749-user-can-view-recorded-meetings -> origin/JY-20749-user-can-view-recorded-meetings
98ca281a04..e0351be069 JY-20808-low-priority-indexing-queue -> origin/JY-20808-low-priority-indexing-queue
569abb5149..3906a9238a JY-20835-mcp-enable-users-to-get-a-list-of-deals-and-their-details -> origin/JY-20835-mcp-enable-users-to-get-a-list-of-deals-and-their-details
ad6c2a86e8..50eb6afba9 JY-20846-mcp-enable-the-ai-to-know-details-about-the-user -> origin/JY-20846-mcp-enable-the-ai-to-know-details-about-the-user
* [new branch] JY-20893-chunk-control-per-update-target -> origin/JY-20893-chunk-control-per-update-target
31c62924a5..cb4ebf0c36 master -> origin/master
Updating 907c54896c..34656c53ed
Fast-forward
PIPEDRIVE_V2_MIGRATION_TICKETS.md | 52 ++++++++++++++++++++++++++++++++++++++++++++++++++++
1 file changed, 52 insertions(+)
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (pipedrive-sdk-poc) $ co master
M .env.local
M config/logging.php
Switched to branch 'master'
Your branch is behind 'origin/master' by 31 commits, and can be fast-forwarded.
(use "git pull" to update your local branch)
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (master) $ git pull
Updating 31c62924a5..cb4ebf0c36
Fast-forward
app/Component/ES/Processor/Traits/SelectEntityListTrait.php | 20 ------
app/Services/Calendar/CalendarActivityService.php | 46 +++++++++++++
app/Services/Calendar/Command/MapActivityData.php | 106 +++-------------------------
docs/mcp/explorer/explorer.html | 104 +++++++++++++++++++++++++---
docs/mcp/explorer/explorer.template.html | 102 ++++++++++++++++++++++++---
docs/mcp/tools-list.json | 373 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++-------
docs/mcp/tools.md | 117 +++++++++++++++++++++++--------
tests/Unit/Component/ES/AsyncUpdateElasticSearchTest.php | 16 +----
tests/Unit/Component/ES/Listeners/UpdateMultipleTargetsListenerTest.php | 10 ---
tests/Unit/Component/ES/Listeners/UpdateSingleTargetListenerTest.php | 6 --
tests/Unit/Component/ES/Processor/TargetEntitiesSelectorTest.php | 9 ---
tests/Unit/Component/ES/Processor/Traits/SelectEntityListTraitTest.php | 15 ++--
tests/Unit/Component/ES/UpdateProcessManagerTest.php | 2 -
tests/Unit/Services/Calendar/CalendarActivityServiceTest.php | 150 ++++++++++++++++++++++++++++++++++++++--
tests/Unit/Services/Calendar/Command/MapActivityDataTest.php | 78 ++-------------------
15 files changed, 832 insertions(+), 322 deletions(-)
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (master) $ co -b JY-20613-allow-owner-role-on-team-setup
Switched to a new branch 'JY-20613-allow-owner-role-on-team-setup'
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20613-allow-owner-role-on-team-setup) $ csfix
docker exec -it docker_lamp_1 ./vendor/bin/php-cs-fixer fix --config=.php-cs-fixer.dist.php -v --using-cache=no --diff
PHP CS Fixer 3.87.1 Alexander by Fabien Potencier, Dariusz Ruminski and contributors.
PHP runtime: 8.3.30
Running 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!
Loaded config default from ".php-cs-fixer.dist.php".
5682/5682 [▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓] 100%
Fixed 0 of 5682 files in 56.978 seconds, 67.00 MB memory used
What's next:
Try Docker Debug for seamless, persistent debugging tools in any container or image → docker debug docker_lamp_1
Learn more at [URL_WITH_CREDENTIALS] ~/jiminny/app (JY-20613-allow-owner-role-on-team-setup) $ csfix
docker exec -it docker_lamp_1 ./vendor/bin/php-cs-fixer fix --config=.php-cs-fixer.dist.php -v --using-cache=no --diff
PHP CS Fixer 3.87.1 Alexander by Fabien Potencier, Dariusz Ruminski and contributors.
PHP runtime: 8.3.30
Running 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!
Loaded config default from ".php-cs-fixer.dist.php".
5682/5682 [▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓] 100%
Fixed 0 of 5682 files in 49.910 seconds, 60.00 MB memory used
What's next:
Try Docker Debug for seamless, persistent debugging tools in any container or image → docker debug docker_lamp_1
Learn more at [URL_WITH_CREDENTIALS] ~/jiminny/app (JY-20613-allow-owner-role-on-team-setup) $ git pull
remote: Enumerating objects: 248, done.
remote: Counting objects: 100% (128/128), done.
remote: Compressing objects: 100% (23/23), done.
remote: Total 59 (delta 43), reused 44 (delta 33), pack-reused 0 (from 0)
Unpacking objects: 100% (59/59), 10.48 KiB | 228.00 KiB/s, done.
From github.com:jiminny/app
b7df560451..190239dfd4 JY-20613-allow-owner-role-on-team-setup -> origin/JY-20613-allow-owner-role-on-team-setup
e0351be069..d94a285ae7 JY-20808-low-priority-indexing-queue -> origin/JY-20808-low-priority-indexing-queue
* [new branch] JY-20920-fix-participant-matcher -> origin/JY-20920-fix-participant-matcher
cb4ebf0c36..90bca4e4b2 master -> origin/master
Merge made by the 'ort' strategy.
app/Component/ES/ChunkSize.php | 54 +++++++++++++++++++++++++++
app/Component/ES/Processor/DTOs/SelectionList.php | 4 +-
app/Component/ES/Processor/TargetEntitiesSelector.php | 19 ++++++----
app/Http/Middleware/McpTierMiddleware.php | 27 +++-----------
app/Mcp/Servers/JiminnyServer.php | 2 +
app/Mcp/Tools/GetMeTool.php | 157 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
app/Models/Feature/FeatureEnum.php | 1 +
database/migrations/2026_05_13_124153_create_mcp_feature_flag.php | 25 +++++++++++++
front-end/src/components/Settings/Kiosk/modals/EditTeamModal/EditTeamModal.vue | 52 ++++++++++++++++++--------
front-end/src/components/Settings/Kiosk/modals/EditTeamModal/__tests__/EditTeamModal.spec.js | 14 +++++++
tests/Feature/Mcp/GetMeToolFeatureTest.php | 140 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
tests/Feature/Mcp/ListCallsToolFeatureTest.php | 2 +-
tests/Feature/Mcp/McpTestHelpersTrait.php | 19 +++++++++-
tests/Unit/Component/ES/ChunkSizeTest.php | 50 +++++++++++++++++++++++++
tests/Unit/Component/ES/Processor/DTOs/SelectionListTest.php | 27 ++++++++++----
tests/Unit/Component/ES/Processor/TargetEntitiesSelectorTest.php | 39 +++++++++++---------
16 files changed, 557 insertions(+), 75 deletions(-)
create mode 100644 app/Component/ES/ChunkSize.php
create mode 100644 app/Mcp/Tools/GetMeTool.php
create mode 100644 database/migrations/2026_05_13_124153_create_mcp_feature_flag.php
create mode 100644 tests/Feature/Mcp/GetMeToolFeatureTest.php
create mode 100644 tests/Unit/Component/ES/ChunkSizeTest.php
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20613-allow-owner-role-on-team-setup) $ git push
Enumerating objects: 40, done.
Counting objects: 100% (34/34), done.
Delta compression using up to 8 threads
Compressing objects: 100% (18/18), done.
Writing objects: 100% (18/18), 1.58 KiB | 1.58 MiB/s, done.
Total 18 (delta 15), reused 0 (delta 0), pack-reused 0
remote: Resolving deltas: 100% (15/15), completed with 13 local objects.
To github.com:jiminny/app.git
190239dfd4..ec1b261264 JY-20613-allow-owner-role-on-team-setup -> JY-20613-allow-owner-role-on-team-setup
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20613-allow-owner-role-on-team-setup) $ gbr
* JY-20613-allow-owner-role-on-team-setup
pipedrive-sdk-poc
master
JY-20903-update_activity-stage-on-opportunity-change
JY-20904-fix-update-es-on-activity-command
JY-20891-improve-sms-text-relays
JY-20725-handle-HS-search-rate-limit
JY-20818-move-AJ-reports-to-separated-datadog-metric
JY-20773-fix-automated-reports-user-pilot-tracking
JY-20157-AJ-report-not-send-notification
JY-20508-notify-before-AJ-report-expiration
JY-20372-ai-reports-promotion-pages
JY-20352-sync-opportunities-without-a-local-owner-user-id-is-null
JY-20738-debug-AJ-tracking-UP
a
JY-18909-automated-reports-ask-jiminny
JY-20692-fix-integration-app-[API_KEY]
JY-20553-debug-crm-sync-delays
JY-20698-fix-SF-activity-types-on-new-playbook
JY-20543-AJ-report-tracking
JY-20384-handle-auto-sync-with-no-access-to-event-type
JY-20458-ask-jiminny-user-definitions
JY-19666-fix-import-contacts-account-association
JY-19666-HS-import-contacts-and-accounts-batch-job
JY-20458-Ask-Jiminny-Reports
JY-20200-batch-update-CRM-objects-Salesforce
JY-19666-HS-webhooks-add-contact-and-company
JY-20348-trigger-setup-DI-layout-on-team-creation
JY-20326-refactor-info-message-in-command
JY-20317-fix-auto-log-delay-issue-on-all-channels-disabled
JY-20312-remove-on-update-change-last-synced-at-crm-configurations
JY-20306-SF-skip-auto-sync-for-task-based-playbook
JY-20192-remove-deleted-team-from-saved-search-filters
JY-20197-import-opportunity-batch-job
JY-20293-enable-status-field-for-pipedrive-deals
JY-20191-remove-commands-interactive-prompts
JY-20118-change-default-sync-strategy
JY-20183-add-cache-on-auto-log-delay
JY-20197-add-import-opportunity-batch-job
20118-hs-opportunity-make-webhook-strategy-default
JY-20118-make-default-hs-opportunity-sync-strategy-webhook-based
JY-20196-handle-opportunity-without-note
JY-20118-improve-opportunity-import
JY-20189-handle-activity-search-on-deleted-groups
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20613-allow-owner-role-on-team-setup) $ co JY-20725-handle-HS-search-rate-limit
M .env.local
M config/logging.php
Switched to branch 'JY-20725-handle-HS-search-rate-limit'
Your branch is behind 'origin/JY-20725-handle-HS-search-rate-limit' by 439 commits, and can be fast-forwarded.
(use "git pull" to update your local branch)
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20725-handle-HS-search-rate-limit) $ git pull
Updating 0f3e438941..bc6a3fce6b
Fast-forward
.gitignore | 3 +-
.windsurfrules | 168 ++---
CLAUDE.md | 1 +
app/Component/ActivityAnalytics/Service/CalculateTalkTimeOffsetsFromTranscription.php | 24 +-
app/Component/AiActivityType/Services/AiActivityTypeEligibilityChecker.php | 28 +-
app/Component/AiAutomation/Actions/PrepareUpdateDtoAction.php | 32 +-
app/Component/AiAutomation/Services/CrmFillingEligibilityChecker.php | 47 ++
app/Component/AiAutomation/TestCrmAiPromptService.php | 14 +
app/Component/AiCallScoring/Services/AiCallScoringEligibilityChecker.php | 9 +
app/Component/ES/ElasticSearchDocumentPartialUpdater.php | 13 +-
app/Component/ES/ElasticSearchWorkerManager.php | 86 ---
app/Component/ES/Processor/Actions/LoadDocumentsAction.php | 80 +--
app/Component/ES/Processor/EntityQueryBuilder.php | 12 +-
app/Component/ES/Processor/TargetEntitiesSelector.php | 2 +-
app/Component/ES/Processor/Traits/SkipActivityTrait.php | 25 -
app/Component/ES/Repositories/EsResetActivityRepository.php | 11 +-
app/Component/ES/Worker/ActivityWorker.php | 73 --
app/Component/ES/Worker/EntityWorker.php | 44 --
app/Component/ES/Worker/WorkerAmount.php | 60 --
app/Component/ES/Worker/WorkerInterface.php | 15 -
app/Component/ElasticSearch/Contract/Searchable.php | 4 +
app/Component/Encoding/Job/AnalyzeTrackChannelsJob.php | 20 +-
app/Component/Encoding/Service/GenerateSpeechFromSilenceService.php | 85 ++-
app/Component/FFMpeg/Services/GetSpeechIntervalsService.php | 18 +-
app/Component/LanguageDetection/Services/FindSpeechTimeService.php | 22 +-
app/Component/Nudge/Job/ProcessOrganisationImmediateNudgesJob.php | 218 +++++-
app/Component/ParagraphBreaker/Services/TranscriptionParagraphsService.php | 4 +
app/Component/ParticipantSpeech/Services/ParticipantSpeechesCreator.php | 33 +
app/Component/ParticipantSpeech/Services/ParticipantSpeechesDeleter.php | 15 +
app/Component/ParticipantSpeech/Services/ParticipantSpeechesProvider.php | 51 +-
app/Component/ParticipantSpeech/Services/ParticipantSpeechesUploader.php | 36 +
app/Component/ProphetAi/Exceptions/InsufficientTranscriptException.php | 11 +
app/Component/Transcription/DTO/Http/Transcription/AssemblyAI/AssemblyAI/NoAssemblyIdException.php | 11 +
app/Component/Transcription/DTO/Http/Transcription/AssemblyAI/AssemblyAI/SuccessfulResponse.php | 6 +
app/Component/Transcription/DTO/Http/Transcription/TranscriptionIsNotCorrectFormatException.php | 11 +
app/Component/Transcription/Diarization/Services/GetNormalizedParticipantSpeechesService.php | 23 +-
app/Component/Transcription/Diarization/Source/MeetingBotSource.php | 16 +-
app/Component/Transcription/TranscriptionProcessor/TranscriptionProcessor.php | 3 +
app/Console/Commands/Activities/ActivityHardDeleteCommand.php | 4 +-
app/Console/Commands/Activities/Copy.php | 2 +
app/Console/Commands/Activities/SetupIntegration/TwilioSetS3RecordingCredentialsCommand.php | 119 ++++
app/Console/Commands/Activities/UpdateActivityElasticSearchDocumentCommand.php | 10 +-
app/Console/Commands/Crm/BackfillOpportunityUserFromAccountCommand.php | 126 ++++
app/Console/Commands/Elasticsearch/AsyncUpdateEsActivities.php | 19 -
app/Console/Commands/Elasticsearch/AsyncUpdateEsEntities.php | 50 +-
app/Console/Commands/Elasticsearch/ResetAsyncElasticSearchCommand.php | 30 +-
app/Console/Commands/GeckoExport/GeckoExportParticipantSpeechesCommand.php | 14 +-
app/Console/Commands/IssueMcpTokenCommand.php | 84 +++
app/Console/Commands/JiminnyDebugCommand.php | 7 +-
app/Console/Commands/Tracks/CleanupActivityTracksCommand.php | 2 +-
app/Console/Kernel.php | 6 +-
app/Contracts/Services/Calendar/CalendarTrait.php | 80 ++-
app/Events/AutomatedReports/AutomatedReportGenerated.php | 3 +
app/Http/Controllers/API/AiCallScoring/AiScorecardController.php | 7 +-
app/Http/Controllers/API/TeamAiAutomationController.php | 8 +
app/Http/Controllers/CustomerApi/CustomerApiController.php | 4 +-
app/Http/Controllers/Kiosk/ActivityController.php | 58 +-
app/Http/Controllers/Settings/PlaybookController.php | 15 +-
app/Http/Kernel.php | 23 +
app/Http/Middleware/McpAuditMiddleware.php | 156 ++++
app/Http/Middleware/McpTierMiddleware.php | 54 ++
app/Http/Requests/API/V2/ZapierUploadActivityRequest.php | 28 +-
app/Jobs/Activity/Import/ImportTwilioVideoSpeechesJob.php | 25 +-
app/Jobs/Activity/Import/IsActivityReadyForProcessingJob.php | 10 +-
app/Jobs/Calendar/SetupCalendarSync.php | 21 +-
app/Jobs/ImportRemoteTrackJob.php | 96 ++-
app/Jobs/Mailbox/EmailTextRelay.php | 15 +-
app/Mcp/Contracts/McpCallRepositoryInterface.php | 30 +
app/Mcp/DTO/ListCallsFilters.php | 29 +
app/Mcp/Errors/McpError.php | 123 ++++
app/Mcp/Repositories/McpActivityHydrator.php | 145 ++++
app/Mcp/Repositories/McpCallRepository.php | 84 +++
app/Mcp/Repositories/McpElasticCallRepository.php | 171 +++++
app/Mcp/Servers/JiminnyServer.php | 38 +
app/Mcp/Tools/ListCallsTool.php | 205 ++++++
app/Models/Activity.php | 10 +-
app/Models/Activity/Transcription.php | 17 +-
app/Models/ElasticSearch/OpportunityElasticSearchTrait.php | 5 +
app/Models/Participant.php | 1 +
app/Providers/AppServiceProvider.php | 22 +
app/Repositories/Crm/ContactRepository.php | 69 +-
app/Repositories/ParticipantSpeechRepository.php | 13 +-
app/Services/Activity/ParticipantsService.php | 19 +-
app/Services/Activity/Twilio/S3RecordingCredentialsService.php | 82 +++
app/Services/ActivityService.php | 21 +-
app/Services/Calendar/CalendarActivityService.php | 46 ++
app/Services/Calendar/Command/ImportParticipants.php | 1 +
app/Services/Calendar/Command/MapActivityData.php | 106 +--
app/Services/Calendar/GoogleCalendarService.php | 12 +-
app/Services/Crm/Close/Processor/OpportunityProcessor.php | 2 +-
app/Services/Crm/Close/Service.php | 22 +-
app/Services/Crm/Copper/Service.php | 12 +-
app/Services/Crm/Hubspot/Service.php | 154 +++-
app/Services/Crm/Hubspot/ServiceTraits/OpportunitySyncTrait.php | 88 ++-
app/Services/Crm/IntegrationApp/ServiceTraits/SyncCrmEntitiesTrait.php | 22 +-
app/Services/Crm/Pipedrive/Service.php | 17 +-
app/Services/Crm/Salesforce/Service.php | 42 +-
app/Services/Mail/Office/EmailApiClient.php | 129 +---
app/Services/RecallAI/Commands/ScheduleBotCommand.php | 39 +-
app/Services/RecallAI/RecallAIService.php | 22 +-
composer.json | 3 +-
composer.lock | 87 ++-
config/mcp.php | 23 +
database/migrations/2026_04_30_120000_create_mcp_audit_log_table.php | 36 +
docs/mcp/explorer/explorer.html | 697 ++++++++++++++++++
docs/mcp/explorer/explorer.template.html | 697 ++++++++++++++++++
docs/mcp/explorer/generate.js | 215 ++++++
docs/mcp/explorer/tool-explorer-meta.json | 11 +
docs/mcp/tools-list.json | 2536 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
docs/mcp/tools.md | 621 ++++++++++++++++
front-end/package.json | 4 +-
front-end/src/components/Settings/OrgSettings/AiAutomation/CrmFilling/TemplateFieldForm.vue | 28 +-
front-end/src/components/Settings/OrgSettings/Playbooks/AddEditPlaybook.vue | 10 +
front-end/src/components/playback/comments/ActivityComment.less | 10 +-
front-end/src/components/shared/PromptTester/PromptTester.vue | 12 +-
front-end/src/components/shared/__tests__/PromptTester.spec.js | 35 +
front-end/src/components/shared/modals/EntityPickerModal/__tests__/useEntitiesCache.spec.ts | 37 +
front-end/src/components/shared/modals/EntityPickerModal/useEntitiesCache.ts | 9 +
front-end/yarn.lock | 16 +-
phpstan-baseline.neon | 50 --
routes/api.php | 11 +
sonar-project.properties | 91 ++-
tests/Feature/Component/Nudge/ProcessOrganisationImmediateNudgesJobTest.php | 534 ++++++++++++++
tests/Feature/Jobs/ImportRemoteTrackJobTest.php | 283 +++++++-
tests/Feature/Mcp/IssueMcpTokenCommandTest.php | 53 ++
tests/Feature/Mcp/ListCallsToolElasticFeatureTest.php | 155 ++++
tests/Feature/Mcp/ListCallsToolFeatureTest.php | 352 ++++++++++
tests/Feature/Mcp/McpTestHelpersTrait.php | 77 ++
tests/Feature/Services/Team/TeamDeleteHandlers/Retention/RetentionRepositoryHandlerTest.php | 1 +
tests/Stubs/SentryStub.php | 18 +
tests/Unit/Component/ActivityAnalytics/Service/CalculateTalkTimeOffsetFromTranscriptionTest.php | 28 +-
tests/Unit/Component/AiActivityType/Services/AiActivityTypeEligibilityCheckerTest.php | 103 ++-
tests/Unit/Component/AiAutomation/Actions/PrepareUpdateDtoActionTest.php | 91 +++
tests/Unit/Component/AiAutomation/Services/CrmFillingEligibilityCheckerTest.php | 124 ++++
tests/Unit/Component/AiAutomation/TestCrmAiPromptServiceTest.php | 67 +-
tests/Unit/Component/AiCallScoring/Services/AiCallScoringEligibilityCheckerTest.php | 55 ++
tests/Unit/Component/ES/ElasticSearchWorkerManagerTest.php | 135 ----
tests/Unit/Component/ES/Processor/Actions/LoadDocumentsActionTest.php | 220 ++++++
tests/Unit/Component/ES/Processor/EntityQueryBuilderTest.php | 21 +-
tests/Unit/Component/ES/Processor/Traits/SkipActivityTraitTest.php | 51 --
tests/Unit/Component/ES/Worker/ActivityWorkerTest.php | 174 -----
tests/Unit/Component/ES/Worker/EntityWorkerTest.php | 97 ---
tests/Unit/Component/ES/Worker/WorkerAmountTest.php | 116 ---
tests/Unit/Component/Encoding/Job/AnalyzeTrackChannelsJobTest.php | 52 +-
tests/Unit/Component/Encoding/Service/GenerateSpeechFromSilenceServiceTest.php | 171 ++---
tests/Unit/Component/FFMpeg/Services/GetSpeechIntervalsTest.php | 36 +-
tests/Unit/Component/LanguageDetection/Services/FindSpeechTimeServiceTest.php | 20 +-
tests/Unit/Component/MobileSettings/MobileSettingsControllerTest.php | 5 +-
tests/Unit/Component/ParticipantSpeech/Services/ParticipantSpeechesCreatorTest.php | 75 ++
tests/Unit/Component/ParticipantSpeech/Services/ParticipantSpeechesDeleterTest.php | 63 ++
tests/Unit/Component/ParticipantSpeech/Services/ParticipantSpeechesProviderTest.php | 134 ++++
tests/Unit/Component/ParticipantSpeech/Services/ParticipantSpeechesUploaderTest.php | 57 ++
tests/Unit/Component/Transcription/Diarization/Services/GetNormalizedParticipantSpeechesServiceTest.php | 51 +-
tests/Unit/Component/Transcription/Diarization/Source/MeetingBotSourceTest.php | 29 +-
tests/Unit/Contracts/Services/Calendar/CalendarTraitTest.php | 58 +-
tests/Unit/Http/Controllers/Kiosk/ActivityControllerTest.php | 159 +++++
tests/Unit/Jobs/Activity/Import/ImportTwilioVideoSpeechesJobTest.php | 22 +-
tests/Unit/Jobs/Activity/Import/IsActivityReadyForProcessingJobTest.php | 26 +-
tests/Unit/Jobs/Calendar/SetupCalendarSyncTest.php | 25 -
tests/Unit/Services/Activity/ParticipantsServiceTest.php | 12 +-
tests/Unit/Services/Activity/Twilio/S3RecordingCredentialsServiceTest.php | 180 +++++
tests/Unit/Services/ActivityServiceTest.php | 132 ++++
tests/Unit/Services/Calendar/CalendarActivityServiceTest.php | 150 +++-
tests/Unit/Services/Calendar/Command/ImportParticipantsTest.php | 6 +-
tests/Unit/Services/Calendar/Command/MapActivityDataTest.php | 78 +-
tests/Unit/Services/Calendar/GoogleCalendarServiceTest.php | 116 +++
tests/Unit/Services/Crm/Close/ServiceTest.php | 165 +++++
tests/Unit/Services/Crm/Hubspot/ServiceTest.php | 272 ++++++-
tests/Unit/Services/Crm/Hubspot/ServiceTraits/OpportunitySyncTest.php | 25 +-
tests/Unit/Services/Crm/Hubspot/ServiceTraits/OpportunitySyncTraitMatchActivitiesTest.php | 3 +-
tests/Unit/Services/Crm/IntegrationApp/ServiceTraits/SyncCrmEntitiesTraitOpportunitiesTest.php | 40 ++
tests/Unit/Services/Crm/Pipedrive/ImportOpportunityMatchActivitiesTest.php | 2 +
tests/Unit/Services/Crm/Salesforce/ServiceTest.php | 139 ++++
tests/Unit/Services/Mail/Office/EmailApiClientTest.php | 195 ++---
tests/Unit/Services/RecallAI/RecallAIServiceTest.php | 24 +-
175 files changed, 12562 insertions(+), 2162 deletions(-)
create mode 120000 CLAUDE.md
create mode 100644 app/Component/AiAutomation/Services/CrmFillingEligibilityChecker.php
delete mode 100644 app/Component/ES/ElasticSearchWorkerManager.php
delete mode 100644 app/Component/ES/Processor/Traits/SkipActivityTrait.php
delete mode 100644 app/Component/ES/Worker/ActivityWorker.php
delete mode 100644 app/Component/ES/Worker/EntityWorker.php
delete mode 100644 app/Component/ES/Worker/WorkerAmount.php
delete mode 100644 app/Component/ES/Worker/WorkerInterface.php
create mode 100644 app/Component/ProphetAi/Exceptions/InsufficientTranscriptException.php
create mode 100644 app/Component/Transcription/DTO/Http/Transcription/AssemblyAI/AssemblyAI/NoAssemblyIdException.php
create mode 100644 app/Component/Transcription/DTO/Http/Transcription/TranscriptionIsNotCorrectFormatException.php
create mode 100644 app/Console/Commands/Activities/SetupIntegration/TwilioSetS3RecordingCredentialsCommand.php
create mode 100644 app/Console/Commands/Crm/BackfillOpportunityUserFromAccountCommand.php
delete mode 100644 app/Console/Commands/Elasticsearch/AsyncUpdateEsActivities.php
create mode 100644 app/Console/Commands/IssueMcpTokenCommand.php
create mode 100644 app/Http/Middleware/McpAuditMiddleware.php
create mode 100644 app/Http/Middleware/McpTierMiddleware.php
create mode 100644 app/Mcp/Contracts/McpCallRepositoryInterface.php
create mode 100644 app/Mcp/DTO/ListCallsFilters.php
create mode 100644 app/Mcp/Errors/McpError.php
create mode 100644 app/Mcp/Repositories/McpActivityHydrator.php
create mode 100644 app/Mcp/Repositories/McpCallRepository.php
create mode 100644 app/Mcp/Repositories/McpElasticCallRepository.php
create mode 100644 app/Mcp/Servers/JiminnyServer.php
create mode 100644 app/Mcp/Tools/ListCallsTool.php
create mode 100644 app/Services/Activity/Twilio/S3RecordingCredentialsService.php
create mode 100644 config/mcp.php
create mode 100644 database/migrations/2026_04_30_120000_create_mcp_audit_log_table.php
create mode 100644 docs/mcp/explorer/explorer.html
create mode 100644 docs/mcp/explorer/explorer.template.html
create mode 100644 docs/mcp/explorer/generate.js
create mode 100644 docs/mcp/explorer/tool-explorer-meta.json
create mode 100644 docs/mcp/tools-list.json
create mode 100644 docs/mcp/tools.md
create mode 100644 front-end/src/components/shared/modals/EntityPickerModal/__tests__/useEntitiesCache.spec.ts
create mode 100644 tests/Feature/Component/Nudge/ProcessOrganisationImmediateNudgesJobTest.php
create mode 100644 tests/Feature/Mcp/IssueMcpTokenCommandTest.php
create mode 100644 tests/Feature/Mcp/ListCallsToolElasticFeatureTest.php
create mode 100644 tests/Feature/Mcp/ListCallsToolFeatureTest.php
create mode 100644 tests/Feature/Mcp/McpTestHelpersTrait.php
create mode 100644 tests/Stubs/SentryStub.php
create mode 100644 tests/Unit/Component/AiAutomation/Services/CrmFillingEligibilityCheckerTest.php
delete mode 100644 tests/Unit/Component/ES/ElasticSearchWorkerManagerTest.php
create mode 100644 tests/Unit/Component/ES/Processor/Actions/LoadDocumentsActionTest.php
delete mode 100644 tests/Unit/Component/ES/Processor/Traits/SkipActivityTraitTest.php
delete mode 100644 tests/Unit/Component/ES/Worker/ActivityWorkerTest.php
delete mode 100644 tests/Unit/Component/ES/Worker/EntityWorkerTest.php
delete mode 100644 tests/Unit/Component/ES/Worker/WorkerAmountTest.php
create mode 100644 tests/Unit/Component/ParticipantSpeech/Services/ParticipantSpeechesCreatorTest.php
create mode 100644 tests/Unit/Http/Controllers/Kiosk/ActivityControllerTest.php
create mode 100644 tests/Unit/Services/Activity/Twilio/S3RecordingCredentialsServiceTest.php
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20725-handle-HS-search-rate-limit) $ git status
On branch master
Your branch is behind 'origin/master' by 114 commits, and can be fast-forwarded.
(use "git pull" to update your local branch)
Changes not staged for commit:
(use "git add <file>..." to update what will be committed)
(use "git restore <file>..." to discard changes in working directory)
modified: .env.local
modified: app/Component/SCIM/Constants.php
modified: app/Component/SCIM/ScimProvisioning.php
modified: app/Component/Twilio/Conference/ConferenceManager/SoftPhoneManager.php
modified: app/Console/Commands/JiminnyDebugCommand.php
modified: app/DTO/SCIM/AAD/Request/CoreUserRequest.php
modified: app/DTO/SCIM/AAD/Response/CoreUser.php
modified: app/Services/Telephony/TextMessagingService.php
modified: config/logging.php
Untracked files:
(use "git add <file>..." to include in what will be committed)
.env.nikilocal
.env.other
WEBHOOK_FILTERING_IMPLEMENTATION.md
app/Component/SCIM/Mutators/Attributes/User/RoleAttr.php
app/Console/Commands/Crm/Hubspot/SimulateWebhooksCommand.php
app/Console/Commands/Reports/CreateMockAskJiminnyReportResultCommand.php
app/Rules/ListenerRoleCannotHaveAdminOrManagerPermissionRule.php
ids.txt
public/favicon.ico
raw_sql_query.sql
tests/Unit/Component/SCIM/Mutators/Attributes/User/RoleAttrTest.php
tests/Unit/Policies/CanAccessAiReportsTest.php
tests/Unit/Rules/ListenerRoleCannotHaveAdminOrManagerPermissionRuleTest.php
no changes added to commit (use "git add" and/or "git commit -a")
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (master) $ git pull
remote: Enumerating objects: 306, done.
remote: Counting objects: 100% (299/299), done.
remote: Compressing objects: 100% (183/183), done.
remote: Total 306 (delta 213), reused 171 (delta 116), pack-reused 7 (from 1)
Receiving objects: 100% (306/306), 80.12 KiB | 1000.00 KiB/s, done.
Resolving deltas: 100% (213/213), completed with 53 local objects.
From github.com:jiminny/app
90bca4e4b2..5604af40cf master -> origin/master
4e7078fd8b..0b8343d179 JY-18091-upgrade-to-php-8-5 -> origin/JY-18091-upgrade-to-php-8-5
098eeaa087..d5a447e492 JY-20613-allow-owner-role-on-team-setup -> origin/JY-20613-allow-owner-role-on-team-setup
c3a76ace91..af65249d0f JY-20749-user-can-view-recorded-meetings -> origin/JY-20749-user-can-view-recorded-meetings
d94a285ae7..7ce96cb5fe JY-20808-low-priority-indexing-queue -> origin/JY-20808-low-priority-indexing-queue
* [new branch] JY-20842-remove-partial-updater -> origin/JY-20842-remove-partial-updater
* [new branch] JY-20920-fix-participant-flip -> origin/JY-20920-fix-participant-flip
* [new branch] secfix/npm-20260519 -> origin/secfix/npm-20260519
Updating cb4ebf0c36..5604af40cf
Fast-forward
app/Component/ES/ChunkSize.php | 54 +++++++++++++++++++
app/Component/ES/Processor/DTOs/SelectionList.php | 4 +-
app/Component/ES/Processor/TargetEntitiesSelector.php | 19 ++++---
app/Component/MeetingBot/Service/ParticipantMatcher.php | 46 ++++++++++++----
app/Exceptions/RateLimitException.php | 19 ++++++-
app/Http/Middleware/McpTierMiddleware.php | 27 ++--------
app/Jobs/Crm/MatchActivityCrmData.php | 47 ++++++++++++----
app/Jobs/Middleware/HandleHubspotRateLimit.php | 42 +++++++++++++++
app/Mcp/Servers/JiminnyServer.php | 2 +
app/Mcp/Tools/GetMeTool.php | 157 +++++++++++++++++++++++++++++++++++++++++++++++++++++
app/Models/Feature/FeatureEnum.php | 1 +
app/Services/Activity/HubSpot/ProviderResolver.php | 4 +-
app/Services/Activity/HubSpot/ProviderResolverInterface.php | 2 +-
app/Services/Activity/HubSpot/Providers/Provider.php | 2 +-
app/Services/Activity/HubSpot/Providers/ProviderKixie.php | 2 +-
app/Services/Activity/HubSpot/Providers/ProviderOrum.php | 2 +-
app/Services/Activity/HubSpot/Providers/ProviderTwilio.php | 2 +-
app/Services/Activity/HubSpot/Providers/ProviderTwilioFlex.php | 5 +-
app/Services/Activity/HubSpot/Service.php | 97 +++++++++++++++++++++++++++------
app/Services/Crm/Hubspot/Client.php | 132 +++++++++++++++++++++++++++++++++++++++++++++
app/Services/Crm/Hubspot/HubspotClientInterface.php | 15 ++++++
app/Services/Crm/Hubspot/Pagination/HubspotPaginationService.php | 21 ++++----
app/Services/Crm/Hubspot/Pagination/PaginationState.php | 2 +-
database/migrations/2026_05_13_124153_create_mcp_feature_flag.php | 25 +++++++++
tests/Feature/Mcp/GetMeToolFeatureTest.php | 140 +++++++++++++++++++++++++++++++++++++++++++++++
tests/Feature/Mcp/ListCallsToolFeatureTest.php | 2 +-
tests/Feature/Mcp/McpTestHelpersTrait.php | 19 ++++++-
tests/Unit/Component/ES/ChunkSizeTest.php | 50 +++++++++++++++++
tests/Unit/Component/ES/Processor/DTOs/SelectionListTest.php | 27 +++++++---
tests/Unit/Component/ES/Processor/TargetEntitiesSelectorTest.php | 39 ++++++++------
tests/Unit/Component/MeetingBot/Service/ParticipantMatcherTest.php | 68 ++++++++++++++++++++++-
tests/Unit/Exceptions/RateLimitExceptionTest.php | 56 +++++++++++++++++++
tests/Unit/Jobs/Crm/MatchActivityCrmDataTest.php | 8 +--
tests/Unit/Jobs/Middleware/HandleHubspotRateLimitTest.php | 151 +++++++++++++++++++++++++++++++++++++++++++++++++++
tests/Unit/Services/Activity/HubSpot/ServiceTest.php | 109 +++++++++++++++++++++++++++++++++++++
tests/Unit/Services/Crm/Hubspot/ClientTest.php | 250 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
tests/Unit/Services/Crm/Hubspot/Pagination/HubspotPaginationServiceTest.php | 283 +++++++++++++++++++++---------------------------------------------------------------------------
37 files changed, 1587 insertions(+), 344 deletions(-)
create mode 100644 app/Component/ES/ChunkSize.php
create mode 100644 app/Jobs/Middleware/HandleHubspotRateLimit.php
create mode 100644 app/Mcp/Tools/GetMeTool.php
create mode 100644 database/migrations/2026_05_13_124153_create_mcp_feature_flag.php
create mode 100644 tests/Feature/Mcp/GetMeToolFeatureTest.php
create mode 100644 tests/Unit/Component/ES/ChunkSizeTest.php
create mode 100644 tests/Unit/Exceptions/RateLimitExceptionTest.php
create mode 100644 tests/Unit/Jobs/Middleware/HandleHubspotRateLimitTest.php
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (master) $ git pull
Already up to date.
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (master) $ co -b JY-20676-delete-report-related-objects
Switched to a new branch 'JY-20676-delete-report-related-objects'
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20676-delete-report-related-objects) $ csfix
docker exec -it docker_lamp_1 ./vendor/bin/php-cs-fixer fix --config=.php-cs-fixer.dist.php -v --using-cache=no --diff
PHP CS Fixer 3.87.1 Alexander by Fabien Potencier, Dariusz Ruminski and contributors.
PHP runtime: 8.3.30
Running 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!
Loaded config default from ".php-cs-fixer.dist.php".
5690/5690 [▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓] 100%
1) app/Console/Commands/JiminnyDebugCommand.php (statement_indentation, blank_line_before_statement)
---------- begin diff ----------
--- /home/jiminny/app/Console/Commands/JiminnyDebugCommand.php
+++ /home/jiminny/app/Console/Commands/JiminnyDebugCommand.php
@@ -23,6 +23,7 @@
if ($action === 'redis-set') {
$this->testRedisSet();
+
return;
}
@@ -45,7 +46,7 @@
$ttl = 60;
try {
-// $result = Redis::set($testKey, $testValue, 'EX', $ttl, 'NX');
+ // $result = Redis::set($testKey, $testValue, 'EX', $ttl, 'NX');
$result = Redis::set($testKey, $testValue, ['nx', 'ex' => $ttl]);
if ($result) {
----------- end diff -----------
Fixed 1 of 5690 files i...
|
[{"role":"AXTextArea","text [{"role":"AXTextArea","text":"Last login: Mon May 18 09:17:28 on ttys007\n\nPoetry could not find a pyproject.toml file in /Users/lukas/jiminny/app or its parents\n\nPoetry could not find a pyproject.toml file in /Users/lukas/jiminny/app or its parents\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (pipedrive-sdk-poc) $ co master\nerror: Your local changes to the following files would be overwritten by checkout:\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tPIPEDRIVE_V2_MIGRATION_TICKETS.md\nPlease commit your changes or stash them before you switch branches.\nAborting\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (pipedrive-sdk-poc) $ git pull\nremote: Enumerating objects: 1047, done.\nremote: Counting objects: 100% (832/832), done.\nremote: Compressing objects: 100% (298/298), done.\nremote: Total 1047 (delta 634), reused 596 (delta 534), pack-reused 215 (from 3)\nReceiving objects: 100% (1047/1047), 353.16 KiB | 1.56 MiB/s, done.\nResolving deltas: 100% (687/687), completed with 107 local objects.\nFrom github.com:jiminny/app\n 907c54896c..34656c53ed pipedrive-sdk-poc -> origin/pipedrive-sdk-poc\n 03325ec50f..4e7078fd8b JY-18091-upgrade-to-php-8-5 -> origin/JY-18091-upgrade-to-php-8-5\n e7d231e163..bc6a3fce6b JY-20725-handle-HS-search-rate-limit -> origin/JY-20725-handle-HS-search-rate-limit\n * [new branch] JY-20749-user-can-view-recorded-meetings -> origin/JY-20749-user-can-view-recorded-meetings\n 98ca281a04..e0351be069 JY-20808-low-priority-indexing-queue -> origin/JY-20808-low-priority-indexing-queue\n 569abb5149..3906a9238a JY-20835-mcp-enable-users-to-get-a-list-of-deals-and-their-details -> origin/JY-20835-mcp-enable-users-to-get-a-list-of-deals-and-their-details\n ad6c2a86e8..50eb6afba9 JY-20846-mcp-enable-the-ai-to-know-details-about-the-user -> origin/JY-20846-mcp-enable-the-ai-to-know-details-about-the-user\n * [new branch] JY-20893-chunk-control-per-update-target -> origin/JY-20893-chunk-control-per-update-target\n 31c62924a5..cb4ebf0c36 master -> origin/master\nUpdating 907c54896c..34656c53ed\nFast-forward\n PIPEDRIVE_V2_MIGRATION_TICKETS.md | 52 ++++++++++++++++++++++++++++++++++++++++++++++++++++\n 1 file changed, 52 insertions(+)\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (pipedrive-sdk-poc) $ co master\nM\u0000\u0000\u0000\u0000\u0000\u0000\t.env.local\nM\u0000\u0000\u0000\u0000\u0000\u0000\tconfig/logging.php\nSwitched to branch 'master'\nYour branch is behind 'origin/master' by 31 commits, and can be fast-forwarded.\n (use \"git pull\" to update your local branch)\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (master) $ git pull\nUpdating 31c62924a5..cb4ebf0c36\nFast-forward\n app/Component/ES/Processor/Traits/SelectEntityListTrait.php | 20 ------\n app/Services/Calendar/CalendarActivityService.php | 46 +++++++++++++\n app/Services/Calendar/Command/MapActivityData.php | 106 +++-------------------------\n docs/mcp/explorer/explorer.html | 104 +++++++++++++++++++++++++---\n docs/mcp/explorer/explorer.template.html | 102 ++++++++++++++++++++++++---\n docs/mcp/tools-list.json | 373 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++-------\n docs/mcp/tools.md | 117 +++++++++++++++++++++++--------\n tests/Unit/Component/ES/AsyncUpdateElasticSearchTest.php | 16 +----\n tests/Unit/Component/ES/Listeners/UpdateMultipleTargetsListenerTest.php | 10 ---\n tests/Unit/Component/ES/Listeners/UpdateSingleTargetListenerTest.php | 6 --\n tests/Unit/Component/ES/Processor/TargetEntitiesSelectorTest.php | 9 ---\n tests/Unit/Component/ES/Processor/Traits/SelectEntityListTraitTest.php | 15 ++--\n tests/Unit/Component/ES/UpdateProcessManagerTest.php | 2 -\n tests/Unit/Services/Calendar/CalendarActivityServiceTest.php | 150 ++++++++++++++++++++++++++++++++++++++--\n tests/Unit/Services/Calendar/Command/MapActivityDataTest.php | 78 ++-------------------\n 15 files changed, 832 insertions(+), 322 deletions(-)\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (master) $ co -b JY-20613-allow-owner-role-on-team-setup\nSwitched to a new branch 'JY-20613-allow-owner-role-on-team-setup'\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20613-allow-owner-role-on-team-setup) $ csfix\ndocker exec -it docker_lamp_1 ./vendor/bin/php-cs-fixer fix --config=.php-cs-fixer.dist.php -v --using-cache=no --diff \nPHP CS Fixer 3.87.1 Alexander by Fabien Potencier, Dariusz Ruminski and contributors.\nPHP runtime: 8.3.30\nRunning analysis on 7 cores with 10 files per process.\nParallel runner is an experimental feature and may be unstable, use it at your own risk. Feedback highly appreciated!\nLoaded config default from \".php-cs-fixer.dist.php\".\n 5682/5682 [▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓] 100%\n\n\nFixed 0 of 5682 files in 56.978 seconds, 67.00 MB memory used\n\nWhat's next:\n Try Docker Debug for seamless, persistent debugging tools in any container or image → docker debug docker_lamp_1\n Learn more at https://docs.docker.com/go/debug-cli/\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20613-allow-owner-role-on-team-setup) $ ;xd\ndocker exec -it docker_lamp_1 bash -c \"mv /usr/local/etc/php/conf.d/xdebug.ini ~/xdebug.ini\"\n\nWhat's next:\n Try Docker Debug for seamless, persistent debugging tools in any container or image → docker debug docker_lamp_1\n Learn more at https://docs.docker.com/go/debug-cli/\ndocker exec -it docker_lamp_1 supervisorctl restart all\njiminny-worker-processing-2:jiminny-worker-processing-2_00: stopped\njiminny-worker-processing-3:jiminny-worker-processing-3_00: stopped\njiminny-worker-processing-4:jiminny-worker-processing-4_00: stopped\njiminny-worker-processing-5:jiminny-worker-processing-5_00: stopped\njiminny-worker-processing-delayed:jiminny-worker-processing-delayed_00: stopped\nworker-analytics:worker-analytics_00: stopped\nworker-crm-update:worker-crm-update_00: stopped\nworker-download:worker-download_00: stopped\nworker-nudges:worker-nudges_00: stopped\nartisan-schedule:artisan-schedule_00: stopped\nworker-emails:worker-emails_00: stopped\nworker-calendar:worker-calendar_00: stopped\nworker:worker_00: stopped\nworker-conferences:worker-conferences_00: stopped\nworker-crm-sync:worker-crm-sync_00: stopped\njiminny-worker-processing-1:jiminny-worker-processing-1_00: stopped\nworker-audio:worker-audio_00: stopped\nworker-es-update:worker-es-update_00: stopped\nartisan-schedule:artisan-schedule_00: started\njiminny-worker-processing-1:jiminny-worker-processing-1_00: started\njiminny-worker-processing-2:jiminny-worker-processing-2_00: started\njiminny-worker-processing-3:jiminny-worker-processing-3_00: started\njiminny-worker-processing-4:jiminny-worker-processing-4_00: started\njiminny-worker-processing-5:jiminny-worker-processing-5_00: started\njiminny-worker-processing-delayed:jiminny-worker-processing-delayed_00: started\nworker:worker_00: started\nworker-analytics:worker-analytics_00: started\nworker-audio:worker-audio_00: started\nworker-calendar:worker-calendar_00: started\nworker-conferences:worker-conferences_00: started\nworker-crm-sync:worker-crm-sync_00: started\nworker-crm-update:worker-crm-update_00: started\nworker-download:worker-download_00: started\nworker-emails:worker-emails_00: started\nworker-es-update:worker-es-update_00: started\nworker-nudges:worker-nudges_00: started\n\nWhat's next:\n Try Docker Debug for seamless, persistent debugging tools in any container or image → docker debug docker_lamp_1\n Learn more at https://docs.docker.com/go/debug-cli/\ndocker exec -it docker_lamp_1 php -v\nPHP 8.3.30 (cli) (built: Mar 16 2026 22:32:32) (NTS)\nCopyright (c) The PHP Group\nZend Engine v4.3.30, Copyright (c) Zend Technologies\n with Zend OPcache v8.3.30, Copyright (c), by Zend Technologies\n\nWhat's next:\n Try Docker Debug for seamless, persistent debugging tools in any container or image → docker debug docker_lamp_1\n Learn more at https://docs.docker.com/go/debug-cli/\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20613-allow-owner-role-on-team-setup) $ csfix\ndocker exec -it docker_lamp_1 ./vendor/bin/php-cs-fixer fix --config=.php-cs-fixer.dist.php -v --using-cache=no --diff \nPHP CS Fixer 3.87.1 Alexander by Fabien Potencier, Dariusz Ruminski and contributors.\nPHP runtime: 8.3.30\nRunning analysis on 7 cores with 10 files per process.\nParallel runner is an experimental feature and may be unstable, use it at your own risk. Feedback highly appreciated!\nLoaded config default from \".php-cs-fixer.dist.php\".\n 5682/5682 [▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓] 100%\n\n\nFixed 0 of 5682 files in 49.910 seconds, 60.00 MB memory used\n\nWhat's next:\n Try Docker Debug for seamless, persistent debugging tools in any container or image → docker debug docker_lamp_1\n Learn more at https://docs.docker.com/go/debug-cli/\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20613-allow-owner-role-on-team-setup) $ git status\nOn branch JY-20613-allow-owner-role-on-team-setup\nYour branch is ahead of 'origin/JY-20613-allow-owner-role-on-team-setup' by 1 commit.\n (use \"git push\" to publish your local commits)\n\nChanges not staged for commit:\n (use \"git add <file>...\" to update what will be committed)\n (use \"git restore <file>...\" to discard changes in working directory)\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tmodified: .env.local\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tmodified: config/logging.php\n\nUntracked files:\n (use \"git add <file>...\" to include in what will be committed)\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\t.env.nikilocal\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\t.env.other\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tWEBHOOK_FILTERING_IMPLEMENTATION.md\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tapp/Console/Commands/Crm/Hubspot/SimulateWebhooksCommand.php\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tapp/Console/Commands/Reports/CreateMockAskJiminnyReportResultCommand.php\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tids.txt\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tpublic/favicon.ico\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\traw_sql_query.sql\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\ttests/Unit/Policies/CanAccessAiReportsTest.php\n\nno changes added to commit (use \"git add\" and/or \"git commit -a\")\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20613-allow-owner-role-on-team-setup) $ git pull\nremote: Enumerating objects: 248, done.\nremote: Counting objects: 100% (128/128), done.\nremote: Compressing objects: 100% (23/23), done.\nremote: Total 59 (delta 43), reused 44 (delta 33), pack-reused 0 (from 0)\nUnpacking objects: 100% (59/59), 10.48 KiB | 228.00 KiB/s, done.\nFrom github.com:jiminny/app\n b7df560451..190239dfd4 JY-20613-allow-owner-role-on-team-setup -> origin/JY-20613-allow-owner-role-on-team-setup\n e0351be069..d94a285ae7 JY-20808-low-priority-indexing-queue -> origin/JY-20808-low-priority-indexing-queue\n * [new branch] JY-20920-fix-participant-matcher -> origin/JY-20920-fix-participant-matcher\n cb4ebf0c36..90bca4e4b2 master -> origin/master\nMerge made by the 'ort' strategy.\n app/Component/ES/ChunkSize.php | 54 +++++++++++++++++++++++++++\n app/Component/ES/Processor/DTOs/SelectionList.php | 4 +-\n app/Component/ES/Processor/TargetEntitiesSelector.php | 19 ++++++----\n app/Http/Middleware/McpTierMiddleware.php | 27 +++-----------\n app/Mcp/Servers/JiminnyServer.php | 2 +\n app/Mcp/Tools/GetMeTool.php | 157 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++\n app/Models/Feature/FeatureEnum.php | 1 +\n database/migrations/2026_05_13_124153_create_mcp_feature_flag.php | 25 +++++++++++++\n front-end/src/components/Settings/Kiosk/modals/EditTeamModal/EditTeamModal.vue | 52 ++++++++++++++++++--------\n front-end/src/components/Settings/Kiosk/modals/EditTeamModal/__tests__/EditTeamModal.spec.js | 14 +++++++\n tests/Feature/Mcp/GetMeToolFeatureTest.php | 140 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++\n tests/Feature/Mcp/ListCallsToolFeatureTest.php | 2 +-\n tests/Feature/Mcp/McpTestHelpersTrait.php | 19 +++++++++-\n tests/Unit/Component/ES/ChunkSizeTest.php | 50 +++++++++++++++++++++++++\n tests/Unit/Component/ES/Processor/DTOs/SelectionListTest.php | 27 ++++++++++----\n tests/Unit/Component/ES/Processor/TargetEntitiesSelectorTest.php | 39 +++++++++++---------\n 16 files changed, 557 insertions(+), 75 deletions(-)\n create mode 100644 app/Component/ES/ChunkSize.php\n create mode 100644 app/Mcp/Tools/GetMeTool.php\n create mode 100644 database/migrations/2026_05_13_124153_create_mcp_feature_flag.php\n create mode 100644 tests/Feature/Mcp/GetMeToolFeatureTest.php\n create mode 100644 tests/Unit/Component/ES/ChunkSizeTest.php\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20613-allow-owner-role-on-team-setup) $ git push\nEnumerating objects: 40, done.\nCounting objects: 100% (34/34), done.\nDelta compression using up to 8 threads\nCompressing objects: 100% (18/18), done.\nWriting objects: 100% (18/18), 1.58 KiB | 1.58 MiB/s, done.\nTotal 18 (delta 15), reused 0 (delta 0), pack-reused 0\nremote: Resolving deltas: 100% (15/15), completed with 13 local objects.\nTo github.com:jiminny/app.git\n 190239dfd4..ec1b261264 JY-20613-allow-owner-role-on-team-setup -> JY-20613-allow-owner-role-on-team-setup\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20613-allow-owner-role-on-team-setup) $ gbr\n* JY-20613-allow-owner-role-on-team-setup\n pipedrive-sdk-poc\n master\n JY-20903-update_activity-stage-on-opportunity-change\n JY-20904-fix-update-es-on-activity-command\n JY-20891-improve-sms-text-relays\n JY-20725-handle-HS-search-rate-limit\n JY-20818-move-AJ-reports-to-separated-datadog-metric\n JY-20773-fix-automated-reports-user-pilot-tracking\n JY-20157-AJ-report-not-send-notification\n JY-20508-notify-before-AJ-report-expiration\n JY-20372-ai-reports-promotion-pages\n JY-20352-sync-opportunities-without-a-local-owner-user-id-is-null\n JY-20738-debug-AJ-tracking-UP\n a\n JY-18909-automated-reports-ask-jiminny\n JY-20692-fix-integration-app-token-auth-response-change\n JY-20553-debug-crm-sync-delays\n JY-20698-fix-SF-activity-types-on-new-playbook\n JY-20543-AJ-report-tracking\n JY-20384-handle-auto-sync-with-no-access-to-event-type\n JY-20458-ask-jiminny-user-definitions\n JY-19666-fix-import-contacts-account-association\n JY-19666-HS-import-contacts-and-accounts-batch-job\n JY-20458-Ask-Jiminny-Reports\n JY-20200-batch-update-CRM-objects-Salesforce\n JY-19666-HS-webhooks-add-contact-and-company\n JY-20348-trigger-setup-DI-layout-on-team-creation\n JY-20326-refactor-info-message-in-command\n JY-20317-fix-auto-log-delay-issue-on-all-channels-disabled\n JY-20312-remove-on-update-change-last-synced-at-crm-configurations\n JY-20306-SF-skip-auto-sync-for-task-based-playbook\n JY-20192-remove-deleted-team-from-saved-search-filters\n JY-20197-import-opportunity-batch-job\n JY-20293-enable-status-field-for-pipedrive-deals\n JY-20191-remove-commands-interactive-prompts\n JY-20118-change-default-sync-strategy\n JY-20183-add-cache-on-auto-log-delay\n JY-20197-add-import-opportunity-batch-job\n 20118-hs-opportunity-make-webhook-strategy-default\n JY-20118-make-default-hs-opportunity-sync-strategy-webhook-based\n JY-20196-handle-opportunity-without-note\n JY-20118-improve-opportunity-import\n JY-20189-handle-activity-search-on-deleted-groups\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20613-allow-owner-role-on-team-setup) $ co JY-20725-handle-HS-search-rate-limit\nM\u0000\u0000\u0000\u0000\u0000\u0000\t.env.local\nM\u0000\u0000\u0000\u0000\u0000\u0000\tconfig/logging.php\nSwitched to branch 'JY-20725-handle-HS-search-rate-limit'\nYour branch is behind 'origin/JY-20725-handle-HS-search-rate-limit' by 439 commits, and can be fast-forwarded.\n (use \"git pull\" to update your local branch)\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20725-handle-HS-search-rate-limit) $ git pull\nUpdating 0f3e438941..bc6a3fce6b\nFast-forward\n .gitignore | 3 +-\n .windsurfrules | 168 ++---\n CLAUDE.md | 1 +\n app/Component/ActivityAnalytics/Service/CalculateTalkTimeOffsetsFromTranscription.php | 24 +-\n app/Component/AiActivityType/Services/AiActivityTypeEligibilityChecker.php | 28 +-\n app/Component/AiAutomation/Actions/PrepareUpdateDtoAction.php | 32 +-\n app/Component/AiAutomation/Services/CrmFillingEligibilityChecker.php | 47 ++\n app/Component/AiAutomation/TestCrmAiPromptService.php | 14 +\n app/Component/AiCallScoring/Services/AiCallScoringEligibilityChecker.php | 9 +\n app/Component/ES/ElasticSearchDocumentPartialUpdater.php | 13 +-\n app/Component/ES/ElasticSearchWorkerManager.php | 86 ---\n app/Component/ES/Processor/Actions/LoadDocumentsAction.php | 80 +--\n app/Component/ES/Processor/EntityQueryBuilder.php | 12 +-\n app/Component/ES/Processor/TargetEntitiesSelector.php | 2 +-\n app/Component/ES/Processor/Traits/SkipActivityTrait.php | 25 -\n app/Component/ES/Repositories/EsResetActivityRepository.php | 11 +-\n app/Component/ES/Worker/ActivityWorker.php | 73 --\n app/Component/ES/Worker/EntityWorker.php | 44 --\n app/Component/ES/Worker/WorkerAmount.php | 60 --\n app/Component/ES/Worker/WorkerInterface.php | 15 -\n app/Component/ElasticSearch/Contract/Searchable.php | 4 +\n app/Component/Encoding/Job/AnalyzeTrackChannelsJob.php | 20 +-\n app/Component/Encoding/Service/GenerateSpeechFromSilenceService.php | 85 ++-\n app/Component/FFMpeg/Services/GetSpeechIntervalsService.php | 18 +-\n app/Component/LanguageDetection/Services/FindSpeechTimeService.php | 22 +-\n app/Component/Nudge/Job/ProcessOrganisationImmediateNudgesJob.php | 218 +++++-\n app/Component/ParagraphBreaker/Services/TranscriptionParagraphsService.php | 4 +\n app/Component/ParticipantSpeech/Services/ParticipantSpeechesCreator.php | 33 +\n app/Component/ParticipantSpeech/Services/ParticipantSpeechesDeleter.php | 15 +\n app/Component/ParticipantSpeech/Services/ParticipantSpeechesProvider.php | 51 +-\n app/Component/ParticipantSpeech/Services/ParticipantSpeechesUploader.php | 36 +\n app/Component/ProphetAi/Exceptions/InsufficientTranscriptException.php | 11 +\n app/Component/Transcription/DTO/Http/Transcription/AssemblyAI/AssemblyAI/NoAssemblyIdException.php | 11 +\n app/Component/Transcription/DTO/Http/Transcription/AssemblyAI/AssemblyAI/SuccessfulResponse.php | 6 +\n app/Component/Transcription/DTO/Http/Transcription/TranscriptionIsNotCorrectFormatException.php | 11 +\n app/Component/Transcription/Diarization/Services/GetNormalizedParticipantSpeechesService.php | 23 +-\n app/Component/Transcription/Diarization/Source/MeetingBotSource.php | 16 +-\n app/Component/Transcription/TranscriptionProcessor/TranscriptionProcessor.php | 3 +\n app/Console/Commands/Activities/ActivityHardDeleteCommand.php | 4 +-\n app/Console/Commands/Activities/Copy.php | 2 +\n app/Console/Commands/Activities/SetupIntegration/TwilioSetS3RecordingCredentialsCommand.php | 119 ++++\n app/Console/Commands/Activities/UpdateActivityElasticSearchDocumentCommand.php | 10 +-\n app/Console/Commands/Crm/BackfillOpportunityUserFromAccountCommand.php | 126 ++++\n app/Console/Commands/Elasticsearch/AsyncUpdateEsActivities.php | 19 -\n app/Console/Commands/Elasticsearch/AsyncUpdateEsEntities.php | 50 +-\n app/Console/Commands/Elasticsearch/ResetAsyncElasticSearchCommand.php | 30 +-\n app/Console/Commands/GeckoExport/GeckoExportParticipantSpeechesCommand.php | 14 +-\n app/Console/Commands/IssueMcpTokenCommand.php | 84 +++\n app/Console/Commands/JiminnyDebugCommand.php | 7 +-\n app/Console/Commands/Tracks/CleanupActivityTracksCommand.php | 2 +-\n app/Console/Kernel.php | 6 +-\n app/Contracts/Services/Calendar/CalendarTrait.php | 80 ++-\n app/Events/AutomatedReports/AutomatedReportGenerated.php | 3 +\n app/Http/Controllers/API/AiCallScoring/AiScorecardController.php | 7 +-\n app/Http/Controllers/API/TeamAiAutomationController.php | 8 +\n app/Http/Controllers/CustomerApi/CustomerApiController.php | 4 +-\n app/Http/Controllers/Kiosk/ActivityController.php | 58 +-\n app/Http/Controllers/Settings/PlaybookController.php | 15 +-\n app/Http/Kernel.php | 23 +\n app/Http/Middleware/McpAuditMiddleware.php | 156 ++++\n app/Http/Middleware/McpTierMiddleware.php | 54 ++\n app/Http/Requests/API/V2/ZapierUploadActivityRequest.php | 28 +-\n app/Jobs/Activity/Import/ImportTwilioVideoSpeechesJob.php | 25 +-\n app/Jobs/Activity/Import/IsActivityReadyForProcessingJob.php | 10 +-\n app/Jobs/Calendar/SetupCalendarSync.php | 21 +-\n app/Jobs/ImportRemoteTrackJob.php | 96 ++-\n app/Jobs/Mailbox/EmailTextRelay.php | 15 +-\n app/Mcp/Contracts/McpCallRepositoryInterface.php | 30 +\n app/Mcp/DTO/ListCallsFilters.php | 29 +\n app/Mcp/Errors/McpError.php | 123 ++++\n app/Mcp/Repositories/McpActivityHydrator.php | 145 ++++\n app/Mcp/Repositories/McpCallRepository.php | 84 +++\n app/Mcp/Repositories/McpElasticCallRepository.php | 171 +++++\n app/Mcp/Servers/JiminnyServer.php | 38 +\n app/Mcp/Tools/ListCallsTool.php | 205 ++++++\n app/Models/Activity.php | 10 +-\n app/Models/Activity/Transcription.php | 17 +-\n app/Models/ElasticSearch/OpportunityElasticSearchTrait.php | 5 +\n app/Models/Participant.php | 1 +\n app/Providers/AppServiceProvider.php | 22 +\n app/Repositories/Crm/ContactRepository.php | 69 +-\n app/Repositories/ParticipantSpeechRepository.php | 13 +-\n app/Services/Activity/ParticipantsService.php | 19 +-\n app/Services/Activity/Twilio/S3RecordingCredentialsService.php | 82 +++\n app/Services/ActivityService.php | 21 +-\n app/Services/Calendar/CalendarActivityService.php | 46 ++\n app/Services/Calendar/Command/ImportParticipants.php | 1 +\n app/Services/Calendar/Command/MapActivityData.php | 106 +--\n app/Services/Calendar/GoogleCalendarService.php | 12 +-\n app/Services/Crm/Close/Processor/OpportunityProcessor.php | 2 +-\n app/Services/Crm/Close/Service.php | 22 +-\n app/Services/Crm/Copper/Service.php | 12 +-\n app/Services/Crm/Hubspot/Service.php | 154 +++-\n app/Services/Crm/Hubspot/ServiceTraits/OpportunitySyncTrait.php | 88 ++-\n app/Services/Crm/IntegrationApp/ServiceTraits/SyncCrmEntitiesTrait.php | 22 +-\n app/Services/Crm/Pipedrive/Service.php | 17 +-\n app/Services/Crm/Salesforce/Service.php | 42 +-\n app/Services/Mail/Office/EmailApiClient.php | 129 +---\n app/Services/RecallAI/Commands/ScheduleBotCommand.php | 39 +-\n app/Services/RecallAI/RecallAIService.php | 22 +-\n composer.json | 3 +-\n composer.lock | 87 ++-\n config/mcp.php | 23 +\n database/migrations/2026_04_30_120000_create_mcp_audit_log_table.php | 36 +\n docs/mcp/explorer/explorer.html | 697 ++++++++++++++++++\n docs/mcp/explorer/explorer.template.html | 697 ++++++++++++++++++\n docs/mcp/explorer/generate.js | 215 ++++++\n docs/mcp/explorer/tool-explorer-meta.json | 11 +\n docs/mcp/tools-list.json | 2536 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++\n docs/mcp/tools.md | 621 ++++++++++++++++\n front-end/package.json | 4 +-\n front-end/src/components/Settings/OrgSettings/AiAutomation/CrmFilling/TemplateFieldForm.vue | 28 +-\n front-end/src/components/Settings/OrgSettings/Playbooks/AddEditPlaybook.vue | 10 +\n front-end/src/components/playback/comments/ActivityComment.less | 10 +-\n front-end/src/components/shared/PromptTester/PromptTester.vue | 12 +-\n front-end/src/components/shared/__tests__/PromptTester.spec.js | 35 +\n front-end/src/components/shared/modals/EntityPickerModal/__tests__/useEntitiesCache.spec.ts | 37 +\n front-end/src/components/shared/modals/EntityPickerModal/useEntitiesCache.ts | 9 +\n front-end/yarn.lock | 16 +-\n phpstan-baseline.neon | 50 --\n routes/api.php | 11 +\n sonar-project.properties | 91 ++-\n tests/Feature/Component/Nudge/ProcessOrganisationImmediateNudgesJobTest.php | 534 ++++++++++++++\n tests/Feature/Jobs/ImportRemoteTrackJobTest.php | 283 +++++++-\n tests/Feature/Mcp/IssueMcpTokenCommandTest.php | 53 ++\n tests/Feature/Mcp/ListCallsToolElasticFeatureTest.php | 155 ++++\n tests/Feature/Mcp/ListCallsToolFeatureTest.php | 352 ++++++++++\n tests/Feature/Mcp/McpTestHelpersTrait.php | 77 ++\n tests/Feature/Services/Team/TeamDeleteHandlers/Retention/RetentionRepositoryHandlerTest.php | 1 +\n tests/Stubs/SentryStub.php | 18 +\n tests/Unit/Component/ActivityAnalytics/Service/CalculateTalkTimeOffsetFromTranscriptionTest.php | 28 +-\n tests/Unit/Component/AiActivityType/Services/AiActivityTypeEligibilityCheckerTest.php | 103 ++-\n tests/Unit/Component/AiAutomation/Actions/PrepareUpdateDtoActionTest.php | 91 +++\n tests/Unit/Component/AiAutomation/Services/CrmFillingEligibilityCheckerTest.php | 124 ++++\n tests/Unit/Component/AiAutomation/TestCrmAiPromptServiceTest.php | 67 +-\n tests/Unit/Component/AiCallScoring/Services/AiCallScoringEligibilityCheckerTest.php | 55 ++\n tests/Unit/Component/ES/ElasticSearchWorkerManagerTest.php | 135 ----\n tests/Unit/Component/ES/Processor/Actions/LoadDocumentsActionTest.php | 220 ++++++\n tests/Unit/Component/ES/Processor/EntityQueryBuilderTest.php | 21 +-\n tests/Unit/Component/ES/Processor/Traits/SkipActivityTraitTest.php | 51 --\n tests/Unit/Component/ES/Worker/ActivityWorkerTest.php | 174 -----\n tests/Unit/Component/ES/Worker/EntityWorkerTest.php | 97 ---\n tests/Unit/Component/ES/Worker/WorkerAmountTest.php | 116 ---\n tests/Unit/Component/Encoding/Job/AnalyzeTrackChannelsJobTest.php | 52 +-\n tests/Unit/Component/Encoding/Service/GenerateSpeechFromSilenceServiceTest.php | 171 ++---\n tests/Unit/Component/FFMpeg/Services/GetSpeechIntervalsTest.php | 36 +-\n tests/Unit/Component/LanguageDetection/Services/FindSpeechTimeServiceTest.php | 20 +-\n tests/Unit/Component/MobileSettings/MobileSettingsControllerTest.php | 5 +-\n tests/Unit/Component/ParticipantSpeech/Services/ParticipantSpeechesCreatorTest.php | 75 ++\n tests/Unit/Component/ParticipantSpeech/Services/ParticipantSpeechesDeleterTest.php | 63 ++\n tests/Unit/Component/ParticipantSpeech/Services/ParticipantSpeechesProviderTest.php | 134 ++++\n tests/Unit/Component/ParticipantSpeech/Services/ParticipantSpeechesUploaderTest.php | 57 ++\n tests/Unit/Component/Transcription/Diarization/Services/GetNormalizedParticipantSpeechesServiceTest.php | 51 +-\n tests/Unit/Component/Transcription/Diarization/Source/MeetingBotSourceTest.php | 29 +-\n tests/Unit/Contracts/Services/Calendar/CalendarTraitTest.php | 58 +-\n tests/Unit/Http/Controllers/Kiosk/ActivityControllerTest.php | 159 +++++\n tests/Unit/Jobs/Activity/Import/ImportTwilioVideoSpeechesJobTest.php | 22 +-\n tests/Unit/Jobs/Activity/Import/IsActivityReadyForProcessingJobTest.php | 26 +-\n tests/Unit/Jobs/Calendar/SetupCalendarSyncTest.php | 25 -\n tests/Unit/Services/Activity/ParticipantsServiceTest.php | 12 +-\n tests/Unit/Services/Activity/Twilio/S3RecordingCredentialsServiceTest.php | 180 +++++\n tests/Unit/Services/ActivityServiceTest.php | 132 ++++\n tests/Unit/Services/Calendar/CalendarActivityServiceTest.php | 150 +++-\n tests/Unit/Services/Calendar/Command/ImportParticipantsTest.php | 6 +-\n tests/Unit/Services/Calendar/Command/MapActivityDataTest.php | 78 +-\n tests/Unit/Services/Calendar/GoogleCalendarServiceTest.php | 116 +++\n tests/Unit/Services/Crm/Close/ServiceTest.php | 165 +++++\n tests/Unit/Services/Crm/Hubspot/ServiceTest.php | 272 ++++++-\n tests/Unit/Services/Crm/Hubspot/ServiceTraits/OpportunitySyncTest.php | 25 +-\n tests/Unit/Services/Crm/Hubspot/ServiceTraits/OpportunitySyncTraitMatchActivitiesTest.php | 3 +-\n tests/Unit/Services/Crm/IntegrationApp/ServiceTraits/SyncCrmEntitiesTraitOpportunitiesTest.php | 40 ++\n tests/Unit/Services/Crm/Pipedrive/ImportOpportunityMatchActivitiesTest.php | 2 +\n tests/Unit/Services/Crm/Salesforce/ServiceTest.php | 139 ++++\n tests/Unit/Services/Mail/Office/EmailApiClientTest.php | 195 ++---\n tests/Unit/Services/RecallAI/RecallAIServiceTest.php | 24 +-\n 175 files changed, 12562 insertions(+), 2162 deletions(-)\n create mode 120000 CLAUDE.md\n create mode 100644 app/Component/AiAutomation/Services/CrmFillingEligibilityChecker.php\n delete mode 100644 app/Component/ES/ElasticSearchWorkerManager.php\n delete mode 100644 app/Component/ES/Processor/Traits/SkipActivityTrait.php\n delete mode 100644 app/Component/ES/Worker/ActivityWorker.php\n delete mode 100644 app/Component/ES/Worker/EntityWorker.php\n delete mode 100644 app/Component/ES/Worker/WorkerAmount.php\n delete mode 100644 app/Component/ES/Worker/WorkerInterface.php\n create mode 100644 app/Component/ProphetAi/Exceptions/InsufficientTranscriptException.php\n create mode 100644 app/Component/Transcription/DTO/Http/Transcription/AssemblyAI/AssemblyAI/NoAssemblyIdException.php\n create mode 100644 app/Component/Transcription/DTO/Http/Transcription/TranscriptionIsNotCorrectFormatException.php\n create mode 100644 app/Console/Commands/Activities/SetupIntegration/TwilioSetS3RecordingCredentialsCommand.php\n create mode 100644 app/Console/Commands/Crm/BackfillOpportunityUserFromAccountCommand.php\n delete mode 100644 app/Console/Commands/Elasticsearch/AsyncUpdateEsActivities.php\n create mode 100644 app/Console/Commands/IssueMcpTokenCommand.php\n create mode 100644 app/Http/Middleware/McpAuditMiddleware.php\n create mode 100644 app/Http/Middleware/McpTierMiddleware.php\n create mode 100644 app/Mcp/Contracts/McpCallRepositoryInterface.php\n create mode 100644 app/Mcp/DTO/ListCallsFilters.php\n create mode 100644 app/Mcp/Errors/McpError.php\n create mode 100644 app/Mcp/Repositories/McpActivityHydrator.php\n create mode 100644 app/Mcp/Repositories/McpCallRepository.php\n create mode 100644 app/Mcp/Repositories/McpElasticCallRepository.php\n create mode 100644 app/Mcp/Servers/JiminnyServer.php\n create mode 100644 app/Mcp/Tools/ListCallsTool.php\n create mode 100644 app/Services/Activity/Twilio/S3RecordingCredentialsService.php\n create mode 100644 config/mcp.php\n create mode 100644 database/migrations/2026_04_30_120000_create_mcp_audit_log_table.php\n create mode 100644 docs/mcp/explorer/explorer.html\n create mode 100644 docs/mcp/explorer/explorer.template.html\n create mode 100644 docs/mcp/explorer/generate.js\n create mode 100644 docs/mcp/explorer/tool-explorer-meta.json\n create mode 100644 docs/mcp/tools-list.json\n create mode 100644 docs/mcp/tools.md\n create mode 100644 front-end/src/components/shared/modals/EntityPickerModal/__tests__/useEntitiesCache.spec.ts\n create mode 100644 tests/Feature/Component/Nudge/ProcessOrganisationImmediateNudgesJobTest.php\n create mode 100644 tests/Feature/Mcp/IssueMcpTokenCommandTest.php\n create mode 100644 tests/Feature/Mcp/ListCallsToolElasticFeatureTest.php\n create mode 100644 tests/Feature/Mcp/ListCallsToolFeatureTest.php\n create mode 100644 tests/Feature/Mcp/McpTestHelpersTrait.php\n create mode 100644 tests/Stubs/SentryStub.php\n create mode 100644 tests/Unit/Component/AiAutomation/Services/CrmFillingEligibilityCheckerTest.php\n delete mode 100644 tests/Unit/Component/ES/ElasticSearchWorkerManagerTest.php\n create mode 100644 tests/Unit/Component/ES/Processor/Actions/LoadDocumentsActionTest.php\n delete mode 100644 tests/Unit/Component/ES/Processor/Traits/SkipActivityTraitTest.php\n delete mode 100644 tests/Unit/Component/ES/Worker/ActivityWorkerTest.php\n delete mode 100644 tests/Unit/Component/ES/Worker/EntityWorkerTest.php\n delete mode 100644 tests/Unit/Component/ES/Worker/WorkerAmountTest.php\n create mode 100644 tests/Unit/Component/ParticipantSpeech/Services/ParticipantSpeechesCreatorTest.php\n create mode 100644 tests/Unit/Http/Controllers/Kiosk/ActivityControllerTest.php\n create mode 100644 tests/Unit/Services/Activity/Twilio/S3RecordingCredentialsServiceTest.php\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20725-handle-HS-search-rate-limit) $ git status\nOn branch master\nYour branch is behind 'origin/master' by 114 commits, and can be fast-forwarded.\n (use \"git pull\" to update your local branch)\n\nChanges not staged for commit:\n (use \"git add <file>...\" to update what will be committed)\n (use \"git restore <file>...\" to discard changes in working directory)\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tmodified: .env.local\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tmodified: app/Component/SCIM/Constants.php\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tmodified: app/Component/SCIM/ScimProvisioning.php\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tmodified: app/Component/Twilio/Conference/ConferenceManager/SoftPhoneManager.php\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tmodified: app/Console/Commands/JiminnyDebugCommand.php\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tmodified: app/DTO/SCIM/AAD/Request/CoreUserRequest.php\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tmodified: app/DTO/SCIM/AAD/Response/CoreUser.php\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tmodified: app/Services/Telephony/TextMessagingService.php\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tmodified: config/logging.php\n\nUntracked files:\n (use \"git add <file>...\" to include in what will be committed)\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\t.env.nikilocal\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\t.env.other\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tWEBHOOK_FILTERING_IMPLEMENTATION.md\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tapp/Component/SCIM/Mutators/Attributes/User/RoleAttr.php\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tapp/Console/Commands/Crm/Hubspot/SimulateWebhooksCommand.php\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tapp/Console/Commands/Reports/CreateMockAskJiminnyReportResultCommand.php\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tapp/Rules/ListenerRoleCannotHaveAdminOrManagerPermissionRule.php\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tids.txt\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tpublic/favicon.ico\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\traw_sql_query.sql\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\ttests/Unit/Component/SCIM/Mutators/Attributes/User/RoleAttrTest.php\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\ttests/Unit/Policies/CanAccessAiReportsTest.php\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\ttests/Unit/Rules/ListenerRoleCannotHaveAdminOrManagerPermissionRuleTest.php\n\nno changes added to commit (use \"git add\" and/or \"git commit -a\")\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (master) $ git pull\nremote: Enumerating objects: 306, done.\nremote: Counting objects: 100% (299/299), done.\nremote: Compressing objects: 100% (183/183), done.\nremote: Total 306 (delta 213), reused 171 (delta 116), pack-reused 7 (from 1)\nReceiving objects: 100% (306/306), 80.12 KiB | 1000.00 KiB/s, done.\nResolving deltas: 100% (213/213), completed with 53 local objects.\nFrom github.com:jiminny/app\n 90bca4e4b2..5604af40cf master -> origin/master\n 4e7078fd8b..0b8343d179 JY-18091-upgrade-to-php-8-5 -> origin/JY-18091-upgrade-to-php-8-5\n 098eeaa087..d5a447e492 JY-20613-allow-owner-role-on-team-setup -> origin/JY-20613-allow-owner-role-on-team-setup\n c3a76ace91..af65249d0f JY-20749-user-can-view-recorded-meetings -> origin/JY-20749-user-can-view-recorded-meetings\n d94a285ae7..7ce96cb5fe JY-20808-low-priority-indexing-queue -> origin/JY-20808-low-priority-indexing-queue\n * [new branch] JY-20842-remove-partial-updater -> origin/JY-20842-remove-partial-updater\n * [new branch] JY-20920-fix-participant-flip -> origin/JY-20920-fix-participant-flip\n * [new branch] secfix/npm-20260519 -> origin/secfix/npm-20260519\nUpdating cb4ebf0c36..5604af40cf\nFast-forward\n app/Component/ES/ChunkSize.php | 54 +++++++++++++++++++\n app/Component/ES/Processor/DTOs/SelectionList.php | 4 +-\n app/Component/ES/Processor/TargetEntitiesSelector.php | 19 ++++---\n app/Component/MeetingBot/Service/ParticipantMatcher.php | 46 ++++++++++++----\n app/Exceptions/RateLimitException.php | 19 ++++++-\n app/Http/Middleware/McpTierMiddleware.php | 27 ++--------\n app/Jobs/Crm/MatchActivityCrmData.php | 47 ++++++++++++----\n app/Jobs/Middleware/HandleHubspotRateLimit.php | 42 +++++++++++++++\n app/Mcp/Servers/JiminnyServer.php | 2 +\n app/Mcp/Tools/GetMeTool.php | 157 +++++++++++++++++++++++++++++++++++++++++++++++++++++\n app/Models/Feature/FeatureEnum.php | 1 +\n app/Services/Activity/HubSpot/ProviderResolver.php | 4 +-\n app/Services/Activity/HubSpot/ProviderResolverInterface.php | 2 +-\n app/Services/Activity/HubSpot/Providers/Provider.php | 2 +-\n app/Services/Activity/HubSpot/Providers/ProviderKixie.php | 2 +-\n app/Services/Activity/HubSpot/Providers/ProviderOrum.php | 2 +-\n app/Services/Activity/HubSpot/Providers/ProviderTwilio.php | 2 +-\n app/Services/Activity/HubSpot/Providers/ProviderTwilioFlex.php | 5 +-\n app/Services/Activity/HubSpot/Service.php | 97 +++++++++++++++++++++++++++------\n app/Services/Crm/Hubspot/Client.php | 132 +++++++++++++++++++++++++++++++++++++++++++++\n app/Services/Crm/Hubspot/HubspotClientInterface.php | 15 ++++++\n app/Services/Crm/Hubspot/Pagination/HubspotPaginationService.php | 21 ++++----\n app/Services/Crm/Hubspot/Pagination/PaginationState.php | 2 +-\n database/migrations/2026_05_13_124153_create_mcp_feature_flag.php | 25 +++++++++\n tests/Feature/Mcp/GetMeToolFeatureTest.php | 140 +++++++++++++++++++++++++++++++++++++++++++++++\n tests/Feature/Mcp/ListCallsToolFeatureTest.php | 2 +-\n tests/Feature/Mcp/McpTestHelpersTrait.php | 19 ++++++-\n tests/Unit/Component/ES/ChunkSizeTest.php | 50 +++++++++++++++++\n tests/Unit/Component/ES/Processor/DTOs/SelectionListTest.php | 27 +++++++---\n tests/Unit/Component/ES/Processor/TargetEntitiesSelectorTest.php | 39 ++++++++------\n tests/Unit/Component/MeetingBot/Service/ParticipantMatcherTest.php | 68 ++++++++++++++++++++++-\n tests/Unit/Exceptions/RateLimitExceptionTest.php | 56 +++++++++++++++++++\n tests/Unit/Jobs/Crm/MatchActivityCrmDataTest.php | 8 +--\n tests/Unit/Jobs/Middleware/HandleHubspotRateLimitTest.php | 151 +++++++++++++++++++++++++++++++++++++++++++++++++++\n tests/Unit/Services/Activity/HubSpot/ServiceTest.php | 109 +++++++++++++++++++++++++++++++++++++\n tests/Unit/Services/Crm/Hubspot/ClientTest.php | 250 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++\n tests/Unit/Services/Crm/Hubspot/Pagination/HubspotPaginationServiceTest.php | 283 +++++++++++++++++++++---------------------------------------------------------------------------\n 37 files changed, 1587 insertions(+), 344 deletions(-)\n create mode 100644 app/Component/ES/ChunkSize.php\n create mode 100644 app/Jobs/Middleware/HandleHubspotRateLimit.php\n create mode 100644 app/Mcp/Tools/GetMeTool.php\n create mode 100644 database/migrations/2026_05_13_124153_create_mcp_feature_flag.php\n create mode 100644 tests/Feature/Mcp/GetMeToolFeatureTest.php\n create mode 100644 tests/Unit/Component/ES/ChunkSizeTest.php\n create mode 100644 tests/Unit/Exceptions/RateLimitExceptionTest.php\n create mode 100644 tests/Unit/Jobs/Middleware/HandleHubspotRateLimitTest.php\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (master) $ git pull\nAlready up to date.\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (master) $ co -b JY-20676-delete-report-related-objects\nSwitched to a new branch 'JY-20676-delete-report-related-objects'\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20676-delete-report-related-objects) $ csfix\ndocker exec -it docker_lamp_1 ./vendor/bin/php-cs-fixer fix --config=.php-cs-fixer.dist.php -v --using-cache=no --diff \nPHP CS Fixer 3.87.1 Alexander by Fabien Potencier, Dariusz Ruminski and contributors.\nPHP runtime: 8.3.30\nRunning analysis on 7 cores with 10 files per process.\nParallel runner is an experimental feature and may be unstable, use it at your own risk. Feedback highly appreciated!\nLoaded config default from \".php-cs-fixer.dist.php\".\n 5690/5690 [▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓] 100%\n\n 1) app/Console/Commands/JiminnyDebugCommand.php (statement_indentation, blank_line_before_statement)\n ---------- begin diff ----------\n--- /home/jiminny/app/Console/Commands/JiminnyDebugCommand.php\n+++ /home/jiminny/app/Console/Commands/JiminnyDebugCommand.php\n@@ -23,6 +23,7 @@\n \n if ($action === 'redis-set') {\n $this->testRedisSet();\n+\n return;\n }\n \n@@ -45,7 +46,7 @@\n $ttl = 60;\n \n try {\n-// $result = Redis::set($testKey, $testValue, 'EX', $ttl, 'NX');\n+ // $result = Redis::set($testKey, $testValue, 'EX', $ttl, 'NX');\n $result = Redis::set($testKey, $testValue, ['nx', 'ex' => $ttl]);\n \n if ($result) {\n\n ----------- end diff -----------\n\n\nFixed 1 of 5690 files in 50.673 seconds, 67.00 MB memory used\n\nWhat's next:\n Try Docker Debug for seamless, persistent debugging tools in any container or image → docker debug docker_lamp_1\n Learn more at https://docs.docker.com/go/debug-cli/\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20676-delete-report-related-objects) $ ;xd\ndocker exec -it docker_lamp_1 bash -c \"mv /usr/local/etc/php/conf.d/xdebug.ini ~/xdebug.ini\"\n\nWhat's next:\n Try Docker Debug for seamless, persistent debugging tools in any container or image → docker debug docker_lamp_1\n Learn more at https://docs.docker.com/go/debug-cli/\ndocker exec -it docker_lamp_1 supervisorctl restart all\njiminny-worker-processing-2:jiminny-worker-processing-2_00: stopped\njiminny-worker-processing-3:jiminny-worker-processing-3_00: stopped\njiminny-worker-processing-4:jiminny-worker-processing-4_00: stopped\njiminny-worker-processing-5:jiminny-worker-processing-5_00: stopped\njiminny-worker-processing-delayed:jiminny-worker-processing-delayed_00: stopped\nworker-analytics:worker-analytics_00: stopped\nworker-crm-update:worker-crm-update_00: stopped\nworker-download:worker-download_00: stopped\nworker-nudges:worker-nudges_00: stopped\nworker-calendar:worker-calendar_00: stopped\nworker-audio:worker-audio_00: stopped\njiminny-worker-processing-1:jiminny-worker-processing-1_00: stopped\nworker:worker_00: stopped\nworker-conferences:worker-conferences_00: stopped\nworker-crm-sync:worker-crm-sync_00: stopped\nworker-emails:worker-emails_00: stopped\nworker-es-update:worker-es-update_00: stopped\nartisan-schedule:artisan-schedule_00: stopped\nartisan-schedule:artisan-schedule_00: started\njiminny-worker-processing-1:jiminny-worker-processing-1_00: started\njiminny-worker-processing-2:jiminny-worker-processing-2_00: started\njiminny-worker-processing-3:jiminny-worker-processing-3_00: started\njiminny-worker-processing-4:jiminny-worker-processing-4_00: started\njiminny-worker-processing-5:jiminny-worker-processing-5_00: started\njiminny-worker-processing-delayed:jiminny-worker-processing-delayed_00: started\nworker:worker_00: started\nworker-analytics:worker-analytics_00: started\nworker-audio:worker-audio_00: started\nworker-calendar:worker-calendar_00: started\nworker-conferences:worker-conferences_00: started\nworker-crm-sync:worker-crm-sync_00: started\nworker-crm-update:worker-crm-update_00: started\nworker-download:worker-download_00: started\nworker-emails:worker-emails_00: started\nworker-es-update:worker-es-update_00: started\nworker-nudges:worker-nudges_00: started\n\nWhat's next:\n Try Docker Debug for seamless, persistent debugging tools in any container or image → docker debug docker_lamp_1\n Learn more at https://docs.docker.com/go/debug-cli/\ndocker exec -it docker_lamp_1 php -v\nPHP 8.3.30 (cli) (built: Mar 16 2026 22:32:32) (NTS)\nCopyright (c) The PHP Group\nZend Engine v4.3.30, Copyright (c) Zend Technologies\n with Zend OPcache v8.3.30, Copyright (c), by Zend Technologies\n\nWhat's next:\n Try Docker Debug for seamless, persistent debugging tools in any container or image → docker debug docker_lamp_1\n Learn more at https://docs.docker.com/go/debug-cli/\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20676-delete-report-related-objects) $ git status\nOn branch JY-20676-delete-report-related-objects\nChanges not staged for commit:\n (use \"git add <file>...\" to update what will be committed)\n (use \"git restore <file>...\" to discard changes in working directory)\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tmodified: .env.local\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tmodified: app/Console/Commands/JiminnyDebugCommand.php\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tmodified: config/logging.php\n\nUntracked files:\n (use \"git add <file>...\" to include in what will be committed)\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\t.env.nikilocal\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\t.env.other\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tWEBHOOK_FILTERING_IMPLEMENTATION.md\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tapp/Console/Commands/Crm/Hubspot/SimulateWebhooksCommand.php\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tapp/Console/Commands/Reports/CreateMockAskJiminnyReportResultCommand.php\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tids.txt\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tpublic/favicon.ico\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\traw_sql_query.sql\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\ttests/Unit/Policies/CanAccessAiReportsTest.php\n\nno changes added to commit (use \"git add\" and/or \"git commit -a\")\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20676-delete-report-related-objects) $ git push -u origin JY-20676-delete-report-related-objects\nEnumerating objects: 45, done.\nCounting objects: 100% (45/45), done.\nDelta compression using up to 8 threads\nCompressing objects: 100% (24/24), done.\nWriting objects: 100% (24/24), 3.62 KiB | 3.62 MiB/s, done.\nTotal 24 (delta 19), reused 0 (delta 0), pack-reused 0\nremote: Resolving deltas: 100% (19/19), completed with 19 local objects.\nremote: \nremote: Create a pull request for 'JY-20676-delete-report-related-objects' on GitHub by visiting:\nremote: https://github.com/jiminny/app/pull/new/JY-20676-delete-report-related-objects\nremote: \nTo github.com:jiminny/app.git\n * [new branch] JY-20676-delete-report-related-objects -> JY-20676-delete-report-related-objects\nbranch 'JY-20676-delete-report-related-objects' set up to track 'origin/JY-20676-delete-report-related-objects'.\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20676-delete-report-related-objects) $ csfix\ndocker exec -it docker_lamp_1 ./vendor/bin/php-cs-fixer fix --config=.php-cs-fixer.dist.php -v --using-cache=no --diff \nPHP CS Fixer 3.87.1 Alexander by Fabien Potencier, Dariusz Ruminski and contributors.\nPHP runtime: 8.3.30\nRunning analysis on 7 cores with 10 files per process.\nParallel runner is an experimental feature and may be unstable, use it at your own risk. Feedback highly appreciated!\nLoaded config default from \".php-cs-fixer.dist.php\".\n 5690/5690 [▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓] 100%\n\n 1) app/Http/Controllers/API/V2/AskJiminnyReportsController.php (blank_line_before_statement)\n ---------- begin diff ----------\n--- /home/jiminny/app/Http/Controllers/API/V2/AskJiminnyReportsController.php\n+++ /home/jiminny/app/Http/Controllers/API/V2/AskJiminnyReportsController.php\n@@ -140,6 +140,7 @@\n if ($enabled && $report->isAskJiminnyReport() && ! $report->canExecute()) {\n $error = 'This report is missing a saved search or prompt. ' .\n 'Edit the report to complete the setup before enabling it.';\n+\n return new JsonResponse(\n ['error' => $error],\n Response::HTTP_UNPROCESSABLE_ENTITY\n\n ----------- end diff -----------\n\n\nFixed 1 of 5690 files in 71.757 seconds, 60.00 MB memory used\n\nWhat's next:\n Try Docker Debug for seamless, persistent debugging tools in any container or image → docker debug docker_lamp_1\n Learn more at https://docs.docker.com/go/debug-cli/\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20676-delete-report-related-objects) $ git pull\nremote: Enumerating objects: 158, done.\nremote: Counting objects: 100% (103/103), done.\nremote: Compressing objects: 100% (37/37), done.\nremote: Total 158 (delta 80), reused 74 (delta 66), pack-reused 55 (from 3)\nReceiving objects: 100% (158/158), 80.59 KiB | 982.00 KiB/s, done.\nResolving deltas: 100% (85/85), completed with 45 local objects.\nFrom github.com:jiminny/app\n 02a33811ee..c6ce5e2440 JY-20676-delete-report-related-objects -> origin/JY-20676-delete-report-related-objects\n 7ce96cb5fe..6c59f04358 JY-20808-low-priority-indexing-queue -> origin/JY-20808-low-priority-indexing-queue\n 3906a9238a..2b5e6ea62b JY-20835-mcp-enable-users-to-get-a-list-of-deals-and-their-details -> origin/JY-20835-mcp-enable-users-to-get-a-list-of-deals-and-their-details\n 5604af40cf..ea3519f0e2 master -> origin/master\n * [new branch] switch-eu-assembly -> origin/switch-eu-assembly\nUpdating 02a33811ee..c6ce5e2440\nFast-forward\n app/Component/ES/ElasticSearchDocumentPartialUpdater.php | 48 ---\n app/Component/ParticipantSpeech/Services/ParticipantAttributionService.php | 4 +-\n app/Component/Settings/AutoScoring/Services/UpdateAutoScoreService.php | 20 +-\n app/Component/Transcription/Service/StorageService.php | 8 +-\n front-end/package.json | 2 +-\n front-end/src/components/DealInsights/Modals/AskAnythingModal.vue | 23 ++\n front-end/src/components/shared/AskAnything/AskAnythingPromptFormItem.vue | 2 +\n front-end/src/components/shared/AskAnything/AskAnythingSettingsDrawer.vue | 23 +-\n front-end/src/components/shared/AskAnything/__mocks__/AskAnythingSettingsDrawer.mocks.js | 1 +\n front-end/src/components/shared/AskAnything/__tests__/AskAnythingSettingsDrawer.spec.js | 135 ++++---\n front-end/src/components/shared/AskAnything/__tests__/__snapshots__/AskAnythingSettingsDrawer.spec.js.html | 1235 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++\n front-end/src/components/shared/AskAnything/__tests__/__snapshots__/AskAnythingSettingsDrawer.spec.js.snap | 1382 ----------------------------------------------------------------\n front-end/src/components/shared/AskAnything/prompts.js | 1 +\n front-end/src/components/shared/AskAnything/useAskAnything.js | 1 +\n front-end/yarn.lock | 8 +-\n tests/Unit/Component/ES/ElasticSearchDocumentPartialUpdaterTest.php | 42 --\n tests/Unit/Component/Settings/AutoScoring/Services/UpdateAutoScoreServiceTest.php | 86 ++--\n tests/Unit/Component/Transcription/Service/StorageServiceTest.php | 29 +-\n 18 files changed, 1448 insertions(+), 1602 deletions(-)\n delete mode 100644 app/Component/ES/ElasticSearchDocumentPartialUpdater.php\n create mode 100644 front-end/src/components/shared/AskAnything/__tests__/__snapshots__/AskAnythingSettingsDrawer.spec.js.html\n delete mode 100644 front-end/src/components/shared/AskAnything/__tests__/__snapshots__/AskAnythingSettingsDrawer.spec.js.snap\n delete mode 100644 tests/Unit/Component/ES/ElasticSearchDocumentPartialUpdaterTest.php\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20676-delete-report-related-objects) $ csfix\ndocker exec -it docker_lamp_1 ./vendor/bin/php-cs-fixer fix --config=.php-cs-fixer.dist.php -v --using-cache=no --diff \nPHP CS Fixer 3.87.1 Alexander by Fabien Potencier, Dariusz Ruminski and contributors.\nPHP runtime: 8.3.30\nRunning analysis on 7 cores with 10 files per process.\nParallel runner is an experimental feature and may be unstable, use it at your own risk. Feedback highly appreciated!\nLoaded config default from \".php-cs-fixer.dist.php\".\n 5688/5688 [▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓] 100%\n\n\nFixed 0 of 5688 files in 79.904 seconds, 60.00 MB memory used\n\nWhat's next:\n Try Docker Debug for seamless, persistent debugging tools in any container or image → docker debug docker_lamp_1\n Learn more at https://docs.docker.com/go/debug-cli/\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20676-delete-report-related-objects) $","depth":4,"on_screen":true,"value":"Last login: Mon May 18 09:17:28 on ttys007\n\nPoetry could not find a pyproject.toml file in /Users/lukas/jiminny/app or its parents\n\nPoetry could not find a pyproject.toml file in /Users/lukas/jiminny/app or its parents\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (pipedrive-sdk-poc) $ co master\nerror: Your local changes to the following files would be overwritten by checkout:\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tPIPEDRIVE_V2_MIGRATION_TICKETS.md\nPlease commit your changes or stash them before you switch branches.\nAborting\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (pipedrive-sdk-poc) $ git pull\nremote: Enumerating objects: 1047, done.\nremote: Counting objects: 100% (832/832), done.\nremote: Compressing objects: 100% (298/298), done.\nremote: Total 1047 (delta 634), reused 596 (delta 534), pack-reused 215 (from 3)\nReceiving objects: 100% (1047/1047), 353.16 KiB | 1.56 MiB/s, done.\nResolving deltas: 100% (687/687), completed with 107 local objects.\nFrom github.com:jiminny/app\n 907c54896c..34656c53ed pipedrive-sdk-poc -> origin/pipedrive-sdk-poc\n 03325ec50f..4e7078fd8b JY-18091-upgrade-to-php-8-5 -> origin/JY-18091-upgrade-to-php-8-5\n e7d231e163..bc6a3fce6b JY-20725-handle-HS-search-rate-limit -> origin/JY-20725-handle-HS-search-rate-limit\n * [new branch] JY-20749-user-can-view-recorded-meetings -> origin/JY-20749-user-can-view-recorded-meetings\n 98ca281a04..e0351be069 JY-20808-low-priority-indexing-queue -> origin/JY-20808-low-priority-indexing-queue\n 569abb5149..3906a9238a JY-20835-mcp-enable-users-to-get-a-list-of-deals-and-their-details -> origin/JY-20835-mcp-enable-users-to-get-a-list-of-deals-and-their-details\n ad6c2a86e8..50eb6afba9 JY-20846-mcp-enable-the-ai-to-know-details-about-the-user -> origin/JY-20846-mcp-enable-the-ai-to-know-details-about-the-user\n * [new branch] JY-20893-chunk-control-per-update-target -> origin/JY-20893-chunk-control-per-update-target\n 31c62924a5..cb4ebf0c36 master -> origin/master\nUpdating 907c54896c..34656c53ed\nFast-forward\n PIPEDRIVE_V2_MIGRATION_TICKETS.md | 52 ++++++++++++++++++++++++++++++++++++++++++++++++++++\n 1 file changed, 52 insertions(+)\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (pipedrive-sdk-poc) $ co master\nM\u0000\u0000\u0000\u0000\u0000\u0000\t.env.local\nM\u0000\u0000\u0000\u0000\u0000\u0000\tconfig/logging.php\nSwitched to branch 'master'\nYour branch is behind 'origin/master' by 31 commits, and can be fast-forwarded.\n (use \"git pull\" to update your local branch)\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (master) $ git pull\nUpdating 31c62924a5..cb4ebf0c36\nFast-forward\n app/Component/ES/Processor/Traits/SelectEntityListTrait.php | 20 ------\n app/Services/Calendar/CalendarActivityService.php | 46 +++++++++++++\n app/Services/Calendar/Command/MapActivityData.php | 106 +++-------------------------\n docs/mcp/explorer/explorer.html | 104 +++++++++++++++++++++++++---\n docs/mcp/explorer/explorer.template.html | 102 ++++++++++++++++++++++++---\n docs/mcp/tools-list.json | 373 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++-------\n docs/mcp/tools.md | 117 +++++++++++++++++++++++--------\n tests/Unit/Component/ES/AsyncUpdateElasticSearchTest.php | 16 +----\n tests/Unit/Component/ES/Listeners/UpdateMultipleTargetsListenerTest.php | 10 ---\n tests/Unit/Component/ES/Listeners/UpdateSingleTargetListenerTest.php | 6 --\n tests/Unit/Component/ES/Processor/TargetEntitiesSelectorTest.php | 9 ---\n tests/Unit/Component/ES/Processor/Traits/SelectEntityListTraitTest.php | 15 ++--\n tests/Unit/Component/ES/UpdateProcessManagerTest.php | 2 -\n tests/Unit/Services/Calendar/CalendarActivityServiceTest.php | 150 ++++++++++++++++++++++++++++++++++++++--\n tests/Unit/Services/Calendar/Command/MapActivityDataTest.php | 78 ++-------------------\n 15 files changed, 832 insertions(+), 322 deletions(-)\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (master) $ co -b JY-20613-allow-owner-role-on-team-setup\nSwitched to a new branch 'JY-20613-allow-owner-role-on-team-setup'\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20613-allow-owner-role-on-team-setup) $ csfix\ndocker exec -it docker_lamp_1 ./vendor/bin/php-cs-fixer fix --config=.php-cs-fixer.dist.php -v --using-cache=no --diff \nPHP CS Fixer 3.87.1 Alexander by Fabien Potencier, Dariusz Ruminski and contributors.\nPHP runtime: 8.3.30\nRunning analysis on 7 cores with 10 files per process.\nParallel runner is an experimental feature and may be unstable, use it at your own risk. Feedback highly appreciated!\nLoaded config default from \".php-cs-fixer.dist.php\".\n 5682/5682 [▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓] 100%\n\n\nFixed 0 of 5682 files in 56.978 seconds, 67.00 MB memory used\n\nWhat's next:\n Try Docker Debug for seamless, persistent debugging tools in any container or image → docker debug docker_lamp_1\n Learn more at https://docs.docker.com/go/debug-cli/\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20613-allow-owner-role-on-team-setup) $ ;xd\ndocker exec -it docker_lamp_1 bash -c \"mv /usr/local/etc/php/conf.d/xdebug.ini ~/xdebug.ini\"\n\nWhat's next:\n Try Docker Debug for seamless, persistent debugging tools in any container or image → docker debug docker_lamp_1\n Learn more at https://docs.docker.com/go/debug-cli/\ndocker exec -it docker_lamp_1 supervisorctl restart all\njiminny-worker-processing-2:jiminny-worker-processing-2_00: stopped\njiminny-worker-processing-3:jiminny-worker-processing-3_00: stopped\njiminny-worker-processing-4:jiminny-worker-processing-4_00: stopped\njiminny-worker-processing-5:jiminny-worker-processing-5_00: stopped\njiminny-worker-processing-delayed:jiminny-worker-processing-delayed_00: stopped\nworker-analytics:worker-analytics_00: stopped\nworker-crm-update:worker-crm-update_00: stopped\nworker-download:worker-download_00: stopped\nworker-nudges:worker-nudges_00: stopped\nartisan-schedule:artisan-schedule_00: stopped\nworker-emails:worker-emails_00: stopped\nworker-calendar:worker-calendar_00: stopped\nworker:worker_00: stopped\nworker-conferences:worker-conferences_00: stopped\nworker-crm-sync:worker-crm-sync_00: stopped\njiminny-worker-processing-1:jiminny-worker-processing-1_00: stopped\nworker-audio:worker-audio_00: stopped\nworker-es-update:worker-es-update_00: stopped\nartisan-schedule:artisan-schedule_00: started\njiminny-worker-processing-1:jiminny-worker-processing-1_00: started\njiminny-worker-processing-2:jiminny-worker-processing-2_00: started\njiminny-worker-processing-3:jiminny-worker-processing-3_00: started\njiminny-worker-processing-4:jiminny-worker-processing-4_00: started\njiminny-worker-processing-5:jiminny-worker-processing-5_00: started\njiminny-worker-processing-delayed:jiminny-worker-processing-delayed_00: started\nworker:worker_00: started\nworker-analytics:worker-analytics_00: started\nworker-audio:worker-audio_00: started\nworker-calendar:worker-calendar_00: started\nworker-conferences:worker-conferences_00: started\nworker-crm-sync:worker-crm-sync_00: started\nworker-crm-update:worker-crm-update_00: started\nworker-download:worker-download_00: started\nworker-emails:worker-emails_00: started\nworker-es-update:worker-es-update_00: started\nworker-nudges:worker-nudges_00: started\n\nWhat's next:\n Try Docker Debug for seamless, persistent debugging tools in any container or image → docker debug docker_lamp_1\n Learn more at https://docs.docker.com/go/debug-cli/\ndocker exec -it docker_lamp_1 php -v\nPHP 8.3.30 (cli) (built: Mar 16 2026 22:32:32) (NTS)\nCopyright (c) The PHP Group\nZend Engine v4.3.30, Copyright (c) Zend Technologies\n with Zend OPcache v8.3.30, Copyright (c), by Zend Technologies\n\nWhat's next:\n Try Docker Debug for seamless, persistent debugging tools in any container or image → docker debug docker_lamp_1\n Learn more at https://docs.docker.com/go/debug-cli/\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20613-allow-owner-role-on-team-setup) $ csfix\ndocker exec -it docker_lamp_1 ./vendor/bin/php-cs-fixer fix --config=.php-cs-fixer.dist.php -v --using-cache=no --diff \nPHP CS Fixer 3.87.1 Alexander by Fabien Potencier, Dariusz Ruminski and contributors.\nPHP runtime: 8.3.30\nRunning analysis on 7 cores with 10 files per process.\nParallel runner is an experimental feature and may be unstable, use it at your own risk. Feedback highly appreciated!\nLoaded config default from \".php-cs-fixer.dist.php\".\n 5682/5682 [▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓] 100%\n\n\nFixed 0 of 5682 files in 49.910 seconds, 60.00 MB memory used\n\nWhat's next:\n Try Docker Debug for seamless, persistent debugging tools in any container or image → docker debug docker_lamp_1\n Learn more at https://docs.docker.com/go/debug-cli/\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20613-allow-owner-role-on-team-setup) $ git status\nOn branch JY-20613-allow-owner-role-on-team-setup\nYour branch is ahead of 'origin/JY-20613-allow-owner-role-on-team-setup' by 1 commit.\n (use \"git push\" to publish your local commits)\n\nChanges not staged for commit:\n (use \"git add <file>...\" to update what will be committed)\n (use \"git restore <file>...\" to discard changes in working directory)\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tmodified: .env.local\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tmodified: config/logging.php\n\nUntracked files:\n (use \"git add <file>...\" to include in what will be committed)\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\t.env.nikilocal\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\t.env.other\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tWEBHOOK_FILTERING_IMPLEMENTATION.md\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tapp/Console/Commands/Crm/Hubspot/SimulateWebhooksCommand.php\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tapp/Console/Commands/Reports/CreateMockAskJiminnyReportResultCommand.php\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tids.txt\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tpublic/favicon.ico\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\traw_sql_query.sql\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\ttests/Unit/Policies/CanAccessAiReportsTest.php\n\nno changes added to commit (use \"git add\" and/or \"git commit -a\")\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20613-allow-owner-role-on-team-setup) $ git pull\nremote: Enumerating objects: 248, done.\nremote: Counting objects: 100% (128/128), done.\nremote: Compressing objects: 100% (23/23), done.\nremote: Total 59 (delta 43), reused 44 (delta 33), pack-reused 0 (from 0)\nUnpacking objects: 100% (59/59), 10.48 KiB | 228.00 KiB/s, done.\nFrom github.com:jiminny/app\n b7df560451..190239dfd4 JY-20613-allow-owner-role-on-team-setup -> origin/JY-20613-allow-owner-role-on-team-setup\n e0351be069..d94a285ae7 JY-20808-low-priority-indexing-queue -> origin/JY-20808-low-priority-indexing-queue\n * [new branch] JY-20920-fix-participant-matcher -> origin/JY-20920-fix-participant-matcher\n cb4ebf0c36..90bca4e4b2 master -> origin/master\nMerge made by the 'ort' strategy.\n app/Component/ES/ChunkSize.php | 54 +++++++++++++++++++++++++++\n app/Component/ES/Processor/DTOs/SelectionList.php | 4 +-\n app/Component/ES/Processor/TargetEntitiesSelector.php | 19 ++++++----\n app/Http/Middleware/McpTierMiddleware.php | 27 +++-----------\n app/Mcp/Servers/JiminnyServer.php | 2 +\n app/Mcp/Tools/GetMeTool.php | 157 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++\n app/Models/Feature/FeatureEnum.php | 1 +\n database/migrations/2026_05_13_124153_create_mcp_feature_flag.php | 25 +++++++++++++\n front-end/src/components/Settings/Kiosk/modals/EditTeamModal/EditTeamModal.vue | 52 ++++++++++++++++++--------\n front-end/src/components/Settings/Kiosk/modals/EditTeamModal/__tests__/EditTeamModal.spec.js | 14 +++++++\n tests/Feature/Mcp/GetMeToolFeatureTest.php | 140 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++\n tests/Feature/Mcp/ListCallsToolFeatureTest.php | 2 +-\n tests/Feature/Mcp/McpTestHelpersTrait.php | 19 +++++++++-\n tests/Unit/Component/ES/ChunkSizeTest.php | 50 +++++++++++++++++++++++++\n tests/Unit/Component/ES/Processor/DTOs/SelectionListTest.php | 27 ++++++++++----\n tests/Unit/Component/ES/Processor/TargetEntitiesSelectorTest.php | 39 +++++++++++---------\n 16 files changed, 557 insertions(+), 75 deletions(-)\n create mode 100644 app/Component/ES/ChunkSize.php\n create mode 100644 app/Mcp/Tools/GetMeTool.php\n create mode 100644 database/migrations/2026_05_13_124153_create_mcp_feature_flag.php\n create mode 100644 tests/Feature/Mcp/GetMeToolFeatureTest.php\n create mode 100644 tests/Unit/Component/ES/ChunkSizeTest.php\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20613-allow-owner-role-on-team-setup) $ git push\nEnumerating objects: 40, done.\nCounting objects: 100% (34/34), done.\nDelta compression using up to 8 threads\nCompressing objects: 100% (18/18), done.\nWriting objects: 100% (18/18), 1.58 KiB | 1.58 MiB/s, done.\nTotal 18 (delta 15), reused 0 (delta 0), pack-reused 0\nremote: Resolving deltas: 100% (15/15), completed with 13 local objects.\nTo github.com:jiminny/app.git\n 190239dfd4..ec1b261264 JY-20613-allow-owner-role-on-team-setup -> JY-20613-allow-owner-role-on-team-setup\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20613-allow-owner-role-on-team-setup) $ gbr\n* JY-20613-allow-owner-role-on-team-setup\n pipedrive-sdk-poc\n master\n JY-20903-update_activity-stage-on-opportunity-change\n JY-20904-fix-update-es-on-activity-command\n JY-20891-improve-sms-text-relays\n JY-20725-handle-HS-search-rate-limit\n JY-20818-move-AJ-reports-to-separated-datadog-metric\n JY-20773-fix-automated-reports-user-pilot-tracking\n JY-20157-AJ-report-not-send-notification\n JY-20508-notify-before-AJ-report-expiration\n JY-20372-ai-reports-promotion-pages\n JY-20352-sync-opportunities-without-a-local-owner-user-id-is-null\n JY-20738-debug-AJ-tracking-UP\n a\n JY-18909-automated-reports-ask-jiminny\n JY-20692-fix-integration-app-token-auth-response-change\n JY-20553-debug-crm-sync-delays\n JY-20698-fix-SF-activity-types-on-new-playbook\n JY-20543-AJ-report-tracking\n JY-20384-handle-auto-sync-with-no-access-to-event-type\n JY-20458-ask-jiminny-user-definitions\n JY-19666-fix-import-contacts-account-association\n JY-19666-HS-import-contacts-and-accounts-batch-job\n JY-20458-Ask-Jiminny-Reports\n JY-20200-batch-update-CRM-objects-Salesforce\n JY-19666-HS-webhooks-add-contact-and-company\n JY-20348-trigger-setup-DI-layout-on-team-creation\n JY-20326-refactor-info-message-in-command\n JY-20317-fix-auto-log-delay-issue-on-all-channels-disabled\n JY-20312-remove-on-update-change-last-synced-at-crm-configurations\n JY-20306-SF-skip-auto-sync-for-task-based-playbook\n JY-20192-remove-deleted-team-from-saved-search-filters\n JY-20197-import-opportunity-batch-job\n JY-20293-enable-status-field-for-pipedrive-deals\n JY-20191-remove-commands-interactive-prompts\n JY-20118-change-default-sync-strategy\n JY-20183-add-cache-on-auto-log-delay\n JY-20197-add-import-opportunity-batch-job\n 20118-hs-opportunity-make-webhook-strategy-default\n JY-20118-make-default-hs-opportunity-sync-strategy-webhook-based\n JY-20196-handle-opportunity-without-note\n JY-20118-improve-opportunity-import\n JY-20189-handle-activity-search-on-deleted-groups\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20613-allow-owner-role-on-team-setup) $ co JY-20725-handle-HS-search-rate-limit\nM\u0000\u0000\u0000\u0000\u0000\u0000\t.env.local\nM\u0000\u0000\u0000\u0000\u0000\u0000\tconfig/logging.php\nSwitched to branch 'JY-20725-handle-HS-search-rate-limit'\nYour branch is behind 'origin/JY-20725-handle-HS-search-rate-limit' by 439 commits, and can be fast-forwarded.\n (use \"git pull\" to update your local branch)\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20725-handle-HS-search-rate-limit) $ git pull\nUpdating 0f3e438941..bc6a3fce6b\nFast-forward\n .gitignore | 3 +-\n .windsurfrules | 168 ++---\n CLAUDE.md | 1 +\n app/Component/ActivityAnalytics/Service/CalculateTalkTimeOffsetsFromTranscription.php | 24 +-\n app/Component/AiActivityType/Services/AiActivityTypeEligibilityChecker.php | 28 +-\n app/Component/AiAutomation/Actions/PrepareUpdateDtoAction.php | 32 +-\n app/Component/AiAutomation/Services/CrmFillingEligibilityChecker.php | 47 ++\n app/Component/AiAutomation/TestCrmAiPromptService.php | 14 +\n app/Component/AiCallScoring/Services/AiCallScoringEligibilityChecker.php | 9 +\n app/Component/ES/ElasticSearchDocumentPartialUpdater.php | 13 +-\n app/Component/ES/ElasticSearchWorkerManager.php | 86 ---\n app/Component/ES/Processor/Actions/LoadDocumentsAction.php | 80 +--\n app/Component/ES/Processor/EntityQueryBuilder.php | 12 +-\n app/Component/ES/Processor/TargetEntitiesSelector.php | 2 +-\n app/Component/ES/Processor/Traits/SkipActivityTrait.php | 25 -\n app/Component/ES/Repositories/EsResetActivityRepository.php | 11 +-\n app/Component/ES/Worker/ActivityWorker.php | 73 --\n app/Component/ES/Worker/EntityWorker.php | 44 --\n app/Component/ES/Worker/WorkerAmount.php | 60 --\n app/Component/ES/Worker/WorkerInterface.php | 15 -\n app/Component/ElasticSearch/Contract/Searchable.php | 4 +\n app/Component/Encoding/Job/AnalyzeTrackChannelsJob.php | 20 +-\n app/Component/Encoding/Service/GenerateSpeechFromSilenceService.php | 85 ++-\n app/Component/FFMpeg/Services/GetSpeechIntervalsService.php | 18 +-\n app/Component/LanguageDetection/Services/FindSpeechTimeService.php | 22 +-\n app/Component/Nudge/Job/ProcessOrganisationImmediateNudgesJob.php | 218 +++++-\n app/Component/ParagraphBreaker/Services/TranscriptionParagraphsService.php | 4 +\n app/Component/ParticipantSpeech/Services/ParticipantSpeechesCreator.php | 33 +\n app/Component/ParticipantSpeech/Services/ParticipantSpeechesDeleter.php | 15 +\n app/Component/ParticipantSpeech/Services/ParticipantSpeechesProvider.php | 51 +-\n app/Component/ParticipantSpeech/Services/ParticipantSpeechesUploader.php | 36 +\n app/Component/ProphetAi/Exceptions/InsufficientTranscriptException.php | 11 +\n app/Component/Transcription/DTO/Http/Transcription/AssemblyAI/AssemblyAI/NoAssemblyIdException.php | 11 +\n app/Component/Transcription/DTO/Http/Transcription/AssemblyAI/AssemblyAI/SuccessfulResponse.php | 6 +\n app/Component/Transcription/DTO/Http/Transcription/TranscriptionIsNotCorrectFormatException.php | 11 +\n app/Component/Transcription/Diarization/Services/GetNormalizedParticipantSpeechesService.php | 23 +-\n app/Component/Transcription/Diarization/Source/MeetingBotSource.php | 16 +-\n app/Component/Transcription/TranscriptionProcessor/TranscriptionProcessor.php | 3 +\n app/Console/Commands/Activities/ActivityHardDeleteCommand.php | 4 +-\n app/Console/Commands/Activities/Copy.php | 2 +\n app/Console/Commands/Activities/SetupIntegration/TwilioSetS3RecordingCredentialsCommand.php | 119 ++++\n app/Console/Commands/Activities/UpdateActivityElasticSearchDocumentCommand.php | 10 +-\n app/Console/Commands/Crm/BackfillOpportunityUserFromAccountCommand.php | 126 ++++\n app/Console/Commands/Elasticsearch/AsyncUpdateEsActivities.php | 19 -\n app/Console/Commands/Elasticsearch/AsyncUpdateEsEntities.php | 50 +-\n app/Console/Commands/Elasticsearch/ResetAsyncElasticSearchCommand.php | 30 +-\n app/Console/Commands/GeckoExport/GeckoExportParticipantSpeechesCommand.php | 14 +-\n app/Console/Commands/IssueMcpTokenCommand.php | 84 +++\n app/Console/Commands/JiminnyDebugCommand.php | 7 +-\n app/Console/Commands/Tracks/CleanupActivityTracksCommand.php | 2 +-\n app/Console/Kernel.php | 6 +-\n app/Contracts/Services/Calendar/CalendarTrait.php | 80 ++-\n app/Events/AutomatedReports/AutomatedReportGenerated.php | 3 +\n app/Http/Controllers/API/AiCallScoring/AiScorecardController.php | 7 +-\n app/Http/Controllers/API/TeamAiAutomationController.php | 8 +\n app/Http/Controllers/CustomerApi/CustomerApiController.php | 4 +-\n app/Http/Controllers/Kiosk/ActivityController.php | 58 +-\n app/Http/Controllers/Settings/PlaybookController.php | 15 +-\n app/Http/Kernel.php | 23 +\n app/Http/Middleware/McpAuditMiddleware.php | 156 ++++\n app/Http/Middleware/McpTierMiddleware.php | 54 ++\n app/Http/Requests/API/V2/ZapierUploadActivityRequest.php | 28 +-\n app/Jobs/Activity/Import/ImportTwilioVideoSpeechesJob.php | 25 +-\n app/Jobs/Activity/Import/IsActivityReadyForProcessingJob.php | 10 +-\n app/Jobs/Calendar/SetupCalendarSync.php | 21 +-\n app/Jobs/ImportRemoteTrackJob.php | 96 ++-\n app/Jobs/Mailbox/EmailTextRelay.php | 15 +-\n app/Mcp/Contracts/McpCallRepositoryInterface.php | 30 +\n app/Mcp/DTO/ListCallsFilters.php | 29 +\n app/Mcp/Errors/McpError.php | 123 ++++\n app/Mcp/Repositories/McpActivityHydrator.php | 145 ++++\n app/Mcp/Repositories/McpCallRepository.php | 84 +++\n app/Mcp/Repositories/McpElasticCallRepository.php | 171 +++++\n app/Mcp/Servers/JiminnyServer.php | 38 +\n app/Mcp/Tools/ListCallsTool.php | 205 ++++++\n app/Models/Activity.php | 10 +-\n app/Models/Activity/Transcription.php | 17 +-\n app/Models/ElasticSearch/OpportunityElasticSearchTrait.php | 5 +\n app/Models/Participant.php | 1 +\n app/Providers/AppServiceProvider.php | 22 +\n app/Repositories/Crm/ContactRepository.php | 69 +-\n app/Repositories/ParticipantSpeechRepository.php | 13 +-\n app/Services/Activity/ParticipantsService.php | 19 +-\n app/Services/Activity/Twilio/S3RecordingCredentialsService.php | 82 +++\n app/Services/ActivityService.php | 21 +-\n app/Services/Calendar/CalendarActivityService.php | 46 ++\n app/Services/Calendar/Command/ImportParticipants.php | 1 +\n app/Services/Calendar/Command/MapActivityData.php | 106 +--\n app/Services/Calendar/GoogleCalendarService.php | 12 +-\n app/Services/Crm/Close/Processor/OpportunityProcessor.php | 2 +-\n app/Services/Crm/Close/Service.php | 22 +-\n app/Services/Crm/Copper/Service.php | 12 +-\n app/Services/Crm/Hubspot/Service.php | 154 +++-\n app/Services/Crm/Hubspot/ServiceTraits/OpportunitySyncTrait.php | 88 ++-\n app/Services/Crm/IntegrationApp/ServiceTraits/SyncCrmEntitiesTrait.php | 22 +-\n app/Services/Crm/Pipedrive/Service.php | 17 +-\n app/Services/Crm/Salesforce/Service.php | 42 +-\n app/Services/Mail/Office/EmailApiClient.php | 129 +---\n app/Services/RecallAI/Commands/ScheduleBotCommand.php | 39 +-\n app/Services/RecallAI/RecallAIService.php | 22 +-\n composer.json | 3 +-\n composer.lock | 87 ++-\n config/mcp.php | 23 +\n database/migrations/2026_04_30_120000_create_mcp_audit_log_table.php | 36 +\n docs/mcp/explorer/explorer.html | 697 ++++++++++++++++++\n docs/mcp/explorer/explorer.template.html | 697 ++++++++++++++++++\n docs/mcp/explorer/generate.js | 215 ++++++\n docs/mcp/explorer/tool-explorer-meta.json | 11 +\n docs/mcp/tools-list.json | 2536 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++\n docs/mcp/tools.md | 621 ++++++++++++++++\n front-end/package.json | 4 +-\n front-end/src/components/Settings/OrgSettings/AiAutomation/CrmFilling/TemplateFieldForm.vue | 28 +-\n front-end/src/components/Settings/OrgSettings/Playbooks/AddEditPlaybook.vue | 10 +\n front-end/src/components/playback/comments/ActivityComment.less | 10 +-\n front-end/src/components/shared/PromptTester/PromptTester.vue | 12 +-\n front-end/src/components/shared/__tests__/PromptTester.spec.js | 35 +\n front-end/src/components/shared/modals/EntityPickerModal/__tests__/useEntitiesCache.spec.ts | 37 +\n front-end/src/components/shared/modals/EntityPickerModal/useEntitiesCache.ts | 9 +\n front-end/yarn.lock | 16 +-\n phpstan-baseline.neon | 50 --\n routes/api.php | 11 +\n sonar-project.properties | 91 ++-\n tests/Feature/Component/Nudge/ProcessOrganisationImmediateNudgesJobTest.php | 534 ++++++++++++++\n tests/Feature/Jobs/ImportRemoteTrackJobTest.php | 283 +++++++-\n tests/Feature/Mcp/IssueMcpTokenCommandTest.php | 53 ++\n tests/Feature/Mcp/ListCallsToolElasticFeatureTest.php | 155 ++++\n tests/Feature/Mcp/ListCallsToolFeatureTest.php | 352 ++++++++++\n tests/Feature/Mcp/McpTestHelpersTrait.php | 77 ++\n tests/Feature/Services/Team/TeamDeleteHandlers/Retention/RetentionRepositoryHandlerTest.php | 1 +\n tests/Stubs/SentryStub.php | 18 +\n tests/Unit/Component/ActivityAnalytics/Service/CalculateTalkTimeOffsetFromTranscriptionTest.php | 28 +-\n tests/Unit/Component/AiActivityType/Services/AiActivityTypeEligibilityCheckerTest.php | 103 ++-\n tests/Unit/Component/AiAutomation/Actions/PrepareUpdateDtoActionTest.php | 91 +++\n tests/Unit/Component/AiAutomation/Services/CrmFillingEligibilityCheckerTest.php | 124 ++++\n tests/Unit/Component/AiAutomation/TestCrmAiPromptServiceTest.php | 67 +-\n tests/Unit/Component/AiCallScoring/Services/AiCallScoringEligibilityCheckerTest.php | 55 ++\n tests/Unit/Component/ES/ElasticSearchWorkerManagerTest.php | 135 ----\n tests/Unit/Component/ES/Processor/Actions/LoadDocumentsActionTest.php | 220 ++++++\n tests/Unit/Component/ES/Processor/EntityQueryBuilderTest.php | 21 +-\n tests/Unit/Component/ES/Processor/Traits/SkipActivityTraitTest.php | 51 --\n tests/Unit/Component/ES/Worker/ActivityWorkerTest.php | 174 -----\n tests/Unit/Component/ES/Worker/EntityWorkerTest.php | 97 ---\n tests/Unit/Component/ES/Worker/WorkerAmountTest.php | 116 ---\n tests/Unit/Component/Encoding/Job/AnalyzeTrackChannelsJobTest.php | 52 +-\n tests/Unit/Component/Encoding/Service/GenerateSpeechFromSilenceServiceTest.php | 171 ++---\n tests/Unit/Component/FFMpeg/Services/GetSpeechIntervalsTest.php | 36 +-\n tests/Unit/Component/LanguageDetection/Services/FindSpeechTimeServiceTest.php | 20 +-\n tests/Unit/Component/MobileSettings/MobileSettingsControllerTest.php | 5 +-\n tests/Unit/Component/ParticipantSpeech/Services/ParticipantSpeechesCreatorTest.php | 75 ++\n tests/Unit/Component/ParticipantSpeech/Services/ParticipantSpeechesDeleterTest.php | 63 ++\n tests/Unit/Component/ParticipantSpeech/Services/ParticipantSpeechesProviderTest.php | 134 ++++\n tests/Unit/Component/ParticipantSpeech/Services/ParticipantSpeechesUploaderTest.php | 57 ++\n tests/Unit/Component/Transcription/Diarization/Services/GetNormalizedParticipantSpeechesServiceTest.php | 51 +-\n tests/Unit/Component/Transcription/Diarization/Source/MeetingBotSourceTest.php | 29 +-\n tests/Unit/Contracts/Services/Calendar/CalendarTraitTest.php | 58 +-\n tests/Unit/Http/Controllers/Kiosk/ActivityControllerTest.php | 159 +++++\n tests/Unit/Jobs/Activity/Import/ImportTwilioVideoSpeechesJobTest.php | 22 +-\n tests/Unit/Jobs/Activity/Import/IsActivityReadyForProcessingJobTest.php | 26 +-\n tests/Unit/Jobs/Calendar/SetupCalendarSyncTest.php | 25 -\n tests/Unit/Services/Activity/ParticipantsServiceTest.php | 12 +-\n tests/Unit/Services/Activity/Twilio/S3RecordingCredentialsServiceTest.php | 180 +++++\n tests/Unit/Services/ActivityServiceTest.php | 132 ++++\n tests/Unit/Services/Calendar/CalendarActivityServiceTest.php | 150 +++-\n tests/Unit/Services/Calendar/Command/ImportParticipantsTest.php | 6 +-\n tests/Unit/Services/Calendar/Command/MapActivityDataTest.php | 78 +-\n tests/Unit/Services/Calendar/GoogleCalendarServiceTest.php | 116 +++\n tests/Unit/Services/Crm/Close/ServiceTest.php | 165 +++++\n tests/Unit/Services/Crm/Hubspot/ServiceTest.php | 272 ++++++-\n tests/Unit/Services/Crm/Hubspot/ServiceTraits/OpportunitySyncTest.php | 25 +-\n tests/Unit/Services/Crm/Hubspot/ServiceTraits/OpportunitySyncTraitMatchActivitiesTest.php | 3 +-\n tests/Unit/Services/Crm/IntegrationApp/ServiceTraits/SyncCrmEntitiesTraitOpportunitiesTest.php | 40 ++\n tests/Unit/Services/Crm/Pipedrive/ImportOpportunityMatchActivitiesTest.php | 2 +\n tests/Unit/Services/Crm/Salesforce/ServiceTest.php | 139 ++++\n tests/Unit/Services/Mail/Office/EmailApiClientTest.php | 195 ++---\n tests/Unit/Services/RecallAI/RecallAIServiceTest.php | 24 +-\n 175 files changed, 12562 insertions(+), 2162 deletions(-)\n create mode 120000 CLAUDE.md\n create mode 100644 app/Component/AiAutomation/Services/CrmFillingEligibilityChecker.php\n delete mode 100644 app/Component/ES/ElasticSearchWorkerManager.php\n delete mode 100644 app/Component/ES/Processor/Traits/SkipActivityTrait.php\n delete mode 100644 app/Component/ES/Worker/ActivityWorker.php\n delete mode 100644 app/Component/ES/Worker/EntityWorker.php\n delete mode 100644 app/Component/ES/Worker/WorkerAmount.php\n delete mode 100644 app/Component/ES/Worker/WorkerInterface.php\n create mode 100644 app/Component/ProphetAi/Exceptions/InsufficientTranscriptException.php\n create mode 100644 app/Component/Transcription/DTO/Http/Transcription/AssemblyAI/AssemblyAI/NoAssemblyIdException.php\n create mode 100644 app/Component/Transcription/DTO/Http/Transcription/TranscriptionIsNotCorrectFormatException.php\n create mode 100644 app/Console/Commands/Activities/SetupIntegration/TwilioSetS3RecordingCredentialsCommand.php\n create mode 100644 app/Console/Commands/Crm/BackfillOpportunityUserFromAccountCommand.php\n delete mode 100644 app/Console/Commands/Elasticsearch/AsyncUpdateEsActivities.php\n create mode 100644 app/Console/Commands/IssueMcpTokenCommand.php\n create mode 100644 app/Http/Middleware/McpAuditMiddleware.php\n create mode 100644 app/Http/Middleware/McpTierMiddleware.php\n create mode 100644 app/Mcp/Contracts/McpCallRepositoryInterface.php\n create mode 100644 app/Mcp/DTO/ListCallsFilters.php\n create mode 100644 app/Mcp/Errors/McpError.php\n create mode 100644 app/Mcp/Repositories/McpActivityHydrator.php\n create mode 100644 app/Mcp/Repositories/McpCallRepository.php\n create mode 100644 app/Mcp/Repositories/McpElasticCallRepository.php\n create mode 100644 app/Mcp/Servers/JiminnyServer.php\n create mode 100644 app/Mcp/Tools/ListCallsTool.php\n create mode 100644 app/Services/Activity/Twilio/S3RecordingCredentialsService.php\n create mode 100644 config/mcp.php\n create mode 100644 database/migrations/2026_04_30_120000_create_mcp_audit_log_table.php\n create mode 100644 docs/mcp/explorer/explorer.html\n create mode 100644 docs/mcp/explorer/explorer.template.html\n create mode 100644 docs/mcp/explorer/generate.js\n create mode 100644 docs/mcp/explorer/tool-explorer-meta.json\n create mode 100644 docs/mcp/tools-list.json\n create mode 100644 docs/mcp/tools.md\n create mode 100644 front-end/src/components/shared/modals/EntityPickerModal/__tests__/useEntitiesCache.spec.ts\n create mode 100644 tests/Feature/Component/Nudge/ProcessOrganisationImmediateNudgesJobTest.php\n create mode 100644 tests/Feature/Mcp/IssueMcpTokenCommandTest.php\n create mode 100644 tests/Feature/Mcp/ListCallsToolElasticFeatureTest.php\n create mode 100644 tests/Feature/Mcp/ListCallsToolFeatureTest.php\n create mode 100644 tests/Feature/Mcp/McpTestHelpersTrait.php\n create mode 100644 tests/Stubs/SentryStub.php\n create mode 100644 tests/Unit/Component/AiAutomation/Services/CrmFillingEligibilityCheckerTest.php\n delete mode 100644 tests/Unit/Component/ES/ElasticSearchWorkerManagerTest.php\n create mode 100644 tests/Unit/Component/ES/Processor/Actions/LoadDocumentsActionTest.php\n delete mode 100644 tests/Unit/Component/ES/Processor/Traits/SkipActivityTraitTest.php\n delete mode 100644 tests/Unit/Component/ES/Worker/ActivityWorkerTest.php\n delete mode 100644 tests/Unit/Component/ES/Worker/EntityWorkerTest.php\n delete mode 100644 tests/Unit/Component/ES/Worker/WorkerAmountTest.php\n create mode 100644 tests/Unit/Component/ParticipantSpeech/Services/ParticipantSpeechesCreatorTest.php\n create mode 100644 tests/Unit/Http/Controllers/Kiosk/ActivityControllerTest.php\n create mode 100644 tests/Unit/Services/Activity/Twilio/S3RecordingCredentialsServiceTest.php\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20725-handle-HS-search-rate-limit) $ git status\nOn branch master\nYour branch is behind 'origin/master' by 114 commits, and can be fast-forwarded.\n (use \"git pull\" to update your local branch)\n\nChanges not staged for commit:\n (use \"git add <file>...\" to update what will be committed)\n (use \"git restore <file>...\" to discard changes in working directory)\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tmodified: .env.local\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tmodified: app/Component/SCIM/Constants.php\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tmodified: app/Component/SCIM/ScimProvisioning.php\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tmodified: app/Component/Twilio/Conference/ConferenceManager/SoftPhoneManager.php\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tmodified: app/Console/Commands/JiminnyDebugCommand.php\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tmodified: app/DTO/SCIM/AAD/Request/CoreUserRequest.php\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tmodified: app/DTO/SCIM/AAD/Response/CoreUser.php\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tmodified: app/Services/Telephony/TextMessagingService.php\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tmodified: config/logging.php\n\nUntracked files:\n (use \"git add <file>...\" to include in what will be committed)\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\t.env.nikilocal\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\t.env.other\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tWEBHOOK_FILTERING_IMPLEMENTATION.md\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tapp/Component/SCIM/Mutators/Attributes/User/RoleAttr.php\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tapp/Console/Commands/Crm/Hubspot/SimulateWebhooksCommand.php\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tapp/Console/Commands/Reports/CreateMockAskJiminnyReportResultCommand.php\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tapp/Rules/ListenerRoleCannotHaveAdminOrManagerPermissionRule.php\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tids.txt\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tpublic/favicon.ico\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\traw_sql_query.sql\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\ttests/Unit/Component/SCIM/Mutators/Attributes/User/RoleAttrTest.php\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\ttests/Unit/Policies/CanAccessAiReportsTest.php\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\ttests/Unit/Rules/ListenerRoleCannotHaveAdminOrManagerPermissionRuleTest.php\n\nno changes added to commit (use \"git add\" and/or \"git commit -a\")\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (master) $ git pull\nremote: Enumerating objects: 306, done.\nremote: Counting objects: 100% (299/299), done.\nremote: Compressing objects: 100% (183/183), done.\nremote: Total 306 (delta 213), reused 171 (delta 116), pack-reused 7 (from 1)\nReceiving objects: 100% (306/306), 80.12 KiB | 1000.00 KiB/s, done.\nResolving deltas: 100% (213/213), completed with 53 local objects.\nFrom github.com:jiminny/app\n 90bca4e4b2..5604af40cf master -> origin/master\n 4e7078fd8b..0b8343d179 JY-18091-upgrade-to-php-8-5 -> origin/JY-18091-upgrade-to-php-8-5\n 098eeaa087..d5a447e492 JY-20613-allow-owner-role-on-team-setup -> origin/JY-20613-allow-owner-role-on-team-setup\n c3a76ace91..af65249d0f JY-20749-user-can-view-recorded-meetings -> origin/JY-20749-user-can-view-recorded-meetings\n d94a285ae7..7ce96cb5fe JY-20808-low-priority-indexing-queue -> origin/JY-20808-low-priority-indexing-queue\n * [new branch] JY-20842-remove-partial-updater -> origin/JY-20842-remove-partial-updater\n * [new branch] JY-20920-fix-participant-flip -> origin/JY-20920-fix-participant-flip\n * [new branch] secfix/npm-20260519 -> origin/secfix/npm-20260519\nUpdating cb4ebf0c36..5604af40cf\nFast-forward\n app/Component/ES/ChunkSize.php | 54 +++++++++++++++++++\n app/Component/ES/Processor/DTOs/SelectionList.php | 4 +-\n app/Component/ES/Processor/TargetEntitiesSelector.php | 19 ++++---\n app/Component/MeetingBot/Service/ParticipantMatcher.php | 46 ++++++++++++----\n app/Exceptions/RateLimitException.php | 19 ++++++-\n app/Http/Middleware/McpTierMiddleware.php | 27 ++--------\n app/Jobs/Crm/MatchActivityCrmData.php | 47 ++++++++++++----\n app/Jobs/Middleware/HandleHubspotRateLimit.php | 42 +++++++++++++++\n app/Mcp/Servers/JiminnyServer.php | 2 +\n app/Mcp/Tools/GetMeTool.php | 157 +++++++++++++++++++++++++++++++++++++++++++++++++++++\n app/Models/Feature/FeatureEnum.php | 1 +\n app/Services/Activity/HubSpot/ProviderResolver.php | 4 +-\n app/Services/Activity/HubSpot/ProviderResolverInterface.php | 2 +-\n app/Services/Activity/HubSpot/Providers/Provider.php | 2 +-\n app/Services/Activity/HubSpot/Providers/ProviderKixie.php | 2 +-\n app/Services/Activity/HubSpot/Providers/ProviderOrum.php | 2 +-\n app/Services/Activity/HubSpot/Providers/ProviderTwilio.php | 2 +-\n app/Services/Activity/HubSpot/Providers/ProviderTwilioFlex.php | 5 +-\n app/Services/Activity/HubSpot/Service.php | 97 +++++++++++++++++++++++++++------\n app/Services/Crm/Hubspot/Client.php | 132 +++++++++++++++++++++++++++++++++++++++++++++\n app/Services/Crm/Hubspot/HubspotClientInterface.php | 15 ++++++\n app/Services/Crm/Hubspot/Pagination/HubspotPaginationService.php | 21 ++++----\n app/Services/Crm/Hubspot/Pagination/PaginationState.php | 2 +-\n database/migrations/2026_05_13_124153_create_mcp_feature_flag.php | 25 +++++++++\n tests/Feature/Mcp/GetMeToolFeatureTest.php | 140 +++++++++++++++++++++++++++++++++++++++++++++++\n tests/Feature/Mcp/ListCallsToolFeatureTest.php | 2 +-\n tests/Feature/Mcp/McpTestHelpersTrait.php | 19 ++++++-\n tests/Unit/Component/ES/ChunkSizeTest.php | 50 +++++++++++++++++\n tests/Unit/Component/ES/Processor/DTOs/SelectionListTest.php | 27 +++++++---\n tests/Unit/Component/ES/Processor/TargetEntitiesSelectorTest.php | 39 ++++++++------\n tests/Unit/Component/MeetingBot/Service/ParticipantMatcherTest.php | 68 ++++++++++++++++++++++-\n tests/Unit/Exceptions/RateLimitExceptionTest.php | 56 +++++++++++++++++++\n tests/Unit/Jobs/Crm/MatchActivityCrmDataTest.php | 8 +--\n tests/Unit/Jobs/Middleware/HandleHubspotRateLimitTest.php | 151 +++++++++++++++++++++++++++++++++++++++++++++++++++\n tests/Unit/Services/Activity/HubSpot/ServiceTest.php | 109 +++++++++++++++++++++++++++++++++++++\n tests/Unit/Services/Crm/Hubspot/ClientTest.php | 250 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++\n tests/Unit/Services/Crm/Hubspot/Pagination/HubspotPaginationServiceTest.php | 283 +++++++++++++++++++++---------------------------------------------------------------------------\n 37 files changed, 1587 insertions(+), 344 deletions(-)\n create mode 100644 app/Component/ES/ChunkSize.php\n create mode 100644 app/Jobs/Middleware/HandleHubspotRateLimit.php\n create mode 100644 app/Mcp/Tools/GetMeTool.php\n create mode 100644 database/migrations/2026_05_13_124153_create_mcp_feature_flag.php\n create mode 100644 tests/Feature/Mcp/GetMeToolFeatureTest.php\n create mode 100644 tests/Unit/Component/ES/ChunkSizeTest.php\n create mode 100644 tests/Unit/Exceptions/RateLimitExceptionTest.php\n create mode 100644 tests/Unit/Jobs/Middleware/HandleHubspotRateLimitTest.php\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (master) $ git pull\nAlready up to date.\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (master) $ co -b JY-20676-delete-report-related-objects\nSwitched to a new branch 'JY-20676-delete-report-related-objects'\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20676-delete-report-related-objects) $ csfix\ndocker exec -it docker_lamp_1 ./vendor/bin/php-cs-fixer fix --config=.php-cs-fixer.dist.php -v --using-cache=no --diff \nPHP CS Fixer 3.87.1 Alexander by Fabien Potencier, Dariusz Ruminski and contributors.\nPHP runtime: 8.3.30\nRunning analysis on 7 cores with 10 files per process.\nParallel runner is an experimental feature and may be unstable, use it at your own risk. Feedback highly appreciated!\nLoaded config default from \".php-cs-fixer.dist.php\".\n 5690/5690 [▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓] 100%\n\n 1) app/Console/Commands/JiminnyDebugCommand.php (statement_indentation, blank_line_before_statement)\n ---------- begin diff ----------\n--- /home/jiminny/app/Console/Commands/JiminnyDebugCommand.php\n+++ /home/jiminny/app/Console/Commands/JiminnyDebugCommand.php\n@@ -23,6 +23,7 @@\n \n if ($action === 'redis-set') {\n $this->testRedisSet();\n+\n return;\n }\n \n@@ -45,7 +46,7 @@\n $ttl = 60;\n \n try {\n-// $result = Redis::set($testKey, $testValue, 'EX', $ttl, 'NX');\n+ // $result = Redis::set($testKey, $testValue, 'EX', $ttl, 'NX');\n $result = Redis::set($testKey, $testValue, ['nx', 'ex' => $ttl]);\n \n if ($result) {\n\n ----------- end diff -----------\n\n\nFixed 1 of 5690 files in 50.673 seconds, 67.00 MB memory used\n\nWhat's next:\n Try Docker Debug for seamless, persistent debugging tools in any container or image → docker debug docker_lamp_1\n Learn more at https://docs.docker.com/go/debug-cli/\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20676-delete-report-related-objects) $ ;xd\ndocker exec -it docker_lamp_1 bash -c \"mv /usr/local/etc/php/conf.d/xdebug.ini ~/xdebug.ini\"\n\nWhat's next:\n Try Docker Debug for seamless, persistent debugging tools in any container or image → docker debug docker_lamp_1\n Learn more at https://docs.docker.com/go/debug-cli/\ndocker exec -it docker_lamp_1 supervisorctl restart all\njiminny-worker-processing-2:jiminny-worker-processing-2_00: stopped\njiminny-worker-processing-3:jiminny-worker-processing-3_00: stopped\njiminny-worker-processing-4:jiminny-worker-processing-4_00: stopped\njiminny-worker-processing-5:jiminny-worker-processing-5_00: stopped\njiminny-worker-processing-delayed:jiminny-worker-processing-delayed_00: stopped\nworker-analytics:worker-analytics_00: stopped\nworker-crm-update:worker-crm-update_00: stopped\nworker-download:worker-download_00: stopped\nworker-nudges:worker-nudges_00: stopped\nworker-calendar:worker-calendar_00: stopped\nworker-audio:worker-audio_00: stopped\njiminny-worker-processing-1:jiminny-worker-processing-1_00: stopped\nworker:worker_00: stopped\nworker-conferences:worker-conferences_00: stopped\nworker-crm-sync:worker-crm-sync_00: stopped\nworker-emails:worker-emails_00: stopped\nworker-es-update:worker-es-update_00: stopped\nartisan-schedule:artisan-schedule_00: stopped\nartisan-schedule:artisan-schedule_00: started\njiminny-worker-processing-1:jiminny-worker-processing-1_00: started\njiminny-worker-processing-2:jiminny-worker-processing-2_00: started\njiminny-worker-processing-3:jiminny-worker-processing-3_00: started\njiminny-worker-processing-4:jiminny-worker-processing-4_00: started\njiminny-worker-processing-5:jiminny-worker-processing-5_00: started\njiminny-worker-processing-delayed:jiminny-worker-processing-delayed_00: started\nworker:worker_00: started\nworker-analytics:worker-analytics_00: started\nworker-audio:worker-audio_00: started\nworker-calendar:worker-calendar_00: started\nworker-conferences:worker-conferences_00: started\nworker-crm-sync:worker-crm-sync_00: started\nworker-crm-update:worker-crm-update_00: started\nworker-download:worker-download_00: started\nworker-emails:worker-emails_00: started\nworker-es-update:worker-es-update_00: started\nworker-nudges:worker-nudges_00: started\n\nWhat's next:\n Try Docker Debug for seamless, persistent debugging tools in any container or image → docker debug docker_lamp_1\n Learn more at https://docs.docker.com/go/debug-cli/\ndocker exec -it docker_lamp_1 php -v\nPHP 8.3.30 (cli) (built: Mar 16 2026 22:32:32) (NTS)\nCopyright (c) The PHP Group\nZend Engine v4.3.30, Copyright (c) Zend Technologies\n with Zend OPcache v8.3.30, Copyright (c), by Zend Technologies\n\nWhat's next:\n Try Docker Debug for seamless, persistent debugging tools in any container or image → docker debug docker_lamp_1\n Learn more at https://docs.docker.com/go/debug-cli/\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20676-delete-report-related-objects) $ git status\nOn branch JY-20676-delete-report-related-objects\nChanges not staged for commit:\n (use \"git add <file>...\" to update what will be committed)\n (use \"git restore <file>...\" to discard changes in working directory)\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tmodified: .env.local\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tmodified: app/Console/Commands/JiminnyDebugCommand.php\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tmodified: config/logging.php\n\nUntracked files:\n (use \"git add <file>...\" to include in what will be committed)\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\t.env.nikilocal\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\t.env.other\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tWEBHOOK_FILTERING_IMPLEMENTATION.md\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tapp/Console/Commands/Crm/Hubspot/SimulateWebhooksCommand.php\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tapp/Console/Commands/Reports/CreateMockAskJiminnyReportResultCommand.php\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tids.txt\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tpublic/favicon.ico\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\traw_sql_query.sql\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\ttests/Unit/Policies/CanAccessAiReportsTest.php\n\nno changes added to commit (use \"git add\" and/or \"git commit -a\")\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20676-delete-report-related-objects) $ git push -u origin JY-20676-delete-report-related-objects\nEnumerating objects: 45, done.\nCounting objects: 100% (45/45), done.\nDelta compression using up to 8 threads\nCompressing objects: 100% (24/24), done.\nWriting objects: 100% (24/24), 3.62 KiB | 3.62 MiB/s, done.\nTotal 24 (delta 19), reused 0 (delta 0), pack-reused 0\nremote: Resolving deltas: 100% (19/19), completed with 19 local objects.\nremote: \nremote: Create a pull request for 'JY-20676-delete-report-related-objects' on GitHub by visiting:\nremote: https://github.com/jiminny/app/pull/new/JY-20676-delete-report-related-objects\nremote: \nTo github.com:jiminny/app.git\n * [new branch] JY-20676-delete-report-related-objects -> JY-20676-delete-report-related-objects\nbranch 'JY-20676-delete-report-related-objects' set up to track 'origin/JY-20676-delete-report-related-objects'.\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20676-delete-report-related-objects) $ csfix\ndocker exec -it docker_lamp_1 ./vendor/bin/php-cs-fixer fix --config=.php-cs-fixer.dist.php -v --using-cache=no --diff \nPHP CS Fixer 3.87.1 Alexander by Fabien Potencier, Dariusz Ruminski and contributors.\nPHP runtime: 8.3.30\nRunning analysis on 7 cores with 10 files per process.\nParallel runner is an experimental feature and may be unstable, use it at your own risk. Feedback highly appreciated!\nLoaded config default from \".php-cs-fixer.dist.php\".\n 5690/5690 [▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓] 100%\n\n 1) app/Http/Controllers/API/V2/AskJiminnyReportsController.php (blank_line_before_statement)\n ---------- begin diff ----------\n--- /home/jiminny/app/Http/Controllers/API/V2/AskJiminnyReportsController.php\n+++ /home/jiminny/app/Http/Controllers/API/V2/AskJiminnyReportsController.php\n@@ -140,6 +140,7 @@\n if ($enabled && $report->isAskJiminnyReport() && ! $report->canExecute()) {\n $error = 'This report is missing a saved search or prompt. ' .\n 'Edit the report to complete the setup before enabling it.';\n+\n return new JsonResponse(\n ['error' => $error],\n Response::HTTP_UNPROCESSABLE_ENTITY\n\n ----------- end diff -----------\n\n\nFixed 1 of 5690 files in 71.757 seconds, 60.00 MB memory used\n\nWhat's next:\n Try Docker Debug for seamless, persistent debugging tools in any container or image → docker debug docker_lamp_1\n Learn more at https://docs.docker.com/go/debug-cli/\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20676-delete-report-related-objects) $ git pull\nremote: Enumerating objects: 158, done.\nremote: Counting objects: 100% (103/103), done.\nremote: Compressing objects: 100% (37/37), done.\nremote: Total 158 (delta 80), reused 74 (delta 66), pack-reused 55 (from 3)\nReceiving objects: 100% (158/158), 80.59 KiB | 982.00 KiB/s, done.\nResolving deltas: 100% (85/85), completed with 45 local objects.\nFrom github.com:jiminny/app\n 02a33811ee..c6ce5e2440 JY-20676-delete-report-related-objects -> origin/JY-20676-delete-report-related-objects\n 7ce96cb5fe..6c59f04358 JY-20808-low-priority-indexing-queue -> origin/JY-20808-low-priority-indexing-queue\n 3906a9238a..2b5e6ea62b JY-20835-mcp-enable-users-to-get-a-list-of-deals-and-their-details -> origin/JY-20835-mcp-enable-users-to-get-a-list-of-deals-and-their-details\n 5604af40cf..ea3519f0e2 master -> origin/master\n * [new branch] switch-eu-assembly -> origin/switch-eu-assembly\nUpdating 02a33811ee..c6ce5e2440\nFast-forward\n app/Component/ES/ElasticSearchDocumentPartialUpdater.php | 48 ---\n app/Component/ParticipantSpeech/Services/ParticipantAttributionService.php | 4 +-\n app/Component/Settings/AutoScoring/Services/UpdateAutoScoreService.php | 20 +-\n app/Component/Transcription/Service/StorageService.php | 8 +-\n front-end/package.json | 2 +-\n front-end/src/components/DealInsights/Modals/AskAnythingModal.vue | 23 ++\n front-end/src/components/shared/AskAnything/AskAnythingPromptFormItem.vue | 2 +\n front-end/src/components/shared/AskAnything/AskAnythingSettingsDrawer.vue | 23 +-\n front-end/src/components/shared/AskAnything/__mocks__/AskAnythingSettingsDrawer.mocks.js | 1 +\n front-end/src/components/shared/AskAnything/__tests__/AskAnythingSettingsDrawer.spec.js | 135 ++++---\n front-end/src/components/shared/AskAnything/__tests__/__snapshots__/AskAnythingSettingsDrawer.spec.js.html | 1235 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++\n front-end/src/components/shared/AskAnything/__tests__/__snapshots__/AskAnythingSettingsDrawer.spec.js.snap | 1382 ----------------------------------------------------------------\n front-end/src/components/shared/AskAnything/prompts.js | 1 +\n front-end/src/components/shared/AskAnything/useAskAnything.js | 1 +\n front-end/yarn.lock | 8 +-\n tests/Unit/Component/ES/ElasticSearchDocumentPartialUpdaterTest.php | 42 --\n tests/Unit/Component/Settings/AutoScoring/Services/UpdateAutoScoreServiceTest.php | 86 ++--\n tests/Unit/Component/Transcription/Service/StorageServiceTest.php | 29 +-\n 18 files changed, 1448 insertions(+), 1602 deletions(-)\n delete mode 100644 app/Component/ES/ElasticSearchDocumentPartialUpdater.php\n create mode 100644 front-end/src/components/shared/AskAnything/__tests__/__snapshots__/AskAnythingSettingsDrawer.spec.js.html\n delete mode 100644 front-end/src/components/shared/AskAnything/__tests__/__snapshots__/AskAnythingSettingsDrawer.spec.js.snap\n delete mode 100644 tests/Unit/Component/ES/ElasticSearchDocumentPartialUpdaterTest.php\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20676-delete-report-related-objects) $ csfix\ndocker exec -it docker_lamp_1 ./vendor/bin/php-cs-fixer fix --config=.php-cs-fixer.dist.php -v --using-cache=no --diff \nPHP CS Fixer 3.87.1 Alexander by Fabien Potencier, Dariusz Ruminski and contributors.\nPHP runtime: 8.3.30\nRunning analysis on 7 cores with 10 files per process.\nParallel runner is an experimental feature and may be unstable, use it at your own risk. Feedback highly appreciated!\nLoaded config default from \".php-cs-fixer.dist.php\".\n 5688/5688 [▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓] 100%\n\n\nFixed 0 of 5688 files in 79.904 seconds, 60.00 MB memory used\n\nWhat's next:\n Try Docker Debug for seamless, persistent debugging tools in any container or image → docker debug docker_lamp_1\n Learn more at https://docs.docker.com/go/debug-cli/\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20676-delete-report-related-objects) $","is_focused":true},{"role":"AXRadioButton","text":"DOCKER","depth":2,"bounds":{"left":0.27027926,"top":1.0,"width":0.094913565,"height":-0.042298436},"on_screen":true,"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.27227393,"top":1.0,"width":0.005319149,"height":-0.04549086},"on_screen":true,"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"DEV (docker)","depth":2,"bounds":{"left":0.36519283,"top":1.0,"width":0.094913565,"height":-0.042298436},"on_screen":true,"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.3671875,"top":1.0,"width":0.005319149,"height":-0.04549086},"on_screen":true,"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"APP (-zsh)","depth":2,"bounds":{"left":0.46010637,"top":1.0,"width":0.09474734,"height":-0.042298436},"on_screen":true,"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.46210107,"top":1.0,"width":0.005319149,"height":-0.04549086},"on_screen":true,"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"screenpipe\"","depth":2,"bounds":{"left":0.55485374,"top":1.0,"width":0.09474734,"height":-0.042298436},"on_screen":true,"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.5568484,"top":1.0,"width":0.005319149,"height":-0.04549086},"on_screen":true,"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"-zsh","depth":2,"bounds":{"left":0.64960104,"top":1.0,"width":0.09474734,"height":-0.042298436},"on_screen":true,"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.6515958,"top":1.0,"width":0.005319149,"height":-0.04549086},"on_screen":true,"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"⌥⌘1","depth":1,"bounds":{"left":0.7307181,"top":1.0,"width":0.01861702,"height":-0.023144484},"on_screen":true,"automation_id":"_NS:8","role_description":"text"},{"role":"AXStaticText","text":"APP (-zsh)","depth":1,"bounds":{"left":0.49900267,"top":1.0,"width":0.024601065,"height":-0.02394259},"on_screen":true,"role_description":"text"}]...
|
2802650493718167367
|
-1358120912881272742
|
idle
|
accessibility
|
NULL
|
Last login: Mon May 18 09:17:28 on ttys007
Poetry Last login: Mon May 18 09:17:28 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 (pipedrive-sdk-poc) $ co master
error: Your local changes to the following files would be overwritten by checkout:
PIPEDRIVE_V2_MIGRATION_TICKETS.md
Please commit your changes or stash them before you switch branches.
Aborting
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (pipedrive-sdk-poc) $ git pull
remote: Enumerating objects: 1047, done.
remote: Counting objects: 100% (832/832), done.
remote: Compressing objects: 100% (298/298), done.
remote: Total 1047 (delta 634), reused 596 (delta 534), pack-reused 215 (from 3)
Receiving objects: 100% (1047/1047), 353.16 KiB | 1.56 MiB/s, done.
Resolving deltas: 100% (687/687), completed with 107 local objects.
From github.com:jiminny/app
907c54896c..34656c53ed pipedrive-sdk-poc -> origin/pipedrive-sdk-poc
03325ec50f..4e7078fd8b JY-18091-upgrade-to-php-8-5 -> origin/JY-18091-upgrade-to-php-8-5
e7d231e163..bc6a3fce6b JY-20725-handle-HS-search-rate-limit -> origin/JY-20725-handle-HS-search-rate-limit
* [new branch] JY-20749-user-can-view-recorded-meetings -> origin/JY-20749-user-can-view-recorded-meetings
98ca281a04..e0351be069 JY-20808-low-priority-indexing-queue -> origin/JY-20808-low-priority-indexing-queue
569abb5149..3906a9238a JY-20835-mcp-enable-users-to-get-a-list-of-deals-and-their-details -> origin/JY-20835-mcp-enable-users-to-get-a-list-of-deals-and-their-details
ad6c2a86e8..50eb6afba9 JY-20846-mcp-enable-the-ai-to-know-details-about-the-user -> origin/JY-20846-mcp-enable-the-ai-to-know-details-about-the-user
* [new branch] JY-20893-chunk-control-per-update-target -> origin/JY-20893-chunk-control-per-update-target
31c62924a5..cb4ebf0c36 master -> origin/master
Updating 907c54896c..34656c53ed
Fast-forward
PIPEDRIVE_V2_MIGRATION_TICKETS.md | 52 ++++++++++++++++++++++++++++++++++++++++++++++++++++
1 file changed, 52 insertions(+)
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (pipedrive-sdk-poc) $ co master
M .env.local
M config/logging.php
Switched to branch 'master'
Your branch is behind 'origin/master' by 31 commits, and can be fast-forwarded.
(use "git pull" to update your local branch)
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (master) $ git pull
Updating 31c62924a5..cb4ebf0c36
Fast-forward
app/Component/ES/Processor/Traits/SelectEntityListTrait.php | 20 ------
app/Services/Calendar/CalendarActivityService.php | 46 +++++++++++++
app/Services/Calendar/Command/MapActivityData.php | 106 +++-------------------------
docs/mcp/explorer/explorer.html | 104 +++++++++++++++++++++++++---
docs/mcp/explorer/explorer.template.html | 102 ++++++++++++++++++++++++---
docs/mcp/tools-list.json | 373 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++-------
docs/mcp/tools.md | 117 +++++++++++++++++++++++--------
tests/Unit/Component/ES/AsyncUpdateElasticSearchTest.php | 16 +----
tests/Unit/Component/ES/Listeners/UpdateMultipleTargetsListenerTest.php | 10 ---
tests/Unit/Component/ES/Listeners/UpdateSingleTargetListenerTest.php | 6 --
tests/Unit/Component/ES/Processor/TargetEntitiesSelectorTest.php | 9 ---
tests/Unit/Component/ES/Processor/Traits/SelectEntityListTraitTest.php | 15 ++--
tests/Unit/Component/ES/UpdateProcessManagerTest.php | 2 -
tests/Unit/Services/Calendar/CalendarActivityServiceTest.php | 150 ++++++++++++++++++++++++++++++++++++++--
tests/Unit/Services/Calendar/Command/MapActivityDataTest.php | 78 ++-------------------
15 files changed, 832 insertions(+), 322 deletions(-)
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (master) $ co -b JY-20613-allow-owner-role-on-team-setup
Switched to a new branch 'JY-20613-allow-owner-role-on-team-setup'
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20613-allow-owner-role-on-team-setup) $ csfix
docker exec -it docker_lamp_1 ./vendor/bin/php-cs-fixer fix --config=.php-cs-fixer.dist.php -v --using-cache=no --diff
PHP CS Fixer 3.87.1 Alexander by Fabien Potencier, Dariusz Ruminski and contributors.
PHP runtime: 8.3.30
Running 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!
Loaded config default from ".php-cs-fixer.dist.php".
5682/5682 [▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓] 100%
Fixed 0 of 5682 files in 56.978 seconds, 67.00 MB memory used
What's next:
Try Docker Debug for seamless, persistent debugging tools in any container or image → docker debug docker_lamp_1
Learn more at [URL_WITH_CREDENTIALS] ~/jiminny/app (JY-20613-allow-owner-role-on-team-setup) $ csfix
docker exec -it docker_lamp_1 ./vendor/bin/php-cs-fixer fix --config=.php-cs-fixer.dist.php -v --using-cache=no --diff
PHP CS Fixer 3.87.1 Alexander by Fabien Potencier, Dariusz Ruminski and contributors.
PHP runtime: 8.3.30
Running 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!
Loaded config default from ".php-cs-fixer.dist.php".
5682/5682 [▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓] 100%
Fixed 0 of 5682 files in 49.910 seconds, 60.00 MB memory used
What's next:
Try Docker Debug for seamless, persistent debugging tools in any container or image → docker debug docker_lamp_1
Learn more at [URL_WITH_CREDENTIALS] ~/jiminny/app (JY-20613-allow-owner-role-on-team-setup) $ git pull
remote: Enumerating objects: 248, done.
remote: Counting objects: 100% (128/128), done.
remote: Compressing objects: 100% (23/23), done.
remote: Total 59 (delta 43), reused 44 (delta 33), pack-reused 0 (from 0)
Unpacking objects: 100% (59/59), 10.48 KiB | 228.00 KiB/s, done.
From github.com:jiminny/app
b7df560451..190239dfd4 JY-20613-allow-owner-role-on-team-setup -> origin/JY-20613-allow-owner-role-on-team-setup
e0351be069..d94a285ae7 JY-20808-low-priority-indexing-queue -> origin/JY-20808-low-priority-indexing-queue
* [new branch] JY-20920-fix-participant-matcher -> origin/JY-20920-fix-participant-matcher
cb4ebf0c36..90bca4e4b2 master -> origin/master
Merge made by the 'ort' strategy.
app/Component/ES/ChunkSize.php | 54 +++++++++++++++++++++++++++
app/Component/ES/Processor/DTOs/SelectionList.php | 4 +-
app/Component/ES/Processor/TargetEntitiesSelector.php | 19 ++++++----
app/Http/Middleware/McpTierMiddleware.php | 27 +++-----------
app/Mcp/Servers/JiminnyServer.php | 2 +
app/Mcp/Tools/GetMeTool.php | 157 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
app/Models/Feature/FeatureEnum.php | 1 +
database/migrations/2026_05_13_124153_create_mcp_feature_flag.php | 25 +++++++++++++
front-end/src/components/Settings/Kiosk/modals/EditTeamModal/EditTeamModal.vue | 52 ++++++++++++++++++--------
front-end/src/components/Settings/Kiosk/modals/EditTeamModal/__tests__/EditTeamModal.spec.js | 14 +++++++
tests/Feature/Mcp/GetMeToolFeatureTest.php | 140 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
tests/Feature/Mcp/ListCallsToolFeatureTest.php | 2 +-
tests/Feature/Mcp/McpTestHelpersTrait.php | 19 +++++++++-
tests/Unit/Component/ES/ChunkSizeTest.php | 50 +++++++++++++++++++++++++
tests/Unit/Component/ES/Processor/DTOs/SelectionListTest.php | 27 ++++++++++----
tests/Unit/Component/ES/Processor/TargetEntitiesSelectorTest.php | 39 +++++++++++---------
16 files changed, 557 insertions(+), 75 deletions(-)
create mode 100644 app/Component/ES/ChunkSize.php
create mode 100644 app/Mcp/Tools/GetMeTool.php
create mode 100644 database/migrations/2026_05_13_124153_create_mcp_feature_flag.php
create mode 100644 tests/Feature/Mcp/GetMeToolFeatureTest.php
create mode 100644 tests/Unit/Component/ES/ChunkSizeTest.php
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20613-allow-owner-role-on-team-setup) $ git push
Enumerating objects: 40, done.
Counting objects: 100% (34/34), done.
Delta compression using up to 8 threads
Compressing objects: 100% (18/18), done.
Writing objects: 100% (18/18), 1.58 KiB | 1.58 MiB/s, done.
Total 18 (delta 15), reused 0 (delta 0), pack-reused 0
remote: Resolving deltas: 100% (15/15), completed with 13 local objects.
To github.com:jiminny/app.git
190239dfd4..ec1b261264 JY-20613-allow-owner-role-on-team-setup -> JY-20613-allow-owner-role-on-team-setup
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20613-allow-owner-role-on-team-setup) $ gbr
* JY-20613-allow-owner-role-on-team-setup
pipedrive-sdk-poc
master
JY-20903-update_activity-stage-on-opportunity-change
JY-20904-fix-update-es-on-activity-command
JY-20891-improve-sms-text-relays
JY-20725-handle-HS-search-rate-limit
JY-20818-move-AJ-reports-to-separated-datadog-metric
JY-20773-fix-automated-reports-user-pilot-tracking
JY-20157-AJ-report-not-send-notification
JY-20508-notify-before-AJ-report-expiration
JY-20372-ai-reports-promotion-pages
JY-20352-sync-opportunities-without-a-local-owner-user-id-is-null
JY-20738-debug-AJ-tracking-UP
a
JY-18909-automated-reports-ask-jiminny
JY-20692-fix-integration-app-[API_KEY]
JY-20553-debug-crm-sync-delays
JY-20698-fix-SF-activity-types-on-new-playbook
JY-20543-AJ-report-tracking
JY-20384-handle-auto-sync-with-no-access-to-event-type
JY-20458-ask-jiminny-user-definitions
JY-19666-fix-import-contacts-account-association
JY-19666-HS-import-contacts-and-accounts-batch-job
JY-20458-Ask-Jiminny-Reports
JY-20200-batch-update-CRM-objects-Salesforce
JY-19666-HS-webhooks-add-contact-and-company
JY-20348-trigger-setup-DI-layout-on-team-creation
JY-20326-refactor-info-message-in-command
JY-20317-fix-auto-log-delay-issue-on-all-channels-disabled
JY-20312-remove-on-update-change-last-synced-at-crm-configurations
JY-20306-SF-skip-auto-sync-for-task-based-playbook
JY-20192-remove-deleted-team-from-saved-search-filters
JY-20197-import-opportunity-batch-job
JY-20293-enable-status-field-for-pipedrive-deals
JY-20191-remove-commands-interactive-prompts
JY-20118-change-default-sync-strategy
JY-20183-add-cache-on-auto-log-delay
JY-20197-add-import-opportunity-batch-job
20118-hs-opportunity-make-webhook-strategy-default
JY-20118-make-default-hs-opportunity-sync-strategy-webhook-based
JY-20196-handle-opportunity-without-note
JY-20118-improve-opportunity-import
JY-20189-handle-activity-search-on-deleted-groups
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20613-allow-owner-role-on-team-setup) $ co JY-20725-handle-HS-search-rate-limit
M .env.local
M config/logging.php
Switched to branch 'JY-20725-handle-HS-search-rate-limit'
Your branch is behind 'origin/JY-20725-handle-HS-search-rate-limit' by 439 commits, and can be fast-forwarded.
(use "git pull" to update your local branch)
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20725-handle-HS-search-rate-limit) $ git pull
Updating 0f3e438941..bc6a3fce6b
Fast-forward
.gitignore | 3 +-
.windsurfrules | 168 ++---
CLAUDE.md | 1 +
app/Component/ActivityAnalytics/Service/CalculateTalkTimeOffsetsFromTranscription.php | 24 +-
app/Component/AiActivityType/Services/AiActivityTypeEligibilityChecker.php | 28 +-
app/Component/AiAutomation/Actions/PrepareUpdateDtoAction.php | 32 +-
app/Component/AiAutomation/Services/CrmFillingEligibilityChecker.php | 47 ++
app/Component/AiAutomation/TestCrmAiPromptService.php | 14 +
app/Component/AiCallScoring/Services/AiCallScoringEligibilityChecker.php | 9 +
app/Component/ES/ElasticSearchDocumentPartialUpdater.php | 13 +-
app/Component/ES/ElasticSearchWorkerManager.php | 86 ---
app/Component/ES/Processor/Actions/LoadDocumentsAction.php | 80 +--
app/Component/ES/Processor/EntityQueryBuilder.php | 12 +-
app/Component/ES/Processor/TargetEntitiesSelector.php | 2 +-
app/Component/ES/Processor/Traits/SkipActivityTrait.php | 25 -
app/Component/ES/Repositories/EsResetActivityRepository.php | 11 +-
app/Component/ES/Worker/ActivityWorker.php | 73 --
app/Component/ES/Worker/EntityWorker.php | 44 --
app/Component/ES/Worker/WorkerAmount.php | 60 --
app/Component/ES/Worker/WorkerInterface.php | 15 -
app/Component/ElasticSearch/Contract/Searchable.php | 4 +
app/Component/Encoding/Job/AnalyzeTrackChannelsJob.php | 20 +-
app/Component/Encoding/Service/GenerateSpeechFromSilenceService.php | 85 ++-
app/Component/FFMpeg/Services/GetSpeechIntervalsService.php | 18 +-
app/Component/LanguageDetection/Services/FindSpeechTimeService.php | 22 +-
app/Component/Nudge/Job/ProcessOrganisationImmediateNudgesJob.php | 218 +++++-
app/Component/ParagraphBreaker/Services/TranscriptionParagraphsService.php | 4 +
app/Component/ParticipantSpeech/Services/ParticipantSpeechesCreator.php | 33 +
app/Component/ParticipantSpeech/Services/ParticipantSpeechesDeleter.php | 15 +
app/Component/ParticipantSpeech/Services/ParticipantSpeechesProvider.php | 51 +-
app/Component/ParticipantSpeech/Services/ParticipantSpeechesUploader.php | 36 +
app/Component/ProphetAi/Exceptions/InsufficientTranscriptException.php | 11 +
app/Component/Transcription/DTO/Http/Transcription/AssemblyAI/AssemblyAI/NoAssemblyIdException.php | 11 +
app/Component/Transcription/DTO/Http/Transcription/AssemblyAI/AssemblyAI/SuccessfulResponse.php | 6 +
app/Component/Transcription/DTO/Http/Transcription/TranscriptionIsNotCorrectFormatException.php | 11 +
app/Component/Transcription/Diarization/Services/GetNormalizedParticipantSpeechesService.php | 23 +-
app/Component/Transcription/Diarization/Source/MeetingBotSource.php | 16 +-
app/Component/Transcription/TranscriptionProcessor/TranscriptionProcessor.php | 3 +
app/Console/Commands/Activities/ActivityHardDeleteCommand.php | 4 +-
app/Console/Commands/Activities/Copy.php | 2 +
app/Console/Commands/Activities/SetupIntegration/TwilioSetS3RecordingCredentialsCommand.php | 119 ++++
app/Console/Commands/Activities/UpdateActivityElasticSearchDocumentCommand.php | 10 +-
app/Console/Commands/Crm/BackfillOpportunityUserFromAccountCommand.php | 126 ++++
app/Console/Commands/Elasticsearch/AsyncUpdateEsActivities.php | 19 -
app/Console/Commands/Elasticsearch/AsyncUpdateEsEntities.php | 50 +-
app/Console/Commands/Elasticsearch/ResetAsyncElasticSearchCommand.php | 30 +-
app/Console/Commands/GeckoExport/GeckoExportParticipantSpeechesCommand.php | 14 +-
app/Console/Commands/IssueMcpTokenCommand.php | 84 +++
app/Console/Commands/JiminnyDebugCommand.php | 7 +-
app/Console/Commands/Tracks/CleanupActivityTracksCommand.php | 2 +-
app/Console/Kernel.php | 6 +-
app/Contracts/Services/Calendar/CalendarTrait.php | 80 ++-
app/Events/AutomatedReports/AutomatedReportGenerated.php | 3 +
app/Http/Controllers/API/AiCallScoring/AiScorecardController.php | 7 +-
app/Http/Controllers/API/TeamAiAutomationController.php | 8 +
app/Http/Controllers/CustomerApi/CustomerApiController.php | 4 +-
app/Http/Controllers/Kiosk/ActivityController.php | 58 +-
app/Http/Controllers/Settings/PlaybookController.php | 15 +-
app/Http/Kernel.php | 23 +
app/Http/Middleware/McpAuditMiddleware.php | 156 ++++
app/Http/Middleware/McpTierMiddleware.php | 54 ++
app/Http/Requests/API/V2/ZapierUploadActivityRequest.php | 28 +-
app/Jobs/Activity/Import/ImportTwilioVideoSpeechesJob.php | 25 +-
app/Jobs/Activity/Import/IsActivityReadyForProcessingJob.php | 10 +-
app/Jobs/Calendar/SetupCalendarSync.php | 21 +-
app/Jobs/ImportRemoteTrackJob.php | 96 ++-
app/Jobs/Mailbox/EmailTextRelay.php | 15 +-
app/Mcp/Contracts/McpCallRepositoryInterface.php | 30 +
app/Mcp/DTO/ListCallsFilters.php | 29 +
app/Mcp/Errors/McpError.php | 123 ++++
app/Mcp/Repositories/McpActivityHydrator.php | 145 ++++
app/Mcp/Repositories/McpCallRepository.php | 84 +++
app/Mcp/Repositories/McpElasticCallRepository.php | 171 +++++
app/Mcp/Servers/JiminnyServer.php | 38 +
app/Mcp/Tools/ListCallsTool.php | 205 ++++++
app/Models/Activity.php | 10 +-
app/Models/Activity/Transcription.php | 17 +-
app/Models/ElasticSearch/OpportunityElasticSearchTrait.php | 5 +
app/Models/Participant.php | 1 +
app/Providers/AppServiceProvider.php | 22 +
app/Repositories/Crm/ContactRepository.php | 69 +-
app/Repositories/ParticipantSpeechRepository.php | 13 +-
app/Services/Activity/ParticipantsService.php | 19 +-
app/Services/Activity/Twilio/S3RecordingCredentialsService.php | 82 +++
app/Services/ActivityService.php | 21 +-
app/Services/Calendar/CalendarActivityService.php | 46 ++
app/Services/Calendar/Command/ImportParticipants.php | 1 +
app/Services/Calendar/Command/MapActivityData.php | 106 +--
app/Services/Calendar/GoogleCalendarService.php | 12 +-
app/Services/Crm/Close/Processor/OpportunityProcessor.php | 2 +-
app/Services/Crm/Close/Service.php | 22 +-
app/Services/Crm/Copper/Service.php | 12 +-
app/Services/Crm/Hubspot/Service.php | 154 +++-
app/Services/Crm/Hubspot/ServiceTraits/OpportunitySyncTrait.php | 88 ++-
app/Services/Crm/IntegrationApp/ServiceTraits/SyncCrmEntitiesTrait.php | 22 +-
app/Services/Crm/Pipedrive/Service.php | 17 +-
app/Services/Crm/Salesforce/Service.php | 42 +-
app/Services/Mail/Office/EmailApiClient.php | 129 +---
app/Services/RecallAI/Commands/ScheduleBotCommand.php | 39 +-
app/Services/RecallAI/RecallAIService.php | 22 +-
composer.json | 3 +-
composer.lock | 87 ++-
config/mcp.php | 23 +
database/migrations/2026_04_30_120000_create_mcp_audit_log_table.php | 36 +
docs/mcp/explorer/explorer.html | 697 ++++++++++++++++++
docs/mcp/explorer/explorer.template.html | 697 ++++++++++++++++++
docs/mcp/explorer/generate.js | 215 ++++++
docs/mcp/explorer/tool-explorer-meta.json | 11 +
docs/mcp/tools-list.json | 2536 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
docs/mcp/tools.md | 621 ++++++++++++++++
front-end/package.json | 4 +-
front-end/src/components/Settings/OrgSettings/AiAutomation/CrmFilling/TemplateFieldForm.vue | 28 +-
front-end/src/components/Settings/OrgSettings/Playbooks/AddEditPlaybook.vue | 10 +
front-end/src/components/playback/comments/ActivityComment.less | 10 +-
front-end/src/components/shared/PromptTester/PromptTester.vue | 12 +-
front-end/src/components/shared/__tests__/PromptTester.spec.js | 35 +
front-end/src/components/shared/modals/EntityPickerModal/__tests__/useEntitiesCache.spec.ts | 37 +
front-end/src/components/shared/modals/EntityPickerModal/useEntitiesCache.ts | 9 +
front-end/yarn.lock | 16 +-
phpstan-baseline.neon | 50 --
routes/api.php | 11 +
sonar-project.properties | 91 ++-
tests/Feature/Component/Nudge/ProcessOrganisationImmediateNudgesJobTest.php | 534 ++++++++++++++
tests/Feature/Jobs/ImportRemoteTrackJobTest.php | 283 +++++++-
tests/Feature/Mcp/IssueMcpTokenCommandTest.php | 53 ++
tests/Feature/Mcp/ListCallsToolElasticFeatureTest.php | 155 ++++
tests/Feature/Mcp/ListCallsToolFeatureTest.php | 352 ++++++++++
tests/Feature/Mcp/McpTestHelpersTrait.php | 77 ++
tests/Feature/Services/Team/TeamDeleteHandlers/Retention/RetentionRepositoryHandlerTest.php | 1 +
tests/Stubs/SentryStub.php | 18 +
tests/Unit/Component/ActivityAnalytics/Service/CalculateTalkTimeOffsetFromTranscriptionTest.php | 28 +-
tests/Unit/Component/AiActivityType/Services/AiActivityTypeEligibilityCheckerTest.php | 103 ++-
tests/Unit/Component/AiAutomation/Actions/PrepareUpdateDtoActionTest.php | 91 +++
tests/Unit/Component/AiAutomation/Services/CrmFillingEligibilityCheckerTest.php | 124 ++++
tests/Unit/Component/AiAutomation/TestCrmAiPromptServiceTest.php | 67 +-
tests/Unit/Component/AiCallScoring/Services/AiCallScoringEligibilityCheckerTest.php | 55 ++
tests/Unit/Component/ES/ElasticSearchWorkerManagerTest.php | 135 ----
tests/Unit/Component/ES/Processor/Actions/LoadDocumentsActionTest.php | 220 ++++++
tests/Unit/Component/ES/Processor/EntityQueryBuilderTest.php | 21 +-
tests/Unit/Component/ES/Processor/Traits/SkipActivityTraitTest.php | 51 --
tests/Unit/Component/ES/Worker/ActivityWorkerTest.php | 174 -----
tests/Unit/Component/ES/Worker/EntityWorkerTest.php | 97 ---
tests/Unit/Component/ES/Worker/WorkerAmountTest.php | 116 ---
tests/Unit/Component/Encoding/Job/AnalyzeTrackChannelsJobTest.php | 52 +-
tests/Unit/Component/Encoding/Service/GenerateSpeechFromSilenceServiceTest.php | 171 ++---
tests/Unit/Component/FFMpeg/Services/GetSpeechIntervalsTest.php | 36 +-
tests/Unit/Component/LanguageDetection/Services/FindSpeechTimeServiceTest.php | 20 +-
tests/Unit/Component/MobileSettings/MobileSettingsControllerTest.php | 5 +-
tests/Unit/Component/ParticipantSpeech/Services/ParticipantSpeechesCreatorTest.php | 75 ++
tests/Unit/Component/ParticipantSpeech/Services/ParticipantSpeechesDeleterTest.php | 63 ++
tests/Unit/Component/ParticipantSpeech/Services/ParticipantSpeechesProviderTest.php | 134 ++++
tests/Unit/Component/ParticipantSpeech/Services/ParticipantSpeechesUploaderTest.php | 57 ++
tests/Unit/Component/Transcription/Diarization/Services/GetNormalizedParticipantSpeechesServiceTest.php | 51 +-
tests/Unit/Component/Transcription/Diarization/Source/MeetingBotSourceTest.php | 29 +-
tests/Unit/Contracts/Services/Calendar/CalendarTraitTest.php | 58 +-
tests/Unit/Http/Controllers/Kiosk/ActivityControllerTest.php | 159 +++++
tests/Unit/Jobs/Activity/Import/ImportTwilioVideoSpeechesJobTest.php | 22 +-
tests/Unit/Jobs/Activity/Import/IsActivityReadyForProcessingJobTest.php | 26 +-
tests/Unit/Jobs/Calendar/SetupCalendarSyncTest.php | 25 -
tests/Unit/Services/Activity/ParticipantsServiceTest.php | 12 +-
tests/Unit/Services/Activity/Twilio/S3RecordingCredentialsServiceTest.php | 180 +++++
tests/Unit/Services/ActivityServiceTest.php | 132 ++++
tests/Unit/Services/Calendar/CalendarActivityServiceTest.php | 150 +++-
tests/Unit/Services/Calendar/Command/ImportParticipantsTest.php | 6 +-
tests/Unit/Services/Calendar/Command/MapActivityDataTest.php | 78 +-
tests/Unit/Services/Calendar/GoogleCalendarServiceTest.php | 116 +++
tests/Unit/Services/Crm/Close/ServiceTest.php | 165 +++++
tests/Unit/Services/Crm/Hubspot/ServiceTest.php | 272 ++++++-
tests/Unit/Services/Crm/Hubspot/ServiceTraits/OpportunitySyncTest.php | 25 +-
tests/Unit/Services/Crm/Hubspot/ServiceTraits/OpportunitySyncTraitMatchActivitiesTest.php | 3 +-
tests/Unit/Services/Crm/IntegrationApp/ServiceTraits/SyncCrmEntitiesTraitOpportunitiesTest.php | 40 ++
tests/Unit/Services/Crm/Pipedrive/ImportOpportunityMatchActivitiesTest.php | 2 +
tests/Unit/Services/Crm/Salesforce/ServiceTest.php | 139 ++++
tests/Unit/Services/Mail/Office/EmailApiClientTest.php | 195 ++---
tests/Unit/Services/RecallAI/RecallAIServiceTest.php | 24 +-
175 files changed, 12562 insertions(+), 2162 deletions(-)
create mode 120000 CLAUDE.md
create mode 100644 app/Component/AiAutomation/Services/CrmFillingEligibilityChecker.php
delete mode 100644 app/Component/ES/ElasticSearchWorkerManager.php
delete mode 100644 app/Component/ES/Processor/Traits/SkipActivityTrait.php
delete mode 100644 app/Component/ES/Worker/ActivityWorker.php
delete mode 100644 app/Component/ES/Worker/EntityWorker.php
delete mode 100644 app/Component/ES/Worker/WorkerAmount.php
delete mode 100644 app/Component/ES/Worker/WorkerInterface.php
create mode 100644 app/Component/ProphetAi/Exceptions/InsufficientTranscriptException.php
create mode 100644 app/Component/Transcription/DTO/Http/Transcription/AssemblyAI/AssemblyAI/NoAssemblyIdException.php
create mode 100644 app/Component/Transcription/DTO/Http/Transcription/TranscriptionIsNotCorrectFormatException.php
create mode 100644 app/Console/Commands/Activities/SetupIntegration/TwilioSetS3RecordingCredentialsCommand.php
create mode 100644 app/Console/Commands/Crm/BackfillOpportunityUserFromAccountCommand.php
delete mode 100644 app/Console/Commands/Elasticsearch/AsyncUpdateEsActivities.php
create mode 100644 app/Console/Commands/IssueMcpTokenCommand.php
create mode 100644 app/Http/Middleware/McpAuditMiddleware.php
create mode 100644 app/Http/Middleware/McpTierMiddleware.php
create mode 100644 app/Mcp/Contracts/McpCallRepositoryInterface.php
create mode 100644 app/Mcp/DTO/ListCallsFilters.php
create mode 100644 app/Mcp/Errors/McpError.php
create mode 100644 app/Mcp/Repositories/McpActivityHydrator.php
create mode 100644 app/Mcp/Repositories/McpCallRepository.php
create mode 100644 app/Mcp/Repositories/McpElasticCallRepository.php
create mode 100644 app/Mcp/Servers/JiminnyServer.php
create mode 100644 app/Mcp/Tools/ListCallsTool.php
create mode 100644 app/Services/Activity/Twilio/S3RecordingCredentialsService.php
create mode 100644 config/mcp.php
create mode 100644 database/migrations/2026_04_30_120000_create_mcp_audit_log_table.php
create mode 100644 docs/mcp/explorer/explorer.html
create mode 100644 docs/mcp/explorer/explorer.template.html
create mode 100644 docs/mcp/explorer/generate.js
create mode 100644 docs/mcp/explorer/tool-explorer-meta.json
create mode 100644 docs/mcp/tools-list.json
create mode 100644 docs/mcp/tools.md
create mode 100644 front-end/src/components/shared/modals/EntityPickerModal/__tests__/useEntitiesCache.spec.ts
create mode 100644 tests/Feature/Component/Nudge/ProcessOrganisationImmediateNudgesJobTest.php
create mode 100644 tests/Feature/Mcp/IssueMcpTokenCommandTest.php
create mode 100644 tests/Feature/Mcp/ListCallsToolElasticFeatureTest.php
create mode 100644 tests/Feature/Mcp/ListCallsToolFeatureTest.php
create mode 100644 tests/Feature/Mcp/McpTestHelpersTrait.php
create mode 100644 tests/Stubs/SentryStub.php
create mode 100644 tests/Unit/Component/AiAutomation/Services/CrmFillingEligibilityCheckerTest.php
delete mode 100644 tests/Unit/Component/ES/ElasticSearchWorkerManagerTest.php
create mode 100644 tests/Unit/Component/ES/Processor/Actions/LoadDocumentsActionTest.php
delete mode 100644 tests/Unit/Component/ES/Processor/Traits/SkipActivityTraitTest.php
delete mode 100644 tests/Unit/Component/ES/Worker/ActivityWorkerTest.php
delete mode 100644 tests/Unit/Component/ES/Worker/EntityWorkerTest.php
delete mode 100644 tests/Unit/Component/ES/Worker/WorkerAmountTest.php
create mode 100644 tests/Unit/Component/ParticipantSpeech/Services/ParticipantSpeechesCreatorTest.php
create mode 100644 tests/Unit/Http/Controllers/Kiosk/ActivityControllerTest.php
create mode 100644 tests/Unit/Services/Activity/Twilio/S3RecordingCredentialsServiceTest.php
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20725-handle-HS-search-rate-limit) $ git status
On branch master
Your branch is behind 'origin/master' by 114 commits, and can be fast-forwarded.
(use "git pull" to update your local branch)
Changes not staged for commit:
(use "git add <file>..." to update what will be committed)
(use "git restore <file>..." to discard changes in working directory)
modified: .env.local
modified: app/Component/SCIM/Constants.php
modified: app/Component/SCIM/ScimProvisioning.php
modified: app/Component/Twilio/Conference/ConferenceManager/SoftPhoneManager.php
modified: app/Console/Commands/JiminnyDebugCommand.php
modified: app/DTO/SCIM/AAD/Request/CoreUserRequest.php
modified: app/DTO/SCIM/AAD/Response/CoreUser.php
modified: app/Services/Telephony/TextMessagingService.php
modified: config/logging.php
Untracked files:
(use "git add <file>..." to include in what will be committed)
.env.nikilocal
.env.other
WEBHOOK_FILTERING_IMPLEMENTATION.md
app/Component/SCIM/Mutators/Attributes/User/RoleAttr.php
app/Console/Commands/Crm/Hubspot/SimulateWebhooksCommand.php
app/Console/Commands/Reports/CreateMockAskJiminnyReportResultCommand.php
app/Rules/ListenerRoleCannotHaveAdminOrManagerPermissionRule.php
ids.txt
public/favicon.ico
raw_sql_query.sql
tests/Unit/Component/SCIM/Mutators/Attributes/User/RoleAttrTest.php
tests/Unit/Policies/CanAccessAiReportsTest.php
tests/Unit/Rules/ListenerRoleCannotHaveAdminOrManagerPermissionRuleTest.php
no changes added to commit (use "git add" and/or "git commit -a")
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (master) $ git pull
remote: Enumerating objects: 306, done.
remote: Counting objects: 100% (299/299), done.
remote: Compressing objects: 100% (183/183), done.
remote: Total 306 (delta 213), reused 171 (delta 116), pack-reused 7 (from 1)
Receiving objects: 100% (306/306), 80.12 KiB | 1000.00 KiB/s, done.
Resolving deltas: 100% (213/213), completed with 53 local objects.
From github.com:jiminny/app
90bca4e4b2..5604af40cf master -> origin/master
4e7078fd8b..0b8343d179 JY-18091-upgrade-to-php-8-5 -> origin/JY-18091-upgrade-to-php-8-5
098eeaa087..d5a447e492 JY-20613-allow-owner-role-on-team-setup -> origin/JY-20613-allow-owner-role-on-team-setup
c3a76ace91..af65249d0f JY-20749-user-can-view-recorded-meetings -> origin/JY-20749-user-can-view-recorded-meetings
d94a285ae7..7ce96cb5fe JY-20808-low-priority-indexing-queue -> origin/JY-20808-low-priority-indexing-queue
* [new branch] JY-20842-remove-partial-updater -> origin/JY-20842-remove-partial-updater
* [new branch] JY-20920-fix-participant-flip -> origin/JY-20920-fix-participant-flip
* [new branch] secfix/npm-20260519 -> origin/secfix/npm-20260519
Updating cb4ebf0c36..5604af40cf
Fast-forward
app/Component/ES/ChunkSize.php | 54 +++++++++++++++++++
app/Component/ES/Processor/DTOs/SelectionList.php | 4 +-
app/Component/ES/Processor/TargetEntitiesSelector.php | 19 ++++---
app/Component/MeetingBot/Service/ParticipantMatcher.php | 46 ++++++++++++----
app/Exceptions/RateLimitException.php | 19 ++++++-
app/Http/Middleware/McpTierMiddleware.php | 27 ++--------
app/Jobs/Crm/MatchActivityCrmData.php | 47 ++++++++++++----
app/Jobs/Middleware/HandleHubspotRateLimit.php | 42 +++++++++++++++
app/Mcp/Servers/JiminnyServer.php | 2 +
app/Mcp/Tools/GetMeTool.php | 157 +++++++++++++++++++++++++++++++++++++++++++++++++++++
app/Models/Feature/FeatureEnum.php | 1 +
app/Services/Activity/HubSpot/ProviderResolver.php | 4 +-
app/Services/Activity/HubSpot/ProviderResolverInterface.php | 2 +-
app/Services/Activity/HubSpot/Providers/Provider.php | 2 +-
app/Services/Activity/HubSpot/Providers/ProviderKixie.php | 2 +-
app/Services/Activity/HubSpot/Providers/ProviderOrum.php | 2 +-
app/Services/Activity/HubSpot/Providers/ProviderTwilio.php | 2 +-
app/Services/Activity/HubSpot/Providers/ProviderTwilioFlex.php | 5 +-
app/Services/Activity/HubSpot/Service.php | 97 +++++++++++++++++++++++++++------
app/Services/Crm/Hubspot/Client.php | 132 +++++++++++++++++++++++++++++++++++++++++++++
app/Services/Crm/Hubspot/HubspotClientInterface.php | 15 ++++++
app/Services/Crm/Hubspot/Pagination/HubspotPaginationService.php | 21 ++++----
app/Services/Crm/Hubspot/Pagination/PaginationState.php | 2 +-
database/migrations/2026_05_13_124153_create_mcp_feature_flag.php | 25 +++++++++
tests/Feature/Mcp/GetMeToolFeatureTest.php | 140 +++++++++++++++++++++++++++++++++++++++++++++++
tests/Feature/Mcp/ListCallsToolFeatureTest.php | 2 +-
tests/Feature/Mcp/McpTestHelpersTrait.php | 19 ++++++-
tests/Unit/Component/ES/ChunkSizeTest.php | 50 +++++++++++++++++
tests/Unit/Component/ES/Processor/DTOs/SelectionListTest.php | 27 +++++++---
tests/Unit/Component/ES/Processor/TargetEntitiesSelectorTest.php | 39 ++++++++------
tests/Unit/Component/MeetingBot/Service/ParticipantMatcherTest.php | 68 ++++++++++++++++++++++-
tests/Unit/Exceptions/RateLimitExceptionTest.php | 56 +++++++++++++++++++
tests/Unit/Jobs/Crm/MatchActivityCrmDataTest.php | 8 +--
tests/Unit/Jobs/Middleware/HandleHubspotRateLimitTest.php | 151 +++++++++++++++++++++++++++++++++++++++++++++++++++
tests/Unit/Services/Activity/HubSpot/ServiceTest.php | 109 +++++++++++++++++++++++++++++++++++++
tests/Unit/Services/Crm/Hubspot/ClientTest.php | 250 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
tests/Unit/Services/Crm/Hubspot/Pagination/HubspotPaginationServiceTest.php | 283 +++++++++++++++++++++---------------------------------------------------------------------------
37 files changed, 1587 insertions(+), 344 deletions(-)
create mode 100644 app/Component/ES/ChunkSize.php
create mode 100644 app/Jobs/Middleware/HandleHubspotRateLimit.php
create mode 100644 app/Mcp/Tools/GetMeTool.php
create mode 100644 database/migrations/2026_05_13_124153_create_mcp_feature_flag.php
create mode 100644 tests/Feature/Mcp/GetMeToolFeatureTest.php
create mode 100644 tests/Unit/Component/ES/ChunkSizeTest.php
create mode 100644 tests/Unit/Exceptions/RateLimitExceptionTest.php
create mode 100644 tests/Unit/Jobs/Middleware/HandleHubspotRateLimitTest.php
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (master) $ git pull
Already up to date.
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (master) $ co -b JY-20676-delete-report-related-objects
Switched to a new branch 'JY-20676-delete-report-related-objects'
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20676-delete-report-related-objects) $ csfix
docker exec -it docker_lamp_1 ./vendor/bin/php-cs-fixer fix --config=.php-cs-fixer.dist.php -v --using-cache=no --diff
PHP CS Fixer 3.87.1 Alexander by Fabien Potencier, Dariusz Ruminski and contributors.
PHP runtime: 8.3.30
Running 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!
Loaded config default from ".php-cs-fixer.dist.php".
5690/5690 [▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓] 100%
1) app/Console/Commands/JiminnyDebugCommand.php (statement_indentation, blank_line_before_statement)
---------- begin diff ----------
--- /home/jiminny/app/Console/Commands/JiminnyDebugCommand.php
+++ /home/jiminny/app/Console/Commands/JiminnyDebugCommand.php
@@ -23,6 +23,7 @@
if ($action === 'redis-set') {
$this->testRedisSet();
+
return;
}
@@ -45,7 +46,7 @@
$ttl = 60;
try {
-// $result = Redis::set($testKey, $testValue, 'EX', $ttl, 'NX');
+ // $result = Redis::set($testKey, $testValue, 'EX', $ttl, 'NX');
$result = Redis::set($testKey, $testValue, ['nx', 'ex' => $ttl]);
if ($result) {
----------- end diff -----------
Fixed 1 of 5690 files i...
|
58091
|
NULL
|
NULL
|
NULL
|
|
58112
|
2047
|
7
|
2026-05-19T11:40:01.334773+00:00
|
/Users/lukas/.screenpipe/data/data/2026-05-19/1779 /Users/lukas/.screenpipe/data/data/2026-05-19/1779190801334_m2.jpg...
|
iTerm2
|
APP (docker)
|
1
|
NULL
|
monitor_2
|
NULL
|
NULL
|
NULL
|
NULL
|
Last login: Mon May 18 09:17:28 on ttys007
Poetry Last login: Mon May 18 09:17:28 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 (pipedrive-sdk-poc) $ co master
error: Your local changes to the following files would be overwritten by checkout:
PIPEDRIVE_V2_MIGRATION_TICKETS.md
Please commit your changes or stash them before you switch branches.
Aborting
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (pipedrive-sdk-poc) $ git pull
remote: Enumerating objects: 1047, done.
remote: Counting objects: 100% (832/832), done.
remote: Compressing objects: 100% (298/298), done.
remote: Total 1047 (delta 634), reused 596 (delta 534), pack-reused 215 (from 3)
Receiving objects: 100% (1047/1047), 353.16 KiB | 1.56 MiB/s, done.
Resolving deltas: 100% (687/687), completed with 107 local objects.
From github.com:jiminny/app
907c54896c..34656c53ed pipedrive-sdk-poc -> origin/pipedrive-sdk-poc
03325ec50f..4e7078fd8b JY-18091-upgrade-to-php-8-5 -> origin/JY-18091-upgrade-to-php-8-5
e7d231e163..bc6a3fce6b JY-20725-handle-HS-search-rate-limit -> origin/JY-20725-handle-HS-search-rate-limit
* [new branch] JY-20749-user-can-view-recorded-meetings -> origin/JY-20749-user-can-view-recorded-meetings
98ca281a04..e0351be069 JY-20808-low-priority-indexing-queue -> origin/JY-20808-low-priority-indexing-queue
569abb5149..3906a9238a JY-20835-mcp-enable-users-to-get-a-list-of-deals-and-their-details -> origin/JY-20835-mcp-enable-users-to-get-a-list-of-deals-and-their-details
ad6c2a86e8..50eb6afba9 JY-20846-mcp-enable-the-ai-to-know-details-about-the-user -> origin/JY-20846-mcp-enable-the-ai-to-know-details-about-the-user
* [new branch] JY-20893-chunk-control-per-update-target -> origin/JY-20893-chunk-control-per-update-target
31c62924a5..cb4ebf0c36 master -> origin/master
Updating 907c54896c..34656c53ed
Fast-forward
PIPEDRIVE_V2_MIGRATION_TICKETS.md | 52 ++++++++++++++++++++++++++++++++++++++++++++++++++++
1 file changed, 52 insertions(+)
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (pipedrive-sdk-poc) $ co master
M .env.local
M config/logging.php
Switched to branch 'master'
Your branch is behind 'origin/master' by 31 commits, and can be fast-forwarded.
(use "git pull" to update your local branch)
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (master) $ git pull
Updating 31c62924a5..cb4ebf0c36
Fast-forward
app/Component/ES/Processor/Traits/SelectEntityListTrait.php | 20 ------
app/Services/Calendar/CalendarActivityService.php | 46 +++++++++++++
app/Services/Calendar/Command/MapActivityData.php | 106 +++-------------------------
docs/mcp/explorer/explorer.html | 104 +++++++++++++++++++++++++---
docs/mcp/explorer/explorer.template.html | 102 ++++++++++++++++++++++++---
docs/mcp/tools-list.json | 373 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++-------
docs/mcp/tools.md | 117 +++++++++++++++++++++++--------
tests/Unit/Component/ES/AsyncUpdateElasticSearchTest.php | 16 +----
tests/Unit/Component/ES/Listeners/UpdateMultipleTargetsListenerTest.php | 10 ---
tests/Unit/Component/ES/Listeners/UpdateSingleTargetListenerTest.php | 6 --
tests/Unit/Component/ES/Processor/TargetEntitiesSelectorTest.php | 9 ---
tests/Unit/Component/ES/Processor/Traits/SelectEntityListTraitTest.php | 15 ++--
tests/Unit/Component/ES/UpdateProcessManagerTest.php | 2 -
tests/Unit/Services/Calendar/CalendarActivityServiceTest.php | 150 ++++++++++++++++++++++++++++++++++++++--
tests/Unit/Services/Calendar/Command/MapActivityDataTest.php | 78 ++-------------------
15 files changed, 832 insertions(+), 322 deletions(-)
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (master) $ co -b JY-20613-allow-owner-role-on-team-setup
Switched to a new branch 'JY-20613-allow-owner-role-on-team-setup'
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20613-allow-owner-role-on-team-setup) $ csfix
docker exec -it docker_lamp_1 ./vendor/bin/php-cs-fixer fix --config=.php-cs-fixer.dist.php -v --using-cache=no --diff
PHP CS Fixer 3.87.1 Alexander by Fabien Potencier, Dariusz Ruminski and contributors.
PHP runtime: 8.3.30
Running 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!
Loaded config default from ".php-cs-fixer.dist.php".
5682/5682 [▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓] 100%
Fixed 0 of 5682 files in 56.978 seconds, 67.00 MB memory used
What's next:
Try Docker Debug for seamless, persistent debugging tools in any container or image → docker debug docker_lamp_1
Learn more at [URL_WITH_CREDENTIALS] ~/jiminny/app (JY-20613-allow-owner-role-on-team-setup) $ csfix
docker exec -it docker_lamp_1 ./vendor/bin/php-cs-fixer fix --config=.php-cs-fixer.dist.php -v --using-cache=no --diff
PHP CS Fixer 3.87.1 Alexander by Fabien Potencier, Dariusz Ruminski and contributors.
PHP runtime: 8.3.30
Running 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!
Loaded config default from ".php-cs-fixer.dist.php".
5682/5682 [▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓] 100%
Fixed 0 of 5682 files in 49.910 seconds, 60.00 MB memory used
What's next:
Try Docker Debug for seamless, persistent debugging tools in any container or image → docker debug docker_lamp_1
Learn more at [URL_WITH_CREDENTIALS] ~/jiminny/app (JY-20613-allow-owner-role-on-team-setup) $ git pull
remote: Enumerating objects: 248, done.
remote: Counting objects: 100% (128/128), done.
remote: Compressing objects: 100% (23/23), done.
remote: Total 59 (delta 43), reused 44 (delta 33), pack-reused 0 (from 0)
Unpacking objects: 100% (59/59), 10.48 KiB | 228.00 KiB/s, done.
From github.com:jiminny/app
b7df560451..190239dfd4 JY-20613-allow-owner-role-on-team-setup -> origin/JY-20613-allow-owner-role-on-team-setup
e0351be069..d94a285ae7 JY-20808-low-priority-indexing-queue -> origin/JY-20808-low-priority-indexing-queue
* [new branch] JY-20920-fix-participant-matcher -> origin/JY-20920-fix-participant-matcher
cb4ebf0c36..90bca4e4b2 master -> origin/master
Merge made by the 'ort' strategy.
app/Component/ES/ChunkSize.php | 54 +++++++++++++++++++++++++++
app/Component/ES/Processor/DTOs/SelectionList.php | 4 +-
app/Component/ES/Processor/TargetEntitiesSelector.php | 19 ++++++----
app/Http/Middleware/McpTierMiddleware.php | 27 +++-----------
app/Mcp/Servers/JiminnyServer.php | 2 +
app/Mcp/Tools/GetMeTool.php | 157 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
app/Models/Feature/FeatureEnum.php | 1 +
database/migrations/2026_05_13_124153_create_mcp_feature_flag.php | 25 +++++++++++++
front-end/src/components/Settings/Kiosk/modals/EditTeamModal/EditTeamModal.vue | 52 ++++++++++++++++++--------
front-end/src/components/Settings/Kiosk/modals/EditTeamModal/__tests__/EditTeamModal.spec.js | 14 +++++++
tests/Feature/Mcp/GetMeToolFeatureTest.php | 140 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
tests/Feature/Mcp/ListCallsToolFeatureTest.php | 2 +-
tests/Feature/Mcp/McpTestHelpersTrait.php | 19 +++++++++-
tests/Unit/Component/ES/ChunkSizeTest.php | 50 +++++++++++++++++++++++++
tests/Unit/Component/ES/Processor/DTOs/SelectionListTest.php | 27 ++++++++++----
tests/Unit/Component/ES/Processor/TargetEntitiesSelectorTest.php | 39 +++++++++++---------
16 files changed, 557 insertions(+), 75 deletions(-)
create mode 100644 app/Component/ES/ChunkSize.php
create mode 100644 app/Mcp/Tools/GetMeTool.php
create mode 100644 database/migrations/2026_05_13_124153_create_mcp_feature_flag.php
create mode 100644 tests/Feature/Mcp/GetMeToolFeatureTest.php
create mode 100644 tests/Unit/Component/ES/ChunkSizeTest.php
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20613-allow-owner-role-on-team-setup) $ git push
Enumerating objects: 40, done.
Counting objects: 100% (34/34), done.
Delta compression using up to 8 threads
Compressing objects: 100% (18/18), done.
Writing objects: 100% (18/18), 1.58 KiB | 1.58 MiB/s, done.
Total 18 (delta 15), reused 0 (delta 0), pack-reused 0
remote: Resolving deltas: 100% (15/15), completed with 13 local objects.
To github.com:jiminny/app.git
190239dfd4..ec1b261264 JY-20613-allow-owner-role-on-team-setup -> JY-20613-allow-owner-role-on-team-setup
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20613-allow-owner-role-on-team-setup) $ gbr
* JY-20613-allow-owner-role-on-team-setup
pipedrive-sdk-poc
master
JY-20903-update_activity-stage-on-opportunity-change
JY-20904-fix-update-es-on-activity-command
JY-20891-improve-sms-text-relays
JY-20725-handle-HS-search-rate-limit
JY-20818-move-AJ-reports-to-separated-datadog-metric
JY-20773-fix-automated-reports-user-pilot-tracking
JY-20157-AJ-report-not-send-notification
JY-20508-notify-before-AJ-report-expiration
JY-20372-ai-reports-promotion-pages
JY-20352-sync-opportunities-without-a-local-owner-user-id-is-null
JY-20738-debug-AJ-tracking-UP
a
JY-18909-automated-reports-ask-jiminny
JY-20692-fix-integration-app-[API_KEY]
JY-20553-debug-crm-sync-delays
JY-20698-fix-SF-activity-types-on-new-playbook
JY-20543-AJ-report-tracking
JY-20384-handle-auto-sync-with-no-access-to-event-type
JY-20458-ask-jiminny-user-definitions
JY-19666-fix-import-contacts-account-association
JY-19666-HS-import-contacts-and-accounts-batch-job
JY-20458-Ask-Jiminny-Reports
JY-20200-batch-update-CRM-objects-Salesforce
JY-19666-HS-webhooks-add-contact-and-company
JY-20348-trigger-setup-DI-layout-on-team-creation
JY-20326-refactor-info-message-in-command
JY-20317-fix-auto-log-delay-issue-on-all-channels-disabled
JY-20312-remove-on-update-change-last-synced-at-crm-configurations
JY-20306-SF-skip-auto-sync-for-task-based-playbook
JY-20192-remove-deleted-team-from-saved-search-filters
JY-20197-import-opportunity-batch-job
JY-20293-enable-status-field-for-pipedrive-deals
JY-20191-remove-commands-interactive-prompts
JY-20118-change-default-sync-strategy
JY-20183-add-cache-on-auto-log-delay
JY-20197-add-import-opportunity-batch-job
20118-hs-opportunity-make-webhook-strategy-default
JY-20118-make-default-hs-opportunity-sync-strategy-webhook-based
JY-20196-handle-opportunity-without-note
JY-20118-improve-opportunity-import
JY-20189-handle-activity-search-on-deleted-groups
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20613-allow-owner-role-on-team-setup) $ co JY-20725-handle-HS-search-rate-limit
M .env.local
M config/logging.php
Switched to branch 'JY-20725-handle-HS-search-rate-limit'
Your branch is behind 'origin/JY-20725-handle-HS-search-rate-limit' by 439 commits, and can be fast-forwarded.
(use "git pull" to update your local branch)
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20725-handle-HS-search-rate-limit) $ git pull
Updating 0f3e438941..bc6a3fce6b
Fast-forward
.gitignore | 3 +-
.windsurfrules | 168 ++---
CLAUDE.md | 1 +
app/Component/ActivityAnalytics/Service/CalculateTalkTimeOffsetsFromTranscription.php | 24 +-
app/Component/AiActivityType/Services/AiActivityTypeEligibilityChecker.php | 28 +-
app/Component/AiAutomation/Actions/PrepareUpdateDtoAction.php | 32 +-
app/Component/AiAutomation/Services/CrmFillingEligibilityChecker.php | 47 ++
app/Component/AiAutomation/TestCrmAiPromptService.php | 14 +
app/Component/AiCallScoring/Services/AiCallScoringEligibilityChecker.php | 9 +
app/Component/ES/ElasticSearchDocumentPartialUpdater.php | 13 +-
app/Component/ES/ElasticSearchWorkerManager.php | 86 ---
app/Component/ES/Processor/Actions/LoadDocumentsAction.php | 80 +--
app/Component/ES/Processor/EntityQueryBuilder.php | 12 +-
app/Component/ES/Processor/TargetEntitiesSelector.php | 2 +-
app/Component/ES/Processor/Traits/SkipActivityTrait.php | 25 -
app/Component/ES/Repositories/EsResetActivityRepository.php | 11 +-
app/Component/ES/Worker/ActivityWorker.php | 73 --
app/Component/ES/Worker/EntityWorker.php | 44 --
app/Component/ES/Worker/WorkerAmount.php | 60 --
app/Component/ES/Worker/WorkerInterface.php | 15 -
app/Component/ElasticSearch/Contract/Searchable.php | 4 +
app/Component/Encoding/Job/AnalyzeTrackChannelsJob.php | 20 +-
app/Component/Encoding/Service/GenerateSpeechFromSilenceService.php | 85 ++-
app/Component/FFMpeg/Services/GetSpeechIntervalsService.php | 18 +-
app/Component/LanguageDetection/Services/FindSpeechTimeService.php | 22 +-
app/Component/Nudge/Job/ProcessOrganisationImmediateNudgesJob.php | 218 +++++-
app/Component/ParagraphBreaker/Services/TranscriptionParagraphsService.php | 4 +
app/Component/ParticipantSpeech/Services/ParticipantSpeechesCreator.php | 33 +
app/Component/ParticipantSpeech/Services/ParticipantSpeechesDeleter.php | 15 +
app/Component/ParticipantSpeech/Services/ParticipantSpeechesProvider.php | 51 +-
app/Component/ParticipantSpeech/Services/ParticipantSpeechesUploader.php | 36 +
app/Component/ProphetAi/Exceptions/InsufficientTranscriptException.php | 11 +
app/Component/Transcription/DTO/Http/Transcription/AssemblyAI/AssemblyAI/NoAssemblyIdException.php | 11 +
app/Component/Transcription/DTO/Http/Transcription/AssemblyAI/AssemblyAI/SuccessfulResponse.php | 6 +
app/Component/Transcription/DTO/Http/Transcription/TranscriptionIsNotCorrectFormatException.php | 11 +
app/Component/Transcription/Diarization/Services/GetNormalizedParticipantSpeechesService.php | 23 +-
app/Component/Transcription/Diarization/Source/MeetingBotSource.php | 16 +-
app/Component/Transcription/TranscriptionProcessor/TranscriptionProcessor.php | 3 +
app/Console/Commands/Activities/ActivityHardDeleteCommand.php | 4 +-
app/Console/Commands/Activities/Copy.php | 2 +
app/Console/Commands/Activities/SetupIntegration/TwilioSetS3RecordingCredentialsCommand.php | 119 ++++
app/Console/Commands/Activities/UpdateActivityElasticSearchDocumentCommand.php | 10 +-
app/Console/Commands/Crm/BackfillOpportunityUserFromAccountCommand.php | 126 ++++
app/Console/Commands/Elasticsearch/AsyncUpdateEsActivities.php | 19 -
app/Console/Commands/Elasticsearch/AsyncUpdateEsEntities.php | 50 +-
app/Console/Commands/Elasticsearch/ResetAsyncElasticSearchCommand.php | 30 +-
app/Console/Commands/GeckoExport/GeckoExportParticipantSpeechesCommand.php | 14 +-
app/Console/Commands/IssueMcpTokenCommand.php | 84 +++
app/Console/Commands/JiminnyDebugCommand.php | 7 +-
app/Console/Commands/Tracks/CleanupActivityTracksCommand.php | 2 +-
app/Console/Kernel.php | 6 +-
app/Contracts/Services/Calendar/CalendarTrait.php | 80 ++-
app/Events/AutomatedReports/AutomatedReportGenerated.php | 3 +
app/Http/Controllers/API/AiCallScoring/AiScorecardController.php | 7 +-
app/Http/Controllers/API/TeamAiAutomationController.php | 8 +
app/Http/Controllers/CustomerApi/CustomerApiController.php | 4 +-
app/Http/Controllers/Kiosk/ActivityController.php | 58 +-
app/Http/Controllers/Settings/PlaybookController.php | 15 +-
app/Http/Kernel.php | 23 +
app/Http/Middleware/McpAuditMiddleware.php | 156 ++++
app/Http/Middleware/McpTierMiddleware.php | 54 ++
app/Http/Requests/API/V2/ZapierUploadActivityRequest.php | 28 +-
app/Jobs/Activity/Import/ImportTwilioVideoSpeechesJob.php | 25 +-
app/Jobs/Activity/Import/IsActivityReadyForProcessingJob.php | 10 +-
app/Jobs/Calendar/SetupCalendarSync.php | 21 +-
app/Jobs/ImportRemoteTrackJob.php | 96 ++-
app/Jobs/Mailbox/EmailTextRelay.php | 15 +-
app/Mcp/Contracts/McpCallRepositoryInterface.php | 30 +
app/Mcp/DTO/ListCallsFilters.php | 29 +
app/Mcp/Errors/McpError.php | 123 ++++
app/Mcp/Repositories/McpActivityHydrator.php | 145 ++++
app/Mcp/Repositories/McpCallRepository.php | 84 +++
app/Mcp/Repositories/McpElasticCallRepository.php | 171 +++++
app/Mcp/Servers/JiminnyServer.php | 38 +
app/Mcp/Tools/ListCallsTool.php | 205 ++++++
app/Models/Activity.php | 10 +-
app/Models/Activity/Transcription.php | 17 +-
app/Models/ElasticSearch/OpportunityElasticSearchTrait.php | 5 +
app/Models/Participant.php | 1 +
app/Providers/AppServiceProvider.php | 22 +
app/Repositories/Crm/ContactRepository.php | 69 +-
app/Repositories/ParticipantSpeechRepository.php | 13 +-
app/Services/Activity/ParticipantsService.php | 19 +-
app/Services/Activity/Twilio/S3RecordingCredentialsService.php | 82 +++
app/Services/ActivityService.php | 21 +-
app/Services/Calendar/CalendarActivityService.php | 46 ++
app/Services/Calendar/Command/ImportParticipants.php | 1 +
app/Services/Calendar/Command/MapActivityData.php | 106 +--
app/Services/Calendar/GoogleCalendarService.php | 12 +-
app/Services/Crm/Close/Processor/OpportunityProcessor.php | 2 +-
app/Services/Crm/Close/Service.php | 22 +-
app/Services/Crm/Copper/Service.php | 12 +-
app/Services/Crm/Hubspot/Service.php | 154 +++-
app/Services/Crm/Hubspot/ServiceTraits/OpportunitySyncTrait.php | 88 ++-
app/Services/Crm/IntegrationApp/ServiceTraits/SyncCrmEntitiesTrait.php | 22 +-
app/Services/Crm/Pipedrive/Service.php | 17 +-
app/Services/Crm/Salesforce/Service.php | 42 +-
app/Services/Mail/Office/EmailApiClient.php | 129 +---
app/Services/RecallAI/Commands/ScheduleBotCommand.php | 39 +-
app/Services/RecallAI/RecallAIService.php | 22 +-
composer.json | 3 +-
composer.lock | 87 ++-
config/mcp.php | 23 +
database/migrations/2026_04_30_120000_create_mcp_audit_log_table.php | 36 +
docs/mcp/explorer/explorer.html | 697 ++++++++++++++++++
docs/mcp/explorer/explorer.template.html | 697 ++++++++++++++++++
docs/mcp/explorer/generate.js | 215 ++++++
docs/mcp/explorer/tool-explorer-meta.json | 11 +
docs/mcp/tools-list.json | 2536 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
docs/mcp/tools.md | 621 ++++++++++++++++
front-end/package.json | 4 +-
front-end/src/components/Settings/OrgSettings/AiAutomation/CrmFilling/TemplateFieldForm.vue | 28 +-
front-end/src/components/Settings/OrgSettings/Playbooks/AddEditPlaybook.vue | 10 +
front-end/src/components/playback/comments/ActivityComment.less | 10 +-
front-end/src/components/shared/PromptTester/PromptTester.vue | 12 +-
front-end/src/components/shared/__tests__/PromptTester.spec.js | 35 +
front-end/src/components/shared/modals/EntityPickerModal/__tests__/useEntitiesCache.spec.ts | 37 +
front-end/src/components/shared/modals/EntityPickerModal/useEntitiesCache.ts | 9 +
front-end/yarn.lock | 16 +-
phpstan-baseline.neon | 50 --
routes/api.php | 11 +
sonar-project.properties | 91 ++-
tests/Feature/Component/Nudge/ProcessOrganisationImmediateNudgesJobTest.php | 534 ++++++++++++++
tests/Feature/Jobs/ImportRemoteTrackJobTest.php | 283 +++++++-
tests/Feature/Mcp/IssueMcpTokenCommandTest.php | 53 ++
tests/Feature/Mcp/ListCallsToolElasticFeatureTest.php | 155 ++++
tests/Feature/Mcp/ListCallsToolFeatureTest.php | 352 ++++++++++
tests/Feature/Mcp/McpTestHelpersTrait.php | 77 ++
tests/Feature/Services/Team/TeamDeleteHandlers/Retention/RetentionRepositoryHandlerTest.php | 1 +
tests/Stubs/SentryStub.php | 18 +
tests/Unit/Component/ActivityAnalytics/Service/CalculateTalkTimeOffsetFromTranscriptionTest.php | 28 +-
tests/Unit/Component/AiActivityType/Services/AiActivityTypeEligibilityCheckerTest.php | 103 ++-
tests/Unit/Component/AiAutomation/Actions/PrepareUpdateDtoActionTest.php | 91 +++
tests/Unit/Component/AiAutomation/Services/CrmFillingEligibilityCheckerTest.php | 124 ++++
tests/Unit/Component/AiAutomation/TestCrmAiPromptServiceTest.php | 67 +-
tests/Unit/Component/AiCallScoring/Services/AiCallScoringEligibilityCheckerTest.php | 55 ++
tests/Unit/Component/ES/ElasticSearchWorkerManagerTest.php | 135 ----
tests/Unit/Component/ES/Processor/Actions/LoadDocumentsActionTest.php | 220 ++++++
tests/Unit/Component/ES/Processor/EntityQueryBuilderTest.php | 21 +-
tests/Unit/Component/ES/Processor/Traits/SkipActivityTraitTest.php | 51 --
tests/Unit/Component/ES/Worker/ActivityWorkerTest.php | 174 -----
tests/Unit/Component/ES/Worker/EntityWorkerTest.php | 97 ---
tests/Unit/Component/ES/Worker/WorkerAmountTest.php | 116 ---
tests/Unit/Component/Encoding/Job/AnalyzeTrackChannelsJobTest.php | 52 +-
tests/Unit/Component/Encoding/Service/GenerateSpeechFromSilenceServiceTest.php | 171 ++---
tests/Unit/Component/FFMpeg/Services/GetSpeechIntervalsTest.php | 36 +-
tests/Unit/Component/LanguageDetection/Services/FindSpeechTimeServiceTest.php | 20 +-
tests/Unit/Component/MobileSettings/MobileSettingsControllerTest.php | 5 +-
tests/Unit/Component/ParticipantSpeech/Services/ParticipantSpeechesCreatorTest.php | 75 ++
tests/Unit/Component/ParticipantSpeech/Services/ParticipantSpeechesDeleterTest.php | 63 ++
tests/Unit/Component/ParticipantSpeech/Services/ParticipantSpeechesProviderTest.php | 134 ++++
tests/Unit/Component/ParticipantSpeech/Services/ParticipantSpeechesUploaderTest.php | 57 ++
tests/Unit/Component/Transcription/Diarization/Services/GetNormalizedParticipantSpeechesServiceTest.php | 51 +-
tests/Unit/Component/Transcription/Diarization/Source/MeetingBotSourceTest.php | 29 +-
tests/Unit/Contracts/Services/Calendar/CalendarTraitTest.php | 58 +-
tests/Unit/Http/Controllers/Kiosk/ActivityControllerTest.php | 159 +++++
tests/Unit/Jobs/Activity/Import/ImportTwilioVideoSpeechesJobTest.php | 22 +-
tests/Unit/Jobs/Activity/Import/IsActivityReadyForProcessingJobTest.php | 26 +-
tests/Unit/Jobs/Calendar/SetupCalendarSyncTest.php | 25 -
tests/Unit/Services/Activity/ParticipantsServiceTest.php | 12 +-
tests/Unit/Services/Activity/Twilio/S3RecordingCredentialsServiceTest.php | 180 +++++
tests/Unit/Services/ActivityServiceTest.php | 132 ++++
tests/Unit/Services/Calendar/CalendarActivityServiceTest.php | 150 +++-
tests/Unit/Services/Calendar/Command/ImportParticipantsTest.php | 6 +-
tests/Unit/Services/Calendar/Command/MapActivityDataTest.php | 78 +-
tests/Unit/Services/Calendar/GoogleCalendarServiceTest.php | 116 +++
tests/Unit/Services/Crm/Close/ServiceTest.php | 165 +++++
tests/Unit/Services/Crm/Hubspot/ServiceTest.php | 272 ++++++-
tests/Unit/Services/Crm/Hubspot/ServiceTraits/OpportunitySyncTest.php | 25 +-
tests/Unit/Services/Crm/Hubspot/ServiceTraits/OpportunitySyncTraitMatchActivitiesTest.php | 3 +-
tests/Unit/Services/Crm/IntegrationApp/ServiceTraits/SyncCrmEntitiesTraitOpportunitiesTest.php | 40 ++
tests/Unit/Services/Crm/Pipedrive/ImportOpportunityMatchActivitiesTest.php | 2 +
tests/Unit/Services/Crm/Salesforce/ServiceTest.php | 139 ++++
tests/Unit/Services/Mail/Office/EmailApiClientTest.php | 195 ++---
tests/Unit/Services/RecallAI/RecallAIServiceTest.php | 24 +-
175 files changed, 12562 insertions(+), 2162 deletions(-)
create mode 120000 CLAUDE.md
create mode 100644 app/Component/AiAutomation/Services/CrmFillingEligibilityChecker.php
delete mode 100644 app/Component/ES/ElasticSearchWorkerManager.php
delete mode 100644 app/Component/ES/Processor/Traits/SkipActivityTrait.php
delete mode 100644 app/Component/ES/Worker/ActivityWorker.php
delete mode 100644 app/Component/ES/Worker/EntityWorker.php
delete mode 100644 app/Component/ES/Worker/WorkerAmount.php
delete mode 100644 app/Component/ES/Worker/WorkerInterface.php
create mode 100644 app/Component/ProphetAi/Exceptions/InsufficientTranscriptException.php
create mode 100644 app/Component/Transcription/DTO/Http/Transcription/AssemblyAI/AssemblyAI/NoAssemblyIdException.php
create mode 100644 app/Component/Transcription/DTO/Http/Transcription/TranscriptionIsNotCorrectFormatException.php
create mode 100644 app/Console/Commands/Activities/SetupIntegration/TwilioSetS3RecordingCredentialsCommand.php
create mode 100644 app/Console/Commands/Crm/BackfillOpportunityUserFromAccountCommand.php
delete mode 100644 app/Console/Commands/Elasticsearch/AsyncUpdateEsActivities.php
create mode 100644 app/Console/Commands/IssueMcpTokenCommand.php
create mode 100644 app/Http/Middleware/McpAuditMiddleware.php
create mode 100644 app/Http/Middleware/McpTierMiddleware.php
create mode 100644 app/Mcp/Contracts/McpCallRepositoryInterface.php
create mode 100644 app/Mcp/DTO/ListCallsFilters.php
create mode 100644 app/Mcp/Errors/McpError.php
create mode 100644 app/Mcp/Repositories/McpActivityHydrator.php
create mode 100644 app/Mcp/Repositories/McpCallRepository.php
create mode 100644 app/Mcp/Repositories/McpElasticCallRepository.php
create mode 100644 app/Mcp/Servers/JiminnyServer.php
create mode 100644 app/Mcp/Tools/ListCallsTool.php
create mode 100644 app/Services/Activity/Twilio/S3RecordingCredentialsService.php
create mode 100644 config/mcp.php
create mode 100644 database/migrations/2026_04_30_120000_create_mcp_audit_log_table.php
create mode 100644 docs/mcp/explorer/explorer.html
create mode 100644 docs/mcp/explorer/explorer.template.html
create mode 100644 docs/mcp/explorer/generate.js
create mode 100644 docs/mcp/explorer/tool-explorer-meta.json
create mode 100644 docs/mcp/tools-list.json
create mode 100644 docs/mcp/tools.md
create mode 100644 front-end/src/components/shared/modals/EntityPickerModal/__tests__/useEntitiesCache.spec.ts
create mode 100644 tests/Feature/Component/Nudge/ProcessOrganisationImmediateNudgesJobTest.php
create mode 100644 tests/Feature/Mcp/IssueMcpTokenCommandTest.php
create mode 100644 tests/Feature/Mcp/ListCallsToolElasticFeatureTest.php
create mode 100644 tests/Feature/Mcp/ListCallsToolFeatureTest.php
create mode 100644 tests/Feature/Mcp/McpTestHelpersTrait.php
create mode 100644 tests/Stubs/SentryStub.php
create mode 100644 tests/Unit/Component/AiAutomation/Services/CrmFillingEligibilityCheckerTest.php
delete mode 100644 tests/Unit/Component/ES/ElasticSearchWorkerManagerTest.php
create mode 100644 tests/Unit/Component/ES/Processor/Actions/LoadDocumentsActionTest.php
delete mode 100644 tests/Unit/Component/ES/Processor/Traits/SkipActivityTraitTest.php
delete mode 100644 tests/Unit/Component/ES/Worker/ActivityWorkerTest.php
delete mode 100644 tests/Unit/Component/ES/Worker/EntityWorkerTest.php
delete mode 100644 tests/Unit/Component/ES/Worker/WorkerAmountTest.php
create mode 100644 tests/Unit/Component/ParticipantSpeech/Services/ParticipantSpeechesCreatorTest.php
create mode 100644 tests/Unit/Http/Controllers/Kiosk/ActivityControllerTest.php
create mode 100644 tests/Unit/Services/Activity/Twilio/S3RecordingCredentialsServiceTest.php
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20725-handle-HS-search-rate-limit) $ git status
On branch master
Your branch is behind 'origin/master' by 114 commits, and can be fast-forwarded.
(use "git pull" to update your local branch)
Changes not staged for commit:
(use "git add <file>..." to update what will be committed)
(use "git restore <file>..." to discard changes in working directory)
modified: .env.local
modified: app/Component/SCIM/Constants.php
modified: app/Component/SCIM/ScimProvisioning.php
modified: app/Component/Twilio/Conference/ConferenceManager/SoftPhoneManager.php
modified: app/Console/Commands/JiminnyDebugCommand.php
modified: app/DTO/SCIM/AAD/Request/CoreUserRequest.php
modified: app/DTO/SCIM/AAD/Response/CoreUser.php
modified: app/Services/Telephony/TextMessagingService.php
modified: config/logging.php
Untracked files:
(use "git add <file>..." to include in what will be committed)
.env.nikilocal
.env.other
WEBHOOK_FILTERING_IMPLEMENTATION.md
app/Component/SCIM/Mutators/Attributes/User/RoleAttr.php
app/Console/Commands/Crm/Hubspot/SimulateWebhooksCommand.php
app/Console/Commands/Reports/CreateMockAskJiminnyReportResultCommand.php
app/Rules/ListenerRoleCannotHaveAdminOrManagerPermissionRule.php
ids.txt
public/favicon.ico
raw_sql_query.sql
tests/Unit/Component/SCIM/Mutators/Attributes/User/RoleAttrTest.php
tests/Unit/Policies/CanAccessAiReportsTest.php
tests/Unit/Rules/ListenerRoleCannotHaveAdminOrManagerPermissionRuleTest.php
no changes added to commit (use "git add" and/or "git commit -a")
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (master) $ git pull
remote: Enumerating objects: 306, done.
remote: Counting objects: 100% (299/299), done.
remote: Compressing objects: 100% (183/183), done.
remote: Total 306 (delta 213), reused 171 (delta 116), pack-reused 7 (from 1)
Receiving objects: 100% (306/306), 80.12 KiB | 1000.00 KiB/s, done.
Resolving deltas: 100% (213/213), completed with 53 local objects.
From github.com:jiminny/app
90bca4e4b2..5604af40cf master -> origin/master
4e7078fd8b..0b8343d179 JY-18091-upgrade-to-php-8-5 -> origin/JY-18091-upgrade-to-php-8-5
098eeaa087..d5a447e492 JY-20613-allow-owner-role-on-team-setup -> origin/JY-20613-allow-owner-role-on-team-setup
c3a76ace91..af65249d0f JY-20749-user-can-view-recorded-meetings -> origin/JY-20749-user-can-view-recorded-meetings
d94a285ae7..7ce96cb5fe JY-20808-low-priority-indexing-queue -> origin/JY-20808-low-priority-indexing-queue
* [new branch] JY-20842-remove-partial-updater -> origin/JY-20842-remove-partial-updater
* [new branch] JY-20920-fix-participant-flip -> origin/JY-20920-fix-participant-flip
* [new branch] secfix/npm-20260519 -> origin/secfix/npm-20260519
Updating cb4ebf0c36..5604af40cf
Fast-forward
app/Component/ES/ChunkSize.php | 54 +++++++++++++++++++
app/Component/ES/Processor/DTOs/SelectionList.php | 4 +-
app/Component/ES/Processor/TargetEntitiesSelector.php | 19 ++++---
app/Component/MeetingBot/Service/ParticipantMatcher.php | 46 ++++++++++++----
app/Exceptions/RateLimitException.php | 19 ++++++-
app/Http/Middleware/McpTierMiddleware.php | 27 ++--------
app/Jobs/Crm/MatchActivityCrmData.php | 47 ++++++++++++----
app/Jobs/Middleware/HandleHubspotRateLimit.php | 42 +++++++++++++++
app/Mcp/Servers/JiminnyServer.php | 2 +
app/Mcp/Tools/GetMeTool.php | 157 +++++++++++++++++++++++++++++++++++++++++++++++++++++
app/Models/Feature/FeatureEnum.php | 1 +
app/Services/Activity/HubSpot/ProviderResolver.php | 4 +-
app/Services/Activity/HubSpot/ProviderResolverInterface.php | 2 +-
app/Services/Activity/HubSpot/Providers/Provider.php | 2 +-
app/Services/Activity/HubSpot/Providers/ProviderKixie.php | 2 +-
app/Services/Activity/HubSpot/Providers/ProviderOrum.php | 2 +-
app/Services/Activity/HubSpot/Providers/ProviderTwilio.php | 2 +-
app/Services/Activity/HubSpot/Providers/ProviderTwilioFlex.php | 5 +-
app/Services/Activity/HubSpot/Service.php | 97 +++++++++++++++++++++++++++------
app/Services/Crm/Hubspot/Client.php | 132 +++++++++++++++++++++++++++++++++++++++++++++
app/Services/Crm/Hubspot/HubspotClientInterface.php | 15 ++++++
app/Services/Crm/Hubspot/Pagination/HubspotPaginationService.php | 21 ++++----
app/Services/Crm/Hubspot/Pagination/PaginationState.php | 2 +-
database/migrations/2026_05_13_124153_create_mcp_feature_flag.php | 25 +++++++++
tests/Feature/Mcp/GetMeToolFeatureTest.php | 140 +++++++++++++++++++++++++++++++++++++++++++++++
tests/Feature/Mcp/ListCallsToolFeatureTest.php | 2 +-
tests/Feature/Mcp/McpTestHelpersTrait.php | 19 ++++++-
tests/Unit/Component/ES/ChunkSizeTest.php | 50 +++++++++++++++++
tests/Unit/Component/ES/Processor/DTOs/SelectionListTest.php | 27 +++++++---
tests/Unit/Component/ES/Processor/TargetEntitiesSelectorTest.php | 39 ++++++++------
tests/Unit/Component/MeetingBot/Service/ParticipantMatcherTest.php | 68 ++++++++++++++++++++++-
tests/Unit/Exceptions/RateLimitExceptionTest.php | 56 +++++++++++++++++++
tests/Unit/Jobs/Crm/MatchActivityCrmDataTest.php | 8 +--
tests/Unit/Jobs/Middleware/HandleHubspotRateLimitTest.php | 151 +++++++++++++++++++++++++++++++++++++++++++++++++++
tests/Unit/Services/Activity/HubSpot/ServiceTest.php | 109 +++++++++++++++++++++++++++++++++++++
tests/Unit/Services/Crm/Hubspot/ClientTest.php | 250 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
tests/Unit/Services/Crm/Hubspot/Pagination/HubspotPaginationServiceTest.php | 283 +++++++++++++++++++++---------------------------------------------------------------------------
37 files changed, 1587 insertions(+), 344 deletions(-)
create mode 100644 app/Component/ES/ChunkSize.php
create mode 100644 app/Jobs/Middleware/HandleHubspotRateLimit.php
create mode 100644 app/Mcp/Tools/GetMeTool.php
create mode 100644 database/migrations/2026_05_13_124153_create_mcp_feature_flag.php
create mode 100644 tests/Feature/Mcp/GetMeToolFeatureTest.php
create mode 100644 tests/Unit/Component/ES/ChunkSizeTest.php
create mode 100644 tests/Unit/Exceptions/RateLimitExceptionTest.php
create mode 100644 tests/Unit/Jobs/Middleware/HandleHubspotRateLimitTest.php
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (master) $ git pull
Already up to date.
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (master) $ co -b JY-20676-delete-report-related-objects
Switched to a new branch 'JY-20676-delete-report-related-objects'
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20676-delete-report-related-objects) $ csfix
docker exec -it docker_lamp_1 ./vendor/bin/php-cs-fixer fix --config=.php-cs-fixer.dist.php -v --using-cache=no --diff
PHP CS Fixer 3.87.1 Alexander by Fabien Potencier, Dariusz Ruminski and contributors.
PHP runtime: 8.3.30
Running 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!
Loaded config default from ".php-cs-fixer.dist.php".
5690/5690 [▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓] 100%
1) app/Console/Commands/JiminnyDebugCommand.php (statement_indentation, blank_line_before_statement)
---------- begin diff ----------
--- /home/jiminny/app/Console/Commands/JiminnyDebugCommand.php
+++ /home/jiminny/app/Console/Commands/JiminnyDebugCommand.php
@@ -23,6 +23,7 @@
if ($action === 'redis-set') {
$this->testRedisSet();
+
return;
}
@@ -45,7 +46,7 @@
$ttl = 60;
try {
-// $result = Redis::set($testKey, $testValue, 'EX', $ttl, 'NX');
+ // $result = Redis::set($testKey, $testValue, 'EX', $ttl, 'NX');
$result = Redis::set($testKey, $testValue, ['nx', 'ex' => $ttl]);
if ($result) {
----------- end diff -----------
Fixed 1 of 5690 files i...
|
[{"role":"AXTextArea","text [{"role":"AXTextArea","text":"Last login: Mon May 18 09:17:28 on ttys007\n\nPoetry could not find a pyproject.toml file in /Users/lukas/jiminny/app or its parents\n\nPoetry could not find a pyproject.toml file in /Users/lukas/jiminny/app or its parents\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (pipedrive-sdk-poc) $ co master\nerror: Your local changes to the following files would be overwritten by checkout:\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tPIPEDRIVE_V2_MIGRATION_TICKETS.md\nPlease commit your changes or stash them before you switch branches.\nAborting\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (pipedrive-sdk-poc) $ git pull\nremote: Enumerating objects: 1047, done.\nremote: Counting objects: 100% (832/832), done.\nremote: Compressing objects: 100% (298/298), done.\nremote: Total 1047 (delta 634), reused 596 (delta 534), pack-reused 215 (from 3)\nReceiving objects: 100% (1047/1047), 353.16 KiB | 1.56 MiB/s, done.\nResolving deltas: 100% (687/687), completed with 107 local objects.\nFrom github.com:jiminny/app\n 907c54896c..34656c53ed pipedrive-sdk-poc -> origin/pipedrive-sdk-poc\n 03325ec50f..4e7078fd8b JY-18091-upgrade-to-php-8-5 -> origin/JY-18091-upgrade-to-php-8-5\n e7d231e163..bc6a3fce6b JY-20725-handle-HS-search-rate-limit -> origin/JY-20725-handle-HS-search-rate-limit\n * [new branch] JY-20749-user-can-view-recorded-meetings -> origin/JY-20749-user-can-view-recorded-meetings\n 98ca281a04..e0351be069 JY-20808-low-priority-indexing-queue -> origin/JY-20808-low-priority-indexing-queue\n 569abb5149..3906a9238a JY-20835-mcp-enable-users-to-get-a-list-of-deals-and-their-details -> origin/JY-20835-mcp-enable-users-to-get-a-list-of-deals-and-their-details\n ad6c2a86e8..50eb6afba9 JY-20846-mcp-enable-the-ai-to-know-details-about-the-user -> origin/JY-20846-mcp-enable-the-ai-to-know-details-about-the-user\n * [new branch] JY-20893-chunk-control-per-update-target -> origin/JY-20893-chunk-control-per-update-target\n 31c62924a5..cb4ebf0c36 master -> origin/master\nUpdating 907c54896c..34656c53ed\nFast-forward\n PIPEDRIVE_V2_MIGRATION_TICKETS.md | 52 ++++++++++++++++++++++++++++++++++++++++++++++++++++\n 1 file changed, 52 insertions(+)\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (pipedrive-sdk-poc) $ co master\nM\u0000\u0000\u0000\u0000\u0000\u0000\t.env.local\nM\u0000\u0000\u0000\u0000\u0000\u0000\tconfig/logging.php\nSwitched to branch 'master'\nYour branch is behind 'origin/master' by 31 commits, and can be fast-forwarded.\n (use \"git pull\" to update your local branch)\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (master) $ git pull\nUpdating 31c62924a5..cb4ebf0c36\nFast-forward\n app/Component/ES/Processor/Traits/SelectEntityListTrait.php | 20 ------\n app/Services/Calendar/CalendarActivityService.php | 46 +++++++++++++\n app/Services/Calendar/Command/MapActivityData.php | 106 +++-------------------------\n docs/mcp/explorer/explorer.html | 104 +++++++++++++++++++++++++---\n docs/mcp/explorer/explorer.template.html | 102 ++++++++++++++++++++++++---\n docs/mcp/tools-list.json | 373 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++-------\n docs/mcp/tools.md | 117 +++++++++++++++++++++++--------\n tests/Unit/Component/ES/AsyncUpdateElasticSearchTest.php | 16 +----\n tests/Unit/Component/ES/Listeners/UpdateMultipleTargetsListenerTest.php | 10 ---\n tests/Unit/Component/ES/Listeners/UpdateSingleTargetListenerTest.php | 6 --\n tests/Unit/Component/ES/Processor/TargetEntitiesSelectorTest.php | 9 ---\n tests/Unit/Component/ES/Processor/Traits/SelectEntityListTraitTest.php | 15 ++--\n tests/Unit/Component/ES/UpdateProcessManagerTest.php | 2 -\n tests/Unit/Services/Calendar/CalendarActivityServiceTest.php | 150 ++++++++++++++++++++++++++++++++++++++--\n tests/Unit/Services/Calendar/Command/MapActivityDataTest.php | 78 ++-------------------\n 15 files changed, 832 insertions(+), 322 deletions(-)\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (master) $ co -b JY-20613-allow-owner-role-on-team-setup\nSwitched to a new branch 'JY-20613-allow-owner-role-on-team-setup'\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20613-allow-owner-role-on-team-setup) $ csfix\ndocker exec -it docker_lamp_1 ./vendor/bin/php-cs-fixer fix --config=.php-cs-fixer.dist.php -v --using-cache=no --diff \nPHP CS Fixer 3.87.1 Alexander by Fabien Potencier, Dariusz Ruminski and contributors.\nPHP runtime: 8.3.30\nRunning analysis on 7 cores with 10 files per process.\nParallel runner is an experimental feature and may be unstable, use it at your own risk. Feedback highly appreciated!\nLoaded config default from \".php-cs-fixer.dist.php\".\n 5682/5682 [▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓] 100%\n\n\nFixed 0 of 5682 files in 56.978 seconds, 67.00 MB memory used\n\nWhat's next:\n Try Docker Debug for seamless, persistent debugging tools in any container or image → docker debug docker_lamp_1\n Learn more at https://docs.docker.com/go/debug-cli/\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20613-allow-owner-role-on-team-setup) $ ;xd\ndocker exec -it docker_lamp_1 bash -c \"mv /usr/local/etc/php/conf.d/xdebug.ini ~/xdebug.ini\"\n\nWhat's next:\n Try Docker Debug for seamless, persistent debugging tools in any container or image → docker debug docker_lamp_1\n Learn more at https://docs.docker.com/go/debug-cli/\ndocker exec -it docker_lamp_1 supervisorctl restart all\njiminny-worker-processing-2:jiminny-worker-processing-2_00: stopped\njiminny-worker-processing-3:jiminny-worker-processing-3_00: stopped\njiminny-worker-processing-4:jiminny-worker-processing-4_00: stopped\njiminny-worker-processing-5:jiminny-worker-processing-5_00: stopped\njiminny-worker-processing-delayed:jiminny-worker-processing-delayed_00: stopped\nworker-analytics:worker-analytics_00: stopped\nworker-crm-update:worker-crm-update_00: stopped\nworker-download:worker-download_00: stopped\nworker-nudges:worker-nudges_00: stopped\nartisan-schedule:artisan-schedule_00: stopped\nworker-emails:worker-emails_00: stopped\nworker-calendar:worker-calendar_00: stopped\nworker:worker_00: stopped\nworker-conferences:worker-conferences_00: stopped\nworker-crm-sync:worker-crm-sync_00: stopped\njiminny-worker-processing-1:jiminny-worker-processing-1_00: stopped\nworker-audio:worker-audio_00: stopped\nworker-es-update:worker-es-update_00: stopped\nartisan-schedule:artisan-schedule_00: started\njiminny-worker-processing-1:jiminny-worker-processing-1_00: started\njiminny-worker-processing-2:jiminny-worker-processing-2_00: started\njiminny-worker-processing-3:jiminny-worker-processing-3_00: started\njiminny-worker-processing-4:jiminny-worker-processing-4_00: started\njiminny-worker-processing-5:jiminny-worker-processing-5_00: started\njiminny-worker-processing-delayed:jiminny-worker-processing-delayed_00: started\nworker:worker_00: started\nworker-analytics:worker-analytics_00: started\nworker-audio:worker-audio_00: started\nworker-calendar:worker-calendar_00: started\nworker-conferences:worker-conferences_00: started\nworker-crm-sync:worker-crm-sync_00: started\nworker-crm-update:worker-crm-update_00: started\nworker-download:worker-download_00: started\nworker-emails:worker-emails_00: started\nworker-es-update:worker-es-update_00: started\nworker-nudges:worker-nudges_00: started\n\nWhat's next:\n Try Docker Debug for seamless, persistent debugging tools in any container or image → docker debug docker_lamp_1\n Learn more at https://docs.docker.com/go/debug-cli/\ndocker exec -it docker_lamp_1 php -v\nPHP 8.3.30 (cli) (built: Mar 16 2026 22:32:32) (NTS)\nCopyright (c) The PHP Group\nZend Engine v4.3.30, Copyright (c) Zend Technologies\n with Zend OPcache v8.3.30, Copyright (c), by Zend Technologies\n\nWhat's next:\n Try Docker Debug for seamless, persistent debugging tools in any container or image → docker debug docker_lamp_1\n Learn more at https://docs.docker.com/go/debug-cli/\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20613-allow-owner-role-on-team-setup) $ csfix\ndocker exec -it docker_lamp_1 ./vendor/bin/php-cs-fixer fix --config=.php-cs-fixer.dist.php -v --using-cache=no --diff \nPHP CS Fixer 3.87.1 Alexander by Fabien Potencier, Dariusz Ruminski and contributors.\nPHP runtime: 8.3.30\nRunning analysis on 7 cores with 10 files per process.\nParallel runner is an experimental feature and may be unstable, use it at your own risk. Feedback highly appreciated!\nLoaded config default from \".php-cs-fixer.dist.php\".\n 5682/5682 [▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓] 100%\n\n\nFixed 0 of 5682 files in 49.910 seconds, 60.00 MB memory used\n\nWhat's next:\n Try Docker Debug for seamless, persistent debugging tools in any container or image → docker debug docker_lamp_1\n Learn more at https://docs.docker.com/go/debug-cli/\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20613-allow-owner-role-on-team-setup) $ git status\nOn branch JY-20613-allow-owner-role-on-team-setup\nYour branch is ahead of 'origin/JY-20613-allow-owner-role-on-team-setup' by 1 commit.\n (use \"git push\" to publish your local commits)\n\nChanges not staged for commit:\n (use \"git add <file>...\" to update what will be committed)\n (use \"git restore <file>...\" to discard changes in working directory)\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tmodified: .env.local\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tmodified: config/logging.php\n\nUntracked files:\n (use \"git add <file>...\" to include in what will be committed)\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\t.env.nikilocal\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\t.env.other\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tWEBHOOK_FILTERING_IMPLEMENTATION.md\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tapp/Console/Commands/Crm/Hubspot/SimulateWebhooksCommand.php\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tapp/Console/Commands/Reports/CreateMockAskJiminnyReportResultCommand.php\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tids.txt\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tpublic/favicon.ico\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\traw_sql_query.sql\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\ttests/Unit/Policies/CanAccessAiReportsTest.php\n\nno changes added to commit (use \"git add\" and/or \"git commit -a\")\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20613-allow-owner-role-on-team-setup) $ git pull\nremote: Enumerating objects: 248, done.\nremote: Counting objects: 100% (128/128), done.\nremote: Compressing objects: 100% (23/23), done.\nremote: Total 59 (delta 43), reused 44 (delta 33), pack-reused 0 (from 0)\nUnpacking objects: 100% (59/59), 10.48 KiB | 228.00 KiB/s, done.\nFrom github.com:jiminny/app\n b7df560451..190239dfd4 JY-20613-allow-owner-role-on-team-setup -> origin/JY-20613-allow-owner-role-on-team-setup\n e0351be069..d94a285ae7 JY-20808-low-priority-indexing-queue -> origin/JY-20808-low-priority-indexing-queue\n * [new branch] JY-20920-fix-participant-matcher -> origin/JY-20920-fix-participant-matcher\n cb4ebf0c36..90bca4e4b2 master -> origin/master\nMerge made by the 'ort' strategy.\n app/Component/ES/ChunkSize.php | 54 +++++++++++++++++++++++++++\n app/Component/ES/Processor/DTOs/SelectionList.php | 4 +-\n app/Component/ES/Processor/TargetEntitiesSelector.php | 19 ++++++----\n app/Http/Middleware/McpTierMiddleware.php | 27 +++-----------\n app/Mcp/Servers/JiminnyServer.php | 2 +\n app/Mcp/Tools/GetMeTool.php | 157 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++\n app/Models/Feature/FeatureEnum.php | 1 +\n database/migrations/2026_05_13_124153_create_mcp_feature_flag.php | 25 +++++++++++++\n front-end/src/components/Settings/Kiosk/modals/EditTeamModal/EditTeamModal.vue | 52 ++++++++++++++++++--------\n front-end/src/components/Settings/Kiosk/modals/EditTeamModal/__tests__/EditTeamModal.spec.js | 14 +++++++\n tests/Feature/Mcp/GetMeToolFeatureTest.php | 140 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++\n tests/Feature/Mcp/ListCallsToolFeatureTest.php | 2 +-\n tests/Feature/Mcp/McpTestHelpersTrait.php | 19 +++++++++-\n tests/Unit/Component/ES/ChunkSizeTest.php | 50 +++++++++++++++++++++++++\n tests/Unit/Component/ES/Processor/DTOs/SelectionListTest.php | 27 ++++++++++----\n tests/Unit/Component/ES/Processor/TargetEntitiesSelectorTest.php | 39 +++++++++++---------\n 16 files changed, 557 insertions(+), 75 deletions(-)\n create mode 100644 app/Component/ES/ChunkSize.php\n create mode 100644 app/Mcp/Tools/GetMeTool.php\n create mode 100644 database/migrations/2026_05_13_124153_create_mcp_feature_flag.php\n create mode 100644 tests/Feature/Mcp/GetMeToolFeatureTest.php\n create mode 100644 tests/Unit/Component/ES/ChunkSizeTest.php\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20613-allow-owner-role-on-team-setup) $ git push\nEnumerating objects: 40, done.\nCounting objects: 100% (34/34), done.\nDelta compression using up to 8 threads\nCompressing objects: 100% (18/18), done.\nWriting objects: 100% (18/18), 1.58 KiB | 1.58 MiB/s, done.\nTotal 18 (delta 15), reused 0 (delta 0), pack-reused 0\nremote: Resolving deltas: 100% (15/15), completed with 13 local objects.\nTo github.com:jiminny/app.git\n 190239dfd4..ec1b261264 JY-20613-allow-owner-role-on-team-setup -> JY-20613-allow-owner-role-on-team-setup\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20613-allow-owner-role-on-team-setup) $ gbr\n* JY-20613-allow-owner-role-on-team-setup\n pipedrive-sdk-poc\n master\n JY-20903-update_activity-stage-on-opportunity-change\n JY-20904-fix-update-es-on-activity-command\n JY-20891-improve-sms-text-relays\n JY-20725-handle-HS-search-rate-limit\n JY-20818-move-AJ-reports-to-separated-datadog-metric\n JY-20773-fix-automated-reports-user-pilot-tracking\n JY-20157-AJ-report-not-send-notification\n JY-20508-notify-before-AJ-report-expiration\n JY-20372-ai-reports-promotion-pages\n JY-20352-sync-opportunities-without-a-local-owner-user-id-is-null\n JY-20738-debug-AJ-tracking-UP\n a\n JY-18909-automated-reports-ask-jiminny\n JY-20692-fix-integration-app-token-auth-response-change\n JY-20553-debug-crm-sync-delays\n JY-20698-fix-SF-activity-types-on-new-playbook\n JY-20543-AJ-report-tracking\n JY-20384-handle-auto-sync-with-no-access-to-event-type\n JY-20458-ask-jiminny-user-definitions\n JY-19666-fix-import-contacts-account-association\n JY-19666-HS-import-contacts-and-accounts-batch-job\n JY-20458-Ask-Jiminny-Reports\n JY-20200-batch-update-CRM-objects-Salesforce\n JY-19666-HS-webhooks-add-contact-and-company\n JY-20348-trigger-setup-DI-layout-on-team-creation\n JY-20326-refactor-info-message-in-command\n JY-20317-fix-auto-log-delay-issue-on-all-channels-disabled\n JY-20312-remove-on-update-change-last-synced-at-crm-configurations\n JY-20306-SF-skip-auto-sync-for-task-based-playbook\n JY-20192-remove-deleted-team-from-saved-search-filters\n JY-20197-import-opportunity-batch-job\n JY-20293-enable-status-field-for-pipedrive-deals\n JY-20191-remove-commands-interactive-prompts\n JY-20118-change-default-sync-strategy\n JY-20183-add-cache-on-auto-log-delay\n JY-20197-add-import-opportunity-batch-job\n 20118-hs-opportunity-make-webhook-strategy-default\n JY-20118-make-default-hs-opportunity-sync-strategy-webhook-based\n JY-20196-handle-opportunity-without-note\n JY-20118-improve-opportunity-import\n JY-20189-handle-activity-search-on-deleted-groups\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20613-allow-owner-role-on-team-setup) $ co JY-20725-handle-HS-search-rate-limit\nM\u0000\u0000\u0000\u0000\u0000\u0000\t.env.local\nM\u0000\u0000\u0000\u0000\u0000\u0000\tconfig/logging.php\nSwitched to branch 'JY-20725-handle-HS-search-rate-limit'\nYour branch is behind 'origin/JY-20725-handle-HS-search-rate-limit' by 439 commits, and can be fast-forwarded.\n (use \"git pull\" to update your local branch)\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20725-handle-HS-search-rate-limit) $ git pull\nUpdating 0f3e438941..bc6a3fce6b\nFast-forward\n .gitignore | 3 +-\n .windsurfrules | 168 ++---\n CLAUDE.md | 1 +\n app/Component/ActivityAnalytics/Service/CalculateTalkTimeOffsetsFromTranscription.php | 24 +-\n app/Component/AiActivityType/Services/AiActivityTypeEligibilityChecker.php | 28 +-\n app/Component/AiAutomation/Actions/PrepareUpdateDtoAction.php | 32 +-\n app/Component/AiAutomation/Services/CrmFillingEligibilityChecker.php | 47 ++\n app/Component/AiAutomation/TestCrmAiPromptService.php | 14 +\n app/Component/AiCallScoring/Services/AiCallScoringEligibilityChecker.php | 9 +\n app/Component/ES/ElasticSearchDocumentPartialUpdater.php | 13 +-\n app/Component/ES/ElasticSearchWorkerManager.php | 86 ---\n app/Component/ES/Processor/Actions/LoadDocumentsAction.php | 80 +--\n app/Component/ES/Processor/EntityQueryBuilder.php | 12 +-\n app/Component/ES/Processor/TargetEntitiesSelector.php | 2 +-\n app/Component/ES/Processor/Traits/SkipActivityTrait.php | 25 -\n app/Component/ES/Repositories/EsResetActivityRepository.php | 11 +-\n app/Component/ES/Worker/ActivityWorker.php | 73 --\n app/Component/ES/Worker/EntityWorker.php | 44 --\n app/Component/ES/Worker/WorkerAmount.php | 60 --\n app/Component/ES/Worker/WorkerInterface.php | 15 -\n app/Component/ElasticSearch/Contract/Searchable.php | 4 +\n app/Component/Encoding/Job/AnalyzeTrackChannelsJob.php | 20 +-\n app/Component/Encoding/Service/GenerateSpeechFromSilenceService.php | 85 ++-\n app/Component/FFMpeg/Services/GetSpeechIntervalsService.php | 18 +-\n app/Component/LanguageDetection/Services/FindSpeechTimeService.php | 22 +-\n app/Component/Nudge/Job/ProcessOrganisationImmediateNudgesJob.php | 218 +++++-\n app/Component/ParagraphBreaker/Services/TranscriptionParagraphsService.php | 4 +\n app/Component/ParticipantSpeech/Services/ParticipantSpeechesCreator.php | 33 +\n app/Component/ParticipantSpeech/Services/ParticipantSpeechesDeleter.php | 15 +\n app/Component/ParticipantSpeech/Services/ParticipantSpeechesProvider.php | 51 +-\n app/Component/ParticipantSpeech/Services/ParticipantSpeechesUploader.php | 36 +\n app/Component/ProphetAi/Exceptions/InsufficientTranscriptException.php | 11 +\n app/Component/Transcription/DTO/Http/Transcription/AssemblyAI/AssemblyAI/NoAssemblyIdException.php | 11 +\n app/Component/Transcription/DTO/Http/Transcription/AssemblyAI/AssemblyAI/SuccessfulResponse.php | 6 +\n app/Component/Transcription/DTO/Http/Transcription/TranscriptionIsNotCorrectFormatException.php | 11 +\n app/Component/Transcription/Diarization/Services/GetNormalizedParticipantSpeechesService.php | 23 +-\n app/Component/Transcription/Diarization/Source/MeetingBotSource.php | 16 +-\n app/Component/Transcription/TranscriptionProcessor/TranscriptionProcessor.php | 3 +\n app/Console/Commands/Activities/ActivityHardDeleteCommand.php | 4 +-\n app/Console/Commands/Activities/Copy.php | 2 +\n app/Console/Commands/Activities/SetupIntegration/TwilioSetS3RecordingCredentialsCommand.php | 119 ++++\n app/Console/Commands/Activities/UpdateActivityElasticSearchDocumentCommand.php | 10 +-\n app/Console/Commands/Crm/BackfillOpportunityUserFromAccountCommand.php | 126 ++++\n app/Console/Commands/Elasticsearch/AsyncUpdateEsActivities.php | 19 -\n app/Console/Commands/Elasticsearch/AsyncUpdateEsEntities.php | 50 +-\n app/Console/Commands/Elasticsearch/ResetAsyncElasticSearchCommand.php | 30 +-\n app/Console/Commands/GeckoExport/GeckoExportParticipantSpeechesCommand.php | 14 +-\n app/Console/Commands/IssueMcpTokenCommand.php | 84 +++\n app/Console/Commands/JiminnyDebugCommand.php | 7 +-\n app/Console/Commands/Tracks/CleanupActivityTracksCommand.php | 2 +-\n app/Console/Kernel.php | 6 +-\n app/Contracts/Services/Calendar/CalendarTrait.php | 80 ++-\n app/Events/AutomatedReports/AutomatedReportGenerated.php | 3 +\n app/Http/Controllers/API/AiCallScoring/AiScorecardController.php | 7 +-\n app/Http/Controllers/API/TeamAiAutomationController.php | 8 +\n app/Http/Controllers/CustomerApi/CustomerApiController.php | 4 +-\n app/Http/Controllers/Kiosk/ActivityController.php | 58 +-\n app/Http/Controllers/Settings/PlaybookController.php | 15 +-\n app/Http/Kernel.php | 23 +\n app/Http/Middleware/McpAuditMiddleware.php | 156 ++++\n app/Http/Middleware/McpTierMiddleware.php | 54 ++\n app/Http/Requests/API/V2/ZapierUploadActivityRequest.php | 28 +-\n app/Jobs/Activity/Import/ImportTwilioVideoSpeechesJob.php | 25 +-\n app/Jobs/Activity/Import/IsActivityReadyForProcessingJob.php | 10 +-\n app/Jobs/Calendar/SetupCalendarSync.php | 21 +-\n app/Jobs/ImportRemoteTrackJob.php | 96 ++-\n app/Jobs/Mailbox/EmailTextRelay.php | 15 +-\n app/Mcp/Contracts/McpCallRepositoryInterface.php | 30 +\n app/Mcp/DTO/ListCallsFilters.php | 29 +\n app/Mcp/Errors/McpError.php | 123 ++++\n app/Mcp/Repositories/McpActivityHydrator.php | 145 ++++\n app/Mcp/Repositories/McpCallRepository.php | 84 +++\n app/Mcp/Repositories/McpElasticCallRepository.php | 171 +++++\n app/Mcp/Servers/JiminnyServer.php | 38 +\n app/Mcp/Tools/ListCallsTool.php | 205 ++++++\n app/Models/Activity.php | 10 +-\n app/Models/Activity/Transcription.php | 17 +-\n app/Models/ElasticSearch/OpportunityElasticSearchTrait.php | 5 +\n app/Models/Participant.php | 1 +\n app/Providers/AppServiceProvider.php | 22 +\n app/Repositories/Crm/ContactRepository.php | 69 +-\n app/Repositories/ParticipantSpeechRepository.php | 13 +-\n app/Services/Activity/ParticipantsService.php | 19 +-\n app/Services/Activity/Twilio/S3RecordingCredentialsService.php | 82 +++\n app/Services/ActivityService.php | 21 +-\n app/Services/Calendar/CalendarActivityService.php | 46 ++\n app/Services/Calendar/Command/ImportParticipants.php | 1 +\n app/Services/Calendar/Command/MapActivityData.php | 106 +--\n app/Services/Calendar/GoogleCalendarService.php | 12 +-\n app/Services/Crm/Close/Processor/OpportunityProcessor.php | 2 +-\n app/Services/Crm/Close/Service.php | 22 +-\n app/Services/Crm/Copper/Service.php | 12 +-\n app/Services/Crm/Hubspot/Service.php | 154 +++-\n app/Services/Crm/Hubspot/ServiceTraits/OpportunitySyncTrait.php | 88 ++-\n app/Services/Crm/IntegrationApp/ServiceTraits/SyncCrmEntitiesTrait.php | 22 +-\n app/Services/Crm/Pipedrive/Service.php | 17 +-\n app/Services/Crm/Salesforce/Service.php | 42 +-\n app/Services/Mail/Office/EmailApiClient.php | 129 +---\n app/Services/RecallAI/Commands/ScheduleBotCommand.php | 39 +-\n app/Services/RecallAI/RecallAIService.php | 22 +-\n composer.json | 3 +-\n composer.lock | 87 ++-\n config/mcp.php | 23 +\n database/migrations/2026_04_30_120000_create_mcp_audit_log_table.php | 36 +\n docs/mcp/explorer/explorer.html | 697 ++++++++++++++++++\n docs/mcp/explorer/explorer.template.html | 697 ++++++++++++++++++\n docs/mcp/explorer/generate.js | 215 ++++++\n docs/mcp/explorer/tool-explorer-meta.json | 11 +\n docs/mcp/tools-list.json | 2536 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++\n docs/mcp/tools.md | 621 ++++++++++++++++\n front-end/package.json | 4 +-\n front-end/src/components/Settings/OrgSettings/AiAutomation/CrmFilling/TemplateFieldForm.vue | 28 +-\n front-end/src/components/Settings/OrgSettings/Playbooks/AddEditPlaybook.vue | 10 +\n front-end/src/components/playback/comments/ActivityComment.less | 10 +-\n front-end/src/components/shared/PromptTester/PromptTester.vue | 12 +-\n front-end/src/components/shared/__tests__/PromptTester.spec.js | 35 +\n front-end/src/components/shared/modals/EntityPickerModal/__tests__/useEntitiesCache.spec.ts | 37 +\n front-end/src/components/shared/modals/EntityPickerModal/useEntitiesCache.ts | 9 +\n front-end/yarn.lock | 16 +-\n phpstan-baseline.neon | 50 --\n routes/api.php | 11 +\n sonar-project.properties | 91 ++-\n tests/Feature/Component/Nudge/ProcessOrganisationImmediateNudgesJobTest.php | 534 ++++++++++++++\n tests/Feature/Jobs/ImportRemoteTrackJobTest.php | 283 +++++++-\n tests/Feature/Mcp/IssueMcpTokenCommandTest.php | 53 ++\n tests/Feature/Mcp/ListCallsToolElasticFeatureTest.php | 155 ++++\n tests/Feature/Mcp/ListCallsToolFeatureTest.php | 352 ++++++++++\n tests/Feature/Mcp/McpTestHelpersTrait.php | 77 ++\n tests/Feature/Services/Team/TeamDeleteHandlers/Retention/RetentionRepositoryHandlerTest.php | 1 +\n tests/Stubs/SentryStub.php | 18 +\n tests/Unit/Component/ActivityAnalytics/Service/CalculateTalkTimeOffsetFromTranscriptionTest.php | 28 +-\n tests/Unit/Component/AiActivityType/Services/AiActivityTypeEligibilityCheckerTest.php | 103 ++-\n tests/Unit/Component/AiAutomation/Actions/PrepareUpdateDtoActionTest.php | 91 +++\n tests/Unit/Component/AiAutomation/Services/CrmFillingEligibilityCheckerTest.php | 124 ++++\n tests/Unit/Component/AiAutomation/TestCrmAiPromptServiceTest.php | 67 +-\n tests/Unit/Component/AiCallScoring/Services/AiCallScoringEligibilityCheckerTest.php | 55 ++\n tests/Unit/Component/ES/ElasticSearchWorkerManagerTest.php | 135 ----\n tests/Unit/Component/ES/Processor/Actions/LoadDocumentsActionTest.php | 220 ++++++\n tests/Unit/Component/ES/Processor/EntityQueryBuilderTest.php | 21 +-\n tests/Unit/Component/ES/Processor/Traits/SkipActivityTraitTest.php | 51 --\n tests/Unit/Component/ES/Worker/ActivityWorkerTest.php | 174 -----\n tests/Unit/Component/ES/Worker/EntityWorkerTest.php | 97 ---\n tests/Unit/Component/ES/Worker/WorkerAmountTest.php | 116 ---\n tests/Unit/Component/Encoding/Job/AnalyzeTrackChannelsJobTest.php | 52 +-\n tests/Unit/Component/Encoding/Service/GenerateSpeechFromSilenceServiceTest.php | 171 ++---\n tests/Unit/Component/FFMpeg/Services/GetSpeechIntervalsTest.php | 36 +-\n tests/Unit/Component/LanguageDetection/Services/FindSpeechTimeServiceTest.php | 20 +-\n tests/Unit/Component/MobileSettings/MobileSettingsControllerTest.php | 5 +-\n tests/Unit/Component/ParticipantSpeech/Services/ParticipantSpeechesCreatorTest.php | 75 ++\n tests/Unit/Component/ParticipantSpeech/Services/ParticipantSpeechesDeleterTest.php | 63 ++\n tests/Unit/Component/ParticipantSpeech/Services/ParticipantSpeechesProviderTest.php | 134 ++++\n tests/Unit/Component/ParticipantSpeech/Services/ParticipantSpeechesUploaderTest.php | 57 ++\n tests/Unit/Component/Transcription/Diarization/Services/GetNormalizedParticipantSpeechesServiceTest.php | 51 +-\n tests/Unit/Component/Transcription/Diarization/Source/MeetingBotSourceTest.php | 29 +-\n tests/Unit/Contracts/Services/Calendar/CalendarTraitTest.php | 58 +-\n tests/Unit/Http/Controllers/Kiosk/ActivityControllerTest.php | 159 +++++\n tests/Unit/Jobs/Activity/Import/ImportTwilioVideoSpeechesJobTest.php | 22 +-\n tests/Unit/Jobs/Activity/Import/IsActivityReadyForProcessingJobTest.php | 26 +-\n tests/Unit/Jobs/Calendar/SetupCalendarSyncTest.php | 25 -\n tests/Unit/Services/Activity/ParticipantsServiceTest.php | 12 +-\n tests/Unit/Services/Activity/Twilio/S3RecordingCredentialsServiceTest.php | 180 +++++\n tests/Unit/Services/ActivityServiceTest.php | 132 ++++\n tests/Unit/Services/Calendar/CalendarActivityServiceTest.php | 150 +++-\n tests/Unit/Services/Calendar/Command/ImportParticipantsTest.php | 6 +-\n tests/Unit/Services/Calendar/Command/MapActivityDataTest.php | 78 +-\n tests/Unit/Services/Calendar/GoogleCalendarServiceTest.php | 116 +++\n tests/Unit/Services/Crm/Close/ServiceTest.php | 165 +++++\n tests/Unit/Services/Crm/Hubspot/ServiceTest.php | 272 ++++++-\n tests/Unit/Services/Crm/Hubspot/ServiceTraits/OpportunitySyncTest.php | 25 +-\n tests/Unit/Services/Crm/Hubspot/ServiceTraits/OpportunitySyncTraitMatchActivitiesTest.php | 3 +-\n tests/Unit/Services/Crm/IntegrationApp/ServiceTraits/SyncCrmEntitiesTraitOpportunitiesTest.php | 40 ++\n tests/Unit/Services/Crm/Pipedrive/ImportOpportunityMatchActivitiesTest.php | 2 +\n tests/Unit/Services/Crm/Salesforce/ServiceTest.php | 139 ++++\n tests/Unit/Services/Mail/Office/EmailApiClientTest.php | 195 ++---\n tests/Unit/Services/RecallAI/RecallAIServiceTest.php | 24 +-\n 175 files changed, 12562 insertions(+), 2162 deletions(-)\n create mode 120000 CLAUDE.md\n create mode 100644 app/Component/AiAutomation/Services/CrmFillingEligibilityChecker.php\n delete mode 100644 app/Component/ES/ElasticSearchWorkerManager.php\n delete mode 100644 app/Component/ES/Processor/Traits/SkipActivityTrait.php\n delete mode 100644 app/Component/ES/Worker/ActivityWorker.php\n delete mode 100644 app/Component/ES/Worker/EntityWorker.php\n delete mode 100644 app/Component/ES/Worker/WorkerAmount.php\n delete mode 100644 app/Component/ES/Worker/WorkerInterface.php\n create mode 100644 app/Component/ProphetAi/Exceptions/InsufficientTranscriptException.php\n create mode 100644 app/Component/Transcription/DTO/Http/Transcription/AssemblyAI/AssemblyAI/NoAssemblyIdException.php\n create mode 100644 app/Component/Transcription/DTO/Http/Transcription/TranscriptionIsNotCorrectFormatException.php\n create mode 100644 app/Console/Commands/Activities/SetupIntegration/TwilioSetS3RecordingCredentialsCommand.php\n create mode 100644 app/Console/Commands/Crm/BackfillOpportunityUserFromAccountCommand.php\n delete mode 100644 app/Console/Commands/Elasticsearch/AsyncUpdateEsActivities.php\n create mode 100644 app/Console/Commands/IssueMcpTokenCommand.php\n create mode 100644 app/Http/Middleware/McpAuditMiddleware.php\n create mode 100644 app/Http/Middleware/McpTierMiddleware.php\n create mode 100644 app/Mcp/Contracts/McpCallRepositoryInterface.php\n create mode 100644 app/Mcp/DTO/ListCallsFilters.php\n create mode 100644 app/Mcp/Errors/McpError.php\n create mode 100644 app/Mcp/Repositories/McpActivityHydrator.php\n create mode 100644 app/Mcp/Repositories/McpCallRepository.php\n create mode 100644 app/Mcp/Repositories/McpElasticCallRepository.php\n create mode 100644 app/Mcp/Servers/JiminnyServer.php\n create mode 100644 app/Mcp/Tools/ListCallsTool.php\n create mode 100644 app/Services/Activity/Twilio/S3RecordingCredentialsService.php\n create mode 100644 config/mcp.php\n create mode 100644 database/migrations/2026_04_30_120000_create_mcp_audit_log_table.php\n create mode 100644 docs/mcp/explorer/explorer.html\n create mode 100644 docs/mcp/explorer/explorer.template.html\n create mode 100644 docs/mcp/explorer/generate.js\n create mode 100644 docs/mcp/explorer/tool-explorer-meta.json\n create mode 100644 docs/mcp/tools-list.json\n create mode 100644 docs/mcp/tools.md\n create mode 100644 front-end/src/components/shared/modals/EntityPickerModal/__tests__/useEntitiesCache.spec.ts\n create mode 100644 tests/Feature/Component/Nudge/ProcessOrganisationImmediateNudgesJobTest.php\n create mode 100644 tests/Feature/Mcp/IssueMcpTokenCommandTest.php\n create mode 100644 tests/Feature/Mcp/ListCallsToolElasticFeatureTest.php\n create mode 100644 tests/Feature/Mcp/ListCallsToolFeatureTest.php\n create mode 100644 tests/Feature/Mcp/McpTestHelpersTrait.php\n create mode 100644 tests/Stubs/SentryStub.php\n create mode 100644 tests/Unit/Component/AiAutomation/Services/CrmFillingEligibilityCheckerTest.php\n delete mode 100644 tests/Unit/Component/ES/ElasticSearchWorkerManagerTest.php\n create mode 100644 tests/Unit/Component/ES/Processor/Actions/LoadDocumentsActionTest.php\n delete mode 100644 tests/Unit/Component/ES/Processor/Traits/SkipActivityTraitTest.php\n delete mode 100644 tests/Unit/Component/ES/Worker/ActivityWorkerTest.php\n delete mode 100644 tests/Unit/Component/ES/Worker/EntityWorkerTest.php\n delete mode 100644 tests/Unit/Component/ES/Worker/WorkerAmountTest.php\n create mode 100644 tests/Unit/Component/ParticipantSpeech/Services/ParticipantSpeechesCreatorTest.php\n create mode 100644 tests/Unit/Http/Controllers/Kiosk/ActivityControllerTest.php\n create mode 100644 tests/Unit/Services/Activity/Twilio/S3RecordingCredentialsServiceTest.php\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20725-handle-HS-search-rate-limit) $ git status\nOn branch master\nYour branch is behind 'origin/master' by 114 commits, and can be fast-forwarded.\n (use \"git pull\" to update your local branch)\n\nChanges not staged for commit:\n (use \"git add <file>...\" to update what will be committed)\n (use \"git restore <file>...\" to discard changes in working directory)\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tmodified: .env.local\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tmodified: app/Component/SCIM/Constants.php\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tmodified: app/Component/SCIM/ScimProvisioning.php\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tmodified: app/Component/Twilio/Conference/ConferenceManager/SoftPhoneManager.php\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tmodified: app/Console/Commands/JiminnyDebugCommand.php\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tmodified: app/DTO/SCIM/AAD/Request/CoreUserRequest.php\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tmodified: app/DTO/SCIM/AAD/Response/CoreUser.php\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tmodified: app/Services/Telephony/TextMessagingService.php\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tmodified: config/logging.php\n\nUntracked files:\n (use \"git add <file>...\" to include in what will be committed)\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\t.env.nikilocal\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\t.env.other\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tWEBHOOK_FILTERING_IMPLEMENTATION.md\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tapp/Component/SCIM/Mutators/Attributes/User/RoleAttr.php\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tapp/Console/Commands/Crm/Hubspot/SimulateWebhooksCommand.php\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tapp/Console/Commands/Reports/CreateMockAskJiminnyReportResultCommand.php\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tapp/Rules/ListenerRoleCannotHaveAdminOrManagerPermissionRule.php\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tids.txt\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tpublic/favicon.ico\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\traw_sql_query.sql\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\ttests/Unit/Component/SCIM/Mutators/Attributes/User/RoleAttrTest.php\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\ttests/Unit/Policies/CanAccessAiReportsTest.php\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\ttests/Unit/Rules/ListenerRoleCannotHaveAdminOrManagerPermissionRuleTest.php\n\nno changes added to commit (use \"git add\" and/or \"git commit -a\")\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (master) $ git pull\nremote: Enumerating objects: 306, done.\nremote: Counting objects: 100% (299/299), done.\nremote: Compressing objects: 100% (183/183), done.\nremote: Total 306 (delta 213), reused 171 (delta 116), pack-reused 7 (from 1)\nReceiving objects: 100% (306/306), 80.12 KiB | 1000.00 KiB/s, done.\nResolving deltas: 100% (213/213), completed with 53 local objects.\nFrom github.com:jiminny/app\n 90bca4e4b2..5604af40cf master -> origin/master\n 4e7078fd8b..0b8343d179 JY-18091-upgrade-to-php-8-5 -> origin/JY-18091-upgrade-to-php-8-5\n 098eeaa087..d5a447e492 JY-20613-allow-owner-role-on-team-setup -> origin/JY-20613-allow-owner-role-on-team-setup\n c3a76ace91..af65249d0f JY-20749-user-can-view-recorded-meetings -> origin/JY-20749-user-can-view-recorded-meetings\n d94a285ae7..7ce96cb5fe JY-20808-low-priority-indexing-queue -> origin/JY-20808-low-priority-indexing-queue\n * [new branch] JY-20842-remove-partial-updater -> origin/JY-20842-remove-partial-updater\n * [new branch] JY-20920-fix-participant-flip -> origin/JY-20920-fix-participant-flip\n * [new branch] secfix/npm-20260519 -> origin/secfix/npm-20260519\nUpdating cb4ebf0c36..5604af40cf\nFast-forward\n app/Component/ES/ChunkSize.php | 54 +++++++++++++++++++\n app/Component/ES/Processor/DTOs/SelectionList.php | 4 +-\n app/Component/ES/Processor/TargetEntitiesSelector.php | 19 ++++---\n app/Component/MeetingBot/Service/ParticipantMatcher.php | 46 ++++++++++++----\n app/Exceptions/RateLimitException.php | 19 ++++++-\n app/Http/Middleware/McpTierMiddleware.php | 27 ++--------\n app/Jobs/Crm/MatchActivityCrmData.php | 47 ++++++++++++----\n app/Jobs/Middleware/HandleHubspotRateLimit.php | 42 +++++++++++++++\n app/Mcp/Servers/JiminnyServer.php | 2 +\n app/Mcp/Tools/GetMeTool.php | 157 +++++++++++++++++++++++++++++++++++++++++++++++++++++\n app/Models/Feature/FeatureEnum.php | 1 +\n app/Services/Activity/HubSpot/ProviderResolver.php | 4 +-\n app/Services/Activity/HubSpot/ProviderResolverInterface.php | 2 +-\n app/Services/Activity/HubSpot/Providers/Provider.php | 2 +-\n app/Services/Activity/HubSpot/Providers/ProviderKixie.php | 2 +-\n app/Services/Activity/HubSpot/Providers/ProviderOrum.php | 2 +-\n app/Services/Activity/HubSpot/Providers/ProviderTwilio.php | 2 +-\n app/Services/Activity/HubSpot/Providers/ProviderTwilioFlex.php | 5 +-\n app/Services/Activity/HubSpot/Service.php | 97 +++++++++++++++++++++++++++------\n app/Services/Crm/Hubspot/Client.php | 132 +++++++++++++++++++++++++++++++++++++++++++++\n app/Services/Crm/Hubspot/HubspotClientInterface.php | 15 ++++++\n app/Services/Crm/Hubspot/Pagination/HubspotPaginationService.php | 21 ++++----\n app/Services/Crm/Hubspot/Pagination/PaginationState.php | 2 +-\n database/migrations/2026_05_13_124153_create_mcp_feature_flag.php | 25 +++++++++\n tests/Feature/Mcp/GetMeToolFeatureTest.php | 140 +++++++++++++++++++++++++++++++++++++++++++++++\n tests/Feature/Mcp/ListCallsToolFeatureTest.php | 2 +-\n tests/Feature/Mcp/McpTestHelpersTrait.php | 19 ++++++-\n tests/Unit/Component/ES/ChunkSizeTest.php | 50 +++++++++++++++++\n tests/Unit/Component/ES/Processor/DTOs/SelectionListTest.php | 27 +++++++---\n tests/Unit/Component/ES/Processor/TargetEntitiesSelectorTest.php | 39 ++++++++------\n tests/Unit/Component/MeetingBot/Service/ParticipantMatcherTest.php | 68 ++++++++++++++++++++++-\n tests/Unit/Exceptions/RateLimitExceptionTest.php | 56 +++++++++++++++++++\n tests/Unit/Jobs/Crm/MatchActivityCrmDataTest.php | 8 +--\n tests/Unit/Jobs/Middleware/HandleHubspotRateLimitTest.php | 151 +++++++++++++++++++++++++++++++++++++++++++++++++++\n tests/Unit/Services/Activity/HubSpot/ServiceTest.php | 109 +++++++++++++++++++++++++++++++++++++\n tests/Unit/Services/Crm/Hubspot/ClientTest.php | 250 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++\n tests/Unit/Services/Crm/Hubspot/Pagination/HubspotPaginationServiceTest.php | 283 +++++++++++++++++++++---------------------------------------------------------------------------\n 37 files changed, 1587 insertions(+), 344 deletions(-)\n create mode 100644 app/Component/ES/ChunkSize.php\n create mode 100644 app/Jobs/Middleware/HandleHubspotRateLimit.php\n create mode 100644 app/Mcp/Tools/GetMeTool.php\n create mode 100644 database/migrations/2026_05_13_124153_create_mcp_feature_flag.php\n create mode 100644 tests/Feature/Mcp/GetMeToolFeatureTest.php\n create mode 100644 tests/Unit/Component/ES/ChunkSizeTest.php\n create mode 100644 tests/Unit/Exceptions/RateLimitExceptionTest.php\n create mode 100644 tests/Unit/Jobs/Middleware/HandleHubspotRateLimitTest.php\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (master) $ git pull\nAlready up to date.\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (master) $ co -b JY-20676-delete-report-related-objects\nSwitched to a new branch 'JY-20676-delete-report-related-objects'\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20676-delete-report-related-objects) $ csfix\ndocker exec -it docker_lamp_1 ./vendor/bin/php-cs-fixer fix --config=.php-cs-fixer.dist.php -v --using-cache=no --diff \nPHP CS Fixer 3.87.1 Alexander by Fabien Potencier, Dariusz Ruminski and contributors.\nPHP runtime: 8.3.30\nRunning analysis on 7 cores with 10 files per process.\nParallel runner is an experimental feature and may be unstable, use it at your own risk. Feedback highly appreciated!\nLoaded config default from \".php-cs-fixer.dist.php\".\n 5690/5690 [▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓] 100%\n\n 1) app/Console/Commands/JiminnyDebugCommand.php (statement_indentation, blank_line_before_statement)\n ---------- begin diff ----------\n--- /home/jiminny/app/Console/Commands/JiminnyDebugCommand.php\n+++ /home/jiminny/app/Console/Commands/JiminnyDebugCommand.php\n@@ -23,6 +23,7 @@\n \n if ($action === 'redis-set') {\n $this->testRedisSet();\n+\n return;\n }\n \n@@ -45,7 +46,7 @@\n $ttl = 60;\n \n try {\n-// $result = Redis::set($testKey, $testValue, 'EX', $ttl, 'NX');\n+ // $result = Redis::set($testKey, $testValue, 'EX', $ttl, 'NX');\n $result = Redis::set($testKey, $testValue, ['nx', 'ex' => $ttl]);\n \n if ($result) {\n\n ----------- end diff -----------\n\n\nFixed 1 of 5690 files in 50.673 seconds, 67.00 MB memory used\n\nWhat's next:\n Try Docker Debug for seamless, persistent debugging tools in any container or image → docker debug docker_lamp_1\n Learn more at https://docs.docker.com/go/debug-cli/\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20676-delete-report-related-objects) $ ;xd\ndocker exec -it docker_lamp_1 bash -c \"mv /usr/local/etc/php/conf.d/xdebug.ini ~/xdebug.ini\"\n\nWhat's next:\n Try Docker Debug for seamless, persistent debugging tools in any container or image → docker debug docker_lamp_1\n Learn more at https://docs.docker.com/go/debug-cli/\ndocker exec -it docker_lamp_1 supervisorctl restart all\njiminny-worker-processing-2:jiminny-worker-processing-2_00: stopped\njiminny-worker-processing-3:jiminny-worker-processing-3_00: stopped\njiminny-worker-processing-4:jiminny-worker-processing-4_00: stopped\njiminny-worker-processing-5:jiminny-worker-processing-5_00: stopped\njiminny-worker-processing-delayed:jiminny-worker-processing-delayed_00: stopped\nworker-analytics:worker-analytics_00: stopped\nworker-crm-update:worker-crm-update_00: stopped\nworker-download:worker-download_00: stopped\nworker-nudges:worker-nudges_00: stopped\nworker-calendar:worker-calendar_00: stopped\nworker-audio:worker-audio_00: stopped\njiminny-worker-processing-1:jiminny-worker-processing-1_00: stopped\nworker:worker_00: stopped\nworker-conferences:worker-conferences_00: stopped\nworker-crm-sync:worker-crm-sync_00: stopped\nworker-emails:worker-emails_00: stopped\nworker-es-update:worker-es-update_00: stopped\nartisan-schedule:artisan-schedule_00: stopped\nartisan-schedule:artisan-schedule_00: started\njiminny-worker-processing-1:jiminny-worker-processing-1_00: started\njiminny-worker-processing-2:jiminny-worker-processing-2_00: started\njiminny-worker-processing-3:jiminny-worker-processing-3_00: started\njiminny-worker-processing-4:jiminny-worker-processing-4_00: started\njiminny-worker-processing-5:jiminny-worker-processing-5_00: started\njiminny-worker-processing-delayed:jiminny-worker-processing-delayed_00: started\nworker:worker_00: started\nworker-analytics:worker-analytics_00: started\nworker-audio:worker-audio_00: started\nworker-calendar:worker-calendar_00: started\nworker-conferences:worker-conferences_00: started\nworker-crm-sync:worker-crm-sync_00: started\nworker-crm-update:worker-crm-update_00: started\nworker-download:worker-download_00: started\nworker-emails:worker-emails_00: started\nworker-es-update:worker-es-update_00: started\nworker-nudges:worker-nudges_00: started\n\nWhat's next:\n Try Docker Debug for seamless, persistent debugging tools in any container or image → docker debug docker_lamp_1\n Learn more at https://docs.docker.com/go/debug-cli/\ndocker exec -it docker_lamp_1 php -v\nPHP 8.3.30 (cli) (built: Mar 16 2026 22:32:32) (NTS)\nCopyright (c) The PHP Group\nZend Engine v4.3.30, Copyright (c) Zend Technologies\n with Zend OPcache v8.3.30, Copyright (c), by Zend Technologies\n\nWhat's next:\n Try Docker Debug for seamless, persistent debugging tools in any container or image → docker debug docker_lamp_1\n Learn more at https://docs.docker.com/go/debug-cli/\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20676-delete-report-related-objects) $ git status\nOn branch JY-20676-delete-report-related-objects\nChanges not staged for commit:\n (use \"git add <file>...\" to update what will be committed)\n (use \"git restore <file>...\" to discard changes in working directory)\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tmodified: .env.local\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tmodified: app/Console/Commands/JiminnyDebugCommand.php\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tmodified: config/logging.php\n\nUntracked files:\n (use \"git add <file>...\" to include in what will be committed)\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\t.env.nikilocal\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\t.env.other\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tWEBHOOK_FILTERING_IMPLEMENTATION.md\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tapp/Console/Commands/Crm/Hubspot/SimulateWebhooksCommand.php\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tapp/Console/Commands/Reports/CreateMockAskJiminnyReportResultCommand.php\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tids.txt\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tpublic/favicon.ico\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\traw_sql_query.sql\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\ttests/Unit/Policies/CanAccessAiReportsTest.php\n\nno changes added to commit (use \"git add\" and/or \"git commit -a\")\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20676-delete-report-related-objects) $ git push -u origin JY-20676-delete-report-related-objects\nEnumerating objects: 45, done.\nCounting objects: 100% (45/45), done.\nDelta compression using up to 8 threads\nCompressing objects: 100% (24/24), done.\nWriting objects: 100% (24/24), 3.62 KiB | 3.62 MiB/s, done.\nTotal 24 (delta 19), reused 0 (delta 0), pack-reused 0\nremote: Resolving deltas: 100% (19/19), completed with 19 local objects.\nremote: \nremote: Create a pull request for 'JY-20676-delete-report-related-objects' on GitHub by visiting:\nremote: https://github.com/jiminny/app/pull/new/JY-20676-delete-report-related-objects\nremote: \nTo github.com:jiminny/app.git\n * [new branch] JY-20676-delete-report-related-objects -> JY-20676-delete-report-related-objects\nbranch 'JY-20676-delete-report-related-objects' set up to track 'origin/JY-20676-delete-report-related-objects'.\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20676-delete-report-related-objects) $ csfix\ndocker exec -it docker_lamp_1 ./vendor/bin/php-cs-fixer fix --config=.php-cs-fixer.dist.php -v --using-cache=no --diff \nPHP CS Fixer 3.87.1 Alexander by Fabien Potencier, Dariusz Ruminski and contributors.\nPHP runtime: 8.3.30\nRunning analysis on 7 cores with 10 files per process.\nParallel runner is an experimental feature and may be unstable, use it at your own risk. Feedback highly appreciated!\nLoaded config default from \".php-cs-fixer.dist.php\".\n 5690/5690 [▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓] 100%\n\n 1) app/Http/Controllers/API/V2/AskJiminnyReportsController.php (blank_line_before_statement)\n ---------- begin diff ----------\n--- /home/jiminny/app/Http/Controllers/API/V2/AskJiminnyReportsController.php\n+++ /home/jiminny/app/Http/Controllers/API/V2/AskJiminnyReportsController.php\n@@ -140,6 +140,7 @@\n if ($enabled && $report->isAskJiminnyReport() && ! $report->canExecute()) {\n $error = 'This report is missing a saved search or prompt. ' .\n 'Edit the report to complete the setup before enabling it.';\n+\n return new JsonResponse(\n ['error' => $error],\n Response::HTTP_UNPROCESSABLE_ENTITY\n\n ----------- end diff -----------\n\n\nFixed 1 of 5690 files in 71.757 seconds, 60.00 MB memory used\n\nWhat's next:\n Try Docker Debug for seamless, persistent debugging tools in any container or image → docker debug docker_lamp_1\n Learn more at https://docs.docker.com/go/debug-cli/\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20676-delete-report-related-objects) $ git pull\nremote: Enumerating objects: 158, done.\nremote: Counting objects: 100% (103/103), done.\nremote: Compressing objects: 100% (37/37), done.\nremote: Total 158 (delta 80), reused 74 (delta 66), pack-reused 55 (from 3)\nReceiving objects: 100% (158/158), 80.59 KiB | 982.00 KiB/s, done.\nResolving deltas: 100% (85/85), completed with 45 local objects.\nFrom github.com:jiminny/app\n 02a33811ee..c6ce5e2440 JY-20676-delete-report-related-objects -> origin/JY-20676-delete-report-related-objects\n 7ce96cb5fe..6c59f04358 JY-20808-low-priority-indexing-queue -> origin/JY-20808-low-priority-indexing-queue\n 3906a9238a..2b5e6ea62b JY-20835-mcp-enable-users-to-get-a-list-of-deals-and-their-details -> origin/JY-20835-mcp-enable-users-to-get-a-list-of-deals-and-their-details\n 5604af40cf..ea3519f0e2 master -> origin/master\n * [new branch] switch-eu-assembly -> origin/switch-eu-assembly\nUpdating 02a33811ee..c6ce5e2440\nFast-forward\n app/Component/ES/ElasticSearchDocumentPartialUpdater.php | 48 ---\n app/Component/ParticipantSpeech/Services/ParticipantAttributionService.php | 4 +-\n app/Component/Settings/AutoScoring/Services/UpdateAutoScoreService.php | 20 +-\n app/Component/Transcription/Service/StorageService.php | 8 +-\n front-end/package.json | 2 +-\n front-end/src/components/DealInsights/Modals/AskAnythingModal.vue | 23 ++\n front-end/src/components/shared/AskAnything/AskAnythingPromptFormItem.vue | 2 +\n front-end/src/components/shared/AskAnything/AskAnythingSettingsDrawer.vue | 23 +-\n front-end/src/components/shared/AskAnything/__mocks__/AskAnythingSettingsDrawer.mocks.js | 1 +\n front-end/src/components/shared/AskAnything/__tests__/AskAnythingSettingsDrawer.spec.js | 135 ++++---\n front-end/src/components/shared/AskAnything/__tests__/__snapshots__/AskAnythingSettingsDrawer.spec.js.html | 1235 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++\n front-end/src/components/shared/AskAnything/__tests__/__snapshots__/AskAnythingSettingsDrawer.spec.js.snap | 1382 ----------------------------------------------------------------\n front-end/src/components/shared/AskAnything/prompts.js | 1 +\n front-end/src/components/shared/AskAnything/useAskAnything.js | 1 +\n front-end/yarn.lock | 8 +-\n tests/Unit/Component/ES/ElasticSearchDocumentPartialUpdaterTest.php | 42 --\n tests/Unit/Component/Settings/AutoScoring/Services/UpdateAutoScoreServiceTest.php | 86 ++--\n tests/Unit/Component/Transcription/Service/StorageServiceTest.php | 29 +-\n 18 files changed, 1448 insertions(+), 1602 deletions(-)\n delete mode 100644 app/Component/ES/ElasticSearchDocumentPartialUpdater.php\n create mode 100644 front-end/src/components/shared/AskAnything/__tests__/__snapshots__/AskAnythingSettingsDrawer.spec.js.html\n delete mode 100644 front-end/src/components/shared/AskAnything/__tests__/__snapshots__/AskAnythingSettingsDrawer.spec.js.snap\n delete mode 100644 tests/Unit/Component/ES/ElasticSearchDocumentPartialUpdaterTest.php\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20676-delete-report-related-objects) $ csfix\ndocker exec -it docker_lamp_1 ./vendor/bin/php-cs-fixer fix --config=.php-cs-fixer.dist.php -v --using-cache=no --diff \nPHP CS Fixer 3.87.1 Alexander by Fabien Potencier, Dariusz Ruminski and contributors.\nPHP runtime: 8.3.30\nRunning analysis on 7 cores with 10 files per process.\nParallel runner is an experimental feature and may be unstable, use it at your own risk. Feedback highly appreciated!\nLoaded config default from \".php-cs-fixer.dist.php\".\n 5688/5688 [▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓] 100%\n\n\nFixed 0 of 5688 files in 79.904 seconds, 60.00 MB memory used\n\nWhat's next:\n Try Docker Debug for seamless, persistent debugging tools in any container or image → docker debug docker_lamp_1\n Learn more at https://docs.docker.com/go/debug-cli/\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20676-delete-report-related-objects) $ csfix\ndocker exec -it docker_lamp_1 ./vendor/bin/php-cs-fixer fix --config=.php-cs-fixer.dist.php -v --using-cache=no --diff \nPHP CS Fixer 3.87.1 Alexander by Fabien Potencier, Dariusz Ruminski and contributors.\nPHP runtime: 8.3.30\nRunning analysis on 7 cores with 10 files per process.\nParallel runner is an experimental feature and may be unstable, use it at your own risk. Feedback highly appreciated!\nLoaded config default from \".php-cs-fixer.dist.php\".","depth":4,"on_screen":true,"value":"Last login: Mon May 18 09:17:28 on ttys007\n\nPoetry could not find a pyproject.toml file in /Users/lukas/jiminny/app or its parents\n\nPoetry could not find a pyproject.toml file in /Users/lukas/jiminny/app or its parents\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (pipedrive-sdk-poc) $ co master\nerror: Your local changes to the following files would be overwritten by checkout:\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tPIPEDRIVE_V2_MIGRATION_TICKETS.md\nPlease commit your changes or stash them before you switch branches.\nAborting\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (pipedrive-sdk-poc) $ git pull\nremote: Enumerating objects: 1047, done.\nremote: Counting objects: 100% (832/832), done.\nremote: Compressing objects: 100% (298/298), done.\nremote: Total 1047 (delta 634), reused 596 (delta 534), pack-reused 215 (from 3)\nReceiving objects: 100% (1047/1047), 353.16 KiB | 1.56 MiB/s, done.\nResolving deltas: 100% (687/687), completed with 107 local objects.\nFrom github.com:jiminny/app\n 907c54896c..34656c53ed pipedrive-sdk-poc -> origin/pipedrive-sdk-poc\n 03325ec50f..4e7078fd8b JY-18091-upgrade-to-php-8-5 -> origin/JY-18091-upgrade-to-php-8-5\n e7d231e163..bc6a3fce6b JY-20725-handle-HS-search-rate-limit -> origin/JY-20725-handle-HS-search-rate-limit\n * [new branch] JY-20749-user-can-view-recorded-meetings -> origin/JY-20749-user-can-view-recorded-meetings\n 98ca281a04..e0351be069 JY-20808-low-priority-indexing-queue -> origin/JY-20808-low-priority-indexing-queue\n 569abb5149..3906a9238a JY-20835-mcp-enable-users-to-get-a-list-of-deals-and-their-details -> origin/JY-20835-mcp-enable-users-to-get-a-list-of-deals-and-their-details\n ad6c2a86e8..50eb6afba9 JY-20846-mcp-enable-the-ai-to-know-details-about-the-user -> origin/JY-20846-mcp-enable-the-ai-to-know-details-about-the-user\n * [new branch] JY-20893-chunk-control-per-update-target -> origin/JY-20893-chunk-control-per-update-target\n 31c62924a5..cb4ebf0c36 master -> origin/master\nUpdating 907c54896c..34656c53ed\nFast-forward\n PIPEDRIVE_V2_MIGRATION_TICKETS.md | 52 ++++++++++++++++++++++++++++++++++++++++++++++++++++\n 1 file changed, 52 insertions(+)\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (pipedrive-sdk-poc) $ co master\nM\u0000\u0000\u0000\u0000\u0000\u0000\t.env.local\nM\u0000\u0000\u0000\u0000\u0000\u0000\tconfig/logging.php\nSwitched to branch 'master'\nYour branch is behind 'origin/master' by 31 commits, and can be fast-forwarded.\n (use \"git pull\" to update your local branch)\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (master) $ git pull\nUpdating 31c62924a5..cb4ebf0c36\nFast-forward\n app/Component/ES/Processor/Traits/SelectEntityListTrait.php | 20 ------\n app/Services/Calendar/CalendarActivityService.php | 46 +++++++++++++\n app/Services/Calendar/Command/MapActivityData.php | 106 +++-------------------------\n docs/mcp/explorer/explorer.html | 104 +++++++++++++++++++++++++---\n docs/mcp/explorer/explorer.template.html | 102 ++++++++++++++++++++++++---\n docs/mcp/tools-list.json | 373 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++-------\n docs/mcp/tools.md | 117 +++++++++++++++++++++++--------\n tests/Unit/Component/ES/AsyncUpdateElasticSearchTest.php | 16 +----\n tests/Unit/Component/ES/Listeners/UpdateMultipleTargetsListenerTest.php | 10 ---\n tests/Unit/Component/ES/Listeners/UpdateSingleTargetListenerTest.php | 6 --\n tests/Unit/Component/ES/Processor/TargetEntitiesSelectorTest.php | 9 ---\n tests/Unit/Component/ES/Processor/Traits/SelectEntityListTraitTest.php | 15 ++--\n tests/Unit/Component/ES/UpdateProcessManagerTest.php | 2 -\n tests/Unit/Services/Calendar/CalendarActivityServiceTest.php | 150 ++++++++++++++++++++++++++++++++++++++--\n tests/Unit/Services/Calendar/Command/MapActivityDataTest.php | 78 ++-------------------\n 15 files changed, 832 insertions(+), 322 deletions(-)\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (master) $ co -b JY-20613-allow-owner-role-on-team-setup\nSwitched to a new branch 'JY-20613-allow-owner-role-on-team-setup'\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20613-allow-owner-role-on-team-setup) $ csfix\ndocker exec -it docker_lamp_1 ./vendor/bin/php-cs-fixer fix --config=.php-cs-fixer.dist.php -v --using-cache=no --diff \nPHP CS Fixer 3.87.1 Alexander by Fabien Potencier, Dariusz Ruminski and contributors.\nPHP runtime: 8.3.30\nRunning analysis on 7 cores with 10 files per process.\nParallel runner is an experimental feature and may be unstable, use it at your own risk. Feedback highly appreciated!\nLoaded config default from \".php-cs-fixer.dist.php\".\n 5682/5682 [▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓] 100%\n\n\nFixed 0 of 5682 files in 56.978 seconds, 67.00 MB memory used\n\nWhat's next:\n Try Docker Debug for seamless, persistent debugging tools in any container or image → docker debug docker_lamp_1\n Learn more at https://docs.docker.com/go/debug-cli/\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20613-allow-owner-role-on-team-setup) $ ;xd\ndocker exec -it docker_lamp_1 bash -c \"mv /usr/local/etc/php/conf.d/xdebug.ini ~/xdebug.ini\"\n\nWhat's next:\n Try Docker Debug for seamless, persistent debugging tools in any container or image → docker debug docker_lamp_1\n Learn more at https://docs.docker.com/go/debug-cli/\ndocker exec -it docker_lamp_1 supervisorctl restart all\njiminny-worker-processing-2:jiminny-worker-processing-2_00: stopped\njiminny-worker-processing-3:jiminny-worker-processing-3_00: stopped\njiminny-worker-processing-4:jiminny-worker-processing-4_00: stopped\njiminny-worker-processing-5:jiminny-worker-processing-5_00: stopped\njiminny-worker-processing-delayed:jiminny-worker-processing-delayed_00: stopped\nworker-analytics:worker-analytics_00: stopped\nworker-crm-update:worker-crm-update_00: stopped\nworker-download:worker-download_00: stopped\nworker-nudges:worker-nudges_00: stopped\nartisan-schedule:artisan-schedule_00: stopped\nworker-emails:worker-emails_00: stopped\nworker-calendar:worker-calendar_00: stopped\nworker:worker_00: stopped\nworker-conferences:worker-conferences_00: stopped\nworker-crm-sync:worker-crm-sync_00: stopped\njiminny-worker-processing-1:jiminny-worker-processing-1_00: stopped\nworker-audio:worker-audio_00: stopped\nworker-es-update:worker-es-update_00: stopped\nartisan-schedule:artisan-schedule_00: started\njiminny-worker-processing-1:jiminny-worker-processing-1_00: started\njiminny-worker-processing-2:jiminny-worker-processing-2_00: started\njiminny-worker-processing-3:jiminny-worker-processing-3_00: started\njiminny-worker-processing-4:jiminny-worker-processing-4_00: started\njiminny-worker-processing-5:jiminny-worker-processing-5_00: started\njiminny-worker-processing-delayed:jiminny-worker-processing-delayed_00: started\nworker:worker_00: started\nworker-analytics:worker-analytics_00: started\nworker-audio:worker-audio_00: started\nworker-calendar:worker-calendar_00: started\nworker-conferences:worker-conferences_00: started\nworker-crm-sync:worker-crm-sync_00: started\nworker-crm-update:worker-crm-update_00: started\nworker-download:worker-download_00: started\nworker-emails:worker-emails_00: started\nworker-es-update:worker-es-update_00: started\nworker-nudges:worker-nudges_00: started\n\nWhat's next:\n Try Docker Debug for seamless, persistent debugging tools in any container or image → docker debug docker_lamp_1\n Learn more at https://docs.docker.com/go/debug-cli/\ndocker exec -it docker_lamp_1 php -v\nPHP 8.3.30 (cli) (built: Mar 16 2026 22:32:32) (NTS)\nCopyright (c) The PHP Group\nZend Engine v4.3.30, Copyright (c) Zend Technologies\n with Zend OPcache v8.3.30, Copyright (c), by Zend Technologies\n\nWhat's next:\n Try Docker Debug for seamless, persistent debugging tools in any container or image → docker debug docker_lamp_1\n Learn more at https://docs.docker.com/go/debug-cli/\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20613-allow-owner-role-on-team-setup) $ csfix\ndocker exec -it docker_lamp_1 ./vendor/bin/php-cs-fixer fix --config=.php-cs-fixer.dist.php -v --using-cache=no --diff \nPHP CS Fixer 3.87.1 Alexander by Fabien Potencier, Dariusz Ruminski and contributors.\nPHP runtime: 8.3.30\nRunning analysis on 7 cores with 10 files per process.\nParallel runner is an experimental feature and may be unstable, use it at your own risk. Feedback highly appreciated!\nLoaded config default from \".php-cs-fixer.dist.php\".\n 5682/5682 [▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓] 100%\n\n\nFixed 0 of 5682 files in 49.910 seconds, 60.00 MB memory used\n\nWhat's next:\n Try Docker Debug for seamless, persistent debugging tools in any container or image → docker debug docker_lamp_1\n Learn more at https://docs.docker.com/go/debug-cli/\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20613-allow-owner-role-on-team-setup) $ git status\nOn branch JY-20613-allow-owner-role-on-team-setup\nYour branch is ahead of 'origin/JY-20613-allow-owner-role-on-team-setup' by 1 commit.\n (use \"git push\" to publish your local commits)\n\nChanges not staged for commit:\n (use \"git add <file>...\" to update what will be committed)\n (use \"git restore <file>...\" to discard changes in working directory)\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tmodified: .env.local\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tmodified: config/logging.php\n\nUntracked files:\n (use \"git add <file>...\" to include in what will be committed)\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\t.env.nikilocal\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\t.env.other\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tWEBHOOK_FILTERING_IMPLEMENTATION.md\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tapp/Console/Commands/Crm/Hubspot/SimulateWebhooksCommand.php\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tapp/Console/Commands/Reports/CreateMockAskJiminnyReportResultCommand.php\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tids.txt\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tpublic/favicon.ico\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\traw_sql_query.sql\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\ttests/Unit/Policies/CanAccessAiReportsTest.php\n\nno changes added to commit (use \"git add\" and/or \"git commit -a\")\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20613-allow-owner-role-on-team-setup) $ git pull\nremote: Enumerating objects: 248, done.\nremote: Counting objects: 100% (128/128), done.\nremote: Compressing objects: 100% (23/23), done.\nremote: Total 59 (delta 43), reused 44 (delta 33), pack-reused 0 (from 0)\nUnpacking objects: 100% (59/59), 10.48 KiB | 228.00 KiB/s, done.\nFrom github.com:jiminny/app\n b7df560451..190239dfd4 JY-20613-allow-owner-role-on-team-setup -> origin/JY-20613-allow-owner-role-on-team-setup\n e0351be069..d94a285ae7 JY-20808-low-priority-indexing-queue -> origin/JY-20808-low-priority-indexing-queue\n * [new branch] JY-20920-fix-participant-matcher -> origin/JY-20920-fix-participant-matcher\n cb4ebf0c36..90bca4e4b2 master -> origin/master\nMerge made by the 'ort' strategy.\n app/Component/ES/ChunkSize.php | 54 +++++++++++++++++++++++++++\n app/Component/ES/Processor/DTOs/SelectionList.php | 4 +-\n app/Component/ES/Processor/TargetEntitiesSelector.php | 19 ++++++----\n app/Http/Middleware/McpTierMiddleware.php | 27 +++-----------\n app/Mcp/Servers/JiminnyServer.php | 2 +\n app/Mcp/Tools/GetMeTool.php | 157 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++\n app/Models/Feature/FeatureEnum.php | 1 +\n database/migrations/2026_05_13_124153_create_mcp_feature_flag.php | 25 +++++++++++++\n front-end/src/components/Settings/Kiosk/modals/EditTeamModal/EditTeamModal.vue | 52 ++++++++++++++++++--------\n front-end/src/components/Settings/Kiosk/modals/EditTeamModal/__tests__/EditTeamModal.spec.js | 14 +++++++\n tests/Feature/Mcp/GetMeToolFeatureTest.php | 140 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++\n tests/Feature/Mcp/ListCallsToolFeatureTest.php | 2 +-\n tests/Feature/Mcp/McpTestHelpersTrait.php | 19 +++++++++-\n tests/Unit/Component/ES/ChunkSizeTest.php | 50 +++++++++++++++++++++++++\n tests/Unit/Component/ES/Processor/DTOs/SelectionListTest.php | 27 ++++++++++----\n tests/Unit/Component/ES/Processor/TargetEntitiesSelectorTest.php | 39 +++++++++++---------\n 16 files changed, 557 insertions(+), 75 deletions(-)\n create mode 100644 app/Component/ES/ChunkSize.php\n create mode 100644 app/Mcp/Tools/GetMeTool.php\n create mode 100644 database/migrations/2026_05_13_124153_create_mcp_feature_flag.php\n create mode 100644 tests/Feature/Mcp/GetMeToolFeatureTest.php\n create mode 100644 tests/Unit/Component/ES/ChunkSizeTest.php\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20613-allow-owner-role-on-team-setup) $ git push\nEnumerating objects: 40, done.\nCounting objects: 100% (34/34), done.\nDelta compression using up to 8 threads\nCompressing objects: 100% (18/18), done.\nWriting objects: 100% (18/18), 1.58 KiB | 1.58 MiB/s, done.\nTotal 18 (delta 15), reused 0 (delta 0), pack-reused 0\nremote: Resolving deltas: 100% (15/15), completed with 13 local objects.\nTo github.com:jiminny/app.git\n 190239dfd4..ec1b261264 JY-20613-allow-owner-role-on-team-setup -> JY-20613-allow-owner-role-on-team-setup\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20613-allow-owner-role-on-team-setup) $ gbr\n* JY-20613-allow-owner-role-on-team-setup\n pipedrive-sdk-poc\n master\n JY-20903-update_activity-stage-on-opportunity-change\n JY-20904-fix-update-es-on-activity-command\n JY-20891-improve-sms-text-relays\n JY-20725-handle-HS-search-rate-limit\n JY-20818-move-AJ-reports-to-separated-datadog-metric\n JY-20773-fix-automated-reports-user-pilot-tracking\n JY-20157-AJ-report-not-send-notification\n JY-20508-notify-before-AJ-report-expiration\n JY-20372-ai-reports-promotion-pages\n JY-20352-sync-opportunities-without-a-local-owner-user-id-is-null\n JY-20738-debug-AJ-tracking-UP\n a\n JY-18909-automated-reports-ask-jiminny\n JY-20692-fix-integration-app-token-auth-response-change\n JY-20553-debug-crm-sync-delays\n JY-20698-fix-SF-activity-types-on-new-playbook\n JY-20543-AJ-report-tracking\n JY-20384-handle-auto-sync-with-no-access-to-event-type\n JY-20458-ask-jiminny-user-definitions\n JY-19666-fix-import-contacts-account-association\n JY-19666-HS-import-contacts-and-accounts-batch-job\n JY-20458-Ask-Jiminny-Reports\n JY-20200-batch-update-CRM-objects-Salesforce\n JY-19666-HS-webhooks-add-contact-and-company\n JY-20348-trigger-setup-DI-layout-on-team-creation\n JY-20326-refactor-info-message-in-command\n JY-20317-fix-auto-log-delay-issue-on-all-channels-disabled\n JY-20312-remove-on-update-change-last-synced-at-crm-configurations\n JY-20306-SF-skip-auto-sync-for-task-based-playbook\n JY-20192-remove-deleted-team-from-saved-search-filters\n JY-20197-import-opportunity-batch-job\n JY-20293-enable-status-field-for-pipedrive-deals\n JY-20191-remove-commands-interactive-prompts\n JY-20118-change-default-sync-strategy\n JY-20183-add-cache-on-auto-log-delay\n JY-20197-add-import-opportunity-batch-job\n 20118-hs-opportunity-make-webhook-strategy-default\n JY-20118-make-default-hs-opportunity-sync-strategy-webhook-based\n JY-20196-handle-opportunity-without-note\n JY-20118-improve-opportunity-import\n JY-20189-handle-activity-search-on-deleted-groups\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20613-allow-owner-role-on-team-setup) $ co JY-20725-handle-HS-search-rate-limit\nM\u0000\u0000\u0000\u0000\u0000\u0000\t.env.local\nM\u0000\u0000\u0000\u0000\u0000\u0000\tconfig/logging.php\nSwitched to branch 'JY-20725-handle-HS-search-rate-limit'\nYour branch is behind 'origin/JY-20725-handle-HS-search-rate-limit' by 439 commits, and can be fast-forwarded.\n (use \"git pull\" to update your local branch)\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20725-handle-HS-search-rate-limit) $ git pull\nUpdating 0f3e438941..bc6a3fce6b\nFast-forward\n .gitignore | 3 +-\n .windsurfrules | 168 ++---\n CLAUDE.md | 1 +\n app/Component/ActivityAnalytics/Service/CalculateTalkTimeOffsetsFromTranscription.php | 24 +-\n app/Component/AiActivityType/Services/AiActivityTypeEligibilityChecker.php | 28 +-\n app/Component/AiAutomation/Actions/PrepareUpdateDtoAction.php | 32 +-\n app/Component/AiAutomation/Services/CrmFillingEligibilityChecker.php | 47 ++\n app/Component/AiAutomation/TestCrmAiPromptService.php | 14 +\n app/Component/AiCallScoring/Services/AiCallScoringEligibilityChecker.php | 9 +\n app/Component/ES/ElasticSearchDocumentPartialUpdater.php | 13 +-\n app/Component/ES/ElasticSearchWorkerManager.php | 86 ---\n app/Component/ES/Processor/Actions/LoadDocumentsAction.php | 80 +--\n app/Component/ES/Processor/EntityQueryBuilder.php | 12 +-\n app/Component/ES/Processor/TargetEntitiesSelector.php | 2 +-\n app/Component/ES/Processor/Traits/SkipActivityTrait.php | 25 -\n app/Component/ES/Repositories/EsResetActivityRepository.php | 11 +-\n app/Component/ES/Worker/ActivityWorker.php | 73 --\n app/Component/ES/Worker/EntityWorker.php | 44 --\n app/Component/ES/Worker/WorkerAmount.php | 60 --\n app/Component/ES/Worker/WorkerInterface.php | 15 -\n app/Component/ElasticSearch/Contract/Searchable.php | 4 +\n app/Component/Encoding/Job/AnalyzeTrackChannelsJob.php | 20 +-\n app/Component/Encoding/Service/GenerateSpeechFromSilenceService.php | 85 ++-\n app/Component/FFMpeg/Services/GetSpeechIntervalsService.php | 18 +-\n app/Component/LanguageDetection/Services/FindSpeechTimeService.php | 22 +-\n app/Component/Nudge/Job/ProcessOrganisationImmediateNudgesJob.php | 218 +++++-\n app/Component/ParagraphBreaker/Services/TranscriptionParagraphsService.php | 4 +\n app/Component/ParticipantSpeech/Services/ParticipantSpeechesCreator.php | 33 +\n app/Component/ParticipantSpeech/Services/ParticipantSpeechesDeleter.php | 15 +\n app/Component/ParticipantSpeech/Services/ParticipantSpeechesProvider.php | 51 +-\n app/Component/ParticipantSpeech/Services/ParticipantSpeechesUploader.php | 36 +\n app/Component/ProphetAi/Exceptions/InsufficientTranscriptException.php | 11 +\n app/Component/Transcription/DTO/Http/Transcription/AssemblyAI/AssemblyAI/NoAssemblyIdException.php | 11 +\n app/Component/Transcription/DTO/Http/Transcription/AssemblyAI/AssemblyAI/SuccessfulResponse.php | 6 +\n app/Component/Transcription/DTO/Http/Transcription/TranscriptionIsNotCorrectFormatException.php | 11 +\n app/Component/Transcription/Diarization/Services/GetNormalizedParticipantSpeechesService.php | 23 +-\n app/Component/Transcription/Diarization/Source/MeetingBotSource.php | 16 +-\n app/Component/Transcription/TranscriptionProcessor/TranscriptionProcessor.php | 3 +\n app/Console/Commands/Activities/ActivityHardDeleteCommand.php | 4 +-\n app/Console/Commands/Activities/Copy.php | 2 +\n app/Console/Commands/Activities/SetupIntegration/TwilioSetS3RecordingCredentialsCommand.php | 119 ++++\n app/Console/Commands/Activities/UpdateActivityElasticSearchDocumentCommand.php | 10 +-\n app/Console/Commands/Crm/BackfillOpportunityUserFromAccountCommand.php | 126 ++++\n app/Console/Commands/Elasticsearch/AsyncUpdateEsActivities.php | 19 -\n app/Console/Commands/Elasticsearch/AsyncUpdateEsEntities.php | 50 +-\n app/Console/Commands/Elasticsearch/ResetAsyncElasticSearchCommand.php | 30 +-\n app/Console/Commands/GeckoExport/GeckoExportParticipantSpeechesCommand.php | 14 +-\n app/Console/Commands/IssueMcpTokenCommand.php | 84 +++\n app/Console/Commands/JiminnyDebugCommand.php | 7 +-\n app/Console/Commands/Tracks/CleanupActivityTracksCommand.php | 2 +-\n app/Console/Kernel.php | 6 +-\n app/Contracts/Services/Calendar/CalendarTrait.php | 80 ++-\n app/Events/AutomatedReports/AutomatedReportGenerated.php | 3 +\n app/Http/Controllers/API/AiCallScoring/AiScorecardController.php | 7 +-\n app/Http/Controllers/API/TeamAiAutomationController.php | 8 +\n app/Http/Controllers/CustomerApi/CustomerApiController.php | 4 +-\n app/Http/Controllers/Kiosk/ActivityController.php | 58 +-\n app/Http/Controllers/Settings/PlaybookController.php | 15 +-\n app/Http/Kernel.php | 23 +\n app/Http/Middleware/McpAuditMiddleware.php | 156 ++++\n app/Http/Middleware/McpTierMiddleware.php | 54 ++\n app/Http/Requests/API/V2/ZapierUploadActivityRequest.php | 28 +-\n app/Jobs/Activity/Import/ImportTwilioVideoSpeechesJob.php | 25 +-\n app/Jobs/Activity/Import/IsActivityReadyForProcessingJob.php | 10 +-\n app/Jobs/Calendar/SetupCalendarSync.php | 21 +-\n app/Jobs/ImportRemoteTrackJob.php | 96 ++-\n app/Jobs/Mailbox/EmailTextRelay.php | 15 +-\n app/Mcp/Contracts/McpCallRepositoryInterface.php | 30 +\n app/Mcp/DTO/ListCallsFilters.php | 29 +\n app/Mcp/Errors/McpError.php | 123 ++++\n app/Mcp/Repositories/McpActivityHydrator.php | 145 ++++\n app/Mcp/Repositories/McpCallRepository.php | 84 +++\n app/Mcp/Repositories/McpElasticCallRepository.php | 171 +++++\n app/Mcp/Servers/JiminnyServer.php | 38 +\n app/Mcp/Tools/ListCallsTool.php | 205 ++++++\n app/Models/Activity.php | 10 +-\n app/Models/Activity/Transcription.php | 17 +-\n app/Models/ElasticSearch/OpportunityElasticSearchTrait.php | 5 +\n app/Models/Participant.php | 1 +\n app/Providers/AppServiceProvider.php | 22 +\n app/Repositories/Crm/ContactRepository.php | 69 +-\n app/Repositories/ParticipantSpeechRepository.php | 13 +-\n app/Services/Activity/ParticipantsService.php | 19 +-\n app/Services/Activity/Twilio/S3RecordingCredentialsService.php | 82 +++\n app/Services/ActivityService.php | 21 +-\n app/Services/Calendar/CalendarActivityService.php | 46 ++\n app/Services/Calendar/Command/ImportParticipants.php | 1 +\n app/Services/Calendar/Command/MapActivityData.php | 106 +--\n app/Services/Calendar/GoogleCalendarService.php | 12 +-\n app/Services/Crm/Close/Processor/OpportunityProcessor.php | 2 +-\n app/Services/Crm/Close/Service.php | 22 +-\n app/Services/Crm/Copper/Service.php | 12 +-\n app/Services/Crm/Hubspot/Service.php | 154 +++-\n app/Services/Crm/Hubspot/ServiceTraits/OpportunitySyncTrait.php | 88 ++-\n app/Services/Crm/IntegrationApp/ServiceTraits/SyncCrmEntitiesTrait.php | 22 +-\n app/Services/Crm/Pipedrive/Service.php | 17 +-\n app/Services/Crm/Salesforce/Service.php | 42 +-\n app/Services/Mail/Office/EmailApiClient.php | 129 +---\n app/Services/RecallAI/Commands/ScheduleBotCommand.php | 39 +-\n app/Services/RecallAI/RecallAIService.php | 22 +-\n composer.json | 3 +-\n composer.lock | 87 ++-\n config/mcp.php | 23 +\n database/migrations/2026_04_30_120000_create_mcp_audit_log_table.php | 36 +\n docs/mcp/explorer/explorer.html | 697 ++++++++++++++++++\n docs/mcp/explorer/explorer.template.html | 697 ++++++++++++++++++\n docs/mcp/explorer/generate.js | 215 ++++++\n docs/mcp/explorer/tool-explorer-meta.json | 11 +\n docs/mcp/tools-list.json | 2536 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++\n docs/mcp/tools.md | 621 ++++++++++++++++\n front-end/package.json | 4 +-\n front-end/src/components/Settings/OrgSettings/AiAutomation/CrmFilling/TemplateFieldForm.vue | 28 +-\n front-end/src/components/Settings/OrgSettings/Playbooks/AddEditPlaybook.vue | 10 +\n front-end/src/components/playback/comments/ActivityComment.less | 10 +-\n front-end/src/components/shared/PromptTester/PromptTester.vue | 12 +-\n front-end/src/components/shared/__tests__/PromptTester.spec.js | 35 +\n front-end/src/components/shared/modals/EntityPickerModal/__tests__/useEntitiesCache.spec.ts | 37 +\n front-end/src/components/shared/modals/EntityPickerModal/useEntitiesCache.ts | 9 +\n front-end/yarn.lock | 16 +-\n phpstan-baseline.neon | 50 --\n routes/api.php | 11 +\n sonar-project.properties | 91 ++-\n tests/Feature/Component/Nudge/ProcessOrganisationImmediateNudgesJobTest.php | 534 ++++++++++++++\n tests/Feature/Jobs/ImportRemoteTrackJobTest.php | 283 +++++++-\n tests/Feature/Mcp/IssueMcpTokenCommandTest.php | 53 ++\n tests/Feature/Mcp/ListCallsToolElasticFeatureTest.php | 155 ++++\n tests/Feature/Mcp/ListCallsToolFeatureTest.php | 352 ++++++++++\n tests/Feature/Mcp/McpTestHelpersTrait.php | 77 ++\n tests/Feature/Services/Team/TeamDeleteHandlers/Retention/RetentionRepositoryHandlerTest.php | 1 +\n tests/Stubs/SentryStub.php | 18 +\n tests/Unit/Component/ActivityAnalytics/Service/CalculateTalkTimeOffsetFromTranscriptionTest.php | 28 +-\n tests/Unit/Component/AiActivityType/Services/AiActivityTypeEligibilityCheckerTest.php | 103 ++-\n tests/Unit/Component/AiAutomation/Actions/PrepareUpdateDtoActionTest.php | 91 +++\n tests/Unit/Component/AiAutomation/Services/CrmFillingEligibilityCheckerTest.php | 124 ++++\n tests/Unit/Component/AiAutomation/TestCrmAiPromptServiceTest.php | 67 +-\n tests/Unit/Component/AiCallScoring/Services/AiCallScoringEligibilityCheckerTest.php | 55 ++\n tests/Unit/Component/ES/ElasticSearchWorkerManagerTest.php | 135 ----\n tests/Unit/Component/ES/Processor/Actions/LoadDocumentsActionTest.php | 220 ++++++\n tests/Unit/Component/ES/Processor/EntityQueryBuilderTest.php | 21 +-\n tests/Unit/Component/ES/Processor/Traits/SkipActivityTraitTest.php | 51 --\n tests/Unit/Component/ES/Worker/ActivityWorkerTest.php | 174 -----\n tests/Unit/Component/ES/Worker/EntityWorkerTest.php | 97 ---\n tests/Unit/Component/ES/Worker/WorkerAmountTest.php | 116 ---\n tests/Unit/Component/Encoding/Job/AnalyzeTrackChannelsJobTest.php | 52 +-\n tests/Unit/Component/Encoding/Service/GenerateSpeechFromSilenceServiceTest.php | 171 ++---\n tests/Unit/Component/FFMpeg/Services/GetSpeechIntervalsTest.php | 36 +-\n tests/Unit/Component/LanguageDetection/Services/FindSpeechTimeServiceTest.php | 20 +-\n tests/Unit/Component/MobileSettings/MobileSettingsControllerTest.php | 5 +-\n tests/Unit/Component/ParticipantSpeech/Services/ParticipantSpeechesCreatorTest.php | 75 ++\n tests/Unit/Component/ParticipantSpeech/Services/ParticipantSpeechesDeleterTest.php | 63 ++\n tests/Unit/Component/ParticipantSpeech/Services/ParticipantSpeechesProviderTest.php | 134 ++++\n tests/Unit/Component/ParticipantSpeech/Services/ParticipantSpeechesUploaderTest.php | 57 ++\n tests/Unit/Component/Transcription/Diarization/Services/GetNormalizedParticipantSpeechesServiceTest.php | 51 +-\n tests/Unit/Component/Transcription/Diarization/Source/MeetingBotSourceTest.php | 29 +-\n tests/Unit/Contracts/Services/Calendar/CalendarTraitTest.php | 58 +-\n tests/Unit/Http/Controllers/Kiosk/ActivityControllerTest.php | 159 +++++\n tests/Unit/Jobs/Activity/Import/ImportTwilioVideoSpeechesJobTest.php | 22 +-\n tests/Unit/Jobs/Activity/Import/IsActivityReadyForProcessingJobTest.php | 26 +-\n tests/Unit/Jobs/Calendar/SetupCalendarSyncTest.php | 25 -\n tests/Unit/Services/Activity/ParticipantsServiceTest.php | 12 +-\n tests/Unit/Services/Activity/Twilio/S3RecordingCredentialsServiceTest.php | 180 +++++\n tests/Unit/Services/ActivityServiceTest.php | 132 ++++\n tests/Unit/Services/Calendar/CalendarActivityServiceTest.php | 150 +++-\n tests/Unit/Services/Calendar/Command/ImportParticipantsTest.php | 6 +-\n tests/Unit/Services/Calendar/Command/MapActivityDataTest.php | 78 +-\n tests/Unit/Services/Calendar/GoogleCalendarServiceTest.php | 116 +++\n tests/Unit/Services/Crm/Close/ServiceTest.php | 165 +++++\n tests/Unit/Services/Crm/Hubspot/ServiceTest.php | 272 ++++++-\n tests/Unit/Services/Crm/Hubspot/ServiceTraits/OpportunitySyncTest.php | 25 +-\n tests/Unit/Services/Crm/Hubspot/ServiceTraits/OpportunitySyncTraitMatchActivitiesTest.php | 3 +-\n tests/Unit/Services/Crm/IntegrationApp/ServiceTraits/SyncCrmEntitiesTraitOpportunitiesTest.php | 40 ++\n tests/Unit/Services/Crm/Pipedrive/ImportOpportunityMatchActivitiesTest.php | 2 +\n tests/Unit/Services/Crm/Salesforce/ServiceTest.php | 139 ++++\n tests/Unit/Services/Mail/Office/EmailApiClientTest.php | 195 ++---\n tests/Unit/Services/RecallAI/RecallAIServiceTest.php | 24 +-\n 175 files changed, 12562 insertions(+), 2162 deletions(-)\n create mode 120000 CLAUDE.md\n create mode 100644 app/Component/AiAutomation/Services/CrmFillingEligibilityChecker.php\n delete mode 100644 app/Component/ES/ElasticSearchWorkerManager.php\n delete mode 100644 app/Component/ES/Processor/Traits/SkipActivityTrait.php\n delete mode 100644 app/Component/ES/Worker/ActivityWorker.php\n delete mode 100644 app/Component/ES/Worker/EntityWorker.php\n delete mode 100644 app/Component/ES/Worker/WorkerAmount.php\n delete mode 100644 app/Component/ES/Worker/WorkerInterface.php\n create mode 100644 app/Component/ProphetAi/Exceptions/InsufficientTranscriptException.php\n create mode 100644 app/Component/Transcription/DTO/Http/Transcription/AssemblyAI/AssemblyAI/NoAssemblyIdException.php\n create mode 100644 app/Component/Transcription/DTO/Http/Transcription/TranscriptionIsNotCorrectFormatException.php\n create mode 100644 app/Console/Commands/Activities/SetupIntegration/TwilioSetS3RecordingCredentialsCommand.php\n create mode 100644 app/Console/Commands/Crm/BackfillOpportunityUserFromAccountCommand.php\n delete mode 100644 app/Console/Commands/Elasticsearch/AsyncUpdateEsActivities.php\n create mode 100644 app/Console/Commands/IssueMcpTokenCommand.php\n create mode 100644 app/Http/Middleware/McpAuditMiddleware.php\n create mode 100644 app/Http/Middleware/McpTierMiddleware.php\n create mode 100644 app/Mcp/Contracts/McpCallRepositoryInterface.php\n create mode 100644 app/Mcp/DTO/ListCallsFilters.php\n create mode 100644 app/Mcp/Errors/McpError.php\n create mode 100644 app/Mcp/Repositories/McpActivityHydrator.php\n create mode 100644 app/Mcp/Repositories/McpCallRepository.php\n create mode 100644 app/Mcp/Repositories/McpElasticCallRepository.php\n create mode 100644 app/Mcp/Servers/JiminnyServer.php\n create mode 100644 app/Mcp/Tools/ListCallsTool.php\n create mode 100644 app/Services/Activity/Twilio/S3RecordingCredentialsService.php\n create mode 100644 config/mcp.php\n create mode 100644 database/migrations/2026_04_30_120000_create_mcp_audit_log_table.php\n create mode 100644 docs/mcp/explorer/explorer.html\n create mode 100644 docs/mcp/explorer/explorer.template.html\n create mode 100644 docs/mcp/explorer/generate.js\n create mode 100644 docs/mcp/explorer/tool-explorer-meta.json\n create mode 100644 docs/mcp/tools-list.json\n create mode 100644 docs/mcp/tools.md\n create mode 100644 front-end/src/components/shared/modals/EntityPickerModal/__tests__/useEntitiesCache.spec.ts\n create mode 100644 tests/Feature/Component/Nudge/ProcessOrganisationImmediateNudgesJobTest.php\n create mode 100644 tests/Feature/Mcp/IssueMcpTokenCommandTest.php\n create mode 100644 tests/Feature/Mcp/ListCallsToolElasticFeatureTest.php\n create mode 100644 tests/Feature/Mcp/ListCallsToolFeatureTest.php\n create mode 100644 tests/Feature/Mcp/McpTestHelpersTrait.php\n create mode 100644 tests/Stubs/SentryStub.php\n create mode 100644 tests/Unit/Component/AiAutomation/Services/CrmFillingEligibilityCheckerTest.php\n delete mode 100644 tests/Unit/Component/ES/ElasticSearchWorkerManagerTest.php\n create mode 100644 tests/Unit/Component/ES/Processor/Actions/LoadDocumentsActionTest.php\n delete mode 100644 tests/Unit/Component/ES/Processor/Traits/SkipActivityTraitTest.php\n delete mode 100644 tests/Unit/Component/ES/Worker/ActivityWorkerTest.php\n delete mode 100644 tests/Unit/Component/ES/Worker/EntityWorkerTest.php\n delete mode 100644 tests/Unit/Component/ES/Worker/WorkerAmountTest.php\n create mode 100644 tests/Unit/Component/ParticipantSpeech/Services/ParticipantSpeechesCreatorTest.php\n create mode 100644 tests/Unit/Http/Controllers/Kiosk/ActivityControllerTest.php\n create mode 100644 tests/Unit/Services/Activity/Twilio/S3RecordingCredentialsServiceTest.php\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20725-handle-HS-search-rate-limit) $ git status\nOn branch master\nYour branch is behind 'origin/master' by 114 commits, and can be fast-forwarded.\n (use \"git pull\" to update your local branch)\n\nChanges not staged for commit:\n (use \"git add <file>...\" to update what will be committed)\n (use \"git restore <file>...\" to discard changes in working directory)\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tmodified: .env.local\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tmodified: app/Component/SCIM/Constants.php\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tmodified: app/Component/SCIM/ScimProvisioning.php\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tmodified: app/Component/Twilio/Conference/ConferenceManager/SoftPhoneManager.php\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tmodified: app/Console/Commands/JiminnyDebugCommand.php\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tmodified: app/DTO/SCIM/AAD/Request/CoreUserRequest.php\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tmodified: app/DTO/SCIM/AAD/Response/CoreUser.php\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tmodified: app/Services/Telephony/TextMessagingService.php\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tmodified: config/logging.php\n\nUntracked files:\n (use \"git add <file>...\" to include in what will be committed)\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\t.env.nikilocal\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\t.env.other\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tWEBHOOK_FILTERING_IMPLEMENTATION.md\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tapp/Component/SCIM/Mutators/Attributes/User/RoleAttr.php\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tapp/Console/Commands/Crm/Hubspot/SimulateWebhooksCommand.php\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tapp/Console/Commands/Reports/CreateMockAskJiminnyReportResultCommand.php\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tapp/Rules/ListenerRoleCannotHaveAdminOrManagerPermissionRule.php\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tids.txt\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tpublic/favicon.ico\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\traw_sql_query.sql\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\ttests/Unit/Component/SCIM/Mutators/Attributes/User/RoleAttrTest.php\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\ttests/Unit/Policies/CanAccessAiReportsTest.php\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\ttests/Unit/Rules/ListenerRoleCannotHaveAdminOrManagerPermissionRuleTest.php\n\nno changes added to commit (use \"git add\" and/or \"git commit -a\")\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (master) $ git pull\nremote: Enumerating objects: 306, done.\nremote: Counting objects: 100% (299/299), done.\nremote: Compressing objects: 100% (183/183), done.\nremote: Total 306 (delta 213), reused 171 (delta 116), pack-reused 7 (from 1)\nReceiving objects: 100% (306/306), 80.12 KiB | 1000.00 KiB/s, done.\nResolving deltas: 100% (213/213), completed with 53 local objects.\nFrom github.com:jiminny/app\n 90bca4e4b2..5604af40cf master -> origin/master\n 4e7078fd8b..0b8343d179 JY-18091-upgrade-to-php-8-5 -> origin/JY-18091-upgrade-to-php-8-5\n 098eeaa087..d5a447e492 JY-20613-allow-owner-role-on-team-setup -> origin/JY-20613-allow-owner-role-on-team-setup\n c3a76ace91..af65249d0f JY-20749-user-can-view-recorded-meetings -> origin/JY-20749-user-can-view-recorded-meetings\n d94a285ae7..7ce96cb5fe JY-20808-low-priority-indexing-queue -> origin/JY-20808-low-priority-indexing-queue\n * [new branch] JY-20842-remove-partial-updater -> origin/JY-20842-remove-partial-updater\n * [new branch] JY-20920-fix-participant-flip -> origin/JY-20920-fix-participant-flip\n * [new branch] secfix/npm-20260519 -> origin/secfix/npm-20260519\nUpdating cb4ebf0c36..5604af40cf\nFast-forward\n app/Component/ES/ChunkSize.php | 54 +++++++++++++++++++\n app/Component/ES/Processor/DTOs/SelectionList.php | 4 +-\n app/Component/ES/Processor/TargetEntitiesSelector.php | 19 ++++---\n app/Component/MeetingBot/Service/ParticipantMatcher.php | 46 ++++++++++++----\n app/Exceptions/RateLimitException.php | 19 ++++++-\n app/Http/Middleware/McpTierMiddleware.php | 27 ++--------\n app/Jobs/Crm/MatchActivityCrmData.php | 47 ++++++++++++----\n app/Jobs/Middleware/HandleHubspotRateLimit.php | 42 +++++++++++++++\n app/Mcp/Servers/JiminnyServer.php | 2 +\n app/Mcp/Tools/GetMeTool.php | 157 +++++++++++++++++++++++++++++++++++++++++++++++++++++\n app/Models/Feature/FeatureEnum.php | 1 +\n app/Services/Activity/HubSpot/ProviderResolver.php | 4 +-\n app/Services/Activity/HubSpot/ProviderResolverInterface.php | 2 +-\n app/Services/Activity/HubSpot/Providers/Provider.php | 2 +-\n app/Services/Activity/HubSpot/Providers/ProviderKixie.php | 2 +-\n app/Services/Activity/HubSpot/Providers/ProviderOrum.php | 2 +-\n app/Services/Activity/HubSpot/Providers/ProviderTwilio.php | 2 +-\n app/Services/Activity/HubSpot/Providers/ProviderTwilioFlex.php | 5 +-\n app/Services/Activity/HubSpot/Service.php | 97 +++++++++++++++++++++++++++------\n app/Services/Crm/Hubspot/Client.php | 132 +++++++++++++++++++++++++++++++++++++++++++++\n app/Services/Crm/Hubspot/HubspotClientInterface.php | 15 ++++++\n app/Services/Crm/Hubspot/Pagination/HubspotPaginationService.php | 21 ++++----\n app/Services/Crm/Hubspot/Pagination/PaginationState.php | 2 +-\n database/migrations/2026_05_13_124153_create_mcp_feature_flag.php | 25 +++++++++\n tests/Feature/Mcp/GetMeToolFeatureTest.php | 140 +++++++++++++++++++++++++++++++++++++++++++++++\n tests/Feature/Mcp/ListCallsToolFeatureTest.php | 2 +-\n tests/Feature/Mcp/McpTestHelpersTrait.php | 19 ++++++-\n tests/Unit/Component/ES/ChunkSizeTest.php | 50 +++++++++++++++++\n tests/Unit/Component/ES/Processor/DTOs/SelectionListTest.php | 27 +++++++---\n tests/Unit/Component/ES/Processor/TargetEntitiesSelectorTest.php | 39 ++++++++------\n tests/Unit/Component/MeetingBot/Service/ParticipantMatcherTest.php | 68 ++++++++++++++++++++++-\n tests/Unit/Exceptions/RateLimitExceptionTest.php | 56 +++++++++++++++++++\n tests/Unit/Jobs/Crm/MatchActivityCrmDataTest.php | 8 +--\n tests/Unit/Jobs/Middleware/HandleHubspotRateLimitTest.php | 151 +++++++++++++++++++++++++++++++++++++++++++++++++++\n tests/Unit/Services/Activity/HubSpot/ServiceTest.php | 109 +++++++++++++++++++++++++++++++++++++\n tests/Unit/Services/Crm/Hubspot/ClientTest.php | 250 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++\n tests/Unit/Services/Crm/Hubspot/Pagination/HubspotPaginationServiceTest.php | 283 +++++++++++++++++++++---------------------------------------------------------------------------\n 37 files changed, 1587 insertions(+), 344 deletions(-)\n create mode 100644 app/Component/ES/ChunkSize.php\n create mode 100644 app/Jobs/Middleware/HandleHubspotRateLimit.php\n create mode 100644 app/Mcp/Tools/GetMeTool.php\n create mode 100644 database/migrations/2026_05_13_124153_create_mcp_feature_flag.php\n create mode 100644 tests/Feature/Mcp/GetMeToolFeatureTest.php\n create mode 100644 tests/Unit/Component/ES/ChunkSizeTest.php\n create mode 100644 tests/Unit/Exceptions/RateLimitExceptionTest.php\n create mode 100644 tests/Unit/Jobs/Middleware/HandleHubspotRateLimitTest.php\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (master) $ git pull\nAlready up to date.\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (master) $ co -b JY-20676-delete-report-related-objects\nSwitched to a new branch 'JY-20676-delete-report-related-objects'\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20676-delete-report-related-objects) $ csfix\ndocker exec -it docker_lamp_1 ./vendor/bin/php-cs-fixer fix --config=.php-cs-fixer.dist.php -v --using-cache=no --diff \nPHP CS Fixer 3.87.1 Alexander by Fabien Potencier, Dariusz Ruminski and contributors.\nPHP runtime: 8.3.30\nRunning analysis on 7 cores with 10 files per process.\nParallel runner is an experimental feature and may be unstable, use it at your own risk. Feedback highly appreciated!\nLoaded config default from \".php-cs-fixer.dist.php\".\n 5690/5690 [▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓] 100%\n\n 1) app/Console/Commands/JiminnyDebugCommand.php (statement_indentation, blank_line_before_statement)\n ---------- begin diff ----------\n--- /home/jiminny/app/Console/Commands/JiminnyDebugCommand.php\n+++ /home/jiminny/app/Console/Commands/JiminnyDebugCommand.php\n@@ -23,6 +23,7 @@\n \n if ($action === 'redis-set') {\n $this->testRedisSet();\n+\n return;\n }\n \n@@ -45,7 +46,7 @@\n $ttl = 60;\n \n try {\n-// $result = Redis::set($testKey, $testValue, 'EX', $ttl, 'NX');\n+ // $result = Redis::set($testKey, $testValue, 'EX', $ttl, 'NX');\n $result = Redis::set($testKey, $testValue, ['nx', 'ex' => $ttl]);\n \n if ($result) {\n\n ----------- end diff -----------\n\n\nFixed 1 of 5690 files in 50.673 seconds, 67.00 MB memory used\n\nWhat's next:\n Try Docker Debug for seamless, persistent debugging tools in any container or image → docker debug docker_lamp_1\n Learn more at https://docs.docker.com/go/debug-cli/\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20676-delete-report-related-objects) $ ;xd\ndocker exec -it docker_lamp_1 bash -c \"mv /usr/local/etc/php/conf.d/xdebug.ini ~/xdebug.ini\"\n\nWhat's next:\n Try Docker Debug for seamless, persistent debugging tools in any container or image → docker debug docker_lamp_1\n Learn more at https://docs.docker.com/go/debug-cli/\ndocker exec -it docker_lamp_1 supervisorctl restart all\njiminny-worker-processing-2:jiminny-worker-processing-2_00: stopped\njiminny-worker-processing-3:jiminny-worker-processing-3_00: stopped\njiminny-worker-processing-4:jiminny-worker-processing-4_00: stopped\njiminny-worker-processing-5:jiminny-worker-processing-5_00: stopped\njiminny-worker-processing-delayed:jiminny-worker-processing-delayed_00: stopped\nworker-analytics:worker-analytics_00: stopped\nworker-crm-update:worker-crm-update_00: stopped\nworker-download:worker-download_00: stopped\nworker-nudges:worker-nudges_00: stopped\nworker-calendar:worker-calendar_00: stopped\nworker-audio:worker-audio_00: stopped\njiminny-worker-processing-1:jiminny-worker-processing-1_00: stopped\nworker:worker_00: stopped\nworker-conferences:worker-conferences_00: stopped\nworker-crm-sync:worker-crm-sync_00: stopped\nworker-emails:worker-emails_00: stopped\nworker-es-update:worker-es-update_00: stopped\nartisan-schedule:artisan-schedule_00: stopped\nartisan-schedule:artisan-schedule_00: started\njiminny-worker-processing-1:jiminny-worker-processing-1_00: started\njiminny-worker-processing-2:jiminny-worker-processing-2_00: started\njiminny-worker-processing-3:jiminny-worker-processing-3_00: started\njiminny-worker-processing-4:jiminny-worker-processing-4_00: started\njiminny-worker-processing-5:jiminny-worker-processing-5_00: started\njiminny-worker-processing-delayed:jiminny-worker-processing-delayed_00: started\nworker:worker_00: started\nworker-analytics:worker-analytics_00: started\nworker-audio:worker-audio_00: started\nworker-calendar:worker-calendar_00: started\nworker-conferences:worker-conferences_00: started\nworker-crm-sync:worker-crm-sync_00: started\nworker-crm-update:worker-crm-update_00: started\nworker-download:worker-download_00: started\nworker-emails:worker-emails_00: started\nworker-es-update:worker-es-update_00: started\nworker-nudges:worker-nudges_00: started\n\nWhat's next:\n Try Docker Debug for seamless, persistent debugging tools in any container or image → docker debug docker_lamp_1\n Learn more at https://docs.docker.com/go/debug-cli/\ndocker exec -it docker_lamp_1 php -v\nPHP 8.3.30 (cli) (built: Mar 16 2026 22:32:32) (NTS)\nCopyright (c) The PHP Group\nZend Engine v4.3.30, Copyright (c) Zend Technologies\n with Zend OPcache v8.3.30, Copyright (c), by Zend Technologies\n\nWhat's next:\n Try Docker Debug for seamless, persistent debugging tools in any container or image → docker debug docker_lamp_1\n Learn more at https://docs.docker.com/go/debug-cli/\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20676-delete-report-related-objects) $ git status\nOn branch JY-20676-delete-report-related-objects\nChanges not staged for commit:\n (use \"git add <file>...\" to update what will be committed)\n (use \"git restore <file>...\" to discard changes in working directory)\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tmodified: .env.local\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tmodified: app/Console/Commands/JiminnyDebugCommand.php\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tmodified: config/logging.php\n\nUntracked files:\n (use \"git add <file>...\" to include in what will be committed)\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\t.env.nikilocal\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\t.env.other\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tWEBHOOK_FILTERING_IMPLEMENTATION.md\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tapp/Console/Commands/Crm/Hubspot/SimulateWebhooksCommand.php\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tapp/Console/Commands/Reports/CreateMockAskJiminnyReportResultCommand.php\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tids.txt\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tpublic/favicon.ico\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\traw_sql_query.sql\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\ttests/Unit/Policies/CanAccessAiReportsTest.php\n\nno changes added to commit (use \"git add\" and/or \"git commit -a\")\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20676-delete-report-related-objects) $ git push -u origin JY-20676-delete-report-related-objects\nEnumerating objects: 45, done.\nCounting objects: 100% (45/45), done.\nDelta compression using up to 8 threads\nCompressing objects: 100% (24/24), done.\nWriting objects: 100% (24/24), 3.62 KiB | 3.62 MiB/s, done.\nTotal 24 (delta 19), reused 0 (delta 0), pack-reused 0\nremote: Resolving deltas: 100% (19/19), completed with 19 local objects.\nremote: \nremote: Create a pull request for 'JY-20676-delete-report-related-objects' on GitHub by visiting:\nremote: https://github.com/jiminny/app/pull/new/JY-20676-delete-report-related-objects\nremote: \nTo github.com:jiminny/app.git\n * [new branch] JY-20676-delete-report-related-objects -> JY-20676-delete-report-related-objects\nbranch 'JY-20676-delete-report-related-objects' set up to track 'origin/JY-20676-delete-report-related-objects'.\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20676-delete-report-related-objects) $ csfix\ndocker exec -it docker_lamp_1 ./vendor/bin/php-cs-fixer fix --config=.php-cs-fixer.dist.php -v --using-cache=no --diff \nPHP CS Fixer 3.87.1 Alexander by Fabien Potencier, Dariusz Ruminski and contributors.\nPHP runtime: 8.3.30\nRunning analysis on 7 cores with 10 files per process.\nParallel runner is an experimental feature and may be unstable, use it at your own risk. Feedback highly appreciated!\nLoaded config default from \".php-cs-fixer.dist.php\".\n 5690/5690 [▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓] 100%\n\n 1) app/Http/Controllers/API/V2/AskJiminnyReportsController.php (blank_line_before_statement)\n ---------- begin diff ----------\n--- /home/jiminny/app/Http/Controllers/API/V2/AskJiminnyReportsController.php\n+++ /home/jiminny/app/Http/Controllers/API/V2/AskJiminnyReportsController.php\n@@ -140,6 +140,7 @@\n if ($enabled && $report->isAskJiminnyReport() && ! $report->canExecute()) {\n $error = 'This report is missing a saved search or prompt. ' .\n 'Edit the report to complete the setup before enabling it.';\n+\n return new JsonResponse(\n ['error' => $error],\n Response::HTTP_UNPROCESSABLE_ENTITY\n\n ----------- end diff -----------\n\n\nFixed 1 of 5690 files in 71.757 seconds, 60.00 MB memory used\n\nWhat's next:\n Try Docker Debug for seamless, persistent debugging tools in any container or image → docker debug docker_lamp_1\n Learn more at https://docs.docker.com/go/debug-cli/\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20676-delete-report-related-objects) $ git pull\nremote: Enumerating objects: 158, done.\nremote: Counting objects: 100% (103/103), done.\nremote: Compressing objects: 100% (37/37), done.\nremote: Total 158 (delta 80), reused 74 (delta 66), pack-reused 55 (from 3)\nReceiving objects: 100% (158/158), 80.59 KiB | 982.00 KiB/s, done.\nResolving deltas: 100% (85/85), completed with 45 local objects.\nFrom github.com:jiminny/app\n 02a33811ee..c6ce5e2440 JY-20676-delete-report-related-objects -> origin/JY-20676-delete-report-related-objects\n 7ce96cb5fe..6c59f04358 JY-20808-low-priority-indexing-queue -> origin/JY-20808-low-priority-indexing-queue\n 3906a9238a..2b5e6ea62b JY-20835-mcp-enable-users-to-get-a-list-of-deals-and-their-details -> origin/JY-20835-mcp-enable-users-to-get-a-list-of-deals-and-their-details\n 5604af40cf..ea3519f0e2 master -> origin/master\n * [new branch] switch-eu-assembly -> origin/switch-eu-assembly\nUpdating 02a33811ee..c6ce5e2440\nFast-forward\n app/Component/ES/ElasticSearchDocumentPartialUpdater.php | 48 ---\n app/Component/ParticipantSpeech/Services/ParticipantAttributionService.php | 4 +-\n app/Component/Settings/AutoScoring/Services/UpdateAutoScoreService.php | 20 +-\n app/Component/Transcription/Service/StorageService.php | 8 +-\n front-end/package.json | 2 +-\n front-end/src/components/DealInsights/Modals/AskAnythingModal.vue | 23 ++\n front-end/src/components/shared/AskAnything/AskAnythingPromptFormItem.vue | 2 +\n front-end/src/components/shared/AskAnything/AskAnythingSettingsDrawer.vue | 23 +-\n front-end/src/components/shared/AskAnything/__mocks__/AskAnythingSettingsDrawer.mocks.js | 1 +\n front-end/src/components/shared/AskAnything/__tests__/AskAnythingSettingsDrawer.spec.js | 135 ++++---\n front-end/src/components/shared/AskAnything/__tests__/__snapshots__/AskAnythingSettingsDrawer.spec.js.html | 1235 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++\n front-end/src/components/shared/AskAnything/__tests__/__snapshots__/AskAnythingSettingsDrawer.spec.js.snap | 1382 ----------------------------------------------------------------\n front-end/src/components/shared/AskAnything/prompts.js | 1 +\n front-end/src/components/shared/AskAnything/useAskAnything.js | 1 +\n front-end/yarn.lock | 8 +-\n tests/Unit/Component/ES/ElasticSearchDocumentPartialUpdaterTest.php | 42 --\n tests/Unit/Component/Settings/AutoScoring/Services/UpdateAutoScoreServiceTest.php | 86 ++--\n tests/Unit/Component/Transcription/Service/StorageServiceTest.php | 29 +-\n 18 files changed, 1448 insertions(+), 1602 deletions(-)\n delete mode 100644 app/Component/ES/ElasticSearchDocumentPartialUpdater.php\n create mode 100644 front-end/src/components/shared/AskAnything/__tests__/__snapshots__/AskAnythingSettingsDrawer.spec.js.html\n delete mode 100644 front-end/src/components/shared/AskAnything/__tests__/__snapshots__/AskAnythingSettingsDrawer.spec.js.snap\n delete mode 100644 tests/Unit/Component/ES/ElasticSearchDocumentPartialUpdaterTest.php\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20676-delete-report-related-objects) $ csfix\ndocker exec -it docker_lamp_1 ./vendor/bin/php-cs-fixer fix --config=.php-cs-fixer.dist.php -v --using-cache=no --diff \nPHP CS Fixer 3.87.1 Alexander by Fabien Potencier, Dariusz Ruminski and contributors.\nPHP runtime: 8.3.30\nRunning analysis on 7 cores with 10 files per process.\nParallel runner is an experimental feature and may be unstable, use it at your own risk. Feedback highly appreciated!\nLoaded config default from \".php-cs-fixer.dist.php\".\n 5688/5688 [▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓] 100%\n\n\nFixed 0 of 5688 files in 79.904 seconds, 60.00 MB memory used\n\nWhat's next:\n Try Docker Debug for seamless, persistent debugging tools in any container or image → docker debug docker_lamp_1\n Learn more at https://docs.docker.com/go/debug-cli/\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20676-delete-report-related-objects) $ csfix\ndocker exec -it docker_lamp_1 ./vendor/bin/php-cs-fixer fix --config=.php-cs-fixer.dist.php -v --using-cache=no --diff \nPHP CS Fixer 3.87.1 Alexander by Fabien Potencier, Dariusz Ruminski and contributors.\nPHP runtime: 8.3.30\nRunning analysis on 7 cores with 10 files per process.\nParallel runner is an experimental feature and may be unstable, use it at your own risk. Feedback highly appreciated!\nLoaded config default from \".php-cs-fixer.dist.php\".","is_focused":true},{"role":"AXRadioButton","text":"DOCKER","depth":2,"bounds":{"left":0.27027926,"top":1.0,"width":0.094913565,"height":-0.042298436},"on_screen":true,"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.27227393,"top":1.0,"width":0.005319149,"height":-0.04549086},"on_screen":true,"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"DEV (docker)","depth":2,"bounds":{"left":0.36519283,"top":1.0,"width":0.094913565,"height":-0.042298436},"on_screen":true,"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.3671875,"top":1.0,"width":0.005319149,"height":-0.04549086},"on_screen":true,"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"APP (docker)","depth":2,"bounds":{"left":0.46010637,"top":1.0,"width":0.09474734,"height":-0.042298436},"on_screen":true,"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.46210107,"top":1.0,"width":0.005319149,"height":-0.04549086},"on_screen":true,"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"screenpipe\"","depth":2,"bounds":{"left":0.55485374,"top":1.0,"width":0.09474734,"height":-0.042298436},"on_screen":true,"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.5568484,"top":1.0,"width":0.005319149,"height":-0.04549086},"on_screen":true,"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"-zsh","depth":2,"bounds":{"left":0.64960104,"top":1.0,"width":0.09474734,"height":-0.042298436},"on_screen":true,"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.6515958,"top":1.0,"width":0.005319149,"height":-0.04549086},"on_screen":true,"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"⌥⌘1","depth":1,"bounds":{"left":0.7307181,"top":1.0,"width":0.01861702,"height":-0.023144484},"on_screen":true,"automation_id":"_NS:8","role_description":"text"},{"role":"AXStaticText","text":"APP (docker)","depth":1,"bounds":{"left":0.49634308,"top":1.0,"width":0.029920213,"height":-0.02394259},"on_screen":true,"role_description":"text"}]...
|
2802650493718167367
|
-1358120912881272742
|
idle
|
accessibility
|
NULL
|
Last login: Mon May 18 09:17:28 on ttys007
Poetry Last login: Mon May 18 09:17:28 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 (pipedrive-sdk-poc) $ co master
error: Your local changes to the following files would be overwritten by checkout:
PIPEDRIVE_V2_MIGRATION_TICKETS.md
Please commit your changes or stash them before you switch branches.
Aborting
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (pipedrive-sdk-poc) $ git pull
remote: Enumerating objects: 1047, done.
remote: Counting objects: 100% (832/832), done.
remote: Compressing objects: 100% (298/298), done.
remote: Total 1047 (delta 634), reused 596 (delta 534), pack-reused 215 (from 3)
Receiving objects: 100% (1047/1047), 353.16 KiB | 1.56 MiB/s, done.
Resolving deltas: 100% (687/687), completed with 107 local objects.
From github.com:jiminny/app
907c54896c..34656c53ed pipedrive-sdk-poc -> origin/pipedrive-sdk-poc
03325ec50f..4e7078fd8b JY-18091-upgrade-to-php-8-5 -> origin/JY-18091-upgrade-to-php-8-5
e7d231e163..bc6a3fce6b JY-20725-handle-HS-search-rate-limit -> origin/JY-20725-handle-HS-search-rate-limit
* [new branch] JY-20749-user-can-view-recorded-meetings -> origin/JY-20749-user-can-view-recorded-meetings
98ca281a04..e0351be069 JY-20808-low-priority-indexing-queue -> origin/JY-20808-low-priority-indexing-queue
569abb5149..3906a9238a JY-20835-mcp-enable-users-to-get-a-list-of-deals-and-their-details -> origin/JY-20835-mcp-enable-users-to-get-a-list-of-deals-and-their-details
ad6c2a86e8..50eb6afba9 JY-20846-mcp-enable-the-ai-to-know-details-about-the-user -> origin/JY-20846-mcp-enable-the-ai-to-know-details-about-the-user
* [new branch] JY-20893-chunk-control-per-update-target -> origin/JY-20893-chunk-control-per-update-target
31c62924a5..cb4ebf0c36 master -> origin/master
Updating 907c54896c..34656c53ed
Fast-forward
PIPEDRIVE_V2_MIGRATION_TICKETS.md | 52 ++++++++++++++++++++++++++++++++++++++++++++++++++++
1 file changed, 52 insertions(+)
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (pipedrive-sdk-poc) $ co master
M .env.local
M config/logging.php
Switched to branch 'master'
Your branch is behind 'origin/master' by 31 commits, and can be fast-forwarded.
(use "git pull" to update your local branch)
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (master) $ git pull
Updating 31c62924a5..cb4ebf0c36
Fast-forward
app/Component/ES/Processor/Traits/SelectEntityListTrait.php | 20 ------
app/Services/Calendar/CalendarActivityService.php | 46 +++++++++++++
app/Services/Calendar/Command/MapActivityData.php | 106 +++-------------------------
docs/mcp/explorer/explorer.html | 104 +++++++++++++++++++++++++---
docs/mcp/explorer/explorer.template.html | 102 ++++++++++++++++++++++++---
docs/mcp/tools-list.json | 373 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++-------
docs/mcp/tools.md | 117 +++++++++++++++++++++++--------
tests/Unit/Component/ES/AsyncUpdateElasticSearchTest.php | 16 +----
tests/Unit/Component/ES/Listeners/UpdateMultipleTargetsListenerTest.php | 10 ---
tests/Unit/Component/ES/Listeners/UpdateSingleTargetListenerTest.php | 6 --
tests/Unit/Component/ES/Processor/TargetEntitiesSelectorTest.php | 9 ---
tests/Unit/Component/ES/Processor/Traits/SelectEntityListTraitTest.php | 15 ++--
tests/Unit/Component/ES/UpdateProcessManagerTest.php | 2 -
tests/Unit/Services/Calendar/CalendarActivityServiceTest.php | 150 ++++++++++++++++++++++++++++++++++++++--
tests/Unit/Services/Calendar/Command/MapActivityDataTest.php | 78 ++-------------------
15 files changed, 832 insertions(+), 322 deletions(-)
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (master) $ co -b JY-20613-allow-owner-role-on-team-setup
Switched to a new branch 'JY-20613-allow-owner-role-on-team-setup'
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20613-allow-owner-role-on-team-setup) $ csfix
docker exec -it docker_lamp_1 ./vendor/bin/php-cs-fixer fix --config=.php-cs-fixer.dist.php -v --using-cache=no --diff
PHP CS Fixer 3.87.1 Alexander by Fabien Potencier, Dariusz Ruminski and contributors.
PHP runtime: 8.3.30
Running 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!
Loaded config default from ".php-cs-fixer.dist.php".
5682/5682 [▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓] 100%
Fixed 0 of 5682 files in 56.978 seconds, 67.00 MB memory used
What's next:
Try Docker Debug for seamless, persistent debugging tools in any container or image → docker debug docker_lamp_1
Learn more at [URL_WITH_CREDENTIALS] ~/jiminny/app (JY-20613-allow-owner-role-on-team-setup) $ csfix
docker exec -it docker_lamp_1 ./vendor/bin/php-cs-fixer fix --config=.php-cs-fixer.dist.php -v --using-cache=no --diff
PHP CS Fixer 3.87.1 Alexander by Fabien Potencier, Dariusz Ruminski and contributors.
PHP runtime: 8.3.30
Running 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!
Loaded config default from ".php-cs-fixer.dist.php".
5682/5682 [▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓] 100%
Fixed 0 of 5682 files in 49.910 seconds, 60.00 MB memory used
What's next:
Try Docker Debug for seamless, persistent debugging tools in any container or image → docker debug docker_lamp_1
Learn more at [URL_WITH_CREDENTIALS] ~/jiminny/app (JY-20613-allow-owner-role-on-team-setup) $ git pull
remote: Enumerating objects: 248, done.
remote: Counting objects: 100% (128/128), done.
remote: Compressing objects: 100% (23/23), done.
remote: Total 59 (delta 43), reused 44 (delta 33), pack-reused 0 (from 0)
Unpacking objects: 100% (59/59), 10.48 KiB | 228.00 KiB/s, done.
From github.com:jiminny/app
b7df560451..190239dfd4 JY-20613-allow-owner-role-on-team-setup -> origin/JY-20613-allow-owner-role-on-team-setup
e0351be069..d94a285ae7 JY-20808-low-priority-indexing-queue -> origin/JY-20808-low-priority-indexing-queue
* [new branch] JY-20920-fix-participant-matcher -> origin/JY-20920-fix-participant-matcher
cb4ebf0c36..90bca4e4b2 master -> origin/master
Merge made by the 'ort' strategy.
app/Component/ES/ChunkSize.php | 54 +++++++++++++++++++++++++++
app/Component/ES/Processor/DTOs/SelectionList.php | 4 +-
app/Component/ES/Processor/TargetEntitiesSelector.php | 19 ++++++----
app/Http/Middleware/McpTierMiddleware.php | 27 +++-----------
app/Mcp/Servers/JiminnyServer.php | 2 +
app/Mcp/Tools/GetMeTool.php | 157 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
app/Models/Feature/FeatureEnum.php | 1 +
database/migrations/2026_05_13_124153_create_mcp_feature_flag.php | 25 +++++++++++++
front-end/src/components/Settings/Kiosk/modals/EditTeamModal/EditTeamModal.vue | 52 ++++++++++++++++++--------
front-end/src/components/Settings/Kiosk/modals/EditTeamModal/__tests__/EditTeamModal.spec.js | 14 +++++++
tests/Feature/Mcp/GetMeToolFeatureTest.php | 140 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
tests/Feature/Mcp/ListCallsToolFeatureTest.php | 2 +-
tests/Feature/Mcp/McpTestHelpersTrait.php | 19 +++++++++-
tests/Unit/Component/ES/ChunkSizeTest.php | 50 +++++++++++++++++++++++++
tests/Unit/Component/ES/Processor/DTOs/SelectionListTest.php | 27 ++++++++++----
tests/Unit/Component/ES/Processor/TargetEntitiesSelectorTest.php | 39 +++++++++++---------
16 files changed, 557 insertions(+), 75 deletions(-)
create mode 100644 app/Component/ES/ChunkSize.php
create mode 100644 app/Mcp/Tools/GetMeTool.php
create mode 100644 database/migrations/2026_05_13_124153_create_mcp_feature_flag.php
create mode 100644 tests/Feature/Mcp/GetMeToolFeatureTest.php
create mode 100644 tests/Unit/Component/ES/ChunkSizeTest.php
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20613-allow-owner-role-on-team-setup) $ git push
Enumerating objects: 40, done.
Counting objects: 100% (34/34), done.
Delta compression using up to 8 threads
Compressing objects: 100% (18/18), done.
Writing objects: 100% (18/18), 1.58 KiB | 1.58 MiB/s, done.
Total 18 (delta 15), reused 0 (delta 0), pack-reused 0
remote: Resolving deltas: 100% (15/15), completed with 13 local objects.
To github.com:jiminny/app.git
190239dfd4..ec1b261264 JY-20613-allow-owner-role-on-team-setup -> JY-20613-allow-owner-role-on-team-setup
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20613-allow-owner-role-on-team-setup) $ gbr
* JY-20613-allow-owner-role-on-team-setup
pipedrive-sdk-poc
master
JY-20903-update_activity-stage-on-opportunity-change
JY-20904-fix-update-es-on-activity-command
JY-20891-improve-sms-text-relays
JY-20725-handle-HS-search-rate-limit
JY-20818-move-AJ-reports-to-separated-datadog-metric
JY-20773-fix-automated-reports-user-pilot-tracking
JY-20157-AJ-report-not-send-notification
JY-20508-notify-before-AJ-report-expiration
JY-20372-ai-reports-promotion-pages
JY-20352-sync-opportunities-without-a-local-owner-user-id-is-null
JY-20738-debug-AJ-tracking-UP
a
JY-18909-automated-reports-ask-jiminny
JY-20692-fix-integration-app-[API_KEY]
JY-20553-debug-crm-sync-delays
JY-20698-fix-SF-activity-types-on-new-playbook
JY-20543-AJ-report-tracking
JY-20384-handle-auto-sync-with-no-access-to-event-type
JY-20458-ask-jiminny-user-definitions
JY-19666-fix-import-contacts-account-association
JY-19666-HS-import-contacts-and-accounts-batch-job
JY-20458-Ask-Jiminny-Reports
JY-20200-batch-update-CRM-objects-Salesforce
JY-19666-HS-webhooks-add-contact-and-company
JY-20348-trigger-setup-DI-layout-on-team-creation
JY-20326-refactor-info-message-in-command
JY-20317-fix-auto-log-delay-issue-on-all-channels-disabled
JY-20312-remove-on-update-change-last-synced-at-crm-configurations
JY-20306-SF-skip-auto-sync-for-task-based-playbook
JY-20192-remove-deleted-team-from-saved-search-filters
JY-20197-import-opportunity-batch-job
JY-20293-enable-status-field-for-pipedrive-deals
JY-20191-remove-commands-interactive-prompts
JY-20118-change-default-sync-strategy
JY-20183-add-cache-on-auto-log-delay
JY-20197-add-import-opportunity-batch-job
20118-hs-opportunity-make-webhook-strategy-default
JY-20118-make-default-hs-opportunity-sync-strategy-webhook-based
JY-20196-handle-opportunity-without-note
JY-20118-improve-opportunity-import
JY-20189-handle-activity-search-on-deleted-groups
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20613-allow-owner-role-on-team-setup) $ co JY-20725-handle-HS-search-rate-limit
M .env.local
M config/logging.php
Switched to branch 'JY-20725-handle-HS-search-rate-limit'
Your branch is behind 'origin/JY-20725-handle-HS-search-rate-limit' by 439 commits, and can be fast-forwarded.
(use "git pull" to update your local branch)
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20725-handle-HS-search-rate-limit) $ git pull
Updating 0f3e438941..bc6a3fce6b
Fast-forward
.gitignore | 3 +-
.windsurfrules | 168 ++---
CLAUDE.md | 1 +
app/Component/ActivityAnalytics/Service/CalculateTalkTimeOffsetsFromTranscription.php | 24 +-
app/Component/AiActivityType/Services/AiActivityTypeEligibilityChecker.php | 28 +-
app/Component/AiAutomation/Actions/PrepareUpdateDtoAction.php | 32 +-
app/Component/AiAutomation/Services/CrmFillingEligibilityChecker.php | 47 ++
app/Component/AiAutomation/TestCrmAiPromptService.php | 14 +
app/Component/AiCallScoring/Services/AiCallScoringEligibilityChecker.php | 9 +
app/Component/ES/ElasticSearchDocumentPartialUpdater.php | 13 +-
app/Component/ES/ElasticSearchWorkerManager.php | 86 ---
app/Component/ES/Processor/Actions/LoadDocumentsAction.php | 80 +--
app/Component/ES/Processor/EntityQueryBuilder.php | 12 +-
app/Component/ES/Processor/TargetEntitiesSelector.php | 2 +-
app/Component/ES/Processor/Traits/SkipActivityTrait.php | 25 -
app/Component/ES/Repositories/EsResetActivityRepository.php | 11 +-
app/Component/ES/Worker/ActivityWorker.php | 73 --
app/Component/ES/Worker/EntityWorker.php | 44 --
app/Component/ES/Worker/WorkerAmount.php | 60 --
app/Component/ES/Worker/WorkerInterface.php | 15 -
app/Component/ElasticSearch/Contract/Searchable.php | 4 +
app/Component/Encoding/Job/AnalyzeTrackChannelsJob.php | 20 +-
app/Component/Encoding/Service/GenerateSpeechFromSilenceService.php | 85 ++-
app/Component/FFMpeg/Services/GetSpeechIntervalsService.php | 18 +-
app/Component/LanguageDetection/Services/FindSpeechTimeService.php | 22 +-
app/Component/Nudge/Job/ProcessOrganisationImmediateNudgesJob.php | 218 +++++-
app/Component/ParagraphBreaker/Services/TranscriptionParagraphsService.php | 4 +
app/Component/ParticipantSpeech/Services/ParticipantSpeechesCreator.php | 33 +
app/Component/ParticipantSpeech/Services/ParticipantSpeechesDeleter.php | 15 +
app/Component/ParticipantSpeech/Services/ParticipantSpeechesProvider.php | 51 +-
app/Component/ParticipantSpeech/Services/ParticipantSpeechesUploader.php | 36 +
app/Component/ProphetAi/Exceptions/InsufficientTranscriptException.php | 11 +
app/Component/Transcription/DTO/Http/Transcription/AssemblyAI/AssemblyAI/NoAssemblyIdException.php | 11 +
app/Component/Transcription/DTO/Http/Transcription/AssemblyAI/AssemblyAI/SuccessfulResponse.php | 6 +
app/Component/Transcription/DTO/Http/Transcription/TranscriptionIsNotCorrectFormatException.php | 11 +
app/Component/Transcription/Diarization/Services/GetNormalizedParticipantSpeechesService.php | 23 +-
app/Component/Transcription/Diarization/Source/MeetingBotSource.php | 16 +-
app/Component/Transcription/TranscriptionProcessor/TranscriptionProcessor.php | 3 +
app/Console/Commands/Activities/ActivityHardDeleteCommand.php | 4 +-
app/Console/Commands/Activities/Copy.php | 2 +
app/Console/Commands/Activities/SetupIntegration/TwilioSetS3RecordingCredentialsCommand.php | 119 ++++
app/Console/Commands/Activities/UpdateActivityElasticSearchDocumentCommand.php | 10 +-
app/Console/Commands/Crm/BackfillOpportunityUserFromAccountCommand.php | 126 ++++
app/Console/Commands/Elasticsearch/AsyncUpdateEsActivities.php | 19 -
app/Console/Commands/Elasticsearch/AsyncUpdateEsEntities.php | 50 +-
app/Console/Commands/Elasticsearch/ResetAsyncElasticSearchCommand.php | 30 +-
app/Console/Commands/GeckoExport/GeckoExportParticipantSpeechesCommand.php | 14 +-
app/Console/Commands/IssueMcpTokenCommand.php | 84 +++
app/Console/Commands/JiminnyDebugCommand.php | 7 +-
app/Console/Commands/Tracks/CleanupActivityTracksCommand.php | 2 +-
app/Console/Kernel.php | 6 +-
app/Contracts/Services/Calendar/CalendarTrait.php | 80 ++-
app/Events/AutomatedReports/AutomatedReportGenerated.php | 3 +
app/Http/Controllers/API/AiCallScoring/AiScorecardController.php | 7 +-
app/Http/Controllers/API/TeamAiAutomationController.php | 8 +
app/Http/Controllers/CustomerApi/CustomerApiController.php | 4 +-
app/Http/Controllers/Kiosk/ActivityController.php | 58 +-
app/Http/Controllers/Settings/PlaybookController.php | 15 +-
app/Http/Kernel.php | 23 +
app/Http/Middleware/McpAuditMiddleware.php | 156 ++++
app/Http/Middleware/McpTierMiddleware.php | 54 ++
app/Http/Requests/API/V2/ZapierUploadActivityRequest.php | 28 +-
app/Jobs/Activity/Import/ImportTwilioVideoSpeechesJob.php | 25 +-
app/Jobs/Activity/Import/IsActivityReadyForProcessingJob.php | 10 +-
app/Jobs/Calendar/SetupCalendarSync.php | 21 +-
app/Jobs/ImportRemoteTrackJob.php | 96 ++-
app/Jobs/Mailbox/EmailTextRelay.php | 15 +-
app/Mcp/Contracts/McpCallRepositoryInterface.php | 30 +
app/Mcp/DTO/ListCallsFilters.php | 29 +
app/Mcp/Errors/McpError.php | 123 ++++
app/Mcp/Repositories/McpActivityHydrator.php | 145 ++++
app/Mcp/Repositories/McpCallRepository.php | 84 +++
app/Mcp/Repositories/McpElasticCallRepository.php | 171 +++++
app/Mcp/Servers/JiminnyServer.php | 38 +
app/Mcp/Tools/ListCallsTool.php | 205 ++++++
app/Models/Activity.php | 10 +-
app/Models/Activity/Transcription.php | 17 +-
app/Models/ElasticSearch/OpportunityElasticSearchTrait.php | 5 +
app/Models/Participant.php | 1 +
app/Providers/AppServiceProvider.php | 22 +
app/Repositories/Crm/ContactRepository.php | 69 +-
app/Repositories/ParticipantSpeechRepository.php | 13 +-
app/Services/Activity/ParticipantsService.php | 19 +-
app/Services/Activity/Twilio/S3RecordingCredentialsService.php | 82 +++
app/Services/ActivityService.php | 21 +-
app/Services/Calendar/CalendarActivityService.php | 46 ++
app/Services/Calendar/Command/ImportParticipants.php | 1 +
app/Services/Calendar/Command/MapActivityData.php | 106 +--
app/Services/Calendar/GoogleCalendarService.php | 12 +-
app/Services/Crm/Close/Processor/OpportunityProcessor.php | 2 +-
app/Services/Crm/Close/Service.php | 22 +-
app/Services/Crm/Copper/Service.php | 12 +-
app/Services/Crm/Hubspot/Service.php | 154 +++-
app/Services/Crm/Hubspot/ServiceTraits/OpportunitySyncTrait.php | 88 ++-
app/Services/Crm/IntegrationApp/ServiceTraits/SyncCrmEntitiesTrait.php | 22 +-
app/Services/Crm/Pipedrive/Service.php | 17 +-
app/Services/Crm/Salesforce/Service.php | 42 +-
app/Services/Mail/Office/EmailApiClient.php | 129 +---
app/Services/RecallAI/Commands/ScheduleBotCommand.php | 39 +-
app/Services/RecallAI/RecallAIService.php | 22 +-
composer.json | 3 +-
composer.lock | 87 ++-
config/mcp.php | 23 +
database/migrations/2026_04_30_120000_create_mcp_audit_log_table.php | 36 +
docs/mcp/explorer/explorer.html | 697 ++++++++++++++++++
docs/mcp/explorer/explorer.template.html | 697 ++++++++++++++++++
docs/mcp/explorer/generate.js | 215 ++++++
docs/mcp/explorer/tool-explorer-meta.json | 11 +
docs/mcp/tools-list.json | 2536 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
docs/mcp/tools.md | 621 ++++++++++++++++
front-end/package.json | 4 +-
front-end/src/components/Settings/OrgSettings/AiAutomation/CrmFilling/TemplateFieldForm.vue | 28 +-
front-end/src/components/Settings/OrgSettings/Playbooks/AddEditPlaybook.vue | 10 +
front-end/src/components/playback/comments/ActivityComment.less | 10 +-
front-end/src/components/shared/PromptTester/PromptTester.vue | 12 +-
front-end/src/components/shared/__tests__/PromptTester.spec.js | 35 +
front-end/src/components/shared/modals/EntityPickerModal/__tests__/useEntitiesCache.spec.ts | 37 +
front-end/src/components/shared/modals/EntityPickerModal/useEntitiesCache.ts | 9 +
front-end/yarn.lock | 16 +-
phpstan-baseline.neon | 50 --
routes/api.php | 11 +
sonar-project.properties | 91 ++-
tests/Feature/Component/Nudge/ProcessOrganisationImmediateNudgesJobTest.php | 534 ++++++++++++++
tests/Feature/Jobs/ImportRemoteTrackJobTest.php | 283 +++++++-
tests/Feature/Mcp/IssueMcpTokenCommandTest.php | 53 ++
tests/Feature/Mcp/ListCallsToolElasticFeatureTest.php | 155 ++++
tests/Feature/Mcp/ListCallsToolFeatureTest.php | 352 ++++++++++
tests/Feature/Mcp/McpTestHelpersTrait.php | 77 ++
tests/Feature/Services/Team/TeamDeleteHandlers/Retention/RetentionRepositoryHandlerTest.php | 1 +
tests/Stubs/SentryStub.php | 18 +
tests/Unit/Component/ActivityAnalytics/Service/CalculateTalkTimeOffsetFromTranscriptionTest.php | 28 +-
tests/Unit/Component/AiActivityType/Services/AiActivityTypeEligibilityCheckerTest.php | 103 ++-
tests/Unit/Component/AiAutomation/Actions/PrepareUpdateDtoActionTest.php | 91 +++
tests/Unit/Component/AiAutomation/Services/CrmFillingEligibilityCheckerTest.php | 124 ++++
tests/Unit/Component/AiAutomation/TestCrmAiPromptServiceTest.php | 67 +-
tests/Unit/Component/AiCallScoring/Services/AiCallScoringEligibilityCheckerTest.php | 55 ++
tests/Unit/Component/ES/ElasticSearchWorkerManagerTest.php | 135 ----
tests/Unit/Component/ES/Processor/Actions/LoadDocumentsActionTest.php | 220 ++++++
tests/Unit/Component/ES/Processor/EntityQueryBuilderTest.php | 21 +-
tests/Unit/Component/ES/Processor/Traits/SkipActivityTraitTest.php | 51 --
tests/Unit/Component/ES/Worker/ActivityWorkerTest.php | 174 -----
tests/Unit/Component/ES/Worker/EntityWorkerTest.php | 97 ---
tests/Unit/Component/ES/Worker/WorkerAmountTest.php | 116 ---
tests/Unit/Component/Encoding/Job/AnalyzeTrackChannelsJobTest.php | 52 +-
tests/Unit/Component/Encoding/Service/GenerateSpeechFromSilenceServiceTest.php | 171 ++---
tests/Unit/Component/FFMpeg/Services/GetSpeechIntervalsTest.php | 36 +-
tests/Unit/Component/LanguageDetection/Services/FindSpeechTimeServiceTest.php | 20 +-
tests/Unit/Component/MobileSettings/MobileSettingsControllerTest.php | 5 +-
tests/Unit/Component/ParticipantSpeech/Services/ParticipantSpeechesCreatorTest.php | 75 ++
tests/Unit/Component/ParticipantSpeech/Services/ParticipantSpeechesDeleterTest.php | 63 ++
tests/Unit/Component/ParticipantSpeech/Services/ParticipantSpeechesProviderTest.php | 134 ++++
tests/Unit/Component/ParticipantSpeech/Services/ParticipantSpeechesUploaderTest.php | 57 ++
tests/Unit/Component/Transcription/Diarization/Services/GetNormalizedParticipantSpeechesServiceTest.php | 51 +-
tests/Unit/Component/Transcription/Diarization/Source/MeetingBotSourceTest.php | 29 +-
tests/Unit/Contracts/Services/Calendar/CalendarTraitTest.php | 58 +-
tests/Unit/Http/Controllers/Kiosk/ActivityControllerTest.php | 159 +++++
tests/Unit/Jobs/Activity/Import/ImportTwilioVideoSpeechesJobTest.php | 22 +-
tests/Unit/Jobs/Activity/Import/IsActivityReadyForProcessingJobTest.php | 26 +-
tests/Unit/Jobs/Calendar/SetupCalendarSyncTest.php | 25 -
tests/Unit/Services/Activity/ParticipantsServiceTest.php | 12 +-
tests/Unit/Services/Activity/Twilio/S3RecordingCredentialsServiceTest.php | 180 +++++
tests/Unit/Services/ActivityServiceTest.php | 132 ++++
tests/Unit/Services/Calendar/CalendarActivityServiceTest.php | 150 +++-
tests/Unit/Services/Calendar/Command/ImportParticipantsTest.php | 6 +-
tests/Unit/Services/Calendar/Command/MapActivityDataTest.php | 78 +-
tests/Unit/Services/Calendar/GoogleCalendarServiceTest.php | 116 +++
tests/Unit/Services/Crm/Close/ServiceTest.php | 165 +++++
tests/Unit/Services/Crm/Hubspot/ServiceTest.php | 272 ++++++-
tests/Unit/Services/Crm/Hubspot/ServiceTraits/OpportunitySyncTest.php | 25 +-
tests/Unit/Services/Crm/Hubspot/ServiceTraits/OpportunitySyncTraitMatchActivitiesTest.php | 3 +-
tests/Unit/Services/Crm/IntegrationApp/ServiceTraits/SyncCrmEntitiesTraitOpportunitiesTest.php | 40 ++
tests/Unit/Services/Crm/Pipedrive/ImportOpportunityMatchActivitiesTest.php | 2 +
tests/Unit/Services/Crm/Salesforce/ServiceTest.php | 139 ++++
tests/Unit/Services/Mail/Office/EmailApiClientTest.php | 195 ++---
tests/Unit/Services/RecallAI/RecallAIServiceTest.php | 24 +-
175 files changed, 12562 insertions(+), 2162 deletions(-)
create mode 120000 CLAUDE.md
create mode 100644 app/Component/AiAutomation/Services/CrmFillingEligibilityChecker.php
delete mode 100644 app/Component/ES/ElasticSearchWorkerManager.php
delete mode 100644 app/Component/ES/Processor/Traits/SkipActivityTrait.php
delete mode 100644 app/Component/ES/Worker/ActivityWorker.php
delete mode 100644 app/Component/ES/Worker/EntityWorker.php
delete mode 100644 app/Component/ES/Worker/WorkerAmount.php
delete mode 100644 app/Component/ES/Worker/WorkerInterface.php
create mode 100644 app/Component/ProphetAi/Exceptions/InsufficientTranscriptException.php
create mode 100644 app/Component/Transcription/DTO/Http/Transcription/AssemblyAI/AssemblyAI/NoAssemblyIdException.php
create mode 100644 app/Component/Transcription/DTO/Http/Transcription/TranscriptionIsNotCorrectFormatException.php
create mode 100644 app/Console/Commands/Activities/SetupIntegration/TwilioSetS3RecordingCredentialsCommand.php
create mode 100644 app/Console/Commands/Crm/BackfillOpportunityUserFromAccountCommand.php
delete mode 100644 app/Console/Commands/Elasticsearch/AsyncUpdateEsActivities.php
create mode 100644 app/Console/Commands/IssueMcpTokenCommand.php
create mode 100644 app/Http/Middleware/McpAuditMiddleware.php
create mode 100644 app/Http/Middleware/McpTierMiddleware.php
create mode 100644 app/Mcp/Contracts/McpCallRepositoryInterface.php
create mode 100644 app/Mcp/DTO/ListCallsFilters.php
create mode 100644 app/Mcp/Errors/McpError.php
create mode 100644 app/Mcp/Repositories/McpActivityHydrator.php
create mode 100644 app/Mcp/Repositories/McpCallRepository.php
create mode 100644 app/Mcp/Repositories/McpElasticCallRepository.php
create mode 100644 app/Mcp/Servers/JiminnyServer.php
create mode 100644 app/Mcp/Tools/ListCallsTool.php
create mode 100644 app/Services/Activity/Twilio/S3RecordingCredentialsService.php
create mode 100644 config/mcp.php
create mode 100644 database/migrations/2026_04_30_120000_create_mcp_audit_log_table.php
create mode 100644 docs/mcp/explorer/explorer.html
create mode 100644 docs/mcp/explorer/explorer.template.html
create mode 100644 docs/mcp/explorer/generate.js
create mode 100644 docs/mcp/explorer/tool-explorer-meta.json
create mode 100644 docs/mcp/tools-list.json
create mode 100644 docs/mcp/tools.md
create mode 100644 front-end/src/components/shared/modals/EntityPickerModal/__tests__/useEntitiesCache.spec.ts
create mode 100644 tests/Feature/Component/Nudge/ProcessOrganisationImmediateNudgesJobTest.php
create mode 100644 tests/Feature/Mcp/IssueMcpTokenCommandTest.php
create mode 100644 tests/Feature/Mcp/ListCallsToolElasticFeatureTest.php
create mode 100644 tests/Feature/Mcp/ListCallsToolFeatureTest.php
create mode 100644 tests/Feature/Mcp/McpTestHelpersTrait.php
create mode 100644 tests/Stubs/SentryStub.php
create mode 100644 tests/Unit/Component/AiAutomation/Services/CrmFillingEligibilityCheckerTest.php
delete mode 100644 tests/Unit/Component/ES/ElasticSearchWorkerManagerTest.php
create mode 100644 tests/Unit/Component/ES/Processor/Actions/LoadDocumentsActionTest.php
delete mode 100644 tests/Unit/Component/ES/Processor/Traits/SkipActivityTraitTest.php
delete mode 100644 tests/Unit/Component/ES/Worker/ActivityWorkerTest.php
delete mode 100644 tests/Unit/Component/ES/Worker/EntityWorkerTest.php
delete mode 100644 tests/Unit/Component/ES/Worker/WorkerAmountTest.php
create mode 100644 tests/Unit/Component/ParticipantSpeech/Services/ParticipantSpeechesCreatorTest.php
create mode 100644 tests/Unit/Http/Controllers/Kiosk/ActivityControllerTest.php
create mode 100644 tests/Unit/Services/Activity/Twilio/S3RecordingCredentialsServiceTest.php
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20725-handle-HS-search-rate-limit) $ git status
On branch master
Your branch is behind 'origin/master' by 114 commits, and can be fast-forwarded.
(use "git pull" to update your local branch)
Changes not staged for commit:
(use "git add <file>..." to update what will be committed)
(use "git restore <file>..." to discard changes in working directory)
modified: .env.local
modified: app/Component/SCIM/Constants.php
modified: app/Component/SCIM/ScimProvisioning.php
modified: app/Component/Twilio/Conference/ConferenceManager/SoftPhoneManager.php
modified: app/Console/Commands/JiminnyDebugCommand.php
modified: app/DTO/SCIM/AAD/Request/CoreUserRequest.php
modified: app/DTO/SCIM/AAD/Response/CoreUser.php
modified: app/Services/Telephony/TextMessagingService.php
modified: config/logging.php
Untracked files:
(use "git add <file>..." to include in what will be committed)
.env.nikilocal
.env.other
WEBHOOK_FILTERING_IMPLEMENTATION.md
app/Component/SCIM/Mutators/Attributes/User/RoleAttr.php
app/Console/Commands/Crm/Hubspot/SimulateWebhooksCommand.php
app/Console/Commands/Reports/CreateMockAskJiminnyReportResultCommand.php
app/Rules/ListenerRoleCannotHaveAdminOrManagerPermissionRule.php
ids.txt
public/favicon.ico
raw_sql_query.sql
tests/Unit/Component/SCIM/Mutators/Attributes/User/RoleAttrTest.php
tests/Unit/Policies/CanAccessAiReportsTest.php
tests/Unit/Rules/ListenerRoleCannotHaveAdminOrManagerPermissionRuleTest.php
no changes added to commit (use "git add" and/or "git commit -a")
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (master) $ git pull
remote: Enumerating objects: 306, done.
remote: Counting objects: 100% (299/299), done.
remote: Compressing objects: 100% (183/183), done.
remote: Total 306 (delta 213), reused 171 (delta 116), pack-reused 7 (from 1)
Receiving objects: 100% (306/306), 80.12 KiB | 1000.00 KiB/s, done.
Resolving deltas: 100% (213/213), completed with 53 local objects.
From github.com:jiminny/app
90bca4e4b2..5604af40cf master -> origin/master
4e7078fd8b..0b8343d179 JY-18091-upgrade-to-php-8-5 -> origin/JY-18091-upgrade-to-php-8-5
098eeaa087..d5a447e492 JY-20613-allow-owner-role-on-team-setup -> origin/JY-20613-allow-owner-role-on-team-setup
c3a76ace91..af65249d0f JY-20749-user-can-view-recorded-meetings -> origin/JY-20749-user-can-view-recorded-meetings
d94a285ae7..7ce96cb5fe JY-20808-low-priority-indexing-queue -> origin/JY-20808-low-priority-indexing-queue
* [new branch] JY-20842-remove-partial-updater -> origin/JY-20842-remove-partial-updater
* [new branch] JY-20920-fix-participant-flip -> origin/JY-20920-fix-participant-flip
* [new branch] secfix/npm-20260519 -> origin/secfix/npm-20260519
Updating cb4ebf0c36..5604af40cf
Fast-forward
app/Component/ES/ChunkSize.php | 54 +++++++++++++++++++
app/Component/ES/Processor/DTOs/SelectionList.php | 4 +-
app/Component/ES/Processor/TargetEntitiesSelector.php | 19 ++++---
app/Component/MeetingBot/Service/ParticipantMatcher.php | 46 ++++++++++++----
app/Exceptions/RateLimitException.php | 19 ++++++-
app/Http/Middleware/McpTierMiddleware.php | 27 ++--------
app/Jobs/Crm/MatchActivityCrmData.php | 47 ++++++++++++----
app/Jobs/Middleware/HandleHubspotRateLimit.php | 42 +++++++++++++++
app/Mcp/Servers/JiminnyServer.php | 2 +
app/Mcp/Tools/GetMeTool.php | 157 +++++++++++++++++++++++++++++++++++++++++++++++++++++
app/Models/Feature/FeatureEnum.php | 1 +
app/Services/Activity/HubSpot/ProviderResolver.php | 4 +-
app/Services/Activity/HubSpot/ProviderResolverInterface.php | 2 +-
app/Services/Activity/HubSpot/Providers/Provider.php | 2 +-
app/Services/Activity/HubSpot/Providers/ProviderKixie.php | 2 +-
app/Services/Activity/HubSpot/Providers/ProviderOrum.php | 2 +-
app/Services/Activity/HubSpot/Providers/ProviderTwilio.php | 2 +-
app/Services/Activity/HubSpot/Providers/ProviderTwilioFlex.php | 5 +-
app/Services/Activity/HubSpot/Service.php | 97 +++++++++++++++++++++++++++------
app/Services/Crm/Hubspot/Client.php | 132 +++++++++++++++++++++++++++++++++++++++++++++
app/Services/Crm/Hubspot/HubspotClientInterface.php | 15 ++++++
app/Services/Crm/Hubspot/Pagination/HubspotPaginationService.php | 21 ++++----
app/Services/Crm/Hubspot/Pagination/PaginationState.php | 2 +-
database/migrations/2026_05_13_124153_create_mcp_feature_flag.php | 25 +++++++++
tests/Feature/Mcp/GetMeToolFeatureTest.php | 140 +++++++++++++++++++++++++++++++++++++++++++++++
tests/Feature/Mcp/ListCallsToolFeatureTest.php | 2 +-
tests/Feature/Mcp/McpTestHelpersTrait.php | 19 ++++++-
tests/Unit/Component/ES/ChunkSizeTest.php | 50 +++++++++++++++++
tests/Unit/Component/ES/Processor/DTOs/SelectionListTest.php | 27 +++++++---
tests/Unit/Component/ES/Processor/TargetEntitiesSelectorTest.php | 39 ++++++++------
tests/Unit/Component/MeetingBot/Service/ParticipantMatcherTest.php | 68 ++++++++++++++++++++++-
tests/Unit/Exceptions/RateLimitExceptionTest.php | 56 +++++++++++++++++++
tests/Unit/Jobs/Crm/MatchActivityCrmDataTest.php | 8 +--
tests/Unit/Jobs/Middleware/HandleHubspotRateLimitTest.php | 151 +++++++++++++++++++++++++++++++++++++++++++++++++++
tests/Unit/Services/Activity/HubSpot/ServiceTest.php | 109 +++++++++++++++++++++++++++++++++++++
tests/Unit/Services/Crm/Hubspot/ClientTest.php | 250 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
tests/Unit/Services/Crm/Hubspot/Pagination/HubspotPaginationServiceTest.php | 283 +++++++++++++++++++++---------------------------------------------------------------------------
37 files changed, 1587 insertions(+), 344 deletions(-)
create mode 100644 app/Component/ES/ChunkSize.php
create mode 100644 app/Jobs/Middleware/HandleHubspotRateLimit.php
create mode 100644 app/Mcp/Tools/GetMeTool.php
create mode 100644 database/migrations/2026_05_13_124153_create_mcp_feature_flag.php
create mode 100644 tests/Feature/Mcp/GetMeToolFeatureTest.php
create mode 100644 tests/Unit/Component/ES/ChunkSizeTest.php
create mode 100644 tests/Unit/Exceptions/RateLimitExceptionTest.php
create mode 100644 tests/Unit/Jobs/Middleware/HandleHubspotRateLimitTest.php
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (master) $ git pull
Already up to date.
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (master) $ co -b JY-20676-delete-report-related-objects
Switched to a new branch 'JY-20676-delete-report-related-objects'
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20676-delete-report-related-objects) $ csfix
docker exec -it docker_lamp_1 ./vendor/bin/php-cs-fixer fix --config=.php-cs-fixer.dist.php -v --using-cache=no --diff
PHP CS Fixer 3.87.1 Alexander by Fabien Potencier, Dariusz Ruminski and contributors.
PHP runtime: 8.3.30
Running 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!
Loaded config default from ".php-cs-fixer.dist.php".
5690/5690 [▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓] 100%
1) app/Console/Commands/JiminnyDebugCommand.php (statement_indentation, blank_line_before_statement)
---------- begin diff ----------
--- /home/jiminny/app/Console/Commands/JiminnyDebugCommand.php
+++ /home/jiminny/app/Console/Commands/JiminnyDebugCommand.php
@@ -23,6 +23,7 @@
if ($action === 'redis-set') {
$this->testRedisSet();
+
return;
}
@@ -45,7 +46,7 @@
$ttl = 60;
try {
-// $result = Redis::set($testKey, $testValue, 'EX', $ttl, 'NX');
+ // $result = Redis::set($testKey, $testValue, 'EX', $ttl, 'NX');
$result = Redis::set($testKey, $testValue, ['nx', 'ex' => $ttl]);
if ($result) {
----------- end diff -----------
Fixed 1 of 5690 files i...
|
58091
|
NULL
|
NULL
|
NULL
|
|
58113
|
2046
|
7
|
2026-05-19T11:40:08.159719+00:00
|
/Users/lukas/.screenpipe/data/data/2026-05-19/1779 /Users/lukas/.screenpipe/data/data/2026-05-19/1779190808159_m1.jpg...
|
iTerm2
|
APP (docker)
|
1
|
NULL
|
monitor_1
|
NULL
|
NULL
|
NULL
|
NULL
|
Last login: Mon May 18 09:17:28 on ttys007
Poetry Last login: Mon May 18 09:17:28 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 (pipedrive-sdk-poc) $ co master
error: Your local changes to the following files would be overwritten by checkout:
PIPEDRIVE_V2_MIGRATION_TICKETS.md
Please commit your changes or stash them before you switch branches.
Aborting
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (pipedrive-sdk-poc) $ git pull
remote: Enumerating objects: 1047, done.
remote: Counting objects: 100% (832/832), done.
remote: Compressing objects: 100% (298/298), done.
remote: Total 1047 (delta 634), reused 596 (delta 534), pack-reused 215 (from 3)
Receiving objects: 100% (1047/1047), 353.16 KiB | 1.56 MiB/s, done.
Resolving deltas: 100% (687/687), completed with 107 local objects.
From github.com:jiminny/app
907c54896c..34656c53ed pipedrive-sdk-poc -> origin/pipedrive-sdk-poc
03325ec50f..4e7078fd8b JY-18091-upgrade-to-php-8-5 -> origin/JY-18091-upgrade-to-php-8-5
e7d231e163..bc6a3fce6b JY-20725-handle-HS-search-rate-limit -> origin/JY-20725-handle-HS-search-rate-limit
* [new branch] JY-20749-user-can-view-recorded-meetings -> origin/JY-20749-user-can-view-recorded-meetings
98ca281a04..e0351be069 JY-20808-low-priority-indexing-queue -> origin/JY-20808-low-priority-indexing-queue
569abb5149..3906a9238a JY-20835-mcp-enable-users-to-get-a-list-of-deals-and-their-details -> origin/JY-20835-mcp-enable-users-to-get-a-list-of-deals-and-their-details
ad6c2a86e8..50eb6afba9 JY-20846-mcp-enable-the-ai-to-know-details-about-the-user -> origin/JY-20846-mcp-enable-the-ai-to-know-details-about-the-user
* [new branch] JY-20893-chunk-control-per-update-target -> origin/JY-20893-chunk-control-per-update-target
31c62924a5..cb4ebf0c36 master -> origin/master
Updating 907c54896c..34656c53ed
Fast-forward
PIPEDRIVE_V2_MIGRATION_TICKETS.md | 52 ++++++++++++++++++++++++++++++++++++++++++++++++++++
1 file changed, 52 insertions(+)
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (pipedrive-sdk-poc) $ co master
M .env.local
M config/logging.php
Switched to branch 'master'
Your branch is behind 'origin/master' by 31 commits, and can be fast-forwarded.
(use "git pull" to update your local branch)
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (master) $ git pull
Updating 31c62924a5..cb4ebf0c36
Fast-forward
app/Component/ES/Processor/Traits/SelectEntityListTrait.php | 20 ------
app/Services/Calendar/CalendarActivityService.php | 46 +++++++++++++
app/Services/Calendar/Command/MapActivityData.php | 106 +++-------------------------
docs/mcp/explorer/explorer.html | 104 +++++++++++++++++++++++++---
docs/mcp/explorer/explorer.template.html | 102 ++++++++++++++++++++++++---
docs/mcp/tools-list.json | 373 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++-------
docs/mcp/tools.md | 117 +++++++++++++++++++++++--------
tests/Unit/Component/ES/AsyncUpdateElasticSearchTest.php | 16 +----
tests/Unit/Component/ES/Listeners/UpdateMultipleTargetsListenerTest.php | 10 ---
tests/Unit/Component/ES/Listeners/UpdateSingleTargetListenerTest.php | 6 --
tests/Unit/Component/ES/Processor/TargetEntitiesSelectorTest.php | 9 ---
tests/Unit/Component/ES/Processor/Traits/SelectEntityListTraitTest.php | 15 ++--
tests/Unit/Component/ES/UpdateProcessManagerTest.php | 2 -
tests/Unit/Services/Calendar/CalendarActivityServiceTest.php | 150 ++++++++++++++++++++++++++++++++++++++--
tests/Unit/Services/Calendar/Command/MapActivityDataTest.php | 78 ++-------------------
15 files changed, 832 insertions(+), 322 deletions(-)
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (master) $ co -b JY-20613-allow-owner-role-on-team-setup
Switched to a new branch 'JY-20613-allow-owner-role-on-team-setup'
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20613-allow-owner-role-on-team-setup) $ csfix
docker exec -it docker_lamp_1 ./vendor/bin/php-cs-fixer fix --config=.php-cs-fixer.dist.php -v --using-cache=no --diff
PHP CS Fixer 3.87.1 Alexander by Fabien Potencier, Dariusz Ruminski and contributors.
PHP runtime: 8.3.30
Running 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!
Loaded config default from ".php-cs-fixer.dist.php".
5682/5682 [▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓] 100%
Fixed 0 of 5682 files in 56.978 seconds, 67.00 MB memory used
What's next:
Try Docker Debug for seamless, persistent debugging tools in any container or image → docker debug docker_lamp_1
Learn more at [URL_WITH_CREDENTIALS] ~/jiminny/app (JY-20613-allow-owner-role-on-team-setup) $ csfix
docker exec -it docker_lamp_1 ./vendor/bin/php-cs-fixer fix --config=.php-cs-fixer.dist.php -v --using-cache=no --diff
PHP CS Fixer 3.87.1 Alexander by Fabien Potencier, Dariusz Ruminski and contributors.
PHP runtime: 8.3.30
Running 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!
Loaded config default from ".php-cs-fixer.dist.php".
5682/5682 [▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓] 100%
Fixed 0 of 5682 files in 49.910 seconds, 60.00 MB memory used
What's next:
Try Docker Debug for seamless, persistent debugging tools in any container or image → docker debug docker_lamp_1
Learn more at [URL_WITH_CREDENTIALS] ~/jiminny/app (JY-20613-allow-owner-role-on-team-setup) $ git pull
remote: Enumerating objects: 248, done.
remote: Counting objects: 100% (128/128), done.
remote: Compressing objects: 100% (23/23), done.
remote: Total 59 (delta 43), reused 44 (delta 33), pack-reused 0 (from 0)
Unpacking objects: 100% (59/59), 10.48 KiB | 228.00 KiB/s, done.
From github.com:jiminny/app
b7df560451..190239dfd4 JY-20613-allow-owner-role-on-team-setup -> origin/JY-20613-allow-owner-role-on-team-setup
e0351be069..d94a285ae7 JY-20808-low-priority-indexing-queue -> origin/JY-20808-low-priority-indexing-queue
* [new branch] JY-20920-fix-participant-matcher -> origin/JY-20920-fix-participant-matcher
cb4ebf0c36..90bca4e4b2 master -> origin/master
Merge made by the 'ort' strategy.
app/Component/ES/ChunkSize.php | 54 +++++++++++++++++++++++++++
app/Component/ES/Processor/DTOs/SelectionList.php | 4 +-
app/Component/ES/Processor/TargetEntitiesSelector.php | 19 ++++++----
app/Http/Middleware/McpTierMiddleware.php | 27 +++-----------
app/Mcp/Servers/JiminnyServer.php | 2 +
app/Mcp/Tools/GetMeTool.php | 157 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
app/Models/Feature/FeatureEnum.php | 1 +
database/migrations/2026_05_13_124153_create_mcp_feature_flag.php | 25 +++++++++++++
front-end/src/components/Settings/Kiosk/modals/EditTeamModal/EditTeamModal.vue | 52 ++++++++++++++++++--------
front-end/src/components/Settings/Kiosk/modals/EditTeamModal/__tests__/EditTeamModal.spec.js | 14 +++++++
tests/Feature/Mcp/GetMeToolFeatureTest.php | 140 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
tests/Feature/Mcp/ListCallsToolFeatureTest.php | 2 +-
tests/Feature/Mcp/McpTestHelpersTrait.php | 19 +++++++++-
tests/Unit/Component/ES/ChunkSizeTest.php | 50 +++++++++++++++++++++++++
tests/Unit/Component/ES/Processor/DTOs/SelectionListTest.php | 27 ++++++++++----
tests/Unit/Component/ES/Processor/TargetEntitiesSelectorTest.php | 39 +++++++++++---------
16 files changed, 557 insertions(+), 75 deletions(-)
create mode 100644 app/Component/ES/ChunkSize.php
create mode 100644 app/Mcp/Tools/GetMeTool.php
create mode 100644 database/migrations/2026_05_13_124153_create_mcp_feature_flag.php
create mode 100644 tests/Feature/Mcp/GetMeToolFeatureTest.php
create mode 100644 tests/Unit/Component/ES/ChunkSizeTest.php
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20613-allow-owner-role-on-team-setup) $ git push
Enumerating objects: 40, done.
Counting objects: 100% (34/34), done.
Delta compression using up to 8 threads
Compressing objects: 100% (18/18), done.
Writing objects: 100% (18/18), 1.58 KiB | 1.58 MiB/s, done.
Total 18 (delta 15), reused 0 (delta 0), pack-reused 0
remote: Resolving deltas: 100% (15/15), completed with 13 local objects.
To github.com:jiminny/app.git
190239dfd4..ec1b261264 JY-20613-allow-owner-role-on-team-setup -> JY-20613-allow-owner-role-on-team-setup
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20613-allow-owner-role-on-team-setup) $ gbr
* JY-20613-allow-owner-role-on-team-setup
pipedrive-sdk-poc
master
JY-20903-update_activity-stage-on-opportunity-change
JY-20904-fix-update-es-on-activity-command
JY-20891-improve-sms-text-relays
JY-20725-handle-HS-search-rate-limit
JY-20818-move-AJ-reports-to-separated-datadog-metric
JY-20773-fix-automated-reports-user-pilot-tracking
JY-20157-AJ-report-not-send-notification
JY-20508-notify-before-AJ-report-expiration
JY-20372-ai-reports-promotion-pages
JY-20352-sync-opportunities-without-a-local-owner-user-id-is-null
JY-20738-debug-AJ-tracking-UP
a
JY-18909-automated-reports-ask-jiminny
JY-20692-fix-integration-app-[API_KEY]
JY-20553-debug-crm-sync-delays
JY-20698-fix-SF-activity-types-on-new-playbook
JY-20543-AJ-report-tracking
JY-20384-handle-auto-sync-with-no-access-to-event-type
JY-20458-ask-jiminny-user-definitions
JY-19666-fix-import-contacts-account-association
JY-19666-HS-import-contacts-and-accounts-batch-job
JY-20458-Ask-Jiminny-Reports
JY-20200-batch-update-CRM-objects-Salesforce
JY-19666-HS-webhooks-add-contact-and-company
JY-20348-trigger-setup-DI-layout-on-team-creation
JY-20326-refactor-info-message-in-command
JY-20317-fix-auto-log-delay-issue-on-all-channels-disabled
JY-20312-remove-on-update-change-last-synced-at-crm-configurations
JY-20306-SF-skip-auto-sync-for-task-based-playbook
JY-20192-remove-deleted-team-from-saved-search-filters
JY-20197-import-opportunity-batch-job
JY-20293-enable-status-field-for-pipedrive-deals
JY-20191-remove-commands-interactive-prompts
JY-20118-change-default-sync-strategy
JY-20183-add-cache-on-auto-log-delay
JY-20197-add-import-opportunity-batch-job
20118-hs-opportunity-make-webhook-strategy-default
JY-20118-make-default-hs-opportunity-sync-strategy-webhook-based
JY-20196-handle-opportunity-without-note
JY-20118-improve-opportunity-import
JY-20189-handle-activity-search-on-deleted-groups
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20613-allow-owner-role-on-team-setup) $ co JY-20725-handle-HS-search-rate-limit
M .env.local
M config/logging.php
Switched to branch 'JY-20725-handle-HS-search-rate-limit'
Your branch is behind 'origin/JY-20725-handle-HS-search-rate-limit' by 439 commits, and can be fast-forwarded.
(use "git pull" to update your local branch)
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20725-handle-HS-search-rate-limit) $ git pull
Updating 0f3e438941..bc6a3fce6b
Fast-forward
.gitignore | 3 +-
.windsurfrules | 168 ++---
CLAUDE.md | 1 +
app/Component/ActivityAnalytics/Service/CalculateTalkTimeOffsetsFromTranscription.php | 24 +-
app/Component/AiActivityType/Services/AiActivityTypeEligibilityChecker.php | 28 +-
app/Component/AiAutomation/Actions/PrepareUpdateDtoAction.php | 32 +-
app/Component/AiAutomation/Services/CrmFillingEligibilityChecker.php | 47 ++
app/Component/AiAutomation/TestCrmAiPromptService.php | 14 +
app/Component/AiCallScoring/Services/AiCallScoringEligibilityChecker.php | 9 +
app/Component/ES/ElasticSearchDocumentPartialUpdater.php | 13 +-
app/Component/ES/ElasticSearchWorkerManager.php | 86 ---
app/Component/ES/Processor/Actions/LoadDocumentsAction.php | 80 +--
app/Component/ES/Processor/EntityQueryBuilder.php | 12 +-
app/Component/ES/Processor/TargetEntitiesSelector.php | 2 +-
app/Component/ES/Processor/Traits/SkipActivityTrait.php | 25 -
app/Component/ES/Repositories/EsResetActivityRepository.php | 11 +-
app/Component/ES/Worker/ActivityWorker.php | 73 --
app/Component/ES/Worker/EntityWorker.php | 44 --
app/Component/ES/Worker/WorkerAmount.php | 60 --
app/Component/ES/Worker/WorkerInterface.php | 15 -
app/Component/ElasticSearch/Contract/Searchable.php | 4 +
app/Component/Encoding/Job/AnalyzeTrackChannelsJob.php | 20 +-
app/Component/Encoding/Service/GenerateSpeechFromSilenceService.php | 85 ++-
app/Component/FFMpeg/Services/GetSpeechIntervalsService.php | 18 +-
app/Component/LanguageDetection/Services/FindSpeechTimeService.php | 22 +-
app/Component/Nudge/Job/ProcessOrganisationImmediateNudgesJob.php | 218 +++++-
app/Component/ParagraphBreaker/Services/TranscriptionParagraphsService.php | 4 +
app/Component/ParticipantSpeech/Services/ParticipantSpeechesCreator.php | 33 +
app/Component/ParticipantSpeech/Services/ParticipantSpeechesDeleter.php | 15 +
app/Component/ParticipantSpeech/Services/ParticipantSpeechesProvider.php | 51 +-
app/Component/ParticipantSpeech/Services/ParticipantSpeechesUploader.php | 36 +
app/Component/ProphetAi/Exceptions/InsufficientTranscriptException.php | 11 +
app/Component/Transcription/DTO/Http/Transcription/AssemblyAI/AssemblyAI/NoAssemblyIdException.php | 11 +
app/Component/Transcription/DTO/Http/Transcription/AssemblyAI/AssemblyAI/SuccessfulResponse.php | 6 +
app/Component/Transcription/DTO/Http/Transcription/TranscriptionIsNotCorrectFormatException.php | 11 +
app/Component/Transcription/Diarization/Services/GetNormalizedParticipantSpeechesService.php | 23 +-
app/Component/Transcription/Diarization/Source/MeetingBotSource.php | 16 +-
app/Component/Transcription/TranscriptionProcessor/TranscriptionProcessor.php | 3 +
app/Console/Commands/Activities/ActivityHardDeleteCommand.php | 4 +-
app/Console/Commands/Activities/Copy.php | 2 +
app/Console/Commands/Activities/SetupIntegration/TwilioSetS3RecordingCredentialsCommand.php | 119 ++++
app/Console/Commands/Activities/UpdateActivityElasticSearchDocumentCommand.php | 10 +-
app/Console/Commands/Crm/BackfillOpportunityUserFromAccountCommand.php | 126 ++++
app/Console/Commands/Elasticsearch/AsyncUpdateEsActivities.php | 19 -
app/Console/Commands/Elasticsearch/AsyncUpdateEsEntities.php | 50 +-
app/Console/Commands/Elasticsearch/ResetAsyncElasticSearchCommand.php | 30 +-
app/Console/Commands/GeckoExport/GeckoExportParticipantSpeechesCommand.php | 14 +-
app/Console/Commands/IssueMcpTokenCommand.php | 84 +++
app/Console/Commands/JiminnyDebugCommand.php | 7 +-
app/Console/Commands/Tracks/CleanupActivityTracksCommand.php | 2 +-
app/Console/Kernel.php | 6 +-
app/Contracts/Services/Calendar/CalendarTrait.php | 80 ++-
app/Events/AutomatedReports/AutomatedReportGenerated.php | 3 +
app/Http/Controllers/API/AiCallScoring/AiScorecardController.php | 7 +-
app/Http/Controllers/API/TeamAiAutomationController.php | 8 +
app/Http/Controllers/CustomerApi/CustomerApiController.php | 4 +-
app/Http/Controllers/Kiosk/ActivityController.php | 58 +-
app/Http/Controllers/Settings/PlaybookController.php | 15 +-
app/Http/Kernel.php | 23 +
app/Http/Middleware/McpAuditMiddleware.php | 156 ++++
app/Http/Middleware/McpTierMiddleware.php | 54 ++
app/Http/Requests/API/V2/ZapierUploadActivityRequest.php | 28 +-
app/Jobs/Activity/Import/ImportTwilioVideoSpeechesJob.php | 25 +-
app/Jobs/Activity/Import/IsActivityReadyForProcessingJob.php | 10 +-
app/Jobs/Calendar/SetupCalendarSync.php | 21 +-
app/Jobs/ImportRemoteTrackJob.php | 96 ++-
app/Jobs/Mailbox/EmailTextRelay.php | 15 +-
app/Mcp/Contracts/McpCallRepositoryInterface.php | 30 +
app/Mcp/DTO/ListCallsFilters.php | 29 +
app/Mcp/Errors/McpError.php | 123 ++++
app/Mcp/Repositories/McpActivityHydrator.php | 145 ++++
app/Mcp/Repositories/McpCallRepository.php | 84 +++
app/Mcp/Repositories/McpElasticCallRepository.php | 171 +++++
app/Mcp/Servers/JiminnyServer.php | 38 +
app/Mcp/Tools/ListCallsTool.php | 205 ++++++
app/Models/Activity.php | 10 +-
app/Models/Activity/Transcription.php | 17 +-
app/Models/ElasticSearch/OpportunityElasticSearchTrait.php | 5 +
app/Models/Participant.php | 1 +
app/Providers/AppServiceProvider.php | 22 +
app/Repositories/Crm/ContactRepository.php | 69 +-
app/Repositories/ParticipantSpeechRepository.php | 13 +-
app/Services/Activity/ParticipantsService.php | 19 +-
app/Services/Activity/Twilio/S3RecordingCredentialsService.php | 82 +++
app/Services/ActivityService.php | 21 +-
app/Services/Calendar/CalendarActivityService.php | 46 ++
app/Services/Calendar/Command/ImportParticipants.php | 1 +
app/Services/Calendar/Command/MapActivityData.php | 106 +--
app/Services/Calendar/GoogleCalendarService.php | 12 +-
app/Services/Crm/Close/Processor/OpportunityProcessor.php | 2 +-
app/Services/Crm/Close/Service.php | 22 +-
app/Services/Crm/Copper/Service.php | 12 +-
app/Services/Crm/Hubspot/Service.php | 154 +++-
app/Services/Crm/Hubspot/ServiceTraits/OpportunitySyncTrait.php | 88 ++-
app/Services/Crm/IntegrationApp/ServiceTraits/SyncCrmEntitiesTrait.php | 22 +-
app/Services/Crm/Pipedrive/Service.php | 17 +-
app/Services/Crm/Salesforce/Service.php | 42 +-
app/Services/Mail/Office/EmailApiClient.php | 129 +---
app/Services/RecallAI/Commands/ScheduleBotCommand.php | 39 +-
app/Services/RecallAI/RecallAIService.php | 22 +-
composer.json | 3 +-
composer.lock | 87 ++-
config/mcp.php | 23 +
database/migrations/2026_04_30_120000_create_mcp_audit_log_table.php | 36 +
docs/mcp/explorer/explorer.html | 697 ++++++++++++++++++
docs/mcp/explorer/explorer.template.html | 697 ++++++++++++++++++
docs/mcp/explorer/generate.js | 215 ++++++
docs/mcp/explorer/tool-explorer-meta.json | 11 +
docs/mcp/tools-list.json | 2536 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
docs/mcp/tools.md | 621 ++++++++++++++++
front-end/package.json | 4 +-
front-end/src/components/Settings/OrgSettings/AiAutomation/CrmFilling/TemplateFieldForm.vue | 28 +-
front-end/src/components/Settings/OrgSettings/Playbooks/AddEditPlaybook.vue | 10 +
front-end/src/components/playback/comments/ActivityComment.less | 10 +-
front-end/src/components/shared/PromptTester/PromptTester.vue | 12 +-
front-end/src/components/shared/__tests__/PromptTester.spec.js | 35 +
front-end/src/components/shared/modals/EntityPickerModal/__tests__/useEntitiesCache.spec.ts | 37 +
front-end/src/components/shared/modals/EntityPickerModal/useEntitiesCache.ts | 9 +
front-end/yarn.lock | 16 +-
phpstan-baseline.neon | 50 --
routes/api.php | 11 +
sonar-project.properties | 91 ++-
tests/Feature/Component/Nudge/ProcessOrganisationImmediateNudgesJobTest.php | 534 ++++++++++++++
tests/Feature/Jobs/ImportRemoteTrackJobTest.php | 283 +++++++-
tests/Feature/Mcp/IssueMcpTokenCommandTest.php | 53 ++
tests/Feature/Mcp/ListCallsToolElasticFeatureTest.php | 155 ++++
tests/Feature/Mcp/ListCallsToolFeatureTest.php | 352 ++++++++++
tests/Feature/Mcp/McpTestHelpersTrait.php | 77 ++
tests/Feature/Services/Team/TeamDeleteHandlers/Retention/RetentionRepositoryHandlerTest.php | 1 +
tests/Stubs/SentryStub.php | 18 +
tests/Unit/Component/ActivityAnalytics/Service/CalculateTalkTimeOffsetFromTranscriptionTest.php | 28 +-
tests/Unit/Component/AiActivityType/Services/AiActivityTypeEligibilityCheckerTest.php | 103 ++-
tests/Unit/Component/AiAutomation/Actions/PrepareUpdateDtoActionTest.php | 91 +++
tests/Unit/Component/AiAutomation/Services/CrmFillingEligibilityCheckerTest.php | 124 ++++
tests/Unit/Component/AiAutomation/TestCrmAiPromptServiceTest.php | 67 +-
tests/Unit/Component/AiCallScoring/Services/AiCallScoringEligibilityCheckerTest.php | 55 ++
tests/Unit/Component/ES/ElasticSearchWorkerManagerTest.php | 135 ----
tests/Unit/Component/ES/Processor/Actions/LoadDocumentsActionTest.php | 220 ++++++
tests/Unit/Component/ES/Processor/EntityQueryBuilderTest.php | 21 +-
tests/Unit/Component/ES/Processor/Traits/SkipActivityTraitTest.php | 51 --
tests/Unit/Component/ES/Worker/ActivityWorkerTest.php | 174 -----
tests/Unit/Component/ES/Worker/EntityWorkerTest.php | 97 ---
tests/Unit/Component/ES/Worker/WorkerAmountTest.php | 116 ---
tests/Unit/Component/Encoding/Job/AnalyzeTrackChannelsJobTest.php | 52 +-
tests/Unit/Component/Encoding/Service/GenerateSpeechFromSilenceServiceTest.php | 171 ++---
tests/Unit/Component/FFMpeg/Services/GetSpeechIntervalsTest.php | 36 +-
tests/Unit/Component/LanguageDetection/Services/FindSpeechTimeServiceTest.php | 20 +-
tests/Unit/Component/MobileSettings/MobileSettingsControllerTest.php | 5 +-
tests/Unit/Component/ParticipantSpeech/Services/ParticipantSpeechesCreatorTest.php | 75 ++
tests/Unit/Component/ParticipantSpeech/Services/ParticipantSpeechesDeleterTest.php | 63 ++
tests/Unit/Component/ParticipantSpeech/Services/ParticipantSpeechesProviderTest.php | 134 ++++
tests/Unit/Component/ParticipantSpeech/Services/ParticipantSpeechesUploaderTest.php | 57 ++
tests/Unit/Component/Transcription/Diarization/Services/GetNormalizedParticipantSpeechesServiceTest.php | 51 +-
tests/Unit/Component/Transcription/Diarization/Source/MeetingBotSourceTest.php | 29 +-
tests/Unit/Contracts/Services/Calendar/CalendarTraitTest.php | 58 +-
tests/Unit/Http/Controllers/Kiosk/ActivityControllerTest.php | 159 +++++
tests/Unit/Jobs/Activity/Import/ImportTwilioVideoSpeechesJobTest.php | 22 +-
tests/Unit/Jobs/Activity/Import/IsActivityReadyForProcessingJobTest.php | 26 +-
tests/Unit/Jobs/Calendar/SetupCalendarSyncTest.php | 25 -
tests/Unit/Services/Activity/ParticipantsServiceTest.php | 12 +-
tests/Unit/Services/Activity/Twilio/S3RecordingCredentialsServiceTest.php | 180 +++++
tests/Unit/Services/ActivityServiceTest.php | 132 ++++
tests/Unit/Services/Calendar/CalendarActivityServiceTest.php | 150 +++-
tests/Unit/Services/Calendar/Command/ImportParticipantsTest.php | 6 +-
tests/Unit/Services/Calendar/Command/MapActivityDataTest.php | 78 +-
tests/Unit/Services/Calendar/GoogleCalendarServiceTest.php | 116 +++
tests/Unit/Services/Crm/Close/ServiceTest.php | 165 +++++
tests/Unit/Services/Crm/Hubspot/ServiceTest.php | 272 ++++++-
tests/Unit/Services/Crm/Hubspot/ServiceTraits/OpportunitySyncTest.php | 25 +-
tests/Unit/Services/Crm/Hubspot/ServiceTraits/OpportunitySyncTraitMatchActivitiesTest.php | 3 +-
tests/Unit/Services/Crm/IntegrationApp/ServiceTraits/SyncCrmEntitiesTraitOpportunitiesTest.php | 40 ++
tests/Unit/Services/Crm/Pipedrive/ImportOpportunityMatchActivitiesTest.php | 2 +
tests/Unit/Services/Crm/Salesforce/ServiceTest.php | 139 ++++
tests/Unit/Services/Mail/Office/EmailApiClientTest.php | 195 ++---
tests/Unit/Services/RecallAI/RecallAIServiceTest.php | 24 +-
175 files changed, 12562 insertions(+), 2162 deletions(-)
create mode 120000 CLAUDE.md
create mode 100644 app/Component/AiAutomation/Services/CrmFillingEligibilityChecker.php
delete mode 100644 app/Component/ES/ElasticSearchWorkerManager.php
delete mode 100644 app/Component/ES/Processor/Traits/SkipActivityTrait.php
delete mode 100644 app/Component/ES/Worker/ActivityWorker.php
delete mode 100644 app/Component/ES/Worker/EntityWorker.php
delete mode 100644 app/Component/ES/Worker/WorkerAmount.php
delete mode 100644 app/Component/ES/Worker/WorkerInterface.php
create mode 100644 app/Component/ProphetAi/Exceptions/InsufficientTranscriptException.php
create mode 100644 app/Component/Transcription/DTO/Http/Transcription/AssemblyAI/AssemblyAI/NoAssemblyIdException.php
create mode 100644 app/Component/Transcription/DTO/Http/Transcription/TranscriptionIsNotCorrectFormatException.php
create mode 100644 app/Console/Commands/Activities/SetupIntegration/TwilioSetS3RecordingCredentialsCommand.php
create mode 100644 app/Console/Commands/Crm/BackfillOpportunityUserFromAccountCommand.php
delete mode 100644 app/Console/Commands/Elasticsearch/AsyncUpdateEsActivities.php
create mode 100644 app/Console/Commands/IssueMcpTokenCommand.php
create mode 100644 app/Http/Middleware/McpAuditMiddleware.php
create mode 100644 app/Http/Middleware/McpTierMiddleware.php
create mode 100644 app/Mcp/Contracts/McpCallRepositoryInterface.php
create mode 100644 app/Mcp/DTO/ListCallsFilters.php
create mode 100644 app/Mcp/Errors/McpError.php
create mode 100644 app/Mcp/Repositories/McpActivityHydrator.php
create mode 100644 app/Mcp/Repositories/McpCallRepository.php
create mode 100644 app/Mcp/Repositories/McpElasticCallRepository.php
create mode 100644 app/Mcp/Servers/JiminnyServer.php
create mode 100644 app/Mcp/Tools/ListCallsTool.php
create mode 100644 app/Services/Activity/Twilio/S3RecordingCredentialsService.php
create mode 100644 config/mcp.php
create mode 100644 database/migrations/2026_04_30_120000_create_mcp_audit_log_table.php
create mode 100644 docs/mcp/explorer/explorer.html
create mode 100644 docs/mcp/explorer/explorer.template.html
create mode 100644 docs/mcp/explorer/generate.js
create mode 100644 docs/mcp/explorer/tool-explorer-meta.json
create mode 100644 docs/mcp/tools-list.json
create mode 100644 docs/mcp/tools.md
create mode 100644 front-end/src/components/shared/modals/EntityPickerModal/__tests__/useEntitiesCache.spec.ts
create mode 100644 tests/Feature/Component/Nudge/ProcessOrganisationImmediateNudgesJobTest.php
create mode 100644 tests/Feature/Mcp/IssueMcpTokenCommandTest.php
create mode 100644 tests/Feature/Mcp/ListCallsToolElasticFeatureTest.php
create mode 100644 tests/Feature/Mcp/ListCallsToolFeatureTest.php
create mode 100644 tests/Feature/Mcp/McpTestHelpersTrait.php
create mode 100644 tests/Stubs/SentryStub.php
create mode 100644 tests/Unit/Component/AiAutomation/Services/CrmFillingEligibilityCheckerTest.php
delete mode 100644 tests/Unit/Component/ES/ElasticSearchWorkerManagerTest.php
create mode 100644 tests/Unit/Component/ES/Processor/Actions/LoadDocumentsActionTest.php
delete mode 100644 tests/Unit/Component/ES/Processor/Traits/SkipActivityTraitTest.php
delete mode 100644 tests/Unit/Component/ES/Worker/ActivityWorkerTest.php
delete mode 100644 tests/Unit/Component/ES/Worker/EntityWorkerTest.php
delete mode 100644 tests/Unit/Component/ES/Worker/WorkerAmountTest.php
create mode 100644 tests/Unit/Component/ParticipantSpeech/Services/ParticipantSpeechesCreatorTest.php
create mode 100644 tests/Unit/Http/Controllers/Kiosk/ActivityControllerTest.php
create mode 100644 tests/Unit/Services/Activity/Twilio/S3RecordingCredentialsServiceTest.php
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20725-handle-HS-search-rate-limit) $ git status
On branch master
Your branch is behind 'origin/master' by 114 commits, and can be fast-forwarded.
(use "git pull" to update your local branch)
Changes not staged for commit:
(use "git add <file>..." to update what will be committed)
(use "git restore <file>..." to discard changes in working directory)
modified: .env.local
modified: app/Component/SCIM/Constants.php
modified: app/Component/SCIM/ScimProvisioning.php
modified: app/Component/Twilio/Conference/ConferenceManager/SoftPhoneManager.php
modified: app/Console/Commands/JiminnyDebugCommand.php
modified: app/DTO/SCIM/AAD/Request/CoreUserRequest.php
modified: app/DTO/SCIM/AAD/Response/CoreUser.php
modified: app/Services/Telephony/TextMessagingService.php
modified: config/logging.php
Untracked files:
(use "git add <file>..." to include in what will be committed)
.env.nikilocal
.env.other
WEBHOOK_FILTERING_IMPLEMENTATION.md
app/Component/SCIM/Mutators/Attributes/User/RoleAttr.php
app/Console/Commands/Crm/Hubspot/SimulateWebhooksCommand.php
app/Console/Commands/Reports/CreateMockAskJiminnyReportResultCommand.php
app/Rules/ListenerRoleCannotHaveAdminOrManagerPermissionRule.php
ids.txt
public/favicon.ico
raw_sql_query.sql
tests/Unit/Component/SCIM/Mutators/Attributes/User/RoleAttrTest.php
tests/Unit/Policies/CanAccessAiReportsTest.php
tests/Unit/Rules/ListenerRoleCannotHaveAdminOrManagerPermissionRuleTest.php
no changes added to commit (use "git add" and/or "git commit -a")
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (master) $ git pull
remote: Enumerating objects: 306, done.
remote: Counting objects: 100% (299/299), done.
remote: Compressing objects: 100% (183/183), done.
remote: Total 306 (delta 213), reused 171 (delta 116), pack-reused 7 (from 1)
Receiving objects: 100% (306/306), 80.12 KiB | 1000.00 KiB/s, done.
Resolving deltas: 100% (213/213), completed with 53 local objects.
From github.com:jiminny/app
90bca4e4b2..5604af40cf master -> origin/master
4e7078fd8b..0b8343d179 JY-18091-upgrade-to-php-8-5 -> origin/JY-18091-upgrade-to-php-8-5
098eeaa087..d5a447e492 JY-20613-allow-owner-role-on-team-setup -> origin/JY-20613-allow-owner-role-on-team-setup
c3a76ace91..af65249d0f JY-20749-user-can-view-recorded-meetings -> origin/JY-20749-user-can-view-recorded-meetings
d94a285ae7..7ce96cb5fe JY-20808-low-priority-indexing-queue -> origin/JY-20808-low-priority-indexing-queue
* [new branch] JY-20842-remove-partial-updater -> origin/JY-20842-remove-partial-updater
* [new branch] JY-20920-fix-participant-flip -> origin/JY-20920-fix-participant-flip
* [new branch] secfix/npm-20260519 -> origin/secfix/npm-20260519
Updating cb4ebf0c36..5604af40cf
Fast-forward
app/Component/ES/ChunkSize.php | 54 +++++++++++++++++++
app/Component/ES/Processor/DTOs/SelectionList.php | 4 +-
app/Component/ES/Processor/TargetEntitiesSelector.php | 19 ++++---
app/Component/MeetingBot/Service/ParticipantMatcher.php | 46 ++++++++++++----
app/Exceptions/RateLimitException.php | 19 ++++++-
app/Http/Middleware/McpTierMiddleware.php | 27 ++--------
app/Jobs/Crm/MatchActivityCrmData.php | 47 ++++++++++++----
app/Jobs/Middleware/HandleHubspotRateLimit.php | 42 +++++++++++++++
app/Mcp/Servers/JiminnyServer.php | 2 +
app/Mcp/Tools/GetMeTool.php | 157 +++++++++++++++++++++++++++++++++++++++++++++++++++++
app/Models/Feature/FeatureEnum.php | 1 +
app/Services/Activity/HubSpot/ProviderResolver.php | 4 +-
app/Services/Activity/HubSpot/ProviderResolverInterface.php | 2 +-
app/Services/Activity/HubSpot/Providers/Provider.php | 2 +-
app/Services/Activity/HubSpot/Providers/ProviderKixie.php | 2 +-
app/Services/Activity/HubSpot/Providers/ProviderOrum.php | 2 +-
app/Services/Activity/HubSpot/Providers/ProviderTwilio.php | 2 +-
app/Services/Activity/HubSpot/Providers/ProviderTwilioFlex.php | 5 +-
app/Services/Activity/HubSpot/Service.php | 97 +++++++++++++++++++++++++++------
app/Services/Crm/Hubspot/Client.php | 132 +++++++++++++++++++++++++++++++++++++++++++++
app/Services/Crm/Hubspot/HubspotClientInterface.php | 15 ++++++
app/Services/Crm/Hubspot/Pagination/HubspotPaginationService.php | 21 ++++----
app/Services/Crm/Hubspot/Pagination/PaginationState.php | 2 +-
database/migrations/2026_05_13_124153_create_mcp_feature_flag.php | 25 +++++++++
tests/Feature/Mcp/GetMeToolFeatureTest.php | 140 +++++++++++++++++++++++++++++++++++++++++++++++
tests/Feature/Mcp/ListCallsToolFeatureTest.php | 2 +-
tests/Feature/Mcp/McpTestHelpersTrait.php | 19 ++++++-
tests/Unit/Component/ES/ChunkSizeTest.php | 50 +++++++++++++++++
tests/Unit/Component/ES/Processor/DTOs/SelectionListTest.php | 27 +++++++---
tests/Unit/Component/ES/Processor/TargetEntitiesSelectorTest.php | 39 ++++++++------
tests/Unit/Component/MeetingBot/Service/ParticipantMatcherTest.php | 68 ++++++++++++++++++++++-
tests/Unit/Exceptions/RateLimitExceptionTest.php | 56 +++++++++++++++++++
tests/Unit/Jobs/Crm/MatchActivityCrmDataTest.php | 8 +--
tests/Unit/Jobs/Middleware/HandleHubspotRateLimitTest.php | 151 +++++++++++++++++++++++++++++++++++++++++++++++++++
tests/Unit/Services/Activity/HubSpot/ServiceTest.php | 109 +++++++++++++++++++++++++++++++++++++
tests/Unit/Services/Crm/Hubspot/ClientTest.php | 250 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
tests/Unit/Services/Crm/Hubspot/Pagination/HubspotPaginationServiceTest.php | 283 +++++++++++++++++++++---------------------------------------------------------------------------
37 files changed, 1587 insertions(+), 344 deletions(-)
create mode 100644 app/Component/ES/ChunkSize.php
create mode 100644 app/Jobs/Middleware/HandleHubspotRateLimit.php
create mode 100644 app/Mcp/Tools/GetMeTool.php
create mode 100644 database/migrations/2026_05_13_124153_create_mcp_feature_flag.php
create mode 100644 tests/Feature/Mcp/GetMeToolFeatureTest.php
create mode 100644 tests/Unit/Component/ES/ChunkSizeTest.php
create mode 100644 tests/Unit/Exceptions/RateLimitExceptionTest.php
create mode 100644 tests/Unit/Jobs/Middleware/HandleHubspotRateLimitTest.php
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (master) $ git pull
Already up to date.
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (master) $ co -b JY-20676-delete-report-related-objects
Switched to a new branch 'JY-20676-delete-report-related-objects'
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20676-delete-report-related-objects) $ csfix
docker exec -it docker_lamp_1 ./vendor/bin/php-cs-fixer fix --config=.php-cs-fixer.dist.php -v --using-cache=no --diff
PHP CS Fixer 3.87.1 Alexander by Fabien Potencier, Dariusz Ruminski and contributors.
PHP runtime: 8.3.30
Running 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!
Loaded config default from ".php-cs-fixer.dist.php".
5690/5690 [▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓] 100%
1) app/Console/Commands/JiminnyDebugCommand.php (statement_indentation, blank_line_before_statement)
---------- begin diff ----------
--- /home/jiminny/app/Console/Commands/JiminnyDebugCommand.php
+++ /home/jiminny/app/Console/Commands/JiminnyDebugCommand.php
@@ -23,6 +23,7 @@
if ($action === 'redis-set') {
$this->testRedisSet();
+
return;
}
@@ -45,7 +46,7 @@
$ttl = 60;
try {
-// $result = Redis::set($testKey, $testValue, 'EX', $ttl, 'NX');
+ // $result = Redis::set($testKey, $testValue, 'EX', $ttl, 'NX');
$result = Redis::set($testKey, $testValue, ['nx', 'ex' => $ttl]);
if ($result) {
----------- end diff -----------
Fixed 1 of 5690 files i...
|
[{"role":"AXTextArea","text [{"role":"AXTextArea","text":"Last login: Mon May 18 09:17:28 on ttys007\n\nPoetry could not find a pyproject.toml file in /Users/lukas/jiminny/app or its parents\n\nPoetry could not find a pyproject.toml file in /Users/lukas/jiminny/app or its parents\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (pipedrive-sdk-poc) $ co master\nerror: Your local changes to the following files would be overwritten by checkout:\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tPIPEDRIVE_V2_MIGRATION_TICKETS.md\nPlease commit your changes or stash them before you switch branches.\nAborting\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (pipedrive-sdk-poc) $ git pull\nremote: Enumerating objects: 1047, done.\nremote: Counting objects: 100% (832/832), done.\nremote: Compressing objects: 100% (298/298), done.\nremote: Total 1047 (delta 634), reused 596 (delta 534), pack-reused 215 (from 3)\nReceiving objects: 100% (1047/1047), 353.16 KiB | 1.56 MiB/s, done.\nResolving deltas: 100% (687/687), completed with 107 local objects.\nFrom github.com:jiminny/app\n 907c54896c..34656c53ed pipedrive-sdk-poc -> origin/pipedrive-sdk-poc\n 03325ec50f..4e7078fd8b JY-18091-upgrade-to-php-8-5 -> origin/JY-18091-upgrade-to-php-8-5\n e7d231e163..bc6a3fce6b JY-20725-handle-HS-search-rate-limit -> origin/JY-20725-handle-HS-search-rate-limit\n * [new branch] JY-20749-user-can-view-recorded-meetings -> origin/JY-20749-user-can-view-recorded-meetings\n 98ca281a04..e0351be069 JY-20808-low-priority-indexing-queue -> origin/JY-20808-low-priority-indexing-queue\n 569abb5149..3906a9238a JY-20835-mcp-enable-users-to-get-a-list-of-deals-and-their-details -> origin/JY-20835-mcp-enable-users-to-get-a-list-of-deals-and-their-details\n ad6c2a86e8..50eb6afba9 JY-20846-mcp-enable-the-ai-to-know-details-about-the-user -> origin/JY-20846-mcp-enable-the-ai-to-know-details-about-the-user\n * [new branch] JY-20893-chunk-control-per-update-target -> origin/JY-20893-chunk-control-per-update-target\n 31c62924a5..cb4ebf0c36 master -> origin/master\nUpdating 907c54896c..34656c53ed\nFast-forward\n PIPEDRIVE_V2_MIGRATION_TICKETS.md | 52 ++++++++++++++++++++++++++++++++++++++++++++++++++++\n 1 file changed, 52 insertions(+)\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (pipedrive-sdk-poc) $ co master\nM\u0000\u0000\u0000\u0000\u0000\u0000\t.env.local\nM\u0000\u0000\u0000\u0000\u0000\u0000\tconfig/logging.php\nSwitched to branch 'master'\nYour branch is behind 'origin/master' by 31 commits, and can be fast-forwarded.\n (use \"git pull\" to update your local branch)\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (master) $ git pull\nUpdating 31c62924a5..cb4ebf0c36\nFast-forward\n app/Component/ES/Processor/Traits/SelectEntityListTrait.php | 20 ------\n app/Services/Calendar/CalendarActivityService.php | 46 +++++++++++++\n app/Services/Calendar/Command/MapActivityData.php | 106 +++-------------------------\n docs/mcp/explorer/explorer.html | 104 +++++++++++++++++++++++++---\n docs/mcp/explorer/explorer.template.html | 102 ++++++++++++++++++++++++---\n docs/mcp/tools-list.json | 373 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++-------\n docs/mcp/tools.md | 117 +++++++++++++++++++++++--------\n tests/Unit/Component/ES/AsyncUpdateElasticSearchTest.php | 16 +----\n tests/Unit/Component/ES/Listeners/UpdateMultipleTargetsListenerTest.php | 10 ---\n tests/Unit/Component/ES/Listeners/UpdateSingleTargetListenerTest.php | 6 --\n tests/Unit/Component/ES/Processor/TargetEntitiesSelectorTest.php | 9 ---\n tests/Unit/Component/ES/Processor/Traits/SelectEntityListTraitTest.php | 15 ++--\n tests/Unit/Component/ES/UpdateProcessManagerTest.php | 2 -\n tests/Unit/Services/Calendar/CalendarActivityServiceTest.php | 150 ++++++++++++++++++++++++++++++++++++++--\n tests/Unit/Services/Calendar/Command/MapActivityDataTest.php | 78 ++-------------------\n 15 files changed, 832 insertions(+), 322 deletions(-)\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (master) $ co -b JY-20613-allow-owner-role-on-team-setup\nSwitched to a new branch 'JY-20613-allow-owner-role-on-team-setup'\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20613-allow-owner-role-on-team-setup) $ csfix\ndocker exec -it docker_lamp_1 ./vendor/bin/php-cs-fixer fix --config=.php-cs-fixer.dist.php -v --using-cache=no --diff \nPHP CS Fixer 3.87.1 Alexander by Fabien Potencier, Dariusz Ruminski and contributors.\nPHP runtime: 8.3.30\nRunning analysis on 7 cores with 10 files per process.\nParallel runner is an experimental feature and may be unstable, use it at your own risk. Feedback highly appreciated!\nLoaded config default from \".php-cs-fixer.dist.php\".\n 5682/5682 [▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓] 100%\n\n\nFixed 0 of 5682 files in 56.978 seconds, 67.00 MB memory used\n\nWhat's next:\n Try Docker Debug for seamless, persistent debugging tools in any container or image → docker debug docker_lamp_1\n Learn more at https://docs.docker.com/go/debug-cli/\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20613-allow-owner-role-on-team-setup) $ ;xd\ndocker exec -it docker_lamp_1 bash -c \"mv /usr/local/etc/php/conf.d/xdebug.ini ~/xdebug.ini\"\n\nWhat's next:\n Try Docker Debug for seamless, persistent debugging tools in any container or image → docker debug docker_lamp_1\n Learn more at https://docs.docker.com/go/debug-cli/\ndocker exec -it docker_lamp_1 supervisorctl restart all\njiminny-worker-processing-2:jiminny-worker-processing-2_00: stopped\njiminny-worker-processing-3:jiminny-worker-processing-3_00: stopped\njiminny-worker-processing-4:jiminny-worker-processing-4_00: stopped\njiminny-worker-processing-5:jiminny-worker-processing-5_00: stopped\njiminny-worker-processing-delayed:jiminny-worker-processing-delayed_00: stopped\nworker-analytics:worker-analytics_00: stopped\nworker-crm-update:worker-crm-update_00: stopped\nworker-download:worker-download_00: stopped\nworker-nudges:worker-nudges_00: stopped\nartisan-schedule:artisan-schedule_00: stopped\nworker-emails:worker-emails_00: stopped\nworker-calendar:worker-calendar_00: stopped\nworker:worker_00: stopped\nworker-conferences:worker-conferences_00: stopped\nworker-crm-sync:worker-crm-sync_00: stopped\njiminny-worker-processing-1:jiminny-worker-processing-1_00: stopped\nworker-audio:worker-audio_00: stopped\nworker-es-update:worker-es-update_00: stopped\nartisan-schedule:artisan-schedule_00: started\njiminny-worker-processing-1:jiminny-worker-processing-1_00: started\njiminny-worker-processing-2:jiminny-worker-processing-2_00: started\njiminny-worker-processing-3:jiminny-worker-processing-3_00: started\njiminny-worker-processing-4:jiminny-worker-processing-4_00: started\njiminny-worker-processing-5:jiminny-worker-processing-5_00: started\njiminny-worker-processing-delayed:jiminny-worker-processing-delayed_00: started\nworker:worker_00: started\nworker-analytics:worker-analytics_00: started\nworker-audio:worker-audio_00: started\nworker-calendar:worker-calendar_00: started\nworker-conferences:worker-conferences_00: started\nworker-crm-sync:worker-crm-sync_00: started\nworker-crm-update:worker-crm-update_00: started\nworker-download:worker-download_00: started\nworker-emails:worker-emails_00: started\nworker-es-update:worker-es-update_00: started\nworker-nudges:worker-nudges_00: started\n\nWhat's next:\n Try Docker Debug for seamless, persistent debugging tools in any container or image → docker debug docker_lamp_1\n Learn more at https://docs.docker.com/go/debug-cli/\ndocker exec -it docker_lamp_1 php -v\nPHP 8.3.30 (cli) (built: Mar 16 2026 22:32:32) (NTS)\nCopyright (c) The PHP Group\nZend Engine v4.3.30, Copyright (c) Zend Technologies\n with Zend OPcache v8.3.30, Copyright (c), by Zend Technologies\n\nWhat's next:\n Try Docker Debug for seamless, persistent debugging tools in any container or image → docker debug docker_lamp_1\n Learn more at https://docs.docker.com/go/debug-cli/\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20613-allow-owner-role-on-team-setup) $ csfix\ndocker exec -it docker_lamp_1 ./vendor/bin/php-cs-fixer fix --config=.php-cs-fixer.dist.php -v --using-cache=no --diff \nPHP CS Fixer 3.87.1 Alexander by Fabien Potencier, Dariusz Ruminski and contributors.\nPHP runtime: 8.3.30\nRunning analysis on 7 cores with 10 files per process.\nParallel runner is an experimental feature and may be unstable, use it at your own risk. Feedback highly appreciated!\nLoaded config default from \".php-cs-fixer.dist.php\".\n 5682/5682 [▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓] 100%\n\n\nFixed 0 of 5682 files in 49.910 seconds, 60.00 MB memory used\n\nWhat's next:\n Try Docker Debug for seamless, persistent debugging tools in any container or image → docker debug docker_lamp_1\n Learn more at https://docs.docker.com/go/debug-cli/\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20613-allow-owner-role-on-team-setup) $ git status\nOn branch JY-20613-allow-owner-role-on-team-setup\nYour branch is ahead of 'origin/JY-20613-allow-owner-role-on-team-setup' by 1 commit.\n (use \"git push\" to publish your local commits)\n\nChanges not staged for commit:\n (use \"git add <file>...\" to update what will be committed)\n (use \"git restore <file>...\" to discard changes in working directory)\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tmodified: .env.local\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tmodified: config/logging.php\n\nUntracked files:\n (use \"git add <file>...\" to include in what will be committed)\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\t.env.nikilocal\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\t.env.other\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tWEBHOOK_FILTERING_IMPLEMENTATION.md\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tapp/Console/Commands/Crm/Hubspot/SimulateWebhooksCommand.php\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tapp/Console/Commands/Reports/CreateMockAskJiminnyReportResultCommand.php\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tids.txt\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tpublic/favicon.ico\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\traw_sql_query.sql\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\ttests/Unit/Policies/CanAccessAiReportsTest.php\n\nno changes added to commit (use \"git add\" and/or \"git commit -a\")\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20613-allow-owner-role-on-team-setup) $ git pull\nremote: Enumerating objects: 248, done.\nremote: Counting objects: 100% (128/128), done.\nremote: Compressing objects: 100% (23/23), done.\nremote: Total 59 (delta 43), reused 44 (delta 33), pack-reused 0 (from 0)\nUnpacking objects: 100% (59/59), 10.48 KiB | 228.00 KiB/s, done.\nFrom github.com:jiminny/app\n b7df560451..190239dfd4 JY-20613-allow-owner-role-on-team-setup -> origin/JY-20613-allow-owner-role-on-team-setup\n e0351be069..d94a285ae7 JY-20808-low-priority-indexing-queue -> origin/JY-20808-low-priority-indexing-queue\n * [new branch] JY-20920-fix-participant-matcher -> origin/JY-20920-fix-participant-matcher\n cb4ebf0c36..90bca4e4b2 master -> origin/master\nMerge made by the 'ort' strategy.\n app/Component/ES/ChunkSize.php | 54 +++++++++++++++++++++++++++\n app/Component/ES/Processor/DTOs/SelectionList.php | 4 +-\n app/Component/ES/Processor/TargetEntitiesSelector.php | 19 ++++++----\n app/Http/Middleware/McpTierMiddleware.php | 27 +++-----------\n app/Mcp/Servers/JiminnyServer.php | 2 +\n app/Mcp/Tools/GetMeTool.php | 157 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++\n app/Models/Feature/FeatureEnum.php | 1 +\n database/migrations/2026_05_13_124153_create_mcp_feature_flag.php | 25 +++++++++++++\n front-end/src/components/Settings/Kiosk/modals/EditTeamModal/EditTeamModal.vue | 52 ++++++++++++++++++--------\n front-end/src/components/Settings/Kiosk/modals/EditTeamModal/__tests__/EditTeamModal.spec.js | 14 +++++++\n tests/Feature/Mcp/GetMeToolFeatureTest.php | 140 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++\n tests/Feature/Mcp/ListCallsToolFeatureTest.php | 2 +-\n tests/Feature/Mcp/McpTestHelpersTrait.php | 19 +++++++++-\n tests/Unit/Component/ES/ChunkSizeTest.php | 50 +++++++++++++++++++++++++\n tests/Unit/Component/ES/Processor/DTOs/SelectionListTest.php | 27 ++++++++++----\n tests/Unit/Component/ES/Processor/TargetEntitiesSelectorTest.php | 39 +++++++++++---------\n 16 files changed, 557 insertions(+), 75 deletions(-)\n create mode 100644 app/Component/ES/ChunkSize.php\n create mode 100644 app/Mcp/Tools/GetMeTool.php\n create mode 100644 database/migrations/2026_05_13_124153_create_mcp_feature_flag.php\n create mode 100644 tests/Feature/Mcp/GetMeToolFeatureTest.php\n create mode 100644 tests/Unit/Component/ES/ChunkSizeTest.php\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20613-allow-owner-role-on-team-setup) $ git push\nEnumerating objects: 40, done.\nCounting objects: 100% (34/34), done.\nDelta compression using up to 8 threads\nCompressing objects: 100% (18/18), done.\nWriting objects: 100% (18/18), 1.58 KiB | 1.58 MiB/s, done.\nTotal 18 (delta 15), reused 0 (delta 0), pack-reused 0\nremote: Resolving deltas: 100% (15/15), completed with 13 local objects.\nTo github.com:jiminny/app.git\n 190239dfd4..ec1b261264 JY-20613-allow-owner-role-on-team-setup -> JY-20613-allow-owner-role-on-team-setup\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20613-allow-owner-role-on-team-setup) $ gbr\n* JY-20613-allow-owner-role-on-team-setup\n pipedrive-sdk-poc\n master\n JY-20903-update_activity-stage-on-opportunity-change\n JY-20904-fix-update-es-on-activity-command\n JY-20891-improve-sms-text-relays\n JY-20725-handle-HS-search-rate-limit\n JY-20818-move-AJ-reports-to-separated-datadog-metric\n JY-20773-fix-automated-reports-user-pilot-tracking\n JY-20157-AJ-report-not-send-notification\n JY-20508-notify-before-AJ-report-expiration\n JY-20372-ai-reports-promotion-pages\n JY-20352-sync-opportunities-without-a-local-owner-user-id-is-null\n JY-20738-debug-AJ-tracking-UP\n a\n JY-18909-automated-reports-ask-jiminny\n JY-20692-fix-integration-app-token-auth-response-change\n JY-20553-debug-crm-sync-delays\n JY-20698-fix-SF-activity-types-on-new-playbook\n JY-20543-AJ-report-tracking\n JY-20384-handle-auto-sync-with-no-access-to-event-type\n JY-20458-ask-jiminny-user-definitions\n JY-19666-fix-import-contacts-account-association\n JY-19666-HS-import-contacts-and-accounts-batch-job\n JY-20458-Ask-Jiminny-Reports\n JY-20200-batch-update-CRM-objects-Salesforce\n JY-19666-HS-webhooks-add-contact-and-company\n JY-20348-trigger-setup-DI-layout-on-team-creation\n JY-20326-refactor-info-message-in-command\n JY-20317-fix-auto-log-delay-issue-on-all-channels-disabled\n JY-20312-remove-on-update-change-last-synced-at-crm-configurations\n JY-20306-SF-skip-auto-sync-for-task-based-playbook\n JY-20192-remove-deleted-team-from-saved-search-filters\n JY-20197-import-opportunity-batch-job\n JY-20293-enable-status-field-for-pipedrive-deals\n JY-20191-remove-commands-interactive-prompts\n JY-20118-change-default-sync-strategy\n JY-20183-add-cache-on-auto-log-delay\n JY-20197-add-import-opportunity-batch-job\n 20118-hs-opportunity-make-webhook-strategy-default\n JY-20118-make-default-hs-opportunity-sync-strategy-webhook-based\n JY-20196-handle-opportunity-without-note\n JY-20118-improve-opportunity-import\n JY-20189-handle-activity-search-on-deleted-groups\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20613-allow-owner-role-on-team-setup) $ co JY-20725-handle-HS-search-rate-limit\nM\u0000\u0000\u0000\u0000\u0000\u0000\t.env.local\nM\u0000\u0000\u0000\u0000\u0000\u0000\tconfig/logging.php\nSwitched to branch 'JY-20725-handle-HS-search-rate-limit'\nYour branch is behind 'origin/JY-20725-handle-HS-search-rate-limit' by 439 commits, and can be fast-forwarded.\n (use \"git pull\" to update your local branch)\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20725-handle-HS-search-rate-limit) $ git pull\nUpdating 0f3e438941..bc6a3fce6b\nFast-forward\n .gitignore | 3 +-\n .windsurfrules | 168 ++---\n CLAUDE.md | 1 +\n app/Component/ActivityAnalytics/Service/CalculateTalkTimeOffsetsFromTranscription.php | 24 +-\n app/Component/AiActivityType/Services/AiActivityTypeEligibilityChecker.php | 28 +-\n app/Component/AiAutomation/Actions/PrepareUpdateDtoAction.php | 32 +-\n app/Component/AiAutomation/Services/CrmFillingEligibilityChecker.php | 47 ++\n app/Component/AiAutomation/TestCrmAiPromptService.php | 14 +\n app/Component/AiCallScoring/Services/AiCallScoringEligibilityChecker.php | 9 +\n app/Component/ES/ElasticSearchDocumentPartialUpdater.php | 13 +-\n app/Component/ES/ElasticSearchWorkerManager.php | 86 ---\n app/Component/ES/Processor/Actions/LoadDocumentsAction.php | 80 +--\n app/Component/ES/Processor/EntityQueryBuilder.php | 12 +-\n app/Component/ES/Processor/TargetEntitiesSelector.php | 2 +-\n app/Component/ES/Processor/Traits/SkipActivityTrait.php | 25 -\n app/Component/ES/Repositories/EsResetActivityRepository.php | 11 +-\n app/Component/ES/Worker/ActivityWorker.php | 73 --\n app/Component/ES/Worker/EntityWorker.php | 44 --\n app/Component/ES/Worker/WorkerAmount.php | 60 --\n app/Component/ES/Worker/WorkerInterface.php | 15 -\n app/Component/ElasticSearch/Contract/Searchable.php | 4 +\n app/Component/Encoding/Job/AnalyzeTrackChannelsJob.php | 20 +-\n app/Component/Encoding/Service/GenerateSpeechFromSilenceService.php | 85 ++-\n app/Component/FFMpeg/Services/GetSpeechIntervalsService.php | 18 +-\n app/Component/LanguageDetection/Services/FindSpeechTimeService.php | 22 +-\n app/Component/Nudge/Job/ProcessOrganisationImmediateNudgesJob.php | 218 +++++-\n app/Component/ParagraphBreaker/Services/TranscriptionParagraphsService.php | 4 +\n app/Component/ParticipantSpeech/Services/ParticipantSpeechesCreator.php | 33 +\n app/Component/ParticipantSpeech/Services/ParticipantSpeechesDeleter.php | 15 +\n app/Component/ParticipantSpeech/Services/ParticipantSpeechesProvider.php | 51 +-\n app/Component/ParticipantSpeech/Services/ParticipantSpeechesUploader.php | 36 +\n app/Component/ProphetAi/Exceptions/InsufficientTranscriptException.php | 11 +\n app/Component/Transcription/DTO/Http/Transcription/AssemblyAI/AssemblyAI/NoAssemblyIdException.php | 11 +\n app/Component/Transcription/DTO/Http/Transcription/AssemblyAI/AssemblyAI/SuccessfulResponse.php | 6 +\n app/Component/Transcription/DTO/Http/Transcription/TranscriptionIsNotCorrectFormatException.php | 11 +\n app/Component/Transcription/Diarization/Services/GetNormalizedParticipantSpeechesService.php | 23 +-\n app/Component/Transcription/Diarization/Source/MeetingBotSource.php | 16 +-\n app/Component/Transcription/TranscriptionProcessor/TranscriptionProcessor.php | 3 +\n app/Console/Commands/Activities/ActivityHardDeleteCommand.php | 4 +-\n app/Console/Commands/Activities/Copy.php | 2 +\n app/Console/Commands/Activities/SetupIntegration/TwilioSetS3RecordingCredentialsCommand.php | 119 ++++\n app/Console/Commands/Activities/UpdateActivityElasticSearchDocumentCommand.php | 10 +-\n app/Console/Commands/Crm/BackfillOpportunityUserFromAccountCommand.php | 126 ++++\n app/Console/Commands/Elasticsearch/AsyncUpdateEsActivities.php | 19 -\n app/Console/Commands/Elasticsearch/AsyncUpdateEsEntities.php | 50 +-\n app/Console/Commands/Elasticsearch/ResetAsyncElasticSearchCommand.php | 30 +-\n app/Console/Commands/GeckoExport/GeckoExportParticipantSpeechesCommand.php | 14 +-\n app/Console/Commands/IssueMcpTokenCommand.php | 84 +++\n app/Console/Commands/JiminnyDebugCommand.php | 7 +-\n app/Console/Commands/Tracks/CleanupActivityTracksCommand.php | 2 +-\n app/Console/Kernel.php | 6 +-\n app/Contracts/Services/Calendar/CalendarTrait.php | 80 ++-\n app/Events/AutomatedReports/AutomatedReportGenerated.php | 3 +\n app/Http/Controllers/API/AiCallScoring/AiScorecardController.php | 7 +-\n app/Http/Controllers/API/TeamAiAutomationController.php | 8 +\n app/Http/Controllers/CustomerApi/CustomerApiController.php | 4 +-\n app/Http/Controllers/Kiosk/ActivityController.php | 58 +-\n app/Http/Controllers/Settings/PlaybookController.php | 15 +-\n app/Http/Kernel.php | 23 +\n app/Http/Middleware/McpAuditMiddleware.php | 156 ++++\n app/Http/Middleware/McpTierMiddleware.php | 54 ++\n app/Http/Requests/API/V2/ZapierUploadActivityRequest.php | 28 +-\n app/Jobs/Activity/Import/ImportTwilioVideoSpeechesJob.php | 25 +-\n app/Jobs/Activity/Import/IsActivityReadyForProcessingJob.php | 10 +-\n app/Jobs/Calendar/SetupCalendarSync.php | 21 +-\n app/Jobs/ImportRemoteTrackJob.php | 96 ++-\n app/Jobs/Mailbox/EmailTextRelay.php | 15 +-\n app/Mcp/Contracts/McpCallRepositoryInterface.php | 30 +\n app/Mcp/DTO/ListCallsFilters.php | 29 +\n app/Mcp/Errors/McpError.php | 123 ++++\n app/Mcp/Repositories/McpActivityHydrator.php | 145 ++++\n app/Mcp/Repositories/McpCallRepository.php | 84 +++\n app/Mcp/Repositories/McpElasticCallRepository.php | 171 +++++\n app/Mcp/Servers/JiminnyServer.php | 38 +\n app/Mcp/Tools/ListCallsTool.php | 205 ++++++\n app/Models/Activity.php | 10 +-\n app/Models/Activity/Transcription.php | 17 +-\n app/Models/ElasticSearch/OpportunityElasticSearchTrait.php | 5 +\n app/Models/Participant.php | 1 +\n app/Providers/AppServiceProvider.php | 22 +\n app/Repositories/Crm/ContactRepository.php | 69 +-\n app/Repositories/ParticipantSpeechRepository.php | 13 +-\n app/Services/Activity/ParticipantsService.php | 19 +-\n app/Services/Activity/Twilio/S3RecordingCredentialsService.php | 82 +++\n app/Services/ActivityService.php | 21 +-\n app/Services/Calendar/CalendarActivityService.php | 46 ++\n app/Services/Calendar/Command/ImportParticipants.php | 1 +\n app/Services/Calendar/Command/MapActivityData.php | 106 +--\n app/Services/Calendar/GoogleCalendarService.php | 12 +-\n app/Services/Crm/Close/Processor/OpportunityProcessor.php | 2 +-\n app/Services/Crm/Close/Service.php | 22 +-\n app/Services/Crm/Copper/Service.php | 12 +-\n app/Services/Crm/Hubspot/Service.php | 154 +++-\n app/Services/Crm/Hubspot/ServiceTraits/OpportunitySyncTrait.php | 88 ++-\n app/Services/Crm/IntegrationApp/ServiceTraits/SyncCrmEntitiesTrait.php | 22 +-\n app/Services/Crm/Pipedrive/Service.php | 17 +-\n app/Services/Crm/Salesforce/Service.php | 42 +-\n app/Services/Mail/Office/EmailApiClient.php | 129 +---\n app/Services/RecallAI/Commands/ScheduleBotCommand.php | 39 +-\n app/Services/RecallAI/RecallAIService.php | 22 +-\n composer.json | 3 +-\n composer.lock | 87 ++-\n config/mcp.php | 23 +\n database/migrations/2026_04_30_120000_create_mcp_audit_log_table.php | 36 +\n docs/mcp/explorer/explorer.html | 697 ++++++++++++++++++\n docs/mcp/explorer/explorer.template.html | 697 ++++++++++++++++++\n docs/mcp/explorer/generate.js | 215 ++++++\n docs/mcp/explorer/tool-explorer-meta.json | 11 +\n docs/mcp/tools-list.json | 2536 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++\n docs/mcp/tools.md | 621 ++++++++++++++++\n front-end/package.json | 4 +-\n front-end/src/components/Settings/OrgSettings/AiAutomation/CrmFilling/TemplateFieldForm.vue | 28 +-\n front-end/src/components/Settings/OrgSettings/Playbooks/AddEditPlaybook.vue | 10 +\n front-end/src/components/playback/comments/ActivityComment.less | 10 +-\n front-end/src/components/shared/PromptTester/PromptTester.vue | 12 +-\n front-end/src/components/shared/__tests__/PromptTester.spec.js | 35 +\n front-end/src/components/shared/modals/EntityPickerModal/__tests__/useEntitiesCache.spec.ts | 37 +\n front-end/src/components/shared/modals/EntityPickerModal/useEntitiesCache.ts | 9 +\n front-end/yarn.lock | 16 +-\n phpstan-baseline.neon | 50 --\n routes/api.php | 11 +\n sonar-project.properties | 91 ++-\n tests/Feature/Component/Nudge/ProcessOrganisationImmediateNudgesJobTest.php | 534 ++++++++++++++\n tests/Feature/Jobs/ImportRemoteTrackJobTest.php | 283 +++++++-\n tests/Feature/Mcp/IssueMcpTokenCommandTest.php | 53 ++\n tests/Feature/Mcp/ListCallsToolElasticFeatureTest.php | 155 ++++\n tests/Feature/Mcp/ListCallsToolFeatureTest.php | 352 ++++++++++\n tests/Feature/Mcp/McpTestHelpersTrait.php | 77 ++\n tests/Feature/Services/Team/TeamDeleteHandlers/Retention/RetentionRepositoryHandlerTest.php | 1 +\n tests/Stubs/SentryStub.php | 18 +\n tests/Unit/Component/ActivityAnalytics/Service/CalculateTalkTimeOffsetFromTranscriptionTest.php | 28 +-\n tests/Unit/Component/AiActivityType/Services/AiActivityTypeEligibilityCheckerTest.php | 103 ++-\n tests/Unit/Component/AiAutomation/Actions/PrepareUpdateDtoActionTest.php | 91 +++\n tests/Unit/Component/AiAutomation/Services/CrmFillingEligibilityCheckerTest.php | 124 ++++\n tests/Unit/Component/AiAutomation/TestCrmAiPromptServiceTest.php | 67 +-\n tests/Unit/Component/AiCallScoring/Services/AiCallScoringEligibilityCheckerTest.php | 55 ++\n tests/Unit/Component/ES/ElasticSearchWorkerManagerTest.php | 135 ----\n tests/Unit/Component/ES/Processor/Actions/LoadDocumentsActionTest.php | 220 ++++++\n tests/Unit/Component/ES/Processor/EntityQueryBuilderTest.php | 21 +-\n tests/Unit/Component/ES/Processor/Traits/SkipActivityTraitTest.php | 51 --\n tests/Unit/Component/ES/Worker/ActivityWorkerTest.php | 174 -----\n tests/Unit/Component/ES/Worker/EntityWorkerTest.php | 97 ---\n tests/Unit/Component/ES/Worker/WorkerAmountTest.php | 116 ---\n tests/Unit/Component/Encoding/Job/AnalyzeTrackChannelsJobTest.php | 52 +-\n tests/Unit/Component/Encoding/Service/GenerateSpeechFromSilenceServiceTest.php | 171 ++---\n tests/Unit/Component/FFMpeg/Services/GetSpeechIntervalsTest.php | 36 +-\n tests/Unit/Component/LanguageDetection/Services/FindSpeechTimeServiceTest.php | 20 +-\n tests/Unit/Component/MobileSettings/MobileSettingsControllerTest.php | 5 +-\n tests/Unit/Component/ParticipantSpeech/Services/ParticipantSpeechesCreatorTest.php | 75 ++\n tests/Unit/Component/ParticipantSpeech/Services/ParticipantSpeechesDeleterTest.php | 63 ++\n tests/Unit/Component/ParticipantSpeech/Services/ParticipantSpeechesProviderTest.php | 134 ++++\n tests/Unit/Component/ParticipantSpeech/Services/ParticipantSpeechesUploaderTest.php | 57 ++\n tests/Unit/Component/Transcription/Diarization/Services/GetNormalizedParticipantSpeechesServiceTest.php | 51 +-\n tests/Unit/Component/Transcription/Diarization/Source/MeetingBotSourceTest.php | 29 +-\n tests/Unit/Contracts/Services/Calendar/CalendarTraitTest.php | 58 +-\n tests/Unit/Http/Controllers/Kiosk/ActivityControllerTest.php | 159 +++++\n tests/Unit/Jobs/Activity/Import/ImportTwilioVideoSpeechesJobTest.php | 22 +-\n tests/Unit/Jobs/Activity/Import/IsActivityReadyForProcessingJobTest.php | 26 +-\n tests/Unit/Jobs/Calendar/SetupCalendarSyncTest.php | 25 -\n tests/Unit/Services/Activity/ParticipantsServiceTest.php | 12 +-\n tests/Unit/Services/Activity/Twilio/S3RecordingCredentialsServiceTest.php | 180 +++++\n tests/Unit/Services/ActivityServiceTest.php | 132 ++++\n tests/Unit/Services/Calendar/CalendarActivityServiceTest.php | 150 +++-\n tests/Unit/Services/Calendar/Command/ImportParticipantsTest.php | 6 +-\n tests/Unit/Services/Calendar/Command/MapActivityDataTest.php | 78 +-\n tests/Unit/Services/Calendar/GoogleCalendarServiceTest.php | 116 +++\n tests/Unit/Services/Crm/Close/ServiceTest.php | 165 +++++\n tests/Unit/Services/Crm/Hubspot/ServiceTest.php | 272 ++++++-\n tests/Unit/Services/Crm/Hubspot/ServiceTraits/OpportunitySyncTest.php | 25 +-\n tests/Unit/Services/Crm/Hubspot/ServiceTraits/OpportunitySyncTraitMatchActivitiesTest.php | 3 +-\n tests/Unit/Services/Crm/IntegrationApp/ServiceTraits/SyncCrmEntitiesTraitOpportunitiesTest.php | 40 ++\n tests/Unit/Services/Crm/Pipedrive/ImportOpportunityMatchActivitiesTest.php | 2 +\n tests/Unit/Services/Crm/Salesforce/ServiceTest.php | 139 ++++\n tests/Unit/Services/Mail/Office/EmailApiClientTest.php | 195 ++---\n tests/Unit/Services/RecallAI/RecallAIServiceTest.php | 24 +-\n 175 files changed, 12562 insertions(+), 2162 deletions(-)\n create mode 120000 CLAUDE.md\n create mode 100644 app/Component/AiAutomation/Services/CrmFillingEligibilityChecker.php\n delete mode 100644 app/Component/ES/ElasticSearchWorkerManager.php\n delete mode 100644 app/Component/ES/Processor/Traits/SkipActivityTrait.php\n delete mode 100644 app/Component/ES/Worker/ActivityWorker.php\n delete mode 100644 app/Component/ES/Worker/EntityWorker.php\n delete mode 100644 app/Component/ES/Worker/WorkerAmount.php\n delete mode 100644 app/Component/ES/Worker/WorkerInterface.php\n create mode 100644 app/Component/ProphetAi/Exceptions/InsufficientTranscriptException.php\n create mode 100644 app/Component/Transcription/DTO/Http/Transcription/AssemblyAI/AssemblyAI/NoAssemblyIdException.php\n create mode 100644 app/Component/Transcription/DTO/Http/Transcription/TranscriptionIsNotCorrectFormatException.php\n create mode 100644 app/Console/Commands/Activities/SetupIntegration/TwilioSetS3RecordingCredentialsCommand.php\n create mode 100644 app/Console/Commands/Crm/BackfillOpportunityUserFromAccountCommand.php\n delete mode 100644 app/Console/Commands/Elasticsearch/AsyncUpdateEsActivities.php\n create mode 100644 app/Console/Commands/IssueMcpTokenCommand.php\n create mode 100644 app/Http/Middleware/McpAuditMiddleware.php\n create mode 100644 app/Http/Middleware/McpTierMiddleware.php\n create mode 100644 app/Mcp/Contracts/McpCallRepositoryInterface.php\n create mode 100644 app/Mcp/DTO/ListCallsFilters.php\n create mode 100644 app/Mcp/Errors/McpError.php\n create mode 100644 app/Mcp/Repositories/McpActivityHydrator.php\n create mode 100644 app/Mcp/Repositories/McpCallRepository.php\n create mode 100644 app/Mcp/Repositories/McpElasticCallRepository.php\n create mode 100644 app/Mcp/Servers/JiminnyServer.php\n create mode 100644 app/Mcp/Tools/ListCallsTool.php\n create mode 100644 app/Services/Activity/Twilio/S3RecordingCredentialsService.php\n create mode 100644 config/mcp.php\n create mode 100644 database/migrations/2026_04_30_120000_create_mcp_audit_log_table.php\n create mode 100644 docs/mcp/explorer/explorer.html\n create mode 100644 docs/mcp/explorer/explorer.template.html\n create mode 100644 docs/mcp/explorer/generate.js\n create mode 100644 docs/mcp/explorer/tool-explorer-meta.json\n create mode 100644 docs/mcp/tools-list.json\n create mode 100644 docs/mcp/tools.md\n create mode 100644 front-end/src/components/shared/modals/EntityPickerModal/__tests__/useEntitiesCache.spec.ts\n create mode 100644 tests/Feature/Component/Nudge/ProcessOrganisationImmediateNudgesJobTest.php\n create mode 100644 tests/Feature/Mcp/IssueMcpTokenCommandTest.php\n create mode 100644 tests/Feature/Mcp/ListCallsToolElasticFeatureTest.php\n create mode 100644 tests/Feature/Mcp/ListCallsToolFeatureTest.php\n create mode 100644 tests/Feature/Mcp/McpTestHelpersTrait.php\n create mode 100644 tests/Stubs/SentryStub.php\n create mode 100644 tests/Unit/Component/AiAutomation/Services/CrmFillingEligibilityCheckerTest.php\n delete mode 100644 tests/Unit/Component/ES/ElasticSearchWorkerManagerTest.php\n create mode 100644 tests/Unit/Component/ES/Processor/Actions/LoadDocumentsActionTest.php\n delete mode 100644 tests/Unit/Component/ES/Processor/Traits/SkipActivityTraitTest.php\n delete mode 100644 tests/Unit/Component/ES/Worker/ActivityWorkerTest.php\n delete mode 100644 tests/Unit/Component/ES/Worker/EntityWorkerTest.php\n delete mode 100644 tests/Unit/Component/ES/Worker/WorkerAmountTest.php\n create mode 100644 tests/Unit/Component/ParticipantSpeech/Services/ParticipantSpeechesCreatorTest.php\n create mode 100644 tests/Unit/Http/Controllers/Kiosk/ActivityControllerTest.php\n create mode 100644 tests/Unit/Services/Activity/Twilio/S3RecordingCredentialsServiceTest.php\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20725-handle-HS-search-rate-limit) $ git status\nOn branch master\nYour branch is behind 'origin/master' by 114 commits, and can be fast-forwarded.\n (use \"git pull\" to update your local branch)\n\nChanges not staged for commit:\n (use \"git add <file>...\" to update what will be committed)\n (use \"git restore <file>...\" to discard changes in working directory)\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tmodified: .env.local\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tmodified: app/Component/SCIM/Constants.php\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tmodified: app/Component/SCIM/ScimProvisioning.php\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tmodified: app/Component/Twilio/Conference/ConferenceManager/SoftPhoneManager.php\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tmodified: app/Console/Commands/JiminnyDebugCommand.php\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tmodified: app/DTO/SCIM/AAD/Request/CoreUserRequest.php\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tmodified: app/DTO/SCIM/AAD/Response/CoreUser.php\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tmodified: app/Services/Telephony/TextMessagingService.php\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tmodified: config/logging.php\n\nUntracked files:\n (use \"git add <file>...\" to include in what will be committed)\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\t.env.nikilocal\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\t.env.other\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tWEBHOOK_FILTERING_IMPLEMENTATION.md\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tapp/Component/SCIM/Mutators/Attributes/User/RoleAttr.php\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tapp/Console/Commands/Crm/Hubspot/SimulateWebhooksCommand.php\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tapp/Console/Commands/Reports/CreateMockAskJiminnyReportResultCommand.php\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tapp/Rules/ListenerRoleCannotHaveAdminOrManagerPermissionRule.php\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tids.txt\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tpublic/favicon.ico\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\traw_sql_query.sql\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\ttests/Unit/Component/SCIM/Mutators/Attributes/User/RoleAttrTest.php\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\ttests/Unit/Policies/CanAccessAiReportsTest.php\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\ttests/Unit/Rules/ListenerRoleCannotHaveAdminOrManagerPermissionRuleTest.php\n\nno changes added to commit (use \"git add\" and/or \"git commit -a\")\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (master) $ git pull\nremote: Enumerating objects: 306, done.\nremote: Counting objects: 100% (299/299), done.\nremote: Compressing objects: 100% (183/183), done.\nremote: Total 306 (delta 213), reused 171 (delta 116), pack-reused 7 (from 1)\nReceiving objects: 100% (306/306), 80.12 KiB | 1000.00 KiB/s, done.\nResolving deltas: 100% (213/213), completed with 53 local objects.\nFrom github.com:jiminny/app\n 90bca4e4b2..5604af40cf master -> origin/master\n 4e7078fd8b..0b8343d179 JY-18091-upgrade-to-php-8-5 -> origin/JY-18091-upgrade-to-php-8-5\n 098eeaa087..d5a447e492 JY-20613-allow-owner-role-on-team-setup -> origin/JY-20613-allow-owner-role-on-team-setup\n c3a76ace91..af65249d0f JY-20749-user-can-view-recorded-meetings -> origin/JY-20749-user-can-view-recorded-meetings\n d94a285ae7..7ce96cb5fe JY-20808-low-priority-indexing-queue -> origin/JY-20808-low-priority-indexing-queue\n * [new branch] JY-20842-remove-partial-updater -> origin/JY-20842-remove-partial-updater\n * [new branch] JY-20920-fix-participant-flip -> origin/JY-20920-fix-participant-flip\n * [new branch] secfix/npm-20260519 -> origin/secfix/npm-20260519\nUpdating cb4ebf0c36..5604af40cf\nFast-forward\n app/Component/ES/ChunkSize.php | 54 +++++++++++++++++++\n app/Component/ES/Processor/DTOs/SelectionList.php | 4 +-\n app/Component/ES/Processor/TargetEntitiesSelector.php | 19 ++++---\n app/Component/MeetingBot/Service/ParticipantMatcher.php | 46 ++++++++++++----\n app/Exceptions/RateLimitException.php | 19 ++++++-\n app/Http/Middleware/McpTierMiddleware.php | 27 ++--------\n app/Jobs/Crm/MatchActivityCrmData.php | 47 ++++++++++++----\n app/Jobs/Middleware/HandleHubspotRateLimit.php | 42 +++++++++++++++\n app/Mcp/Servers/JiminnyServer.php | 2 +\n app/Mcp/Tools/GetMeTool.php | 157 +++++++++++++++++++++++++++++++++++++++++++++++++++++\n app/Models/Feature/FeatureEnum.php | 1 +\n app/Services/Activity/HubSpot/ProviderResolver.php | 4 +-\n app/Services/Activity/HubSpot/ProviderResolverInterface.php | 2 +-\n app/Services/Activity/HubSpot/Providers/Provider.php | 2 +-\n app/Services/Activity/HubSpot/Providers/ProviderKixie.php | 2 +-\n app/Services/Activity/HubSpot/Providers/ProviderOrum.php | 2 +-\n app/Services/Activity/HubSpot/Providers/ProviderTwilio.php | 2 +-\n app/Services/Activity/HubSpot/Providers/ProviderTwilioFlex.php | 5 +-\n app/Services/Activity/HubSpot/Service.php | 97 +++++++++++++++++++++++++++------\n app/Services/Crm/Hubspot/Client.php | 132 +++++++++++++++++++++++++++++++++++++++++++++\n app/Services/Crm/Hubspot/HubspotClientInterface.php | 15 ++++++\n app/Services/Crm/Hubspot/Pagination/HubspotPaginationService.php | 21 ++++----\n app/Services/Crm/Hubspot/Pagination/PaginationState.php | 2 +-\n database/migrations/2026_05_13_124153_create_mcp_feature_flag.php | 25 +++++++++\n tests/Feature/Mcp/GetMeToolFeatureTest.php | 140 +++++++++++++++++++++++++++++++++++++++++++++++\n tests/Feature/Mcp/ListCallsToolFeatureTest.php | 2 +-\n tests/Feature/Mcp/McpTestHelpersTrait.php | 19 ++++++-\n tests/Unit/Component/ES/ChunkSizeTest.php | 50 +++++++++++++++++\n tests/Unit/Component/ES/Processor/DTOs/SelectionListTest.php | 27 +++++++---\n tests/Unit/Component/ES/Processor/TargetEntitiesSelectorTest.php | 39 ++++++++------\n tests/Unit/Component/MeetingBot/Service/ParticipantMatcherTest.php | 68 ++++++++++++++++++++++-\n tests/Unit/Exceptions/RateLimitExceptionTest.php | 56 +++++++++++++++++++\n tests/Unit/Jobs/Crm/MatchActivityCrmDataTest.php | 8 +--\n tests/Unit/Jobs/Middleware/HandleHubspotRateLimitTest.php | 151 +++++++++++++++++++++++++++++++++++++++++++++++++++\n tests/Unit/Services/Activity/HubSpot/ServiceTest.php | 109 +++++++++++++++++++++++++++++++++++++\n tests/Unit/Services/Crm/Hubspot/ClientTest.php | 250 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++\n tests/Unit/Services/Crm/Hubspot/Pagination/HubspotPaginationServiceTest.php | 283 +++++++++++++++++++++---------------------------------------------------------------------------\n 37 files changed, 1587 insertions(+), 344 deletions(-)\n create mode 100644 app/Component/ES/ChunkSize.php\n create mode 100644 app/Jobs/Middleware/HandleHubspotRateLimit.php\n create mode 100644 app/Mcp/Tools/GetMeTool.php\n create mode 100644 database/migrations/2026_05_13_124153_create_mcp_feature_flag.php\n create mode 100644 tests/Feature/Mcp/GetMeToolFeatureTest.php\n create mode 100644 tests/Unit/Component/ES/ChunkSizeTest.php\n create mode 100644 tests/Unit/Exceptions/RateLimitExceptionTest.php\n create mode 100644 tests/Unit/Jobs/Middleware/HandleHubspotRateLimitTest.php\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (master) $ git pull\nAlready up to date.\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (master) $ co -b JY-20676-delete-report-related-objects\nSwitched to a new branch 'JY-20676-delete-report-related-objects'\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20676-delete-report-related-objects) $ csfix\ndocker exec -it docker_lamp_1 ./vendor/bin/php-cs-fixer fix --config=.php-cs-fixer.dist.php -v --using-cache=no --diff \nPHP CS Fixer 3.87.1 Alexander by Fabien Potencier, Dariusz Ruminski and contributors.\nPHP runtime: 8.3.30\nRunning analysis on 7 cores with 10 files per process.\nParallel runner is an experimental feature and may be unstable, use it at your own risk. Feedback highly appreciated!\nLoaded config default from \".php-cs-fixer.dist.php\".\n 5690/5690 [▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓] 100%\n\n 1) app/Console/Commands/JiminnyDebugCommand.php (statement_indentation, blank_line_before_statement)\n ---------- begin diff ----------\n--- /home/jiminny/app/Console/Commands/JiminnyDebugCommand.php\n+++ /home/jiminny/app/Console/Commands/JiminnyDebugCommand.php\n@@ -23,6 +23,7 @@\n \n if ($action === 'redis-set') {\n $this->testRedisSet();\n+\n return;\n }\n \n@@ -45,7 +46,7 @@\n $ttl = 60;\n \n try {\n-// $result = Redis::set($testKey, $testValue, 'EX', $ttl, 'NX');\n+ // $result = Redis::set($testKey, $testValue, 'EX', $ttl, 'NX');\n $result = Redis::set($testKey, $testValue, ['nx', 'ex' => $ttl]);\n \n if ($result) {\n\n ----------- end diff -----------\n\n\nFixed 1 of 5690 files in 50.673 seconds, 67.00 MB memory used\n\nWhat's next:\n Try Docker Debug for seamless, persistent debugging tools in any container or image → docker debug docker_lamp_1\n Learn more at https://docs.docker.com/go/debug-cli/\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20676-delete-report-related-objects) $ ;xd\ndocker exec -it docker_lamp_1 bash -c \"mv /usr/local/etc/php/conf.d/xdebug.ini ~/xdebug.ini\"\n\nWhat's next:\n Try Docker Debug for seamless, persistent debugging tools in any container or image → docker debug docker_lamp_1\n Learn more at https://docs.docker.com/go/debug-cli/\ndocker exec -it docker_lamp_1 supervisorctl restart all\njiminny-worker-processing-2:jiminny-worker-processing-2_00: stopped\njiminny-worker-processing-3:jiminny-worker-processing-3_00: stopped\njiminny-worker-processing-4:jiminny-worker-processing-4_00: stopped\njiminny-worker-processing-5:jiminny-worker-processing-5_00: stopped\njiminny-worker-processing-delayed:jiminny-worker-processing-delayed_00: stopped\nworker-analytics:worker-analytics_00: stopped\nworker-crm-update:worker-crm-update_00: stopped\nworker-download:worker-download_00: stopped\nworker-nudges:worker-nudges_00: stopped\nworker-calendar:worker-calendar_00: stopped\nworker-audio:worker-audio_00: stopped\njiminny-worker-processing-1:jiminny-worker-processing-1_00: stopped\nworker:worker_00: stopped\nworker-conferences:worker-conferences_00: stopped\nworker-crm-sync:worker-crm-sync_00: stopped\nworker-emails:worker-emails_00: stopped\nworker-es-update:worker-es-update_00: stopped\nartisan-schedule:artisan-schedule_00: stopped\nartisan-schedule:artisan-schedule_00: started\njiminny-worker-processing-1:jiminny-worker-processing-1_00: started\njiminny-worker-processing-2:jiminny-worker-processing-2_00: started\njiminny-worker-processing-3:jiminny-worker-processing-3_00: started\njiminny-worker-processing-4:jiminny-worker-processing-4_00: started\njiminny-worker-processing-5:jiminny-worker-processing-5_00: started\njiminny-worker-processing-delayed:jiminny-worker-processing-delayed_00: started\nworker:worker_00: started\nworker-analytics:worker-analytics_00: started\nworker-audio:worker-audio_00: started\nworker-calendar:worker-calendar_00: started\nworker-conferences:worker-conferences_00: started\nworker-crm-sync:worker-crm-sync_00: started\nworker-crm-update:worker-crm-update_00: started\nworker-download:worker-download_00: started\nworker-emails:worker-emails_00: started\nworker-es-update:worker-es-update_00: started\nworker-nudges:worker-nudges_00: started\n\nWhat's next:\n Try Docker Debug for seamless, persistent debugging tools in any container or image → docker debug docker_lamp_1\n Learn more at https://docs.docker.com/go/debug-cli/\ndocker exec -it docker_lamp_1 php -v\nPHP 8.3.30 (cli) (built: Mar 16 2026 22:32:32) (NTS)\nCopyright (c) The PHP Group\nZend Engine v4.3.30, Copyright (c) Zend Technologies\n with Zend OPcache v8.3.30, Copyright (c), by Zend Technologies\n\nWhat's next:\n Try Docker Debug for seamless, persistent debugging tools in any container or image → docker debug docker_lamp_1\n Learn more at https://docs.docker.com/go/debug-cli/\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20676-delete-report-related-objects) $ git status\nOn branch JY-20676-delete-report-related-objects\nChanges not staged for commit:\n (use \"git add <file>...\" to update what will be committed)\n (use \"git restore <file>...\" to discard changes in working directory)\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tmodified: .env.local\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tmodified: app/Console/Commands/JiminnyDebugCommand.php\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tmodified: config/logging.php\n\nUntracked files:\n (use \"git add <file>...\" to include in what will be committed)\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\t.env.nikilocal\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\t.env.other\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tWEBHOOK_FILTERING_IMPLEMENTATION.md\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tapp/Console/Commands/Crm/Hubspot/SimulateWebhooksCommand.php\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tapp/Console/Commands/Reports/CreateMockAskJiminnyReportResultCommand.php\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tids.txt\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tpublic/favicon.ico\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\traw_sql_query.sql\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\ttests/Unit/Policies/CanAccessAiReportsTest.php\n\nno changes added to commit (use \"git add\" and/or \"git commit -a\")\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20676-delete-report-related-objects) $ git push -u origin JY-20676-delete-report-related-objects\nEnumerating objects: 45, done.\nCounting objects: 100% (45/45), done.\nDelta compression using up to 8 threads\nCompressing objects: 100% (24/24), done.\nWriting objects: 100% (24/24), 3.62 KiB | 3.62 MiB/s, done.\nTotal 24 (delta 19), reused 0 (delta 0), pack-reused 0\nremote: Resolving deltas: 100% (19/19), completed with 19 local objects.\nremote: \nremote: Create a pull request for 'JY-20676-delete-report-related-objects' on GitHub by visiting:\nremote: https://github.com/jiminny/app/pull/new/JY-20676-delete-report-related-objects\nremote: \nTo github.com:jiminny/app.git\n * [new branch] JY-20676-delete-report-related-objects -> JY-20676-delete-report-related-objects\nbranch 'JY-20676-delete-report-related-objects' set up to track 'origin/JY-20676-delete-report-related-objects'.\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20676-delete-report-related-objects) $ csfix\ndocker exec -it docker_lamp_1 ./vendor/bin/php-cs-fixer fix --config=.php-cs-fixer.dist.php -v --using-cache=no --diff \nPHP CS Fixer 3.87.1 Alexander by Fabien Potencier, Dariusz Ruminski and contributors.\nPHP runtime: 8.3.30\nRunning analysis on 7 cores with 10 files per process.\nParallel runner is an experimental feature and may be unstable, use it at your own risk. Feedback highly appreciated!\nLoaded config default from \".php-cs-fixer.dist.php\".\n 5690/5690 [▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓] 100%\n\n 1) app/Http/Controllers/API/V2/AskJiminnyReportsController.php (blank_line_before_statement)\n ---------- begin diff ----------\n--- /home/jiminny/app/Http/Controllers/API/V2/AskJiminnyReportsController.php\n+++ /home/jiminny/app/Http/Controllers/API/V2/AskJiminnyReportsController.php\n@@ -140,6 +140,7 @@\n if ($enabled && $report->isAskJiminnyReport() && ! $report->canExecute()) {\n $error = 'This report is missing a saved search or prompt. ' .\n 'Edit the report to complete the setup before enabling it.';\n+\n return new JsonResponse(\n ['error' => $error],\n Response::HTTP_UNPROCESSABLE_ENTITY\n\n ----------- end diff -----------\n\n\nFixed 1 of 5690 files in 71.757 seconds, 60.00 MB memory used\n\nWhat's next:\n Try Docker Debug for seamless, persistent debugging tools in any container or image → docker debug docker_lamp_1\n Learn more at https://docs.docker.com/go/debug-cli/\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20676-delete-report-related-objects) $ git pull\nremote: Enumerating objects: 158, done.\nremote: Counting objects: 100% (103/103), done.\nremote: Compressing objects: 100% (37/37), done.\nremote: Total 158 (delta 80), reused 74 (delta 66), pack-reused 55 (from 3)\nReceiving objects: 100% (158/158), 80.59 KiB | 982.00 KiB/s, done.\nResolving deltas: 100% (85/85), completed with 45 local objects.\nFrom github.com:jiminny/app\n 02a33811ee..c6ce5e2440 JY-20676-delete-report-related-objects -> origin/JY-20676-delete-report-related-objects\n 7ce96cb5fe..6c59f04358 JY-20808-low-priority-indexing-queue -> origin/JY-20808-low-priority-indexing-queue\n 3906a9238a..2b5e6ea62b JY-20835-mcp-enable-users-to-get-a-list-of-deals-and-their-details -> origin/JY-20835-mcp-enable-users-to-get-a-list-of-deals-and-their-details\n 5604af40cf..ea3519f0e2 master -> origin/master\n * [new branch] switch-eu-assembly -> origin/switch-eu-assembly\nUpdating 02a33811ee..c6ce5e2440\nFast-forward\n app/Component/ES/ElasticSearchDocumentPartialUpdater.php | 48 ---\n app/Component/ParticipantSpeech/Services/ParticipantAttributionService.php | 4 +-\n app/Component/Settings/AutoScoring/Services/UpdateAutoScoreService.php | 20 +-\n app/Component/Transcription/Service/StorageService.php | 8 +-\n front-end/package.json | 2 +-\n front-end/src/components/DealInsights/Modals/AskAnythingModal.vue | 23 ++\n front-end/src/components/shared/AskAnything/AskAnythingPromptFormItem.vue | 2 +\n front-end/src/components/shared/AskAnything/AskAnythingSettingsDrawer.vue | 23 +-\n front-end/src/components/shared/AskAnything/__mocks__/AskAnythingSettingsDrawer.mocks.js | 1 +\n front-end/src/components/shared/AskAnything/__tests__/AskAnythingSettingsDrawer.spec.js | 135 ++++---\n front-end/src/components/shared/AskAnything/__tests__/__snapshots__/AskAnythingSettingsDrawer.spec.js.html | 1235 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++\n front-end/src/components/shared/AskAnything/__tests__/__snapshots__/AskAnythingSettingsDrawer.spec.js.snap | 1382 ----------------------------------------------------------------\n front-end/src/components/shared/AskAnything/prompts.js | 1 +\n front-end/src/components/shared/AskAnything/useAskAnything.js | 1 +\n front-end/yarn.lock | 8 +-\n tests/Unit/Component/ES/ElasticSearchDocumentPartialUpdaterTest.php | 42 --\n tests/Unit/Component/Settings/AutoScoring/Services/UpdateAutoScoreServiceTest.php | 86 ++--\n tests/Unit/Component/Transcription/Service/StorageServiceTest.php | 29 +-\n 18 files changed, 1448 insertions(+), 1602 deletions(-)\n delete mode 100644 app/Component/ES/ElasticSearchDocumentPartialUpdater.php\n create mode 100644 front-end/src/components/shared/AskAnything/__tests__/__snapshots__/AskAnythingSettingsDrawer.spec.js.html\n delete mode 100644 front-end/src/components/shared/AskAnything/__tests__/__snapshots__/AskAnythingSettingsDrawer.spec.js.snap\n delete mode 100644 tests/Unit/Component/ES/ElasticSearchDocumentPartialUpdaterTest.php\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20676-delete-report-related-objects) $ csfix\ndocker exec -it docker_lamp_1 ./vendor/bin/php-cs-fixer fix --config=.php-cs-fixer.dist.php -v --using-cache=no --diff \nPHP CS Fixer 3.87.1 Alexander by Fabien Potencier, Dariusz Ruminski and contributors.\nPHP runtime: 8.3.30\nRunning analysis on 7 cores with 10 files per process.\nParallel runner is an experimental feature and may be unstable, use it at your own risk. Feedback highly appreciated!\nLoaded config default from \".php-cs-fixer.dist.php\".\n 5688/5688 [▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓] 100%\n\n\nFixed 0 of 5688 files in 79.904 seconds, 60.00 MB memory used\n\nWhat's next:\n Try Docker Debug for seamless, persistent debugging tools in any container or image → docker debug docker_lamp_1\n Learn more at https://docs.docker.com/go/debug-cli/\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20676-delete-report-related-objects) $ csfix\ndocker exec -it docker_lamp_1 ./vendor/bin/php-cs-fixer fix --config=.php-cs-fixer.dist.php -v --using-cache=no --diff \nPHP CS Fixer 3.87.1 Alexander by Fabien Potencier, Dariusz Ruminski and contributors.\nPHP runtime: 8.3.30\nRunning analysis on 7 cores with 10 files per process.\nParallel runner is an experimental feature and may be unstable, use it at your own risk. Feedback highly appreciated!\nLoaded config default from \".php-cs-fixer.dist.php\".","depth":4,"on_screen":true,"value":"Last login: Mon May 18 09:17:28 on ttys007\n\nPoetry could not find a pyproject.toml file in /Users/lukas/jiminny/app or its parents\n\nPoetry could not find a pyproject.toml file in /Users/lukas/jiminny/app or its parents\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (pipedrive-sdk-poc) $ co master\nerror: Your local changes to the following files would be overwritten by checkout:\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tPIPEDRIVE_V2_MIGRATION_TICKETS.md\nPlease commit your changes or stash them before you switch branches.\nAborting\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (pipedrive-sdk-poc) $ git pull\nremote: Enumerating objects: 1047, done.\nremote: Counting objects: 100% (832/832), done.\nremote: Compressing objects: 100% (298/298), done.\nremote: Total 1047 (delta 634), reused 596 (delta 534), pack-reused 215 (from 3)\nReceiving objects: 100% (1047/1047), 353.16 KiB | 1.56 MiB/s, done.\nResolving deltas: 100% (687/687), completed with 107 local objects.\nFrom github.com:jiminny/app\n 907c54896c..34656c53ed pipedrive-sdk-poc -> origin/pipedrive-sdk-poc\n 03325ec50f..4e7078fd8b JY-18091-upgrade-to-php-8-5 -> origin/JY-18091-upgrade-to-php-8-5\n e7d231e163..bc6a3fce6b JY-20725-handle-HS-search-rate-limit -> origin/JY-20725-handle-HS-search-rate-limit\n * [new branch] JY-20749-user-can-view-recorded-meetings -> origin/JY-20749-user-can-view-recorded-meetings\n 98ca281a04..e0351be069 JY-20808-low-priority-indexing-queue -> origin/JY-20808-low-priority-indexing-queue\n 569abb5149..3906a9238a JY-20835-mcp-enable-users-to-get-a-list-of-deals-and-their-details -> origin/JY-20835-mcp-enable-users-to-get-a-list-of-deals-and-their-details\n ad6c2a86e8..50eb6afba9 JY-20846-mcp-enable-the-ai-to-know-details-about-the-user -> origin/JY-20846-mcp-enable-the-ai-to-know-details-about-the-user\n * [new branch] JY-20893-chunk-control-per-update-target -> origin/JY-20893-chunk-control-per-update-target\n 31c62924a5..cb4ebf0c36 master -> origin/master\nUpdating 907c54896c..34656c53ed\nFast-forward\n PIPEDRIVE_V2_MIGRATION_TICKETS.md | 52 ++++++++++++++++++++++++++++++++++++++++++++++++++++\n 1 file changed, 52 insertions(+)\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (pipedrive-sdk-poc) $ co master\nM\u0000\u0000\u0000\u0000\u0000\u0000\t.env.local\nM\u0000\u0000\u0000\u0000\u0000\u0000\tconfig/logging.php\nSwitched to branch 'master'\nYour branch is behind 'origin/master' by 31 commits, and can be fast-forwarded.\n (use \"git pull\" to update your local branch)\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (master) $ git pull\nUpdating 31c62924a5..cb4ebf0c36\nFast-forward\n app/Component/ES/Processor/Traits/SelectEntityListTrait.php | 20 ------\n app/Services/Calendar/CalendarActivityService.php | 46 +++++++++++++\n app/Services/Calendar/Command/MapActivityData.php | 106 +++-------------------------\n docs/mcp/explorer/explorer.html | 104 +++++++++++++++++++++++++---\n docs/mcp/explorer/explorer.template.html | 102 ++++++++++++++++++++++++---\n docs/mcp/tools-list.json | 373 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++-------\n docs/mcp/tools.md | 117 +++++++++++++++++++++++--------\n tests/Unit/Component/ES/AsyncUpdateElasticSearchTest.php | 16 +----\n tests/Unit/Component/ES/Listeners/UpdateMultipleTargetsListenerTest.php | 10 ---\n tests/Unit/Component/ES/Listeners/UpdateSingleTargetListenerTest.php | 6 --\n tests/Unit/Component/ES/Processor/TargetEntitiesSelectorTest.php | 9 ---\n tests/Unit/Component/ES/Processor/Traits/SelectEntityListTraitTest.php | 15 ++--\n tests/Unit/Component/ES/UpdateProcessManagerTest.php | 2 -\n tests/Unit/Services/Calendar/CalendarActivityServiceTest.php | 150 ++++++++++++++++++++++++++++++++++++++--\n tests/Unit/Services/Calendar/Command/MapActivityDataTest.php | 78 ++-------------------\n 15 files changed, 832 insertions(+), 322 deletions(-)\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (master) $ co -b JY-20613-allow-owner-role-on-team-setup\nSwitched to a new branch 'JY-20613-allow-owner-role-on-team-setup'\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20613-allow-owner-role-on-team-setup) $ csfix\ndocker exec -it docker_lamp_1 ./vendor/bin/php-cs-fixer fix --config=.php-cs-fixer.dist.php -v --using-cache=no --diff \nPHP CS Fixer 3.87.1 Alexander by Fabien Potencier, Dariusz Ruminski and contributors.\nPHP runtime: 8.3.30\nRunning analysis on 7 cores with 10 files per process.\nParallel runner is an experimental feature and may be unstable, use it at your own risk. Feedback highly appreciated!\nLoaded config default from \".php-cs-fixer.dist.php\".\n 5682/5682 [▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓] 100%\n\n\nFixed 0 of 5682 files in 56.978 seconds, 67.00 MB memory used\n\nWhat's next:\n Try Docker Debug for seamless, persistent debugging tools in any container or image → docker debug docker_lamp_1\n Learn more at https://docs.docker.com/go/debug-cli/\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20613-allow-owner-role-on-team-setup) $ ;xd\ndocker exec -it docker_lamp_1 bash -c \"mv /usr/local/etc/php/conf.d/xdebug.ini ~/xdebug.ini\"\n\nWhat's next:\n Try Docker Debug for seamless, persistent debugging tools in any container or image → docker debug docker_lamp_1\n Learn more at https://docs.docker.com/go/debug-cli/\ndocker exec -it docker_lamp_1 supervisorctl restart all\njiminny-worker-processing-2:jiminny-worker-processing-2_00: stopped\njiminny-worker-processing-3:jiminny-worker-processing-3_00: stopped\njiminny-worker-processing-4:jiminny-worker-processing-4_00: stopped\njiminny-worker-processing-5:jiminny-worker-processing-5_00: stopped\njiminny-worker-processing-delayed:jiminny-worker-processing-delayed_00: stopped\nworker-analytics:worker-analytics_00: stopped\nworker-crm-update:worker-crm-update_00: stopped\nworker-download:worker-download_00: stopped\nworker-nudges:worker-nudges_00: stopped\nartisan-schedule:artisan-schedule_00: stopped\nworker-emails:worker-emails_00: stopped\nworker-calendar:worker-calendar_00: stopped\nworker:worker_00: stopped\nworker-conferences:worker-conferences_00: stopped\nworker-crm-sync:worker-crm-sync_00: stopped\njiminny-worker-processing-1:jiminny-worker-processing-1_00: stopped\nworker-audio:worker-audio_00: stopped\nworker-es-update:worker-es-update_00: stopped\nartisan-schedule:artisan-schedule_00: started\njiminny-worker-processing-1:jiminny-worker-processing-1_00: started\njiminny-worker-processing-2:jiminny-worker-processing-2_00: started\njiminny-worker-processing-3:jiminny-worker-processing-3_00: started\njiminny-worker-processing-4:jiminny-worker-processing-4_00: started\njiminny-worker-processing-5:jiminny-worker-processing-5_00: started\njiminny-worker-processing-delayed:jiminny-worker-processing-delayed_00: started\nworker:worker_00: started\nworker-analytics:worker-analytics_00: started\nworker-audio:worker-audio_00: started\nworker-calendar:worker-calendar_00: started\nworker-conferences:worker-conferences_00: started\nworker-crm-sync:worker-crm-sync_00: started\nworker-crm-update:worker-crm-update_00: started\nworker-download:worker-download_00: started\nworker-emails:worker-emails_00: started\nworker-es-update:worker-es-update_00: started\nworker-nudges:worker-nudges_00: started\n\nWhat's next:\n Try Docker Debug for seamless, persistent debugging tools in any container or image → docker debug docker_lamp_1\n Learn more at https://docs.docker.com/go/debug-cli/\ndocker exec -it docker_lamp_1 php -v\nPHP 8.3.30 (cli) (built: Mar 16 2026 22:32:32) (NTS)\nCopyright (c) The PHP Group\nZend Engine v4.3.30, Copyright (c) Zend Technologies\n with Zend OPcache v8.3.30, Copyright (c), by Zend Technologies\n\nWhat's next:\n Try Docker Debug for seamless, persistent debugging tools in any container or image → docker debug docker_lamp_1\n Learn more at https://docs.docker.com/go/debug-cli/\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20613-allow-owner-role-on-team-setup) $ csfix\ndocker exec -it docker_lamp_1 ./vendor/bin/php-cs-fixer fix --config=.php-cs-fixer.dist.php -v --using-cache=no --diff \nPHP CS Fixer 3.87.1 Alexander by Fabien Potencier, Dariusz Ruminski and contributors.\nPHP runtime: 8.3.30\nRunning analysis on 7 cores with 10 files per process.\nParallel runner is an experimental feature and may be unstable, use it at your own risk. Feedback highly appreciated!\nLoaded config default from \".php-cs-fixer.dist.php\".\n 5682/5682 [▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓] 100%\n\n\nFixed 0 of 5682 files in 49.910 seconds, 60.00 MB memory used\n\nWhat's next:\n Try Docker Debug for seamless, persistent debugging tools in any container or image → docker debug docker_lamp_1\n Learn more at https://docs.docker.com/go/debug-cli/\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20613-allow-owner-role-on-team-setup) $ git status\nOn branch JY-20613-allow-owner-role-on-team-setup\nYour branch is ahead of 'origin/JY-20613-allow-owner-role-on-team-setup' by 1 commit.\n (use \"git push\" to publish your local commits)\n\nChanges not staged for commit:\n (use \"git add <file>...\" to update what will be committed)\n (use \"git restore <file>...\" to discard changes in working directory)\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tmodified: .env.local\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tmodified: config/logging.php\n\nUntracked files:\n (use \"git add <file>...\" to include in what will be committed)\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\t.env.nikilocal\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\t.env.other\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tWEBHOOK_FILTERING_IMPLEMENTATION.md\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tapp/Console/Commands/Crm/Hubspot/SimulateWebhooksCommand.php\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tapp/Console/Commands/Reports/CreateMockAskJiminnyReportResultCommand.php\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tids.txt\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tpublic/favicon.ico\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\traw_sql_query.sql\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\ttests/Unit/Policies/CanAccessAiReportsTest.php\n\nno changes added to commit (use \"git add\" and/or \"git commit -a\")\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20613-allow-owner-role-on-team-setup) $ git pull\nremote: Enumerating objects: 248, done.\nremote: Counting objects: 100% (128/128), done.\nremote: Compressing objects: 100% (23/23), done.\nremote: Total 59 (delta 43), reused 44 (delta 33), pack-reused 0 (from 0)\nUnpacking objects: 100% (59/59), 10.48 KiB | 228.00 KiB/s, done.\nFrom github.com:jiminny/app\n b7df560451..190239dfd4 JY-20613-allow-owner-role-on-team-setup -> origin/JY-20613-allow-owner-role-on-team-setup\n e0351be069..d94a285ae7 JY-20808-low-priority-indexing-queue -> origin/JY-20808-low-priority-indexing-queue\n * [new branch] JY-20920-fix-participant-matcher -> origin/JY-20920-fix-participant-matcher\n cb4ebf0c36..90bca4e4b2 master -> origin/master\nMerge made by the 'ort' strategy.\n app/Component/ES/ChunkSize.php | 54 +++++++++++++++++++++++++++\n app/Component/ES/Processor/DTOs/SelectionList.php | 4 +-\n app/Component/ES/Processor/TargetEntitiesSelector.php | 19 ++++++----\n app/Http/Middleware/McpTierMiddleware.php | 27 +++-----------\n app/Mcp/Servers/JiminnyServer.php | 2 +\n app/Mcp/Tools/GetMeTool.php | 157 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++\n app/Models/Feature/FeatureEnum.php | 1 +\n database/migrations/2026_05_13_124153_create_mcp_feature_flag.php | 25 +++++++++++++\n front-end/src/components/Settings/Kiosk/modals/EditTeamModal/EditTeamModal.vue | 52 ++++++++++++++++++--------\n front-end/src/components/Settings/Kiosk/modals/EditTeamModal/__tests__/EditTeamModal.spec.js | 14 +++++++\n tests/Feature/Mcp/GetMeToolFeatureTest.php | 140 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++\n tests/Feature/Mcp/ListCallsToolFeatureTest.php | 2 +-\n tests/Feature/Mcp/McpTestHelpersTrait.php | 19 +++++++++-\n tests/Unit/Component/ES/ChunkSizeTest.php | 50 +++++++++++++++++++++++++\n tests/Unit/Component/ES/Processor/DTOs/SelectionListTest.php | 27 ++++++++++----\n tests/Unit/Component/ES/Processor/TargetEntitiesSelectorTest.php | 39 +++++++++++---------\n 16 files changed, 557 insertions(+), 75 deletions(-)\n create mode 100644 app/Component/ES/ChunkSize.php\n create mode 100644 app/Mcp/Tools/GetMeTool.php\n create mode 100644 database/migrations/2026_05_13_124153_create_mcp_feature_flag.php\n create mode 100644 tests/Feature/Mcp/GetMeToolFeatureTest.php\n create mode 100644 tests/Unit/Component/ES/ChunkSizeTest.php\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20613-allow-owner-role-on-team-setup) $ git push\nEnumerating objects: 40, done.\nCounting objects: 100% (34/34), done.\nDelta compression using up to 8 threads\nCompressing objects: 100% (18/18), done.\nWriting objects: 100% (18/18), 1.58 KiB | 1.58 MiB/s, done.\nTotal 18 (delta 15), reused 0 (delta 0), pack-reused 0\nremote: Resolving deltas: 100% (15/15), completed with 13 local objects.\nTo github.com:jiminny/app.git\n 190239dfd4..ec1b261264 JY-20613-allow-owner-role-on-team-setup -> JY-20613-allow-owner-role-on-team-setup\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20613-allow-owner-role-on-team-setup) $ gbr\n* JY-20613-allow-owner-role-on-team-setup\n pipedrive-sdk-poc\n master\n JY-20903-update_activity-stage-on-opportunity-change\n JY-20904-fix-update-es-on-activity-command\n JY-20891-improve-sms-text-relays\n JY-20725-handle-HS-search-rate-limit\n JY-20818-move-AJ-reports-to-separated-datadog-metric\n JY-20773-fix-automated-reports-user-pilot-tracking\n JY-20157-AJ-report-not-send-notification\n JY-20508-notify-before-AJ-report-expiration\n JY-20372-ai-reports-promotion-pages\n JY-20352-sync-opportunities-without-a-local-owner-user-id-is-null\n JY-20738-debug-AJ-tracking-UP\n a\n JY-18909-automated-reports-ask-jiminny\n JY-20692-fix-integration-app-token-auth-response-change\n JY-20553-debug-crm-sync-delays\n JY-20698-fix-SF-activity-types-on-new-playbook\n JY-20543-AJ-report-tracking\n JY-20384-handle-auto-sync-with-no-access-to-event-type\n JY-20458-ask-jiminny-user-definitions\n JY-19666-fix-import-contacts-account-association\n JY-19666-HS-import-contacts-and-accounts-batch-job\n JY-20458-Ask-Jiminny-Reports\n JY-20200-batch-update-CRM-objects-Salesforce\n JY-19666-HS-webhooks-add-contact-and-company\n JY-20348-trigger-setup-DI-layout-on-team-creation\n JY-20326-refactor-info-message-in-command\n JY-20317-fix-auto-log-delay-issue-on-all-channels-disabled\n JY-20312-remove-on-update-change-last-synced-at-crm-configurations\n JY-20306-SF-skip-auto-sync-for-task-based-playbook\n JY-20192-remove-deleted-team-from-saved-search-filters\n JY-20197-import-opportunity-batch-job\n JY-20293-enable-status-field-for-pipedrive-deals\n JY-20191-remove-commands-interactive-prompts\n JY-20118-change-default-sync-strategy\n JY-20183-add-cache-on-auto-log-delay\n JY-20197-add-import-opportunity-batch-job\n 20118-hs-opportunity-make-webhook-strategy-default\n JY-20118-make-default-hs-opportunity-sync-strategy-webhook-based\n JY-20196-handle-opportunity-without-note\n JY-20118-improve-opportunity-import\n JY-20189-handle-activity-search-on-deleted-groups\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20613-allow-owner-role-on-team-setup) $ co JY-20725-handle-HS-search-rate-limit\nM\u0000\u0000\u0000\u0000\u0000\u0000\t.env.local\nM\u0000\u0000\u0000\u0000\u0000\u0000\tconfig/logging.php\nSwitched to branch 'JY-20725-handle-HS-search-rate-limit'\nYour branch is behind 'origin/JY-20725-handle-HS-search-rate-limit' by 439 commits, and can be fast-forwarded.\n (use \"git pull\" to update your local branch)\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20725-handle-HS-search-rate-limit) $ git pull\nUpdating 0f3e438941..bc6a3fce6b\nFast-forward\n .gitignore | 3 +-\n .windsurfrules | 168 ++---\n CLAUDE.md | 1 +\n app/Component/ActivityAnalytics/Service/CalculateTalkTimeOffsetsFromTranscription.php | 24 +-\n app/Component/AiActivityType/Services/AiActivityTypeEligibilityChecker.php | 28 +-\n app/Component/AiAutomation/Actions/PrepareUpdateDtoAction.php | 32 +-\n app/Component/AiAutomation/Services/CrmFillingEligibilityChecker.php | 47 ++\n app/Component/AiAutomation/TestCrmAiPromptService.php | 14 +\n app/Component/AiCallScoring/Services/AiCallScoringEligibilityChecker.php | 9 +\n app/Component/ES/ElasticSearchDocumentPartialUpdater.php | 13 +-\n app/Component/ES/ElasticSearchWorkerManager.php | 86 ---\n app/Component/ES/Processor/Actions/LoadDocumentsAction.php | 80 +--\n app/Component/ES/Processor/EntityQueryBuilder.php | 12 +-\n app/Component/ES/Processor/TargetEntitiesSelector.php | 2 +-\n app/Component/ES/Processor/Traits/SkipActivityTrait.php | 25 -\n app/Component/ES/Repositories/EsResetActivityRepository.php | 11 +-\n app/Component/ES/Worker/ActivityWorker.php | 73 --\n app/Component/ES/Worker/EntityWorker.php | 44 --\n app/Component/ES/Worker/WorkerAmount.php | 60 --\n app/Component/ES/Worker/WorkerInterface.php | 15 -\n app/Component/ElasticSearch/Contract/Searchable.php | 4 +\n app/Component/Encoding/Job/AnalyzeTrackChannelsJob.php | 20 +-\n app/Component/Encoding/Service/GenerateSpeechFromSilenceService.php | 85 ++-\n app/Component/FFMpeg/Services/GetSpeechIntervalsService.php | 18 +-\n app/Component/LanguageDetection/Services/FindSpeechTimeService.php | 22 +-\n app/Component/Nudge/Job/ProcessOrganisationImmediateNudgesJob.php | 218 +++++-\n app/Component/ParagraphBreaker/Services/TranscriptionParagraphsService.php | 4 +\n app/Component/ParticipantSpeech/Services/ParticipantSpeechesCreator.php | 33 +\n app/Component/ParticipantSpeech/Services/ParticipantSpeechesDeleter.php | 15 +\n app/Component/ParticipantSpeech/Services/ParticipantSpeechesProvider.php | 51 +-\n app/Component/ParticipantSpeech/Services/ParticipantSpeechesUploader.php | 36 +\n app/Component/ProphetAi/Exceptions/InsufficientTranscriptException.php | 11 +\n app/Component/Transcription/DTO/Http/Transcription/AssemblyAI/AssemblyAI/NoAssemblyIdException.php | 11 +\n app/Component/Transcription/DTO/Http/Transcription/AssemblyAI/AssemblyAI/SuccessfulResponse.php | 6 +\n app/Component/Transcription/DTO/Http/Transcription/TranscriptionIsNotCorrectFormatException.php | 11 +\n app/Component/Transcription/Diarization/Services/GetNormalizedParticipantSpeechesService.php | 23 +-\n app/Component/Transcription/Diarization/Source/MeetingBotSource.php | 16 +-\n app/Component/Transcription/TranscriptionProcessor/TranscriptionProcessor.php | 3 +\n app/Console/Commands/Activities/ActivityHardDeleteCommand.php | 4 +-\n app/Console/Commands/Activities/Copy.php | 2 +\n app/Console/Commands/Activities/SetupIntegration/TwilioSetS3RecordingCredentialsCommand.php | 119 ++++\n app/Console/Commands/Activities/UpdateActivityElasticSearchDocumentCommand.php | 10 +-\n app/Console/Commands/Crm/BackfillOpportunityUserFromAccountCommand.php | 126 ++++\n app/Console/Commands/Elasticsearch/AsyncUpdateEsActivities.php | 19 -\n app/Console/Commands/Elasticsearch/AsyncUpdateEsEntities.php | 50 +-\n app/Console/Commands/Elasticsearch/ResetAsyncElasticSearchCommand.php | 30 +-\n app/Console/Commands/GeckoExport/GeckoExportParticipantSpeechesCommand.php | 14 +-\n app/Console/Commands/IssueMcpTokenCommand.php | 84 +++\n app/Console/Commands/JiminnyDebugCommand.php | 7 +-\n app/Console/Commands/Tracks/CleanupActivityTracksCommand.php | 2 +-\n app/Console/Kernel.php | 6 +-\n app/Contracts/Services/Calendar/CalendarTrait.php | 80 ++-\n app/Events/AutomatedReports/AutomatedReportGenerated.php | 3 +\n app/Http/Controllers/API/AiCallScoring/AiScorecardController.php | 7 +-\n app/Http/Controllers/API/TeamAiAutomationController.php | 8 +\n app/Http/Controllers/CustomerApi/CustomerApiController.php | 4 +-\n app/Http/Controllers/Kiosk/ActivityController.php | 58 +-\n app/Http/Controllers/Settings/PlaybookController.php | 15 +-\n app/Http/Kernel.php | 23 +\n app/Http/Middleware/McpAuditMiddleware.php | 156 ++++\n app/Http/Middleware/McpTierMiddleware.php | 54 ++\n app/Http/Requests/API/V2/ZapierUploadActivityRequest.php | 28 +-\n app/Jobs/Activity/Import/ImportTwilioVideoSpeechesJob.php | 25 +-\n app/Jobs/Activity/Import/IsActivityReadyForProcessingJob.php | 10 +-\n app/Jobs/Calendar/SetupCalendarSync.php | 21 +-\n app/Jobs/ImportRemoteTrackJob.php | 96 ++-\n app/Jobs/Mailbox/EmailTextRelay.php | 15 +-\n app/Mcp/Contracts/McpCallRepositoryInterface.php | 30 +\n app/Mcp/DTO/ListCallsFilters.php | 29 +\n app/Mcp/Errors/McpError.php | 123 ++++\n app/Mcp/Repositories/McpActivityHydrator.php | 145 ++++\n app/Mcp/Repositories/McpCallRepository.php | 84 +++\n app/Mcp/Repositories/McpElasticCallRepository.php | 171 +++++\n app/Mcp/Servers/JiminnyServer.php | 38 +\n app/Mcp/Tools/ListCallsTool.php | 205 ++++++\n app/Models/Activity.php | 10 +-\n app/Models/Activity/Transcription.php | 17 +-\n app/Models/ElasticSearch/OpportunityElasticSearchTrait.php | 5 +\n app/Models/Participant.php | 1 +\n app/Providers/AppServiceProvider.php | 22 +\n app/Repositories/Crm/ContactRepository.php | 69 +-\n app/Repositories/ParticipantSpeechRepository.php | 13 +-\n app/Services/Activity/ParticipantsService.php | 19 +-\n app/Services/Activity/Twilio/S3RecordingCredentialsService.php | 82 +++\n app/Services/ActivityService.php | 21 +-\n app/Services/Calendar/CalendarActivityService.php | 46 ++\n app/Services/Calendar/Command/ImportParticipants.php | 1 +\n app/Services/Calendar/Command/MapActivityData.php | 106 +--\n app/Services/Calendar/GoogleCalendarService.php | 12 +-\n app/Services/Crm/Close/Processor/OpportunityProcessor.php | 2 +-\n app/Services/Crm/Close/Service.php | 22 +-\n app/Services/Crm/Copper/Service.php | 12 +-\n app/Services/Crm/Hubspot/Service.php | 154 +++-\n app/Services/Crm/Hubspot/ServiceTraits/OpportunitySyncTrait.php | 88 ++-\n app/Services/Crm/IntegrationApp/ServiceTraits/SyncCrmEntitiesTrait.php | 22 +-\n app/Services/Crm/Pipedrive/Service.php | 17 +-\n app/Services/Crm/Salesforce/Service.php | 42 +-\n app/Services/Mail/Office/EmailApiClient.php | 129 +---\n app/Services/RecallAI/Commands/ScheduleBotCommand.php | 39 +-\n app/Services/RecallAI/RecallAIService.php | 22 +-\n composer.json | 3 +-\n composer.lock | 87 ++-\n config/mcp.php | 23 +\n database/migrations/2026_04_30_120000_create_mcp_audit_log_table.php | 36 +\n docs/mcp/explorer/explorer.html | 697 ++++++++++++++++++\n docs/mcp/explorer/explorer.template.html | 697 ++++++++++++++++++\n docs/mcp/explorer/generate.js | 215 ++++++\n docs/mcp/explorer/tool-explorer-meta.json | 11 +\n docs/mcp/tools-list.json | 2536 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++\n docs/mcp/tools.md | 621 ++++++++++++++++\n front-end/package.json | 4 +-\n front-end/src/components/Settings/OrgSettings/AiAutomation/CrmFilling/TemplateFieldForm.vue | 28 +-\n front-end/src/components/Settings/OrgSettings/Playbooks/AddEditPlaybook.vue | 10 +\n front-end/src/components/playback/comments/ActivityComment.less | 10 +-\n front-end/src/components/shared/PromptTester/PromptTester.vue | 12 +-\n front-end/src/components/shared/__tests__/PromptTester.spec.js | 35 +\n front-end/src/components/shared/modals/EntityPickerModal/__tests__/useEntitiesCache.spec.ts | 37 +\n front-end/src/components/shared/modals/EntityPickerModal/useEntitiesCache.ts | 9 +\n front-end/yarn.lock | 16 +-\n phpstan-baseline.neon | 50 --\n routes/api.php | 11 +\n sonar-project.properties | 91 ++-\n tests/Feature/Component/Nudge/ProcessOrganisationImmediateNudgesJobTest.php | 534 ++++++++++++++\n tests/Feature/Jobs/ImportRemoteTrackJobTest.php | 283 +++++++-\n tests/Feature/Mcp/IssueMcpTokenCommandTest.php | 53 ++\n tests/Feature/Mcp/ListCallsToolElasticFeatureTest.php | 155 ++++\n tests/Feature/Mcp/ListCallsToolFeatureTest.php | 352 ++++++++++\n tests/Feature/Mcp/McpTestHelpersTrait.php | 77 ++\n tests/Feature/Services/Team/TeamDeleteHandlers/Retention/RetentionRepositoryHandlerTest.php | 1 +\n tests/Stubs/SentryStub.php | 18 +\n tests/Unit/Component/ActivityAnalytics/Service/CalculateTalkTimeOffsetFromTranscriptionTest.php | 28 +-\n tests/Unit/Component/AiActivityType/Services/AiActivityTypeEligibilityCheckerTest.php | 103 ++-\n tests/Unit/Component/AiAutomation/Actions/PrepareUpdateDtoActionTest.php | 91 +++\n tests/Unit/Component/AiAutomation/Services/CrmFillingEligibilityCheckerTest.php | 124 ++++\n tests/Unit/Component/AiAutomation/TestCrmAiPromptServiceTest.php | 67 +-\n tests/Unit/Component/AiCallScoring/Services/AiCallScoringEligibilityCheckerTest.php | 55 ++\n tests/Unit/Component/ES/ElasticSearchWorkerManagerTest.php | 135 ----\n tests/Unit/Component/ES/Processor/Actions/LoadDocumentsActionTest.php | 220 ++++++\n tests/Unit/Component/ES/Processor/EntityQueryBuilderTest.php | 21 +-\n tests/Unit/Component/ES/Processor/Traits/SkipActivityTraitTest.php | 51 --\n tests/Unit/Component/ES/Worker/ActivityWorkerTest.php | 174 -----\n tests/Unit/Component/ES/Worker/EntityWorkerTest.php | 97 ---\n tests/Unit/Component/ES/Worker/WorkerAmountTest.php | 116 ---\n tests/Unit/Component/Encoding/Job/AnalyzeTrackChannelsJobTest.php | 52 +-\n tests/Unit/Component/Encoding/Service/GenerateSpeechFromSilenceServiceTest.php | 171 ++---\n tests/Unit/Component/FFMpeg/Services/GetSpeechIntervalsTest.php | 36 +-\n tests/Unit/Component/LanguageDetection/Services/FindSpeechTimeServiceTest.php | 20 +-\n tests/Unit/Component/MobileSettings/MobileSettingsControllerTest.php | 5 +-\n tests/Unit/Component/ParticipantSpeech/Services/ParticipantSpeechesCreatorTest.php | 75 ++\n tests/Unit/Component/ParticipantSpeech/Services/ParticipantSpeechesDeleterTest.php | 63 ++\n tests/Unit/Component/ParticipantSpeech/Services/ParticipantSpeechesProviderTest.php | 134 ++++\n tests/Unit/Component/ParticipantSpeech/Services/ParticipantSpeechesUploaderTest.php | 57 ++\n tests/Unit/Component/Transcription/Diarization/Services/GetNormalizedParticipantSpeechesServiceTest.php | 51 +-\n tests/Unit/Component/Transcription/Diarization/Source/MeetingBotSourceTest.php | 29 +-\n tests/Unit/Contracts/Services/Calendar/CalendarTraitTest.php | 58 +-\n tests/Unit/Http/Controllers/Kiosk/ActivityControllerTest.php | 159 +++++\n tests/Unit/Jobs/Activity/Import/ImportTwilioVideoSpeechesJobTest.php | 22 +-\n tests/Unit/Jobs/Activity/Import/IsActivityReadyForProcessingJobTest.php | 26 +-\n tests/Unit/Jobs/Calendar/SetupCalendarSyncTest.php | 25 -\n tests/Unit/Services/Activity/ParticipantsServiceTest.php | 12 +-\n tests/Unit/Services/Activity/Twilio/S3RecordingCredentialsServiceTest.php | 180 +++++\n tests/Unit/Services/ActivityServiceTest.php | 132 ++++\n tests/Unit/Services/Calendar/CalendarActivityServiceTest.php | 150 +++-\n tests/Unit/Services/Calendar/Command/ImportParticipantsTest.php | 6 +-\n tests/Unit/Services/Calendar/Command/MapActivityDataTest.php | 78 +-\n tests/Unit/Services/Calendar/GoogleCalendarServiceTest.php | 116 +++\n tests/Unit/Services/Crm/Close/ServiceTest.php | 165 +++++\n tests/Unit/Services/Crm/Hubspot/ServiceTest.php | 272 ++++++-\n tests/Unit/Services/Crm/Hubspot/ServiceTraits/OpportunitySyncTest.php | 25 +-\n tests/Unit/Services/Crm/Hubspot/ServiceTraits/OpportunitySyncTraitMatchActivitiesTest.php | 3 +-\n tests/Unit/Services/Crm/IntegrationApp/ServiceTraits/SyncCrmEntitiesTraitOpportunitiesTest.php | 40 ++\n tests/Unit/Services/Crm/Pipedrive/ImportOpportunityMatchActivitiesTest.php | 2 +\n tests/Unit/Services/Crm/Salesforce/ServiceTest.php | 139 ++++\n tests/Unit/Services/Mail/Office/EmailApiClientTest.php | 195 ++---\n tests/Unit/Services/RecallAI/RecallAIServiceTest.php | 24 +-\n 175 files changed, 12562 insertions(+), 2162 deletions(-)\n create mode 120000 CLAUDE.md\n create mode 100644 app/Component/AiAutomation/Services/CrmFillingEligibilityChecker.php\n delete mode 100644 app/Component/ES/ElasticSearchWorkerManager.php\n delete mode 100644 app/Component/ES/Processor/Traits/SkipActivityTrait.php\n delete mode 100644 app/Component/ES/Worker/ActivityWorker.php\n delete mode 100644 app/Component/ES/Worker/EntityWorker.php\n delete mode 100644 app/Component/ES/Worker/WorkerAmount.php\n delete mode 100644 app/Component/ES/Worker/WorkerInterface.php\n create mode 100644 app/Component/ProphetAi/Exceptions/InsufficientTranscriptException.php\n create mode 100644 app/Component/Transcription/DTO/Http/Transcription/AssemblyAI/AssemblyAI/NoAssemblyIdException.php\n create mode 100644 app/Component/Transcription/DTO/Http/Transcription/TranscriptionIsNotCorrectFormatException.php\n create mode 100644 app/Console/Commands/Activities/SetupIntegration/TwilioSetS3RecordingCredentialsCommand.php\n create mode 100644 app/Console/Commands/Crm/BackfillOpportunityUserFromAccountCommand.php\n delete mode 100644 app/Console/Commands/Elasticsearch/AsyncUpdateEsActivities.php\n create mode 100644 app/Console/Commands/IssueMcpTokenCommand.php\n create mode 100644 app/Http/Middleware/McpAuditMiddleware.php\n create mode 100644 app/Http/Middleware/McpTierMiddleware.php\n create mode 100644 app/Mcp/Contracts/McpCallRepositoryInterface.php\n create mode 100644 app/Mcp/DTO/ListCallsFilters.php\n create mode 100644 app/Mcp/Errors/McpError.php\n create mode 100644 app/Mcp/Repositories/McpActivityHydrator.php\n create mode 100644 app/Mcp/Repositories/McpCallRepository.php\n create mode 100644 app/Mcp/Repositories/McpElasticCallRepository.php\n create mode 100644 app/Mcp/Servers/JiminnyServer.php\n create mode 100644 app/Mcp/Tools/ListCallsTool.php\n create mode 100644 app/Services/Activity/Twilio/S3RecordingCredentialsService.php\n create mode 100644 config/mcp.php\n create mode 100644 database/migrations/2026_04_30_120000_create_mcp_audit_log_table.php\n create mode 100644 docs/mcp/explorer/explorer.html\n create mode 100644 docs/mcp/explorer/explorer.template.html\n create mode 100644 docs/mcp/explorer/generate.js\n create mode 100644 docs/mcp/explorer/tool-explorer-meta.json\n create mode 100644 docs/mcp/tools-list.json\n create mode 100644 docs/mcp/tools.md\n create mode 100644 front-end/src/components/shared/modals/EntityPickerModal/__tests__/useEntitiesCache.spec.ts\n create mode 100644 tests/Feature/Component/Nudge/ProcessOrganisationImmediateNudgesJobTest.php\n create mode 100644 tests/Feature/Mcp/IssueMcpTokenCommandTest.php\n create mode 100644 tests/Feature/Mcp/ListCallsToolElasticFeatureTest.php\n create mode 100644 tests/Feature/Mcp/ListCallsToolFeatureTest.php\n create mode 100644 tests/Feature/Mcp/McpTestHelpersTrait.php\n create mode 100644 tests/Stubs/SentryStub.php\n create mode 100644 tests/Unit/Component/AiAutomation/Services/CrmFillingEligibilityCheckerTest.php\n delete mode 100644 tests/Unit/Component/ES/ElasticSearchWorkerManagerTest.php\n create mode 100644 tests/Unit/Component/ES/Processor/Actions/LoadDocumentsActionTest.php\n delete mode 100644 tests/Unit/Component/ES/Processor/Traits/SkipActivityTraitTest.php\n delete mode 100644 tests/Unit/Component/ES/Worker/ActivityWorkerTest.php\n delete mode 100644 tests/Unit/Component/ES/Worker/EntityWorkerTest.php\n delete mode 100644 tests/Unit/Component/ES/Worker/WorkerAmountTest.php\n create mode 100644 tests/Unit/Component/ParticipantSpeech/Services/ParticipantSpeechesCreatorTest.php\n create mode 100644 tests/Unit/Http/Controllers/Kiosk/ActivityControllerTest.php\n create mode 100644 tests/Unit/Services/Activity/Twilio/S3RecordingCredentialsServiceTest.php\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20725-handle-HS-search-rate-limit) $ git status\nOn branch master\nYour branch is behind 'origin/master' by 114 commits, and can be fast-forwarded.\n (use \"git pull\" to update your local branch)\n\nChanges not staged for commit:\n (use \"git add <file>...\" to update what will be committed)\n (use \"git restore <file>...\" to discard changes in working directory)\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tmodified: .env.local\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tmodified: app/Component/SCIM/Constants.php\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tmodified: app/Component/SCIM/ScimProvisioning.php\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tmodified: app/Component/Twilio/Conference/ConferenceManager/SoftPhoneManager.php\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tmodified: app/Console/Commands/JiminnyDebugCommand.php\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tmodified: app/DTO/SCIM/AAD/Request/CoreUserRequest.php\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tmodified: app/DTO/SCIM/AAD/Response/CoreUser.php\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tmodified: app/Services/Telephony/TextMessagingService.php\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tmodified: config/logging.php\n\nUntracked files:\n (use \"git add <file>...\" to include in what will be committed)\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\t.env.nikilocal\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\t.env.other\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tWEBHOOK_FILTERING_IMPLEMENTATION.md\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tapp/Component/SCIM/Mutators/Attributes/User/RoleAttr.php\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tapp/Console/Commands/Crm/Hubspot/SimulateWebhooksCommand.php\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tapp/Console/Commands/Reports/CreateMockAskJiminnyReportResultCommand.php\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tapp/Rules/ListenerRoleCannotHaveAdminOrManagerPermissionRule.php\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tids.txt\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tpublic/favicon.ico\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\traw_sql_query.sql\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\ttests/Unit/Component/SCIM/Mutators/Attributes/User/RoleAttrTest.php\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\ttests/Unit/Policies/CanAccessAiReportsTest.php\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\ttests/Unit/Rules/ListenerRoleCannotHaveAdminOrManagerPermissionRuleTest.php\n\nno changes added to commit (use \"git add\" and/or \"git commit -a\")\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (master) $ git pull\nremote: Enumerating objects: 306, done.\nremote: Counting objects: 100% (299/299), done.\nremote: Compressing objects: 100% (183/183), done.\nremote: Total 306 (delta 213), reused 171 (delta 116), pack-reused 7 (from 1)\nReceiving objects: 100% (306/306), 80.12 KiB | 1000.00 KiB/s, done.\nResolving deltas: 100% (213/213), completed with 53 local objects.\nFrom github.com:jiminny/app\n 90bca4e4b2..5604af40cf master -> origin/master\n 4e7078fd8b..0b8343d179 JY-18091-upgrade-to-php-8-5 -> origin/JY-18091-upgrade-to-php-8-5\n 098eeaa087..d5a447e492 JY-20613-allow-owner-role-on-team-setup -> origin/JY-20613-allow-owner-role-on-team-setup\n c3a76ace91..af65249d0f JY-20749-user-can-view-recorded-meetings -> origin/JY-20749-user-can-view-recorded-meetings\n d94a285ae7..7ce96cb5fe JY-20808-low-priority-indexing-queue -> origin/JY-20808-low-priority-indexing-queue\n * [new branch] JY-20842-remove-partial-updater -> origin/JY-20842-remove-partial-updater\n * [new branch] JY-20920-fix-participant-flip -> origin/JY-20920-fix-participant-flip\n * [new branch] secfix/npm-20260519 -> origin/secfix/npm-20260519\nUpdating cb4ebf0c36..5604af40cf\nFast-forward\n app/Component/ES/ChunkSize.php | 54 +++++++++++++++++++\n app/Component/ES/Processor/DTOs/SelectionList.php | 4 +-\n app/Component/ES/Processor/TargetEntitiesSelector.php | 19 ++++---\n app/Component/MeetingBot/Service/ParticipantMatcher.php | 46 ++++++++++++----\n app/Exceptions/RateLimitException.php | 19 ++++++-\n app/Http/Middleware/McpTierMiddleware.php | 27 ++--------\n app/Jobs/Crm/MatchActivityCrmData.php | 47 ++++++++++++----\n app/Jobs/Middleware/HandleHubspotRateLimit.php | 42 +++++++++++++++\n app/Mcp/Servers/JiminnyServer.php | 2 +\n app/Mcp/Tools/GetMeTool.php | 157 +++++++++++++++++++++++++++++++++++++++++++++++++++++\n app/Models/Feature/FeatureEnum.php | 1 +\n app/Services/Activity/HubSpot/ProviderResolver.php | 4 +-\n app/Services/Activity/HubSpot/ProviderResolverInterface.php | 2 +-\n app/Services/Activity/HubSpot/Providers/Provider.php | 2 +-\n app/Services/Activity/HubSpot/Providers/ProviderKixie.php | 2 +-\n app/Services/Activity/HubSpot/Providers/ProviderOrum.php | 2 +-\n app/Services/Activity/HubSpot/Providers/ProviderTwilio.php | 2 +-\n app/Services/Activity/HubSpot/Providers/ProviderTwilioFlex.php | 5 +-\n app/Services/Activity/HubSpot/Service.php | 97 +++++++++++++++++++++++++++------\n app/Services/Crm/Hubspot/Client.php | 132 +++++++++++++++++++++++++++++++++++++++++++++\n app/Services/Crm/Hubspot/HubspotClientInterface.php | 15 ++++++\n app/Services/Crm/Hubspot/Pagination/HubspotPaginationService.php | 21 ++++----\n app/Services/Crm/Hubspot/Pagination/PaginationState.php | 2 +-\n database/migrations/2026_05_13_124153_create_mcp_feature_flag.php | 25 +++++++++\n tests/Feature/Mcp/GetMeToolFeatureTest.php | 140 +++++++++++++++++++++++++++++++++++++++++++++++\n tests/Feature/Mcp/ListCallsToolFeatureTest.php | 2 +-\n tests/Feature/Mcp/McpTestHelpersTrait.php | 19 ++++++-\n tests/Unit/Component/ES/ChunkSizeTest.php | 50 +++++++++++++++++\n tests/Unit/Component/ES/Processor/DTOs/SelectionListTest.php | 27 +++++++---\n tests/Unit/Component/ES/Processor/TargetEntitiesSelectorTest.php | 39 ++++++++------\n tests/Unit/Component/MeetingBot/Service/ParticipantMatcherTest.php | 68 ++++++++++++++++++++++-\n tests/Unit/Exceptions/RateLimitExceptionTest.php | 56 +++++++++++++++++++\n tests/Unit/Jobs/Crm/MatchActivityCrmDataTest.php | 8 +--\n tests/Unit/Jobs/Middleware/HandleHubspotRateLimitTest.php | 151 +++++++++++++++++++++++++++++++++++++++++++++++++++\n tests/Unit/Services/Activity/HubSpot/ServiceTest.php | 109 +++++++++++++++++++++++++++++++++++++\n tests/Unit/Services/Crm/Hubspot/ClientTest.php | 250 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++\n tests/Unit/Services/Crm/Hubspot/Pagination/HubspotPaginationServiceTest.php | 283 +++++++++++++++++++++---------------------------------------------------------------------------\n 37 files changed, 1587 insertions(+), 344 deletions(-)\n create mode 100644 app/Component/ES/ChunkSize.php\n create mode 100644 app/Jobs/Middleware/HandleHubspotRateLimit.php\n create mode 100644 app/Mcp/Tools/GetMeTool.php\n create mode 100644 database/migrations/2026_05_13_124153_create_mcp_feature_flag.php\n create mode 100644 tests/Feature/Mcp/GetMeToolFeatureTest.php\n create mode 100644 tests/Unit/Component/ES/ChunkSizeTest.php\n create mode 100644 tests/Unit/Exceptions/RateLimitExceptionTest.php\n create mode 100644 tests/Unit/Jobs/Middleware/HandleHubspotRateLimitTest.php\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (master) $ git pull\nAlready up to date.\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (master) $ co -b JY-20676-delete-report-related-objects\nSwitched to a new branch 'JY-20676-delete-report-related-objects'\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20676-delete-report-related-objects) $ csfix\ndocker exec -it docker_lamp_1 ./vendor/bin/php-cs-fixer fix --config=.php-cs-fixer.dist.php -v --using-cache=no --diff \nPHP CS Fixer 3.87.1 Alexander by Fabien Potencier, Dariusz Ruminski and contributors.\nPHP runtime: 8.3.30\nRunning analysis on 7 cores with 10 files per process.\nParallel runner is an experimental feature and may be unstable, use it at your own risk. Feedback highly appreciated!\nLoaded config default from \".php-cs-fixer.dist.php\".\n 5690/5690 [▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓] 100%\n\n 1) app/Console/Commands/JiminnyDebugCommand.php (statement_indentation, blank_line_before_statement)\n ---------- begin diff ----------\n--- /home/jiminny/app/Console/Commands/JiminnyDebugCommand.php\n+++ /home/jiminny/app/Console/Commands/JiminnyDebugCommand.php\n@@ -23,6 +23,7 @@\n \n if ($action === 'redis-set') {\n $this->testRedisSet();\n+\n return;\n }\n \n@@ -45,7 +46,7 @@\n $ttl = 60;\n \n try {\n-// $result = Redis::set($testKey, $testValue, 'EX', $ttl, 'NX');\n+ // $result = Redis::set($testKey, $testValue, 'EX', $ttl, 'NX');\n $result = Redis::set($testKey, $testValue, ['nx', 'ex' => $ttl]);\n \n if ($result) {\n\n ----------- end diff -----------\n\n\nFixed 1 of 5690 files in 50.673 seconds, 67.00 MB memory used\n\nWhat's next:\n Try Docker Debug for seamless, persistent debugging tools in any container or image → docker debug docker_lamp_1\n Learn more at https://docs.docker.com/go/debug-cli/\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20676-delete-report-related-objects) $ ;xd\ndocker exec -it docker_lamp_1 bash -c \"mv /usr/local/etc/php/conf.d/xdebug.ini ~/xdebug.ini\"\n\nWhat's next:\n Try Docker Debug for seamless, persistent debugging tools in any container or image → docker debug docker_lamp_1\n Learn more at https://docs.docker.com/go/debug-cli/\ndocker exec -it docker_lamp_1 supervisorctl restart all\njiminny-worker-processing-2:jiminny-worker-processing-2_00: stopped\njiminny-worker-processing-3:jiminny-worker-processing-3_00: stopped\njiminny-worker-processing-4:jiminny-worker-processing-4_00: stopped\njiminny-worker-processing-5:jiminny-worker-processing-5_00: stopped\njiminny-worker-processing-delayed:jiminny-worker-processing-delayed_00: stopped\nworker-analytics:worker-analytics_00: stopped\nworker-crm-update:worker-crm-update_00: stopped\nworker-download:worker-download_00: stopped\nworker-nudges:worker-nudges_00: stopped\nworker-calendar:worker-calendar_00: stopped\nworker-audio:worker-audio_00: stopped\njiminny-worker-processing-1:jiminny-worker-processing-1_00: stopped\nworker:worker_00: stopped\nworker-conferences:worker-conferences_00: stopped\nworker-crm-sync:worker-crm-sync_00: stopped\nworker-emails:worker-emails_00: stopped\nworker-es-update:worker-es-update_00: stopped\nartisan-schedule:artisan-schedule_00: stopped\nartisan-schedule:artisan-schedule_00: started\njiminny-worker-processing-1:jiminny-worker-processing-1_00: started\njiminny-worker-processing-2:jiminny-worker-processing-2_00: started\njiminny-worker-processing-3:jiminny-worker-processing-3_00: started\njiminny-worker-processing-4:jiminny-worker-processing-4_00: started\njiminny-worker-processing-5:jiminny-worker-processing-5_00: started\njiminny-worker-processing-delayed:jiminny-worker-processing-delayed_00: started\nworker:worker_00: started\nworker-analytics:worker-analytics_00: started\nworker-audio:worker-audio_00: started\nworker-calendar:worker-calendar_00: started\nworker-conferences:worker-conferences_00: started\nworker-crm-sync:worker-crm-sync_00: started\nworker-crm-update:worker-crm-update_00: started\nworker-download:worker-download_00: started\nworker-emails:worker-emails_00: started\nworker-es-update:worker-es-update_00: started\nworker-nudges:worker-nudges_00: started\n\nWhat's next:\n Try Docker Debug for seamless, persistent debugging tools in any container or image → docker debug docker_lamp_1\n Learn more at https://docs.docker.com/go/debug-cli/\ndocker exec -it docker_lamp_1 php -v\nPHP 8.3.30 (cli) (built: Mar 16 2026 22:32:32) (NTS)\nCopyright (c) The PHP Group\nZend Engine v4.3.30, Copyright (c) Zend Technologies\n with Zend OPcache v8.3.30, Copyright (c), by Zend Technologies\n\nWhat's next:\n Try Docker Debug for seamless, persistent debugging tools in any container or image → docker debug docker_lamp_1\n Learn more at https://docs.docker.com/go/debug-cli/\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20676-delete-report-related-objects) $ git status\nOn branch JY-20676-delete-report-related-objects\nChanges not staged for commit:\n (use \"git add <file>...\" to update what will be committed)\n (use \"git restore <file>...\" to discard changes in working directory)\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tmodified: .env.local\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tmodified: app/Console/Commands/JiminnyDebugCommand.php\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tmodified: config/logging.php\n\nUntracked files:\n (use \"git add <file>...\" to include in what will be committed)\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\t.env.nikilocal\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\t.env.other\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tWEBHOOK_FILTERING_IMPLEMENTATION.md\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tapp/Console/Commands/Crm/Hubspot/SimulateWebhooksCommand.php\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tapp/Console/Commands/Reports/CreateMockAskJiminnyReportResultCommand.php\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tids.txt\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tpublic/favicon.ico\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\traw_sql_query.sql\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\ttests/Unit/Policies/CanAccessAiReportsTest.php\n\nno changes added to commit (use \"git add\" and/or \"git commit -a\")\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20676-delete-report-related-objects) $ git push -u origin JY-20676-delete-report-related-objects\nEnumerating objects: 45, done.\nCounting objects: 100% (45/45), done.\nDelta compression using up to 8 threads\nCompressing objects: 100% (24/24), done.\nWriting objects: 100% (24/24), 3.62 KiB | 3.62 MiB/s, done.\nTotal 24 (delta 19), reused 0 (delta 0), pack-reused 0\nremote: Resolving deltas: 100% (19/19), completed with 19 local objects.\nremote: \nremote: Create a pull request for 'JY-20676-delete-report-related-objects' on GitHub by visiting:\nremote: https://github.com/jiminny/app/pull/new/JY-20676-delete-report-related-objects\nremote: \nTo github.com:jiminny/app.git\n * [new branch] JY-20676-delete-report-related-objects -> JY-20676-delete-report-related-objects\nbranch 'JY-20676-delete-report-related-objects' set up to track 'origin/JY-20676-delete-report-related-objects'.\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20676-delete-report-related-objects) $ csfix\ndocker exec -it docker_lamp_1 ./vendor/bin/php-cs-fixer fix --config=.php-cs-fixer.dist.php -v --using-cache=no --diff \nPHP CS Fixer 3.87.1 Alexander by Fabien Potencier, Dariusz Ruminski and contributors.\nPHP runtime: 8.3.30\nRunning analysis on 7 cores with 10 files per process.\nParallel runner is an experimental feature and may be unstable, use it at your own risk. Feedback highly appreciated!\nLoaded config default from \".php-cs-fixer.dist.php\".\n 5690/5690 [▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓] 100%\n\n 1) app/Http/Controllers/API/V2/AskJiminnyReportsController.php (blank_line_before_statement)\n ---------- begin diff ----------\n--- /home/jiminny/app/Http/Controllers/API/V2/AskJiminnyReportsController.php\n+++ /home/jiminny/app/Http/Controllers/API/V2/AskJiminnyReportsController.php\n@@ -140,6 +140,7 @@\n if ($enabled && $report->isAskJiminnyReport() && ! $report->canExecute()) {\n $error = 'This report is missing a saved search or prompt. ' .\n 'Edit the report to complete the setup before enabling it.';\n+\n return new JsonResponse(\n ['error' => $error],\n Response::HTTP_UNPROCESSABLE_ENTITY\n\n ----------- end diff -----------\n\n\nFixed 1 of 5690 files in 71.757 seconds, 60.00 MB memory used\n\nWhat's next:\n Try Docker Debug for seamless, persistent debugging tools in any container or image → docker debug docker_lamp_1\n Learn more at https://docs.docker.com/go/debug-cli/\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20676-delete-report-related-objects) $ git pull\nremote: Enumerating objects: 158, done.\nremote: Counting objects: 100% (103/103), done.\nremote: Compressing objects: 100% (37/37), done.\nremote: Total 158 (delta 80), reused 74 (delta 66), pack-reused 55 (from 3)\nReceiving objects: 100% (158/158), 80.59 KiB | 982.00 KiB/s, done.\nResolving deltas: 100% (85/85), completed with 45 local objects.\nFrom github.com:jiminny/app\n 02a33811ee..c6ce5e2440 JY-20676-delete-report-related-objects -> origin/JY-20676-delete-report-related-objects\n 7ce96cb5fe..6c59f04358 JY-20808-low-priority-indexing-queue -> origin/JY-20808-low-priority-indexing-queue\n 3906a9238a..2b5e6ea62b JY-20835-mcp-enable-users-to-get-a-list-of-deals-and-their-details -> origin/JY-20835-mcp-enable-users-to-get-a-list-of-deals-and-their-details\n 5604af40cf..ea3519f0e2 master -> origin/master\n * [new branch] switch-eu-assembly -> origin/switch-eu-assembly\nUpdating 02a33811ee..c6ce5e2440\nFast-forward\n app/Component/ES/ElasticSearchDocumentPartialUpdater.php | 48 ---\n app/Component/ParticipantSpeech/Services/ParticipantAttributionService.php | 4 +-\n app/Component/Settings/AutoScoring/Services/UpdateAutoScoreService.php | 20 +-\n app/Component/Transcription/Service/StorageService.php | 8 +-\n front-end/package.json | 2 +-\n front-end/src/components/DealInsights/Modals/AskAnythingModal.vue | 23 ++\n front-end/src/components/shared/AskAnything/AskAnythingPromptFormItem.vue | 2 +\n front-end/src/components/shared/AskAnything/AskAnythingSettingsDrawer.vue | 23 +-\n front-end/src/components/shared/AskAnything/__mocks__/AskAnythingSettingsDrawer.mocks.js | 1 +\n front-end/src/components/shared/AskAnything/__tests__/AskAnythingSettingsDrawer.spec.js | 135 ++++---\n front-end/src/components/shared/AskAnything/__tests__/__snapshots__/AskAnythingSettingsDrawer.spec.js.html | 1235 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++\n front-end/src/components/shared/AskAnything/__tests__/__snapshots__/AskAnythingSettingsDrawer.spec.js.snap | 1382 ----------------------------------------------------------------\n front-end/src/components/shared/AskAnything/prompts.js | 1 +\n front-end/src/components/shared/AskAnything/useAskAnything.js | 1 +\n front-end/yarn.lock | 8 +-\n tests/Unit/Component/ES/ElasticSearchDocumentPartialUpdaterTest.php | 42 --\n tests/Unit/Component/Settings/AutoScoring/Services/UpdateAutoScoreServiceTest.php | 86 ++--\n tests/Unit/Component/Transcription/Service/StorageServiceTest.php | 29 +-\n 18 files changed, 1448 insertions(+), 1602 deletions(-)\n delete mode 100644 app/Component/ES/ElasticSearchDocumentPartialUpdater.php\n create mode 100644 front-end/src/components/shared/AskAnything/__tests__/__snapshots__/AskAnythingSettingsDrawer.spec.js.html\n delete mode 100644 front-end/src/components/shared/AskAnything/__tests__/__snapshots__/AskAnythingSettingsDrawer.spec.js.snap\n delete mode 100644 tests/Unit/Component/ES/ElasticSearchDocumentPartialUpdaterTest.php\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20676-delete-report-related-objects) $ csfix\ndocker exec -it docker_lamp_1 ./vendor/bin/php-cs-fixer fix --config=.php-cs-fixer.dist.php -v --using-cache=no --diff \nPHP CS Fixer 3.87.1 Alexander by Fabien Potencier, Dariusz Ruminski and contributors.\nPHP runtime: 8.3.30\nRunning analysis on 7 cores with 10 files per process.\nParallel runner is an experimental feature and may be unstable, use it at your own risk. Feedback highly appreciated!\nLoaded config default from \".php-cs-fixer.dist.php\".\n 5688/5688 [▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓] 100%\n\n\nFixed 0 of 5688 files in 79.904 seconds, 60.00 MB memory used\n\nWhat's next:\n Try Docker Debug for seamless, persistent debugging tools in any container or image → docker debug docker_lamp_1\n Learn more at https://docs.docker.com/go/debug-cli/\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20676-delete-report-related-objects) $ csfix\ndocker exec -it docker_lamp_1 ./vendor/bin/php-cs-fixer fix --config=.php-cs-fixer.dist.php -v --using-cache=no --diff \nPHP CS Fixer 3.87.1 Alexander by Fabien Potencier, Dariusz Ruminski and contributors.\nPHP runtime: 8.3.30\nRunning analysis on 7 cores with 10 files per process.\nParallel runner is an experimental feature and may be unstable, use it at your own risk. Feedback highly appreciated!\nLoaded config default from \".php-cs-fixer.dist.php\".","is_focused":true},{"role":"AXRadioButton","text":"DOCKER","depth":2,"bounds":{"left":0.0,"top":0.05888889,"width":0.19826388,"height":0.026666667},"on_screen":true,"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.004166667,"top":0.06333333,"width":0.011111111,"height":0.017777778},"on_screen":true,"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"DEV (docker)","depth":2,"bounds":{"left":0.19826388,"top":0.05888889,"width":0.19826388,"height":0.026666667},"on_screen":true,"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.20243056,"top":0.06333333,"width":0.011111111,"height":0.017777778},"on_screen":true,"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"APP (docker)","depth":2,"bounds":{"left":0.39652777,"top":0.05888889,"width":0.19791667,"height":0.026666667},"on_screen":true,"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.40069443,"top":0.06333333,"width":0.011111111,"height":0.017777778},"on_screen":true,"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"screenpipe\"","depth":2,"bounds":{"left":0.59444445,"top":0.05888889,"width":0.19791667,"height":0.026666667},"on_screen":true,"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.5986111,"top":0.06333333,"width":0.011111111,"height":0.017777778},"on_screen":true,"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"-zsh","depth":2,"bounds":{"left":0.79236114,"top":0.05888889,"width":0.19791667,"height":0.026666667},"on_screen":true,"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.7965278,"top":0.06333333,"width":0.011111111,"height":0.017777778},"on_screen":true,"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"⌥⌘1","depth":1,"bounds":{"left":0.9618056,"top":0.032222223,"width":0.038194418,"height":0.018888889},"on_screen":true,"automation_id":"_NS:8","role_description":"text"},{"role":"AXStaticText","text":"APP (docker)","depth":1,"bounds":{"left":0.4722222,"top":0.033333335,"width":0.0625,"height":0.017777778},"on_screen":true,"role_description":"text"}]...
|
2802650493718167367
|
-1358120912881272742
|
idle
|
accessibility
|
NULL
|
Last login: Mon May 18 09:17:28 on ttys007
Poetry Last login: Mon May 18 09:17:28 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 (pipedrive-sdk-poc) $ co master
error: Your local changes to the following files would be overwritten by checkout:
PIPEDRIVE_V2_MIGRATION_TICKETS.md
Please commit your changes or stash them before you switch branches.
Aborting
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (pipedrive-sdk-poc) $ git pull
remote: Enumerating objects: 1047, done.
remote: Counting objects: 100% (832/832), done.
remote: Compressing objects: 100% (298/298), done.
remote: Total 1047 (delta 634), reused 596 (delta 534), pack-reused 215 (from 3)
Receiving objects: 100% (1047/1047), 353.16 KiB | 1.56 MiB/s, done.
Resolving deltas: 100% (687/687), completed with 107 local objects.
From github.com:jiminny/app
907c54896c..34656c53ed pipedrive-sdk-poc -> origin/pipedrive-sdk-poc
03325ec50f..4e7078fd8b JY-18091-upgrade-to-php-8-5 -> origin/JY-18091-upgrade-to-php-8-5
e7d231e163..bc6a3fce6b JY-20725-handle-HS-search-rate-limit -> origin/JY-20725-handle-HS-search-rate-limit
* [new branch] JY-20749-user-can-view-recorded-meetings -> origin/JY-20749-user-can-view-recorded-meetings
98ca281a04..e0351be069 JY-20808-low-priority-indexing-queue -> origin/JY-20808-low-priority-indexing-queue
569abb5149..3906a9238a JY-20835-mcp-enable-users-to-get-a-list-of-deals-and-their-details -> origin/JY-20835-mcp-enable-users-to-get-a-list-of-deals-and-their-details
ad6c2a86e8..50eb6afba9 JY-20846-mcp-enable-the-ai-to-know-details-about-the-user -> origin/JY-20846-mcp-enable-the-ai-to-know-details-about-the-user
* [new branch] JY-20893-chunk-control-per-update-target -> origin/JY-20893-chunk-control-per-update-target
31c62924a5..cb4ebf0c36 master -> origin/master
Updating 907c54896c..34656c53ed
Fast-forward
PIPEDRIVE_V2_MIGRATION_TICKETS.md | 52 ++++++++++++++++++++++++++++++++++++++++++++++++++++
1 file changed, 52 insertions(+)
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (pipedrive-sdk-poc) $ co master
M .env.local
M config/logging.php
Switched to branch 'master'
Your branch is behind 'origin/master' by 31 commits, and can be fast-forwarded.
(use "git pull" to update your local branch)
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (master) $ git pull
Updating 31c62924a5..cb4ebf0c36
Fast-forward
app/Component/ES/Processor/Traits/SelectEntityListTrait.php | 20 ------
app/Services/Calendar/CalendarActivityService.php | 46 +++++++++++++
app/Services/Calendar/Command/MapActivityData.php | 106 +++-------------------------
docs/mcp/explorer/explorer.html | 104 +++++++++++++++++++++++++---
docs/mcp/explorer/explorer.template.html | 102 ++++++++++++++++++++++++---
docs/mcp/tools-list.json | 373 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++-------
docs/mcp/tools.md | 117 +++++++++++++++++++++++--------
tests/Unit/Component/ES/AsyncUpdateElasticSearchTest.php | 16 +----
tests/Unit/Component/ES/Listeners/UpdateMultipleTargetsListenerTest.php | 10 ---
tests/Unit/Component/ES/Listeners/UpdateSingleTargetListenerTest.php | 6 --
tests/Unit/Component/ES/Processor/TargetEntitiesSelectorTest.php | 9 ---
tests/Unit/Component/ES/Processor/Traits/SelectEntityListTraitTest.php | 15 ++--
tests/Unit/Component/ES/UpdateProcessManagerTest.php | 2 -
tests/Unit/Services/Calendar/CalendarActivityServiceTest.php | 150 ++++++++++++++++++++++++++++++++++++++--
tests/Unit/Services/Calendar/Command/MapActivityDataTest.php | 78 ++-------------------
15 files changed, 832 insertions(+), 322 deletions(-)
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (master) $ co -b JY-20613-allow-owner-role-on-team-setup
Switched to a new branch 'JY-20613-allow-owner-role-on-team-setup'
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20613-allow-owner-role-on-team-setup) $ csfix
docker exec -it docker_lamp_1 ./vendor/bin/php-cs-fixer fix --config=.php-cs-fixer.dist.php -v --using-cache=no --diff
PHP CS Fixer 3.87.1 Alexander by Fabien Potencier, Dariusz Ruminski and contributors.
PHP runtime: 8.3.30
Running 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!
Loaded config default from ".php-cs-fixer.dist.php".
5682/5682 [▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓] 100%
Fixed 0 of 5682 files in 56.978 seconds, 67.00 MB memory used
What's next:
Try Docker Debug for seamless, persistent debugging tools in any container or image → docker debug docker_lamp_1
Learn more at [URL_WITH_CREDENTIALS] ~/jiminny/app (JY-20613-allow-owner-role-on-team-setup) $ csfix
docker exec -it docker_lamp_1 ./vendor/bin/php-cs-fixer fix --config=.php-cs-fixer.dist.php -v --using-cache=no --diff
PHP CS Fixer 3.87.1 Alexander by Fabien Potencier, Dariusz Ruminski and contributors.
PHP runtime: 8.3.30
Running 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!
Loaded config default from ".php-cs-fixer.dist.php".
5682/5682 [▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓] 100%
Fixed 0 of 5682 files in 49.910 seconds, 60.00 MB memory used
What's next:
Try Docker Debug for seamless, persistent debugging tools in any container or image → docker debug docker_lamp_1
Learn more at [URL_WITH_CREDENTIALS] ~/jiminny/app (JY-20613-allow-owner-role-on-team-setup) $ git pull
remote: Enumerating objects: 248, done.
remote: Counting objects: 100% (128/128), done.
remote: Compressing objects: 100% (23/23), done.
remote: Total 59 (delta 43), reused 44 (delta 33), pack-reused 0 (from 0)
Unpacking objects: 100% (59/59), 10.48 KiB | 228.00 KiB/s, done.
From github.com:jiminny/app
b7df560451..190239dfd4 JY-20613-allow-owner-role-on-team-setup -> origin/JY-20613-allow-owner-role-on-team-setup
e0351be069..d94a285ae7 JY-20808-low-priority-indexing-queue -> origin/JY-20808-low-priority-indexing-queue
* [new branch] JY-20920-fix-participant-matcher -> origin/JY-20920-fix-participant-matcher
cb4ebf0c36..90bca4e4b2 master -> origin/master
Merge made by the 'ort' strategy.
app/Component/ES/ChunkSize.php | 54 +++++++++++++++++++++++++++
app/Component/ES/Processor/DTOs/SelectionList.php | 4 +-
app/Component/ES/Processor/TargetEntitiesSelector.php | 19 ++++++----
app/Http/Middleware/McpTierMiddleware.php | 27 +++-----------
app/Mcp/Servers/JiminnyServer.php | 2 +
app/Mcp/Tools/GetMeTool.php | 157 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
app/Models/Feature/FeatureEnum.php | 1 +
database/migrations/2026_05_13_124153_create_mcp_feature_flag.php | 25 +++++++++++++
front-end/src/components/Settings/Kiosk/modals/EditTeamModal/EditTeamModal.vue | 52 ++++++++++++++++++--------
front-end/src/components/Settings/Kiosk/modals/EditTeamModal/__tests__/EditTeamModal.spec.js | 14 +++++++
tests/Feature/Mcp/GetMeToolFeatureTest.php | 140 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
tests/Feature/Mcp/ListCallsToolFeatureTest.php | 2 +-
tests/Feature/Mcp/McpTestHelpersTrait.php | 19 +++++++++-
tests/Unit/Component/ES/ChunkSizeTest.php | 50 +++++++++++++++++++++++++
tests/Unit/Component/ES/Processor/DTOs/SelectionListTest.php | 27 ++++++++++----
tests/Unit/Component/ES/Processor/TargetEntitiesSelectorTest.php | 39 +++++++++++---------
16 files changed, 557 insertions(+), 75 deletions(-)
create mode 100644 app/Component/ES/ChunkSize.php
create mode 100644 app/Mcp/Tools/GetMeTool.php
create mode 100644 database/migrations/2026_05_13_124153_create_mcp_feature_flag.php
create mode 100644 tests/Feature/Mcp/GetMeToolFeatureTest.php
create mode 100644 tests/Unit/Component/ES/ChunkSizeTest.php
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20613-allow-owner-role-on-team-setup) $ git push
Enumerating objects: 40, done.
Counting objects: 100% (34/34), done.
Delta compression using up to 8 threads
Compressing objects: 100% (18/18), done.
Writing objects: 100% (18/18), 1.58 KiB | 1.58 MiB/s, done.
Total 18 (delta 15), reused 0 (delta 0), pack-reused 0
remote: Resolving deltas: 100% (15/15), completed with 13 local objects.
To github.com:jiminny/app.git
190239dfd4..ec1b261264 JY-20613-allow-owner-role-on-team-setup -> JY-20613-allow-owner-role-on-team-setup
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20613-allow-owner-role-on-team-setup) $ gbr
* JY-20613-allow-owner-role-on-team-setup
pipedrive-sdk-poc
master
JY-20903-update_activity-stage-on-opportunity-change
JY-20904-fix-update-es-on-activity-command
JY-20891-improve-sms-text-relays
JY-20725-handle-HS-search-rate-limit
JY-20818-move-AJ-reports-to-separated-datadog-metric
JY-20773-fix-automated-reports-user-pilot-tracking
JY-20157-AJ-report-not-send-notification
JY-20508-notify-before-AJ-report-expiration
JY-20372-ai-reports-promotion-pages
JY-20352-sync-opportunities-without-a-local-owner-user-id-is-null
JY-20738-debug-AJ-tracking-UP
a
JY-18909-automated-reports-ask-jiminny
JY-20692-fix-integration-app-[API_KEY]
JY-20553-debug-crm-sync-delays
JY-20698-fix-SF-activity-types-on-new-playbook
JY-20543-AJ-report-tracking
JY-20384-handle-auto-sync-with-no-access-to-event-type
JY-20458-ask-jiminny-user-definitions
JY-19666-fix-import-contacts-account-association
JY-19666-HS-import-contacts-and-accounts-batch-job
JY-20458-Ask-Jiminny-Reports
JY-20200-batch-update-CRM-objects-Salesforce
JY-19666-HS-webhooks-add-contact-and-company
JY-20348-trigger-setup-DI-layout-on-team-creation
JY-20326-refactor-info-message-in-command
JY-20317-fix-auto-log-delay-issue-on-all-channels-disabled
JY-20312-remove-on-update-change-last-synced-at-crm-configurations
JY-20306-SF-skip-auto-sync-for-task-based-playbook
JY-20192-remove-deleted-team-from-saved-search-filters
JY-20197-import-opportunity-batch-job
JY-20293-enable-status-field-for-pipedrive-deals
JY-20191-remove-commands-interactive-prompts
JY-20118-change-default-sync-strategy
JY-20183-add-cache-on-auto-log-delay
JY-20197-add-import-opportunity-batch-job
20118-hs-opportunity-make-webhook-strategy-default
JY-20118-make-default-hs-opportunity-sync-strategy-webhook-based
JY-20196-handle-opportunity-without-note
JY-20118-improve-opportunity-import
JY-20189-handle-activity-search-on-deleted-groups
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20613-allow-owner-role-on-team-setup) $ co JY-20725-handle-HS-search-rate-limit
M .env.local
M config/logging.php
Switched to branch 'JY-20725-handle-HS-search-rate-limit'
Your branch is behind 'origin/JY-20725-handle-HS-search-rate-limit' by 439 commits, and can be fast-forwarded.
(use "git pull" to update your local branch)
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20725-handle-HS-search-rate-limit) $ git pull
Updating 0f3e438941..bc6a3fce6b
Fast-forward
.gitignore | 3 +-
.windsurfrules | 168 ++---
CLAUDE.md | 1 +
app/Component/ActivityAnalytics/Service/CalculateTalkTimeOffsetsFromTranscription.php | 24 +-
app/Component/AiActivityType/Services/AiActivityTypeEligibilityChecker.php | 28 +-
app/Component/AiAutomation/Actions/PrepareUpdateDtoAction.php | 32 +-
app/Component/AiAutomation/Services/CrmFillingEligibilityChecker.php | 47 ++
app/Component/AiAutomation/TestCrmAiPromptService.php | 14 +
app/Component/AiCallScoring/Services/AiCallScoringEligibilityChecker.php | 9 +
app/Component/ES/ElasticSearchDocumentPartialUpdater.php | 13 +-
app/Component/ES/ElasticSearchWorkerManager.php | 86 ---
app/Component/ES/Processor/Actions/LoadDocumentsAction.php | 80 +--
app/Component/ES/Processor/EntityQueryBuilder.php | 12 +-
app/Component/ES/Processor/TargetEntitiesSelector.php | 2 +-
app/Component/ES/Processor/Traits/SkipActivityTrait.php | 25 -
app/Component/ES/Repositories/EsResetActivityRepository.php | 11 +-
app/Component/ES/Worker/ActivityWorker.php | 73 --
app/Component/ES/Worker/EntityWorker.php | 44 --
app/Component/ES/Worker/WorkerAmount.php | 60 --
app/Component/ES/Worker/WorkerInterface.php | 15 -
app/Component/ElasticSearch/Contract/Searchable.php | 4 +
app/Component/Encoding/Job/AnalyzeTrackChannelsJob.php | 20 +-
app/Component/Encoding/Service/GenerateSpeechFromSilenceService.php | 85 ++-
app/Component/FFMpeg/Services/GetSpeechIntervalsService.php | 18 +-
app/Component/LanguageDetection/Services/FindSpeechTimeService.php | 22 +-
app/Component/Nudge/Job/ProcessOrganisationImmediateNudgesJob.php | 218 +++++-
app/Component/ParagraphBreaker/Services/TranscriptionParagraphsService.php | 4 +
app/Component/ParticipantSpeech/Services/ParticipantSpeechesCreator.php | 33 +
app/Component/ParticipantSpeech/Services/ParticipantSpeechesDeleter.php | 15 +
app/Component/ParticipantSpeech/Services/ParticipantSpeechesProvider.php | 51 +-
app/Component/ParticipantSpeech/Services/ParticipantSpeechesUploader.php | 36 +
app/Component/ProphetAi/Exceptions/InsufficientTranscriptException.php | 11 +
app/Component/Transcription/DTO/Http/Transcription/AssemblyAI/AssemblyAI/NoAssemblyIdException.php | 11 +
app/Component/Transcription/DTO/Http/Transcription/AssemblyAI/AssemblyAI/SuccessfulResponse.php | 6 +
app/Component/Transcription/DTO/Http/Transcription/TranscriptionIsNotCorrectFormatException.php | 11 +
app/Component/Transcription/Diarization/Services/GetNormalizedParticipantSpeechesService.php | 23 +-
app/Component/Transcription/Diarization/Source/MeetingBotSource.php | 16 +-
app/Component/Transcription/TranscriptionProcessor/TranscriptionProcessor.php | 3 +
app/Console/Commands/Activities/ActivityHardDeleteCommand.php | 4 +-
app/Console/Commands/Activities/Copy.php | 2 +
app/Console/Commands/Activities/SetupIntegration/TwilioSetS3RecordingCredentialsCommand.php | 119 ++++
app/Console/Commands/Activities/UpdateActivityElasticSearchDocumentCommand.php | 10 +-
app/Console/Commands/Crm/BackfillOpportunityUserFromAccountCommand.php | 126 ++++
app/Console/Commands/Elasticsearch/AsyncUpdateEsActivities.php | 19 -
app/Console/Commands/Elasticsearch/AsyncUpdateEsEntities.php | 50 +-
app/Console/Commands/Elasticsearch/ResetAsyncElasticSearchCommand.php | 30 +-
app/Console/Commands/GeckoExport/GeckoExportParticipantSpeechesCommand.php | 14 +-
app/Console/Commands/IssueMcpTokenCommand.php | 84 +++
app/Console/Commands/JiminnyDebugCommand.php | 7 +-
app/Console/Commands/Tracks/CleanupActivityTracksCommand.php | 2 +-
app/Console/Kernel.php | 6 +-
app/Contracts/Services/Calendar/CalendarTrait.php | 80 ++-
app/Events/AutomatedReports/AutomatedReportGenerated.php | 3 +
app/Http/Controllers/API/AiCallScoring/AiScorecardController.php | 7 +-
app/Http/Controllers/API/TeamAiAutomationController.php | 8 +
app/Http/Controllers/CustomerApi/CustomerApiController.php | 4 +-
app/Http/Controllers/Kiosk/ActivityController.php | 58 +-
app/Http/Controllers/Settings/PlaybookController.php | 15 +-
app/Http/Kernel.php | 23 +
app/Http/Middleware/McpAuditMiddleware.php | 156 ++++
app/Http/Middleware/McpTierMiddleware.php | 54 ++
app/Http/Requests/API/V2/ZapierUploadActivityRequest.php | 28 +-
app/Jobs/Activity/Import/ImportTwilioVideoSpeechesJob.php | 25 +-
app/Jobs/Activity/Import/IsActivityReadyForProcessingJob.php | 10 +-
app/Jobs/Calendar/SetupCalendarSync.php | 21 +-
app/Jobs/ImportRemoteTrackJob.php | 96 ++-
app/Jobs/Mailbox/EmailTextRelay.php | 15 +-
app/Mcp/Contracts/McpCallRepositoryInterface.php | 30 +
app/Mcp/DTO/ListCallsFilters.php | 29 +
app/Mcp/Errors/McpError.php | 123 ++++
app/Mcp/Repositories/McpActivityHydrator.php | 145 ++++
app/Mcp/Repositories/McpCallRepository.php | 84 +++
app/Mcp/Repositories/McpElasticCallRepository.php | 171 +++++
app/Mcp/Servers/JiminnyServer.php | 38 +
app/Mcp/Tools/ListCallsTool.php | 205 ++++++
app/Models/Activity.php | 10 +-
app/Models/Activity/Transcription.php | 17 +-
app/Models/ElasticSearch/OpportunityElasticSearchTrait.php | 5 +
app/Models/Participant.php | 1 +
app/Providers/AppServiceProvider.php | 22 +
app/Repositories/Crm/ContactRepository.php | 69 +-
app/Repositories/ParticipantSpeechRepository.php | 13 +-
app/Services/Activity/ParticipantsService.php | 19 +-
app/Services/Activity/Twilio/S3RecordingCredentialsService.php | 82 +++
app/Services/ActivityService.php | 21 +-
app/Services/Calendar/CalendarActivityService.php | 46 ++
app/Services/Calendar/Command/ImportParticipants.php | 1 +
app/Services/Calendar/Command/MapActivityData.php | 106 +--
app/Services/Calendar/GoogleCalendarService.php | 12 +-
app/Services/Crm/Close/Processor/OpportunityProcessor.php | 2 +-
app/Services/Crm/Close/Service.php | 22 +-
app/Services/Crm/Copper/Service.php | 12 +-
app/Services/Crm/Hubspot/Service.php | 154 +++-
app/Services/Crm/Hubspot/ServiceTraits/OpportunitySyncTrait.php | 88 ++-
app/Services/Crm/IntegrationApp/ServiceTraits/SyncCrmEntitiesTrait.php | 22 +-
app/Services/Crm/Pipedrive/Service.php | 17 +-
app/Services/Crm/Salesforce/Service.php | 42 +-
app/Services/Mail/Office/EmailApiClient.php | 129 +---
app/Services/RecallAI/Commands/ScheduleBotCommand.php | 39 +-
app/Services/RecallAI/RecallAIService.php | 22 +-
composer.json | 3 +-
composer.lock | 87 ++-
config/mcp.php | 23 +
database/migrations/2026_04_30_120000_create_mcp_audit_log_table.php | 36 +
docs/mcp/explorer/explorer.html | 697 ++++++++++++++++++
docs/mcp/explorer/explorer.template.html | 697 ++++++++++++++++++
docs/mcp/explorer/generate.js | 215 ++++++
docs/mcp/explorer/tool-explorer-meta.json | 11 +
docs/mcp/tools-list.json | 2536 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
docs/mcp/tools.md | 621 ++++++++++++++++
front-end/package.json | 4 +-
front-end/src/components/Settings/OrgSettings/AiAutomation/CrmFilling/TemplateFieldForm.vue | 28 +-
front-end/src/components/Settings/OrgSettings/Playbooks/AddEditPlaybook.vue | 10 +
front-end/src/components/playback/comments/ActivityComment.less | 10 +-
front-end/src/components/shared/PromptTester/PromptTester.vue | 12 +-
front-end/src/components/shared/__tests__/PromptTester.spec.js | 35 +
front-end/src/components/shared/modals/EntityPickerModal/__tests__/useEntitiesCache.spec.ts | 37 +
front-end/src/components/shared/modals/EntityPickerModal/useEntitiesCache.ts | 9 +
front-end/yarn.lock | 16 +-
phpstan-baseline.neon | 50 --
routes/api.php | 11 +
sonar-project.properties | 91 ++-
tests/Feature/Component/Nudge/ProcessOrganisationImmediateNudgesJobTest.php | 534 ++++++++++++++
tests/Feature/Jobs/ImportRemoteTrackJobTest.php | 283 +++++++-
tests/Feature/Mcp/IssueMcpTokenCommandTest.php | 53 ++
tests/Feature/Mcp/ListCallsToolElasticFeatureTest.php | 155 ++++
tests/Feature/Mcp/ListCallsToolFeatureTest.php | 352 ++++++++++
tests/Feature/Mcp/McpTestHelpersTrait.php | 77 ++
tests/Feature/Services/Team/TeamDeleteHandlers/Retention/RetentionRepositoryHandlerTest.php | 1 +
tests/Stubs/SentryStub.php | 18 +
tests/Unit/Component/ActivityAnalytics/Service/CalculateTalkTimeOffsetFromTranscriptionTest.php | 28 +-
tests/Unit/Component/AiActivityType/Services/AiActivityTypeEligibilityCheckerTest.php | 103 ++-
tests/Unit/Component/AiAutomation/Actions/PrepareUpdateDtoActionTest.php | 91 +++
tests/Unit/Component/AiAutomation/Services/CrmFillingEligibilityCheckerTest.php | 124 ++++
tests/Unit/Component/AiAutomation/TestCrmAiPromptServiceTest.php | 67 +-
tests/Unit/Component/AiCallScoring/Services/AiCallScoringEligibilityCheckerTest.php | 55 ++
tests/Unit/Component/ES/ElasticSearchWorkerManagerTest.php | 135 ----
tests/Unit/Component/ES/Processor/Actions/LoadDocumentsActionTest.php | 220 ++++++
tests/Unit/Component/ES/Processor/EntityQueryBuilderTest.php | 21 +-
tests/Unit/Component/ES/Processor/Traits/SkipActivityTraitTest.php | 51 --
tests/Unit/Component/ES/Worker/ActivityWorkerTest.php | 174 -----
tests/Unit/Component/ES/Worker/EntityWorkerTest.php | 97 ---
tests/Unit/Component/ES/Worker/WorkerAmountTest.php | 116 ---
tests/Unit/Component/Encoding/Job/AnalyzeTrackChannelsJobTest.php | 52 +-
tests/Unit/Component/Encoding/Service/GenerateSpeechFromSilenceServiceTest.php | 171 ++---
tests/Unit/Component/FFMpeg/Services/GetSpeechIntervalsTest.php | 36 +-
tests/Unit/Component/LanguageDetection/Services/FindSpeechTimeServiceTest.php | 20 +-
tests/Unit/Component/MobileSettings/MobileSettingsControllerTest.php | 5 +-
tests/Unit/Component/ParticipantSpeech/Services/ParticipantSpeechesCreatorTest.php | 75 ++
tests/Unit/Component/ParticipantSpeech/Services/ParticipantSpeechesDeleterTest.php | 63 ++
tests/Unit/Component/ParticipantSpeech/Services/ParticipantSpeechesProviderTest.php | 134 ++++
tests/Unit/Component/ParticipantSpeech/Services/ParticipantSpeechesUploaderTest.php | 57 ++
tests/Unit/Component/Transcription/Diarization/Services/GetNormalizedParticipantSpeechesServiceTest.php | 51 +-
tests/Unit/Component/Transcription/Diarization/Source/MeetingBotSourceTest.php | 29 +-
tests/Unit/Contracts/Services/Calendar/CalendarTraitTest.php | 58 +-
tests/Unit/Http/Controllers/Kiosk/ActivityControllerTest.php | 159 +++++
tests/Unit/Jobs/Activity/Import/ImportTwilioVideoSpeechesJobTest.php | 22 +-
tests/Unit/Jobs/Activity/Import/IsActivityReadyForProcessingJobTest.php | 26 +-
tests/Unit/Jobs/Calendar/SetupCalendarSyncTest.php | 25 -
tests/Unit/Services/Activity/ParticipantsServiceTest.php | 12 +-
tests/Unit/Services/Activity/Twilio/S3RecordingCredentialsServiceTest.php | 180 +++++
tests/Unit/Services/ActivityServiceTest.php | 132 ++++
tests/Unit/Services/Calendar/CalendarActivityServiceTest.php | 150 +++-
tests/Unit/Services/Calendar/Command/ImportParticipantsTest.php | 6 +-
tests/Unit/Services/Calendar/Command/MapActivityDataTest.php | 78 +-
tests/Unit/Services/Calendar/GoogleCalendarServiceTest.php | 116 +++
tests/Unit/Services/Crm/Close/ServiceTest.php | 165 +++++
tests/Unit/Services/Crm/Hubspot/ServiceTest.php | 272 ++++++-
tests/Unit/Services/Crm/Hubspot/ServiceTraits/OpportunitySyncTest.php | 25 +-
tests/Unit/Services/Crm/Hubspot/ServiceTraits/OpportunitySyncTraitMatchActivitiesTest.php | 3 +-
tests/Unit/Services/Crm/IntegrationApp/ServiceTraits/SyncCrmEntitiesTraitOpportunitiesTest.php | 40 ++
tests/Unit/Services/Crm/Pipedrive/ImportOpportunityMatchActivitiesTest.php | 2 +
tests/Unit/Services/Crm/Salesforce/ServiceTest.php | 139 ++++
tests/Unit/Services/Mail/Office/EmailApiClientTest.php | 195 ++---
tests/Unit/Services/RecallAI/RecallAIServiceTest.php | 24 +-
175 files changed, 12562 insertions(+), 2162 deletions(-)
create mode 120000 CLAUDE.md
create mode 100644 app/Component/AiAutomation/Services/CrmFillingEligibilityChecker.php
delete mode 100644 app/Component/ES/ElasticSearchWorkerManager.php
delete mode 100644 app/Component/ES/Processor/Traits/SkipActivityTrait.php
delete mode 100644 app/Component/ES/Worker/ActivityWorker.php
delete mode 100644 app/Component/ES/Worker/EntityWorker.php
delete mode 100644 app/Component/ES/Worker/WorkerAmount.php
delete mode 100644 app/Component/ES/Worker/WorkerInterface.php
create mode 100644 app/Component/ProphetAi/Exceptions/InsufficientTranscriptException.php
create mode 100644 app/Component/Transcription/DTO/Http/Transcription/AssemblyAI/AssemblyAI/NoAssemblyIdException.php
create mode 100644 app/Component/Transcription/DTO/Http/Transcription/TranscriptionIsNotCorrectFormatException.php
create mode 100644 app/Console/Commands/Activities/SetupIntegration/TwilioSetS3RecordingCredentialsCommand.php
create mode 100644 app/Console/Commands/Crm/BackfillOpportunityUserFromAccountCommand.php
delete mode 100644 app/Console/Commands/Elasticsearch/AsyncUpdateEsActivities.php
create mode 100644 app/Console/Commands/IssueMcpTokenCommand.php
create mode 100644 app/Http/Middleware/McpAuditMiddleware.php
create mode 100644 app/Http/Middleware/McpTierMiddleware.php
create mode 100644 app/Mcp/Contracts/McpCallRepositoryInterface.php
create mode 100644 app/Mcp/DTO/ListCallsFilters.php
create mode 100644 app/Mcp/Errors/McpError.php
create mode 100644 app/Mcp/Repositories/McpActivityHydrator.php
create mode 100644 app/Mcp/Repositories/McpCallRepository.php
create mode 100644 app/Mcp/Repositories/McpElasticCallRepository.php
create mode 100644 app/Mcp/Servers/JiminnyServer.php
create mode 100644 app/Mcp/Tools/ListCallsTool.php
create mode 100644 app/Services/Activity/Twilio/S3RecordingCredentialsService.php
create mode 100644 config/mcp.php
create mode 100644 database/migrations/2026_04_30_120000_create_mcp_audit_log_table.php
create mode 100644 docs/mcp/explorer/explorer.html
create mode 100644 docs/mcp/explorer/explorer.template.html
create mode 100644 docs/mcp/explorer/generate.js
create mode 100644 docs/mcp/explorer/tool-explorer-meta.json
create mode 100644 docs/mcp/tools-list.json
create mode 100644 docs/mcp/tools.md
create mode 100644 front-end/src/components/shared/modals/EntityPickerModal/__tests__/useEntitiesCache.spec.ts
create mode 100644 tests/Feature/Component/Nudge/ProcessOrganisationImmediateNudgesJobTest.php
create mode 100644 tests/Feature/Mcp/IssueMcpTokenCommandTest.php
create mode 100644 tests/Feature/Mcp/ListCallsToolElasticFeatureTest.php
create mode 100644 tests/Feature/Mcp/ListCallsToolFeatureTest.php
create mode 100644 tests/Feature/Mcp/McpTestHelpersTrait.php
create mode 100644 tests/Stubs/SentryStub.php
create mode 100644 tests/Unit/Component/AiAutomation/Services/CrmFillingEligibilityCheckerTest.php
delete mode 100644 tests/Unit/Component/ES/ElasticSearchWorkerManagerTest.php
create mode 100644 tests/Unit/Component/ES/Processor/Actions/LoadDocumentsActionTest.php
delete mode 100644 tests/Unit/Component/ES/Processor/Traits/SkipActivityTraitTest.php
delete mode 100644 tests/Unit/Component/ES/Worker/ActivityWorkerTest.php
delete mode 100644 tests/Unit/Component/ES/Worker/EntityWorkerTest.php
delete mode 100644 tests/Unit/Component/ES/Worker/WorkerAmountTest.php
create mode 100644 tests/Unit/Component/ParticipantSpeech/Services/ParticipantSpeechesCreatorTest.php
create mode 100644 tests/Unit/Http/Controllers/Kiosk/ActivityControllerTest.php
create mode 100644 tests/Unit/Services/Activity/Twilio/S3RecordingCredentialsServiceTest.php
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20725-handle-HS-search-rate-limit) $ git status
On branch master
Your branch is behind 'origin/master' by 114 commits, and can be fast-forwarded.
(use "git pull" to update your local branch)
Changes not staged for commit:
(use "git add <file>..." to update what will be committed)
(use "git restore <file>..." to discard changes in working directory)
modified: .env.local
modified: app/Component/SCIM/Constants.php
modified: app/Component/SCIM/ScimProvisioning.php
modified: app/Component/Twilio/Conference/ConferenceManager/SoftPhoneManager.php
modified: app/Console/Commands/JiminnyDebugCommand.php
modified: app/DTO/SCIM/AAD/Request/CoreUserRequest.php
modified: app/DTO/SCIM/AAD/Response/CoreUser.php
modified: app/Services/Telephony/TextMessagingService.php
modified: config/logging.php
Untracked files:
(use "git add <file>..." to include in what will be committed)
.env.nikilocal
.env.other
WEBHOOK_FILTERING_IMPLEMENTATION.md
app/Component/SCIM/Mutators/Attributes/User/RoleAttr.php
app/Console/Commands/Crm/Hubspot/SimulateWebhooksCommand.php
app/Console/Commands/Reports/CreateMockAskJiminnyReportResultCommand.php
app/Rules/ListenerRoleCannotHaveAdminOrManagerPermissionRule.php
ids.txt
public/favicon.ico
raw_sql_query.sql
tests/Unit/Component/SCIM/Mutators/Attributes/User/RoleAttrTest.php
tests/Unit/Policies/CanAccessAiReportsTest.php
tests/Unit/Rules/ListenerRoleCannotHaveAdminOrManagerPermissionRuleTest.php
no changes added to commit (use "git add" and/or "git commit -a")
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (master) $ git pull
remote: Enumerating objects: 306, done.
remote: Counting objects: 100% (299/299), done.
remote: Compressing objects: 100% (183/183), done.
remote: Total 306 (delta 213), reused 171 (delta 116), pack-reused 7 (from 1)
Receiving objects: 100% (306/306), 80.12 KiB | 1000.00 KiB/s, done.
Resolving deltas: 100% (213/213), completed with 53 local objects.
From github.com:jiminny/app
90bca4e4b2..5604af40cf master -> origin/master
4e7078fd8b..0b8343d179 JY-18091-upgrade-to-php-8-5 -> origin/JY-18091-upgrade-to-php-8-5
098eeaa087..d5a447e492 JY-20613-allow-owner-role-on-team-setup -> origin/JY-20613-allow-owner-role-on-team-setup
c3a76ace91..af65249d0f JY-20749-user-can-view-recorded-meetings -> origin/JY-20749-user-can-view-recorded-meetings
d94a285ae7..7ce96cb5fe JY-20808-low-priority-indexing-queue -> origin/JY-20808-low-priority-indexing-queue
* [new branch] JY-20842-remove-partial-updater -> origin/JY-20842-remove-partial-updater
* [new branch] JY-20920-fix-participant-flip -> origin/JY-20920-fix-participant-flip
* [new branch] secfix/npm-20260519 -> origin/secfix/npm-20260519
Updating cb4ebf0c36..5604af40cf
Fast-forward
app/Component/ES/ChunkSize.php | 54 +++++++++++++++++++
app/Component/ES/Processor/DTOs/SelectionList.php | 4 +-
app/Component/ES/Processor/TargetEntitiesSelector.php | 19 ++++---
app/Component/MeetingBot/Service/ParticipantMatcher.php | 46 ++++++++++++----
app/Exceptions/RateLimitException.php | 19 ++++++-
app/Http/Middleware/McpTierMiddleware.php | 27 ++--------
app/Jobs/Crm/MatchActivityCrmData.php | 47 ++++++++++++----
app/Jobs/Middleware/HandleHubspotRateLimit.php | 42 +++++++++++++++
app/Mcp/Servers/JiminnyServer.php | 2 +
app/Mcp/Tools/GetMeTool.php | 157 +++++++++++++++++++++++++++++++++++++++++++++++++++++
app/Models/Feature/FeatureEnum.php | 1 +
app/Services/Activity/HubSpot/ProviderResolver.php | 4 +-
app/Services/Activity/HubSpot/ProviderResolverInterface.php | 2 +-
app/Services/Activity/HubSpot/Providers/Provider.php | 2 +-
app/Services/Activity/HubSpot/Providers/ProviderKixie.php | 2 +-
app/Services/Activity/HubSpot/Providers/ProviderOrum.php | 2 +-
app/Services/Activity/HubSpot/Providers/ProviderTwilio.php | 2 +-
app/Services/Activity/HubSpot/Providers/ProviderTwilioFlex.php | 5 +-
app/Services/Activity/HubSpot/Service.php | 97 +++++++++++++++++++++++++++------
app/Services/Crm/Hubspot/Client.php | 132 +++++++++++++++++++++++++++++++++++++++++++++
app/Services/Crm/Hubspot/HubspotClientInterface.php | 15 ++++++
app/Services/Crm/Hubspot/Pagination/HubspotPaginationService.php | 21 ++++----
app/Services/Crm/Hubspot/Pagination/PaginationState.php | 2 +-
database/migrations/2026_05_13_124153_create_mcp_feature_flag.php | 25 +++++++++
tests/Feature/Mcp/GetMeToolFeatureTest.php | 140 +++++++++++++++++++++++++++++++++++++++++++++++
tests/Feature/Mcp/ListCallsToolFeatureTest.php | 2 +-
tests/Feature/Mcp/McpTestHelpersTrait.php | 19 ++++++-
tests/Unit/Component/ES/ChunkSizeTest.php | 50 +++++++++++++++++
tests/Unit/Component/ES/Processor/DTOs/SelectionListTest.php | 27 +++++++---
tests/Unit/Component/ES/Processor/TargetEntitiesSelectorTest.php | 39 ++++++++------
tests/Unit/Component/MeetingBot/Service/ParticipantMatcherTest.php | 68 ++++++++++++++++++++++-
tests/Unit/Exceptions/RateLimitExceptionTest.php | 56 +++++++++++++++++++
tests/Unit/Jobs/Crm/MatchActivityCrmDataTest.php | 8 +--
tests/Unit/Jobs/Middleware/HandleHubspotRateLimitTest.php | 151 +++++++++++++++++++++++++++++++++++++++++++++++++++
tests/Unit/Services/Activity/HubSpot/ServiceTest.php | 109 +++++++++++++++++++++++++++++++++++++
tests/Unit/Services/Crm/Hubspot/ClientTest.php | 250 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
tests/Unit/Services/Crm/Hubspot/Pagination/HubspotPaginationServiceTest.php | 283 +++++++++++++++++++++---------------------------------------------------------------------------
37 files changed, 1587 insertions(+), 344 deletions(-)
create mode 100644 app/Component/ES/ChunkSize.php
create mode 100644 app/Jobs/Middleware/HandleHubspotRateLimit.php
create mode 100644 app/Mcp/Tools/GetMeTool.php
create mode 100644 database/migrations/2026_05_13_124153_create_mcp_feature_flag.php
create mode 100644 tests/Feature/Mcp/GetMeToolFeatureTest.php
create mode 100644 tests/Unit/Component/ES/ChunkSizeTest.php
create mode 100644 tests/Unit/Exceptions/RateLimitExceptionTest.php
create mode 100644 tests/Unit/Jobs/Middleware/HandleHubspotRateLimitTest.php
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (master) $ git pull
Already up to date.
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (master) $ co -b JY-20676-delete-report-related-objects
Switched to a new branch 'JY-20676-delete-report-related-objects'
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20676-delete-report-related-objects) $ csfix
docker exec -it docker_lamp_1 ./vendor/bin/php-cs-fixer fix --config=.php-cs-fixer.dist.php -v --using-cache=no --diff
PHP CS Fixer 3.87.1 Alexander by Fabien Potencier, Dariusz Ruminski and contributors.
PHP runtime: 8.3.30
Running 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!
Loaded config default from ".php-cs-fixer.dist.php".
5690/5690 [▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓] 100%
1) app/Console/Commands/JiminnyDebugCommand.php (statement_indentation, blank_line_before_statement)
---------- begin diff ----------
--- /home/jiminny/app/Console/Commands/JiminnyDebugCommand.php
+++ /home/jiminny/app/Console/Commands/JiminnyDebugCommand.php
@@ -23,6 +23,7 @@
if ($action === 'redis-set') {
$this->testRedisSet();
+
return;
}
@@ -45,7 +46,7 @@
$ttl = 60;
try {
-// $result = Redis::set($testKey, $testValue, 'EX', $ttl, 'NX');
+ // $result = Redis::set($testKey, $testValue, 'EX', $ttl, 'NX');
$result = Redis::set($testKey, $testValue, ['nx', 'ex' => $ttl]);
if ($result) {
----------- end diff -----------
Fixed 1 of 5690 files i...
|
58093
|
NULL
|
NULL
|
NULL
|
|
58114
|
2047
|
8
|
2026-05-19T11:40:31.879385+00:00
|
/Users/lukas/.screenpipe/data/data/2026-05-19/1779 /Users/lukas/.screenpipe/data/data/2026-05-19/1779190831879_m2.jpg...
|
iTerm2
|
APP (docker)
|
1
|
NULL
|
monitor_2
|
NULL
|
NULL
|
NULL
|
NULL
|
Last login: Mon May 18 09:17:28 on ttys007
Poetry Last login: Mon May 18 09:17:28 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 (pipedrive-sdk-poc) $ co master
error: Your local changes to the following files would be overwritten by checkout:
PIPEDRIVE_V2_MIGRATION_TICKETS.md
Please commit your changes or stash them before you switch branches.
Aborting
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (pipedrive-sdk-poc) $ git pull
remote: Enumerating objects: 1047, done.
remote: Counting objects: 100% (832/832), done.
remote: Compressing objects: 100% (298/298), done.
remote: Total 1047 (delta 634), reused 596 (delta 534), pack-reused 215 (from 3)
Receiving objects: 100% (1047/1047), 353.16 KiB | 1.56 MiB/s, done.
Resolving deltas: 100% (687/687), completed with 107 local objects.
From github.com:jiminny/app
907c54896c..34656c53ed pipedrive-sdk-poc -> origin/pipedrive-sdk-poc
03325ec50f..4e7078fd8b JY-18091-upgrade-to-php-8-5 -> origin/JY-18091-upgrade-to-php-8-5
e7d231e163..bc6a3fce6b JY-20725-handle-HS-search-rate-limit -> origin/JY-20725-handle-HS-search-rate-limit
* [new branch] JY-20749-user-can-view-recorded-meetings -> origin/JY-20749-user-can-view-recorded-meetings
98ca281a04..e0351be069 JY-20808-low-priority-indexing-queue -> origin/JY-20808-low-priority-indexing-queue
569abb5149..3906a9238a JY-20835-mcp-enable-users-to-get-a-list-of-deals-and-their-details -> origin/JY-20835-mcp-enable-users-to-get-a-list-of-deals-and-their-details
ad6c2a86e8..50eb6afba9 JY-20846-mcp-enable-the-ai-to-know-details-about-the-user -> origin/JY-20846-mcp-enable-the-ai-to-know-details-about-the-user
* [new branch] JY-20893-chunk-control-per-update-target -> origin/JY-20893-chunk-control-per-update-target
31c62924a5..cb4ebf0c36 master -> origin/master
Updating 907c54896c..34656c53ed
Fast-forward
PIPEDRIVE_V2_MIGRATION_TICKETS.md | 52 ++++++++++++++++++++++++++++++++++++++++++++++++++++
1 file changed, 52 insertions(+)
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (pipedrive-sdk-poc) $ co master
M .env.local
M config/logging.php
Switched to branch 'master'
Your branch is behind 'origin/master' by 31 commits, and can be fast-forwarded.
(use "git pull" to update your local branch)
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (master) $ git pull
Updating 31c62924a5..cb4ebf0c36
Fast-forward
app/Component/ES/Processor/Traits/SelectEntityListTrait.php | 20 ------
app/Services/Calendar/CalendarActivityService.php | 46 +++++++++++++
app/Services/Calendar/Command/MapActivityData.php | 106 +++-------------------------
docs/mcp/explorer/explorer.html | 104 +++++++++++++++++++++++++---
docs/mcp/explorer/explorer.template.html | 102 ++++++++++++++++++++++++---
docs/mcp/tools-list.json | 373 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++-------
docs/mcp/tools.md | 117 +++++++++++++++++++++++--------
tests/Unit/Component/ES/AsyncUpdateElasticSearchTest.php | 16 +----
tests/Unit/Component/ES/Listeners/UpdateMultipleTargetsListenerTest.php | 10 ---
tests/Unit/Component/ES/Listeners/UpdateSingleTargetListenerTest.php | 6 --
tests/Unit/Component/ES/Processor/TargetEntitiesSelectorTest.php | 9 ---
tests/Unit/Component/ES/Processor/Traits/SelectEntityListTraitTest.php | 15 ++--
tests/Unit/Component/ES/UpdateProcessManagerTest.php | 2 -
tests/Unit/Services/Calendar/CalendarActivityServiceTest.php | 150 ++++++++++++++++++++++++++++++++++++++--
tests/Unit/Services/Calendar/Command/MapActivityDataTest.php | 78 ++-------------------
15 files changed, 832 insertions(+), 322 deletions(-)
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (master) $ co -b JY-20613-allow-owner-role-on-team-setup
Switched to a new branch 'JY-20613-allow-owner-role-on-team-setup'
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20613-allow-owner-role-on-team-setup) $ csfix
docker exec -it docker_lamp_1 ./vendor/bin/php-cs-fixer fix --config=.php-cs-fixer.dist.php -v --using-cache=no --diff
PHP CS Fixer 3.87.1 Alexander by Fabien Potencier, Dariusz Ruminski and contributors.
PHP runtime: 8.3.30
Running 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!
Loaded config default from ".php-cs-fixer.dist.php".
5682/5682 [▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓] 100%
Fixed 0 of 5682 files in 56.978 seconds, 67.00 MB memory used
What's next:
Try Docker Debug for seamless, persistent debugging tools in any container or image → docker debug docker_lamp_1
Learn more at [URL_WITH_CREDENTIALS] ~/jiminny/app (JY-20613-allow-owner-role-on-team-setup) $ csfix
docker exec -it docker_lamp_1 ./vendor/bin/php-cs-fixer fix --config=.php-cs-fixer.dist.php -v --using-cache=no --diff
PHP CS Fixer 3.87.1 Alexander by Fabien Potencier, Dariusz Ruminski and contributors.
PHP runtime: 8.3.30
Running 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!
Loaded config default from ".php-cs-fixer.dist.php".
5682/5682 [▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓] 100%
Fixed 0 of 5682 files in 49.910 seconds, 60.00 MB memory used
What's next:
Try Docker Debug for seamless, persistent debugging tools in any container or image → docker debug docker_lamp_1
Learn more at [URL_WITH_CREDENTIALS] ~/jiminny/app (JY-20613-allow-owner-role-on-team-setup) $ git pull
remote: Enumerating objects: 248, done.
remote: Counting objects: 100% (128/128), done.
remote: Compressing objects: 100% (23/23), done.
remote: Total 59 (delta 43), reused 44 (delta 33), pack-reused 0 (from 0)
Unpacking objects: 100% (59/59), 10.48 KiB | 228.00 KiB/s, done.
From github.com:jiminny/app
b7df560451..190239dfd4 JY-20613-allow-owner-role-on-team-setup -> origin/JY-20613-allow-owner-role-on-team-setup
e0351be069..d94a285ae7 JY-20808-low-priority-indexing-queue -> origin/JY-20808-low-priority-indexing-queue
* [new branch] JY-20920-fix-participant-matcher -> origin/JY-20920-fix-participant-matcher
cb4ebf0c36..90bca4e4b2 master -> origin/master
Merge made by the 'ort' strategy.
app/Component/ES/ChunkSize.php | 54 +++++++++++++++++++++++++++
app/Component/ES/Processor/DTOs/SelectionList.php | 4 +-
app/Component/ES/Processor/TargetEntitiesSelector.php | 19 ++++++----
app/Http/Middleware/McpTierMiddleware.php | 27 +++-----------
app/Mcp/Servers/JiminnyServer.php | 2 +
app/Mcp/Tools/GetMeTool.php | 157 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
app/Models/Feature/FeatureEnum.php | 1 +
database/migrations/2026_05_13_124153_create_mcp_feature_flag.php | 25 +++++++++++++
front-end/src/components/Settings/Kiosk/modals/EditTeamModal/EditTeamModal.vue | 52 ++++++++++++++++++--------
front-end/src/components/Settings/Kiosk/modals/EditTeamModal/__tests__/EditTeamModal.spec.js | 14 +++++++
tests/Feature/Mcp/GetMeToolFeatureTest.php | 140 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
tests/Feature/Mcp/ListCallsToolFeatureTest.php | 2 +-
tests/Feature/Mcp/McpTestHelpersTrait.php | 19 +++++++++-
tests/Unit/Component/ES/ChunkSizeTest.php | 50 +++++++++++++++++++++++++
tests/Unit/Component/ES/Processor/DTOs/SelectionListTest.php | 27 ++++++++++----
tests/Unit/Component/ES/Processor/TargetEntitiesSelectorTest.php | 39 +++++++++++---------
16 files changed, 557 insertions(+), 75 deletions(-)
create mode 100644 app/Component/ES/ChunkSize.php
create mode 100644 app/Mcp/Tools/GetMeTool.php
create mode 100644 database/migrations/2026_05_13_124153_create_mcp_feature_flag.php
create mode 100644 tests/Feature/Mcp/GetMeToolFeatureTest.php
create mode 100644 tests/Unit/Component/ES/ChunkSizeTest.php
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20613-allow-owner-role-on-team-setup) $ git push
Enumerating objects: 40, done.
Counting objects: 100% (34/34), done.
Delta compression using up to 8 threads
Compressing objects: 100% (18/18), done.
Writing objects: 100% (18/18), 1.58 KiB | 1.58 MiB/s, done.
Total 18 (delta 15), reused 0 (delta 0), pack-reused 0
remote: Resolving deltas: 100% (15/15), completed with 13 local objects.
To github.com:jiminny/app.git
190239dfd4..ec1b261264 JY-20613-allow-owner-role-on-team-setup -> JY-20613-allow-owner-role-on-team-setup
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20613-allow-owner-role-on-team-setup) $ gbr
* JY-20613-allow-owner-role-on-team-setup
pipedrive-sdk-poc
master
JY-20903-update_activity-stage-on-opportunity-change
JY-20904-fix-update-es-on-activity-command
JY-20891-improve-sms-text-relays
JY-20725-handle-HS-search-rate-limit
JY-20818-move-AJ-reports-to-separated-datadog-metric
JY-20773-fix-automated-reports-user-pilot-tracking
JY-20157-AJ-report-not-send-notification
JY-20508-notify-before-AJ-report-expiration
JY-20372-ai-reports-promotion-pages
JY-20352-sync-opportunities-without-a-local-owner-user-id-is-null
JY-20738-debug-AJ-tracking-UP
a
JY-18909-automated-reports-ask-jiminny
JY-20692-fix-integration-app-[API_KEY]
JY-20553-debug-crm-sync-delays
JY-20698-fix-SF-activity-types-on-new-playbook
JY-20543-AJ-report-tracking
JY-20384-handle-auto-sync-with-no-access-to-event-type
JY-20458-ask-jiminny-user-definitions
JY-19666-fix-import-contacts-account-association
JY-19666-HS-import-contacts-and-accounts-batch-job
JY-20458-Ask-Jiminny-Reports
JY-20200-batch-update-CRM-objects-Salesforce
JY-19666-HS-webhooks-add-contact-and-company
JY-20348-trigger-setup-DI-layout-on-team-creation
JY-20326-refactor-info-message-in-command
JY-20317-fix-auto-log-delay-issue-on-all-channels-disabled
JY-20312-remove-on-update-change-last-synced-at-crm-configurations
JY-20306-SF-skip-auto-sync-for-task-based-playbook
JY-20192-remove-deleted-team-from-saved-search-filters
JY-20197-import-opportunity-batch-job
JY-20293-enable-status-field-for-pipedrive-deals
JY-20191-remove-commands-interactive-prompts
JY-20118-change-default-sync-strategy
JY-20183-add-cache-on-auto-log-delay
JY-20197-add-import-opportunity-batch-job
20118-hs-opportunity-make-webhook-strategy-default
JY-20118-make-default-hs-opportunity-sync-strategy-webhook-based
JY-20196-handle-opportunity-without-note
JY-20118-improve-opportunity-import
JY-20189-handle-activity-search-on-deleted-groups
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20613-allow-owner-role-on-team-setup) $ co JY-20725-handle-HS-search-rate-limit
M .env.local
M config/logging.php
Switched to branch 'JY-20725-handle-HS-search-rate-limit'
Your branch is behind 'origin/JY-20725-handle-HS-search-rate-limit' by 439 commits, and can be fast-forwarded.
(use "git pull" to update your local branch)
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20725-handle-HS-search-rate-limit) $ git pull
Updating 0f3e438941..bc6a3fce6b
Fast-forward
.gitignore | 3 +-
.windsurfrules | 168 ++---
CLAUDE.md | 1 +
app/Component/ActivityAnalytics/Service/CalculateTalkTimeOffsetsFromTranscription.php | 24 +-
app/Component/AiActivityType/Services/AiActivityTypeEligibilityChecker.php | 28 +-
app/Component/AiAutomation/Actions/PrepareUpdateDtoAction.php | 32 +-
app/Component/AiAutomation/Services/CrmFillingEligibilityChecker.php | 47 ++
app/Component/AiAutomation/TestCrmAiPromptService.php | 14 +
app/Component/AiCallScoring/Services/AiCallScoringEligibilityChecker.php | 9 +
app/Component/ES/ElasticSearchDocumentPartialUpdater.php | 13 +-
app/Component/ES/ElasticSearchWorkerManager.php | 86 ---
app/Component/ES/Processor/Actions/LoadDocumentsAction.php | 80 +--
app/Component/ES/Processor/EntityQueryBuilder.php | 12 +-
app/Component/ES/Processor/TargetEntitiesSelector.php | 2 +-
app/Component/ES/Processor/Traits/SkipActivityTrait.php | 25 -
app/Component/ES/Repositories/EsResetActivityRepository.php | 11 +-
app/Component/ES/Worker/ActivityWorker.php | 73 --
app/Component/ES/Worker/EntityWorker.php | 44 --
app/Component/ES/Worker/WorkerAmount.php | 60 --
app/Component/ES/Worker/WorkerInterface.php | 15 -
app/Component/ElasticSearch/Contract/Searchable.php | 4 +
app/Component/Encoding/Job/AnalyzeTrackChannelsJob.php | 20 +-
app/Component/Encoding/Service/GenerateSpeechFromSilenceService.php | 85 ++-
app/Component/FFMpeg/Services/GetSpeechIntervalsService.php | 18 +-
app/Component/LanguageDetection/Services/FindSpeechTimeService.php | 22 +-
app/Component/Nudge/Job/ProcessOrganisationImmediateNudgesJob.php | 218 +++++-
app/Component/ParagraphBreaker/Services/TranscriptionParagraphsService.php | 4 +
app/Component/ParticipantSpeech/Services/ParticipantSpeechesCreator.php | 33 +
app/Component/ParticipantSpeech/Services/ParticipantSpeechesDeleter.php | 15 +
app/Component/ParticipantSpeech/Services/ParticipantSpeechesProvider.php | 51 +-
app/Component/ParticipantSpeech/Services/ParticipantSpeechesUploader.php | 36 +
app/Component/ProphetAi/Exceptions/InsufficientTranscriptException.php | 11 +
app/Component/Transcription/DTO/Http/Transcription/AssemblyAI/AssemblyAI/NoAssemblyIdException.php | 11 +
app/Component/Transcription/DTO/Http/Transcription/AssemblyAI/AssemblyAI/SuccessfulResponse.php | 6 +
app/Component/Transcription/DTO/Http/Transcription/TranscriptionIsNotCorrectFormatException.php | 11 +
app/Component/Transcription/Diarization/Services/GetNormalizedParticipantSpeechesService.php | 23 +-
app/Component/Transcription/Diarization/Source/MeetingBotSource.php | 16 +-
app/Component/Transcription/TranscriptionProcessor/TranscriptionProcessor.php | 3 +
app/Console/Commands/Activities/ActivityHardDeleteCommand.php | 4 +-
app/Console/Commands/Activities/Copy.php | 2 +
app/Console/Commands/Activities/SetupIntegration/TwilioSetS3RecordingCredentialsCommand.php | 119 ++++
app/Console/Commands/Activities/UpdateActivityElasticSearchDocumentCommand.php | 10 +-
app/Console/Commands/Crm/BackfillOpportunityUserFromAccountCommand.php | 126 ++++
app/Console/Commands/Elasticsearch/AsyncUpdateEsActivities.php | 19 -
app/Console/Commands/Elasticsearch/AsyncUpdateEsEntities.php | 50 +-
app/Console/Commands/Elasticsearch/ResetAsyncElasticSearchCommand.php | 30 +-
app/Console/Commands/GeckoExport/GeckoExportParticipantSpeechesCommand.php | 14 +-
app/Console/Commands/IssueMcpTokenCommand.php | 84 +++
app/Console/Commands/JiminnyDebugCommand.php | 7 +-
app/Console/Commands/Tracks/CleanupActivityTracksCommand.php | 2 +-
app/Console/Kernel.php | 6 +-
app/Contracts/Services/Calendar/CalendarTrait.php | 80 ++-
app/Events/AutomatedReports/AutomatedReportGenerated.php | 3 +
app/Http/Controllers/API/AiCallScoring/AiScorecardController.php | 7 +-
app/Http/Controllers/API/TeamAiAutomationController.php | 8 +
app/Http/Controllers/CustomerApi/CustomerApiController.php | 4 +-
app/Http/Controllers/Kiosk/ActivityController.php | 58 +-
app/Http/Controllers/Settings/PlaybookController.php | 15 +-
app/Http/Kernel.php | 23 +
app/Http/Middleware/McpAuditMiddleware.php | 156 ++++
app/Http/Middleware/McpTierMiddleware.php | 54 ++
app/Http/Requests/API/V2/ZapierUploadActivityRequest.php | 28 +-
app/Jobs/Activity/Import/ImportTwilioVideoSpeechesJob.php | 25 +-
app/Jobs/Activity/Import/IsActivityReadyForProcessingJob.php | 10 +-
app/Jobs/Calendar/SetupCalendarSync.php | 21 +-
app/Jobs/ImportRemoteTrackJob.php | 96 ++-
app/Jobs/Mailbox/EmailTextRelay.php | 15 +-
app/Mcp/Contracts/McpCallRepositoryInterface.php | 30 +
app/Mcp/DTO/ListCallsFilters.php | 29 +
app/Mcp/Errors/McpError.php | 123 ++++
app/Mcp/Repositories/McpActivityHydrator.php | 145 ++++
app/Mcp/Repositories/McpCallRepository.php | 84 +++
app/Mcp/Repositories/McpElasticCallRepository.php | 171 +++++
app/Mcp/Servers/JiminnyServer.php | 38 +
app/Mcp/Tools/ListCallsTool.php | 205 ++++++
app/Models/Activity.php | 10 +-
app/Models/Activity/Transcription.php | 17 +-
app/Models/ElasticSearch/OpportunityElasticSearchTrait.php | 5 +
app/Models/Participant.php | 1 +
app/Providers/AppServiceProvider.php | 22 +
app/Repositories/Crm/ContactRepository.php | 69 +-
app/Repositories/ParticipantSpeechRepository.php | 13 +-
app/Services/Activity/ParticipantsService.php | 19 +-
app/Services/Activity/Twilio/S3RecordingCredentialsService.php | 82 +++
app/Services/ActivityService.php | 21 +-
app/Services/Calendar/CalendarActivityService.php | 46 ++
app/Services/Calendar/Command/ImportParticipants.php | 1 +
app/Services/Calendar/Command/MapActivityData.php | 106 +--
app/Services/Calendar/GoogleCalendarService.php | 12 +-
app/Services/Crm/Close/Processor/OpportunityProcessor.php | 2 +-
app/Services/Crm/Close/Service.php | 22 +-
app/Services/Crm/Copper/Service.php | 12 +-
app/Services/Crm/Hubspot/Service.php | 154 +++-
app/Services/Crm/Hubspot/ServiceTraits/OpportunitySyncTrait.php | 88 ++-
app/Services/Crm/IntegrationApp/ServiceTraits/SyncCrmEntitiesTrait.php | 22 +-
app/Services/Crm/Pipedrive/Service.php | 17 +-
app/Services/Crm/Salesforce/Service.php | 42 +-
app/Services/Mail/Office/EmailApiClient.php | 129 +---
app/Services/RecallAI/Commands/ScheduleBotCommand.php | 39 +-
app/Services/RecallAI/RecallAIService.php | 22 +-
composer.json | 3 +-
composer.lock | 87 ++-
config/mcp.php | 23 +
database/migrations/2026_04_30_120000_create_mcp_audit_log_table.php | 36 +
docs/mcp/explorer/explorer.html | 697 ++++++++++++++++++
docs/mcp/explorer/explorer.template.html | 697 ++++++++++++++++++
docs/mcp/explorer/generate.js | 215 ++++++
docs/mcp/explorer/tool-explorer-meta.json | 11 +
docs/mcp/tools-list.json | 2536 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
docs/mcp/tools.md | 621 ++++++++++++++++
front-end/package.json | 4 +-
front-end/src/components/Settings/OrgSettings/AiAutomation/CrmFilling/TemplateFieldForm.vue | 28 +-
front-end/src/components/Settings/OrgSettings/Playbooks/AddEditPlaybook.vue | 10 +
front-end/src/components/playback/comments/ActivityComment.less | 10 +-
front-end/src/components/shared/PromptTester/PromptTester.vue | 12 +-
front-end/src/components/shared/__tests__/PromptTester.spec.js | 35 +
front-end/src/components/shared/modals/EntityPickerModal/__tests__/useEntitiesCache.spec.ts | 37 +
front-end/src/components/shared/modals/EntityPickerModal/useEntitiesCache.ts | 9 +
front-end/yarn.lock | 16 +-
phpstan-baseline.neon | 50 --
routes/api.php | 11 +
sonar-project.properties | 91 ++-
tests/Feature/Component/Nudge/ProcessOrganisationImmediateNudgesJobTest.php | 534 ++++++++++++++
tests/Feature/Jobs/ImportRemoteTrackJobTest.php | 283 +++++++-
tests/Feature/Mcp/IssueMcpTokenCommandTest.php | 53 ++
tests/Feature/Mcp/ListCallsToolElasticFeatureTest.php | 155 ++++
tests/Feature/Mcp/ListCallsToolFeatureTest.php | 352 ++++++++++
tests/Feature/Mcp/McpTestHelpersTrait.php | 77 ++
tests/Feature/Services/Team/TeamDeleteHandlers/Retention/RetentionRepositoryHandlerTest.php | 1 +
tests/Stubs/SentryStub.php | 18 +
tests/Unit/Component/ActivityAnalytics/Service/CalculateTalkTimeOffsetFromTranscriptionTest.php | 28 +-
tests/Unit/Component/AiActivityType/Services/AiActivityTypeEligibilityCheckerTest.php | 103 ++-
tests/Unit/Component/AiAutomation/Actions/PrepareUpdateDtoActionTest.php | 91 +++
tests/Unit/Component/AiAutomation/Services/CrmFillingEligibilityCheckerTest.php | 124 ++++
tests/Unit/Component/AiAutomation/TestCrmAiPromptServiceTest.php | 67 +-
tests/Unit/Component/AiCallScoring/Services/AiCallScoringEligibilityCheckerTest.php | 55 ++
tests/Unit/Component/ES/ElasticSearchWorkerManagerTest.php | 135 ----
tests/Unit/Component/ES/Processor/Actions/LoadDocumentsActionTest.php | 220 ++++++
tests/Unit/Component/ES/Processor/EntityQueryBuilderTest.php | 21 +-
tests/Unit/Component/ES/Processor/Traits/SkipActivityTraitTest.php | 51 --
tests/Unit/Component/ES/Worker/ActivityWorkerTest.php | 174 -----
tests/Unit/Component/ES/Worker/EntityWorkerTest.php | 97 ---
tests/Unit/Component/ES/Worker/WorkerAmountTest.php | 116 ---
tests/Unit/Component/Encoding/Job/AnalyzeTrackChannelsJobTest.php | 52 +-
tests/Unit/Component/Encoding/Service/GenerateSpeechFromSilenceServiceTest.php | 171 ++---
tests/Unit/Component/FFMpeg/Services/GetSpeechIntervalsTest.php | 36 +-
tests/Unit/Component/LanguageDetection/Services/FindSpeechTimeServiceTest.php | 20 +-
tests/Unit/Component/MobileSettings/MobileSettingsControllerTest.php | 5 +-
tests/Unit/Component/ParticipantSpeech/Services/ParticipantSpeechesCreatorTest.php | 75 ++
tests/Unit/Component/ParticipantSpeech/Services/ParticipantSpeechesDeleterTest.php | 63 ++
tests/Unit/Component/ParticipantSpeech/Services/ParticipantSpeechesProviderTest.php | 134 ++++
tests/Unit/Component/ParticipantSpeech/Services/ParticipantSpeechesUploaderTest.php | 57 ++
tests/Unit/Component/Transcription/Diarization/Services/GetNormalizedParticipantSpeechesServiceTest.php | 51 +-
tests/Unit/Component/Transcription/Diarization/Source/MeetingBotSourceTest.php | 29 +-
tests/Unit/Contracts/Services/Calendar/CalendarTraitTest.php | 58 +-
tests/Unit/Http/Controllers/Kiosk/ActivityControllerTest.php | 159 +++++
tests/Unit/Jobs/Activity/Import/ImportTwilioVideoSpeechesJobTest.php | 22 +-
tests/Unit/Jobs/Activity/Import/IsActivityReadyForProcessingJobTest.php | 26 +-
tests/Unit/Jobs/Calendar/SetupCalendarSyncTest.php | 25 -
tests/Unit/Services/Activity/ParticipantsServiceTest.php | 12 +-
tests/Unit/Services/Activity/Twilio/S3RecordingCredentialsServiceTest.php | 180 +++++
tests/Unit/Services/ActivityServiceTest.php | 132 ++++
tests/Unit/Services/Calendar/CalendarActivityServiceTest.php | 150 +++-
tests/Unit/Services/Calendar/Command/ImportParticipantsTest.php | 6 +-
tests/Unit/Services/Calendar/Command/MapActivityDataTest.php | 78 +-
tests/Unit/Services/Calendar/GoogleCalendarServiceTest.php | 116 +++
tests/Unit/Services/Crm/Close/ServiceTest.php | 165 +++++
tests/Unit/Services/Crm/Hubspot/ServiceTest.php | 272 ++++++-
tests/Unit/Services/Crm/Hubspot/ServiceTraits/OpportunitySyncTest.php | 25 +-
tests/Unit/Services/Crm/Hubspot/ServiceTraits/OpportunitySyncTraitMatchActivitiesTest.php | 3 +-
tests/Unit/Services/Crm/IntegrationApp/ServiceTraits/SyncCrmEntitiesTraitOpportunitiesTest.php | 40 ++
tests/Unit/Services/Crm/Pipedrive/ImportOpportunityMatchActivitiesTest.php | 2 +
tests/Unit/Services/Crm/Salesforce/ServiceTest.php | 139 ++++
tests/Unit/Services/Mail/Office/EmailApiClientTest.php | 195 ++---
tests/Unit/Services/RecallAI/RecallAIServiceTest.php | 24 +-
175 files changed, 12562 insertions(+), 2162 deletions(-)
create mode 120000 CLAUDE.md
create mode 100644 app/Component/AiAutomation/Services/CrmFillingEligibilityChecker.php
delete mode 100644 app/Component/ES/ElasticSearchWorkerManager.php
delete mode 100644 app/Component/ES/Processor/Traits/SkipActivityTrait.php
delete mode 100644 app/Component/ES/Worker/ActivityWorker.php
delete mode 100644 app/Component/ES/Worker/EntityWorker.php
delete mode 100644 app/Component/ES/Worker/WorkerAmount.php
delete mode 100644 app/Component/ES/Worker/WorkerInterface.php
create mode 100644 app/Component/ProphetAi/Exceptions/InsufficientTranscriptException.php
create mode 100644 app/Component/Transcription/DTO/Http/Transcription/AssemblyAI/AssemblyAI/NoAssemblyIdException.php
create mode 100644 app/Component/Transcription/DTO/Http/Transcription/TranscriptionIsNotCorrectFormatException.php
create mode 100644 app/Console/Commands/Activities/SetupIntegration/TwilioSetS3RecordingCredentialsCommand.php
create mode 100644 app/Console/Commands/Crm/BackfillOpportunityUserFromAccountCommand.php
delete mode 100644 app/Console/Commands/Elasticsearch/AsyncUpdateEsActivities.php
create mode 100644 app/Console/Commands/IssueMcpTokenCommand.php
create mode 100644 app/Http/Middleware/McpAuditMiddleware.php
create mode 100644 app/Http/Middleware/McpTierMiddleware.php
create mode 100644 app/Mcp/Contracts/McpCallRepositoryInterface.php
create mode 100644 app/Mcp/DTO/ListCallsFilters.php
create mode 100644 app/Mcp/Errors/McpError.php
create mode 100644 app/Mcp/Repositories/McpActivityHydrator.php
create mode 100644 app/Mcp/Repositories/McpCallRepository.php
create mode 100644 app/Mcp/Repositories/McpElasticCallRepository.php
create mode 100644 app/Mcp/Servers/JiminnyServer.php
create mode 100644 app/Mcp/Tools/ListCallsTool.php
create mode 100644 app/Services/Activity/Twilio/S3RecordingCredentialsService.php
create mode 100644 config/mcp.php
create mode 100644 database/migrations/2026_04_30_120000_create_mcp_audit_log_table.php
create mode 100644 docs/mcp/explorer/explorer.html
create mode 100644 docs/mcp/explorer/explorer.template.html
create mode 100644 docs/mcp/explorer/generate.js
create mode 100644 docs/mcp/explorer/tool-explorer-meta.json
create mode 100644 docs/mcp/tools-list.json
create mode 100644 docs/mcp/tools.md
create mode 100644 front-end/src/components/shared/modals/EntityPickerModal/__tests__/useEntitiesCache.spec.ts
create mode 100644 tests/Feature/Component/Nudge/ProcessOrganisationImmediateNudgesJobTest.php
create mode 100644 tests/Feature/Mcp/IssueMcpTokenCommandTest.php
create mode 100644 tests/Feature/Mcp/ListCallsToolElasticFeatureTest.php
create mode 100644 tests/Feature/Mcp/ListCallsToolFeatureTest.php
create mode 100644 tests/Feature/Mcp/McpTestHelpersTrait.php
create mode 100644 tests/Stubs/SentryStub.php
create mode 100644 tests/Unit/Component/AiAutomation/Services/CrmFillingEligibilityCheckerTest.php
delete mode 100644 tests/Unit/Component/ES/ElasticSearchWorkerManagerTest.php
create mode 100644 tests/Unit/Component/ES/Processor/Actions/LoadDocumentsActionTest.php
delete mode 100644 tests/Unit/Component/ES/Processor/Traits/SkipActivityTraitTest.php
delete mode 100644 tests/Unit/Component/ES/Worker/ActivityWorkerTest.php
delete mode 100644 tests/Unit/Component/ES/Worker/EntityWorkerTest.php
delete mode 100644 tests/Unit/Component/ES/Worker/WorkerAmountTest.php
create mode 100644 tests/Unit/Component/ParticipantSpeech/Services/ParticipantSpeechesCreatorTest.php
create mode 100644 tests/Unit/Http/Controllers/Kiosk/ActivityControllerTest.php
create mode 100644 tests/Unit/Services/Activity/Twilio/S3RecordingCredentialsServiceTest.php
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20725-handle-HS-search-rate-limit) $ git status
On branch master
Your branch is behind 'origin/master' by 114 commits, and can be fast-forwarded.
(use "git pull" to update your local branch)
Changes not staged for commit:
(use "git add <file>..." to update what will be committed)
(use "git restore <file>..." to discard changes in working directory)
modified: .env.local
modified: app/Component/SCIM/Constants.php
modified: app/Component/SCIM/ScimProvisioning.php
modified: app/Component/Twilio/Conference/ConferenceManager/SoftPhoneManager.php
modified: app/Console/Commands/JiminnyDebugCommand.php
modified: app/DTO/SCIM/AAD/Request/CoreUserRequest.php
modified: app/DTO/SCIM/AAD/Response/CoreUser.php
modified: app/Services/Telephony/TextMessagingService.php
modified: config/logging.php
Untracked files:
(use "git add <file>..." to include in what will be committed)
.env.nikilocal
.env.other
WEBHOOK_FILTERING_IMPLEMENTATION.md
app/Component/SCIM/Mutators/Attributes/User/RoleAttr.php
app/Console/Commands/Crm/Hubspot/SimulateWebhooksCommand.php
app/Console/Commands/Reports/CreateMockAskJiminnyReportResultCommand.php
app/Rules/ListenerRoleCannotHaveAdminOrManagerPermissionRule.php
ids.txt
public/favicon.ico
raw_sql_query.sql
tests/Unit/Component/SCIM/Mutators/Attributes/User/RoleAttrTest.php
tests/Unit/Policies/CanAccessAiReportsTest.php
tests/Unit/Rules/ListenerRoleCannotHaveAdminOrManagerPermissionRuleTest.php
no changes added to commit (use "git add" and/or "git commit -a")
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (master) $ git pull
remote: Enumerating objects: 306, done.
remote: Counting objects: 100% (299/299), done.
remote: Compressing objects: 100% (183/183), done.
remote: Total 306 (delta 213), reused 171 (delta 116), pack-reused 7 (from 1)
Receiving objects: 100% (306/306), 80.12 KiB | 1000.00 KiB/s, done.
Resolving deltas: 100% (213/213), completed with 53 local objects.
From github.com:jiminny/app
90bca4e4b2..5604af40cf master -> origin/master
4e7078fd8b..0b8343d179 JY-18091-upgrade-to-php-8-5 -> origin/JY-18091-upgrade-to-php-8-5
098eeaa087..d5a447e492 JY-20613-allow-owner-role-on-team-setup -> origin/JY-20613-allow-owner-role-on-team-setup
c3a76ace91..af65249d0f JY-20749-user-can-view-recorded-meetings -> origin/JY-20749-user-can-view-recorded-meetings
d94a285ae7..7ce96cb5fe JY-20808-low-priority-indexing-queue -> origin/JY-20808-low-priority-indexing-queue
* [new branch] JY-20842-remove-partial-updater -> origin/JY-20842-remove-partial-updater
* [new branch] JY-20920-fix-participant-flip -> origin/JY-20920-fix-participant-flip
* [new branch] secfix/npm-20260519 -> origin/secfix/npm-20260519
Updating cb4ebf0c36..5604af40cf
Fast-forward
app/Component/ES/ChunkSize.php | 54 +++++++++++++++++++
app/Component/ES/Processor/DTOs/SelectionList.php | 4 +-
app/Component/ES/Processor/TargetEntitiesSelector.php | 19 ++++---
app/Component/MeetingBot/Service/ParticipantMatcher.php | 46 ++++++++++++----
app/Exceptions/RateLimitException.php | 19 ++++++-
app/Http/Middleware/McpTierMiddleware.php | 27 ++--------
app/Jobs/Crm/MatchActivityCrmData.php | 47 ++++++++++++----
app/Jobs/Middleware/HandleHubspotRateLimit.php | 42 +++++++++++++++
app/Mcp/Servers/JiminnyServer.php | 2 +
app/Mcp/Tools/GetMeTool.php | 157 +++++++++++++++++++++++++++++++++++++++++++++++++++++
app/Models/Feature/FeatureEnum.php | 1 +
app/Services/Activity/HubSpot/ProviderResolver.php | 4 +-
app/Services/Activity/HubSpot/ProviderResolverInterface.php | 2 +-
app/Services/Activity/HubSpot/Providers/Provider.php | 2 +-
app/Services/Activity/HubSpot/Providers/ProviderKixie.php | 2 +-
app/Services/Activity/HubSpot/Providers/ProviderOrum.php | 2 +-
app/Services/Activity/HubSpot/Providers/ProviderTwilio.php | 2 +-
app/Services/Activity/HubSpot/Providers/ProviderTwilioFlex.php | 5 +-
app/Services/Activity/HubSpot/Service.php | 97 +++++++++++++++++++++++++++------
app/Services/Crm/Hubspot/Client.php | 132 +++++++++++++++++++++++++++++++++++++++++++++
app/Services/Crm/Hubspot/HubspotClientInterface.php | 15 ++++++
app/Services/Crm/Hubspot/Pagination/HubspotPaginationService.php | 21 ++++----
app/Services/Crm/Hubspot/Pagination/PaginationState.php | 2 +-
database/migrations/2026_05_13_124153_create_mcp_feature_flag.php | 25 +++++++++
tests/Feature/Mcp/GetMeToolFeatureTest.php | 140 +++++++++++++++++++++++++++++++++++++++++++++++
tests/Feature/Mcp/ListCallsToolFeatureTest.php | 2 +-
tests/Feature/Mcp/McpTestHelpersTrait.php | 19 ++++++-
tests/Unit/Component/ES/ChunkSizeTest.php | 50 +++++++++++++++++
tests/Unit/Component/ES/Processor/DTOs/SelectionListTest.php | 27 +++++++---
tests/Unit/Component/ES/Processor/TargetEntitiesSelectorTest.php | 39 ++++++++------
tests/Unit/Component/MeetingBot/Service/ParticipantMatcherTest.php | 68 ++++++++++++++++++++++-
tests/Unit/Exceptions/RateLimitExceptionTest.php | 56 +++++++++++++++++++
tests/Unit/Jobs/Crm/MatchActivityCrmDataTest.php | 8 +--
tests/Unit/Jobs/Middleware/HandleHubspotRateLimitTest.php | 151 +++++++++++++++++++++++++++++++++++++++++++++++++++
tests/Unit/Services/Activity/HubSpot/ServiceTest.php | 109 +++++++++++++++++++++++++++++++++++++
tests/Unit/Services/Crm/Hubspot/ClientTest.php | 250 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
tests/Unit/Services/Crm/Hubspot/Pagination/HubspotPaginationServiceTest.php | 283 +++++++++++++++++++++---------------------------------------------------------------------------
37 files changed, 1587 insertions(+), 344 deletions(-)
create mode 100644 app/Component/ES/ChunkSize.php
create mode 100644 app/Jobs/Middleware/HandleHubspotRateLimit.php
create mode 100644 app/Mcp/Tools/GetMeTool.php
create mode 100644 database/migrations/2026_05_13_124153_create_mcp_feature_flag.php
create mode 100644 tests/Feature/Mcp/GetMeToolFeatureTest.php
create mode 100644 tests/Unit/Component/ES/ChunkSizeTest.php
create mode 100644 tests/Unit/Exceptions/RateLimitExceptionTest.php
create mode 100644 tests/Unit/Jobs/Middleware/HandleHubspotRateLimitTest.php
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (master) $ git pull
Already up to date.
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (master) $ co -b JY-20676-delete-report-related-objects
Switched to a new branch 'JY-20676-delete-report-related-objects'
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20676-delete-report-related-objects) $ csfix
docker exec -it docker_lamp_1 ./vendor/bin/php-cs-fixer fix --config=.php-cs-fixer.dist.php -v --using-cache=no --diff
PHP CS Fixer 3.87.1 Alexander by Fabien Potencier, Dariusz Ruminski and contributors.
PHP runtime: 8.3.30
Running 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!
Loaded config default from ".php-cs-fixer.dist.php".
5690/5690 [▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓] 100%
1) app/Console/Commands/JiminnyDebugCommand.php (statement_indentation, blank_line_before_statement)
---------- begin diff ----------
--- /home/jiminny/app/Console/Commands/JiminnyDebugCommand.php
+++ /home/jiminny/app/Console/Commands/JiminnyDebugCommand.php
@@ -23,6 +23,7 @@
if ($action === 'redis-set') {
$this->testRedisSet();
+
return;
}
@@ -45,7 +46,7 @@
$ttl = 60;
try {
-// $result = Redis::set($testKey, $testValue, 'EX', $ttl, 'NX');
+ // $result = Redis::set($testKey, $testValue, 'EX', $ttl, 'NX');
$result = Redis::set($testKey, $testValue, ['nx', 'ex' => $ttl]);
if ($result) {
----------- end diff -----------
Fixed 1 of 5690 files i...
|
[{"role":"AXTextArea","text [{"role":"AXTextArea","text":"Last login: Mon May 18 09:17:28 on ttys007\n\nPoetry could not find a pyproject.toml file in /Users/lukas/jiminny/app or its parents\n\nPoetry could not find a pyproject.toml file in /Users/lukas/jiminny/app or its parents\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (pipedrive-sdk-poc) $ co master\nerror: Your local changes to the following files would be overwritten by checkout:\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tPIPEDRIVE_V2_MIGRATION_TICKETS.md\nPlease commit your changes or stash them before you switch branches.\nAborting\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (pipedrive-sdk-poc) $ git pull\nremote: Enumerating objects: 1047, done.\nremote: Counting objects: 100% (832/832), done.\nremote: Compressing objects: 100% (298/298), done.\nremote: Total 1047 (delta 634), reused 596 (delta 534), pack-reused 215 (from 3)\nReceiving objects: 100% (1047/1047), 353.16 KiB | 1.56 MiB/s, done.\nResolving deltas: 100% (687/687), completed with 107 local objects.\nFrom github.com:jiminny/app\n 907c54896c..34656c53ed pipedrive-sdk-poc -> origin/pipedrive-sdk-poc\n 03325ec50f..4e7078fd8b JY-18091-upgrade-to-php-8-5 -> origin/JY-18091-upgrade-to-php-8-5\n e7d231e163..bc6a3fce6b JY-20725-handle-HS-search-rate-limit -> origin/JY-20725-handle-HS-search-rate-limit\n * [new branch] JY-20749-user-can-view-recorded-meetings -> origin/JY-20749-user-can-view-recorded-meetings\n 98ca281a04..e0351be069 JY-20808-low-priority-indexing-queue -> origin/JY-20808-low-priority-indexing-queue\n 569abb5149..3906a9238a JY-20835-mcp-enable-users-to-get-a-list-of-deals-and-their-details -> origin/JY-20835-mcp-enable-users-to-get-a-list-of-deals-and-their-details\n ad6c2a86e8..50eb6afba9 JY-20846-mcp-enable-the-ai-to-know-details-about-the-user -> origin/JY-20846-mcp-enable-the-ai-to-know-details-about-the-user\n * [new branch] JY-20893-chunk-control-per-update-target -> origin/JY-20893-chunk-control-per-update-target\n 31c62924a5..cb4ebf0c36 master -> origin/master\nUpdating 907c54896c..34656c53ed\nFast-forward\n PIPEDRIVE_V2_MIGRATION_TICKETS.md | 52 ++++++++++++++++++++++++++++++++++++++++++++++++++++\n 1 file changed, 52 insertions(+)\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (pipedrive-sdk-poc) $ co master\nM\u0000\u0000\u0000\u0000\u0000\u0000\t.env.local\nM\u0000\u0000\u0000\u0000\u0000\u0000\tconfig/logging.php\nSwitched to branch 'master'\nYour branch is behind 'origin/master' by 31 commits, and can be fast-forwarded.\n (use \"git pull\" to update your local branch)\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (master) $ git pull\nUpdating 31c62924a5..cb4ebf0c36\nFast-forward\n app/Component/ES/Processor/Traits/SelectEntityListTrait.php | 20 ------\n app/Services/Calendar/CalendarActivityService.php | 46 +++++++++++++\n app/Services/Calendar/Command/MapActivityData.php | 106 +++-------------------------\n docs/mcp/explorer/explorer.html | 104 +++++++++++++++++++++++++---\n docs/mcp/explorer/explorer.template.html | 102 ++++++++++++++++++++++++---\n docs/mcp/tools-list.json | 373 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++-------\n docs/mcp/tools.md | 117 +++++++++++++++++++++++--------\n tests/Unit/Component/ES/AsyncUpdateElasticSearchTest.php | 16 +----\n tests/Unit/Component/ES/Listeners/UpdateMultipleTargetsListenerTest.php | 10 ---\n tests/Unit/Component/ES/Listeners/UpdateSingleTargetListenerTest.php | 6 --\n tests/Unit/Component/ES/Processor/TargetEntitiesSelectorTest.php | 9 ---\n tests/Unit/Component/ES/Processor/Traits/SelectEntityListTraitTest.php | 15 ++--\n tests/Unit/Component/ES/UpdateProcessManagerTest.php | 2 -\n tests/Unit/Services/Calendar/CalendarActivityServiceTest.php | 150 ++++++++++++++++++++++++++++++++++++++--\n tests/Unit/Services/Calendar/Command/MapActivityDataTest.php | 78 ++-------------------\n 15 files changed, 832 insertions(+), 322 deletions(-)\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (master) $ co -b JY-20613-allow-owner-role-on-team-setup\nSwitched to a new branch 'JY-20613-allow-owner-role-on-team-setup'\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20613-allow-owner-role-on-team-setup) $ csfix\ndocker exec -it docker_lamp_1 ./vendor/bin/php-cs-fixer fix --config=.php-cs-fixer.dist.php -v --using-cache=no --diff \nPHP CS Fixer 3.87.1 Alexander by Fabien Potencier, Dariusz Ruminski and contributors.\nPHP runtime: 8.3.30\nRunning analysis on 7 cores with 10 files per process.\nParallel runner is an experimental feature and may be unstable, use it at your own risk. Feedback highly appreciated!\nLoaded config default from \".php-cs-fixer.dist.php\".\n 5682/5682 [▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓] 100%\n\n\nFixed 0 of 5682 files in 56.978 seconds, 67.00 MB memory used\n\nWhat's next:\n Try Docker Debug for seamless, persistent debugging tools in any container or image → docker debug docker_lamp_1\n Learn more at https://docs.docker.com/go/debug-cli/\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20613-allow-owner-role-on-team-setup) $ ;xd\ndocker exec -it docker_lamp_1 bash -c \"mv /usr/local/etc/php/conf.d/xdebug.ini ~/xdebug.ini\"\n\nWhat's next:\n Try Docker Debug for seamless, persistent debugging tools in any container or image → docker debug docker_lamp_1\n Learn more at https://docs.docker.com/go/debug-cli/\ndocker exec -it docker_lamp_1 supervisorctl restart all\njiminny-worker-processing-2:jiminny-worker-processing-2_00: stopped\njiminny-worker-processing-3:jiminny-worker-processing-3_00: stopped\njiminny-worker-processing-4:jiminny-worker-processing-4_00: stopped\njiminny-worker-processing-5:jiminny-worker-processing-5_00: stopped\njiminny-worker-processing-delayed:jiminny-worker-processing-delayed_00: stopped\nworker-analytics:worker-analytics_00: stopped\nworker-crm-update:worker-crm-update_00: stopped\nworker-download:worker-download_00: stopped\nworker-nudges:worker-nudges_00: stopped\nartisan-schedule:artisan-schedule_00: stopped\nworker-emails:worker-emails_00: stopped\nworker-calendar:worker-calendar_00: stopped\nworker:worker_00: stopped\nworker-conferences:worker-conferences_00: stopped\nworker-crm-sync:worker-crm-sync_00: stopped\njiminny-worker-processing-1:jiminny-worker-processing-1_00: stopped\nworker-audio:worker-audio_00: stopped\nworker-es-update:worker-es-update_00: stopped\nartisan-schedule:artisan-schedule_00: started\njiminny-worker-processing-1:jiminny-worker-processing-1_00: started\njiminny-worker-processing-2:jiminny-worker-processing-2_00: started\njiminny-worker-processing-3:jiminny-worker-processing-3_00: started\njiminny-worker-processing-4:jiminny-worker-processing-4_00: started\njiminny-worker-processing-5:jiminny-worker-processing-5_00: started\njiminny-worker-processing-delayed:jiminny-worker-processing-delayed_00: started\nworker:worker_00: started\nworker-analytics:worker-analytics_00: started\nworker-audio:worker-audio_00: started\nworker-calendar:worker-calendar_00: started\nworker-conferences:worker-conferences_00: started\nworker-crm-sync:worker-crm-sync_00: started\nworker-crm-update:worker-crm-update_00: started\nworker-download:worker-download_00: started\nworker-emails:worker-emails_00: started\nworker-es-update:worker-es-update_00: started\nworker-nudges:worker-nudges_00: started\n\nWhat's next:\n Try Docker Debug for seamless, persistent debugging tools in any container or image → docker debug docker_lamp_1\n Learn more at https://docs.docker.com/go/debug-cli/\ndocker exec -it docker_lamp_1 php -v\nPHP 8.3.30 (cli) (built: Mar 16 2026 22:32:32) (NTS)\nCopyright (c) The PHP Group\nZend Engine v4.3.30, Copyright (c) Zend Technologies\n with Zend OPcache v8.3.30, Copyright (c), by Zend Technologies\n\nWhat's next:\n Try Docker Debug for seamless, persistent debugging tools in any container or image → docker debug docker_lamp_1\n Learn more at https://docs.docker.com/go/debug-cli/\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20613-allow-owner-role-on-team-setup) $ csfix\ndocker exec -it docker_lamp_1 ./vendor/bin/php-cs-fixer fix --config=.php-cs-fixer.dist.php -v --using-cache=no --diff \nPHP CS Fixer 3.87.1 Alexander by Fabien Potencier, Dariusz Ruminski and contributors.\nPHP runtime: 8.3.30\nRunning analysis on 7 cores with 10 files per process.\nParallel runner is an experimental feature and may be unstable, use it at your own risk. Feedback highly appreciated!\nLoaded config default from \".php-cs-fixer.dist.php\".\n 5682/5682 [▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓] 100%\n\n\nFixed 0 of 5682 files in 49.910 seconds, 60.00 MB memory used\n\nWhat's next:\n Try Docker Debug for seamless, persistent debugging tools in any container or image → docker debug docker_lamp_1\n Learn more at https://docs.docker.com/go/debug-cli/\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20613-allow-owner-role-on-team-setup) $ git status\nOn branch JY-20613-allow-owner-role-on-team-setup\nYour branch is ahead of 'origin/JY-20613-allow-owner-role-on-team-setup' by 1 commit.\n (use \"git push\" to publish your local commits)\n\nChanges not staged for commit:\n (use \"git add <file>...\" to update what will be committed)\n (use \"git restore <file>...\" to discard changes in working directory)\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tmodified: .env.local\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tmodified: config/logging.php\n\nUntracked files:\n (use \"git add <file>...\" to include in what will be committed)\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\t.env.nikilocal\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\t.env.other\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tWEBHOOK_FILTERING_IMPLEMENTATION.md\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tapp/Console/Commands/Crm/Hubspot/SimulateWebhooksCommand.php\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tapp/Console/Commands/Reports/CreateMockAskJiminnyReportResultCommand.php\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tids.txt\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tpublic/favicon.ico\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\traw_sql_query.sql\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\ttests/Unit/Policies/CanAccessAiReportsTest.php\n\nno changes added to commit (use \"git add\" and/or \"git commit -a\")\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20613-allow-owner-role-on-team-setup) $ git pull\nremote: Enumerating objects: 248, done.\nremote: Counting objects: 100% (128/128), done.\nremote: Compressing objects: 100% (23/23), done.\nremote: Total 59 (delta 43), reused 44 (delta 33), pack-reused 0 (from 0)\nUnpacking objects: 100% (59/59), 10.48 KiB | 228.00 KiB/s, done.\nFrom github.com:jiminny/app\n b7df560451..190239dfd4 JY-20613-allow-owner-role-on-team-setup -> origin/JY-20613-allow-owner-role-on-team-setup\n e0351be069..d94a285ae7 JY-20808-low-priority-indexing-queue -> origin/JY-20808-low-priority-indexing-queue\n * [new branch] JY-20920-fix-participant-matcher -> origin/JY-20920-fix-participant-matcher\n cb4ebf0c36..90bca4e4b2 master -> origin/master\nMerge made by the 'ort' strategy.\n app/Component/ES/ChunkSize.php | 54 +++++++++++++++++++++++++++\n app/Component/ES/Processor/DTOs/SelectionList.php | 4 +-\n app/Component/ES/Processor/TargetEntitiesSelector.php | 19 ++++++----\n app/Http/Middleware/McpTierMiddleware.php | 27 +++-----------\n app/Mcp/Servers/JiminnyServer.php | 2 +\n app/Mcp/Tools/GetMeTool.php | 157 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++\n app/Models/Feature/FeatureEnum.php | 1 +\n database/migrations/2026_05_13_124153_create_mcp_feature_flag.php | 25 +++++++++++++\n front-end/src/components/Settings/Kiosk/modals/EditTeamModal/EditTeamModal.vue | 52 ++++++++++++++++++--------\n front-end/src/components/Settings/Kiosk/modals/EditTeamModal/__tests__/EditTeamModal.spec.js | 14 +++++++\n tests/Feature/Mcp/GetMeToolFeatureTest.php | 140 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++\n tests/Feature/Mcp/ListCallsToolFeatureTest.php | 2 +-\n tests/Feature/Mcp/McpTestHelpersTrait.php | 19 +++++++++-\n tests/Unit/Component/ES/ChunkSizeTest.php | 50 +++++++++++++++++++++++++\n tests/Unit/Component/ES/Processor/DTOs/SelectionListTest.php | 27 ++++++++++----\n tests/Unit/Component/ES/Processor/TargetEntitiesSelectorTest.php | 39 +++++++++++---------\n 16 files changed, 557 insertions(+), 75 deletions(-)\n create mode 100644 app/Component/ES/ChunkSize.php\n create mode 100644 app/Mcp/Tools/GetMeTool.php\n create mode 100644 database/migrations/2026_05_13_124153_create_mcp_feature_flag.php\n create mode 100644 tests/Feature/Mcp/GetMeToolFeatureTest.php\n create mode 100644 tests/Unit/Component/ES/ChunkSizeTest.php\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20613-allow-owner-role-on-team-setup) $ git push\nEnumerating objects: 40, done.\nCounting objects: 100% (34/34), done.\nDelta compression using up to 8 threads\nCompressing objects: 100% (18/18), done.\nWriting objects: 100% (18/18), 1.58 KiB | 1.58 MiB/s, done.\nTotal 18 (delta 15), reused 0 (delta 0), pack-reused 0\nremote: Resolving deltas: 100% (15/15), completed with 13 local objects.\nTo github.com:jiminny/app.git\n 190239dfd4..ec1b261264 JY-20613-allow-owner-role-on-team-setup -> JY-20613-allow-owner-role-on-team-setup\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20613-allow-owner-role-on-team-setup) $ gbr\n* JY-20613-allow-owner-role-on-team-setup\n pipedrive-sdk-poc\n master\n JY-20903-update_activity-stage-on-opportunity-change\n JY-20904-fix-update-es-on-activity-command\n JY-20891-improve-sms-text-relays\n JY-20725-handle-HS-search-rate-limit\n JY-20818-move-AJ-reports-to-separated-datadog-metric\n JY-20773-fix-automated-reports-user-pilot-tracking\n JY-20157-AJ-report-not-send-notification\n JY-20508-notify-before-AJ-report-expiration\n JY-20372-ai-reports-promotion-pages\n JY-20352-sync-opportunities-without-a-local-owner-user-id-is-null\n JY-20738-debug-AJ-tracking-UP\n a\n JY-18909-automated-reports-ask-jiminny\n JY-20692-fix-integration-app-token-auth-response-change\n JY-20553-debug-crm-sync-delays\n JY-20698-fix-SF-activity-types-on-new-playbook\n JY-20543-AJ-report-tracking\n JY-20384-handle-auto-sync-with-no-access-to-event-type\n JY-20458-ask-jiminny-user-definitions\n JY-19666-fix-import-contacts-account-association\n JY-19666-HS-import-contacts-and-accounts-batch-job\n JY-20458-Ask-Jiminny-Reports\n JY-20200-batch-update-CRM-objects-Salesforce\n JY-19666-HS-webhooks-add-contact-and-company\n JY-20348-trigger-setup-DI-layout-on-team-creation\n JY-20326-refactor-info-message-in-command\n JY-20317-fix-auto-log-delay-issue-on-all-channels-disabled\n JY-20312-remove-on-update-change-last-synced-at-crm-configurations\n JY-20306-SF-skip-auto-sync-for-task-based-playbook\n JY-20192-remove-deleted-team-from-saved-search-filters\n JY-20197-import-opportunity-batch-job\n JY-20293-enable-status-field-for-pipedrive-deals\n JY-20191-remove-commands-interactive-prompts\n JY-20118-change-default-sync-strategy\n JY-20183-add-cache-on-auto-log-delay\n JY-20197-add-import-opportunity-batch-job\n 20118-hs-opportunity-make-webhook-strategy-default\n JY-20118-make-default-hs-opportunity-sync-strategy-webhook-based\n JY-20196-handle-opportunity-without-note\n JY-20118-improve-opportunity-import\n JY-20189-handle-activity-search-on-deleted-groups\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20613-allow-owner-role-on-team-setup) $ co JY-20725-handle-HS-search-rate-limit\nM\u0000\u0000\u0000\u0000\u0000\u0000\t.env.local\nM\u0000\u0000\u0000\u0000\u0000\u0000\tconfig/logging.php\nSwitched to branch 'JY-20725-handle-HS-search-rate-limit'\nYour branch is behind 'origin/JY-20725-handle-HS-search-rate-limit' by 439 commits, and can be fast-forwarded.\n (use \"git pull\" to update your local branch)\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20725-handle-HS-search-rate-limit) $ git pull\nUpdating 0f3e438941..bc6a3fce6b\nFast-forward\n .gitignore | 3 +-\n .windsurfrules | 168 ++---\n CLAUDE.md | 1 +\n app/Component/ActivityAnalytics/Service/CalculateTalkTimeOffsetsFromTranscription.php | 24 +-\n app/Component/AiActivityType/Services/AiActivityTypeEligibilityChecker.php | 28 +-\n app/Component/AiAutomation/Actions/PrepareUpdateDtoAction.php | 32 +-\n app/Component/AiAutomation/Services/CrmFillingEligibilityChecker.php | 47 ++\n app/Component/AiAutomation/TestCrmAiPromptService.php | 14 +\n app/Component/AiCallScoring/Services/AiCallScoringEligibilityChecker.php | 9 +\n app/Component/ES/ElasticSearchDocumentPartialUpdater.php | 13 +-\n app/Component/ES/ElasticSearchWorkerManager.php | 86 ---\n app/Component/ES/Processor/Actions/LoadDocumentsAction.php | 80 +--\n app/Component/ES/Processor/EntityQueryBuilder.php | 12 +-\n app/Component/ES/Processor/TargetEntitiesSelector.php | 2 +-\n app/Component/ES/Processor/Traits/SkipActivityTrait.php | 25 -\n app/Component/ES/Repositories/EsResetActivityRepository.php | 11 +-\n app/Component/ES/Worker/ActivityWorker.php | 73 --\n app/Component/ES/Worker/EntityWorker.php | 44 --\n app/Component/ES/Worker/WorkerAmount.php | 60 --\n app/Component/ES/Worker/WorkerInterface.php | 15 -\n app/Component/ElasticSearch/Contract/Searchable.php | 4 +\n app/Component/Encoding/Job/AnalyzeTrackChannelsJob.php | 20 +-\n app/Component/Encoding/Service/GenerateSpeechFromSilenceService.php | 85 ++-\n app/Component/FFMpeg/Services/GetSpeechIntervalsService.php | 18 +-\n app/Component/LanguageDetection/Services/FindSpeechTimeService.php | 22 +-\n app/Component/Nudge/Job/ProcessOrganisationImmediateNudgesJob.php | 218 +++++-\n app/Component/ParagraphBreaker/Services/TranscriptionParagraphsService.php | 4 +\n app/Component/ParticipantSpeech/Services/ParticipantSpeechesCreator.php | 33 +\n app/Component/ParticipantSpeech/Services/ParticipantSpeechesDeleter.php | 15 +\n app/Component/ParticipantSpeech/Services/ParticipantSpeechesProvider.php | 51 +-\n app/Component/ParticipantSpeech/Services/ParticipantSpeechesUploader.php | 36 +\n app/Component/ProphetAi/Exceptions/InsufficientTranscriptException.php | 11 +\n app/Component/Transcription/DTO/Http/Transcription/AssemblyAI/AssemblyAI/NoAssemblyIdException.php | 11 +\n app/Component/Transcription/DTO/Http/Transcription/AssemblyAI/AssemblyAI/SuccessfulResponse.php | 6 +\n app/Component/Transcription/DTO/Http/Transcription/TranscriptionIsNotCorrectFormatException.php | 11 +\n app/Component/Transcription/Diarization/Services/GetNormalizedParticipantSpeechesService.php | 23 +-\n app/Component/Transcription/Diarization/Source/MeetingBotSource.php | 16 +-\n app/Component/Transcription/TranscriptionProcessor/TranscriptionProcessor.php | 3 +\n app/Console/Commands/Activities/ActivityHardDeleteCommand.php | 4 +-\n app/Console/Commands/Activities/Copy.php | 2 +\n app/Console/Commands/Activities/SetupIntegration/TwilioSetS3RecordingCredentialsCommand.php | 119 ++++\n app/Console/Commands/Activities/UpdateActivityElasticSearchDocumentCommand.php | 10 +-\n app/Console/Commands/Crm/BackfillOpportunityUserFromAccountCommand.php | 126 ++++\n app/Console/Commands/Elasticsearch/AsyncUpdateEsActivities.php | 19 -\n app/Console/Commands/Elasticsearch/AsyncUpdateEsEntities.php | 50 +-\n app/Console/Commands/Elasticsearch/ResetAsyncElasticSearchCommand.php | 30 +-\n app/Console/Commands/GeckoExport/GeckoExportParticipantSpeechesCommand.php | 14 +-\n app/Console/Commands/IssueMcpTokenCommand.php | 84 +++\n app/Console/Commands/JiminnyDebugCommand.php | 7 +-\n app/Console/Commands/Tracks/CleanupActivityTracksCommand.php | 2 +-\n app/Console/Kernel.php | 6 +-\n app/Contracts/Services/Calendar/CalendarTrait.php | 80 ++-\n app/Events/AutomatedReports/AutomatedReportGenerated.php | 3 +\n app/Http/Controllers/API/AiCallScoring/AiScorecardController.php | 7 +-\n app/Http/Controllers/API/TeamAiAutomationController.php | 8 +\n app/Http/Controllers/CustomerApi/CustomerApiController.php | 4 +-\n app/Http/Controllers/Kiosk/ActivityController.php | 58 +-\n app/Http/Controllers/Settings/PlaybookController.php | 15 +-\n app/Http/Kernel.php | 23 +\n app/Http/Middleware/McpAuditMiddleware.php | 156 ++++\n app/Http/Middleware/McpTierMiddleware.php | 54 ++\n app/Http/Requests/API/V2/ZapierUploadActivityRequest.php | 28 +-\n app/Jobs/Activity/Import/ImportTwilioVideoSpeechesJob.php | 25 +-\n app/Jobs/Activity/Import/IsActivityReadyForProcessingJob.php | 10 +-\n app/Jobs/Calendar/SetupCalendarSync.php | 21 +-\n app/Jobs/ImportRemoteTrackJob.php | 96 ++-\n app/Jobs/Mailbox/EmailTextRelay.php | 15 +-\n app/Mcp/Contracts/McpCallRepositoryInterface.php | 30 +\n app/Mcp/DTO/ListCallsFilters.php | 29 +\n app/Mcp/Errors/McpError.php | 123 ++++\n app/Mcp/Repositories/McpActivityHydrator.php | 145 ++++\n app/Mcp/Repositories/McpCallRepository.php | 84 +++\n app/Mcp/Repositories/McpElasticCallRepository.php | 171 +++++\n app/Mcp/Servers/JiminnyServer.php | 38 +\n app/Mcp/Tools/ListCallsTool.php | 205 ++++++\n app/Models/Activity.php | 10 +-\n app/Models/Activity/Transcription.php | 17 +-\n app/Models/ElasticSearch/OpportunityElasticSearchTrait.php | 5 +\n app/Models/Participant.php | 1 +\n app/Providers/AppServiceProvider.php | 22 +\n app/Repositories/Crm/ContactRepository.php | 69 +-\n app/Repositories/ParticipantSpeechRepository.php | 13 +-\n app/Services/Activity/ParticipantsService.php | 19 +-\n app/Services/Activity/Twilio/S3RecordingCredentialsService.php | 82 +++\n app/Services/ActivityService.php | 21 +-\n app/Services/Calendar/CalendarActivityService.php | 46 ++\n app/Services/Calendar/Command/ImportParticipants.php | 1 +\n app/Services/Calendar/Command/MapActivityData.php | 106 +--\n app/Services/Calendar/GoogleCalendarService.php | 12 +-\n app/Services/Crm/Close/Processor/OpportunityProcessor.php | 2 +-\n app/Services/Crm/Close/Service.php | 22 +-\n app/Services/Crm/Copper/Service.php | 12 +-\n app/Services/Crm/Hubspot/Service.php | 154 +++-\n app/Services/Crm/Hubspot/ServiceTraits/OpportunitySyncTrait.php | 88 ++-\n app/Services/Crm/IntegrationApp/ServiceTraits/SyncCrmEntitiesTrait.php | 22 +-\n app/Services/Crm/Pipedrive/Service.php | 17 +-\n app/Services/Crm/Salesforce/Service.php | 42 +-\n app/Services/Mail/Office/EmailApiClient.php | 129 +---\n app/Services/RecallAI/Commands/ScheduleBotCommand.php | 39 +-\n app/Services/RecallAI/RecallAIService.php | 22 +-\n composer.json | 3 +-\n composer.lock | 87 ++-\n config/mcp.php | 23 +\n database/migrations/2026_04_30_120000_create_mcp_audit_log_table.php | 36 +\n docs/mcp/explorer/explorer.html | 697 ++++++++++++++++++\n docs/mcp/explorer/explorer.template.html | 697 ++++++++++++++++++\n docs/mcp/explorer/generate.js | 215 ++++++\n docs/mcp/explorer/tool-explorer-meta.json | 11 +\n docs/mcp/tools-list.json | 2536 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++\n docs/mcp/tools.md | 621 ++++++++++++++++\n front-end/package.json | 4 +-\n front-end/src/components/Settings/OrgSettings/AiAutomation/CrmFilling/TemplateFieldForm.vue | 28 +-\n front-end/src/components/Settings/OrgSettings/Playbooks/AddEditPlaybook.vue | 10 +\n front-end/src/components/playback/comments/ActivityComment.less | 10 +-\n front-end/src/components/shared/PromptTester/PromptTester.vue | 12 +-\n front-end/src/components/shared/__tests__/PromptTester.spec.js | 35 +\n front-end/src/components/shared/modals/EntityPickerModal/__tests__/useEntitiesCache.spec.ts | 37 +\n front-end/src/components/shared/modals/EntityPickerModal/useEntitiesCache.ts | 9 +\n front-end/yarn.lock | 16 +-\n phpstan-baseline.neon | 50 --\n routes/api.php | 11 +\n sonar-project.properties | 91 ++-\n tests/Feature/Component/Nudge/ProcessOrganisationImmediateNudgesJobTest.php | 534 ++++++++++++++\n tests/Feature/Jobs/ImportRemoteTrackJobTest.php | 283 +++++++-\n tests/Feature/Mcp/IssueMcpTokenCommandTest.php | 53 ++\n tests/Feature/Mcp/ListCallsToolElasticFeatureTest.php | 155 ++++\n tests/Feature/Mcp/ListCallsToolFeatureTest.php | 352 ++++++++++\n tests/Feature/Mcp/McpTestHelpersTrait.php | 77 ++\n tests/Feature/Services/Team/TeamDeleteHandlers/Retention/RetentionRepositoryHandlerTest.php | 1 +\n tests/Stubs/SentryStub.php | 18 +\n tests/Unit/Component/ActivityAnalytics/Service/CalculateTalkTimeOffsetFromTranscriptionTest.php | 28 +-\n tests/Unit/Component/AiActivityType/Services/AiActivityTypeEligibilityCheckerTest.php | 103 ++-\n tests/Unit/Component/AiAutomation/Actions/PrepareUpdateDtoActionTest.php | 91 +++\n tests/Unit/Component/AiAutomation/Services/CrmFillingEligibilityCheckerTest.php | 124 ++++\n tests/Unit/Component/AiAutomation/TestCrmAiPromptServiceTest.php | 67 +-\n tests/Unit/Component/AiCallScoring/Services/AiCallScoringEligibilityCheckerTest.php | 55 ++\n tests/Unit/Component/ES/ElasticSearchWorkerManagerTest.php | 135 ----\n tests/Unit/Component/ES/Processor/Actions/LoadDocumentsActionTest.php | 220 ++++++\n tests/Unit/Component/ES/Processor/EntityQueryBuilderTest.php | 21 +-\n tests/Unit/Component/ES/Processor/Traits/SkipActivityTraitTest.php | 51 --\n tests/Unit/Component/ES/Worker/ActivityWorkerTest.php | 174 -----\n tests/Unit/Component/ES/Worker/EntityWorkerTest.php | 97 ---\n tests/Unit/Component/ES/Worker/WorkerAmountTest.php | 116 ---\n tests/Unit/Component/Encoding/Job/AnalyzeTrackChannelsJobTest.php | 52 +-\n tests/Unit/Component/Encoding/Service/GenerateSpeechFromSilenceServiceTest.php | 171 ++---\n tests/Unit/Component/FFMpeg/Services/GetSpeechIntervalsTest.php | 36 +-\n tests/Unit/Component/LanguageDetection/Services/FindSpeechTimeServiceTest.php | 20 +-\n tests/Unit/Component/MobileSettings/MobileSettingsControllerTest.php | 5 +-\n tests/Unit/Component/ParticipantSpeech/Services/ParticipantSpeechesCreatorTest.php | 75 ++\n tests/Unit/Component/ParticipantSpeech/Services/ParticipantSpeechesDeleterTest.php | 63 ++\n tests/Unit/Component/ParticipantSpeech/Services/ParticipantSpeechesProviderTest.php | 134 ++++\n tests/Unit/Component/ParticipantSpeech/Services/ParticipantSpeechesUploaderTest.php | 57 ++\n tests/Unit/Component/Transcription/Diarization/Services/GetNormalizedParticipantSpeechesServiceTest.php | 51 +-\n tests/Unit/Component/Transcription/Diarization/Source/MeetingBotSourceTest.php | 29 +-\n tests/Unit/Contracts/Services/Calendar/CalendarTraitTest.php | 58 +-\n tests/Unit/Http/Controllers/Kiosk/ActivityControllerTest.php | 159 +++++\n tests/Unit/Jobs/Activity/Import/ImportTwilioVideoSpeechesJobTest.php | 22 +-\n tests/Unit/Jobs/Activity/Import/IsActivityReadyForProcessingJobTest.php | 26 +-\n tests/Unit/Jobs/Calendar/SetupCalendarSyncTest.php | 25 -\n tests/Unit/Services/Activity/ParticipantsServiceTest.php | 12 +-\n tests/Unit/Services/Activity/Twilio/S3RecordingCredentialsServiceTest.php | 180 +++++\n tests/Unit/Services/ActivityServiceTest.php | 132 ++++\n tests/Unit/Services/Calendar/CalendarActivityServiceTest.php | 150 +++-\n tests/Unit/Services/Calendar/Command/ImportParticipantsTest.php | 6 +-\n tests/Unit/Services/Calendar/Command/MapActivityDataTest.php | 78 +-\n tests/Unit/Services/Calendar/GoogleCalendarServiceTest.php | 116 +++\n tests/Unit/Services/Crm/Close/ServiceTest.php | 165 +++++\n tests/Unit/Services/Crm/Hubspot/ServiceTest.php | 272 ++++++-\n tests/Unit/Services/Crm/Hubspot/ServiceTraits/OpportunitySyncTest.php | 25 +-\n tests/Unit/Services/Crm/Hubspot/ServiceTraits/OpportunitySyncTraitMatchActivitiesTest.php | 3 +-\n tests/Unit/Services/Crm/IntegrationApp/ServiceTraits/SyncCrmEntitiesTraitOpportunitiesTest.php | 40 ++\n tests/Unit/Services/Crm/Pipedrive/ImportOpportunityMatchActivitiesTest.php | 2 +\n tests/Unit/Services/Crm/Salesforce/ServiceTest.php | 139 ++++\n tests/Unit/Services/Mail/Office/EmailApiClientTest.php | 195 ++---\n tests/Unit/Services/RecallAI/RecallAIServiceTest.php | 24 +-\n 175 files changed, 12562 insertions(+), 2162 deletions(-)\n create mode 120000 CLAUDE.md\n create mode 100644 app/Component/AiAutomation/Services/CrmFillingEligibilityChecker.php\n delete mode 100644 app/Component/ES/ElasticSearchWorkerManager.php\n delete mode 100644 app/Component/ES/Processor/Traits/SkipActivityTrait.php\n delete mode 100644 app/Component/ES/Worker/ActivityWorker.php\n delete mode 100644 app/Component/ES/Worker/EntityWorker.php\n delete mode 100644 app/Component/ES/Worker/WorkerAmount.php\n delete mode 100644 app/Component/ES/Worker/WorkerInterface.php\n create mode 100644 app/Component/ProphetAi/Exceptions/InsufficientTranscriptException.php\n create mode 100644 app/Component/Transcription/DTO/Http/Transcription/AssemblyAI/AssemblyAI/NoAssemblyIdException.php\n create mode 100644 app/Component/Transcription/DTO/Http/Transcription/TranscriptionIsNotCorrectFormatException.php\n create mode 100644 app/Console/Commands/Activities/SetupIntegration/TwilioSetS3RecordingCredentialsCommand.php\n create mode 100644 app/Console/Commands/Crm/BackfillOpportunityUserFromAccountCommand.php\n delete mode 100644 app/Console/Commands/Elasticsearch/AsyncUpdateEsActivities.php\n create mode 100644 app/Console/Commands/IssueMcpTokenCommand.php\n create mode 100644 app/Http/Middleware/McpAuditMiddleware.php\n create mode 100644 app/Http/Middleware/McpTierMiddleware.php\n create mode 100644 app/Mcp/Contracts/McpCallRepositoryInterface.php\n create mode 100644 app/Mcp/DTO/ListCallsFilters.php\n create mode 100644 app/Mcp/Errors/McpError.php\n create mode 100644 app/Mcp/Repositories/McpActivityHydrator.php\n create mode 100644 app/Mcp/Repositories/McpCallRepository.php\n create mode 100644 app/Mcp/Repositories/McpElasticCallRepository.php\n create mode 100644 app/Mcp/Servers/JiminnyServer.php\n create mode 100644 app/Mcp/Tools/ListCallsTool.php\n create mode 100644 app/Services/Activity/Twilio/S3RecordingCredentialsService.php\n create mode 100644 config/mcp.php\n create mode 100644 database/migrations/2026_04_30_120000_create_mcp_audit_log_table.php\n create mode 100644 docs/mcp/explorer/explorer.html\n create mode 100644 docs/mcp/explorer/explorer.template.html\n create mode 100644 docs/mcp/explorer/generate.js\n create mode 100644 docs/mcp/explorer/tool-explorer-meta.json\n create mode 100644 docs/mcp/tools-list.json\n create mode 100644 docs/mcp/tools.md\n create mode 100644 front-end/src/components/shared/modals/EntityPickerModal/__tests__/useEntitiesCache.spec.ts\n create mode 100644 tests/Feature/Component/Nudge/ProcessOrganisationImmediateNudgesJobTest.php\n create mode 100644 tests/Feature/Mcp/IssueMcpTokenCommandTest.php\n create mode 100644 tests/Feature/Mcp/ListCallsToolElasticFeatureTest.php\n create mode 100644 tests/Feature/Mcp/ListCallsToolFeatureTest.php\n create mode 100644 tests/Feature/Mcp/McpTestHelpersTrait.php\n create mode 100644 tests/Stubs/SentryStub.php\n create mode 100644 tests/Unit/Component/AiAutomation/Services/CrmFillingEligibilityCheckerTest.php\n delete mode 100644 tests/Unit/Component/ES/ElasticSearchWorkerManagerTest.php\n create mode 100644 tests/Unit/Component/ES/Processor/Actions/LoadDocumentsActionTest.php\n delete mode 100644 tests/Unit/Component/ES/Processor/Traits/SkipActivityTraitTest.php\n delete mode 100644 tests/Unit/Component/ES/Worker/ActivityWorkerTest.php\n delete mode 100644 tests/Unit/Component/ES/Worker/EntityWorkerTest.php\n delete mode 100644 tests/Unit/Component/ES/Worker/WorkerAmountTest.php\n create mode 100644 tests/Unit/Component/ParticipantSpeech/Services/ParticipantSpeechesCreatorTest.php\n create mode 100644 tests/Unit/Http/Controllers/Kiosk/ActivityControllerTest.php\n create mode 100644 tests/Unit/Services/Activity/Twilio/S3RecordingCredentialsServiceTest.php\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20725-handle-HS-search-rate-limit) $ git status\nOn branch master\nYour branch is behind 'origin/master' by 114 commits, and can be fast-forwarded.\n (use \"git pull\" to update your local branch)\n\nChanges not staged for commit:\n (use \"git add <file>...\" to update what will be committed)\n (use \"git restore <file>...\" to discard changes in working directory)\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tmodified: .env.local\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tmodified: app/Component/SCIM/Constants.php\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tmodified: app/Component/SCIM/ScimProvisioning.php\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tmodified: app/Component/Twilio/Conference/ConferenceManager/SoftPhoneManager.php\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tmodified: app/Console/Commands/JiminnyDebugCommand.php\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tmodified: app/DTO/SCIM/AAD/Request/CoreUserRequest.php\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tmodified: app/DTO/SCIM/AAD/Response/CoreUser.php\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tmodified: app/Services/Telephony/TextMessagingService.php\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tmodified: config/logging.php\n\nUntracked files:\n (use \"git add <file>...\" to include in what will be committed)\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\t.env.nikilocal\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\t.env.other\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tWEBHOOK_FILTERING_IMPLEMENTATION.md\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tapp/Component/SCIM/Mutators/Attributes/User/RoleAttr.php\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tapp/Console/Commands/Crm/Hubspot/SimulateWebhooksCommand.php\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tapp/Console/Commands/Reports/CreateMockAskJiminnyReportResultCommand.php\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tapp/Rules/ListenerRoleCannotHaveAdminOrManagerPermissionRule.php\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tids.txt\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tpublic/favicon.ico\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\traw_sql_query.sql\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\ttests/Unit/Component/SCIM/Mutators/Attributes/User/RoleAttrTest.php\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\ttests/Unit/Policies/CanAccessAiReportsTest.php\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\ttests/Unit/Rules/ListenerRoleCannotHaveAdminOrManagerPermissionRuleTest.php\n\nno changes added to commit (use \"git add\" and/or \"git commit -a\")\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (master) $ git pull\nremote: Enumerating objects: 306, done.\nremote: Counting objects: 100% (299/299), done.\nremote: Compressing objects: 100% (183/183), done.\nremote: Total 306 (delta 213), reused 171 (delta 116), pack-reused 7 (from 1)\nReceiving objects: 100% (306/306), 80.12 KiB | 1000.00 KiB/s, done.\nResolving deltas: 100% (213/213), completed with 53 local objects.\nFrom github.com:jiminny/app\n 90bca4e4b2..5604af40cf master -> origin/master\n 4e7078fd8b..0b8343d179 JY-18091-upgrade-to-php-8-5 -> origin/JY-18091-upgrade-to-php-8-5\n 098eeaa087..d5a447e492 JY-20613-allow-owner-role-on-team-setup -> origin/JY-20613-allow-owner-role-on-team-setup\n c3a76ace91..af65249d0f JY-20749-user-can-view-recorded-meetings -> origin/JY-20749-user-can-view-recorded-meetings\n d94a285ae7..7ce96cb5fe JY-20808-low-priority-indexing-queue -> origin/JY-20808-low-priority-indexing-queue\n * [new branch] JY-20842-remove-partial-updater -> origin/JY-20842-remove-partial-updater\n * [new branch] JY-20920-fix-participant-flip -> origin/JY-20920-fix-participant-flip\n * [new branch] secfix/npm-20260519 -> origin/secfix/npm-20260519\nUpdating cb4ebf0c36..5604af40cf\nFast-forward\n app/Component/ES/ChunkSize.php | 54 +++++++++++++++++++\n app/Component/ES/Processor/DTOs/SelectionList.php | 4 +-\n app/Component/ES/Processor/TargetEntitiesSelector.php | 19 ++++---\n app/Component/MeetingBot/Service/ParticipantMatcher.php | 46 ++++++++++++----\n app/Exceptions/RateLimitException.php | 19 ++++++-\n app/Http/Middleware/McpTierMiddleware.php | 27 ++--------\n app/Jobs/Crm/MatchActivityCrmData.php | 47 ++++++++++++----\n app/Jobs/Middleware/HandleHubspotRateLimit.php | 42 +++++++++++++++\n app/Mcp/Servers/JiminnyServer.php | 2 +\n app/Mcp/Tools/GetMeTool.php | 157 +++++++++++++++++++++++++++++++++++++++++++++++++++++\n app/Models/Feature/FeatureEnum.php | 1 +\n app/Services/Activity/HubSpot/ProviderResolver.php | 4 +-\n app/Services/Activity/HubSpot/ProviderResolverInterface.php | 2 +-\n app/Services/Activity/HubSpot/Providers/Provider.php | 2 +-\n app/Services/Activity/HubSpot/Providers/ProviderKixie.php | 2 +-\n app/Services/Activity/HubSpot/Providers/ProviderOrum.php | 2 +-\n app/Services/Activity/HubSpot/Providers/ProviderTwilio.php | 2 +-\n app/Services/Activity/HubSpot/Providers/ProviderTwilioFlex.php | 5 +-\n app/Services/Activity/HubSpot/Service.php | 97 +++++++++++++++++++++++++++------\n app/Services/Crm/Hubspot/Client.php | 132 +++++++++++++++++++++++++++++++++++++++++++++\n app/Services/Crm/Hubspot/HubspotClientInterface.php | 15 ++++++\n app/Services/Crm/Hubspot/Pagination/HubspotPaginationService.php | 21 ++++----\n app/Services/Crm/Hubspot/Pagination/PaginationState.php | 2 +-\n database/migrations/2026_05_13_124153_create_mcp_feature_flag.php | 25 +++++++++\n tests/Feature/Mcp/GetMeToolFeatureTest.php | 140 +++++++++++++++++++++++++++++++++++++++++++++++\n tests/Feature/Mcp/ListCallsToolFeatureTest.php | 2 +-\n tests/Feature/Mcp/McpTestHelpersTrait.php | 19 ++++++-\n tests/Unit/Component/ES/ChunkSizeTest.php | 50 +++++++++++++++++\n tests/Unit/Component/ES/Processor/DTOs/SelectionListTest.php | 27 +++++++---\n tests/Unit/Component/ES/Processor/TargetEntitiesSelectorTest.php | 39 ++++++++------\n tests/Unit/Component/MeetingBot/Service/ParticipantMatcherTest.php | 68 ++++++++++++++++++++++-\n tests/Unit/Exceptions/RateLimitExceptionTest.php | 56 +++++++++++++++++++\n tests/Unit/Jobs/Crm/MatchActivityCrmDataTest.php | 8 +--\n tests/Unit/Jobs/Middleware/HandleHubspotRateLimitTest.php | 151 +++++++++++++++++++++++++++++++++++++++++++++++++++\n tests/Unit/Services/Activity/HubSpot/ServiceTest.php | 109 +++++++++++++++++++++++++++++++++++++\n tests/Unit/Services/Crm/Hubspot/ClientTest.php | 250 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++\n tests/Unit/Services/Crm/Hubspot/Pagination/HubspotPaginationServiceTest.php | 283 +++++++++++++++++++++---------------------------------------------------------------------------\n 37 files changed, 1587 insertions(+), 344 deletions(-)\n create mode 100644 app/Component/ES/ChunkSize.php\n create mode 100644 app/Jobs/Middleware/HandleHubspotRateLimit.php\n create mode 100644 app/Mcp/Tools/GetMeTool.php\n create mode 100644 database/migrations/2026_05_13_124153_create_mcp_feature_flag.php\n create mode 100644 tests/Feature/Mcp/GetMeToolFeatureTest.php\n create mode 100644 tests/Unit/Component/ES/ChunkSizeTest.php\n create mode 100644 tests/Unit/Exceptions/RateLimitExceptionTest.php\n create mode 100644 tests/Unit/Jobs/Middleware/HandleHubspotRateLimitTest.php\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (master) $ git pull\nAlready up to date.\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (master) $ co -b JY-20676-delete-report-related-objects\nSwitched to a new branch 'JY-20676-delete-report-related-objects'\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20676-delete-report-related-objects) $ csfix\ndocker exec -it docker_lamp_1 ./vendor/bin/php-cs-fixer fix --config=.php-cs-fixer.dist.php -v --using-cache=no --diff \nPHP CS Fixer 3.87.1 Alexander by Fabien Potencier, Dariusz Ruminski and contributors.\nPHP runtime: 8.3.30\nRunning analysis on 7 cores with 10 files per process.\nParallel runner is an experimental feature and may be unstable, use it at your own risk. Feedback highly appreciated!\nLoaded config default from \".php-cs-fixer.dist.php\".\n 5690/5690 [▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓] 100%\n\n 1) app/Console/Commands/JiminnyDebugCommand.php (statement_indentation, blank_line_before_statement)\n ---------- begin diff ----------\n--- /home/jiminny/app/Console/Commands/JiminnyDebugCommand.php\n+++ /home/jiminny/app/Console/Commands/JiminnyDebugCommand.php\n@@ -23,6 +23,7 @@\n \n if ($action === 'redis-set') {\n $this->testRedisSet();\n+\n return;\n }\n \n@@ -45,7 +46,7 @@\n $ttl = 60;\n \n try {\n-// $result = Redis::set($testKey, $testValue, 'EX', $ttl, 'NX');\n+ // $result = Redis::set($testKey, $testValue, 'EX', $ttl, 'NX');\n $result = Redis::set($testKey, $testValue, ['nx', 'ex' => $ttl]);\n \n if ($result) {\n\n ----------- end diff -----------\n\n\nFixed 1 of 5690 files in 50.673 seconds, 67.00 MB memory used\n\nWhat's next:\n Try Docker Debug for seamless, persistent debugging tools in any container or image → docker debug docker_lamp_1\n Learn more at https://docs.docker.com/go/debug-cli/\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20676-delete-report-related-objects) $ ;xd\ndocker exec -it docker_lamp_1 bash -c \"mv /usr/local/etc/php/conf.d/xdebug.ini ~/xdebug.ini\"\n\nWhat's next:\n Try Docker Debug for seamless, persistent debugging tools in any container or image → docker debug docker_lamp_1\n Learn more at https://docs.docker.com/go/debug-cli/\ndocker exec -it docker_lamp_1 supervisorctl restart all\njiminny-worker-processing-2:jiminny-worker-processing-2_00: stopped\njiminny-worker-processing-3:jiminny-worker-processing-3_00: stopped\njiminny-worker-processing-4:jiminny-worker-processing-4_00: stopped\njiminny-worker-processing-5:jiminny-worker-processing-5_00: stopped\njiminny-worker-processing-delayed:jiminny-worker-processing-delayed_00: stopped\nworker-analytics:worker-analytics_00: stopped\nworker-crm-update:worker-crm-update_00: stopped\nworker-download:worker-download_00: stopped\nworker-nudges:worker-nudges_00: stopped\nworker-calendar:worker-calendar_00: stopped\nworker-audio:worker-audio_00: stopped\njiminny-worker-processing-1:jiminny-worker-processing-1_00: stopped\nworker:worker_00: stopped\nworker-conferences:worker-conferences_00: stopped\nworker-crm-sync:worker-crm-sync_00: stopped\nworker-emails:worker-emails_00: stopped\nworker-es-update:worker-es-update_00: stopped\nartisan-schedule:artisan-schedule_00: stopped\nartisan-schedule:artisan-schedule_00: started\njiminny-worker-processing-1:jiminny-worker-processing-1_00: started\njiminny-worker-processing-2:jiminny-worker-processing-2_00: started\njiminny-worker-processing-3:jiminny-worker-processing-3_00: started\njiminny-worker-processing-4:jiminny-worker-processing-4_00: started\njiminny-worker-processing-5:jiminny-worker-processing-5_00: started\njiminny-worker-processing-delayed:jiminny-worker-processing-delayed_00: started\nworker:worker_00: started\nworker-analytics:worker-analytics_00: started\nworker-audio:worker-audio_00: started\nworker-calendar:worker-calendar_00: started\nworker-conferences:worker-conferences_00: started\nworker-crm-sync:worker-crm-sync_00: started\nworker-crm-update:worker-crm-update_00: started\nworker-download:worker-download_00: started\nworker-emails:worker-emails_00: started\nworker-es-update:worker-es-update_00: started\nworker-nudges:worker-nudges_00: started\n\nWhat's next:\n Try Docker Debug for seamless, persistent debugging tools in any container or image → docker debug docker_lamp_1\n Learn more at https://docs.docker.com/go/debug-cli/\ndocker exec -it docker_lamp_1 php -v\nPHP 8.3.30 (cli) (built: Mar 16 2026 22:32:32) (NTS)\nCopyright (c) The PHP Group\nZend Engine v4.3.30, Copyright (c) Zend Technologies\n with Zend OPcache v8.3.30, Copyright (c), by Zend Technologies\n\nWhat's next:\n Try Docker Debug for seamless, persistent debugging tools in any container or image → docker debug docker_lamp_1\n Learn more at https://docs.docker.com/go/debug-cli/\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20676-delete-report-related-objects) $ git status\nOn branch JY-20676-delete-report-related-objects\nChanges not staged for commit:\n (use \"git add <file>...\" to update what will be committed)\n (use \"git restore <file>...\" to discard changes in working directory)\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tmodified: .env.local\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tmodified: app/Console/Commands/JiminnyDebugCommand.php\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tmodified: config/logging.php\n\nUntracked files:\n (use \"git add <file>...\" to include in what will be committed)\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\t.env.nikilocal\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\t.env.other\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tWEBHOOK_FILTERING_IMPLEMENTATION.md\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tapp/Console/Commands/Crm/Hubspot/SimulateWebhooksCommand.php\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tapp/Console/Commands/Reports/CreateMockAskJiminnyReportResultCommand.php\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tids.txt\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tpublic/favicon.ico\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\traw_sql_query.sql\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\ttests/Unit/Policies/CanAccessAiReportsTest.php\n\nno changes added to commit (use \"git add\" and/or \"git commit -a\")\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20676-delete-report-related-objects) $ git push -u origin JY-20676-delete-report-related-objects\nEnumerating objects: 45, done.\nCounting objects: 100% (45/45), done.\nDelta compression using up to 8 threads\nCompressing objects: 100% (24/24), done.\nWriting objects: 100% (24/24), 3.62 KiB | 3.62 MiB/s, done.\nTotal 24 (delta 19), reused 0 (delta 0), pack-reused 0\nremote: Resolving deltas: 100% (19/19), completed with 19 local objects.\nremote: \nremote: Create a pull request for 'JY-20676-delete-report-related-objects' on GitHub by visiting:\nremote: https://github.com/jiminny/app/pull/new/JY-20676-delete-report-related-objects\nremote: \nTo github.com:jiminny/app.git\n * [new branch] JY-20676-delete-report-related-objects -> JY-20676-delete-report-related-objects\nbranch 'JY-20676-delete-report-related-objects' set up to track 'origin/JY-20676-delete-report-related-objects'.\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20676-delete-report-related-objects) $ csfix\ndocker exec -it docker_lamp_1 ./vendor/bin/php-cs-fixer fix --config=.php-cs-fixer.dist.php -v --using-cache=no --diff \nPHP CS Fixer 3.87.1 Alexander by Fabien Potencier, Dariusz Ruminski and contributors.\nPHP runtime: 8.3.30\nRunning analysis on 7 cores with 10 files per process.\nParallel runner is an experimental feature and may be unstable, use it at your own risk. Feedback highly appreciated!\nLoaded config default from \".php-cs-fixer.dist.php\".\n 5690/5690 [▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓] 100%\n\n 1) app/Http/Controllers/API/V2/AskJiminnyReportsController.php (blank_line_before_statement)\n ---------- begin diff ----------\n--- /home/jiminny/app/Http/Controllers/API/V2/AskJiminnyReportsController.php\n+++ /home/jiminny/app/Http/Controllers/API/V2/AskJiminnyReportsController.php\n@@ -140,6 +140,7 @@\n if ($enabled && $report->isAskJiminnyReport() && ! $report->canExecute()) {\n $error = 'This report is missing a saved search or prompt. ' .\n 'Edit the report to complete the setup before enabling it.';\n+\n return new JsonResponse(\n ['error' => $error],\n Response::HTTP_UNPROCESSABLE_ENTITY\n\n ----------- end diff -----------\n\n\nFixed 1 of 5690 files in 71.757 seconds, 60.00 MB memory used\n\nWhat's next:\n Try Docker Debug for seamless, persistent debugging tools in any container or image → docker debug docker_lamp_1\n Learn more at https://docs.docker.com/go/debug-cli/\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20676-delete-report-related-objects) $ git pull\nremote: Enumerating objects: 158, done.\nremote: Counting objects: 100% (103/103), done.\nremote: Compressing objects: 100% (37/37), done.\nremote: Total 158 (delta 80), reused 74 (delta 66), pack-reused 55 (from 3)\nReceiving objects: 100% (158/158), 80.59 KiB | 982.00 KiB/s, done.\nResolving deltas: 100% (85/85), completed with 45 local objects.\nFrom github.com:jiminny/app\n 02a33811ee..c6ce5e2440 JY-20676-delete-report-related-objects -> origin/JY-20676-delete-report-related-objects\n 7ce96cb5fe..6c59f04358 JY-20808-low-priority-indexing-queue -> origin/JY-20808-low-priority-indexing-queue\n 3906a9238a..2b5e6ea62b JY-20835-mcp-enable-users-to-get-a-list-of-deals-and-their-details -> origin/JY-20835-mcp-enable-users-to-get-a-list-of-deals-and-their-details\n 5604af40cf..ea3519f0e2 master -> origin/master\n * [new branch] switch-eu-assembly -> origin/switch-eu-assembly\nUpdating 02a33811ee..c6ce5e2440\nFast-forward\n app/Component/ES/ElasticSearchDocumentPartialUpdater.php | 48 ---\n app/Component/ParticipantSpeech/Services/ParticipantAttributionService.php | 4 +-\n app/Component/Settings/AutoScoring/Services/UpdateAutoScoreService.php | 20 +-\n app/Component/Transcription/Service/StorageService.php | 8 +-\n front-end/package.json | 2 +-\n front-end/src/components/DealInsights/Modals/AskAnythingModal.vue | 23 ++\n front-end/src/components/shared/AskAnything/AskAnythingPromptFormItem.vue | 2 +\n front-end/src/components/shared/AskAnything/AskAnythingSettingsDrawer.vue | 23 +-\n front-end/src/components/shared/AskAnything/__mocks__/AskAnythingSettingsDrawer.mocks.js | 1 +\n front-end/src/components/shared/AskAnything/__tests__/AskAnythingSettingsDrawer.spec.js | 135 ++++---\n front-end/src/components/shared/AskAnything/__tests__/__snapshots__/AskAnythingSettingsDrawer.spec.js.html | 1235 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++\n front-end/src/components/shared/AskAnything/__tests__/__snapshots__/AskAnythingSettingsDrawer.spec.js.snap | 1382 ----------------------------------------------------------------\n front-end/src/components/shared/AskAnything/prompts.js | 1 +\n front-end/src/components/shared/AskAnything/useAskAnything.js | 1 +\n front-end/yarn.lock | 8 +-\n tests/Unit/Component/ES/ElasticSearchDocumentPartialUpdaterTest.php | 42 --\n tests/Unit/Component/Settings/AutoScoring/Services/UpdateAutoScoreServiceTest.php | 86 ++--\n tests/Unit/Component/Transcription/Service/StorageServiceTest.php | 29 +-\n 18 files changed, 1448 insertions(+), 1602 deletions(-)\n delete mode 100644 app/Component/ES/ElasticSearchDocumentPartialUpdater.php\n create mode 100644 front-end/src/components/shared/AskAnything/__tests__/__snapshots__/AskAnythingSettingsDrawer.spec.js.html\n delete mode 100644 front-end/src/components/shared/AskAnything/__tests__/__snapshots__/AskAnythingSettingsDrawer.spec.js.snap\n delete mode 100644 tests/Unit/Component/ES/ElasticSearchDocumentPartialUpdaterTest.php\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20676-delete-report-related-objects) $ csfix\ndocker exec -it docker_lamp_1 ./vendor/bin/php-cs-fixer fix --config=.php-cs-fixer.dist.php -v --using-cache=no --diff \nPHP CS Fixer 3.87.1 Alexander by Fabien Potencier, Dariusz Ruminski and contributors.\nPHP runtime: 8.3.30\nRunning analysis on 7 cores with 10 files per process.\nParallel runner is an experimental feature and may be unstable, use it at your own risk. Feedback highly appreciated!\nLoaded config default from \".php-cs-fixer.dist.php\".\n 5688/5688 [▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓] 100%\n\n\nFixed 0 of 5688 files in 79.904 seconds, 60.00 MB memory used\n\nWhat's next:\n Try Docker Debug for seamless, persistent debugging tools in any container or image → docker debug docker_lamp_1\n Learn more at https://docs.docker.com/go/debug-cli/\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20676-delete-report-related-objects) $ csfix\ndocker exec -it docker_lamp_1 ./vendor/bin/php-cs-fixer fix --config=.php-cs-fixer.dist.php -v --using-cache=no --diff \nPHP CS Fixer 3.87.1 Alexander by Fabien Potencier, Dariusz Ruminski and contributors.\nPHP runtime: 8.3.30\nRunning analysis on 7 cores with 10 files per process.\nParallel runner is an experimental feature and may be unstable, use it at your own risk. Feedback highly appreciated!\nLoaded config default from \".php-cs-fixer.dist.php\".\n 0/5688 [░░░░░░░░░░░░░░░░░░░░░░░░░░░░] 0%","depth":4,"on_screen":true,"value":"Last login: Mon May 18 09:17:28 on ttys007\n\nPoetry could not find a pyproject.toml file in /Users/lukas/jiminny/app or its parents\n\nPoetry could not find a pyproject.toml file in /Users/lukas/jiminny/app or its parents\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (pipedrive-sdk-poc) $ co master\nerror: Your local changes to the following files would be overwritten by checkout:\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tPIPEDRIVE_V2_MIGRATION_TICKETS.md\nPlease commit your changes or stash them before you switch branches.\nAborting\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (pipedrive-sdk-poc) $ git pull\nremote: Enumerating objects: 1047, done.\nremote: Counting objects: 100% (832/832), done.\nremote: Compressing objects: 100% (298/298), done.\nremote: Total 1047 (delta 634), reused 596 (delta 534), pack-reused 215 (from 3)\nReceiving objects: 100% (1047/1047), 353.16 KiB | 1.56 MiB/s, done.\nResolving deltas: 100% (687/687), completed with 107 local objects.\nFrom github.com:jiminny/app\n 907c54896c..34656c53ed pipedrive-sdk-poc -> origin/pipedrive-sdk-poc\n 03325ec50f..4e7078fd8b JY-18091-upgrade-to-php-8-5 -> origin/JY-18091-upgrade-to-php-8-5\n e7d231e163..bc6a3fce6b JY-20725-handle-HS-search-rate-limit -> origin/JY-20725-handle-HS-search-rate-limit\n * [new branch] JY-20749-user-can-view-recorded-meetings -> origin/JY-20749-user-can-view-recorded-meetings\n 98ca281a04..e0351be069 JY-20808-low-priority-indexing-queue -> origin/JY-20808-low-priority-indexing-queue\n 569abb5149..3906a9238a JY-20835-mcp-enable-users-to-get-a-list-of-deals-and-their-details -> origin/JY-20835-mcp-enable-users-to-get-a-list-of-deals-and-their-details\n ad6c2a86e8..50eb6afba9 JY-20846-mcp-enable-the-ai-to-know-details-about-the-user -> origin/JY-20846-mcp-enable-the-ai-to-know-details-about-the-user\n * [new branch] JY-20893-chunk-control-per-update-target -> origin/JY-20893-chunk-control-per-update-target\n 31c62924a5..cb4ebf0c36 master -> origin/master\nUpdating 907c54896c..34656c53ed\nFast-forward\n PIPEDRIVE_V2_MIGRATION_TICKETS.md | 52 ++++++++++++++++++++++++++++++++++++++++++++++++++++\n 1 file changed, 52 insertions(+)\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (pipedrive-sdk-poc) $ co master\nM\u0000\u0000\u0000\u0000\u0000\u0000\t.env.local\nM\u0000\u0000\u0000\u0000\u0000\u0000\tconfig/logging.php\nSwitched to branch 'master'\nYour branch is behind 'origin/master' by 31 commits, and can be fast-forwarded.\n (use \"git pull\" to update your local branch)\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (master) $ git pull\nUpdating 31c62924a5..cb4ebf0c36\nFast-forward\n app/Component/ES/Processor/Traits/SelectEntityListTrait.php | 20 ------\n app/Services/Calendar/CalendarActivityService.php | 46 +++++++++++++\n app/Services/Calendar/Command/MapActivityData.php | 106 +++-------------------------\n docs/mcp/explorer/explorer.html | 104 +++++++++++++++++++++++++---\n docs/mcp/explorer/explorer.template.html | 102 ++++++++++++++++++++++++---\n docs/mcp/tools-list.json | 373 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++-------\n docs/mcp/tools.md | 117 +++++++++++++++++++++++--------\n tests/Unit/Component/ES/AsyncUpdateElasticSearchTest.php | 16 +----\n tests/Unit/Component/ES/Listeners/UpdateMultipleTargetsListenerTest.php | 10 ---\n tests/Unit/Component/ES/Listeners/UpdateSingleTargetListenerTest.php | 6 --\n tests/Unit/Component/ES/Processor/TargetEntitiesSelectorTest.php | 9 ---\n tests/Unit/Component/ES/Processor/Traits/SelectEntityListTraitTest.php | 15 ++--\n tests/Unit/Component/ES/UpdateProcessManagerTest.php | 2 -\n tests/Unit/Services/Calendar/CalendarActivityServiceTest.php | 150 ++++++++++++++++++++++++++++++++++++++--\n tests/Unit/Services/Calendar/Command/MapActivityDataTest.php | 78 ++-------------------\n 15 files changed, 832 insertions(+), 322 deletions(-)\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (master) $ co -b JY-20613-allow-owner-role-on-team-setup\nSwitched to a new branch 'JY-20613-allow-owner-role-on-team-setup'\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20613-allow-owner-role-on-team-setup) $ csfix\ndocker exec -it docker_lamp_1 ./vendor/bin/php-cs-fixer fix --config=.php-cs-fixer.dist.php -v --using-cache=no --diff \nPHP CS Fixer 3.87.1 Alexander by Fabien Potencier, Dariusz Ruminski and contributors.\nPHP runtime: 8.3.30\nRunning analysis on 7 cores with 10 files per process.\nParallel runner is an experimental feature and may be unstable, use it at your own risk. Feedback highly appreciated!\nLoaded config default from \".php-cs-fixer.dist.php\".\n 5682/5682 [▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓] 100%\n\n\nFixed 0 of 5682 files in 56.978 seconds, 67.00 MB memory used\n\nWhat's next:\n Try Docker Debug for seamless, persistent debugging tools in any container or image → docker debug docker_lamp_1\n Learn more at https://docs.docker.com/go/debug-cli/\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20613-allow-owner-role-on-team-setup) $ ;xd\ndocker exec -it docker_lamp_1 bash -c \"mv /usr/local/etc/php/conf.d/xdebug.ini ~/xdebug.ini\"\n\nWhat's next:\n Try Docker Debug for seamless, persistent debugging tools in any container or image → docker debug docker_lamp_1\n Learn more at https://docs.docker.com/go/debug-cli/\ndocker exec -it docker_lamp_1 supervisorctl restart all\njiminny-worker-processing-2:jiminny-worker-processing-2_00: stopped\njiminny-worker-processing-3:jiminny-worker-processing-3_00: stopped\njiminny-worker-processing-4:jiminny-worker-processing-4_00: stopped\njiminny-worker-processing-5:jiminny-worker-processing-5_00: stopped\njiminny-worker-processing-delayed:jiminny-worker-processing-delayed_00: stopped\nworker-analytics:worker-analytics_00: stopped\nworker-crm-update:worker-crm-update_00: stopped\nworker-download:worker-download_00: stopped\nworker-nudges:worker-nudges_00: stopped\nartisan-schedule:artisan-schedule_00: stopped\nworker-emails:worker-emails_00: stopped\nworker-calendar:worker-calendar_00: stopped\nworker:worker_00: stopped\nworker-conferences:worker-conferences_00: stopped\nworker-crm-sync:worker-crm-sync_00: stopped\njiminny-worker-processing-1:jiminny-worker-processing-1_00: stopped\nworker-audio:worker-audio_00: stopped\nworker-es-update:worker-es-update_00: stopped\nartisan-schedule:artisan-schedule_00: started\njiminny-worker-processing-1:jiminny-worker-processing-1_00: started\njiminny-worker-processing-2:jiminny-worker-processing-2_00: started\njiminny-worker-processing-3:jiminny-worker-processing-3_00: started\njiminny-worker-processing-4:jiminny-worker-processing-4_00: started\njiminny-worker-processing-5:jiminny-worker-processing-5_00: started\njiminny-worker-processing-delayed:jiminny-worker-processing-delayed_00: started\nworker:worker_00: started\nworker-analytics:worker-analytics_00: started\nworker-audio:worker-audio_00: started\nworker-calendar:worker-calendar_00: started\nworker-conferences:worker-conferences_00: started\nworker-crm-sync:worker-crm-sync_00: started\nworker-crm-update:worker-crm-update_00: started\nworker-download:worker-download_00: started\nworker-emails:worker-emails_00: started\nworker-es-update:worker-es-update_00: started\nworker-nudges:worker-nudges_00: started\n\nWhat's next:\n Try Docker Debug for seamless, persistent debugging tools in any container or image → docker debug docker_lamp_1\n Learn more at https://docs.docker.com/go/debug-cli/\ndocker exec -it docker_lamp_1 php -v\nPHP 8.3.30 (cli) (built: Mar 16 2026 22:32:32) (NTS)\nCopyright (c) The PHP Group\nZend Engine v4.3.30, Copyright (c) Zend Technologies\n with Zend OPcache v8.3.30, Copyright (c), by Zend Technologies\n\nWhat's next:\n Try Docker Debug for seamless, persistent debugging tools in any container or image → docker debug docker_lamp_1\n Learn more at https://docs.docker.com/go/debug-cli/\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20613-allow-owner-role-on-team-setup) $ csfix\ndocker exec -it docker_lamp_1 ./vendor/bin/php-cs-fixer fix --config=.php-cs-fixer.dist.php -v --using-cache=no --diff \nPHP CS Fixer 3.87.1 Alexander by Fabien Potencier, Dariusz Ruminski and contributors.\nPHP runtime: 8.3.30\nRunning analysis on 7 cores with 10 files per process.\nParallel runner is an experimental feature and may be unstable, use it at your own risk. Feedback highly appreciated!\nLoaded config default from \".php-cs-fixer.dist.php\".\n 5682/5682 [▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓] 100%\n\n\nFixed 0 of 5682 files in 49.910 seconds, 60.00 MB memory used\n\nWhat's next:\n Try Docker Debug for seamless, persistent debugging tools in any container or image → docker debug docker_lamp_1\n Learn more at https://docs.docker.com/go/debug-cli/\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20613-allow-owner-role-on-team-setup) $ git status\nOn branch JY-20613-allow-owner-role-on-team-setup\nYour branch is ahead of 'origin/JY-20613-allow-owner-role-on-team-setup' by 1 commit.\n (use \"git push\" to publish your local commits)\n\nChanges not staged for commit:\n (use \"git add <file>...\" to update what will be committed)\n (use \"git restore <file>...\" to discard changes in working directory)\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tmodified: .env.local\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tmodified: config/logging.php\n\nUntracked files:\n (use \"git add <file>...\" to include in what will be committed)\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\t.env.nikilocal\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\t.env.other\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tWEBHOOK_FILTERING_IMPLEMENTATION.md\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tapp/Console/Commands/Crm/Hubspot/SimulateWebhooksCommand.php\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tapp/Console/Commands/Reports/CreateMockAskJiminnyReportResultCommand.php\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tids.txt\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tpublic/favicon.ico\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\traw_sql_query.sql\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\ttests/Unit/Policies/CanAccessAiReportsTest.php\n\nno changes added to commit (use \"git add\" and/or \"git commit -a\")\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20613-allow-owner-role-on-team-setup) $ git pull\nremote: Enumerating objects: 248, done.\nremote: Counting objects: 100% (128/128), done.\nremote: Compressing objects: 100% (23/23), done.\nremote: Total 59 (delta 43), reused 44 (delta 33), pack-reused 0 (from 0)\nUnpacking objects: 100% (59/59), 10.48 KiB | 228.00 KiB/s, done.\nFrom github.com:jiminny/app\n b7df560451..190239dfd4 JY-20613-allow-owner-role-on-team-setup -> origin/JY-20613-allow-owner-role-on-team-setup\n e0351be069..d94a285ae7 JY-20808-low-priority-indexing-queue -> origin/JY-20808-low-priority-indexing-queue\n * [new branch] JY-20920-fix-participant-matcher -> origin/JY-20920-fix-participant-matcher\n cb4ebf0c36..90bca4e4b2 master -> origin/master\nMerge made by the 'ort' strategy.\n app/Component/ES/ChunkSize.php | 54 +++++++++++++++++++++++++++\n app/Component/ES/Processor/DTOs/SelectionList.php | 4 +-\n app/Component/ES/Processor/TargetEntitiesSelector.php | 19 ++++++----\n app/Http/Middleware/McpTierMiddleware.php | 27 +++-----------\n app/Mcp/Servers/JiminnyServer.php | 2 +\n app/Mcp/Tools/GetMeTool.php | 157 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++\n app/Models/Feature/FeatureEnum.php | 1 +\n database/migrations/2026_05_13_124153_create_mcp_feature_flag.php | 25 +++++++++++++\n front-end/src/components/Settings/Kiosk/modals/EditTeamModal/EditTeamModal.vue | 52 ++++++++++++++++++--------\n front-end/src/components/Settings/Kiosk/modals/EditTeamModal/__tests__/EditTeamModal.spec.js | 14 +++++++\n tests/Feature/Mcp/GetMeToolFeatureTest.php | 140 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++\n tests/Feature/Mcp/ListCallsToolFeatureTest.php | 2 +-\n tests/Feature/Mcp/McpTestHelpersTrait.php | 19 +++++++++-\n tests/Unit/Component/ES/ChunkSizeTest.php | 50 +++++++++++++++++++++++++\n tests/Unit/Component/ES/Processor/DTOs/SelectionListTest.php | 27 ++++++++++----\n tests/Unit/Component/ES/Processor/TargetEntitiesSelectorTest.php | 39 +++++++++++---------\n 16 files changed, 557 insertions(+), 75 deletions(-)\n create mode 100644 app/Component/ES/ChunkSize.php\n create mode 100644 app/Mcp/Tools/GetMeTool.php\n create mode 100644 database/migrations/2026_05_13_124153_create_mcp_feature_flag.php\n create mode 100644 tests/Feature/Mcp/GetMeToolFeatureTest.php\n create mode 100644 tests/Unit/Component/ES/ChunkSizeTest.php\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20613-allow-owner-role-on-team-setup) $ git push\nEnumerating objects: 40, done.\nCounting objects: 100% (34/34), done.\nDelta compression using up to 8 threads\nCompressing objects: 100% (18/18), done.\nWriting objects: 100% (18/18), 1.58 KiB | 1.58 MiB/s, done.\nTotal 18 (delta 15), reused 0 (delta 0), pack-reused 0\nremote: Resolving deltas: 100% (15/15), completed with 13 local objects.\nTo github.com:jiminny/app.git\n 190239dfd4..ec1b261264 JY-20613-allow-owner-role-on-team-setup -> JY-20613-allow-owner-role-on-team-setup\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20613-allow-owner-role-on-team-setup) $ gbr\n* JY-20613-allow-owner-role-on-team-setup\n pipedrive-sdk-poc\n master\n JY-20903-update_activity-stage-on-opportunity-change\n JY-20904-fix-update-es-on-activity-command\n JY-20891-improve-sms-text-relays\n JY-20725-handle-HS-search-rate-limit\n JY-20818-move-AJ-reports-to-separated-datadog-metric\n JY-20773-fix-automated-reports-user-pilot-tracking\n JY-20157-AJ-report-not-send-notification\n JY-20508-notify-before-AJ-report-expiration\n JY-20372-ai-reports-promotion-pages\n JY-20352-sync-opportunities-without-a-local-owner-user-id-is-null\n JY-20738-debug-AJ-tracking-UP\n a\n JY-18909-automated-reports-ask-jiminny\n JY-20692-fix-integration-app-token-auth-response-change\n JY-20553-debug-crm-sync-delays\n JY-20698-fix-SF-activity-types-on-new-playbook\n JY-20543-AJ-report-tracking\n JY-20384-handle-auto-sync-with-no-access-to-event-type\n JY-20458-ask-jiminny-user-definitions\n JY-19666-fix-import-contacts-account-association\n JY-19666-HS-import-contacts-and-accounts-batch-job\n JY-20458-Ask-Jiminny-Reports\n JY-20200-batch-update-CRM-objects-Salesforce\n JY-19666-HS-webhooks-add-contact-and-company\n JY-20348-trigger-setup-DI-layout-on-team-creation\n JY-20326-refactor-info-message-in-command\n JY-20317-fix-auto-log-delay-issue-on-all-channels-disabled\n JY-20312-remove-on-update-change-last-synced-at-crm-configurations\n JY-20306-SF-skip-auto-sync-for-task-based-playbook\n JY-20192-remove-deleted-team-from-saved-search-filters\n JY-20197-import-opportunity-batch-job\n JY-20293-enable-status-field-for-pipedrive-deals\n JY-20191-remove-commands-interactive-prompts\n JY-20118-change-default-sync-strategy\n JY-20183-add-cache-on-auto-log-delay\n JY-20197-add-import-opportunity-batch-job\n 20118-hs-opportunity-make-webhook-strategy-default\n JY-20118-make-default-hs-opportunity-sync-strategy-webhook-based\n JY-20196-handle-opportunity-without-note\n JY-20118-improve-opportunity-import\n JY-20189-handle-activity-search-on-deleted-groups\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20613-allow-owner-role-on-team-setup) $ co JY-20725-handle-HS-search-rate-limit\nM\u0000\u0000\u0000\u0000\u0000\u0000\t.env.local\nM\u0000\u0000\u0000\u0000\u0000\u0000\tconfig/logging.php\nSwitched to branch 'JY-20725-handle-HS-search-rate-limit'\nYour branch is behind 'origin/JY-20725-handle-HS-search-rate-limit' by 439 commits, and can be fast-forwarded.\n (use \"git pull\" to update your local branch)\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20725-handle-HS-search-rate-limit) $ git pull\nUpdating 0f3e438941..bc6a3fce6b\nFast-forward\n .gitignore | 3 +-\n .windsurfrules | 168 ++---\n CLAUDE.md | 1 +\n app/Component/ActivityAnalytics/Service/CalculateTalkTimeOffsetsFromTranscription.php | 24 +-\n app/Component/AiActivityType/Services/AiActivityTypeEligibilityChecker.php | 28 +-\n app/Component/AiAutomation/Actions/PrepareUpdateDtoAction.php | 32 +-\n app/Component/AiAutomation/Services/CrmFillingEligibilityChecker.php | 47 ++\n app/Component/AiAutomation/TestCrmAiPromptService.php | 14 +\n app/Component/AiCallScoring/Services/AiCallScoringEligibilityChecker.php | 9 +\n app/Component/ES/ElasticSearchDocumentPartialUpdater.php | 13 +-\n app/Component/ES/ElasticSearchWorkerManager.php | 86 ---\n app/Component/ES/Processor/Actions/LoadDocumentsAction.php | 80 +--\n app/Component/ES/Processor/EntityQueryBuilder.php | 12 +-\n app/Component/ES/Processor/TargetEntitiesSelector.php | 2 +-\n app/Component/ES/Processor/Traits/SkipActivityTrait.php | 25 -\n app/Component/ES/Repositories/EsResetActivityRepository.php | 11 +-\n app/Component/ES/Worker/ActivityWorker.php | 73 --\n app/Component/ES/Worker/EntityWorker.php | 44 --\n app/Component/ES/Worker/WorkerAmount.php | 60 --\n app/Component/ES/Worker/WorkerInterface.php | 15 -\n app/Component/ElasticSearch/Contract/Searchable.php | 4 +\n app/Component/Encoding/Job/AnalyzeTrackChannelsJob.php | 20 +-\n app/Component/Encoding/Service/GenerateSpeechFromSilenceService.php | 85 ++-\n app/Component/FFMpeg/Services/GetSpeechIntervalsService.php | 18 +-\n app/Component/LanguageDetection/Services/FindSpeechTimeService.php | 22 +-\n app/Component/Nudge/Job/ProcessOrganisationImmediateNudgesJob.php | 218 +++++-\n app/Component/ParagraphBreaker/Services/TranscriptionParagraphsService.php | 4 +\n app/Component/ParticipantSpeech/Services/ParticipantSpeechesCreator.php | 33 +\n app/Component/ParticipantSpeech/Services/ParticipantSpeechesDeleter.php | 15 +\n app/Component/ParticipantSpeech/Services/ParticipantSpeechesProvider.php | 51 +-\n app/Component/ParticipantSpeech/Services/ParticipantSpeechesUploader.php | 36 +\n app/Component/ProphetAi/Exceptions/InsufficientTranscriptException.php | 11 +\n app/Component/Transcription/DTO/Http/Transcription/AssemblyAI/AssemblyAI/NoAssemblyIdException.php | 11 +\n app/Component/Transcription/DTO/Http/Transcription/AssemblyAI/AssemblyAI/SuccessfulResponse.php | 6 +\n app/Component/Transcription/DTO/Http/Transcription/TranscriptionIsNotCorrectFormatException.php | 11 +\n app/Component/Transcription/Diarization/Services/GetNormalizedParticipantSpeechesService.php | 23 +-\n app/Component/Transcription/Diarization/Source/MeetingBotSource.php | 16 +-\n app/Component/Transcription/TranscriptionProcessor/TranscriptionProcessor.php | 3 +\n app/Console/Commands/Activities/ActivityHardDeleteCommand.php | 4 +-\n app/Console/Commands/Activities/Copy.php | 2 +\n app/Console/Commands/Activities/SetupIntegration/TwilioSetS3RecordingCredentialsCommand.php | 119 ++++\n app/Console/Commands/Activities/UpdateActivityElasticSearchDocumentCommand.php | 10 +-\n app/Console/Commands/Crm/BackfillOpportunityUserFromAccountCommand.php | 126 ++++\n app/Console/Commands/Elasticsearch/AsyncUpdateEsActivities.php | 19 -\n app/Console/Commands/Elasticsearch/AsyncUpdateEsEntities.php | 50 +-\n app/Console/Commands/Elasticsearch/ResetAsyncElasticSearchCommand.php | 30 +-\n app/Console/Commands/GeckoExport/GeckoExportParticipantSpeechesCommand.php | 14 +-\n app/Console/Commands/IssueMcpTokenCommand.php | 84 +++\n app/Console/Commands/JiminnyDebugCommand.php | 7 +-\n app/Console/Commands/Tracks/CleanupActivityTracksCommand.php | 2 +-\n app/Console/Kernel.php | 6 +-\n app/Contracts/Services/Calendar/CalendarTrait.php | 80 ++-\n app/Events/AutomatedReports/AutomatedReportGenerated.php | 3 +\n app/Http/Controllers/API/AiCallScoring/AiScorecardController.php | 7 +-\n app/Http/Controllers/API/TeamAiAutomationController.php | 8 +\n app/Http/Controllers/CustomerApi/CustomerApiController.php | 4 +-\n app/Http/Controllers/Kiosk/ActivityController.php | 58 +-\n app/Http/Controllers/Settings/PlaybookController.php | 15 +-\n app/Http/Kernel.php | 23 +\n app/Http/Middleware/McpAuditMiddleware.php | 156 ++++\n app/Http/Middleware/McpTierMiddleware.php | 54 ++\n app/Http/Requests/API/V2/ZapierUploadActivityRequest.php | 28 +-\n app/Jobs/Activity/Import/ImportTwilioVideoSpeechesJob.php | 25 +-\n app/Jobs/Activity/Import/IsActivityReadyForProcessingJob.php | 10 +-\n app/Jobs/Calendar/SetupCalendarSync.php | 21 +-\n app/Jobs/ImportRemoteTrackJob.php | 96 ++-\n app/Jobs/Mailbox/EmailTextRelay.php | 15 +-\n app/Mcp/Contracts/McpCallRepositoryInterface.php | 30 +\n app/Mcp/DTO/ListCallsFilters.php | 29 +\n app/Mcp/Errors/McpError.php | 123 ++++\n app/Mcp/Repositories/McpActivityHydrator.php | 145 ++++\n app/Mcp/Repositories/McpCallRepository.php | 84 +++\n app/Mcp/Repositories/McpElasticCallRepository.php | 171 +++++\n app/Mcp/Servers/JiminnyServer.php | 38 +\n app/Mcp/Tools/ListCallsTool.php | 205 ++++++\n app/Models/Activity.php | 10 +-\n app/Models/Activity/Transcription.php | 17 +-\n app/Models/ElasticSearch/OpportunityElasticSearchTrait.php | 5 +\n app/Models/Participant.php | 1 +\n app/Providers/AppServiceProvider.php | 22 +\n app/Repositories/Crm/ContactRepository.php | 69 +-\n app/Repositories/ParticipantSpeechRepository.php | 13 +-\n app/Services/Activity/ParticipantsService.php | 19 +-\n app/Services/Activity/Twilio/S3RecordingCredentialsService.php | 82 +++\n app/Services/ActivityService.php | 21 +-\n app/Services/Calendar/CalendarActivityService.php | 46 ++\n app/Services/Calendar/Command/ImportParticipants.php | 1 +\n app/Services/Calendar/Command/MapActivityData.php | 106 +--\n app/Services/Calendar/GoogleCalendarService.php | 12 +-\n app/Services/Crm/Close/Processor/OpportunityProcessor.php | 2 +-\n app/Services/Crm/Close/Service.php | 22 +-\n app/Services/Crm/Copper/Service.php | 12 +-\n app/Services/Crm/Hubspot/Service.php | 154 +++-\n app/Services/Crm/Hubspot/ServiceTraits/OpportunitySyncTrait.php | 88 ++-\n app/Services/Crm/IntegrationApp/ServiceTraits/SyncCrmEntitiesTrait.php | 22 +-\n app/Services/Crm/Pipedrive/Service.php | 17 +-\n app/Services/Crm/Salesforce/Service.php | 42 +-\n app/Services/Mail/Office/EmailApiClient.php | 129 +---\n app/Services/RecallAI/Commands/ScheduleBotCommand.php | 39 +-\n app/Services/RecallAI/RecallAIService.php | 22 +-\n composer.json | 3 +-\n composer.lock | 87 ++-\n config/mcp.php | 23 +\n database/migrations/2026_04_30_120000_create_mcp_audit_log_table.php | 36 +\n docs/mcp/explorer/explorer.html | 697 ++++++++++++++++++\n docs/mcp/explorer/explorer.template.html | 697 ++++++++++++++++++\n docs/mcp/explorer/generate.js | 215 ++++++\n docs/mcp/explorer/tool-explorer-meta.json | 11 +\n docs/mcp/tools-list.json | 2536 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++\n docs/mcp/tools.md | 621 ++++++++++++++++\n front-end/package.json | 4 +-\n front-end/src/components/Settings/OrgSettings/AiAutomation/CrmFilling/TemplateFieldForm.vue | 28 +-\n front-end/src/components/Settings/OrgSettings/Playbooks/AddEditPlaybook.vue | 10 +\n front-end/src/components/playback/comments/ActivityComment.less | 10 +-\n front-end/src/components/shared/PromptTester/PromptTester.vue | 12 +-\n front-end/src/components/shared/__tests__/PromptTester.spec.js | 35 +\n front-end/src/components/shared/modals/EntityPickerModal/__tests__/useEntitiesCache.spec.ts | 37 +\n front-end/src/components/shared/modals/EntityPickerModal/useEntitiesCache.ts | 9 +\n front-end/yarn.lock | 16 +-\n phpstan-baseline.neon | 50 --\n routes/api.php | 11 +\n sonar-project.properties | 91 ++-\n tests/Feature/Component/Nudge/ProcessOrganisationImmediateNudgesJobTest.php | 534 ++++++++++++++\n tests/Feature/Jobs/ImportRemoteTrackJobTest.php | 283 +++++++-\n tests/Feature/Mcp/IssueMcpTokenCommandTest.php | 53 ++\n tests/Feature/Mcp/ListCallsToolElasticFeatureTest.php | 155 ++++\n tests/Feature/Mcp/ListCallsToolFeatureTest.php | 352 ++++++++++\n tests/Feature/Mcp/McpTestHelpersTrait.php | 77 ++\n tests/Feature/Services/Team/TeamDeleteHandlers/Retention/RetentionRepositoryHandlerTest.php | 1 +\n tests/Stubs/SentryStub.php | 18 +\n tests/Unit/Component/ActivityAnalytics/Service/CalculateTalkTimeOffsetFromTranscriptionTest.php | 28 +-\n tests/Unit/Component/AiActivityType/Services/AiActivityTypeEligibilityCheckerTest.php | 103 ++-\n tests/Unit/Component/AiAutomation/Actions/PrepareUpdateDtoActionTest.php | 91 +++\n tests/Unit/Component/AiAutomation/Services/CrmFillingEligibilityCheckerTest.php | 124 ++++\n tests/Unit/Component/AiAutomation/TestCrmAiPromptServiceTest.php | 67 +-\n tests/Unit/Component/AiCallScoring/Services/AiCallScoringEligibilityCheckerTest.php | 55 ++\n tests/Unit/Component/ES/ElasticSearchWorkerManagerTest.php | 135 ----\n tests/Unit/Component/ES/Processor/Actions/LoadDocumentsActionTest.php | 220 ++++++\n tests/Unit/Component/ES/Processor/EntityQueryBuilderTest.php | 21 +-\n tests/Unit/Component/ES/Processor/Traits/SkipActivityTraitTest.php | 51 --\n tests/Unit/Component/ES/Worker/ActivityWorkerTest.php | 174 -----\n tests/Unit/Component/ES/Worker/EntityWorkerTest.php | 97 ---\n tests/Unit/Component/ES/Worker/WorkerAmountTest.php | 116 ---\n tests/Unit/Component/Encoding/Job/AnalyzeTrackChannelsJobTest.php | 52 +-\n tests/Unit/Component/Encoding/Service/GenerateSpeechFromSilenceServiceTest.php | 171 ++---\n tests/Unit/Component/FFMpeg/Services/GetSpeechIntervalsTest.php | 36 +-\n tests/Unit/Component/LanguageDetection/Services/FindSpeechTimeServiceTest.php | 20 +-\n tests/Unit/Component/MobileSettings/MobileSettingsControllerTest.php | 5 +-\n tests/Unit/Component/ParticipantSpeech/Services/ParticipantSpeechesCreatorTest.php | 75 ++\n tests/Unit/Component/ParticipantSpeech/Services/ParticipantSpeechesDeleterTest.php | 63 ++\n tests/Unit/Component/ParticipantSpeech/Services/ParticipantSpeechesProviderTest.php | 134 ++++\n tests/Unit/Component/ParticipantSpeech/Services/ParticipantSpeechesUploaderTest.php | 57 ++\n tests/Unit/Component/Transcription/Diarization/Services/GetNormalizedParticipantSpeechesServiceTest.php | 51 +-\n tests/Unit/Component/Transcription/Diarization/Source/MeetingBotSourceTest.php | 29 +-\n tests/Unit/Contracts/Services/Calendar/CalendarTraitTest.php | 58 +-\n tests/Unit/Http/Controllers/Kiosk/ActivityControllerTest.php | 159 +++++\n tests/Unit/Jobs/Activity/Import/ImportTwilioVideoSpeechesJobTest.php | 22 +-\n tests/Unit/Jobs/Activity/Import/IsActivityReadyForProcessingJobTest.php | 26 +-\n tests/Unit/Jobs/Calendar/SetupCalendarSyncTest.php | 25 -\n tests/Unit/Services/Activity/ParticipantsServiceTest.php | 12 +-\n tests/Unit/Services/Activity/Twilio/S3RecordingCredentialsServiceTest.php | 180 +++++\n tests/Unit/Services/ActivityServiceTest.php | 132 ++++\n tests/Unit/Services/Calendar/CalendarActivityServiceTest.php | 150 +++-\n tests/Unit/Services/Calendar/Command/ImportParticipantsTest.php | 6 +-\n tests/Unit/Services/Calendar/Command/MapActivityDataTest.php | 78 +-\n tests/Unit/Services/Calendar/GoogleCalendarServiceTest.php | 116 +++\n tests/Unit/Services/Crm/Close/ServiceTest.php | 165 +++++\n tests/Unit/Services/Crm/Hubspot/ServiceTest.php | 272 ++++++-\n tests/Unit/Services/Crm/Hubspot/ServiceTraits/OpportunitySyncTest.php | 25 +-\n tests/Unit/Services/Crm/Hubspot/ServiceTraits/OpportunitySyncTraitMatchActivitiesTest.php | 3 +-\n tests/Unit/Services/Crm/IntegrationApp/ServiceTraits/SyncCrmEntitiesTraitOpportunitiesTest.php | 40 ++\n tests/Unit/Services/Crm/Pipedrive/ImportOpportunityMatchActivitiesTest.php | 2 +\n tests/Unit/Services/Crm/Salesforce/ServiceTest.php | 139 ++++\n tests/Unit/Services/Mail/Office/EmailApiClientTest.php | 195 ++---\n tests/Unit/Services/RecallAI/RecallAIServiceTest.php | 24 +-\n 175 files changed, 12562 insertions(+), 2162 deletions(-)\n create mode 120000 CLAUDE.md\n create mode 100644 app/Component/AiAutomation/Services/CrmFillingEligibilityChecker.php\n delete mode 100644 app/Component/ES/ElasticSearchWorkerManager.php\n delete mode 100644 app/Component/ES/Processor/Traits/SkipActivityTrait.php\n delete mode 100644 app/Component/ES/Worker/ActivityWorker.php\n delete mode 100644 app/Component/ES/Worker/EntityWorker.php\n delete mode 100644 app/Component/ES/Worker/WorkerAmount.php\n delete mode 100644 app/Component/ES/Worker/WorkerInterface.php\n create mode 100644 app/Component/ProphetAi/Exceptions/InsufficientTranscriptException.php\n create mode 100644 app/Component/Transcription/DTO/Http/Transcription/AssemblyAI/AssemblyAI/NoAssemblyIdException.php\n create mode 100644 app/Component/Transcription/DTO/Http/Transcription/TranscriptionIsNotCorrectFormatException.php\n create mode 100644 app/Console/Commands/Activities/SetupIntegration/TwilioSetS3RecordingCredentialsCommand.php\n create mode 100644 app/Console/Commands/Crm/BackfillOpportunityUserFromAccountCommand.php\n delete mode 100644 app/Console/Commands/Elasticsearch/AsyncUpdateEsActivities.php\n create mode 100644 app/Console/Commands/IssueMcpTokenCommand.php\n create mode 100644 app/Http/Middleware/McpAuditMiddleware.php\n create mode 100644 app/Http/Middleware/McpTierMiddleware.php\n create mode 100644 app/Mcp/Contracts/McpCallRepositoryInterface.php\n create mode 100644 app/Mcp/DTO/ListCallsFilters.php\n create mode 100644 app/Mcp/Errors/McpError.php\n create mode 100644 app/Mcp/Repositories/McpActivityHydrator.php\n create mode 100644 app/Mcp/Repositories/McpCallRepository.php\n create mode 100644 app/Mcp/Repositories/McpElasticCallRepository.php\n create mode 100644 app/Mcp/Servers/JiminnyServer.php\n create mode 100644 app/Mcp/Tools/ListCallsTool.php\n create mode 100644 app/Services/Activity/Twilio/S3RecordingCredentialsService.php\n create mode 100644 config/mcp.php\n create mode 100644 database/migrations/2026_04_30_120000_create_mcp_audit_log_table.php\n create mode 100644 docs/mcp/explorer/explorer.html\n create mode 100644 docs/mcp/explorer/explorer.template.html\n create mode 100644 docs/mcp/explorer/generate.js\n create mode 100644 docs/mcp/explorer/tool-explorer-meta.json\n create mode 100644 docs/mcp/tools-list.json\n create mode 100644 docs/mcp/tools.md\n create mode 100644 front-end/src/components/shared/modals/EntityPickerModal/__tests__/useEntitiesCache.spec.ts\n create mode 100644 tests/Feature/Component/Nudge/ProcessOrganisationImmediateNudgesJobTest.php\n create mode 100644 tests/Feature/Mcp/IssueMcpTokenCommandTest.php\n create mode 100644 tests/Feature/Mcp/ListCallsToolElasticFeatureTest.php\n create mode 100644 tests/Feature/Mcp/ListCallsToolFeatureTest.php\n create mode 100644 tests/Feature/Mcp/McpTestHelpersTrait.php\n create mode 100644 tests/Stubs/SentryStub.php\n create mode 100644 tests/Unit/Component/AiAutomation/Services/CrmFillingEligibilityCheckerTest.php\n delete mode 100644 tests/Unit/Component/ES/ElasticSearchWorkerManagerTest.php\n create mode 100644 tests/Unit/Component/ES/Processor/Actions/LoadDocumentsActionTest.php\n delete mode 100644 tests/Unit/Component/ES/Processor/Traits/SkipActivityTraitTest.php\n delete mode 100644 tests/Unit/Component/ES/Worker/ActivityWorkerTest.php\n delete mode 100644 tests/Unit/Component/ES/Worker/EntityWorkerTest.php\n delete mode 100644 tests/Unit/Component/ES/Worker/WorkerAmountTest.php\n create mode 100644 tests/Unit/Component/ParticipantSpeech/Services/ParticipantSpeechesCreatorTest.php\n create mode 100644 tests/Unit/Http/Controllers/Kiosk/ActivityControllerTest.php\n create mode 100644 tests/Unit/Services/Activity/Twilio/S3RecordingCredentialsServiceTest.php\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20725-handle-HS-search-rate-limit) $ git status\nOn branch master\nYour branch is behind 'origin/master' by 114 commits, and can be fast-forwarded.\n (use \"git pull\" to update your local branch)\n\nChanges not staged for commit:\n (use \"git add <file>...\" to update what will be committed)\n (use \"git restore <file>...\" to discard changes in working directory)\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tmodified: .env.local\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tmodified: app/Component/SCIM/Constants.php\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tmodified: app/Component/SCIM/ScimProvisioning.php\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tmodified: app/Component/Twilio/Conference/ConferenceManager/SoftPhoneManager.php\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tmodified: app/Console/Commands/JiminnyDebugCommand.php\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tmodified: app/DTO/SCIM/AAD/Request/CoreUserRequest.php\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tmodified: app/DTO/SCIM/AAD/Response/CoreUser.php\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tmodified: app/Services/Telephony/TextMessagingService.php\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tmodified: config/logging.php\n\nUntracked files:\n (use \"git add <file>...\" to include in what will be committed)\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\t.env.nikilocal\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\t.env.other\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tWEBHOOK_FILTERING_IMPLEMENTATION.md\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tapp/Component/SCIM/Mutators/Attributes/User/RoleAttr.php\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tapp/Console/Commands/Crm/Hubspot/SimulateWebhooksCommand.php\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tapp/Console/Commands/Reports/CreateMockAskJiminnyReportResultCommand.php\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tapp/Rules/ListenerRoleCannotHaveAdminOrManagerPermissionRule.php\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tids.txt\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tpublic/favicon.ico\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\traw_sql_query.sql\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\ttests/Unit/Component/SCIM/Mutators/Attributes/User/RoleAttrTest.php\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\ttests/Unit/Policies/CanAccessAiReportsTest.php\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\ttests/Unit/Rules/ListenerRoleCannotHaveAdminOrManagerPermissionRuleTest.php\n\nno changes added to commit (use \"git add\" and/or \"git commit -a\")\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (master) $ git pull\nremote: Enumerating objects: 306, done.\nremote: Counting objects: 100% (299/299), done.\nremote: Compressing objects: 100% (183/183), done.\nremote: Total 306 (delta 213), reused 171 (delta 116), pack-reused 7 (from 1)\nReceiving objects: 100% (306/306), 80.12 KiB | 1000.00 KiB/s, done.\nResolving deltas: 100% (213/213), completed with 53 local objects.\nFrom github.com:jiminny/app\n 90bca4e4b2..5604af40cf master -> origin/master\n 4e7078fd8b..0b8343d179 JY-18091-upgrade-to-php-8-5 -> origin/JY-18091-upgrade-to-php-8-5\n 098eeaa087..d5a447e492 JY-20613-allow-owner-role-on-team-setup -> origin/JY-20613-allow-owner-role-on-team-setup\n c3a76ace91..af65249d0f JY-20749-user-can-view-recorded-meetings -> origin/JY-20749-user-can-view-recorded-meetings\n d94a285ae7..7ce96cb5fe JY-20808-low-priority-indexing-queue -> origin/JY-20808-low-priority-indexing-queue\n * [new branch] JY-20842-remove-partial-updater -> origin/JY-20842-remove-partial-updater\n * [new branch] JY-20920-fix-participant-flip -> origin/JY-20920-fix-participant-flip\n * [new branch] secfix/npm-20260519 -> origin/secfix/npm-20260519\nUpdating cb4ebf0c36..5604af40cf\nFast-forward\n app/Component/ES/ChunkSize.php | 54 +++++++++++++++++++\n app/Component/ES/Processor/DTOs/SelectionList.php | 4 +-\n app/Component/ES/Processor/TargetEntitiesSelector.php | 19 ++++---\n app/Component/MeetingBot/Service/ParticipantMatcher.php | 46 ++++++++++++----\n app/Exceptions/RateLimitException.php | 19 ++++++-\n app/Http/Middleware/McpTierMiddleware.php | 27 ++--------\n app/Jobs/Crm/MatchActivityCrmData.php | 47 ++++++++++++----\n app/Jobs/Middleware/HandleHubspotRateLimit.php | 42 +++++++++++++++\n app/Mcp/Servers/JiminnyServer.php | 2 +\n app/Mcp/Tools/GetMeTool.php | 157 +++++++++++++++++++++++++++++++++++++++++++++++++++++\n app/Models/Feature/FeatureEnum.php | 1 +\n app/Services/Activity/HubSpot/ProviderResolver.php | 4 +-\n app/Services/Activity/HubSpot/ProviderResolverInterface.php | 2 +-\n app/Services/Activity/HubSpot/Providers/Provider.php | 2 +-\n app/Services/Activity/HubSpot/Providers/ProviderKixie.php | 2 +-\n app/Services/Activity/HubSpot/Providers/ProviderOrum.php | 2 +-\n app/Services/Activity/HubSpot/Providers/ProviderTwilio.php | 2 +-\n app/Services/Activity/HubSpot/Providers/ProviderTwilioFlex.php | 5 +-\n app/Services/Activity/HubSpot/Service.php | 97 +++++++++++++++++++++++++++------\n app/Services/Crm/Hubspot/Client.php | 132 +++++++++++++++++++++++++++++++++++++++++++++\n app/Services/Crm/Hubspot/HubspotClientInterface.php | 15 ++++++\n app/Services/Crm/Hubspot/Pagination/HubspotPaginationService.php | 21 ++++----\n app/Services/Crm/Hubspot/Pagination/PaginationState.php | 2 +-\n database/migrations/2026_05_13_124153_create_mcp_feature_flag.php | 25 +++++++++\n tests/Feature/Mcp/GetMeToolFeatureTest.php | 140 +++++++++++++++++++++++++++++++++++++++++++++++\n tests/Feature/Mcp/ListCallsToolFeatureTest.php | 2 +-\n tests/Feature/Mcp/McpTestHelpersTrait.php | 19 ++++++-\n tests/Unit/Component/ES/ChunkSizeTest.php | 50 +++++++++++++++++\n tests/Unit/Component/ES/Processor/DTOs/SelectionListTest.php | 27 +++++++---\n tests/Unit/Component/ES/Processor/TargetEntitiesSelectorTest.php | 39 ++++++++------\n tests/Unit/Component/MeetingBot/Service/ParticipantMatcherTest.php | 68 ++++++++++++++++++++++-\n tests/Unit/Exceptions/RateLimitExceptionTest.php | 56 +++++++++++++++++++\n tests/Unit/Jobs/Crm/MatchActivityCrmDataTest.php | 8 +--\n tests/Unit/Jobs/Middleware/HandleHubspotRateLimitTest.php | 151 +++++++++++++++++++++++++++++++++++++++++++++++++++\n tests/Unit/Services/Activity/HubSpot/ServiceTest.php | 109 +++++++++++++++++++++++++++++++++++++\n tests/Unit/Services/Crm/Hubspot/ClientTest.php | 250 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++\n tests/Unit/Services/Crm/Hubspot/Pagination/HubspotPaginationServiceTest.php | 283 +++++++++++++++++++++---------------------------------------------------------------------------\n 37 files changed, 1587 insertions(+), 344 deletions(-)\n create mode 100644 app/Component/ES/ChunkSize.php\n create mode 100644 app/Jobs/Middleware/HandleHubspotRateLimit.php\n create mode 100644 app/Mcp/Tools/GetMeTool.php\n create mode 100644 database/migrations/2026_05_13_124153_create_mcp_feature_flag.php\n create mode 100644 tests/Feature/Mcp/GetMeToolFeatureTest.php\n create mode 100644 tests/Unit/Component/ES/ChunkSizeTest.php\n create mode 100644 tests/Unit/Exceptions/RateLimitExceptionTest.php\n create mode 100644 tests/Unit/Jobs/Middleware/HandleHubspotRateLimitTest.php\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (master) $ git pull\nAlready up to date.\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (master) $ co -b JY-20676-delete-report-related-objects\nSwitched to a new branch 'JY-20676-delete-report-related-objects'\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20676-delete-report-related-objects) $ csfix\ndocker exec -it docker_lamp_1 ./vendor/bin/php-cs-fixer fix --config=.php-cs-fixer.dist.php -v --using-cache=no --diff \nPHP CS Fixer 3.87.1 Alexander by Fabien Potencier, Dariusz Ruminski and contributors.\nPHP runtime: 8.3.30\nRunning analysis on 7 cores with 10 files per process.\nParallel runner is an experimental feature and may be unstable, use it at your own risk. Feedback highly appreciated!\nLoaded config default from \".php-cs-fixer.dist.php\".\n 5690/5690 [▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓] 100%\n\n 1) app/Console/Commands/JiminnyDebugCommand.php (statement_indentation, blank_line_before_statement)\n ---------- begin diff ----------\n--- /home/jiminny/app/Console/Commands/JiminnyDebugCommand.php\n+++ /home/jiminny/app/Console/Commands/JiminnyDebugCommand.php\n@@ -23,6 +23,7 @@\n \n if ($action === 'redis-set') {\n $this->testRedisSet();\n+\n return;\n }\n \n@@ -45,7 +46,7 @@\n $ttl = 60;\n \n try {\n-// $result = Redis::set($testKey, $testValue, 'EX', $ttl, 'NX');\n+ // $result = Redis::set($testKey, $testValue, 'EX', $ttl, 'NX');\n $result = Redis::set($testKey, $testValue, ['nx', 'ex' => $ttl]);\n \n if ($result) {\n\n ----------- end diff -----------\n\n\nFixed 1 of 5690 files in 50.673 seconds, 67.00 MB memory used\n\nWhat's next:\n Try Docker Debug for seamless, persistent debugging tools in any container or image → docker debug docker_lamp_1\n Learn more at https://docs.docker.com/go/debug-cli/\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20676-delete-report-related-objects) $ ;xd\ndocker exec -it docker_lamp_1 bash -c \"mv /usr/local/etc/php/conf.d/xdebug.ini ~/xdebug.ini\"\n\nWhat's next:\n Try Docker Debug for seamless, persistent debugging tools in any container or image → docker debug docker_lamp_1\n Learn more at https://docs.docker.com/go/debug-cli/\ndocker exec -it docker_lamp_1 supervisorctl restart all\njiminny-worker-processing-2:jiminny-worker-processing-2_00: stopped\njiminny-worker-processing-3:jiminny-worker-processing-3_00: stopped\njiminny-worker-processing-4:jiminny-worker-processing-4_00: stopped\njiminny-worker-processing-5:jiminny-worker-processing-5_00: stopped\njiminny-worker-processing-delayed:jiminny-worker-processing-delayed_00: stopped\nworker-analytics:worker-analytics_00: stopped\nworker-crm-update:worker-crm-update_00: stopped\nworker-download:worker-download_00: stopped\nworker-nudges:worker-nudges_00: stopped\nworker-calendar:worker-calendar_00: stopped\nworker-audio:worker-audio_00: stopped\njiminny-worker-processing-1:jiminny-worker-processing-1_00: stopped\nworker:worker_00: stopped\nworker-conferences:worker-conferences_00: stopped\nworker-crm-sync:worker-crm-sync_00: stopped\nworker-emails:worker-emails_00: stopped\nworker-es-update:worker-es-update_00: stopped\nartisan-schedule:artisan-schedule_00: stopped\nartisan-schedule:artisan-schedule_00: started\njiminny-worker-processing-1:jiminny-worker-processing-1_00: started\njiminny-worker-processing-2:jiminny-worker-processing-2_00: started\njiminny-worker-processing-3:jiminny-worker-processing-3_00: started\njiminny-worker-processing-4:jiminny-worker-processing-4_00: started\njiminny-worker-processing-5:jiminny-worker-processing-5_00: started\njiminny-worker-processing-delayed:jiminny-worker-processing-delayed_00: started\nworker:worker_00: started\nworker-analytics:worker-analytics_00: started\nworker-audio:worker-audio_00: started\nworker-calendar:worker-calendar_00: started\nworker-conferences:worker-conferences_00: started\nworker-crm-sync:worker-crm-sync_00: started\nworker-crm-update:worker-crm-update_00: started\nworker-download:worker-download_00: started\nworker-emails:worker-emails_00: started\nworker-es-update:worker-es-update_00: started\nworker-nudges:worker-nudges_00: started\n\nWhat's next:\n Try Docker Debug for seamless, persistent debugging tools in any container or image → docker debug docker_lamp_1\n Learn more at https://docs.docker.com/go/debug-cli/\ndocker exec -it docker_lamp_1 php -v\nPHP 8.3.30 (cli) (built: Mar 16 2026 22:32:32) (NTS)\nCopyright (c) The PHP Group\nZend Engine v4.3.30, Copyright (c) Zend Technologies\n with Zend OPcache v8.3.30, Copyright (c), by Zend Technologies\n\nWhat's next:\n Try Docker Debug for seamless, persistent debugging tools in any container or image → docker debug docker_lamp_1\n Learn more at https://docs.docker.com/go/debug-cli/\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20676-delete-report-related-objects) $ git status\nOn branch JY-20676-delete-report-related-objects\nChanges not staged for commit:\n (use \"git add <file>...\" to update what will be committed)\n (use \"git restore <file>...\" to discard changes in working directory)\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tmodified: .env.local\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tmodified: app/Console/Commands/JiminnyDebugCommand.php\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tmodified: config/logging.php\n\nUntracked files:\n (use \"git add <file>...\" to include in what will be committed)\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\t.env.nikilocal\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\t.env.other\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tWEBHOOK_FILTERING_IMPLEMENTATION.md\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tapp/Console/Commands/Crm/Hubspot/SimulateWebhooksCommand.php\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tapp/Console/Commands/Reports/CreateMockAskJiminnyReportResultCommand.php\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tids.txt\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tpublic/favicon.ico\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\traw_sql_query.sql\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\ttests/Unit/Policies/CanAccessAiReportsTest.php\n\nno changes added to commit (use \"git add\" and/or \"git commit -a\")\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20676-delete-report-related-objects) $ git push -u origin JY-20676-delete-report-related-objects\nEnumerating objects: 45, done.\nCounting objects: 100% (45/45), done.\nDelta compression using up to 8 threads\nCompressing objects: 100% (24/24), done.\nWriting objects: 100% (24/24), 3.62 KiB | 3.62 MiB/s, done.\nTotal 24 (delta 19), reused 0 (delta 0), pack-reused 0\nremote: Resolving deltas: 100% (19/19), completed with 19 local objects.\nremote: \nremote: Create a pull request for 'JY-20676-delete-report-related-objects' on GitHub by visiting:\nremote: https://github.com/jiminny/app/pull/new/JY-20676-delete-report-related-objects\nremote: \nTo github.com:jiminny/app.git\n * [new branch] JY-20676-delete-report-related-objects -> JY-20676-delete-report-related-objects\nbranch 'JY-20676-delete-report-related-objects' set up to track 'origin/JY-20676-delete-report-related-objects'.\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20676-delete-report-related-objects) $ csfix\ndocker exec -it docker_lamp_1 ./vendor/bin/php-cs-fixer fix --config=.php-cs-fixer.dist.php -v --using-cache=no --diff \nPHP CS Fixer 3.87.1 Alexander by Fabien Potencier, Dariusz Ruminski and contributors.\nPHP runtime: 8.3.30\nRunning analysis on 7 cores with 10 files per process.\nParallel runner is an experimental feature and may be unstable, use it at your own risk. Feedback highly appreciated!\nLoaded config default from \".php-cs-fixer.dist.php\".\n 5690/5690 [▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓] 100%\n\n 1) app/Http/Controllers/API/V2/AskJiminnyReportsController.php (blank_line_before_statement)\n ---------- begin diff ----------\n--- /home/jiminny/app/Http/Controllers/API/V2/AskJiminnyReportsController.php\n+++ /home/jiminny/app/Http/Controllers/API/V2/AskJiminnyReportsController.php\n@@ -140,6 +140,7 @@\n if ($enabled && $report->isAskJiminnyReport() && ! $report->canExecute()) {\n $error = 'This report is missing a saved search or prompt. ' .\n 'Edit the report to complete the setup before enabling it.';\n+\n return new JsonResponse(\n ['error' => $error],\n Response::HTTP_UNPROCESSABLE_ENTITY\n\n ----------- end diff -----------\n\n\nFixed 1 of 5690 files in 71.757 seconds, 60.00 MB memory used\n\nWhat's next:\n Try Docker Debug for seamless, persistent debugging tools in any container or image → docker debug docker_lamp_1\n Learn more at https://docs.docker.com/go/debug-cli/\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20676-delete-report-related-objects) $ git pull\nremote: Enumerating objects: 158, done.\nremote: Counting objects: 100% (103/103), done.\nremote: Compressing objects: 100% (37/37), done.\nremote: Total 158 (delta 80), reused 74 (delta 66), pack-reused 55 (from 3)\nReceiving objects: 100% (158/158), 80.59 KiB | 982.00 KiB/s, done.\nResolving deltas: 100% (85/85), completed with 45 local objects.\nFrom github.com:jiminny/app\n 02a33811ee..c6ce5e2440 JY-20676-delete-report-related-objects -> origin/JY-20676-delete-report-related-objects\n 7ce96cb5fe..6c59f04358 JY-20808-low-priority-indexing-queue -> origin/JY-20808-low-priority-indexing-queue\n 3906a9238a..2b5e6ea62b JY-20835-mcp-enable-users-to-get-a-list-of-deals-and-their-details -> origin/JY-20835-mcp-enable-users-to-get-a-list-of-deals-and-their-details\n 5604af40cf..ea3519f0e2 master -> origin/master\n * [new branch] switch-eu-assembly -> origin/switch-eu-assembly\nUpdating 02a33811ee..c6ce5e2440\nFast-forward\n app/Component/ES/ElasticSearchDocumentPartialUpdater.php | 48 ---\n app/Component/ParticipantSpeech/Services/ParticipantAttributionService.php | 4 +-\n app/Component/Settings/AutoScoring/Services/UpdateAutoScoreService.php | 20 +-\n app/Component/Transcription/Service/StorageService.php | 8 +-\n front-end/package.json | 2 +-\n front-end/src/components/DealInsights/Modals/AskAnythingModal.vue | 23 ++\n front-end/src/components/shared/AskAnything/AskAnythingPromptFormItem.vue | 2 +\n front-end/src/components/shared/AskAnything/AskAnythingSettingsDrawer.vue | 23 +-\n front-end/src/components/shared/AskAnything/__mocks__/AskAnythingSettingsDrawer.mocks.js | 1 +\n front-end/src/components/shared/AskAnything/__tests__/AskAnythingSettingsDrawer.spec.js | 135 ++++---\n front-end/src/components/shared/AskAnything/__tests__/__snapshots__/AskAnythingSettingsDrawer.spec.js.html | 1235 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++\n front-end/src/components/shared/AskAnything/__tests__/__snapshots__/AskAnythingSettingsDrawer.spec.js.snap | 1382 ----------------------------------------------------------------\n front-end/src/components/shared/AskAnything/prompts.js | 1 +\n front-end/src/components/shared/AskAnything/useAskAnything.js | 1 +\n front-end/yarn.lock | 8 +-\n tests/Unit/Component/ES/ElasticSearchDocumentPartialUpdaterTest.php | 42 --\n tests/Unit/Component/Settings/AutoScoring/Services/UpdateAutoScoreServiceTest.php | 86 ++--\n tests/Unit/Component/Transcription/Service/StorageServiceTest.php | 29 +-\n 18 files changed, 1448 insertions(+), 1602 deletions(-)\n delete mode 100644 app/Component/ES/ElasticSearchDocumentPartialUpdater.php\n create mode 100644 front-end/src/components/shared/AskAnything/__tests__/__snapshots__/AskAnythingSettingsDrawer.spec.js.html\n delete mode 100644 front-end/src/components/shared/AskAnything/__tests__/__snapshots__/AskAnythingSettingsDrawer.spec.js.snap\n delete mode 100644 tests/Unit/Component/ES/ElasticSearchDocumentPartialUpdaterTest.php\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20676-delete-report-related-objects) $ csfix\ndocker exec -it docker_lamp_1 ./vendor/bin/php-cs-fixer fix --config=.php-cs-fixer.dist.php -v --using-cache=no --diff \nPHP CS Fixer 3.87.1 Alexander by Fabien Potencier, Dariusz Ruminski and contributors.\nPHP runtime: 8.3.30\nRunning analysis on 7 cores with 10 files per process.\nParallel runner is an experimental feature and may be unstable, use it at your own risk. Feedback highly appreciated!\nLoaded config default from \".php-cs-fixer.dist.php\".\n 5688/5688 [▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓] 100%\n\n\nFixed 0 of 5688 files in 79.904 seconds, 60.00 MB memory used\n\nWhat's next:\n Try Docker Debug for seamless, persistent debugging tools in any container or image → docker debug docker_lamp_1\n Learn more at https://docs.docker.com/go/debug-cli/\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20676-delete-report-related-objects) $ csfix\ndocker exec -it docker_lamp_1 ./vendor/bin/php-cs-fixer fix --config=.php-cs-fixer.dist.php -v --using-cache=no --diff \nPHP CS Fixer 3.87.1 Alexander by Fabien Potencier, Dariusz Ruminski and contributors.\nPHP runtime: 8.3.30\nRunning analysis on 7 cores with 10 files per process.\nParallel runner is an experimental feature and may be unstable, use it at your own risk. Feedback highly appreciated!\nLoaded config default from \".php-cs-fixer.dist.php\".\n 0/5688 [░░░░░░░░░░░░░░░░░░░░░░░░░░░░] 0%","is_focused":true},{"role":"AXRadioButton","text":"DOCKER","depth":2,"bounds":{"left":0.27027926,"top":1.0,"width":0.094913565,"height":-0.042298436},"on_screen":true,"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.27227393,"top":1.0,"width":0.005319149,"height":-0.04549086},"on_screen":true,"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"DEV (docker)","depth":2,"bounds":{"left":0.36519283,"top":1.0,"width":0.094913565,"height":-0.042298436},"on_screen":true,"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.3671875,"top":1.0,"width":0.005319149,"height":-0.04549086},"on_screen":true,"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"APP (docker)","depth":2,"bounds":{"left":0.46010637,"top":1.0,"width":0.09474734,"height":-0.042298436},"on_screen":true,"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.46210107,"top":1.0,"width":0.005319149,"height":-0.04549086},"on_screen":true,"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"screenpipe\"","depth":2,"bounds":{"left":0.55485374,"top":1.0,"width":0.09474734,"height":-0.042298436},"on_screen":true,"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.5568484,"top":1.0,"width":0.005319149,"height":-0.04549086},"on_screen":true,"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"-zsh","depth":2,"bounds":{"left":0.64960104,"top":1.0,"width":0.09474734,"height":-0.042298436},"on_screen":true,"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.6515958,"top":1.0,"width":0.005319149,"height":-0.04549086},"on_screen":true,"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"⌥⌘1","depth":1,"bounds":{"left":0.7307181,"top":1.0,"width":0.01861702,"height":-0.023144484},"on_screen":true,"automation_id":"_NS:8","role_description":"text"},{"role":"AXStaticText","text":"APP (docker)","depth":1,"bounds":{"left":0.49634308,"top":1.0,"width":0.029920213,"height":-0.02394259},"on_screen":true,"role_description":"text"}]...
|
2802650493718167367
|
-1358120912881272742
|
idle
|
accessibility
|
NULL
|
Last login: Mon May 18 09:17:28 on ttys007
Poetry Last login: Mon May 18 09:17:28 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 (pipedrive-sdk-poc) $ co master
error: Your local changes to the following files would be overwritten by checkout:
PIPEDRIVE_V2_MIGRATION_TICKETS.md
Please commit your changes or stash them before you switch branches.
Aborting
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (pipedrive-sdk-poc) $ git pull
remote: Enumerating objects: 1047, done.
remote: Counting objects: 100% (832/832), done.
remote: Compressing objects: 100% (298/298), done.
remote: Total 1047 (delta 634), reused 596 (delta 534), pack-reused 215 (from 3)
Receiving objects: 100% (1047/1047), 353.16 KiB | 1.56 MiB/s, done.
Resolving deltas: 100% (687/687), completed with 107 local objects.
From github.com:jiminny/app
907c54896c..34656c53ed pipedrive-sdk-poc -> origin/pipedrive-sdk-poc
03325ec50f..4e7078fd8b JY-18091-upgrade-to-php-8-5 -> origin/JY-18091-upgrade-to-php-8-5
e7d231e163..bc6a3fce6b JY-20725-handle-HS-search-rate-limit -> origin/JY-20725-handle-HS-search-rate-limit
* [new branch] JY-20749-user-can-view-recorded-meetings -> origin/JY-20749-user-can-view-recorded-meetings
98ca281a04..e0351be069 JY-20808-low-priority-indexing-queue -> origin/JY-20808-low-priority-indexing-queue
569abb5149..3906a9238a JY-20835-mcp-enable-users-to-get-a-list-of-deals-and-their-details -> origin/JY-20835-mcp-enable-users-to-get-a-list-of-deals-and-their-details
ad6c2a86e8..50eb6afba9 JY-20846-mcp-enable-the-ai-to-know-details-about-the-user -> origin/JY-20846-mcp-enable-the-ai-to-know-details-about-the-user
* [new branch] JY-20893-chunk-control-per-update-target -> origin/JY-20893-chunk-control-per-update-target
31c62924a5..cb4ebf0c36 master -> origin/master
Updating 907c54896c..34656c53ed
Fast-forward
PIPEDRIVE_V2_MIGRATION_TICKETS.md | 52 ++++++++++++++++++++++++++++++++++++++++++++++++++++
1 file changed, 52 insertions(+)
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (pipedrive-sdk-poc) $ co master
M .env.local
M config/logging.php
Switched to branch 'master'
Your branch is behind 'origin/master' by 31 commits, and can be fast-forwarded.
(use "git pull" to update your local branch)
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (master) $ git pull
Updating 31c62924a5..cb4ebf0c36
Fast-forward
app/Component/ES/Processor/Traits/SelectEntityListTrait.php | 20 ------
app/Services/Calendar/CalendarActivityService.php | 46 +++++++++++++
app/Services/Calendar/Command/MapActivityData.php | 106 +++-------------------------
docs/mcp/explorer/explorer.html | 104 +++++++++++++++++++++++++---
docs/mcp/explorer/explorer.template.html | 102 ++++++++++++++++++++++++---
docs/mcp/tools-list.json | 373 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++-------
docs/mcp/tools.md | 117 +++++++++++++++++++++++--------
tests/Unit/Component/ES/AsyncUpdateElasticSearchTest.php | 16 +----
tests/Unit/Component/ES/Listeners/UpdateMultipleTargetsListenerTest.php | 10 ---
tests/Unit/Component/ES/Listeners/UpdateSingleTargetListenerTest.php | 6 --
tests/Unit/Component/ES/Processor/TargetEntitiesSelectorTest.php | 9 ---
tests/Unit/Component/ES/Processor/Traits/SelectEntityListTraitTest.php | 15 ++--
tests/Unit/Component/ES/UpdateProcessManagerTest.php | 2 -
tests/Unit/Services/Calendar/CalendarActivityServiceTest.php | 150 ++++++++++++++++++++++++++++++++++++++--
tests/Unit/Services/Calendar/Command/MapActivityDataTest.php | 78 ++-------------------
15 files changed, 832 insertions(+), 322 deletions(-)
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (master) $ co -b JY-20613-allow-owner-role-on-team-setup
Switched to a new branch 'JY-20613-allow-owner-role-on-team-setup'
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20613-allow-owner-role-on-team-setup) $ csfix
docker exec -it docker_lamp_1 ./vendor/bin/php-cs-fixer fix --config=.php-cs-fixer.dist.php -v --using-cache=no --diff
PHP CS Fixer 3.87.1 Alexander by Fabien Potencier, Dariusz Ruminski and contributors.
PHP runtime: 8.3.30
Running 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!
Loaded config default from ".php-cs-fixer.dist.php".
5682/5682 [▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓] 100%
Fixed 0 of 5682 files in 56.978 seconds, 67.00 MB memory used
What's next:
Try Docker Debug for seamless, persistent debugging tools in any container or image → docker debug docker_lamp_1
Learn more at [URL_WITH_CREDENTIALS] ~/jiminny/app (JY-20613-allow-owner-role-on-team-setup) $ csfix
docker exec -it docker_lamp_1 ./vendor/bin/php-cs-fixer fix --config=.php-cs-fixer.dist.php -v --using-cache=no --diff
PHP CS Fixer 3.87.1 Alexander by Fabien Potencier, Dariusz Ruminski and contributors.
PHP runtime: 8.3.30
Running 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!
Loaded config default from ".php-cs-fixer.dist.php".
5682/5682 [▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓] 100%
Fixed 0 of 5682 files in 49.910 seconds, 60.00 MB memory used
What's next:
Try Docker Debug for seamless, persistent debugging tools in any container or image → docker debug docker_lamp_1
Learn more at [URL_WITH_CREDENTIALS] ~/jiminny/app (JY-20613-allow-owner-role-on-team-setup) $ git pull
remote: Enumerating objects: 248, done.
remote: Counting objects: 100% (128/128), done.
remote: Compressing objects: 100% (23/23), done.
remote: Total 59 (delta 43), reused 44 (delta 33), pack-reused 0 (from 0)
Unpacking objects: 100% (59/59), 10.48 KiB | 228.00 KiB/s, done.
From github.com:jiminny/app
b7df560451..190239dfd4 JY-20613-allow-owner-role-on-team-setup -> origin/JY-20613-allow-owner-role-on-team-setup
e0351be069..d94a285ae7 JY-20808-low-priority-indexing-queue -> origin/JY-20808-low-priority-indexing-queue
* [new branch] JY-20920-fix-participant-matcher -> origin/JY-20920-fix-participant-matcher
cb4ebf0c36..90bca4e4b2 master -> origin/master
Merge made by the 'ort' strategy.
app/Component/ES/ChunkSize.php | 54 +++++++++++++++++++++++++++
app/Component/ES/Processor/DTOs/SelectionList.php | 4 +-
app/Component/ES/Processor/TargetEntitiesSelector.php | 19 ++++++----
app/Http/Middleware/McpTierMiddleware.php | 27 +++-----------
app/Mcp/Servers/JiminnyServer.php | 2 +
app/Mcp/Tools/GetMeTool.php | 157 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
app/Models/Feature/FeatureEnum.php | 1 +
database/migrations/2026_05_13_124153_create_mcp_feature_flag.php | 25 +++++++++++++
front-end/src/components/Settings/Kiosk/modals/EditTeamModal/EditTeamModal.vue | 52 ++++++++++++++++++--------
front-end/src/components/Settings/Kiosk/modals/EditTeamModal/__tests__/EditTeamModal.spec.js | 14 +++++++
tests/Feature/Mcp/GetMeToolFeatureTest.php | 140 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
tests/Feature/Mcp/ListCallsToolFeatureTest.php | 2 +-
tests/Feature/Mcp/McpTestHelpersTrait.php | 19 +++++++++-
tests/Unit/Component/ES/ChunkSizeTest.php | 50 +++++++++++++++++++++++++
tests/Unit/Component/ES/Processor/DTOs/SelectionListTest.php | 27 ++++++++++----
tests/Unit/Component/ES/Processor/TargetEntitiesSelectorTest.php | 39 +++++++++++---------
16 files changed, 557 insertions(+), 75 deletions(-)
create mode 100644 app/Component/ES/ChunkSize.php
create mode 100644 app/Mcp/Tools/GetMeTool.php
create mode 100644 database/migrations/2026_05_13_124153_create_mcp_feature_flag.php
create mode 100644 tests/Feature/Mcp/GetMeToolFeatureTest.php
create mode 100644 tests/Unit/Component/ES/ChunkSizeTest.php
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20613-allow-owner-role-on-team-setup) $ git push
Enumerating objects: 40, done.
Counting objects: 100% (34/34), done.
Delta compression using up to 8 threads
Compressing objects: 100% (18/18), done.
Writing objects: 100% (18/18), 1.58 KiB | 1.58 MiB/s, done.
Total 18 (delta 15), reused 0 (delta 0), pack-reused 0
remote: Resolving deltas: 100% (15/15), completed with 13 local objects.
To github.com:jiminny/app.git
190239dfd4..ec1b261264 JY-20613-allow-owner-role-on-team-setup -> JY-20613-allow-owner-role-on-team-setup
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20613-allow-owner-role-on-team-setup) $ gbr
* JY-20613-allow-owner-role-on-team-setup
pipedrive-sdk-poc
master
JY-20903-update_activity-stage-on-opportunity-change
JY-20904-fix-update-es-on-activity-command
JY-20891-improve-sms-text-relays
JY-20725-handle-HS-search-rate-limit
JY-20818-move-AJ-reports-to-separated-datadog-metric
JY-20773-fix-automated-reports-user-pilot-tracking
JY-20157-AJ-report-not-send-notification
JY-20508-notify-before-AJ-report-expiration
JY-20372-ai-reports-promotion-pages
JY-20352-sync-opportunities-without-a-local-owner-user-id-is-null
JY-20738-debug-AJ-tracking-UP
a
JY-18909-automated-reports-ask-jiminny
JY-20692-fix-integration-app-[API_KEY]
JY-20553-debug-crm-sync-delays
JY-20698-fix-SF-activity-types-on-new-playbook
JY-20543-AJ-report-tracking
JY-20384-handle-auto-sync-with-no-access-to-event-type
JY-20458-ask-jiminny-user-definitions
JY-19666-fix-import-contacts-account-association
JY-19666-HS-import-contacts-and-accounts-batch-job
JY-20458-Ask-Jiminny-Reports
JY-20200-batch-update-CRM-objects-Salesforce
JY-19666-HS-webhooks-add-contact-and-company
JY-20348-trigger-setup-DI-layout-on-team-creation
JY-20326-refactor-info-message-in-command
JY-20317-fix-auto-log-delay-issue-on-all-channels-disabled
JY-20312-remove-on-update-change-last-synced-at-crm-configurations
JY-20306-SF-skip-auto-sync-for-task-based-playbook
JY-20192-remove-deleted-team-from-saved-search-filters
JY-20197-import-opportunity-batch-job
JY-20293-enable-status-field-for-pipedrive-deals
JY-20191-remove-commands-interactive-prompts
JY-20118-change-default-sync-strategy
JY-20183-add-cache-on-auto-log-delay
JY-20197-add-import-opportunity-batch-job
20118-hs-opportunity-make-webhook-strategy-default
JY-20118-make-default-hs-opportunity-sync-strategy-webhook-based
JY-20196-handle-opportunity-without-note
JY-20118-improve-opportunity-import
JY-20189-handle-activity-search-on-deleted-groups
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20613-allow-owner-role-on-team-setup) $ co JY-20725-handle-HS-search-rate-limit
M .env.local
M config/logging.php
Switched to branch 'JY-20725-handle-HS-search-rate-limit'
Your branch is behind 'origin/JY-20725-handle-HS-search-rate-limit' by 439 commits, and can be fast-forwarded.
(use "git pull" to update your local branch)
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20725-handle-HS-search-rate-limit) $ git pull
Updating 0f3e438941..bc6a3fce6b
Fast-forward
.gitignore | 3 +-
.windsurfrules | 168 ++---
CLAUDE.md | 1 +
app/Component/ActivityAnalytics/Service/CalculateTalkTimeOffsetsFromTranscription.php | 24 +-
app/Component/AiActivityType/Services/AiActivityTypeEligibilityChecker.php | 28 +-
app/Component/AiAutomation/Actions/PrepareUpdateDtoAction.php | 32 +-
app/Component/AiAutomation/Services/CrmFillingEligibilityChecker.php | 47 ++
app/Component/AiAutomation/TestCrmAiPromptService.php | 14 +
app/Component/AiCallScoring/Services/AiCallScoringEligibilityChecker.php | 9 +
app/Component/ES/ElasticSearchDocumentPartialUpdater.php | 13 +-
app/Component/ES/ElasticSearchWorkerManager.php | 86 ---
app/Component/ES/Processor/Actions/LoadDocumentsAction.php | 80 +--
app/Component/ES/Processor/EntityQueryBuilder.php | 12 +-
app/Component/ES/Processor/TargetEntitiesSelector.php | 2 +-
app/Component/ES/Processor/Traits/SkipActivityTrait.php | 25 -
app/Component/ES/Repositories/EsResetActivityRepository.php | 11 +-
app/Component/ES/Worker/ActivityWorker.php | 73 --
app/Component/ES/Worker/EntityWorker.php | 44 --
app/Component/ES/Worker/WorkerAmount.php | 60 --
app/Component/ES/Worker/WorkerInterface.php | 15 -
app/Component/ElasticSearch/Contract/Searchable.php | 4 +
app/Component/Encoding/Job/AnalyzeTrackChannelsJob.php | 20 +-
app/Component/Encoding/Service/GenerateSpeechFromSilenceService.php | 85 ++-
app/Component/FFMpeg/Services/GetSpeechIntervalsService.php | 18 +-
app/Component/LanguageDetection/Services/FindSpeechTimeService.php | 22 +-
app/Component/Nudge/Job/ProcessOrganisationImmediateNudgesJob.php | 218 +++++-
app/Component/ParagraphBreaker/Services/TranscriptionParagraphsService.php | 4 +
app/Component/ParticipantSpeech/Services/ParticipantSpeechesCreator.php | 33 +
app/Component/ParticipantSpeech/Services/ParticipantSpeechesDeleter.php | 15 +
app/Component/ParticipantSpeech/Services/ParticipantSpeechesProvider.php | 51 +-
app/Component/ParticipantSpeech/Services/ParticipantSpeechesUploader.php | 36 +
app/Component/ProphetAi/Exceptions/InsufficientTranscriptException.php | 11 +
app/Component/Transcription/DTO/Http/Transcription/AssemblyAI/AssemblyAI/NoAssemblyIdException.php | 11 +
app/Component/Transcription/DTO/Http/Transcription/AssemblyAI/AssemblyAI/SuccessfulResponse.php | 6 +
app/Component/Transcription/DTO/Http/Transcription/TranscriptionIsNotCorrectFormatException.php | 11 +
app/Component/Transcription/Diarization/Services/GetNormalizedParticipantSpeechesService.php | 23 +-
app/Component/Transcription/Diarization/Source/MeetingBotSource.php | 16 +-
app/Component/Transcription/TranscriptionProcessor/TranscriptionProcessor.php | 3 +
app/Console/Commands/Activities/ActivityHardDeleteCommand.php | 4 +-
app/Console/Commands/Activities/Copy.php | 2 +
app/Console/Commands/Activities/SetupIntegration/TwilioSetS3RecordingCredentialsCommand.php | 119 ++++
app/Console/Commands/Activities/UpdateActivityElasticSearchDocumentCommand.php | 10 +-
app/Console/Commands/Crm/BackfillOpportunityUserFromAccountCommand.php | 126 ++++
app/Console/Commands/Elasticsearch/AsyncUpdateEsActivities.php | 19 -
app/Console/Commands/Elasticsearch/AsyncUpdateEsEntities.php | 50 +-
app/Console/Commands/Elasticsearch/ResetAsyncElasticSearchCommand.php | 30 +-
app/Console/Commands/GeckoExport/GeckoExportParticipantSpeechesCommand.php | 14 +-
app/Console/Commands/IssueMcpTokenCommand.php | 84 +++
app/Console/Commands/JiminnyDebugCommand.php | 7 +-
app/Console/Commands/Tracks/CleanupActivityTracksCommand.php | 2 +-
app/Console/Kernel.php | 6 +-
app/Contracts/Services/Calendar/CalendarTrait.php | 80 ++-
app/Events/AutomatedReports/AutomatedReportGenerated.php | 3 +
app/Http/Controllers/API/AiCallScoring/AiScorecardController.php | 7 +-
app/Http/Controllers/API/TeamAiAutomationController.php | 8 +
app/Http/Controllers/CustomerApi/CustomerApiController.php | 4 +-
app/Http/Controllers/Kiosk/ActivityController.php | 58 +-
app/Http/Controllers/Settings/PlaybookController.php | 15 +-
app/Http/Kernel.php | 23 +
app/Http/Middleware/McpAuditMiddleware.php | 156 ++++
app/Http/Middleware/McpTierMiddleware.php | 54 ++
app/Http/Requests/API/V2/ZapierUploadActivityRequest.php | 28 +-
app/Jobs/Activity/Import/ImportTwilioVideoSpeechesJob.php | 25 +-
app/Jobs/Activity/Import/IsActivityReadyForProcessingJob.php | 10 +-
app/Jobs/Calendar/SetupCalendarSync.php | 21 +-
app/Jobs/ImportRemoteTrackJob.php | 96 ++-
app/Jobs/Mailbox/EmailTextRelay.php | 15 +-
app/Mcp/Contracts/McpCallRepositoryInterface.php | 30 +
app/Mcp/DTO/ListCallsFilters.php | 29 +
app/Mcp/Errors/McpError.php | 123 ++++
app/Mcp/Repositories/McpActivityHydrator.php | 145 ++++
app/Mcp/Repositories/McpCallRepository.php | 84 +++
app/Mcp/Repositories/McpElasticCallRepository.php | 171 +++++
app/Mcp/Servers/JiminnyServer.php | 38 +
app/Mcp/Tools/ListCallsTool.php | 205 ++++++
app/Models/Activity.php | 10 +-
app/Models/Activity/Transcription.php | 17 +-
app/Models/ElasticSearch/OpportunityElasticSearchTrait.php | 5 +
app/Models/Participant.php | 1 +
app/Providers/AppServiceProvider.php | 22 +
app/Repositories/Crm/ContactRepository.php | 69 +-
app/Repositories/ParticipantSpeechRepository.php | 13 +-
app/Services/Activity/ParticipantsService.php | 19 +-
app/Services/Activity/Twilio/S3RecordingCredentialsService.php | 82 +++
app/Services/ActivityService.php | 21 +-
app/Services/Calendar/CalendarActivityService.php | 46 ++
app/Services/Calendar/Command/ImportParticipants.php | 1 +
app/Services/Calendar/Command/MapActivityData.php | 106 +--
app/Services/Calendar/GoogleCalendarService.php | 12 +-
app/Services/Crm/Close/Processor/OpportunityProcessor.php | 2 +-
app/Services/Crm/Close/Service.php | 22 +-
app/Services/Crm/Copper/Service.php | 12 +-
app/Services/Crm/Hubspot/Service.php | 154 +++-
app/Services/Crm/Hubspot/ServiceTraits/OpportunitySyncTrait.php | 88 ++-
app/Services/Crm/IntegrationApp/ServiceTraits/SyncCrmEntitiesTrait.php | 22 +-
app/Services/Crm/Pipedrive/Service.php | 17 +-
app/Services/Crm/Salesforce/Service.php | 42 +-
app/Services/Mail/Office/EmailApiClient.php | 129 +---
app/Services/RecallAI/Commands/ScheduleBotCommand.php | 39 +-
app/Services/RecallAI/RecallAIService.php | 22 +-
composer.json | 3 +-
composer.lock | 87 ++-
config/mcp.php | 23 +
database/migrations/2026_04_30_120000_create_mcp_audit_log_table.php | 36 +
docs/mcp/explorer/explorer.html | 697 ++++++++++++++++++
docs/mcp/explorer/explorer.template.html | 697 ++++++++++++++++++
docs/mcp/explorer/generate.js | 215 ++++++
docs/mcp/explorer/tool-explorer-meta.json | 11 +
docs/mcp/tools-list.json | 2536 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
docs/mcp/tools.md | 621 ++++++++++++++++
front-end/package.json | 4 +-
front-end/src/components/Settings/OrgSettings/AiAutomation/CrmFilling/TemplateFieldForm.vue | 28 +-
front-end/src/components/Settings/OrgSettings/Playbooks/AddEditPlaybook.vue | 10 +
front-end/src/components/playback/comments/ActivityComment.less | 10 +-
front-end/src/components/shared/PromptTester/PromptTester.vue | 12 +-
front-end/src/components/shared/__tests__/PromptTester.spec.js | 35 +
front-end/src/components/shared/modals/EntityPickerModal/__tests__/useEntitiesCache.spec.ts | 37 +
front-end/src/components/shared/modals/EntityPickerModal/useEntitiesCache.ts | 9 +
front-end/yarn.lock | 16 +-
phpstan-baseline.neon | 50 --
routes/api.php | 11 +
sonar-project.properties | 91 ++-
tests/Feature/Component/Nudge/ProcessOrganisationImmediateNudgesJobTest.php | 534 ++++++++++++++
tests/Feature/Jobs/ImportRemoteTrackJobTest.php | 283 +++++++-
tests/Feature/Mcp/IssueMcpTokenCommandTest.php | 53 ++
tests/Feature/Mcp/ListCallsToolElasticFeatureTest.php | 155 ++++
tests/Feature/Mcp/ListCallsToolFeatureTest.php | 352 ++++++++++
tests/Feature/Mcp/McpTestHelpersTrait.php | 77 ++
tests/Feature/Services/Team/TeamDeleteHandlers/Retention/RetentionRepositoryHandlerTest.php | 1 +
tests/Stubs/SentryStub.php | 18 +
tests/Unit/Component/ActivityAnalytics/Service/CalculateTalkTimeOffsetFromTranscriptionTest.php | 28 +-
tests/Unit/Component/AiActivityType/Services/AiActivityTypeEligibilityCheckerTest.php | 103 ++-
tests/Unit/Component/AiAutomation/Actions/PrepareUpdateDtoActionTest.php | 91 +++
tests/Unit/Component/AiAutomation/Services/CrmFillingEligibilityCheckerTest.php | 124 ++++
tests/Unit/Component/AiAutomation/TestCrmAiPromptServiceTest.php | 67 +-
tests/Unit/Component/AiCallScoring/Services/AiCallScoringEligibilityCheckerTest.php | 55 ++
tests/Unit/Component/ES/ElasticSearchWorkerManagerTest.php | 135 ----
tests/Unit/Component/ES/Processor/Actions/LoadDocumentsActionTest.php | 220 ++++++
tests/Unit/Component/ES/Processor/EntityQueryBuilderTest.php | 21 +-
tests/Unit/Component/ES/Processor/Traits/SkipActivityTraitTest.php | 51 --
tests/Unit/Component/ES/Worker/ActivityWorkerTest.php | 174 -----
tests/Unit/Component/ES/Worker/EntityWorkerTest.php | 97 ---
tests/Unit/Component/ES/Worker/WorkerAmountTest.php | 116 ---
tests/Unit/Component/Encoding/Job/AnalyzeTrackChannelsJobTest.php | 52 +-
tests/Unit/Component/Encoding/Service/GenerateSpeechFromSilenceServiceTest.php | 171 ++---
tests/Unit/Component/FFMpeg/Services/GetSpeechIntervalsTest.php | 36 +-
tests/Unit/Component/LanguageDetection/Services/FindSpeechTimeServiceTest.php | 20 +-
tests/Unit/Component/MobileSettings/MobileSettingsControllerTest.php | 5 +-
tests/Unit/Component/ParticipantSpeech/Services/ParticipantSpeechesCreatorTest.php | 75 ++
tests/Unit/Component/ParticipantSpeech/Services/ParticipantSpeechesDeleterTest.php | 63 ++
tests/Unit/Component/ParticipantSpeech/Services/ParticipantSpeechesProviderTest.php | 134 ++++
tests/Unit/Component/ParticipantSpeech/Services/ParticipantSpeechesUploaderTest.php | 57 ++
tests/Unit/Component/Transcription/Diarization/Services/GetNormalizedParticipantSpeechesServiceTest.php | 51 +-
tests/Unit/Component/Transcription/Diarization/Source/MeetingBotSourceTest.php | 29 +-
tests/Unit/Contracts/Services/Calendar/CalendarTraitTest.php | 58 +-
tests/Unit/Http/Controllers/Kiosk/ActivityControllerTest.php | 159 +++++
tests/Unit/Jobs/Activity/Import/ImportTwilioVideoSpeechesJobTest.php | 22 +-
tests/Unit/Jobs/Activity/Import/IsActivityReadyForProcessingJobTest.php | 26 +-
tests/Unit/Jobs/Calendar/SetupCalendarSyncTest.php | 25 -
tests/Unit/Services/Activity/ParticipantsServiceTest.php | 12 +-
tests/Unit/Services/Activity/Twilio/S3RecordingCredentialsServiceTest.php | 180 +++++
tests/Unit/Services/ActivityServiceTest.php | 132 ++++
tests/Unit/Services/Calendar/CalendarActivityServiceTest.php | 150 +++-
tests/Unit/Services/Calendar/Command/ImportParticipantsTest.php | 6 +-
tests/Unit/Services/Calendar/Command/MapActivityDataTest.php | 78 +-
tests/Unit/Services/Calendar/GoogleCalendarServiceTest.php | 116 +++
tests/Unit/Services/Crm/Close/ServiceTest.php | 165 +++++
tests/Unit/Services/Crm/Hubspot/ServiceTest.php | 272 ++++++-
tests/Unit/Services/Crm/Hubspot/ServiceTraits/OpportunitySyncTest.php | 25 +-
tests/Unit/Services/Crm/Hubspot/ServiceTraits/OpportunitySyncTraitMatchActivitiesTest.php | 3 +-
tests/Unit/Services/Crm/IntegrationApp/ServiceTraits/SyncCrmEntitiesTraitOpportunitiesTest.php | 40 ++
tests/Unit/Services/Crm/Pipedrive/ImportOpportunityMatchActivitiesTest.php | 2 +
tests/Unit/Services/Crm/Salesforce/ServiceTest.php | 139 ++++
tests/Unit/Services/Mail/Office/EmailApiClientTest.php | 195 ++---
tests/Unit/Services/RecallAI/RecallAIServiceTest.php | 24 +-
175 files changed, 12562 insertions(+), 2162 deletions(-)
create mode 120000 CLAUDE.md
create mode 100644 app/Component/AiAutomation/Services/CrmFillingEligibilityChecker.php
delete mode 100644 app/Component/ES/ElasticSearchWorkerManager.php
delete mode 100644 app/Component/ES/Processor/Traits/SkipActivityTrait.php
delete mode 100644 app/Component/ES/Worker/ActivityWorker.php
delete mode 100644 app/Component/ES/Worker/EntityWorker.php
delete mode 100644 app/Component/ES/Worker/WorkerAmount.php
delete mode 100644 app/Component/ES/Worker/WorkerInterface.php
create mode 100644 app/Component/ProphetAi/Exceptions/InsufficientTranscriptException.php
create mode 100644 app/Component/Transcription/DTO/Http/Transcription/AssemblyAI/AssemblyAI/NoAssemblyIdException.php
create mode 100644 app/Component/Transcription/DTO/Http/Transcription/TranscriptionIsNotCorrectFormatException.php
create mode 100644 app/Console/Commands/Activities/SetupIntegration/TwilioSetS3RecordingCredentialsCommand.php
create mode 100644 app/Console/Commands/Crm/BackfillOpportunityUserFromAccountCommand.php
delete mode 100644 app/Console/Commands/Elasticsearch/AsyncUpdateEsActivities.php
create mode 100644 app/Console/Commands/IssueMcpTokenCommand.php
create mode 100644 app/Http/Middleware/McpAuditMiddleware.php
create mode 100644 app/Http/Middleware/McpTierMiddleware.php
create mode 100644 app/Mcp/Contracts/McpCallRepositoryInterface.php
create mode 100644 app/Mcp/DTO/ListCallsFilters.php
create mode 100644 app/Mcp/Errors/McpError.php
create mode 100644 app/Mcp/Repositories/McpActivityHydrator.php
create mode 100644 app/Mcp/Repositories/McpCallRepository.php
create mode 100644 app/Mcp/Repositories/McpElasticCallRepository.php
create mode 100644 app/Mcp/Servers/JiminnyServer.php
create mode 100644 app/Mcp/Tools/ListCallsTool.php
create mode 100644 app/Services/Activity/Twilio/S3RecordingCredentialsService.php
create mode 100644 config/mcp.php
create mode 100644 database/migrations/2026_04_30_120000_create_mcp_audit_log_table.php
create mode 100644 docs/mcp/explorer/explorer.html
create mode 100644 docs/mcp/explorer/explorer.template.html
create mode 100644 docs/mcp/explorer/generate.js
create mode 100644 docs/mcp/explorer/tool-explorer-meta.json
create mode 100644 docs/mcp/tools-list.json
create mode 100644 docs/mcp/tools.md
create mode 100644 front-end/src/components/shared/modals/EntityPickerModal/__tests__/useEntitiesCache.spec.ts
create mode 100644 tests/Feature/Component/Nudge/ProcessOrganisationImmediateNudgesJobTest.php
create mode 100644 tests/Feature/Mcp/IssueMcpTokenCommandTest.php
create mode 100644 tests/Feature/Mcp/ListCallsToolElasticFeatureTest.php
create mode 100644 tests/Feature/Mcp/ListCallsToolFeatureTest.php
create mode 100644 tests/Feature/Mcp/McpTestHelpersTrait.php
create mode 100644 tests/Stubs/SentryStub.php
create mode 100644 tests/Unit/Component/AiAutomation/Services/CrmFillingEligibilityCheckerTest.php
delete mode 100644 tests/Unit/Component/ES/ElasticSearchWorkerManagerTest.php
create mode 100644 tests/Unit/Component/ES/Processor/Actions/LoadDocumentsActionTest.php
delete mode 100644 tests/Unit/Component/ES/Processor/Traits/SkipActivityTraitTest.php
delete mode 100644 tests/Unit/Component/ES/Worker/ActivityWorkerTest.php
delete mode 100644 tests/Unit/Component/ES/Worker/EntityWorkerTest.php
delete mode 100644 tests/Unit/Component/ES/Worker/WorkerAmountTest.php
create mode 100644 tests/Unit/Component/ParticipantSpeech/Services/ParticipantSpeechesCreatorTest.php
create mode 100644 tests/Unit/Http/Controllers/Kiosk/ActivityControllerTest.php
create mode 100644 tests/Unit/Services/Activity/Twilio/S3RecordingCredentialsServiceTest.php
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20725-handle-HS-search-rate-limit) $ git status
On branch master
Your branch is behind 'origin/master' by 114 commits, and can be fast-forwarded.
(use "git pull" to update your local branch)
Changes not staged for commit:
(use "git add <file>..." to update what will be committed)
(use "git restore <file>..." to discard changes in working directory)
modified: .env.local
modified: app/Component/SCIM/Constants.php
modified: app/Component/SCIM/ScimProvisioning.php
modified: app/Component/Twilio/Conference/ConferenceManager/SoftPhoneManager.php
modified: app/Console/Commands/JiminnyDebugCommand.php
modified: app/DTO/SCIM/AAD/Request/CoreUserRequest.php
modified: app/DTO/SCIM/AAD/Response/CoreUser.php
modified: app/Services/Telephony/TextMessagingService.php
modified: config/logging.php
Untracked files:
(use "git add <file>..." to include in what will be committed)
.env.nikilocal
.env.other
WEBHOOK_FILTERING_IMPLEMENTATION.md
app/Component/SCIM/Mutators/Attributes/User/RoleAttr.php
app/Console/Commands/Crm/Hubspot/SimulateWebhooksCommand.php
app/Console/Commands/Reports/CreateMockAskJiminnyReportResultCommand.php
app/Rules/ListenerRoleCannotHaveAdminOrManagerPermissionRule.php
ids.txt
public/favicon.ico
raw_sql_query.sql
tests/Unit/Component/SCIM/Mutators/Attributes/User/RoleAttrTest.php
tests/Unit/Policies/CanAccessAiReportsTest.php
tests/Unit/Rules/ListenerRoleCannotHaveAdminOrManagerPermissionRuleTest.php
no changes added to commit (use "git add" and/or "git commit -a")
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (master) $ git pull
remote: Enumerating objects: 306, done.
remote: Counting objects: 100% (299/299), done.
remote: Compressing objects: 100% (183/183), done.
remote: Total 306 (delta 213), reused 171 (delta 116), pack-reused 7 (from 1)
Receiving objects: 100% (306/306), 80.12 KiB | 1000.00 KiB/s, done.
Resolving deltas: 100% (213/213), completed with 53 local objects.
From github.com:jiminny/app
90bca4e4b2..5604af40cf master -> origin/master
4e7078fd8b..0b8343d179 JY-18091-upgrade-to-php-8-5 -> origin/JY-18091-upgrade-to-php-8-5
098eeaa087..d5a447e492 JY-20613-allow-owner-role-on-team-setup -> origin/JY-20613-allow-owner-role-on-team-setup
c3a76ace91..af65249d0f JY-20749-user-can-view-recorded-meetings -> origin/JY-20749-user-can-view-recorded-meetings
d94a285ae7..7ce96cb5fe JY-20808-low-priority-indexing-queue -> origin/JY-20808-low-priority-indexing-queue
* [new branch] JY-20842-remove-partial-updater -> origin/JY-20842-remove-partial-updater
* [new branch] JY-20920-fix-participant-flip -> origin/JY-20920-fix-participant-flip
* [new branch] secfix/npm-20260519 -> origin/secfix/npm-20260519
Updating cb4ebf0c36..5604af40cf
Fast-forward
app/Component/ES/ChunkSize.php | 54 +++++++++++++++++++
app/Component/ES/Processor/DTOs/SelectionList.php | 4 +-
app/Component/ES/Processor/TargetEntitiesSelector.php | 19 ++++---
app/Component/MeetingBot/Service/ParticipantMatcher.php | 46 ++++++++++++----
app/Exceptions/RateLimitException.php | 19 ++++++-
app/Http/Middleware/McpTierMiddleware.php | 27 ++--------
app/Jobs/Crm/MatchActivityCrmData.php | 47 ++++++++++++----
app/Jobs/Middleware/HandleHubspotRateLimit.php | 42 +++++++++++++++
app/Mcp/Servers/JiminnyServer.php | 2 +
app/Mcp/Tools/GetMeTool.php | 157 +++++++++++++++++++++++++++++++++++++++++++++++++++++
app/Models/Feature/FeatureEnum.php | 1 +
app/Services/Activity/HubSpot/ProviderResolver.php | 4 +-
app/Services/Activity/HubSpot/ProviderResolverInterface.php | 2 +-
app/Services/Activity/HubSpot/Providers/Provider.php | 2 +-
app/Services/Activity/HubSpot/Providers/ProviderKixie.php | 2 +-
app/Services/Activity/HubSpot/Providers/ProviderOrum.php | 2 +-
app/Services/Activity/HubSpot/Providers/ProviderTwilio.php | 2 +-
app/Services/Activity/HubSpot/Providers/ProviderTwilioFlex.php | 5 +-
app/Services/Activity/HubSpot/Service.php | 97 +++++++++++++++++++++++++++------
app/Services/Crm/Hubspot/Client.php | 132 +++++++++++++++++++++++++++++++++++++++++++++
app/Services/Crm/Hubspot/HubspotClientInterface.php | 15 ++++++
app/Services/Crm/Hubspot/Pagination/HubspotPaginationService.php | 21 ++++----
app/Services/Crm/Hubspot/Pagination/PaginationState.php | 2 +-
database/migrations/2026_05_13_124153_create_mcp_feature_flag.php | 25 +++++++++
tests/Feature/Mcp/GetMeToolFeatureTest.php | 140 +++++++++++++++++++++++++++++++++++++++++++++++
tests/Feature/Mcp/ListCallsToolFeatureTest.php | 2 +-
tests/Feature/Mcp/McpTestHelpersTrait.php | 19 ++++++-
tests/Unit/Component/ES/ChunkSizeTest.php | 50 +++++++++++++++++
tests/Unit/Component/ES/Processor/DTOs/SelectionListTest.php | 27 +++++++---
tests/Unit/Component/ES/Processor/TargetEntitiesSelectorTest.php | 39 ++++++++------
tests/Unit/Component/MeetingBot/Service/ParticipantMatcherTest.php | 68 ++++++++++++++++++++++-
tests/Unit/Exceptions/RateLimitExceptionTest.php | 56 +++++++++++++++++++
tests/Unit/Jobs/Crm/MatchActivityCrmDataTest.php | 8 +--
tests/Unit/Jobs/Middleware/HandleHubspotRateLimitTest.php | 151 +++++++++++++++++++++++++++++++++++++++++++++++++++
tests/Unit/Services/Activity/HubSpot/ServiceTest.php | 109 +++++++++++++++++++++++++++++++++++++
tests/Unit/Services/Crm/Hubspot/ClientTest.php | 250 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
tests/Unit/Services/Crm/Hubspot/Pagination/HubspotPaginationServiceTest.php | 283 +++++++++++++++++++++---------------------------------------------------------------------------
37 files changed, 1587 insertions(+), 344 deletions(-)
create mode 100644 app/Component/ES/ChunkSize.php
create mode 100644 app/Jobs/Middleware/HandleHubspotRateLimit.php
create mode 100644 app/Mcp/Tools/GetMeTool.php
create mode 100644 database/migrations/2026_05_13_124153_create_mcp_feature_flag.php
create mode 100644 tests/Feature/Mcp/GetMeToolFeatureTest.php
create mode 100644 tests/Unit/Component/ES/ChunkSizeTest.php
create mode 100644 tests/Unit/Exceptions/RateLimitExceptionTest.php
create mode 100644 tests/Unit/Jobs/Middleware/HandleHubspotRateLimitTest.php
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (master) $ git pull
Already up to date.
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (master) $ co -b JY-20676-delete-report-related-objects
Switched to a new branch 'JY-20676-delete-report-related-objects'
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20676-delete-report-related-objects) $ csfix
docker exec -it docker_lamp_1 ./vendor/bin/php-cs-fixer fix --config=.php-cs-fixer.dist.php -v --using-cache=no --diff
PHP CS Fixer 3.87.1 Alexander by Fabien Potencier, Dariusz Ruminski and contributors.
PHP runtime: 8.3.30
Running 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!
Loaded config default from ".php-cs-fixer.dist.php".
5690/5690 [▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓] 100%
1) app/Console/Commands/JiminnyDebugCommand.php (statement_indentation, blank_line_before_statement)
---------- begin diff ----------
--- /home/jiminny/app/Console/Commands/JiminnyDebugCommand.php
+++ /home/jiminny/app/Console/Commands/JiminnyDebugCommand.php
@@ -23,6 +23,7 @@
if ($action === 'redis-set') {
$this->testRedisSet();
+
return;
}
@@ -45,7 +46,7 @@
$ttl = 60;
try {
-// $result = Redis::set($testKey, $testValue, 'EX', $ttl, 'NX');
+ // $result = Redis::set($testKey, $testValue, 'EX', $ttl, 'NX');
$result = Redis::set($testKey, $testValue, ['nx', 'ex' => $ttl]);
if ($result) {
----------- end diff -----------
Fixed 1 of 5690 files i...
|
58091
|
NULL
|
NULL
|
NULL
|
|
58115
|
2046
|
8
|
2026-05-19T11:40:38.357342+00:00
|
/Users/lukas/.screenpipe/data/data/2026-05-19/1779 /Users/lukas/.screenpipe/data/data/2026-05-19/1779190838357_m1.jpg...
|
iTerm2
|
APP (docker)
|
1
|
NULL
|
monitor_1
|
NULL
|
NULL
|
NULL
|
NULL
|
Last login: Mon May 18 09:17:28 on ttys007
Poetry Last login: Mon May 18 09:17:28 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 (pipedrive-sdk-poc) $ co master
error: Your local changes to the following files would be overwritten by checkout:
PIPEDRIVE_V2_MIGRATION_TICKETS.md
Please commit your changes or stash them before you switch branches.
Aborting
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (pipedrive-sdk-poc) $ git pull
remote: Enumerating objects: 1047, done.
remote: Counting objects: 100% (832/832), done.
remote: Compressing objects: 100% (298/298), done.
remote: Total 1047 (delta 634), reused 596 (delta 534), pack-reused 215 (from 3)
Receiving objects: 100% (1047/1047), 353.16 KiB | 1.56 MiB/s, done.
Resolving deltas: 100% (687/687), completed with 107 local objects.
From github.com:jiminny/app
907c54896c..34656c53ed pipedrive-sdk-poc -> origin/pipedrive-sdk-poc
03325ec50f..4e7078fd8b JY-18091-upgrade-to-php-8-5 -> origin/JY-18091-upgrade-to-php-8-5
e7d231e163..bc6a3fce6b JY-20725-handle-HS-search-rate-limit -> origin/JY-20725-handle-HS-search-rate-limit
* [new branch] JY-20749-user-can-view-recorded-meetings -> origin/JY-20749-user-can-view-recorded-meetings
98ca281a04..e0351be069 JY-20808-low-priority-indexing-queue -> origin/JY-20808-low-priority-indexing-queue
569abb5149..3906a9238a JY-20835-mcp-enable-users-to-get-a-list-of-deals-and-their-details -> origin/JY-20835-mcp-enable-users-to-get-a-list-of-deals-and-their-details
ad6c2a86e8..50eb6afba9 JY-20846-mcp-enable-the-ai-to-know-details-about-the-user -> origin/JY-20846-mcp-enable-the-ai-to-know-details-about-the-user
* [new branch] JY-20893-chunk-control-per-update-target -> origin/JY-20893-chunk-control-per-update-target
31c62924a5..cb4ebf0c36 master -> origin/master
Updating 907c54896c..34656c53ed
Fast-forward
PIPEDRIVE_V2_MIGRATION_TICKETS.md | 52 ++++++++++++++++++++++++++++++++++++++++++++++++++++
1 file changed, 52 insertions(+)
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (pipedrive-sdk-poc) $ co master
M .env.local
M config/logging.php
Switched to branch 'master'
Your branch is behind 'origin/master' by 31 commits, and can be fast-forwarded.
(use "git pull" to update your local branch)
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (master) $ git pull
Updating 31c62924a5..cb4ebf0c36
Fast-forward
app/Component/ES/Processor/Traits/SelectEntityListTrait.php | 20 ------
app/Services/Calendar/CalendarActivityService.php | 46 +++++++++++++
app/Services/Calendar/Command/MapActivityData.php | 106 +++-------------------------
docs/mcp/explorer/explorer.html | 104 +++++++++++++++++++++++++---
docs/mcp/explorer/explorer.template.html | 102 ++++++++++++++++++++++++---
docs/mcp/tools-list.json | 373 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++-------
docs/mcp/tools.md | 117 +++++++++++++++++++++++--------
tests/Unit/Component/ES/AsyncUpdateElasticSearchTest.php | 16 +----
tests/Unit/Component/ES/Listeners/UpdateMultipleTargetsListenerTest.php | 10 ---
tests/Unit/Component/ES/Listeners/UpdateSingleTargetListenerTest.php | 6 --
tests/Unit/Component/ES/Processor/TargetEntitiesSelectorTest.php | 9 ---
tests/Unit/Component/ES/Processor/Traits/SelectEntityListTraitTest.php | 15 ++--
tests/Unit/Component/ES/UpdateProcessManagerTest.php | 2 -
tests/Unit/Services/Calendar/CalendarActivityServiceTest.php | 150 ++++++++++++++++++++++++++++++++++++++--
tests/Unit/Services/Calendar/Command/MapActivityDataTest.php | 78 ++-------------------
15 files changed, 832 insertions(+), 322 deletions(-)
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (master) $ co -b JY-20613-allow-owner-role-on-team-setup
Switched to a new branch 'JY-20613-allow-owner-role-on-team-setup'
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20613-allow-owner-role-on-team-setup) $ csfix
docker exec -it docker_lamp_1 ./vendor/bin/php-cs-fixer fix --config=.php-cs-fixer.dist.php -v --using-cache=no --diff
PHP CS Fixer 3.87.1 Alexander by Fabien Potencier, Dariusz Ruminski and contributors.
PHP runtime: 8.3.30
Running 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!
Loaded config default from ".php-cs-fixer.dist.php".
5682/5682 [▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓] 100%
Fixed 0 of 5682 files in 56.978 seconds, 67.00 MB memory used
What's next:
Try Docker Debug for seamless, persistent debugging tools in any container or image → docker debug docker_lamp_1
Learn more at [URL_WITH_CREDENTIALS] ~/jiminny/app (JY-20613-allow-owner-role-on-team-setup) $ csfix
docker exec -it docker_lamp_1 ./vendor/bin/php-cs-fixer fix --config=.php-cs-fixer.dist.php -v --using-cache=no --diff
PHP CS Fixer 3.87.1 Alexander by Fabien Potencier, Dariusz Ruminski and contributors.
PHP runtime: 8.3.30
Running 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!
Loaded config default from ".php-cs-fixer.dist.php".
5682/5682 [▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓] 100%
Fixed 0 of 5682 files in 49.910 seconds, 60.00 MB memory used
What's next:
Try Docker Debug for seamless, persistent debugging tools in any container or image → docker debug docker_lamp_1
Learn more at [URL_WITH_CREDENTIALS] ~/jiminny/app (JY-20613-allow-owner-role-on-team-setup) $ git pull
remote: Enumerating objects: 248, done.
remote: Counting objects: 100% (128/128), done.
remote: Compressing objects: 100% (23/23), done.
remote: Total 59 (delta 43), reused 44 (delta 33), pack-reused 0 (from 0)
Unpacking objects: 100% (59/59), 10.48 KiB | 228.00 KiB/s, done.
From github.com:jiminny/app
b7df560451..190239dfd4 JY-20613-allow-owner-role-on-team-setup -> origin/JY-20613-allow-owner-role-on-team-setup
e0351be069..d94a285ae7 JY-20808-low-priority-indexing-queue -> origin/JY-20808-low-priority-indexing-queue
* [new branch] JY-20920-fix-participant-matcher -> origin/JY-20920-fix-participant-matcher
cb4ebf0c36..90bca4e4b2 master -> origin/master
Merge made by the 'ort' strategy.
app/Component/ES/ChunkSize.php | 54 +++++++++++++++++++++++++++
app/Component/ES/Processor/DTOs/SelectionList.php | 4 +-
app/Component/ES/Processor/TargetEntitiesSelector.php | 19 ++++++----
app/Http/Middleware/McpTierMiddleware.php | 27 +++-----------
app/Mcp/Servers/JiminnyServer.php | 2 +
app/Mcp/Tools/GetMeTool.php | 157 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
app/Models/Feature/FeatureEnum.php | 1 +
database/migrations/2026_05_13_124153_create_mcp_feature_flag.php | 25 +++++++++++++
front-end/src/components/Settings/Kiosk/modals/EditTeamModal/EditTeamModal.vue | 52 ++++++++++++++++++--------
front-end/src/components/Settings/Kiosk/modals/EditTeamModal/__tests__/EditTeamModal.spec.js | 14 +++++++
tests/Feature/Mcp/GetMeToolFeatureTest.php | 140 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
tests/Feature/Mcp/ListCallsToolFeatureTest.php | 2 +-
tests/Feature/Mcp/McpTestHelpersTrait.php | 19 +++++++++-
tests/Unit/Component/ES/ChunkSizeTest.php | 50 +++++++++++++++++++++++++
tests/Unit/Component/ES/Processor/DTOs/SelectionListTest.php | 27 ++++++++++----
tests/Unit/Component/ES/Processor/TargetEntitiesSelectorTest.php | 39 +++++++++++---------
16 files changed, 557 insertions(+), 75 deletions(-)
create mode 100644 app/Component/ES/ChunkSize.php
create mode 100644 app/Mcp/Tools/GetMeTool.php
create mode 100644 database/migrations/2026_05_13_124153_create_mcp_feature_flag.php
create mode 100644 tests/Feature/Mcp/GetMeToolFeatureTest.php
create mode 100644 tests/Unit/Component/ES/ChunkSizeTest.php
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20613-allow-owner-role-on-team-setup) $ git push
Enumerating objects: 40, done.
Counting objects: 100% (34/34), done.
Delta compression using up to 8 threads
Compressing objects: 100% (18/18), done.
Writing objects: 100% (18/18), 1.58 KiB | 1.58 MiB/s, done.
Total 18 (delta 15), reused 0 (delta 0), pack-reused 0
remote: Resolving deltas: 100% (15/15), completed with 13 local objects.
To github.com:jiminny/app.git
190239dfd4..ec1b261264 JY-20613-allow-owner-role-on-team-setup -> JY-20613-allow-owner-role-on-team-setup
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20613-allow-owner-role-on-team-setup) $ gbr
* JY-20613-allow-owner-role-on-team-setup
pipedrive-sdk-poc
master
JY-20903-update_activity-stage-on-opportunity-change
JY-20904-fix-update-es-on-activity-command
JY-20891-improve-sms-text-relays
JY-20725-handle-HS-search-rate-limit
JY-20818-move-AJ-reports-to-separated-datadog-metric
JY-20773-fix-automated-reports-user-pilot-tracking
JY-20157-AJ-report-not-send-notification
JY-20508-notify-before-AJ-report-expiration
JY-20372-ai-reports-promotion-pages
JY-20352-sync-opportunities-without-a-local-owner-user-id-is-null
JY-20738-debug-AJ-tracking-UP
a
JY-18909-automated-reports-ask-jiminny
JY-20692-fix-integration-app-[API_KEY]
JY-20553-debug-crm-sync-delays
JY-20698-fix-SF-activity-types-on-new-playbook
JY-20543-AJ-report-tracking
JY-20384-handle-auto-sync-with-no-access-to-event-type
JY-20458-ask-jiminny-user-definitions
JY-19666-fix-import-contacts-account-association
JY-19666-HS-import-contacts-and-accounts-batch-job
JY-20458-Ask-Jiminny-Reports
JY-20200-batch-update-CRM-objects-Salesforce
JY-19666-HS-webhooks-add-contact-and-company
JY-20348-trigger-setup-DI-layout-on-team-creation
JY-20326-refactor-info-message-in-command
JY-20317-fix-auto-log-delay-issue-on-all-channels-disabled
JY-20312-remove-on-update-change-last-synced-at-crm-configurations
JY-20306-SF-skip-auto-sync-for-task-based-playbook
JY-20192-remove-deleted-team-from-saved-search-filters
JY-20197-import-opportunity-batch-job
JY-20293-enable-status-field-for-pipedrive-deals
JY-20191-remove-commands-interactive-prompts
JY-20118-change-default-sync-strategy
JY-20183-add-cache-on-auto-log-delay
JY-20197-add-import-opportunity-batch-job
20118-hs-opportunity-make-webhook-strategy-default
JY-20118-make-default-hs-opportunity-sync-strategy-webhook-based
JY-20196-handle-opportunity-without-note
JY-20118-improve-opportunity-import
JY-20189-handle-activity-search-on-deleted-groups
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20613-allow-owner-role-on-team-setup) $ co JY-20725-handle-HS-search-rate-limit
M .env.local
M config/logging.php
Switched to branch 'JY-20725-handle-HS-search-rate-limit'
Your branch is behind 'origin/JY-20725-handle-HS-search-rate-limit' by 439 commits, and can be fast-forwarded.
(use "git pull" to update your local branch)
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20725-handle-HS-search-rate-limit) $ git pull
Updating 0f3e438941..bc6a3fce6b
Fast-forward
.gitignore | 3 +-
.windsurfrules | 168 ++---
CLAUDE.md | 1 +
app/Component/ActivityAnalytics/Service/CalculateTalkTimeOffsetsFromTranscription.php | 24 +-
app/Component/AiActivityType/Services/AiActivityTypeEligibilityChecker.php | 28 +-
app/Component/AiAutomation/Actions/PrepareUpdateDtoAction.php | 32 +-
app/Component/AiAutomation/Services/CrmFillingEligibilityChecker.php | 47 ++
app/Component/AiAutomation/TestCrmAiPromptService.php | 14 +
app/Component/AiCallScoring/Services/AiCallScoringEligibilityChecker.php | 9 +
app/Component/ES/ElasticSearchDocumentPartialUpdater.php | 13 +-
app/Component/ES/ElasticSearchWorkerManager.php | 86 ---
app/Component/ES/Processor/Actions/LoadDocumentsAction.php | 80 +--
app/Component/ES/Processor/EntityQueryBuilder.php | 12 +-
app/Component/ES/Processor/TargetEntitiesSelector.php | 2 +-
app/Component/ES/Processor/Traits/SkipActivityTrait.php | 25 -
app/Component/ES/Repositories/EsResetActivityRepository.php | 11 +-
app/Component/ES/Worker/ActivityWorker.php | 73 --
app/Component/ES/Worker/EntityWorker.php | 44 --
app/Component/ES/Worker/WorkerAmount.php | 60 --
app/Component/ES/Worker/WorkerInterface.php | 15 -
app/Component/ElasticSearch/Contract/Searchable.php | 4 +
app/Component/Encoding/Job/AnalyzeTrackChannelsJob.php | 20 +-
app/Component/Encoding/Service/GenerateSpeechFromSilenceService.php | 85 ++-
app/Component/FFMpeg/Services/GetSpeechIntervalsService.php | 18 +-
app/Component/LanguageDetection/Services/FindSpeechTimeService.php | 22 +-
app/Component/Nudge/Job/ProcessOrganisationImmediateNudgesJob.php | 218 +++++-
app/Component/ParagraphBreaker/Services/TranscriptionParagraphsService.php | 4 +
app/Component/ParticipantSpeech/Services/ParticipantSpeechesCreator.php | 33 +
app/Component/ParticipantSpeech/Services/ParticipantSpeechesDeleter.php | 15 +
app/Component/ParticipantSpeech/Services/ParticipantSpeechesProvider.php | 51 +-
app/Component/ParticipantSpeech/Services/ParticipantSpeechesUploader.php | 36 +
app/Component/ProphetAi/Exceptions/InsufficientTranscriptException.php | 11 +
app/Component/Transcription/DTO/Http/Transcription/AssemblyAI/AssemblyAI/NoAssemblyIdException.php | 11 +
app/Component/Transcription/DTO/Http/Transcription/AssemblyAI/AssemblyAI/SuccessfulResponse.php | 6 +
app/Component/Transcription/DTO/Http/Transcription/TranscriptionIsNotCorrectFormatException.php | 11 +
app/Component/Transcription/Diarization/Services/GetNormalizedParticipantSpeechesService.php | 23 +-
app/Component/Transcription/Diarization/Source/MeetingBotSource.php | 16 +-
app/Component/Transcription/TranscriptionProcessor/TranscriptionProcessor.php | 3 +
app/Console/Commands/Activities/ActivityHardDeleteCommand.php | 4 +-
app/Console/Commands/Activities/Copy.php | 2 +
app/Console/Commands/Activities/SetupIntegration/TwilioSetS3RecordingCredentialsCommand.php | 119 ++++
app/Console/Commands/Activities/UpdateActivityElasticSearchDocumentCommand.php | 10 +-
app/Console/Commands/Crm/BackfillOpportunityUserFromAccountCommand.php | 126 ++++
app/Console/Commands/Elasticsearch/AsyncUpdateEsActivities.php | 19 -
app/Console/Commands/Elasticsearch/AsyncUpdateEsEntities.php | 50 +-
app/Console/Commands/Elasticsearch/ResetAsyncElasticSearchCommand.php | 30 +-
app/Console/Commands/GeckoExport/GeckoExportParticipantSpeechesCommand.php | 14 +-
app/Console/Commands/IssueMcpTokenCommand.php | 84 +++
app/Console/Commands/JiminnyDebugCommand.php | 7 +-
app/Console/Commands/Tracks/CleanupActivityTracksCommand.php | 2 +-
app/Console/Kernel.php | 6 +-
app/Contracts/Services/Calendar/CalendarTrait.php | 80 ++-
app/Events/AutomatedReports/AutomatedReportGenerated.php | 3 +
app/Http/Controllers/API/AiCallScoring/AiScorecardController.php | 7 +-
app/Http/Controllers/API/TeamAiAutomationController.php | 8 +
app/Http/Controllers/CustomerApi/CustomerApiController.php | 4 +-
app/Http/Controllers/Kiosk/ActivityController.php | 58 +-
app/Http/Controllers/Settings/PlaybookController.php | 15 +-
app/Http/Kernel.php | 23 +
app/Http/Middleware/McpAuditMiddleware.php | 156 ++++
app/Http/Middleware/McpTierMiddleware.php | 54 ++
app/Http/Requests/API/V2/ZapierUploadActivityRequest.php | 28 +-
app/Jobs/Activity/Import/ImportTwilioVideoSpeechesJob.php | 25 +-
app/Jobs/Activity/Import/IsActivityReadyForProcessingJob.php | 10 +-
app/Jobs/Calendar/SetupCalendarSync.php | 21 +-
app/Jobs/ImportRemoteTrackJob.php | 96 ++-
app/Jobs/Mailbox/EmailTextRelay.php | 15 +-
app/Mcp/Contracts/McpCallRepositoryInterface.php | 30 +
app/Mcp/DTO/ListCallsFilters.php | 29 +
app/Mcp/Errors/McpError.php | 123 ++++
app/Mcp/Repositories/McpActivityHydrator.php | 145 ++++
app/Mcp/Repositories/McpCallRepository.php | 84 +++
app/Mcp/Repositories/McpElasticCallRepository.php | 171 +++++
app/Mcp/Servers/JiminnyServer.php | 38 +
app/Mcp/Tools/ListCallsTool.php | 205 ++++++
app/Models/Activity.php | 10 +-
app/Models/Activity/Transcription.php | 17 +-
app/Models/ElasticSearch/OpportunityElasticSearchTrait.php | 5 +
app/Models/Participant.php | 1 +
app/Providers/AppServiceProvider.php | 22 +
app/Repositories/Crm/ContactRepository.php | 69 +-
app/Repositories/ParticipantSpeechRepository.php | 13 +-
app/Services/Activity/ParticipantsService.php | 19 +-
app/Services/Activity/Twilio/S3RecordingCredentialsService.php | 82 +++
app/Services/ActivityService.php | 21 +-
app/Services/Calendar/CalendarActivityService.php | 46 ++
app/Services/Calendar/Command/ImportParticipants.php | 1 +
app/Services/Calendar/Command/MapActivityData.php | 106 +--
app/Services/Calendar/GoogleCalendarService.php | 12 +-
app/Services/Crm/Close/Processor/OpportunityProcessor.php | 2 +-
app/Services/Crm/Close/Service.php | 22 +-
app/Services/Crm/Copper/Service.php | 12 +-
app/Services/Crm/Hubspot/Service.php | 154 +++-
app/Services/Crm/Hubspot/ServiceTraits/OpportunitySyncTrait.php | 88 ++-
app/Services/Crm/IntegrationApp/ServiceTraits/SyncCrmEntitiesTrait.php | 22 +-
app/Services/Crm/Pipedrive/Service.php | 17 +-
app/Services/Crm/Salesforce/Service.php | 42 +-
app/Services/Mail/Office/EmailApiClient.php | 129 +---
app/Services/RecallAI/Commands/ScheduleBotCommand.php | 39 +-
app/Services/RecallAI/RecallAIService.php | 22 +-
composer.json | 3 +-
composer.lock | 87 ++-
config/mcp.php | 23 +
database/migrations/2026_04_30_120000_create_mcp_audit_log_table.php | 36 +
docs/mcp/explorer/explorer.html | 697 ++++++++++++++++++
docs/mcp/explorer/explorer.template.html | 697 ++++++++++++++++++
docs/mcp/explorer/generate.js | 215 ++++++
docs/mcp/explorer/tool-explorer-meta.json | 11 +
docs/mcp/tools-list.json | 2536 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
docs/mcp/tools.md | 621 ++++++++++++++++
front-end/package.json | 4 +-
front-end/src/components/Settings/OrgSettings/AiAutomation/CrmFilling/TemplateFieldForm.vue | 28 +-
front-end/src/components/Settings/OrgSettings/Playbooks/AddEditPlaybook.vue | 10 +
front-end/src/components/playback/comments/ActivityComment.less | 10 +-
front-end/src/components/shared/PromptTester/PromptTester.vue | 12 +-
front-end/src/components/shared/__tests__/PromptTester.spec.js | 35 +
front-end/src/components/shared/modals/EntityPickerModal/__tests__/useEntitiesCache.spec.ts | 37 +
front-end/src/components/shared/modals/EntityPickerModal/useEntitiesCache.ts | 9 +
front-end/yarn.lock | 16 +-
phpstan-baseline.neon | 50 --
routes/api.php | 11 +
sonar-project.properties | 91 ++-
tests/Feature/Component/Nudge/ProcessOrganisationImmediateNudgesJobTest.php | 534 ++++++++++++++
tests/Feature/Jobs/ImportRemoteTrackJobTest.php | 283 +++++++-
tests/Feature/Mcp/IssueMcpTokenCommandTest.php | 53 ++
tests/Feature/Mcp/ListCallsToolElasticFeatureTest.php | 155 ++++
tests/Feature/Mcp/ListCallsToolFeatureTest.php | 352 ++++++++++
tests/Feature/Mcp/McpTestHelpersTrait.php | 77 ++
tests/Feature/Services/Team/TeamDeleteHandlers/Retention/RetentionRepositoryHandlerTest.php | 1 +
tests/Stubs/SentryStub.php | 18 +
tests/Unit/Component/ActivityAnalytics/Service/CalculateTalkTimeOffsetFromTranscriptionTest.php | 28 +-
tests/Unit/Component/AiActivityType/Services/AiActivityTypeEligibilityCheckerTest.php | 103 ++-
tests/Unit/Component/AiAutomation/Actions/PrepareUpdateDtoActionTest.php | 91 +++
tests/Unit/Component/AiAutomation/Services/CrmFillingEligibilityCheckerTest.php | 124 ++++
tests/Unit/Component/AiAutomation/TestCrmAiPromptServiceTest.php | 67 +-
tests/Unit/Component/AiCallScoring/Services/AiCallScoringEligibilityCheckerTest.php | 55 ++
tests/Unit/Component/ES/ElasticSearchWorkerManagerTest.php | 135 ----
tests/Unit/Component/ES/Processor/Actions/LoadDocumentsActionTest.php | 220 ++++++
tests/Unit/Component/ES/Processor/EntityQueryBuilderTest.php | 21 +-
tests/Unit/Component/ES/Processor/Traits/SkipActivityTraitTest.php | 51 --
tests/Unit/Component/ES/Worker/ActivityWorkerTest.php | 174 -----
tests/Unit/Component/ES/Worker/EntityWorkerTest.php | 97 ---
tests/Unit/Component/ES/Worker/WorkerAmountTest.php | 116 ---
tests/Unit/Component/Encoding/Job/AnalyzeTrackChannelsJobTest.php | 52 +-
tests/Unit/Component/Encoding/Service/GenerateSpeechFromSilenceServiceTest.php | 171 ++---
tests/Unit/Component/FFMpeg/Services/GetSpeechIntervalsTest.php | 36 +-
tests/Unit/Component/LanguageDetection/Services/FindSpeechTimeServiceTest.php | 20 +-
tests/Unit/Component/MobileSettings/MobileSettingsControllerTest.php | 5 +-
tests/Unit/Component/ParticipantSpeech/Services/ParticipantSpeechesCreatorTest.php | 75 ++
tests/Unit/Component/ParticipantSpeech/Services/ParticipantSpeechesDeleterTest.php | 63 ++
tests/Unit/Component/ParticipantSpeech/Services/ParticipantSpeechesProviderTest.php | 134 ++++
tests/Unit/Component/ParticipantSpeech/Services/ParticipantSpeechesUploaderTest.php | 57 ++
tests/Unit/Component/Transcription/Diarization/Services/GetNormalizedParticipantSpeechesServiceTest.php | 51 +-
tests/Unit/Component/Transcription/Diarization/Source/MeetingBotSourceTest.php | 29 +-
tests/Unit/Contracts/Services/Calendar/CalendarTraitTest.php | 58 +-
tests/Unit/Http/Controllers/Kiosk/ActivityControllerTest.php | 159 +++++
tests/Unit/Jobs/Activity/Import/ImportTwilioVideoSpeechesJobTest.php | 22 +-
tests/Unit/Jobs/Activity/Import/IsActivityReadyForProcessingJobTest.php | 26 +-
tests/Unit/Jobs/Calendar/SetupCalendarSyncTest.php | 25 -
tests/Unit/Services/Activity/ParticipantsServiceTest.php | 12 +-
tests/Unit/Services/Activity/Twilio/S3RecordingCredentialsServiceTest.php | 180 +++++
tests/Unit/Services/ActivityServiceTest.php | 132 ++++
tests/Unit/Services/Calendar/CalendarActivityServiceTest.php | 150 +++-
tests/Unit/Services/Calendar/Command/ImportParticipantsTest.php | 6 +-
tests/Unit/Services/Calendar/Command/MapActivityDataTest.php | 78 +-
tests/Unit/Services/Calendar/GoogleCalendarServiceTest.php | 116 +++
tests/Unit/Services/Crm/Close/ServiceTest.php | 165 +++++
tests/Unit/Services/Crm/Hubspot/ServiceTest.php | 272 ++++++-
tests/Unit/Services/Crm/Hubspot/ServiceTraits/OpportunitySyncTest.php | 25 +-
tests/Unit/Services/Crm/Hubspot/ServiceTraits/OpportunitySyncTraitMatchActivitiesTest.php | 3 +-
tests/Unit/Services/Crm/IntegrationApp/ServiceTraits/SyncCrmEntitiesTraitOpportunitiesTest.php | 40 ++
tests/Unit/Services/Crm/Pipedrive/ImportOpportunityMatchActivitiesTest.php | 2 +
tests/Unit/Services/Crm/Salesforce/ServiceTest.php | 139 ++++
tests/Unit/Services/Mail/Office/EmailApiClientTest.php | 195 ++---
tests/Unit/Services/RecallAI/RecallAIServiceTest.php | 24 +-
175 files changed, 12562 insertions(+), 2162 deletions(-)
create mode 120000 CLAUDE.md
create mode 100644 app/Component/AiAutomation/Services/CrmFillingEligibilityChecker.php
delete mode 100644 app/Component/ES/ElasticSearchWorkerManager.php
delete mode 100644 app/Component/ES/Processor/Traits/SkipActivityTrait.php
delete mode 100644 app/Component/ES/Worker/ActivityWorker.php
delete mode 100644 app/Component/ES/Worker/EntityWorker.php
delete mode 100644 app/Component/ES/Worker/WorkerAmount.php
delete mode 100644 app/Component/ES/Worker/WorkerInterface.php
create mode 100644 app/Component/ProphetAi/Exceptions/InsufficientTranscriptException.php
create mode 100644 app/Component/Transcription/DTO/Http/Transcription/AssemblyAI/AssemblyAI/NoAssemblyIdException.php
create mode 100644 app/Component/Transcription/DTO/Http/Transcription/TranscriptionIsNotCorrectFormatException.php
create mode 100644 app/Console/Commands/Activities/SetupIntegration/TwilioSetS3RecordingCredentialsCommand.php
create mode 100644 app/Console/Commands/Crm/BackfillOpportunityUserFromAccountCommand.php
delete mode 100644 app/Console/Commands/Elasticsearch/AsyncUpdateEsActivities.php
create mode 100644 app/Console/Commands/IssueMcpTokenCommand.php
create mode 100644 app/Http/Middleware/McpAuditMiddleware.php
create mode 100644 app/Http/Middleware/McpTierMiddleware.php
create mode 100644 app/Mcp/Contracts/McpCallRepositoryInterface.php
create mode 100644 app/Mcp/DTO/ListCallsFilters.php
create mode 100644 app/Mcp/Errors/McpError.php
create mode 100644 app/Mcp/Repositories/McpActivityHydrator.php
create mode 100644 app/Mcp/Repositories/McpCallRepository.php
create mode 100644 app/Mcp/Repositories/McpElasticCallRepository.php
create mode 100644 app/Mcp/Servers/JiminnyServer.php
create mode 100644 app/Mcp/Tools/ListCallsTool.php
create mode 100644 app/Services/Activity/Twilio/S3RecordingCredentialsService.php
create mode 100644 config/mcp.php
create mode 100644 database/migrations/2026_04_30_120000_create_mcp_audit_log_table.php
create mode 100644 docs/mcp/explorer/explorer.html
create mode 100644 docs/mcp/explorer/explorer.template.html
create mode 100644 docs/mcp/explorer/generate.js
create mode 100644 docs/mcp/explorer/tool-explorer-meta.json
create mode 100644 docs/mcp/tools-list.json
create mode 100644 docs/mcp/tools.md
create mode 100644 front-end/src/components/shared/modals/EntityPickerModal/__tests__/useEntitiesCache.spec.ts
create mode 100644 tests/Feature/Component/Nudge/ProcessOrganisationImmediateNudgesJobTest.php
create mode 100644 tests/Feature/Mcp/IssueMcpTokenCommandTest.php
create mode 100644 tests/Feature/Mcp/ListCallsToolElasticFeatureTest.php
create mode 100644 tests/Feature/Mcp/ListCallsToolFeatureTest.php
create mode 100644 tests/Feature/Mcp/McpTestHelpersTrait.php
create mode 100644 tests/Stubs/SentryStub.php
create mode 100644 tests/Unit/Component/AiAutomation/Services/CrmFillingEligibilityCheckerTest.php
delete mode 100644 tests/Unit/Component/ES/ElasticSearchWorkerManagerTest.php
create mode 100644 tests/Unit/Component/ES/Processor/Actions/LoadDocumentsActionTest.php
delete mode 100644 tests/Unit/Component/ES/Processor/Traits/SkipActivityTraitTest.php
delete mode 100644 tests/Unit/Component/ES/Worker/ActivityWorkerTest.php
delete mode 100644 tests/Unit/Component/ES/Worker/EntityWorkerTest.php
delete mode 100644 tests/Unit/Component/ES/Worker/WorkerAmountTest.php
create mode 100644 tests/Unit/Component/ParticipantSpeech/Services/ParticipantSpeechesCreatorTest.php
create mode 100644 tests/Unit/Http/Controllers/Kiosk/ActivityControllerTest.php
create mode 100644 tests/Unit/Services/Activity/Twilio/S3RecordingCredentialsServiceTest.php
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20725-handle-HS-search-rate-limit) $ git status
On branch master
Your branch is behind 'origin/master' by 114 commits, and can be fast-forwarded.
(use "git pull" to update your local branch)
Changes not staged for commit:
(use "git add <file>..." to update what will be committed)
(use "git restore <file>..." to discard changes in working directory)
modified: .env.local
modified: app/Component/SCIM/Constants.php
modified: app/Component/SCIM/ScimProvisioning.php
modified: app/Component/Twilio/Conference/ConferenceManager/SoftPhoneManager.php
modified: app/Console/Commands/JiminnyDebugCommand.php
modified: app/DTO/SCIM/AAD/Request/CoreUserRequest.php
modified: app/DTO/SCIM/AAD/Response/CoreUser.php
modified: app/Services/Telephony/TextMessagingService.php
modified: config/logging.php
Untracked files:
(use "git add <file>..." to include in what will be committed)
.env.nikilocal
.env.other
WEBHOOK_FILTERING_IMPLEMENTATION.md
app/Component/SCIM/Mutators/Attributes/User/RoleAttr.php
app/Console/Commands/Crm/Hubspot/SimulateWebhooksCommand.php
app/Console/Commands/Reports/CreateMockAskJiminnyReportResultCommand.php
app/Rules/ListenerRoleCannotHaveAdminOrManagerPermissionRule.php
ids.txt
public/favicon.ico
raw_sql_query.sql
tests/Unit/Component/SCIM/Mutators/Attributes/User/RoleAttrTest.php
tests/Unit/Policies/CanAccessAiReportsTest.php
tests/Unit/Rules/ListenerRoleCannotHaveAdminOrManagerPermissionRuleTest.php
no changes added to commit (use "git add" and/or "git commit -a")
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (master) $ git pull
remote: Enumerating objects: 306, done.
remote: Counting objects: 100% (299/299), done.
remote: Compressing objects: 100% (183/183), done.
remote: Total 306 (delta 213), reused 171 (delta 116), pack-reused 7 (from 1)
Receiving objects: 100% (306/306), 80.12 KiB | 1000.00 KiB/s, done.
Resolving deltas: 100% (213/213), completed with 53 local objects.
From github.com:jiminny/app
90bca4e4b2..5604af40cf master -> origin/master
4e7078fd8b..0b8343d179 JY-18091-upgrade-to-php-8-5 -> origin/JY-18091-upgrade-to-php-8-5
098eeaa087..d5a447e492 JY-20613-allow-owner-role-on-team-setup -> origin/JY-20613-allow-owner-role-on-team-setup
c3a76ace91..af65249d0f JY-20749-user-can-view-recorded-meetings -> origin/JY-20749-user-can-view-recorded-meetings
d94a285ae7..7ce96cb5fe JY-20808-low-priority-indexing-queue -> origin/JY-20808-low-priority-indexing-queue
* [new branch] JY-20842-remove-partial-updater -> origin/JY-20842-remove-partial-updater
* [new branch] JY-20920-fix-participant-flip -> origin/JY-20920-fix-participant-flip
* [new branch] secfix/npm-20260519 -> origin/secfix/npm-20260519
Updating cb4ebf0c36..5604af40cf
Fast-forward
app/Component/ES/ChunkSize.php | 54 +++++++++++++++++++
app/Component/ES/Processor/DTOs/SelectionList.php | 4 +-
app/Component/ES/Processor/TargetEntitiesSelector.php | 19 ++++---
app/Component/MeetingBot/Service/ParticipantMatcher.php | 46 ++++++++++++----
app/Exceptions/RateLimitException.php | 19 ++++++-
app/Http/Middleware/McpTierMiddleware.php | 27 ++--------
app/Jobs/Crm/MatchActivityCrmData.php | 47 ++++++++++++----
app/Jobs/Middleware/HandleHubspotRateLimit.php | 42 +++++++++++++++
app/Mcp/Servers/JiminnyServer.php | 2 +
app/Mcp/Tools/GetMeTool.php | 157 +++++++++++++++++++++++++++++++++++++++++++++++++++++
app/Models/Feature/FeatureEnum.php | 1 +
app/Services/Activity/HubSpot/ProviderResolver.php | 4 +-
app/Services/Activity/HubSpot/ProviderResolverInterface.php | 2 +-
app/Services/Activity/HubSpot/Providers/Provider.php | 2 +-
app/Services/Activity/HubSpot/Providers/ProviderKixie.php | 2 +-
app/Services/Activity/HubSpot/Providers/ProviderOrum.php | 2 +-
app/Services/Activity/HubSpot/Providers/ProviderTwilio.php | 2 +-
app/Services/Activity/HubSpot/Providers/ProviderTwilioFlex.php | 5 +-
app/Services/Activity/HubSpot/Service.php | 97 +++++++++++++++++++++++++++------
app/Services/Crm/Hubspot/Client.php | 132 +++++++++++++++++++++++++++++++++++++++++++++
app/Services/Crm/Hubspot/HubspotClientInterface.php | 15 ++++++
app/Services/Crm/Hubspot/Pagination/HubspotPaginationService.php | 21 ++++----
app/Services/Crm/Hubspot/Pagination/PaginationState.php | 2 +-
database/migrations/2026_05_13_124153_create_mcp_feature_flag.php | 25 +++++++++
tests/Feature/Mcp/GetMeToolFeatureTest.php | 140 +++++++++++++++++++++++++++++++++++++++++++++++
tests/Feature/Mcp/ListCallsToolFeatureTest.php | 2 +-
tests/Feature/Mcp/McpTestHelpersTrait.php | 19 ++++++-
tests/Unit/Component/ES/ChunkSizeTest.php | 50 +++++++++++++++++
tests/Unit/Component/ES/Processor/DTOs/SelectionListTest.php | 27 +++++++---
tests/Unit/Component/ES/Processor/TargetEntitiesSelectorTest.php | 39 ++++++++------
tests/Unit/Component/MeetingBot/Service/ParticipantMatcherTest.php | 68 ++++++++++++++++++++++-
tests/Unit/Exceptions/RateLimitExceptionTest.php | 56 +++++++++++++++++++
tests/Unit/Jobs/Crm/MatchActivityCrmDataTest.php | 8 +--
tests/Unit/Jobs/Middleware/HandleHubspotRateLimitTest.php | 151 +++++++++++++++++++++++++++++++++++++++++++++++++++
tests/Unit/Services/Activity/HubSpot/ServiceTest.php | 109 +++++++++++++++++++++++++++++++++++++
tests/Unit/Services/Crm/Hubspot/ClientTest.php | 250 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
tests/Unit/Services/Crm/Hubspot/Pagination/HubspotPaginationServiceTest.php | 283 +++++++++++++++++++++---------------------------------------------------------------------------
37 files changed, 1587 insertions(+), 344 deletions(-)
create mode 100644 app/Component/ES/ChunkSize.php
create mode 100644 app/Jobs/Middleware/HandleHubspotRateLimit.php
create mode 100644 app/Mcp/Tools/GetMeTool.php
create mode 100644 database/migrations/2026_05_13_124153_create_mcp_feature_flag.php
create mode 100644 tests/Feature/Mcp/GetMeToolFeatureTest.php
create mode 100644 tests/Unit/Component/ES/ChunkSizeTest.php
create mode 100644 tests/Unit/Exceptions/RateLimitExceptionTest.php
create mode 100644 tests/Unit/Jobs/Middleware/HandleHubspotRateLimitTest.php
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (master) $ git pull
Already up to date.
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (master) $ co -b JY-20676-delete-report-related-objects
Switched to a new branch 'JY-20676-delete-report-related-objects'
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20676-delete-report-related-objects) $ csfix
docker exec -it docker_lamp_1 ./vendor/bin/php-cs-fixer fix --config=.php-cs-fixer.dist.php -v --using-cache=no --diff
PHP CS Fixer 3.87.1 Alexander by Fabien Potencier, Dariusz Ruminski and contributors.
PHP runtime: 8.3.30
Running 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!
Loaded config default from ".php-cs-fixer.dist.php".
5690/5690 [▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓] 100%
1) app/Console/Commands/JiminnyDebugCommand.php (statement_indentation, blank_line_before_statement)
---------- begin diff ----------
--- /home/jiminny/app/Console/Commands/JiminnyDebugCommand.php
+++ /home/jiminny/app/Console/Commands/JiminnyDebugCommand.php
@@ -23,6 +23,7 @@
if ($action === 'redis-set') {
$this->testRedisSet();
+
return;
}
@@ -45,7 +46,7 @@
$ttl = 60;
try {
-// $result = Redis::set($testKey, $testValue, 'EX', $ttl, 'NX');
+ // $result = Redis::set($testKey, $testValue, 'EX', $ttl, 'NX');
$result = Redis::set($testKey, $testValue, ['nx', 'ex' => $ttl]);
if ($result) {
----------- end diff -----------
Fixed 1 of 5690 files i...
|
[{"role":"AXTextArea","text [{"role":"AXTextArea","text":"Last login: Mon May 18 09:17:28 on ttys007\n\nPoetry could not find a pyproject.toml file in /Users/lukas/jiminny/app or its parents\n\nPoetry could not find a pyproject.toml file in /Users/lukas/jiminny/app or its parents\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (pipedrive-sdk-poc) $ co master\nerror: Your local changes to the following files would be overwritten by checkout:\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tPIPEDRIVE_V2_MIGRATION_TICKETS.md\nPlease commit your changes or stash them before you switch branches.\nAborting\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (pipedrive-sdk-poc) $ git pull\nremote: Enumerating objects: 1047, done.\nremote: Counting objects: 100% (832/832), done.\nremote: Compressing objects: 100% (298/298), done.\nremote: Total 1047 (delta 634), reused 596 (delta 534), pack-reused 215 (from 3)\nReceiving objects: 100% (1047/1047), 353.16 KiB | 1.56 MiB/s, done.\nResolving deltas: 100% (687/687), completed with 107 local objects.\nFrom github.com:jiminny/app\n 907c54896c..34656c53ed pipedrive-sdk-poc -> origin/pipedrive-sdk-poc\n 03325ec50f..4e7078fd8b JY-18091-upgrade-to-php-8-5 -> origin/JY-18091-upgrade-to-php-8-5\n e7d231e163..bc6a3fce6b JY-20725-handle-HS-search-rate-limit -> origin/JY-20725-handle-HS-search-rate-limit\n * [new branch] JY-20749-user-can-view-recorded-meetings -> origin/JY-20749-user-can-view-recorded-meetings\n 98ca281a04..e0351be069 JY-20808-low-priority-indexing-queue -> origin/JY-20808-low-priority-indexing-queue\n 569abb5149..3906a9238a JY-20835-mcp-enable-users-to-get-a-list-of-deals-and-their-details -> origin/JY-20835-mcp-enable-users-to-get-a-list-of-deals-and-their-details\n ad6c2a86e8..50eb6afba9 JY-20846-mcp-enable-the-ai-to-know-details-about-the-user -> origin/JY-20846-mcp-enable-the-ai-to-know-details-about-the-user\n * [new branch] JY-20893-chunk-control-per-update-target -> origin/JY-20893-chunk-control-per-update-target\n 31c62924a5..cb4ebf0c36 master -> origin/master\nUpdating 907c54896c..34656c53ed\nFast-forward\n PIPEDRIVE_V2_MIGRATION_TICKETS.md | 52 ++++++++++++++++++++++++++++++++++++++++++++++++++++\n 1 file changed, 52 insertions(+)\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (pipedrive-sdk-poc) $ co master\nM\u0000\u0000\u0000\u0000\u0000\u0000\t.env.local\nM\u0000\u0000\u0000\u0000\u0000\u0000\tconfig/logging.php\nSwitched to branch 'master'\nYour branch is behind 'origin/master' by 31 commits, and can be fast-forwarded.\n (use \"git pull\" to update your local branch)\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (master) $ git pull\nUpdating 31c62924a5..cb4ebf0c36\nFast-forward\n app/Component/ES/Processor/Traits/SelectEntityListTrait.php | 20 ------\n app/Services/Calendar/CalendarActivityService.php | 46 +++++++++++++\n app/Services/Calendar/Command/MapActivityData.php | 106 +++-------------------------\n docs/mcp/explorer/explorer.html | 104 +++++++++++++++++++++++++---\n docs/mcp/explorer/explorer.template.html | 102 ++++++++++++++++++++++++---\n docs/mcp/tools-list.json | 373 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++-------\n docs/mcp/tools.md | 117 +++++++++++++++++++++++--------\n tests/Unit/Component/ES/AsyncUpdateElasticSearchTest.php | 16 +----\n tests/Unit/Component/ES/Listeners/UpdateMultipleTargetsListenerTest.php | 10 ---\n tests/Unit/Component/ES/Listeners/UpdateSingleTargetListenerTest.php | 6 --\n tests/Unit/Component/ES/Processor/TargetEntitiesSelectorTest.php | 9 ---\n tests/Unit/Component/ES/Processor/Traits/SelectEntityListTraitTest.php | 15 ++--\n tests/Unit/Component/ES/UpdateProcessManagerTest.php | 2 -\n tests/Unit/Services/Calendar/CalendarActivityServiceTest.php | 150 ++++++++++++++++++++++++++++++++++++++--\n tests/Unit/Services/Calendar/Command/MapActivityDataTest.php | 78 ++-------------------\n 15 files changed, 832 insertions(+), 322 deletions(-)\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (master) $ co -b JY-20613-allow-owner-role-on-team-setup\nSwitched to a new branch 'JY-20613-allow-owner-role-on-team-setup'\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20613-allow-owner-role-on-team-setup) $ csfix\ndocker exec -it docker_lamp_1 ./vendor/bin/php-cs-fixer fix --config=.php-cs-fixer.dist.php -v --using-cache=no --diff \nPHP CS Fixer 3.87.1 Alexander by Fabien Potencier, Dariusz Ruminski and contributors.\nPHP runtime: 8.3.30\nRunning analysis on 7 cores with 10 files per process.\nParallel runner is an experimental feature and may be unstable, use it at your own risk. Feedback highly appreciated!\nLoaded config default from \".php-cs-fixer.dist.php\".\n 5682/5682 [▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓] 100%\n\n\nFixed 0 of 5682 files in 56.978 seconds, 67.00 MB memory used\n\nWhat's next:\n Try Docker Debug for seamless, persistent debugging tools in any container or image → docker debug docker_lamp_1\n Learn more at https://docs.docker.com/go/debug-cli/\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20613-allow-owner-role-on-team-setup) $ ;xd\ndocker exec -it docker_lamp_1 bash -c \"mv /usr/local/etc/php/conf.d/xdebug.ini ~/xdebug.ini\"\n\nWhat's next:\n Try Docker Debug for seamless, persistent debugging tools in any container or image → docker debug docker_lamp_1\n Learn more at https://docs.docker.com/go/debug-cli/\ndocker exec -it docker_lamp_1 supervisorctl restart all\njiminny-worker-processing-2:jiminny-worker-processing-2_00: stopped\njiminny-worker-processing-3:jiminny-worker-processing-3_00: stopped\njiminny-worker-processing-4:jiminny-worker-processing-4_00: stopped\njiminny-worker-processing-5:jiminny-worker-processing-5_00: stopped\njiminny-worker-processing-delayed:jiminny-worker-processing-delayed_00: stopped\nworker-analytics:worker-analytics_00: stopped\nworker-crm-update:worker-crm-update_00: stopped\nworker-download:worker-download_00: stopped\nworker-nudges:worker-nudges_00: stopped\nartisan-schedule:artisan-schedule_00: stopped\nworker-emails:worker-emails_00: stopped\nworker-calendar:worker-calendar_00: stopped\nworker:worker_00: stopped\nworker-conferences:worker-conferences_00: stopped\nworker-crm-sync:worker-crm-sync_00: stopped\njiminny-worker-processing-1:jiminny-worker-processing-1_00: stopped\nworker-audio:worker-audio_00: stopped\nworker-es-update:worker-es-update_00: stopped\nartisan-schedule:artisan-schedule_00: started\njiminny-worker-processing-1:jiminny-worker-processing-1_00: started\njiminny-worker-processing-2:jiminny-worker-processing-2_00: started\njiminny-worker-processing-3:jiminny-worker-processing-3_00: started\njiminny-worker-processing-4:jiminny-worker-processing-4_00: started\njiminny-worker-processing-5:jiminny-worker-processing-5_00: started\njiminny-worker-processing-delayed:jiminny-worker-processing-delayed_00: started\nworker:worker_00: started\nworker-analytics:worker-analytics_00: started\nworker-audio:worker-audio_00: started\nworker-calendar:worker-calendar_00: started\nworker-conferences:worker-conferences_00: started\nworker-crm-sync:worker-crm-sync_00: started\nworker-crm-update:worker-crm-update_00: started\nworker-download:worker-download_00: started\nworker-emails:worker-emails_00: started\nworker-es-update:worker-es-update_00: started\nworker-nudges:worker-nudges_00: started\n\nWhat's next:\n Try Docker Debug for seamless, persistent debugging tools in any container or image → docker debug docker_lamp_1\n Learn more at https://docs.docker.com/go/debug-cli/\ndocker exec -it docker_lamp_1 php -v\nPHP 8.3.30 (cli) (built: Mar 16 2026 22:32:32) (NTS)\nCopyright (c) The PHP Group\nZend Engine v4.3.30, Copyright (c) Zend Technologies\n with Zend OPcache v8.3.30, Copyright (c), by Zend Technologies\n\nWhat's next:\n Try Docker Debug for seamless, persistent debugging tools in any container or image → docker debug docker_lamp_1\n Learn more at https://docs.docker.com/go/debug-cli/\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20613-allow-owner-role-on-team-setup) $ csfix\ndocker exec -it docker_lamp_1 ./vendor/bin/php-cs-fixer fix --config=.php-cs-fixer.dist.php -v --using-cache=no --diff \nPHP CS Fixer 3.87.1 Alexander by Fabien Potencier, Dariusz Ruminski and contributors.\nPHP runtime: 8.3.30\nRunning analysis on 7 cores with 10 files per process.\nParallel runner is an experimental feature and may be unstable, use it at your own risk. Feedback highly appreciated!\nLoaded config default from \".php-cs-fixer.dist.php\".\n 5682/5682 [▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓] 100%\n\n\nFixed 0 of 5682 files in 49.910 seconds, 60.00 MB memory used\n\nWhat's next:\n Try Docker Debug for seamless, persistent debugging tools in any container or image → docker debug docker_lamp_1\n Learn more at https://docs.docker.com/go/debug-cli/\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20613-allow-owner-role-on-team-setup) $ git status\nOn branch JY-20613-allow-owner-role-on-team-setup\nYour branch is ahead of 'origin/JY-20613-allow-owner-role-on-team-setup' by 1 commit.\n (use \"git push\" to publish your local commits)\n\nChanges not staged for commit:\n (use \"git add <file>...\" to update what will be committed)\n (use \"git restore <file>...\" to discard changes in working directory)\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tmodified: .env.local\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tmodified: config/logging.php\n\nUntracked files:\n (use \"git add <file>...\" to include in what will be committed)\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\t.env.nikilocal\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\t.env.other\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tWEBHOOK_FILTERING_IMPLEMENTATION.md\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tapp/Console/Commands/Crm/Hubspot/SimulateWebhooksCommand.php\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tapp/Console/Commands/Reports/CreateMockAskJiminnyReportResultCommand.php\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tids.txt\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tpublic/favicon.ico\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\traw_sql_query.sql\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\ttests/Unit/Policies/CanAccessAiReportsTest.php\n\nno changes added to commit (use \"git add\" and/or \"git commit -a\")\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20613-allow-owner-role-on-team-setup) $ git pull\nremote: Enumerating objects: 248, done.\nremote: Counting objects: 100% (128/128), done.\nremote: Compressing objects: 100% (23/23), done.\nremote: Total 59 (delta 43), reused 44 (delta 33), pack-reused 0 (from 0)\nUnpacking objects: 100% (59/59), 10.48 KiB | 228.00 KiB/s, done.\nFrom github.com:jiminny/app\n b7df560451..190239dfd4 JY-20613-allow-owner-role-on-team-setup -> origin/JY-20613-allow-owner-role-on-team-setup\n e0351be069..d94a285ae7 JY-20808-low-priority-indexing-queue -> origin/JY-20808-low-priority-indexing-queue\n * [new branch] JY-20920-fix-participant-matcher -> origin/JY-20920-fix-participant-matcher\n cb4ebf0c36..90bca4e4b2 master -> origin/master\nMerge made by the 'ort' strategy.\n app/Component/ES/ChunkSize.php | 54 +++++++++++++++++++++++++++\n app/Component/ES/Processor/DTOs/SelectionList.php | 4 +-\n app/Component/ES/Processor/TargetEntitiesSelector.php | 19 ++++++----\n app/Http/Middleware/McpTierMiddleware.php | 27 +++-----------\n app/Mcp/Servers/JiminnyServer.php | 2 +\n app/Mcp/Tools/GetMeTool.php | 157 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++\n app/Models/Feature/FeatureEnum.php | 1 +\n database/migrations/2026_05_13_124153_create_mcp_feature_flag.php | 25 +++++++++++++\n front-end/src/components/Settings/Kiosk/modals/EditTeamModal/EditTeamModal.vue | 52 ++++++++++++++++++--------\n front-end/src/components/Settings/Kiosk/modals/EditTeamModal/__tests__/EditTeamModal.spec.js | 14 +++++++\n tests/Feature/Mcp/GetMeToolFeatureTest.php | 140 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++\n tests/Feature/Mcp/ListCallsToolFeatureTest.php | 2 +-\n tests/Feature/Mcp/McpTestHelpersTrait.php | 19 +++++++++-\n tests/Unit/Component/ES/ChunkSizeTest.php | 50 +++++++++++++++++++++++++\n tests/Unit/Component/ES/Processor/DTOs/SelectionListTest.php | 27 ++++++++++----\n tests/Unit/Component/ES/Processor/TargetEntitiesSelectorTest.php | 39 +++++++++++---------\n 16 files changed, 557 insertions(+), 75 deletions(-)\n create mode 100644 app/Component/ES/ChunkSize.php\n create mode 100644 app/Mcp/Tools/GetMeTool.php\n create mode 100644 database/migrations/2026_05_13_124153_create_mcp_feature_flag.php\n create mode 100644 tests/Feature/Mcp/GetMeToolFeatureTest.php\n create mode 100644 tests/Unit/Component/ES/ChunkSizeTest.php\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20613-allow-owner-role-on-team-setup) $ git push\nEnumerating objects: 40, done.\nCounting objects: 100% (34/34), done.\nDelta compression using up to 8 threads\nCompressing objects: 100% (18/18), done.\nWriting objects: 100% (18/18), 1.58 KiB | 1.58 MiB/s, done.\nTotal 18 (delta 15), reused 0 (delta 0), pack-reused 0\nremote: Resolving deltas: 100% (15/15), completed with 13 local objects.\nTo github.com:jiminny/app.git\n 190239dfd4..ec1b261264 JY-20613-allow-owner-role-on-team-setup -> JY-20613-allow-owner-role-on-team-setup\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20613-allow-owner-role-on-team-setup) $ gbr\n* JY-20613-allow-owner-role-on-team-setup\n pipedrive-sdk-poc\n master\n JY-20903-update_activity-stage-on-opportunity-change\n JY-20904-fix-update-es-on-activity-command\n JY-20891-improve-sms-text-relays\n JY-20725-handle-HS-search-rate-limit\n JY-20818-move-AJ-reports-to-separated-datadog-metric\n JY-20773-fix-automated-reports-user-pilot-tracking\n JY-20157-AJ-report-not-send-notification\n JY-20508-notify-before-AJ-report-expiration\n JY-20372-ai-reports-promotion-pages\n JY-20352-sync-opportunities-without-a-local-owner-user-id-is-null\n JY-20738-debug-AJ-tracking-UP\n a\n JY-18909-automated-reports-ask-jiminny\n JY-20692-fix-integration-app-token-auth-response-change\n JY-20553-debug-crm-sync-delays\n JY-20698-fix-SF-activity-types-on-new-playbook\n JY-20543-AJ-report-tracking\n JY-20384-handle-auto-sync-with-no-access-to-event-type\n JY-20458-ask-jiminny-user-definitions\n JY-19666-fix-import-contacts-account-association\n JY-19666-HS-import-contacts-and-accounts-batch-job\n JY-20458-Ask-Jiminny-Reports\n JY-20200-batch-update-CRM-objects-Salesforce\n JY-19666-HS-webhooks-add-contact-and-company\n JY-20348-trigger-setup-DI-layout-on-team-creation\n JY-20326-refactor-info-message-in-command\n JY-20317-fix-auto-log-delay-issue-on-all-channels-disabled\n JY-20312-remove-on-update-change-last-synced-at-crm-configurations\n JY-20306-SF-skip-auto-sync-for-task-based-playbook\n JY-20192-remove-deleted-team-from-saved-search-filters\n JY-20197-import-opportunity-batch-job\n JY-20293-enable-status-field-for-pipedrive-deals\n JY-20191-remove-commands-interactive-prompts\n JY-20118-change-default-sync-strategy\n JY-20183-add-cache-on-auto-log-delay\n JY-20197-add-import-opportunity-batch-job\n 20118-hs-opportunity-make-webhook-strategy-default\n JY-20118-make-default-hs-opportunity-sync-strategy-webhook-based\n JY-20196-handle-opportunity-without-note\n JY-20118-improve-opportunity-import\n JY-20189-handle-activity-search-on-deleted-groups\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20613-allow-owner-role-on-team-setup) $ co JY-20725-handle-HS-search-rate-limit\nM\u0000\u0000\u0000\u0000\u0000\u0000\t.env.local\nM\u0000\u0000\u0000\u0000\u0000\u0000\tconfig/logging.php\nSwitched to branch 'JY-20725-handle-HS-search-rate-limit'\nYour branch is behind 'origin/JY-20725-handle-HS-search-rate-limit' by 439 commits, and can be fast-forwarded.\n (use \"git pull\" to update your local branch)\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20725-handle-HS-search-rate-limit) $ git pull\nUpdating 0f3e438941..bc6a3fce6b\nFast-forward\n .gitignore | 3 +-\n .windsurfrules | 168 ++---\n CLAUDE.md | 1 +\n app/Component/ActivityAnalytics/Service/CalculateTalkTimeOffsetsFromTranscription.php | 24 +-\n app/Component/AiActivityType/Services/AiActivityTypeEligibilityChecker.php | 28 +-\n app/Component/AiAutomation/Actions/PrepareUpdateDtoAction.php | 32 +-\n app/Component/AiAutomation/Services/CrmFillingEligibilityChecker.php | 47 ++\n app/Component/AiAutomation/TestCrmAiPromptService.php | 14 +\n app/Component/AiCallScoring/Services/AiCallScoringEligibilityChecker.php | 9 +\n app/Component/ES/ElasticSearchDocumentPartialUpdater.php | 13 +-\n app/Component/ES/ElasticSearchWorkerManager.php | 86 ---\n app/Component/ES/Processor/Actions/LoadDocumentsAction.php | 80 +--\n app/Component/ES/Processor/EntityQueryBuilder.php | 12 +-\n app/Component/ES/Processor/TargetEntitiesSelector.php | 2 +-\n app/Component/ES/Processor/Traits/SkipActivityTrait.php | 25 -\n app/Component/ES/Repositories/EsResetActivityRepository.php | 11 +-\n app/Component/ES/Worker/ActivityWorker.php | 73 --\n app/Component/ES/Worker/EntityWorker.php | 44 --\n app/Component/ES/Worker/WorkerAmount.php | 60 --\n app/Component/ES/Worker/WorkerInterface.php | 15 -\n app/Component/ElasticSearch/Contract/Searchable.php | 4 +\n app/Component/Encoding/Job/AnalyzeTrackChannelsJob.php | 20 +-\n app/Component/Encoding/Service/GenerateSpeechFromSilenceService.php | 85 ++-\n app/Component/FFMpeg/Services/GetSpeechIntervalsService.php | 18 +-\n app/Component/LanguageDetection/Services/FindSpeechTimeService.php | 22 +-\n app/Component/Nudge/Job/ProcessOrganisationImmediateNudgesJob.php | 218 +++++-\n app/Component/ParagraphBreaker/Services/TranscriptionParagraphsService.php | 4 +\n app/Component/ParticipantSpeech/Services/ParticipantSpeechesCreator.php | 33 +\n app/Component/ParticipantSpeech/Services/ParticipantSpeechesDeleter.php | 15 +\n app/Component/ParticipantSpeech/Services/ParticipantSpeechesProvider.php | 51 +-\n app/Component/ParticipantSpeech/Services/ParticipantSpeechesUploader.php | 36 +\n app/Component/ProphetAi/Exceptions/InsufficientTranscriptException.php | 11 +\n app/Component/Transcription/DTO/Http/Transcription/AssemblyAI/AssemblyAI/NoAssemblyIdException.php | 11 +\n app/Component/Transcription/DTO/Http/Transcription/AssemblyAI/AssemblyAI/SuccessfulResponse.php | 6 +\n app/Component/Transcription/DTO/Http/Transcription/TranscriptionIsNotCorrectFormatException.php | 11 +\n app/Component/Transcription/Diarization/Services/GetNormalizedParticipantSpeechesService.php | 23 +-\n app/Component/Transcription/Diarization/Source/MeetingBotSource.php | 16 +-\n app/Component/Transcription/TranscriptionProcessor/TranscriptionProcessor.php | 3 +\n app/Console/Commands/Activities/ActivityHardDeleteCommand.php | 4 +-\n app/Console/Commands/Activities/Copy.php | 2 +\n app/Console/Commands/Activities/SetupIntegration/TwilioSetS3RecordingCredentialsCommand.php | 119 ++++\n app/Console/Commands/Activities/UpdateActivityElasticSearchDocumentCommand.php | 10 +-\n app/Console/Commands/Crm/BackfillOpportunityUserFromAccountCommand.php | 126 ++++\n app/Console/Commands/Elasticsearch/AsyncUpdateEsActivities.php | 19 -\n app/Console/Commands/Elasticsearch/AsyncUpdateEsEntities.php | 50 +-\n app/Console/Commands/Elasticsearch/ResetAsyncElasticSearchCommand.php | 30 +-\n app/Console/Commands/GeckoExport/GeckoExportParticipantSpeechesCommand.php | 14 +-\n app/Console/Commands/IssueMcpTokenCommand.php | 84 +++\n app/Console/Commands/JiminnyDebugCommand.php | 7 +-\n app/Console/Commands/Tracks/CleanupActivityTracksCommand.php | 2 +-\n app/Console/Kernel.php | 6 +-\n app/Contracts/Services/Calendar/CalendarTrait.php | 80 ++-\n app/Events/AutomatedReports/AutomatedReportGenerated.php | 3 +\n app/Http/Controllers/API/AiCallScoring/AiScorecardController.php | 7 +-\n app/Http/Controllers/API/TeamAiAutomationController.php | 8 +\n app/Http/Controllers/CustomerApi/CustomerApiController.php | 4 +-\n app/Http/Controllers/Kiosk/ActivityController.php | 58 +-\n app/Http/Controllers/Settings/PlaybookController.php | 15 +-\n app/Http/Kernel.php | 23 +\n app/Http/Middleware/McpAuditMiddleware.php | 156 ++++\n app/Http/Middleware/McpTierMiddleware.php | 54 ++\n app/Http/Requests/API/V2/ZapierUploadActivityRequest.php | 28 +-\n app/Jobs/Activity/Import/ImportTwilioVideoSpeechesJob.php | 25 +-\n app/Jobs/Activity/Import/IsActivityReadyForProcessingJob.php | 10 +-\n app/Jobs/Calendar/SetupCalendarSync.php | 21 +-\n app/Jobs/ImportRemoteTrackJob.php | 96 ++-\n app/Jobs/Mailbox/EmailTextRelay.php | 15 +-\n app/Mcp/Contracts/McpCallRepositoryInterface.php | 30 +\n app/Mcp/DTO/ListCallsFilters.php | 29 +\n app/Mcp/Errors/McpError.php | 123 ++++\n app/Mcp/Repositories/McpActivityHydrator.php | 145 ++++\n app/Mcp/Repositories/McpCallRepository.php | 84 +++\n app/Mcp/Repositories/McpElasticCallRepository.php | 171 +++++\n app/Mcp/Servers/JiminnyServer.php | 38 +\n app/Mcp/Tools/ListCallsTool.php | 205 ++++++\n app/Models/Activity.php | 10 +-\n app/Models/Activity/Transcription.php | 17 +-\n app/Models/ElasticSearch/OpportunityElasticSearchTrait.php | 5 +\n app/Models/Participant.php | 1 +\n app/Providers/AppServiceProvider.php | 22 +\n app/Repositories/Crm/ContactRepository.php | 69 +-\n app/Repositories/ParticipantSpeechRepository.php | 13 +-\n app/Services/Activity/ParticipantsService.php | 19 +-\n app/Services/Activity/Twilio/S3RecordingCredentialsService.php | 82 +++\n app/Services/ActivityService.php | 21 +-\n app/Services/Calendar/CalendarActivityService.php | 46 ++\n app/Services/Calendar/Command/ImportParticipants.php | 1 +\n app/Services/Calendar/Command/MapActivityData.php | 106 +--\n app/Services/Calendar/GoogleCalendarService.php | 12 +-\n app/Services/Crm/Close/Processor/OpportunityProcessor.php | 2 +-\n app/Services/Crm/Close/Service.php | 22 +-\n app/Services/Crm/Copper/Service.php | 12 +-\n app/Services/Crm/Hubspot/Service.php | 154 +++-\n app/Services/Crm/Hubspot/ServiceTraits/OpportunitySyncTrait.php | 88 ++-\n app/Services/Crm/IntegrationApp/ServiceTraits/SyncCrmEntitiesTrait.php | 22 +-\n app/Services/Crm/Pipedrive/Service.php | 17 +-\n app/Services/Crm/Salesforce/Service.php | 42 +-\n app/Services/Mail/Office/EmailApiClient.php | 129 +---\n app/Services/RecallAI/Commands/ScheduleBotCommand.php | 39 +-\n app/Services/RecallAI/RecallAIService.php | 22 +-\n composer.json | 3 +-\n composer.lock | 87 ++-\n config/mcp.php | 23 +\n database/migrations/2026_04_30_120000_create_mcp_audit_log_table.php | 36 +\n docs/mcp/explorer/explorer.html | 697 ++++++++++++++++++\n docs/mcp/explorer/explorer.template.html | 697 ++++++++++++++++++\n docs/mcp/explorer/generate.js | 215 ++++++\n docs/mcp/explorer/tool-explorer-meta.json | 11 +\n docs/mcp/tools-list.json | 2536 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++\n docs/mcp/tools.md | 621 ++++++++++++++++\n front-end/package.json | 4 +-\n front-end/src/components/Settings/OrgSettings/AiAutomation/CrmFilling/TemplateFieldForm.vue | 28 +-\n front-end/src/components/Settings/OrgSettings/Playbooks/AddEditPlaybook.vue | 10 +\n front-end/src/components/playback/comments/ActivityComment.less | 10 +-\n front-end/src/components/shared/PromptTester/PromptTester.vue | 12 +-\n front-end/src/components/shared/__tests__/PromptTester.spec.js | 35 +\n front-end/src/components/shared/modals/EntityPickerModal/__tests__/useEntitiesCache.spec.ts | 37 +\n front-end/src/components/shared/modals/EntityPickerModal/useEntitiesCache.ts | 9 +\n front-end/yarn.lock | 16 +-\n phpstan-baseline.neon | 50 --\n routes/api.php | 11 +\n sonar-project.properties | 91 ++-\n tests/Feature/Component/Nudge/ProcessOrganisationImmediateNudgesJobTest.php | 534 ++++++++++++++\n tests/Feature/Jobs/ImportRemoteTrackJobTest.php | 283 +++++++-\n tests/Feature/Mcp/IssueMcpTokenCommandTest.php | 53 ++\n tests/Feature/Mcp/ListCallsToolElasticFeatureTest.php | 155 ++++\n tests/Feature/Mcp/ListCallsToolFeatureTest.php | 352 ++++++++++\n tests/Feature/Mcp/McpTestHelpersTrait.php | 77 ++\n tests/Feature/Services/Team/TeamDeleteHandlers/Retention/RetentionRepositoryHandlerTest.php | 1 +\n tests/Stubs/SentryStub.php | 18 +\n tests/Unit/Component/ActivityAnalytics/Service/CalculateTalkTimeOffsetFromTranscriptionTest.php | 28 +-\n tests/Unit/Component/AiActivityType/Services/AiActivityTypeEligibilityCheckerTest.php | 103 ++-\n tests/Unit/Component/AiAutomation/Actions/PrepareUpdateDtoActionTest.php | 91 +++\n tests/Unit/Component/AiAutomation/Services/CrmFillingEligibilityCheckerTest.php | 124 ++++\n tests/Unit/Component/AiAutomation/TestCrmAiPromptServiceTest.php | 67 +-\n tests/Unit/Component/AiCallScoring/Services/AiCallScoringEligibilityCheckerTest.php | 55 ++\n tests/Unit/Component/ES/ElasticSearchWorkerManagerTest.php | 135 ----\n tests/Unit/Component/ES/Processor/Actions/LoadDocumentsActionTest.php | 220 ++++++\n tests/Unit/Component/ES/Processor/EntityQueryBuilderTest.php | 21 +-\n tests/Unit/Component/ES/Processor/Traits/SkipActivityTraitTest.php | 51 --\n tests/Unit/Component/ES/Worker/ActivityWorkerTest.php | 174 -----\n tests/Unit/Component/ES/Worker/EntityWorkerTest.php | 97 ---\n tests/Unit/Component/ES/Worker/WorkerAmountTest.php | 116 ---\n tests/Unit/Component/Encoding/Job/AnalyzeTrackChannelsJobTest.php | 52 +-\n tests/Unit/Component/Encoding/Service/GenerateSpeechFromSilenceServiceTest.php | 171 ++---\n tests/Unit/Component/FFMpeg/Services/GetSpeechIntervalsTest.php | 36 +-\n tests/Unit/Component/LanguageDetection/Services/FindSpeechTimeServiceTest.php | 20 +-\n tests/Unit/Component/MobileSettings/MobileSettingsControllerTest.php | 5 +-\n tests/Unit/Component/ParticipantSpeech/Services/ParticipantSpeechesCreatorTest.php | 75 ++\n tests/Unit/Component/ParticipantSpeech/Services/ParticipantSpeechesDeleterTest.php | 63 ++\n tests/Unit/Component/ParticipantSpeech/Services/ParticipantSpeechesProviderTest.php | 134 ++++\n tests/Unit/Component/ParticipantSpeech/Services/ParticipantSpeechesUploaderTest.php | 57 ++\n tests/Unit/Component/Transcription/Diarization/Services/GetNormalizedParticipantSpeechesServiceTest.php | 51 +-\n tests/Unit/Component/Transcription/Diarization/Source/MeetingBotSourceTest.php | 29 +-\n tests/Unit/Contracts/Services/Calendar/CalendarTraitTest.php | 58 +-\n tests/Unit/Http/Controllers/Kiosk/ActivityControllerTest.php | 159 +++++\n tests/Unit/Jobs/Activity/Import/ImportTwilioVideoSpeechesJobTest.php | 22 +-\n tests/Unit/Jobs/Activity/Import/IsActivityReadyForProcessingJobTest.php | 26 +-\n tests/Unit/Jobs/Calendar/SetupCalendarSyncTest.php | 25 -\n tests/Unit/Services/Activity/ParticipantsServiceTest.php | 12 +-\n tests/Unit/Services/Activity/Twilio/S3RecordingCredentialsServiceTest.php | 180 +++++\n tests/Unit/Services/ActivityServiceTest.php | 132 ++++\n tests/Unit/Services/Calendar/CalendarActivityServiceTest.php | 150 +++-\n tests/Unit/Services/Calendar/Command/ImportParticipantsTest.php | 6 +-\n tests/Unit/Services/Calendar/Command/MapActivityDataTest.php | 78 +-\n tests/Unit/Services/Calendar/GoogleCalendarServiceTest.php | 116 +++\n tests/Unit/Services/Crm/Close/ServiceTest.php | 165 +++++\n tests/Unit/Services/Crm/Hubspot/ServiceTest.php | 272 ++++++-\n tests/Unit/Services/Crm/Hubspot/ServiceTraits/OpportunitySyncTest.php | 25 +-\n tests/Unit/Services/Crm/Hubspot/ServiceTraits/OpportunitySyncTraitMatchActivitiesTest.php | 3 +-\n tests/Unit/Services/Crm/IntegrationApp/ServiceTraits/SyncCrmEntitiesTraitOpportunitiesTest.php | 40 ++\n tests/Unit/Services/Crm/Pipedrive/ImportOpportunityMatchActivitiesTest.php | 2 +\n tests/Unit/Services/Crm/Salesforce/ServiceTest.php | 139 ++++\n tests/Unit/Services/Mail/Office/EmailApiClientTest.php | 195 ++---\n tests/Unit/Services/RecallAI/RecallAIServiceTest.php | 24 +-\n 175 files changed, 12562 insertions(+), 2162 deletions(-)\n create mode 120000 CLAUDE.md\n create mode 100644 app/Component/AiAutomation/Services/CrmFillingEligibilityChecker.php\n delete mode 100644 app/Component/ES/ElasticSearchWorkerManager.php\n delete mode 100644 app/Component/ES/Processor/Traits/SkipActivityTrait.php\n delete mode 100644 app/Component/ES/Worker/ActivityWorker.php\n delete mode 100644 app/Component/ES/Worker/EntityWorker.php\n delete mode 100644 app/Component/ES/Worker/WorkerAmount.php\n delete mode 100644 app/Component/ES/Worker/WorkerInterface.php\n create mode 100644 app/Component/ProphetAi/Exceptions/InsufficientTranscriptException.php\n create mode 100644 app/Component/Transcription/DTO/Http/Transcription/AssemblyAI/AssemblyAI/NoAssemblyIdException.php\n create mode 100644 app/Component/Transcription/DTO/Http/Transcription/TranscriptionIsNotCorrectFormatException.php\n create mode 100644 app/Console/Commands/Activities/SetupIntegration/TwilioSetS3RecordingCredentialsCommand.php\n create mode 100644 app/Console/Commands/Crm/BackfillOpportunityUserFromAccountCommand.php\n delete mode 100644 app/Console/Commands/Elasticsearch/AsyncUpdateEsActivities.php\n create mode 100644 app/Console/Commands/IssueMcpTokenCommand.php\n create mode 100644 app/Http/Middleware/McpAuditMiddleware.php\n create mode 100644 app/Http/Middleware/McpTierMiddleware.php\n create mode 100644 app/Mcp/Contracts/McpCallRepositoryInterface.php\n create mode 100644 app/Mcp/DTO/ListCallsFilters.php\n create mode 100644 app/Mcp/Errors/McpError.php\n create mode 100644 app/Mcp/Repositories/McpActivityHydrator.php\n create mode 100644 app/Mcp/Repositories/McpCallRepository.php\n create mode 100644 app/Mcp/Repositories/McpElasticCallRepository.php\n create mode 100644 app/Mcp/Servers/JiminnyServer.php\n create mode 100644 app/Mcp/Tools/ListCallsTool.php\n create mode 100644 app/Services/Activity/Twilio/S3RecordingCredentialsService.php\n create mode 100644 config/mcp.php\n create mode 100644 database/migrations/2026_04_30_120000_create_mcp_audit_log_table.php\n create mode 100644 docs/mcp/explorer/explorer.html\n create mode 100644 docs/mcp/explorer/explorer.template.html\n create mode 100644 docs/mcp/explorer/generate.js\n create mode 100644 docs/mcp/explorer/tool-explorer-meta.json\n create mode 100644 docs/mcp/tools-list.json\n create mode 100644 docs/mcp/tools.md\n create mode 100644 front-end/src/components/shared/modals/EntityPickerModal/__tests__/useEntitiesCache.spec.ts\n create mode 100644 tests/Feature/Component/Nudge/ProcessOrganisationImmediateNudgesJobTest.php\n create mode 100644 tests/Feature/Mcp/IssueMcpTokenCommandTest.php\n create mode 100644 tests/Feature/Mcp/ListCallsToolElasticFeatureTest.php\n create mode 100644 tests/Feature/Mcp/ListCallsToolFeatureTest.php\n create mode 100644 tests/Feature/Mcp/McpTestHelpersTrait.php\n create mode 100644 tests/Stubs/SentryStub.php\n create mode 100644 tests/Unit/Component/AiAutomation/Services/CrmFillingEligibilityCheckerTest.php\n delete mode 100644 tests/Unit/Component/ES/ElasticSearchWorkerManagerTest.php\n create mode 100644 tests/Unit/Component/ES/Processor/Actions/LoadDocumentsActionTest.php\n delete mode 100644 tests/Unit/Component/ES/Processor/Traits/SkipActivityTraitTest.php\n delete mode 100644 tests/Unit/Component/ES/Worker/ActivityWorkerTest.php\n delete mode 100644 tests/Unit/Component/ES/Worker/EntityWorkerTest.php\n delete mode 100644 tests/Unit/Component/ES/Worker/WorkerAmountTest.php\n create mode 100644 tests/Unit/Component/ParticipantSpeech/Services/ParticipantSpeechesCreatorTest.php\n create mode 100644 tests/Unit/Http/Controllers/Kiosk/ActivityControllerTest.php\n create mode 100644 tests/Unit/Services/Activity/Twilio/S3RecordingCredentialsServiceTest.php\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20725-handle-HS-search-rate-limit) $ git status\nOn branch master\nYour branch is behind 'origin/master' by 114 commits, and can be fast-forwarded.\n (use \"git pull\" to update your local branch)\n\nChanges not staged for commit:\n (use \"git add <file>...\" to update what will be committed)\n (use \"git restore <file>...\" to discard changes in working directory)\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tmodified: .env.local\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tmodified: app/Component/SCIM/Constants.php\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tmodified: app/Component/SCIM/ScimProvisioning.php\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tmodified: app/Component/Twilio/Conference/ConferenceManager/SoftPhoneManager.php\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tmodified: app/Console/Commands/JiminnyDebugCommand.php\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tmodified: app/DTO/SCIM/AAD/Request/CoreUserRequest.php\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tmodified: app/DTO/SCIM/AAD/Response/CoreUser.php\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tmodified: app/Services/Telephony/TextMessagingService.php\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tmodified: config/logging.php\n\nUntracked files:\n (use \"git add <file>...\" to include in what will be committed)\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\t.env.nikilocal\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\t.env.other\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tWEBHOOK_FILTERING_IMPLEMENTATION.md\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tapp/Component/SCIM/Mutators/Attributes/User/RoleAttr.php\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tapp/Console/Commands/Crm/Hubspot/SimulateWebhooksCommand.php\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tapp/Console/Commands/Reports/CreateMockAskJiminnyReportResultCommand.php\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tapp/Rules/ListenerRoleCannotHaveAdminOrManagerPermissionRule.php\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tids.txt\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tpublic/favicon.ico\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\traw_sql_query.sql\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\ttests/Unit/Component/SCIM/Mutators/Attributes/User/RoleAttrTest.php\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\ttests/Unit/Policies/CanAccessAiReportsTest.php\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\ttests/Unit/Rules/ListenerRoleCannotHaveAdminOrManagerPermissionRuleTest.php\n\nno changes added to commit (use \"git add\" and/or \"git commit -a\")\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (master) $ git pull\nremote: Enumerating objects: 306, done.\nremote: Counting objects: 100% (299/299), done.\nremote: Compressing objects: 100% (183/183), done.\nremote: Total 306 (delta 213), reused 171 (delta 116), pack-reused 7 (from 1)\nReceiving objects: 100% (306/306), 80.12 KiB | 1000.00 KiB/s, done.\nResolving deltas: 100% (213/213), completed with 53 local objects.\nFrom github.com:jiminny/app\n 90bca4e4b2..5604af40cf master -> origin/master\n 4e7078fd8b..0b8343d179 JY-18091-upgrade-to-php-8-5 -> origin/JY-18091-upgrade-to-php-8-5\n 098eeaa087..d5a447e492 JY-20613-allow-owner-role-on-team-setup -> origin/JY-20613-allow-owner-role-on-team-setup\n c3a76ace91..af65249d0f JY-20749-user-can-view-recorded-meetings -> origin/JY-20749-user-can-view-recorded-meetings\n d94a285ae7..7ce96cb5fe JY-20808-low-priority-indexing-queue -> origin/JY-20808-low-priority-indexing-queue\n * [new branch] JY-20842-remove-partial-updater -> origin/JY-20842-remove-partial-updater\n * [new branch] JY-20920-fix-participant-flip -> origin/JY-20920-fix-participant-flip\n * [new branch] secfix/npm-20260519 -> origin/secfix/npm-20260519\nUpdating cb4ebf0c36..5604af40cf\nFast-forward\n app/Component/ES/ChunkSize.php | 54 +++++++++++++++++++\n app/Component/ES/Processor/DTOs/SelectionList.php | 4 +-\n app/Component/ES/Processor/TargetEntitiesSelector.php | 19 ++++---\n app/Component/MeetingBot/Service/ParticipantMatcher.php | 46 ++++++++++++----\n app/Exceptions/RateLimitException.php | 19 ++++++-\n app/Http/Middleware/McpTierMiddleware.php | 27 ++--------\n app/Jobs/Crm/MatchActivityCrmData.php | 47 ++++++++++++----\n app/Jobs/Middleware/HandleHubspotRateLimit.php | 42 +++++++++++++++\n app/Mcp/Servers/JiminnyServer.php | 2 +\n app/Mcp/Tools/GetMeTool.php | 157 +++++++++++++++++++++++++++++++++++++++++++++++++++++\n app/Models/Feature/FeatureEnum.php | 1 +\n app/Services/Activity/HubSpot/ProviderResolver.php | 4 +-\n app/Services/Activity/HubSpot/ProviderResolverInterface.php | 2 +-\n app/Services/Activity/HubSpot/Providers/Provider.php | 2 +-\n app/Services/Activity/HubSpot/Providers/ProviderKixie.php | 2 +-\n app/Services/Activity/HubSpot/Providers/ProviderOrum.php | 2 +-\n app/Services/Activity/HubSpot/Providers/ProviderTwilio.php | 2 +-\n app/Services/Activity/HubSpot/Providers/ProviderTwilioFlex.php | 5 +-\n app/Services/Activity/HubSpot/Service.php | 97 +++++++++++++++++++++++++++------\n app/Services/Crm/Hubspot/Client.php | 132 +++++++++++++++++++++++++++++++++++++++++++++\n app/Services/Crm/Hubspot/HubspotClientInterface.php | 15 ++++++\n app/Services/Crm/Hubspot/Pagination/HubspotPaginationService.php | 21 ++++----\n app/Services/Crm/Hubspot/Pagination/PaginationState.php | 2 +-\n database/migrations/2026_05_13_124153_create_mcp_feature_flag.php | 25 +++++++++\n tests/Feature/Mcp/GetMeToolFeatureTest.php | 140 +++++++++++++++++++++++++++++++++++++++++++++++\n tests/Feature/Mcp/ListCallsToolFeatureTest.php | 2 +-\n tests/Feature/Mcp/McpTestHelpersTrait.php | 19 ++++++-\n tests/Unit/Component/ES/ChunkSizeTest.php | 50 +++++++++++++++++\n tests/Unit/Component/ES/Processor/DTOs/SelectionListTest.php | 27 +++++++---\n tests/Unit/Component/ES/Processor/TargetEntitiesSelectorTest.php | 39 ++++++++------\n tests/Unit/Component/MeetingBot/Service/ParticipantMatcherTest.php | 68 ++++++++++++++++++++++-\n tests/Unit/Exceptions/RateLimitExceptionTest.php | 56 +++++++++++++++++++\n tests/Unit/Jobs/Crm/MatchActivityCrmDataTest.php | 8 +--\n tests/Unit/Jobs/Middleware/HandleHubspotRateLimitTest.php | 151 +++++++++++++++++++++++++++++++++++++++++++++++++++\n tests/Unit/Services/Activity/HubSpot/ServiceTest.php | 109 +++++++++++++++++++++++++++++++++++++\n tests/Unit/Services/Crm/Hubspot/ClientTest.php | 250 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++\n tests/Unit/Services/Crm/Hubspot/Pagination/HubspotPaginationServiceTest.php | 283 +++++++++++++++++++++---------------------------------------------------------------------------\n 37 files changed, 1587 insertions(+), 344 deletions(-)\n create mode 100644 app/Component/ES/ChunkSize.php\n create mode 100644 app/Jobs/Middleware/HandleHubspotRateLimit.php\n create mode 100644 app/Mcp/Tools/GetMeTool.php\n create mode 100644 database/migrations/2026_05_13_124153_create_mcp_feature_flag.php\n create mode 100644 tests/Feature/Mcp/GetMeToolFeatureTest.php\n create mode 100644 tests/Unit/Component/ES/ChunkSizeTest.php\n create mode 100644 tests/Unit/Exceptions/RateLimitExceptionTest.php\n create mode 100644 tests/Unit/Jobs/Middleware/HandleHubspotRateLimitTest.php\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (master) $ git pull\nAlready up to date.\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (master) $ co -b JY-20676-delete-report-related-objects\nSwitched to a new branch 'JY-20676-delete-report-related-objects'\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20676-delete-report-related-objects) $ csfix\ndocker exec -it docker_lamp_1 ./vendor/bin/php-cs-fixer fix --config=.php-cs-fixer.dist.php -v --using-cache=no --diff \nPHP CS Fixer 3.87.1 Alexander by Fabien Potencier, Dariusz Ruminski and contributors.\nPHP runtime: 8.3.30\nRunning analysis on 7 cores with 10 files per process.\nParallel runner is an experimental feature and may be unstable, use it at your own risk. Feedback highly appreciated!\nLoaded config default from \".php-cs-fixer.dist.php\".\n 5690/5690 [▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓] 100%\n\n 1) app/Console/Commands/JiminnyDebugCommand.php (statement_indentation, blank_line_before_statement)\n ---------- begin diff ----------\n--- /home/jiminny/app/Console/Commands/JiminnyDebugCommand.php\n+++ /home/jiminny/app/Console/Commands/JiminnyDebugCommand.php\n@@ -23,6 +23,7 @@\n \n if ($action === 'redis-set') {\n $this->testRedisSet();\n+\n return;\n }\n \n@@ -45,7 +46,7 @@\n $ttl = 60;\n \n try {\n-// $result = Redis::set($testKey, $testValue, 'EX', $ttl, 'NX');\n+ // $result = Redis::set($testKey, $testValue, 'EX', $ttl, 'NX');\n $result = Redis::set($testKey, $testValue, ['nx', 'ex' => $ttl]);\n \n if ($result) {\n\n ----------- end diff -----------\n\n\nFixed 1 of 5690 files in 50.673 seconds, 67.00 MB memory used\n\nWhat's next:\n Try Docker Debug for seamless, persistent debugging tools in any container or image → docker debug docker_lamp_1\n Learn more at https://docs.docker.com/go/debug-cli/\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20676-delete-report-related-objects) $ ;xd\ndocker exec -it docker_lamp_1 bash -c \"mv /usr/local/etc/php/conf.d/xdebug.ini ~/xdebug.ini\"\n\nWhat's next:\n Try Docker Debug for seamless, persistent debugging tools in any container or image → docker debug docker_lamp_1\n Learn more at https://docs.docker.com/go/debug-cli/\ndocker exec -it docker_lamp_1 supervisorctl restart all\njiminny-worker-processing-2:jiminny-worker-processing-2_00: stopped\njiminny-worker-processing-3:jiminny-worker-processing-3_00: stopped\njiminny-worker-processing-4:jiminny-worker-processing-4_00: stopped\njiminny-worker-processing-5:jiminny-worker-processing-5_00: stopped\njiminny-worker-processing-delayed:jiminny-worker-processing-delayed_00: stopped\nworker-analytics:worker-analytics_00: stopped\nworker-crm-update:worker-crm-update_00: stopped\nworker-download:worker-download_00: stopped\nworker-nudges:worker-nudges_00: stopped\nworker-calendar:worker-calendar_00: stopped\nworker-audio:worker-audio_00: stopped\njiminny-worker-processing-1:jiminny-worker-processing-1_00: stopped\nworker:worker_00: stopped\nworker-conferences:worker-conferences_00: stopped\nworker-crm-sync:worker-crm-sync_00: stopped\nworker-emails:worker-emails_00: stopped\nworker-es-update:worker-es-update_00: stopped\nartisan-schedule:artisan-schedule_00: stopped\nartisan-schedule:artisan-schedule_00: started\njiminny-worker-processing-1:jiminny-worker-processing-1_00: started\njiminny-worker-processing-2:jiminny-worker-processing-2_00: started\njiminny-worker-processing-3:jiminny-worker-processing-3_00: started\njiminny-worker-processing-4:jiminny-worker-processing-4_00: started\njiminny-worker-processing-5:jiminny-worker-processing-5_00: started\njiminny-worker-processing-delayed:jiminny-worker-processing-delayed_00: started\nworker:worker_00: started\nworker-analytics:worker-analytics_00: started\nworker-audio:worker-audio_00: started\nworker-calendar:worker-calendar_00: started\nworker-conferences:worker-conferences_00: started\nworker-crm-sync:worker-crm-sync_00: started\nworker-crm-update:worker-crm-update_00: started\nworker-download:worker-download_00: started\nworker-emails:worker-emails_00: started\nworker-es-update:worker-es-update_00: started\nworker-nudges:worker-nudges_00: started\n\nWhat's next:\n Try Docker Debug for seamless, persistent debugging tools in any container or image → docker debug docker_lamp_1\n Learn more at https://docs.docker.com/go/debug-cli/\ndocker exec -it docker_lamp_1 php -v\nPHP 8.3.30 (cli) (built: Mar 16 2026 22:32:32) (NTS)\nCopyright (c) The PHP Group\nZend Engine v4.3.30, Copyright (c) Zend Technologies\n with Zend OPcache v8.3.30, Copyright (c), by Zend Technologies\n\nWhat's next:\n Try Docker Debug for seamless, persistent debugging tools in any container or image → docker debug docker_lamp_1\n Learn more at https://docs.docker.com/go/debug-cli/\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20676-delete-report-related-objects) $ git status\nOn branch JY-20676-delete-report-related-objects\nChanges not staged for commit:\n (use \"git add <file>...\" to update what will be committed)\n (use \"git restore <file>...\" to discard changes in working directory)\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tmodified: .env.local\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tmodified: app/Console/Commands/JiminnyDebugCommand.php\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tmodified: config/logging.php\n\nUntracked files:\n (use \"git add <file>...\" to include in what will be committed)\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\t.env.nikilocal\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\t.env.other\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tWEBHOOK_FILTERING_IMPLEMENTATION.md\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tapp/Console/Commands/Crm/Hubspot/SimulateWebhooksCommand.php\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tapp/Console/Commands/Reports/CreateMockAskJiminnyReportResultCommand.php\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tids.txt\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tpublic/favicon.ico\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\traw_sql_query.sql\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\ttests/Unit/Policies/CanAccessAiReportsTest.php\n\nno changes added to commit (use \"git add\" and/or \"git commit -a\")\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20676-delete-report-related-objects) $ git push -u origin JY-20676-delete-report-related-objects\nEnumerating objects: 45, done.\nCounting objects: 100% (45/45), done.\nDelta compression using up to 8 threads\nCompressing objects: 100% (24/24), done.\nWriting objects: 100% (24/24), 3.62 KiB | 3.62 MiB/s, done.\nTotal 24 (delta 19), reused 0 (delta 0), pack-reused 0\nremote: Resolving deltas: 100% (19/19), completed with 19 local objects.\nremote: \nremote: Create a pull request for 'JY-20676-delete-report-related-objects' on GitHub by visiting:\nremote: https://github.com/jiminny/app/pull/new/JY-20676-delete-report-related-objects\nremote: \nTo github.com:jiminny/app.git\n * [new branch] JY-20676-delete-report-related-objects -> JY-20676-delete-report-related-objects\nbranch 'JY-20676-delete-report-related-objects' set up to track 'origin/JY-20676-delete-report-related-objects'.\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20676-delete-report-related-objects) $ csfix\ndocker exec -it docker_lamp_1 ./vendor/bin/php-cs-fixer fix --config=.php-cs-fixer.dist.php -v --using-cache=no --diff \nPHP CS Fixer 3.87.1 Alexander by Fabien Potencier, Dariusz Ruminski and contributors.\nPHP runtime: 8.3.30\nRunning analysis on 7 cores with 10 files per process.\nParallel runner is an experimental feature and may be unstable, use it at your own risk. Feedback highly appreciated!\nLoaded config default from \".php-cs-fixer.dist.php\".\n 5690/5690 [▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓] 100%\n\n 1) app/Http/Controllers/API/V2/AskJiminnyReportsController.php (blank_line_before_statement)\n ---------- begin diff ----------\n--- /home/jiminny/app/Http/Controllers/API/V2/AskJiminnyReportsController.php\n+++ /home/jiminny/app/Http/Controllers/API/V2/AskJiminnyReportsController.php\n@@ -140,6 +140,7 @@\n if ($enabled && $report->isAskJiminnyReport() && ! $report->canExecute()) {\n $error = 'This report is missing a saved search or prompt. ' .\n 'Edit the report to complete the setup before enabling it.';\n+\n return new JsonResponse(\n ['error' => $error],\n Response::HTTP_UNPROCESSABLE_ENTITY\n\n ----------- end diff -----------\n\n\nFixed 1 of 5690 files in 71.757 seconds, 60.00 MB memory used\n\nWhat's next:\n Try Docker Debug for seamless, persistent debugging tools in any container or image → docker debug docker_lamp_1\n Learn more at https://docs.docker.com/go/debug-cli/\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20676-delete-report-related-objects) $ git pull\nremote: Enumerating objects: 158, done.\nremote: Counting objects: 100% (103/103), done.\nremote: Compressing objects: 100% (37/37), done.\nremote: Total 158 (delta 80), reused 74 (delta 66), pack-reused 55 (from 3)\nReceiving objects: 100% (158/158), 80.59 KiB | 982.00 KiB/s, done.\nResolving deltas: 100% (85/85), completed with 45 local objects.\nFrom github.com:jiminny/app\n 02a33811ee..c6ce5e2440 JY-20676-delete-report-related-objects -> origin/JY-20676-delete-report-related-objects\n 7ce96cb5fe..6c59f04358 JY-20808-low-priority-indexing-queue -> origin/JY-20808-low-priority-indexing-queue\n 3906a9238a..2b5e6ea62b JY-20835-mcp-enable-users-to-get-a-list-of-deals-and-their-details -> origin/JY-20835-mcp-enable-users-to-get-a-list-of-deals-and-their-details\n 5604af40cf..ea3519f0e2 master -> origin/master\n * [new branch] switch-eu-assembly -> origin/switch-eu-assembly\nUpdating 02a33811ee..c6ce5e2440\nFast-forward\n app/Component/ES/ElasticSearchDocumentPartialUpdater.php | 48 ---\n app/Component/ParticipantSpeech/Services/ParticipantAttributionService.php | 4 +-\n app/Component/Settings/AutoScoring/Services/UpdateAutoScoreService.php | 20 +-\n app/Component/Transcription/Service/StorageService.php | 8 +-\n front-end/package.json | 2 +-\n front-end/src/components/DealInsights/Modals/AskAnythingModal.vue | 23 ++\n front-end/src/components/shared/AskAnything/AskAnythingPromptFormItem.vue | 2 +\n front-end/src/components/shared/AskAnything/AskAnythingSettingsDrawer.vue | 23 +-\n front-end/src/components/shared/AskAnything/__mocks__/AskAnythingSettingsDrawer.mocks.js | 1 +\n front-end/src/components/shared/AskAnything/__tests__/AskAnythingSettingsDrawer.spec.js | 135 ++++---\n front-end/src/components/shared/AskAnything/__tests__/__snapshots__/AskAnythingSettingsDrawer.spec.js.html | 1235 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++\n front-end/src/components/shared/AskAnything/__tests__/__snapshots__/AskAnythingSettingsDrawer.spec.js.snap | 1382 ----------------------------------------------------------------\n front-end/src/components/shared/AskAnything/prompts.js | 1 +\n front-end/src/components/shared/AskAnything/useAskAnything.js | 1 +\n front-end/yarn.lock | 8 +-\n tests/Unit/Component/ES/ElasticSearchDocumentPartialUpdaterTest.php | 42 --\n tests/Unit/Component/Settings/AutoScoring/Services/UpdateAutoScoreServiceTest.php | 86 ++--\n tests/Unit/Component/Transcription/Service/StorageServiceTest.php | 29 +-\n 18 files changed, 1448 insertions(+), 1602 deletions(-)\n delete mode 100644 app/Component/ES/ElasticSearchDocumentPartialUpdater.php\n create mode 100644 front-end/src/components/shared/AskAnything/__tests__/__snapshots__/AskAnythingSettingsDrawer.spec.js.html\n delete mode 100644 front-end/src/components/shared/AskAnything/__tests__/__snapshots__/AskAnythingSettingsDrawer.spec.js.snap\n delete mode 100644 tests/Unit/Component/ES/ElasticSearchDocumentPartialUpdaterTest.php\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20676-delete-report-related-objects) $ csfix\ndocker exec -it docker_lamp_1 ./vendor/bin/php-cs-fixer fix --config=.php-cs-fixer.dist.php -v --using-cache=no --diff \nPHP CS Fixer 3.87.1 Alexander by Fabien Potencier, Dariusz Ruminski and contributors.\nPHP runtime: 8.3.30\nRunning analysis on 7 cores with 10 files per process.\nParallel runner is an experimental feature and may be unstable, use it at your own risk. Feedback highly appreciated!\nLoaded config default from \".php-cs-fixer.dist.php\".\n 5688/5688 [▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓] 100%\n\n\nFixed 0 of 5688 files in 79.904 seconds, 60.00 MB memory used\n\nWhat's next:\n Try Docker Debug for seamless, persistent debugging tools in any container or image → docker debug docker_lamp_1\n Learn more at https://docs.docker.com/go/debug-cli/\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20676-delete-report-related-objects) $ csfix\ndocker exec -it docker_lamp_1 ./vendor/bin/php-cs-fixer fix --config=.php-cs-fixer.dist.php -v --using-cache=no --diff \nPHP CS Fixer 3.87.1 Alexander by Fabien Potencier, Dariusz Ruminski and contributors.\nPHP runtime: 8.3.30\nRunning analysis on 7 cores with 10 files per process.\nParallel runner is an experimental feature and may be unstable, use it at your own risk. Feedback highly appreciated!\nLoaded config default from \".php-cs-fixer.dist.php\".\n 0/5688 [░░░░░░░░░░░░░░░░░░░░░░░░░░░░] 0%","depth":4,"on_screen":true,"value":"Last login: Mon May 18 09:17:28 on ttys007\n\nPoetry could not find a pyproject.toml file in /Users/lukas/jiminny/app or its parents\n\nPoetry could not find a pyproject.toml file in /Users/lukas/jiminny/app or its parents\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (pipedrive-sdk-poc) $ co master\nerror: Your local changes to the following files would be overwritten by checkout:\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tPIPEDRIVE_V2_MIGRATION_TICKETS.md\nPlease commit your changes or stash them before you switch branches.\nAborting\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (pipedrive-sdk-poc) $ git pull\nremote: Enumerating objects: 1047, done.\nremote: Counting objects: 100% (832/832), done.\nremote: Compressing objects: 100% (298/298), done.\nremote: Total 1047 (delta 634), reused 596 (delta 534), pack-reused 215 (from 3)\nReceiving objects: 100% (1047/1047), 353.16 KiB | 1.56 MiB/s, done.\nResolving deltas: 100% (687/687), completed with 107 local objects.\nFrom github.com:jiminny/app\n 907c54896c..34656c53ed pipedrive-sdk-poc -> origin/pipedrive-sdk-poc\n 03325ec50f..4e7078fd8b JY-18091-upgrade-to-php-8-5 -> origin/JY-18091-upgrade-to-php-8-5\n e7d231e163..bc6a3fce6b JY-20725-handle-HS-search-rate-limit -> origin/JY-20725-handle-HS-search-rate-limit\n * [new branch] JY-20749-user-can-view-recorded-meetings -> origin/JY-20749-user-can-view-recorded-meetings\n 98ca281a04..e0351be069 JY-20808-low-priority-indexing-queue -> origin/JY-20808-low-priority-indexing-queue\n 569abb5149..3906a9238a JY-20835-mcp-enable-users-to-get-a-list-of-deals-and-their-details -> origin/JY-20835-mcp-enable-users-to-get-a-list-of-deals-and-their-details\n ad6c2a86e8..50eb6afba9 JY-20846-mcp-enable-the-ai-to-know-details-about-the-user -> origin/JY-20846-mcp-enable-the-ai-to-know-details-about-the-user\n * [new branch] JY-20893-chunk-control-per-update-target -> origin/JY-20893-chunk-control-per-update-target\n 31c62924a5..cb4ebf0c36 master -> origin/master\nUpdating 907c54896c..34656c53ed\nFast-forward\n PIPEDRIVE_V2_MIGRATION_TICKETS.md | 52 ++++++++++++++++++++++++++++++++++++++++++++++++++++\n 1 file changed, 52 insertions(+)\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (pipedrive-sdk-poc) $ co master\nM\u0000\u0000\u0000\u0000\u0000\u0000\t.env.local\nM\u0000\u0000\u0000\u0000\u0000\u0000\tconfig/logging.php\nSwitched to branch 'master'\nYour branch is behind 'origin/master' by 31 commits, and can be fast-forwarded.\n (use \"git pull\" to update your local branch)\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (master) $ git pull\nUpdating 31c62924a5..cb4ebf0c36\nFast-forward\n app/Component/ES/Processor/Traits/SelectEntityListTrait.php | 20 ------\n app/Services/Calendar/CalendarActivityService.php | 46 +++++++++++++\n app/Services/Calendar/Command/MapActivityData.php | 106 +++-------------------------\n docs/mcp/explorer/explorer.html | 104 +++++++++++++++++++++++++---\n docs/mcp/explorer/explorer.template.html | 102 ++++++++++++++++++++++++---\n docs/mcp/tools-list.json | 373 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++-------\n docs/mcp/tools.md | 117 +++++++++++++++++++++++--------\n tests/Unit/Component/ES/AsyncUpdateElasticSearchTest.php | 16 +----\n tests/Unit/Component/ES/Listeners/UpdateMultipleTargetsListenerTest.php | 10 ---\n tests/Unit/Component/ES/Listeners/UpdateSingleTargetListenerTest.php | 6 --\n tests/Unit/Component/ES/Processor/TargetEntitiesSelectorTest.php | 9 ---\n tests/Unit/Component/ES/Processor/Traits/SelectEntityListTraitTest.php | 15 ++--\n tests/Unit/Component/ES/UpdateProcessManagerTest.php | 2 -\n tests/Unit/Services/Calendar/CalendarActivityServiceTest.php | 150 ++++++++++++++++++++++++++++++++++++++--\n tests/Unit/Services/Calendar/Command/MapActivityDataTest.php | 78 ++-------------------\n 15 files changed, 832 insertions(+), 322 deletions(-)\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (master) $ co -b JY-20613-allow-owner-role-on-team-setup\nSwitched to a new branch 'JY-20613-allow-owner-role-on-team-setup'\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20613-allow-owner-role-on-team-setup) $ csfix\ndocker exec -it docker_lamp_1 ./vendor/bin/php-cs-fixer fix --config=.php-cs-fixer.dist.php -v --using-cache=no --diff \nPHP CS Fixer 3.87.1 Alexander by Fabien Potencier, Dariusz Ruminski and contributors.\nPHP runtime: 8.3.30\nRunning analysis on 7 cores with 10 files per process.\nParallel runner is an experimental feature and may be unstable, use it at your own risk. Feedback highly appreciated!\nLoaded config default from \".php-cs-fixer.dist.php\".\n 5682/5682 [▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓] 100%\n\n\nFixed 0 of 5682 files in 56.978 seconds, 67.00 MB memory used\n\nWhat's next:\n Try Docker Debug for seamless, persistent debugging tools in any container or image → docker debug docker_lamp_1\n Learn more at https://docs.docker.com/go/debug-cli/\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20613-allow-owner-role-on-team-setup) $ ;xd\ndocker exec -it docker_lamp_1 bash -c \"mv /usr/local/etc/php/conf.d/xdebug.ini ~/xdebug.ini\"\n\nWhat's next:\n Try Docker Debug for seamless, persistent debugging tools in any container or image → docker debug docker_lamp_1\n Learn more at https://docs.docker.com/go/debug-cli/\ndocker exec -it docker_lamp_1 supervisorctl restart all\njiminny-worker-processing-2:jiminny-worker-processing-2_00: stopped\njiminny-worker-processing-3:jiminny-worker-processing-3_00: stopped\njiminny-worker-processing-4:jiminny-worker-processing-4_00: stopped\njiminny-worker-processing-5:jiminny-worker-processing-5_00: stopped\njiminny-worker-processing-delayed:jiminny-worker-processing-delayed_00: stopped\nworker-analytics:worker-analytics_00: stopped\nworker-crm-update:worker-crm-update_00: stopped\nworker-download:worker-download_00: stopped\nworker-nudges:worker-nudges_00: stopped\nartisan-schedule:artisan-schedule_00: stopped\nworker-emails:worker-emails_00: stopped\nworker-calendar:worker-calendar_00: stopped\nworker:worker_00: stopped\nworker-conferences:worker-conferences_00: stopped\nworker-crm-sync:worker-crm-sync_00: stopped\njiminny-worker-processing-1:jiminny-worker-processing-1_00: stopped\nworker-audio:worker-audio_00: stopped\nworker-es-update:worker-es-update_00: stopped\nartisan-schedule:artisan-schedule_00: started\njiminny-worker-processing-1:jiminny-worker-processing-1_00: started\njiminny-worker-processing-2:jiminny-worker-processing-2_00: started\njiminny-worker-processing-3:jiminny-worker-processing-3_00: started\njiminny-worker-processing-4:jiminny-worker-processing-4_00: started\njiminny-worker-processing-5:jiminny-worker-processing-5_00: started\njiminny-worker-processing-delayed:jiminny-worker-processing-delayed_00: started\nworker:worker_00: started\nworker-analytics:worker-analytics_00: started\nworker-audio:worker-audio_00: started\nworker-calendar:worker-calendar_00: started\nworker-conferences:worker-conferences_00: started\nworker-crm-sync:worker-crm-sync_00: started\nworker-crm-update:worker-crm-update_00: started\nworker-download:worker-download_00: started\nworker-emails:worker-emails_00: started\nworker-es-update:worker-es-update_00: started\nworker-nudges:worker-nudges_00: started\n\nWhat's next:\n Try Docker Debug for seamless, persistent debugging tools in any container or image → docker debug docker_lamp_1\n Learn more at https://docs.docker.com/go/debug-cli/\ndocker exec -it docker_lamp_1 php -v\nPHP 8.3.30 (cli) (built: Mar 16 2026 22:32:32) (NTS)\nCopyright (c) The PHP Group\nZend Engine v4.3.30, Copyright (c) Zend Technologies\n with Zend OPcache v8.3.30, Copyright (c), by Zend Technologies\n\nWhat's next:\n Try Docker Debug for seamless, persistent debugging tools in any container or image → docker debug docker_lamp_1\n Learn more at https://docs.docker.com/go/debug-cli/\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20613-allow-owner-role-on-team-setup) $ csfix\ndocker exec -it docker_lamp_1 ./vendor/bin/php-cs-fixer fix --config=.php-cs-fixer.dist.php -v --using-cache=no --diff \nPHP CS Fixer 3.87.1 Alexander by Fabien Potencier, Dariusz Ruminski and contributors.\nPHP runtime: 8.3.30\nRunning analysis on 7 cores with 10 files per process.\nParallel runner is an experimental feature and may be unstable, use it at your own risk. Feedback highly appreciated!\nLoaded config default from \".php-cs-fixer.dist.php\".\n 5682/5682 [▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓] 100%\n\n\nFixed 0 of 5682 files in 49.910 seconds, 60.00 MB memory used\n\nWhat's next:\n Try Docker Debug for seamless, persistent debugging tools in any container or image → docker debug docker_lamp_1\n Learn more at https://docs.docker.com/go/debug-cli/\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20613-allow-owner-role-on-team-setup) $ git status\nOn branch JY-20613-allow-owner-role-on-team-setup\nYour branch is ahead of 'origin/JY-20613-allow-owner-role-on-team-setup' by 1 commit.\n (use \"git push\" to publish your local commits)\n\nChanges not staged for commit:\n (use \"git add <file>...\" to update what will be committed)\n (use \"git restore <file>...\" to discard changes in working directory)\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tmodified: .env.local\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tmodified: config/logging.php\n\nUntracked files:\n (use \"git add <file>...\" to include in what will be committed)\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\t.env.nikilocal\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\t.env.other\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tWEBHOOK_FILTERING_IMPLEMENTATION.md\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tapp/Console/Commands/Crm/Hubspot/SimulateWebhooksCommand.php\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tapp/Console/Commands/Reports/CreateMockAskJiminnyReportResultCommand.php\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tids.txt\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tpublic/favicon.ico\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\traw_sql_query.sql\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\ttests/Unit/Policies/CanAccessAiReportsTest.php\n\nno changes added to commit (use \"git add\" and/or \"git commit -a\")\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20613-allow-owner-role-on-team-setup) $ git pull\nremote: Enumerating objects: 248, done.\nremote: Counting objects: 100% (128/128), done.\nremote: Compressing objects: 100% (23/23), done.\nremote: Total 59 (delta 43), reused 44 (delta 33), pack-reused 0 (from 0)\nUnpacking objects: 100% (59/59), 10.48 KiB | 228.00 KiB/s, done.\nFrom github.com:jiminny/app\n b7df560451..190239dfd4 JY-20613-allow-owner-role-on-team-setup -> origin/JY-20613-allow-owner-role-on-team-setup\n e0351be069..d94a285ae7 JY-20808-low-priority-indexing-queue -> origin/JY-20808-low-priority-indexing-queue\n * [new branch] JY-20920-fix-participant-matcher -> origin/JY-20920-fix-participant-matcher\n cb4ebf0c36..90bca4e4b2 master -> origin/master\nMerge made by the 'ort' strategy.\n app/Component/ES/ChunkSize.php | 54 +++++++++++++++++++++++++++\n app/Component/ES/Processor/DTOs/SelectionList.php | 4 +-\n app/Component/ES/Processor/TargetEntitiesSelector.php | 19 ++++++----\n app/Http/Middleware/McpTierMiddleware.php | 27 +++-----------\n app/Mcp/Servers/JiminnyServer.php | 2 +\n app/Mcp/Tools/GetMeTool.php | 157 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++\n app/Models/Feature/FeatureEnum.php | 1 +\n database/migrations/2026_05_13_124153_create_mcp_feature_flag.php | 25 +++++++++++++\n front-end/src/components/Settings/Kiosk/modals/EditTeamModal/EditTeamModal.vue | 52 ++++++++++++++++++--------\n front-end/src/components/Settings/Kiosk/modals/EditTeamModal/__tests__/EditTeamModal.spec.js | 14 +++++++\n tests/Feature/Mcp/GetMeToolFeatureTest.php | 140 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++\n tests/Feature/Mcp/ListCallsToolFeatureTest.php | 2 +-\n tests/Feature/Mcp/McpTestHelpersTrait.php | 19 +++++++++-\n tests/Unit/Component/ES/ChunkSizeTest.php | 50 +++++++++++++++++++++++++\n tests/Unit/Component/ES/Processor/DTOs/SelectionListTest.php | 27 ++++++++++----\n tests/Unit/Component/ES/Processor/TargetEntitiesSelectorTest.php | 39 +++++++++++---------\n 16 files changed, 557 insertions(+), 75 deletions(-)\n create mode 100644 app/Component/ES/ChunkSize.php\n create mode 100644 app/Mcp/Tools/GetMeTool.php\n create mode 100644 database/migrations/2026_05_13_124153_create_mcp_feature_flag.php\n create mode 100644 tests/Feature/Mcp/GetMeToolFeatureTest.php\n create mode 100644 tests/Unit/Component/ES/ChunkSizeTest.php\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20613-allow-owner-role-on-team-setup) $ git push\nEnumerating objects: 40, done.\nCounting objects: 100% (34/34), done.\nDelta compression using up to 8 threads\nCompressing objects: 100% (18/18), done.\nWriting objects: 100% (18/18), 1.58 KiB | 1.58 MiB/s, done.\nTotal 18 (delta 15), reused 0 (delta 0), pack-reused 0\nremote: Resolving deltas: 100% (15/15), completed with 13 local objects.\nTo github.com:jiminny/app.git\n 190239dfd4..ec1b261264 JY-20613-allow-owner-role-on-team-setup -> JY-20613-allow-owner-role-on-team-setup\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20613-allow-owner-role-on-team-setup) $ gbr\n* JY-20613-allow-owner-role-on-team-setup\n pipedrive-sdk-poc\n master\n JY-20903-update_activity-stage-on-opportunity-change\n JY-20904-fix-update-es-on-activity-command\n JY-20891-improve-sms-text-relays\n JY-20725-handle-HS-search-rate-limit\n JY-20818-move-AJ-reports-to-separated-datadog-metric\n JY-20773-fix-automated-reports-user-pilot-tracking\n JY-20157-AJ-report-not-send-notification\n JY-20508-notify-before-AJ-report-expiration\n JY-20372-ai-reports-promotion-pages\n JY-20352-sync-opportunities-without-a-local-owner-user-id-is-null\n JY-20738-debug-AJ-tracking-UP\n a\n JY-18909-automated-reports-ask-jiminny\n JY-20692-fix-integration-app-token-auth-response-change\n JY-20553-debug-crm-sync-delays\n JY-20698-fix-SF-activity-types-on-new-playbook\n JY-20543-AJ-report-tracking\n JY-20384-handle-auto-sync-with-no-access-to-event-type\n JY-20458-ask-jiminny-user-definitions\n JY-19666-fix-import-contacts-account-association\n JY-19666-HS-import-contacts-and-accounts-batch-job\n JY-20458-Ask-Jiminny-Reports\n JY-20200-batch-update-CRM-objects-Salesforce\n JY-19666-HS-webhooks-add-contact-and-company\n JY-20348-trigger-setup-DI-layout-on-team-creation\n JY-20326-refactor-info-message-in-command\n JY-20317-fix-auto-log-delay-issue-on-all-channels-disabled\n JY-20312-remove-on-update-change-last-synced-at-crm-configurations\n JY-20306-SF-skip-auto-sync-for-task-based-playbook\n JY-20192-remove-deleted-team-from-saved-search-filters\n JY-20197-import-opportunity-batch-job\n JY-20293-enable-status-field-for-pipedrive-deals\n JY-20191-remove-commands-interactive-prompts\n JY-20118-change-default-sync-strategy\n JY-20183-add-cache-on-auto-log-delay\n JY-20197-add-import-opportunity-batch-job\n 20118-hs-opportunity-make-webhook-strategy-default\n JY-20118-make-default-hs-opportunity-sync-strategy-webhook-based\n JY-20196-handle-opportunity-without-note\n JY-20118-improve-opportunity-import\n JY-20189-handle-activity-search-on-deleted-groups\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20613-allow-owner-role-on-team-setup) $ co JY-20725-handle-HS-search-rate-limit\nM\u0000\u0000\u0000\u0000\u0000\u0000\t.env.local\nM\u0000\u0000\u0000\u0000\u0000\u0000\tconfig/logging.php\nSwitched to branch 'JY-20725-handle-HS-search-rate-limit'\nYour branch is behind 'origin/JY-20725-handle-HS-search-rate-limit' by 439 commits, and can be fast-forwarded.\n (use \"git pull\" to update your local branch)\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20725-handle-HS-search-rate-limit) $ git pull\nUpdating 0f3e438941..bc6a3fce6b\nFast-forward\n .gitignore | 3 +-\n .windsurfrules | 168 ++---\n CLAUDE.md | 1 +\n app/Component/ActivityAnalytics/Service/CalculateTalkTimeOffsetsFromTranscription.php | 24 +-\n app/Component/AiActivityType/Services/AiActivityTypeEligibilityChecker.php | 28 +-\n app/Component/AiAutomation/Actions/PrepareUpdateDtoAction.php | 32 +-\n app/Component/AiAutomation/Services/CrmFillingEligibilityChecker.php | 47 ++\n app/Component/AiAutomation/TestCrmAiPromptService.php | 14 +\n app/Component/AiCallScoring/Services/AiCallScoringEligibilityChecker.php | 9 +\n app/Component/ES/ElasticSearchDocumentPartialUpdater.php | 13 +-\n app/Component/ES/ElasticSearchWorkerManager.php | 86 ---\n app/Component/ES/Processor/Actions/LoadDocumentsAction.php | 80 +--\n app/Component/ES/Processor/EntityQueryBuilder.php | 12 +-\n app/Component/ES/Processor/TargetEntitiesSelector.php | 2 +-\n app/Component/ES/Processor/Traits/SkipActivityTrait.php | 25 -\n app/Component/ES/Repositories/EsResetActivityRepository.php | 11 +-\n app/Component/ES/Worker/ActivityWorker.php | 73 --\n app/Component/ES/Worker/EntityWorker.php | 44 --\n app/Component/ES/Worker/WorkerAmount.php | 60 --\n app/Component/ES/Worker/WorkerInterface.php | 15 -\n app/Component/ElasticSearch/Contract/Searchable.php | 4 +\n app/Component/Encoding/Job/AnalyzeTrackChannelsJob.php | 20 +-\n app/Component/Encoding/Service/GenerateSpeechFromSilenceService.php | 85 ++-\n app/Component/FFMpeg/Services/GetSpeechIntervalsService.php | 18 +-\n app/Component/LanguageDetection/Services/FindSpeechTimeService.php | 22 +-\n app/Component/Nudge/Job/ProcessOrganisationImmediateNudgesJob.php | 218 +++++-\n app/Component/ParagraphBreaker/Services/TranscriptionParagraphsService.php | 4 +\n app/Component/ParticipantSpeech/Services/ParticipantSpeechesCreator.php | 33 +\n app/Component/ParticipantSpeech/Services/ParticipantSpeechesDeleter.php | 15 +\n app/Component/ParticipantSpeech/Services/ParticipantSpeechesProvider.php | 51 +-\n app/Component/ParticipantSpeech/Services/ParticipantSpeechesUploader.php | 36 +\n app/Component/ProphetAi/Exceptions/InsufficientTranscriptException.php | 11 +\n app/Component/Transcription/DTO/Http/Transcription/AssemblyAI/AssemblyAI/NoAssemblyIdException.php | 11 +\n app/Component/Transcription/DTO/Http/Transcription/AssemblyAI/AssemblyAI/SuccessfulResponse.php | 6 +\n app/Component/Transcription/DTO/Http/Transcription/TranscriptionIsNotCorrectFormatException.php | 11 +\n app/Component/Transcription/Diarization/Services/GetNormalizedParticipantSpeechesService.php | 23 +-\n app/Component/Transcription/Diarization/Source/MeetingBotSource.php | 16 +-\n app/Component/Transcription/TranscriptionProcessor/TranscriptionProcessor.php | 3 +\n app/Console/Commands/Activities/ActivityHardDeleteCommand.php | 4 +-\n app/Console/Commands/Activities/Copy.php | 2 +\n app/Console/Commands/Activities/SetupIntegration/TwilioSetS3RecordingCredentialsCommand.php | 119 ++++\n app/Console/Commands/Activities/UpdateActivityElasticSearchDocumentCommand.php | 10 +-\n app/Console/Commands/Crm/BackfillOpportunityUserFromAccountCommand.php | 126 ++++\n app/Console/Commands/Elasticsearch/AsyncUpdateEsActivities.php | 19 -\n app/Console/Commands/Elasticsearch/AsyncUpdateEsEntities.php | 50 +-\n app/Console/Commands/Elasticsearch/ResetAsyncElasticSearchCommand.php | 30 +-\n app/Console/Commands/GeckoExport/GeckoExportParticipantSpeechesCommand.php | 14 +-\n app/Console/Commands/IssueMcpTokenCommand.php | 84 +++\n app/Console/Commands/JiminnyDebugCommand.php | 7 +-\n app/Console/Commands/Tracks/CleanupActivityTracksCommand.php | 2 +-\n app/Console/Kernel.php | 6 +-\n app/Contracts/Services/Calendar/CalendarTrait.php | 80 ++-\n app/Events/AutomatedReports/AutomatedReportGenerated.php | 3 +\n app/Http/Controllers/API/AiCallScoring/AiScorecardController.php | 7 +-\n app/Http/Controllers/API/TeamAiAutomationController.php | 8 +\n app/Http/Controllers/CustomerApi/CustomerApiController.php | 4 +-\n app/Http/Controllers/Kiosk/ActivityController.php | 58 +-\n app/Http/Controllers/Settings/PlaybookController.php | 15 +-\n app/Http/Kernel.php | 23 +\n app/Http/Middleware/McpAuditMiddleware.php | 156 ++++\n app/Http/Middleware/McpTierMiddleware.php | 54 ++\n app/Http/Requests/API/V2/ZapierUploadActivityRequest.php | 28 +-\n app/Jobs/Activity/Import/ImportTwilioVideoSpeechesJob.php | 25 +-\n app/Jobs/Activity/Import/IsActivityReadyForProcessingJob.php | 10 +-\n app/Jobs/Calendar/SetupCalendarSync.php | 21 +-\n app/Jobs/ImportRemoteTrackJob.php | 96 ++-\n app/Jobs/Mailbox/EmailTextRelay.php | 15 +-\n app/Mcp/Contracts/McpCallRepositoryInterface.php | 30 +\n app/Mcp/DTO/ListCallsFilters.php | 29 +\n app/Mcp/Errors/McpError.php | 123 ++++\n app/Mcp/Repositories/McpActivityHydrator.php | 145 ++++\n app/Mcp/Repositories/McpCallRepository.php | 84 +++\n app/Mcp/Repositories/McpElasticCallRepository.php | 171 +++++\n app/Mcp/Servers/JiminnyServer.php | 38 +\n app/Mcp/Tools/ListCallsTool.php | 205 ++++++\n app/Models/Activity.php | 10 +-\n app/Models/Activity/Transcription.php | 17 +-\n app/Models/ElasticSearch/OpportunityElasticSearchTrait.php | 5 +\n app/Models/Participant.php | 1 +\n app/Providers/AppServiceProvider.php | 22 +\n app/Repositories/Crm/ContactRepository.php | 69 +-\n app/Repositories/ParticipantSpeechRepository.php | 13 +-\n app/Services/Activity/ParticipantsService.php | 19 +-\n app/Services/Activity/Twilio/S3RecordingCredentialsService.php | 82 +++\n app/Services/ActivityService.php | 21 +-\n app/Services/Calendar/CalendarActivityService.php | 46 ++\n app/Services/Calendar/Command/ImportParticipants.php | 1 +\n app/Services/Calendar/Command/MapActivityData.php | 106 +--\n app/Services/Calendar/GoogleCalendarService.php | 12 +-\n app/Services/Crm/Close/Processor/OpportunityProcessor.php | 2 +-\n app/Services/Crm/Close/Service.php | 22 +-\n app/Services/Crm/Copper/Service.php | 12 +-\n app/Services/Crm/Hubspot/Service.php | 154 +++-\n app/Services/Crm/Hubspot/ServiceTraits/OpportunitySyncTrait.php | 88 ++-\n app/Services/Crm/IntegrationApp/ServiceTraits/SyncCrmEntitiesTrait.php | 22 +-\n app/Services/Crm/Pipedrive/Service.php | 17 +-\n app/Services/Crm/Salesforce/Service.php | 42 +-\n app/Services/Mail/Office/EmailApiClient.php | 129 +---\n app/Services/RecallAI/Commands/ScheduleBotCommand.php | 39 +-\n app/Services/RecallAI/RecallAIService.php | 22 +-\n composer.json | 3 +-\n composer.lock | 87 ++-\n config/mcp.php | 23 +\n database/migrations/2026_04_30_120000_create_mcp_audit_log_table.php | 36 +\n docs/mcp/explorer/explorer.html | 697 ++++++++++++++++++\n docs/mcp/explorer/explorer.template.html | 697 ++++++++++++++++++\n docs/mcp/explorer/generate.js | 215 ++++++\n docs/mcp/explorer/tool-explorer-meta.json | 11 +\n docs/mcp/tools-list.json | 2536 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++\n docs/mcp/tools.md | 621 ++++++++++++++++\n front-end/package.json | 4 +-\n front-end/src/components/Settings/OrgSettings/AiAutomation/CrmFilling/TemplateFieldForm.vue | 28 +-\n front-end/src/components/Settings/OrgSettings/Playbooks/AddEditPlaybook.vue | 10 +\n front-end/src/components/playback/comments/ActivityComment.less | 10 +-\n front-end/src/components/shared/PromptTester/PromptTester.vue | 12 +-\n front-end/src/components/shared/__tests__/PromptTester.spec.js | 35 +\n front-end/src/components/shared/modals/EntityPickerModal/__tests__/useEntitiesCache.spec.ts | 37 +\n front-end/src/components/shared/modals/EntityPickerModal/useEntitiesCache.ts | 9 +\n front-end/yarn.lock | 16 +-\n phpstan-baseline.neon | 50 --\n routes/api.php | 11 +\n sonar-project.properties | 91 ++-\n tests/Feature/Component/Nudge/ProcessOrganisationImmediateNudgesJobTest.php | 534 ++++++++++++++\n tests/Feature/Jobs/ImportRemoteTrackJobTest.php | 283 +++++++-\n tests/Feature/Mcp/IssueMcpTokenCommandTest.php | 53 ++\n tests/Feature/Mcp/ListCallsToolElasticFeatureTest.php | 155 ++++\n tests/Feature/Mcp/ListCallsToolFeatureTest.php | 352 ++++++++++\n tests/Feature/Mcp/McpTestHelpersTrait.php | 77 ++\n tests/Feature/Services/Team/TeamDeleteHandlers/Retention/RetentionRepositoryHandlerTest.php | 1 +\n tests/Stubs/SentryStub.php | 18 +\n tests/Unit/Component/ActivityAnalytics/Service/CalculateTalkTimeOffsetFromTranscriptionTest.php | 28 +-\n tests/Unit/Component/AiActivityType/Services/AiActivityTypeEligibilityCheckerTest.php | 103 ++-\n tests/Unit/Component/AiAutomation/Actions/PrepareUpdateDtoActionTest.php | 91 +++\n tests/Unit/Component/AiAutomation/Services/CrmFillingEligibilityCheckerTest.php | 124 ++++\n tests/Unit/Component/AiAutomation/TestCrmAiPromptServiceTest.php | 67 +-\n tests/Unit/Component/AiCallScoring/Services/AiCallScoringEligibilityCheckerTest.php | 55 ++\n tests/Unit/Component/ES/ElasticSearchWorkerManagerTest.php | 135 ----\n tests/Unit/Component/ES/Processor/Actions/LoadDocumentsActionTest.php | 220 ++++++\n tests/Unit/Component/ES/Processor/EntityQueryBuilderTest.php | 21 +-\n tests/Unit/Component/ES/Processor/Traits/SkipActivityTraitTest.php | 51 --\n tests/Unit/Component/ES/Worker/ActivityWorkerTest.php | 174 -----\n tests/Unit/Component/ES/Worker/EntityWorkerTest.php | 97 ---\n tests/Unit/Component/ES/Worker/WorkerAmountTest.php | 116 ---\n tests/Unit/Component/Encoding/Job/AnalyzeTrackChannelsJobTest.php | 52 +-\n tests/Unit/Component/Encoding/Service/GenerateSpeechFromSilenceServiceTest.php | 171 ++---\n tests/Unit/Component/FFMpeg/Services/GetSpeechIntervalsTest.php | 36 +-\n tests/Unit/Component/LanguageDetection/Services/FindSpeechTimeServiceTest.php | 20 +-\n tests/Unit/Component/MobileSettings/MobileSettingsControllerTest.php | 5 +-\n tests/Unit/Component/ParticipantSpeech/Services/ParticipantSpeechesCreatorTest.php | 75 ++\n tests/Unit/Component/ParticipantSpeech/Services/ParticipantSpeechesDeleterTest.php | 63 ++\n tests/Unit/Component/ParticipantSpeech/Services/ParticipantSpeechesProviderTest.php | 134 ++++\n tests/Unit/Component/ParticipantSpeech/Services/ParticipantSpeechesUploaderTest.php | 57 ++\n tests/Unit/Component/Transcription/Diarization/Services/GetNormalizedParticipantSpeechesServiceTest.php | 51 +-\n tests/Unit/Component/Transcription/Diarization/Source/MeetingBotSourceTest.php | 29 +-\n tests/Unit/Contracts/Services/Calendar/CalendarTraitTest.php | 58 +-\n tests/Unit/Http/Controllers/Kiosk/ActivityControllerTest.php | 159 +++++\n tests/Unit/Jobs/Activity/Import/ImportTwilioVideoSpeechesJobTest.php | 22 +-\n tests/Unit/Jobs/Activity/Import/IsActivityReadyForProcessingJobTest.php | 26 +-\n tests/Unit/Jobs/Calendar/SetupCalendarSyncTest.php | 25 -\n tests/Unit/Services/Activity/ParticipantsServiceTest.php | 12 +-\n tests/Unit/Services/Activity/Twilio/S3RecordingCredentialsServiceTest.php | 180 +++++\n tests/Unit/Services/ActivityServiceTest.php | 132 ++++\n tests/Unit/Services/Calendar/CalendarActivityServiceTest.php | 150 +++-\n tests/Unit/Services/Calendar/Command/ImportParticipantsTest.php | 6 +-\n tests/Unit/Services/Calendar/Command/MapActivityDataTest.php | 78 +-\n tests/Unit/Services/Calendar/GoogleCalendarServiceTest.php | 116 +++\n tests/Unit/Services/Crm/Close/ServiceTest.php | 165 +++++\n tests/Unit/Services/Crm/Hubspot/ServiceTest.php | 272 ++++++-\n tests/Unit/Services/Crm/Hubspot/ServiceTraits/OpportunitySyncTest.php | 25 +-\n tests/Unit/Services/Crm/Hubspot/ServiceTraits/OpportunitySyncTraitMatchActivitiesTest.php | 3 +-\n tests/Unit/Services/Crm/IntegrationApp/ServiceTraits/SyncCrmEntitiesTraitOpportunitiesTest.php | 40 ++\n tests/Unit/Services/Crm/Pipedrive/ImportOpportunityMatchActivitiesTest.php | 2 +\n tests/Unit/Services/Crm/Salesforce/ServiceTest.php | 139 ++++\n tests/Unit/Services/Mail/Office/EmailApiClientTest.php | 195 ++---\n tests/Unit/Services/RecallAI/RecallAIServiceTest.php | 24 +-\n 175 files changed, 12562 insertions(+), 2162 deletions(-)\n create mode 120000 CLAUDE.md\n create mode 100644 app/Component/AiAutomation/Services/CrmFillingEligibilityChecker.php\n delete mode 100644 app/Component/ES/ElasticSearchWorkerManager.php\n delete mode 100644 app/Component/ES/Processor/Traits/SkipActivityTrait.php\n delete mode 100644 app/Component/ES/Worker/ActivityWorker.php\n delete mode 100644 app/Component/ES/Worker/EntityWorker.php\n delete mode 100644 app/Component/ES/Worker/WorkerAmount.php\n delete mode 100644 app/Component/ES/Worker/WorkerInterface.php\n create mode 100644 app/Component/ProphetAi/Exceptions/InsufficientTranscriptException.php\n create mode 100644 app/Component/Transcription/DTO/Http/Transcription/AssemblyAI/AssemblyAI/NoAssemblyIdException.php\n create mode 100644 app/Component/Transcription/DTO/Http/Transcription/TranscriptionIsNotCorrectFormatException.php\n create mode 100644 app/Console/Commands/Activities/SetupIntegration/TwilioSetS3RecordingCredentialsCommand.php\n create mode 100644 app/Console/Commands/Crm/BackfillOpportunityUserFromAccountCommand.php\n delete mode 100644 app/Console/Commands/Elasticsearch/AsyncUpdateEsActivities.php\n create mode 100644 app/Console/Commands/IssueMcpTokenCommand.php\n create mode 100644 app/Http/Middleware/McpAuditMiddleware.php\n create mode 100644 app/Http/Middleware/McpTierMiddleware.php\n create mode 100644 app/Mcp/Contracts/McpCallRepositoryInterface.php\n create mode 100644 app/Mcp/DTO/ListCallsFilters.php\n create mode 100644 app/Mcp/Errors/McpError.php\n create mode 100644 app/Mcp/Repositories/McpActivityHydrator.php\n create mode 100644 app/Mcp/Repositories/McpCallRepository.php\n create mode 100644 app/Mcp/Repositories/McpElasticCallRepository.php\n create mode 100644 app/Mcp/Servers/JiminnyServer.php\n create mode 100644 app/Mcp/Tools/ListCallsTool.php\n create mode 100644 app/Services/Activity/Twilio/S3RecordingCredentialsService.php\n create mode 100644 config/mcp.php\n create mode 100644 database/migrations/2026_04_30_120000_create_mcp_audit_log_table.php\n create mode 100644 docs/mcp/explorer/explorer.html\n create mode 100644 docs/mcp/explorer/explorer.template.html\n create mode 100644 docs/mcp/explorer/generate.js\n create mode 100644 docs/mcp/explorer/tool-explorer-meta.json\n create mode 100644 docs/mcp/tools-list.json\n create mode 100644 docs/mcp/tools.md\n create mode 100644 front-end/src/components/shared/modals/EntityPickerModal/__tests__/useEntitiesCache.spec.ts\n create mode 100644 tests/Feature/Component/Nudge/ProcessOrganisationImmediateNudgesJobTest.php\n create mode 100644 tests/Feature/Mcp/IssueMcpTokenCommandTest.php\n create mode 100644 tests/Feature/Mcp/ListCallsToolElasticFeatureTest.php\n create mode 100644 tests/Feature/Mcp/ListCallsToolFeatureTest.php\n create mode 100644 tests/Feature/Mcp/McpTestHelpersTrait.php\n create mode 100644 tests/Stubs/SentryStub.php\n create mode 100644 tests/Unit/Component/AiAutomation/Services/CrmFillingEligibilityCheckerTest.php\n delete mode 100644 tests/Unit/Component/ES/ElasticSearchWorkerManagerTest.php\n create mode 100644 tests/Unit/Component/ES/Processor/Actions/LoadDocumentsActionTest.php\n delete mode 100644 tests/Unit/Component/ES/Processor/Traits/SkipActivityTraitTest.php\n delete mode 100644 tests/Unit/Component/ES/Worker/ActivityWorkerTest.php\n delete mode 100644 tests/Unit/Component/ES/Worker/EntityWorkerTest.php\n delete mode 100644 tests/Unit/Component/ES/Worker/WorkerAmountTest.php\n create mode 100644 tests/Unit/Component/ParticipantSpeech/Services/ParticipantSpeechesCreatorTest.php\n create mode 100644 tests/Unit/Http/Controllers/Kiosk/ActivityControllerTest.php\n create mode 100644 tests/Unit/Services/Activity/Twilio/S3RecordingCredentialsServiceTest.php\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20725-handle-HS-search-rate-limit) $ git status\nOn branch master\nYour branch is behind 'origin/master' by 114 commits, and can be fast-forwarded.\n (use \"git pull\" to update your local branch)\n\nChanges not staged for commit:\n (use \"git add <file>...\" to update what will be committed)\n (use \"git restore <file>...\" to discard changes in working directory)\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tmodified: .env.local\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tmodified: app/Component/SCIM/Constants.php\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tmodified: app/Component/SCIM/ScimProvisioning.php\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tmodified: app/Component/Twilio/Conference/ConferenceManager/SoftPhoneManager.php\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tmodified: app/Console/Commands/JiminnyDebugCommand.php\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tmodified: app/DTO/SCIM/AAD/Request/CoreUserRequest.php\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tmodified: app/DTO/SCIM/AAD/Response/CoreUser.php\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tmodified: app/Services/Telephony/TextMessagingService.php\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tmodified: config/logging.php\n\nUntracked files:\n (use \"git add <file>...\" to include in what will be committed)\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\t.env.nikilocal\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\t.env.other\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tWEBHOOK_FILTERING_IMPLEMENTATION.md\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tapp/Component/SCIM/Mutators/Attributes/User/RoleAttr.php\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tapp/Console/Commands/Crm/Hubspot/SimulateWebhooksCommand.php\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tapp/Console/Commands/Reports/CreateMockAskJiminnyReportResultCommand.php\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tapp/Rules/ListenerRoleCannotHaveAdminOrManagerPermissionRule.php\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tids.txt\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tpublic/favicon.ico\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\traw_sql_query.sql\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\ttests/Unit/Component/SCIM/Mutators/Attributes/User/RoleAttrTest.php\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\ttests/Unit/Policies/CanAccessAiReportsTest.php\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\ttests/Unit/Rules/ListenerRoleCannotHaveAdminOrManagerPermissionRuleTest.php\n\nno changes added to commit (use \"git add\" and/or \"git commit -a\")\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (master) $ git pull\nremote: Enumerating objects: 306, done.\nremote: Counting objects: 100% (299/299), done.\nremote: Compressing objects: 100% (183/183), done.\nremote: Total 306 (delta 213), reused 171 (delta 116), pack-reused 7 (from 1)\nReceiving objects: 100% (306/306), 80.12 KiB | 1000.00 KiB/s, done.\nResolving deltas: 100% (213/213), completed with 53 local objects.\nFrom github.com:jiminny/app\n 90bca4e4b2..5604af40cf master -> origin/master\n 4e7078fd8b..0b8343d179 JY-18091-upgrade-to-php-8-5 -> origin/JY-18091-upgrade-to-php-8-5\n 098eeaa087..d5a447e492 JY-20613-allow-owner-role-on-team-setup -> origin/JY-20613-allow-owner-role-on-team-setup\n c3a76ace91..af65249d0f JY-20749-user-can-view-recorded-meetings -> origin/JY-20749-user-can-view-recorded-meetings\n d94a285ae7..7ce96cb5fe JY-20808-low-priority-indexing-queue -> origin/JY-20808-low-priority-indexing-queue\n * [new branch] JY-20842-remove-partial-updater -> origin/JY-20842-remove-partial-updater\n * [new branch] JY-20920-fix-participant-flip -> origin/JY-20920-fix-participant-flip\n * [new branch] secfix/npm-20260519 -> origin/secfix/npm-20260519\nUpdating cb4ebf0c36..5604af40cf\nFast-forward\n app/Component/ES/ChunkSize.php | 54 +++++++++++++++++++\n app/Component/ES/Processor/DTOs/SelectionList.php | 4 +-\n app/Component/ES/Processor/TargetEntitiesSelector.php | 19 ++++---\n app/Component/MeetingBot/Service/ParticipantMatcher.php | 46 ++++++++++++----\n app/Exceptions/RateLimitException.php | 19 ++++++-\n app/Http/Middleware/McpTierMiddleware.php | 27 ++--------\n app/Jobs/Crm/MatchActivityCrmData.php | 47 ++++++++++++----\n app/Jobs/Middleware/HandleHubspotRateLimit.php | 42 +++++++++++++++\n app/Mcp/Servers/JiminnyServer.php | 2 +\n app/Mcp/Tools/GetMeTool.php | 157 +++++++++++++++++++++++++++++++++++++++++++++++++++++\n app/Models/Feature/FeatureEnum.php | 1 +\n app/Services/Activity/HubSpot/ProviderResolver.php | 4 +-\n app/Services/Activity/HubSpot/ProviderResolverInterface.php | 2 +-\n app/Services/Activity/HubSpot/Providers/Provider.php | 2 +-\n app/Services/Activity/HubSpot/Providers/ProviderKixie.php | 2 +-\n app/Services/Activity/HubSpot/Providers/ProviderOrum.php | 2 +-\n app/Services/Activity/HubSpot/Providers/ProviderTwilio.php | 2 +-\n app/Services/Activity/HubSpot/Providers/ProviderTwilioFlex.php | 5 +-\n app/Services/Activity/HubSpot/Service.php | 97 +++++++++++++++++++++++++++------\n app/Services/Crm/Hubspot/Client.php | 132 +++++++++++++++++++++++++++++++++++++++++++++\n app/Services/Crm/Hubspot/HubspotClientInterface.php | 15 ++++++\n app/Services/Crm/Hubspot/Pagination/HubspotPaginationService.php | 21 ++++----\n app/Services/Crm/Hubspot/Pagination/PaginationState.php | 2 +-\n database/migrations/2026_05_13_124153_create_mcp_feature_flag.php | 25 +++++++++\n tests/Feature/Mcp/GetMeToolFeatureTest.php | 140 +++++++++++++++++++++++++++++++++++++++++++++++\n tests/Feature/Mcp/ListCallsToolFeatureTest.php | 2 +-\n tests/Feature/Mcp/McpTestHelpersTrait.php | 19 ++++++-\n tests/Unit/Component/ES/ChunkSizeTest.php | 50 +++++++++++++++++\n tests/Unit/Component/ES/Processor/DTOs/SelectionListTest.php | 27 +++++++---\n tests/Unit/Component/ES/Processor/TargetEntitiesSelectorTest.php | 39 ++++++++------\n tests/Unit/Component/MeetingBot/Service/ParticipantMatcherTest.php | 68 ++++++++++++++++++++++-\n tests/Unit/Exceptions/RateLimitExceptionTest.php | 56 +++++++++++++++++++\n tests/Unit/Jobs/Crm/MatchActivityCrmDataTest.php | 8 +--\n tests/Unit/Jobs/Middleware/HandleHubspotRateLimitTest.php | 151 +++++++++++++++++++++++++++++++++++++++++++++++++++\n tests/Unit/Services/Activity/HubSpot/ServiceTest.php | 109 +++++++++++++++++++++++++++++++++++++\n tests/Unit/Services/Crm/Hubspot/ClientTest.php | 250 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++\n tests/Unit/Services/Crm/Hubspot/Pagination/HubspotPaginationServiceTest.php | 283 +++++++++++++++++++++---------------------------------------------------------------------------\n 37 files changed, 1587 insertions(+), 344 deletions(-)\n create mode 100644 app/Component/ES/ChunkSize.php\n create mode 100644 app/Jobs/Middleware/HandleHubspotRateLimit.php\n create mode 100644 app/Mcp/Tools/GetMeTool.php\n create mode 100644 database/migrations/2026_05_13_124153_create_mcp_feature_flag.php\n create mode 100644 tests/Feature/Mcp/GetMeToolFeatureTest.php\n create mode 100644 tests/Unit/Component/ES/ChunkSizeTest.php\n create mode 100644 tests/Unit/Exceptions/RateLimitExceptionTest.php\n create mode 100644 tests/Unit/Jobs/Middleware/HandleHubspotRateLimitTest.php\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (master) $ git pull\nAlready up to date.\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (master) $ co -b JY-20676-delete-report-related-objects\nSwitched to a new branch 'JY-20676-delete-report-related-objects'\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20676-delete-report-related-objects) $ csfix\ndocker exec -it docker_lamp_1 ./vendor/bin/php-cs-fixer fix --config=.php-cs-fixer.dist.php -v --using-cache=no --diff \nPHP CS Fixer 3.87.1 Alexander by Fabien Potencier, Dariusz Ruminski and contributors.\nPHP runtime: 8.3.30\nRunning analysis on 7 cores with 10 files per process.\nParallel runner is an experimental feature and may be unstable, use it at your own risk. Feedback highly appreciated!\nLoaded config default from \".php-cs-fixer.dist.php\".\n 5690/5690 [▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓] 100%\n\n 1) app/Console/Commands/JiminnyDebugCommand.php (statement_indentation, blank_line_before_statement)\n ---------- begin diff ----------\n--- /home/jiminny/app/Console/Commands/JiminnyDebugCommand.php\n+++ /home/jiminny/app/Console/Commands/JiminnyDebugCommand.php\n@@ -23,6 +23,7 @@\n \n if ($action === 'redis-set') {\n $this->testRedisSet();\n+\n return;\n }\n \n@@ -45,7 +46,7 @@\n $ttl = 60;\n \n try {\n-// $result = Redis::set($testKey, $testValue, 'EX', $ttl, 'NX');\n+ // $result = Redis::set($testKey, $testValue, 'EX', $ttl, 'NX');\n $result = Redis::set($testKey, $testValue, ['nx', 'ex' => $ttl]);\n \n if ($result) {\n\n ----------- end diff -----------\n\n\nFixed 1 of 5690 files in 50.673 seconds, 67.00 MB memory used\n\nWhat's next:\n Try Docker Debug for seamless, persistent debugging tools in any container or image → docker debug docker_lamp_1\n Learn more at https://docs.docker.com/go/debug-cli/\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20676-delete-report-related-objects) $ ;xd\ndocker exec -it docker_lamp_1 bash -c \"mv /usr/local/etc/php/conf.d/xdebug.ini ~/xdebug.ini\"\n\nWhat's next:\n Try Docker Debug for seamless, persistent debugging tools in any container or image → docker debug docker_lamp_1\n Learn more at https://docs.docker.com/go/debug-cli/\ndocker exec -it docker_lamp_1 supervisorctl restart all\njiminny-worker-processing-2:jiminny-worker-processing-2_00: stopped\njiminny-worker-processing-3:jiminny-worker-processing-3_00: stopped\njiminny-worker-processing-4:jiminny-worker-processing-4_00: stopped\njiminny-worker-processing-5:jiminny-worker-processing-5_00: stopped\njiminny-worker-processing-delayed:jiminny-worker-processing-delayed_00: stopped\nworker-analytics:worker-analytics_00: stopped\nworker-crm-update:worker-crm-update_00: stopped\nworker-download:worker-download_00: stopped\nworker-nudges:worker-nudges_00: stopped\nworker-calendar:worker-calendar_00: stopped\nworker-audio:worker-audio_00: stopped\njiminny-worker-processing-1:jiminny-worker-processing-1_00: stopped\nworker:worker_00: stopped\nworker-conferences:worker-conferences_00: stopped\nworker-crm-sync:worker-crm-sync_00: stopped\nworker-emails:worker-emails_00: stopped\nworker-es-update:worker-es-update_00: stopped\nartisan-schedule:artisan-schedule_00: stopped\nartisan-schedule:artisan-schedule_00: started\njiminny-worker-processing-1:jiminny-worker-processing-1_00: started\njiminny-worker-processing-2:jiminny-worker-processing-2_00: started\njiminny-worker-processing-3:jiminny-worker-processing-3_00: started\njiminny-worker-processing-4:jiminny-worker-processing-4_00: started\njiminny-worker-processing-5:jiminny-worker-processing-5_00: started\njiminny-worker-processing-delayed:jiminny-worker-processing-delayed_00: started\nworker:worker_00: started\nworker-analytics:worker-analytics_00: started\nworker-audio:worker-audio_00: started\nworker-calendar:worker-calendar_00: started\nworker-conferences:worker-conferences_00: started\nworker-crm-sync:worker-crm-sync_00: started\nworker-crm-update:worker-crm-update_00: started\nworker-download:worker-download_00: started\nworker-emails:worker-emails_00: started\nworker-es-update:worker-es-update_00: started\nworker-nudges:worker-nudges_00: started\n\nWhat's next:\n Try Docker Debug for seamless, persistent debugging tools in any container or image → docker debug docker_lamp_1\n Learn more at https://docs.docker.com/go/debug-cli/\ndocker exec -it docker_lamp_1 php -v\nPHP 8.3.30 (cli) (built: Mar 16 2026 22:32:32) (NTS)\nCopyright (c) The PHP Group\nZend Engine v4.3.30, Copyright (c) Zend Technologies\n with Zend OPcache v8.3.30, Copyright (c), by Zend Technologies\n\nWhat's next:\n Try Docker Debug for seamless, persistent debugging tools in any container or image → docker debug docker_lamp_1\n Learn more at https://docs.docker.com/go/debug-cli/\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20676-delete-report-related-objects) $ git status\nOn branch JY-20676-delete-report-related-objects\nChanges not staged for commit:\n (use \"git add <file>...\" to update what will be committed)\n (use \"git restore <file>...\" to discard changes in working directory)\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tmodified: .env.local\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tmodified: app/Console/Commands/JiminnyDebugCommand.php\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tmodified: config/logging.php\n\nUntracked files:\n (use \"git add <file>...\" to include in what will be committed)\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\t.env.nikilocal\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\t.env.other\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tWEBHOOK_FILTERING_IMPLEMENTATION.md\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tapp/Console/Commands/Crm/Hubspot/SimulateWebhooksCommand.php\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tapp/Console/Commands/Reports/CreateMockAskJiminnyReportResultCommand.php\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tids.txt\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\tpublic/favicon.ico\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\traw_sql_query.sql\n\u0000\u0000\u0000\u0000\u0000\u0000\u0000\ttests/Unit/Policies/CanAccessAiReportsTest.php\n\nno changes added to commit (use \"git add\" and/or \"git commit -a\")\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20676-delete-report-related-objects) $ git push -u origin JY-20676-delete-report-related-objects\nEnumerating objects: 45, done.\nCounting objects: 100% (45/45), done.\nDelta compression using up to 8 threads\nCompressing objects: 100% (24/24), done.\nWriting objects: 100% (24/24), 3.62 KiB | 3.62 MiB/s, done.\nTotal 24 (delta 19), reused 0 (delta 0), pack-reused 0\nremote: Resolving deltas: 100% (19/19), completed with 19 local objects.\nremote: \nremote: Create a pull request for 'JY-20676-delete-report-related-objects' on GitHub by visiting:\nremote: https://github.com/jiminny/app/pull/new/JY-20676-delete-report-related-objects\nremote: \nTo github.com:jiminny/app.git\n * [new branch] JY-20676-delete-report-related-objects -> JY-20676-delete-report-related-objects\nbranch 'JY-20676-delete-report-related-objects' set up to track 'origin/JY-20676-delete-report-related-objects'.\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20676-delete-report-related-objects) $ csfix\ndocker exec -it docker_lamp_1 ./vendor/bin/php-cs-fixer fix --config=.php-cs-fixer.dist.php -v --using-cache=no --diff \nPHP CS Fixer 3.87.1 Alexander by Fabien Potencier, Dariusz Ruminski and contributors.\nPHP runtime: 8.3.30\nRunning analysis on 7 cores with 10 files per process.\nParallel runner is an experimental feature and may be unstable, use it at your own risk. Feedback highly appreciated!\nLoaded config default from \".php-cs-fixer.dist.php\".\n 5690/5690 [▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓] 100%\n\n 1) app/Http/Controllers/API/V2/AskJiminnyReportsController.php (blank_line_before_statement)\n ---------- begin diff ----------\n--- /home/jiminny/app/Http/Controllers/API/V2/AskJiminnyReportsController.php\n+++ /home/jiminny/app/Http/Controllers/API/V2/AskJiminnyReportsController.php\n@@ -140,6 +140,7 @@\n if ($enabled && $report->isAskJiminnyReport() && ! $report->canExecute()) {\n $error = 'This report is missing a saved search or prompt. ' .\n 'Edit the report to complete the setup before enabling it.';\n+\n return new JsonResponse(\n ['error' => $error],\n Response::HTTP_UNPROCESSABLE_ENTITY\n\n ----------- end diff -----------\n\n\nFixed 1 of 5690 files in 71.757 seconds, 60.00 MB memory used\n\nWhat's next:\n Try Docker Debug for seamless, persistent debugging tools in any container or image → docker debug docker_lamp_1\n Learn more at https://docs.docker.com/go/debug-cli/\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20676-delete-report-related-objects) $ git pull\nremote: Enumerating objects: 158, done.\nremote: Counting objects: 100% (103/103), done.\nremote: Compressing objects: 100% (37/37), done.\nremote: Total 158 (delta 80), reused 74 (delta 66), pack-reused 55 (from 3)\nReceiving objects: 100% (158/158), 80.59 KiB | 982.00 KiB/s, done.\nResolving deltas: 100% (85/85), completed with 45 local objects.\nFrom github.com:jiminny/app\n 02a33811ee..c6ce5e2440 JY-20676-delete-report-related-objects -> origin/JY-20676-delete-report-related-objects\n 7ce96cb5fe..6c59f04358 JY-20808-low-priority-indexing-queue -> origin/JY-20808-low-priority-indexing-queue\n 3906a9238a..2b5e6ea62b JY-20835-mcp-enable-users-to-get-a-list-of-deals-and-their-details -> origin/JY-20835-mcp-enable-users-to-get-a-list-of-deals-and-their-details\n 5604af40cf..ea3519f0e2 master -> origin/master\n * [new branch] switch-eu-assembly -> origin/switch-eu-assembly\nUpdating 02a33811ee..c6ce5e2440\nFast-forward\n app/Component/ES/ElasticSearchDocumentPartialUpdater.php | 48 ---\n app/Component/ParticipantSpeech/Services/ParticipantAttributionService.php | 4 +-\n app/Component/Settings/AutoScoring/Services/UpdateAutoScoreService.php | 20 +-\n app/Component/Transcription/Service/StorageService.php | 8 +-\n front-end/package.json | 2 +-\n front-end/src/components/DealInsights/Modals/AskAnythingModal.vue | 23 ++\n front-end/src/components/shared/AskAnything/AskAnythingPromptFormItem.vue | 2 +\n front-end/src/components/shared/AskAnything/AskAnythingSettingsDrawer.vue | 23 +-\n front-end/src/components/shared/AskAnything/__mocks__/AskAnythingSettingsDrawer.mocks.js | 1 +\n front-end/src/components/shared/AskAnything/__tests__/AskAnythingSettingsDrawer.spec.js | 135 ++++---\n front-end/src/components/shared/AskAnything/__tests__/__snapshots__/AskAnythingSettingsDrawer.spec.js.html | 1235 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++\n front-end/src/components/shared/AskAnything/__tests__/__snapshots__/AskAnythingSettingsDrawer.spec.js.snap | 1382 ----------------------------------------------------------------\n front-end/src/components/shared/AskAnything/prompts.js | 1 +\n front-end/src/components/shared/AskAnything/useAskAnything.js | 1 +\n front-end/yarn.lock | 8 +-\n tests/Unit/Component/ES/ElasticSearchDocumentPartialUpdaterTest.php | 42 --\n tests/Unit/Component/Settings/AutoScoring/Services/UpdateAutoScoreServiceTest.php | 86 ++--\n tests/Unit/Component/Transcription/Service/StorageServiceTest.php | 29 +-\n 18 files changed, 1448 insertions(+), 1602 deletions(-)\n delete mode 100644 app/Component/ES/ElasticSearchDocumentPartialUpdater.php\n create mode 100644 front-end/src/components/shared/AskAnything/__tests__/__snapshots__/AskAnythingSettingsDrawer.spec.js.html\n delete mode 100644 front-end/src/components/shared/AskAnything/__tests__/__snapshots__/AskAnythingSettingsDrawer.spec.js.snap\n delete mode 100644 tests/Unit/Component/ES/ElasticSearchDocumentPartialUpdaterTest.php\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20676-delete-report-related-objects) $ csfix\ndocker exec -it docker_lamp_1 ./vendor/bin/php-cs-fixer fix --config=.php-cs-fixer.dist.php -v --using-cache=no --diff \nPHP CS Fixer 3.87.1 Alexander by Fabien Potencier, Dariusz Ruminski and contributors.\nPHP runtime: 8.3.30\nRunning analysis on 7 cores with 10 files per process.\nParallel runner is an experimental feature and may be unstable, use it at your own risk. Feedback highly appreciated!\nLoaded config default from \".php-cs-fixer.dist.php\".\n 5688/5688 [▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓] 100%\n\n\nFixed 0 of 5688 files in 79.904 seconds, 60.00 MB memory used\n\nWhat's next:\n Try Docker Debug for seamless, persistent debugging tools in any container or image → docker debug docker_lamp_1\n Learn more at https://docs.docker.com/go/debug-cli/\nlukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20676-delete-report-related-objects) $ csfix\ndocker exec -it docker_lamp_1 ./vendor/bin/php-cs-fixer fix --config=.php-cs-fixer.dist.php -v --using-cache=no --diff \nPHP CS Fixer 3.87.1 Alexander by Fabien Potencier, Dariusz Ruminski and contributors.\nPHP runtime: 8.3.30\nRunning analysis on 7 cores with 10 files per process.\nParallel runner is an experimental feature and may be unstable, use it at your own risk. Feedback highly appreciated!\nLoaded config default from \".php-cs-fixer.dist.php\".\n 0/5688 [░░░░░░░░░░░░░░░░░░░░░░░░░░░░] 0%","is_focused":true},{"role":"AXRadioButton","text":"DOCKER","depth":2,"bounds":{"left":0.0,"top":0.05888889,"width":0.19826388,"height":0.026666667},"on_screen":true,"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.004166667,"top":0.06333333,"width":0.011111111,"height":0.017777778},"on_screen":true,"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"DEV (docker)","depth":2,"bounds":{"left":0.19826388,"top":0.05888889,"width":0.19826388,"height":0.026666667},"on_screen":true,"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.20243056,"top":0.06333333,"width":0.011111111,"height":0.017777778},"on_screen":true,"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"APP (docker)","depth":2,"bounds":{"left":0.39652777,"top":0.05888889,"width":0.19791667,"height":0.026666667},"on_screen":true,"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.40069443,"top":0.06333333,"width":0.011111111,"height":0.017777778},"on_screen":true,"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"screenpipe\"","depth":2,"bounds":{"left":0.59444445,"top":0.05888889,"width":0.19791667,"height":0.026666667},"on_screen":true,"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.5986111,"top":0.06333333,"width":0.011111111,"height":0.017777778},"on_screen":true,"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXRadioButton","text":"-zsh","depth":2,"bounds":{"left":0.79236114,"top":0.05888889,"width":0.19791667,"height":0.026666667},"on_screen":true,"role_description":"radio button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXButton","text":"Close Tab","depth":3,"bounds":{"left":0.7965278,"top":0.06333333,"width":0.011111111,"height":0.017777778},"on_screen":true,"role_description":"button","is_enabled":false,"is_focused":false,"is_selected":false,"is_expanded":false},{"role":"AXStaticText","text":"⌥⌘1","depth":1,"bounds":{"left":0.9618056,"top":0.032222223,"width":0.038194418,"height":0.018888889},"on_screen":true,"automation_id":"_NS:8","role_description":"text"},{"role":"AXStaticText","text":"APP (docker)","depth":1,"bounds":{"left":0.4722222,"top":0.033333335,"width":0.0625,"height":0.017777778},"on_screen":true,"role_description":"text"}]...
|
2802650493718167367
|
-1358120912881272742
|
idle
|
accessibility
|
NULL
|
Last login: Mon May 18 09:17:28 on ttys007
Poetry Last login: Mon May 18 09:17:28 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 (pipedrive-sdk-poc) $ co master
error: Your local changes to the following files would be overwritten by checkout:
PIPEDRIVE_V2_MIGRATION_TICKETS.md
Please commit your changes or stash them before you switch branches.
Aborting
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (pipedrive-sdk-poc) $ git pull
remote: Enumerating objects: 1047, done.
remote: Counting objects: 100% (832/832), done.
remote: Compressing objects: 100% (298/298), done.
remote: Total 1047 (delta 634), reused 596 (delta 534), pack-reused 215 (from 3)
Receiving objects: 100% (1047/1047), 353.16 KiB | 1.56 MiB/s, done.
Resolving deltas: 100% (687/687), completed with 107 local objects.
From github.com:jiminny/app
907c54896c..34656c53ed pipedrive-sdk-poc -> origin/pipedrive-sdk-poc
03325ec50f..4e7078fd8b JY-18091-upgrade-to-php-8-5 -> origin/JY-18091-upgrade-to-php-8-5
e7d231e163..bc6a3fce6b JY-20725-handle-HS-search-rate-limit -> origin/JY-20725-handle-HS-search-rate-limit
* [new branch] JY-20749-user-can-view-recorded-meetings -> origin/JY-20749-user-can-view-recorded-meetings
98ca281a04..e0351be069 JY-20808-low-priority-indexing-queue -> origin/JY-20808-low-priority-indexing-queue
569abb5149..3906a9238a JY-20835-mcp-enable-users-to-get-a-list-of-deals-and-their-details -> origin/JY-20835-mcp-enable-users-to-get-a-list-of-deals-and-their-details
ad6c2a86e8..50eb6afba9 JY-20846-mcp-enable-the-ai-to-know-details-about-the-user -> origin/JY-20846-mcp-enable-the-ai-to-know-details-about-the-user
* [new branch] JY-20893-chunk-control-per-update-target -> origin/JY-20893-chunk-control-per-update-target
31c62924a5..cb4ebf0c36 master -> origin/master
Updating 907c54896c..34656c53ed
Fast-forward
PIPEDRIVE_V2_MIGRATION_TICKETS.md | 52 ++++++++++++++++++++++++++++++++++++++++++++++++++++
1 file changed, 52 insertions(+)
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (pipedrive-sdk-poc) $ co master
M .env.local
M config/logging.php
Switched to branch 'master'
Your branch is behind 'origin/master' by 31 commits, and can be fast-forwarded.
(use "git pull" to update your local branch)
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (master) $ git pull
Updating 31c62924a5..cb4ebf0c36
Fast-forward
app/Component/ES/Processor/Traits/SelectEntityListTrait.php | 20 ------
app/Services/Calendar/CalendarActivityService.php | 46 +++++++++++++
app/Services/Calendar/Command/MapActivityData.php | 106 +++-------------------------
docs/mcp/explorer/explorer.html | 104 +++++++++++++++++++++++++---
docs/mcp/explorer/explorer.template.html | 102 ++++++++++++++++++++++++---
docs/mcp/tools-list.json | 373 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++-------
docs/mcp/tools.md | 117 +++++++++++++++++++++++--------
tests/Unit/Component/ES/AsyncUpdateElasticSearchTest.php | 16 +----
tests/Unit/Component/ES/Listeners/UpdateMultipleTargetsListenerTest.php | 10 ---
tests/Unit/Component/ES/Listeners/UpdateSingleTargetListenerTest.php | 6 --
tests/Unit/Component/ES/Processor/TargetEntitiesSelectorTest.php | 9 ---
tests/Unit/Component/ES/Processor/Traits/SelectEntityListTraitTest.php | 15 ++--
tests/Unit/Component/ES/UpdateProcessManagerTest.php | 2 -
tests/Unit/Services/Calendar/CalendarActivityServiceTest.php | 150 ++++++++++++++++++++++++++++++++++++++--
tests/Unit/Services/Calendar/Command/MapActivityDataTest.php | 78 ++-------------------
15 files changed, 832 insertions(+), 322 deletions(-)
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (master) $ co -b JY-20613-allow-owner-role-on-team-setup
Switched to a new branch 'JY-20613-allow-owner-role-on-team-setup'
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20613-allow-owner-role-on-team-setup) $ csfix
docker exec -it docker_lamp_1 ./vendor/bin/php-cs-fixer fix --config=.php-cs-fixer.dist.php -v --using-cache=no --diff
PHP CS Fixer 3.87.1 Alexander by Fabien Potencier, Dariusz Ruminski and contributors.
PHP runtime: 8.3.30
Running 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!
Loaded config default from ".php-cs-fixer.dist.php".
5682/5682 [▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓] 100%
Fixed 0 of 5682 files in 56.978 seconds, 67.00 MB memory used
What's next:
Try Docker Debug for seamless, persistent debugging tools in any container or image → docker debug docker_lamp_1
Learn more at [URL_WITH_CREDENTIALS] ~/jiminny/app (JY-20613-allow-owner-role-on-team-setup) $ csfix
docker exec -it docker_lamp_1 ./vendor/bin/php-cs-fixer fix --config=.php-cs-fixer.dist.php -v --using-cache=no --diff
PHP CS Fixer 3.87.1 Alexander by Fabien Potencier, Dariusz Ruminski and contributors.
PHP runtime: 8.3.30
Running 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!
Loaded config default from ".php-cs-fixer.dist.php".
5682/5682 [▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓] 100%
Fixed 0 of 5682 files in 49.910 seconds, 60.00 MB memory used
What's next:
Try Docker Debug for seamless, persistent debugging tools in any container or image → docker debug docker_lamp_1
Learn more at [URL_WITH_CREDENTIALS] ~/jiminny/app (JY-20613-allow-owner-role-on-team-setup) $ git pull
remote: Enumerating objects: 248, done.
remote: Counting objects: 100% (128/128), done.
remote: Compressing objects: 100% (23/23), done.
remote: Total 59 (delta 43), reused 44 (delta 33), pack-reused 0 (from 0)
Unpacking objects: 100% (59/59), 10.48 KiB | 228.00 KiB/s, done.
From github.com:jiminny/app
b7df560451..190239dfd4 JY-20613-allow-owner-role-on-team-setup -> origin/JY-20613-allow-owner-role-on-team-setup
e0351be069..d94a285ae7 JY-20808-low-priority-indexing-queue -> origin/JY-20808-low-priority-indexing-queue
* [new branch] JY-20920-fix-participant-matcher -> origin/JY-20920-fix-participant-matcher
cb4ebf0c36..90bca4e4b2 master -> origin/master
Merge made by the 'ort' strategy.
app/Component/ES/ChunkSize.php | 54 +++++++++++++++++++++++++++
app/Component/ES/Processor/DTOs/SelectionList.php | 4 +-
app/Component/ES/Processor/TargetEntitiesSelector.php | 19 ++++++----
app/Http/Middleware/McpTierMiddleware.php | 27 +++-----------
app/Mcp/Servers/JiminnyServer.php | 2 +
app/Mcp/Tools/GetMeTool.php | 157 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
app/Models/Feature/FeatureEnum.php | 1 +
database/migrations/2026_05_13_124153_create_mcp_feature_flag.php | 25 +++++++++++++
front-end/src/components/Settings/Kiosk/modals/EditTeamModal/EditTeamModal.vue | 52 ++++++++++++++++++--------
front-end/src/components/Settings/Kiosk/modals/EditTeamModal/__tests__/EditTeamModal.spec.js | 14 +++++++
tests/Feature/Mcp/GetMeToolFeatureTest.php | 140 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
tests/Feature/Mcp/ListCallsToolFeatureTest.php | 2 +-
tests/Feature/Mcp/McpTestHelpersTrait.php | 19 +++++++++-
tests/Unit/Component/ES/ChunkSizeTest.php | 50 +++++++++++++++++++++++++
tests/Unit/Component/ES/Processor/DTOs/SelectionListTest.php | 27 ++++++++++----
tests/Unit/Component/ES/Processor/TargetEntitiesSelectorTest.php | 39 +++++++++++---------
16 files changed, 557 insertions(+), 75 deletions(-)
create mode 100644 app/Component/ES/ChunkSize.php
create mode 100644 app/Mcp/Tools/GetMeTool.php
create mode 100644 database/migrations/2026_05_13_124153_create_mcp_feature_flag.php
create mode 100644 tests/Feature/Mcp/GetMeToolFeatureTest.php
create mode 100644 tests/Unit/Component/ES/ChunkSizeTest.php
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20613-allow-owner-role-on-team-setup) $ git push
Enumerating objects: 40, done.
Counting objects: 100% (34/34), done.
Delta compression using up to 8 threads
Compressing objects: 100% (18/18), done.
Writing objects: 100% (18/18), 1.58 KiB | 1.58 MiB/s, done.
Total 18 (delta 15), reused 0 (delta 0), pack-reused 0
remote: Resolving deltas: 100% (15/15), completed with 13 local objects.
To github.com:jiminny/app.git
190239dfd4..ec1b261264 JY-20613-allow-owner-role-on-team-setup -> JY-20613-allow-owner-role-on-team-setup
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20613-allow-owner-role-on-team-setup) $ gbr
* JY-20613-allow-owner-role-on-team-setup
pipedrive-sdk-poc
master
JY-20903-update_activity-stage-on-opportunity-change
JY-20904-fix-update-es-on-activity-command
JY-20891-improve-sms-text-relays
JY-20725-handle-HS-search-rate-limit
JY-20818-move-AJ-reports-to-separated-datadog-metric
JY-20773-fix-automated-reports-user-pilot-tracking
JY-20157-AJ-report-not-send-notification
JY-20508-notify-before-AJ-report-expiration
JY-20372-ai-reports-promotion-pages
JY-20352-sync-opportunities-without-a-local-owner-user-id-is-null
JY-20738-debug-AJ-tracking-UP
a
JY-18909-automated-reports-ask-jiminny
JY-20692-fix-integration-app-[API_KEY]
JY-20553-debug-crm-sync-delays
JY-20698-fix-SF-activity-types-on-new-playbook
JY-20543-AJ-report-tracking
JY-20384-handle-auto-sync-with-no-access-to-event-type
JY-20458-ask-jiminny-user-definitions
JY-19666-fix-import-contacts-account-association
JY-19666-HS-import-contacts-and-accounts-batch-job
JY-20458-Ask-Jiminny-Reports
JY-20200-batch-update-CRM-objects-Salesforce
JY-19666-HS-webhooks-add-contact-and-company
JY-20348-trigger-setup-DI-layout-on-team-creation
JY-20326-refactor-info-message-in-command
JY-20317-fix-auto-log-delay-issue-on-all-channels-disabled
JY-20312-remove-on-update-change-last-synced-at-crm-configurations
JY-20306-SF-skip-auto-sync-for-task-based-playbook
JY-20192-remove-deleted-team-from-saved-search-filters
JY-20197-import-opportunity-batch-job
JY-20293-enable-status-field-for-pipedrive-deals
JY-20191-remove-commands-interactive-prompts
JY-20118-change-default-sync-strategy
JY-20183-add-cache-on-auto-log-delay
JY-20197-add-import-opportunity-batch-job
20118-hs-opportunity-make-webhook-strategy-default
JY-20118-make-default-hs-opportunity-sync-strategy-webhook-based
JY-20196-handle-opportunity-without-note
JY-20118-improve-opportunity-import
JY-20189-handle-activity-search-on-deleted-groups
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20613-allow-owner-role-on-team-setup) $ co JY-20725-handle-HS-search-rate-limit
M .env.local
M config/logging.php
Switched to branch 'JY-20725-handle-HS-search-rate-limit'
Your branch is behind 'origin/JY-20725-handle-HS-search-rate-limit' by 439 commits, and can be fast-forwarded.
(use "git pull" to update your local branch)
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20725-handle-HS-search-rate-limit) $ git pull
Updating 0f3e438941..bc6a3fce6b
Fast-forward
.gitignore | 3 +-
.windsurfrules | 168 ++---
CLAUDE.md | 1 +
app/Component/ActivityAnalytics/Service/CalculateTalkTimeOffsetsFromTranscription.php | 24 +-
app/Component/AiActivityType/Services/AiActivityTypeEligibilityChecker.php | 28 +-
app/Component/AiAutomation/Actions/PrepareUpdateDtoAction.php | 32 +-
app/Component/AiAutomation/Services/CrmFillingEligibilityChecker.php | 47 ++
app/Component/AiAutomation/TestCrmAiPromptService.php | 14 +
app/Component/AiCallScoring/Services/AiCallScoringEligibilityChecker.php | 9 +
app/Component/ES/ElasticSearchDocumentPartialUpdater.php | 13 +-
app/Component/ES/ElasticSearchWorkerManager.php | 86 ---
app/Component/ES/Processor/Actions/LoadDocumentsAction.php | 80 +--
app/Component/ES/Processor/EntityQueryBuilder.php | 12 +-
app/Component/ES/Processor/TargetEntitiesSelector.php | 2 +-
app/Component/ES/Processor/Traits/SkipActivityTrait.php | 25 -
app/Component/ES/Repositories/EsResetActivityRepository.php | 11 +-
app/Component/ES/Worker/ActivityWorker.php | 73 --
app/Component/ES/Worker/EntityWorker.php | 44 --
app/Component/ES/Worker/WorkerAmount.php | 60 --
app/Component/ES/Worker/WorkerInterface.php | 15 -
app/Component/ElasticSearch/Contract/Searchable.php | 4 +
app/Component/Encoding/Job/AnalyzeTrackChannelsJob.php | 20 +-
app/Component/Encoding/Service/GenerateSpeechFromSilenceService.php | 85 ++-
app/Component/FFMpeg/Services/GetSpeechIntervalsService.php | 18 +-
app/Component/LanguageDetection/Services/FindSpeechTimeService.php | 22 +-
app/Component/Nudge/Job/ProcessOrganisationImmediateNudgesJob.php | 218 +++++-
app/Component/ParagraphBreaker/Services/TranscriptionParagraphsService.php | 4 +
app/Component/ParticipantSpeech/Services/ParticipantSpeechesCreator.php | 33 +
app/Component/ParticipantSpeech/Services/ParticipantSpeechesDeleter.php | 15 +
app/Component/ParticipantSpeech/Services/ParticipantSpeechesProvider.php | 51 +-
app/Component/ParticipantSpeech/Services/ParticipantSpeechesUploader.php | 36 +
app/Component/ProphetAi/Exceptions/InsufficientTranscriptException.php | 11 +
app/Component/Transcription/DTO/Http/Transcription/AssemblyAI/AssemblyAI/NoAssemblyIdException.php | 11 +
app/Component/Transcription/DTO/Http/Transcription/AssemblyAI/AssemblyAI/SuccessfulResponse.php | 6 +
app/Component/Transcription/DTO/Http/Transcription/TranscriptionIsNotCorrectFormatException.php | 11 +
app/Component/Transcription/Diarization/Services/GetNormalizedParticipantSpeechesService.php | 23 +-
app/Component/Transcription/Diarization/Source/MeetingBotSource.php | 16 +-
app/Component/Transcription/TranscriptionProcessor/TranscriptionProcessor.php | 3 +
app/Console/Commands/Activities/ActivityHardDeleteCommand.php | 4 +-
app/Console/Commands/Activities/Copy.php | 2 +
app/Console/Commands/Activities/SetupIntegration/TwilioSetS3RecordingCredentialsCommand.php | 119 ++++
app/Console/Commands/Activities/UpdateActivityElasticSearchDocumentCommand.php | 10 +-
app/Console/Commands/Crm/BackfillOpportunityUserFromAccountCommand.php | 126 ++++
app/Console/Commands/Elasticsearch/AsyncUpdateEsActivities.php | 19 -
app/Console/Commands/Elasticsearch/AsyncUpdateEsEntities.php | 50 +-
app/Console/Commands/Elasticsearch/ResetAsyncElasticSearchCommand.php | 30 +-
app/Console/Commands/GeckoExport/GeckoExportParticipantSpeechesCommand.php | 14 +-
app/Console/Commands/IssueMcpTokenCommand.php | 84 +++
app/Console/Commands/JiminnyDebugCommand.php | 7 +-
app/Console/Commands/Tracks/CleanupActivityTracksCommand.php | 2 +-
app/Console/Kernel.php | 6 +-
app/Contracts/Services/Calendar/CalendarTrait.php | 80 ++-
app/Events/AutomatedReports/AutomatedReportGenerated.php | 3 +
app/Http/Controllers/API/AiCallScoring/AiScorecardController.php | 7 +-
app/Http/Controllers/API/TeamAiAutomationController.php | 8 +
app/Http/Controllers/CustomerApi/CustomerApiController.php | 4 +-
app/Http/Controllers/Kiosk/ActivityController.php | 58 +-
app/Http/Controllers/Settings/PlaybookController.php | 15 +-
app/Http/Kernel.php | 23 +
app/Http/Middleware/McpAuditMiddleware.php | 156 ++++
app/Http/Middleware/McpTierMiddleware.php | 54 ++
app/Http/Requests/API/V2/ZapierUploadActivityRequest.php | 28 +-
app/Jobs/Activity/Import/ImportTwilioVideoSpeechesJob.php | 25 +-
app/Jobs/Activity/Import/IsActivityReadyForProcessingJob.php | 10 +-
app/Jobs/Calendar/SetupCalendarSync.php | 21 +-
app/Jobs/ImportRemoteTrackJob.php | 96 ++-
app/Jobs/Mailbox/EmailTextRelay.php | 15 +-
app/Mcp/Contracts/McpCallRepositoryInterface.php | 30 +
app/Mcp/DTO/ListCallsFilters.php | 29 +
app/Mcp/Errors/McpError.php | 123 ++++
app/Mcp/Repositories/McpActivityHydrator.php | 145 ++++
app/Mcp/Repositories/McpCallRepository.php | 84 +++
app/Mcp/Repositories/McpElasticCallRepository.php | 171 +++++
app/Mcp/Servers/JiminnyServer.php | 38 +
app/Mcp/Tools/ListCallsTool.php | 205 ++++++
app/Models/Activity.php | 10 +-
app/Models/Activity/Transcription.php | 17 +-
app/Models/ElasticSearch/OpportunityElasticSearchTrait.php | 5 +
app/Models/Participant.php | 1 +
app/Providers/AppServiceProvider.php | 22 +
app/Repositories/Crm/ContactRepository.php | 69 +-
app/Repositories/ParticipantSpeechRepository.php | 13 +-
app/Services/Activity/ParticipantsService.php | 19 +-
app/Services/Activity/Twilio/S3RecordingCredentialsService.php | 82 +++
app/Services/ActivityService.php | 21 +-
app/Services/Calendar/CalendarActivityService.php | 46 ++
app/Services/Calendar/Command/ImportParticipants.php | 1 +
app/Services/Calendar/Command/MapActivityData.php | 106 +--
app/Services/Calendar/GoogleCalendarService.php | 12 +-
app/Services/Crm/Close/Processor/OpportunityProcessor.php | 2 +-
app/Services/Crm/Close/Service.php | 22 +-
app/Services/Crm/Copper/Service.php | 12 +-
app/Services/Crm/Hubspot/Service.php | 154 +++-
app/Services/Crm/Hubspot/ServiceTraits/OpportunitySyncTrait.php | 88 ++-
app/Services/Crm/IntegrationApp/ServiceTraits/SyncCrmEntitiesTrait.php | 22 +-
app/Services/Crm/Pipedrive/Service.php | 17 +-
app/Services/Crm/Salesforce/Service.php | 42 +-
app/Services/Mail/Office/EmailApiClient.php | 129 +---
app/Services/RecallAI/Commands/ScheduleBotCommand.php | 39 +-
app/Services/RecallAI/RecallAIService.php | 22 +-
composer.json | 3 +-
composer.lock | 87 ++-
config/mcp.php | 23 +
database/migrations/2026_04_30_120000_create_mcp_audit_log_table.php | 36 +
docs/mcp/explorer/explorer.html | 697 ++++++++++++++++++
docs/mcp/explorer/explorer.template.html | 697 ++++++++++++++++++
docs/mcp/explorer/generate.js | 215 ++++++
docs/mcp/explorer/tool-explorer-meta.json | 11 +
docs/mcp/tools-list.json | 2536 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
docs/mcp/tools.md | 621 ++++++++++++++++
front-end/package.json | 4 +-
front-end/src/components/Settings/OrgSettings/AiAutomation/CrmFilling/TemplateFieldForm.vue | 28 +-
front-end/src/components/Settings/OrgSettings/Playbooks/AddEditPlaybook.vue | 10 +
front-end/src/components/playback/comments/ActivityComment.less | 10 +-
front-end/src/components/shared/PromptTester/PromptTester.vue | 12 +-
front-end/src/components/shared/__tests__/PromptTester.spec.js | 35 +
front-end/src/components/shared/modals/EntityPickerModal/__tests__/useEntitiesCache.spec.ts | 37 +
front-end/src/components/shared/modals/EntityPickerModal/useEntitiesCache.ts | 9 +
front-end/yarn.lock | 16 +-
phpstan-baseline.neon | 50 --
routes/api.php | 11 +
sonar-project.properties | 91 ++-
tests/Feature/Component/Nudge/ProcessOrganisationImmediateNudgesJobTest.php | 534 ++++++++++++++
tests/Feature/Jobs/ImportRemoteTrackJobTest.php | 283 +++++++-
tests/Feature/Mcp/IssueMcpTokenCommandTest.php | 53 ++
tests/Feature/Mcp/ListCallsToolElasticFeatureTest.php | 155 ++++
tests/Feature/Mcp/ListCallsToolFeatureTest.php | 352 ++++++++++
tests/Feature/Mcp/McpTestHelpersTrait.php | 77 ++
tests/Feature/Services/Team/TeamDeleteHandlers/Retention/RetentionRepositoryHandlerTest.php | 1 +
tests/Stubs/SentryStub.php | 18 +
tests/Unit/Component/ActivityAnalytics/Service/CalculateTalkTimeOffsetFromTranscriptionTest.php | 28 +-
tests/Unit/Component/AiActivityType/Services/AiActivityTypeEligibilityCheckerTest.php | 103 ++-
tests/Unit/Component/AiAutomation/Actions/PrepareUpdateDtoActionTest.php | 91 +++
tests/Unit/Component/AiAutomation/Services/CrmFillingEligibilityCheckerTest.php | 124 ++++
tests/Unit/Component/AiAutomation/TestCrmAiPromptServiceTest.php | 67 +-
tests/Unit/Component/AiCallScoring/Services/AiCallScoringEligibilityCheckerTest.php | 55 ++
tests/Unit/Component/ES/ElasticSearchWorkerManagerTest.php | 135 ----
tests/Unit/Component/ES/Processor/Actions/LoadDocumentsActionTest.php | 220 ++++++
tests/Unit/Component/ES/Processor/EntityQueryBuilderTest.php | 21 +-
tests/Unit/Component/ES/Processor/Traits/SkipActivityTraitTest.php | 51 --
tests/Unit/Component/ES/Worker/ActivityWorkerTest.php | 174 -----
tests/Unit/Component/ES/Worker/EntityWorkerTest.php | 97 ---
tests/Unit/Component/ES/Worker/WorkerAmountTest.php | 116 ---
tests/Unit/Component/Encoding/Job/AnalyzeTrackChannelsJobTest.php | 52 +-
tests/Unit/Component/Encoding/Service/GenerateSpeechFromSilenceServiceTest.php | 171 ++---
tests/Unit/Component/FFMpeg/Services/GetSpeechIntervalsTest.php | 36 +-
tests/Unit/Component/LanguageDetection/Services/FindSpeechTimeServiceTest.php | 20 +-
tests/Unit/Component/MobileSettings/MobileSettingsControllerTest.php | 5 +-
tests/Unit/Component/ParticipantSpeech/Services/ParticipantSpeechesCreatorTest.php | 75 ++
tests/Unit/Component/ParticipantSpeech/Services/ParticipantSpeechesDeleterTest.php | 63 ++
tests/Unit/Component/ParticipantSpeech/Services/ParticipantSpeechesProviderTest.php | 134 ++++
tests/Unit/Component/ParticipantSpeech/Services/ParticipantSpeechesUploaderTest.php | 57 ++
tests/Unit/Component/Transcription/Diarization/Services/GetNormalizedParticipantSpeechesServiceTest.php | 51 +-
tests/Unit/Component/Transcription/Diarization/Source/MeetingBotSourceTest.php | 29 +-
tests/Unit/Contracts/Services/Calendar/CalendarTraitTest.php | 58 +-
tests/Unit/Http/Controllers/Kiosk/ActivityControllerTest.php | 159 +++++
tests/Unit/Jobs/Activity/Import/ImportTwilioVideoSpeechesJobTest.php | 22 +-
tests/Unit/Jobs/Activity/Import/IsActivityReadyForProcessingJobTest.php | 26 +-
tests/Unit/Jobs/Calendar/SetupCalendarSyncTest.php | 25 -
tests/Unit/Services/Activity/ParticipantsServiceTest.php | 12 +-
tests/Unit/Services/Activity/Twilio/S3RecordingCredentialsServiceTest.php | 180 +++++
tests/Unit/Services/ActivityServiceTest.php | 132 ++++
tests/Unit/Services/Calendar/CalendarActivityServiceTest.php | 150 +++-
tests/Unit/Services/Calendar/Command/ImportParticipantsTest.php | 6 +-
tests/Unit/Services/Calendar/Command/MapActivityDataTest.php | 78 +-
tests/Unit/Services/Calendar/GoogleCalendarServiceTest.php | 116 +++
tests/Unit/Services/Crm/Close/ServiceTest.php | 165 +++++
tests/Unit/Services/Crm/Hubspot/ServiceTest.php | 272 ++++++-
tests/Unit/Services/Crm/Hubspot/ServiceTraits/OpportunitySyncTest.php | 25 +-
tests/Unit/Services/Crm/Hubspot/ServiceTraits/OpportunitySyncTraitMatchActivitiesTest.php | 3 +-
tests/Unit/Services/Crm/IntegrationApp/ServiceTraits/SyncCrmEntitiesTraitOpportunitiesTest.php | 40 ++
tests/Unit/Services/Crm/Pipedrive/ImportOpportunityMatchActivitiesTest.php | 2 +
tests/Unit/Services/Crm/Salesforce/ServiceTest.php | 139 ++++
tests/Unit/Services/Mail/Office/EmailApiClientTest.php | 195 ++---
tests/Unit/Services/RecallAI/RecallAIServiceTest.php | 24 +-
175 files changed, 12562 insertions(+), 2162 deletions(-)
create mode 120000 CLAUDE.md
create mode 100644 app/Component/AiAutomation/Services/CrmFillingEligibilityChecker.php
delete mode 100644 app/Component/ES/ElasticSearchWorkerManager.php
delete mode 100644 app/Component/ES/Processor/Traits/SkipActivityTrait.php
delete mode 100644 app/Component/ES/Worker/ActivityWorker.php
delete mode 100644 app/Component/ES/Worker/EntityWorker.php
delete mode 100644 app/Component/ES/Worker/WorkerAmount.php
delete mode 100644 app/Component/ES/Worker/WorkerInterface.php
create mode 100644 app/Component/ProphetAi/Exceptions/InsufficientTranscriptException.php
create mode 100644 app/Component/Transcription/DTO/Http/Transcription/AssemblyAI/AssemblyAI/NoAssemblyIdException.php
create mode 100644 app/Component/Transcription/DTO/Http/Transcription/TranscriptionIsNotCorrectFormatException.php
create mode 100644 app/Console/Commands/Activities/SetupIntegration/TwilioSetS3RecordingCredentialsCommand.php
create mode 100644 app/Console/Commands/Crm/BackfillOpportunityUserFromAccountCommand.php
delete mode 100644 app/Console/Commands/Elasticsearch/AsyncUpdateEsActivities.php
create mode 100644 app/Console/Commands/IssueMcpTokenCommand.php
create mode 100644 app/Http/Middleware/McpAuditMiddleware.php
create mode 100644 app/Http/Middleware/McpTierMiddleware.php
create mode 100644 app/Mcp/Contracts/McpCallRepositoryInterface.php
create mode 100644 app/Mcp/DTO/ListCallsFilters.php
create mode 100644 app/Mcp/Errors/McpError.php
create mode 100644 app/Mcp/Repositories/McpActivityHydrator.php
create mode 100644 app/Mcp/Repositories/McpCallRepository.php
create mode 100644 app/Mcp/Repositories/McpElasticCallRepository.php
create mode 100644 app/Mcp/Servers/JiminnyServer.php
create mode 100644 app/Mcp/Tools/ListCallsTool.php
create mode 100644 app/Services/Activity/Twilio/S3RecordingCredentialsService.php
create mode 100644 config/mcp.php
create mode 100644 database/migrations/2026_04_30_120000_create_mcp_audit_log_table.php
create mode 100644 docs/mcp/explorer/explorer.html
create mode 100644 docs/mcp/explorer/explorer.template.html
create mode 100644 docs/mcp/explorer/generate.js
create mode 100644 docs/mcp/explorer/tool-explorer-meta.json
create mode 100644 docs/mcp/tools-list.json
create mode 100644 docs/mcp/tools.md
create mode 100644 front-end/src/components/shared/modals/EntityPickerModal/__tests__/useEntitiesCache.spec.ts
create mode 100644 tests/Feature/Component/Nudge/ProcessOrganisationImmediateNudgesJobTest.php
create mode 100644 tests/Feature/Mcp/IssueMcpTokenCommandTest.php
create mode 100644 tests/Feature/Mcp/ListCallsToolElasticFeatureTest.php
create mode 100644 tests/Feature/Mcp/ListCallsToolFeatureTest.php
create mode 100644 tests/Feature/Mcp/McpTestHelpersTrait.php
create mode 100644 tests/Stubs/SentryStub.php
create mode 100644 tests/Unit/Component/AiAutomation/Services/CrmFillingEligibilityCheckerTest.php
delete mode 100644 tests/Unit/Component/ES/ElasticSearchWorkerManagerTest.php
create mode 100644 tests/Unit/Component/ES/Processor/Actions/LoadDocumentsActionTest.php
delete mode 100644 tests/Unit/Component/ES/Processor/Traits/SkipActivityTraitTest.php
delete mode 100644 tests/Unit/Component/ES/Worker/ActivityWorkerTest.php
delete mode 100644 tests/Unit/Component/ES/Worker/EntityWorkerTest.php
delete mode 100644 tests/Unit/Component/ES/Worker/WorkerAmountTest.php
create mode 100644 tests/Unit/Component/ParticipantSpeech/Services/ParticipantSpeechesCreatorTest.php
create mode 100644 tests/Unit/Http/Controllers/Kiosk/ActivityControllerTest.php
create mode 100644 tests/Unit/Services/Activity/Twilio/S3RecordingCredentialsServiceTest.php
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20725-handle-HS-search-rate-limit) $ git status
On branch master
Your branch is behind 'origin/master' by 114 commits, and can be fast-forwarded.
(use "git pull" to update your local branch)
Changes not staged for commit:
(use "git add <file>..." to update what will be committed)
(use "git restore <file>..." to discard changes in working directory)
modified: .env.local
modified: app/Component/SCIM/Constants.php
modified: app/Component/SCIM/ScimProvisioning.php
modified: app/Component/Twilio/Conference/ConferenceManager/SoftPhoneManager.php
modified: app/Console/Commands/JiminnyDebugCommand.php
modified: app/DTO/SCIM/AAD/Request/CoreUserRequest.php
modified: app/DTO/SCIM/AAD/Response/CoreUser.php
modified: app/Services/Telephony/TextMessagingService.php
modified: config/logging.php
Untracked files:
(use "git add <file>..." to include in what will be committed)
.env.nikilocal
.env.other
WEBHOOK_FILTERING_IMPLEMENTATION.md
app/Component/SCIM/Mutators/Attributes/User/RoleAttr.php
app/Console/Commands/Crm/Hubspot/SimulateWebhooksCommand.php
app/Console/Commands/Reports/CreateMockAskJiminnyReportResultCommand.php
app/Rules/ListenerRoleCannotHaveAdminOrManagerPermissionRule.php
ids.txt
public/favicon.ico
raw_sql_query.sql
tests/Unit/Component/SCIM/Mutators/Attributes/User/RoleAttrTest.php
tests/Unit/Policies/CanAccessAiReportsTest.php
tests/Unit/Rules/ListenerRoleCannotHaveAdminOrManagerPermissionRuleTest.php
no changes added to commit (use "git add" and/or "git commit -a")
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (master) $ git pull
remote: Enumerating objects: 306, done.
remote: Counting objects: 100% (299/299), done.
remote: Compressing objects: 100% (183/183), done.
remote: Total 306 (delta 213), reused 171 (delta 116), pack-reused 7 (from 1)
Receiving objects: 100% (306/306), 80.12 KiB | 1000.00 KiB/s, done.
Resolving deltas: 100% (213/213), completed with 53 local objects.
From github.com:jiminny/app
90bca4e4b2..5604af40cf master -> origin/master
4e7078fd8b..0b8343d179 JY-18091-upgrade-to-php-8-5 -> origin/JY-18091-upgrade-to-php-8-5
098eeaa087..d5a447e492 JY-20613-allow-owner-role-on-team-setup -> origin/JY-20613-allow-owner-role-on-team-setup
c3a76ace91..af65249d0f JY-20749-user-can-view-recorded-meetings -> origin/JY-20749-user-can-view-recorded-meetings
d94a285ae7..7ce96cb5fe JY-20808-low-priority-indexing-queue -> origin/JY-20808-low-priority-indexing-queue
* [new branch] JY-20842-remove-partial-updater -> origin/JY-20842-remove-partial-updater
* [new branch] JY-20920-fix-participant-flip -> origin/JY-20920-fix-participant-flip
* [new branch] secfix/npm-20260519 -> origin/secfix/npm-20260519
Updating cb4ebf0c36..5604af40cf
Fast-forward
app/Component/ES/ChunkSize.php | 54 +++++++++++++++++++
app/Component/ES/Processor/DTOs/SelectionList.php | 4 +-
app/Component/ES/Processor/TargetEntitiesSelector.php | 19 ++++---
app/Component/MeetingBot/Service/ParticipantMatcher.php | 46 ++++++++++++----
app/Exceptions/RateLimitException.php | 19 ++++++-
app/Http/Middleware/McpTierMiddleware.php | 27 ++--------
app/Jobs/Crm/MatchActivityCrmData.php | 47 ++++++++++++----
app/Jobs/Middleware/HandleHubspotRateLimit.php | 42 +++++++++++++++
app/Mcp/Servers/JiminnyServer.php | 2 +
app/Mcp/Tools/GetMeTool.php | 157 +++++++++++++++++++++++++++++++++++++++++++++++++++++
app/Models/Feature/FeatureEnum.php | 1 +
app/Services/Activity/HubSpot/ProviderResolver.php | 4 +-
app/Services/Activity/HubSpot/ProviderResolverInterface.php | 2 +-
app/Services/Activity/HubSpot/Providers/Provider.php | 2 +-
app/Services/Activity/HubSpot/Providers/ProviderKixie.php | 2 +-
app/Services/Activity/HubSpot/Providers/ProviderOrum.php | 2 +-
app/Services/Activity/HubSpot/Providers/ProviderTwilio.php | 2 +-
app/Services/Activity/HubSpot/Providers/ProviderTwilioFlex.php | 5 +-
app/Services/Activity/HubSpot/Service.php | 97 +++++++++++++++++++++++++++------
app/Services/Crm/Hubspot/Client.php | 132 +++++++++++++++++++++++++++++++++++++++++++++
app/Services/Crm/Hubspot/HubspotClientInterface.php | 15 ++++++
app/Services/Crm/Hubspot/Pagination/HubspotPaginationService.php | 21 ++++----
app/Services/Crm/Hubspot/Pagination/PaginationState.php | 2 +-
database/migrations/2026_05_13_124153_create_mcp_feature_flag.php | 25 +++++++++
tests/Feature/Mcp/GetMeToolFeatureTest.php | 140 +++++++++++++++++++++++++++++++++++++++++++++++
tests/Feature/Mcp/ListCallsToolFeatureTest.php | 2 +-
tests/Feature/Mcp/McpTestHelpersTrait.php | 19 ++++++-
tests/Unit/Component/ES/ChunkSizeTest.php | 50 +++++++++++++++++
tests/Unit/Component/ES/Processor/DTOs/SelectionListTest.php | 27 +++++++---
tests/Unit/Component/ES/Processor/TargetEntitiesSelectorTest.php | 39 ++++++++------
tests/Unit/Component/MeetingBot/Service/ParticipantMatcherTest.php | 68 ++++++++++++++++++++++-
tests/Unit/Exceptions/RateLimitExceptionTest.php | 56 +++++++++++++++++++
tests/Unit/Jobs/Crm/MatchActivityCrmDataTest.php | 8 +--
tests/Unit/Jobs/Middleware/HandleHubspotRateLimitTest.php | 151 +++++++++++++++++++++++++++++++++++++++++++++++++++
tests/Unit/Services/Activity/HubSpot/ServiceTest.php | 109 +++++++++++++++++++++++++++++++++++++
tests/Unit/Services/Crm/Hubspot/ClientTest.php | 250 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
tests/Unit/Services/Crm/Hubspot/Pagination/HubspotPaginationServiceTest.php | 283 +++++++++++++++++++++---------------------------------------------------------------------------
37 files changed, 1587 insertions(+), 344 deletions(-)
create mode 100644 app/Component/ES/ChunkSize.php
create mode 100644 app/Jobs/Middleware/HandleHubspotRateLimit.php
create mode 100644 app/Mcp/Tools/GetMeTool.php
create mode 100644 database/migrations/2026_05_13_124153_create_mcp_feature_flag.php
create mode 100644 tests/Feature/Mcp/GetMeToolFeatureTest.php
create mode 100644 tests/Unit/Component/ES/ChunkSizeTest.php
create mode 100644 tests/Unit/Exceptions/RateLimitExceptionTest.php
create mode 100644 tests/Unit/Jobs/Middleware/HandleHubspotRateLimitTest.php
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (master) $ git pull
Already up to date.
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (master) $ co -b JY-20676-delete-report-related-objects
Switched to a new branch 'JY-20676-delete-report-related-objects'
lukas@Lukas-Kovaliks-MacBook-Pro-Jiminny ~/jiminny/app (JY-20676-delete-report-related-objects) $ csfix
docker exec -it docker_lamp_1 ./vendor/bin/php-cs-fixer fix --config=.php-cs-fixer.dist.php -v --using-cache=no --diff
PHP CS Fixer 3.87.1 Alexander by Fabien Potencier, Dariusz Ruminski and contributors.
PHP runtime: 8.3.30
Running 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!
Loaded config default from ".php-cs-fixer.dist.php".
5690/5690 [▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓] 100%
1) app/Console/Commands/JiminnyDebugCommand.php (statement_indentation, blank_line_before_statement)
---------- begin diff ----------
--- /home/jiminny/app/Console/Commands/JiminnyDebugCommand.php
+++ /home/jiminny/app/Console/Commands/JiminnyDebugCommand.php
@@ -23,6 +23,7 @@
if ($action === 'redis-set') {
$this->testRedisSet();
+
return;
}
@@ -45,7 +46,7 @@
$ttl = 60;
try {
-// $result = Redis::set($testKey, $testValue, 'EX', $ttl, 'NX');
+ // $result = Redis::set($testKey, $testValue, 'EX', $ttl, 'NX');
$result = Redis::set($testKey, $testValue, ['nx', 'ex' => $ttl]);
if ($result) {
----------- end diff -----------
Fixed 1 of 5690 files i...
|
58093
|
NULL
|
NULL
|
NULL
|