Technitium DNS Companion v1.3.0 (2026-01-09)
This release is a significant step forward for day-to-day operations: Query Logs get much more usable (especially for “last 24h” style browsing), configuration changes get safer thanks to DNS Filtering History snapshots, DHCP sync gains better fidelity, and PTR tooling becomes substantially more capable.
Highlights
- Query Logs: accurate time-window browsing (optional) via an SQLite rolling query log store for reliable “Last 24h” / “Yesterday” style filtering.
- Query Logs: faster workflow with a right-click copy menu and better live-refresh behavior (no more fighting the table while you’re trying to copy/select).
- Configuration safety via DNS Filtering History snapshots (Built-in Blocking + Advanced Blocking), including best-effort auto-snapshots before Advanced Blocking saves.
- DHCP fidelity improvements with Preserve Offer Delay Time for clone + bulk sync.
- Split Horizon PTR: safer, more complete PTR workflows with adoption/sync/history.
Added
Query Logs
- Custom copy context menu: right-click to copy the value under your cursor.
- Tip: Shift + right-click preserves the native browser context menu.
- Optional SQLite rolling query log store:
- Enables accurate time-window browsing (e.g., “Last 24h”).
- Adds stored-log endpoints + a storage status endpoint.
statusFilter=blocked|allowedsupport.
Configuration: DNS Filtering History (Snapshots)
- Snapshots for Built-in Blocking and Advanced Blocking:
- create / list / view / pin / note / restore / delete
- Advanced Blocking saves perform best-effort automatic snapshot creation to make rollback safer.
DHCP
- “Preserve Offer Delay Time” option for:
- scope clone
- bulk sync
Split Horizon PTR
- Expanded PTR record management:
- safe deletions
- adoption of existing records
- sync workflow support
- history/zone snapshots
Changed
Query Logs UX + Stability
- Live refresh automatically pauses when:
- the custom context menu is open
- an End Date/Time is set
Additionally, results are ignored while the menu is open to prevent row-jumps under the cursor.
- Date presets are disabled (with tooltips) when stored logs aren’t available.
- Improved paging stability, including click page indicator to jump to page.
Authentication UX
- Improved session-expiration handling and redirect/toast consistency.
Configuration UI
- Improved domain entry sort + drag behavior.
Frontend internals (stability)
- Added hooks
useAuth,useToast, anduseTechnitiumState. - Stabilized Context instances to avoid Vite HMR Provider/Consumer mismatches.
Fixed
- PWA: reduced stale shell/cache pitfalls.
Upgrade / Ops Notes
Session auth vs legacy env-token mode
- v1.3: session auth is still opt-in via
AUTH_SESSION_ENABLED=true. - Forward-looking: the project direction is toward requiring session auth for interactive UI in v1.4 (see docs below for current guidance).
SQLite rolling query logs (optional but recommended for time-window accuracy)
If you want “Last 24h”/preset browsing to be accurate and stable, enable SQLite storage.
Key docs:
- SQLITE_ROLLING_QUERY_LOG_STORE.md
- QUERY_LOGS_SERVER_SIDE_FILTERING.md
Operational note (important in session-auth mode):
- Background ingestion runs without a user session. If you use
AUTH_SESSION_ENABLED=true, you generally want a least-privilegeTECHNITIUM_BACKGROUND_TOKENso stored logs can stay up-to-date.
DNS Filtering History snapshots
If you run in Docker, keep a persistent /data volume so snapshots can survive container restarts (see your env/config guidance).
Docs and testing updates included
- Docs for SQLite rolling store + cross-links from Query Log filtering docs.
- Formatting/section consistency improvements.
- Testing improvements:
- Advanced Blocking: new unit tests + backend e2e coverage for save/get round-trip (including numeric-string normalization)
- Frontend: tests for
apiFetchnetwork/unauthorized event behavior - E2E: deterministic Playwright mock backend
Handy links
- Changelog entry: CHANGELOG.md
- Query Logs docs: query-logs
- Auth & migration guidance: SESSION_AUTH_AND_TOKEN_MIGRATION.md