Skip to content

Report the LAVA database by name, not by the examiner's own path - #2237

Merged
abrignoni merged 1 commit into
mainfrom
fix/lava-db-source-path
Sep 20, 2026
Merged

abrignoni merged 1 commit into
mainfrom
fix/lava-db-source-path

Conversation

@abrignoni

Copy link
Copy Markdown
Owner

Reports the LAVA database by name instead of by the examiner's own path.

An artifact that declares no search paths is handed <report folder>/_lava_artifacts.db as its source file. That sits outside the data folder, which is the only prefix Context.get_relative_path stripped, so the examiner's output directory reached the artifact page's "located at" line and the LAVA manifest's source_path. All 35 such artifacts are in logarchive.py.

  • Fixed in get_relative_path, so it covers all 35 and any later file the run writes into the report folder.
  • The data folder is still stripped first. It sits inside the report folder, so the other order would prefix every staged evidence path with data/.
  • 12 tests, 5 of which fail on main.

Measured on a run over a log show export: before, 4 of 5 manifest entries and all 3 artifact pages carried the absolute path; after, none do. Every LAVA table, row count, TSV export and the timeline database are identical. Two runs of an unmodified tree differ in the same two bookkeeping tables, because the file path id is id() of a FileInfo object.

🤖 Generated with Claude Code

An artifact that declares no search paths is handed
'<report folder>/_lava_artifacts.db' as its only files_found entry, because it
reads rows an earlier artifact wrote rather than a file in the extraction. All
35 such artifacts in iLEAPP are in logarchive.py, and each returns that path
back as its source_path.

Context.get_relative_path stripped the data folder and nothing else. The LAVA
database sits in the report folder, one level above the data folder, so the
prefix never matched and the path was returned unchanged. The examiner's own
output directory then reached the artifact page's "located at" line and the
LAVA manifest's source_path, which travels with the report.

Measured on a run over a log show export: before, 4 of 5 manifest entries and
all 3 artifact pages carried the absolute path; after, none do and the manifest
reads '_lava_artifacts.db', which is how the report already describes that file
elsewhere. Row counts, every LAVA table, the TSV exports and the timeline
database are identical before and after. Two runs of the unmodified tree differ
in the same two bookkeeping tables, because the file path id is id() of a
FileInfo object, so that difference is not this change.

The fix is in get_relative_path rather than in the artifacts, so it covers all
35 at once and any later file the run writes into the report folder. The data
folder is still tried first, because it sits inside the report folder and
stripping the report folder first would leave every staged evidence path
prefixed with 'data/'.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
@abrignoni
abrignoni merged commit d67d3a2 into main Sep 20, 2026
8 checks passed
@abrignoni
abrignoni deleted the fix/lava-db-source-path branch September 20, 2026 23:49
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