#+title: Wurker Hatchery Changelog
#+author: Joseph Edwards VIII
#+email: jedwards8th@gmail.com
#+date: <2026-01-17 Sat>

#+startup: indent showall
#+export_file_name: CHANGELOG.md
#+options: toc:nil num:nil

* CHANGELOG

All notable changes to this project will be documented in this file.

The format is based on [[https://keepachangelog.com/en/1.0.0/][Keep a Changelog]] and this project adheres to [[https://semver.org/spec/v2.0.0.html][Semantic Versioning]].

** v0.1.16 - 2026-01-17

*Changed*:

- Dropped docs/README.md and dropped CHANGELOG.md TOC
- Deleted root README.md, relying on org mode rendering
- Updated documentation and changelog structure

** v0.1.15 - 2026-01-17

*Changed*:

- Dropped and ignored Gemfile.lock

** v0.1.14 - 2026-01-17

*Changed*:

- Pulled v0.1.16
- Updated docs, added CHANGELOG, and fixed a couple small testing bugs
- Updated READMEs

** v0.1.13 - 2025-05-15

*Added*:

- More flexible control/ondemand check window

*Changed*:

- Debugging control & ondemand out-of-loop
- Debugging PyBee, dispatch and models
- Moved load_plugins to only non-admin commands
- Fixed regression bugs involving PyBee.run()

** v0.1.12 - 2025-05-16

*Added*:

- CommandNotReady exception handling for some commands
- User/group support for systemd service templates and logic
- Working directory configuration for systemd services

*Changed*:

- Fixed path resolution for scripts directory
- Removed extra output from admin service
- Updated documentation for test.pypi.org release

** v0.1.11 - 2025-05-14

*Changed*:

- Major refactor to use [[https://hatch.pypa.io][Hatch]] project manager for PyPI packaging
- Restructured project layout with all modules under ~src/wurker~
- Converted from argparse to Click for CLI framework with nested subcommands
- Implemented plugin system for injected dependencies
- Updated SQLAlchemy to v2.0 syntax
- Revised CLI commands to use ~--slug~ option and ~--drone~ filtering
- Enhanced service configuration with user/group support
- Improved exception handling for ~CommandNotReady~ errors
- Updated documentation and configuration for system dependencies

** v0.1.10 - 2025-05-12

*Added*:

- CommandNotReady exception handling for some commands
- User/group support for systemd service templates and logic
- Working directory configuration for systemd services

*Changed*:

- Fixed path resolution for scripts directory
- Removed extra output from admin service
- Updated documentation for test.pypi.org release

** v0.1.7 - 2025-04-15

*Added*:

- Logic to restrict some CLI commands until resources are marshalled
- Bundled node_modules for UI dependencies

*Changed*:

- Various bug fixes and improvements
- Removed sudo-required functionality
- Updated documentation

** v0.1.6 - 2025-04-15

*Added*:

- No specific changes noted in commit history

** v0.1.5 - 2025-04-15

*Added*:

- Bundled node_modules for UI dependencies
- Updated pyproject.toml for Hatch configuration
- Include src/wurker/etc/ data in package

*Changed*:

- Updated documentation in preparation for test.pypi.org release

** v0.1.4 - 2025-04-14

*Added*:

- Plugin system implementation for injected dependencies
- Support for MySQL and PostgreSQL databases

*Changed*:

- Major revisions to multiple components for improved functionality

** v0.1.3 - 2025-04-13

*Added*:

- No specific changes noted in commit history

** v0.1.2 - 2025-04-13

*Added*:

- No specific changes noted in commit history

** v0.1.1 - 2025-04-13

*Added*:

- No specific changes noted in commit history

** v0.1.0 - 2025-04-09

*Added*:

- Complete transition to Hatch project structure
- Full Click-based CLI implementation
- Enhanced documentation system
- GitLab CI/CD integration

*Changed*:

- Refactored to use modern Python packaging standards
- Updated all dependencies and configurations for PyPI distribution

** v0.0.20 - 2024-04-26

*Added*:

- Add ~overrun~ column to ~wurker_cron~ table (model).
- Refactor UIs, seeder and seeds. Make optional everywhere.
- Add ~runcount~ field to ~wurker_bee_report.status_info~ for display.
- Wurkers should know if they're Queens or Drones. Both should have an API, but only Queens have a GUI.
- The Queen's Court should provide the same intuitive display and control of Drone data.
- Wurker UI should have a login screen and session.
- Wurker UI and API should support HTTPS.
- After login, the Queen may use Basic HTTP Auth to access Drone APIs.
- User logins should be configured via Stinger.
- Accessing Wurker UI or API (nginx) should be via HTTPS, not HTTP. Should support self-signed certs by default.
- Add ~wurk report~ subcommand with filtering.
- Add Report view to Wurker UI (separate page) with same filters as CLI.
- Add Action buttons per Bee row, and Cron table, for pre-filtered Report views.
- Implement Alembic migrations in place of current create schema logic.

*Changed*:

- Derive ~timeout~ instead of setting it. If the Bee has a scheduled Cron, then use that as the timeout. If it is a supervised Cron, then it should have no timeout. Ondemand should use the same timeout logic.
- Derive ~runcount~ from Cron to ~BaseBee.runcount~ for runtime reference.
- Upon timeout in ~_run_scheduled()~:
  - If ~bee.overrun == 0~ then timeout as normal. Set report status to ~TIMEOUT~.
  - If ~bee.overrun > 0 and bee.runcount < bee.overrun~ then increment ~bee.runcount~, and let this Cron overrun the next Cron. Set report status to ~OVERRUN~.
  - If ~bee.overrun > 0 and bee.runcount >= bee.overrun~ then ~TIMEOUT~ the overrun.
- Deleting a Bee or Cron should cascade into Report table.
- Add ~pid~ and ~timestamp~ Hive columns, and set them when the Bee is added to the Hive.
- Add nullable ~duration~ Hive column, which is set only when the Cron ends.
- Change ~wurker_bee_report.status~ enum to: ~PROCESSING, OVERRUN, COMPLETED, TIMEOUT, ERROR~
- Insert record on ~bee.run()~ as ~PROCESSING~
- Update status to ~OVERRUN~ upon allowed overrun, or to ~TIMEOUT~ if not allowed.
- Record ~stdout~ errors from Bees, and PyBee exceptions into ~status_info~ JSON.
- Every Cron ending should cause a final write, setting ~duration~, ~status~, and ~status_info~.

*/ Changelog Entries
