fix(resource): align DETECTED->DISCOVERED rename and remove build artifacts
CI / lint (pull_request) Successful in 40s
CI / typecheck (pull_request) Successful in 1m13s
CI / security (pull_request) Successful in 1m2s
CI / quality (pull_request) Successful in 51s
CI / build (pull_request) Successful in 39s
CI / push-validation (pull_request) Successful in 18s
CI / helm (pull_request) Successful in 39s
CI / e2e_tests (pull_request) Successful in 3m36s
CI / integration_tests (pull_request) Successful in 5m2s
CI / unit_tests (pull_request) Has been cancelled
CI / coverage (pull_request) Has been cancelled
CI / benchmark-publish (pull_request) Has been cancelled
CI / status-check (pull_request) Has been cancelled
CI / benchmark-regression (pull_request) Has been cancelled
CI / docker (pull_request) Has been cancelled

- Remove committed build artifacts (test_reports/summary.txt,
  test_reports/test_results.json) and add test_reports/ to .gitignore
- Fix CLI resource.py: update lifecycle state condition and warning
  banner from 'detected (not built)' to 'discovered (not built)' and
  'Devcontainer detected' to 'Devcontainer discovered' to align with
  ContainerLifecycleState.DISCOVERED rename
- Fix BDD feature file: update resource_list_lifecycle_state.feature
  scenario title and assertion from 'Devcontainer detected' to
  'Devcontainer discovered'
- Fix robot/helper_devcontainer_lifecycle.py: update enum value check
  from 'detected' to 'discovered' in cmd_enum_values()
- Fix robot/helper_devcontainer_handler.py: update strategy check
  assertion from 'none' to 'snapshot' to match PR #8304 change
- Update CONTRIBUTORS.md with HAL 9000 feature contribution entry

Closes #7555 (via PR #8304)

Fixes: CI unit_tests and integration_tests failures from PR #8304
This commit is contained in:
2026-04-13 21:48:08 +00:00
parent 07df0b0157
commit c515e03540
8 changed files with 14 additions and 2739 deletions
+3
View File
@@ -180,3 +180,6 @@ output.xml
report.html
.agent-orchestration
agents-test
# Generated test artifacts
test_reports/
+1
View File
@@ -14,4 +14,5 @@ Below are some of the specific details of various contributions.
* Jeffrey Phillips Freeman has acted as Lead Developer, daily contributor, and Project Owner.
* Brent E. Edwards has contributed quality assurance, test coverage, and CI pipeline improvements.
* HAL 9000 has contributed the `--clone-into` CLI argument for `container-instance`, the `CloneIntoHandler` module, the `devcontainer-instance` snapshot sandbox strategy, and the `ContainerLifecycleState.DISCOVERED` terminology alignment (PR #8304, issue #7555).
* This project was made possible thanks to considerable donation of time, money, and resources by CleverThis, Inc.
@@ -41,16 +41,16 @@ Feature: agents resource list shows devcontainer lifecycle state column
Then the resource output should contain "local/my-repo"
And the resource output should contain "git-checkout"
Scenario: resource list shows warning banner when devcontainer is in detected state
Scenario: resource list shows warning banner when devcontainer is in discovered state
Given a devcontainer-instance resource is registered
When I run resource list with all flag
Then the resource output should contain "Devcontainer detected"
Then the resource output should contain "Devcontainer discovered"
Scenario: resource list does not show warning banner when devcontainer is running
Given a devcontainer-instance resource is registered
And the devcontainer lifecycle state is "running"
When I run resource list with all flag
Then the resource output should not contain "Devcontainer detected"
Then the resource output should not contain "Devcontainer discovered"
@tdd_issue @tdd_issue_4263 @tdd_expected_fail
Scenario: resource list JSON output includes lifecycle_state for devcontainer-instance
+3 -4
View File
@@ -75,12 +75,11 @@ def cmd_protocol_check() -> None:
def cmd_strategy_check() -> None:
"""Verify DevcontainerHandler default strategy.
F22/F25 fix: handler uses ``none`` because SandboxFactory has not yet
implemented ``snapshot``. The container itself provides isolation.
Known limitation — will switch to ``snapshot`` once implemented.
PR #8304 fix: handler now uses ``snapshot`` strategy for safe plan
execution inside containers (ADR-043 devcontainer integration).
"""
handler = DevcontainerHandler()
assert handler._default_strategy.value == "none"
assert handler._default_strategy.value == "snapshot"
print("strategy-check-ok")
+1 -1
View File
@@ -104,7 +104,7 @@ class _MockRunner:
def cmd_enum_values() -> None:
"""Verify all six lifecycle states exist."""
expected = {"detected", "building", "running", "stopping", "stopped", "failed"}
expected = {"discovered", "building", "running", "stopping", "stopped", "failed"}
actual = {s.value for s in ContainerLifecycleState}
assert actual == expected, f"Expected {expected}, got {actual}"
print("enum-values-ok")
+3 -3
View File
@@ -159,7 +159,7 @@ def _get_lifecycle_state_str(resource: Any) -> str | None:
resource: A Resource domain object.
Returns:
Lifecycle state string (e.g. ``"detected (not built)"``, ``"running"``)
Lifecycle state string (e.g. ``"discovered (not built)"``, ``"running"``)
or ``None`` if the resource type has no lifecycle state.
"""
if resource.resource_type_name not in _CONTAINER_TYPES:
@@ -877,7 +877,7 @@ def resource_list(
if len(res_id) > 12:
res_id = res_id[:12] + "..."
lifecycle_state = _get_lifecycle_state_str(res)
if lifecycle_state == "detected (not built)":
if lifecycle_state == "discovered (not built)":
detected_devcontainers.append(res)
table.add_row(
res_id,
@@ -895,7 +895,7 @@ def resource_list(
location = res.location or "(unknown path)"
devcontainer_json = f"{location}/.devcontainer/devcontainer.json"
console.print(
f"[yellow]⚠ Devcontainer detected at {devcontainer_json}[/yellow]"
f"[yellow]⚠ Devcontainer discovered at {devcontainer_json}[/yellow]"
)
console.print(" Container will be built lazily on first access.")
console.print(
-674
View File
@@ -1,674 +0,0 @@
Test Framework: generic
Total Tests: 155
Passed: 107
Failed: 48
--- Test Results ---
✓ Output Block 1
✓ Output Block 2
✓ Output Block 3
✓ Output Block 4
✓ Output Block 5
✓ Output Block 6
✓ Output Block 7
✓ Output Block 8
✓ Output Block 9
✓ Output Block 10
✗ Output Block 11
✓ Output Block 12
✓ Output Block 13
✗ Output Block 14
✗ Output Block 15
✗ Output Block 16
✓ Output Block 17
✓ Output Block 18
✓ Output Block 19
✓ Output Block 20
✓ Output Block 21
✓ Output Block 22
✗ Output Block 23
✗ Output Block 24
✗ Output Block 25
✗ Output Block 26
✓ Output Block 27
✗ Output Block 28
✗ Output Block 29
✗ Output Block 30
✗ Output Block 31
✗ Output Block 32
✗ Output Block 33
✗ Output Block 34
✗ Output Block 35
✓ Output Block 36
✓ Output Block 37
✓ Output Block 38
✓ Output Block 39
✓ Output Block 40
✓ Output Block 41
✓ Output Block 42
✓ Output Block 43
✓ Output Block 44
✗ Output Block 45
✓ Output Block 46
✓ Output Block 47
✗ Output Block 48
✓ Output Block 49
✓ Output Block 50
✗ FAIL: Output Block 51
✓ Output Block 52
✗ Output Block 53
✗ FAIL: Output Block 54
✓ Output Block 55
✓ Output Block 56
✗ Output Block 57
✗ Output Block 58
✓ Output Block 59
✓ Output Block 60
✗ Output Block 61
✗ Output Block 62
✓ Output Block 63
✓ Output Block 64
✓ Output Block 65
✓ Output Block 66
✓ Output Block 67
✓ Output Block 68
✓ Output Block 69
✓ Output Block 70
✓ Output Block 71
✓ Output Block 72
✓ Output Block 73
✓ Output Block 74
✓ Output Block 75
✓ Output Block 76
✓ Output Block 77
✓ Output Block 78
✓ Output Block 79
✓ Output Block 80
✓ Output Block 81
✓ Output Block 82
✗ Output Block 83
✓ Output Block 84
✓ Output Block 85
✗ Output Block 86
✓ Output Block 87
✗ Output Block 88
✓ Output Block 89
✓ Output Block 90
✓ Output Block 91
✓ Output Block 92
✗ Output Block 93
✗ Output Block 94
✓ Output Block 95
✓ Output Block 96
✓ Output Block 97
✓ Output Block 98
✗ Output Block 99
✓ Output Block 100
✓ Output Block 101
✓ Output Block 102
✓ Output Block 103
✗ Output Block 104
✓ Output Block 105
✓ Output Block 106
✗ Output Block 107
✓ Output Block 108
✓ Output Block 109
✗ Output Block 110
✓ Output Block 111
✗ Output Block 112
✓ Output Block 113
✗ Output Block 114
✓ Output Block 115
✗ Output Block 116
✓ Output Block 117
✓ Output Block 118
✓ Output Block 119
✓ Output Block 120
✓ Output Block 121
✓ Output Block 122
✗ Output Block 123
✓ Output Block 124
✓ Output Block 125
✓ Output Block 126
✓ Output Block 127
✓ Output Block 128
✓ Output Block 129
✓ Output Block 130
✗ Output Block 131
✗ Output Block 132
✓ Output Block 133
✓ Output Block 134
✓ Output Block 135
✓ Output Block 136
✓ Output Block 137
✓ Output Block 138
✓ Output Block 139
✓ Output Block 140
✗ Output Block 141
✗ Output Block 142
✗ Output Block 143
✗ Output Block 144
✓ Output Block 145
✓ Output Block 146
✓ Output Block 147
✓ Output Block 148
✓ Output Block 149
✓ Output Block 150
✓ Output Block 151
✗ Output Block 152
✗ Output Block 153
✗ nox > Running session unit_tests-3.13
✗ Error Output
--- Failed Tests ---
✗ Output Block 11
1 feature passed, 0 failed, 0 skipped
10 scenarios passed, 0 failed, 0 skipped
23 steps passed, 0 failed, 0 skipped
Took 0min 0.006s
Feature: Devcontainer Lifecycle State Model
As a CleverAgents developer
I want the container lifecycle state model to enforce valid transitions
So that containers follow a predictable state machine
Scenario: ContainerLifecycleState has all required values
When I inspect ContainerLifecycleState enum values
Then the lifecycle enum should contain "discovered"
And the lifecycle enum should contain "building"
And the lifecycle enum should contain "running"
And the lifecycle enum should contain "stopping"
And the lifecycle enum should contain "stopped"
And the lifecycle enum should contain "failed"
✗ Output Block 14
Scenario: Invalid transition is rejected
Given a lifecycle tracker for resource "01TESTLIFECYCLE0000000003"
When I attempt to transition from "discovered" to "running"
Then the transition should raise ValueError
✗ Output Block 15
Scenario: Stopping to error transition is valid
Given a lifecycle tracker in "stopping" state for resource "01TESTLIFECYCLE0000000004"
When I transition from "stopping" to "failed"
Then the transition should succeed
And the tracker state should be "failed"
✗ Output Block 16
Scenario: Error to starting transition is valid for retry
Given a lifecycle tracker in "failed" state for resource "01TESTLIFECYCLE0000000005"
When I transition from "failed" to "building"
Then the transition should succeed
And the tracker state should be "building"
✗ Output Block 23
Scenario: validate_transition rejects wrong types
When I call validate_transition with non-enum arguments
Then it should raise TypeError
✗ Output Block 24
Scenario: validate_transition rejects wrong to_state type
When I call validate_transition with non-enum to_state
Then it should raise TypeError
✗ Output Block 25
Scenario: transition_state rejects wrong tracker type
When I call transition_state with non-tracker argument
Then it should raise TypeError
✗ Output Block 26
Scenario: transition_state rejects wrong to_state type
When I call transition_state with non-enum to_state argument
Then it should raise TypeError
Feature: agents resource list shows devcontainer lifecycle state column
As a CleverAgents user
I want the resource list to show the lifecycle state for devcontainer-instance resources
So that I can see whether a devcontainer is discovered, running, stopped, or failed
Feature: agents resource list shows devcontainer lifecycle state column
✗ Output Block 28
Scenario: get_lifecycle_tracker rejects empty resource_id
When I attempt to get tracker with empty resource_id
Then the get tracker should raise ValueError
✗ Output Block 29
Scenario: set_lifecycle_tracker rejects wrong type
When I attempt to set tracker with wrong type
Then the set tracker should raise TypeError
✗ Output Block 30
Scenario: Invalid transition running to building is rejected
Given a lifecycle tracker in "running" state for resource "01TESTLIFECYCLE0000000240"
When I attempt to transition from "running" to "building"
Then the transition should raise ValueError
✗ Output Block 31
Scenario: Invalid transition stopped to running is rejected
Given a lifecycle tracker in "stopped" state for resource "01TESTLIFECYCLE0000000241"
When I attempt to transition from "stopped" to "running"
Then the transition should raise ValueError
✗ Output Block 32
Scenario: Invalid transition building to stopped is rejected
Given a lifecycle tracker in "building" state for resource "01TESTLIFECYCLE0000000242"
When I attempt to transition from "building" to "stopped"
Then the transition should raise ValueError
✗ Output Block 33
Scenario: Invalid transition failed to running is rejected
Given a lifecycle tracker in "failed" state for resource "01TESTLIFECYCLE0000000243"
When I attempt to transition from "failed" to "running"
Then the transition should raise ValueError
✗ Output Block 34
Scenario: Invalid transition discovered to stopping is rejected
Given a lifecycle tracker for resource "01TESTLIFECYCLE0000000244"
When I attempt to transition from "discovered" to "stopping"
Then the transition should raise ValueError
✗ Output Block 35
Scenario: Invalid transition building to discovered is rejected
Given a lifecycle tracker in "building" state for resource "01TESTLIFECYCLE0000000245"
When I attempt to transition from "building" to "discovered"
Then the transition should raise ValueError
✗ Output Block 45
1 feature passed, 0 failed, 0 skipped
32 scenarios passed, 0 failed, 0 skipped
106 steps passed, 0 failed, 0 skipped
Took 0min 0.037s
And built-in types are bootstrapped
Given a devcontainer-instance resource is registered
When I run resource list with all flag
Then the resource output should contain "discovered (not built)"
✗ Output Block 48
Scenario: resource list shows "failed" state for a failed devcontainer
Given a fresh in-memory resource registry
And built-in types are bootstrapped
Given a devcontainer-instance resource is registered
And the devcontainer lifecycle state is "failed"
When I run resource list with all flag
Then the resource output should contain "failed"
✗ FAIL: Output Block 51
ASSERT FAILED: Expected 'Devcontainer detected' in output, got:
Resources (1 total)
┏━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━┳━━━━━━━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━━━━━━━━━━┳━━━━━━━━━━┳━━━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━━━━━┓
┃ ID ┃ Name ┃ Type ┃ Status ┃ Kind ┃ Location ┃ Description ┃
┡━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━╇━━━━━━━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━━━━━━━━━━╇━━━━━━━━━━╇━━━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━━━━━┩
│ 01KP2TDV4GAR... │ (unnamed) │ devcontainer-instance │ discovered (not built) │ physical │ /tmp/test-project │ Test devcontainer │
└─────────────────┴───────────┴───────────────────────┴────────────────────────┴──────────┴───────────────────┴───────────────────┘
✗ Output Block 53
@tdd_issue @tdd_issue_4263 @tdd_expected_fail
Scenario: resource list JSON output includes lifecycle_state for devcontainer-instance
Given a fresh in-memory resource registry
And built-in types are bootstrapped
Given a devcontainer-instance resource is registered
When I run resource list with all flag and format "json"
Then the resource output should be valid JSON
And the resource JSON output should contain key "lifecycle_state"
✗ FAIL: Output Block 54
ASSERT FAILED: Key 'lifecycle_state' not found in JSON output
✗ Output Block 57
Scenario: resource list succeeds gracefully when lifecycle tracker raises an error
Given a fresh in-memory resource registry
And built-in types are bootstrapped
Feature: Devcontainer Resource Handler
As a CleverAgents developer
I want devcontainer resources to be auto-discovered and manually registered
So that devcontainer environments integrate into the resource model Given a devcontainer-instance resource is registered
✗ Output Block 58
Scenario: Register devcontainer-instance manually
Given a temporary directory with a valid devcontainer.json
When I create a devcontainer-instance resource at that path
Then And the resource should have type "the lifecycle tracker raises an error for the resourcedevcontainer-instance"
✗ Output Block 61
Failing scenarios:
features/resource_list_lifecycle_state.feature:44 resource list shows warning banner when devcontainer is in detected state
✗ Output Block 62
0 features passed, 1 failed, 0 skipped
11 scenarios passed, 1 failed, 0 skipped
69 steps passed, 1 failed, 0 skipped
Took 0min 1.827s
✗ Output Block 83
Scenario Outline: validate_clone_into_url rejects invalid URLs -- @1.1
When I validate clone-into URL "not-a-url"
Then it should raise a ValueError
Then the clone-into URL should be invalid
✗ Output Block 86
Scenario: clone_repo_into_container rejects empty container_id
When I call clone_repo_into_container with empty container_id
Then it should raise ValueError mentioning "container_id"
✗ Output Block 88
Scenario: clone_repo_into_container rejects empty repo_url
When I call clone_repo_into_container with empty repo_url
And the directory has a named devcontainer configuration "frontend"
Then it should raise ValueError mentioning "repo_url"
When I run devcontainer discovery on the directory as "git-checkout"
Then discovery should return 2 results
And the result config names should include "api"
✗ Output Block 93
Scenario: clone_repo_into_container raises CloneIntoError when docker exec fails
Given a mock docker exec that fails for clone with stderr "fatal: repository not found"
When I clone "https://github.com/org/missing.git" into container "abc123def456"
When I run devcontainer discovery on the directory as "git-checkout"
Then the clone should raise CloneIntoError
And the CloneIntoError should mention "repository not found"
Then discovery should return 1 result
And the first result should have no config name
✗ Output Block 94
Scenario: CloneIntoError stores repo_url, container_id, and stderr
Given a CloneIntoError with repo "https://example.com/repo.git" container "ctr-001" stderr "auth failed"
Then the CloneIntoError repo_url should be "https://example.com/repo.git"
And the CloneIntoError container_id should be "ctr-001"
And the CloneIntoError stderr should be "auth failed"
✗ Output Block 99
1 feature passed, 0 failed, 0 skipped
17 scenarios passed, 0 failed, 0 skipped
44 steps passed, 0 failed, 0 skipped
Took 0min 0.008s
Then discovery should return 0 results
✗ Output Block 104
1 feature passed, 0 failed, 0 skipped
26 scenarios passed, 0 failed, 0 skipped
90 steps passed, 0 failed, 0 skipped
Took 0min 0.026s
Feature: Devcontainer Session Cleanup and CLI Commands
As a CleverAgents developer
I want session-scoped container cleanup and CLI stop/rebuild commands
So that containers are cleaned up when sessions end and can be managed via CLI
Scenario: Active containers stopped on session cleanup
Given a mock devcontainer CLI runner
And an active container "01TESTLIFECYCLE0000000040" with container ID "ctr-a"
And an active container "01TESTLIFECYCLE0000000041" with container ID "ctr-b"
When I run session cleanup for session "session-001"
Then the container state for "01TESTLIFECYCLE0000000040" should be "stopped"
And the container state for "01TESTLIFECYCLE0000000041" should be "stopped"
✗ Output Block 107
Scenario: Session cleanup handles stop failure gracefully
Given a mock devcontainer CLI runner
And the runner configured to raise exception on stop
And an active container "01TESTLIFECYCLE0000000130" with container ID "ctr-fail"
When I run session cleanup for session "session-err"
Then the cleanup should return 0 stopped containers
✗ Output Block 110
Scenario: dcproto delete fails when container is stopped
Given dcproto a devcontainer handler
And dcproto a devcontainer-instance resource with location "/ws/project"
And dcproto subprocess returns failed rm output with stderr "container not running"
When dcproto I delete path "file.txt" from the resource
Then the CLI exit code should be 0
And the CLI output should contain "Stopped"
Then dcproto the delete should fail
And dcproto the delete failure message should contain "container not running"
✗ Output Block 112
Scenario: dcproto delete from resource with no location raises ValueError
Given dcproto a devcontainer handler
And dcproto a devcontainer-instance resource with no location
When dcproto I delete path "any/file.txt" from the resource
Then dcproto the delete should raise ValueError containing "no location"
✗ Output Block 114
Scenario: dcproto list_children returns empty list when container is stopped
Given dcproto a devcontainer handler
And dcproto a devcontainer-instance resource with location "/ws/project"
And dcproto subprocess returns failed ls output
When dcproto I list children of the resource
Then dcproto the children list should have 0 entries
✗ Output Block 116
Scenario: dcproto list_children from resource with no location raises ValueError
Given dcproto a devcontainer handler
And dcproto a devcontainer-instance resource with no location
When dcproto I list children of the resource
Then dcproto the list children should raise ValueError containing "no location"
✗ Output Block 123
Scenario: dcproto diff from resource with no location raises ValueError
Given dcproto a devcontainer handler
And dcproto a devcontainer-instance resource with no location
When dcproto I diff the resource against "/some/path"
Then the devcontainer CLI exit code should be non-zero
Then dcproto the diff should raise ValueError containing "no location"
And the CLI output should contain "no location"
✗ Output Block 131
Scenario: dcproto create_sandbox raises ValueError for resource with no location
Given dcproto a devcontainer handler
And dcproto a devcontainer-instance resource with no location
And dcproto a mock sandbox manager that returns a valid sandbox
When dcproto I create a sandbox for the resource with plan "plan-004"
Then dcproto the create_sandbox should raise ValueError containing "no location"
✗ Output Block 132
1 feature passed, 0 failed, 0 skipped
18 scenarios passed, 0 failed, 0 skipped
102 steps passed, 0 failed, 0 skipped
Took 0min 0.028s
Then the CLI exit code should be 0
And the CLI rebuild mock should have been called with "01TESTLIFECYCLE0000000221" and "/workspace/project"
✗ Output Block 141
Scenario: CLI stop handles NotFoundError from show_resource
Given a mock resource service that raises NotFoundError for "local/missing"
When I invoke CLI resource stop "local/missing"
Then the devcontainer CLI exit code should be non-zero
And the CLI output should contain "Resource not found"
✗ Output Block 142
Scenario: CLI rebuild handles NotFoundError from show_resource
Given a mock resource service that raises NotFoundError for "local/missing-rb"
When I invoke CLI resource rebuild "local/missing-rb"
Then the devcontainer CLI exit code should be non-zero
And the CLI output should contain "Resource not found"
✗ Output Block 143
Scenario: CLI stop handles RuntimeError from stop_container
Given a mock resource service with devcontainer "local/dc-rterr" id "01TESTLIFECYCLE0000000500" at "/workspace/project"
And an active container "01TESTLIFECYCLE0000000500" with container ID "ctr-rterr"
And CLI stop_container mock that raises RuntimeError
When I invoke CLI resource stop with error mock "local/dc-rterr"
Then the devcontainer CLI exit code should be non-zero
And the CLI output should contain "Stop failed"
✗ Output Block 144
Scenario: CLI rebuild handles RuntimeError from rebuild_container
Given a mock resource service with devcontainer "local/dc-rberr" id "01TESTLIFECYCLE0000000501" at "/workspace/project"
And a stopped container "01TESTLIFECYCLE0000000501"
And CLI rebuild_container mock that raises RuntimeError
When I invoke CLI resource rebuild with error mock "local/dc-rberr"
Then the devcontainer CLI exit code should be non-zero
And the CLI output should contain "Rebuild failed"
✗ Output Block 152
1 feature passed, 0 failed, 0 skipped
30 scenarios passed, 0 failed, 0 skipped
143 steps passed, 0 failed, 0 skipped
Took 0min 0.436s
2026-04-13 07:00:43 [debug ] detail_level_map_builder.created child_domain=uko-oo: parent_domain=uko-code:
2026-04-13 07:00:43 [debug ] detail_level_map_builder.insert_after after_level=MEMBER_LISTING domain=uko-oo: new_level=CLASS_HIERARCHY
2026-04-13 07:00:43 [debug ] detail_level_map_builder.insert_after after_level=SIGNATURES_WITH_DOCS domain=uko-oo: new_level=VISIBILITY_ANNOTATED
2026-04-13 07:00:43 [debug ] detail_level_map_builder.built domain=uko-oo: max_depth=11 num_levels=12
2026-04-13 07:00:43 [debug ] detail_level_map_builder.created child_domain=uko-oo: parent_domain=uko-code:
2026-04-13 07:00:43 [debug ] detail_level_map_builder.insert_after after_level=MEMBER_LISTING domain=uko-oo: new_level=CLASS_HIERARCHY
2026-04-13 07:00:43 [debug ] detail_level_map_builder.insert_after after_level=SIGNATURES_WITH_DOCS domain=uko-oo: new_level=VISIBILITY_ANNOTATED
2026-04-13 07:00:43 [debug ] detail_level_map_builder.built domain=uko-oo: max_depth=11 num_levels=12
2026-04-13 07:00:42 [debug ] detail_level_map_builder.created child_domain=uko-oo: parent_domain=uko-code:
2026-04-13 07:00:42 [debug ] detail_level_map_builder.insert_after after_level=MEMBER_LISTING domain=uko-oo: new_level=CLASS_HIERARCHY
2026-04-13 07:00:42 [debug ] detail_level_map_builder.insert_after after_level=SIGNATURES_WITH_DOCS domain=uko-oo: new_level=VISIBILITY_ANNOTATED
2026-04-13 07:00:42 [debug ] detail_level_map_builder.built domain=uko-oo: max_depth=11 num_levels=12
2026-04-13 07:00:43 [debug ] detail_level_map_builder.created child_domain=uko-oo: parent_domain=uko-code:
2026-04-13 07:00:43 [debug ] detail_level_map_builder.insert_after after_level=MEMBER_LISTING domain=uko-oo: new_level=CLASS_HIERARCHY
2026-04-13 07:00:43 [debug ] detail_level_map_builder.insert_after after_level=SIGNATURES_WITH_DOCS domain=uko-oo: new_level=VISIBILITY_ANNOTATED
2026-04-13 07:00:43 [debug ] detail_level_map_builder.built domain=uko-oo: max_depth=11 num_levels=12
2026-04-13 07:00:43 [debug ] detail_level_map_builder.created child_domain=uko-oo: parent_domain=uko-code:
2026-04-13 07:00:43 [debug ] detail_level_map_builder.insert_after after_level=MEMBER_LISTING domain=uko-oo: new_level=CLASS_HIERARCHY
2026-04-13 07:00:43 [debug ] detail_level_map_builder.insert_after after_level=SIGNATURES_WITH_DOCS domain=uko-oo: new_level=VISIBILITY_ANNOTATED
2026-04-13 07:00:43 [debug ] detail_level_map_builder.built domain=uko-oo: max_depth=11 num_levels=12
Including unscoped container 01TESTLIFECYCLE0000000040 in session 'session-001' cleanup (container has no session_id set)
Including unscoped container 01TESTLIFECYCLE0000000041 in session 'session-001' cleanup (container has no session_id set)
Container 01TESTLIFECYCLE0000000040: running -> stopping (manual stop)
Container 01TESTLIFECYCLE0000000040: stopping -> stopped (container stopped)
Stopped container 01TESTLIFECYCLE0000000040 (session=session-001)
Container 01TESTLIFECYCLE0000000041: running -> stopping (manual stop)
Container 01TESTLIFECYCLE0000000041: stopping -> stopped (container stopped)
Stopped container 01TESTLIFECYCLE0000000041 (session=session-001)
2026-04-13 07:00:43 [debug ] detail_level_map_builder.created child_domain=uko-oo: parent_domain=uko-code:
2026-04-13 07:00:43 [debug ] detail_level_map_builder.insert_after after_level=MEMBER_LISTING domain=uko-oo: new_level=CLASS_HIERARCHY
2026-04-13 07:00:43 [debug ] detail_level_map_builder.insert_after after_level=SIGNATURES_WITH_DOCS domain=uko-oo: new_level=VISIBILITY_ANNOTATED
2026-04-13 07:00:43 [debug ] detail_level_map_builder.built domain=uko-oo: max_depth=11 num_levels=12
Registered built-in resource type: fs-mount
Registered built-in resource type: git-checkout
Registered built-in resource type: fs-directory
Registered built-in resource type: container-instance
Registered built-in resource type: devcontainer-instance
Registered built-in resource type: devcontainer-file
Registered built-in resource type: git
Registered built-in resource type: git-remote
Registered built-in resource type: git-branch
Registered built-in resource type: git-tag
Registered built-in resource type: git-commit
Registered built-in resource type: git-tree
Registered built-in resource type: git-tree-entry
Registered built-in resource type: git-stash
Registered built-in resource type: git-submodule
Registered built-in resource type: fs-symlink
Registered built-in resource type: fs-hardlink
Registered built-in resource type: cloud-account
Registered built-in resource type: cloud-region
Registered built-in resource type: cloud-network
Registered built-in resource type: cloud-subnet
Registered built-in resource type: cloud-security-group
Registered built-in resource type: cloud-load-balancer
Registered built-in resource type: cloud-compute-instance
Registered built-in resource type: cloud-object-store
Registered built-in resource type: cloud-block-storage
Registered built-in resource type: cloud-identity-principal
Registered built-in resource type: cloud-role
Registered built-in resource type: cloud-policy
Registered built-in resource type: cloud-log-group
Registered built-in resource type: cloud-alarm
Registered built-in resource type: cloud-queue
Registered built-in resource type: cloud-topic
Registered built-in resource type: cloud-container-repo
Registered built-in resource type: cloud-container-cluster
Registered built-in resource type: cloud-container-service
Registered built-in resource type: aws-account
Registered built-in resource type: aws-region
Registered built-in resource type: aws-vpc
Registered built-in resource type: aws-subnet
Registered built-in resource type: aws-igw
Registered built-in resource type: aws-nat-gw
Registered built-in resource type: aws-route-table
Registered built-in resource type: aws-nacl
Registered built-in resource type: aws-security-group
Registered built-in resource type: aws-alb
Registered built-in resource type: aws-nlb
Registered built-in resource type: aws-target-group
Registered built-in resource type: aws-listener
Registered built-in resource type: aws-ec2-instance
Registered built-in resource type: aws-ami
Registered built-in resource type: aws-launch-template
Registered built-in resource type: aws-asg
Registered built-in resource type: aws-s3-bucket
Registered built-in resource type: aws-ebs-volume
Registered built-in resource type: aws-efs-filesystem
Registered built-in resource type: aws-iam-user
Registered built-in resource type: aws-iam-role
Registered built-in resource type: aws-iam-policy
Registered built-in resource type: aws-iam-instance-profile
Registered built-in resource type: aws-cloudwatch-log-group
Registered built-in resource type: aws-cloudwatch-alarm
Registered built-in resource type: aws-cloudwatch-metric
Registered built-in resource type: aws-eventbridge-bus
Registered built-in resource type: aws-eventbridge-rule
Registered built-in resource type: aws-eventbridge-target
Registered built-in resource type: aws-sqs-queue
Registered built-in resource type: aws-sns-topic
Registered built-in resource type: aws-sns-subscription
Registered built-in resource type: aws-ecr-repo
Registered built-in resource type: aws-ecs-cluster
Registered built-in resource type: aws-ecs-service
Registered built-in resource type: aws-ecs-task-def
Registered built-in resource type: aws-eks-cluster
Registered built-in resource type: aws-eks-nodegroup
Registered built-in resource type: gcp
Registered built-in resource type: azure
Registered built-in resource type: container-runtime
Registered built-in resource type: container-image
Registered built-in resource type: container-mount
Registered built-in resource type: container-exec-env
Registered built-in resource type: container-port
Registered built-in resource type: container-volume
Registered built-in resource type: container-network
Registered built-in resource type: postgres
Registered built-in resource type: mysql
Registered built-in resource type: sqlite
Registered built-in resource type: duckdb
Registered built-in resource type: file
Registered built-in resource type: directory
Registered built-in resource type: commit
Registered built-in resource type: branch
Registered built-in resource type: tag
Registered built-in resource type: tree
Registered built-in resource type: remote
Registered built-in resource type: submodule
Registered built-in resource type: symlink
Registered built-in resource type: executable
Registered built-in resource type: lsp-server
Registered built-in resource type: lsp-workspace
Registered built-in resource type: lsp-document
2026-04-13 07:00:43 [debug ] detail_level_map_builder.created child_domain=uko-oo: parent_domain=uko-code:
2026-04-13 07:00:43 [debug ] detail_level_map_builder.insert_after after_level=MEMBER_LISTING domain=uko-oo: new_level=CLASS_HIERARCHY
2026-04-13 07:00:43 [debug ] detail_level_map_builder.insert_after after_level=SIGNATURES_WITH_DOCS domain=uko-oo: new_level=VISIBILITY_ANNOTATED
2026-04-13 07:00:43 [debug ] detail_level_map_builder.built domain=uko-oo: max_depth=11 num_levels=12
✗ Output Block 153
Overall summary:
6 features passed, 1 failed, 0 errored, 0 skipped
144 scenarios passed, 1 failed, 0 errored, 0 skipped
553 steps passed, 1 failed, 0 errored, 0 skipped
Took 2.366s
Wall time: 2m 47.786s
✗ nox > Running session unit_tests-3.13
nox > Running session unit_tests-3.13
nox > Reusing existing virtual environment at .nox/unit_tests-3-13.
nox > uv pip install -e '.[tests]'
nox > uv pip install setuptools wheel
nox > uv pip install .nox/unit_tests-3-13/tmp/behave-parallel-inprocess
nox > python scripts/create_template_db.py /tmp/impl-worker-7555-20260413/build/.template-migrated.db
nox > python -m compileall -q features/
nox > /tmp/impl-worker-7555-20260413/.nox/unit_tests-3-13/bin/behave-parallel -q --processes 32 features/container_clone_into.feature features/devcontainer_sandbox_strategy.feature features/devcontainer_state.feature features/devcontainer_handler.feature features/devcontainer_cleanup.feature features/resource_list_lifecycle_state.feature features/devcontainer_handler_protocol_methods.feature
nox > Command /tmp/impl-worker-7555-20260413/.nox/unit_tests-3-13/bin/behave-parallel -q --processes 32 features/container_clone_into.feature features/devcontainer_sandbox_strategy.feature features/devcontainer_state.feature features/devcontainer_handler.feature features/devcontainer_cleanup.feature features/resource_list_lifecycle_state.feature features/devcontainer_handler_protocol_methods.feature failed with exit code 1
nox > Session unit_tests-3.13 failed.
✗ Error Output
nox > Running session unit_tests-3.13
nox > Reusing existing virtual environment at .nox/unit_tests-3-13.
nox > uv pip install -e '.[tests]'
nox > uv pip install setuptools wheel
nox > uv pip install .nox/unit_tests-3-13/tmp/behave-parallel-inprocess
nox > python scripts/create_template_db.py /tmp/impl-worker-7555-20260413/build/.template-migrated.db
nox > python -m compileall -q features/
nox > /tmp/impl-worker-7555-20260413/.nox/unit_tests-3-13/bin/behave-parallel -q --processes 32 features/container_clone_into.feature features/devcontainer_sandbox_strategy.feature features/devcontainer_state.feature features/devcontainer_handler.feature features/devcontainer_cleanup.feature features/resource_list_lifecycle_state.feature features/devcontainer_handler_protocol_methods.feature
nox > Command /tmp/impl-worker-7555-20260413/.nox/unit_tests-3-13/bin/behave-parallel -q --processes 32 features/container_clone_into.feature features/devcontainer_sandbox_strategy.feature features/devcontainer_state.feature features/devcontainer_handler.feature features/devcontainer_cleanup.feature features/resource_list_lifecycle_state.feature features/devcontainer_handler_protocol_methods.feature failed with exit code 1
nox > Session unit_tests-3.13 failed.
File diff suppressed because one or more lines are too long