Repository navigation
v0.141.0
Install or update: npm i -g cotal-ai@0.141.0
Changes in this release
-
An agent can define its helper on the spawn itself.
cotal_spawntakes apersonarecord (the persona prompt, role, model, variant, description, channels and capabilities) next toname, and the helper runs from a private snapshot of it.persona.save: truealso writes a catalog copy under that name, owned by the spawner. A cotal-lang program does the same withspawn({ name, prompt, ... }, opts), and the run journal records the definition and its digest, so a resume never submits another one.cotal_personatakescapabilitiesand says how a saved persona is removed.A helper never gets more than its spawner holds. On a static mesh every spawn is measured against the spawner's issued evidence: each channel, the role and each capability token it does not hold is refused by name, and a spawner whose evidence does not resolve hands on nothing. Operator commands and admin agents are exempt. A workflow run's spawns are bounded by what its starter held when the run was admitted, on its host and on any other static manager its spawn reaches, which reads the run's admission. A
cotal run start --localrun's helpers get only channels within the--admit-readand--admit-publishceiling. The static agent mint now grants task-queue rows for eachrole:<r>capability, so a spawner hands on a role it was given either way. On a participant manager the issuing host makes the agent that asked for a helper its ledger parent, taking the caller from the spawn request it observed, and a run's helper is parented to the run's starter and also bounded by the grant its admission recorded. A run revoked mid-step starts no further helper, and a persona a run saves is owned by its starter. The loopbackverify-enrollmentdoor a host platform asks decides the same parent and bound and answersparent, and a retry of the same enrollment gets the same answer.A seat started by foreground
cotal spawn, or a barecotal join, on a static mesh is now issued against its own lifecycle. Its credential has no expiry unless--expires-inor--expires-atis passed, is never renewed, and is retired when the seat leaves cleanly.Breaking: a static spawner that hands its helpers channels, capabilities or a role it does not hold is refused, an older issuing host refuses the new enrollment field, an older manager refuses a run's spawn, which now names its run, an older reader refuses an admission carrying
spawnExemptordelegation, and an enrollment retry is refused when its read set is not its grant's, which is the case for a grant an older host wrote for a helper that named only a subscribe set. See UPGRADING.
What's Changed
- fix(remotion): render COTAL in the shared grid wordmark by @davidfarah2003 in #5801
- docs(remotion): align topology comments with scene timing by @davidfarah2003 in #5802
- refactor(remotion): share header composition durations by @davidfarah2003 in #5803
- refactor(remotion): use the canonical Logo component directly by @davidfarah2003 in #5804
- refactor(remotion): derive mode routing points from the shared cast by @davidfarah2003 in #5805
- feat!: define a helper's persona on cotal_spawn, bounded by what its spawner holds by @davidfarah2003 in #5779
- docs: name 0.140.8 as the last release without the static spawn bound by @davidfarah2003 in #5806
- fix(remotion): derive the unicast inbox and wire endpoints from its route by @davidfarah2003 in #5807
- chore(release): version packages by @davidfarah2003 in #5808
Full Changelog: v0.140.8...v0.141.0