test(ci): smoke AI review idempotence - #316
Conversation
Only environment values and the command were resolved at runtime, while
image references, entrypoint, working directory, volumes, healthcheck and
Dockerfile build inputs were advertised and scanned as interpolatable but
never substituted. A manifest such as `image: "app:${env.TAG}"` passed
validation and then ran the literal reference. `entrypoint` was omitted
from both scanning and substitution entirely.
A single canonical field walk on the manifest resource now drives both the
read-only scan (reference validation and implicit dependency discovery) and
the in-place substitution, so the two can never drift and `entrypoint` is
covered. Interpolation runs before the resource is lowered to a
ContainerSpec: the plan keeps resources in their raw form and lowers them at
start time, after substitution, so the image, volume and healthcheck parsers
only ever see fully resolved values. This is what makes it possible to
interpolate a volume mapping at all, since the canonical volume parser
rejects the braces of an unresolved reference.
Because lowering moved to start time, spec-build failures (an invalid image
reference, port or volume mapping) now surface when the resource starts
rather than when the plan is built; both happen during `lightshuttle up`.
The `secrets check` scope is unchanged: it still reports only references in
fields that become container environment variables or command arguments,
not image or volume references.
Export still emits unresolved environment references verbatim; rewriting
them as deployment placeholders is left to a follow-up.
Team ReviewVerdict: NEEDS_WORK 🇬🇧 EnglishOverview Strengths
Confirmed findings
🇫🇷 FrançaisVue d'ensemble Points forts
Findings confirmés
Agents: Correctness, Security, Architecture, Performance |
Code ReviewOverviewThis PR adds a new AI review workflow and updates the manifest model to support interpolation of environment variables in more fields. The changes are generally well-structured and follow Rust conventions. However, there are some security concerns and architectural considerations to address. Strengths
Suggestions
SecurityThe ai-review-smoke/untrusted_handler.rs file contains unsafe operations and should be removed or properly secured before being included in the production codebase.
|
|
Smoke passed against nubster-opensources/.github@4a55945. The capped team review rendered INCOMPLETE, global comments stayed idempotent, scoped stale inline comment 3768039640 was deleted by the real API path, and a same-SHA review rerun removed three no-longer-returned inline findings. Closing this temporary PR without merge. |
Temporary smoke PR for nubster-opensources/.github#35.
088cdf22f1d6366176e94b695f89758bb4d72effDo not merge. This PR will be closed and its branch deleted after validation.