docs: add publish plan and decision log

PLAN.md: 5-phase plan to publish as a multi-protocol headset tool
(rename away from Corsair trademark, abstract device layer, port
additional protocols, publish, upstream to HeadsetControl).

DECISIONS.md: rationale for GPLv3 relicense, naming constraints, and
the multi-protocol architecture.
This commit is contained in:
2026-06-10 16:26:28 +02:00
parent 914ddf114e
commit c38996b8a4
2 changed files with 171 additions and 0 deletions
+19
View File
@@ -0,0 +1,19 @@
# Decisions
## 2026-04-09 License: GPLv3 instead of MIT
- **Who**: Dom, F.R.I.D.A.Y.
- **Why**: Plan to support multiple headset protocols using HeadsetControl (GPLv3) as reference for protocol implementations. HeadsetControl's code is community-tested — reimplementing blind without hardware to test against is impractical. GPL copyleft is acceptable since the tool is open source on GitHub anyway.
- **Tradeoffs**: MIT would allow proprietary use, but we gain access to tested protocol implementations. GPL has no practical downside for a CLI tool distributed as source.
- **How**: GPLv3-or-later in Cargo.toml and LICENSE file.
## 2026-04-09 Tool name: must avoid "Corsair" trademark
- **Who**: Dom, F.R.I.D.A.Y.
- **Why**: "Corsair" is a registered trademark. Publishing under `corsairctl` risks trademark issues. "Bragi" is also risky (Bragi GmbH, Danish audio company).
- **Tradeoffs**: `headsetctl` is descriptive and follows Linux naming conventions (`bluetoothctl`, `brightnessctl`). Less specific but safer.
- **How**: Rename TBD — to be decided as part of the publish plan.
## 2026-04-09 Multi-protocol architecture using HeadsetControl as reference
- **Who**: Dom, F.R.I.D.A.Y.
- **Why**: Each headset vendor uses a proprietary HID protocol. No common standard exists. HeadsetControl already has tested implementations for SteelSeries, Logitech, HyperX, Corsair, etc.
- **Tradeoffs**: Porting C code to Rust takes effort, but the protocol logic is the hard part (byte sequences, timing, quirks) — and that's already documented in HeadsetControl's source.
- **How**: Modular backend architecture — each protocol as a separate module behind a common trait. Bragi is the first backend; others follow.