Release notes — pyappengine 0.7
================================


Documentation
-------------
- Added full API reference (Google-style docstrings on all public classes and
  methods: AppEngine, CommandsLoader, Commands, AEErrs, AppEngineException).
- Set up MkDocs with Material theme and mkdocstrings for auto-generated
  documentation site.
- Added docs/index.md (overview and quick-start example).
- Added docs/getting-started.md (project structure, module authoring guide,
  dependency declaration, help system, error handling).
- Added docs/api.md (API reference page, auto-generated from docstrings).


Tests
-----
- Added test suite based on pytest and pytest-cov (88% → 91% coverage).
- tests/conftest.py: shared fixtures and SampleModule helper class.
- tests/test_errors.py: tests for is_number, AEErrs, AppEngineException.
- tests/test_commands.py: tests for Commands (val_to_print, logging, stop,
  help, list_modules, execute_command, dispatch).
- tests/test_commands_loader.py: tests for dynamic module loading, nickname
  override, config section injection, dependency injection (list and dict
  forms), threaded module lifecycle.
- tests/test_app_engine.py: tests for AppEngine init, config parsing, log
  setup, stop mechanism.


Bug fixes
---------
- AEErrs.__str__: ERROR_MESSAGES was keyed by enum members but looked up by
  integer value (.value). Fixed to look up by enum member.
- execute_command: after resolving an underscore/hyphen module alias, the
  original (non-aliased) name was still used for dispatch, causing a KeyError.
  Fixed to use the resolved alias.
- execute_command: when parsing "help <module>" (no function name), args were
  not cleared before dispatch. This caused cmd_help() to receive the module
  name as an argument and return "No command with this name". Fixed to clear
  args and kwargs after resolving the module name.


Project / packaging
-------------------
- pyproject.toml: added optional dependency groups [docs] and [dev].
- pyproject.toml: added [tool.pytest.ini_options] (testpaths, pythonpath,
  default coverage options).
- .gitignore: added site/, .coverage, htmlcov/, .pytest_cache/.
- README.md: added Development section (installation, running tests, coverage
  reports, documentation preview and build).
