From 31486018a55f8ef309208ad51cbabdf6d9626cea Mon Sep 17 00:00:00 2001 From: Jeroen Schweitzer Date: Thu, 8 Jan 2026 17:35:28 +0100 Subject: [PATCH] fix: update endpoint TTL defaults to match namespace TTLs MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit All fetch endpoints now use 2x refresh interval as default TTL. 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Opus 4.5 --- CHANGELOG.md | 6 ++++++ pyproject.toml | 2 +- src/routers/volatile.py | 16 ++++++++-------- 3 files changed, 15 insertions(+), 9 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index a1c9bd6..f384c98 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -5,6 +5,12 @@ All notable changes to Library Desk will be documented in this file. The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/), and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html). +## [1.7.3] - 2026-01-07 + +### Fixed + +- **Endpoint TTL defaults** - Updated all fetch endpoint defaults to match namespace TTLs (2x refresh interval) + ## [1.7.2] - 2026-01-07 ### Fixed diff --git a/pyproject.toml b/pyproject.toml index bfe24cf..894f212 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -1,6 +1,6 @@ [project] name = "library-desk" -version = "1.7.2" +version = "1.7.3" description = "Coordination service for The Library system - HybridRAG queries, document ingestion, entity extraction, and knowledge consolidation" readme = "README.md" requires-python = ">=3.12" diff --git a/src/routers/volatile.py b/src/routers/volatile.py index e27680b..9fc16ac 100644 --- a/src/routers/volatile.py +++ b/src/routers/volatile.py @@ -233,7 +233,7 @@ async def store_volatile( async def fetch_weather( city: str, user: str = Query(default=DEFAULT_USER, description="User identifier"), - ttl: int = Query(default=3600, ge=60, le=86400, description="TTL in seconds (default 1 hour)"), + ttl: int = Query(default=7200, ge=60, le=86400, description="TTL in seconds (default 2 hours)"), qdrant: QdrantDep = None, ollama: OllamaDep = None, api_key: str = Depends(verify_api_key) @@ -275,7 +275,7 @@ async def fetch_forecast( city: str, user: str = Query(default=DEFAULT_USER, description="User identifier"), days: int = Query(default=7, ge=1, le=16, description="Forecast days (1-16)"), - ttl: int = Query(default=43200, ge=60, le=604800, description="TTL in seconds (default 12 hours)"), + ttl: int = Query(default=86400, ge=60, le=604800, description="TTL in seconds (default 24 hours)"), qdrant: QdrantDep = None, ollama: OllamaDep = None, api_key: str = Depends(verify_api_key) @@ -360,7 +360,7 @@ async def fetch_news( async def fetch_stock( symbol: str, user: str = Query(default=DEFAULT_USER, description="User identifier"), - ttl: int = Query(default=300, ge=60, le=3600, description="TTL in seconds"), + ttl: int = Query(default=600, ge=60, le=3600, description="TTL in seconds (default 10 min)"), qdrant: QdrantDep = None, ollama: OllamaDep = None, api_key: str = Depends(verify_api_key) @@ -409,7 +409,7 @@ async def fetch_crypto( symbol: str, market: str = Query(default="USD", description="Market currency"), user: str = Query(default=DEFAULT_USER, description="User identifier"), - ttl: int = Query(default=300, ge=60, le=3600, description="TTL in seconds"), + ttl: int = Query(default=600, ge=60, le=3600, description="TTL in seconds (default 10 min)"), qdrant: QdrantDep = None, ollama: OllamaDep = None, api_key: str = Depends(verify_api_key) @@ -457,7 +457,7 @@ async def fetch_crypto( async def fetch_sun_times( city: str, user: str = Query(default=DEFAULT_USER, description="User identifier"), - ttl: int = Query(default=86400, ge=60, le=604800, description="TTL in seconds"), + ttl: int = Query(default=172800, ge=60, le=604800, description="TTL in seconds (default 48 hours)"), qdrant: QdrantDep = None, ollama: OllamaDep = None, api_key: str = Depends(verify_api_key) @@ -503,7 +503,7 @@ async def fetch_sun_times( async def fetch_air_quality( city: str, user: str = Query(default=DEFAULT_USER, description="User identifier"), - ttl: int = Query(default=3600, ge=60, le=86400, description="TTL in seconds"), + ttl: int = Query(default=7200, ge=60, le=86400, description="TTL in seconds (default 2 hours)"), qdrant: QdrantDep = None, ollama: OllamaDep = None, api_key: str = Depends(verify_api_key) @@ -549,8 +549,8 @@ async def fetch_air_quality( async def fetch_environment( city: str, user: str = Query(default=DEFAULT_USER, description="User identifier"), - weather_ttl: int = Query(default=3600, ge=60, le=86400, description="Weather TTL in seconds"), - air_quality_ttl: int = Query(default=3600, ge=60, le=86400, description="Air quality TTL in seconds"), + weather_ttl: int = Query(default=7200, ge=60, le=86400, description="Weather TTL in seconds (default 2 hours)"), + air_quality_ttl: int = Query(default=7200, ge=60, le=86400, description="Air quality TTL in seconds (default 2 hours)"), qdrant: QdrantDep = None, ollama: OllamaDep = None, api_key: str = Depends(verify_api_key)