docs: add changelog for v0.1.0 and v0.2.0

This commit is contained in:
Laurence Horrocks-Barlow 2026-05-20 14:23:48 +01:00
parent 0d75d73c23
commit 14d57808fe

58
CHANGELOG.md Normal file
View file

@ -0,0 +1,58 @@
# 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