<workflowRun _class='org.jenkinsci.plugins.workflow.job.WorkflowRun'><action _class='hudson.model.CauseAction'><cause _class='com.cloudbees.jenkins.GitHubPushCause'><shortDescription>Started by GitHub push by younex1</shortDescription></cause></action><action></action><action _class='org.jenkinsci.plugins.workflow.libs.LibrariesAction'></action><action></action><action></action><action _class='hudson.plugins.git.util.BuildData'><buildsByBranchName><refsremotesoriginmain _class='hudson.plugins.git.util.Build'><buildNumber>5</buildNumber><marked><SHA1>9d957078b237f5dd9f22e2d14badac3ff8e33bd6</SHA1><branch><SHA1>9d957078b237f5dd9f22e2d14badac3ff8e33bd6</SHA1><name>refs/remotes/origin/main</name></branch></marked><revision><SHA1>9d957078b237f5dd9f22e2d14badac3ff8e33bd6</SHA1><branch><SHA1>9d957078b237f5dd9f22e2d14badac3ff8e33bd6</SHA1><name>refs/remotes/origin/main</name></branch></revision></refsremotesoriginmain></buildsByBranchName><lastBuiltRevision><SHA1>9d957078b237f5dd9f22e2d14badac3ff8e33bd6</SHA1><branch><SHA1>9d957078b237f5dd9f22e2d14badac3ff8e33bd6</SHA1><name>refs/remotes/origin/main</name></branch></lastBuiltRevision><remoteUrl>https://github.com/younex1/blut24-landing.git</remoteUrl><scmName></scmName></action><action></action><action _class='org.jenkinsci.plugins.workflow.cps.EnvActionImpl'></action><action></action><action></action><action _class='org.jenkinsci.plugins.displayurlapi.actions.RunDisplayAction'></action><action _class='org.jenkinsci.plugins.pipeline.modeldefinition.actions.RestartDeclarativePipelineAction'></action><action></action><action _class='org.jenkinsci.plugins.workflow.job.views.FlowGraphAction'></action><action></action><action></action><action></action><building>false</building><displayName>#5 9d95707</displayName><duration>26645</duration><estimatedDuration>28038</estimatedDuration><fullDisplayName>blut24-landing #5 9d95707</fullDisplayName><id>5</id><keepLog>false</keepLog><number>5</number><queueId>5449</queueId><result>SUCCESS</result><timestamp>1785227610682</timestamp><url>https://jenkins.younex.de/job/blut24-landing/5/</url><changeSet _class='hudson.plugins.git.GitChangeSetList'><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>deploy/README.md</affectedPath><affectedPath>app/app.vue</affectedPath><affectedPath>app/components/SectionHero.vue</affectedPath><affectedPath>server/api/registration/submit.post.ts</affectedPath><affectedPath>app/components/SiteFooter.vue</affectedPath><affectedPath>app/components/SiteHeader.vue</affectedPath><affectedPath>app/components/SectionRegistration.vue</affectedPath><affectedPath>app/pages/datenschutz.vue</affectedPath><affectedPath>README.md</affectedPath><affectedPath>app/components/SectionCourier.vue</affectedPath><affectedPath>.idea/vcs.xml</affectedPath><affectedPath>app/components/SectionApp.vue</affectedPath><affectedPath>app/components/RegistrationDialog.vue</affectedPath><affectedPath>server/utils/registrationValidation.ts</affectedPath><affectedPath>scripts/test-registration.mjs</affectedPath><affectedPath>app/composables/useRegistrationDialog.ts</affectedPath><affectedPath>server/utils/registrationDb.ts</affectedPath><affectedPath>app/components/AndroidBadge.vue</affectedPath><affectedPath>app/components/AppIcon.vue</affectedPath><affectedPath>app/components/RegistrationForm.vue</affectedPath><affectedPath>deploy/nginx-blut24.conf</affectedPath><affectedPath>app/components/SectionProof.vue</affectedPath><commitId>9d957078b237f5dd9f22e2d14badac3ff8e33bd6</commitId><timestamp>1785227601000</timestamp><author><absoluteUrl>https://jenkins.younex.de/user/info</absoluteUrl><fullName>info</fullName></author><authorEmail>info@logyou.de</authorEmail><comment>landing: modal registration, value-led proof band, autocomplete fix, APK live

