* refactor: wire all services through ApplicationContext
- Created src/application_context.py as DI container with TYPE_CHECKING imports
- server.py now instantiates all services in dependency order via ApplicationContext
- Fixed infinite recursion bug: 48 instance methods renamed with underscore prefix
to avoid shadowing by same-named @classmethod forwarders
- ZeroconfServer: instantiate Zeroconf() in __init__, add _sync_class() to
configure forwarder, direct _configure/_start calls during wiring
- Config, EngineManager, PreviewManager: all forwarders and _sync_class() intact
- RenderQueue: load_state and subscribe moved to __init__, threading.Lock retained
- DistributedJobManager: subscribe_to_listener moved to __init__
* fix: greedy regex in get_render_devices swallows BlenderKit log output
Changed regex from greedy [\s\S]* to non-greedy .*? with re.DOTALL
so it stops at the first ] (the end of the GPU data JSON array)
instead of matching through timestamped log lines like
[19:36:22.109, __init__.py:2881] that contain trailing brackets.
* fix: AttributeError on .enabled in update_job_count prevents options from rendering
* refactor: log silent AttributeError catches, add _sync_class to remaining services, drop dead ctx slot
* Initial refactor of add_job_window
* Improved project naming and fixed Blender engine issue
* Improve time representation in main window
* Cleanup Blender job creation
* Send resolution / fps data in job submission
* More window improvements
* EngineManager renaming and refactoring
* FFMPEG path fixes for ffprobe
* More backend refactoring / improvements
* Performance improvements / API refactoring
* Show current job count in add window UI before submission
* Move some UI update code out of background thread
* Move some main window UI update code out of background thread
* Refactor add jobs and make add_job api only be one job (instead of a list)
* Renamed to JobImportHandler and misc cleanup
* Dont bury exceptions in server proxy post_job
* Update code to create child jobs in a cleaner manner