Skip to content

Test copying a stack out of an APIAdapter #471

Open

Description

@cuibonobo

Problem

copyStack(from, to) reads its source only through methods every adapter has, so an APIAdapter opened as the owner should work as a source. Nothing tests that. Over the wire the source pages queryRecords, getVersions and getJournal, and filters soft-deleted and unlisted Records by ownership. That is the path most likely to drift from what local adapters do. The in-repo tests can only mock fetch. The server lives in a separate repo, which is several versions behind core.

Direction

  • When the server catches up, run runCopyConformance()'s round trip with an APIAdapter source: write a stack through the server, copy it into a LocalAdapter, and assert it's unchanged.
  • That covers soft-deleted and unlisted Records, full version and journal history (including the permission half of journal entries), Types, and attachment bytes.

Actions

  • Round-trip test with a server-backed source.
  • Fix any gap it finds in APIAdapter or the server.

Related

#426, #427 (owner-only export endpoint), parent #417.

Activity

  1. added theissue type on Oct 23, 2026
  2. cuibonobo commented on Oct 24, 2026

    @cuibonobo
    MemberAuthor

    Scope update from #470: copyStack() now requires its source to have listBlobs(), and copies blobs only as the store lists them. APIAdapter has no listBlobs() because the wire has no endpoint that lists blobs, so copying out of a server-backed stack is currently refused with InvalidAdapterError.

    So this issue also needs:

    Only after that can the round-trip test with a server-backed source run.


    Generated by Claude Code

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

    Type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions