feat(#299): queue-depth auto-scaler + cloud_burst capability metadata #301
No reviewers
Labels
No labels
blocked:children
blocked:commit-ready-failed
blocked:depends-231
blocked:depends-236
blocked:depends-237
blocked:depends-238
blocked:depends-239
blocked:gate-fetch
blocked:gate-fetch
blocked:gate-lint
blocked:gate-research
blocked:needs-attention
blocked:needs-decision
blocked:no-changes
blocked:no-procedure
blocked:preflight
blocked:verify-failed
bug
enhancement
feature-request
high-priority
in-progress
lint-cleanup
needs-decompose
needs-triage
ops-retry
ops-task
phase-5
quickfix
security/medium
self-building
triage-approved
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set.
Reference
Mark/mesh-seed!301
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "fix/mesh-seed-299-autoscaler"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Summary
Closes #299 — Mark/mesh-seed queue-depth auto-scaler (Phase 3 slice, sibling to PR #300 trust-tier enforcement).
Deterministic, single-node-safe
runtime/auto_scaler.pyreads queue depth from a pluggable probe (HostMetrics + InProcessCounter) and emits ScaleDecisions (scale_up/scale_down/no_op) with explicit thresholds + hysteresis.apply(decision, spawner=None)no-ops with{applied: false, reason: spawner_unconfigured}when no WorkerSpawner is wired, so the substrate stays runnable without federation.The
templates/workers/compositions/cloud_burst.yamltemplate is extended with the capability/GPU/trust/autoscale blocks the Phase 3 router (PR #297 + PR #300) needs to consider cloud workers as first-class candidates.Commits
05189cefeat(#299): queue-depth auto-scaler + cloud_burst capability metadata (4 files, +897)dba0b32Mark unit tests for test_auto_scaler and test_cloud_burst_template (+4 lines)1550f02docs(#299): AUTO_SCALER reference, registry plumbing, router cross-link (+197 lines)0f150afstyle: ruff format runtime/structured_logging.py (+7/-5, pre-existing lint debt)Test evidence
pytest tests/unit/test_auto_scaler.py tests/unit/test_cloud_burst_template.py— 53 passed in 0.19sruff format --checkon all changed files — PASSruff checkon all changed files — All checks passedpre-commit run --all-fileson this commit — all hooks PASSAcceptance criteria
runtime/auto_scaler.pyexposesdecide(metrics, state) -> ScaleDecisionandapply(decision, spawner=None)templates/workers/compositions/cloud_burst.yamladvertises capability + GPU + trust metadata + autoscale blocktests/unit/test_auto_scaler.pycovers empty / rising / sustained / falling queues + invalid/missing metrics + structured no-op when unwiredtests/unit/test_cloud_burst_template.pyvalidates template structure + round-trips through yaml.safe_loaddocs/reference/AUTO_SCALER.mddocuments thresholds, hysteresis, WorkerSpawner ABC, single-node boundaryOut of scope (per issue body)
CloudSpawneris a future sliceruntime/host_scheduler.pyselection logicCloudSpawnerimplementation — only the ABC +NullSpawnerno-opsubstrate/trust_tiers.pypolicy tables