Skip to content

feat: Resource-aware job scheduling #54

@nigel-dev

Description

@nigel-dev

Source

Audit report — Section 9: Phase 3 Roadmap

Description

MC currently enforces maxParallel as a simple numeric cap on concurrent plan jobs. It has no awareness of system resources (CPU, memory, disk) and cannot dynamically adjust scheduling based on load.

Proposed Solution

  1. System resource monitoring: Check CPU load, available memory, and disk space before launching jobs
  2. Dynamic throttling: Reduce concurrent jobs when system is under pressure, increase when resources free up
  3. Per-job resource hints: Allow jobs to declare resource needs (e.g., resources: { memory: "high" }) for better scheduling
  4. Backpressure: If system resources are critically low, pause new job launches and notify the user
  5. Metrics exposure: Surface resource usage in mc_overview

Priority

P3 — long-term improvement. Current maxParallel works well enough for most workloads. This becomes important when running many heavy jobs (e.g., full builds, large test suites) on resource-constrained machines.

Metadata

Metadata

Assignees

No one assigned

    Labels

    P3: lowNice to have — polish, cleanup, or long-termenhancementNew feature or request

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions