Skip to content

fix: migrate .fusa-hara.json to x-FuSa v1.13/v1.14 HARA schema, pin c-FuSa to v0.5.46 - #92

Merged
SoundMatt merged 1 commit into
mainfrom
fix/hara-schema-v113-v114-migration
Jul 28, 2026
Merged

fix: migrate .fusa-hara.json to x-FuSa v1.13/v1.14 HARA schema, pin c-FuSa to v0.5.46#92
SoundMatt merged 1 commit into
mainfrom
fix/hara-schema-v113-v114-migration

Conversation

@SoundMatt

Copy link
Copy Markdown
Owner

Summary

Fixes #89 — c-FuSa v0.5.46 started enforcing a stricter HARA schema (HARA002/HARA003) per x-FuSa spec v1.13/v1.14 conformance. This repo's .fusa-hara.json used the old flat shape and started failing cfusa check with 20 errors on every PR, unrelated to whatever that PR actually changed.

  • Migrated all 10 hazards to the new risk{severity,exposure,controllability,asil} nested object and safetyGoals[] reference-array shape.
  • Added the formal safetyGoals registry (SG-001..SG-009) that HARA004 checks against — each goal's ASIL derived as the max ASIL across the hazards it addresses, per standard ISO 26262-3 practice.
  • Pinned c-FuSa to v0.5.46 in ci.yml/release.yml instead of cloning its default branch unpinned — this is exactly how the regression happened silently (an unrelated upstream c-FuSa change broke main's cfusa check with no corresponding commit here to explain why). Matches the same pinning fix being applied ecosystem-wide for every x-FuSa tool reference across go/cpp/rust x-Net repos + RELAY.

Also closed #69 separately — already fixed on main (CYBERSECURITY.md's SHA-256 claim was corrected in an earlier commit, just never closed).

Verification

Built c-FuSa fresh from the pinned v0.5.46 tag and ran cfusa check . against this branch: 0 errors (was 20: 10× HARA002, 10× HARA003).

Test plan

  • .fusa-hara.json is valid JSON
  • cfusa check passes locally against the pinned c-FuSa version
  • CI green

…-FuSa to v0.5.46

c-FuSa v0.5.46 started enforcing a stricter HARA schema (HARA002/HARA003)
per ISO 26262-3: hazards now need a nested risk{severity,exposure,
controllability,asil} object instead of flat fields, and a safetyGoals[]
reference array instead of a free-text safety_goal string. Migrated all
10 hazards and added the formal safetyGoals registry (SG-001..SG-009)
that HARA004 checks against, deriving each goal's ASIL as the max ASIL
of the hazards it addresses per standard practice.

Also pins c-FuSa to v0.5.46 in ci.yml/release.yml instead of cloning its
default branch unpinned -- this is exactly how this regression happened
(an unrelated upstream c-FuSa change silently broke main's cfusa check
with no corresponding commit in this repo to explain why), matching the
same fix being applied ecosystem-wide for every x-FuSa tool reference.

Verified: cfusa check (built from the pinned v0.5.46 tag) now reports
0 errors (was 20: 10x HARA002, 10x HARA003).

Fixes #89

Signed-off-by: Matt <47545907+SoundMatt@users.noreply.github.com>
@SoundMatt
SoundMatt merged commit 074998e into main Jul 28, 2026
20 checks passed
@SoundMatt
SoundMatt deleted the fix/hara-schema-v113-v114-migration branch July 28, 2026 22:06
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

1 participant