• Joined on 2026-06-17
Nuller pushed to main at Nuller/SecretLink 2026-09-22 13:07:48 +00:00
afdc3c5a4c merge: feat/debug-timestamps — восстановление SECRETLINK_DEBUG-диагностики v2-транспорта
e7779d2628 feat(transport-v2): восстановить SECRETLINK_DEBUG-диагностику фаз connect/discovery (v1-функциональность, утерянная при bcc347e)
Compare 2 commits »
Nuller pushed to main at Nuller/SecretLink 2026-09-22 12:45:16 +00:00
0c89bf9271 merge: feat/cleanup3 — сплит request_secret.rs на модуль + удаление мёртвого поля identity
46028abe21 refactor(request_secret): сплит request_secret.rs (1258 строк) на модуль request_secret/ + удаление мёртвого ParsedPrivateIdentity.secret_der
Compare 2 commits »
Nuller pushed to main at Nuller/SecretLink 2026-09-22 11:48:52 +00:00
9d96611dca merge: feat/cli-split — сплит cli.rs на модуль cli/ (6 файлов)
5d1c32533d refactor(cli): сплит cli.rs (1861 строк) на модуль cli/ — {mod,parse,run,errors,help,tests}
Compare 2 commits »
Nuller pushed to main at Nuller/SecretLink 2026-09-21 21:05:41 +00:00
f31a63a6cc merge: feat/v2-followup2 — pair-repair-trust v2 + права state 0644 при root
5648b04430 feat(cli): pair-repair-trust на v2 wire + правильные права нового state
Compare 2 commits »
Nuller pushed to main at Nuller/SecretLink 2026-09-21 13:04:23 +00:00
cb849f1110 merge: feat/cleanup-v2 — чистка мёртвых v1-wire Kotlin модулей (−3127 строк)
88e61d74c5 chore(protocol): удалить мёртвые v1-wire Kotlin модули — PairingCoordinator/PairingControlWire/Handshake/HelloWire/AuthWire/RequestSessionContract/FrameDecoder/FrameEncoder (−2007 строк main) + их тесты (−1120); живые эфемерал-типы вынесены в EphemeralKeyPair.kt, EcdhP256 без HelloWire-зависимости; PairCommitContract/SecretRequestContract/crypto-примитивы/TranscriptHash остаются (живые потребители); JVM 90+393+64 green, APK a1ec7917
Compare 2 commits »
Nuller pushed to main at Nuller/SecretLink 2026-09-21 12:40:29 +00:00
7b827084f7 merge: feat/v2-followup — pairing v2 wire (команда pair, Rust+Kotlin), расщепление transport v2, сигнальный discovery, BUSY backoff
fd9841dd9e refactor(transport-v2)+perf: расщепление bluez_v2.rs (2225 строк) на transport/v2/{dbus,discovery,beacon,gatt,session,mod}; discovery/GATT-resolve — сигнальный D-Bus путь вместо поллинга (fallback-полл только при отсутствии подписки); BUSY retry — экспоненциальный backoff 250→500→1000мс cap вместо flat; CONNECT_CALL_MAX_TIMEOUT 5с сохранён; тесты 142+39+10 green, clippy clean, musl 2.58МБ (sha b5499907)
67d0941964 feat(protocol-v2): провайдер pairing на v2 wire — V2Pairing.kt (wrapper-фреймы, pairing-домен HKDF, pair-commit TLV), ProvisionalPairingController без JSON fallback, unknown-session SESSION_MSG не потребляется (pair-commit), pairing.json векторы консьюмятся; JVM 125+393+64 green, APK 661daf48
8d34936efc feat(protocol-v2): команда pair на v2 wire — pairing coordinator (wrapper-фреймы 0x05-0x08, verbatim-вложение), pairing-домен HKDF info (SecretLink/v2/pairing/…), pair_establish flow + pair-commit TLV, SAS-прогресс, UNPAIRED→PAIRED; test-vectors/v2/pairing.json; тесты 142+39+10 green, clippy clean, musl 2.58MB
Compare 4 commits »
Nuller pushed to main at Nuller/SecretLink 2026-09-21 10:31:31 +00:00
14c290c45b merge: feat/protocol-v2 — wire-протокол v2 (бинарная сессия, HKDF domain separation) + транспорт v2 + luks-agent возврат
ed11d7edd5 fix(provider-v2): авто-approve дренирует всю очередь — drainAutoApproveQueue (MAX 16), Cancelled/Error останавливает цикл; второй параллельный запрос больше не висит до slot-timeout
d1cac476f3 feat(protocol-v2): провайдер request-session на v2 wire — TrustedSecretRequestSessionController/SecretRequestController мигрированы, NACK/BUSY-TTL/demux/replay port, peek без v1 fallback; pairing остаётся v1
f52429910a fix(transport-v2): GATT-серверная утечка — Error-путь runtime рвал ссылку без stop(); SessionCoordinator (1 close на open), idempotent stop, RX принимает command-write
e79289aab5 fix(transport-v2): write-with-response на RX (провайдер отклоняет write-command; v1 так же писал type=request)
Compare 17 commits »
Nuller pushed to main at Nuller/SecretLink 2026-09-20 20:04:06 +00:00
bcc347e35a refactor(ble)!: снести BLE-реализацию v1 (Linux BlueZ + Android GATT)
Nuller pushed to main at Nuller/SecretLink 2026-09-20 19:49:30 +00:00
9d555e557b docs: конспект опыта BLE v1 перед перезапуском слоя
Nuller pushed to main at Nuller/SecretLink 2026-09-20 17:54:15 +00:00
dac93b240a fix(discovery): stale-RPA guard — не выбирать объект без свежего кадра до первой рекламы
Nuller pushed to main at Nuller/SecretLink 2026-09-20 17:34:31 +00:00
44b3ee96e1 fix(bluez): вернуть поведение 16-го — Disconnect без RemoveDevice
Nuller pushed to main at Nuller/SecretLink 2026-09-20 16:54:12 +00:00
e7a690d405 fix(bluez): Connect-кап 5с→10с — cold-only делает каждый коннект первым
Nuller pushed to main at Nuller/SecretLink 2026-09-20 16:41:53 +00:00
660b673aea feat(cold-only): убрать тёплые соединения и память об устройстве — решение Романа
Nuller pushed to main at Nuller/SecretLink 2026-09-19 19:55:34 +00:00
91c371e134 perf(retry): плоский sub-second pacing для transient-гонок вместо эскалирующей лестницы
Nuller pushed to main at Nuller/SecretLink 2026-09-19 18:15:19 +00:00
d343ce4adf fix(bluez): живой Connected-линк ранжируется выше свежей рекламы — Connect к новому RPA рвал общий ACL
Nuller deleted branch feat/warm-link from Nuller/SecretLink 2026-09-19 17:38:10 +00:00
Nuller pushed to main at Nuller/SecretLink 2026-09-19 17:38:05 +00:00
df0391de99 Merge feat/warm-link: параллельные запросы + тёплый линк
320f88ebb3 fix(request-secret): NackBeforeAuth больше не исключает путь устройства — иначе дедлок 'provider link busy'
1cfa99e49a fix(bluez): адоптация warm-линка при ЛЮБОМ отказе Connect (вкл. таймаут) — таймаут-Disconnect больше не рвёт линк соседа
6a327309a4 fix(bluez): после busy-Connect (abort-by-local/InProgress) — адоптация живого warm-линка вместо сжигания попытки
e7961ebaea fix(bluez): abort-by-local/canceled = busy-transient (jittered) — расшивает lockstep-коллизии параллельных Connect
Compare 12 commits »
Nuller pushed to feat/warm-link at Nuller/SecretLink 2026-09-19 17:35:56 +00:00
320f88ebb3 fix(request-secret): NackBeforeAuth больше не исключает путь устройства — иначе дедлок 'provider link busy'
Nuller pushed to feat/warm-link at Nuller/SecretLink 2026-09-19 17:21:46 +00:00
1cfa99e49a fix(bluez): адоптация warm-линка при ЛЮБОМ отказе Connect (вкл. таймаут) — таймаут-Disconnect больше не рвёт линк соседа
Nuller pushed to feat/warm-link at Nuller/SecretLink 2026-09-18 21:04:59 +00:00
6a327309a4 fix(bluez): после busy-Connect (abort-by-local/InProgress) — адоптация живого warm-линка вместо сжигания попытки