Skip to content

UCAAS-1486: outbound operation block policy and session subscription - #148

Merged
JanFellner merged 5 commits into
mainfrom
feature/UCAAS-1486-session-subscription
Aug 26, 2026
Merged

UCAAS-1486: outbound operation block policy and session subscription#148
JanFellner merged 5 commits into
mainfrom
feature/UCAAS-1486-session-subscription

Conversation

@JanFellner

Copy link
Copy Markdown
Contributor

Summary

Unified outbound operation blocking and per-session ROSE subscription across C++ runtime, TypeScript glue, and tests (UCAAS-1486).

  • Policy API: SnaccOperationBlockPolicy / OperationBlockPolicy with NeverBlock and BlockUnsupportedOperations
  • Early gate: IsOperationBlocked / CompleteIfOperationBlocked on send paths before encode; blocked ops return ROSE_REJECT_REMOTENOTCAPABLE with telemetry, nothing on the wire
  • Shutdown parity: CompleteIfProcessingShutdown / completeIfProcessingShutdown for pauseRoseProcessing
  • Session subscription: ISnaccRoseSessionSubscription on SnaccROSESender, forwarded by SnaccROSEComponent; TS RoseSessionSubscriptionStore
  • Header hygiene: assert defaults moved to SnaccROSEInterfaces.cpp (no snacc-assert.h in public headers)
  • Version: 7.0.16, RELDATE 25.08.2026

Test plan

  • C++ cpp-lib-sample-runtime-tests (164 tests)
  • TS glue tests via scripts/run_gluecode_tests.bat
  • CI matrix on merge

Made-with: Cursor

JanFellner and others added 5 commits August 21, 2026 12:20
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
@JanFellner
JanFellner merged commit 3638a77 into main Aug 26, 2026
5 checks passed
@JanFellner
JanFellner deleted the feature/UCAAS-1486-session-subscription branch August 26, 2026 08:36
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.

1 participant