Repository navigation
v0.5.51
cfusa v0.5.51
Fixes issue #100: silent, uncapped-looking data loss in the three commands
check/CI treat as the safety-traceability source of truth.
Fixed
cmd_req/cmd_trace: silent requirement-catalog truncation
(MAX_REQS)..fusa-reqs.json'srequirementsarray was parsed into a
fixed 1024-entry stack array (g_reqs); the parse loop simply stopped
once it was full, with no error, warning, or truncation notice of any
kind. A project whose requirement catalog grew past 1024 entries got a
false 100% coverage / 0-errors reading fromcfusa trace/cfusa check, because every requirement past the cap was never loaded at all —
it could never be reported missing, untested, or dangling. Reproduced
concretely against a 1075-entry catalog:cfusa tracereported
1024/1024 requirements traced(should be1075/1075), and a real,
correctly-tagged requirement past the cap was flagged as a dangling test
reference despite existing in the file.cmd_impact: same bug,MAX_REQS=256.load_req_ids()capped the
requirement-id list at a fixed 256 entries with the same silent-stop
behavior, so a requirement past the cap could never be matched against
changed files incfusa impact's change-impact analysis.cmd_req/cmd_trace: same bug,MAX_TAGS=4096. The//cfusa:req/
//cfusa:test///cfusa:sec-testannotation array (g_tags) had the
identical fixed-cap/silent-stop pattern. Since a fully-traced requirement
needs at least one (usually two) tags, tag count grows faster than
requirement count — this cap could silently under-report coverage well
before the (now-uncapped) requirements array itself filled up.- All four arrays now grow dynamically via
reallocwith no fixed cap,
bounded only by available memory. A genuine allocation failure (OOM) —
the only way a load can now be incomplete — is reported as a hard
ERRORto stderr with a non-zero exit code, so a truncated run can never
be silently mistaken for a complete one.
Installation
# Linux (amd64)
curl -Lo cfusa https://github.com/SoundMatt/c-FuSa/releases/download/v0.5.51/cfusa-linux-amd64
chmod +x cfusa && sudo mv cfusa /usr/local/bin/
# macOS (arm64)
curl -Lo cfusa https://github.com/SoundMatt/c-FuSa/releases/download/v0.5.51/cfusa-darwin-arm64
chmod +x cfusa && sudo mv cfusa /usr/local/bin/
# From source
cmake -B build -DCMAKE_BUILD_TYPE=Release && cmake --install buildVerify
cfusa version
cfusa qualifyWhat's Changed
- fix: remove silent MAX_REQS truncation in cmd_req/cmd_trace/cmd_impact by @SoundMatt in #101
- chore: bump v0.5.50 -> v0.5.51 by @SoundMatt in #102
Full Changelog: v0.5.50...v0.5.51