Skip to content

warp-core: tick_patch hygiene (dedup ops, thiserror, docs) #156

Description

@flyingrobots

Follow-up cleanup in crates/warp-core/src/tick_patch.rs:

  • Avoid double map lookups in diff_store and expand rustdoc (intent/invariants/semantics/edge cases/perf).
  • Use thiserror for TickPatchError.
  • Document that encode_ops tag bytes are distinct from replay ordering (WarpOp::sort_key).
  • Dedupe duplicate ops in WarpTickPatchV1::new to prevent replay errors.
  • Alias crate::ident::Hash to ContentHash to avoid confusion with derive(Hash) on SlotId.

This is mechanical hygiene to keep the tick patch boundary deterministic and harder to misuse.

Activity

  1. coderabbitai commented on Dec 29, 2025

    @coderabbitai
    Contributor

    📝 CodeRabbit Plan Mode

    Generate an implementation plan and prompts that you can use with your favorite coding agent.

    • Create Plan
    Examples

    🔗 Similar Issues

    Related Issues

    🔗 Related PRs

    #145 - AIΩN bridge doc + tick receipts (#144) [merged]
    #148 - warp-core: tick receipt blocking causality [closed]
    #150 - WarpTickPatchV1 delta patches + commit hash v2 [closed]
    #153 - warp-core: policy_id plumbing + edge replay index [closed]
    #155 - warp-core: EdgeRecord derives Eq [closed]

    👤 Suggested Assignees

    🧪 Issue enrichment is currently in open beta.

    You can configure auto-planning by selecting labels in the issue_enrichment configuration.

    To disable automatic issue enrichment, add the following to your .coderabbit.yaml:

    issue_enrichment:
      auto_enrich:
        enabled: false

    💬 Have feedback or questions? Drop into our discord!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions