← СИГНАЛ ИНСТРУМЕНТЫ
ИНСТРУМЕНТЫ

Claude Code написал менеджер задач за 19 часов

Разработчик выпустил открытый менеджер задач Dela со сквозным шифрованием, весь код которого написал Claude Code. Проект ставится на свой сервер через Docker и работает в браузере, на Windows и Android.

Разработчик под ником на «Хабре» представил Dela — менеджер задач с клиентским шифрованием, который разворачивается на собственном сервере. Весь код проекта написал Claude Code: по словам автора, на это ушло около 19 часов. Dela работает в браузере, на Windows и Android, распространяется под лицензией AGPL-3.0, а серверная часть ставится через Docker.

Поводом стал Todoist: в бесплатной версии ограничено число проектов, а платить за подписку автор не хотел. Часть задач он вёл в Obsidian. Требования к своему решению он сформулировал так: содержимое не должен читать никто, кроме владельца, включая сам сервер; нужна синхронизация телефона и компьютера, офлайн-режим, быстрое добавление задачи одной фразой и виджет со списком.

Шифрование в Dela включено всегда и не отключается. Пароль на сервер не передаётся, из секрета входа сервер не может вывести ключ обёртки; при смене пароля перешифровывается только мастер-ключ, а задачи остаются как есть. Ключ восстановления — 32 случайных байта, показывается один раз при регистрации: без пароля и этого ключа расшифровать задачи нельзя, у сервера нет способа восстановить доступ.

Синхронизация построена на гибридных часах (HLC): каждая операция получает метку из физического времени в миллисекундах, счётчика внутри миллисекунды и id устройства. Побеждает значение с большей меткой, причём сравнение идёт по отдельным ячейкам (table, record, field) — поэтому правки разных полей на разных устройствах не конфликтуют. Сервер отклоняет операции, у которых время опережает его собственное больше чем на 60 секунд, а клиент запоминает поправку.

Сервер хранит только зашифрованные конверты и видит слот — хеш адреса ячейки с ключом, известным лишь участникам пространства. Метка лежит открыто, так как по ней сервер решает, какой конверт новее; слот и метка входят в AAD, поэтому подмена метки или перекладывание значения в другую ячейку ломает расшифровку. По WebSocket сервер лишь сигналит о новых данных в пространстве, а клиент забирает конверты страницами по курсору.

Для совместной работы у проекта отдельное пространство со своим ключом. В первой версии ключ участнику запечатывался анонимно через crypto_box_seal, но аудит показал, что так сервер мог подсунуть собственный ключ; после исправления ключ от другого отправителя Dela не принимает. При удалении участника владелец перешифровывает весь проект новым ключом — время смены растёт вместе с размером проекта.

Корректность сходимости проверяется детерминированной симуляцией: от 2 до 5 устройств с часами, сдвинутыми до 30 секунд в обе стороны, теряют сеть и подтверждения отправки, а в конце все устройства и сервер должны совпасть с эталоном. Тест прогоняет 60 сценариев по 2000 шагов, один на 50 000 шагов и 5 сценариев поверх зашифрованных конвертов. Быстрое добавление разбирает фразы на русском и английском прямо во время набора и подсвечивает распознанные части.

claude codeменеджеры задачшифрованиеоткрытый кодразработка
Первоисточник Читать в Хабр ↗

Материал подготовлен ИИ-редакцией «Сигнала» как пересказ публикации первоисточника. Фактическую точность и подробности проверяйте по оригиналу.

По этой теме ИНСТРУМЕНТЫ Figma представила функции для работы ИИ-агентов TechCrunch · 09:30 ИНСТРУМЕНТЫ Агентная разработка растит технологический зоопарк Хабр · 14 окт, 20:02 ИНСТРУМЕНТЫ Amp расширяет применение ИИ-агентов за пределы кода OpenAI · 14 окт, 17:00 ИНСТРУМЕНТЫ Регрессионное тестирование промптов выявило пропуски Хабр · 14 окт, 16:45 ИНСТРУМЕНТЫ Разработчик создал надсмотрщик для ИИ-агентов Хабр · 14 окт, 12:12