You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Resolution chain per field: surface-specific override > display default > binding-level field > scanner value.
resolve(modules, *, binding_path=..., binding_data=...) — accepts pre-parsed dict or a path to a .binding.yaml file / directory of *.binding.yaml files. binding_data takes precedence over binding_path.
MCP alias auto-sanitization: replaces characters outside [a-zA-Z0-9_-] with _; prepends _ if result starts with a digit.
MCP alias hard limit: raises ValueError if sanitized alias exceeds 64 characters.
CLI alias validation: warns and falls back to display.alias when user-explicitly-set alias does not match ^[a-z][a-z0-9_-]*$ (module_id fallback always accepted without warning).
suggested_alias in ScannedModule.metadata (emitted by simplify_ids=True scanner) used as fallback when no display.alias is set.
Match-count logging: INFO for match count, WARNING when binding map loaded but zero modules matched.
New feature spec: docs/features/display-overlay.md
Tests
30 new tests in tests/test_display_resolver.py covering: no-binding fallthrough, alias-only overlay, surface-specific overrides, MCP sanitization, MCP 64-char limit, suggested_alias fallback, sparse overlay (10 modules / 1 binding), tags resolution, binding_path file and directory loading, guidance chain, CLI invalid alias warning and fallback, binding_data vs binding_path precedence.
Added (Convention Module Discovery — §5.14)
ConventionScanner — scans a commands/ directory of plain Python files for public functions and converts them to ScannedModule instances with schema inferred from PEP 484 type annotations.
Module ID: {file_prefix}.{function_name} with MODULE_PREFIX override.
Description from first line of docstring ("(no description)" fallback).
input_schema / output_schema inferred from type hints.
CLI_GROUP and TAGS module-level constants stored in metadata.
include / exclude regex filters on module IDs.
New feature spec: docs/features/convention-scanning.md