Skip to content

Codex DM should not send speaker:null to log_event #476

Description

@100yenadmin

Summary

During the 2026-06-01 built WorldOS.app Codex-DM short playtest, the second player move recovered but exposed a model/tool-contract defect: Codex first called log_event with speaker: null, which the engine rejected before the model retried without speaker.

Evidence

  • Evidence folder: /Volumes/LEXAR/Codex/worldos-built-app-playtest/codex-app-short-20260601T022114/
  • App code SHA reported by harness: c3dfee6
  • Minted run: play-state/play-20260531192201
  • Tool trace: play-state/play-20260531192201/codex-provider/codex-dm.stdout.jsonl
  • Final proof still passed diagnostically:
    • 06-after-move-2-dm-response.png
    • 06-session-surface-after-move-2.json
    • 06-chat-after-move-2.jsonl

The failed tool result was:

Error executing tool log_event: 1 validation error for log_eventArguments
speaker
  Input should be a valid string [type=string_type, input_value=None, input_type=NoneType]

The model retried with no speaker, narration landed, and the player-facing session recovered. This is not a release-stopping failure from this run, but it adds turn latency/noise and could become visible if retries fail.

Acceptance Criteria

  • Codex DM prompts/wrapper/tool instructions avoid emitting speaker: null for narration events.
  • A repeat built-app or RRI Codex-DM run shows no speaker:null / Pydantic validation failure in codex-dm.stdout.jsonl.
  • The fix preserves engine authority: narration still writes through log_event; the GUI remains a reader plus /move submitter.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions