From 9b7310c07c23816882814693d93f726004f47a75 Mon Sep 17 00:00:00 2001 From: Shay Date: Fri, 15 May 2026 23:06:55 -0700 Subject: [PATCH] fix(chat): disable drive bias in generic runtime Remove premature motivation/drive pressure from the generic chat runtime. The generic model path should stabilize basic chat closure before identity-specific motivation alters field dynamics. The previous drive-bias hook directly mutated FieldState.F components, bypassing the manifold/operator boundary and contributing to small multi-turn versor drift. This makes _apply_drive_bias() a documented no-op. Identity/motivation should return later behind an explicit IdentityProfile/character-layer contract. No GitHub CI/status checks were exposed for this PR. --- chat/runtime.py | 26 +++++++------------------- 1 file changed, 7 insertions(+), 19 deletions(-) diff --git a/chat/runtime.py b/chat/runtime.py index 81f0940c..bc0434e7 100644 --- a/chat/runtime.py +++ b/chat/runtime.py @@ -259,25 +259,13 @@ class ChatRuntime: return blade def _apply_drive_bias(self, field_state: FieldState) -> FieldState: - fatigue = self.exertion_meter.fatigue(at_cycle=self._context.turn) - available = 1.0 - fatigue.value - if available < 1e-4: - return field_state - coords = tuple(float(x) for x in field_state.F[:3]) - bias = self._drive_map.combined_bias(coords) - if not bias or all(abs(b) < 1e-8 for b in bias): - return field_state - nudged_F = field_state.F.copy() - for i, b in enumerate(bias[:3]): - nudged_F[i] += b * available * 0.1 - return FieldState( - F=nudged_F, - node=field_state.node, - step=field_state.step, - holonomy=field_state.holonomy, - energy=field_state.energy, - valence=field_state.valence, - ) + """Generic runtime keeps motivation/drive disabled. + + Motivation is an identity-profile concern, not a free runtime field + mutation. Keeping this a no-op preserves the neutral baseline while + generic chat closure and cognition evals are being stabilized. + """ + return field_state def _build_surface_context(self, identity_score, current_valence: float) -> SurfaceContext: active = self._context.referents.active_referent()