Skip to content

Releases: aiperceivable/apcore-cli

Release 0.4.0 (2026-03-29)

30 Mar 01:24

Choose a tag to compare

Added

  • FR-DISP-007: Verbose help mode — Built-in apcore options (--input, --yes, --large-input, --format, --sandbox) are now hidden from --help output by default. Pass --help --verbose to display the full option list. Added verbose to reserved flag names to prevent schema property collisions.
  • FR-SHELL-002: Universal man page generationbuild_program_man_page() generates a complete roff man page covering all registered commands (including downstream business commands). configure_man_help() adds --help --man support to any CLI program. Downstream projects get man pages with a single function call.
  • Documentation URL supportset_docs_url() / setDocsUrl() sets a base URL for online documentation links in help footers and man pages. Documented in tech-design §8.7.6 and shell-integration §4.10.

Changed

  • --sandbox is now always hidden from help (not yet implemented). FR-DISP-007 updated from "five" to "four" toggled options.
  • Improved built-in option descriptions across all three SDKs for clarity.
  • Updated core-dispatcher.md feature spec: added FR-01-07 traceability entry and built-in option visibility note.
  • Updated tech-design.md: documented verbose help behavior, build_program_man_page (§8.7.4), and configure_man_help (§8.7.5).
  • Updated srs.md: added FR-DISP-007 requirement; updated FR-SHELL-002 with full-program mode and acceptance criteria.
  • Updated shell-integration.md feature spec: added FR-06-03, §4.8 (build_program_man_page), §4.9 (configure_man_help), and verification tests T-SHELL-09 through T-SHELL-13.

Release 0.3.0 (2026-03-23)

27 Mar 10:42

Choose a tag to compare

Added

  • Display overlay routing (§5.13)LazyModuleGroup now reads metadata["display"]["cli"] for alias and description when building the command list and routing get_command().
    • _alias_map: built from metadata["display"]["cli"]["alias"] (with module_id fallback), enabling invocation by alias.
    • _descriptor_cache: populated during alias map build to avoid double registry.get_definition() calls.
    • _alias_map_built flag only set on successful build, allowing retry after transient registry errors.
  • Display overlay in JSON outputformat_module_list(..., "json") reads metadata["display"]["cli"] for id, description, and metadata["display"]["tags"].

Changed

  • _ERROR_CODE_MAP.get(error_code, 1): guarded with isinstance(error_code, str) to prevent None-key lookup.
  • Dependency bump: requires apcore-toolkit >= 0.4.0 for DisplayResolver.
  • Updated feature specs: core-dispatcher.md (alias map, descriptor cache), output-formatter.md (JSON branch display overlay).

Tests

  • TestDisplayOverlayAliasRouting (6 tests): list_commands uses CLI alias, get_command by alias, cache hit path, module_id fallback, build_module_command alias and description.
  • test_format_list_json_uses_display_overlay: JSON output uses display overlay alias/description/tags.
  • test_format_list_json_falls_back_to_scanner_when_no_overlay: JSON output falls back to scanner values.

Added (Grouped Commands — FE-09)

  • Feature spec grouped-commands.md (FE-09) — nested subcommand groups for CLI. Auto-groups by first . segment, with display.cli.group override. Includes 10 requirements (FR-09-01 through FR-09-10), boundary values, error handling table, and 18 verification test cases.
  • Tech Design v2.0 — full rewrite incorporating both §5.13 Display Overlay and Grouped CLI Commands. 3 alternative solutions with weighted comparison matrix, 8 ADRs, 5 sequence diagrams.
  • Updated core-dispatcher.md — references FE-09, documents GroupedModuleGroup as v2.0 root group.
  • Updated overview.md — added FE-09 row to feature table.

Added (Convention Module Discovery — §5.14)

  • apcore-cli init module <id> — scaffolding command with --style (decorator, convention, binding) and --description options. Generates module templates in the appropriate directory.
  • --commands-dir CLI option — path to a convention commands directory. When set, ConventionScanner from apcore-toolkit scans for plain functions and registers them as modules.

Tests (Convention Module Discovery)

  • 6 new tests in tests/test_init_cmd.py covering all three styles and options.

0.2.0

16 Mar 09:38

Choose a tag to compare

Changed

  • Core Dispatcher (FE-01): Added 3-tier log level precedence spec — --log-level flag > APCORE_CLI_LOGGING_LEVEL > APCORE_LOGGING_LEVEL > WARNING; renumbered create_cli logic steps accordingly
  • Core Dispatcher (FE-01): register_shell_commands() call now passes prog_name=prog_name (FR-DISP-006 alignment)
  • Core Dispatcher (FE-01): --log-level accepted choices updated: WARNWARNING
  • Core Dispatcher (FE-01): Added FR-DISP-006 requirement — CLI program name resolved from argv[0] basename with explicit prog_name parameter override
  • Shell Integration (FE-06): Added 4.2 _make_function_name helper spec with POSIX identifier conversion example
  • Shell Integration (FE-06): Updated all generator function signatures to include prog_name: str parameter; documented shlex.quote() usage in all shell directive positions (not just embedded subshell commands)
  • Shell Integration (FE-06): Added 4.6 register_shell_commands spec with prog_name parameter and closure capture semantics
  • Shell Integration (FE-06): Man page .SH ENVIRONMENT section now specifies 4 env vars including APCORE_CLI_LOGGING_LEVEL; updated WARNWARNING
  • Approval Gate (FE-03): check_approval signature corrected — removed ctx: click.Context parameter (was not used in implementation)
  • Approval Gate (FE-03): annotations guard updated to support both dict access and attribute access
  • Security Manager (FE-05): _hash_input formula updated to include secrets.token_bytes(16) per-invocation salt (prevents cross-invocation correlation)
  • Security Manager (FE-05): _get_user extended with pwd.getpwuid() as second fallback step before env var lookup

Added

  • APCORE_CLI_LOGGING_LEVEL environment variable to CLI Reference and Environment Variables table in README (CLI-specific log level; takes priority over APCORE_LOGGING_LEVEL)

Fixed

  • README: --log-level default corrected to WARNING (was INFO); accepted values updated from WARNWARNING

0.1.0

16 Mar 09:37

Choose a tag to compare

Added

  • Initial specification and design documents
  • Tech Design v0.4 and v1.0
  • Software Requirements Specification (SRS) v0.1
  • 8 feature specifications: Core Dispatcher, Schema Parser, Approval Gate, Discovery, Security Manager, Shell Integration, Config Resolver, Output Formatter
  • Project manifest with feature table and implementation order
  • Idea draft with problem validation and requirement IDs
  • Beginner guide (Getting Started) section in README
  • GitHub repository links and SDK reference table
  • Related Projects section linking to ecosystem repos
  • Full CLI Reference section (global options, commands, execution options, exit codes)
  • Configuration section with 4-tier precedence and environment variables
  • Architecture diagram and apcore-to-CLI mapping table
  • CHANGELOG.md