Round 390: Todoist ext, TickTick ext, Linear ext, Asana/Monday ext (20 commands)

ober

a65b834faafd15576948b2493910dcb61cc540c4

diff --git a/docs/jemacs-vs-emacs.md b/docs/jemacs-vs-emacs.md
index 7df9edb..0b4478d 100644
--- a/docs/jemacs-vs-emacs.md
+++ b/docs/jemacs-vs-emacs.md
@@ -4583,6 +4583,31 @@ No remaining Tier 1 gaps. All core editing, completion, and navigation features 
 | ebib-import-file | :orange_circle: | Import file into Ebib |
 | ebib-push-citation | :orange_circle: | Push Ebib citation to buffer |
 
+### Round 390 — Todoist ext, TickTick ext, Linear ext, Asana/Monday ext
+
+| Feature | Emacs | jemacs | Status |
+|---|---|---|---|
+| Todoist tasks | — | `todoist-tasks` | :orange_circle: Scaffolded |
+| Todoist projects | — | `todoist-projects` | :orange_circle: Scaffolded |
+| Todoist labels | — | `todoist-labels` | :orange_circle: Scaffolded |
+| Todoist filters | — | `todoist-filters` | :orange_circle: Scaffolded |
+| TickTick tasks | — | `ticktick-tasks` | :orange_circle: Scaffolded |
+| TickTick lists | — | `ticktick-lists` | :orange_circle: Scaffolded |
+| TickTick habits | — | `ticktick-habits` | :orange_circle: Scaffolded |
+| TickTick tags | — | `ticktick-tags` | :orange_circle: Scaffolded |
+| Linear issues | — | `linear-issues` | :orange_circle: Scaffolded |
+| Linear projects | — | `linear-projects` | :orange_circle: Scaffolded |
+| Linear cycles | — | `linear-cycles` | :orange_circle: Scaffolded |
+| Linear views | — | `linear-views` | :orange_circle: Scaffolded |
+| Asana tasks | — | `asana-tasks` | :orange_circle: Scaffolded |
+| Asana projects | — | `asana-projects` | :orange_circle: Scaffolded |
+| Asana portfolios | — | `asana-portfolios` | :orange_circle: Scaffolded |
+| Asana goals | — | `asana-goals` | :orange_circle: Scaffolded |
+| Monday items | — | `monday-items` | :orange_circle: Scaffolded |
+| Monday boards | — | `monday-boards` | :orange_circle: Scaffolded |
+| Monday automations | — | `monday-automations` | :orange_circle: Scaffolded |
+| Monday dashboards | — | `monday-dashboards` | :orange_circle: Scaffolded |
+
 ### Round 389 — Notion ext, Airtable ext, Coda ext, Baserow/NocoDB ext
 
 | Feature | Emacs | jemacs | Status |
diff --git a/src/jerboa-emacs/editor-extra-final.ss b/src/jerboa-emacs/editor-extra-final.ss
index c769050..43ec509 100644
--- a/src/jerboa-emacs/editor-extra-final.ss
+++ b/src/jerboa-emacs/editor-extra-final.ss
@@ -27298,3 +27298,44 @@
 (def (cmd-nocodb-formulas app)
   (let* ((echo (app-state-echo app)))
     (echo-message! echo "NocoDB: listing formulas")))
+
+;; Round 390 batch 2 — Linear ext, Asana/Monday ext
+(def (cmd-linear-cycles app)
+  (let* ((echo (app-state-echo app)))
+    (echo-message! echo "Linear: listing cycles")))
+
+(def (cmd-linear-views app)
+  (let* ((echo (app-state-echo app)))
+    (echo-message! echo "Linear: listing views")))
+
+(def (cmd-asana-tasks app)
+  (let* ((echo (app-state-echo app)))
+    (echo-message! echo "Asana: listing tasks")))
+
+(def (cmd-asana-projects app)
+  (let* ((echo (app-state-echo app)))
+    (echo-message! echo "Asana: listing projects")))
+
+(def (cmd-asana-portfolios app)
+  (let* ((echo (app-state-echo app)))
+    (echo-message! echo "Asana: listing portfolios")))
+
+(def (cmd-asana-goals app)
+  (let* ((echo (app-state-echo app)))
+    (echo-message! echo "Asana: listing goals")))
+
+(def (cmd-monday-items app)
+  (let* ((echo (app-state-echo app)))
+    (echo-message! echo "Monday: listing items")))
+
+(def (cmd-monday-boards app)
+  (let* ((echo (app-state-echo app)))
+    (echo-message! echo "Monday: listing boards")))
+
+(def (cmd-monday-automations app)
+  (let* ((echo (app-state-echo app)))
+    (echo-message! echo "Monday: listing automations")))
+
+(def (cmd-monday-dashboards app)
+  (let* ((echo (app-state-echo app)))
+    (echo-message! echo "Monday: listing dashboards")))
diff --git a/src/jerboa-emacs/editor-extra-modes.ss b/src/jerboa-emacs/editor-extra-modes.ss
index 5655690..2b03301 100644
--- a/src/jerboa-emacs/editor-extra-modes.ss
+++ b/src/jerboa-emacs/editor-extra-modes.ss
@@ -28083,3 +28083,44 @@
 (def (cmd-coda-tables app)
   (let* ((echo (app-state-echo app)))
     (echo-message! echo "Coda: listing tables")))
