chore: bump version to 2.29.0

Cover TSCM sweep metadata/cleared-devices/ignore-list/report category
filter features and the ADS-B Postgres password fix. Updates the
in-app dashboard changelog (config.py), CHANGELOG.md, and the GitHub
Pages TSCM feature description.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
This commit is contained in:
James Smith
2026-07-05 15:01:12 +01:00
parent 9c3eb62499
commit a5a91fff69
3 changed files with 26 additions and 2 deletions
+13
View File
@@ -2,6 +2,19 @@
All notable changes to iNTERCEPT will be documented in this file.
## [2.29.0] - 2026-07-05
### Added
- **TSCM sweep metadata** — Site/Location and Examiner name fields on the sweep config, embedded in the HTML and PDF/annex reports.
- **Mark Cleared** — dim and badge a device as cleared directly from the live sweep view; cleared devices are excluded from generated reports, and the executive summary shows a cleared-device count. Resets at the start of each new sweep.
- **Examiner Ignore List** — persist your own devices (phone, laptop, etc.) in `localStorage` so they're filtered from the live display and every report export. Sidebar section lists current entries with per-item removal and a clear-all button.
- **TSCM report category filter** — choose which risk categories (High Interest, Needs Review, Informational) to include in generated reports, across the HTML report, PDF, JSON annex, and CSV annex. Defaults to High Interest + Needs Review.
### Fixed
- **ADS-B history Postgres password ignored** — the local setup wizard wrote the database password under the wrong `.env` key (`INTERCEPT_ADSB_DB_PASS` instead of `INTERCEPT_ADSB_DB_PASSWORD`), so a custom password set during setup was silently dropped and the app fell back to the default. Docker Compose also hardcoded the Postgres password instead of reading it from `.env`. Both now correctly honor `INTERCEPT_ADSB_DB_PASSWORD`.
---
## [2.28.0] - 2026-07-05
### Added
+12 -1
View File
@@ -7,10 +7,21 @@ import os
import sys
# Application version
VERSION = "2.28.0"
VERSION = "2.29.0"
# Changelog - latest release notes (shown on welcome screen)
CHANGELOG = [
{
"version": "2.29.0",
"date": "July 2026",
"highlights": [
"Feat: TSCM sweep metadata — Site/Location and Examiner name embedded in reports",
"Feat: Mark Cleared button dims/excludes devices from TSCM reports, with a cleared-device count in the summary",
"Feat: Examiner Ignore List — persist your own devices so they're filtered from the live view and every report export",
"Feat: TSCM report category filter (High Interest / Needs Review / Informational) for HTML, PDF, JSON, and CSV exports",
"Fix: ADS-B history Postgres password is now correctly read from .env (setup wizard and Docker Compose previously ignored a custom password)",
],
},
{
"version": "2.28.0",
"date": "July 2026",
+1 -1
View File
@@ -205,7 +205,7 @@
<div class="feature-card" data-category="intel">
<div class="feature-icon"><svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"><path d="M12 22s-8-4.5-8-11.8A8 8 0 0 1 12 2a8 8 0 0 1 8 8.2c0 7.3-8 11.8-8 11.8z"/><circle cx="12" cy="10" r="3"/><path d="M12 2v3"/><path d="M4.93 4.93l2.12 2.12"/><path d="M20 12h-3"/></svg></div>
<h3>TSCM</h3>
<p>Counter-surveillance with baseline recording, threat detection, device correlation, and risk scoring.</p>
<p>Counter-surveillance with baseline recording, threat detection, device correlation, and risk scoring. Site/examiner metadata, device clearing, and an examiner ignore list keep sweep reports focused.</p>
</div>
<div class="feature-card" data-category="intel">
<div class="feature-icon"><svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"><circle cx="6" cy="6" r="2"/><circle cx="18" cy="6" r="2"/><circle cx="6" cy="18" r="2"/><circle cx="18" cy="18" r="2"/><rect x="9" y="9" width="6" height="6" rx="1"/><line x1="8" y1="8" x2="9" y2="9"/><line x1="16" y1="8" x2="15" y2="9"/><line x1="8" y1="16" x2="9" y2="15"/><line x1="16" y1="16" x2="15" y2="15"/></svg></div>