Repository navigation
Replies: 1 comment
|
Verified on The helper does exactly what you say
export function buildForkSeed(events: readonly SessionEvent[], boundary: SessionSeqType): SessionEvent[] {
...
return prefix.concat(openTurnClosers(prefix, { kind: 'forked' }))
}
It is also already public: What the seed boundary does and does not check
Every one of those is "is this event well-formed". Nothing asks "is the tail closed". So a seed ending immediately after The replay error is the one you quoted
with siblings at Where a guard would go The cheapest hardening is at seed ingestion, reusing what is already there: run Rejecting is probably the better default. Auto-closing a caller's arbitrary prefix hides the caller bug you just fixed, and the seed boundary is the last place where the caller is still identifiable. One thing worth stating in the report The |
Uh oh!
There was an error while loading. Please reload this page.
Environment and symptom
dsh-session-admin 0.1.3plugin implements/rewindusingevents.slice(0, cut)andagents.create({seed, inheritedEventCount: cut}). It can cut just before a user message within an open step. The officialbuildForkSeedalready closes incomplete steps; the plugin currently bypasses it. We are fixing the plugin separately.Anonymized event evidence
The parent logs have matching closing events after the copied fork boundary. Two seeded children fail and a third has a similar open-step cut in a local scan. Only structural event metadata is included here; no conversation text, personal paths, or credentials.
Upstream hardening request
Current
packages/core/session/src/fork.tsprovidesbuildForkSeed(events, boundary)and adds syntheticstep/end/turn/end. This report does not attribute the bug to stocksession/fork; the entry point was third-party plugin code that called the lower-level constructor directly.Please consider:
session/end-seedin seededSession.create/agents.create, failing early with an actionable error.buildForkSeedusage prominently to plugin authors.See fork.ts and session README.
I can supply a synthetic minimal fixture if helpful.
All reactions