Repository navigation
v1.6.0
Stories implemented since v1.5.0: none moved to implemented. Built in this release under one story that stays a draft until the operator accepts it:
control-plane-work-handler, first part: a control plane hands one unit of work to an instance over HTTP and reads its state back.- Daemon:
POST /v1/instances/{name}/workandGET /v1/instances/{name}/work/{reference}. Runtime:POST /v1/workandGET /v1/work/{reference}. - A request names a
reference, arepositoryand abrief, and may name astart_refand anissue. The call records a dispatch for that repository and answers its row: state, times, detail, links and the last report. - Answers:
201created;200for a reference a dispatch already holds;409RepositoryBusy;404WorkNotFound;411without aContent-Length;413above 1 MiB;422InvalidWorkRequest,InvalidReference,InvalidBrief,UnknownRepository;500WorkFailednaming the reference only. - The daemon marks a call made with the control token with
X-Conductor-Actor-Kind: control-plane.
- Daemon:
Also in this release:
message handle-messagetakes--dispatch-id, and only for a dispatch of the repository the message's first line names; otherwise it answersdispatch-not-of-messageand the message stays unhandled.- A report line
[REPORT <repo> <id>]moves a dispatch only where that dispatch is of<repo>. dispatch send-dispatchand the work call refuse astart_refthat is no git ref name and anissueabove 2048 bytes or with a control character.conductor statusand the text and Markdown of every view write control characters, U+2028, U+2029 and bidirectional controls as a space or a line break, so text of a brief or a report acts on no terminal.
No step at upgrade from v1.5.0.
Known limits: those of v1.5.0 stand. The work call records the dispatch; it does not start a controller for it, so the unit is taken up where the instance's loop dispatches it. Not shown yet: the work call against an instance pod on a cluster, an agent session started inside an instance pod. Two findings of the security reviews of the work call were there before it and wait as drafts: a session of one repository can write a report line that names another repository and its dispatch consistently, and the loop takes it; each read of a unit's state reads whole month files of the dispatch log.
Container image
ghcr.io/beyond10x/conductor:1.6.0 at digest sha256:ad7992ef37285c4b0a702b8f89acaa60321bf195a576914df6b0738e967198ce
docker run --rm ghcr.io/beyond10x/conductor:1.6.0 conductor --version