feat(pool): the pool - stacks, admission, the runner and the scheduler
The allowlists and the instrument checks (mcp_connected, db_answered, exercised), the stack keys, Stacks and Admission, the Runner that runs one claude or opencode process per pass, and the Scheduler with its retries, rate-window pauses, the prompt-prefix warm-up, the seats and the board. One thread per pass; each worker runs on its own copy of the job. Every pass runs under the supervisor, so a timeout or an abort takes its whole tree down; a timed-out pass reports exit -9, a SIGKILLed child's code. The helpers the lenses run are this binary's `sql` and `totp`. :Process gains an Append stream for the OpenCode meta line. The tests cover the pool and its share of the commits-mode, seat-pool and several-drivers checks, a fake claude under the supervisor included. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
parent
5253fe3aff
commit
554a5ddd48
8 changed files with 2132 additions and 4 deletions
10
project.cpp
10
project.cpp
|
|
@ -13,7 +13,7 @@ using namespace Crafter;
|
|||
namespace {
|
||||
// The umbrella, then the partitions in import order: each after the ones
|
||||
// it imports, which is also the order the module map in AGENTS.md uses.
|
||||
constexpr std::array<std::string_view, 29> Interfaces = {
|
||||
constexpr std::array<std::string_view, 30> Interfaces = {
|
||||
"interfaces/Crafter.Review",
|
||||
"interfaces/Crafter.Review-Unicode",
|
||||
"interfaces/Crafter.Review-Json",
|
||||
|
|
@ -41,10 +41,11 @@ namespace {
|
|||
"interfaces/Crafter.Review-Seats",
|
||||
"interfaces/Crafter.Review-SeatPool",
|
||||
"interfaces/Crafter.Review-OpenCode",
|
||||
"interfaces/Crafter.Review-Pool",
|
||||
"interfaces/Crafter.Review-Freeze",
|
||||
"interfaces/Crafter.Review-Driver",
|
||||
};
|
||||
constexpr std::array<std::string_view, 26> Implementations = {
|
||||
constexpr std::array<std::string_view, 27> Implementations = {
|
||||
"implementations/Crafter.Review-Text",
|
||||
"implementations/Crafter.Review-Crypto",
|
||||
"implementations/Crafter.Review-Platform",
|
||||
|
|
@ -69,6 +70,7 @@ namespace {
|
|||
"implementations/Crafter.Review-Seats",
|
||||
"implementations/Crafter.Review-SeatPool",
|
||||
"implementations/Crafter.Review-OpenCode",
|
||||
"implementations/Crafter.Review-Pool",
|
||||
"implementations/Crafter.Review-Freeze",
|
||||
"implementations/Crafter.Review-Driver",
|
||||
};
|
||||
|
|
@ -80,7 +82,7 @@ namespace {
|
|||
|
||||
// One per directory under tests/, each an ordinary main() that links the
|
||||
// library: exit 0 passes, nonzero fails, 77 skips.
|
||||
constexpr std::array<std::string_view, 18> Tests = {
|
||||
constexpr std::array<std::string_view, 20> Tests = {
|
||||
"Crypto",
|
||||
"Text",
|
||||
"Platform",
|
||||
|
|
@ -99,6 +101,8 @@ namespace {
|
|||
"SeatPool",
|
||||
"Drivers",
|
||||
"OpenCode",
|
||||
"Runner",
|
||||
"Scheduler",
|
||||
};
|
||||
|
||||
// The version the binary reports: CI sets it from the tag, a checkout
|
||||
|
|
|
|||
Loading…
Reference in a new issue