58 lines
2.7 KiB
Markdown
58 lines
2.7 KiB
Markdown
# 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
|