- Registration moved into a native &lt;dialog&gt; modal driven from every CTA, with
  focus trap/return, scroll lock, backdrop + ESC dismissal, full-screen sheet on
  mobile and prefers-reduced-motion respected.
- Replaced the data-source stats ("Quelle: Bundes-Klinik-Atlas", 293, 906) with
  three statements of what the product actually does. No invented metrics: the
  only figure left is the real 1.581 Klinik-Atlas count that was already there.
- Fixed the autocomplete staying open after a clinic was picked. Root cause was
  watch(query): selecting wrote the label back into the field, which the watcher
  read as a new search and reopened the list ~220ms later. The input is now
  :value + @input so a programmatic write cannot be a search intent, with a
  pendingQuery flag gating every path that opens the list.
- Removed Anrede end-to-end. The DB column is deliberately NOT migrated: it keeps
  its NOT NULL DEFAULT '' so inserts that omit it stay valid on existing databases.
- Android badge switched live: the APK is published at
  https://blut24.com/downloads/blut24-mobile.apk and served from disk by nginx
  with the correct package MIME type.

Co-Authored-By: Claude Fable 5 &lt;noreply@anthropic.com&gt;
</comment><date>2026-07-28 10:33:21 +0200</date><id>9d957078b237f5dd9f22e2d14badac3ff8e33bd6</id><msg>landing: modal registration, value-led proof band, autocomplete fix, APK live</msg><path><editType>edit</editType><file>app/components/AppIcon.vue</file></path><path><editType>edit</editType><file>app/components/SectionHero.vue</file></path><path><editType>edit</editType><file>app/components/SiteFooter.vue</file></path><path><editType>edit</editType><file>app/components/SiteHeader.vue</file></path><path><editType>edit</editType><file>server/utils/registrationValidation.ts</file></path><path><editType>edit</editType><file>app/app.vue</file></path><path><editType>edit</editType><file>app/components/SectionCourier.vue</file></path><path><editType>edit</editType><file>scripts/test-registration.mjs</file></path><path><editType>edit</editType><file>deploy/README.md</file></path><path><editType>edit</editType><file>app/components/RegistrationForm.vue</file></path><path><editType>add</editType><file>.idea/vcs.xml</file></path><path><editType>edit</editType><file>app/components/SectionProof.vue</file></path><path><editType>add</editType><file>app/components/RegistrationDialog.vue</file></path><path><editType>edit</editType><file>README.md</file></path><path><editType>edit</editType><file>app/components/SectionApp.vue</file></path><path><editType>edit</editType><file>app/pages/datenschutz.vue</file></path><path><editType>edit</editType><file>deploy/nginx-blut24.conf</file></path><path><editType>add</editType><file>app/composables/useRegistrationDialog.ts</file></path><path><editType>edit</editType><file>server/api/registration/submit.post.ts</file></path><path><editType>edit</editType><file>app/components/SectionRegistration.vue</file></path><path><editType>edit</editType><file>server/utils/registrationDb.ts</file></path><path><editType>edit</editType><file>app/components/AndroidBadge.vue</file></path></item><kind>git</kind></changeSet><culprit><absoluteUrl>https://jenkins.younex.de/user/info</absoluteUrl><fullName>info</fullName></culprit><inProgress>false</inProgress><nextBuild><number>6</number><url>https://jenkins.younex.de/job/blut24-landing/6/</url></nextBuild><previousBuild><number>4</number><url>https://jenkins.younex.de/job/blut24-landing/4/</url></previousBuild></workflowRun>