Deferred nits from the #468 review (report readback surface). PR #468 fixed the hardlink-into-reports leak (fd-based read, O_NOFOLLOW + fstat, reject st_nlink > 1) and closed the TOCTOU window. These are the remaining minors.
Context: backend/services/module_reports_service.py.
Scope:
Source: PR #468 review (JLCode-tech), "Reports/action backend — approve-with-nits".
Migrated from sp-prod-field/bnk-forge #470 (opened 2026-07-18; original labels: enhancement). That repository is archived and read-only.
Bare #NNN references in the text above refer to issues and PRs in the original repository, not to numbering here.
Deferred nits from the #468 review (report readback surface). PR #468 fixed the hardlink-into-reports leak (fd-based read,
O_NOFOLLOW+fstat, rejectst_nlink > 1) and closed the TOCTOU window. These are the remaining minors.Context:
backend/services/module_reports_service.py.Scope:
_resolve_reports_dirrelies on realpath containment but does not also reject..on the rendered value the way the manifest-time validator does — an asymmetry (not a known bypass, since realpath containment still holds). Mirror the manifest-time..rejection for defense-in-depth consistency.errors="replace"mojibake. Consider rejecting non-UTF8 content with a clear error instead of surfacing garbled text.Source: PR #468 review (JLCode-tech), "Reports/action backend — approve-with-nits".
Migrated from
sp-prod-field/bnk-forge#470 (opened 2026-07-18; original labels:enhancement). That repository is archived and read-only.Bare
#NNNreferences in the text above refer to issues and PRs in the original repository, not to numbering here.