Week 5 & Week 6: Switching to Joplin's Native AI Provider

Combining these two weeks into one post. I got sick last week and could not work for most of it so progress was slower than planned. Still want to write up what did get done.

Big architecture change. Joplin shipped a native AI API on desktop. Joplin now indexes notes into chunks and stores vectors locally as part of its own indexing. Me and my mentor decided to changed the plan to only use the Joplin native provider going forward, instead of also bundling Transformers.js and wiring up Ollama, Gemini, and OpenAI as separate options. Joplin already does the indexing well and leaning on that means one less thing to configure and one less thing that can break. Users just turn on Joplin's AI indexing and the graph plugin uses whatever is already there.

SVG export brought back. SVG export had been removed at some point earlier. Added it back this week alongside PNG and JSON, so graphs can be exported as a vector image that stays sharp at any size instead of only a raster snapshot.

Architecture diagrams. Since the provider approach changed, a good chunk of the architecture needed rethinking too. Spending time redrawing the plugin's structure with PlantUML, covering the UI layer, Application layer, Graph Engine and the Domain layer split into Pass A and Pass B.

6 Likes