test: export adaptive calibration probe knobs
This commit is contained in:
parent
3b6c049a73
commit
37ea941750
14
AGENTS.md
14
AGENTS.md
@ -448,3 +448,17 @@ confirmation segments do not mutate it, and adaptive runs fail unless confirmati
|
|||||||
- [x] Update manual probe contract tests for calibrate-then-confirm behavior.
|
- [x] Update manual probe contract tests for calibrate-then-confirm behavior.
|
||||||
- [x] Run shell syntax checks, focused contract tests, and package checks.
|
- [x] Run shell syntax checks, focused contract tests, and package checks.
|
||||||
- [x] Push clean semver `0.17.21` for installed client/server testing.
|
- [x] Push clean semver `0.17.21` for installed client/server testing.
|
||||||
|
|
||||||
|
## 0.17.22 Adaptive Calibration Export Fix Checklist
|
||||||
|
|
||||||
|
Context: the 0.17.21 run proved the calibrate-then-confirm shape worked, but no calibration
|
||||||
|
was actually applied. The calibration decision printed usable provisional recommendations, then
|
||||||
|
reported `provisional_calibration_enabled=false` and left the active offset unchanged. Root cause:
|
||||||
|
the Bash defaults were shell variables, while the embedded Python decision helper reads environment
|
||||||
|
variables via `os.environ`.
|
||||||
|
|
||||||
|
- [x] Treat the 0.17.21 run as confirmation that the probe shape works but calibration was disabled by script plumbing.
|
||||||
|
- [x] Export adaptive/provisional/raw-failure/confirmation knobs after defaulting them.
|
||||||
|
- [x] Add contract coverage so provisional calibration defaults cannot silently stop reaching the Python decision helper.
|
||||||
|
- [x] Run shell syntax checks, focused contract tests, and package checks.
|
||||||
|
- [x] Push clean semver `0.17.22` for installed client/server testing.
|
||||||
|
|||||||
6
Cargo.lock
generated
6
Cargo.lock
generated
@ -1652,7 +1652,7 @@ checksum = "09edd9e8b54e49e587e4f6295a7d29c3ea94d469cb40ab8ca70b288248a81db2"
|
|||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "lesavka_client"
|
name = "lesavka_client"
|
||||||
version = "0.17.21"
|
version = "0.17.22"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"anyhow",
|
"anyhow",
|
||||||
"async-stream",
|
"async-stream",
|
||||||
@ -1686,7 +1686,7 @@ dependencies = [
|
|||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "lesavka_common"
|
name = "lesavka_common"
|
||||||
version = "0.17.21"
|
version = "0.17.22"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"anyhow",
|
"anyhow",
|
||||||
"base64",
|
"base64",
|
||||||
@ -1698,7 +1698,7 @@ dependencies = [
|
|||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "lesavka_server"
|
name = "lesavka_server"
|
||||||
version = "0.17.21"
|
version = "0.17.22"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"anyhow",
|
"anyhow",
|
||||||
"base64",
|
"base64",
|
||||||
|
|||||||
@ -4,7 +4,7 @@ path = "src/main.rs"
|
|||||||
|
|
||||||
[package]
|
[package]
|
||||||
name = "lesavka_client"
|
name = "lesavka_client"
|
||||||
version = "0.17.21"
|
version = "0.17.22"
|
||||||
edition = "2024"
|
edition = "2024"
|
||||||
|
|
||||||
[dependencies]
|
[dependencies]
|
||||||
|
|||||||
@ -1,6 +1,6 @@
|
|||||||
[package]
|
[package]
|
||||||
name = "lesavka_common"
|
name = "lesavka_common"
|
||||||
version = "0.17.21"
|
version = "0.17.22"
|
||||||
edition = "2024"
|
edition = "2024"
|
||||||
build = "build.rs"
|
build = "build.rs"
|
||||||
|
|
||||||
|
|||||||
@ -79,6 +79,18 @@ if ! [[ "${LESAVKA_SYNC_CONFIRMATION_SEGMENTS}" =~ ^[0-9]+$ ]]; then
|
|||||||
exit 2
|
exit 2
|
||||||
fi
|
fi
|
||||||
LESAVKA_SYNC_TOTAL_SEGMENTS=$((LESAVKA_SYNC_CALIBRATION_SEGMENTS + LESAVKA_SYNC_CONFIRMATION_SEGMENTS))
|
LESAVKA_SYNC_TOTAL_SEGMENTS=$((LESAVKA_SYNC_CALIBRATION_SEGMENTS + LESAVKA_SYNC_CONFIRMATION_SEGMENTS))
|
||||||
|
export LESAVKA_SYNC_ADAPTIVE_CALIBRATION
|
||||||
|
export LESAVKA_SYNC_PROVISIONAL_CALIBRATION
|
||||||
|
export LESAVKA_SYNC_PROVISIONAL_MIN_PAIRS
|
||||||
|
export LESAVKA_SYNC_PROVISIONAL_MAX_P95_MS
|
||||||
|
export LESAVKA_SYNC_PROVISIONAL_MAX_DRIFT_MS
|
||||||
|
export LESAVKA_SYNC_PROVISIONAL_GAIN
|
||||||
|
export LESAVKA_SYNC_PROVISIONAL_MAX_STEP_US
|
||||||
|
export LESAVKA_SYNC_RAW_FAILURE_CALIBRATION
|
||||||
|
export LESAVKA_SYNC_RAW_FAILURE_MAX_ABS_DELTA_MS
|
||||||
|
export LESAVKA_SYNC_CONFIRM_AFTER_CALIBRATION
|
||||||
|
export LESAVKA_SYNC_CONFIRMATION_SEGMENTS
|
||||||
|
export LESAVKA_SYNC_REQUIRE_CONFIRMATION_PASS
|
||||||
|
|
||||||
cleanup() {
|
cleanup() {
|
||||||
set +e
|
set +e
|
||||||
|
|||||||
@ -10,7 +10,7 @@ bench = false
|
|||||||
|
|
||||||
[package]
|
[package]
|
||||||
name = "lesavka_server"
|
name = "lesavka_server"
|
||||||
version = "0.17.21"
|
version = "0.17.22"
|
||||||
edition = "2024"
|
edition = "2024"
|
||||||
autobins = false
|
autobins = false
|
||||||
|
|
||||||
|
|||||||
@ -140,6 +140,8 @@ fn mirrored_sync_script_uses_real_client_capture_path() {
|
|||||||
"LESAVKA_SYNC_REQUIRE_CONFIRMATION_PASS=${LESAVKA_SYNC_REQUIRE_CONFIRMATION_PASS:-${LESAVKA_SYNC_CONFIRM_AFTER_CALIBRATION}}",
|
"LESAVKA_SYNC_REQUIRE_CONFIRMATION_PASS=${LESAVKA_SYNC_REQUIRE_CONFIRMATION_PASS:-${LESAVKA_SYNC_CONFIRM_AFTER_CALIBRATION}}",
|
||||||
"LESAVKA_SYNC_CONFIRMATION_SEGMENTS must be a non-negative integer",
|
"LESAVKA_SYNC_CONFIRMATION_SEGMENTS must be a non-negative integer",
|
||||||
"LESAVKA_SYNC_TOTAL_SEGMENTS=$((LESAVKA_SYNC_CALIBRATION_SEGMENTS + LESAVKA_SYNC_CONFIRMATION_SEGMENTS))",
|
"LESAVKA_SYNC_TOTAL_SEGMENTS=$((LESAVKA_SYNC_CALIBRATION_SEGMENTS + LESAVKA_SYNC_CONFIRMATION_SEGMENTS))",
|
||||||
|
"export LESAVKA_SYNC_PROVISIONAL_CALIBRATION",
|
||||||
|
"export LESAVKA_SYNC_RAW_FAILURE_CALIBRATION",
|
||||||
"LESAVKA_SYNC_ADAPTIVE_CALIBRATION",
|
"LESAVKA_SYNC_ADAPTIVE_CALIBRATION",
|
||||||
"LESAVKA_SYNC_CALIBRATION_SEGMENTS=4",
|
"LESAVKA_SYNC_CALIBRATION_SEGMENTS=4",
|
||||||
"browser_consumer_reuse_session=${reuse_browser_session}",
|
"browser_consumer_reuse_session=${reuse_browser_session}",
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user