Skip to content

Releases: atgreen/agcm

v0.4.0

Choose a tag to compare

@github-actions github-actions released this 25 Sep 14:42

v0.4.0

API migration release: case listing now uses the Red Hat GraphQL API, replacing the REST v3 filter endpoint that was limited to ~5 cases per response.

What Changed

GraphQL Case Listing

The REST v3 POST /cases/filter endpoint returns full case objects (~100KB each, with inline comments, bugzillas, and descriptions). Salesforce payload limits meant most queries returned only 4-6 cases regardless of how many matched.

agcm now uses the Red Hat GraphQL API (https://graphql.redhat.com) for case listing. GraphQL lets us request only the fields the list view needs (~200 bytes per case), so a single request returns up to 200 cases with cursor-based pagination for more. Individual case detail, comments, and attachments are still fetched via REST v3 when you select a case.

Full v1/Hydra API Removal

The v1 Solr-backed API was deprecated and its search index had gone stale (returning zero non-closed cases). All remaining v1 code paths have been removed:

  • Case search (agcm search) now queries via GraphQL instead of Hydra
  • Attachment downloads use the v3 presigned-URL flow
  • The postHydra client method is gone

v3 Data Model

The Case, Comment, and Attachment structs now match the v3 Salesforce field names and formats:

  • Dates: New FlexTime type handles Salesforce's 2006-01-02T15:04:05.000+0000 format alongside ISO 8601
  • Comments: HTML comment bodies are converted to plain text via html2text; the CreatedByType field replaces the old boolean public/private flags
  • Statuses: v3 uses "In Progress", "Waiting on Customer Action Required", "Needs New Owner", and "Closed" — the filter bar and filter dialog recognize both old and new names
  • Products: The v3 product field includes the version (e.g., "Red Hat Enterprise Linux 9.8"); the filter uses prefix matching so "Red Hat Enterprise Linux" still works

Fixes

  • Case list now shows all matching cases instead of capping at ~5
  • agcm list accounts simplified — v3 does not expose account names, so the output shows account numbers only
  • agcm show displays CreatedByType instead of the removed boolean Public field
  • Export markdown template updated for v3 field names (caseType, accountNumberRef, emailAddress)

Known Limitations

  • Group and owner filters: The GraphQL endpoint does not support groupNumber or ownerSSOName filtering. These filters are silently ignored; a 2-year lookback is applied as a safety scope when no other filters are set.
  • Account names: The v3 API does not return account names in case responses. The accounts command now shows numbers only.

v0.3.0

Choose a tag to compare

@atgreen atgreen released this 12 Sep 19:43

v0.3.0

Feature release adding color themes and an About box, plus a large batch of TUI fixes and internal cleanup.

New Features

Color Themes

The TUI now ships with selectable color themes: auto, dark, light, dracula, solarized, and mono.

  • Press t in the TUI to cycle themes; the choice is saved to your config
  • Set ui.theme in config.yaml to pin a theme (auto picks dark or light from the terminal background)

About Box

  • Press a in the TUI for an About box with version, author, license, and links for reporting bugs and feature requests
  • agcm --help now shows author, license, and homepage in its footer

Config Options Now Honored

Two documented config keys that previously had no effect now work:

  • api.timeout - HTTP client timeout (default: 30s)
  • ui.page_size - default list cases limit when --limit is not given (default: 25)

Fixes

  • Ctrl+U/Ctrl+D now page the case list as advertised in the help screen
  • Mouse clicks inside the filter dialog now land on the right field: hit-testing and the product dropdown follow the dialog's actual on-screen position instead of assuming the top-left corner
  • Panes no longer render two columns wider than the terminal
  • The STATUS column shrinks gracefully on narrow terminals
  • Wide characters (CJK, emoji) truncate correctly everywhere in the TUI; previously some columns counted bytes or runes instead of display width
  • Refreshing while paginated case pages are in flight no longer duplicates or misplaces rows; stale pages are dropped and re-requested
  • Styled text and OSC-8 hyperlinks survive dialog overlays intact
  • The status bar hints and help screen are rendered from the key map, so they can't drift from the actual bindings
  • agcm show no longer fetches case comments twice

Changes

  • Removed the export_case MCP tool. It returned exactly the same markdown as get_case; use get_case instead.
  • Bundle export (B in the TUI, export cases --bundle) is now shared code with test coverage; CLI progress output is slightly simplified

Internal

  • Removed roughly 1,300 lines of dead and duplicated code across the API client, auth, config, export, and TUI packages
  • New tests for bundle export, list paging keys, filter dialog positioning, and pinned-size frame rendering

v0.2.0

Choose a tag to compare

@github-actions github-actions released this 07 Apr 21:52

v0.2.0

Feature release adding MCP server for AI assistant integration, shell completions, and configurable debug logging.

New Features

MCP Server (agcm mcp)

agcm can now run as a Model Context Protocol server, allowing AI assistants like Claude to interact with Red Hat support cases directly.

agcm mcp    # Start MCP server over stdio

To use with Claude Code or Claude Desktop, add to your MCP settings:

{
  "mcpServers": {
    "agcm": {
      "command": "agcm",
      "args": ["mcp"]
    }
  }
}

Available tools:

  • list_cases - List and filter support cases
  • get_case - Get full case details with comments and attachments
  • search - Search cases, solutions, and knowledge base articles
  • get_solution - Get a KB solution by ID
  • get_article - Get a KB article by ID
  • export_case - Export a case to markdown

Shell Completions (agcm completion)

Generate tab-completion scripts for your shell:

agcm completion bash
agcm completion zsh
agcm completion fish
agcm completion powershell

Run agcm completion --help for per-shell installation instructions.

Configurable Debug Logging

  • Debug log now defaults to ~/.cache/agcm/debug.log (respects $XDG_CACHE_HOME) instead of the hardcoded /tmp/agcm-debug.log
  • New --debug-log flag to specify a custom log file path
  • New debug.log_file config option in config.yaml
  • Export debug output now goes to the same log file instead of stderr
  • The debug log path is printed to stderr when --debug is enabled

v0.1.10

Choose a tag to compare

@github-actions github-actions released this 16 Jan 13:37

v0.1.10

Minor release adding CLI support for bundle export.

New Features

  • --bundle flag for CLI export: Export cases to bundled 4MB markdown files from the command line
    agcm export cases --bundle 1                 # Bundle export using preset 1
    agcm export cases --bundle --status open     # Bundle export open cases
    • Same functionality as the B key in TUI (added in v0.1.9)
    • Creates files no larger than 4MB each (compatible with AI tool upload limits)
    • Files named export-bundle-1.md, export-bundle-2.md, etc.

v0.1.9

Choose a tag to compare

@github-actions github-actions released this 16 Jan 13:21

v0.1.9

Feature release adding bundle export for AI tool integration.

New Features

  • Bundle export (B key): Export all cases to bundled markdown files
    • Creates files no larger than 4MB each (compatible with AI tool upload limits)
    • Files named export-bundle-1.md, export-bundle-2.md, etc.
    • Includes case descriptions and comments only (no attachments)
    • Useful for uploading support case context to Claude, ChatGPT, etc.

Usage

  1. Press B in the TUI
  2. Select an output directory
  3. Cases are exported to numbered bundle files, each under 4MB

v0.1.8

Choose a tag to compare

@github-actions github-actions released this 16 Jan 12:54

v0.1.8

Feature release adding preset support to CLI commands.

New Features

  • Preset support in CLI: Use saved filter presets from the command line
    • agcm list cases 1 - List cases using preset 1
    • agcm export cases 1 - Export cases using preset 1
    • Presets are created in the TUI using Ctrl+s followed by a digit (0-9)
    • CLI flags can override preset values: agcm list cases 1 --severity 1,2

Changes

  • Export cases requires filters: agcm export cases without any filters or
    preset now displays usage help instead of exporting all cases
  • Help screen dismissal: Any key now closes the help screen (previously
    only ? worked)

Behavior Notes

  • If a preset slot has no saved filter, the command prints a message and exits
  • CLI flags always override preset values when both are provided
  • agcm list cases without arguments still lists all cases (unchanged)

v0.1.7

Choose a tag to compare

@github-actions github-actions released this 16 Jan 11:36

v0.1.7

Bug fix release addressing export issues, search navigation, and file picker styling.

Bug Fixes

  • Export fixes:

    • Combined exports (--combined) now properly add cases to the manifest
    • Filter metadata is now correctly persisted in the export manifest
    • Attachments are now downloaded in combined export mode
    • Progress counter uses atomic operations for accurate counts
  • Search navigation: Fixed Ctrl-f search scrolling to wrong positions

    • Now tracks actual viewport line offsets instead of synthetic line numbers
    • Correctly handles headers, metadata, and separator lines in position calculations
  • API client cleanup: Added Close() method to properly release resources

    • Debug file descriptor is now closed on application exit

Improvements

  • File picker styling: Redesigned for better readability

    • Dark background with proper contrast
    • Right-aligned file sizes for consistent alignment
    • Full-width highlight on selected row
    • Styled text input for path entry
  • Debug mode: Debug files are now only created when --debug flag is used

    • Removed unconditional debug file creation in TUI components

v0.1.6

Choose a tag to compare

@github-actions github-actions released this 16 Jan 10:53

v0.1.6

Feature release adding filter presets and multiple product selection.

New Features

  • Filter presets: Save up to 10 filter configurations to slots 1-9 and 0

    • Press 1-9 or 0 to load a saved preset
    • Press Ctrl+s then a digit to save current filter to that slot
    • Presets are persisted in config file (~/.config/agcm/config.yaml)
  • Multiple account support: Filter by multiple accounts simultaneously

    • CLI: Use -a flag with comma-separated account numbers
    • TUI: Enter comma-separated accounts in the filter dialog
  • Multiple product selection: Select multiple products with tag-based UI

    • Products appear as removable tags in the filter dialog
    • Type to search, Enter to add, Backspace to remove last tag
    • Product dropdown overlays to the right of the filter dialog
  • Mouse support in filter dialog: Click to interact with filter dialog

    • Click checkboxes to toggle status/severity filters
    • Click text fields to focus them
    • Click buttons (Apply, Clear, Cancel) to activate
    • Click product dropdown items to select

Improvements

  • Loading spinner: Show spinner overlay when filtering/reloading case list
  • Cleaner filter bar: Hide individual filter pills when a preset is active
  • Updated help: Press ? to see new keybindings for presets

v0.1.5

Choose a tag to compare

@github-actions github-actions released this 16 Jan 09:29

v0.1.5

Bugfix release addressing filter and navigation issues.

Bug Fixes

  • Fix severity filter query: Remove erroneous quotes around severity numbers in API queries that prevented filtering from working correctly
  • Fix focus when switching detail tabs: Automatically switch focus to the detail pane when using left/right arrow keys to change tabs

v0.1.4

Choose a tag to compare

@github-actions github-actions released this 14 Jan 02:05

v0.1.4

Minor UX improvement release.

New Features

  • Centered loading spinner on startup: Display a centered loading box with animated spinner while cases are being fetched on initial load

Usage Examples

# Launch the TUI - you'll see a centered loading spinner while cases load
agcm