Skip to content

feat(hand_history): EPIC-40 Phase 4 — AgentFidelity action metadata#101

Merged
folkengine merged 4 commits into
mainfrom
EPIC-25
May 31, 2026
Merged

feat(hand_history): EPIC-40 Phase 4 — AgentFidelity action metadata#101
folkengine merged 4 commits into
mainfrom
EPIC-25

Conversation

@folkengine
Copy link
Copy Markdown
Collaborator

Add AgentFidelity struct + Action.agent (additive, back-compat), plus
HandHistory::attach_agent_fidelity and voluntary_actions_mut. Bump 0.1.3.

  1. ✅ AgentFidelity + Action.agent added; all existing literals updated.
  2. ✅ Absent-metadata hands emit no agent: key (hand_without_agent_omits_key); legacy deserializes to None.
  3. ✅ attach_agent_fidelity + voluntary_actions_mut implemented, doc-tested, and covered by the full matrix: aligned / seat-mismatch / all-fold / all-in / multi-raise / dead-button.
  4. ✅ replay_ignores_agent_fidelity proves identical ReplayResult with and without metadata.
  5. ✅ Version 0.1.2 → 0.1.3; new CHANGELOG.md.

  Add AgentFidelity struct + Action.agent (additive, back-compat), plus
  HandHistory::attach_agent_fidelity and voluntary_actions_mut. Bump 0.1.3.

  1. ✅ AgentFidelity + Action.agent added; all existing literals updated.
  2. ✅ Absent-metadata hands emit no agent: key (hand_without_agent_omits_key); legacy deserializes to None.
  3. ✅ attach_agent_fidelity + voluntary_actions_mut implemented, doc-tested, and covered by the full matrix: aligned / seat-mismatch / all-fold / all-in /
  multi-raise / dead-button.
  4. ✅ replay_ignores_agent_fidelity proves identical ReplayResult with and without metadata.
  5. ✅ Version 0.1.2 → 0.1.3; new CHANGELOG.md.
…n behavior

  The 'single drift never cascades' claim was false: matching is a strict
  positional zip, so an extra/missing entry offsets all later pairs and can
  misattribute same-seat slots. Document the real per-slot-guard contract and
  the return-count drift signal; add insertion/deletion characterization tests.
…ies feature

  Split the agent-fidelity round-trip coverage: JSON parts (serde_json always
  built) run in all configs and verify the additive-field back-compat guarantee;
  YAML parts gated on hand-histories, which supplies to_yaml/from_yaml. Fixes the
  --no-default-features build (E0599 on to_yaml/from_yaml).
  af_replayable_preflop_fold is used only by replay_ignores_agent_fidelity
  (cfg bot-profiles); without the gate it is dead code and fails the
  no-default-features CI job under -D warnings.
@folkengine folkengine merged commit b4a1648 into main May 31, 2026
9 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant