Skip to content

Release v0.0.50 - #295

Merged
queil merged 12 commits into
mainfrom
release-v0.0.50
Sep 24, 2026
Merged

queil merged 12 commits into
mainfrom
release-v0.0.50

Conversation

@queil

@queil queil commented Sep 24, 2026

Copy link
Copy Markdown
Contributor

No description provided.

…ygiene guarantees

Every strix retest found a credential/output-hygiene fix correct on main
but still present in the installed binary — a release-publishing gap. New
ci/release-smoke.weir runs the promises against a binary (URL userinfo
redaction, bounded parse/decode errors, deep-value no-crash) via the
transport-error path and file-run rendering — no server, no tty, portable.
release.yml's build job self-tests each freshly-built artifact before
upload, so a regressed promise can't reach 'released'. Verified: fixed
binary 3/3, v0.0.47 fails at check 1 (userinfo verbatim, exit 1).
…al pair

Sibling objects with different keys whose values only coincidentally agreed
in an early pair (a k8s securityContext: bool field, then int two elements
later) made the pairwise merge commit to seq<string * bool>, and a later
'from json' rejected the int ('expected bool, got Number'). Defer the
open-map verdict from the pairwise mergeObjs to a post-merge openMaps pass
over the fully-merged shape, where value uniformity is judged across every
sibling: mixed values stay a typed record; genuinely uniform data-keyed
objects (ConfigMap data) still draft an open mapping. The now-dead IMap
absorb arms in mergeTwo are removed.
@strix-security

strix-security Bot commented Sep 24, 2026 •

Copy link
Copy Markdown

Strix Security Review

Warning

This pull request has 7 commits after the last Strix review (05719ec). Strix has not reviewed these changes.
Automatic review on push is off for this repository. To review the latest changes, tag @strix-security in a comment, or turn on re-review on push.

No security issues found.

Review summary

Reviewed all 20 changed files in this release PR, focusing on the new exec process-replacement feature (Proc.fs P/Invoke execvp/setenv, the Builtins reifier wiring, Parser desugar/refusal, and Check diverging-statement handling), the new Path.home/XDG directory helpers, the #history REPL directive, the newTempDir cleanup warning, and the inference open-map refactor in Infer.fs.

The exec primitive was examined end-to-end: the program name, arguments, environment keys/values, and working directory are all validated for NUL bytes, arguments are passed as an argv array to execvp (no shell interpolation, so no command-injection surface), the argv array is correctly null-terminated, and environment changes are applied via setenv to be inherited by the replacement image. The Path.home/XDG helpers read environment variables but return typed string values that are never expanded in argv, so they introduce no injection path. The REPL #history directive and the inference/parse/checker changes are analysis- or display-only and reach no dangerous sink with attacker-controlled input.

A targeted semgrep security pass over the changed source files reported zero findings. No candidate vulnerability rose to the level of requiring an independent validation pass.

Updated for 05719ec.


Reviewed by Strix
Re-run review · Configure security review settings

@queil
queil merged commit 3c1ca80 into main Sep 24, 2026
3 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant