diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 869ea95..5ebc2e5 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -13,7 +13,7 @@ jobs: uses: actions/checkout@v7 - name: Install uv - uses: astral-sh/setup-uv@v10 + uses: astral-sh/setup-uv@v10.2.0 with: enable-cache: true @@ -38,7 +38,7 @@ jobs: uses: actions/checkout@v7 - name: Install uv - uses: astral-sh/setup-uv@v10 + uses: astral-sh/setup-uv@v10.2.0 with: enable-cache: true diff --git a/CHANGELOG.md b/CHANGELOG.md index aa2c0fd..6c6f133 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -5,6 +5,15 @@ All notable changes to this project will be documented in this file. The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/), and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html). +## [0.4.4] - 2026-10-17 + +### Added +- Scanner: use `TryExec` for running-process checks when available +- Docs: Arch Linux install instructions + +### Changed +- Cache: default TTL reduced from 14 to 3 days + ## [0.4.3] - 2026-10-17 ### Added diff --git a/src/sessionintent/__init__.py b/src/sessionintent/__init__.py index 53a62b8..93eef0f 100644 --- a/src/sessionintent/__init__.py +++ b/src/sessionintent/__init__.py @@ -12,7 +12,7 @@ from .extensions import apply_extensions, resolve_extension_id from .plugins import get_plugin_manager -__version__ = "0.4.3" # Single source of truth; pyproject.toml reads this dynamically. +__version__ = "0.4.4" # Single source of truth; pyproject.toml reads this dynamically. __all__ = [ "SessionManager", "load_config", diff --git a/src/sessionintent/app/cache.py b/src/sessionintent/app/cache.py index af38cb7..5883855 100644 --- a/src/sessionintent/app/cache.py +++ b/src/sessionintent/app/cache.py @@ -14,7 +14,7 @@ CACHE_VERSION = 1 -DEFAULT_CACHE_TTL_DAYS = 14 +DEFAULT_CACHE_TTL_DAYS = 3 def _get_cache_file() -> Path: diff --git a/src/sessionintent/app/detect.py b/src/sessionintent/app/detect.py index a55d9aa..8f835e7 100644 --- a/src/sessionintent/app/detect.py +++ b/src/sessionintent/app/detect.py @@ -93,6 +93,7 @@ def _parse_desktop_entry(content: str) -> dict[str, str]: if key in ( "Name", "Exec", + "TryExec", "StartupWMClass", "StartupNotify", "NoDisplay", @@ -172,6 +173,8 @@ def detect_desktop_apps( continue binary = token.split("/")[-1] break + if entry.get("TryExec"): + binary = entry["TryExec"].split("/")[-1] apps[key] = { "cmd": cmd, "check": binary,