UCAAS-1486: outbound operation block policy and session subscription - #148
Merged
Conversation
Rename RemoteCapabilityMode to SnaccClientInvokeBlockPolicy with NeverBlock and BlockUnsupportedOperations. Rename ApplyRemoteModuleCapabilities to SetRemoteModuleCapabilities. Keep C++ runtime and TypeScript gluecode aligned. Co-authored-by: Cursor <cursoragent@cursor.com>
Expose optional per-session event/invoke subscription virtuals on SnaccROSESender with permissive defaults, forward them from SnaccROSEComponent, and bump to 7.0.16. Made-with: Cursor
…ription Align C++ and TypeScript ROSE runtime on a single early gate before encode/send: - SnaccOperationBlockPolicy / OperationBlockPolicy (NeverBlock, BlockUnsupportedOperations) - IsOperationBlocked / isOperationBlocked with negotiate snapshot and session subscription paths - CompleteIfOperationBlocked / completeIfOperationBlocked (ROSE_REJECT_REMOTENOTCAPABLE + telemetry, nothing on wire) - CompleteIfProcessingShutdown / completeIfProcessingShutdown for pauseRoseProcessing parity - ISnaccRoseSessionSubscription on SnaccROSESender with SnaccROSEComponent forwards - Move assert-bearing interface defaults to SnaccROSEInterfaces.cpp (no snacc-assert.h in public headers) - TS glue: RoseSessionSubscriptionStore, server/client gates, glue tests and NODE_PATH fix - C++ tests: client/server invoke block policy, session subscription - Refresh RELDATE to 25.08.2026 (version 7.0.16) Made-with: Cursor
TSROSEBase imports IRoseSessionSubscription.js but the compiler only embedded TSROSEBase.ts into generated stubs, so snacc-ts-all failed tsc on CI. Embed and emit IRoseSessionSubscription.ts and RoseSessionSubscriptionStore.ts alongside the other glue resources (Windows .rc + Linux incbin). Made-with: Cursor
Made-with: Cursor
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.
Summary
Unified outbound operation blocking and per-session ROSE subscription across C++ runtime, TypeScript glue, and tests (UCAAS-1486).
SnaccOperationBlockPolicy/OperationBlockPolicywithNeverBlockandBlockUnsupportedOperationsIsOperationBlocked/CompleteIfOperationBlockedon send paths before encode; blocked ops returnROSE_REJECT_REMOTENOTCAPABLEwith telemetry, nothing on the wireCompleteIfProcessingShutdown/completeIfProcessingShutdownforpauseRoseProcessingISnaccRoseSessionSubscriptiononSnaccROSESender, forwarded bySnaccROSEComponent; TSRoseSessionSubscriptionStoreSnaccROSEInterfaces.cpp(nosnacc-assert.hin public headers)Test plan
cpp-lib-sample-runtime-tests(164 tests)scripts/run_gluecode_tests.batMade-with: Cursor