Skip to content

v1.2.0

Choose a tag to compare

released this 07 Mar 00:40
· 570 commits to main since this release

v1.2.0 (2026-03-07)

This release is published under the Apache-2.0 License.

Bug Fixes

  • Add --profile support and consistent region defaults to admin scripts (5551065)

  • Add -f/--file and -d/--data flags to subcommands via add_global_arguments (1d636f7)

  • Add ASG and SpotFleet branches to describe_resource_instances (57d6aea)

  • Add AWS client resolver to provider strategy (7967406)

  • Add check_health delegation method to AWS strategy (a95b5f8)

  • Add conditional badge generation to prevent failures (d5379ff)

  • Add default_grace_period to RequestConfig so return requests respect configured value (c4d19d8)

  • Add DNS names and price type fields to machine data (b79ed6e)

  • Add fleetType to EC2Fleet Instant templates and enable SpotFleet ondemand support (65f5851)

  • Add generic provider registration to eliminate hardcoded AWS checks (70c3a11)

  • Add get_handler() to AWSProviderStrategy delegating to handler registry (70bbcdf)

  • Add get_resource_prefix to ConfigurationPort, migrate all handlers off service locator (0015bc3)

  • Add lazy initialization to domain services to break circular dependencies (5001663)

  • Add machine JOIN logic to ListRequestsHandler (29eb613)

  • Add machine-specific formatting for show command (c113daf)

  • Add MCP tools direct routing (3128df9)

  • Add missing Any import in AWSHandlerFactory (ca5e85b)

  • Add missing app_config property to ConfigurationAdapter (f7173a7)

  • Add missing config_manager arg to GetReturnRequestsRESTHandler DI registration (30630e0)

  • Add missing Dict and List imports to request status service (f7026c9)

  • Add missing field mappings and use machine_types in all handler templates (9eff1ac)

  • Add missing Jinja context keys to all three config builders (db761cb)

  • Add missing ListRequestsQueryHandler (5ff5f19)

  • Add missing os import to default scheduler strategy (8a40514)

  • Add missing permissions to package-testing workflow (06fc733)

  • Add missing provider_name and provider_type to RequestDTO.from_domain (66c1770)

  • Add missing system command handlers to CLI execution (4c51442)

  • Add missing unsupported_features field to ValidationResult construction (681a442)

  • Add onaws conftest.py - auto-create logs/ dir and add repo root to sys.path (6218820)

  • Add packages read permission to Container Build workflow (d373746)

  • Add packages:read to container validation and decouple cleanup from validation (74e116c)

  • Add provider fields to HostFactory status response (c0825db)

  • Add provider_override param to DefaultSchedulerStrategy.load_templates_from_path (393c40f)

  • Add scheduled container cleanup and fix existing cleanup jobs (4f4bf3e)

  • Add singular machine alias for consistency (b36b505)

  • Add storage show command, clarify --provider flag (3645121)

  • Add synchronous query execution support (7ac4aa6)

  • Add vmTypes to SpotFleet templates and restore error response shape for failed requests (bc46e88)

  • Address container CVEs and pin trivy-action to working version (e50fd8b)

  • Align Advanced Metrics workflow with established patterns (d401bd9)

  • Align config schemas and default_config with actual runtime usage (e839619)

  • Align default_config.json with Pydantic AppConfig model (fdbf013)

  • Align HF parse_request_data return type with default strategy (c7b69f2)

  • Align requestMachines response with IBM HF spec (f8b5060)

  • Align return request response format with request machines (4722042)

  • Align startup validator with config loader path resolution (d9ea31a)

  • Align tests and command types with CQRS and config env var changes (65f085d)

  • Allow explicit onaws path to bypass aws test skip in pytest (e4ae467)

  • Allow werkzeug compound BSD-3-Clause license in dependency review (ff44037)

  • Always check AWS credentials when onaws tests are collected (c41d80f)

  • AMI cache to work/.cache, config.json to config/ subdir, scripts/ gitignore, fast-fail loops (706401b)

  • Authentication error suppression in orb init (d471dba)

  • Auto-sync coverage source from .project.yml, convert providers to bullets (5f8b585)

  • AWS handlers to use unified machine_types field (f2bff51)

  • Broaden handle_get_request_status return type to include list (8664be2)

  • Bump urllib3 to >=2.6.3 and trivy-action to 0.34.0 (330caa3)

  • Call format_request_status_response in handle_get_request_status (a145a8b)

  • Check AWS credentials once at session start, exit early with clear message (4313011)

  • Circular dependencies in provider architecture (974c15a)

  • Circular dependency in registry initialization (09d0ded)

  • Circular dependency in scheduler strategies (907ff38)

  • Clean architecture compliance for describe_resource_instances and machine sync (c181c2c)

  • Clean Architecture implementation issues (74e1875)

  • Clean architecture violations and improve documentation (7c493be)

  • CLI routing for scheduler formatting (6875058)

  • Complete Clean Architecture Provider Registry refactoring (546b130)

  • Complete CLI help text consolidation (626fe15)

  • Complete CQRS/DI compliance across all registries (e50aab6)

  • Complete DI container cleanup (27bd9f8)

  • Complete provider override support for get_template_query (1adf2f7)

  • Complete repository serialization clean architecture fix (e4fab80)

  • Complete return request flow implementation (a76467b)

  • Complete return request logic with proper resource-based termination (35fb424)

  • Complete service extraction (374a5d6)

  • Config_port missing in handler factory + SpotFleet instance TagSpec (90fd62c)

  • Configure badge generation with proper gist and secrets (c4d6a80)

  • Conftest reads profile/region from config/config.json at session start (a7ba277)

  • Consolidate and standardize CLI help text (d493a9c)

  • Consolidate provider instance registration (90efd54)

  • Consolidate template defaults merging with constructor injection (0e2d13b)

  • Convert domain Template to AWSTemplate before passing to handlers (5dabcab)

  • Convert subnetIds to subnetId for HF and exclude nulls in defaults (6e78c69)

  • Correct ASG filter format for describe_auto_scaling_groups (1793f08)

  • Correct available_strategies property access in health check (eb02b3d)

  • Correct CLI bypass logic and missing import (67d0efa)

  • Correct config validation timestamp and source detection (cc53dfc)

  • Correct configuration source detection to show actual files (36720d7)

  • Correct default scheduler template generation field mapping (dc36fd2)

  • Correct env var names and remove stale config fields (db62190)

  • Correct import paths and variant names in package variant CI tests (035f000)

  • Correct machine_id access in _get_machines_for_request (da3bb98)

  • Correct method vs property access in providers (3d0a0aa)

  • Correct package variant import guard tests in CI matrix (0436209)

  • Correct provider commands architecture (92a2811)

  • Correct provider registry service method signature in machine sync (8289592)

  • Correct provisioning retry loop for async fleet handlers (20d468d)

  • Correct quickstart.md — remove non-existent methods and false claims (efa68d6)

  • Correct README config examples and documentation (b8c9c3b)

  • Correct request cache service config path (4fe2d9a)

  • Correct request status cache config field name and wire into DI (8c401c1)

  • Correct request status determination for return and acquire requests (f6a97d6)

  • Correct return request status and remove AWS internals from DI container (c4bfd5f)

  • Correct return request sync and status reporting (8b5b68c)

  • Correct SDK docs, exports, and API consistency issues (1afe2dc)

  • Correct service interfaces (9b30160)

  • Correct stale mock attribute path in request caching tests (a724478)

  • Correct template loading, scheduler format detection, and machines request routing (37e88a8)

  • Correct template loading, scheduler format detection, and machines request routing (f845760)

  • Correct template loading, scheduler format detection, and machines request routing (365b9a9)

  • Correct type annotations in onaws test infrastructure (d8d5355)

  • Correct venv config location for symlink venvs (5969d4e)

  • CQRS routing for commands and queries (726ccc5)

  • Credential error reporting and prevent KeyError in init command (802de1c)

  • Decouple bootstrap from concrete ConfigurationManager (04562be)

  • Delete dead GetRequestHandler methods, fix ASG machine_types spec, fix capacity hint (5181477)

  • Detect PROJECT_ROOT by walking up to src/run.py instead of hardcoded dirname depth (aa0910e)

  • Detect synchronous fleet completion when capacity partially fulfilled (152012c)

  • DIContainer import issues for Clean Architecture CQRS pattern (d722037)

  • Discover and terminate instant EC2 fleet instances via instance tags (c2a42dc)

  • Domain field population: move provider_api from metadata to domain field (2ae8c09)

  • DRY scheduler template paths, logger fallback, reset_container, template format per scheduler (bbd518a)

  • Eliminate instance_ids duplication and fix machine_ids population (13b642e)

  • Eliminate null field pollution in template display (dc77de7)

  • Enable multi-provider AWS client support using existing patterns (df8624a)

  • Ensure AWS credential check runs in xdist workers before tests (69eafb2)

  • Ensure machine creation sets provider_api and resource_id fields (72c9d84)

  • Ensure provider registered in templates generate handler (c437b28)

  • Exempt werkzeug from dependency review license check (a357538)

  • Expose get_cache_dir via ConfigurationPort and fix AMI resolution error surfacing (7484655)

  • Fail fast on credential verification failure (5f001bd)

  • Fail fast on terminal request statuses in onaws polling loops (e4b238e)

  • Fetch ConfigurationPort from DI container in _get_handler_factory (b3df8e1)

  • Filter None from machine_ids in RequestDTO (b139b12)

  • Filter None values from machine_ids (9b5697e)

  • Fix all test suite failures - 2094 passing, 0 failures (d4301f0)

  • Fix onaws integration test suite for dual-scheduler support (9466369)

  • Fleet/ASG handler correctness fixes (9f34ed0)

  • Fleet_role now follows same template_defaults injection pattern as (a2d6479)

  • Format return machines response in HF wire format (16cb6f0)

  • Generate cleaner templates without null fields (dbca8ea)

  • Generate request_id before void CQRS command execution (f417641)

  • Generate templates programmatically in TemplateProcessor (52b73d9)

  • Generate templates programmatically in TemplateProcessor (d1502f7)

  • Generate templates programmatically in TemplateProcessor (9e473d1)

  • Global --timeout argument conflict (f7fc7e9)

  • Gracefully handle partial instance data in handlers (a70a21e)

  • Handle None handler registry in capability service (d1741f6)

  • Handle null provider name in provider health query (6f02784)

  • Handler discovery cache path resolution (88b88c1)

  • Harden pre-commit hooks and move slow checks to pre-push (fc1cd42)

  • HostFactory output format - use field mapper for camelCase conversion (d3b8a3c)

  • HostFactory scheduler transformation for unified machine types (a8e2b9f)

  • Implement all 16 broken CLI commands (c697dbc)

  • Implement bidirectional field mapping and scheduler-specific template generation (4b19204)

  • Implement consistent DTO architecture for templates (554f568)

  • Implement HostFactory-compliant templates list output (28151a6)

  • Implement lazy imports in DI service registration (e972f3f)

  • Implement lazy initialization in BaseRegistry to break circular dependency (0ffce9d)

  • Implement multiple ID support for CLI commands (09eaae7)

  • Implement proper config file structure for init command (466f148)

  • Implement proper infrastructure discovery delegation in ProviderContextAdapter (0c5bd08)

  • Implement proper machine sync logic in MachineSyncService (7ad66d9)

  • Implement proper provider health checking (879722e)

  • Import scoping issue for AWS overrides (e0946a1)

  • Improve credential error messages and eliminate duplication (61e36a0)

  • Improve orb init - remove fallback config, fix scripts location (1a5a1eb)

  • Improve RequestId handling in query handlers (b88f301)

  • Improve template generation and subnet handling (4f435e1)

  • Improve type correctness in bus ports and concurrency control (1488178)

  • Improve venv detection for symlink-based venvs (uv/mise) (4d771a7)

  • Include providerApi in request status response (34a8f98)

  • Include run_instances in cleanup config serialization (b1ac408)

  • Incorrect subnet validation in tests when more than 1 subnets are possible (8f31bfe)

  • Infrastructure command factory duplicate action parameter (102bcc8)

  • Infrastructure commands by routing directly to handlers (2e9c291)

  • Infrastructure discovery region override (cf01124)

  • Inject template_defaults_service in scheduler registration (e90e6f6)

  • Injectable decorator typo and Docker test skip condition (80827c8)

  • Invoke_provider.sh use src/orb/run.py directly, not -m orb (f99389d)

  • Invoke_provider.sh — extract only -f , pass everything else verbatim (bbc81fb)

  • Keep request IN_PROGRESS while instances still pending/starting (d6bb835)

  • Load full default_config.json in orb init (7d749ea)

  • Machine provisioning DI container issue (785b123)

  • Machines list scheduler formatting (db8b2ae)

  • Machines request missing requested_count (7471f23)

  • Machines return finds pending machines correctly (8ce5f8f)

  • Machines return validation filters invalid machines instead of blocking all (cf97ced)

  • Machines status handles dict and object DTOs (b4f6d2c)

  • Make generic templates the default for generation (f5290e0)

  • Make get_scripts_location() scheduler-strategy-aware (e54ea1d)

  • Make GetRequestStatusQueryHandler include machine information (cad4bb2)

  • Make GetRequestStatusQueryHandler return RequestDTO for CQRS consistency (67bc517)

  • Make orb init use provided command-line arguments (85dcd43)

  • Make template generation respect CLI scheduler flag (b3e44c0)

  • Map RequestStatus.COMPLETED value 'complete' to HF 'complete' status (b379c35)

  • Match HostFactory output format specification exactly (560ed2f)

  • Message bus wiring, remove Azure/GCP references (f890cb9)

  • Move --long field filtering from interface layer to scheduler strategy (ccab0d4)

  • Move inline domain imports to module level in provider_command_factory (eadf7a1)

  • Move inline json_utils imports to module level in loader and provider_command_factory (e76ce86)

  • Move provider selection logic back to registry (infrastructure layer) (c8fadc3)

  • Move ProviderSelectionResult to domain layer for architecture compliance (248e7ab)

  • Move scheduler and provider overrides before special case handling (5240724)

  • Onaws test bugs and remove request_id alias from HF router response (2b25dee)

  • Pagination in ListMachinesHandler (406ad50)

  • Parse_request_data returns list for status requests, fixing request_id extraction (77fc2fc)

  • Pass request_type through machine status formatter for return requests (da01070)

  • Pass through instance_ids from handler to command handler (420d900)

  • Path_resolver base_dir and handler_discovery cache path (7c17e36)

  • Pin trivy-action to 0.33.1 (0.34.0 references non-existent v0.69.1 binary) (728511a)

  • Populate resource_id and provider_api in RequestDTO.from_domain (d180125)

  • Preserve explicit storage base_path when scheduler work dir is set (61b15c1)

  • Preserve fleet_type through TemplateDTO to fix SpotFleet Maintain capacity reduction (d9ebcf7)

  • Proper Clean Architecture solution for value object serialization (3a88b27)

  • Proper CQRS implementation for ListAvailableProvidersHandler (b468bb6)

  • Provider capability service uses actual configuration (840f024)

  • Provider command routing for singular form (1a1c628)

  • Provider override for template defaults (e6896c1)

  • Provider registry dependencies and handler registry pattern compliance (5cebc01)

  • Provider registry validation errors (4c4439c)

  • Provider selection and multi-provider return requests (e30ca2c)

  • Provider strategy resolution in ProviderRegistryService (ec046ef)

  • ProviderRegistry configuration access (e438c04)

  • Read provider_data from correct location and make AlreadyExists non-retryable (e59747e)

  • Refine Advanced Metrics test selection to avoid dependency issues (2ba0f41)

  • Register CacheServicePort in DI container via InMemoryCacheService (1088eda)

  • Register ListMachinesQuery handler (62e796f)

  • Register providers in lazy loading mode (a0cff3a)

  • Register storage types before DI container initialization (ed532f3)

  • Registry dependency initialization circular dependency (dd56fe4)

  • Registry error handling and remove hardcoded scheduler types (4348402)

  • Registry pattern standardization (b67ee0f)

  • Relax run.py line count assertion and remove stale config path (862683c)

  • Remaining common CLI arguments implementation (35fb14c)

  • Remove --wait from CLI reference — flag exists but is not implemented (6d9b69f)

  • Remove 18 dead test files and fix stale import paths (ebc4aac)

  • Remove 4 more dead test files and fix ruff import ordering (83a0a1b)

  • Remove all HF_* variables from outside HostFactory scheduler (6dc69f6)

  • Remove all remaining CQRS violations from query handlers (4bac1dd)

  • Remove all service locator patterns (5d41c55)

  • Remove automatic status query from machine request handler (74ff1ff)

  • Remove AWS-specific fleet type from application layer status logic (7534038)

  • Remove botocore layer violation and fix pre-existing test failures (f8c2792)

  • Remove dead create_launch_template method with hardcoded naming (0fe9bf1)

  • Remove duplicate method definitions in BaseRegistry (e916050)

  • Remove duplicate strategy cache causing reuse failure (f23aec6)

  • Remove emojis from package-testing workflow (683ffc1)

  • Remove hardcoded schedulers and providers from init command (b264827)

  • Remove incorrect await from infrastructure discovery (43a082f)

  • Remove incorrect await from infrastructure validate command (c3c3ceb)

  • Remove infrastructure dependency from domain enum missing methods (c6d85b5)

  • Remove internal auth reference from credential check docstring (8b580a0)

  • Remove invalid instance ResourceType from SpotFleet TagSpecifications (83cfb7a)

  • Remove ManagedBy system tag from example templates (987824d)

  • Remove manual idempotency checks, rely on BaseRegistry (2a4bf90)

  • Remove missing nav entry and fix broken relative link in quick start (da2b77c)

  • Remove obsolete CachingAMIResolver and TemplateResolverPort registrations (8a0c77d)

  • Remove redundant json import causing UnboundLocalError (6fd8e57)

  • Remove scheduler-specific envelope unwrapping from CLI handler (043c4f6)

  • Remove scheduler-specific envelope unwrapping from CLI handler (9db1a84)

  • Remove service-locator from domain enums and align config schemas (0318d5f)

  • Remove spurious fleet_type defaulting to instant in template adapter (1ba08ce)

  • Remove void CQRS return value usage in templates router (f6a3cda)

  • Remove wrong provider_api fallback and fix handler capabilities source (3a4842b)

  • Remove wrong provider_api_map from resolve_template_id (a447dd1)

  • Rename force cancel helper and improve wording (e0a806d)

  • Rename InstanceId to MachineId for consistency (39935f3)

  • Repair 7 test files with stale class names, imports, and dead code (f9f836f)

  • Replace get_app_config() dict method with typed access (290f03f)

  • Replace pytest.exit with pytest.skip in AWS credential check (3f1becf)

  • Replace template_dto.configuration with model_dump() in GetTemplateHandler (676d028)

  • Replace TemplateDTOPort with Any in BulkTemplateResponse (0ed34eb)

  • Repository DI wiring, docs cleanup, gitignore (c8baae0)

  • Request show routing returns GetRequestQuery for single request (3927661)

  • Requests list --limit parameter (e5b0aa7)

  • Requests show --all helpful error (4cd4be5)

  • Requests status --all syncs and shows all requests (7119666)

  • Resolve 'argument of type method is not iterable' error (fca35f4)

  • Resolve --all flag routing issues (fc354f6)

  • Resolve 10 security, test, and quality issues from PR review (7dc4f5e)

  • Resolve 3 P0 security vulnerabilities in auth layer (ee6d1de)

  • Resolve 3 pre-existing API handler bugs (b5c5018)

  • Resolve 4 API consistency bugs across REST and CLI interfaces (35eaafe)

  • Resolve 4 integration test failure root causes (731f004)

  • Resolve 5 integration test failure groups (7941e5d)

  • Resolve 6 onaws integration test failure groups (44532a3)

  • Resolve 6 test failure groups across scheduler, provider, and API layers (fecda8c)

  • Resolve 7 merge-readiness issues from PR review (2dc364b)

  • Resolve 7 onaws integration test failure groups (b96f287)

  • Resolve 7 pre-existing test failures across handler and validation tests (d035159)

  • Resolve all 24 Pyright warnings - 0 errors, 0 warnings (5617fa1)

  • Resolve all CI failures - ruff, bandit, semgrep, and security findings (2950132)

  • Resolve all PR #132 workflow failures (aa182a2)

  • Resolve all pyright basic mode type errors across codebase (0fabe72)

  • Resolve all Pyright type errors across codebase (abfc031)

  • Resolve all ruff import sorting issues using uv run (670cd0f)

  • Resolve AMI resolution pipeline (b8a3a7f)

  • Resolve bandit security issues (c2df870)

  • Resolve CI failures - ruff formatting, import guards, and bandit issues (0dcb64b)

  • Resolve CI quality and security scan failures in PR #132 (a6f05b4)

  • Resolve circular dependency in MachineSyncService and double service registration (31b0e5f)

  • Resolve ConfigurationPort at handler construction time and register TemplateExampleGeneratorPort (a67e8a4)

  • Resolve CQRS handler registration in lazy loading mode (9012b0b)

  • Resolve CQRS violation in GetRequestHandler (6092dc8)

  • Resolve critical linting errors (undefined names, deprecated patterns) (eca4421)

  • Resolve critical PR blocking issues (8bd16a4)

  • Resolve critical test failures (36a2310)

  • Resolve DI circular dependency and scheduler strategy issues (f1d2a6b)

  • Resolve DI container import issues in GetRequestHandler (eff13a3)

  • Resolve DI registration issues and restore core functionality (34f703d)

  • Resolve enum handling issues in request repository (2d63f12)

  • Resolve false success response and architectural violations (ff2699d)

  • Resolve final QA issues - return operations and template CRUD (4cc2ca4)

  • Resolve five regressions in template loading, HF protocol, and SpotFleet provisioning (3c65f81)

  • Resolve fleet_role null and allocation_strategy_on_demand coercion in SpotFleet (49a3659)

  • Resolve four critical SDK bugs blocking programmatic usage (f06c1ac)

  • Resolve image_id unknown issue and template validation warnings (308bf01)

  • Resolve import and type annotation issues (5ddf38b)

  • Resolve import conflicts and duplicate handlers (15c3f4c)

  • Resolve layer violations, remove dead code and test-mode production behaviour (1494dec)

  • Resolve main branch workflow failures (b15187a)

  • Resolve main branch workflow failures after merge (950c6e3)

  • Resolve merge conflicts in factory, CLI, DI services, and template adapter (6f92bec)

  • Resolve mypy double-discovery of src-layout packages (4b08191)

  • Resolve mypy duplicate module error in src layout (add7a39)

  • Resolve onaws integration test failures across 5 failure groups (a2d6479)

  • Resolve onaws test failures across default and hostfactory schedulers (d36d626)

  • Resolve provider commands issues (cd66adc)

  • Resolve provider registry dependency violations (01327ec)

  • Resolve Pyright type errors from CQRS migration and pagination (d72ff56)

  • Resolve pyright/pydantic config conflict and alias false positives (ed14b70)

  • Resolve quality gate false positives and enable pyright basic mode (f64dab9)

  • Resolve remaining ruff issues (9656d90)

  • Resolve RequestId serialization issue in repository (c9c7266)

  • Resolve ruff formatting and linting issues (4947dda)

  • Resolve ruff violations across src — remove stale noqa directives, unused imports, and naming issues (cd937d7)

  • Resolve ruff violations introduced by recent changes (2f09bd6)

  • Resolve SSM AMI paths to real AMI IDs before provisioning (1548a42)

  • Resolve status query and return request machine tracking issues (87616a0)

  • Resolve template loading synchronization issues (d544c12)

  • Resolve template validation and request cancel issues (bc7c668)

  • Resolve three regression groups and fix ASG early return (0327648)

  • Resolve three regressions in provisioning and status query paths (a5e4fdf)

  • Resolve three regressions in provisioning and status query paths (1625e36)

  • Resolve type and import errors (8608798)

  • Resolve type errors from storage events migration (5a33906)

  • Resolve TYPE_CHECKING and LoggingPort import inconsistencies (29801a4)

  • Resolve workflow and documentation issues (d5bf2bf)

  • Resolve workflow validation issues (ba0e267)

  • Response formatter receives formatted json instead of DTO (e5b0044)

  • Restore ASG metadata logic in SyncRequestCommand handler (3826c89)

  • Restore aws_templates.json with all 20 hostfactory-format templates (f090972)

  • Restore CQRS pattern and correct scheduler strategy format (764bf79)

  • Restore cross-scheduler template loading via registry delegation (722fe8d)

  • Restore deleted dev-tools scripts and guard AWS credential check (94cac6a)

  • Restore handler-based instance discovery and remove double-conversion (90a41e1)

  • Restore help display for resources without actions with fast performance and clean code (68d0faf)

  • Restore live machine status sync in GetRequestHandler and ListActiveRequestsHandler (d35efd2)

  • Restore malformed JSON repair in hfmock raw_decode extraction (aec3e4c)

  • Restore missing _is_ami_resolution_enabled method (9c5dd58)

  • Restore missing config file write logic in init command (a44314c)

  • Restore persistent AMI cache with registry-based resolver (a5d93c7)

  • Restore proper field mapper with copy_unmapped support (4285668)

  • Restore proper two-step machine sync process (1bfd4c0)

  • Restore ProviderSelectionService with 5-strategy hierarchy (cde71de)

  • Restore request object return from handler (5c16b1d)

  • Restore request status detailed formatting (62634be)

  • Restore retry wrappers, fleet role resolution, and release_hosts signature (2ed97c8)

  • Restore venv precedence and bidirectional field mapping (79496ba)

  • Restrict EC2Fleet instance tagging to instant fleets only and clean up example tags (0e40d19)

  • Return full template config instead of hardcoded fields (7b9bd63)

  • Return request machine association and response format (8ce3114)

  • Return request status transitions to complete when instances terminate (656f81a)

  • Return request validation, status messages, and result mapping (566ba4f)

  • Route templates/requests create/update/delete/cancel/return through dedicated handlers (562b7db)

  • Route unknown flags to command_args in invoke_provider.sh (683f97e)

  • Ruff format and lint issues (2c2d931)

  • Run AWS resource cleanup before config teardown in onaws fixtures (4844ca6)

  • Scheduler discovery in orb init (050a43c)

  • Scheduler load_templates_from_path ignoring input parameter (a30c424)

  • Scheduler override functionality (6b268dc)

  • Scheduler strategy template path resolution (b7021a3)

  • Scope instant fleet early-exit to EC2Fleet instant type only (a12fe75)

  • Security groups mapping in query handler (f9148cb)

  • Serialize instanceTags dict to JSON string per HF schema requirement (241818b)

  • Serialize instanceTags dict to string in format_templates_response (b048d3e)

  • Set correct allocation strategy defaults (spot=price_capacity_optimized, ondemand=lowest_price) (e125d18)

  • Set ORB_CONFIG_DIR in onaws test fixtures (6d67ba9)

  • Show actual config and template file paths in orb config show (0b7edf7)

  • Show actual error messages instead of 'Unknown error' (512cf89)

  • Show commands require IDs and reject --all flag (b87e729)

  • Show default_config.json first in missing files list (f603f14)

  • Show default_config.json first in missing files list (21215e1)

  • Show default_provider in config show (2befc2e)

  • Show last_updated timestamp in config show (9514450)

  • Singular command aliases (bd71536)

  • Sort imports in ec2_fleet handler and test file (589e540)

  • Split comma-delimited subnet IDs in HostFactory transformation (26ecf06)

  • SpotFleet fleet_role injection, scheduler_type stamp, fast-fail on error, test speed, cache path cleanup (8309816)

  • SpotFleet role discovery, validation, and template injection (bc4e60c)

  • SSM to AMI ID resolution (4099d93)

  • SStandardize all timestamps to Z format for non-scheduler outputs (b1251d3)

  • Standardise all timestamps to ISO format with UTC timezone (940f2b5)

  • Standardize scheduler discovery pattern (957bd38)

  • Startup validator detects missing templates correctly (b17cdec)

  • Storage and provider parity corrections (be6e7b6)

  • Store fleet_role in provider instance config, not template_defaults (2e4706a)

  • Strategy cache reset and template cache methods (0011507)

  • Strip empty and irrelevant fields from HF template output (6f5c391)

  • Suppress B027 on intentional no-op hook methods in abstract base classes (1e426a6)

  • Syntax error in health_command_handler.py (b78103c)

  • Tag spot-instances-request resources in RunInstances handler (55ae8c5)

  • Template adapter DI registration and contract creation (0a275d8)

  • Template deduplication with minimal infrastructure solution (5c77a94)

  • Template generate command argument conflict (6e65932)

  • Template generation and remove --long flag technical debt (3cee8e5)

  • Template generation architecture - separate generation from defaults application (53577e6)

  • Template generation field mapper initialization (541a2ae)

  • Template generation filename collisions in generic mode (8854679)

  • Template generation service to use clean architecture (7517f5a)

  • Template generation to use correct bulk operation flow (3f39206)

  • Template generation: implement proper generic vs provider-specific modes (7b69b37)

  • Template query handlers to follow Clean Architecture (88f9716)

  • Template utility commands use CQRS pattern (3c4d042)

  • Template_processor scheduler_type param + hfmock default scheduler orb CLI routing (b4dd1b3)

  • TemplateGenerationService DI registration (cd1e7a0)

  • Templates list command factory to use correct query structure (c15ce79)

  • Templates validate shows specific error details (7f4a077)

  • Test isolation - unique dirs, yield+cleanup, per-test logs (ba865e0)

  • Thread request_id through release path and trigger LT cleanup for all fleet types (703f9aa)

  • Transition return request through IN_PROGRESS before COMPLETED, filter ASG to InService only (023bb1e)

  • Treat InvalidInstanceID.NotFound as idempotent success in terminate (d0a0f7d)

  • Unify registry dependency initialization (cd11cc4)

  • Unwrap HF JSON envelope in request handler (5420037)

  • Update AWS client initialization to use correct constructor signature (1a9172c)

  • Update CLI description, prog name, and hfmock scripts path (0e51bae)

  • Update CLI help text and filtering documentation for machine_types field (68b09ba)

  • Update config loader to use correct default config location (4781d5c)

  • Update default AMI to use SSM parameter for latest Amazon Linux 2023 (e69cd35)

  • Update docs, examples, CI workflows for orb namespace migration (0335b32)

  • Update e2e tests for templates router DI migration (4b564b9)

  • Update GetRequestHandler test fixtures to match restored constructor signature (f4bf606)

  • Update init handler to use Provider Registry for infrastructure discovery (126ea14)

  • Update invoke_provider.sh PROJECT_ROOT to account for new scripts depth (e1aac9a)

  • Update mock.patch path in onmoto test for orb namespace (65560a1)

  • Update mock.patch paths and workflow imports for orb namespace (a4a09ce)

  • Update package-testing workflow for orb namespace (70ffd0b)

  • Update patch targets in platform_dirs tests to match actual module path (146722d)

  • Update remaining bare module paths to orb namespace (0bc10fc)

  • Update remaining src.* and bare module paths to orb namespace (079dc4b)

  • Update reset_singletons module paths for orb namespace (21e022e)

  • Update scheduler handlers to use SchedulerRegistryService DI injection (eadf74c)

  • Update scheduler to use DTOs and fix return request parameter (a36988b)

  • Update stale src.* imports and fix lazy loading tests (3abf07a)

  • Update stale src/ paths for namespace migration (38eb246)

  • Update startup validator to use template hierarchy (912261a)

  • Update template generation to use strategy handler factory (77478df)

  • Update test paths for orb namespace migration (71764bf)

  • Updating onaws tests for the new template formats (ae913c6)

  • Upgrade trivy-action from 0.33.1 to 0.34.2 (e027e29)

  • Use canonical PascalCase comparisons for provider_api in fleet instance tagging (8eccc2e)

  • Use config.get_cache_dir() as single source of truth for AMI cache dir (e095ef6)

  • Use explicit field mappings to control HF template display output (addda95)

  • Use get_request_status to poll return request completion (3adb559)

  • Use Optional[AWSOperations] instead of type: ignore in SpotFleetValidator (0b79547)

  • Use per-client container for region/profile overrides in SDK (5514c20)

  • Use per-test AWS credentials in test_onaws.py cleanup helpers (81ac308)

  • Use platform dirs for default config discovery (613a93c)

  • Use pre-generated request_id in REST handler (CQRS command returns None) (c5aab9d)

  • Use provider machines when available in query response (446a67b)

  • Use repository name for container cleanup package-name (bbdb1c8)

  • Use RequestDTO.from_domain instead of manual DTO creation (f978d7a)

  • Use resource_ids from status response for backing resource lookup in tests (a22bd8d)

  • Use short_name for PYTHON_MODULE instead of deriving from pypi_name (93855ef)

  • Use standard RequestDTO.from_domain for complete field mapping (fc41c88)

  • Use storage registry to create strategies in machine and request repository factories (347f8a0)

  • Use typed allocation strategy values in EC2Fleet example templates (de85481)

  • Use typed ConfigurationPort lookup for AMI cache dir resolution (2b4737a)

  • Use Unit of Work pattern for metrics repository access (daf2b88)

  • Validate nested State.Name field in AWS instance data (1071c58)

  • Wait for all requested instances before declaring request complete (234bcca)

  • Wire AWSProvisioningAdapter via strategy and remove handler fallback (a834f02)

  • Wire handler capabilities into validation and surface sync errors (734ee39)

  • Wrap command.request_id with RequestId in PopulateMachineIdsHandler (f5b2b7f)

  • Write aws_templates.json to config/ subdir so ORB can find it (61f1f84)

  • architecture: Move storage events from domain to infrastructure layer (c7931f9)

  • tests: Align handler tests with current production behaviour (631d6a2)

  • tests: Align tests with current production behaviour (0303fba)

  • tests: Enable metrics and add missing mock method to fix stale test failures (1b879e6)

  • tests: Update field mapping keys and fix broken storage import (ac3e9e2)

Build System

  • Add pyright to ci dependency group (1eafc7a)

  • deps: Bump aquasecurity/trivy-action (3d6d473)

  • deps: Bump the uv group across 1 directory with 3 updates (ce69992)

Documentation

  • Add commit message format guidelines (0a49e6f)

  • Add comprehensive --all flag audit report (9dac6a9)

  • Add comprehensive regression analysis (89aebe9)

  • Add init command improvements next steps (8555a69)

  • Correct --all flag audit report (daac6df)

  • Expand SDK config loading docs and fix method names (a7f6b9c)

  • Fix docs structure, add missing nav entries, update README with provider/scheduler info (305b513)

  • Fix stale and inaccurate documentation (ab83d23)

  • Move sdk_usage.py to docs/root/examples, wire up examples in docs index (8125e25)

  • Overhaul README with collapsible sections for quick onboarding (fda2174)

  • Remove non-aws deployment examples from cloud platforms guide (51a4b9a)

  • Remove openstack reference from naming guide (5869c5d)

  • Restructure README with grouped sections and visual hierarchy (34da600)

  • Rewrite and modernise user-facing documentation (313cab5)

  • Rewrite README with foolproof getting-started guide (e633421)

  • Simplify AWS and config sections in README, move details to docs (184b92e)

  • Update architecture diagrams with comprehensive system views (3eb2388)

  • Update documentation and config (731f8ad)

  • Update documentation for Clean Architecture refactoring (a419e39)

  • Update documentation with optional dependencies (abe5856)

