fix: parallel dispatcher workers and direct Main queries #328

Merged
karsten merged 1 commit from fix/dispatcher-concurrency into main 2026-11-11 05:55:49 +00:00
Owner

Problem

Default worker capacity 1 serializes independent dispatcher tasks; ambiguous delegationPolicy can make Main unnecessarily route short questions through workers.

Changes

  • Default to 4 active workers across Core, starter and setup; preserve explicit operator/backend limits.
  • Distinguish optional delegation from preferred route; direct answers and bounded lookups stay in Main.
  • Supply current worker capacity/active/queued host facts without changing permissions or child restrictions.
  • Document fleet-wide rollout and explicit capacity overrides.

Verification

  • Full suite: 1800 passed, 1 skipped, 0 failed.
  • Final targeted suite: 24 passed; TypeScript and git diff --check clean.
  • Regression coverage: independent review completes while publisher runs; saturated pool accepts queued tasks and refills on settlement; Main retains read/bash tools.

Activation

Requires released Core rollout and controlled process restart. Audit explicit capacity: 1 overrides fleet-wide; no admission bypass or cancellation of active work.

Operator explicitly requested push, PR, merge and fleet rollout.

## Problem Default worker capacity 1 serializes independent dispatcher tasks; ambiguous `delegationPolicy` can make Main unnecessarily route short questions through workers. ## Changes - Default to 4 active workers across Core, starter and setup; preserve explicit operator/backend limits. - Distinguish optional delegation from preferred route; direct answers and bounded lookups stay in Main. - Supply current worker capacity/active/queued host facts without changing permissions or child restrictions. - Document fleet-wide rollout and explicit capacity overrides. ## Verification - Full suite: 1800 passed, 1 skipped, 0 failed. - Final targeted suite: 24 passed; TypeScript and git diff --check clean. - Regression coverage: independent review completes while publisher runs; saturated pool accepts queued tasks and refills on settlement; Main retains read/bash tools. ## Activation Requires released Core rollout and controlled process restart. Audit explicit capacity: 1 overrides fleet-wide; no admission bypass or cancellation of active work. Operator explicitly requested push, PR, merge and fleet rollout.
Author
Owner

Rollout checkpoint (operator-authorized fleet rollout): source merged and active in released Core 0.1.229 / 057cc37b88, including subsequent parallel Core fixes.

Live verified: Che, Randy, Minato, Shikamaru, Akira, Kakashi, SaaStaq Moist-Hayate and Odo. Six authenticated capabilities checks (including native Akira PID/path qualification); Moist/Odo intentionally have no API: matching live build, Matrix connected, fresh sync checkpoints verified. Minato and both local Shikamaru profiles now have worker capacity 4; Che 2/Randy 3/Akira 2 retained as existing explicit limits.

Not full convergence: native Karsten agent remains on 0.1.223. Existing owner attempted preparation/activation and safely deferred: GET admission reports unavailable with blocker unsupported update owner: gateway slack; POST is HTTP 503. No admission bypass or forced restart. Peter service/timer disabled; Severus runtime absent at inventoried host; Randy-next/workflow-reviewer deployments absent; none recreated. Kubernetes Karsten remains replicas=0.

Followups merged with green checks: Overlays #324 (Minato capacity), #325 (test-local clock isolation), #331 (empty Forgejo check inventory for explicitly enrolled no-required-check targets). Promotion PRs normally integrated with real maintainer custody and exact source/digest checks. Che had temporary outage during Recreate + transient node DNS image-pull failure; recovered and API verified. Underlying DNS issue is not claimed fixed. Kakashi retains unrelated Argo OutOfSync despite matching live Core/healthy API.

Private detailed receipt: ~/.cache/hayate-maintenance/dispatcher-concurrency/rollout-summary.json. Native Akira receipt: ~/.local/share/hayate-agent/dispatcher-rollout/activation.json on work.

Rollout checkpoint (operator-authorized fleet rollout): source merged and active in released Core 0.1.229 / 057cc37b88e7f3114686233abec147c6eac70985, including subsequent parallel Core fixes. Live verified: Che, Randy, Minato, Shikamaru, Akira, Kakashi, SaaStaq Moist-Hayate and Odo. Six authenticated capabilities checks (including native Akira PID/path qualification); Moist/Odo intentionally have no API: matching live build, Matrix connected, fresh sync checkpoints verified. Minato and both local Shikamaru profiles now have worker capacity 4; Che 2/Randy 3/Akira 2 retained as existing explicit limits. Not full convergence: native Karsten agent remains on 0.1.223. Existing owner attempted preparation/activation and safely deferred: GET admission reports unavailable with blocker `unsupported update owner: gateway slack`; POST is HTTP 503. No admission bypass or forced restart. Peter service/timer disabled; Severus runtime absent at inventoried host; Randy-next/workflow-reviewer deployments absent; none recreated. Kubernetes Karsten remains replicas=0. Followups merged with green checks: Overlays #324 (Minato capacity), #325 (test-local clock isolation), #331 (empty Forgejo check inventory for explicitly enrolled no-required-check targets). Promotion PRs normally integrated with real maintainer custody and exact source/digest checks. Che had temporary outage during Recreate + transient node DNS image-pull failure; recovered and API verified. Underlying DNS issue is not claimed fixed. Kakashi retains unrelated Argo OutOfSync despite matching live Core/healthy API. Private detailed receipt: ~/.cache/hayate-maintenance/dispatcher-concurrency/rollout-summary.json. Native Akira receipt: ~/.local/share/hayate-agent/dispatcher-rollout/activation.json on work.
Author
Owner

Previously reported native Karsten Slack blocker is now resolved: Plugins #85 merged and exact immutable module f13f39b installed/active. Core 0.1.229 API healthy; actual POST update-admission returns HTTP 201 admitted with blockers=[], verification lease released. Nine active installations now have the dispatcher/Main fix. Native Karsten has 39 passing native Slack acceptance tests. Additional strict-settings reload defect fixed and merged in Core #334, full suite 1834 passed/1 skip; its subsequent release rollout is separate and not yet claimed live.

Previously reported native Karsten Slack blocker is now resolved: Plugins #85 merged and exact immutable module f13f39b installed/active. Core 0.1.229 API healthy; actual POST update-admission returns HTTP 201 admitted with blockers=[], verification lease released. Nine active installations now have the dispatcher/Main fix. Native Karsten has 39 passing native Slack acceptance tests. Additional strict-settings reload defect fixed and merged in Core #334, full suite 1834 passed/1 skip; its subsequent release rollout is separate and not yet claimed live.
Sign in to join this conversation.
No reviewers
No labels
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
harness/core!328
No description provided.