DebugContainerPass snapshotted $container->getDefinitions() at BEFORE_OPTIMIZATION
priority 60 — ahead of every negative-priority pass and every removal pass — and baked
that into vortos:debug:container. The command therefore described a container that never
existed at runtime:
* listed InMemoryAlertStateStore, which DurableAlertStorePass supersedes and removal
then deletes;
* omitted AlertAuditRecorder and DbalAlertStateStore, registered by passes at -17/-15;
* showed 19 services carrying vortos.deploy.preflight_check where 25 carry it, missing
exactly the six added by TagPreflightChecksPass at -48.
A debug command that reports services which do not exist and hides ones that do is worse
than no debug command. Its output was twice read as evidence that a fix had not worked,
when the fix was correct and the reporting was wrong.
The pass now runs in AFTER_REMOVING. The old placement was justified as 'must run before
ResolveNamedArgumentsPass converts $name → positional index', but that constraint only
ever applied to this pass setting its OWN arguments by name; those are positional now.
Argument names for every other service are recovered by reflecting the constructor, so
the --service detail view still reads $connection rather than 0.
Two phpstan-baseline entries for summarizeArgs are dropped: the added @param/@return
annotations fix the errors they recorded, so they were unmatched.
811 tests pass in the runtime image; PHPStan back to the pre-existing 123.
Split from f542e71b017bd2886ab9ad747a787684995d9550