Skip to content

fix(reqif): directory import fails loudly on a corrupt file (REQ-120, F2)#374

Merged
avrabe merged 1 commit into
mainfrom
fix/req-120-reqif-loud-fail
May 31, 2026
Merged

fix(reqif): directory import fails loudly on a corrupt file (REQ-120, F2)#374
avrabe merged 1 commit into
mainfrom
fix/req-120-reqif-loud-fail

Conversation

@avrabe
Copy link
Copy Markdown
Contributor

@avrabe avrabe commented May 31, 2026

Bug-hunt finding (REQ-120, f2-silent-failure, 3/3 lens-confirmed). import_reqif_directory skipped a malformed file with only a (often-suppressed) log::warn! and no signal to the caller — a silent partial import of interchange data. It now collects every parse failure and returns an Err naming each un-imported file. Valid-only directories unaffected; regression test added. Marks REQ-120 implemented.

… F2)

Bug-hunt finding (f2-silent-failure, 3/3 lens-confirmed). `import_reqif_directory`
skipped a malformed `.reqif`/`.xml` with only a `log::warn!` (often suppressed)
and returned no signal to the caller — a silent partial import of interchange
data, exactly the trust-eroding class this codebase guards against.

It now collects every parse failure and returns an Err naming each file that
failed and was NOT imported, instead of dropping them silently. Valid-only
directories are unaffected (existing test still green). Regression test
`import_reqif_directory_fails_loudly_on_corrupt_file`.

Implements: REQ-120
Verifies: REQ-120
Refs: REQ-004

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
@github-actions
Copy link
Copy Markdown

📐 Rivet artifact delta

Change Count
Added 0
Removed 0
Modified 1
Downstream impacted (depth ≤ 5) 0

Graph

graph LR
  REQ_120["REQ-120"]:::modified
  classDef added fill:#d4edda,stroke:#28a745,color:#155724
  classDef removed fill:#f8d7da,stroke:#dc3545,color:#721c24
  classDef modified fill:#fff3cd,stroke:#ffc107,color:#856404
  classDef overflow fill:#e2e3e5,stroke:#6c757d,color:#495057,stroke-dasharray: 3 3
Loading
Modified
ID Changes
REQ-120

📎 Full HTML dashboard attached as workflow artifact rivet-delta-pr-374download from the workflow run.

Posted by rivet-delta workflow. The graph shows only changed artifacts; open the HTML dashboard (above) for full context.

Copy link
Copy Markdown

@github-actions github-actions Bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

⚠️ Performance Alert ⚠️

Possible performance regression was detected for benchmark 'Rivet Criterion Benchmarks'.
Benchmark result of this commit is worse than the previous benchmark result exceeding threshold 1.20.

Benchmark suite Current: 3da975b Previous: de3d414 Ratio
traceability_matrix/1000 64043 ns/iter (± 345) 44996 ns/iter (± 316) 1.42
query/10000 124026 ns/iter (± 2316) 98294 ns/iter (± 531) 1.26

This comment was automatically generated by workflow using github-action-benchmark.

@avrabe avrabe merged commit fa56084 into main May 31, 2026
20 of 22 checks passed
@avrabe avrabe deleted the fix/req-120-reqif-loud-fail branch May 31, 2026 20:54
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant