Skip to content

id: design: importer design: Joplin (from #5678) #5848

Open

Description

@dezren39

Summary

Follow-on design ticket from #5678 — its decomposition sketch names this as a separate design, and the parent's acceptance requires these tickets to be filed and linked. Filed in the 2026-11-04 gap pass (WS-F) so the design work exists and can be prioritised on its own merits; implementation timing is a separate decision, possibly months out.

What this design must settle

Importing Joplin into the #2048 object model, with round-trip export expectations (links, tags, attachments intact) and a test corpus.

Context from the parent

The parent is a design-to-make-designs: a competitor feature-matrix programme over the #2048 zettelkasten layer whose deliverable is one follow-on design per cluster and per importer, filed and linked on the parent. The parent issue carries the surrounding decisions this ticket must not re-decide; where this ticket's answer would change a parent decision, record that explicitly rather than silently forking it.

Decision record expected

Close this design with a recorded decision (on this issue or in a doc/ record linked from it): the chosen shape, the alternatives rejected and why, and the invariants implementation must hold. If the design splits further, file the splits and link them here rather than growing this issue.

Relations

Parent: #5678. Programme: epic #2056. Filed by WS-F (2026-11-04 ID design gap & expansion pass).

Activity

  1. added
    app/idPackage/app: id (pkgs/ or apps/ in this repo)
    on Nov 5, 2026
  2. developing-today commented on Nov 5, 2026

    @developing-today
    Contributor
  3. added
    queue/queuedHas a queued task in the Supabase agent queue
    task/triageQueue packet kind: verify, reproduce, and route this item
    on Nov 5, 2026
  4. dezren39 commented on Nov 5, 2026

    @dezren39
    MemberAuthor

    🤖 Agent note · picked up

  5. added
    work/assignedQueue worker lifecycle state
    queue/claimedQueue worker lifecycle state
    and removed
    queue/queuedHas a queued task in the Supabase agent queue
    on Nov 5, 2026
  6. dezren39 commented on Nov 5, 2026

    @dezren39
    MemberAuthor

    🤖 Agent note · triage complete

    • Agent: queue worker (repo-worker-code), lane code-j
    • Session / ID: task 10251
    • Found via: queue claim (coverage-audit requeue)

    Triage of issue #5848 at current main (verified fresh 2026-11-05):

    Ordering / dependencies (the substantive triage finding):

    1. id: design: Zettelkasten layer — multiplayer docs/wiki on ID #2048's object model first (in progress) — every importer maps into it.
    2. id: design: content model cluster: blocks vs pages vs daily notes (from #5678) #5839 (content model cluster: blocks vs pages vs daily notes) and id: design: attachments & media cluster (from #5678) #5844 (attachments & media cluster) next — id: design: importer design: Joplin (from #5678) #5848's own scope names attachments-intact round-trip as an acceptance property, and Joplin's note/resource/tag model maps onto the content model's answers.
    3. A shared importer contract should be settled once — with the first importer design (any of id: design: importer design: Obsidian (from #5678) #5845–id: design: importer design: Joplin (from #5678) #5848) — rather than four times: source-model mapping shape, idempotency/re-import behaviour, link rewriting, and the round-trip test-corpus format are identical questions for all four. id: design: importer design: Joplin (from #5678) #5848 (Joplin) is a good second or third importer, not the template: its resource/attachment handling is the most idiosyncratic of the set.
    4. Only then id: design: importer design: Joplin (from #5678) #5848's Joplin-specific design: Joplin's note/tag/resource model → id: design: Zettelkasten layer — multiplayer docs/wiki on ID #2048 objects, round-trip export expectations, and its test corpus instance of the shared format.

    Blockers recorded: sequencing only — #2048 (active, not blocked), #5839, and #5844 are open design work ahead of this ticket. No Drew decision is needed. Issue #5848 stays open as the design ticket (programme epic #2056); implementation timing is a separate decision per the filing note.

  7. added
    status/triagedTriaged and routed (see agent note)
    and removed
    queue/claimedQueue worker lifecycle state
    work/assignedQueue worker lifecycle state
    on Nov 5, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

Labels

app/idPackage/app: id (pkgs/ or apps/ in this repo)status/triagedTriaged and routed (see agent note)task/triageQueue packet kind: verify, reproduce, and route this item

Type

No type

Projects

No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions