v1.5.0
v1.5.0 (2026-03-23)
This release is published under the Apache-2.0 License.
Bug Fixes
-
Add --machine-id/-m, --request-id/-r, --template-id/-t flag forms to subcommands (
bdcfa8c) -
Add @handle_interface_exceptions to providers and infrastructure handlers (
5ad3595) -
Add dry-run preview job and manual approval gate to semantic release (
47c9c74) -
Add enum choices to machines list --status flag (
158accb) -
Add explanatory comment to empty except in scheduler registry (
69fd7cc) -
Add explanatory comment to empty except in test_container_factory_hook (
6c5ff77) -
Add format_machine_operation and format_template_mutation to ResponseFormattingService (
f0e007a) -
Add request_id and return_request_id to MachineReferenceDTO (
c2df2ce) -
Add requestId and returnRequestId to machine entries in request status (
353260e) -
Add validate_aws_region to InputValidator (
5d96de7) -
Add validate_aws_region to InputValidator (
1e748df) -
Address code review issues — merge machine_ids_flag, fix limit falsy-zero, normalise dest naming (
fd13964) -
Address GH code quality comments — dead code, empty excepts, redundant assert (
53ee321) -
Align SDK protocols.py — get_request_status request_ids, add stop/start_machines stubs (
c04605c) -
Apply suggested fix to src/orb/domain/template/template_aggregate.py from Copilot Autofix (
8bda3cf) -
Cast registry to Any before hasattr reload call to satisfy pyright (
82e05da) -
CLI audit — ResponseFormattingService throughout, fix 11 bugs + list-returns machines (
119771a) -
Config commands wrap results in InterfaceResponse (
d4c0ebf) -
Correct InfrastructureError import path in http_response_handler test (
b737799) -
Correct stale test assertions — requestId→request_id, long→verbose, detailed→verbose, fix import order (
be39857) -
Extract build_parser(), add --detailed to providers health, add CLI contract tests (
1a51349) -
Fix actionlint errors in preview job (
b2f457f) -
Forward offset, limit, status from args to ListRequestsInput in handle_list_requests (
15bcde4) -
Handle_system_health returns InterfaceResponse on happy path (
f7f8928) -
Handle_system_health returns InterfaceResponse, update tests to match; fix list_all→find_all in system_handlers (
949147b) -
Health endpoint runs checks before returning status (
1f0e120) -
Health_command_handler returns dict, fix system_health return type (
cc08ae5) -
Include templates in RefreshTemplatesHandler command.result (
d1c66b3) -
Infrastructure handlers exit codes and data; templates generate error key (
192e9c3) -
Log actual provider types on init instead of stale mock fallback (
d7bc390) -
Log provider instances (not type) on successful init (
761f018) -
Machine handlers return type annotations and None guard (
5330f0c) -
Machines stop/start use ResponseFormattingService; machines show wraps result in InterfaceResponse (
4b70e5d) -
Map shutting-down/stopping machine state to executing not fail (
66bd90b) -
Move AWS naming patterns into providers block, move database into storage, add contract test imports (
8595693) -
Normalise validation error dicts in request/machine/template handlers (
a47057f) -
Orchestrator consistency cleanup — config nesting, duplicate imports, health handler (
d73d156) -
Orchestrator consistency — 18 issues across serialisation, registry wiring, and envelope shape (
43fc771) -
PR #173 second review — 7 issues across interface, MCP, AWS adapter, and DI (
4b14268) -
Preserve historical machine data (IP, subnet etc) for terminal/transitional states (
24687b0) -
Providers JSON output + providers get command + scheduler validate DTO + system status real metrics + test type fixes (
351c443) -
Providers select now persists default via config write + fix args.provider_name (
a2c861e) -
Remove --detailed subparser args; --verbose is already global (
284adc5) -
Remove broken requests create/return registry entries; explicit provider factory signatures (
6aaf640) -
Remove PrivateIpAddress from required AWS instance fields — absent for shutting-down/terminated instances (
2fdecb8) -
Remove redundant if condition from release job (
5fb6cf8) -
Rename GetRequestQuery.long→verbose, wire duration/success_rate/launch_template into RequestDTO (
1909536) -
Rename machines list --template-id to --request-id and fix extract_output_format (
8f3c451) -
Rename providers select positional to provider_name and add --args alias on exec (
3d4db94) -
Replace _make_bus_handler with proper handlers; wrap system metrics and mcp handlers in InterfaceResponse (
a507da3) -
Replace broken upload-sarif with SPDX dependency submission for SBOM upload (
efbca6a) -
Replace empty string choice with auto for force_level input (
63d3e8d) -
Replace MCP _get_tool_schema name-heuristic with static schema dict; fix count→machine_count (
32c63e9) -
Resolve 2 test warnings — unawaited coroutine + asyncio fixture scope (
0eac5b3) -
Resolve 2 test warnings — unawaited coroutine + asyncio fixture scope (
d300975) -
Resolve pyright errors from CLI consistency changes (
5370acf) -
Resolve pyright errors from interface consistency changes (
3f717b9) -
Resolve remaining pyright errors in handlers and contract tests (
f954b89) -
Resolve ResponseFormattingService from DI singleton in dependencies.py (
e5e2168) -
REST provider_name filter on list_machines, stream decorator, typed validate body, requested_count alias (
39be77c) -
Restore missing pytest markers (api, security) in pyproject.toml (
2203486) -
Restore naming patterns to providers.aws config, clean up dead config keys, fix contract test imports (
8380de7) -
Restore shutting-down to terminal count in request status (
97ae241) -
Return minimal machine record for terminal/transitional AWS states instead of failing validation (
e05f960) -
Return path and machine display bugs (
d4d2f07) -
Return request not complete until machines fully terminated (
677ee11) -
Router int-return guard for provider handlers (
8d2ff5c) -
Ruff format and import order in loader and aws_provider_strategy (
c6523bc) -
Ruff import sort in orchestrator_registry and test file (
a54af2f) -
Scheduler response formatting — HF spec fields, status_reason promotion, null stripping (
f86e142) -
Scheduler validate exit code; mcp safe args.format access; init handles KeyboardInterrupt (
c65677b) -
SDK/REST/MCP output consistency — MCP tool registration, InterfaceResponse serialisation, REST formatter injection (
6f24755) -
Show machine's own request_id in request status response (
7e66cdd) -
Smart requestId/returnRequestId display based on request context (
0198a0e) -
Storage health/metrics model_dump serialisation and storage test exit code (
224f6cd) -
Storage validate uses storage query; health/metrics wrapped in InterfaceResponse (
b0d236f) -
System reload/health/metrics use ResponseFormattingService; add format_success (
48b556c) -
Template handlers return types and remove stale scheduler references (
0df6d61) -
Template_id filter, reload CLI args, flag_request_id handling, system_command_handlers cleanup (
20bbd99) -
Unify handle_system_health return type to always return InterfaceResponse (
6922ac3) -
Update aws_templates.json defaults and align config test assertions (
ac61a84) -
Update test schemas and fixtures for cloudHostId fallback behaviour (
cd21b26) -
Use correct ConsolePort method in init KeyboardInterrupt handler (
6c8e300) -
Use find_all() instead of list_all() in storage health probe (
b16383d) -
Use relative path in test_arch_checker_passes (
ed23b36) -
Wire --strategy, --timeout, --request-type, --force, --timestamp-format args through to DTOs; fix infrastructure --all-providers dead branch (
7e059d6) -
Wire --verbose through storage health with real latency probe (
e1a7f26) -
Wire --verbose through system/config/storage handlers, remove --detailed everywhere (
8009d5b) -
Wire dropped params in list_machines, list_templates, return_requests, provider_health, provider_metrics, get_template handlers (
37f6feb) -
Wrap raw dict error returns in InterfaceResponse for machine and template handlers (
995080c)
Chores
-
Monthly dependency maintenance (
c3fc3b2) -
Monthly dependency maintenance (
cf7eccc) -
Replace author attribution with AWS ORB Maintainers (
0c9486c)
Code Style
-
Auto-format code with ruff [skip ci] (
dee2bb4) -
Auto-format code with ruff [skip ci] (
e739941) -
Auto-format code with ruff [skip ci] (
b89e763) -
Auto-format code with ruff [skip ci] (
9a37366) -
Auto-format code with ruff [skip ci] (
7fd9934) -
Auto-format code with ruff [skip ci] (
774c390) -
Auto-format code with ruff [skip ci] (
b0ef843) -
Auto-format code with ruff [skip ci] (
d9bdaaa) -
Auto-format code with ruff [skip ci] (
fadda1d) -
Auto-format code with ruff [skip ci] (
c8ebf6b) -
Auto-format code with ruff [skip ci] (
36716c1) -
Auto-format code with ruff [skip ci] (
e1344e6) -
Auto-format code with ruff [skip ci] (
ba5edbe) -
Auto-format code with ruff [skip ci] (
d9383a7) -
Fix import ordering for response_formatting_service move (
b20ae24) -
Fix import ordering in contract and e2e test files (
d37ea5d) -
Fix import ordering in storage_command_handlers (
fca491c) -
Fix ruff format and import ordering in test files (
ee26a0d) -
Ruff import sort fixes (
d04ff94)
Continuous Integration
-
Add Codecov test analytics — junit_family=legacy and test-results-action upload (
53e2efc) -
Add CODECOV_TOKEN to codecov upload step (
0f4fc9e) -
Consolidate pytest/coverage config, add codecov.yml, promote CI badges to README (
6a8a120) -
Remove mypy from pre-commit hooks and pyproject.toml excludes (
1ea0a77) -
Remove mypy — pyright covers all type checking (
ec8f63f)
Documentation
-
Add Documentation badge to README (
2aa45a7) -
Remove duplicate CI badges from Documentation & CI details section (
9b37555)
Features
-
Add --wait/--timeout to machines return and machines terminate (
99de4fe) -
Add force_level input to workflow_dispatch for manual bump override (
ed277ca) -
Add scheduler/storage orchestrators, formatter methods, migrate handlers (
0d598d2)
Performance Improvements
-
Run return deprovisioning as background task (
791239d) -
Skip describe calls on return path when resource_mapping provided (
03cf7e1) -
Skip describe_instances on EC2Fleet instant fleet hot path (
7f68269)
Refactoring
-
Decouple AWS defaults from default_config.json into provider-owned config (
92a7b30) -
Extract _extract_status_reason helper in machine_adapter (
8ab0514) -
Extract composition root to orb.bootstrap package (
c819ec8) -
Introduce ResponseFormattingService for uniform handler return values (
ddf0869) -
Move ResponseFormattingService to interface layer + fix warnings (
4924e5a)
Testing
-
Fix async request poll mock shape and key names (
92d4868) -
Fix dead formatter assignment and self-comparison assertion (
5027aca) -
Fix e2e spot fleet tests — use AWSTemplate and correct RequestStatus values (
2df3d87) -
Suppress unused scheduler variable warnings (
575cc6b) -
Unwrap InterfaceResponse in contract test helpers (
4be88c9) -
Update machines start/stop tests for InterfaceResponse return type (
8e1b894) -
Wire ProviderRegistryPort into mock container in full workflow test (
fd6ba4d)
Detailed Changes: v1.4.0...v1.5.0