{
    "object_kind": "push",
    "event_name": "push",
    "before": "d578c4195795411b6a3b23f51b4bc52fb754fdbd",
    "after": "3eeb41f579fcd60b4f865b731eb287c5fdc53598",
    "ref": "refs\/heads\/main",
    "ref_protected": true,
    "checkout_sha": "3eeb41f579fcd60b4f865b731eb287c5fdc53598",
    "message": null,
    "user_id": 19,
    "user_name": "Bohunka Zsolt",
    "user_username": "bohunkazsolt",
    "user_email": "[REDACTED]",
    "user_avatar": "https:\/\/www.gravatar.com\/avatar\/495e14a024c9ddd64b339a3ee5bcce2be2e8468e23180b4ee001574938728865?s=80&d=identicon",
    "project_id": 206,
    "project": {
        "id": 206,
        "name": "leadmachine",
        "description": null,
        "web_url": "http:\/\/git.dunahousedev.hu\/leadmachine\/leadmachine",
        "avatar_url": null,
        "git_ssh_url": "git@git.dunahousedev.hu:leadmachine\/leadmachine.git",
        "git_http_url": "http:\/\/git.dunahousedev.hu\/leadmachine\/leadmachine.git",
        "namespace": "LeadMachine",
        "visibility_level": 0,
        "path_with_namespace": "leadmachine\/leadmachine",
        "default_branch": "main",
        "ci_config_path": "",
        "homepage": "http:\/\/git.dunahousedev.hu\/leadmachine\/leadmachine",
        "url": "git@git.dunahousedev.hu:leadmachine\/leadmachine.git",
        "ssh_url": "git@git.dunahousedev.hu:leadmachine\/leadmachine.git",
        "http_url": "http:\/\/git.dunahousedev.hu\/leadmachine\/leadmachine.git"
    },
    "commits": [
        {
            "id": "3eeb41f579fcd60b4f865b731eb287c5fdc53598",
            "message": "Add support for admin UI language selection and client-aborted call handling (D-116, D-118).\n\n- **Backend**:\n  - Added `locale` to `admin_users` for independent language preferences, defaulting to market language if unset.\n  - Introduced `LocaleController`, UI locale logic in `AdminSessionGate`, and migration for storing admin locales.\n  - Enhanced call analysis and flow logic to handle client-aborted outcomes (`client_aborted`) during pre-connection.\n  - Adjusted delay for conversationless calls to ensure immediate analysis.\n\n- **Frontend**:\n  - Added language menu component (`language-menu.blade.php`) for admin UI with market-based hints.\n  - Extended `call_models.dart` to include `endReason` for tracking call outcomes.\n\n- **Testing**:\n  - Improved test coverage for locale selection, language fallback, and new call flow behavior.\n\n- **Docs**:\n  - Updated inline comments and documentation to reflect language switching and client-aborted call handling changes.\n",
            "title": "Add support for admin UI language selection and client-aborted call handling (D-116, D-118).",
            "timestamp": "2026-10-11T23:09:21+02:00",
            "url": "http:\/\/git.dunahousedev.hu\/leadmachine\/leadmachine\/-\/commit\/3eeb41f579fcd60b4f865b731eb287c5fdc53598",
            "author": {
                "name": "Bohunka Zsolt",
                "email": "bohunka.zsolt@dh.hu"
            },
            "added": [
                "backend\/app\/Http\/Controllers\/AdminWeb\/LocaleController.php",
                "backend\/app\/Http\/Controllers\/AdminWeb\/StatisticsExportController.php",
                "backend\/app\/Livewire\/Admin\/Statistics\/CallStatisticsPage.php",
                "backend\/app\/Services\/Admin\/CallStatistics.php",
                "backend\/database\/migrations\/2026_10_11_000700_add_end_reason_to_calls.php",
                "backend\/database\/migrations\/2026_10_11_000700_add_locale_to_admin_users.php",
                "backend\/lang\/en\/admin_statistics.php",
                "backend\/lang\/hu\/admin_statistics.php",
                "backend\/lang\/it\/admin_statistics.php",
                "backend\/resources\/admin-assets\/admin.js",
                "backend\/resources\/views\/admin\/statistics.blade.php",
                "backend\/resources\/views\/components\/admin\/date-range.blade.php",
                "backend\/resources\/views\/components\/admin\/language-menu.blade.php",
                "backend\/resources\/views\/livewire\/admin\/statistics\/call-statistics-page.blade.php",
                "backend\/tests\/Feature\/AdminWebLocaleTest.php",
                "backend\/tests\/Feature\/AdminWebStatisticsTest.php"
            ],
            "modified": [
                "CLAUDE.md",
                "backend\/app\/Domain\/Analysis\/LiveCallAnalyzer.php",
                "backend\/app\/Domain\/Analysis\/PostCallDecisionInput.php",
                "backend\/app\/Domain\/Analysis\/PostCallSummarizer.php",
                "backend\/app\/Domain\/Decision\/DecisionInput.php",
                "backend\/app\/Domain\/Lead\/LeadUpsertService.php",
                "backend\/app\/Domain\/Llm\/OpenAiCompatibleLlmProvider.php",
                "backend\/app\/Domain\/Llm\/UnconfiguredLlmProvider.php",
                "backend\/app\/Domain\/Scheduling\/ContactPolicySummary.php",
                "backend\/app\/Http\/Controllers\/AdminWeb\/AssetController.php",
                "backend\/app\/Http\/Controllers\/AdminWeb\/MarketSwitchController.php",
                "backend\/app\/Http\/Middleware\/Admin\/UseAdminLoginLocale.php",
                "backend\/app\/Http\/Presenters\/AppPresenter.php",
                "backend\/app\/Models\/AdminUser.php",
                "backend\/app\/Models\/Call.php",
                "backend\/app\/Providers\/AppServiceProvider.php",
                "backend\/app\/Services\/Admin\/AdminNavigation.php",
                "backend\/app\/Services\/Admin\/AdminSessionGate.php",
                "backend\/app\/Services\/Call\/AppCallService.php",
                "backend\/app\/Services\/Call\/CallAnalysisService.php",
                "backend\/app\/Services\/Call\/CallConfirmationService.php",
                "backend\/config\/admin.php",
                "backend\/config\/logging.php",
                "backend\/lang\/en\/admin.php",
                "backend\/lang\/hu\/admin.php",
                "backend\/lang\/it\/admin.php",
                "backend\/resources\/admin-assets\/admin.css",
                "backend\/resources\/views\/components\/admin\/account-menu.blade.php",
                "backend\/resources\/views\/components\/admin\/head.blade.php",
                "backend\/resources\/views\/components\/admin\/icon.blade.php",
                "backend\/resources\/views\/components\/admin\/layout.blade.php",
                "backend\/resources\/views\/components\/admin\/sidebar.blade.php",
                "backend\/routes\/admin.php",
                "backend\/tests\/Feature\/AdminWebAssetsTest.php",
                "backend\/tests\/Feature\/AppCallFlowTest.php",
                "backend\/tests\/Feature\/ContactPolicyApiTest.php",
                "backend\/tests\/Feature\/CrmLeadPushTest.php",
                "backend\/tests\/Feature\/OpenAiCompatibleLlmProviderTest.php",
                "docs\/DATA_MODEL.md",
                "docs\/DECISIONS.md",
                "docs\/SPEC.md",
                "frontend\/lib\/core\/api\/models\/call_models.dart",
                "frontend\/lib\/core\/api\/models\/contact_policy.dart",
                "frontend\/lib\/core\/l10n\/labels.dart",
                "frontend\/lib\/features\/call_history\/call_detail_screen.dart",
                "frontend\/lib\/features\/call_history\/call_history_screen.dart",
                "frontend\/lib\/features\/call_history\/call_snapshot_detail.dart",
                "frontend\/lib\/features\/lead_detail\/lead_detail_screen.dart",
                "frontend\/lib\/features\/notifications\/notification_lead_panel.dart",
                "frontend\/lib\/features\/notifications\/notifications_providers.dart",
                "frontend\/lib\/features\/wrap_up\/wrap_up_screen.dart",
                "frontend\/lib\/l10n\/app_en.arb",
                "frontend\/lib\/l10n\/app_hu.arb",
                "frontend\/lib\/l10n\/app_it.arb",
                "frontend\/test\/contact_policy_test.dart",
                "frontend\/test\/notifications_test.dart",
                "frontend\/test\/wrap_up_test.dart",
                "openapi\/app-api.yaml"
            ],
            "removed": [
                "backend\/tests\/Feature\/AdminServicesDelegationTest.php"
            ]
        }
    ],
    "total_commits_count": 1,
    "push_options": [],
    "repository": {
        "name": "leadmachine",
        "url": "git@git.dunahousedev.hu:leadmachine\/leadmachine.git",
        "description": null,
        "homepage": "http:\/\/git.dunahousedev.hu\/leadmachine\/leadmachine",
        "git_http_url": "http:\/\/git.dunahousedev.hu\/leadmachine\/leadmachine.git",
        "git_ssh_url": "git@git.dunahousedev.hu:leadmachine\/leadmachine.git",
        "visibility_level": 0
    },
    "output": [
        "\/etc\/apache2\/sites-available\/bohunkazsolt.leadmachine.dunahousedev.hu.conf exists.",
        "\/etc\/apache2\/sites-available\/leadmachine.dunahousedev.hu.conf exists.",
        "Saving debug log to \/var\/log\/letsencrypt\/letsencrypt.log",
        "An unexpected error occurred:",
        "BrokenPipeError: [Errno 32] Broken pipe",
        "Ask for help or search for solutions at https:\/\/community.letsencrypt.org. See the logfile \/var\/log\/letsencrypt\/letsencrypt.log or re-run Certbot with -v for more details.",
        "Saving debug log to \/var\/log\/letsencrypt\/letsencrypt.log",
        "An unexpected error occurred:",
        "BrokenPipeError: [Errno 32] Broken pipe",
        "Ask for help or search for solutions at https:\/\/community.letsencrypt.org. See the logfile \/var\/log\/letsencrypt\/letsencrypt.log or re-run Certbot with -v for more details.",
        "Fetching origin",
        "From git.dunahousedev.hu:leadmachine\/leadmachine",
        "   d578c41..3eeb41f  main       -> origin\/main",
        "HEAD is now at 3eeb41f Add support for admin UI language selection and client-aborted call handling (D-116, D-118).",
        "--OK--"
    ]
}