Skip to content

ADR 001: Shared implementation, isolated frontend state

Status: Accepted

EasyBar and EasyBar Native share implementation through easybar-kit, but they are distinct products. Each frontend owns its application identity, presentation policy, config path, runtime directory, package state, logs, control socket, and command name.

Shared behavior belongs in a narrow EasyBarKit target. A frontend may supply defaults or presentation policy, but must not copy Lua parsing, package validation, rendering, IPC, or helper-process logic.

This preserves one implementation of portable widget behavior while preventing a package update, reload, or configuration change in one frontend from mutating the other frontend's state.