What's New
Column Visibility Toggle
Users can now hide/show optional columns from the Log Stream table via a Columns dropdown in the toolbar. Toggleable columns: Country, ASN, Rule/Info, AbuseIPDB, and Categories. Hidden columns are also removed from the expanded row detail view. Preferences are persisted in localStorage across sessions.
Short IANA Service Names
The Service column now displays short IANA service names (e.g. daap, http, ssh) instead of long descriptions. The full description (e.g. "Digital Audio Access Protocol (iTunes)") is shown only when expanding a row, via the detail API endpoint.
Bug Fixes
- Fix infinite UI refresh loop — Removed
onChangefrom debounce effect dependency arrays in FilterBar.jsx, which caused an infinite render cycle since the function reference changed on every parent render. - Fix wizard not remembering manually-added VLANs (#8) — Manually-added VLAN interfaces (not discovered from logs) are now re-injected from saved labels when reopening the Network Labels wizard step.
Files Changed
receiver/services.py— Split into short name + description mapsreceiver/api.py— Addedservice_descriptionto detail endpointui/src/components/LogStream.jsx— Column visibility state, dropdown, detail fetch on expandui/src/components/LogTable.jsx— Conditional column rendering, dynamic colSpanui/src/components/LogDetail.jsx— Respect hidden columns in expanded view, show service descriptionui/src/components/FilterBar.jsx— Fix debounce dependency arraysui/src/components/WizardStepLabels.jsx— Re-add manual VLAN interfaces from saved labels