mirror of
https://github.com/DeusData/codebase-memory-mcp.git
synced 2026-11-04 08:13:37 +08:00
Review round 2 of #2677 (N1-N12). Every case ends in an explicit unknown,
never in an OOM, a quadratic stall or a wrong image.
Bounds (helm_template.c, pass_k8s.c):
- N1: capture arrays grow by doubling, so n captures cost memory linear in
n. Arena growth since the render began counts against a third budget
(256 MiB) beside steps and output; a trip is logged with its reason.
- N10: poisoned maps are a pointer hash set (merged values a path list), so
a loop poisoning a new dict per iteration keeps reads O(1). Release images
are deduplicated by hash.
Wrong images (helm_template.c):
- N2: a set / merge in a body an UNKNOWN condition skips is judged by its
target whatever it is -- a call's result like `index .Values "image"` is
evaluated in the frame: own, or a known map (poisoned), else it taints.
- N3: putting a value another part holds into an own map revokes own; a
part of a poisoned map is never own.
- N4: a run-time set whose target is an UNKNOWN call result taints.
- N5: an UNKNOWN break / continue spoils the rest of the loop body around
it; a continue is a continue, not a break.
- N6: the scan notes redefinitions and assignments, carries what it saw
across the actions of one branch, and never judges a variable the part
rebinds by its value in the frame.
- N11: a define's "may not change" that leaned on a define still being
scanned (mutual includes) is not kept.
- N12: an include not run because its argument is poisoned or UNKNOWN
spoils that argument (poisoned deep, or a taint).
Releases and charts (pass_k8s.c, pass_terraform.c):
- N8: an empty values.yaml is values {} (Helm's), not a file not read.
- N9: a Terraform set_sensitive whose name overlaps a key an image reads, a
Terraform postrender, or a kustomization with its own transformers
(images, patches, replacements, transformers, components) leaves the
release without an image of its own.
Tests (N7): the symlink probes are POSIX-only (SKIP_PLATFORM on Windows).
One test per item, RED on 4cea54f7 by its assertion; N10's is a correctness
control, its cost measured (linear vs quadratic) outside the suite.
Signed-off-by: Martin Vogel <martin.vogel.tech@gmail.com>