Skip to content

v1.6.0

Choose a tag to compare

@b10x-bot b10x-bot released this 13 Nov 00:03
· 57 commits to main since this release

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}/work and GET /v1/instances/{name}/work/{reference}. Runtime: POST /v1/work and GET /v1/work/{reference}.
    • A request names a reference, a repository and a brief, and may name a start_ref and an issue. The call records a dispatch for that repository and answers its row: state, times, detail, links and the last report.
    • Answers: 201 created; 200 for a reference a dispatch already holds; 409 RepositoryBusy; 404 WorkNotFound; 411 without a Content-Length; 413 above 1 MiB; 422 InvalidWorkRequest, InvalidReference, InvalidBrief, UnknownRepository; 500 WorkFailed naming the reference only.
    • The daemon marks a call made with the control token with X-Conductor-Actor-Kind: control-plane.

Also in this release:

  • message handle-message takes --dispatch-id, and only for a dispatch of the repository the message's first line names; otherwise it answers dispatch-not-of-message and the message stays unhandled.
  • A report line [REPORT <repo> <id>] moves a dispatch only where that dispatch is of <repo>.
  • dispatch send-dispatch and the work call refuse a start_ref that is no git ref name and an issue above 2048 bytes or with a control character.
  • conductor status and 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