feat(site-runtime): InstanceActor trace arm stamps the device echo of a traced write; Trace rides on published changes
Flow Debugger (design 2026-09-05 §5.3): a traced SetStaticAttributeCommand on a data-sourced attribute records (attribute → writer, expiry) for TraceArmWindowSeconds (new option, default 30, validated > 0); the next DCL echo for that attribute is published with the writer's SourceExecutionId + Trace whatever its value, and the arm is consumed once. Static writes publish Trace directly. Untraced writes never arm (pinned). Claude-Session: https://claude.ai/code/session_01GSLkkHKz9JrAtmJjmQK3cP
This commit is contained in:
@@ -232,4 +232,15 @@ public class SiteRuntimeOptions
|
||||
/// (the row-67 <c>EnsureInstanceStartedCommand</c> path is unaffected). Default: 60.
|
||||
/// </summary>
|
||||
public int InstanceSweepIntervalSeconds { get; set; } = 60;
|
||||
|
||||
/// <summary>
|
||||
/// Flow Debugger trace arm window (design 2026-09-05 §5.3). When a TRACED script write
|
||||
/// targets a data-sourced attribute, the Instance Actor remembers
|
||||
/// <c>(attribute → writer's ExecutionId)</c> for this many seconds; the next DCL value
|
||||
/// change for that attribute — whatever the value — is published stamped with that
|
||||
/// <c>SourceExecutionId</c> and <c>Trace</c>, and the arm is consumed. An arm that expires
|
||||
/// unconsumed emits nothing. Only traced writes arm, so production behaviour is unchanged.
|
||||
/// Default: 30.
|
||||
/// </summary>
|
||||
public int TraceArmWindowSeconds { get; set; } = 30;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user