Skip to content

Move the root namespace from IO.Ably to Ably.PubSub - #1342

Merged
sacOO7 merged 4 commits into
integration/v2from
integration/namespace-ably-pubsub
Sep 29, 2026
Merged

sacOO7 merged 4 commits into
integration/v2from
integration/namespace-ably-pubsub

Conversation

@sacOO7

@sacOO7 sacOO7 commented Sep 24, 2026 •

Copy link
Copy Markdown
Contributor

What this PR does

Moves the 2.0 root code namespace from IO.Ably to Ably.PubSub. Originally stacked on the REST-to-HTTP rename PR (#1341, since merged); the branch now carries four commits:

  1. 047dc155 — the mechanical namespace move itself (the bulk of the diff; described below).
  2. 427584c8 — a sync merge bringing in the rename branch's typo-fix commit.
  3. 46afcd30 — restores three code comments the mechanical move over-renamed (the signing-key mentions in both core AssemblyInfo files, and IoC.cs's historical note — the key file is genuinely still IO.Ably.snk, and the assembly history is a rename from IO.Ably to Ably.PubSub.Core); raised by the Copilot review.
  4. 6436a5d4 — regenerates the committed Unity plugin from this branch's sources and fixes the ILRepack internalize-exclude pattern that still named the old door namespace (see the Update note at the bottom).

Why

v1/v2 transitive coexistence. The released ably.io 1.x package owns IO.Ably.* forever. Before this change, 2.0 redefined the same fully-qualified names — 148 public types collided — so any dependency graph containing both packages (an app on 2.0 with a library dependency still on ably.io 1.x) failed with CS0433 in the app's own code, escapable only with viral extern alias gymnastics; our own docs called a mixed graph "unsupported". With v2 under Ably.PubSub.*, the two packages share zero type names: a mixed graph compiles side-by-side and a not-yet-migrated dependency no longer blocks an app's migration.

.NET naming alignment. The Framework Design Guidelines' <Company>.<Product> form; namespace, assembly names (Ably.PubSub.Core/Device/Server) and package ids now all agree.

Family precedent. Each SDK made the same move in its own idiom:

The mapping

Old New
IO.Ably (root) Ably.PubSub
IO.Ably.Realtime, IO.Ably.Push, IO.Ably.Transport, IO.Ably.Types, IO.Ably.Encryption, IO.Ably.MessageEncoders, IO.Ably.CustomSerialisers, ... one-to-one under Ably.PubSub.*
IO.Ably.Rest Ably.PubSub.Http (completes the REST-to-HTTP rename for the moved channel types; mirrors java's io.ably.lib.rest → io.ably.pubsub.http)
IO.Ably.PubSub.Device / IO.Ably.PubSub.Server (doors) Ably.PubSub.Device / Ably.PubSub.Server — each door's namespace now equals its assembly and package name
test namespaces same map; the Tests.Rest segments become Tests.Http, matching their folders

359 namespace declarations, every using directive (src, tests, unity, examples) and the 7 RootNamespace/Import_RootNamespace project hints move together.

Two string literals reviewers should check

Namespace strings hide in two places that fail silently rather than at compile time:

  1. IoC.cs resolves the platform head by name: asm.GetType("Ably.PubSub.Platform"). If this string drifted, every platform service would silently degrade to its fallback. It is now pinned by a new spec, AgentTests.IoC_ResolvesThePlatformClass (asserts IoC.PlatformId is not Other), alongside the existing PlatformRuntime_ShouldDetectCorrectRuntime, which asserts the exact runtime and would also fail on a bad lookup.
  2. The (skipped, #if MSGPACK) MsgPack serializer-generator test's Namespace/OutputDirectory configuration; its orphaned generated-output directory src/IO.Ably/ is renamed src/Ably.PubSub/ so the configured path stays real.

Everything else that still says IO.Ably is deliberate: the IO.Ably.snk/IO.Ably.ruleset tool filenames, the IO.Ably.DeltaCodec submodule references, historical CHANGELOG entries, and 1.x-facing migration prose where IO.Ably correctly names the old API.

What this does NOT fix

Coexistence now compiles; it is still not desirable. Two SDKs in one process means two realtime connections and two token flows, and v1 clients carry no device/server classification, so they receive the 1.x billing treatment. UPDATING.md's new "New root namespace" section plus the rewritten coexistence guidance steer migrating graphs off ably.io — now as advice rather than under compile-error duress. A library's v1 types are also distinct from v2 types at the API boundary, so values crossing it must be converted explicitly.

Deliberately unchanged

Assembly names, package ids and every InternalsVisibleTo grant (all name assembly identities, which do not change); the wire agent identifiers (ably-pubsub-dotnet, ably-pubsub-device, ably-pubsub-server) and the Ably-Agent key, byte-identical; Unity's link.xml (assembly-scoped).

Validation

  • ./build.sh --target=Build.NetStandard (Release, StyleCop-as-error): 0 warnings / 0 errors
  • ./build.sh --target=Build.NetFramework under mono: green (the net46 heads compile the moved shared sources; the RootNamespace hint changes ride along)
  • Package-mode signed builds (Package=True + PACKAGE) of the core and both doors: clean — InternalsVisibleTo proven unaffected
  • Unit tests, net6.0 leg: 0 failures, including the new IoC_ResolvesThePlatformClass platform-resolution pin

Update: the Unity plugin regeneration originally deferred to the release pass has been done on this PR (see the regeneration commit); only the Windows-side release checks (sn -v strong-name verification, IL2CPP validation) remain release items. The regeneration also fixed the ILRepack internalize-exclude pattern that still named the old door namespace.

Mechanical namespace move for the 2.0 line. v1 (the released ably.io
package) keeps IO.Ably.*; v2 now lives entirely under Ably.PubSub.*, so
the two packages share no type names and a dependency graph containing
both compiles side-by-side - previously 148 public types collided,
making a mixed graph unbuildable without extern-alias gymnastics. The
new root also follows the .NET naming guidelines' Company.Product form
and agrees with the assembly names and package ids (Ably.PubSub.*), and
matches the family's intent (java io.ably.lib -> io.ably.pubsub, php
Ably\ -> Ably\PubSub\, python ably -> ably.pubsub) in the .NET-idiomatic
spelling.

The mapping: IO.Ably -> Ably.PubSub, sub-namespaces one-to-one
(IO.Ably.Realtime -> Ably.PubSub.Realtime, and so on), with two
deliberate exceptions - IO.Ably.Rest -> Ably.PubSub.Http (completing the
REST-to-HTTP rename for the moved channel types, mirroring java's
io.ably.lib.rest -> io.ably.pubsub.http) and the door namespaces
IO.Ably.PubSub.Device/Server -> Ably.PubSub.Device/Server (dropping the
vestigial IO. so each door's namespace equals its assembly and package
name). The test namespaces follow the same map, with the Tests.Rest
segments becoming Tests.Http to match their folders.

359 namespace declarations and every using directive across src, tests,
unity and examples move; the 7 RootNamespace/Import_RootNamespace hints
move with them (this supersedes the earlier decision that set those
hints to IO.Ably, which predates the namespace move). Two load-bearing
string literals are updated and pinned: IoC's platform lookup
asm.GetType("Ably.PubSub.Platform") - a silent runtime degradation if
missed, now guarded by the new AgentTests.IoC_ResolvesThePlatformClass
spec alongside the existing PlatformRuntime_ShouldDetectCorrectRuntime -
and the MsgPack serializer generator's Namespace/OutputDirectory
configuration (its orphaned generated-output directory src/IO.Ably is
renamed src/Ably.PubSub to keep the path real).

Unchanged on purpose: assembly names, package ids and every
InternalsVisibleTo grant (all name assembly identities); the wire agent
identifiers (ably-pubsub-dotnet, ably-pubsub-device, ably-pubsub-server)
and the Ably-Agent key, byte-identical; IO.Ably.snk / IO.Ably.ruleset
tool filenames and the IO.Ably.DeltaCodec submodule references; the
historical CHANGELOG entries and the 1.x-facing migration prose, where
IO.Ably correctly names the old API. Unity's link.xml is assembly-scoped
and untouched. UPDATING.md gains a "New root namespace" section - the
single biggest mechanical action for migrating 1.x code - and the
coexistence guidance in UPDATING.md and README.md is rewritten from
"both packages collide / unsupported" to "side-by-side compiles;
still migrate to avoid two connections and the 1.x billing treatment".
@coderabbitai

coderabbitai Bot commented Sep 24, 2026 •

Copy link
Copy Markdown

Important

Review skipped

Too many files!

This PR contains 395 files, which is 295 over the limit of 100.

To get a review, reduce the PR to 100 files or fewer by splitting it into smaller PRs or changing its base branch.

Upgrade to a paid plan to raise the limit.

Usage-priced reviews support at most 300 files.

⚙️ Run configuration

Configuration used: Organization UI

Review profile: CHILL

Plan: Advanced

Run ID: b4430fd1-4efd-43f5-84b5-9bff2f086c6a

📥 Commits

Reviewing files that changed from the base of the PR and between 8f1dfb3 and 6436a5d.

⛔ Files ignored due to path filters (1)
  • unity/Assets/Ably/Plugins/Ably.PubSub.Device.dll is excluded by !**/*.dll
📒 Files selected for processing (395)
  • CHANGELOG.md
  • CLAUDE.md
  • README.md
  • UPDATING.md
  • cake-build/unity-internalize-exclude.txt
  • examples/NotificationsPublisher/AppLogger.cs
  • examples/NotificationsPublisher/Program.cs
  • nuget/ably.pubsub.device.nuspec
  • nuget/ably.pubsub.server.nuspec
  • src/Ably.PubSub.Core.NETFramework/Ably.PubSub.Core.NETFramework.csproj
  • src/Ably.PubSub.Core.NETFramework/Platform.cs
  • src/Ably.PubSub.Core/Ably.PubSub.Core.csproj
  • src/Ably.PubSub.Core/Platform.cs
  • src/Ably.PubSub.Device/Ably.PubSub.Device.csproj
  • src/Ably.PubSub.Device/PubSubDevice.cs
  • src/Ably.PubSub.Server.NETFramework/Ably.PubSub.Server.NETFramework.csproj
  • src/Ably.PubSub.Server/Ably.PubSub.Server.csproj
  • src/Ably.PubSub.Server/PubSubServer.cs
  • src/Ably.PubSub.Shared.MsgPack/CustomSerialisers/CapabilityMessagePackSerializer.cs
  • src/Ably.PubSub.Shared.MsgPack/CustomSerialisers/DateTimeOffsetMessagePackSerializer.cs
  • src/Ably.PubSub.Shared.MsgPack/CustomSerialisers/GeneratedSerializers/IO_Ably_Auth_TokenDetailsSerializer.cs
  • src/Ably.PubSub.Shared.MsgPack/CustomSerialisers/GeneratedSerializers/IO_Ably_CapabilitySerializer.cs
  • src/Ably.PubSub.Shared.MsgPack/CustomSerialisers/GeneratedSerializers/IO_Ably_ConnectionDetailsMessageSerializer.cs
  • src/Ably.PubSub.Shared.MsgPack/CustomSerialisers/GeneratedSerializers/IO_Ably_ConnectionTypesSerializer.cs
  • src/Ably.PubSub.Shared.MsgPack/CustomSerialisers/GeneratedSerializers/IO_Ably_ErrorInfoSerializer.cs
  • src/Ably.PubSub.Shared.MsgPack/CustomSerialisers/GeneratedSerializers/IO_Ably_InboundMessageTrafficSerializer.cs
  • src/Ably.PubSub.Shared.MsgPack/CustomSerialisers/GeneratedSerializers/IO_Ably_MessageCountSerializer.cs
  • src/Ably.PubSub.Shared.MsgPack/CustomSerialisers/GeneratedSerializers/IO_Ably_MessageSerializer.cs
  • src/Ably.PubSub.Shared.MsgPack/CustomSerialisers/GeneratedSerializers/IO_Ably_MessageTypesSerializer.cs
  • src/Ably.PubSub.Shared.MsgPack/CustomSerialisers/GeneratedSerializers/IO_Ably_OutboundMessageTrafficSerializer.cs
  • src/Ably.PubSub.Shared.MsgPack/CustomSerialisers/GeneratedSerializers/IO_Ably_PresenceMessageSerializer.cs
  • src/Ably.PubSub.Shared.MsgPack/CustomSerialisers/GeneratedSerializers/IO_Ably_PresenceMessage_ActionTypeSerializer.cs
  • src/Ably.PubSub.Shared.MsgPack/CustomSerialisers/GeneratedSerializers/IO_Ably_RequestCountSerializer.cs
  • src/Ably.PubSub.Shared.MsgPack/CustomSerialisers/GeneratedSerializers/IO_Ably_ResourceCountSerializer.cs
  • src/Ably.PubSub.Shared.MsgPack/CustomSerialisers/GeneratedSerializers/IO_Ably_StatsSerializer.cs
  • src/Ably.PubSub.Shared.MsgPack/CustomSerialisers/GeneratedSerializers/IO_Ably_TokenRequestSerializer.cs
  • src/Ably.PubSub.Shared.MsgPack/CustomSerialisers/GeneratedSerializers/IO_Ably_Types_ProtocolMessageSerializer.cs
  • src/Ably.PubSub.Shared.MsgPack/CustomSerialisers/GeneratedSerializers/IO_Ably_Types_ProtocolMessage_MessageActionSerializer.cs
  • src/Ably.PubSub.Shared.MsgPack/CustomSerialisers/GeneratedSerializers/System_Net_HttpStatusCodeSerializer.cs
  • src/Ably.PubSub.Shared.MsgPack/CustomSerialisers/TimespanMessagePackSerializer.cs
  • src/Ably.PubSub.Shared.MsgPack/MsgPackHelper.cs
  • src/Ably.PubSub.Shared/Ably.PubSub.Shared.projitems
  • src/Ably.PubSub.Shared/AblyAuth.cs
  • src/Ably.PubSub.Shared/AblyException.cs
  • src/Ably.PubSub.Shared/AblyInsecureRequestException.cs
  • src/Ably.PubSub.Shared/Agent.cs
  • src/Ably.PubSub.Shared/ApiKey.cs
  • src/Ably.PubSub.Shared/AsyncHelper.cs
  • src/Ably.PubSub.Shared/AuthMethod.cs
  • src/Ably.PubSub.Shared/AuthOptions.cs
  • src/Ably.PubSub.Shared/Capability.cs
  • src/Ably.PubSub.Shared/CapabilityResource.cs
  • src/Ably.PubSub.Shared/CipherParams.cs
  • src/Ably.PubSub.Shared/ClientOptions.cs
  • src/Ably.PubSub.Shared/CustomSerialisers/CapabilityJsonConverter.cs
  • src/Ably.PubSub.Shared/CustomSerialisers/DateTimeOffsetJsonConverter.cs
  • src/Ably.PubSub.Shared/CustomSerialisers/MessageDataConverter.cs
  • src/Ably.PubSub.Shared/CustomSerialisers/MessageExtrasConverter.cs
  • src/Ably.PubSub.Shared/CustomSerialisers/TimeSpanJsonConverter.cs
  • src/Ably.PubSub.Shared/DataRequestQuery.cs
  • src/Ably.PubSub.Shared/DefaultLogger.cs
  • src/Ably.PubSub.Shared/DefaultLoggerSink.cs
  • src/Ably.PubSub.Shared/Defaults.cs
  • src/Ably.PubSub.Shared/Encryption/AesCipher.cs
  • src/Ably.PubSub.Shared/Encryption/Crypto.cs
  • src/Ably.PubSub.Shared/EventEmitter.cs
  • src/Ably.PubSub.Shared/Extensions/ChannelModeExtensions.cs
  • src/Ably.PubSub.Shared/Extensions/DateExtensions.cs
  • src/Ably.PubSub.Shared/Extensions/DictionaryExtensions.cs
  • src/Ably.PubSub.Shared/Extensions/EnumerableExtensions.cs
  • src/Ably.PubSub.Shared/Extensions/ObjectExtensions.cs
  • src/Ably.PubSub.Shared/Extensions/PresenceExtensions.cs
  • src/Ably.PubSub.Shared/Extensions/StringExtensions.cs
  • src/Ably.PubSub.Shared/Extensions/TaskExtensions.cs
  • src/Ably.PubSub.Shared/Extensions/UriExtensions.cs
  • src/Ably.PubSub.Shared/Http/AblyHttpOptions.cs
  • src/Ably.PubSub.Shared/Http/AblyHttpRequester.cs
  • src/Ably.PubSub.Shared/Http/AblyRequest.cs
  • src/Ably.PubSub.Shared/Http/AblyResponse.cs
  • src/Ably.PubSub.Shared/Http/ChannelDetails.cs
  • src/Ably.PubSub.Shared/Http/ChannelOptions.cs
  • src/Ably.PubSub.Shared/Http/HttpChannel.cs
  • src/Ably.PubSub.Shared/Http/HttpChannels.cs
  • src/Ably.PubSub.Shared/Http/IHttpChannel.cs
  • src/Ably.PubSub.Shared/HttpPaginatedResponse.cs
  • src/Ably.PubSub.Shared/HttpUtility.cs
  • src/Ably.PubSub.Shared/IAblyAuth.cs
  • src/Ably.PubSub.Shared/IAblyHttpRequester.cs
  • src/Ably.PubSub.Shared/IChannelCipher.cs
  • src/Ably.PubSub.Shared/IChannels.cs
  • src/Ably.PubSub.Shared/IInternalLogger.cs
  • src/Ably.PubSub.Shared/ILogger.cs
  • src/Ably.PubSub.Shared/ILoggerSink.cs
  • src/Ably.PubSub.Shared/IPlatform.cs
  • src/Ably.PubSub.Shared/IPubSubHttpClient.cs
  • src/Ably.PubSub.Shared/IPubSubRealtimeClient.cs
  • src/Ably.PubSub.Shared/InternalLogger.cs
  • src/Ably.PubSub.Shared/IoC.cs
  • src/Ably.PubSub.Shared/JsonHelper.cs
  • src/Ably.PubSub.Shared/MessageEncoders/Base64Encoder.cs
  • src/Ably.PubSub.Shared/MessageEncoders/CipherEncoder.cs
  • src/Ably.PubSub.Shared/MessageEncoders/DecodingContext.cs
  • src/Ably.PubSub.Shared/MessageEncoders/JsonEncoder.cs
  • src/Ably.PubSub.Shared/MessageEncoders/MessageEncoder.cs
  • src/Ably.PubSub.Shared/MessageEncoders/MessageHandler.cs
  • src/Ably.PubSub.Shared/MessageEncoders/PayloadCache.cs
  • src/Ably.PubSub.Shared/MessageEncoders/ProcessedPayload.cs
  • src/Ably.PubSub.Shared/MessageEncoders/Utf8Encoder.cs
  • src/Ably.PubSub.Shared/MessageEncoders/VCDiffEncoder.cs
  • src/Ably.PubSub.Shared/MessageEncoders/VcDiffErrorInfo.cs
  • src/Ably.PubSub.Shared/PaginatedRequestParams.cs
  • src/Ably.PubSub.Shared/PaginatedResult.cs
  • src/Ably.PubSub.Shared/Protocol.cs
  • src/Ably.PubSub.Shared/PubSubHttpClient.cs
  • src/Ably.PubSub.Shared/PubSubRealtimeClient.cs
  • src/Ably.PubSub.Shared/Push/ActivationStateMachine.Events.cs
  • src/Ably.PubSub.Shared/Push/ActivationStateMachine.States.cs
  • src/Ably.PubSub.Shared/Push/ActivationStateMachine.cs
  • src/Ably.PubSub.Shared/Push/DeviceDetails.cs
  • src/Ably.PubSub.Shared/Push/DeviceFormFactor.cs
  • src/Ably.PubSub.Shared/Push/IDeviceRegistrations.cs
  • src/Ably.PubSub.Shared/Push/IMobileDevice.cs
  • src/Ably.PubSub.Shared/Push/IPushChannelSubscriptions.cs
  • src/Ably.PubSub.Shared/Push/ListDeviceDetailsRequest.cs
  • src/Ably.PubSub.Shared/Push/ListSubscriptionsRequest.cs
  • src/Ably.PubSub.Shared/Push/LocalDevice.cs
  • src/Ably.PubSub.Shared/Push/PersistKeys.cs
  • src/Ably.PubSub.Shared/Push/PushAdmin.cs
  • src/Ably.PubSub.Shared/Push/PushCallbacks.cs
  • src/Ably.PubSub.Shared/Push/PushChannel.cs
  • src/Ably.PubSub.Shared/Push/PushChannelSubscription.cs
  • src/Ably.PubSub.Shared/Push/PushHttp.cs
  • src/Ably.PubSub.Shared/Push/PushRealtime.cs
  • src/Ably.PubSub.Shared/Push/RegistrationToken.cs
  • src/Ably.PubSub.Shared/QueryDirection.cs
  • src/Ably.PubSub.Shared/Realtime/AttemptsHelpers.cs
  • src/Ably.PubSub.Shared/Realtime/ChannelAwaiter.cs
  • src/Ably.PubSub.Shared/Realtime/ChannelErrorEventArgs.cs
  • src/Ably.PubSub.Shared/Realtime/ChannelEvent.cs
  • src/Ably.PubSub.Shared/Realtime/ChannelMessageProcessor.cs
  • src/Ably.PubSub.Shared/Realtime/ChannelProperties.cs
  • src/Ably.PubSub.Shared/Realtime/ChannelState.cs
  • src/Ably.PubSub.Shared/Realtime/ChannelStateChangedEventArgs.cs
  • src/Ably.PubSub.Shared/Realtime/Connection.cs
  • src/Ably.PubSub.Shared/Realtime/ConnectionEvent.cs
  • src/Ably.PubSub.Shared/Realtime/ConnectionState.cs
  • src/Ably.PubSub.Shared/Realtime/ConnectionStateChangedEventArgs.cs
  • src/Ably.PubSub.Shared/Realtime/Handlers.cs
  • src/Ably.PubSub.Shared/Realtime/IRealtimeChannel.cs
  • src/Ably.PubSub.Shared/Realtime/LastMessageIds.cs
  • src/Ably.PubSub.Shared/Realtime/MessageHandlerAction.cs
  • src/Ably.PubSub.Shared/Realtime/Presence.GetParams.cs
  • src/Ably.PubSub.Shared/Realtime/Presence.QueuedPresenceMessage.cs
  • src/Ably.PubSub.Shared/Realtime/Presence.cs
  • src/Ably.PubSub.Shared/Realtime/PresenceMap.cs
  • src/Ably.PubSub.Shared/Realtime/RealtimeChannel.cs
  • src/Ably.PubSub.Shared/Realtime/RealtimeChannels.cs
  • src/Ably.PubSub.Shared/Realtime/RealtimeTransportData.cs
  • src/Ably.PubSub.Shared/Realtime/RecoveryKeyContext.cs
  • src/Ably.PubSub.Shared/Realtime/Workflows/ChannelCommands.cs
  • src/Ably.PubSub.Shared/Realtime/Workflows/IQueueCommand.cs
  • src/Ably.PubSub.Shared/Realtime/Workflows/PingRequest.cs
  • src/Ably.PubSub.Shared/Realtime/Workflows/RealtimeCommand.cs
  • src/Ably.PubSub.Shared/Realtime/Workflows/RealtimeCommands.cs
  • src/Ably.PubSub.Shared/Realtime/Workflows/RealtimeState.cs
  • src/Ably.PubSub.Shared/Realtime/Workflows/RealtimeWorkflow.cs
  • src/Ably.PubSub.Shared/Result.cs
  • src/Ably.PubSub.Shared/Statistics.cs
  • src/Ably.PubSub.Shared/TaskConstants.cs
  • src/Ably.PubSub.Shared/TokenDetails.cs
  • src/Ably.PubSub.Shared/TokenParams.cs
  • src/Ably.PubSub.Shared/TokenRequest.cs
  • src/Ably.PubSub.Shared/TokenResponse.cs
  • src/Ably.PubSub.Shared/Transport/AttemptFailedState.cs
  • src/Ably.PubSub.Shared/Transport/ConnectionAttempt.cs
  • src/Ably.PubSub.Shared/Transport/ConnectionAttemptsInfo.cs
  • src/Ably.PubSub.Shared/Transport/ConnectionHeartbeatHandler.cs
  • src/Ably.PubSub.Shared/Transport/ConnectionInfo.cs
  • src/Ably.PubSub.Shared/Transport/ConnectionManager.cs
  • src/Ably.PubSub.Shared/Transport/IConnectionContext.cs
  • src/Ably.PubSub.Shared/Transport/IConnectionManager.cs
  • src/Ably.PubSub.Shared/Transport/ITransport.cs
  • src/Ably.PubSub.Shared/Transport/MessageAndCallback.cs
  • src/Ably.PubSub.Shared/Transport/MsWebSocketConnection.cs
  • src/Ably.PubSub.Shared/Transport/MsWebSocketTransport.cs
  • src/Ably.PubSub.Shared/Transport/States/Connection/ConnectionClosedState.cs
  • src/Ably.PubSub.Shared/Transport/States/Connection/ConnectionClosingState.cs
  • src/Ably.PubSub.Shared/Transport/States/Connection/ConnectionConnectedState.cs
  • src/Ably.PubSub.Shared/Transport/States/Connection/ConnectionConnectingState.cs
  • src/Ably.PubSub.Shared/Transport/States/Connection/ConnectionDisconnectedState.cs
  • src/Ably.PubSub.Shared/Transport/States/Connection/ConnectionFailedState.cs
  • src/Ably.PubSub.Shared/Transport/States/Connection/ConnectionInitializedState.cs
  • src/Ably.PubSub.Shared/Transport/States/Connection/ConnectionStateBase.cs
  • src/Ably.PubSub.Shared/Transport/States/Connection/ConnectionSuspendedState.cs
  • src/Ably.PubSub.Shared/Transport/States/Connection/ICountdownTimer.cs
  • src/Ably.PubSub.Shared/Transport/TaskWrapper.cs
  • src/Ably.PubSub.Shared/Transport/TransportParams.cs
  • src/Ably.PubSub.Shared/Types/AuthDetails.cs
  • src/Ably.PubSub.Shared/Types/ChannelModes.cs
  • src/Ably.PubSub.Shared/Types/ChannelParams.cs
  • src/Ably.PubSub.Shared/Types/ConnectionDetails.cs
  • src/Ably.PubSub.Shared/Types/ErrorCodes.cs
  • src/Ably.PubSub.Shared/Types/ErrorInfo.cs
  • src/Ably.PubSub.Shared/Types/IMessage.cs
  • src/Ably.PubSub.Shared/Types/LockedList.cs
  • src/Ably.PubSub.Shared/Types/Message.cs
  • src/Ably.PubSub.Shared/Types/MessageExtras.cs
  • src/Ably.PubSub.Shared/Types/OperatingSystem.cs
  • src/Ably.PubSub.Shared/Types/PresenceMessage.cs
  • src/Ably.PubSub.Shared/Types/ProtocolMessage.cs
  • src/Ably.PubSub.Shared/Types/SemanticVersion.cs
  • src/Ably.PubSub.Shared/Unity/UnityAdapter.cs
  • src/Ably.PubSub.Shared/Unity/UnityHelper.cs
  • src/Ably.PubSub.Shared/Utils/ActionOnDispose.cs
  • src/Ably.PubSub.Shared/Utils/ActionUtils.cs
  • src/Ably.PubSub.Shared/Utils/ConnectionChangeAwaiter.cs
  • src/Ably.PubSub.Shared/Utils/ErrorPolicy.cs
  • src/Ably.PubSub.Shared/Utils/ReconnectionStrategy.cs
  • src/Ably.PubSub.Shared/Utils/StringUtils.cs
  • src/Ably.PubSub.Shared/Utils/TaskUtils.cs
  • src/Ably.PubSub.Side/Side.cs
  • src/Ably.PubSub.Tests.DotNET/PubSub/ClientOptionsCloneSpecs.cs
  • src/Ably.PubSub.Tests.DotNET/PubSub/PackagingSpecs.cs
  • src/Ably.PubSub.Tests.DotNET/PubSub/PubSubDoorSandboxSpecs.cs
  • src/Ably.PubSub.Tests.DotNET/PubSub/PubSubPackageSpecs.cs
  • src/Ably.PubSub.Tests.NETFramework/Ably.PubSub.Tests.NETFramework.csproj
  • src/Ably.PubSub.Tests.Shared/AblyInsecureRequestExceptionTests.cs
  • src/Ably.PubSub.Tests.Shared/AblyResponseTests.cs
  • src/Ably.PubSub.Tests.Shared/AgentTests.cs
  • src/Ably.PubSub.Tests.Shared/ApiKeyTests.cs
  • src/Ably.PubSub.Tests.Shared/AuthTests/AuthOptionsTests.cs
  • src/Ably.PubSub.Tests.Shared/AuthTests/AuthSandboxSpecs.cs
  • src/Ably.PubSub.Tests.Shared/AuthTests/AuthorizationTests.cs
  • src/Ably.PubSub.Tests.Shared/AuthTests/AuthorizeTests.cs
  • src/Ably.PubSub.Tests.Shared/AuthTests/RequestTokenSpecs.cs
  • src/Ably.PubSub.Tests.Shared/AuthTests/ServerTimeTests.cs
  • src/Ably.PubSub.Tests.Shared/AuthTests/TestAblyAuth.cs
  • src/Ably.PubSub.Tests.Shared/CapabilityTests.cs
  • src/Ably.PubSub.Tests.Shared/CipherParamsTests.cs
  • src/Ably.PubSub.Tests.Shared/ClientOptionsTests.cs
  • src/Ably.PubSub.Tests.Shared/CustomSerializers/DateTimeOffsetConverterTests.cs
  • src/Ably.PubSub.Tests.Shared/CustomSerializers/MessageDataConverterTests.cs
  • src/Ably.PubSub.Tests.Shared/CustomSerializers/MessageExtrasConverterTests.cs
  • src/Ably.PubSub.Tests.Shared/DataRequestQueryParseTests.cs
  • src/Ably.PubSub.Tests.Shared/DataRequestQueryTests.cs
  • src/Ably.PubSub.Tests.Shared/DateHelper.cs
  • src/Ably.PubSub.Tests.Shared/DefaultTests.cs
  • src/Ably.PubSub.Tests.Shared/EncryptionSpecs.cs
  • src/Ably.PubSub.Tests.Shared/ErrorInfoTests.cs
  • src/Ably.PubSub.Tests.Shared/Extensions/ChannelOptionsExtensions.cs
  • src/Ably.PubSub.Tests.Shared/Extensions/StringExtensionsTests.cs
  • src/Ably.PubSub.Tests.Shared/Helpers/JAssert.cs
  • src/Ably.PubSub.Tests.Shared/Helpers/JDiff.cs
  • src/Ably.PubSub.Tests.Shared/Http/AblyHttpRequesterSpecs.cs
  • src/Ably.PubSub.Tests.Shared/Http/ChannelOptionsDefaultsTests.cs
  • src/Ably.PubSub.Tests.Shared/Http/ChannelSandboxSpecs.cs
  • src/Ably.PubSub.Tests.Shared/Http/ChannelSpecs.cs
  • src/Ably.PubSub.Tests.Shared/Http/HttpInitSpecs.cs
  • src/Ably.PubSub.Tests.Shared/Http/HttpSandBoxSpecs.cs
  • src/Ably.PubSub.Tests.Shared/Http/HttpSpecs.cs
  • src/Ably.PubSub.Tests.Shared/Http/JwtSandboxSpec.cs
  • src/Ably.PubSub.Tests.Shared/Http/MockHttpRestSpecs.cs
  • src/Ably.PubSub.Tests.Shared/Http/PresenceSandboxSpecs.cs
  • src/Ably.PubSub.Tests.Shared/Http/PresenceSpecs.cs
  • src/Ably.PubSub.Tests.Shared/Http/RequestSandBoxSpecs.cs
  • src/Ably.PubSub.Tests.Shared/Http/SandboxSpecExtension.cs
  • src/Ably.PubSub.Tests.Shared/Http/SandboxSpecs.cs
  • src/Ably.PubSub.Tests.Shared/Http/StatsSandBoxSpecs.cs
  • src/Ably.PubSub.Tests.Shared/Http/StatsSpecs.cs
  • src/Ably.PubSub.Tests.Shared/Http/TM3Spec.cs
  • src/Ably.PubSub.Tests.Shared/HttpProtocolTests.cs
  • src/Ably.PubSub.Tests.Shared/ImplicitTokenAuthWithClientId.cs
  • src/Ably.PubSub.Tests.Shared/Infrastructure/AblyCollectionFixture.cs
  • src/Ably.PubSub.Tests.Shared/Infrastructure/AblyRealtimeSpecs.cs
  • src/Ably.PubSub.Tests.Shared/Infrastructure/AblySandboxFixture.cs
  • src/Ably.PubSub.Tests.Shared/Infrastructure/AblySpecs.cs
  • src/Ably.PubSub.Tests.Shared/Infrastructure/ConditionalAwaiter.cs
  • src/Ably.PubSub.Tests.Shared/Infrastructure/ConnectionAwaiter.cs
  • src/Ably.PubSub.Tests.Shared/Infrastructure/FakeConnectionContext.cs
  • src/Ably.PubSub.Tests.Shared/Infrastructure/FakeHttpMessageHandler.cs
  • src/Ably.PubSub.Tests.Shared/Infrastructure/FakeTimer.cs
  • src/Ably.PubSub.Tests.Shared/Infrastructure/FakeTransport.cs
  • src/Ably.PubSub.Tests.Shared/Infrastructure/FakeTransportFactory.cs
  • src/Ably.PubSub.Tests.Shared/Infrastructure/InteroperabilityMessagePayloadDataAttribute.cs
  • src/Ably.PubSub.Tests.Shared/Infrastructure/MiscUtils.cs
  • src/Ably.PubSub.Tests.Shared/Infrastructure/Now.cs
  • src/Ably.PubSub.Tests.Shared/Infrastructure/NowTests.cs
  • src/Ably.PubSub.Tests.Shared/Infrastructure/ProtocolDataAttribute.cs
  • src/Ably.PubSub.Tests.Shared/Infrastructure/ResourceHelper.cs
  • src/Ably.PubSub.Tests.Shared/Infrastructure/TaskCompleterAwaiterTests.cs
  • src/Ably.PubSub.Tests.Shared/Infrastructure/TaskCompletionAwaiter.cs
  • src/Ably.PubSub.Tests.Shared/Infrastructure/TaskCountAwaiter.cs
  • src/Ably.PubSub.Tests.Shared/Infrastructure/TestExtensions.cs
  • src/Ably.PubSub.Tests.Shared/Infrastructure/TestHelpers.cs
  • src/Ably.PubSub.Tests.Shared/Infrastructure/TestLogger.cs
  • src/Ably.PubSub.Tests.Shared/Infrastructure/TestTransportFactory.cs
  • src/Ably.PubSub.Tests.Shared/Infrastructure/TestTransportWrapper.cs
  • src/Ably.PubSub.Tests.Shared/Infrastructure/TimeoutCallback.cs
  • src/Ably.PubSub.Tests.Shared/Infrastructure/TimeoutCallbackTests.cs
  • src/Ably.PubSub.Tests.Shared/JsonMessageSerializerTests.cs
  • src/Ably.PubSub.Tests.Shared/LoggerTests.cs
  • src/Ably.PubSub.Tests.Shared/MessageEncodes/Base64EncoderTests.cs
  • src/Ably.PubSub.Tests.Shared/MessageEncodes/CipherEncoderTests.cs
  • src/Ably.PubSub.Tests.Shared/MessageEncodes/JsonEncoderTests.cs
  • src/Ably.PubSub.Tests.Shared/MessageEncodes/MessageDecodingAcceptanceTests.cs
  • src/Ably.PubSub.Tests.Shared/MessageEncodes/MessageEncodersAcceptanceTests.cs
  • src/Ably.PubSub.Tests.Shared/MessageEncodes/ProtocolMessageSpecs.cs
  • src/Ably.PubSub.Tests.Shared/MessageEncodes/Utf8EncoderTests.cs
  • src/Ably.PubSub.Tests.Shared/MessagePack/SerializationTests.cs
  • src/Ably.PubSub.Tests.Shared/MsgPackMessageSerializerTests.cs
  • src/Ably.PubSub.Tests.Shared/Push/ActivationStateMachineTests.cs
  • src/Ably.PubSub.Tests.Shared/Push/FakeMobileDevice.cs
  • src/Ably.PubSub.Tests.Shared/Push/ListDeviceDetailsRequestTests.cs
  • src/Ably.PubSub.Tests.Shared/Push/ListSubscriptionsRequestTests.cs
  • src/Ably.PubSub.Tests.Shared/Push/LocalDeviceTests.cs
  • src/Ably.PubSub.Tests.Shared/Push/PushAdminSandboxTests.cs
  • src/Ably.PubSub.Tests.Shared/Push/PushAdminTests.cs
  • src/Ably.PubSub.Tests.Shared/Push/PushChannelTests.cs
  • src/Ably.PubSub.Tests.Shared/Push/PushRealtimeTests.cs
  • src/Ably.PubSub.Tests.Shared/Push/PushTestHelpers.cs
  • src/Ably.PubSub.Tests.Shared/Push/RegistrationTokenTest.cs
  • src/Ably.PubSub.Tests.Shared/Realtime/ChannelSandboxSpecs.cs
  • src/Ably.PubSub.Tests.Shared/Realtime/ChannelSpecs.cs
  • src/Ably.PubSub.Tests.Shared/Realtime/ChannelsSpecs.cs
  • src/Ably.PubSub.Tests.Shared/Realtime/ConnectionAttemptsInfoSpecs.cs
  • src/Ably.PubSub.Tests.Shared/Realtime/ConnectionSandBoxSpecs.cs
  • src/Ably.PubSub.Tests.Shared/Realtime/ConnectionSandboxOperatingSystemEventsForNetworkSpecs.cs
  • src/Ably.PubSub.Tests.Shared/Realtime/ConnectionSandboxTransportSideEffectsSpecs.cs
  • src/Ably.PubSub.Tests.Shared/Realtime/ConnectionSpecs/AblyRealtimeTestExtensions.cs
  • src/Ably.PubSub.Tests.Shared/Realtime/ConnectionSpecs/ConnectionFailureSpecs.cs
  • src/Ably.PubSub.Tests.Shared/Realtime/ConnectionSpecs/ConnectionFailuresOnceConnectedSpecs.cs
  • src/Ably.PubSub.Tests.Shared/Realtime/ConnectionSpecs/ConnectionFallbackSpecs.cs
  • src/Ably.PubSub.Tests.Shared/Realtime/ConnectionSpecs/ConnectionIdSpecs.cs
  • src/Ably.PubSub.Tests.Shared/Realtime/ConnectionSpecs/ConnectionKeySpecs.cs
  • src/Ably.PubSub.Tests.Shared/Realtime/ConnectionSpecs/ConnectionParameterSpecs.cs
  • src/Ably.PubSub.Tests.Shared/Realtime/ConnectionSpecs/ConnectionPingSpecs.cs
  • src/Ably.PubSub.Tests.Shared/Realtime/ConnectionSpecs/ConnectionRecoverySpecs.cs
  • src/Ably.PubSub.Tests.Shared/Realtime/ConnectionSpecs/EventEmitterSpecs.cs
  • src/Ably.PubSub.Tests.Shared/Realtime/ConnectionSpecs/GeneralConnectionSpecs.cs
  • src/Ably.PubSub.Tests.Shared/Realtime/ConnectionStateTests/ClosedStateSpecs.cs
  • src/Ably.PubSub.Tests.Shared/Realtime/ConnectionStateTests/ClosingStateSpecs.cs
  • src/Ably.PubSub.Tests.Shared/Realtime/ConnectionStateTests/ConnectedStateSpecs.cs
  • src/Ably.PubSub.Tests.Shared/Realtime/ConnectionStateTests/ConnectingStateSpecs.cs
  • src/Ably.PubSub.Tests.Shared/Realtime/ConnectionStateTests/DisconnectedStateSpecs.cs
  • src/Ably.PubSub.Tests.Shared/Realtime/ConnectionStateTests/FailedStateSpecs.cs
  • src/Ably.PubSub.Tests.Shared/Realtime/ConnectionStateTests/InitializedStateSpecs.cs
  • src/Ably.PubSub.Tests.Shared/Realtime/ConnectionStateTests/SuspendedStateSpecs.cs
  • src/Ably.PubSub.Tests.Shared/Realtime/CountDownTimerSpecs.cs
  • src/Ably.PubSub.Tests.Shared/Realtime/DeltaLastMessageSpecs.cs
  • src/Ably.PubSub.Tests.Shared/Realtime/DeltaSandboxSpecs.cs
  • src/Ably.PubSub.Tests.Shared/Realtime/DeltaSpecs.cs
  • src/Ably.PubSub.Tests.Shared/Realtime/ExtraSandboxSpecs.cs
  • src/Ably.PubSub.Tests.Shared/Realtime/MockHttpRealtimeSpecs.cs
  • src/Ably.PubSub.Tests.Shared/Realtime/PresenceSandboxSpecs.cs
  • src/Ably.PubSub.Tests.Shared/Realtime/ProtocolMessageTests.cs
  • src/Ably.PubSub.Tests.Shared/Realtime/RealtimeSandboxSpecs.cs
  • src/Ably.PubSub.Tests.Shared/Realtime/RealtimeSpecs.cs
  • src/Ably.PubSub.Tests.Shared/Realtime/RealtimeWorkflowSpecs.cs
  • src/Ably.PubSub.Tests.Shared/Realtime/RecoveryKeyContextSpec.cs
  • src/Ably.PubSub.Tests.Shared/Samples/DocumentationSamples.cs
  • src/Ably.PubSub.Tests.Shared/Samples/RealtimeSamples.cs
  • src/Ably.PubSub.Tests.Shared/StatsParsingTests.cs
  • src/Ably.PubSub.Tests.Shared/TestExtensions.cs
  • src/Ably.PubSub.Tests.Shared/TestLoggerSink.cs
  • src/Ably.PubSub.Tests.Shared/TokenDetailsTests.cs
  • src/Ably.PubSub.Tests.Shared/TokenParamsTests.cs
  • src/Ably.PubSub.Tests.Shared/TokenRequestPopulateTests.cs
  • src/Ably.PubSub.Tests.Shared/Transport/AttemptFailedStateTests.cs
  • src/Ably.PubSub.Tests.Shared/Transport/ConnectionAttemptTests.cs
  • src/Ably.PubSub.Tests.Shared/Types/OperatingSystemTests.cs
  • src/Ably.PubSub.Tests.Shared/Types/SemanticVersionTests.cs
  • src/Ably.PubSub.Tests.Shared/Utils/ErrorPolicyTests.cs
  • src/Ably.PubSub.Tests.Shared/Utils/ReconnectionStrategyTest.cs
  • src/Ably.PubSub/CustomSerialisers/GeneratedSerializers/IO/Ably/CustomSerialisers/IO_Ably_CapabilityResourceSerializer.cs
  • src/Ably.PubSub/CustomSerialisers/GeneratedSerializers/IO/Ably/CustomSerialisers/IO_Ably_CapabilitySerializer.cs
  • src/Ably.PubSub/CustomSerialisers/GeneratedSerializers/IO/Ably/CustomSerialisers/IO_Ably_TokenRequestSerializer.cs
  • unity/Assets/Ably/Examples/Dashboard/AblyChannel.cs
  • unity/Assets/Ably/Examples/Dashboard/AblyMain.cs
  • unity/Assets/Ably/Examples/Dashboard/AblyPresence.cs
  • unity/Assets/Tests/AblySandbox/AblyCollectionFixture.cs
  • unity/Assets/Tests/AblySandbox/AblyRealtimeExtensions.cs
  • unity/Assets/Tests/AblySandbox/AblySandbox.cs
  • unity/Assets/Tests/AblySandbox/AblySandboxFixture.cs
  • unity/Assets/Tests/AblySandbox/ConnectionAwaiter.cs
  • unity/Assets/Tests/AblySandbox/RealtimeChannelExtensions.cs
  • unity/Assets/Tests/AblySandbox/TestTransportFactory.cs
  • unity/Assets/Tests/AblySandbox/TestTransportWrapper.cs
  • unity/Assets/Tests/AblySandbox/TestUtils.cs
  • unity/Assets/Tests/EditMode/AblyRealtimeSpecs.cs
  • unity/Assets/Tests/EditMode/AuthSpecs.cs
  • unity/Assets/Tests/EditMode/StatsSpecs.cs
  • unity/Assets/Tests/PlayMode/AblyRealtimeSpecs.cs
  • unity/Assets/Tests/PlayMode/AuthSpecs.cs
  • unity/Assets/Tests/PlayMode/StatsSpecs.cs
  • unity/README.md

You can disable this status message by setting the reviews.review_status to false in the CodeRabbit configuration file.


Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands.

Copilot AI left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Copilot review overview

🟡 Changes recommended

The committed Unity DLL still exposes the old namespaces while Unity sources and tests reference the new ones.

Get a fresh assessment by requesting another Copilot review.

Review effort: Lite
Findings: 2 High severity · 3 Low severity

Open (5)
What changed in this PR

Moves the .NET SDK root namespace from IO.Ably to Ably.PubSub to enable v1/v2 coexistence.

Changes:

  • Updates namespaces, imports, project metadata, tests, examples, and package references.
  • Renames REST-related namespaces to HTTP and updates door namespaces.
  • Updates IoC platform resolution and adds regression coverage.
  • Refreshes migration and package documentation.
File Summary
unity/​README.md Namespace migration reviewed
unity/​Assets/​Tests/​PlayMode/​StatsSpecs.cs Namespace migration reviewed
unity/​Assets/​Tests/​PlayMode/​AuthSpecs.cs Namespace migration reviewed
unity/​Assets/​Tests/​PlayMode/​AblyRealtimeSpecs.cs Namespace migration reviewed
unity/​Assets/​Tests/​EditMode/​StatsSpecs.cs Namespace migration reviewed
unity/​Assets/​Tests/​EditMode/​AuthSpecs.cs Namespace migration reviewed
unity/​Assets/​Tests/​EditMode/​AblyRealtimeSpecs.cs Namespace migration reviewed
unity/​Assets/​Tests/​AblySandbox/​TestUtils.cs Namespace migration reviewed
unity/​Assets/​Tests/​AblySandbox/​TestTransportWrapper.cs Namespace migration reviewed
unity/​Assets/​Tests/​AblySandbox/​TestTransportFactory.cs Namespace migration reviewed
unity/​Assets/​Tests/​AblySandbox/​RealtimeChannelExtensions.cs Namespace migration reviewed
unity/​Assets/​Tests/​AblySandbox/​ConnectionAwaiter.cs Namespace migration reviewed
unity/​Assets/​Tests/​AblySandbox/​AblySandboxFixture.cs Namespace migration reviewed
unity/​Assets/​Tests/​AblySandbox/​AblySandbox.cs Namespace migration reviewed
unity/​Assets/​Tests/​AblySandbox/​AblyRealtimeExtensions.cs Namespace migration reviewed
unity/​Assets/​Tests/​AblySandbox/​AblyCollectionFixture.cs Namespace migration reviewed
unity/​Assets/​Ably/​Examples/​Dashboard/​AblyPresence.cs Namespace migration reviewed
unity/​Assets/​Ably/​Examples/​Dashboard/​AblyMain.cs Namespace migration reviewed
unity/​Assets/​Ably/​Examples/​Dashboard/​AblyChannel.cs Namespace migration reviewed
src/​Ably.PubSub.Tests.Shared/​Utils/​ReconnectionStrategyTest.cs Namespace migration reviewed
src/​Ably.PubSub.Tests.Shared/​Utils/​ErrorPolicyTests.cs Namespace migration reviewed
src/​Ably.PubSub.Tests.Shared/​Types/​SemanticVersionTests.cs Namespace migration reviewed
src/​Ably.PubSub.Tests.Shared/​Types/​OperatingSystemTests.cs Namespace migration reviewed
src/​Ably.PubSub.Tests.Shared/​Transport/​ConnectionAttemptTests.cs Namespace migration reviewed
src/​Ably.PubSub.Tests.Shared/​Transport/​AttemptFailedStateTests.cs Namespace migration reviewed
src/​Ably.PubSub.Tests.Shared/​TokenRequestPopulateTests.cs Namespace migration reviewed
src/​Ably.PubSub.Tests.Shared/​TokenParamsTests.cs Namespace migration reviewed
src/​Ably.PubSub.Tests.Shared/​TokenDetailsTests.cs Namespace migration reviewed
src/​Ably.PubSub.Tests.Shared/​TestLoggerSink.cs Namespace migration reviewed
src/​Ably.PubSub.Tests.Shared/​TestExtensions.cs Namespace migration reviewed
src/​Ably.PubSub.Tests.Shared/​StatsParsingTests.cs Namespace migration reviewed
src/​Ably.PubSub.Tests.Shared/​Samples/​RealtimeSamples.cs Namespace migration reviewed
src/​Ably.PubSub.Tests.Shared/​Samples/​DocumentationSamples.cs Namespace migration reviewed
src/​Ably.PubSub.Tests.Shared/​Realtime/​RecoveryKeyContextSpec.cs Namespace migration reviewed
src/​Ably.PubSub.Tests.Shared/​Realtime/​RealtimeWorkflowSpecs.cs Namespace migration reviewed
src/​Ably.PubSub.Tests.Shared/​Realtime/​RealtimeSpecs.cs Namespace migration reviewed
src/​Ably.PubSub.Tests.Shared/​Realtime/​RealtimeSandboxSpecs.cs Namespace migration reviewed
src/​Ably.PubSub.Tests.Shared/​Realtime/​ProtocolMessageTests.cs Namespace migration reviewed
src/​Ably.PubSub.Tests.Shared/​Realtime/​PresenceSandboxSpecs.cs Namespace migration reviewed
src/​Ably.PubSub.Tests.Shared/​Realtime/​MockHttpRealtimeSpecs.cs Namespace migration reviewed
src/​Ably.PubSub.Tests.Shared/​Realtime/​ExtraSandboxSpecs.cs Namespace migration reviewed
src/​Ably.PubSub.Tests.Shared/​Realtime/​DeltaSpecs.cs Namespace migration reviewed
src/​Ably.PubSub.Tests.Shared/​Realtime/​DeltaSandboxSpecs.cs Namespace migration reviewed
src/​Ably.PubSub.Tests.Shared/​Realtime/​DeltaLastMessageSpecs.cs Namespace migration reviewed
src/​Ably.PubSub.Tests.Shared/​Realtime/​CountDownTimerSpecs.cs Namespace migration reviewed
src/​Ably.PubSub.Tests.Shared/​Realtime/​ConnectionStateTests/​SuspendedStateSpecs.cs Namespace migration reviewed
src/​Ably.PubSub.Tests.Shared/​Realtime/​ConnectionStateTests/​InitializedStateSpecs.cs Namespace migration reviewed
src/​Ably.PubSub.Tests.Shared/​Realtime/​ConnectionStateTests/​FailedStateSpecs.cs Namespace migration reviewed
src/​Ably.PubSub.Tests.Shared/​Realtime/​ConnectionStateTests/​DisconnectedStateSpecs.cs Namespace migration reviewed
src/​Ably.PubSub.Tests.Shared/​Realtime/​ConnectionStateTests/​ConnectingStateSpecs.cs Namespace migration reviewed
src/​Ably.PubSub.Tests.Shared/​Realtime/​ConnectionStateTests/​ConnectedStateSpecs.cs Namespace migration reviewed
src/​Ably.PubSub.Tests.Shared/​Realtime/​ConnectionStateTests/​ClosingStateSpecs.cs Namespace migration reviewed
src/​Ably.PubSub.Tests.Shared/​Realtime/​ConnectionStateTests/​ClosedStateSpecs.cs Namespace migration reviewed
src/​Ably.PubSub.Tests.Shared/​Realtime/​ConnectionSpecs/​GeneralConnectionSpecs.cs Namespace migration reviewed
src/​Ably.PubSub.Tests.Shared/​Realtime/​ConnectionSpecs/​EventEmitterSpecs.cs Namespace migration reviewed
src/​Ably.PubSub.Tests.Shared/​Realtime/​ConnectionSpecs/​ConnectionRecoverySpecs.cs Namespace migration reviewed
src/​Ably.PubSub.Tests.Shared/​Realtime/​ConnectionSpecs/​ConnectionPingSpecs.cs Namespace migration reviewed
src/​Ably.PubSub.Tests.Shared/​Realtime/​ConnectionSpecs/​ConnectionParameterSpecs.cs Namespace migration reviewed
src/​Ably.PubSub.Tests.Shared/​Realtime/​ConnectionSpecs/​ConnectionKeySpecs.cs Namespace migration reviewed
src/​Ably.PubSub.Tests.Shared/​Realtime/​ConnectionSpecs/​ConnectionIdSpecs.cs Namespace migration reviewed
src/​Ably.PubSub.Tests.Shared/​Realtime/​ConnectionSpecs/​ConnectionFallbackSpecs.cs Namespace migration reviewed
src/​Ably.PubSub.Tests.Shared/​Realtime/​ConnectionSpecs/​ConnectionFailureSpecs.cs Namespace migration reviewed
src/​Ably.PubSub.Tests.Shared/​Realtime/​ConnectionSpecs/​ConnectionFailuresOnceConnectedSpecs.cs Namespace migration reviewed
src/​Ably.PubSub.Tests.Shared/​Realtime/​ConnectionSpecs/​AblyRealtimeTestExtensions.cs Namespace migration reviewed
src/​Ably.PubSub.Tests.Shared/​Realtime/​ConnectionSandboxTransportSideEffectsSpecs.cs Namespace migration reviewed
src/​Ably.PubSub.Tests.Shared/​Realtime/​ConnectionSandBoxSpecs.cs Namespace migration reviewed
src/​Ably.PubSub.Tests.Shared/​Realtime/​ConnectionSandboxOperatingSystemEventsForNetworkSpecs.cs Namespace migration reviewed
src/​Ably.PubSub.Tests.Shared/​Realtime/​ConnectionAttemptsInfoSpecs.cs Namespace migration reviewed
src/​Ably.PubSub.Tests.Shared/​Realtime/​ChannelsSpecs.cs Namespace migration reviewed
src/​Ably.PubSub.Tests.Shared/​Realtime/​ChannelSpecs.cs Namespace migration reviewed
src/​Ably.PubSub.Tests.Shared/​Realtime/​ChannelSandboxSpecs.cs Namespace migration reviewed
src/​Ably.PubSub.Tests.Shared/​Push/​RegistrationTokenTest.cs Namespace migration reviewed
src/​Ably.PubSub.Tests.Shared/​Push/​PushTestHelpers.cs Namespace migration reviewed
src/​Ably.PubSub.Tests.Shared/​Push/​PushRealtimeTests.cs Namespace migration reviewed
src/​Ably.PubSub.Tests.Shared/​Push/​PushChannelTests.cs Namespace migration reviewed
src/​Ably.PubSub.Tests.Shared/​Push/​PushAdminTests.cs Namespace migration reviewed
src/​Ably.PubSub.Tests.Shared/​Push/​PushAdminSandboxTests.cs Namespace migration reviewed
src/​Ably.PubSub.Tests.Shared/​Push/​LocalDeviceTests.cs Namespace migration reviewed
src/​Ably.PubSub.Tests.Shared/​Push/​ListSubscriptionsRequestTests.cs Namespace migration reviewed
src/​Ably.PubSub.Tests.Shared/​Push/​ListDeviceDetailsRequestTests.cs Namespace migration reviewed
src/​Ably.PubSub.Tests.Shared/​Push/​FakeMobileDevice.cs Namespace migration reviewed
src/​Ably.PubSub.Tests.Shared/​Push/​ActivationStateMachineTests.cs Namespace migration reviewed
src/​Ably.PubSub.Tests.Shared/​MsgPackMessageSerializerTests.cs Namespace migration reviewed
src/​Ably.PubSub.Tests.Shared/​MessagePack/​SerializationTests.cs Namespace migration reviewed
src/​Ably.PubSub.Tests.Shared/​MessageEncodes/​Utf8EncoderTests.cs Namespace migration reviewed
src/​Ably.PubSub.Tests.Shared/​MessageEncodes/​ProtocolMessageSpecs.cs Namespace migration reviewed
src/​Ably.PubSub.Tests.Shared/​MessageEncodes/​MessageEncodersAcceptanceTests.cs Namespace migration reviewed
src/​Ably.PubSub.Tests.Shared/​MessageEncodes/​MessageDecodingAcceptanceTests.cs Namespace migration reviewed
src/​Ably.PubSub.Tests.Shared/​MessageEncodes/​JsonEncoderTests.cs Namespace migration reviewed
src/​Ably.PubSub.Tests.Shared/​MessageEncodes/​CipherEncoderTests.cs Namespace migration reviewed
src/​Ably.PubSub.Tests.Shared/​MessageEncodes/​Base64EncoderTests.cs Namespace migration reviewed
src/​Ably.PubSub.Tests.Shared/​LoggerTests.cs Namespace migration reviewed
src/​Ably.PubSub.Tests.Shared/​JsonMessageSerializerTests.cs Namespace migration reviewed
src/​Ably.PubSub.Tests.Shared/​Infrastructure/​TimeoutCallbackTests.cs Namespace migration reviewed
src/​Ably.PubSub.Tests.Shared/​Infrastructure/​TimeoutCallback.cs Namespace migration reviewed
src/​Ably.PubSub.Tests.Shared/​Infrastructure/​TestTransportWrapper.cs Namespace migration reviewed
src/​Ably.PubSub.Tests.Shared/​Infrastructure/​TestTransportFactory.cs Namespace migration reviewed
src/​Ably.PubSub.Tests.Shared/​Infrastructure/​TestLogger.cs Namespace migration reviewed
src/​Ably.PubSub.Tests.Shared/​Infrastructure/​TestHelpers.cs Namespace migration reviewed
src/​Ably.PubSub.Tests.Shared/​Infrastructure/​TestExtensions.cs Namespace migration reviewed
src/​Ably.PubSub.Tests.Shared/​Infrastructure/​TaskCountAwaiter.cs Namespace migration reviewed
src/​Ably.PubSub.Tests.Shared/​Infrastructure/​TaskCompletionAwaiter.cs Namespace migration reviewed
src/​Ably.PubSub.Tests.Shared/​Infrastructure/​TaskCompleterAwaiterTests.cs Namespace migration reviewed
src/​Ably.PubSub.Tests.Shared/​Infrastructure/​ResourceHelper.cs Namespace migration reviewed
src/​Ably.PubSub.Tests.Shared/​Infrastructure/​ProtocolDataAttribute.cs Namespace migration reviewed
src/​Ably.PubSub.Tests.Shared/​Infrastructure/​NowTests.cs Namespace migration reviewed
src/​Ably.PubSub.Tests.Shared/​Infrastructure/​Now.cs Namespace migration reviewed
src/​Ably.PubSub.Tests.Shared/​Infrastructure/​MiscUtils.cs Namespace migration reviewed
src/​Ably.PubSub.Tests.Shared/​Infrastructure/​InteroperabilityMessagePayloadDataAttribute.cs Namespace migration reviewed
src/​Ably.PubSub.Tests.Shared/​Infrastructure/​FakeTransportFactory.cs Namespace migration reviewed
src/​Ably.PubSub.Tests.Shared/​Infrastructure/​FakeTransport.cs Namespace migration reviewed
src/​Ably.PubSub.Tests.Shared/​Infrastructure/​FakeTimer.cs Namespace migration reviewed
src/​Ably.PubSub.Tests.Shared/​Infrastructure/​FakeHttpMessageHandler.cs Namespace migration reviewed
src/​Ably.PubSub.Tests.Shared/​Infrastructure/​FakeConnectionContext.cs Namespace migration reviewed
src/​Ably.PubSub.Tests.Shared/​Infrastructure/​ConnectionAwaiter.cs Namespace migration reviewed
src/​Ably.PubSub.Tests.Shared/​Infrastructure/​ConditionalAwaiter.cs Namespace migration reviewed
src/​Ably.PubSub.Tests.Shared/​Infrastructure/​AblySpecs.cs Namespace migration reviewed
src/​Ably.PubSub.Tests.Shared/​Infrastructure/​AblySandboxFixture.cs Namespace migration reviewed
src/​Ably.PubSub.Tests.Shared/​Infrastructure/​AblyRealtimeSpecs.cs Namespace migration reviewed
src/​Ably.PubSub.Tests.Shared/​Infrastructure/​AblyCollectionFixture.cs Namespace migration reviewed
src/​Ably.PubSub.Tests.Shared/​ImplicitTokenAuthWithClientId.cs Namespace migration reviewed
src/​Ably.PubSub.Tests.Shared/​HttpProtocolTests.cs Namespace migration reviewed
src/​Ably.PubSub.Tests.Shared/​Http/​TM3Spec.cs Namespace migration reviewed
src/​Ably.PubSub.Tests.Shared/​Http/​StatsSpecs.cs Namespace migration reviewed
src/​Ably.PubSub.Tests.Shared/​Http/​StatsSandBoxSpecs.cs Namespace migration reviewed
src/​Ably.PubSub.Tests.Shared/​Http/​SandboxSpecs.cs Namespace migration reviewed
src/​Ably.PubSub.Tests.Shared/​Http/​SandboxSpecExtension.cs Namespace migration reviewed
src/​Ably.PubSub.Tests.Shared/​Http/​RequestSandBoxSpecs.cs Namespace migration reviewed
src/​Ably.PubSub.Tests.Shared/​Http/​PresenceSpecs.cs Namespace migration reviewed
src/​Ably.PubSub.Tests.Shared/​Http/​PresenceSandboxSpecs.cs Namespace migration reviewed
src/​Ably.PubSub.Tests.Shared/​Http/​MockHttpRestSpecs.cs Namespace migration reviewed
src/​Ably.PubSub.Tests.Shared/​Http/​JwtSandboxSpec.cs Namespace migration reviewed
src/​Ably.PubSub.Tests.Shared/​Http/​HttpSpecs.cs Namespace migration reviewed
src/​Ably.PubSub.Tests.Shared/​Http/​HttpSandBoxSpecs.cs Namespace migration reviewed
src/​Ably.PubSub.Tests.Shared/​Http/​HttpInitSpecs.cs Namespace migration reviewed
src/​Ably.PubSub.Tests.Shared/​Http/​ChannelSpecs.cs Namespace migration reviewed
src/​Ably.PubSub.Tests.Shared/​Http/​ChannelSandboxSpecs.cs Namespace migration reviewed
src/​Ably.PubSub.Tests.Shared/​Http/​ChannelOptionsDefaultsTests.cs Namespace migration reviewed
src/​Ably.PubSub.Tests.Shared/​Http/​AblyHttpRequesterSpecs.cs Namespace migration reviewed
src/​Ably.PubSub.Tests.Shared/​Helpers/​JDiff.cs Namespace migration reviewed
src/​Ably.PubSub.Tests.Shared/​Helpers/​JAssert.cs Namespace migration reviewed
src/​Ably.PubSub.Tests.Shared/​Extensions/​StringExtensionsTests.cs Namespace migration reviewed
src/​Ably.PubSub.Tests.Shared/​Extensions/​ChannelOptionsExtensions.cs Namespace migration reviewed
src/​Ably.PubSub.Tests.Shared/​ErrorInfoTests.cs Namespace migration reviewed
src/​Ably.PubSub.Tests.Shared/​EncryptionSpecs.cs Namespace migration reviewed
src/​Ably.PubSub.Tests.Shared/​DefaultTests.cs Namespace migration reviewed
src/​Ably.PubSub.Tests.Shared/​DateHelper.cs Namespace migration reviewed
src/​Ably.PubSub.Tests.Shared/​DataRequestQueryTests.cs Namespace migration reviewed
src/​Ably.PubSub.Tests.Shared/​DataRequestQueryParseTests.cs Namespace migration reviewed
src/​Ably.PubSub.Tests.Shared/​CustomSerializers/​MessageExtrasConverterTests.cs Namespace migration reviewed
src/​Ably.PubSub.Tests.Shared/​CustomSerializers/​MessageDataConverterTests.cs Namespace migration reviewed
src/​Ably.PubSub.Tests.Shared/​CustomSerializers/​DateTimeOffsetConverterTests.cs Namespace migration reviewed
src/​Ably.PubSub.Tests.Shared/​ClientOptionsTests.cs Namespace migration reviewed
src/​Ably.PubSub.Tests.Shared/​CipherParamsTests.cs Namespace migration reviewed
src/​Ably.PubSub.Tests.Shared/​CapabilityTests.cs Namespace migration reviewed
src/​Ably.PubSub.Tests.Shared/​AuthTests/​TestAblyAuth.cs Namespace migration reviewed
src/​Ably.PubSub.Tests.Shared/​AuthTests/​ServerTimeTests.cs Namespace migration reviewed
src/​Ably.PubSub.Tests.Shared/​AuthTests/​RequestTokenSpecs.cs Namespace migration reviewed
src/​Ably.PubSub.Tests.Shared/​AuthTests/​AuthSandboxSpecs.cs Namespace migration reviewed
src/​Ably.PubSub.Tests.Shared/​AuthTests/​AuthorizeTests.cs Namespace migration reviewed
src/​Ably.PubSub.Tests.Shared/​AuthTests/​AuthorizationTests.cs Namespace migration reviewed
src/​Ably.PubSub.Tests.Shared/​AuthTests/​AuthOptionsTests.cs Namespace migration reviewed
src/​Ably.PubSub.Tests.Shared/​ApiKeyTests.cs Namespace migration reviewed
src/​Ably.PubSub.Tests.Shared/​AgentTests.cs Namespace migration reviewed
src/​Ably.PubSub.Tests.Shared/​AblyResponseTests.cs Namespace migration reviewed
src/​Ably.PubSub.Tests.Shared/​AblyInsecureRequestExceptionTests.cs Namespace migration reviewed
src/​Ably.PubSub.Tests.NETFramework/​Ably.PubSub.Tests.NETFramework.csproj Namespace migration reviewed
src/​Ably.PubSub.Tests.DotNET/​PubSub/​PubSubPackageSpecs.cs Namespace migration reviewed
src/​Ably.PubSub.Tests.DotNET/​PubSub/​PubSubDoorSandboxSpecs.cs Namespace migration reviewed
src/​Ably.PubSub.Tests.DotNET/​PubSub/​PackagingSpecs.cs Namespace migration reviewed
src/​Ably.PubSub.Tests.DotNET/​PubSub/​ClientOptionsCloneSpecs.cs Namespace migration reviewed
src/​Ably.PubSub.Side/​Side.cs Namespace migration reviewed
src/​Ably.PubSub.Shared/​Utils/​TaskUtils.cs Namespace migration reviewed
src/​Ably.PubSub.Shared/​Utils/​StringUtils.cs Namespace migration reviewed
src/​Ably.PubSub.Shared/​Utils/​ReconnectionStrategy.cs Namespace migration reviewed
src/​Ably.PubSub.Shared/​Utils/​ErrorPolicy.cs Namespace migration reviewed
src/​Ably.PubSub.Shared/​Utils/​ConnectionChangeAwaiter.cs Namespace migration reviewed
src/​Ably.PubSub.Shared/​Utils/​ActionUtils.cs Namespace migration reviewed
src/​Ably.PubSub.Shared/​Utils/​ActionOnDispose.cs Namespace migration reviewed
src/​Ably.PubSub.Shared/​Unity/​UnityHelper.cs Namespace migration reviewed
src/​Ably.PubSub.Shared/​Unity/​UnityAdapter.cs Namespace migration reviewed
src/​Ably.PubSub.Shared/​Types/​SemanticVersion.cs Namespace migration reviewed
src/​Ably.PubSub.Shared/​Types/​ProtocolMessage.cs Namespace migration reviewed
src/​Ably.PubSub.Shared/​Types/​PresenceMessage.cs Namespace migration reviewed
src/​Ably.PubSub.Shared/​Types/​OperatingSystem.cs Namespace migration reviewed
src/​Ably.PubSub.Shared/​Types/​MessageExtras.cs Namespace migration reviewed
src/​Ably.PubSub.Shared/​Types/​Message.cs Namespace migration reviewed
src/​Ably.PubSub.Shared/​Types/​LockedList.cs Namespace migration reviewed
src/​Ably.PubSub.Shared/​Types/​IMessage.cs Namespace migration reviewed
src/​Ably.PubSub.Shared/​Types/​ErrorInfo.cs Namespace migration reviewed
src/​Ably.PubSub.Shared/​Types/​ErrorCodes.cs Namespace migration reviewed
src/​Ably.PubSub.Shared/​Types/​ConnectionDetails.cs Namespace migration reviewed
src/​Ably.PubSub.Shared/​Types/​ChannelParams.cs Namespace migration reviewed
src/​Ably.PubSub.Shared/​Types/​ChannelModes.cs Namespace migration reviewed
src/​Ably.PubSub.Shared/​Types/​AuthDetails.cs Namespace migration reviewed
src/​Ably.PubSub.Shared/​Transport/​TransportParams.cs Namespace migration reviewed
src/​Ably.PubSub.Shared/​Transport/​TaskWrapper.cs Namespace migration reviewed
src/​Ably.PubSub.Shared/​Transport/​States/​Connection/​ICountdownTimer.cs Namespace migration reviewed
src/​Ably.PubSub.Shared/​Transport/​States/​Connection/​ConnectionSuspendedState.cs Namespace migration reviewed
src/​Ably.PubSub.Shared/​Transport/​States/​Connection/​ConnectionStateBase.cs Namespace migration reviewed
src/​Ably.PubSub.Shared/​Transport/​States/​Connection/​ConnectionInitializedState.cs Namespace migration reviewed
src/​Ably.PubSub.Shared/​Transport/​States/​Connection/​ConnectionFailedState.cs Namespace migration reviewed
src/​Ably.PubSub.Shared/​Transport/​States/​Connection/​ConnectionDisconnectedState.cs Namespace migration reviewed
src/​Ably.PubSub.Shared/​Transport/​States/​Connection/​ConnectionConnectingState.cs Namespace migration reviewed
src/​Ably.PubSub.Shared/​Transport/​States/​Connection/​ConnectionConnectedState.cs Namespace migration reviewed
src/​Ably.PubSub.Shared/​Transport/​States/​Connection/​ConnectionClosingState.cs Namespace migration reviewed
src/​Ably.PubSub.Shared/​Transport/​States/​Connection/​ConnectionClosedState.cs Namespace migration reviewed
src/​Ably.PubSub.Shared/​Transport/​MsWebSocketTransport.cs Namespace migration reviewed
src/​Ably.PubSub.Shared/​Transport/​MsWebSocketConnection.cs Namespace migration reviewed
src/​Ably.PubSub.Shared/​Transport/​MessageAndCallback.cs Namespace migration reviewed
src/​Ably.PubSub.Shared/​Transport/​ITransport.cs Namespace migration reviewed
src/​Ably.PubSub.Shared/​Transport/​IConnectionManager.cs Namespace migration reviewed
src/​Ably.PubSub.Shared/​Transport/​IConnectionContext.cs Namespace migration reviewed
src/​Ably.PubSub.Shared/​Transport/​ConnectionManager.cs Namespace migration reviewed
src/​Ably.PubSub.Shared/​Transport/​ConnectionInfo.cs Namespace migration reviewed
src/​Ably.PubSub.Shared/​Transport/​ConnectionHeartbeatHandler.cs Namespace migration reviewed
src/​Ably.PubSub.Shared/​Transport/​ConnectionAttemptsInfo.cs Namespace migration reviewed
src/​Ably.PubSub.Shared/​Transport/​ConnectionAttempt.cs Namespace migration reviewed
src/​Ably.PubSub.Shared/​Transport/​AttemptFailedState.cs Namespace migration reviewed
src/​Ably.PubSub.Shared/​TokenResponse.cs Namespace migration reviewed
src/​Ably.PubSub.Shared/​TokenRequest.cs Namespace migration reviewed
src/​Ably.PubSub.Shared/​TokenParams.cs Namespace migration reviewed
src/​Ably.PubSub.Shared/​TokenDetails.cs Namespace migration reviewed
src/​Ably.PubSub.Shared/​TaskConstants.cs Namespace migration reviewed
src/​Ably.PubSub.Shared/​Statistics.cs Namespace migration reviewed
src/​Ably.PubSub.Shared/​Result.cs Namespace migration reviewed
src/​Ably.PubSub.Shared/​Realtime/​Workflows/​RealtimeWorkflow.cs Namespace migration reviewed
src/​Ably.PubSub.Shared/​Realtime/​Workflows/​RealtimeState.cs Namespace migration reviewed
src/​Ably.PubSub.Shared/​Realtime/​Workflows/​RealtimeCommands.cs Namespace migration reviewed
src/​Ably.PubSub.Shared/​Realtime/​Workflows/​RealtimeCommand.cs Namespace migration reviewed
src/​Ably.PubSub.Shared/​Realtime/​Workflows/​PingRequest.cs Namespace migration reviewed
src/​Ably.PubSub.Shared/​Realtime/​Workflows/​IQueueCommand.cs Namespace migration reviewed
src/​Ably.PubSub.Shared/​Realtime/​Workflows/​ChannelCommands.cs Namespace migration reviewed
src/​Ably.PubSub.Shared/​Realtime/​RecoveryKeyContext.cs Namespace migration reviewed
src/​Ably.PubSub.Shared/​Realtime/​RealtimeTransportData.cs Namespace migration reviewed
src/​Ably.PubSub.Shared/​Realtime/​RealtimeChannels.cs Namespace migration reviewed
src/​Ably.PubSub.Shared/​Realtime/​RealtimeChannel.cs Namespace migration reviewed
src/​Ably.PubSub.Shared/​Realtime/​PresenceMap.cs Namespace migration reviewed
src/​Ably.PubSub.Shared/​Realtime/​Presence.QueuedPresenceMessage.cs Namespace migration reviewed
src/​Ably.PubSub.Shared/​Realtime/​Presence.GetParams.cs Namespace migration reviewed
src/​Ably.PubSub.Shared/​Realtime/​Presence.cs Namespace migration reviewed
src/​Ably.PubSub.Shared/​Realtime/​MessageHandlerAction.cs Namespace migration reviewed
src/​Ably.PubSub.Shared/​Realtime/​LastMessageIds.cs Namespace migration reviewed
src/​Ably.PubSub.Shared/​Realtime/​IRealtimeChannel.cs Namespace migration reviewed
src/​Ably.PubSub.Shared/​Realtime/​Handlers.cs Namespace migration reviewed
src/​Ably.PubSub.Shared/​Realtime/​ConnectionStateChangedEventArgs.cs Namespace migration reviewed
src/​Ably.PubSub.Shared/​Realtime/​ConnectionState.cs Namespace migration reviewed
src/​Ably.PubSub.Shared/​Realtime/​ConnectionEvent.cs Namespace migration reviewed
src/​Ably.PubSub.Shared/​Realtime/​Connection.cs Namespace migration reviewed
src/​Ably.PubSub.Shared/​Realtime/​ChannelStateChangedEventArgs.cs Namespace migration reviewed
src/​Ably.PubSub.Shared/​Realtime/​ChannelState.cs Namespace migration reviewed
src/​Ably.PubSub.Shared/​Realtime/​ChannelProperties.cs Namespace migration reviewed
src/​Ably.PubSub.Shared/​Realtime/​ChannelMessageProcessor.cs Namespace migration reviewed
src/​Ably.PubSub.Shared/​Realtime/​ChannelEvent.cs Namespace migration reviewed
src/​Ably.PubSub.Shared/​Realtime/​ChannelErrorEventArgs.cs Namespace migration reviewed
src/​Ably.PubSub.Shared/​Realtime/​ChannelAwaiter.cs Namespace migration reviewed
src/​Ably.PubSub.Shared/​Realtime/​AttemptsHelpers.cs Namespace migration reviewed
src/​Ably.PubSub.Shared/​QueryDirection.cs Namespace migration reviewed
src/​Ably.PubSub.Shared/​Push/​RegistrationToken.cs Namespace migration reviewed
src/​Ably.PubSub.Shared/​Push/​PushRealtime.cs Namespace migration reviewed
src/​Ably.PubSub.Shared/​Push/​PushHttp.cs Namespace migration reviewed
src/​Ably.PubSub.Shared/​Push/​PushChannelSubscription.cs Namespace migration reviewed
src/​Ably.PubSub.Shared/​Push/​PushChannel.cs Namespace migration reviewed
src/​Ably.PubSub.Shared/​Push/​PushCallbacks.cs Namespace migration reviewed
src/​Ably.PubSub.Shared/​Push/​PushAdmin.cs Namespace migration reviewed
src/​Ably.PubSub.Shared/​Push/​PersistKeys.cs Namespace migration reviewed
src/​Ably.PubSub.Shared/​Push/​LocalDevice.cs Namespace migration reviewed
src/​Ably.PubSub.Shared/​Push/​ListSubscriptionsRequest.cs Namespace migration reviewed
src/​Ably.PubSub.Shared/​Push/​ListDeviceDetailsRequest.cs Namespace migration reviewed
src/​Ably.PubSub.Shared/​Push/​IPushChannelSubscriptions.cs Namespace migration reviewed
src/​Ably.PubSub.Shared/​Push/​IMobileDevice.cs Namespace migration reviewed
src/​Ably.PubSub.Shared/​Push/​IDeviceRegistrations.cs Namespace migration reviewed
src/​Ably.PubSub.Shared/​Push/​DeviceFormFactor.cs Namespace migration reviewed
src/​Ably.PubSub.Shared/​Push/​DeviceDetails.cs Namespace migration reviewed
src/​Ably.PubSub.Shared/​Push/​ActivationStateMachine.States.cs Namespace migration reviewed
src/​Ably.PubSub.Shared/​Push/​ActivationStateMachine.Events.cs Namespace migration reviewed
src/​Ably.PubSub.Shared/​Push/​ActivationStateMachine.cs Namespace migration reviewed
src/​Ably.PubSub.Shared/​PubSubRealtimeClient.cs Namespace migration reviewed
src/​Ably.PubSub.Shared/​PubSubHttpClient.cs Namespace migration reviewed
src/​Ably.PubSub.Shared/​Protocol.cs Namespace migration reviewed
src/​Ably.PubSub.Shared/​PaginatedResult.cs Namespace migration reviewed
src/​Ably.PubSub.Shared/​PaginatedRequestParams.cs Namespace migration reviewed
src/​Ably.PubSub.Shared/​MessageEncoders/​VcDiffErrorInfo.cs Namespace migration reviewed
src/​Ably.PubSub.Shared/​MessageEncoders/​VCDiffEncoder.cs Namespace migration reviewed
src/​Ably.PubSub.Shared/​MessageEncoders/​Utf8Encoder.cs Namespace migration reviewed
src/​Ably.PubSub.Shared/​MessageEncoders/​ProcessedPayload.cs Namespace migration reviewed
src/​Ably.PubSub.Shared/​MessageEncoders/​PayloadCache.cs Namespace migration reviewed
src/​Ably.PubSub.Shared/​MessageEncoders/​MessageHandler.cs Namespace migration reviewed
src/​Ably.PubSub.Shared/​MessageEncoders/​MessageEncoder.cs Namespace migration reviewed
src/​Ably.PubSub.Shared/​MessageEncoders/​JsonEncoder.cs Namespace migration reviewed
src/​Ably.PubSub.Shared/​MessageEncoders/​DecodingContext.cs Namespace migration reviewed
src/​Ably.PubSub.Shared/​MessageEncoders/​CipherEncoder.cs Namespace migration reviewed
src/​Ably.PubSub.Shared/​MessageEncoders/​Base64Encoder.cs Namespace migration reviewed
src/​Ably.PubSub.Shared/​JsonHelper.cs Namespace migration reviewed
src/​Ably.PubSub.Shared/​IPubSubRealtimeClient.cs Namespace migration reviewed
src/​Ably.PubSub.Shared/​IPubSubHttpClient.cs Namespace migration reviewed
src/​Ably.PubSub.Shared/​IPlatform.cs Namespace migration reviewed
src/​Ably.PubSub.Shared/​IoC.cs Namespace migration reviewed
src/​Ably.PubSub.Shared/​InternalLogger.cs Namespace migration reviewed
src/​Ably.PubSub.Shared/​ILoggerSink.cs Namespace migration reviewed
src/​Ably.PubSub.Shared/​ILogger.cs Namespace migration reviewed
src/​Ably.PubSub.Shared/​IInternalLogger.cs Namespace migration reviewed
src/​Ably.PubSub.Shared/​IChannels.cs Namespace migration reviewed
src/​Ably.PubSub.Shared/​IChannelCipher.cs Namespace migration reviewed
src/​Ably.PubSub.Shared/​IAblyHttpRequester.cs Namespace migration reviewed
src/​Ably.PubSub.Shared/​IAblyAuth.cs Namespace migration reviewed
src/​Ably.PubSub.Shared/​HttpUtility.cs Namespace migration reviewed
src/​Ably.PubSub.Shared/​HttpPaginatedResponse.cs Namespace migration reviewed
src/​Ably.PubSub.Shared/​Http/​IHttpChannel.cs Namespace migration reviewed
src/​Ably.PubSub.Shared/​Http/​HttpChannels.cs Namespace migration reviewed
src/​Ably.PubSub.Shared/​Http/​HttpChannel.cs Namespace migration reviewed
src/​Ably.PubSub.Shared/​Http/​ChannelOptions.cs Namespace migration reviewed
src/​Ably.PubSub.Shared/​Http/​ChannelDetails.cs Namespace migration reviewed
src/​Ably.PubSub.Shared/​Http/​AblyResponse.cs Namespace migration reviewed
src/​Ably.PubSub.Shared/​Http/​AblyRequest.cs Namespace migration reviewed
src/​Ably.PubSub.Shared/​Http/​AblyHttpRequester.cs Namespace migration reviewed
src/​Ably.PubSub.Shared/​Http/​AblyHttpOptions.cs Namespace migration reviewed
src/​Ably.PubSub.Shared/​Extensions/​UriExtensions.cs Namespace migration reviewed
src/​Ably.PubSub.Shared/​Extensions/​TaskExtensions.cs Namespace migration reviewed
src/​Ably.PubSub.Shared/​Extensions/​StringExtensions.cs Namespace migration reviewed
src/​Ably.PubSub.Shared/​Extensions/​PresenceExtensions.cs Namespace migration reviewed
src/​Ably.PubSub.Shared/​Extensions/​ObjectExtensions.cs Namespace migration reviewed
src/​Ably.PubSub.Shared/​Extensions/​EnumerableExtensions.cs Namespace migration reviewed
src/​Ably.PubSub.Shared/​Extensions/​DictionaryExtensions.cs Namespace migration reviewed
src/​Ably.PubSub.Shared/​Extensions/​DateExtensions.cs Namespace migration reviewed
src/​Ably.PubSub.Shared/​Extensions/​ChannelModeExtensions.cs Namespace migration reviewed
src/​Ably.PubSub.Shared/​EventEmitter.cs Namespace migration reviewed
src/​Ably.PubSub.Shared/​Encryption/​Crypto.cs Namespace migration reviewed
src/​Ably.PubSub.Shared/​Encryption/​AesCipher.cs Namespace migration reviewed
src/​Ably.PubSub.Shared/​Defaults.cs Namespace migration reviewed
src/​Ably.PubSub.Shared/​DefaultLoggerSink.cs Namespace migration reviewed
src/​Ably.PubSub.Shared/​DefaultLogger.cs Namespace migration reviewed
src/​Ably.PubSub.Shared/​DataRequestQuery.cs Namespace migration reviewed
src/​Ably.PubSub.Shared/​CustomSerialisers/​TimeSpanJsonConverter.cs Namespace migration reviewed
src/​Ably.PubSub.Shared/​CustomSerialisers/​MessageExtrasConverter.cs Namespace migration reviewed
src/​Ably.PubSub.Shared/​CustomSerialisers/​MessageDataConverter.cs Namespace migration reviewed
src/​Ably.PubSub.Shared/​CustomSerialisers/​DateTimeOffsetJsonConverter.cs Namespace migration reviewed
src/​Ably.PubSub.Shared/​CustomSerialisers/​CapabilityJsonConverter.cs Namespace migration reviewed
src/​Ably.PubSub.Shared/​ClientOptions.cs Namespace migration reviewed
src/​Ably.PubSub.Shared/​CipherParams.cs Namespace migration reviewed
src/​Ably.PubSub.Shared/​CapabilityResource.cs Namespace migration reviewed
src/​Ably.PubSub.Shared/​Capability.cs Namespace migration reviewed
src/​Ably.PubSub.Shared/​AuthOptions.cs Namespace migration reviewed
src/​Ably.PubSub.Shared/​AuthMethod.cs Namespace migration reviewed
src/​Ably.PubSub.Shared/​AsyncHelper.cs Namespace migration reviewed
src/​Ably.PubSub.Shared/​ApiKey.cs Namespace migration reviewed
src/​Ably.PubSub.Shared/​Agent.cs Namespace migration reviewed
src/​Ably.PubSub.Shared/​AblyInsecureRequestException.cs Namespace migration reviewed
src/​Ably.PubSub.Shared/​AblyException.cs Namespace migration reviewed
src/​Ably.PubSub.Shared/​AblyAuth.cs Namespace migration reviewed
src/​Ably.PubSub.Shared/​Ably.PubSub.Shared.projitems Namespace migration reviewed
src/​Ably.PubSub.Shared.MsgPack/​MsgPackHelper.cs Namespace migration reviewed
src/​Ably.PubSub.Shared.MsgPack/​CustomSerialisers/​TimespanMessagePackSerializer.cs Namespace migration reviewed
src/​Ably.PubSub.Shared.MsgPack/​CustomSerialisers/​GeneratedSerializers/​System_Net_HttpStatusCodeSerializer.cs Namespace migration reviewed
src/​Ably.PubSub.Shared.MsgPack/​CustomSerialisers/​GeneratedSerializers/​IO_Ably_Types_ProtocolMessage_MessageActionSerializer.cs Namespace migration reviewed
src/​Ably.PubSub.Shared.MsgPack/​CustomSerialisers/​GeneratedSerializers/​IO_Ably_PresenceMessage_ActionTypeSerializer.cs Namespace migration reviewed
src/​Ably.PubSub.Shared.MsgPack/​CustomSerialisers/​GeneratedSerializers/​IO_Ably_MessageCountSerializer.cs Namespace migration reviewed
src/​Ably.PubSub.Shared.MsgPack/​CustomSerialisers/​GeneratedSerializers/​IO_Ably_ErrorInfoSerializer.cs Namespace migration reviewed
src/​Ably.PubSub.Shared.MsgPack/​CustomSerialisers/​GeneratedSerializers/​IO_Ably_CapabilitySerializer.cs Namespace migration reviewed
src/​Ably.PubSub.Shared.MsgPack/​CustomSerialisers/​GeneratedSerializers/​IO_Ably_Auth_TokenDetailsSerializer.cs Namespace migration reviewed
src/​Ably.PubSub.Shared.MsgPack/​CustomSerialisers/​DateTimeOffsetMessagePackSerializer.cs Namespace migration reviewed
src/​Ably.PubSub.Shared.MsgPack/​CustomSerialisers/​CapabilityMessagePackSerializer.cs Namespace migration reviewed
src/​Ably.PubSub.Server/​PubSubServer.cs Namespace migration reviewed
src/​Ably.PubSub.Server/​Ably.PubSub.Server.csproj Namespace migration reviewed
src/​Ably.PubSub.Server.NETFramework/​Ably.PubSub.Server.NETFramework.csproj Namespace migration reviewed
src/​Ably.PubSub.Device/​PubSubDevice.cs Namespace migration reviewed
src/​Ably.PubSub.Device/​Ably.PubSub.Device.csproj Namespace migration reviewed
src/​Ably.PubSub.Core/​Properties/​AssemblyInfo.cs Namespace migration reviewed
src/​Ably.PubSub.Core/​Platform.cs Namespace migration reviewed
src/​Ably.PubSub.Core/​Ably.PubSub.Core.csproj Namespace migration reviewed
src/​Ably.PubSub.Core.NETFramework/​Properties/​AssemblyInfo.cs Namespace migration reviewed
src/​Ably.PubSub.Core.NETFramework/​Platform.cs Namespace migration reviewed
src/​Ably.PubSub.Core.NETFramework/​Ably.PubSub.Core.NETFramework.csproj Namespace migration reviewed
nuget/​ably.pubsub.server.nuspec Namespace migration reviewed
nuget/​ably.pubsub.device.nuspec Namespace migration reviewed
examples/​NotificationsPublisher/​Program.cs Namespace migration reviewed
examples/​NotificationsPublisher/​AppLogger.cs Namespace migration reviewed
CLAUDE.md Namespace migration reviewed
CHANGELOG.md Namespace migration reviewed

💡 Add a code-review agent skill or configure MCP servers for context-aware, tailored reviews. Learn more in the docs.

Comment thread unity/Assets/Ably/Examples/Dashboard/AblyMain.cs
Comment thread unity/Assets/Tests/EditMode/AuthSpecs.cs
Comment thread src/Ably.PubSub.Core.NETFramework/Properties/AssemblyInfo.cs Outdated
Comment thread src/Ably.PubSub.Core/Properties/AssemblyInfo.cs Outdated
Comment thread src/Ably.PubSub.Shared/IoC.cs Outdated

@ttypic ttypic left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM

The namespace move mechanically over-applied to three comments whose
IO.Ably references were deliberate residuals:

- Both core AssemblyInfo files said Package builds sign with
  Ably.PubSub.snk; no such file exists - the signing key deliberately
  keeps its historical IO.Ably.snk name. Restored.
- IoC.cs's historical note claimed the assembly was "renamed from
  Ably.PubSub to Ably.PubSub.Core"; no assembly was ever named plain
  Ably.PubSub - the true history is a rename from IO.Ably to
  Ably.PubSub.Core. Restored.

The asm.GetType("Ably.PubSub.Platform") lookup and its doc comment are
correct for the new namespace (pinned by IoC_ResolvesThePlatformClass)
and are untouched.
The committed unity/Assets/Ably/Plugins/Ably.PubSub.Device.dll still
carried the pre-rename API (AblyRealtime, AblyRest, IO.Ably.*
namespaces), so the in-tree Unity examples and test assemblies - which
reference the new API - could not compile against it. Regenerated with
the sanctioned unity-plugins-updater.sh from this branch's sources.

The regeneration surfaced one missed rename site: the ILRepack
internalize-exclude pattern in cake-build/unity-internalize-exclude.txt
still read ^IO\.Ably\.PubSub\.Device\..* (its escaped dots kept it out
of every plain-text IO.Ably sweep), so the first regeneration
internalized the door class. The pattern now matches the moved
namespace, ^Ably\.PubSub\.Device\..*, and PubSubDevice is public in the
merged plugin again.

Verified with monodis and string scans: assembly identity
Ably.PubSub.Device 2.0.0.0 exactly once; the recorded
duplicate-attribute check matches the previously accepted baseline (one
Module-scope and one Assembly-scope row per attribute); 125 public
types, all under Ably.PubSub.* with the door public and
Newtonsoft/DeltaCodec/BCL shims internalized; the public type surface
equals the old plugin's modulo the shipped renames and deprecated-API
removals; the Ably.PubSub.Platform reflection literal present, no
IO.Ably user strings, and no non-DeltaCodec IO.Ably type names remain.
The plugin's .meta GUID and link.xml (assembly-scoped) are unchanged.

This retires the release-pass regeneration deferral recorded on the
rename PR; the Windows-side release checks (sn -v strong-name
verification, IL2CPP validation) remain release items.
Base automatically changed from integration/rest-to-http-renaming to integration/v2 September 29, 2026 07:01
@sacOO7
sacOO7 requested a lite review from Copilot September 29, 2026 10:10
@sacOO7

sacOO7 commented Sep 29, 2026

Copy link
Copy Markdown
Contributor Author

Thanks for the approval 👍

Copilot AI left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Copilot review overview

🟢 Approval recommended

No unresolved issues were identified that would block approval.

Review effort: Lite
Findings: None

Resolved since last review (5)

@sacOO7
sacOO7 merged commit 54eff1b into integration/v2 Sep 29, 2026
33 checks passed
@sacOO7
sacOO7 deleted the integration/namespace-ably-pubsub branch September 29, 2026 13:12

This branch was successfully deployed

1 active deployment
staging/pull/1342/features — 6436a5d4 Deployed Sep 28, 2026 by github-actions[bot]
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Development

Successfully merging this pull request may close these issues.

3 participants