fix(subagent): publish inherited policy facts to telemetry

Inherited sandbox and approval events were part of the constructor seed. Session.firstLiveSeq classifies every constructor event as replayed history, so telemetry adoption skipped these child-only creation facts even though no parent or prior process had exported them.

Capture the parent overrides at the same synchronous delegation boundary, but append the events during the child factory setup while the session is still unpublished. They remain ordered after fork history, persist with the first child batch, and retain last-event-wins behavior while landing on the live side of the telemetry boundary. This uses the existing setup and session append contracts instead of adding another seed category or telemetry special case.

Add regression coverage for exporting an unpublished suffix without re-exporting constructor history, assert the spawn and fork firstLiveSeq boundaries, and restore the public seed documentation to replay/fork history only.
This commit is contained in:
Tianyi Cui
2026-07-29 00:39:56 +08:00
parent 064205b54d
commit 739647afc0
15 changed files with 51 additions and 63 deletions

View File

@@ -72,7 +72,7 @@ export interface SessionHeader {
* store folds into a {@link SessionHeader}.
*/
export interface CreateSessionOptions {
/** Initial log events supplied at construction (replay, fork, or creation-time facts). */
/** Initial replay or fork history supplied at construction. */
readonly seed?: readonly SessionEvent[]
/**
* Storage metadata read once before publication. `seedLength` is explicit