Releases: codelibs/fessctl
Releases · codelibs/fessctl
Release list
FessCTL 0.2.0
FessCTL 0.2.0 brings the biggest change since the first release: fessctl is now available on PyPI. You can install it directly with pip install fessctl (or pipx/uv tool). This release also adds support for Fess 15.7, reworks command output into clean Markdown, and ships a comprehensive unit-test suite and an agent skill for operating Fess through the CLI.
📦 Now on PyPI
fessctl is published to PyPI via GitHub Actions Trusted Publishing (OIDC, no stored tokens, with Sigstore attestations). Installation is now as simple as:
pip install fessctl # or: pipx install fessctl, uv tool install fessctlThe publish workflow validates that the git tag matches the pyproject.toml version before releasing. (#30)
✨ Highlights
- Fess 15.7 support —
pingnow uses the unified/api/v2/healthendpoint on Fess 15.7+ and falls back to/api/v1/healthon older versions, selected automatically from the configuredFESS_VERSION. (#31) - Markdown output — all 22 command modules now render human-readable output as Markdown (tables for
list/get, a result block for status messages) instead ofrich-styled tables. Therichdependency has been removed.--output json/--output yamlare unchanged. (#25) - Scheduler Job Log ID —
scheduler startnow reports thejobLogIdreturned by the API so you can correlate a triggered run with its log. (#27) - fessctl agent skill — a new skill under
skills/fessctl/(SKILL.md plus per-feature reference docs) teaches an AI agent how to operate Fess through the CLI, covering installation, authentication, output formats, CRUD conventions, and multi-step workflows. (#25, #29)
🔧 Improvements
- Configurable HTTP client timeout (
timeout, default 5.0s) and clearer error messages for network failures and invalid JSON responses. (#22) - Reviewed and validated all management (
/api/admin/*) API calls for current Fess releases. (#22)
🧭 Fess Compatibility
- Default
FESS_VERSIONupdated from 14.19.0 to 15.7.0 (progressively: 15.3.2 → 15.4.0 → 15.6.1 → 15.7.0). (#22, #23, #28, #31) - CI now tests against Fess 14.19.2, 15.6.1, and 15.7.0 (with matching OpenSearch versions).
📚 Documentation
- README rewritten with four install methods — PyPI, pre-built Docker image, self-built Docker, and install-from-source — plus an Environment Variables section documenting
FESS_ENDPOINT,FESS_ACCESS_TOKEN, andFESS_VERSION. (#21, #30) - Added
CLAUDE.mdwith a project overview,uv-based development commands, and architecture/code conventions. (#26)
🧪 Testing
- New mock-based unit-test suite under
tests/unit/covering the output helpers, API client (version/endpoint selection), CLIping, settings, and schedulerjobLogIdhandling. (#24, #27) - Added command tests for
crawlinginfoandjoblog, and made argument parsing in existing tests more robust. (#24)
⚠️ Notes for Existing Users
- Output format change — human-readable command output is now Markdown rather than
rich-rendered colored tables. Scripts that parsed the previous styled output may need updating; use--output json/yamlfor stable machine-readable output. - Default version is now 15.7.0 — if you run an older Fess server, set
FESS_VERSIONaccordingly so the correct health endpoint and behavior are selected.
Full Changelog: v0.1.0...v0.2.0
FessCTL 0.1.0
v0.1.0 Add FESS_VERSION environment variable to README examples and docs (#20)