Repository navigation
feat(planning): make the interview settle window a setting with a longer default #7968
Description
Refs: #6053
Agent Brief
Type: Feature
Summary: The interview server's quiet window and burst cap come from the settings layer, with a default quiet window of about 10 s so a sweep round of plain accepts wakes the agent once.
Current behavior:
Planning's server hard-codes QUIET_SECONDS = 3.0 and BURST_SECONDS = 12.0 and returns them from settle_window(). The audit run showed accepts 2-9 s apart (sweep seqs 42-51), so most plain accepts each cost one agent wake. Owner decision recorded on #6053 (2026-10-13): interim settings-layer QUIET_SECONDS of about 10 s.
Desired behavior:
- Two settings keys (for example
settleQuietandsettleBurst, in seconds) resolve through the same settings layers as the existing keys (waitTimeout,leaseTimeout) and are documented in the interview session-config reference with their defaults. - Defaults: quiet 10 s; burst raised with it so the burst cap stays above the quiet window (for example 30 s), and the burst never holds a reply past the watcher's wait deadline (the bridge's
settle()already clamps to the deadline). - Invalid values (non-numeric, zero or negative, quiet greater than burst) fall back to the defaults and do not stop the server.
- The settings panel shows the values read-only, like
leaseTimeout.
Key interfaces:
- Planning's
Hub.settle_window()return value:(quiet, burst)from settings instead of module constants. - Settings shape: two new keys with defaults, documented in the interview session-config reference.
Acceptance criteria:
-
scripts/run-test-file.sh plugins/planning/surface/test_server.pypasses, including new cases: defaults return the new values; a configured value is returned; an invalid value falls back to the default. - The session-config reference lists both keys with their defaults.
- The diff touches no file registered in
scripts/shared-copies.txt. - A planning changelog fragment is added and
scripts/check-changelog-fragments.shpasses.
Out of scope:
- The bridge's own
QUIET_SECONDS/BURST_SECONDSinlib/session-bridge/(used by other apps' view bridges). - Server-side auto-handling of plain accepts (sibling item).
- Measuring wake counts against a live session (not runnable unattended).
This was generated by AI during backlog shaping. Split from #6053; the owner approved filing it in an attended backlog-shaping session on 2026-10-18.
Activity