June 4, 2026

ProcessorConfig becomes immutable; prompt builders take explicit mp

ProcessorConfig was refactored into a fully-immutable frozen dataclass

ProcessorConfig was refactored into a fully-immutable frozen dataclass. The three abstract prompt builders—get_user_prompt, get_user_definition, and get_system_prompt—now receive the turn’s MessageProcessor as an explicit mp argument instead of relying on a mutable self.mp field. This removes the freeze-bypass machinery, the config property setter, and the invisible bind-before-use ordering contract.

The act-loop was then fixed to restore old prompt-payload parity in the flat MessageProcessor. Five regressions from the subclass-to-flat redesign were addressed: checkpoint wrapping was re-applied in _loop, turn-zero memory seed received an _auto=True flag to skip document and schedule fan-out, user prompt body order was corrected (input line before trail with outer Chain-of-Thought prepend), and system prompts across multiple modules were updated to prefix user_definition.

  • ProcessorConfig is now a pure, fully-immutable frozen dataclass with no processor reference

  • Prompt builders (get_user_prompt, get_user_definition, get_system_prompt) take explicit mp argument

  • Removed mutable mp field, config property setter, and object.setattr freeze-bypass

  • Act-loop: _wrap_with_checkpoint restored in _loop for checkpoint envelope parity

  • Turn-zero memory recall seed uses _auto=True to avoid document/schedule search fan-out

  • User prompt body reordered: input-line-before-trail with outer CoT exploration prepend