mirivlad 14ff1a25b9 fix: bind sidebar selection to filtered content
Root cause: single global 'cur' node ID was shared across all
sections. Switching between 'Клиенты'/'Проекты'/etc did not
change the rendered content because renderToday/renderInbox/
loadSection all loaded the same flat root-node list and
switchTab('ov') re-rendered selN(cur) regardless of which
section was active.

Fix: split selection into two distinct states:
  sel = {kind:'section', section:'today'|'inbox'|'clients'|...}
    or  sel = {kind:'node',     nodeId:'<uuid>'}

Each section renders its own content (title, quick-actions,
filtered items, empty state). Real nodes show their own
dashboard. Tab dispatch checks sel.kind first.

Sidebar separated into:
  'НАВИГАЦИЯ' — virtual sections (today/inbox/7 categories)
  'ДЕЛА'       — real user nodes from API

Russian type labels everywhere (TL map). Section metadata
(SEC_META) provides per-section empty states and action types.

Known limitation: section content currently shows all root
nodes (backend has no section/group column yet). When section
assignment is added to the data model, filtering will wire
up without frontend changes — renderSectionList already
receives the section id.
2026-05-30 21:56:07 +08:00

Верстак

Верстак — локальная программа, где по каждому клиенту или проекту лежат все его файлы, заметки, документы, ссылки, действия и история работ.

Это не замечатель, не CRM, не таск-трекер. Нишевая аудитория — люди, у которых работа организована через дела, а не через задачи:

дело → файлы → заметки → документы → действия → история → вернуться через месяц

Для кого

Один продукт — разные входные двери:

Кто Как видит Верстак
Фрилансер / дизайнер клиентские проекты, файлы, правки, история работ
Мастер по ПК клиенты, устройства, серийники, фото, журнал
Разработчик локальный workspace: заметки, репы, команды, файлы
Писатель / мейкер мастерская проектов: материалы, заметки, версии, история

Универсальные сущности

Базовая модель предельно проста — плагины добавляют функционал:

  • Дело — контекст для всего остального
  • Заметка — Markdown внутри vault
  • Файл / Документ — любой файл, привязанный к делу
  • Действие — кнопка запуска: URL, файл, папка, команда
  • Журнал — записи о затраченном времени

Плагины (шаблоны дел, календарь, канбан, импортёры) расширяют эти сущности без перекомпиляции программы.

Стек

Go + SQLite + Lua (плагины) + Wails + Bubble Tea.

Документация

S
Description
No description provided
Readme
28 MiB
Languages
Go 57.6%
Svelte 23.1%
JavaScript 11.8%
HTML 2.5%
Lua 1.9%
Other 3.1%