diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 22c69aa..1a87960 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -136,7 +136,7 @@ jobs: go-version: "1.25" - name: Install relay CLI - run: go install github.com/SoundMatt/RELAY/cmd/relay@v1.10.0 + run: go install github.com/SoundMatt/RELAY/cmd/relay@v1.11.0 - name: Build CLI run: go build -o /tmp/go-lin ./cmd/go-lin @@ -158,7 +158,7 @@ jobs: go-version: "1.25" - name: Install relay CLI - run: go install github.com/SoundMatt/RELAY/cmd/relay@v1.10.0 + run: go install github.com/SoundMatt/RELAY/cmd/relay@v1.11.0 - name: Build CLI run: go build -o /tmp/go-lin ./cmd/go-lin diff --git a/artifact-manifest.json b/artifact-manifest.json index 5475998..be7b80c 100644 --- a/artifact-manifest.json +++ b/artifact-manifest.json @@ -4,16 +4,16 @@ "tool": "go-FuSa", "toolVersion": "0.30.0", "language": "go", - "generatedAt": "2026-06-19T20:36:23.971737184Z", + "generatedAt": "2026-06-19T23:12:18.249993Z", "format": "x-FuSa manifest v1", "artifacts": [ { - "path": "/home/runner/work/go-LIN/go-LIN/sbom.json", - "sha256": "84e5495f2faf5cf12c5329c99a0e85efcce8a9551df41f140455475c80f65718" + "path": "/Users/matt/Documents/Coding/SoundMatt/go-LIN/sbom.json", + "sha256": "cf516bebccaaa9c3e295cb2f1ac34b46bf171ee5147a21d9f04a734eced0cb71" }, { - "path": "/home/runner/work/go-LIN/go-LIN/provenance.json", - "sha256": "38ee0e1d31cde7b88ff3a4cdf935adbe2cfa875e7ad9ba1e3f5336895bf2cdf7" + "path": "/Users/matt/Documents/Coding/SoundMatt/go-LIN/provenance.json", + "sha256": "c9d1671f3c6b816e79d967a75573273ac3c952ecf6a502a74d85fe75939ca84f" } ] } diff --git a/boundary.dot b/boundary.dot index 5bb40fe..ed9468f 100644 --- a/boundary.dot +++ b/boundary.dot @@ -1,5 +1,5 @@ // Module: github.com/SoundMatt/go-LIN -// Generated: 2026-06-19T20:36:22Z +// Generated: 2026-06-19T23:12:18Z digraph { rankdir=LR node [shape=box style=rounded fontname=Helvetica] diff --git a/boundary.mermaid b/boundary.mermaid index 6ea1da7..ae5aa76 100644 --- a/boundary.mermaid +++ b/boundary.mermaid @@ -1,7 +1,7 @@ %{init: {"theme": "default"}}% flowchart LR % Module: github.com/SoundMatt/go-LIN - % Generated: 2026-06-19T20:36:22Z + % Generated: 2026-06-19T23:12:18Z github_com_SoundMatt_go_LIN["lin"] github_com_SoundMatt_go_LIN_cmd_go_lin["github.com/SoundMatt/go-LIN/cmd/go-lin"] diff --git a/fmea.json b/fmea.json index d3ca67c..322a4bd 100644 --- a/fmea.json +++ b/fmea.json @@ -1,12 +1,12 @@ { "format": "go-FuSa dFMEA v1", - "generated_at": "2026-06-19T20:36:22.298530597Z", + "generated_at": "2026-06-19T23:12:18.077093Z", "module": "github.com/SoundMatt/go-LIN", "entries": [ { "component": "go-LIN (lin)", "function": "Adapt", - "file": "/home/runner/work/go-LIN/go-LIN/adapt.go", + "file": "/Users/matt/Documents/Coding/SoundMatt/go-LIN/adapt.go", "failure_modes": [ "Incorrect output" ], @@ -25,7 +25,7 @@ { "component": "go-LIN (lin)", "function": "CalcChecksum", - "file": "/home/runner/work/go-LIN/go-LIN/lin.go", + "file": "/Users/matt/Documents/Coding/SoundMatt/go-LIN/lin.go", "failure_modes": [ "Incorrect output" ], @@ -51,7 +51,7 @@ { "component": "go-LIN (lin)", "function": "Close", - "file": "/home/runner/work/go-LIN/go-LIN/adapt.go", + "file": "/Users/matt/Documents/Coding/SoundMatt/go-LIN/adapt.go", "failure_modes": [ "Returns unexpected error" ], @@ -70,7 +70,7 @@ { "component": "go-LIN (lin)", "function": "FromMessage", - "file": "/home/runner/work/go-LIN/go-LIN/lin.go", + "file": "/Users/matt/Documents/Coding/SoundMatt/go-LIN/lin.go", "failure_modes": [ "Returns unexpected error" ], @@ -94,7 +94,7 @@ { "component": "go-LIN (lin)", "function": "Matches", - "file": "/home/runner/work/go-LIN/go-LIN/lin.go", + "file": "/Users/matt/Documents/Coding/SoundMatt/go-LIN/lin.go", "failure_modes": [ "Incorrect output" ], @@ -115,7 +115,7 @@ { "component": "go-LIN (lin)", "function": "ProtectID", - "file": "/home/runner/work/go-LIN/go-LIN/lin.go", + "file": "/Users/matt/Documents/Coding/SoundMatt/go-LIN/lin.go", "failure_modes": [ "Incorrect output" ], @@ -141,7 +141,7 @@ { "component": "go-LIN (lin)", "function": "Protocol", - "file": "/home/runner/work/go-LIN/go-LIN/adapt.go", + "file": "/Users/matt/Documents/Coding/SoundMatt/go-LIN/adapt.go", "failure_modes": [ "Incorrect output" ], @@ -160,7 +160,7 @@ { "component": "go-LIN (lin)", "function": "Send", - "file": "/home/runner/work/go-LIN/go-LIN/adapt.go", + "file": "/Users/matt/Documents/Coding/SoundMatt/go-LIN/adapt.go", "failure_modes": [ "Returns unexpected error" ], @@ -180,7 +180,7 @@ { "component": "go-LIN (lin)", "function": "Subscribe", - "file": "/home/runner/work/go-LIN/go-LIN/adapt.go", + "file": "/Users/matt/Documents/Coding/SoundMatt/go-LIN/adapt.go", "failure_modes": [ "Returns unexpected error", "Goroutine not terminated" @@ -201,7 +201,7 @@ { "component": "go-LIN (lin)", "function": "ToMessage", - "file": "/home/runner/work/go-LIN/go-LIN/lin.go", + "file": "/Users/matt/Documents/Coding/SoundMatt/go-LIN/lin.go", "failure_modes": [ "Incorrect output" ], @@ -222,7 +222,7 @@ { "component": "go-LIN (lin)", "function": "ValidateFrame", - "file": "/home/runner/work/go-LIN/go-LIN/lin.go", + "file": "/Users/matt/Documents/Coding/SoundMatt/go-LIN/lin.go", "failure_modes": [ "Returns unexpected error" ], @@ -252,7 +252,7 @@ { "component": "go-LIN (lin)", "function": "VerifyPID", - "file": "/home/runner/work/go-LIN/go-LIN/lin.go", + "file": "/Users/matt/Documents/Coding/SoundMatt/go-LIN/lin.go", "failure_modes": [ "Returns unexpected error" ], @@ -277,7 +277,7 @@ { "component": "ldf", "function": "Decode", - "file": "/home/runner/work/go-LIN/go-LIN/ldf/parser.go", + "file": "/Users/matt/Documents/Coding/SoundMatt/go-LIN/ldf/parser.go", "failure_modes": [ "Incorrect output" ], @@ -298,7 +298,7 @@ { "component": "ldf", "function": "Frame", - "file": "/home/runner/work/go-LIN/go-LIN/ldf/parser.go", + "file": "/Users/matt/Documents/Coding/SoundMatt/go-LIN/ldf/parser.go", "failure_modes": [ "Incorrect output" ], @@ -319,7 +319,7 @@ { "component": "ldf", "function": "Frames", - "file": "/home/runner/work/go-LIN/go-LIN/ldf/parser.go", + "file": "/Users/matt/Documents/Coding/SoundMatt/go-LIN/ldf/parser.go", "failure_modes": [ "Incorrect output" ], @@ -340,7 +340,7 @@ { "component": "ldf", "function": "Parse", - "file": "/home/runner/work/go-LIN/go-LIN/ldf/parser.go", + "file": "/Users/matt/Documents/Coding/SoundMatt/go-LIN/ldf/parser.go", "failure_modes": [ "Returns unexpected error" ], @@ -365,7 +365,7 @@ { "component": "ldf", "function": "Schedule", - "file": "/home/runner/work/go-LIN/go-LIN/ldf/parser.go", + "file": "/Users/matt/Documents/Coding/SoundMatt/go-LIN/ldf/parser.go", "failure_modes": [ "Incorrect output" ], @@ -385,7 +385,7 @@ { "component": "ldf", "function": "Signal", - "file": "/home/runner/work/go-LIN/go-LIN/ldf/parser.go", + "file": "/Users/matt/Documents/Coding/SoundMatt/go-LIN/ldf/parser.go", "failure_modes": [ "Incorrect output" ], @@ -406,7 +406,7 @@ { "component": "ldf", "function": "Signals", - "file": "/home/runner/work/go-LIN/go-LIN/ldf/parser.go", + "file": "/Users/matt/Documents/Coding/SoundMatt/go-LIN/ldf/parser.go", "failure_modes": [ "Incorrect output" ], @@ -427,7 +427,7 @@ { "component": "master", "function": "New", - "file": "/home/runner/work/go-LIN/go-LIN/master/master.go", + "file": "/Users/matt/Documents/Coding/SoundMatt/go-LIN/master/master.go", "failure_modes": [ "Incorrect output" ], @@ -443,7 +443,7 @@ { "component": "master", "function": "OnError", - "file": "/home/runner/work/go-LIN/go-LIN/master/master.go", + "file": "/Users/matt/Documents/Coding/SoundMatt/go-LIN/master/master.go", "failure_modes": [ "Incorrect output" ], @@ -459,7 +459,7 @@ { "component": "master", "function": "OnFrame", - "file": "/home/runner/work/go-LIN/go-LIN/master/master.go", + "file": "/Users/matt/Documents/Coding/SoundMatt/go-LIN/master/master.go", "failure_modes": [ "Incorrect output" ], @@ -475,7 +475,7 @@ { "component": "master", "function": "Run", - "file": "/home/runner/work/go-LIN/go-LIN/master/master.go", + "file": "/Users/matt/Documents/Coding/SoundMatt/go-LIN/master/master.go", "failure_modes": [ "Returns unexpected error", "Uncontrolled execution" @@ -500,7 +500,7 @@ { "component": "master", "function": "SendHeader", - "file": "/home/runner/work/go-LIN/go-LIN/master/master.go", + "file": "/Users/matt/Documents/Coding/SoundMatt/go-LIN/master/master.go", "failure_modes": [ "Returns unexpected error" ], @@ -516,7 +516,7 @@ { "component": "master", "function": "SetSchedule", - "file": "/home/runner/work/go-LIN/go-LIN/master/master.go", + "file": "/Users/matt/Documents/Coding/SoundMatt/go-LIN/master/master.go", "failure_modes": [ "Returns unexpected error" ], @@ -534,7 +534,7 @@ { "component": "mock", "function": "New", - "file": "/home/runner/work/go-LIN/go-LIN/mock/mock.go", + "file": "/Users/matt/Documents/Coding/SoundMatt/go-LIN/mock/mock.go", "failure_modes": [ "Returns unexpected error" ], @@ -550,7 +550,7 @@ { "component": "safety", "function": "Error", - "file": "/home/runner/work/go-LIN/go-LIN/safety/e2e.go", + "file": "/Users/matt/Documents/Coding/SoundMatt/go-LIN/safety/e2e.go", "failure_modes": [ "Incorrect output" ], @@ -566,7 +566,7 @@ { "component": "safety", "function": "NewProtector", - "file": "/home/runner/work/go-LIN/go-LIN/safety/e2e.go", + "file": "/Users/matt/Documents/Coding/SoundMatt/go-LIN/safety/e2e.go", "failure_modes": [ "Incorrect output" ], @@ -585,7 +585,7 @@ { "component": "safety", "function": "NewReceiver", - "file": "/home/runner/work/go-LIN/go-LIN/safety/e2e.go", + "file": "/Users/matt/Documents/Coding/SoundMatt/go-LIN/safety/e2e.go", "failure_modes": [ "Incorrect output" ], @@ -604,7 +604,7 @@ { "component": "safety", "function": "Protect", - "file": "/home/runner/work/go-LIN/go-LIN/safety/e2e.go", + "file": "/Users/matt/Documents/Coding/SoundMatt/go-LIN/safety/e2e.go", "failure_modes": [ "Incorrect output" ], @@ -630,7 +630,7 @@ { "component": "safety", "function": "Unwrap", - "file": "/home/runner/work/go-LIN/go-LIN/safety/e2e.go", + "file": "/Users/matt/Documents/Coding/SoundMatt/go-LIN/safety/e2e.go", "failure_modes": [ "Returns unexpected error" ], @@ -657,7 +657,7 @@ { "component": "slave", "function": "New", - "file": "/home/runner/work/go-LIN/go-LIN/slave/slave.go", + "file": "/Users/matt/Documents/Coding/SoundMatt/go-LIN/slave/slave.go", "failure_modes": [ "Incorrect output" ], @@ -673,7 +673,7 @@ { "component": "slave", "function": "RegisteredIDs", - "file": "/home/runner/work/go-LIN/go-LIN/slave/slave.go", + "file": "/Users/matt/Documents/Coding/SoundMatt/go-LIN/slave/slave.go", "failure_modes": [ "Incorrect output" ], @@ -690,7 +690,7 @@ { "component": "slave", "function": "SetResponse", - "file": "/home/runner/work/go-LIN/go-LIN/slave/slave.go", + "file": "/Users/matt/Documents/Coding/SoundMatt/go-LIN/slave/slave.go", "failure_modes": [ "Returns unexpected error" ], @@ -709,7 +709,7 @@ { "component": "slave", "function": "Subscribe", - "file": "/home/runner/work/go-LIN/go-LIN/slave/slave.go", + "file": "/Users/matt/Documents/Coding/SoundMatt/go-LIN/slave/slave.go", "failure_modes": [ "Returns unexpected error" ], @@ -725,7 +725,7 @@ { "component": "virtual", "function": "Close", - "file": "/home/runner/work/go-LIN/go-LIN/virtual/bus.go", + "file": "/Users/matt/Documents/Coding/SoundMatt/go-LIN/virtual/bus.go", "failure_modes": [ "Returns unexpected error" ], @@ -742,7 +742,7 @@ { "component": "virtual", "function": "CloseWithDrain", - "file": "/home/runner/work/go-LIN/go-LIN/virtual/bus.go", + "file": "/Users/matt/Documents/Coding/SoundMatt/go-LIN/virtual/bus.go", "failure_modes": [ "Returns unexpected error" ], @@ -755,7 +755,7 @@ { "component": "virtual", "function": "Health", - "file": "/home/runner/work/go-LIN/go-LIN/virtual/bus.go", + "file": "/Users/matt/Documents/Coding/SoundMatt/go-LIN/virtual/bus.go", "failure_modes": [ "Incorrect output" ], @@ -768,7 +768,7 @@ { "component": "virtual", "function": "Metrics", - "file": "/home/runner/work/go-LIN/go-LIN/virtual/bus.go", + "file": "/Users/matt/Documents/Coding/SoundMatt/go-LIN/virtual/bus.go", "failure_modes": [ "Incorrect output" ], @@ -781,7 +781,7 @@ { "component": "virtual", "function": "New", - "file": "/home/runner/work/go-LIN/go-LIN/virtual/bus.go", + "file": "/Users/matt/Documents/Coding/SoundMatt/go-LIN/virtual/bus.go", "failure_modes": [ "Returns unexpected error" ], @@ -797,7 +797,7 @@ { "component": "virtual", "function": "Publish", - "file": "/home/runner/work/go-LIN/go-LIN/virtual/bus.go", + "file": "/Users/matt/Documents/Coding/SoundMatt/go-LIN/virtual/bus.go", "failure_modes": [ "Returns unexpected error" ], @@ -817,7 +817,7 @@ { "component": "virtual", "function": "PublishClassic", - "file": "/home/runner/work/go-LIN/go-LIN/virtual/bus.go", + "file": "/Users/matt/Documents/Coding/SoundMatt/go-LIN/virtual/bus.go", "failure_modes": [ "Returns unexpected error" ], @@ -830,7 +830,7 @@ { "component": "virtual", "function": "SendHeader", - "file": "/home/runner/work/go-LIN/go-LIN/virtual/bus.go", + "file": "/Users/matt/Documents/Coding/SoundMatt/go-LIN/virtual/bus.go", "failure_modes": [ "Returns unexpected error" ], @@ -852,7 +852,7 @@ { "component": "virtual", "function": "SetSchedule", - "file": "/home/runner/work/go-LIN/go-LIN/virtual/bus.go", + "file": "/Users/matt/Documents/Coding/SoundMatt/go-LIN/virtual/bus.go", "failure_modes": [ "Returns unexpected error" ], @@ -865,7 +865,7 @@ { "component": "virtual", "function": "Subscribe", - "file": "/home/runner/work/go-LIN/go-LIN/virtual/bus.go", + "file": "/Users/matt/Documents/Coding/SoundMatt/go-LIN/virtual/bus.go", "failure_modes": [ "Returns unexpected error" ], diff --git a/go.mod b/go.mod index 05814d7..6fff62f 100644 --- a/go.mod +++ b/go.mod @@ -2,4 +2,4 @@ module github.com/SoundMatt/go-LIN go 1.25.0 -require github.com/SoundMatt/RELAY v1.10.0 +require github.com/SoundMatt/RELAY v1.11.0 diff --git a/go.sum b/go.sum index 0516fd5..bb5c11d 100644 --- a/go.sum +++ b/go.sum @@ -2,3 +2,5 @@ github.com/SoundMatt/RELAY v1.0.0 h1:eb4PvxHrJd0jsR97zBHOeTNJZXB69S3MWFpaknJho6c github.com/SoundMatt/RELAY v1.0.0/go.mod h1:8HXkxErdk4pHaM1de9eopm2S8o1aE7tKYkCBBsHxxcg= github.com/SoundMatt/RELAY v1.10.0 h1:P+UrbaMCwb44KKPdotBSPfjPtqnC6GkrCZg8lNSgtKE= github.com/SoundMatt/RELAY v1.10.0/go.mod h1:8HXkxErdk4pHaM1de9eopm2S8o1aE7tKYkCBBsHxxcg= +github.com/SoundMatt/RELAY v1.11.0 h1:ZqGQpU/ak5FNW4AOHjtVA6vPGjJhXCwFzAICHlHjNFE= +github.com/SoundMatt/RELAY v1.11.0/go.mod h1:8HXkxErdk4pHaM1de9eopm2S8o1aE7tKYkCBBsHxxcg= diff --git a/provenance.json b/provenance.json index 1796679..67f31a8 100644 --- a/provenance.json +++ b/provenance.json @@ -4,13 +4,13 @@ "tool": "go-FuSa", "toolVersion": "0.30.0", "language": "go", - "generatedAt": "2026-06-19T20:36:23.971525085Z", + "generatedAt": "2026-06-19T23:12:18.249803Z", "format": "x-FuSa provenance v1", "module": "github.com/SoundMatt/go-LIN", - "goVersion": "go1.25.11", - "goos": "linux", - "goarch": "amd64", - "vcsRevision": "e854a3fadbbad53891a152e3cf5538a5b0b1f6c0", + "goVersion": "go1.26.3", + "goos": "darwin", + "goarch": "arm64", + "vcsRevision": "fe73ed1da15d615469e7583362b9662609c6a19b", "vcsModified": true, - "builder": "https://github.com/SoundMatt/go-LIN/.github/workflows/release.yml@refs/tags/v1.2.0" + "builder": "https://github.com/SoundMatt/go-LIN/.github/workflows/release.yml@refs/heads/main" } \ No newline at end of file diff --git a/safety-case.json b/safety-case.json index 7ea51d6..193f4e5 100644 --- a/safety-case.json +++ b/safety-case.json @@ -1,6 +1,6 @@ { "format": "go-FuSa Safety Case v1", - "generatedAt": "2026-06-19T20:36:23.952283887Z", + "generatedAt": "2026-06-19T23:12:18.22842Z", "module": "github.com/SoundMatt/go-LIN", "standard": "generic", "evidence": [ @@ -8,8 +8,8 @@ "id": "check", "description": "Coding standard and static analysis checks", "file": "check-report.json", - "status": "absent", - "detail": "run 'gofusa check --output check-report.json' to generate" + "status": "present", + "detail": "294 findings (0 errors, 233 warnings)" }, { "id": "trace", @@ -29,8 +29,8 @@ "id": "qualify", "description": "Tool qualification report", "file": "qualify-report.json", - "status": "absent", - "detail": "run 'gofusa qualify' to generate" + "status": "present", + "detail": "44/44 cases passed" }, { "id": "sbom", @@ -88,8 +88,5 @@ ] } ], - "gaps": [ - "check", - "qualify" - ] + "gaps": null } diff --git a/safety-case.md b/safety-case.md index 855ff93..f121d8b 100644 --- a/safety-case.md +++ b/safety-case.md @@ -1,6 +1,6 @@ # Safety Case: github.com/SoundMatt/go-LIN -Generated: 2026-06-19T20:36:23Z +Generated: 2026-06-19T23:12:18Z Standard: generic ## Top Claim @@ -12,10 +12,10 @@ argued by demonstrating compliance with the safety development lifecycle. | ID | Description | Status | Detail | |---|---|---|---| -| Sn1 | Coding standard and static analysis checks | ⚠ absent | run 'gofusa check --output check-report.json' to generate | +| Sn1 | Coding standard and static analysis checks | ✅ present | 294 findings (0 errors, 233 warnings) | | Sn2 | Requirements traceability matrix | ✅ present | 112 requirements | | Sn3 | Test evidence bundle | ✅ present | 176/176 tests passed | -| Sn4 | Tool qualification report | ⚠ absent | run 'gofusa qualify' to generate | +| Sn4 | Tool qualification report | ✅ present | 44/44 cases passed | | Sn5 | SBOM (SPDX 3.0.1) | ✅ present | | | Sn6 | Build provenance | ✅ present | | @@ -31,7 +31,4 @@ argued by demonstrating compliance with the safety development lifecycle. ## Gaps -The following evidence items are absent: - -- `check` -- `qualify` +None — all evidence present. diff --git a/safety-case.mermaid b/safety-case.mermaid index c5b6c15..60d9f66 100644 --- a/safety-case.mermaid +++ b/safety-case.mermaid @@ -1,13 +1,13 @@ flowchart TD G1["**G1** github.com/SoundMatt/go-LIN is acceptably safe\nfor use in generic context"] S1{{"**S1** Argued over safety lifecycle\nprocess compliance"}} - G2["**G2** Coding standard and static analysis checks\n⚠ run 'gofusa check --output check-report.json' to generate"] + G2["**G2** Coding standard and static analysis checks\n✅ 294 findings (0 errors, 233 warnings)"] Sn1(["**Sn1** check-report.json"]) G3["**G3** Requirements traceability matrix\n✅ 112 requirements"] Sn2(["**Sn2** .fusa-reqs.json"]) G4["**G4** Test evidence bundle\n✅ 176/176 tests passed"] Sn3(["**Sn3** .fusa-evidence.json"]) - G5["**G5** Tool qualification report\n⚠ run 'gofusa qualify' to generate"] + G5["**G5** Tool qualification report\n✅ 44/44 cases passed"] Sn4(["**Sn4** qualify-report.json"]) G6["**G6** SBOM (SPDX 3.0.1)\n✅ sbom.json"] Sn5(["**Sn5** sbom.json"]) @@ -26,7 +26,3 @@ flowchart TD G5 --> Sn4 G6 --> Sn5 G7 --> Sn6 - style G2 fill:#fee2e2,stroke:#ef4444 - style Sn1 fill:#fee2e2,stroke:#ef4444 - style G5 fill:#fee2e2,stroke:#ef4444 - style Sn4 fill:#fee2e2,stroke:#ef4444 diff --git a/sbom.json b/sbom.json index 7cd94f2..8e56774 100644 --- a/sbom.json +++ b/sbom.json @@ -4,15 +4,15 @@ "tool": "go-FuSa", "toolVersion": "0.30.0", "language": "go", - "generatedAt": "2026-06-19T20:36:23.966059956Z", + "generatedAt": "2026-06-19T23:12:18.233049Z", "format": "x-FuSa SBOM v1", "module": "github.com/SoundMatt/go-LIN", "goVersion": "1.25.0", "components": [ { "name": "github.com/SoundMatt/RELAY", - "version": "v1.10.0", - "hash": "sha256:3fe52b6da302c1be3828a3dda2d0523df8cfb6a9c2e8692b09983c94d4a0b4a1" + "version": "v1.11.0", + "hash": "sha256:66a190a54fda93914d5b800e1e3b5503abcf1a32615c2c05cc02021e51e33451" } ] } diff --git a/sci.json b/sci.json index 2d161a0..4f899f5 100644 --- a/sci.json +++ b/sci.json @@ -1,7 +1,7 @@ { "project": "go-LIN", "version": "1", - "generated": "2026-06-19T20:36:22.6054889Z", + "generated": "2026-06-19T23:12:18.222418Z", "items": [ { "name": "Software Development Plan", @@ -55,7 +55,7 @@ "name": "SBOM (SPDX 3.0.1)", "file": "sbom.json", "class": "Configuration Management", - "sha256": "a56cbbdadc064ce7ce410649b49c498cf94d0d749d6ab415fb79921a6600769f", + "sha256": "ee7566cb33da183624982541d1e6b4b19d5a3f8186fbcc92197cf73b74516cb6", "present": true, "note": "DO-178C §11.15, NTIA SBOM" }, @@ -63,7 +63,7 @@ "name": "Build Provenance", "file": "provenance.json", "class": "Configuration Management", - "sha256": "4db172cd17b5f7291a9cfe5fbf42cea3e35173ad53f7406b81e8d551eb9ec1c9", + "sha256": "a6099d02e18bc3b9ec4d941e810f6de1c637a901fc194290d3d48cedf69fcbb1", "present": true, "note": "SLSA L2" }, @@ -78,21 +78,23 @@ "name": "Test Evidence Bundle", "file": ".fusa-evidence.json", "class": "Verification", - "present": false, + "sha256": "506c63d3d3f00eb6cb926616c2585d359e47792a83b2b51b8cc296ae4654c487", + "present": true, "note": "DO-178C §11.14" }, { "name": "Vulnerability Report", "file": "vuln.json", "class": "Verification", - "present": false, + "sha256": "fd7b0951bfb9e294efc9f9f94e7266cea6927e78698fb15f0005f63a9e76d5e2", + "present": true, "note": "ISO 21434 / OSV" }, { "name": "FMEA Table", "file": "fmea.json", "class": "Verification", - "sha256": "3f5c974763a8122d8e91e928dbdafcbd07f442de24a5acb02548c79bdb0464a3", + "sha256": "9bc401de76925de7a584ea5937f44c59a28545e7869ebb7347519e2b01414e87", "present": true, "note": "DO-178C §11.9 (safety analysis)" }, @@ -100,7 +102,7 @@ "name": "TARA Report", "file": "tara.json", "class": "Verification", - "sha256": "55feea5a338c7c6f589934964f086790edecc4990cede7dacb836912b03cfdcb", + "sha256": "cfb757c2ee18d64c2522aed37be7eaa2580eb49c11e3cbd34ac60ba5bf9672dc", "present": true, "note": "ISO 21434 §9" }, @@ -108,7 +110,7 @@ "name": "TARA Markdown", "file": "tara.md", "class": "Verification", - "sha256": "61c1972c17f188f497308aca9929d4fc50d42f08038ef8280f572d42b78835b3", + "sha256": "ade5163b1bbfd4915c36f5e1ba864ec0f27093d3eaa19baa373504559291b257", "present": true, "note": "ISO 21434 §9" }, @@ -116,7 +118,7 @@ "name": "Boundary Diagram", "file": "boundary.mermaid", "class": "Verification", - "sha256": "6dbfe99f9ff9e0f6c38b8b1436bbcf8f2bbd9741560463133dd3da1be107378d", + "sha256": "e377c78680e7f7fbed9ba293a0c2f4df934622eb975b6bb86c397aa7130dad32", "present": true, "note": "DO-178C §11.10 (architecture)" }, @@ -124,21 +126,23 @@ "name": "Cyber Report", "file": "cyber-report.json", "class": "Verification", - "present": false, + "sha256": "1aa64aeb340914ecd59b6bbd6cb37fc6ba7a03a704b479aed7e5c5c06f0bc86b", + "present": true, "note": "ISO 21434 §11" }, { "name": "Tool Qualification Report", "file": "qualify-report.json", "class": "Quality Assurance", - "present": false, + "sha256": "03a84715ce542d5b2b105b985a7e69b1438633d8d45ae45b899a22d2f1639028", + "present": true, "note": "DO-178C §12 / DO-330" }, { "name": "Safety Case", "file": "safety-case.json", "class": "Accomplishment Summary", - "sha256": "2463c6a5e377cee245bea8ca3325bb83d456312bf85c7c3acae51a3b0937eee7", + "sha256": "3f19bd7d242ef5de4d12718895155ecaab6566be8e33c03640a2a1f96067816f", "present": true, "note": "DO-178C §11.20 (SAS input)" }, @@ -184,7 +188,7 @@ "name": "CI Workflow", "file": ".github/workflows/ci.yml", "class": "Configuration Management", - "sha256": "57218c31b37e2df3175c7b9298f453a29cd07f9bcab143d15f5903a7abbfe552", + "sha256": "1294c7538417b532998cb92c0b1b887f2bb3d2b9c64dc5d0ca10dfbf23ddf693", "present": true, "note": "DO-178C §12.2 (tool env)" }, diff --git a/tara.json b/tara.json index 4f5cb63..6772b08 100644 --- a/tara.json +++ b/tara.json @@ -1,6 +1,6 @@ { "format": "go-FuSa TARA v1", - "generated_at": "2026-06-19T20:36:22.584356395Z", + "generated_at": "2026-06-19T23:12:18.209497Z", "module": "github.com/SoundMatt/go-LIN", "entries": [ { @@ -20,7 +20,7 @@ "current_control": "Add range check before conversion", "residual_risk": "Low after remediation", "cyber_rule_id": "CYBER009", - "source_file": "/home/runner/work/go-LIN/go-LIN/adapt.go", + "source_file": "/Users/matt/Documents/Coding/SoundMatt/go-LIN/adapt.go", "source_line": 44 }, { @@ -40,7 +40,7 @@ "current_control": "Add range check before conversion", "residual_risk": "Low after remediation", "cyber_rule_id": "CYBER009", - "source_file": "/home/runner/work/go-LIN/go-LIN/cmd/go-lin/main.go", + "source_file": "/Users/matt/Documents/Coding/SoundMatt/go-LIN/cmd/go-lin/main.go", "source_line": 449 }, { @@ -60,7 +60,7 @@ "current_control": "Add range check before conversion", "residual_risk": "Low after remediation", "cyber_rule_id": "CYBER009", - "source_file": "/home/runner/work/go-LIN/go-LIN/cmd/lintool/main.go", + "source_file": "/Users/matt/Documents/Coding/SoundMatt/go-LIN/cmd/lintool/main.go", "source_line": 155 }, { @@ -80,7 +80,7 @@ "current_control": "Add range check before conversion", "residual_risk": "Low after remediation", "cyber_rule_id": "CYBER009", - "source_file": "/home/runner/work/go-LIN/go-LIN/examples/quickstart/main.go", + "source_file": "/Users/matt/Documents/Coding/SoundMatt/go-LIN/examples/quickstart/main.go", "source_line": 53 }, { @@ -100,7 +100,7 @@ "current_control": "Add range check before conversion", "residual_risk": "Low after remediation", "cyber_rule_id": "CYBER009", - "source_file": "/home/runner/work/go-LIN/go-LIN/examples/quickstart/main.go", + "source_file": "/Users/matt/Documents/Coding/SoundMatt/go-LIN/examples/quickstart/main.go", "source_line": 54 }, { @@ -120,7 +120,7 @@ "current_control": "Add range check before conversion", "residual_risk": "Low after remediation", "cyber_rule_id": "CYBER009", - "source_file": "/home/runner/work/go-LIN/go-LIN/examples/quickstart/main.go", + "source_file": "/Users/matt/Documents/Coding/SoundMatt/go-LIN/examples/quickstart/main.go", "source_line": 65 }, { @@ -140,7 +140,7 @@ "current_control": "Add range check before conversion", "residual_risk": "Low after remediation", "cyber_rule_id": "CYBER009", - "source_file": "/home/runner/work/go-LIN/go-LIN/examples/quickstart/main.go", + "source_file": "/Users/matt/Documents/Coding/SoundMatt/go-LIN/examples/quickstart/main.go", "source_line": 66 }, { @@ -160,7 +160,7 @@ "current_control": "Add range check before conversion", "residual_risk": "Low after remediation", "cyber_rule_id": "CYBER009", - "source_file": "/home/runner/work/go-LIN/go-LIN/examples/quickstart/main.go", + "source_file": "/Users/matt/Documents/Coding/SoundMatt/go-LIN/examples/quickstart/main.go", "source_line": 93 }, { @@ -180,7 +180,7 @@ "current_control": "Add range check before conversion", "residual_risk": "Low after remediation", "cyber_rule_id": "CYBER009", - "source_file": "/home/runner/work/go-LIN/go-LIN/examples/quickstart/main.go", + "source_file": "/Users/matt/Documents/Coding/SoundMatt/go-LIN/examples/quickstart/main.go", "source_line": 99 }, { @@ -200,7 +200,7 @@ "current_control": "Add range check before conversion", "residual_risk": "Low after remediation", "cyber_rule_id": "CYBER009", - "source_file": "/home/runner/work/go-LIN/go-LIN/examples/quickstart/main.go", + "source_file": "/Users/matt/Documents/Coding/SoundMatt/go-LIN/examples/quickstart/main.go", "source_line": 100 }, { @@ -220,7 +220,7 @@ "current_control": "Add range check before conversion", "residual_risk": "Low after remediation", "cyber_rule_id": "CYBER009", - "source_file": "/home/runner/work/go-LIN/go-LIN/ldf/parser.go", + "source_file": "/Users/matt/Documents/Coding/SoundMatt/go-LIN/ldf/parser.go", "source_line": 442 }, { @@ -240,7 +240,7 @@ "current_control": "Add range check before conversion", "residual_risk": "Low after remediation", "cyber_rule_id": "CYBER009", - "source_file": "/home/runner/work/go-LIN/go-LIN/ldf/parser.go", + "source_file": "/Users/matt/Documents/Coding/SoundMatt/go-LIN/ldf/parser.go", "source_line": 488 }, { @@ -260,7 +260,7 @@ "current_control": "Add range check before conversion", "residual_risk": "Low after remediation", "cyber_rule_id": "CYBER009", - "source_file": "/home/runner/work/go-LIN/go-LIN/lin.go", + "source_file": "/Users/matt/Documents/Coding/SoundMatt/go-LIN/lin.go", "source_line": 255 }, { @@ -280,7 +280,7 @@ "current_control": "Add range check before conversion", "residual_risk": "Low after remediation", "cyber_rule_id": "CYBER009", - "source_file": "/home/runner/work/go-LIN/go-LIN/lin.go", + "source_file": "/Users/matt/Documents/Coding/SoundMatt/go-LIN/lin.go", "source_line": 258 }, { @@ -300,7 +300,7 @@ "current_control": "Add range check before conversion", "residual_risk": "Low after remediation", "cyber_rule_id": "CYBER009", - "source_file": "/home/runner/work/go-LIN/go-LIN/lin.go", + "source_file": "/Users/matt/Documents/Coding/SoundMatt/go-LIN/lin.go", "source_line": 263 }, { @@ -320,7 +320,7 @@ "current_control": "Add range check before conversion", "residual_risk": "Low after remediation", "cyber_rule_id": "CYBER009", - "source_file": "/home/runner/work/go-LIN/go-LIN/lin.go", + "source_file": "/Users/matt/Documents/Coding/SoundMatt/go-LIN/lin.go", "source_line": 263 }, { @@ -340,7 +340,7 @@ "current_control": "Add range check before conversion", "residual_risk": "Low after remediation", "cyber_rule_id": "CYBER009", - "source_file": "/home/runner/work/go-LIN/go-LIN/lin.go", + "source_file": "/Users/matt/Documents/Coding/SoundMatt/go-LIN/lin.go", "source_line": 330 }, { @@ -360,7 +360,7 @@ "current_control": "Add range check before conversion", "residual_risk": "Low after remediation", "cyber_rule_id": "CYBER009", - "source_file": "/home/runner/work/go-LIN/go-LIN/lin.go", + "source_file": "/Users/matt/Documents/Coding/SoundMatt/go-LIN/lin.go", "source_line": 332 }, { @@ -380,7 +380,7 @@ "current_control": "Add range check before conversion", "residual_risk": "Low after remediation", "cyber_rule_id": "CYBER009", - "source_file": "/home/runner/work/go-LIN/go-LIN/lin_test.go", + "source_file": "/Users/matt/Documents/Coding/SoundMatt/go-LIN/lin_test.go", "source_line": 93 }, { @@ -400,7 +400,7 @@ "current_control": "Add range check before conversion", "residual_risk": "Low after remediation", "cyber_rule_id": "CYBER009", - "source_file": "/home/runner/work/go-LIN/go-LIN/lin_test.go", + "source_file": "/Users/matt/Documents/Coding/SoundMatt/go-LIN/lin_test.go", "source_line": 95 }, { @@ -420,7 +420,7 @@ "current_control": "Add range check before conversion", "residual_risk": "Low after remediation", "cyber_rule_id": "CYBER009", - "source_file": "/home/runner/work/go-LIN/go-LIN/lin_test.go", + "source_file": "/Users/matt/Documents/Coding/SoundMatt/go-LIN/lin_test.go", "source_line": 100 }, { @@ -440,7 +440,7 @@ "current_control": "Add range check before conversion", "residual_risk": "Low after remediation", "cyber_rule_id": "CYBER009", - "source_file": "/home/runner/work/go-LIN/go-LIN/lin_test.go", + "source_file": "/Users/matt/Documents/Coding/SoundMatt/go-LIN/lin_test.go", "source_line": 134 }, { @@ -460,7 +460,7 @@ "current_control": "Add range check before conversion", "residual_risk": "Low after remediation", "cyber_rule_id": "CYBER009", - "source_file": "/home/runner/work/go-LIN/go-LIN/lin_test.go", + "source_file": "/Users/matt/Documents/Coding/SoundMatt/go-LIN/lin_test.go", "source_line": 139 }, { @@ -480,7 +480,7 @@ "current_control": "Add range check before conversion", "residual_risk": "Low after remediation", "cyber_rule_id": "CYBER009", - "source_file": "/home/runner/work/go-LIN/go-LIN/safety/e2e.go", + "source_file": "/Users/matt/Documents/Coding/SoundMatt/go-LIN/safety/e2e.go", "source_line": 233 }, { @@ -500,7 +500,7 @@ "current_control": "Add range check before conversion", "residual_risk": "Low after remediation", "cyber_rule_id": "CYBER009", - "source_file": "/home/runner/work/go-LIN/go-LIN/safety/e2e_test.go", + "source_file": "/Users/matt/Documents/Coding/SoundMatt/go-LIN/safety/e2e_test.go", "source_line": 61 }, { @@ -520,7 +520,7 @@ "current_control": "Add range check before conversion", "residual_risk": "Low after remediation", "cyber_rule_id": "CYBER009", - "source_file": "/home/runner/work/go-LIN/go-LIN/safety/e2e_test.go", + "source_file": "/Users/matt/Documents/Coding/SoundMatt/go-LIN/safety/e2e_test.go", "source_line": 231 } ] diff --git a/tara.md b/tara.md index 47c3715..33644a4 100644 --- a/tara.md +++ b/tara.md @@ -1,7 +1,7 @@ # Threat Analysis and Risk Assessment (TARA) **Module:** github.com/SoundMatt/go-LIN -**Generated:** 2026-06-19T20:36:22Z +**Generated:** 2026-06-19T23:12:18Z **Standard:** ISO 21434 Chapter 9 | ID | Asset | Threat | STRIDE | CWE | Vector | Likelihood | Impact | SL | Control | Residual Risk |