Repository navigation
Seats and Assignment Hours
Describes robot-council/core v0.8.3.
Each developer decides, for themselves, when their machines take new work. The coordinator reads
these and never writes them: they are constraints on the coordinator, so it is not the one who
changes them. The only writer is the developer's own page at {prefix}/dashboard/seats.
- A seat is one of a developer's machines working in one repository at one work location. It is recorded when its developer opens the page, from what their live sessions report, and it outlives every session that sits in it -- a restarted agent is still in the same seat.
- Parking a seat says it takes no new work. It records who parked it and when. Only that developer lifts it, and nothing lifts it on a timer.
-
Assignment hours are a daily window, whether weekends count, and an IANA time zone such as
America/Chicago. A window whose end is before its start runs overnight. Everything is read on the developer's own clock, including through daylight saving changes. - Days off are the developer's own list of dates. They apply once hours are set, since a date needs a time zone to say when it starts. A developer with no hours set is not gated at all.
-
Ignore my hours takes a seat out of its developer's hours, and the seat then reads "Hours: ignored"; Apply my hours puts it back. The API and the
developer_settingstool still call thisexempt. - Tasks at once is how many tasks a coordinator may place on one session in the seat, from 1 to 16 (#409). A session running there takes a new number at once. A session that declared its own number when it joined is held to that where it is smaller (#564); a session can never raise it. It is 1 until the developer changes it, so a seat nobody touched behaves as it always has. The seats page shows what each live session in the seat takes now.
A session holding coordinator:direct reads all of it, as it is at the moment of the call:
-
GET {prefix}/api/developers/settings— every developer's hours and days off, and every recorded seat with its parked, exempt andmax_capacityvalues - the
developer_settingsMCP tool, which returns the same thing (#440)
Each developer and each seat also carries inside_hours -- true, false, or "ungated" when no
hours apply (none are set, or the seat is exempt) -- and next_opens_at when it is false. It is
computed by the code the placement check refuses with, so a seat read as inside its hours is not
refused for being outside them. Settings change on the developer's page at any time, so read them
when deciding rather than remembering an earlier answer.
Developers are named by GitHub login, as everywhere else on the machine API. A placement is refused on these settings as #320 describes, in the placement rules further down.