Hosted onhoraciohdev.dev.hyper.mediavia theHypermedia Protocol

Subdocuments don't move with the parent

Summary

Moving a document currently moves only the selected document. Its subdocuments stay at their old paths.

This breaks the document tree: after moving a parent document, descendants are still left behind under the old location instead of moving with the parent.

Current behavior

Today, the move flow creates:

    a version ref for the selected document at the destination path

    a redirect ref for the selected document at the source path

But it does not move descendant documents.

Expected behavior

When moving a document, all descendant documents should move with it.

Example:

    source: /projects/foo

    children:

      /projects/foo/spec

      /projects/foo/spec/notes

    destination: /archive/foo

Expected result:

    /archive/foo

    /archive/foo/spec

    /archive/foo/spec/notes

And redirects should exist from the old paths to the new paths.

Proposed behavior

    Query all descendant documents before confirming the move.

    Show the user the full list of documents that will be moved.

    Move each descendant to the destination-relative path.

    Create redirect refs at the old paths for the parent and each moved descendant.

    Refresh/invalidate affected old and new directory listings after the move.

Implementation notes

The current move implementation only handles a single document path, both in desktop and CLI flows.

There is already a useful precedent in the delete flow:

    it queries child documents recursively

    it shows the full list of affected paths before applying the operation

The move flow should follow the same pattern for discovering descendants and confirming impact.

Acceptance criteria

    Moving a parent document also moves all descendants.

    Descendants preserve their relative paths under the new parent.

    The UI shows the full list of affected documents before confirmation.

    Old paths resolve via redirects after the move.

    Directory views/search refresh correctly for both source and destination trees.

Do you like what you are reading? Subscribe to receive updates.

Unsubscribe anytime