feat(server): container/devcontainer support lifecycle #865

Closed
opened 2026-03-13 22:02:51 +00:00 by freemo · 2 comments
Owner

Metadata

  • Commit Message: feat(server): container/devcontainer support lifecycle
  • Branch: feature/m9-container-lifecycle

Background

M9 (v3.8.0) acceptance criterion: the server must support container and devcontainer lifecycle management. This includes creating, starting, stopping, and destroying development containers, with support for devcontainer.json specification.

Expected Behavior

  1. Server can manage container lifecycles (create/start/stop/destroy)
  2. devcontainer.json spec support for workspace configuration
  3. Container health monitoring
  4. Resource limits enforcement
  5. Container logs accessible through API

Acceptance Criteria

  • Container lifecycle management works (create/start/stop/destroy)
  • devcontainer.json spec respected
  • Health monitoring functional
  • Resource limits enforced
  • Unit tests cover: lifecycle operations, spec parsing, health checks

Subtasks

  • Implement container lifecycle management
  • Implement devcontainer.json parser
  • Implement health monitoring
  • Implement resource limits
  • Tests (Behave): Add scenarios for container lifecycle
  • Verify coverage >=97% via nox -s coverage_report
  • Run nox (all default sessions), fix any errors

Definition of Done

This issue is complete when:

  • All subtasks above are completed and checked off.
  • A Git commit is created where the first line of the commit message matches the Commit Message in Metadata exactly, followed by a blank line, then additional lines providing relevant details about the implementation.
  • The commit is pushed to the remote on the branch matching the Branch in Metadata exactly.
  • The commit is submitted as a pull request to master, reviewed, and merged before this issue is marked done.
## Metadata - **Commit Message**: `feat(server): container/devcontainer support lifecycle` - **Branch**: `feature/m9-container-lifecycle` ## Background M9 (v3.8.0) acceptance criterion: the server must support container and devcontainer lifecycle management. This includes creating, starting, stopping, and destroying development containers, with support for devcontainer.json specification. ## Expected Behavior 1. Server can manage container lifecycles (create/start/stop/destroy) 2. devcontainer.json spec support for workspace configuration 3. Container health monitoring 4. Resource limits enforcement 5. Container logs accessible through API ## Acceptance Criteria - [ ] Container lifecycle management works (create/start/stop/destroy) - [ ] devcontainer.json spec respected - [ ] Health monitoring functional - [ ] Resource limits enforced - [ ] Unit tests cover: lifecycle operations, spec parsing, health checks ## Subtasks - [ ] Implement container lifecycle management - [ ] Implement devcontainer.json parser - [ ] Implement health monitoring - [ ] Implement resource limits - [ ] Tests (Behave): Add scenarios for container lifecycle - [ ] Verify coverage >=97% via `nox -s coverage_report` - [ ] Run `nox` (all default sessions), fix any errors ## Definition of Done This issue is complete when: - All subtasks above are completed and checked off. - A Git commit is created where the **first line** of the commit message matches the Commit Message in Metadata exactly, followed by a blank line, then additional lines providing relevant details about the implementation. - The commit is pushed to the remote on the branch matching the **Branch** in Metadata exactly. - The commit is submitted as a **pull request** to `master`, reviewed, and **merged** before this issue is marked done.
freemo added this to the v3.8.0 milestone 2026-03-13 22:03:19 +00:00
freemo self-assigned this 2026-03-14 04:27:38 +00:00
freemo added reference feature/m9-container-lifecycle 2026-03-23 04:21:42 +00:00
Author
Owner

PR #1121 has been reviewed for the third time and changes are still requested. The head SHA has not changed since the prior two reviews — no fixes have been applied yet.

Hard blockers remaining:

  1. Merge conflicts (mergeable: false) — PR #1107 must merge first, then rebase
  2. 11 prohibited # type: ignore suppressions
  3. Two files exceed the 500-line limit
  4. Empty PR body (missing Closes #865 and description)

Correctness bug: KB memory parsing multiplier is wrong (treats KB same as MB).

Design issues: Encapsulation violation in HealthMonitor, weak Any typing for run_command, misleading image kwarg in test.

See PR #1121 comment for full details and specific fix instructions.


Automated by CleverAgents Bot
Supervisor: PR Review | Agent: ca-pr-self-reviewer

PR #1121 has been reviewed for the third time and **changes are still requested**. The head SHA has not changed since the prior two reviews — no fixes have been applied yet. **Hard blockers remaining:** 1. Merge conflicts (`mergeable: false`) — PR #1107 must merge first, then rebase 2. 11 prohibited `# type: ignore` suppressions 3. Two files exceed the 500-line limit 4. Empty PR body (missing `Closes #865` and description) **Correctness bug:** KB memory parsing multiplier is wrong (treats KB same as MB). **Design issues:** Encapsulation violation in HealthMonitor, weak `Any` typing for `run_command`, misleading `image` kwarg in test. See PR #1121 comment for full details and specific fix instructions. --- **Automated by CleverAgents Bot** Supervisor: PR Review | Agent: ca-pr-self-reviewer
Author
Owner

PR #1121 reviewed (fourth independent review). Changes requested. The head SHA (9c4655fd) has not changed since the first review — all previously identified blockers remain unresolved:

  1. Merge conflicts — PR is not mergeable; depends on PR #1107 merging first
  2. 11 # type: ignore suppressions — prohibited by CONTRIBUTING.md
  3. 2 files exceed 500-line limitcontainer_lifecycle_steps.py (929 lines), container_manager.py (524 lines)
  4. Empty PR body — missing closing keyword and description
  5. KB memory parsing bug"kb" multiplier incorrectly set to 1 (same as MB)
  6. Encapsulation violationHealthMonitor accesses private _transition method
  7. Weak typingrun_command: Any defeats static type checking

See PR #1121 comment for full details.


Automated by CleverAgents Bot
Supervisor: PR Review | Agent: ca-pr-self-reviewer

PR #1121 reviewed (fourth independent review). **Changes requested.** The head SHA (`9c4655fd`) has not changed since the first review — all previously identified blockers remain unresolved: 1. **Merge conflicts** — PR is not mergeable; depends on PR #1107 merging first 2. **11 `# type: ignore` suppressions** — prohibited by CONTRIBUTING.md 3. **2 files exceed 500-line limit** — `container_lifecycle_steps.py` (929 lines), `container_manager.py` (524 lines) 4. **Empty PR body** — missing closing keyword and description 5. **KB memory parsing bug** — `"kb"` multiplier incorrectly set to `1` (same as MB) 6. **Encapsulation violation** — `HealthMonitor` accesses private `_transition` method 7. **Weak typing** — `run_command: Any` defeats static type checking See [PR #1121 comment](https://git.cleverthis.com/cleveragents/cleveragents-core/pulls/1121#issuecomment-108986) for full details. --- **Automated by CleverAgents Bot** Supervisor: PR Review | Agent: ca-pr-self-reviewer
Sign in to join this conversation.
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
cleveragents/cleveragents-core#865
No description provided.