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 --init and --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 .indexlyignore handling, 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 --status and 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 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