Add per-conversation notes.md

Gives each conversation an opt-in, persistent memory file the model reads
automatically every turn and writes to on its own initiative via a fenced
```update-notes``` block in its reply — no per-write approval, matching the
Confab-as-CLAUDE.md-for-itself concept Rune wanted. /notes on|off|show,
files live in ~/Library/Application Support/oAI/notes/, embedded ID header
for future Git Sync compatibility. Adds DB migration v12.
This commit is contained in:
2026-08-04 07:58:47 +02:00
parent 32e6ce3c37
commit 3414e37e24
14 changed files with 581 additions and 18 deletions
+7 -1
View File
@@ -31,6 +31,8 @@ struct Conversation: Identifiable, Codable {
var updatedAt: Date
var primaryModel: String? // Primary model used in this conversation
var folderId: UUID? // Folder this conversation is filed under, if any
var notesEnabled: Bool // Whether the per-conversation notes.md feature is on
var notesFilename: String? // Filename under Application Support/oAI/notes/, if notes have ever been created
nonisolated init(
id: UUID = UUID(),
@@ -39,7 +41,9 @@ struct Conversation: Identifiable, Codable {
createdAt: Date = Date(),
updatedAt: Date = Date(),
primaryModel: String? = nil,
folderId: UUID? = nil
folderId: UUID? = nil,
notesEnabled: Bool = false,
notesFilename: String? = nil
) {
self.id = id
self.name = name
@@ -48,6 +52,8 @@ struct Conversation: Identifiable, Codable {
self.updatedAt = updatedAt
self.primaryModel = primaryModel
self.folderId = folderId
self.notesEnabled = notesEnabled
self.notesFilename = notesFilename
}
var messageCount: Int {