Skip to content

graph engine: analyzes edges deliver only the ref string — trace content is unreachable for engine nodes #1000

Description

@drewstone

Found by a layer-map audit (2026-08-22). The OLD coordination layer gives analysts real trace access: registry lenses get a rehydrated TraceAnalysisStore (workerTraceAnalysisStore(evidence, blobs), coordination.ts:1416) and agent analysts get the span JSON inlined into their task (coordination.ts:1126-1137). The NEW engine is strictly weaker: an analyzes edge folds only the ref (fold.ts copies settle.traceRef) and consumeWave renders it as the literal string trace of <node>: <hash> into the task envelope — no blobs.get, no store, for agents and scripts alike. scriptKind declares effects: [] and codemode grants only caller-declared operations, so no engine node can read trace bytes at all.

Direction, not built yet (deliberately — scope before machinery): either (a) a traceStore host effect a kind may declare, resolved by the scheduler from the run's blob store via the existing sanctioned reader workerTraceAnalysisStore, or (b) analyzes-edge span inlining to match the old layer's agent-analyst behaviour. (a) is the grain: effects are the engine's extension seam, and the reader already exists.

Acceptance: a script node bound by an analyzes edge can count the source's tool spans in a test, offline.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions