Connecting both pods is the configuration in which the `−` pod stops reporting its own paddle (§2.3.1). `Cmd::Seen` has always known that and declined; an explicit `Cmd::Connect` walked straight past it, and housekeeping then closed the redundant link a second or so later — which looks like the app handling the case and is not the same thing. On the tablet, 2026-08-27 15:55:39, the pair was joined for 1.4 s and the `−` pod did not report another press for the rest of the session, across two fresh links and an app reinstall. So the rule now lives on both paths. `auto` is still armed by the refused request, so the fallback stands: the moment the `−` pod goes away, the `+` pod is taken on its next advertisement. And the UI stops offering the trap. The `+` pod's "Connect anyway" sat next to a working controller, which put the one action that breaks shifting a single tap from a rider hunting for a way to fix shifting. It now reads "Held in reserve", which is what that pod is. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
52 lines
1.3 KiB
JSON
52 lines
1.3 KiB
JSON
{
|
|
"$schema": "https://schema.tauri.app/config/2",
|
|
"productName": "BikeControl",
|
|
"version": "0.2.5",
|
|
"identifier": "paris.tourolle.bikecontrol",
|
|
"build": {
|
|
"frontendDist": "../ui/dist",
|
|
"devUrl": "http://localhost:1420",
|
|
"beforeDevCommand": {
|
|
"cwd": "../ui",
|
|
"script": "npm run dev"
|
|
},
|
|
"beforeBuildCommand": {
|
|
"cwd": "../ui",
|
|
"script": "npm run build"
|
|
}
|
|
},
|
|
"app": {
|
|
"windows": [
|
|
{
|
|
"title": "BikeControl",
|
|
"width": 1440,
|
|
"height": 900,
|
|
"minWidth": 960,
|
|
"minHeight": 640,
|
|
"resizable": true,
|
|
"fullscreen": false,
|
|
"backgroundColor": "#07090d"
|
|
}
|
|
],
|
|
"security": {
|
|
"csp": "default-src 'self'; style-src 'self' 'unsafe-inline'; img-src 'self' data:; connect-src ipc: http://ipc.localhost"
|
|
}
|
|
},
|
|
"bundle": {
|
|
"active": true,
|
|
"targets": "all",
|
|
"icon": [
|
|
"icons/32x32.png",
|
|
"icons/128x128.png",
|
|
"icons/128x128@2x.png",
|
|
"icons/icon.png"
|
|
],
|
|
"category": "Utility",
|
|
"android": {
|
|
"versionCode": 1205
|
|
},
|
|
"shortDescription": "Indoor cycling trainer control",
|
|
"longDescription": "Control a smart trainer over BLE, ride gradient profiles and synthetic waveforms, and record the result."
|
|
}
|
|
}
|