Implement Diagnostic Fault Library with DFM, SOVD interface, and CI infrastructure#1
Merged
bburda42dot merged 7 commits intomainfrom Feb 25, 2026
Merged
Implement Diagnostic Fault Library with DFM, SOVD interface, and CI infrastructure#1bburda42dot merged 7 commits intomainfrom
bburda42dot merged 7 commits intomainfrom
Conversation
c4eb6d7 to
dd8e06c
Compare
78c67af to
497b7a4
Compare
07b71e0 to
8ad4b82
Compare
mfaferek93
reviewed
Feb 18, 2026
mfaferek93
left a comment
There was a problem hiding this comment.
A few findings, but overall looks good
f25d169 to
61dcff1
Compare
c1f5048 to
6c62517
Compare
mfaferek93
reviewed
Feb 24, 2026
mfaferek93
reviewed
Feb 24, 2026
mfaferek93
reviewed
Feb 24, 2026
mfaferek93
reviewed
Feb 24, 2026
mfaferek93
reviewed
Feb 24, 2026
mfaferek93
reviewed
Feb 24, 2026
mfaferek93
reviewed
Feb 24, 2026
mfaferek93
reviewed
Feb 24, 2026
mfaferek93
reviewed
Feb 24, 2026
mfaferek93
reviewed
Feb 24, 2026
mfaferek93
reviewed
Feb 24, 2026
mfaferek93
reviewed
Feb 24, 2026
mfaferek93
reviewed
Feb 24, 2026
mfaferek93
reviewed
Feb 24, 2026
mfaferek93
reviewed
Feb 24, 2026
mfaferek93
reviewed
Feb 24, 2026
mfaferek93
reviewed
Feb 24, 2026
mfaferek93
reviewed
Feb 24, 2026
mfaferek93
reviewed
Feb 24, 2026
mfaferek93
reviewed
Feb 24, 2026
mfaferek93
reviewed
Feb 24, 2026
mfaferek93
reviewed
Feb 24, 2026
mfaferek93
reviewed
Feb 24, 2026
mfaferek93
reviewed
Feb 24, 2026
mfaferek93
reviewed
Feb 24, 2026
mfaferek93
reviewed
Feb 24, 2026
mfaferek93
reviewed
Feb 24, 2026
108d8bc to
e543b4e
Compare
bburda42dot
added a commit
that referenced
this pull request
Feb 25, 2026
- Extract SovdFaultState::record_occurrence() helper to deduplicate occurrence counter code in Failed/PreFailed arms (#9) - Add hour/minute/second validation to parse_iso_timestamp (eclipse-opensovd#5) - Add IpcDuration::validate() for IPC trust boundary checks (#1, eclipse-opensovd#2) - Add Hash derive to IpcTimestamp, PartialEq to FaultRecord (#17) - Fix catalog_and_reporter example to use real catalog JSON (#24) - Fix README run commands with correct -p and --example flags (#25) - Remove duplicate FaultDescriptor from common module doc (#16) - Add permissions: contents: read to all CI workflows (#7) - Pin cargo-audit install to taiki-e/install-action SHA (#15) - Align MODULE.bazel version to 0.0.1 matching Cargo.toml (#21) - Change query_conversion, query_server, fault_lib_communicator to pub(crate) in dfm_lib (#27) - Remove dead build:loom xtask command (#20) - Fix delete/clear doc comments in DfmQueryRequest (#23) - Add enabling conditions design doc note (#26) - Replace fixed 100ms sleep with retry loop in IPC test (#19)
Migrate from single-crate layout to multi-crate workspace with Bazel 8.3 + Cargo dual build system. Add xtask runner for common development commands.
IPC-safe types (IpcDuration, IpcTimestamp), fault descriptors, catalog configuration, debounce/enabling condition config, query protocol definitions, and iceoryx2 service types.
Fault reporter API, IPC worker with exponential backoff retry, fault catalog validation, enabling condition management, and FaultManagerSink for iceoryx2 transport.
SOVD-compliant fault manager with KVS persistent storage, aging manager, operation cycle tracking, fault record processor, and query server with iceoryx2 IPC transport.
E2E tests covering lifecycle transitions, debounce/aging/cycles, persistent storage, concurrent access, boundary values, error paths, multi-catalog, JSON catalog loading, IPC query/clear, and report-and-query flow.
626698b to
4abbb34
Compare
Workflows: build/test, clippy lint, rustfmt, miri, coverage, copyright header check, cargo audit (pinned to SHA), Bazel format check. All workflows set permissions: contents: read.
…rence Architecture overview, fault catalog/reporter/DFM sequence diagrams, library architecture drawing, Sphinx docs scaffold, and HVAC component design reference example.
4abbb34 to
e2ea0a2
Compare
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Complete implementation of the Diagnostic Fault Library - a Rust library for managing diagnostic fault reporting, processing, and querying in Software-Defined Vehicles. Replaces the initial scaffold (
src/lib.rs,api.rs,catalog.rs, etc.) with a production-grade multi-crate workspace aligned with the S-CORE module template.What changed
Architecture - multi-crate workspace
common- shared types:FaultId,FaultRecord,FaultCatalog,DebounceMode, IPC service types, compliance tagsfault_lib- reporter-side API:Reporterwith debounce filtering, enabling-condition guards,IpcWorkerwith retry queue (exponential backoff),LogHookobservability,FaultManagerSinkdfm_lib- Diagnostic Fault Manager:FaultRecordProcessor,AgingManager,SovdFaultManagerwith KVS-backed storage,EnablingConditionRegistry,OperationCycleprovider abstractionxtaskcrate for developer automationsrc/lib.rs,src/api.rs,src/model.rs,src/catalog.rs,src/config.rs,src/ids.rs,src/sink.rs,src/utils.rs)Features
CountWithinWindow,HoldTime,EdgeWithCooldown,CountThresholdmodesFaultIdvariant support (Numeric/Text/Uuid)Box::leakwithCow<str>, bounded channelsSafety & quality
#[deny(clippy::unwrap_used)]enforced in runtime code - alltodo!(),expect(), andunwrap()replaced with proper error handlingTODOcomments replaced with documented error pathstests/integration/) covering lifecycle transitions, multi-catalog scenarios, persistent storage, and report-query flowsCI/CD (6 new workflows)
build_test.yml- Cargo build + testlint.yml- Clippy with deny warningsformat.yml- rustfmt checkcoverage.yml- Code coverage reportingmiri.yml- Memory safety checkscopyright.yml- License header validationAll workflows aligned with S-CORE patterns.
Project structure alignment
.bazelrc,MODULE.bazel,BUILDfiles for Bazel 8 support.vscode/settings.jsonandextensions.jsonfor development environment.ruff.toml,.yamlfmt,rustfmt.tomlfor formatting consistencyREADME.mdwith architecture overview, getting started, and examples