Skip to content

Releases: kioku/aperture

v0.1.9

04 Mar 21:46

Choose a tag to compare

[0.1.9] - 2026-03-04

⚙️ Miscellaneous Tasks

  • Batch update cargo dependencies (#112)
  • Trigger binary-size workflow on push to feature branch
  • Echo binary sizes to stdout for log capture
  • Correct job output names and Windows step ID in binary-size workflow
  • Remove dead push trigger and unused DATE env var from binary-size workflow
  • Fix matrix output aggregation in binary-size workflow
  • Align artifact action versions with rest of project
  • Bump version to 0.1.9

🐛 Bug Fixes

  • Ensure dependent batch captures raw unfiltered response
  • Validate duplicate operation IDs in batch dependency graph
  • Track all capture_append providers for implicit dependencies
  • Include operation IDs in cycle detection error messages
  • Replace tautological assertion in dry-run integration test
  • Treat capture failure as operation failure in batch result
  • Store interpolated args in dependent batch operation results
  • Remove false-positive dependency detection from literal {{ in args
  • Reduce extract_variable_references visibility to module-private
  • Treat empty capture/depends_on as absent in dependency detection
  • Preserve JSON capture semantics for dependent workflows
  • Preserve captured string values and JSON-escape list interpolation
  • Apply batch rate limits in dependent execution mode
  • Reject empty-string capture results
  • Report concrete dependency cycle paths
  • Resolve ast-grep no-println lint warnings
  • Raise default log level to warn so spec-load warnings are visible
  • Revert tracing::error! to eprintln! for user-facing usage errors
  • Suppress no-println for errors.rs via rule ignores instead of per-call comments
  • Restore multi-line eprintln! and add constraint rationale to ignores
  • Use required_unless_present so --body-file satisfies required body
  • Add body_file to --describe-json batch manifest
  • Interpolate body_file path in dependent batch operations
  • Reject body_file field when --body-file or --body appears in args
  • Trim trailing whitespace from body read via --body-file
  • Catch --body-file= equals-sign form in body_file conflict guard
  • Restrict write_error visibility to private — test submodule accesses it as a child module
  • Hoist wiremock imports to module level in resilience tests — remove redundant inner use statements
  • Assert touch exit code in test_cleanup_removes_stale_tmp_files — distinguish spawn failure from non-zero exit
  • Replace touch -d with File::set_modified for cross-platform mtime backdating
  • Switch to platform-conditional TLS crypto provider
  • Install platform-specific rustls crypto provider before client creation
  • Correct PaginationInfo serde attrs and add PaginationInfo imports
  • Prevent infinite loop when Link header URL has no query string
  • Set PaginationManifestInfo default strategy to "none"
  • Align pagination field indentation in docs_tests.rs
  • Emit structured NDJSON error on mid-stream pagination failure
  • Derive Copy on PaginationStrategy (fieldless enum)
  • Warn when --jq is combined with --auto-paginate
  • Document $ref response limitation in pagination heuristics
  • Treat "skip" as record-offset in advance_offset_strategy
  • Warn when --format is ignored with --auto-paginate

📚 Documentation

  • Update changelog for v0.1.8 and automate via release CI
  • Add documentation for v0.1.8 features
  • Remove author attributions and agent-specific guidance files
  • Update README performance claims to match measured values
  • Add documentation for dependent batch workflows
  • Document --body-file flag and body_file batch field
  • Update cli/errors module comment to reflect writer-injection design
  • Update binary size optimization doc for platform-conditional TLS
  • Record v0.1.9 per-platform binary size measurements
  • Update binary size claim to < 6 MB (default features, all platforms)
  • Add --auto-paginate section to agent integration guide

🚀 Features

  • Extend BatchOperation with capture, capture_append, and depends_on fields
  • Implement dependency graph validation and topological sort
  • Implement variable interpolation engine
  • Implement JQ-based value extraction for batch captures
  • Wire dependent batch execution with topological ordering
  • Expose batch schema and dependent workflow capabilities in --describe-json
  • Add --body-file arg to generator command tree
  • Extend extract_body to handle --body-file
  • Add body_file field to BatchOperation
  • Add binary-sizes.json and automate population from CI
  • Implement --auto-paginate flag with cursor, offset, and link-header strategies

🧪 Testing

  • Add integration tests for dependent batch workflows
  • Add coverage for --body-file flag
  • Verify batch execution reads request body from body_file
  • Cover body_file path interpolation in dependent batch
  • Cover all print_error network branches via write_error
  • Unit tests for execute_with_retry and execute_with_retry_tracking
  • Cover cache management methods and temp-file cleanup
  • To_json() coverage for all ErrorKind variants and external error types
  • Extract FailThenSucceed responder to module level in resilience tests
  • Add message assertion to test_to_json_http_request_kind
  • Clarify doc comment on test_to_json_network_status_fallback_no_context
  • Tighten retry exhaustion assertion — drop dead disjunct

v0.1.8

15 Feb 01:38

Choose a tag to compare

[0.1.8] - 2026-02-15

Arch

  • Decouple execution core from CLI layer (clap, stdout) (#77)

Deps

  • Add tracing and tracing-subscriber for logging

⚙️ Miscellaneous Tasks

  • Remove duplicate crates.io publish step
  • Move entire release process to GitHub Actions
  • Apply rustfmt formatting
  • Add conventional commit message hook
  • Add cargo-deny configuration
  • Add Dependabot configuration for cargo and github-actions
  • Upgrade CI workflow
  • Upgrade release workflow
  • Add exclude list to Cargo.toml for crates.io hygiene
  • Add fail-fast: false to integration-tests matrix
  • Bump oas3 from 0.17.0 to 0.20.1
  • Replace bincode with postcard for cache serialization
  • Add nix build and flake check steps to CI workflow
  • Add nix result symlink to .gitignore
  • Release v0.1.8

🐛 Bug Fixes

  • Prevent panic on Unicode body truncation in logging
  • Standardize redaction markers to [REDACTED]
  • cache: Scrub auth headers before storing CachedRequestInfo
  • cache: Skip caching for authenticated requests by default
  • deps: Upgrade bytes to 1.11.1 to resolve RUSTSEC-2026-0007
  • Validate API context names to prevent path traversal (#74)
  • Address review findings for atomic I/O and advisory locking
  • Resolve clippy warnings in cache_fingerprint_tests for CI
  • Resolve ast-grep and clippy linting violations
  • Honor global output format when api command uses default
  • Resolve PR review findings for batch cache path and legacy docs
  • Restore Zlib license in deny.toml
  • Move unix-gated dependencies to cross-platform section
  • Overlay command mapping fields onto --describe-json manifest
  • Use effective display names in exec shortcut resolution paths
  • Align mapping collision detection with generator name resolution
  • Align search effective_command_path with generator name resolution
  • Prevent secret removal from erasing command mappings and environment URLs
  • Correct minor issues in search and shortcut resolution
  • Align build_full_command group fallback with generator and search
  • Add conflicts_with between --group and --operation in set-mapping
  • Add conflicts_with between --group and --operation in remove-mapping
  • Reject empty string values in command mapping configuration
  • Avoid creating empty operation mapping entries
  • Validate spec existence for mapping removals
  • Honor mapped command names in help and listings
  • Resolve mapped command names in operation translation

📚 Documentation

  • Add homebrew and cargo-binstall installation options
  • Add comprehensive debugging and logging guide
  • Update debugging guide with new logging features
  • adr: Document cache policy for authenticated requests
  • Add Nix installation instructions to README
  • Add ADR 009 for custom command mapping approach

🚀 Features

  • Initialize tracing-subscriber for debug logging
  • Add -v flag for debug logging control
  • Create logging module with redaction utilities
  • Integrate logging into HTTP request/response execution
  • Enhance logging security with expanded redaction
  • Add APERTURE_LOG_FILE for file-based logging
  • Add dynamic x-aperture-secret redaction in logs
  • Warn on invalid APERTURE_LOG_FORMAT values
  • cache: Add allow_authenticated config option
  • cache: Add scrub_auth_headers utility function
  • Spec cache fingerprint invalidation when source file changes (#75)
  • Add flake.nix with package variants and devShell
  • Add CommandMapping and OperationMapping models to ApiConfig
  • Add display_group, display_name, aliases, hidden fields to CachedCommand
  • Apply command mappings during spec transformation
  • Update command tree generator to use display names, aliases, and hidden
  • Update search and shortcuts to recognize display names and aliases
  • Include mapping fields in --describe-json capability manifest
  • Add CLI commands for managing command mappings
  • Add --remove-alias flag to config set-mapping command

🚜 Refactor

  • Resolve PR review findings for executor/CLI decoupling

🧪 Testing

  • Add integration tests for logging functionality
  • cache: Add security tests for auth header scrubbing
  • Add domain, translate, render, and executor decoupling coverage
  • Add integration tests for command mapping feature
  • Add unit tests for command mapping config manager methods
  • Add search tests for display_name, alias, and display_group matching

v0.1.7

26 Jan 13:24

Choose a tag to compare

⚙️ Miscellaneous Tasks

  • Add ast-grep configuration with custom Rust linting rules
  • Suppress no-println warnings with ast-grep-ignore comments
  • Exclude files with test modules from no-unwrap rule
  • Update slab to 0.4.11 to fix RUSTSEC-2025-0047
  • Suppress ast-grep no-println warnings in output module
  • Update dependencies to latest versions
  • Upgrade toml from 0.8 to 0.9
  • Upgrade reqwest from 0.12 to 0.13
  • Improve pre-commit hooks for better local testing

🎨 Styling

  • Fix ast-grep linting issues

🐛 Bug Fixes

  • Use sibling relationship for #[cfg(test)] module exclusion
  • Resolve clippy warnings in test files and align pre-commit with CI
  • Parse EDITOR env var to support commands with arguments
  • ci: Override target-cpu=native to prevent SIGILL on cached builds
  • test: Handle Windows .exe extension in binary name assertion
  • Make quiet mode behavior consistent across all commands
  • Show data in quiet mode for list-secrets and list-urls
  • Switch from native-tls to rustls for cross-compilation support
  • Use aws-lc-rs crypto backend instead of ring for Apple Silicon support
  • Initialize rustls crypto provider for test compatibility
  • ci: Add --force to cargo-nextest install for cache consistency
  • ci: Add fallback check for cargo-nextest availability
  • Filter skipped endpoints from --describe-json manifest
  • config: Add debug assertions for type mismatches in set_setting
  • Commit changelog before cargo release

📚 Documentation

  • Restructure README and split into focused documentation (#61)
  • Update binary size to 4.0MB (aws-lc-rs crypto backend)
  • config: Add checklist for adding new settings
  • Add documentation for v0.1.7 features

🚀 Features

  • agent: Expose response schemas in describe manifest (#60)
  • Add quiet mode for agent-friendly output suppression
  • Hide global flags from dynamic command help
  • Add multi-platform release workflow with cargo-binstall support
  • Auto-update homebrew formula on release
  • Add endpoint statistics showing X of Y endpoints available
  • Add toml_edit for comment-preserving config edits
  • Add SettingKey enum and validation for config settings
  • Add Set, Get, Settings subcommands to config
  • Implement ConfigManager methods for settings
  • Implement command handlers for set/get/settings
  • config: Add timeout range validation
  • Add Retry-After header parsing support
  • Add RetryInfo and RetryResult for retry tracking
  • Add RetryDefaults configuration struct
  • Add retry settings to settings system
  • Add retry-related command line flags
  • Thread retry configuration through executor
  • Wire retry configuration from CLI to executor
  • Add retry fields to BatchOperation
  • Integrate retry logic into batch execution
  • Enhance JSON error output with detailed retry info

🚜 Refactor

  • Replace .unwrap() with .expect() in production code
  • Eliminate all nested if statements (138 violations)
  • Eliminate all max-nesting-depth violations (21 errors)
  • Refine no-nested-if rule to reduce false positives
  • Fix remaining no-nested-if violations after rule refinement
  • Consolidate bonus score helpers into single generic function
  • config: Extract value_from_config helper to reduce duplication
  • Extract print_settings_list to reduce nesting depth
  • Improve retry logic code quality
  • Remove unused retry_status_codes config field

🧪 Testing

  • Add batch operations quiet mode integration test
  • Add assertion verifying command count matches available endpoints
  • Add unit tests for ConfigManager settings methods
  • Add integration tests for config set/get/settings commands
  • Add test verifying TOML comments are preserved by set_setting
  • Add comprehensive unit tests for is_retryable_status
  • Add integration tests for retry behavior
  • Update settings count expectation for retry config

v0.1.6

22 Jan 23:09

Choose a tag to compare

⚙️ Miscellaneous Tasks

  • Clean up unused imports and fix warnings
  • Enhance release script with changelog automation

🐛 Bug Fixes

  • Resolve panic conditions and improve error handling
  • Resolve panic conditions and improve error handling for production stability
  • Rename help command to docs to avoid clap conflict
  • docs: Replace .unwrap() with .ok() for consistency
  • Resolve compilation errors with openapi31 and jq features
  • Resolve variable shadowing to enable jq feature compilation
  • Migrate to jaq v2.x to resolve compilation and functionality issues
  • Convert tags with spaces to kebab-case for CLI compatibility
  • Convert tags to kebab-case in documentation generator
  • Resolve clap panic from parameter name conflicts and add boolean parameter support
  • Enforce required boolean parameters with proper validation
  • Make boolean path parameters consistently optional
  • Ensure boolean parameters work correctly in positional args mode

📚 Documentation

  • Update CLAUDE.md to reflect working jq feature with v2.x
  • Update README to reflect working jq feature

🚀 Features

  • Add search command to CLI interface
  • Add enhanced help with examples
  • Improve error messages with smart suggestions
  • Implement command shortcuts and aliases
  • Integrate comprehensive documentation features
  • Add original_tags field for full tag consistency in JSON manifests
  • Add boolean header parameter support

🚜 Refactor

  • Break down long generate_command_help function
  • Move inline imports to module/function level for better performance and readability
  • Eliminate remaining high-priority inline imports in production code
  • Fix final production code inline import in transformer.rs
  • Complete inline import elimination - move all remaining imports to proper scope
  • Complete standardization of import patterns

🧪 Testing

  • Fix list-commands assertion to expect 'General' instead of 'default'
  • Add integration tests for --show-examples execution path