diff --git a/changelog.d/channel-notices-reach-who-can-close.fixed.md b/changelog.d/channel-notices-reach-who-can-close.fixed.md index 70a1f2bb4..123c3c633 100644 --- a/changelog.d/channel-notices-reach-who-can-close.fixed.md +++ b/changelog.d/channel-notices-reach-who-can-close.fixed.md @@ -1,8 +1,9 @@ - The notice that a channel opened without the agent asking (an open its own send or reply caused, or a subscription-policy admission) names `channel_close` only to an agent that can call it there for every channel - it names, except where several residents share one slot (#291), and in - forks spawned from the primary afterwards (#235). A conversation fork can + it names, except where several residents share one slot (#291), and where + a fork's seed still carries it: in an adaptive template's summary, or in a + notice long enough for its template to shard or cut. A conversation fork can close only its home channel, and an agent's `allowedTools` can leave `channel_close` out. Before, such an agent was told to use `channel_close`, and couldn't call it, or its call was diff --git a/changelog.d/fork-seed-primary-notices.fixed.md b/changelog.d/fork-seed-primary-notices.fixed.md new file mode 100644 index 000000000..401a0aec5 --- /dev/null +++ b/changelog.d/fork-seed-primary-notices.fixed.md @@ -0,0 +1 @@ +- Where conversations are routed to per-channel forks (`FrameworkConfig.conversations`), a fork's seed no longer copies its template's channel notices, or its by-name notices of what another agent's reply did. That's each `[channels]` notice of an open, a failed open or a subscription policy's admission, whichever build stored it, and each notice telling the primary by name of another agent's failed reply or channel. They were copied into the forks spawned after them, so a fork serving one channel held which channels other conversations opened and whose replies failed, with advice judged for the primary, such as "use channel_close", which a fork can follow only for its home channel. The template keeps them. A text block that repeats one word for word is left out too, and the spawn's log line counts what was left out: `[conversation] : seeded from