# Changelog All notable changes to this project are documented here. The format follows [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). ## [Unreleased] ## [0.2.0] — 2026-05-20 ### Added - **Docker support.** `Dockerfile` (python:3.12-slim, non-root user, Streamlit healthcheck) and `docker-compose.yml` for one-command Linux deploys. Configurable `HOST_PORT`, optional CA-bundle volume for self-signed GUIs. - **Bash launcher.** `run.sh` for native (non-Docker) Linux runs. Creates a `.venv` on first use and launches either the Streamlit UI (default) or the REPL. Honours `HOST` and `PORT` env vars. - **Cross-platform line endings.** `.gitattributes` pins LF on shell scripts, YAML, Python and Markdown so checkouts on Linux from a Windows host don't break the launcher with `^M` characters. - **`.dockerignore`** to keep the image lean. ### Changed - **README rewritten** with Docker + Linux quick starts in front of the Windows / PowerShell path. - `.env.example` now flags v3 as the current API and documents the GUI port conventions (443 for CNSA / containerised, 46443 for native installs) plus the Swagger UI location. ## [0.1.0] — 2026-05-20 Initial release. ### Added - **Agentic chat over the GPFS REST API v3.** Anthropic Claude with native tool-use; a single `gpfs_request` tool whose verb enum is narrowed by env config so disallowed methods can't even be requested. - **Two front-ends.** Rich-styled terminal REPL (`python -m gpfs_agent`) and a pure-Python Streamlit web UI (`gpfs_agent/web.py`). Shared Agent/Dispatcher/Client stack. - **Env-driven guardrails.** - Read-only by default; `GPFS_ALLOW_WRITES` enables `POST/PUT`; `GPFS_ALLOW_DESTRUCTIVE` enables `DELETE`. - `GPFS_CONFIRM_MUTATIONS` gates each mutating call at the human. - Optional `GPFS_PATH_ALLOW` / `GPFS_PATH_DENY` regex on the request path. - Free-text `GPFS_INSTRUCTIONS` / `GPFS_INSTRUCTIONS_FILE` appended to the system prompt for site-specific rules. - **Curated `/scalemgmt/v3` endpoint reference** baked into the system prompt (`gpfs_agent/endpoints.py`), compiled from IBM Storage Scale 5.2.3 / 6.0.0 docs. Covers cluster, nodes, NSDs, filesystems, filesets, snapshots, quotas, policies, jobs and perfmon — plus async-job conventions and the `:link` / `:unlink` / `:batchDelete` custom-verb syntax. - **TLS hardening knobs.** `GPFS_VERIFY_TLS` and `GPFS_CA_BUNDLE` for self-signed lab gear. [Unreleased]: https://git.discworld.casa/laurence/gpfsagent/compare/v0.2.0...HEAD [0.2.0]: https://git.discworld.casa/laurence/gpfsagent/compare/v0.1.0...v0.2.0 [0.1.0]: https://git.discworld.casa/laurence/gpfsagent/releases/tag/v0.1.0