Skip to main content

Module session

Module session 

Source
Expand description

The dev session loop: watcher events → classification → coalescing → builds → candidate pushes, around ONE wait.

Ruling B, structurally: when no quiet deadline is armed the loop waits in a BLOCKING recv() — zero-edit idle admits zero timer work. The only bounded wait in the loop is the semantic edit-quiet deadline, armed exclusively at the TimerChoke — the named debounce choke point — in response to an observed relevant event, and its expiry starts already-known dirty work through the coalescer; nothing here inspects the filesystem to discover whether work exists. The cfg(test) counter on the choke is R6’s zero-edit idle authority.

Structs§

Session
One dev session’s loop state.
TimerChoke
THE timer-admission choke point: the only place the loop converts an Directive::ArmQuietDeadline into a real bounded wait. The counter is the R6 zero-edit-idle authority: established RUNNING CURRENT, held idle, it reads zero.

Enums§

LoopInput
Everything that can wake the session loop. The watcher callback and the build worker send these; the loop is the only receiver.
SessionExit
Why the session ended. Every variant is terminal and loud.

Traits§

SessionEffects
The effects the loop commands; the real implementation snapshots, builds, and pushes over S1 — tests record and script. Every method is commanded by exactly one Directive (or the halt paths).