mirror of
https://github.com/smittix/intercept.git
synced 2026-06-17 01:49:45 -07:00
Compare commits
1 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| 2bbf896e7c |
@@ -2,6 +2,13 @@
|
|||||||
|
|
||||||
All notable changes to iNTERCEPT will be documented in this file.
|
All notable changes to iNTERCEPT will be documented in this file.
|
||||||
|
|
||||||
|
## [2.26.5] - 2026-03-14
|
||||||
|
|
||||||
|
### Fixed
|
||||||
|
- **Database errors crash entire UI** — `get_setting()` now catches `sqlite3.OperationalError` and returns the default value instead of propagating the exception. Previously, if the database was inaccessible (e.g. root-owned `instance/` directory from running with `sudo`), the `inject_offline_settings` context processor would crash every page render with a 500 Internal Server Error. (#190)
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
## [2.26.4] - 2026-03-14
|
## [2.26.4] - 2026-03-14
|
||||||
|
|
||||||
### Fixed
|
### Fixed
|
||||||
|
|||||||
@@ -7,10 +7,17 @@ import os
|
|||||||
import sys
|
import sys
|
||||||
|
|
||||||
# Application version
|
# Application version
|
||||||
VERSION = "2.26.4"
|
VERSION = "2.26.5"
|
||||||
|
|
||||||
# Changelog - latest release notes (shown on welcome screen)
|
# Changelog - latest release notes (shown on welcome screen)
|
||||||
CHANGELOG = [
|
CHANGELOG = [
|
||||||
|
{
|
||||||
|
"version": "2.26.5",
|
||||||
|
"date": "March 2026",
|
||||||
|
"highlights": [
|
||||||
|
"Fix database errors crashing the entire UI — pages now degrade gracefully",
|
||||||
|
]
|
||||||
|
},
|
||||||
{
|
{
|
||||||
"version": "2.26.4",
|
"version": "2.26.4",
|
||||||
"date": "March 2026",
|
"date": "March 2026",
|
||||||
|
|||||||
+1
-1
@@ -1,6 +1,6 @@
|
|||||||
[project]
|
[project]
|
||||||
name = "intercept"
|
name = "intercept"
|
||||||
version = "2.26.4"
|
version = "2.26.5"
|
||||||
description = "Signal Intelligence Platform - Pager/433MHz/ADS-B/Satellite/WiFi/Bluetooth"
|
description = "Signal Intelligence Platform - Pager/433MHz/ADS-B/Satellite/WiFi/Bluetooth"
|
||||||
readme = "README.md"
|
readme = "README.md"
|
||||||
requires-python = ">=3.9"
|
requires-python = ">=3.9"
|
||||||
|
|||||||
@@ -661,6 +661,7 @@ def get_setting(key: str, default: Any = None) -> Any:
|
|||||||
Returns:
|
Returns:
|
||||||
Setting value (auto-converted from JSON for complex types)
|
Setting value (auto-converted from JSON for complex types)
|
||||||
"""
|
"""
|
||||||
|
try:
|
||||||
with get_db() as conn:
|
with get_db() as conn:
|
||||||
cursor = conn.execute(
|
cursor = conn.execute(
|
||||||
'SELECT value, value_type FROM settings WHERE key = ?',
|
'SELECT value, value_type FROM settings WHERE key = ?',
|
||||||
@@ -687,6 +688,9 @@ def get_setting(key: str, default: Any = None) -> Any:
|
|||||||
return value.lower() in ('true', '1', 'yes')
|
return value.lower() in ('true', '1', 'yes')
|
||||||
else:
|
else:
|
||||||
return value
|
return value
|
||||||
|
except sqlite3.OperationalError:
|
||||||
|
logger.warning("Database unavailable reading setting '%s', using default", key)
|
||||||
|
return default
|
||||||
|
|
||||||
|
|
||||||
def set_setting(key: str, value: Any) -> None:
|
def set_setting(key: str, value: Any) -> None:
|
||||||
|
|||||||
Reference in New Issue
Block a user