CL-6324: prove each deploy shape's own bracket, and cut agent-directory authoring to source form - #104
Closed
TheGreatAxios wants to merge 5 commits into
Closed
CL-6324: prove each deploy shape's own bracket, and cut agent-directory authoring to source form#104TheGreatAxios wants to merge 5 commits into
TheGreatAxios wants to merge 5 commits into
Conversation
Every agent-definition write is asserted as the two-file source tree a workflow-kind asset now accepts — a package.json declaring the interchange.workflow entry plus that entry module — with the definition recovered back out of the entry through the same reader the routes use. Adds red/green coverage for the named retirement error: an asset whose tree still holds a bare workflow.json answers 409 at every route boundary that can reach it, and writes nothing.
A workflow-kind asset accepts only a source codebase — a package.json declaring an interchange.workflow entry plus that entry module — so the agent-directory authoring lineage no longer writes the retired workflow.json envelope. The renderer moves out of @workbench/hub-client (and out of its second copy in @corbits/agent-runtime) into a new dependency-free package, @corbits/workflow-source, which both consume alongside a reader that recovers the definition from the entry module's exact bytes. A missing or non-source entry throws RetiredWorkflowEnvelopeError, which each agent-directory route module answers as a 409 with re-author guidance rather than letting it read as a server fault. @corbits/agent-directory's definition-asset.ts is the lineage's single seam onto that pair; the create core, the read/modify/write routes, apps/hub's planner deploy, and the evals world snapshot all route through it instead of naming an asset path apiece. Both new library packages carry the canonical LGPL-2.1 text that check:licenses requires.
Item 5 of the CL-6324 second-boot list is closed, with a section on where the shared renderer and reader now live and where the named retirement error is mapped.
A folded step-mode run is one unbounded step servicing every inbound mail, so it never publishes a workflow-host RunStarted per message. The harness stopped asserting one and now asserts what that shape actually produces: no per-occurrence child run at all, plus the durable message.run.started/ended bracket, read back as an insights turn-latency sample through the tenant's own latency route. Adds the section shape alongside it. The proof renders a mode: "section" agent-runtime config into its own source package, pushes it as a workflow-kind asset, deploys it by source-ref, and drives it with real mail — so every message becomes an onTrigger occurrence with its own child run id and its own event log, which is where RunStarted really lives. Proof 4 kills the sidecar mid-occurrence in both shapes and asserts the section runs another occurrence after boot restore, which is onBodyFailure: "continue" doing its job. Two environment facts the harness now handles explicitly rather than leaving to chance: the model is named by E2E_OLLAMA_MODEL instead of taken from the curated catalog seed, and the bench catalog is narrowed to that one model so a turn's model is not decided alphabetically among the embedding models a live Ollama connect also seeds.
Contributor
Author
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Stacked on #103.
Proof 2, per shape
The harness stopped asserting a workflow-host
RunStartedfor a foldedstep-mode run — that shape never emits one, which is why the earlier revision hung on it. Each shape is now asserted against the artefact it really produces:message.run.started/message.run.endedbracket read back as an insights turn-latency sample throughGET /insights/latency.mode: "section"deploy — rendered into its own source package, pushed as aworkflow-kind asset, deployed by source-ref, driven with real mail.turn__0carriesRunStarted, StepStarted, StepCompleted, RunCompleted; the parent carriesChildSpawned, ChildCompleted, SignalAwaited.That section pass is CL-6329's first live validation — the mode existed as a config argument and nothing had ever deployed or run one.
Proof 4 fails, and the failure is the finding
Boot restore does its half: every pin replayed, closure re-materialized,
liveness: "ok"9.2s after the restart. The run inside comes back terminal. The folded chat run refuses inbound mail (workflow run '...' is terminal) and the section deployment answers409 workflow_run_terminal.onBodyFailure: "continue"cannot help — the failure is on the top-level run, not on a body occurrence. Details and timings indocs/revendor-inventory.md.Agent-directory authoring cutover
The authoring lineage no longer writes the retired
workflow.jsonenvelopevalidatePushrefuses. The renderer (and a reader) moved into a new dependency-free@corbits/workflow-sourcethat hub-client, agent-runtime, agent-directory, evals, and the hub's planner deploy all consume;RetiredWorkflowEnvelopeErroranswers a pre-cutover asset as a 409 at every route boundary. Old write path deleted, not gated.Repo typecheck 0. Touched suites green (agent-directory, workflow-source, hub-client, agent-runtime, evals, apps/hub).