feat: UpdateAgent Selbstaktualisierung & kopflose Installation, .NET 10 Migration, Backend- & SDK-Fixes

- .NET 10 Migration: Alle .NET-Projekte auf net10.0 umgestellt (#459)
- Client-SDK: ResolveAgentPath bereinigt und DLL-Pruefung ergaenzt (#458)
- Packager: Commit-Ermittlung aus publishDir / Assembly InformationalVersion (#456)
- BuildInfo.targets: ExitCode-Abfang und Regex-Validierung gegen Git-Fehlertexte (#363)
- UpdateService: Re-Publish erhaelt bestehende Manifeste und Werte (#457)
- Bugtracker API: on_roadmap-Filter in manage?action=list durchgereicht (#349)
- Watchdog API: project_slug-Filter in GET /status ergaenzt (#420)
- UpdateService API: no_release_for_platform mit verfuegbaren Plattformen (#421)
- Bugtracker Core: Fehler-Normalisierung gegen zersplitterte error_hashes (#419)
- UpdateAgent: Kopfloser Installationsmodus via --answers (#89)
- Installer & Agent: Automatische Selbstaktualisierung beim Start
- Tooling: AGENTS.md, CLAUDE.md und Standalone-CLI scripts/dc.py hinzugefuegt
This commit is contained in:
Deploymentcenter Bot
2026-09-02 23:43:37 +02:00
parent 8447b2d10a
commit 087f4392a9
26 changed files with 1582 additions and 67 deletions
+18 -6
View File
@@ -88,13 +88,25 @@ switch ($action) {
Http::fail(400, 'missing_product', 'Der Parameter "product" wird benoetigt.');
}
$release = $manager->latestRelease(
$product,
Http::str('channel') ?? 'prod',
Http::str('platform') ?? Http::str('rid')
);
$platform = Http::str('platform') ?? Http::str('rid');
$channel = Http::str('channel') ?? 'prod';
$release = $manager->latestRelease($product, $channel, $platform);
if ($release === null) {
Http::fail(404, 'no_release', sprintf('Fuer "%s" ist kein Release hinterlegt.', $product));
$available = $manager->getAvailablePlatforms($product, $channel);
if (!empty($available)) {
Http::fail(404, 'no_release_for_platform', sprintf(
'Fuer "%s" (%s) ist kein Release fuer die Plattform "%s" hinterlegt. Verfuegbare Plattformen: %s.',
$product,
$channel,
$platform ?? 'any',
implode(', ', $available)
), null, [
'requested_platform' => $platform ?? 'any',
'available_platforms' => $available,
]);
}
Http::fail(404, 'no_release', sprintf('Fuer "%s" (%s) ist kein Release hinterlegt.', $product, $channel));
}
Http::ok(['release' => $release]);