Features

  • Add 'infra' as shortcut for 'infrastructure' commands (6317f66)

  • Add --force flag to hfmock requestReturnMachines (69076cd)

  • Add --force flag to orb machines return for stuck terminations (a3987ff)

  • Add --subnet-ids, --security-group-ids, --fleet-role flags to orb init (65d6bb5)

  • Add --tag-key/--tag-value flags to override resource filter tag (717f1cc)

  • Add --timestamp-format flag for machine list command (31dbb38)

  • Add main.py so python -m orb works as entrypoint (28b2b9a)

  • Add application service interfaces (23c28f5)

  • Add AWS implementation of generic image resolution service (32d94c7)

  • Add BaseSettings documentation and test coverage (1b8986c)

  • Add BaseSettings schemas for automatic environment variable mapping (3f24f03)

  • Add camelCase API, stub endpoints, security tests, and E2E tests (7c6a06e)

  • Add capacity top-up retry loop to provisioning orchestration (2d686b5)

  • Add CLI-style SDK convenience methods and parameter mapping (fdef7f8)

  • Add comprehensive ORB resource cleanup script (5eb68b3)

  • Add DRY scheduler field mapper architecture (4b69180)

  • Add example template generation to handlers (3797752)

  • Add fail-fast startup validation (40339b6)

  • Add final newline to generated template files (ee3afd5)

  • Add fleet_role to provider instance template_defaults (bfa97c2)

  • Add fulfilled_count/is_terminal to ProvisioningResult and BatchingPolicy value object (137a431)

  • Add generic image resolution operation handler to AWS strategy (bdbea55)

  • Add generic ImageResolutionService domain interface (e2bf759)

  • Add HF attributes object and fix REST API response wrapper fields (f6b9a3c)

  • Add LAUNCHING state to machine lifecycle (5bd6822)

  • Add machine_ids field and domain methods to Request aggregate (fb7fc53)

  • Add machines stop command (057e7ce)

  • Add machines terminate alias (cb7b683)

  • Add missing fields and Pydantic migration validators to Request domain model (f5519da)

  • Add missing global CLI arguments (abd469f)

  • Add moto-based SDK E2E tests and expand quickstart docs (a8e8ffe)

  • Add network timeouts, remove debug code, split handler (3413450)

  • Add orb system health command (66c9083)

  • Add overwrite protection to template generation (1f2152b)

  • Add platform-aware config location detection (b130ff0)

  • Add project logos, update README branding, add favicon to REST API (ab51d71)

  • Add provider selection methods to registry for Clean Architecture compliance (5744dc3)

  • Add Rich console helpers for CLI output (964d31a)

  • Add scheduler-aware error handling and health checks (de4cd30)

  • Add SDK, REST async support, moto tests, SRP extraction, and repository migration (345a1fc)

  • Add SDK-based onaws integration tests (3874539)

  • Add simple centralized help system for getting started workflow (9b2db2e)

  • Add subnet and security group to sync service (801b918)

  • Add templates validate command for loaded templates (a8241fc)

  • Add typed Protocol for SDK business methods (c436db6)

  • Add universal --all flag to global arguments (01b1111)

  • Add version-controlled git hooks with beads integration (4dcf191)

  • Auto-cleanup empty ASG/Fleet resources and launch templates after full return (32407b6)

  • Centralise package_root, support EC2 instance profiles, improve dev deps and onaws tests (bedb8a3)

  • Code quality improvements - file splits, domain purity, exception handling (5f4fc5d)

  • Complete BaseSettings integration with environment variable precedence (6f6b322)

  • Complete DTO implementations with all domain fields (169f5ef)

  • Complete multi-provider architecture with machine context (1ccf27f)

  • Consolidate instance ID handling across AWS handlers (c5fdb85)

  • Consolidate provider naming to use provider_name consistently (6a63a79)

  • Eliminate configuration global singleton (daef7c3)

  • Enable SDK programmatic config without filesystem dependencies (185edc5)

  • Enforce orb: tag namespace reservation at domain and infrastructure layers (d61f4ca)

  • Enhance AWS resolver with caching capabilities (0e02229)

  • Exception types, test coverage, variable naming, error propagation (d4b16ad)

  • Extract common pattern abstraction services (59853a4)

  • Extract EC2FleetConfigurationService from EC2FleetHandler (2821bd1)

  • Extract EC2FleetManagementService from EC2FleetHandler (5d81c96)

  • Implement AMI resolution via provider strategy (3189328)

  • Implement architecturally compliant global AWS overrides (353f1b8)

  • Implement Clean Architecture CQRS pattern for CLI (cab7c33)

  • Implement Clean Architecture timestamp and filtering services (2971963)

  • Implement clean async template cache service (44060e1)

  • Implement common CLI arguments system (c292a67)

  • Implement CQRS bulk operations architecture (20089d5)

  • Implement CQRS pattern in CLI execute_command function (88ae1a7)

  • Implement generic provider credential discovery system (3b3cc8d)

  • Implement global filter system across all list commands (ece177d)

  • Implement handler improvements across all 4 AWS fleet handlers (afe4d19)

  • Implement machine_ids field with command-driven population (1e52134)

  • Implement multi-provider handler factory with metadata-driven selection (fe2e997)

  • Implement orb init command (d111b55)

  • Implement orb templates generate command (1645645)

  • Implement ORB_* environment variables with clean architecture (e5e5169)

  • Implement proper installation mode detection using modern Python APIs (3bb732e)

  • Implement provider configuration management (e75034d)

  • Implement provider management enhancements (38a6b06)

  • Implement SDK middleware, batch operations, and custom serialization (1134283)

  • Implement shared CLI arguments (73f5d85)

  • Implement storage lazy loading with configuration compliance (64c3915)

  • Implement systemic registry dependency initialization (a666f21)

  • Implement template hierarchy with configurable filename patterns (4aecfd3)

  • Implement template multi-provider architecture with provider strategy pattern (cdf911c)

  • Implement unified machine types cleanup (3826675)

  • Implement universal --all flag for bulk operations (8c66769)

  • Improve formatting for init command sections (07048cc)

  • Improve installation mode detection and remove config warnings (df1b2b1)

  • Integrate BaseSettings with AWS provider configuration (0ad243f)

  • Integrate BaseSettings with core configuration system (3d5df3e)

  • Integrate field mappers with scheduler strategies (f01e3b0)

  • Make CLI colors optional and remove unused dependencies (2dadcfd)

  • Make infrastructure commands more helpful with actionable guidance (c70b555)

  • Move HF scripts to hostfactory dir and update pyproject.toml packaging (822e958)

  • Multi-provider template generation and UX improvements (66b0416)

  • Orb init improvements and HF machine formatting consolidation (a5413c5)

  • Overhaul README and docs — punchy intro, full lifecycle Quick Start, SDK section (dd5f51b)

  • Per-client DI container isolation for ORBClient (f7e48f1)

  • Replace --tag-key/--tag-value with repeatable --tag key=value flag (24ddaaa)

  • Reserve orb: tag namespace on all AWS resources (156a7ab)

  • Restructure package layout under orb namespace (4931736)

  • Simplify MachineSerializer and TemplateSerializer (b28bc53)

  • Simplify RequestSerializer to use domain model_dump() + process_value_objects() (0c89c8f)

  • Skip onaws tests when AWS credentials are missing or expired (a9e56c5)

  • SOLID, domain purity, code duplication, bounded context fixes (a91319d)

  • Standardise API response fields to camelCase (9ca366a)

  • Standardize response fields, strengthen E2E tests, add API reference docs (9242bc3)

  • Store instance IDs in request for tracking (097076d)

  • Unify template discovery across schedulers (336f052)

  • Update _get_machines_for_request method for performance (f94c6e6)

  • Update AWS templates configuration for BaseSettings integration (f5a5486)

  • Update interface layer for BaseSettings compatibility (d60d4aa)

  • Update provider factory to use BaseSettings configuration (5b0410f)

  • Update provider query logic and DTO for machine_ids (d63dbf5)

  • Use handler factory for template generation (f7fe90b)

  • Wire AWSValidationAdapter and validate_template_requirements into provisioning path (9f2d2e3)

  • Wire remaining REST endpoints — cancel, machines, sync param (9a276ba)

Performance Improvements

  • Cache provider selection during batch processing (b4cba79)

  • Skip AWS client activation when all image specs are already resolved (0ca098a)


Detailed Changes: v1.1.2...v1.2.0