Repository navigation
Releases: atgreen/agcm
Release list
v0.4.0
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
postHydraclient method is gone
v3 Data Model
The Case, Comment, and Attachment structs now match the v3 Salesforce field names and formats:
- Dates: New
FlexTimetype handles Salesforce's2006-01-02T15:04:05.000+0000format alongside ISO 8601 - Comments: HTML comment bodies are converted to plain text via
html2text; theCreatedByTypefield 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 accountssimplified — v3 does not expose account names, so the output shows account numbers onlyagcm showdisplaysCreatedByTypeinstead of the removed booleanPublicfield- Export markdown template updated for v3 field names (
caseType,accountNumberRef,emailAddress)
Known Limitations
- Group and owner filters: The GraphQL endpoint does not support
groupNumberorownerSSONamefiltering. 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
accountscommand now shows numbers only.
v0.3.0
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
tin the TUI to cycle themes; the choice is saved to your config - Set
ui.themeinconfig.yamlto pin a theme (autopicks dark or light from the terminal background)
About Box
- Press
ain the TUI for an About box with version, author, license, and links for reporting bugs and feature requests agcm --helpnow 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- defaultlist caseslimit when--limitis not given (default: 25)
Fixes
Ctrl+U/Ctrl+Dnow 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 showno longer fetches case comments twice
Changes
- Removed the
export_caseMCP tool. It returned exactly the same markdown asget_case; useget_caseinstead. - Bundle export (
Bin 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
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 stdioTo 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 casesget_case- Get full case details with comments and attachmentssearch- Search cases, solutions, and knowledge base articlesget_solution- Get a KB solution by IDget_article- Get a KB article by IDexport_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 powershellRun 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-logflag to specify a custom log file path - New
debug.log_fileconfig option inconfig.yaml - Export debug output now goes to the same log file instead of stderr
- The debug log path is printed to stderr when
--debugis enabled
v0.1.10
v0.1.10
Minor release adding CLI support for bundle export.
New Features
--bundleflag for CLI export: Export cases to bundled 4MB markdown files from the command lineagcm export cases --bundle 1 # Bundle export using preset 1 agcm export cases --bundle --status open # Bundle export open cases
- Same functionality as the
Bkey 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.
- Same functionality as the
v0.1.9
v0.1.9
Feature release adding bundle export for AI tool integration.
New Features
- Bundle export (
Bkey): 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
- Press
Bin the TUI - Select an output directory
- Cases are exported to numbered bundle files, each under 4MB
v0.1.8
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 1agcm export cases 1- Export cases using preset 1- Presets are created in the TUI using
Ctrl+sfollowed 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 caseswithout 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 caseswithout arguments still lists all cases (unchanged)
v0.1.7
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
- Combined exports (
-
Search navigation: Fixed
Ctrl-fsearch 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
--debugflag is used- Removed unconditional debug file creation in TUI components
v0.1.6
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-9or0to load a saved preset - Press
Ctrl+sthen a digit to save current filter to that slot - Presets are persisted in config file (
~/.config/agcm/config.yaml)
- Press
-
Multiple account support: Filter by multiple accounts simultaneously
- CLI: Use
-aflag with comma-separated account numbers - TUI: Enter comma-separated accounts in the filter dialog
- CLI: Use
-
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
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
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