Release v2.1.6
Indexly v2.1.6 introduces Rename Watch for safe, configurable file-renaming automation, improves documentation search and release portability, and requires Python 3.11 or newer.
Release v2.1.6 (2026-07-18)
Indexly v2.1.6 introduces Rename Watch, a configurable pipeline for safely renaming files as they arrive. It supports preview-first operation, settling and retry controls, durable recovery, operational probes, and cross-platform service templates. This release also improves documentation search and release portability.
Compatibility requirement: Indexly now requires Python 3.11 or newer. Python 3.8, 3.9, and 3.10 are no longer supported.
Rename Watch Highlights
- Initialize and validate versioned JSON configuration with
--initand--check-config. - Preview a frozen intake batch without moving files or consuming counters with
--once --dry-run. - Process files only after they settle, using include/exclude rules, optional
.indexlyignorehandling, size limits, and recursive selection where configured. - Prevent concurrent processes from consuming the same canonical watch root and recover safely from interrupted moves.
- Preserve monotonic naming counters and expose confirmed operator actions to inspect or reset them.
- Retain terminal failures for investigation, optionally quarantine their source files, and retry selected durable failures.
- Inspect durable state with
--statusand monitor a running service with--health,--readiness, and--metrics. - Export reviewable starting templates for WinSW, systemd, launchd, and launchd log rotation. Template export does not install or enable a service.
Start with Automate Safe File Renaming with Rename Watch. For schema and migration details, see Rename Watch Configuration. For unattended operation, see Operate Rename Watch as a Service.
Safety and Operations
- Relative watch paths resolve from the configuration file, and destinations and quarantines must remain protected children of their watch roots.
- One-batch execution freezes filesystem identities from its initial scan, so a later file appearing at the same path is not consumed accidentally.
- Dry runs do not move files or consume counters. Continuous and apply modes use settling, bounded retries, collision handling, journaling, and audit events.
- Configuration migration validates version 1 and writes a deterministic copy without overwriting the requested output.
- Health and readiness reflect live process state; status remains the durable operational view, and metrics cover the current process lifetime.
Documentation Search
- Documentation search now has clearer filtering, result presentation, navigation, and dark-mode labels.
- Pagefind is pinned to version 1.5.2 for deterministic documentation builds.
- Theme-upgrade checks document the search integration points that need review during future Docsy updates.
Release and Packaging Notes
- Release scripts share one prerelease-version classifier, avoiding platform-sensitive version checks across generation, validation, and publishing preparation.
- Release workflows use portable version handling and include Rename Watch portability coverage.
- Rename Watch schemas and service templates are included in package builds.
- Changes to the Homebrew formula at the beginning of the source range belong to the v2.1.5 post-release workflow and are excluded from this release’s user-facing changes.
Breaking Changes
- Python 3.11 or newer is required. Installations and automation still using Python 3.8, 3.9, or 3.10 must upgrade their interpreter before installing Indexly v2.1.6.
Contributors
- N. K. Franklin-Gent
- OpenAI Codex