From ed0da7fcc3056ce5a822ac0de63ccc2dc799006e Mon Sep 17 00:00:00 2001 From: nsfisis Date: Sun, 26 Jul 2026 00:18:54 +0900 Subject: feat(diagnose-command): query the real PHP runtime in one RPC call diagnose used to read hardcoded shim stubs, so it described a fictional runtime: OPENSSL_VERSION_NUMBER was always 0 and tripped the TLSv1.1/1.2 check, PHP_BINARY and OPENSSL_VERSION_TEXT were empty, and the extension, function and ini probes answered from a fixed table. The PHP worker gained a `diagnose` entry that returns every fact the command needs as one PHP array, cached in a OnceLock so the several call sites share a single round trip. Reading it back needed array support in the serialize() parser, which in turn lets get_loaded_extensions and get_all_ini_files return real lists instead of comma-joined strings. Also fixes the openssl_version message, which dropped strstr()'s before_needle argument during the port, and check_connectivity's allow_url_fopen test, which did not follow PHP string truthiness. Co-Authored-By: Claude Opus 5 (1M context) --- Cargo.lock | 1 + 1 file changed, 1 insertion(+) (limited to 'Cargo.lock') diff --git a/Cargo.lock b/Cargo.lock index 54ff59ce..a61ab57e 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -2122,6 +2122,7 @@ name = "shirabe-php-rpc" version = "0.0.1" dependencies = [ "anyhow", + "indexmap", "shirabe-external-packages", "shirabe-php-shim", "tempfile", -- cgit v1.3.1