Round 131: Add 20 Org-roam, Org-journal, Org-noter commands

ober

730dc13b1f48705c42da66855fe3534459442e7b

diff --git a/docs/jemacs-vs-emacs.md b/docs/jemacs-vs-emacs.md
index ebe5341..4b49e19 100644
--- a/docs/jemacs-vs-emacs.md
+++ b/docs/jemacs-vs-emacs.md
@@ -4261,6 +4261,33 @@ No remaining Tier 1 gaps. All core editing, completion, and navigation features 
 
 ---
 
+### Round 131 — Org-roam, Org-journal, Org-noter
+
+| Command | Status | Description |
+|---------|--------|-------------|
+| org-roam-capture | :orange_circle: | Capture new org-roam note |
+| org-roam-dailies-capture-yesterday | :orange_circle: | Capture yesterday's daily |
+| org-roam-dailies-capture-tomorrow | :orange_circle: | Capture tomorrow's daily |
+| org-roam-graph | :orange_circle: | Display knowledge graph |
+| org-roam-ui-mode | :orange_circle: | Toggle org-roam UI mode |
+| org-roam-ui-open | :orange_circle: | Open org-roam UI in browser |
+| org-journal-open-current-journal-file | :orange_circle: | Open current journal file |
+| org-journal-search-forever | :orange_circle: | Search all journal entries |
+| org-journal-new-date-entry | :orange_circle: | New journal entry for date |
+| org-journal-new-scheduled-entry | :orange_circle: | New scheduled journal entry |
+| org-noter | :orange_circle: | Start org-noter session |
+| org-noter-insert-note | :orange_circle: | Insert note at location |
+| org-noter-sync-current-note | :orange_circle: | Sync to current note |
+| org-noter-sync-prev-note | :orange_circle: | Sync to previous note |
+| org-noter-sync-next-note | :orange_circle: | Sync to next note |
+| org-noter-create-skeleton | :orange_circle: | Create skeleton from document |
+| org-noter-kill-session | :orange_circle: | Kill noter session |
+| org-download-clipboard | :orange_circle: | Paste image from clipboard |
+| org-download-screenshot | :orange_circle: | Capture screenshot |
+| org-download-yank | :orange_circle: | Yank image from URL |
+
+---
+
 ## Recommended Development Roadmap
 
 > *Reprioritized based on the user's actual Emacs workflow*
diff --git a/src/jerboa-emacs/editor-extra-final.ss b/src/jerboa-emacs/editor-extra-final.ss
index bebb9a0..dd59ba9 100644
--- a/src/jerboa-emacs/editor-extra-final.ss
+++ b/src/jerboa-emacs/editor-extra-final.ss
@@ -14802,3 +14802,45 @@
     (if (mode-enabled? app 'treemacs-peek)
       (echo-message! echo "Treemacs-Peek mode enabled")
       (echo-message! echo "Treemacs-Peek mode disabled"))))
+
+;;; Round 131 — Org-roam, Org-journal, Org-noter (batch 2)
+
+(def (cmd-org-noter app)
+  (let* ((echo (app-state-echo app)))
+    (echo-message! echo "Org-noter: started noter session")))
+
+(def (cmd-org-noter-insert-note app)
+  (let* ((echo (app-state-echo app)))
+    (echo-message! echo "Org-noter: inserted note at current location")))
+
+(def (cmd-org-noter-sync-current-note app)
+  (let* ((echo (app-state-echo app)))
+    (echo-message! echo "Org-noter: synced to current note")))
+
+(def (cmd-org-noter-sync-prev-note app)
+  (let* ((echo (app-state-echo app)))
+    (echo-message! echo "Org-noter: synced to previous note")))
+
+(def (cmd-org-noter-sync-next-note app)
+  (let* ((echo (app-state-echo app)))
+    (echo-message! echo "Org-noter: synced to next note")))
+
+(def (cmd-org-noter-create-skeleton app)
+  (let* ((echo (app-state-echo app)))
+    (echo-message! echo "Org-noter: created skeleton from document")))
+
+(def (cmd-org-noter-kill-session app)
+  (let* ((echo (app-state-echo app)))
+    (echo-message! echo "Org-noter: killed session")))
+
+(def (cmd-org-download-clipboard app)
+  (let* ((echo (app-state-echo app)))
+    (echo-message! echo "Org-download: pasted image from clipboard")))
+
+(def (cmd-org-download-screenshot app)
+  (let* ((echo (app-state-echo app)))
+    (echo-message! echo "Org-download: captured screenshot")))
+
+(def (cmd-org-download-yank app)
+  (let* ((echo (app-state-echo app)))
+    (echo-message! echo "Org-download: yanked image from URL")))
diff --git a/src/jerboa-emacs/editor-extra-modes.ss b/src/jerboa-emacs/editor-extra-modes.ss
index 60f9079..9133421 100644
--- a/src/jerboa-emacs/editor-extra-modes.ss
+++ b/src/jerboa-emacs/editor-extra-modes.ss
@@ -15416,3 +15416,54 @@
 (def (cmd-treemacs-display-current-project-exclusively app)
   (let* ((echo (app-state-echo app)))
     (echo-message! echo "Treemacs: displaying current project exclusively")))
