Ограничения¶
Честный список того, чего этот сервер не делает, и почему.
Он не создаёт лог-файлов¶
Ни лог-файла, ни каталога, ни заголовка. Если сегодняшнего файла нет, вызов вернёт no_file — это исход, о котором нужно сообщить, а не проблема, которую нужно чинить.
Это чужие заметки, и сервер, который создаёт файлы, рано или поздно создаст не тот: второй файл за день, у которого уже есть файл под другим именем, или файл в каталоге, который просто временно не примонтирован. Сообщить о пробеле стоит одной строки в диалоге; угадать — стоит доверия ко всему логу.
Единственное исключение — сам чек-лист. Файлу, который существует, но чек-листа не содержит, список заводится в конце, и вызов возвращает created (подробности). Рассуждение здесь зеркальное: пользователь уже решил, что этот файл — сегодняшний лог, раз его создал, а список, дописанный в конец, не может попасть не в тот день и ничего не вытесняет.
Он умеет только дописывать¶
Один пункт, в конец одного чек-листа. Он не отмечает существующие пункты, не переставляет их, не редактирует, не удаляет и не трогает второй чек-лист. Инструментов remove и update нет.
Он не умеет читать ваш лог¶
check возвращает имя файла и число. append возвращает имя файла и строку, которую записал. Содержимое лог-файла не возвращает ни один инструмент, и подписываться тут не на что. Если ассистенту нужно знать, что уже есть в ваших заметках, это должно попасть к нему другим путём — в чём и смысл: в лог пишут, из лога не читают.
Один каталог на сервер¶
Каталог фиксируется при старте. Два каталога — это две записи сервера в клиенте, с разными именами. Аргумента инструмента для выбора каталога в момент вызова нет, потому что такой аргумент вернул бы путь обратно в диалог.
Только markdown-чек-листы¶
Пункт опознаётся по форме - [ ] и записывается так же. Org-mode, обычные списки, нумерованные списки и таблицы для этого сервера чек-листами не являются.
Пробелы нормализуются¶
Многострочное описание становится одной строкой. Это не настраивается: пункт чек-листа — это строка, а вставленный в него абзац сломал бы границы блока, на которые опирается всё остальное.
Одновременная запись¶
Запись атомарна — файл заменяется целиком, поэтому обрезанным его никто никогда не увидит. Но он не блокируется. Два сервера, дописывающих в один файл в одно и то же мгновение, или ваше сохранение в редакторе в этот же момент всё ещё могут потерять одно из двух изменений. На практике такие вызовы разделены секундами и последствий это не имеет, но базой данных сервер не является.