{
    "object_kind": "push",
    "event_name": "push",
    "before": "62a0b77839ed91c951d87928abea80fbd9392292",
    "after": "8f0b310893bae4123141c86462669d2da9545754",
    "ref": "refs\/heads\/main",
    "ref_protected": true,
    "checkout_sha": "8f0b310893bae4123141c86462669d2da9545754",
    "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": "8f0b310893bae4123141c86462669d2da9545754",
            "message": "Implement catalog-based CRM fields and integrate field catalog into call views (D-094)\n\n- **CRM Field Management**: Added `FieldCatalogItem` to represent product fields in a catalog and integrated it into lead and call models.\n- **Frontend Enhancements**:\n  - Live Call: Display all CRM fields and categorized missing mandatory fields with phase-based grouping.\n  - Wrap-up: Supported catalog-based additions for field corrections.\n  - Design System: Introduced `LmCard`, `LmCardGrid`, and `LmFilterChips` components.\n- **Backend Improvements**: Enhanced error handling and logging for field catalog integration in snapshots and APIs.\n- **Tests**:\n  - Added unit and widget tests for field catalog logic: completeness tracking, inferred confidence prioritization, and phase grouping.\n  - New integration tests for handling media streaming errors and improved call flow resilience.\n- **Visual Tests**: Captured screenshots for work queue, lead details, live call, wrap-up, and call history views.\n- Consolidated multiple client-server workflows for CRM field synchronization and improved backend exception clarity.\n",
            "title": "Implement catalog-based CRM fields and integrate field catalog into call views (D-094)",
            "timestamp": "2026-10-09T08:04:03+02:00",
            "url": "http:\/\/git.dunahousedev.hu\/leadmachine\/leadmachine\/-\/commit\/8f0b310893bae4123141c86462669d2da9545754",
            "author": {
                "name": "Bohunka Zsolt",
                "email": "bohunka.zsolt@dh.hu"
            },
            "added": [
                "backend\/app\/Domain\/Telephony\/ProviderError.php",
                "backend\/tests\/Feature\/ProviderErrorTest.php",
                "frontend\/lib\/core\/design\/lm_card.dart",
                "frontend\/lib\/core\/widgets\/crm_fields.dart",
                "frontend\/lib\/features\/lead_detail\/crm_fields_card.dart",
                "frontend\/test\/lead_detail_fields_test.dart",
                "frontend\/test\/live_crm_fields_test.dart",
                "frontend\/test\/screenshots\/screens_test.dart"
            ],
            "modified": [
                "CLAUDE.md",
                "backend\/app\/Domain\/Telephony\/FakeTelephonyProvider.php",
                "backend\/app\/Domain\/Telephony\/Providers\/TelnyxTelephonyProvider.php",
                "backend\/app\/Domain\/Telephony\/TelephonyProvider.php",
                "backend\/app\/Http\/Presenters\/AppPresenter.php",
                "backend\/app\/Services\/Call\/AppCallService.php",
                "backend\/app\/Services\/Call\/CallMediaStarter.php",
                "backend\/tests\/Feature\/AppCallFlowTest.php",
                "backend\/tests\/Feature\/InboundAppCallTest.php",
                "backend\/tests\/Feature\/LeadFieldsTest.php",
                "docs\/DECISIONS.md",
                "docs\/DEV_GUIDELINES.md",
                "docs\/SPEC.md",
                "frontend\/README.md",
                "frontend\/lib\/core\/api\/models\/call_models.dart",
                "frontend\/lib\/core\/api\/models\/lead_models.dart",
                "frontend\/lib\/core\/design\/design.dart",
                "frontend\/lib\/core\/design\/lm_adaptive_shell.dart",
                "frontend\/lib\/core\/design\/lm_button.dart",
                "frontend\/lib\/core\/design\/lm_call_controls.dart",
                "frontend\/lib\/core\/design\/lm_grouped_list.dart",
                "frontend\/lib\/core\/design\/lm_incoming_call.dart",
                "frontend\/lib\/core\/design\/lm_layout.dart",
                "frontend\/lib\/core\/design\/lm_navigation.dart",
                "frontend\/lib\/core\/design\/lm_sidebar.dart",
                "frontend\/lib\/core\/design\/lm_status_chip.dart",
                "frontend\/lib\/core\/design\/lm_transcript_bubble.dart",
                "frontend\/lib\/core\/phone\/soft_phone.dart",
                "frontend\/lib\/core\/phone\/soft_phone_controller.dart",
                "frontend\/lib\/core\/phone\/soft_phone_stub.dart",
                "frontend\/lib\/core\/phone\/soft_phone_web.dart",
                "frontend\/lib\/core\/theme\/app_theme.dart",
                "frontend\/lib\/core\/theme\/tokens.dart",
                "frontend\/lib\/core\/widgets\/app_shell.dart",
                "frontend\/lib\/core\/widgets\/confidence_chip.dart",
                "frontend\/lib\/features\/call_history\/call_detail_screen.dart",
                "frontend\/lib\/features\/call_history\/call_history_screen.dart",
                "frontend\/lib\/features\/lead_detail\/lead_detail_screen.dart",
                "frontend\/lib\/features\/live_call\/live_call_screen.dart",
                "frontend\/lib\/features\/live_call\/transcript_view.dart",
                "frontend\/lib\/features\/notifications\/notifications_screen.dart",
                "frontend\/lib\/features\/work_queue\/work_queue_screen.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\/call_flow_test.dart",
                "frontend\/test\/design_system_test.dart",
                "frontend\/test\/eligibility_rows_test.dart",
                "frontend\/test\/live_assist_test.dart",
                "frontend\/test\/soft_phone_test.dart",
                "frontend\/test\/support\/fake_soft_phone.dart",
                "frontend\/test\/support\/test_app.dart",
                "frontend\/test\/transcript_test.dart",
                "frontend\/test\/work_queue_test.dart",
                "frontend\/test\/wrap_up_test.dart",
                "frontend\/web\/lm_phone.js",
                "media-gateway\/.gitignore",
                "media-gateway\/eslint.config.js",
                "media-gateway\/package.json",
                "openapi\/app-api.yaml"
            ],
            "removed": []
        }
    ],
    "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",
        "   62a0b77..8f0b310  main       -> origin\/main",
        "HEAD is now at 8f0b310 Implement catalog-based CRM fields and integrate field catalog into call views (D-094)",
        "--OK--"
    ]
}