Skip to content

CBOR decode boundary: hydrate ops into class instances #532

Description

@flyingrobots

Migrated from Method backlog

GitHub Issues are now the live work tracker. Repository docs remain Method evidence.

Field Value
Source backlog docs/method/backlog/up-next/PROTO_cbor-op-hydration.md
Archived source docs/archive/backlog/github-issue-migration-2026-06-01/docs/method/backlog/up-next/PROTO_cbor-op-hydration.md
Original lane up-next
Original id PROTO_cbor-op-hydration
Original legend PROTO
Original feature runtime-boundaries

Original backlog card

CBOR decode boundary: hydrate ops into class instances

Effort: M

Problem

Ops deserialized from CBOR are plain objects ({ type: 'NodeAdd', ... }).
They pass through the reducer via string dispatch but fail instanceof
checks. The decode boundary should hydrate plain objects into Op class
instances so the entire pipeline is class-native.

Where

CborPatchJournalAdapter or CborCodec — wherever patches are
decoded from bytes back into PatchV2 objects.

Hard gate

Golden blob round-trip: encode a patch with classes → decode → verify
class instances. Must produce identical CRDT state.

Source

Cycle 0009 retro, Slice 5 deferral.

Metadata

Metadata

Assignees

No one assigned

    Labels

    area:architecturePrimary work area: architecture.feature:runtime-boundariesMethod feature runtime-boundaries.lane:up-nextMethod source lane up-next.legend:protoMethod legend proto.priority:nextNext in line after active work.status:availableOpen and available for prioritization; not blocked or actively in progress.type:enhancementMethod issue type enhancement.

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions