Fix : require Crypto.php pour la route manifest + accepter id v8hex pour releasenotes
Deux bugs introduits par v0.27.x dans api/index.php : 1. La route /api/manifest ne require pas lib/Crypto.php → erreur 500 « Class PSLauncher\Crypto not found » dès qu'on tente la re-signature du manifest filtré (depuis v0.27.0). Conséquence : le client voit tout cassé, pas seulement les versions filtrées. 2. La regex de route /api/releasenotes/X.Y.Z n'accepte que les versions au format SemVer. Avec v0.27.1, les release notes sont addressables par id stable (v + 8 hex chars), donc le manifest pointe vers /api/releasenotes/va3f2c891 qui matchait pas la regex → 404. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -41,12 +41,16 @@ $route = trim((string)($_GET['route'] ?? ''), '/');
|
|||||||
$method = $_SERVER['REQUEST_METHOD'] ?? 'GET';
|
$method = $_SERVER['REQUEST_METHOD'] ?? 'GET';
|
||||||
|
|
||||||
if ($method === 'GET' && ($route === '' || $route === 'manifest')) {
|
if ($method === 'GET' && ($route === '' || $route === 'manifest')) {
|
||||||
|
// Crypto requis : depuis v0.27.0 le manifest est re-signé à la volée
|
||||||
|
// selon le channel demandé (filtrage server-side).
|
||||||
|
require __DIR__ . '/lib/Crypto.php';
|
||||||
require __DIR__ . '/routes/Manifest.php';
|
require __DIR__ . '/routes/Manifest.php';
|
||||||
\PSLauncher\Routes\Manifest::handle($config);
|
\PSLauncher\Routes\Manifest::handle($config);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
if ($method === 'GET' && preg_match('#^releasenotes/([0-9]+\.[0-9]+\.[0-9]+)$#', $route, $m)) {
|
// Release notes : accepte 'X.Y.Z' (legacy) ou id stable 'v' + 8 hex (v0.27.1+)
|
||||||
|
if ($method === 'GET' && preg_match('#^releasenotes/(v[0-9a-f]{8}|[0-9]+\.[0-9]+\.[0-9]+)$#', $route, $m)) {
|
||||||
require __DIR__ . '/routes/Releasenotes.php';
|
require __DIR__ . '/routes/Releasenotes.php';
|
||||||
\PSLauncher\Routes\Releasenotes::handle($m[1]);
|
\PSLauncher\Routes\Releasenotes::handle($m[1]);
|
||||||
return;
|
return;
|
||||||
|
|||||||
Reference in New Issue
Block a user