More today on the ongoing construction of Welder.jl, {comind}'s websocket server for handling melds. Melds are something like forums, group chats, or twitter threads – you and/or a group of people can chat about a topic in real time. Each of you will be shown suggested thoughts any time a new thought is added to the meld.
Suggestions are thoughts that
you or someone else has written before
previously linked to the previous note
language model generated commentary like summaries or direct answers to questions
suggestions to view other melds
offers or tips to use a particular feature
The idea here is that you type your way around comind, sometimes just thinking to yourself, in public melds, small group melds, business melds, etc. When you think, you either add something to a stream of conciousness yourself, or you pull in a suggestion.
While you type your way along, you can also choose to be "pulled" around by accepting suggestions. These are the main feature of comind. You should think of suggestions as thoughts that change, interpret, or assist you in whatever you are thinking about.
For example, if you are in a meld for a research group, you might be shown suggestions like
This paper seems to be related to what you and your group are discussing, and it may be helpful to note X and Y.
A reminder that you seem to have written something related elsewhere, like in an email or other meld.
A link to a meld where you and a friend were discussing a paper. This shares the dialog from a meld with the meld you add it to.
Any of the {comind} language models.
{co} (the "main" language model) has access to your complete knowledge graph to the accept you permit it, and will act as something like a personal search and query engine in response to thoughts that resemble queries.
{science}, the comind for the concept "science", may provide an overview of the current discussion of your paper in all other public melds.
{void} might just say "you should toss that to the void. i'd love to read it." You could probably turn these off if you wanted.
All this is hard to do, technically. I've discussed this before but it bears repeating. I'm spending a lot of time on Welder.jl, in part because it's one of the more important pieces of {comind}'s infrastructure.
Some accomplishments:
Thoughts sent to the websocket server are now relayed to the main server, so they are persistent now.
Each new thought in a meld is linked to the one before it, this now works client -> welder -> server -> database.
The root weld (no other meld) now works, and you can also call up a meld by its slug. /meld/the-have
is my testing example.
Produced a simple, interactive client for testing a meld.
Supported a simple suggestion relay to the user.
Basically, I can talk to myself now, real time, and the server is now sending me (very dumb) suggestions about what I should look at next.
I also have a working pseudo-REPL terminal UI to use when I do meld work. Welder.jl is a much higher quality project than my usual fare, and I'm really happy with both the test scaffolding and the project thusfar.
Here's an example of the suggestions I got, sourced only by semantic search:
cameron, 2024-02-21T15:55:47.846
╭──────────────────────────────────────────────────────────────────────────────────────╮
│ And look at that! It works now. It's worth talking about why I think there should │
│ be thought titles on here. In some sense this is kind of a tweet-place, where │
│ users write lots of short-form stuff. │
│ │
│ 1. We don't _usually_ have titles for this kinds of things, because the posts │
│ are so short. On Comind, I don't actually restrict length to anything (though │
│ I may at some point for RAG purposes), so it kind of helps to be able to get │
│ a rough description of what's in the thought for those longer documents. │
│ 2. It's goofy. I like having kinda dumb default titles. I'm always looking for │
│ ways to make comind an interesting place for play and silly LLM applications, │
│ and titles seemed relatively obvious (ChatGPT, for example, does this quite │
│ well). │
│ 3. It helps you find stuff. Comind is fundamentally a notetaking and knowledge │
│ graph tool, and so we want to provide tools that make it easy to determine what │
│ is inside a given thought. │
╰──────────────────────────────────────────────────────────────────────────────────────╯
cameron, 2024-02-12T18:41:32.651
╭──────────────────────────────────────────────────────────────────────────────────────╮
│ (side note for #comind-ui, the tabula rasa baybee placeholder should say "add │
│ more thoughts" when the top of mind is populated) │
╰──────────────────────────────────────────────────────────────────────────────────────╯
test, 2024-03-27T06:13:00.526
╭──────────────────────────────────────────────────────────────────────────────────────╮
│ This is a test thought, from a testy fella │
╰──────────────────────────────────────────────────────────────────────────────────────╯
Good fuckin' day in my opinion.
– Cameron