domain/ DeviceId, ChannelId, ChannelSecret, Message
protocol/ wire DTOs, codecs, client, transports
persistence/ HistoryStore, SettingsStore, migrations
app/ DeviceSession and application workflows
ui/models/ QAbstractListModel adapters
ui/ widgets and delegates
The
modeldirectory combines domain values, SQLite persistence and Qt presentation models.CompanionClientimports those model types, andChannelrepresents both a live secret-bearingchannel and a secret-free cached one.
Target layout:
Tasks:
DeviceId,ChannelId,ChannelSecretandChannelSlotvalue typesinstead of interchangeable
QByteArrayandintparameters.Historyinto persistence and the Qt list models under presentation.boundary.