## [Unreleased] ## [0.5.0] 2023-04-14 - new router method: `provide_output(output)` for providing output directly to consumer of `.output_ready(&block)` avoiding router and final output hook `:output_before_returned` - new router method: `provide_output_with_input(output, input)` for providing output to consumer of `.output_ready(&block)` avoiding router but applying all hooks attached to the `:output_before_returned` (usually plugins attach to this hook to convert/transform output properties) - internal: output hook :output_before_returned is executed after it was enqueued into the output_input_pair_queue. Meaning hook executed not right after processing respond blocks and creating output, but after it was enqueued to the queue which purpose is to ship output further into the `.output_ready(&block)` consumer. It was done so router public method `.provide_output_with_input(output, input)` was possible (avoiding router but not end hook) ## [0.4.3] 2023-03-30 - New condition for button pressed - Input property button_pressed ## [0.4.2] 2023-03-22 - Adding any number of loggers can be now done with core.add_logger(l) - where l is logger that have same methods as default ruby logger (debug, warn, fatal, etc) - To get logger into your class you can include Kanal::Core::Logging::Logger - this will give you method .logger to get logger - Batteries now have .keyboard output property and several conditions for input ## [0.4.1] 2023-03-16 - Added Attachment that can be used inside new input parameters in Batteries plugin - New input and output parameters in Batteries plugin: image, audio, file ## [0.4.0] 2023-03-10 - Added logging feature to Kanal, for a time being - just stdout - Error response, now Kanal Router accepts error response block, when things go haywire inside constructing output - Async response available, now developers can utilize respond_async(&block) which will be executed in separate thread ## [0.3.0] - 2023-01-10 - Kanal::Core::Core.get_plugin method added to get plugins for additional configuration by other plugins or developer code, if needed - Kanal::Core::Plugins::Plugin.rake_tasks method introduced, for plugins to have their own rake tasks that can be merged inside some kind of parent rake tasks, whether it's users Rakefile or kanal framework/interface or something Rakefile ## [0.2.5] - 2022-11-15 - Private release with more features and tests, basically working core, router, plugins, services, interfaces etc ## [0.1.0] - 2022-05-24 - Initial release of library in private repository, with basic building blocks like core, router, etc