Skip to content
docs.
WORKSPACE

Your documentation

Explore the project catalog
Localzet ServerАсинхронный PHP-серверTriangleФреймворк и компонентыMIX IDИдентификация и интеграцииHack APIПубличные API хакатонаACNПроект и компонентыUserlay / UserNetПроект и компонентыAxiomПроект и компонентыМесседжинг через почтуПроект и компонентыLWT / JWT / JOSEПроект и компонентыФинансовая аналитика KimaiПроект и компонентыМультипарадигмальная БДПроект и компонентыZorin PlatformПроект и компонентыZorin TrustПроект и компонентыFloraScope / VegwatchПроект и компонентыaegis-qДокументация проектаaevumdbДокументация проектаauditДокументация проектаauto-invest-managerАвтотрейдерcaine-companionДокументация проектаcertbot-cloudflareДокументация проектаClusterLocalzet Server / ClustercmdveilДокументация проектаConsolePHP CLICronБиблиотеки Localzet Serverdata-connectorДокументация проектаdevice-controlDevice Controlenn-projectДокументация проектаEventsБиблиотеки Localzet ServerflowsintДокументация проектаforgeДокументация проектаHttpClientБиблиотеки Localzet ServerinterpreterСобственный языкinvariaДокументация проектаkeynotesДокументация проектаknotrouteKnotroutelaravel-personal-analyticsДокументация проектаlocalzet-osДокументация проектаmeridianДокументация проектаMQTTБиблиотеки Localzet Servernano-kernelСобственная ОСNoterДокументация проектаpersonal-analyticsДокументация проектаProxyБиблиотеки Localzet ServerPSRБиблиотеки Localzet ServerPSR-7Библиотеки Localzet Serverrschs-monitorДокументация проектаsemsealДокументация проектаshardsealДокументация проектаSocketIOБиблиотеки Localzet ServerSOCKS5Библиотеки Localzet Serverstandalone-analyticsДокументация проектаstatic-php-cliДокументация проектаStorageБиблиотеки Localzet ServersutureДокументация проектаtempoweaveДокументация проекта✓ttsСинтез речиTunnelБиблиотеки Localzet Serverui-kitUI KitvesperДокументация проектаWebAnalyzerWebAnalyzerzorin-access-brokerДокументация проектаzorin-authority-brokerДокументация проектаzorin-authority-sdk-phpДокументация проектаzorin-authority-sdk-pythonДокументация проектаzorin-authority-sdk-tsДокументация проектаzorin-client-intelДокументация проектаzorin-device-core-aospДокументация проектаzorin-host-agentДокументация проектаzorin-native-labДокументация проектаzorin-nodeДокументация проектаzorin-opsДокументация проектаdonstu-python-sdkДокументация проектаfloortraceFloortraceserver-rsLocalzet Server / Cluster
Catalog
Documentation/tempoweave

Architecture

src/main/index.js

  • создаёт окно Electron;
  • владеет SQLite;
  • выполняет HTTP-запросы;
  • шифрует секреты;
  • обрабатывает IPC;
  • запускает периодическую синхронизацию.

src/main/preload.js

Публикует узкий API window.tempo. Renderer не имеет доступа к Node.js, файловой системе, SQLite или произвольному IPC.

src/renderer/app.js

Рендерит экраны без внешнего frontend runtime. Все пользовательские данные экранируются функцией esc() перед вставкой в HTML.

  • settings — обычные настройки JSON.
  • secrets — зашифрованные токены.
  • clients — контрагенты.
  • projects — проекты и remote mapping.
  • rate_rules — временные и контекстные ставки.
  • time_entries — таймеры и завершённые записи.
  • outbox — гарантированная очередь Kimai.
  • payments — фактические выплаты.
  • payment_allocations — закрытие времени выплатами.
  • payment_schedules — декларативный график.
  • schedule_items — материализованные ожидаемые выплаты.
  • receipts — чеки НПД.
  • adjustments — ручной долг/списание в деньгах или часах.
  • jira_issues — локальный кэш задач.
  • sync_log — наблюдаемость интеграций.

Транзакционные границы

Section titled “Транзакционные границы”

Остановка таймера и добавление outbox выполняются в одной SQLite-транзакции. Создание выплаты, удаление старых распределений, новое автораспределение и обновление платёжного графика также выполняются атомарно.

TempoWeave не выполняет destructive merge удалённых записей. Kimai считается системой публикации времени, а локальная база — системой финансовой аналитики и оффлайн-источником.

При push:

  • новая запись перед POST проходит preflight-поиск по tempoweave:<uuid> в коротком диапазоне дат;
  • запись с kimai_id обновляется через PATCH;
  • ошибка остаётся в outbox с экспоненциальной задержкой;
  • локальное удаление не транслируется в Kimai, чтобы приложение не выполняло разрушительные операции неявно.

При pull:

  • найденный Kimai ID обновляет существующую запись;
  • тег tempoweave:<uuid> восстанавливает локальную связь;
  • совпавший fingerprint предотвращает дубль;
  • неизвестная запись импортируется как source=kimai.

Используются последние 20 рабочих значений из окна до 60 дней:

  • среднее дневное начисление;
  • линейный тренд, ограниченный ±15% среднего в день;
  • прогноз на число рабочих дней горизонта;
  • интервал около 80% через 1.28 × σ × √n.

Это эвристический операционный прогноз, а не бухгалтерская гарантия.

Финансовый контур разделён на независимые факты:

  • записи времени создают начисления по правилам ставок;
  • выплаты фиксируют фактически полученные деньги и налог;
  • payment_allocations закрывают конкретные записи времени полностью или частично;
  • нераспределённый остаток выплаты является авансом/переплатой;
  • график выплат описывает ожидания и не считается фактическим доходом;
  • корректировки меняют денежный или часовой долг с обязательной причиной;
  • чек НПД подтверждает выплату, но не создаёт второе поступление.

Редактирование выплаты атомарно удаляет её прежние распределения, пересчитывает новые и восстанавливает состояния затронутых пунктов графика. Ссылка на чек при обычном редактировании сохраняется.

Недельный экран получает записи из SQLite, раскладывает пересекающиеся интервалы по параллельным дорожкам и показывает дневные часы, начисления и ожидаемые выплаты. Запущенные таймеры отображаются с текущим временем окончания, не требуя сети.

Source