mirror of
https://github.com/multica-ai/multica.git
synced 2026-08-05 17:40:11 +02:00
Addresses the third review round on #6168. The preflight walked each alias independently, so it made a separate "wins" claim per alias. With PORT=9000 BACKEND_PORT=8000 API_PORT=7000 SERVER_PORT=6000 in .env it announced that BACKEND_PORT, API_PORT and SERVER_PORT each won, when only BACKEND_PORT=8000 can. Two of the three notices were simply false. It also compared only same-named shell and file variables, so shadowing across aliases stayed silent: .env with PORT=8000 and BACKEND_PORT=8000 plus a shell API_PORT=7000 produced no output at all, even though API_PORT was discarded. Resolve the winner along the documented chain first — within a variable the env file beats the environment, then BACKEND_PORT beats API_PORT beats SERVER_PORT beats PORT — and report only the inputs that winner actually shadows. Output now names one winning input and lists the rest, whichever variable or source they came from. An input carrying the winning value is not reported: it is redundant but the user still gets the port they asked for, so there is nothing to fix. Tests cover both cases the old logic got wrong: every alias set at once must yield exactly one winner claim and list the others as unused, and an env-file alias beating a lower-priority shell alias must be reported. Also asserted that a redundant same-value alias and a default configuration both stay silent. Measured against the previous implementation, phrasing aside: with all four values set it made 3 winner claims where there is now 1, and on the cross-alias case it printed nothing where API_PORT is now reported. Co-authored-by: multica-agent <github@multica.ai>