Repository navigation
fix: harden Lua actor, relay, tool-round and runner behavior - #165
Merged
Merged
Conversation
skhaz
marked this pull request as draft
October 7, 2026 15:20
…runner - actor: update select cases in place, so channels registered after a handler catches an error are still selected - agent: honor runtime_options.stop_check before provider generation - tools: clear wrapper diagnostics and last tool calls on empty rounds - relay: count a repeated JOIN once, so the last LEAVE stops the session plugin - test runner: fail an error result hidden by a valid plan and reject a replaced plan - relay benchmark: bound pipeline identity slots by the window - README: state that wippy/session does not consume behavior proposals Adds runtime regression tests for each fix and edge-case coverage for buffered actor channels, relay recovery after rejected input, and paired tool controls.
Validated commands skip the type checks, the plugin prefix scan, and the topic substring on later messages. The cache holds at most 64 routes and is not part of the upgrade state. JSON payloads are decoded without a redundant string conversion. Relay roundtrip at size 256 against the original baseline, five matched rounds: median -5.0% to -6.8%, p95 -4.0% to -6.4%, allocations/op -7.7% to -8.1%.
Keep actor, relay, tool-round and runner fixes; remove the unpublished benchmark API and workloads. Merge current master without changing its teardown semantics. Require explicit live-test opt-in and exercise the actual Lua flag expressions and runner teardown in CI.
Cover valid, inflated and undercounted restored counters without changing upgrade payloads. Align the verification harness with CI’s Go 1.26 baseline; the same race and vet checks pass on Go 1.26.5.
Merged
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Fixes
stop_checkimmediately before provider generation. A committed Stop returns{ stopped = true }without a provider request.trueopt-in across provider suites;false,0and other strings must not enable calls.Scope and compatibility
The unpublished benchmark API, workload entries, environment settings and reporting/GC machinery have been removed from this PR. Their original implementation remains recoverable from commit
ab8c45a995149b3542f72b706625b85f42c7fc3b.Existing tool IDs, payloads and stored upgrade shapes are unchanged.
stop_checkis optional. Normal empty/skip-only test suites remain allowed;WIPPY_TEST_REQUIRE_CASES=1is an explicit CI opt-in. Duplicate JOIN accounting, malformed relay inputs and invalid test results intentionally stop preserving their buggy behavior.Current master was merged without rewriting the existing PR history. The published #172 runner teardown implementation is retained. The optional behavior-proposal documentation describes the host contract without assuming which application versions consume it.
Verification
Against verified runtime 0.3.47a / stable go-lua 1.6.5:
make test-runtimecases pass on both 0.3.47a and the installed older 0.3.42a.-race, andgo vetpasses. It checks teardown-before-next-entry and unchanged explicit suite-deadline semantics.fb43c36ea1b75e017c0fd44573363beb40dace01has 24 successful checks.The initial broad run reached live-provider suites because older switches treated the string
falseas enabled; it was interrupted. The final rerun had all live opt-ins unset. No new live-provider compatibility or performance-improvement claim is made.Related follow-ups
Session #61 consumes
stop_check. Framework #176 is separate connected-client isolation work; its guard must be retained before the JSON decode when resolving the small relay overlap with this PR.No merge, publication or deployment.