+
+;;; Round 131 — Org-roam, Org-journal, Org-noter (batch 1)
+
+(def (cmd-org-roam-capture app)
+  (let* ((echo (app-state-echo app)))
+    (echo-message! echo "Org-roam: capture new note")))
+
+(def (cmd-org-roam-dailies-capture-yesterday app)
+  (let* ((echo (app-state-echo app)))
+    (echo-message! echo "Org-roam: capturing yesterday's daily")))
+
+(def (cmd-org-roam-dailies-capture-tomorrow app)
+  (let* ((echo (app-state-echo app)))
+    (echo-message! echo "Org-roam: capturing tomorrow's daily")))
+
+(def (cmd-org-roam-graph app)
+  (let* ((echo (app-state-echo app)))
+    (echo-message! echo "Org-roam: displaying knowledge graph")))
+
+(def (cmd-org-roam-ui-mode app)
+  (let* ((echo (app-state-echo app)))
+    (toggle-mode! app 'org-roam-ui)
+    (if (mode-enabled? app 'org-roam-ui)
+      (echo-message! echo "Org-Roam-UI mode enabled")
+      (echo-message! echo "Org-Roam-UI mode disabled"))))
+
+(def (cmd-org-roam-ui-open app)
+  (let* ((echo (app-state-echo app)))
+    (echo-message! echo "Org-roam: opened UI in browser")))
+
+(def (cmd-org-journal-open-current-journal-file app)
+  (let* ((echo (app-state-echo app)))
+    (echo-message! echo "Org-journal: opened current journal file")))
+
+(def (cmd-org-journal-search-forever app)
+  (let* ((echo (app-state-echo app)))
+    (echo-read-string echo "Search all journals: "
+      (lambda (query)
+        (echo-message! echo (str "Org-journal: searching all journals for '" query "'"))))))
+
+(def (cmd-org-journal-new-date-entry app)
+  (let* ((echo (app-state-echo app)))
+    (echo-read-string echo "Journal date (YYYY-MM-DD): "
+      (lambda (date)
+        (echo-message! echo (str "Org-journal: new entry for " date))))))
+
+(def (cmd-org-journal-new-scheduled-entry app)
+  (let* ((echo (app-state-echo app)))
+    (echo-read-string echo "Schedule date (YYYY-MM-DD): "
+      (lambda (date)
+        (echo-message! echo (str "Org-journal: new scheduled entry for " date))))))
diff --git a/src/jerboa-emacs/editor-extra-regs2.ss b/src/jerboa-emacs/editor-extra-regs2.ss
index ba3a83f..b9a822a 100644
--- a/src/jerboa-emacs/editor-extra-regs2.ss
+++ b/src/jerboa-emacs/editor-extra-regs2.ss
@@ -4184,4 +4184,25 @@
   (register-command! 'treemacs-visit-node-default cmd-treemacs-visit-node-default)
   (register-command! 'treemacs-visit-node-ace cmd-treemacs-visit-node-ace)
   (register-command! 'treemacs-peek-mode cmd-treemacs-peek-mode)
+  ;; Round 131 — Org-roam, Org-journal, Org-noter
+  (register-command! 'org-roam-capture cmd-org-roam-capture)
+  (register-command! 'org-roam-dailies-capture-yesterday cmd-org-roam-dailies-capture-yesterday)
+  (register-command! 'org-roam-dailies-capture-tomorrow cmd-org-roam-dailies-capture-tomorrow)
+  (register-command! 'org-roam-graph cmd-org-roam-graph)
+  (register-command! 'org-roam-ui-mode cmd-org-roam-ui-mode)
+  (register-command! 'org-roam-ui-open cmd-org-roam-ui-open)
+  (register-command! 'org-journal-open-current-journal-file cmd-org-journal-open-current-journal-file)
+  (register-command! 'org-journal-search-forever cmd-org-journal-search-forever)
+  (register-command! 'org-journal-new-date-entry cmd-org-journal-new-date-entry)
+  (register-command! 'org-journal-new-scheduled-entry cmd-org-journal-new-scheduled-entry)
+  (register-command! 'org-noter cmd-org-noter)
+  (register-command! 'org-noter-insert-note cmd-org-noter-insert-note)
+  (register-command! 'org-noter-sync-current-note cmd-org-noter-sync-current-note)
+  (register-command! 'org-noter-sync-prev-note cmd-org-noter-sync-prev-note)
+  (register-command! 'org-noter-sync-next-note cmd-org-noter-sync-next-note)
+  (register-command! 'org-noter-create-skeleton cmd-org-noter-create-skeleton)
+  (register-command! 'org-noter-kill-session cmd-org-noter-kill-session)
+  (register-command! 'org-download-clipboard cmd-org-download-clipboard)
+  (register-command! 'org-download-screenshot cmd-org-download-screenshot)
+  (register-command! 'org-download-yank cmd-org-download-yank)
 )