feat(pool): add start_index so manual and auto pools can coexist
Production had two disjoint tmux pools named alike but for different
purposes:
ccl-0..ccl-9 — manual/interactive sessions (operator)
ccl-auto-11..ccl-auto-20 — autonomous dispatcher pool
Until now the daemon's loops iterated prefix + 0..Max, so with the
deployed config ("prefix: ccl-auto", min=2, max=10) the dispatcher
looked for sessions "ccl-auto0..ccl-auto9" that never existed, while
the real auto pool ccl-auto-11..20 was invisible. Net effect: no task
was ever dispatched, and killAllPoolSessions fabricated phantom
"ccl-auto0/1" sessions on each swap.
- AutonomousConfig gains StartIndex (yaml start_index, default 0).
Behaviour is unchanged when StartIndex is 0.
- Monitor, switcher (kill + recreate), dispatcher (findFreeSession),
and lifecycle (EnsureAll + reconcile) all iterate
[StartIndex, StartIndex+Max) so the daemon only touches its own
range and leaves ccl-0..ccl-9 alone.
- Production config updated to prefix: "ccl-auto-", start_index: 11,
min: 10, max: 10 — covering the 10 real ccl-auto-11..20 sessions.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
This commit is contained in:
parent
8fdb1937fc
commit
eb6b74c547
6 changed files with 73 additions and 14 deletions
|
|
@ -52,10 +52,17 @@ type DedicatedSession struct {
|
|||
}
|
||||
|
||||
// AutonomousConfig controls the autoscaling inbox-dispatcher session pool.
|
||||
//
|
||||
// The pool covers sessions named "<Prefix><StartIndex..StartIndex+Max-1>".
|
||||
// StartIndex lets the pool coexist with an unrelated numeric range of
|
||||
// sessions (e.g. `ccl-0..ccl-9` reserved for manual use by the operator).
|
||||
// When StartIndex is 0 (default), behaviour is identical to earlier
|
||||
// versions.
|
||||
type AutonomousConfig struct {
|
||||
Prefix string `yaml:"prefix"`
|
||||
Min int `yaml:"min"`
|
||||
Max int `yaml:"max"`
|
||||
Prefix string `yaml:"prefix"`
|
||||
StartIndex int `yaml:"start_index"`
|
||||
Min int `yaml:"min"`
|
||||
Max int `yaml:"max"`
|
||||
}
|
||||
|
||||
// QuotaConfig defines quota monitoring parameters.
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue