Skip to content

    Release 1.35.0

    News ·

    archied — The Messaging Service is severed from the store and workflow runtime

    • cmd/archie-messaging no longer links modernc.org/sqlite, internal/store, internal/domain/workflow or internal/agentexec. All four arrived through a single import of internal/app/controlplane; the client half now lives in internal/infrastructure/controlplanerpc, and the app package keeps the server, the registry, the seeds, the validators and the schema derivation.
    • The resource documents are type-aliased back into the app package, so there is one definition read under two names rather than a copy per side.

    archied — Channel lifecycle reaches the dashboard

    • The Messaging Service reports each channel’s state, recorded per channel: one channel’s failure marks only itself, a channel that cannot start is marked failed with its reason rather than only logged, and one that returns is marked stopped. internal/channels/status.Manager reports each channel’s state.
    • PutChannelStatus/ListChannelStatus carry that to the dashboard, following the config-snapshot split. The store replaces the reported set, so a channel the reporter stops mentioning is deleted rather than left as a stale running; an empty report clears the table, because hosting no channels is a fact worth reporting; and an id-less row is refused, since it could never be replaced or removed by a later report.
    • Service.ReloadChannel routes to the channel’s own seam and refuses a channel that cannot reload with a reason rather than accepting and ignoring it. ReloadSupported was previously declared by name, so a channel could advertise reload with nothing behind it; one function now decides both.

    archied — Action playbooks: a second playbook shape, with typed results

    • A playbook is now one of two shapes: a workflow playbook (exactly one workflow action, unchanged) or an action playbook (one or more module actions in order). A playbook does not mix them.
    • args and when share one compilation path and one evaluation context, and actions.<id> is typed by the kind that action runs, so a misspelled result field, an unknown id, a map index, in, a comprehension, or a shape-foreign key (kind on a workflow action, workflow on a module action) is a load failure rather than a dispatch failure.
    • Action playbooks load but do not run yet. Routing arrives with the first side-effecting position; the daemon warns at load rather than accepting them silently.
    • The CEL environment is built per playbook, because result typing depends on the ids a playbook declares.
    • ModuleRegistry.DecodeResult turns a kind’s flat map result into its typed Result before a later expression reads it. Without it a typed read evaluated against a shape the run never produces, and so silently read null.

    archie-agent

    The sandboxed runtime links the same shared packages as archied, so this release carries the channel-lifecycle store contract and the stricter action-load errors with it:

    • The channel-status store contract (PutChannelStatus/ListChannelStatus) and its replace-the-set semantics.
    • Authoritative module ids and stricter action load errors: a misspelled result field, an unknown id, or a dynamic actions read now fails the playbook load rather than the dispatch.

    archied and archie-agent move together in this release.