+
+;; Round 390 batch 1 — Todoist ext, TickTick ext
+(def (cmd-todoist-tasks app)
+  (let* ((echo (app-state-echo app)))
+    (echo-message! echo "Todoist: listing tasks")))
+
+(def (cmd-todoist-projects app)
+  (let* ((echo (app-state-echo app)))
+    (echo-message! echo "Todoist: listing projects")))
+
+(def (cmd-todoist-labels app)
+  (let* ((echo (app-state-echo app)))
+    (echo-message! echo "Todoist: listing labels")))
+
+(def (cmd-todoist-filters app)
+  (let* ((echo (app-state-echo app)))
+    (echo-message! echo "Todoist: listing filters")))
+
+(def (cmd-ticktick-tasks app)
+  (let* ((echo (app-state-echo app)))
+    (echo-message! echo "TickTick: listing tasks")))
+
+(def (cmd-ticktick-lists app)
+  (let* ((echo (app-state-echo app)))
+    (echo-message! echo "TickTick: listing task lists")))
+
+(def (cmd-ticktick-habits app)
+  (let* ((echo (app-state-echo app)))
+    (echo-message! echo "TickTick: listing habits")))
+
+(def (cmd-ticktick-tags app)
+  (let* ((echo (app-state-echo app)))
+    (echo-message! echo "TickTick: listing tags")))
+
+(def (cmd-linear-issues app)
+  (let* ((echo (app-state-echo app)))
+    (echo-message! echo "Linear: listing issues")))
+
+(def (cmd-linear-projects app)
+  (let* ((echo (app-state-echo app)))
+    (echo-message! echo "Linear: listing projects")))
diff --git a/src/jerboa-emacs/editor-extra-regs2.ss b/src/jerboa-emacs/editor-extra-regs2.ss
index 6895405..ef9f61f 100644
--- a/src/jerboa-emacs/editor-extra-regs2.ss
+++ b/src/jerboa-emacs/editor-extra-regs2.ss
@@ -9662,4 +9662,26 @@
   (register-command! 'nocodb-rows cmd-nocodb-rows)
   (register-command! 'nocodb-views cmd-nocodb-views)
   (register-command! 'nocodb-formulas cmd-nocodb-formulas)
+
+  ;; Round 390 — Todoist ext, TickTick ext, Linear ext, Asana/Monday ext
+  (register-command! 'todoist-tasks cmd-todoist-tasks)
+  (register-command! 'todoist-projects cmd-todoist-projects)
+  (register-command! 'todoist-labels cmd-todoist-labels)
+  (register-command! 'todoist-filters cmd-todoist-filters)
+  (register-command! 'ticktick-tasks cmd-ticktick-tasks)
+  (register-command! 'ticktick-lists cmd-ticktick-lists)
+  (register-command! 'ticktick-habits cmd-ticktick-habits)
+  (register-command! 'ticktick-tags cmd-ticktick-tags)
+  (register-command! 'linear-issues cmd-linear-issues)
+  (register-command! 'linear-projects cmd-linear-projects)
+  (register-command! 'linear-cycles cmd-linear-cycles)
+  (register-command! 'linear-views cmd-linear-views)
+  (register-command! 'asana-tasks cmd-asana-tasks)
+  (register-command! 'asana-projects cmd-asana-projects)
+  (register-command! 'asana-portfolios cmd-asana-portfolios)
+  (register-command! 'asana-goals cmd-asana-goals)
+  (register-command! 'monday-items cmd-monday-items)
+  (register-command! 'monday-boards cmd-monday-boards)
+  (register-command! 'monday-automations cmd-monday-automations)
+  (register-command! 'monday-dashboards cmd-monday-dashboards)
 )