So you can see where you've been thinking, store a full traversal history of link-follows. This could be displayed in any number of ways, but a graph or an outline leaps to mind.
I'm not sure if this is polluting the purity of your original idea but I think the concept of a meta-level note that only exists within the graph traversal space and acts as a commentary on that traversal might be useful
I have thought about there being 'metadata' you can associate with notes within can but I'm not there yet, there's still most of the basic functionality to do first hah.
along with that came the idea of being able to attach metadata to any
object(to steal git terminology) in the notebook. Including links, patches, histories, etc. The idea being, if you can name/namespace the thing, you can attach metadata to it. Unison does this pretty well. Any name
foo.barcan have an "object" associated with it, while still allowing
foo.bar.bazto exist. I think so long as this isn't treated as a hierarchy by any tools, except to determine if things have metadata attached, it should be fine. Possibly a fixed
foo.bar.metanamespace instead, to restrict it? I've not fully thought through namespaces for
canyet. Unison is especially interesting here because it was the original inspiration for how
canworks under the hood.
Ideas about how the core notebook should work and the things it should allow I'm trying to keep in that todo list, with this around the visualisation and interaction with that core. But there's definitely some cross-over here...I'm still feeling out the boundaries. I'll likely make "namespacing" and "metadata for namespacing" tickets over on that board just so there's something to refer to (feel free to comment over there too, but it's mostly nitty-gritty right now)
oh, hey - references work between
todoprojects. Didn't need to manually do that after-all. Nice.