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 the
MoSCoW
Could have
Points
13
Priority
Medium
State
Verified
Type
Feature
labels 2026-03-13 22:03:16 +00:00
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
State
In Progress
and removed
State
Verified
labels 2026-03-23 02:42:53 +00:00
freemo added
State
In Review
and removed
State
In Progress
labels 2026-03-23 04:21:34 +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.
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: cleveragents/cleveragents-core#865