* 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
* 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
* Initial commit for settings window
* More WIP for the Settings panel
* Added Local Files section to Settings
* More WIP on Settings
* Add ability to ignore system builds
* Improvements to Launch and Delete buttons
* Fix issue where icons were not loading
* Network password settings WIP
* Update label
* Import and naming fixes
* Speed improvements to launch
* Update requirements.txt
* Update Windows CPU name lookup
* Add missing default values to a few settings
* More settings fixes
* Fix Windows Path issue
* Added hard types for getting settings values
* More UI cleanup
* Correctly refresh Engines list after downloading new engine
* Improve downloader with UI progress
* More download improvements
* Add Settings Button to Toolbar
* Initial commit of job submission cli tool, with minor fixes in API code
* Refactored and further decoupled server / client code
* Clean up ServerProxy to not use hardcoded loopback addresses
* Zeroconf logging improvements
* Ignore RuntimeErrors in background threads - Prevents issues during shutdown
* Migrate start up code from api_server.py to init.py
* Add error handlers to the API server to handle detached instances
* Integrate RenderQueue eval loop into RenderQueue object
* Silently catch RuntimeErrors on evaluate_queue
* Stop background queue updates in prepare_for_shutdown