TL;DR
Twenty-two commits since v0.10.0 refactor the two monolithic source files into structured packages, redesign the inspect and review CLI output, add a forget command and an interactive override wizard, graduate R081/R082 from experimental, fix tokeniser and display bugs, and promote python-cryptography to a runtime dependency.
Changed
-
inspectoutput redesigned. Replaced the stacked-Panel layout with a singlePanelwrapping metadata, Files changed, Rules Triggered, suppressed rules, Score/Risk, and Status. "Score breakdown" header renamed to "Rules Triggered". Score and Risk rows moved to the bottom.--scoreand--riskare now independent flags (neither implies the other). Without any flag, rules show IDs and reasons only with a blue border.--scoreshows per-rule weights;--riskshows per-rule severities. -
reviewoutput now has a dedicated "Files changed" section listing every modified/added/removed file with+/~/-prefix, instead of a single summary row.--riskflag added totrustsight review: colours the panel border by risk level and shows aRisk: (level)row.--score/--riskare independent (Score row takes priority when both given). -
R081 (foreign package manager in install hooks) and R082 (shell obfuscation density >= 3 patterns) graduated from experimental and are now enabled by default. Calibrated against a 3243-diff benign corpus: 0 false positives for both.
-
python-cryptographypromoted from optdepends to a hard dependency (resolves namcap warnings about uninstalledcryptographymodule at runtime). -
src/trustsight/analysis.py(1080 lines) refactored into theanalysis/package:base.py,build.py,dependencies.py,maintainer.py,pipeline.py,structural.py,temporal.py. -
src/trustsight/cli.py(2035 lines) refactored into thecli/package:admin.py,app.py,display.py,forget.py,history.py,inspect.py,list_cmd.py,review.py. -
packaging/aur/README.mdcorrected:python-tldextractis in theextrarepository, not the AUR.
Added
-
trustsight forget <package>removes a tracked package and all associated history.--pruneremoves packages no longer installed.--dry-runpreviews without deleting.--yesskips confirmation. -
trustsight override wizard <package>interactive command. Runs the full analysis pipeline, displays triggered non-FATAL rules, and prompts the user to pick which to suppress with a reason. Already-suppressed rules are skipped. -
--riskflag ontrustsight reviewmatchesinspectbehaviour: coloured border by risk level and aRiskrow.
Fixed
-
fetch_metadata(on_progress=...)signature mismatch. Thereviewcommand passed anon_progresscallback tofetch_metadata()but the function did not accept it, crashing withTypeErrorwhen the metadata-dump download path was taken. Added theon_progressparameter. -
Nested parameter expansions in PKGBUILD variables now resolve correctly (brace-depth tracking instead of stopping at first
}). -
__seed__sentinel excluded from user-facing database queries. -
Version display contract enforced:
Noneshows as-, unresolvable strings as"unresolved", across all CLI paths. -
Conftest fixture conflict resolved.
Removed
src/trustsight/analysis.pyandsrc/trustsight/cli.py: the two monolithic modules deleted in favour of structured packages.
Stats
- 22 files changed, +578 / -3255
- 805 tests (22 files), all passing
- Package version 0.11.0