{
    "object_kind": "push",
    "event_name": "push",
    "before": "59c96fadf6d79fb3063582a6f861fce313fefc8b",
    "after": "55e681135696b2999c7a9205d5ace58bdc147eb1",
    "ref": "refs\/heads\/main",
    "ref_protected": true,
    "checkout_sha": "55e681135696b2999c7a9205d5ace58bdc147eb1",
    "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": "527d117199076263f80751be1e6fd1eb32ff98b1",
            "message": "Add market-specific recognition vocabulary (D-108) to support STT customization.\n\n- **Backend**:\n  - Extended `BatchTranscriber` interfaces and implementations (Deepgram, Speechmatics) to include a market recognition vocabulary parameter.\n  - Updated `CallMediaStarter` to attach the vocabulary to calls via Redis.\n  - Enabled vocabulary validation in `MarketValidator` to prevent launch with invalid terms.\n  - Added vocabulary-saving API endpoint for admins (`PUT \/admin\/rules\/vocabulary`).\n\n- **Frontend**:\n  - Enhanced the **Texts** card in **Market Rules** to allow vocabulary management (addition, deletion, draft preview).\n\n- **Testing**:\n  - Verified vocabulary integration with calls, including multichannel configurations, redis fallback, and error logging.\n  - Ensured valid and invalid vocabulary cases are handled in the admin API and market processing.\n\n- **Documentation**:\n  - Updated API docs (`API.md`, `openapi\/app-api.yaml`) to reflect new endpoints and usage.\n  - Added decision details (D-108) to `SPEC.md` and `DECISIONS.md`.\n",
            "title": "Add market-specific recognition vocabulary (D-108) to support STT customization.",
            "timestamp": "2026-10-10T23:17:10+02:00",
            "url": "http:\/\/git.dunahousedev.hu\/leadmachine\/leadmachine\/-\/commit\/527d117199076263f80751be1e6fd1eb32ff98b1",
            "author": {
                "name": "Bohunka Zsolt",
                "email": "bohunka.zsolt@dh.hu"
            },
            "added": [
                "backend\/app\/Domain\/Stt\/SttVocabulary.php",
                "media-gateway\/src\/redis\/callVocabulary.test.ts",
                "media-gateway\/src\/redis\/callVocabulary.ts"
            ],
            "modified": [
                "CLAUDE.md",
                "backend\/app\/Domain\/Market\/MarketValidator.php",
                "backend\/app\/Domain\/Stt\/BatchTranscriber.php",
                "backend\/app\/Domain\/Stt\/DeepgramBatchTranscriber.php",
                "backend\/app\/Domain\/Stt\/SpeechmaticsBatchTranscriber.php",
                "backend\/app\/Http\/Controllers\/Admin\/AdminRulesController.php",
                "backend\/app\/Http\/Presenters\/AdminChangePresenter.php",
                "backend\/app\/Lab\/LabCallService.php",
                "backend\/app\/Lab\/PromptLabService.php",
                "backend\/app\/Services\/Call\/AppCallService.php",
                "backend\/app\/Services\/Call\/CallMediaStarter.php",
                "backend\/routes\/app.php",
                "backend\/tests\/Feature\/AdminTest.php",
                "backend\/tests\/Feature\/AppCallFlowTest.php",
                "backend\/tests\/Feature\/CallLabTest.php",
                "backend\/tests\/Feature\/PromptLabTest.php",
                "config\/markets\/HU.yaml",
                "config\/markets\/IT.yaml",
                "config\/markets\/README.md",
                "docs\/AI_PIPELINE.md",
                "docs\/API.md",
                "docs\/DECISIONS.md",
                "docs\/SPEC.md",
                "frontend\/lib\/core\/design\/lm_month_day.dart",
                "frontend\/lib\/features\/admin\/admin_api.dart",
                "frontend\/lib\/features\/admin\/admin_rule_forms.dart",
                "frontend\/lib\/features\/admin\/admin_rules_screen.dart",
                "frontend\/lib\/l10n\/app_en.arb",
                "frontend\/lib\/l10n\/app_hu.arb",
                "frontend\/lib\/l10n\/app_it.arb",
                "frontend\/test\/admin_test.dart",
                "frontend\/test\/screenshots\/screens_test.dart",
                "frontend\/test\/support\/fake_admin_api.dart",
                "media-gateway\/src\/index.ts",
                "media-gateway\/src\/stt\/SpeechmaticsSttProvider.test.ts",
                "media-gateway\/src\/stt\/SpeechmaticsSttProvider.ts",
                "media-gateway\/src\/stt\/SttProvider.ts",
                "openapi\/app-api.yaml"
            ],
            "removed": []
        },
        {
            "id": "55e681135696b2999c7a9205d5ace58bdc147eb1",
            "message": "Merge branch 'main' of git.dunahousedev.hu:leadmachine\/leadmachine\n",
            "title": "Merge branch 'main' of git.dunahousedev.hu:leadmachine\/leadmachine",
            "timestamp": "2026-10-10T23:17:17+02:00",
            "url": "http:\/\/git.dunahousedev.hu\/leadmachine\/leadmachine\/-\/commit\/55e681135696b2999c7a9205d5ace58bdc147eb1",
            "author": {
                "name": "Bohunka Zsolt",
                "email": "bohunka.zsolt@dh.hu"
            },
            "added": [],
            "modified": [
                ".gitlab-ci.yml"
            ],
            "removed": []
        }
    ],
    "total_commits_count": 2,
    "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",
        "   59c96fa..55e6811  main       -> origin\/main",
        "HEAD is now at 55e6811 Merge branch 'main' of git.dunahousedev.hu:leadmachine\/leadmachine",
        "--OK--"
    ]
}