Skip to content

Consolidate notebook storage: remove runme-fs-workspaces and mirror fs/contents into runme-local-notebooks #157

@jlewi

Description

@jlewi

Summary

We currently have two IndexedDB databases for notebook-related state:

  • runme-local-notebooks (Drive/local mirror)
  • runme-fs-workspaces (filesystem workspace handles/entries)

Per the latest discussion in #55, we should evaluate consolidating onto a single mirror model in runme-local-notebooks and treating local filesystem + contents:// as upstream/remote URI backends.

Reference: #55 (comment)

Motivation

  • Reduce storage model complexity and duplication.
  • Make notebook mutation flows consistent across local://, fs://, and contents://.
  • Simplify sandbox/runtime API design for notebook manipulation (single persistence model + revision semantics).

Proposed Direction

  1. Define a single canonical local mirror model in runme-local-notebooks for all notebook docs.
  2. Treat filesystem and contents backends as upstream sources identified by remote URIs (e.g. file://..., contents://...).
  3. Remove or greatly reduce runme-fs-workspaces responsibilities.
  4. Ensure conflict detection/revision semantics remain consistent across backends.

Scope for this issue

  • Design + migration plan (schema, URI mapping, sync strategy).
  • Implementation changes in stores/resolver/context wiring.
  • Backward compatibility + migration from existing fs://workspace/... entries.
  • Tests covering open/list/load/save/rename/conflict flows.

Notes

This issue is cleanup/foundation work and is intended to support the sandboxed AppKernel direction in #154.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions