Releases: aiperceivable/apcore-cli
Releases · aiperceivable/apcore-cli
Release 0.4.0 (2026-03-29)
Added
- FR-DISP-007: Verbose help mode — Built-in apcore options (
--input,--yes,--large-input,--format,--sandbox) are now hidden from--helpoutput by default. Pass--help --verboseto display the full option list. Addedverboseto reserved flag names to prevent schema property collisions. - FR-SHELL-002: Universal man page generation —
build_program_man_page()generates a complete roff man page covering all registered commands (including downstream business commands).configure_man_help()adds--help --mansupport to any CLI program. Downstream projects get man pages with a single function call. - Documentation URL support —
set_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
--sandboxis 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.mdfeature 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), andconfigure_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.mdfeature 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)
Added
- Display overlay routing (§5.13) —
LazyModuleGroupnow readsmetadata["display"]["cli"]for alias and description when building the command list and routingget_command()._alias_map: built frommetadata["display"]["cli"]["alias"](with module_id fallback), enabling invocation by alias._descriptor_cache: populated during alias map build to avoid doubleregistry.get_definition()calls._alias_map_builtflag only set on successful build, allowing retry after transient registry errors.
- Display overlay in JSON output —
format_module_list(..., "json")readsmetadata["display"]["cli"]forid,description, andmetadata["display"]["tags"].
Changed
_ERROR_CODE_MAP.get(error_code, 1): guarded withisinstance(error_code, str)to preventNone-key lookup.- Dependency bump: requires
apcore-toolkit >= 0.4.0forDisplayResolver. - Updated feature specs:
core-dispatcher.md(alias map, descriptor cache),output-formatter.md(JSON branch display overlay).
Tests
TestDisplayOverlayAliasRouting(6 tests):list_commandsuses CLI alias,get_commandby alias, cache hit path, module_id fallback,build_module_commandalias 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, withdisplay.cli.groupoverride. 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, documentsGroupedModuleGroupas 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--descriptionoptions. Generates module templates in the appropriate directory.--commands-dirCLI option — path to a convention commands directory. When set,ConventionScannerfromapcore-toolkitscans for plain functions and registers them as modules.
Tests (Convention Module Discovery)
- 6 new tests in
tests/test_init_cmd.pycovering all three styles and options.
0.2.0
Changed
- Core Dispatcher (FE-01): Added 3-tier log level precedence spec —
--log-levelflag >APCORE_CLI_LOGGING_LEVEL>APCORE_LOGGING_LEVEL>WARNING; renumberedcreate_clilogic steps accordingly - Core Dispatcher (FE-01):
register_shell_commands()call now passesprog_name=prog_name(FR-DISP-006 alignment) - Core Dispatcher (FE-01):
--log-levelaccepted choices updated:WARN→WARNING - Core Dispatcher (FE-01): Added FR-DISP-006 requirement — CLI program name resolved from
argv[0]basename with explicitprog_nameparameter override - Shell Integration (FE-06): Added
4.2 _make_function_namehelper spec with POSIX identifier conversion example - Shell Integration (FE-06): Updated all generator function signatures to include
prog_name: strparameter; documentedshlex.quote()usage in all shell directive positions (not just embedded subshell commands) - Shell Integration (FE-06): Added
4.6 register_shell_commandsspec withprog_nameparameter and closure capture semantics - Shell Integration (FE-06): Man page
.SH ENVIRONMENTsection now specifies 4 env vars includingAPCORE_CLI_LOGGING_LEVEL; updatedWARN→WARNING - Approval Gate (FE-03):
check_approvalsignature corrected — removedctx: click.Contextparameter (was not used in implementation) - Approval Gate (FE-03):
annotationsguard updated to support both dict access and attribute access - Security Manager (FE-05):
_hash_inputformula updated to includesecrets.token_bytes(16)per-invocation salt (prevents cross-invocation correlation) - Security Manager (FE-05):
_get_userextended withpwd.getpwuid()as second fallback step before env var lookup
Added
APCORE_CLI_LOGGING_LEVELenvironment variable to CLI Reference and Environment Variables table in README (CLI-specific log level; takes priority overAPCORE_LOGGING_LEVEL)
Fixed
- README:
--log-leveldefault corrected toWARNING(wasINFO); accepted values updated fromWARN→WARNING
0.1.0
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