Skip to content

Make benchmark timeout diagnostics passive - #226

Merged
deverman merged 1 commit into
masterfrom
perf/222-passive-timeout-diagnostics
Oct 28, 2026
Merged

deverman merged 1 commit into
masterfrom
perf/222-passive-timeout-diagnostics

Conversation

@deverman

Copy link
Copy Markdown
Owner

Summary

  • capture timeout queue and process state immediately, before passive cooldown
  • remove active Bridge health diagnostics and the hidden recovery-delay environment behavior
  • replace split cooldown/recovery waits with explicit 13-second smoke/stress defaults and 15-second release waits
  • preserve production transport, query behavior, BridgeClient recovery, and the 45-second deadline

Closes #222

Acceptance journey

A release benchmark timeout immediately records the untouched IPC queue/process state, waits 15 seconds without sending diagnostic Bridge requests, and leaves enough metadata to distinguish a late response from a stranded request.

Validation impact

performance

Validation

  • swift test
  • bash -n scripts/benchmark-suite.sh
  • git diff --check origin/master...HEAD
  • swift run focusrelay-dev validate --impact performance in a clean live session
  • smoke profile
  • release retry only if smoke is clean

The branch is intentionally draft until live validation completes. Current master includes the Forecast production change from #224, so any eventual release evidence applies to that newer production fingerprint, not the August candidate.

@deverman

Copy link
Copy Markdown
Owner Author

Local validation after rebasing onto current master (77995e9):

  • swift test: passed, including the passive timeout artifact contract and the new Forecast suites
  • bash -n scripts/benchmark-suite.sh: passed
  • git diff --check origin/master...HEAD: passed
  • branch is clean and synchronized with origin/perf/222-passive-timeout-diagnostics

Live performance validation and smoke are intentionally pending. The machine currently has a persistent unrelated appstoreagent workload at ~86% CPU, and pmset -g batt reports the battery discharging despite AC power. Starting the benchmark under those conditions would violate #222’s clean-session acceptance criteria. No plugin install/restart or benchmark was started.

@deverman

Copy link
Copy Markdown
Owner Author

Validation update for commit eb7525d:

  • swift run focusrelay-dev validate --impact performance: passed, including the passive timeout-artifact contract and live semantic gates.
  • Smoke profile: passed at .build/benchmarks/smoke-20261018-011342; 255/255 measured calls succeeded, 0 errors, 0 timeouts, and all timeout diagnostic files were empty.
  • One release retry under caffeinate: passed at .build/benchmarks/release-20261018-121937; 745/745 measured calls succeeded, 0 errors, 0 timeouts, complete scenario coverage, and the suite evidence checker passed.
    • task counts p95: 3294.82 ms
    • list tasks slowest scenario p95: 14485.43 ms
    • project counts p95: 15067.01 ms
  • Branch is based on current origin/master (77995e9), is one commit ahead, working tree clean, and CI is green.

Release blocker: the formal production fingerprint changed from 31c87ccc228cbb31f2690e27a46d763c4c98d67d49118c559206315dd0af69a2 on origin/master to 43fff751265435eb4e7e2814c6f8ef5c1c7e4368a89e337bac546b3ac14dfabb on this branch. The plugin is unchanged, but the benchmark files are under the shipped FocusRelayCLI target and the fingerprint includes all of Sources. Per the go/no-go rule, this candidate is not being marked release-ready and the PR remains draft.

@deverman
deverman force-pushed the perf/222-passive-timeout-diagnostics branch from eb7525d to 76d05df Compare October 28, 2026 03:05
@deverman

Copy link
Copy Markdown
Owner Author

Release decision update:

The production fingerprint change is explicitly accepted. It is caused by passive benchmark tooling living in the shipped FocusRelayCLI target; the Bridge plugin, transport behavior, 45-second deadline, and recovery branches are unchanged.

The branch was rebased onto current master at 52a14f0. That intervening commit changes registry packaging/docs only and leaves the validated production fingerprint inputs unchanged. Rebased candidate: 76d05df.

Validation retained:

  • performance validation passed
  • smoke passed with 255/255 successful measured calls
  • release profile passed with 745/745 successful measured calls and zero timeouts
  • full swift test passed again after rebase

The earlier fingerprint blocker is closed by explicit owner acceptance. No tag, merge, or publication is implied by this decision.

@deverman
deverman marked this pull request as ready for review October 28, 2026 03:09
@deverman
deverman merged commit c7cb984 into master Oct 28, 2026
4 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Make benchmark timeout diagnostics passive before v0.13 retry

1 participant