Changelog

All notable changes to this project will be documented in this file.

The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.

Unreleased

Added

  • --reply-mode {cautious|default|always} option for the process-next, process-ticket, and process-all subcommands, controlling when rcpond skips a ticket based on prior activity.

0.2.0 - 2026-05-27

Added

  • Ticket filtering: only unassigned tickets with a meaningful short description are returned by default; --long-list disables the filter.
  • Email template files whose filenames begin with _ (e.g. _sign_off.j2) are now treated as Jinja2 partials. They are excluded from the LLM's list of selectable templates but remain available to the Jinja renderer via {% include %}. Variables declared inside partials are still surfaced to the LLM as required parameters.

0.1.3 - 2026-05-18

Added

  • browse-ticket subcommand: opens a ticket in the default browser.
  • whoami subcommand: shows the identity of the currently authenticated OAuth user.
  • --env-file flag as a self-contained alternative to the default XDG config file (mutually exclusive with ~/.config/rcpond/default.config).
  • comments field on tickets (in addition to work_notes).
  • Ticket idempotency: process-next, process-ticket, and process-all skip tickets that rcpond has already acted on (identified by a prefix on all rcpond-generated work notes).
  • Race-condition guard: ticket state is re-checked after the LLM has finished to avoid acting on a ticket that was concurrently updated by another user.

0.1.2 - 2026-04-28

Added

  • assigned_to and state fields on tickets.
  • Work note prefix on all rcpond-generated notes, used to identify prior rcpond activity.

0.1.1 - 2026-04-17

No functional changes — version bump only.

0.1.0 - 2026-04-17

Added

  • Core CLI built with Typer, exposing the following subcommands: login, display-all, display-ticket, process-next, process-ticket, process-all, and evaluate-all.
  • ServiceNow API client for fetching and updating HPC/cloud access request tickets.
  • LLM integration via an OpenAI-compatible chat completions API (tool/function-calling support).
  • OAuth 2.0 authentication (Authorization Code + PKCE flow) with browser-based login and local token caching under $XDG_CACHE_HOME/rcpond/tokens.json.
  • Static subscription-key authentication as a simpler alternative to OAuth.
  • Configuration loading from XDG config file (~/.config/rcpond/default.config), environment variables prefixed RCPOND_, and CLI flags — in increasing order of precedence.
  • Rules file and system-prompt template support (RCPOND_RULES_PATH, RCPOND_SYSTEM_PROMPT_TEMPLATE_PATH).
  • Email template system using Jinja2 (.j2 files), with ticket.* fields resolved deterministically and all other variables generated by the LLM.
  • evaluate-all subcommand: evaluates LLM performance against a directory of pre-downloaded HTML ticket files, with support for multiple runs per ticket for majority-vote analysis.
  • --dry-run flag for process-next, process-ticket, and process-all: shows what rcpond would do without actually posting to ServiceNow.
  • --yes-i-am-sure confirmation flag required for process-all.
  • Read the Docs documentation site with MkDocs, including a configuration guide, API reference, and quick-start.