crowdypy 0.5.0.dev1__tar.gz → 0.5.1.dev1__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {crowdypy-0.5.0.dev1 → crowdypy-0.5.1.dev1}/MIGRATION.md +15 -0
- {crowdypy-0.5.0.dev1 → crowdypy-0.5.1.dev1}/PKG-INFO +8 -6
- {crowdypy-0.5.0.dev1 → crowdypy-0.5.1.dev1}/README.md +7 -5
- {crowdypy-0.5.0.dev1 → crowdypy-0.5.1.dev1}/docs/compatibility.md +2 -2
- {crowdypy-0.5.0.dev1 → crowdypy-0.5.1.dev1}/docs/e2e-coverage.md +2 -1
- {crowdypy-0.5.0.dev1 → crowdypy-0.5.1.dev1}/docs/parity-matrix.md +2 -2
- {crowdypy-0.5.0.dev1 → crowdypy-0.5.1.dev1}/native/replication.hpp +1 -2
- {crowdypy-0.5.0.dev1 → crowdypy-0.5.1.dev1}/pyproject.toml +8 -8
- {crowdypy-0.5.0.dev1 → crowdypy-0.5.1.dev1}/schema.gql +91 -79
- {crowdypy-0.5.0.dev1 → crowdypy-0.5.1.dev1}/src/crowdypy/_generated/enums.py +1 -1
- {crowdypy-0.5.0.dev1 → crowdypy-0.5.1.dev1}/src/crowdypy/_generated/inputs.py +2 -2
- {crowdypy-0.5.0.dev1 → crowdypy-0.5.1.dev1}/src/crowdypy/_generated/operations.py +1 -1
- {crowdypy-0.5.0.dev1 → crowdypy-0.5.1.dev1}/src/crowdypy/_sync/stores.py +38 -10
- {crowdypy-0.5.0.dev1 → crowdypy-0.5.1.dev1}/src/crowdypy/_version.py +1 -1
- {crowdypy-0.5.0.dev1 → crowdypy-0.5.1.dev1}/src/crowdypy/player_host/schemas.v1.json +2 -2
- {crowdypy-0.5.0.dev1 → crowdypy-0.5.1.dev1}/src/crowdypy/stores.py +38 -10
- {crowdypy-0.5.0.dev1 → crowdypy-0.5.1.dev1}/tests/fixtures/player-host.v1.json +2 -2
- {crowdypy-0.5.0.dev1 → crowdypy-0.5.1.dev1}/tests/unit/test_durable_stores.py +76 -0
- {crowdypy-0.5.0.dev1 → crowdypy-0.5.1.dev1}/uv.lock +2 -2
- {crowdypy-0.5.0.dev1 → crowdypy-0.5.1.dev1}/vendor/CrowdyCPP/CMakeLists.txt +1 -1
- {crowdypy-0.5.0.dev1 → crowdypy-0.5.1.dev1}/vendor/CrowdyCPP/PROVENANCE.md +1 -1
- {crowdypy-0.5.0.dev1 → crowdypy-0.5.1.dev1}/vendor/CrowdyCPP/include/crowdy/client.hpp +1 -1
- {crowdypy-0.5.0.dev1 → crowdypy-0.5.1.dev1}/vendor/CrowdyCPP/include/crowdy/domains/exec.hpp +5 -5
- {crowdypy-0.5.0.dev1 → crowdypy-0.5.1.dev1}/vendor/CrowdyCPP/include/crowdy/domains/world_data.hpp +6 -2
- {crowdypy-0.5.0.dev1 → crowdypy-0.5.1.dev1}/vendor/CrowdyCPP/include/crowdy/generated/enums.hpp +2 -2
- {crowdypy-0.5.0.dev1 → crowdypy-0.5.1.dev1}/vendor/CrowdyCPP/include/crowdy/generated/operations.hpp +20 -2
- {crowdypy-0.5.0.dev1 → crowdypy-0.5.1.dev1}/vendor/CrowdyCPP/include/crowdy/session/chunk_store.hpp +24 -4
- {crowdypy-0.5.0.dev1 → crowdypy-0.5.1.dev1}/vendor/CrowdyCPP/package.json +6 -6
- {crowdypy-0.5.0.dev1 → crowdypy-0.5.1.dev1}/vendor/CrowdyCPP/src/session/world_session.cpp +24 -0
- {crowdypy-0.5.0.dev1 → crowdypy-0.5.1.dev1}/vendor/CrowdyCPP/tools/parity/fixtures/crowdy-studio-diagnostics.v1.json +2 -2
- {crowdypy-0.5.0.dev1 → crowdypy-0.5.1.dev1}/vendor/CrowdyCPP/tools/parity/fixtures/crowdyjs-studio-layout.v1.json +2 -2
- {crowdypy-0.5.0.dev1 → crowdypy-0.5.1.dev1}/.gitattributes +0 -0
- {crowdypy-0.5.0.dev1 → crowdypy-0.5.1.dev1}/.gitignore +0 -0
- {crowdypy-0.5.0.dev1 → crowdypy-0.5.1.dev1}/.gitleaks.toml +0 -0
- {crowdypy-0.5.0.dev1 → crowdypy-0.5.1.dev1}/AGENTS.md +0 -0
- {crowdypy-0.5.0.dev1 → crowdypy-0.5.1.dev1}/CMakeLists.txt +0 -0
- {crowdypy-0.5.0.dev1 → crowdypy-0.5.1.dev1}/LICENSE +0 -0
- {crowdypy-0.5.0.dev1 → crowdypy-0.5.1.dev1}/SECURITY.md +0 -0
- {crowdypy-0.5.0.dev1 → crowdypy-0.5.1.dev1}/benchmarks/README.md +0 -0
- {crowdypy-0.5.0.dev1 → crowdypy-0.5.1.dev1}/benchmarks/bench_replication.py +0 -0
- {crowdypy-0.5.0.dev1 → crowdypy-0.5.1.dev1}/licenses/OpenSSL-LICENSE.txt +0 -0
- {crowdypy-0.5.0.dev1 → crowdypy-0.5.1.dev1}/native/common.hpp +0 -0
- {crowdypy-0.5.0.dev1 → crowdypy-0.5.1.dev1}/native/module.cpp +0 -0
- {crowdypy-0.5.0.dev1 → crowdypy-0.5.1.dev1}/native/replication_binding.cpp +0 -0
- {crowdypy-0.5.0.dev1 → crowdypy-0.5.1.dev1}/native/session_binding.cpp +0 -0
- {crowdypy-0.5.0.dev1 → crowdypy-0.5.1.dev1}/native/wire_binding.cpp +0 -0
- {crowdypy-0.5.0.dev1 → crowdypy-0.5.1.dev1}/operations/actors/Actor.graphql +0 -0
- {crowdypy-0.5.0.dev1 → crowdypy-0.5.1.dev1}/operations/actors/Actors.graphql +0 -0
- {crowdypy-0.5.0.dev1 → crowdypy-0.5.1.dev1}/operations/actors/BatchLookupActors.graphql +0 -0
- {crowdypy-0.5.0.dev1 → crowdypy-0.5.1.dev1}/operations/actors/CreateActor.graphql +0 -0
- {crowdypy-0.5.0.dev1 → crowdypy-0.5.1.dev1}/operations/actors/DeleteActor.graphql +0 -0
- {crowdypy-0.5.0.dev1 → crowdypy-0.5.1.dev1}/operations/actors/UpdateActor.graphql +0 -0
- {crowdypy-0.5.0.dev1 → crowdypy-0.5.1.dev1}/operations/actors/UpdateActorState.graphql +0 -0
- {crowdypy-0.5.0.dev1 → crowdypy-0.5.1.dev1}/operations/appAccess/AppAccessTiers.graphql +0 -0
- {crowdypy-0.5.0.dev1 → crowdypy-0.5.1.dev1}/operations/appAccess/AppFeatures.graphql +0 -0
- {crowdypy-0.5.0.dev1 → crowdypy-0.5.1.dev1}/operations/appAccess/AppGrantMemberCandidates.graphql +0 -0
- {crowdypy-0.5.0.dev1 → crowdypy-0.5.1.dev1}/operations/appAccess/AppUserAccessByApp.graphql +0 -0
- {crowdypy-0.5.0.dev1 → crowdypy-0.5.1.dev1}/operations/appAccess/ArchiveAccessTier.graphql +0 -0
- {crowdypy-0.5.0.dev1 → crowdypy-0.5.1.dev1}/operations/appAccess/ClaimFreeAppAccess.graphql +0 -0
- {crowdypy-0.5.0.dev1 → crowdypy-0.5.1.dev1}/operations/appAccess/CreateAccessTier.graphql +0 -0
- {crowdypy-0.5.0.dev1 → crowdypy-0.5.1.dev1}/operations/appAccess/DefineAppFeature.graphql +0 -0
- {crowdypy-0.5.0.dev1 → crowdypy-0.5.1.dev1}/operations/appAccess/GrantAppAccess.graphql +0 -0
- {crowdypy-0.5.0.dev1 → crowdypy-0.5.1.dev1}/operations/appAccess/GrantMyAppAccess.graphql +0 -0
- {crowdypy-0.5.0.dev1 → crowdypy-0.5.1.dev1}/operations/appAccess/GrantTierFeature.graphql +0 -0
- {crowdypy-0.5.0.dev1 → crowdypy-0.5.1.dev1}/operations/appAccess/MyAppAccess.graphql +0 -0
- {crowdypy-0.5.0.dev1 → crowdypy-0.5.1.dev1}/operations/appAccess/RevokeAppAccess.graphql +0 -0
- {crowdypy-0.5.0.dev1 → crowdypy-0.5.1.dev1}/operations/appAccess/RevokeTierFeature.graphql +0 -0
- {crowdypy-0.5.0.dev1 → crowdypy-0.5.1.dev1}/operations/appAccess/RuntimePermissions.graphql +0 -0
- {crowdypy-0.5.0.dev1 → crowdypy-0.5.1.dev1}/operations/appAccess/TierFeatures.graphql +0 -0
- {crowdypy-0.5.0.dev1 → crowdypy-0.5.1.dev1}/operations/appAccess/UpdateAccessTier.graphql +0 -0
- {crowdypy-0.5.0.dev1 → crowdypy-0.5.1.dev1}/operations/apps/App.graphql +0 -0
- {crowdypy-0.5.0.dev1 → crowdypy-0.5.1.dev1}/operations/apps/AppBySlug.graphql +0 -0
- {crowdypy-0.5.0.dev1 → crowdypy-0.5.1.dev1}/operations/apps/AppDiscovery.graphql +0 -0
- {crowdypy-0.5.0.dev1 → crowdypy-0.5.1.dev1}/operations/apps/AppsForOrg.graphql +0 -0
- {crowdypy-0.5.0.dev1 → crowdypy-0.5.1.dev1}/operations/apps/ArchiveApp.graphql +0 -0
- {crowdypy-0.5.0.dev1 → crowdypy-0.5.1.dev1}/operations/apps/CodeAdmissions.graphql +0 -0
- {crowdypy-0.5.0.dev1 → crowdypy-0.5.1.dev1}/operations/apps/CreateApp.graphql +0 -0
- {crowdypy-0.5.0.dev1 → crowdypy-0.5.1.dev1}/operations/apps/MarketplaceApps.graphql +0 -0
- {crowdypy-0.5.0.dev1 → crowdypy-0.5.1.dev1}/operations/apps/MyApps.graphql +0 -0
- {crowdypy-0.5.0.dev1 → crowdypy-0.5.1.dev1}/operations/apps/PlaceableDatacenters.graphql +0 -0
- {crowdypy-0.5.0.dev1 → crowdypy-0.5.1.dev1}/operations/apps/UpdateApp.graphql +0 -0
- {crowdypy-0.5.0.dev1 → crowdypy-0.5.1.dev1}/operations/auth/Logout.graphql +0 -0
- {crowdypy-0.5.0.dev1 → crowdypy-0.5.1.dev1}/operations/auth/LogoutAllDevices.graphql +0 -0
- {crowdypy-0.5.0.dev1 → crowdypy-0.5.1.dev1}/operations/avatars/Avatars.graphql +0 -0
- {crowdypy-0.5.0.dev1 → crowdypy-0.5.1.dev1}/operations/billing/AppBudget.graphql +0 -0
- {crowdypy-0.5.0.dev1 → crowdypy-0.5.1.dev1}/operations/billing/AppBudgets.graphql +0 -0
- {crowdypy-0.5.0.dev1 → crowdypy-0.5.1.dev1}/operations/billing/SetAppBudget.graphql +0 -0
- {crowdypy-0.5.0.dev1 → crowdypy-0.5.1.dev1}/operations/billing/WalletBalance.graphql +0 -0
- {crowdypy-0.5.0.dev1 → crowdypy-0.5.1.dev1}/operations/billing/WalletTransactions.graphql +0 -0
- {crowdypy-0.5.0.dev1 → crowdypy-0.5.1.dev1}/operations/channels/AddChannelMember.graphql +0 -0
- {crowdypy-0.5.0.dev1 → crowdypy-0.5.1.dev1}/operations/channels/Channel.graphql +0 -0
- {crowdypy-0.5.0.dev1 → crowdypy-0.5.1.dev1}/operations/channels/ChannelMembers.graphql +0 -0
- {crowdypy-0.5.0.dev1 → crowdypy-0.5.1.dev1}/operations/channels/ChannelPolicy.graphql +0 -0
- {crowdypy-0.5.0.dev1 → crowdypy-0.5.1.dev1}/operations/channels/ChannelRoles.graphql +0 -0
- {crowdypy-0.5.0.dev1 → crowdypy-0.5.1.dev1}/operations/channels/Channels.graphql +0 -0
- {crowdypy-0.5.0.dev1 → crowdypy-0.5.1.dev1}/operations/channels/CreateChannel.graphql +0 -0
- {crowdypy-0.5.0.dev1 → crowdypy-0.5.1.dev1}/operations/channels/CreateChannelRole.graphql +0 -0
- {crowdypy-0.5.0.dev1 → crowdypy-0.5.1.dev1}/operations/channels/DeleteChannel.graphql +0 -0
- {crowdypy-0.5.0.dev1 → crowdypy-0.5.1.dev1}/operations/channels/DeleteChannelRole.graphql +0 -0
- {crowdypy-0.5.0.dev1 → crowdypy-0.5.1.dev1}/operations/channels/JoinChannel.graphql +0 -0
- {crowdypy-0.5.0.dev1 → crowdypy-0.5.1.dev1}/operations/channels/LeaveChannel.graphql +0 -0
- {crowdypy-0.5.0.dev1 → crowdypy-0.5.1.dev1}/operations/channels/MyChannels.graphql +0 -0
- {crowdypy-0.5.0.dev1 → crowdypy-0.5.1.dev1}/operations/channels/RemoveChannelMember.graphql +0 -0
- {crowdypy-0.5.0.dev1 → crowdypy-0.5.1.dev1}/operations/channels/RequestToJoinChannel.graphql +0 -0
- {crowdypy-0.5.0.dev1 → crowdypy-0.5.1.dev1}/operations/channels/SetChannelMemberRoles.graphql +0 -0
- {crowdypy-0.5.0.dev1 → crowdypy-0.5.1.dev1}/operations/channels/SetChannelPolicy.graphql +0 -0
- {crowdypy-0.5.0.dev1 → crowdypy-0.5.1.dev1}/operations/channels/UpdateChannel.graphql +0 -0
- {crowdypy-0.5.0.dev1 → crowdypy-0.5.1.dev1}/operations/channels/UpdateChannelRole.graphql +0 -0
- {crowdypy-0.5.0.dev1 → crowdypy-0.5.1.dev1}/operations/chunks/GetChunk.graphql +0 -0
- {crowdypy-0.5.0.dev1 → crowdypy-0.5.1.dev1}/operations/chunks/GetChunkLods.graphql +0 -0
- {crowdypy-0.5.0.dev1 → crowdypy-0.5.1.dev1}/operations/chunks/GetChunksByDistance.graphql +0 -0
- {crowdypy-0.5.0.dev1 → crowdypy-0.5.1.dev1}/operations/chunks/GetVoxelList.graphql +0 -0
- {crowdypy-0.5.0.dev1 → crowdypy-0.5.1.dev1}/operations/chunks/UpdateChunk.graphql +0 -0
- {crowdypy-0.5.0.dev1 → crowdypy-0.5.1.dev1}/operations/chunks/UpdateChunkLods.graphql +0 -0
- {crowdypy-0.5.0.dev1 → crowdypy-0.5.1.dev1}/operations/chunks/UpdateChunkState.graphql +0 -0
- {crowdypy-0.5.0.dev1 → crowdypy-0.5.1.dev1}/operations/crowdyStudio/CrowdyStudio.graphql +0 -0
- {crowdypy-0.5.0.dev1 → crowdypy-0.5.1.dev1}/operations/exec/Exec.graphql +0 -0
- {crowdypy-0.5.0.dev1 → crowdypy-0.5.1.dev1}/operations/gameApps/GameApps.graphql +0 -0
- {crowdypy-0.5.0.dev1 → crowdypy-0.5.1.dev1}/operations/grids/CreateGridChannel.graphql +0 -0
- {crowdypy-0.5.0.dev1 → crowdypy-0.5.1.dev1}/operations/grids/GridChannels.graphql +0 -0
- {crowdypy-0.5.0.dev1 → crowdypy-0.5.1.dev1}/operations/grids/MintGridToken.graphql +0 -0
- {crowdypy-0.5.0.dev1 → crowdypy-0.5.1.dev1}/operations/host/Host.graphql +0 -0
- {crowdypy-0.5.0.dev1 → crowdypy-0.5.1.dev1}/operations/marketplace/Marketplace.graphql +0 -0
- {crowdypy-0.5.0.dev1 → crowdypy-0.5.1.dev1}/operations/organizations/CreateOrgRole.graphql +0 -0
- {crowdypy-0.5.0.dev1 → crowdypy-0.5.1.dev1}/operations/organizations/CreateOrgToken.graphql +0 -0
- {crowdypy-0.5.0.dev1 → crowdypy-0.5.1.dev1}/operations/organizations/CreateOrganization.graphql +0 -0
- {crowdypy-0.5.0.dev1 → crowdypy-0.5.1.dev1}/operations/organizations/DeleteOrgRole.graphql +0 -0
- {crowdypy-0.5.0.dev1 → crowdypy-0.5.1.dev1}/operations/organizations/InviteOrgMember.graphql +0 -0
- {crowdypy-0.5.0.dev1 → crowdypy-0.5.1.dev1}/operations/organizations/MemberRoles.graphql +0 -0
- {crowdypy-0.5.0.dev1 → crowdypy-0.5.1.dev1}/operations/organizations/MyOrganizations.graphql +0 -0
- {crowdypy-0.5.0.dev1 → crowdypy-0.5.1.dev1}/operations/organizations/OrgMembers.graphql +0 -0
- {crowdypy-0.5.0.dev1 → crowdypy-0.5.1.dev1}/operations/organizations/OrgPermissions.graphql +0 -0
- {crowdypy-0.5.0.dev1 → crowdypy-0.5.1.dev1}/operations/organizations/OrgRoles.graphql +0 -0
- {crowdypy-0.5.0.dev1 → crowdypy-0.5.1.dev1}/operations/organizations/OrgTokens.graphql +0 -0
- {crowdypy-0.5.0.dev1 → crowdypy-0.5.1.dev1}/operations/organizations/Organization.graphql +0 -0
- {crowdypy-0.5.0.dev1 → crowdypy-0.5.1.dev1}/operations/organizations/OrganizationBySlug.graphql +0 -0
- {crowdypy-0.5.0.dev1 → crowdypy-0.5.1.dev1}/operations/organizations/RemoveOrgMember.graphql +0 -0
- {crowdypy-0.5.0.dev1 → crowdypy-0.5.1.dev1}/operations/organizations/RevokeOrgToken.graphql +0 -0
- {crowdypy-0.5.0.dev1 → crowdypy-0.5.1.dev1}/operations/organizations/UpdateOrgMemberRoles.graphql +0 -0
- {crowdypy-0.5.0.dev1 → crowdypy-0.5.1.dev1}/operations/organizations/UpdateOrgRole.graphql +0 -0
- {crowdypy-0.5.0.dev1 → crowdypy-0.5.1.dev1}/operations/organizations/UpdateOrgToken.graphql +0 -0
- {crowdypy-0.5.0.dev1 → crowdypy-0.5.1.dev1}/operations/payments/CapturePaypalCheckout.graphql +0 -0
- {crowdypy-0.5.0.dev1 → crowdypy-0.5.1.dev1}/operations/payments/CreateCheckout.graphql +0 -0
- {crowdypy-0.5.0.dev1 → crowdypy-0.5.1.dev1}/operations/payments/MyCheckouts.graphql +0 -0
- {crowdypy-0.5.0.dev1 → crowdypy-0.5.1.dev1}/operations/platform/PlatformConfig.graphql +0 -0
- {crowdypy-0.5.0.dev1 → crowdypy-0.5.1.dev1}/operations/playerWallet/PlayerWallet.graphql +0 -0
- {crowdypy-0.5.0.dev1 → crowdypy-0.5.1.dev1}/operations/quotas/DeleteQuota.graphql +0 -0
- {crowdypy-0.5.0.dev1 → crowdypy-0.5.1.dev1}/operations/quotas/EffectiveQuota.graphql +0 -0
- {crowdypy-0.5.0.dev1 → crowdypy-0.5.1.dev1}/operations/quotas/QuotasForApp.graphql +0 -0
- {crowdypy-0.5.0.dev1 → crowdypy-0.5.1.dev1}/operations/quotas/QuotasForOrg.graphql +0 -0
- {crowdypy-0.5.0.dev1 → crowdypy-0.5.1.dev1}/operations/quotas/SetQuota.graphql +0 -0
- {crowdypy-0.5.0.dev1 → crowdypy-0.5.1.dev1}/operations/serverStatus/ActiveGraphQLServers.graphql +0 -0
- {crowdypy-0.5.0.dev1 → crowdypy-0.5.1.dev1}/operations/serverStatus/GameClientBootstrap.graphql +0 -0
- {crowdypy-0.5.0.dev1 → crowdypy-0.5.1.dev1}/operations/serverStatus/GraphqlServers.graphql +0 -0
- {crowdypy-0.5.0.dev1 → crowdypy-0.5.1.dev1}/operations/serverStatus/ServerWithLeastClients.graphql +0 -0
- {crowdypy-0.5.0.dev1 → crowdypy-0.5.1.dev1}/operations/serverStatus/VersionInfo.graphql +0 -0
- {crowdypy-0.5.0.dev1 → crowdypy-0.5.1.dev1}/operations/sharedEnvironment/SharedEnvironment.graphql +0 -0
- {crowdypy-0.5.0.dev1 → crowdypy-0.5.1.dev1}/operations/state/DeleteUserAppState.graphql +0 -0
- {crowdypy-0.5.0.dev1 → crowdypy-0.5.1.dev1}/operations/state/UpdateUserAppState.graphql +0 -0
- {crowdypy-0.5.0.dev1 → crowdypy-0.5.1.dev1}/operations/state/UserAppState.graphql +0 -0
- {crowdypy-0.5.0.dev1 → crowdypy-0.5.1.dev1}/operations/state/UserAppStates.graphql +0 -0
- {crowdypy-0.5.0.dev1 → crowdypy-0.5.1.dev1}/operations/teams/AddTeamMember.graphql +0 -0
- {crowdypy-0.5.0.dev1 → crowdypy-0.5.1.dev1}/operations/teams/CreateTeam.graphql +0 -0
- {crowdypy-0.5.0.dev1 → crowdypy-0.5.1.dev1}/operations/teams/CreateTeamRole.graphql +0 -0
- {crowdypy-0.5.0.dev1 → crowdypy-0.5.1.dev1}/operations/teams/DeleteTeam.graphql +0 -0
- {crowdypy-0.5.0.dev1 → crowdypy-0.5.1.dev1}/operations/teams/DeleteTeamRole.graphql +0 -0
- {crowdypy-0.5.0.dev1 → crowdypy-0.5.1.dev1}/operations/teams/JoinTeam.graphql +0 -0
- {crowdypy-0.5.0.dev1 → crowdypy-0.5.1.dev1}/operations/teams/LeaveTeam.graphql +0 -0
- {crowdypy-0.5.0.dev1 → crowdypy-0.5.1.dev1}/operations/teams/MyTeams.graphql +0 -0
- {crowdypy-0.5.0.dev1 → crowdypy-0.5.1.dev1}/operations/teams/RemoveTeamMember.graphql +0 -0
- {crowdypy-0.5.0.dev1 → crowdypy-0.5.1.dev1}/operations/teams/RequestToJoinTeam.graphql +0 -0
- {crowdypy-0.5.0.dev1 → crowdypy-0.5.1.dev1}/operations/teams/SetTeamMemberRoles.graphql +0 -0
- {crowdypy-0.5.0.dev1 → crowdypy-0.5.1.dev1}/operations/teams/SetTeamPolicy.graphql +0 -0
- {crowdypy-0.5.0.dev1 → crowdypy-0.5.1.dev1}/operations/teams/Team.graphql +0 -0
- {crowdypy-0.5.0.dev1 → crowdypy-0.5.1.dev1}/operations/teams/TeamMembers.graphql +0 -0
- {crowdypy-0.5.0.dev1 → crowdypy-0.5.1.dev1}/operations/teams/TeamPolicy.graphql +0 -0
- {crowdypy-0.5.0.dev1 → crowdypy-0.5.1.dev1}/operations/teams/TeamRoles.graphql +0 -0
- {crowdypy-0.5.0.dev1 → crowdypy-0.5.1.dev1}/operations/teams/Teams.graphql +0 -0
- {crowdypy-0.5.0.dev1 → crowdypy-0.5.1.dev1}/operations/teams/UpdateTeam.graphql +0 -0
- {crowdypy-0.5.0.dev1 → crowdypy-0.5.1.dev1}/operations/teams/UpdateTeamRole.graphql +0 -0
- {crowdypy-0.5.0.dev1 → crowdypy-0.5.1.dev1}/operations/teleport/TeleportRequest.graphql +0 -0
- {crowdypy-0.5.0.dev1 → crowdypy-0.5.1.dev1}/operations/usage/AppGraphqlOperations.graphql +0 -0
- {crowdypy-0.5.0.dev1 → crowdypy-0.5.1.dev1}/operations/usage/AppUsageSummary.graphql +0 -0
- {crowdypy-0.5.0.dev1 → crowdypy-0.5.1.dev1}/operations/usage/PlayerPulse.graphql +0 -0
- {crowdypy-0.5.0.dev1 → crowdypy-0.5.1.dev1}/operations/users/DeleteMyAccount.graphql +0 -0
- {crowdypy-0.5.0.dev1 → crowdypy-0.5.1.dev1}/operations/users/FreePlayWindow.graphql +0 -0
- {crowdypy-0.5.0.dev1 → crowdypy-0.5.1.dev1}/operations/users/Me.graphql +0 -0
- {crowdypy-0.5.0.dev1 → crowdypy-0.5.1.dev1}/operations/users/UpdateGamertag.graphql +0 -0
- {crowdypy-0.5.0.dev1 → crowdypy-0.5.1.dev1}/operations/users/UpdateUserState.graphql +0 -0
- {crowdypy-0.5.0.dev1 → crowdypy-0.5.1.dev1}/operations/users/User.graphql +0 -0
- {crowdypy-0.5.0.dev1 → crowdypy-0.5.1.dev1}/operations/voxels/ListVoxelUpdatesByDistance.graphql +0 -0
- {crowdypy-0.5.0.dev1 → crowdypy-0.5.1.dev1}/operations/voxels/ListVoxels.graphql +0 -0
- {crowdypy-0.5.0.dev1 → crowdypy-0.5.1.dev1}/operations/voxels/RollbackVoxelUpdates.graphql +0 -0
- {crowdypy-0.5.0.dev1 → crowdypy-0.5.1.dev1}/operations/voxels/UpdateVoxel.graphql +0 -0
- {crowdypy-0.5.0.dev1 → crowdypy-0.5.1.dev1}/operations/voxels/VoxelUpdateHistory.graphql +0 -0
- {crowdypy-0.5.0.dev1 → crowdypy-0.5.1.dev1}/scripts/_pins.py +0 -0
- {crowdypy-0.5.0.dev1 → crowdypy-0.5.1.dev1}/scripts/ci/assert_default_origin.py +0 -0
- {crowdypy-0.5.0.dev1 → crowdypy-0.5.1.dev1}/scripts/ci/build_openssl.sh +0 -0
- {crowdypy-0.5.0.dev1 → crowdypy-0.5.1.dev1}/scripts/ci/check_content_policy.py +0 -0
- {crowdypy-0.5.0.dev1 → crowdypy-0.5.1.dev1}/scripts/ci/check_pin_tiers.py +0 -0
- {crowdypy-0.5.0.dev1 → crowdypy-0.5.1.dev1}/scripts/ci/cibw_before_all_linux.sh +0 -0
- {crowdypy-0.5.0.dev1 → crowdypy-0.5.1.dev1}/scripts/ci/resolve-release-tier.sh +0 -0
- {crowdypy-0.5.0.dev1 → crowdypy-0.5.1.dev1}/scripts/ci/resolve-release-tier.test.sh +0 -0
- {crowdypy-0.5.0.dev1 → crowdypy-0.5.1.dev1}/scripts/ci/resolve_pypi_version.py +0 -0
- {crowdypy-0.5.0.dev1 → crowdypy-0.5.1.dev1}/scripts/ci/stamp_version.py +0 -0
- {crowdypy-0.5.0.dev1 → crowdypy-0.5.1.dev1}/scripts/ci/verify_artifacts.py +0 -0
- {crowdypy-0.5.0.dev1 → crowdypy-0.5.1.dev1}/scripts/codegen.py +0 -0
- {crowdypy-0.5.0.dev1 → crowdypy-0.5.1.dev1}/scripts/schema_drift.py +0 -0
- {crowdypy-0.5.0.dev1 → crowdypy-0.5.1.dev1}/scripts/schema_sync.py +0 -0
- {crowdypy-0.5.0.dev1 → crowdypy-0.5.1.dev1}/scripts/unasync.py +0 -0
- {crowdypy-0.5.0.dev1 → crowdypy-0.5.1.dev1}/scripts/vendor_crowdycpp.py +0 -0
- {crowdypy-0.5.0.dev1 → crowdypy-0.5.1.dev1}/src/crowdypy/__init__.py +0 -0
- {crowdypy-0.5.0.dev1 → crowdypy-0.5.1.dev1}/src/crowdypy/_concurrency.py +0 -0
- {crowdypy-0.5.0.dev1 → crowdypy-0.5.1.dev1}/src/crowdypy/_default_origin.py +0 -0
- {crowdypy-0.5.0.dev1 → crowdypy-0.5.1.dev1}/src/crowdypy/_generated/__init__.py +0 -0
- {crowdypy-0.5.0.dev1 → crowdypy-0.5.1.dev1}/src/crowdypy/_grid.py +0 -0
- {crowdypy-0.5.0.dev1 → crowdypy-0.5.1.dev1}/src/crowdypy/_native.pyi +0 -0
- {crowdypy-0.5.0.dev1 → crowdypy-0.5.1.dev1}/src/crowdypy/_operation.py +0 -0
- {crowdypy-0.5.0.dev1 → crowdypy-0.5.1.dev1}/src/crowdypy/_sync/__init__.py +0 -0
- {crowdypy-0.5.0.dev1 → crowdypy-0.5.1.dev1}/src/crowdypy/_sync/client.py +0 -0
- {crowdypy-0.5.0.dev1 → crowdypy-0.5.1.dev1}/src/crowdypy/_sync/domains/__init__.py +0 -0
- {crowdypy-0.5.0.dev1 → crowdypy-0.5.1.dev1}/src/crowdypy/_sync/domains/_base.py +0 -0
- {crowdypy-0.5.0.dev1 → crowdypy-0.5.1.dev1}/src/crowdypy/_sync/domains/actors.py +0 -0
- {crowdypy-0.5.0.dev1 → crowdypy-0.5.1.dev1}/src/crowdypy/_sync/domains/admin.py +0 -0
- {crowdypy-0.5.0.dev1 → crowdypy-0.5.1.dev1}/src/crowdypy/_sync/domains/app_access.py +0 -0
- {crowdypy-0.5.0.dev1 → crowdypy-0.5.1.dev1}/src/crowdypy/_sync/domains/apps.py +0 -0
- {crowdypy-0.5.0.dev1 → crowdypy-0.5.1.dev1}/src/crowdypy/_sync/domains/auth.py +0 -0
- {crowdypy-0.5.0.dev1 → crowdypy-0.5.1.dev1}/src/crowdypy/_sync/domains/avatars.py +0 -0
- {crowdypy-0.5.0.dev1 → crowdypy-0.5.1.dev1}/src/crowdypy/_sync/domains/billing.py +0 -0
- {crowdypy-0.5.0.dev1 → crowdypy-0.5.1.dev1}/src/crowdypy/_sync/domains/channels.py +0 -0
- {crowdypy-0.5.0.dev1 → crowdypy-0.5.1.dev1}/src/crowdypy/_sync/domains/chunks.py +0 -0
- {crowdypy-0.5.0.dev1 → crowdypy-0.5.1.dev1}/src/crowdypy/_sync/domains/crowdy_studio.py +0 -0
- {crowdypy-0.5.0.dev1 → crowdypy-0.5.1.dev1}/src/crowdypy/_sync/domains/crowdy_studio_agent.py +0 -0
- {crowdypy-0.5.0.dev1 → crowdypy-0.5.1.dev1}/src/crowdypy/_sync/domains/crowdy_studio_github.py +0 -0
- {crowdypy-0.5.0.dev1 → crowdypy-0.5.1.dev1}/src/crowdypy/_sync/domains/discovery.py +0 -0
- {crowdypy-0.5.0.dev1 → crowdypy-0.5.1.dev1}/src/crowdypy/_sync/domains/exec.py +0 -0
- {crowdypy-0.5.0.dev1 → crowdypy-0.5.1.dev1}/src/crowdypy/_sync/domains/game_apps.py +0 -0
- {crowdypy-0.5.0.dev1 → crowdypy-0.5.1.dev1}/src/crowdypy/_sync/domains/grids.py +0 -0
- {crowdypy-0.5.0.dev1 → crowdypy-0.5.1.dev1}/src/crowdypy/_sync/domains/host.py +0 -0
- {crowdypy-0.5.0.dev1 → crowdypy-0.5.1.dev1}/src/crowdypy/_sync/domains/marketplace.py +0 -0
- {crowdypy-0.5.0.dev1 → crowdypy-0.5.1.dev1}/src/crowdypy/_sync/domains/organizations.py +0 -0
- {crowdypy-0.5.0.dev1 → crowdypy-0.5.1.dev1}/src/crowdypy/_sync/domains/payments.py +0 -0
- {crowdypy-0.5.0.dev1 → crowdypy-0.5.1.dev1}/src/crowdypy/_sync/domains/platform.py +0 -0
- {crowdypy-0.5.0.dev1 → crowdypy-0.5.1.dev1}/src/crowdypy/_sync/domains/player_wallet.py +0 -0
- {crowdypy-0.5.0.dev1 → crowdypy-0.5.1.dev1}/src/crowdypy/_sync/domains/portal.py +0 -0
- {crowdypy-0.5.0.dev1 → crowdypy-0.5.1.dev1}/src/crowdypy/_sync/domains/quotas.py +0 -0
- {crowdypy-0.5.0.dev1 → crowdypy-0.5.1.dev1}/src/crowdypy/_sync/domains/server_status.py +0 -0
- {crowdypy-0.5.0.dev1 → crowdypy-0.5.1.dev1}/src/crowdypy/_sync/domains/shared_environment.py +0 -0
- {crowdypy-0.5.0.dev1 → crowdypy-0.5.1.dev1}/src/crowdypy/_sync/domains/state.py +0 -0
- {crowdypy-0.5.0.dev1 → crowdypy-0.5.1.dev1}/src/crowdypy/_sync/domains/teams.py +0 -0
- {crowdypy-0.5.0.dev1 → crowdypy-0.5.1.dev1}/src/crowdypy/_sync/domains/teleport.py +0 -0
- {crowdypy-0.5.0.dev1 → crowdypy-0.5.1.dev1}/src/crowdypy/_sync/domains/udp.py +0 -0
- {crowdypy-0.5.0.dev1 → crowdypy-0.5.1.dev1}/src/crowdypy/_sync/domains/usage.py +0 -0
- {crowdypy-0.5.0.dev1 → crowdypy-0.5.1.dev1}/src/crowdypy/_sync/domains/users.py +0 -0
- {crowdypy-0.5.0.dev1 → crowdypy-0.5.1.dev1}/src/crowdypy/_sync/domains/voxels.py +0 -0
- {crowdypy-0.5.0.dev1 → crowdypy-0.5.1.dev1}/src/crowdypy/_sync/graphql.py +0 -0
- {crowdypy-0.5.0.dev1 → crowdypy-0.5.1.dev1}/src/crowdypy/_sync/grid_scope.py +0 -0
- {crowdypy-0.5.0.dev1 → crowdypy-0.5.1.dev1}/src/crowdypy/_sync/kit/__init__.py +0 -0
- {crowdypy-0.5.0.dev1 → crowdypy-0.5.1.dev1}/src/crowdypy/_sync/kit/actions.py +0 -0
- {crowdypy-0.5.0.dev1 → crowdypy-0.5.1.dev1}/src/crowdypy/_sync/kit/kit.py +0 -0
- {crowdypy-0.5.0.dev1 → crowdypy-0.5.1.dev1}/src/crowdypy/_sync/kit/social.py +0 -0
- {crowdypy-0.5.0.dev1 → crowdypy-0.5.1.dev1}/src/crowdypy/_sync/kit/wire.py +0 -0
- {crowdypy-0.5.0.dev1 → crowdypy-0.5.1.dev1}/src/crowdypy/_sync/rediscover.py +0 -0
- {crowdypy-0.5.0.dev1 → crowdypy-0.5.1.dev1}/src/crowdypy/_sync/world.py +0 -0
- {crowdypy-0.5.0.dev1 → crowdypy-0.5.1.dev1}/src/crowdypy/auth_state.py +0 -0
- {crowdypy-0.5.0.dev1 → crowdypy-0.5.1.dev1}/src/crowdypy/client.py +0 -0
- {crowdypy-0.5.0.dev1 → crowdypy-0.5.1.dev1}/src/crowdypy/codecs.py +0 -0
- {crowdypy-0.5.0.dev1 → crowdypy-0.5.1.dev1}/src/crowdypy/datacenter_redirect.py +0 -0
- {crowdypy-0.5.0.dev1 → crowdypy-0.5.1.dev1}/src/crowdypy/domains/__init__.py +0 -0
- {crowdypy-0.5.0.dev1 → crowdypy-0.5.1.dev1}/src/crowdypy/domains/_base.py +0 -0
- {crowdypy-0.5.0.dev1 → crowdypy-0.5.1.dev1}/src/crowdypy/domains/actors.py +0 -0
- {crowdypy-0.5.0.dev1 → crowdypy-0.5.1.dev1}/src/crowdypy/domains/admin.py +0 -0
- {crowdypy-0.5.0.dev1 → crowdypy-0.5.1.dev1}/src/crowdypy/domains/app_access.py +0 -0
- {crowdypy-0.5.0.dev1 → crowdypy-0.5.1.dev1}/src/crowdypy/domains/apps.py +0 -0
- {crowdypy-0.5.0.dev1 → crowdypy-0.5.1.dev1}/src/crowdypy/domains/auth.py +0 -0
- {crowdypy-0.5.0.dev1 → crowdypy-0.5.1.dev1}/src/crowdypy/domains/avatars.py +0 -0
- {crowdypy-0.5.0.dev1 → crowdypy-0.5.1.dev1}/src/crowdypy/domains/billing.py +0 -0
- {crowdypy-0.5.0.dev1 → crowdypy-0.5.1.dev1}/src/crowdypy/domains/channels.py +0 -0
- {crowdypy-0.5.0.dev1 → crowdypy-0.5.1.dev1}/src/crowdypy/domains/chunks.py +0 -0
- {crowdypy-0.5.0.dev1 → crowdypy-0.5.1.dev1}/src/crowdypy/domains/crowdy_studio.py +0 -0
- {crowdypy-0.5.0.dev1 → crowdypy-0.5.1.dev1}/src/crowdypy/domains/crowdy_studio_agent.py +0 -0
- {crowdypy-0.5.0.dev1 → crowdypy-0.5.1.dev1}/src/crowdypy/domains/crowdy_studio_github.py +0 -0
- {crowdypy-0.5.0.dev1 → crowdypy-0.5.1.dev1}/src/crowdypy/domains/discovery.py +0 -0
- {crowdypy-0.5.0.dev1 → crowdypy-0.5.1.dev1}/src/crowdypy/domains/exec.py +0 -0
- {crowdypy-0.5.0.dev1 → crowdypy-0.5.1.dev1}/src/crowdypy/domains/game_apps.py +0 -0
- {crowdypy-0.5.0.dev1 → crowdypy-0.5.1.dev1}/src/crowdypy/domains/grids.py +0 -0
- {crowdypy-0.5.0.dev1 → crowdypy-0.5.1.dev1}/src/crowdypy/domains/host.py +0 -0
- {crowdypy-0.5.0.dev1 → crowdypy-0.5.1.dev1}/src/crowdypy/domains/marketplace.py +0 -0
- {crowdypy-0.5.0.dev1 → crowdypy-0.5.1.dev1}/src/crowdypy/domains/organizations.py +0 -0
- {crowdypy-0.5.0.dev1 → crowdypy-0.5.1.dev1}/src/crowdypy/domains/payments.py +0 -0
- {crowdypy-0.5.0.dev1 → crowdypy-0.5.1.dev1}/src/crowdypy/domains/platform.py +0 -0
- {crowdypy-0.5.0.dev1 → crowdypy-0.5.1.dev1}/src/crowdypy/domains/player_wallet.py +0 -0
- {crowdypy-0.5.0.dev1 → crowdypy-0.5.1.dev1}/src/crowdypy/domains/portal.py +0 -0
- {crowdypy-0.5.0.dev1 → crowdypy-0.5.1.dev1}/src/crowdypy/domains/quotas.py +0 -0
- {crowdypy-0.5.0.dev1 → crowdypy-0.5.1.dev1}/src/crowdypy/domains/server_status.py +0 -0
- {crowdypy-0.5.0.dev1 → crowdypy-0.5.1.dev1}/src/crowdypy/domains/shared_environment.py +0 -0
- {crowdypy-0.5.0.dev1 → crowdypy-0.5.1.dev1}/src/crowdypy/domains/state.py +0 -0
- {crowdypy-0.5.0.dev1 → crowdypy-0.5.1.dev1}/src/crowdypy/domains/teams.py +0 -0
- {crowdypy-0.5.0.dev1 → crowdypy-0.5.1.dev1}/src/crowdypy/domains/teleport.py +0 -0
- {crowdypy-0.5.0.dev1 → crowdypy-0.5.1.dev1}/src/crowdypy/domains/udp.py +0 -0
- {crowdypy-0.5.0.dev1 → crowdypy-0.5.1.dev1}/src/crowdypy/domains/usage.py +0 -0
- {crowdypy-0.5.0.dev1 → crowdypy-0.5.1.dev1}/src/crowdypy/domains/users.py +0 -0
- {crowdypy-0.5.0.dev1 → crowdypy-0.5.1.dev1}/src/crowdypy/domains/voxels.py +0 -0
- {crowdypy-0.5.0.dev1 → crowdypy-0.5.1.dev1}/src/crowdypy/enums.py +0 -0
- {crowdypy-0.5.0.dev1 → crowdypy-0.5.1.dev1}/src/crowdypy/errors.py +0 -0
- {crowdypy-0.5.0.dev1 → crowdypy-0.5.1.dev1}/src/crowdypy/estate.py +0 -0
- {crowdypy-0.5.0.dev1 → crowdypy-0.5.1.dev1}/src/crowdypy/exec_gateway.py +0 -0
- {crowdypy-0.5.0.dev1 → crowdypy-0.5.1.dev1}/src/crowdypy/graphql.py +0 -0
- {crowdypy-0.5.0.dev1 → crowdypy-0.5.1.dev1}/src/crowdypy/grid_scope.py +0 -0
- {crowdypy-0.5.0.dev1 → crowdypy-0.5.1.dev1}/src/crowdypy/inputs.py +0 -0
- {crowdypy-0.5.0.dev1 → crowdypy-0.5.1.dev1}/src/crowdypy/kit/__init__.py +0 -0
- {crowdypy-0.5.0.dev1 → crowdypy-0.5.1.dev1}/src/crowdypy/kit/actions.py +0 -0
- {crowdypy-0.5.0.dev1 → crowdypy-0.5.1.dev1}/src/crowdypy/kit/kit.py +0 -0
- {crowdypy-0.5.0.dev1 → crowdypy-0.5.1.dev1}/src/crowdypy/kit/social.py +0 -0
- {crowdypy-0.5.0.dev1 → crowdypy-0.5.1.dev1}/src/crowdypy/kit/wire.py +0 -0
- {crowdypy-0.5.0.dev1 → crowdypy-0.5.1.dev1}/src/crowdypy/lb_cookie.py +0 -0
- {crowdypy-0.5.0.dev1 → crowdypy-0.5.1.dev1}/src/crowdypy/media.py +0 -0
- {crowdypy-0.5.0.dev1 → crowdypy-0.5.1.dev1}/src/crowdypy/pkce.py +0 -0
- {crowdypy-0.5.0.dev1 → crowdypy-0.5.1.dev1}/src/crowdypy/player_host/__init__.py +0 -0
- {crowdypy-0.5.0.dev1 → crowdypy-0.5.1.dev1}/src/crowdypy/player_host/agent_errors.py +0 -0
- {crowdypy-0.5.0.dev1 → crowdypy-0.5.1.dev1}/src/crowdypy/player_host/agent_types.py +0 -0
- {crowdypy-0.5.0.dev1 → crowdypy-0.5.1.dev1}/src/crowdypy/player_host/json_schema.py +0 -0
- {crowdypy-0.5.0.dev1 → crowdypy-0.5.1.dev1}/src/crowdypy/player_host/schemas.py +0 -0
- {crowdypy-0.5.0.dev1 → crowdypy-0.5.1.dev1}/src/crowdypy/player_host/types.py +0 -0
- {crowdypy-0.5.0.dev1 → crowdypy-0.5.1.dev1}/src/crowdypy/py.typed +0 -0
- {crowdypy-0.5.0.dev1 → crowdypy-0.5.1.dev1}/src/crowdypy/rediscover.py +0 -0
- {crowdypy-0.5.0.dev1 → crowdypy-0.5.1.dev1}/src/crowdypy/replication.py +0 -0
- {crowdypy-0.5.0.dev1 → crowdypy-0.5.1.dev1}/src/crowdypy/session.py +0 -0
- {crowdypy-0.5.0.dev1 → crowdypy-0.5.1.dev1}/src/crowdypy/studio/__init__.py +0 -0
- {crowdypy-0.5.0.dev1 → crowdypy-0.5.1.dev1}/src/crowdypy/studio/client_tick_interval.py +0 -0
- {crowdypy-0.5.0.dev1 → crowdypy-0.5.1.dev1}/src/crowdypy/studio/controller.py +0 -0
- {crowdypy-0.5.0.dev1 → crowdypy-0.5.1.dev1}/src/crowdypy/studio/diagnostics.py +0 -0
- {crowdypy-0.5.0.dev1 → crowdypy-0.5.1.dev1}/src/crowdypy/studio/github_new_repo.py +0 -0
- {crowdypy-0.5.0.dev1 → crowdypy-0.5.1.dev1}/src/crowdypy/studio/layout.py +0 -0
- {crowdypy-0.5.0.dev1 → crowdypy-0.5.1.dev1}/src/crowdypy/studio/models.py +0 -0
- {crowdypy-0.5.0.dev1 → crowdypy-0.5.1.dev1}/src/crowdypy/studio/starter_projects.py +0 -0
- {crowdypy-0.5.0.dev1 → crowdypy-0.5.1.dev1}/src/crowdypy/subscriptions.py +0 -0
- {crowdypy-0.5.0.dev1 → crowdypy-0.5.1.dev1}/src/crowdypy/sync.py +0 -0
- {crowdypy-0.5.0.dev1 → crowdypy-0.5.1.dev1}/src/crowdypy/utils.py +0 -0
- {crowdypy-0.5.0.dev1 → crowdypy-0.5.1.dev1}/src/crowdypy/wire.py +0 -0
- {crowdypy-0.5.0.dev1 → crowdypy-0.5.1.dev1}/src/crowdypy/world.py +0 -0
- {crowdypy-0.5.0.dev1 → crowdypy-0.5.1.dev1}/tests/conftest.py +0 -0
- {crowdypy-0.5.0.dev1 → crowdypy-0.5.1.dev1}/tests/e2e/__init__.py +0 -0
- {crowdypy-0.5.0.dev1 → crowdypy-0.5.1.dev1}/tests/e2e/conftest.py +0 -0
- {crowdypy-0.5.0.dev1 → crowdypy-0.5.1.dev1}/tests/e2e/test_e2e_identity.py +0 -0
- {crowdypy-0.5.0.dev1 → crowdypy-0.5.1.dev1}/tests/e2e/test_e2e_open_grid_exec_gateway.py +0 -0
- {crowdypy-0.5.0.dev1 → crowdypy-0.5.1.dev1}/tests/e2e/test_e2e_replication.py +0 -0
- {crowdypy-0.5.0.dev1 → crowdypy-0.5.1.dev1}/tests/e2e/test_e2e_studio.py +0 -0
- {crowdypy-0.5.0.dev1 → crowdypy-0.5.1.dev1}/tests/e2e/test_e2e_world.py +0 -0
- {crowdypy-0.5.0.dev1 → crowdypy-0.5.1.dev1}/tests/e2e/test_e2e_world_data.py +0 -0
- {crowdypy-0.5.0.dev1 → crowdypy-0.5.1.dev1}/tests/fixtures/README.md +0 -0
- {crowdypy-0.5.0.dev1 → crowdypy-0.5.1.dev1}/tests/fixtures/binary-wire-fixtures.json +0 -0
- {crowdypy-0.5.0.dev1 → crowdypy-0.5.1.dev1}/tests/fixtures/exec-client-frames.json +0 -0
- {crowdypy-0.5.0.dev1 → crowdypy-0.5.1.dev1}/tests/unit/__init__.py +0 -0
- {crowdypy-0.5.0.dev1 → crowdypy-0.5.1.dev1}/tests/unit/domains/__init__.py +0 -0
- {crowdypy-0.5.0.dev1 → crowdypy-0.5.1.dev1}/tests/unit/domains/test_crowdycpp_roots.py +0 -0
- {crowdypy-0.5.0.dev1 → crowdypy-0.5.1.dev1}/tests/unit/domains/test_org_domains.py +0 -0
- {crowdypy-0.5.0.dev1 → crowdypy-0.5.1.dev1}/tests/unit/domains/test_social_domains.py +0 -0
- {crowdypy-0.5.0.dev1 → crowdypy-0.5.1.dev1}/tests/unit/domains/test_studio_exec_domains.py +0 -0
- {crowdypy-0.5.0.dev1 → crowdypy-0.5.1.dev1}/tests/unit/domains/test_world_domains.py +0 -0
- {crowdypy-0.5.0.dev1 → crowdypy-0.5.1.dev1}/tests/unit/test_core.py +0 -0
- {crowdypy-0.5.0.dev1 → crowdypy-0.5.1.dev1}/tests/unit/test_estate_moves.py +0 -0
- {crowdypy-0.5.0.dev1 → crowdypy-0.5.1.dev1}/tests/unit/test_exec_gateway.py +0 -0
- {crowdypy-0.5.0.dev1 → crowdypy-0.5.1.dev1}/tests/unit/test_fixture_provenance.py +0 -0
- {crowdypy-0.5.0.dev1 → crowdypy-0.5.1.dev1}/tests/unit/test_grid_scope.py +0 -0
- {crowdypy-0.5.0.dev1 → crowdypy-0.5.1.dev1}/tests/unit/test_kit.py +0 -0
- {crowdypy-0.5.0.dev1 → crowdypy-0.5.1.dev1}/tests/unit/test_lazy_exports.py +0 -0
- {crowdypy-0.5.0.dev1 → crowdypy-0.5.1.dev1}/tests/unit/test_player_host.py +0 -0
- {crowdypy-0.5.0.dev1 → crowdypy-0.5.1.dev1}/tests/unit/test_release_versions.py +0 -0
- {crowdypy-0.5.0.dev1 → crowdypy-0.5.1.dev1}/tests/unit/test_replication.py +0 -0
- {crowdypy-0.5.0.dev1 → crowdypy-0.5.1.dev1}/tests/unit/test_sdk_audience.py +0 -0
- {crowdypy-0.5.0.dev1 → crowdypy-0.5.1.dev1}/tests/unit/test_studio_controller.py +0 -0
- {crowdypy-0.5.0.dev1 → crowdypy-0.5.1.dev1}/tests/unit/test_studio_diagnostics.py +0 -0
- {crowdypy-0.5.0.dev1 → crowdypy-0.5.1.dev1}/tests/unit/test_studio_layout.py +0 -0
- {crowdypy-0.5.0.dev1 → crowdypy-0.5.1.dev1}/tests/unit/test_subscriptions.py +0 -0
- {crowdypy-0.5.0.dev1 → crowdypy-0.5.1.dev1}/tests/unit/test_transport.py +0 -0
- {crowdypy-0.5.0.dev1 → crowdypy-0.5.1.dev1}/tests/unit/test_udp_api.py +0 -0
- {crowdypy-0.5.0.dev1 → crowdypy-0.5.1.dev1}/tests/unit/test_wire.py +0 -0
- {crowdypy-0.5.0.dev1 → crowdypy-0.5.1.dev1}/tests/unit/test_world_session.py +0 -0
- {crowdypy-0.5.0.dev1 → crowdypy-0.5.1.dev1}/tools/e2e/provision.py +0 -0
- {crowdypy-0.5.0.dev1 → crowdypy-0.5.1.dev1}/tools/fixtures/player_host.mjs +0 -0
- {crowdypy-0.5.0.dev1 → crowdypy-0.5.1.dev1}/tools/parity/classifications.toml +0 -0
- {crowdypy-0.5.0.dev1 → crowdypy-0.5.1.dev1}/tools/parity/parity.py +0 -0
- {crowdypy-0.5.0.dev1 → crowdypy-0.5.1.dev1}/vendor/CrowdyCPP/LICENSE +0 -0
- {crowdypy-0.5.0.dev1 → crowdypy-0.5.1.dev1}/vendor/CrowdyCPP/cmake/CheckPublicHeaders.cmake +0 -0
- {crowdypy-0.5.0.dev1 → crowdypy-0.5.1.dev1}/vendor/CrowdyCPP/cmake/CrowdyCPPConfig.cmake.in +0 -0
- {crowdypy-0.5.0.dev1 → crowdypy-0.5.1.dev1}/vendor/CrowdyCPP/cmake/studio_layout_fixture.hpp.in +0 -0
- {crowdypy-0.5.0.dev1 → crowdypy-0.5.1.dev1}/vendor/CrowdyCPP/include/crowdy/core/base64.hpp +0 -0
- {crowdypy-0.5.0.dev1 → crowdypy-0.5.1.dev1}/vendor/CrowdyCPP/include/crowdy/core/bytes.hpp +0 -0
- {crowdypy-0.5.0.dev1 → crowdypy-0.5.1.dev1}/vendor/CrowdyCPP/include/crowdy/core/clock.hpp +0 -0
- {crowdypy-0.5.0.dev1 → crowdypy-0.5.1.dev1}/vendor/CrowdyCPP/include/crowdy/core/crypto.hpp +0 -0
- {crowdypy-0.5.0.dev1 → crowdypy-0.5.1.dev1}/vendor/CrowdyCPP/include/crowdy/core/logger.hpp +0 -0
- {crowdypy-0.5.0.dev1 → crowdypy-0.5.1.dev1}/vendor/CrowdyCPP/include/crowdy/core/result.hpp +0 -0
- {crowdypy-0.5.0.dev1 → crowdypy-0.5.1.dev1}/vendor/CrowdyCPP/include/crowdy/core/spsc.hpp +0 -0
- {crowdypy-0.5.0.dev1 → crowdypy-0.5.1.dev1}/vendor/CrowdyCPP/include/crowdy/core/uuid.hpp +0 -0
- {crowdypy-0.5.0.dev1 → crowdypy-0.5.1.dev1}/vendor/CrowdyCPP/include/crowdy/crowdy.hpp +0 -0
- {crowdypy-0.5.0.dev1 → crowdypy-0.5.1.dev1}/vendor/CrowdyCPP/include/crowdy/default_origin.hpp +0 -0
- {crowdypy-0.5.0.dev1 → crowdypy-0.5.1.dev1}/vendor/CrowdyCPP/include/crowdy/domains/admin.hpp +0 -0
- {crowdypy-0.5.0.dev1 → crowdypy-0.5.1.dev1}/vendor/CrowdyCPP/include/crowdy/domains/auth.hpp +0 -0
- {crowdypy-0.5.0.dev1 → crowdypy-0.5.1.dev1}/vendor/CrowdyCPP/include/crowdy/domains/crowdy_studio.hpp +0 -0
- {crowdypy-0.5.0.dev1 → crowdypy-0.5.1.dev1}/vendor/CrowdyCPP/include/crowdy/domains/crowdy_studio_agent.hpp +0 -0
- {crowdypy-0.5.0.dev1 → crowdypy-0.5.1.dev1}/vendor/CrowdyCPP/include/crowdy/domains/crowdy_studio_github.hpp +0 -0
- {crowdypy-0.5.0.dev1 → crowdypy-0.5.1.dev1}/vendor/CrowdyCPP/include/crowdy/domains/discovery.hpp +0 -0
- {crowdypy-0.5.0.dev1 → crowdypy-0.5.1.dev1}/vendor/CrowdyCPP/include/crowdy/domains/domain_base.hpp +0 -0
- {crowdypy-0.5.0.dev1 → crowdypy-0.5.1.dev1}/vendor/CrowdyCPP/include/crowdy/domains/game_apps.hpp +0 -0
- {crowdypy-0.5.0.dev1 → crowdypy-0.5.1.dev1}/vendor/CrowdyCPP/include/crowdy/domains/grids.hpp +0 -0
- {crowdypy-0.5.0.dev1 → crowdypy-0.5.1.dev1}/vendor/CrowdyCPP/include/crowdy/domains/groups.hpp +0 -0
- {crowdypy-0.5.0.dev1 → crowdypy-0.5.1.dev1}/vendor/CrowdyCPP/include/crowdy/domains/marketplace.hpp +0 -0
- {crowdypy-0.5.0.dev1 → crowdypy-0.5.1.dev1}/vendor/CrowdyCPP/include/crowdy/domains/player_wallet.hpp +0 -0
- {crowdypy-0.5.0.dev1 → crowdypy-0.5.1.dev1}/vendor/CrowdyCPP/include/crowdy/domains/portal.hpp +0 -0
- {crowdypy-0.5.0.dev1 → crowdypy-0.5.1.dev1}/vendor/CrowdyCPP/include/crowdy/domains/realtime_control.hpp +0 -0
- {crowdypy-0.5.0.dev1 → crowdypy-0.5.1.dev1}/vendor/CrowdyCPP/include/crowdy/domains/server_status.hpp +0 -0
- {crowdypy-0.5.0.dev1 → crowdypy-0.5.1.dev1}/vendor/CrowdyCPP/include/crowdy/domains/types.hpp +0 -0
- {crowdypy-0.5.0.dev1 → crowdypy-0.5.1.dev1}/vendor/CrowdyCPP/include/crowdy/domains/users.hpp +0 -0
- {crowdypy-0.5.0.dev1 → crowdypy-0.5.1.dev1}/vendor/CrowdyCPP/include/crowdy/graphql/async_scope.hpp +0 -0
- {crowdypy-0.5.0.dev1 → crowdypy-0.5.1.dev1}/vendor/CrowdyCPP/include/crowdy/graphql/auth_state.hpp +0 -0
- {crowdypy-0.5.0.dev1 → crowdypy-0.5.1.dev1}/vendor/CrowdyCPP/include/crowdy/graphql/datacenter_redirect.hpp +0 -0
- {crowdypy-0.5.0.dev1 → crowdypy-0.5.1.dev1}/vendor/CrowdyCPP/include/crowdy/graphql/dispatcher.hpp +0 -0
- {crowdypy-0.5.0.dev1 → crowdypy-0.5.1.dev1}/vendor/CrowdyCPP/include/crowdy/graphql/errors.hpp +0 -0
- {crowdypy-0.5.0.dev1 → crowdypy-0.5.1.dev1}/vendor/CrowdyCPP/include/crowdy/graphql/estate.hpp +0 -0
- {crowdypy-0.5.0.dev1 → crowdypy-0.5.1.dev1}/vendor/CrowdyCPP/include/crowdy/graphql/graphql_client.hpp +0 -0
- {crowdypy-0.5.0.dev1 → crowdypy-0.5.1.dev1}/vendor/CrowdyCPP/include/crowdy/graphql/http.hpp +0 -0
- {crowdypy-0.5.0.dev1 → crowdypy-0.5.1.dev1}/vendor/CrowdyCPP/include/crowdy/graphql/json.hpp +0 -0
- {crowdypy-0.5.0.dev1 → crowdypy-0.5.1.dev1}/vendor/CrowdyCPP/include/crowdy/graphql/rediscover.hpp +0 -0
- {crowdypy-0.5.0.dev1 → crowdypy-0.5.1.dev1}/vendor/CrowdyCPP/include/crowdy/graphql/subscription_client.hpp +0 -0
- {crowdypy-0.5.0.dev1 → crowdypy-0.5.1.dev1}/vendor/CrowdyCPP/include/crowdy/graphql/websocket.hpp +0 -0
- {crowdypy-0.5.0.dev1 → crowdypy-0.5.1.dev1}/vendor/CrowdyCPP/include/crowdy/kit/actions.hpp +0 -0
- {crowdypy-0.5.0.dev1 → crowdypy-0.5.1.dev1}/vendor/CrowdyCPP/include/crowdy/kit/kit.hpp +0 -0
- {crowdypy-0.5.0.dev1 → crowdypy-0.5.1.dev1}/vendor/CrowdyCPP/include/crowdy/kit/social.hpp +0 -0
- {crowdypy-0.5.0.dev1 → crowdypy-0.5.1.dev1}/vendor/CrowdyCPP/include/crowdy/kit/wire.hpp +0 -0
- {crowdypy-0.5.0.dev1 → crowdypy-0.5.1.dev1}/vendor/CrowdyCPP/include/crowdy/media/video_frames.hpp +0 -0
- {crowdypy-0.5.0.dev1 → crowdypy-0.5.1.dev1}/vendor/CrowdyCPP/include/crowdy/player_host/adapter.hpp +0 -0
- {crowdypy-0.5.0.dev1 → crowdypy-0.5.1.dev1}/vendor/CrowdyCPP/include/crowdy/player_host/player_host.hpp +0 -0
- {crowdypy-0.5.0.dev1 → crowdypy-0.5.1.dev1}/vendor/CrowdyCPP/include/crowdy/player_host/schemas.hpp +0 -0
- {crowdypy-0.5.0.dev1 → crowdypy-0.5.1.dev1}/vendor/CrowdyCPP/include/crowdy/player_host/types.hpp +0 -0
- {crowdypy-0.5.0.dev1 → crowdypy-0.5.1.dev1}/vendor/CrowdyCPP/include/crowdy/replication/connection.hpp +0 -0
- {crowdypy-0.5.0.dev1 → crowdypy-0.5.1.dev1}/vendor/CrowdyCPP/include/crowdy/replication/session_provider.hpp +0 -0
- {crowdypy-0.5.0.dev1 → crowdypy-0.5.1.dev1}/vendor/CrowdyCPP/include/crowdy/replication/types.hpp +0 -0
- {crowdypy-0.5.0.dev1 → crowdypy-0.5.1.dev1}/vendor/CrowdyCPP/include/crowdy/replication/udp_socket.hpp +0 -0
- {crowdypy-0.5.0.dev1 → crowdypy-0.5.1.dev1}/vendor/CrowdyCPP/include/crowdy/session/codec.hpp +0 -0
- {crowdypy-0.5.0.dev1 → crowdypy-0.5.1.dev1}/vendor/CrowdyCPP/include/crowdy/session/durable.hpp +0 -0
- {crowdypy-0.5.0.dev1 → crowdypy-0.5.1.dev1}/vendor/CrowdyCPP/include/crowdy/session/keys.hpp +0 -0
- {crowdypy-0.5.0.dev1 → crowdypy-0.5.1.dev1}/vendor/CrowdyCPP/include/crowdy/session/stores.hpp +0 -0
- {crowdypy-0.5.0.dev1 → crowdypy-0.5.1.dev1}/vendor/CrowdyCPP/include/crowdy/session/world_session.hpp +0 -0
- {crowdypy-0.5.0.dev1 → crowdypy-0.5.1.dev1}/vendor/CrowdyCPP/include/crowdy/studio/controller.hpp +0 -0
- {crowdypy-0.5.0.dev1 → crowdypy-0.5.1.dev1}/vendor/CrowdyCPP/include/crowdy/studio/diagnostics.hpp +0 -0
- {crowdypy-0.5.0.dev1 → crowdypy-0.5.1.dev1}/vendor/CrowdyCPP/include/crowdy/studio/editor.hpp +0 -0
- {crowdypy-0.5.0.dev1 → crowdypy-0.5.1.dev1}/vendor/CrowdyCPP/include/crowdy/studio/github.hpp +0 -0
- {crowdypy-0.5.0.dev1 → crowdypy-0.5.1.dev1}/vendor/CrowdyCPP/include/crowdy/studio/github_layout.hpp +0 -0
- {crowdypy-0.5.0.dev1 → crowdypy-0.5.1.dev1}/vendor/CrowdyCPP/include/crowdy/studio/integration.hpp +0 -0
- {crowdypy-0.5.0.dev1 → crowdypy-0.5.1.dev1}/vendor/CrowdyCPP/include/crowdy/studio/layout.hpp +0 -0
- {crowdypy-0.5.0.dev1 → crowdypy-0.5.1.dev1}/vendor/CrowdyCPP/include/crowdy/studio/models.hpp +0 -0
- {crowdypy-0.5.0.dev1 → crowdypy-0.5.1.dev1}/vendor/CrowdyCPP/include/crowdy/studio/runtime.hpp +0 -0
- {crowdypy-0.5.0.dev1 → crowdypy-0.5.1.dev1}/vendor/CrowdyCPP/include/crowdy/wire/codec.hpp +0 -0
- {crowdypy-0.5.0.dev1 → crowdypy-0.5.1.dev1}/vendor/CrowdyCPP/include/crowdy/wire/protocol.hpp +0 -0
- {crowdypy-0.5.0.dev1 → crowdypy-0.5.1.dev1}/vendor/CrowdyCPP/include/crowdy/world.hpp +0 -0
- {crowdypy-0.5.0.dev1 → crowdypy-0.5.1.dev1}/vendor/CrowdyCPP/src/client.cpp +0 -0
- {crowdypy-0.5.0.dev1 → crowdypy-0.5.1.dev1}/vendor/CrowdyCPP/src/core/base64.cpp +0 -0
- {crowdypy-0.5.0.dev1 → crowdypy-0.5.1.dev1}/vendor/CrowdyCPP/src/core/clock.cpp +0 -0
- {crowdypy-0.5.0.dev1 → crowdypy-0.5.1.dev1}/vendor/CrowdyCPP/src/core/crypto_default_unavailable.cpp +0 -0
- {crowdypy-0.5.0.dev1 → crowdypy-0.5.1.dev1}/vendor/CrowdyCPP/src/core/crypto_openssl.cpp +0 -0
- {crowdypy-0.5.0.dev1 → crowdypy-0.5.1.dev1}/vendor/CrowdyCPP/src/core/crypto_unavailable.cpp +0 -0
- {crowdypy-0.5.0.dev1 → crowdypy-0.5.1.dev1}/vendor/CrowdyCPP/src/core/logger.cpp +0 -0
- {crowdypy-0.5.0.dev1 → crowdypy-0.5.1.dev1}/vendor/CrowdyCPP/src/core/uuid.cpp +0 -0
- {crowdypy-0.5.0.dev1 → crowdypy-0.5.1.dev1}/vendor/CrowdyCPP/src/domains/exec.cpp +0 -0
- {crowdypy-0.5.0.dev1 → crowdypy-0.5.1.dev1}/vendor/CrowdyCPP/src/graphql/async_transport.cpp +0 -0
- {crowdypy-0.5.0.dev1 → crowdypy-0.5.1.dev1}/vendor/CrowdyCPP/src/graphql/auth_state.cpp +0 -0
- {crowdypy-0.5.0.dev1 → crowdypy-0.5.1.dev1}/vendor/CrowdyCPP/src/graphql/error_extensions.hpp +0 -0
- {crowdypy-0.5.0.dev1 → crowdypy-0.5.1.dev1}/vendor/CrowdyCPP/src/graphql/errors.cpp +0 -0
- {crowdypy-0.5.0.dev1 → crowdypy-0.5.1.dev1}/vendor/CrowdyCPP/src/graphql/graphql_client.cpp +0 -0
- {crowdypy-0.5.0.dev1 → crowdypy-0.5.1.dev1}/vendor/CrowdyCPP/src/graphql/http_curl.cpp +0 -0
- {crowdypy-0.5.0.dev1 → crowdypy-0.5.1.dev1}/vendor/CrowdyCPP/src/graphql/http_none.cpp +0 -0
- {crowdypy-0.5.0.dev1 → crowdypy-0.5.1.dev1}/vendor/CrowdyCPP/src/graphql/json.cpp +0 -0
- {crowdypy-0.5.0.dev1 → crowdypy-0.5.1.dev1}/vendor/CrowdyCPP/src/graphql/subscription_client.cpp +0 -0
- {crowdypy-0.5.0.dev1 → crowdypy-0.5.1.dev1}/vendor/CrowdyCPP/src/graphql/websocket_curl.cpp +0 -0
- {crowdypy-0.5.0.dev1 → crowdypy-0.5.1.dev1}/vendor/CrowdyCPP/src/graphql/websocket_none.cpp +0 -0
- {crowdypy-0.5.0.dev1 → crowdypy-0.5.1.dev1}/vendor/CrowdyCPP/src/player_host/schemas.cpp +0 -0
- {crowdypy-0.5.0.dev1 → crowdypy-0.5.1.dev1}/vendor/CrowdyCPP/src/player_host/types.cpp +0 -0
- {crowdypy-0.5.0.dev1 → crowdypy-0.5.1.dev1}/vendor/CrowdyCPP/src/replication/connection.cpp +0 -0
- {crowdypy-0.5.0.dev1 → crowdypy-0.5.1.dev1}/vendor/CrowdyCPP/src/replication/socket_errors.hpp +0 -0
- {crowdypy-0.5.0.dev1 → crowdypy-0.5.1.dev1}/vendor/CrowdyCPP/src/replication/udp_socket.cpp +0 -0
- {crowdypy-0.5.0.dev1 → crowdypy-0.5.1.dev1}/vendor/CrowdyCPP/src/studio/diagnostics.cpp +0 -0
- {crowdypy-0.5.0.dev1 → crowdypy-0.5.1.dev1}/vendor/CrowdyCPP/src/studio/editor.cpp +0 -0
- {crowdypy-0.5.0.dev1 → crowdypy-0.5.1.dev1}/vendor/CrowdyCPP/src/studio/integration.cpp +0 -0
- {crowdypy-0.5.0.dev1 → crowdypy-0.5.1.dev1}/vendor/CrowdyCPP/third_party/yyjson/LICENSE +0 -0
- {crowdypy-0.5.0.dev1 → crowdypy-0.5.1.dev1}/vendor/CrowdyCPP/third_party/yyjson/yyjson.c +0 -0
- {crowdypy-0.5.0.dev1 → crowdypy-0.5.1.dev1}/vendor/CrowdyCPP/third_party/yyjson/yyjson.h +0 -0
- {crowdypy-0.5.0.dev1 → crowdypy-0.5.1.dev1}/vendor/CrowdyCPP/tools/parity/fixtures/exec-client-frames.json +0 -0
- {crowdypy-0.5.0.dev1 → crowdypy-0.5.1.dev1}/vendor/CrowdyCPP/tools/parity/fixtures/exec-gateway-cases.json +0 -0
|
@@ -3,6 +3,21 @@
|
|
|
3
3
|
CrowdyPy is pre-1.0. Within a minor line, patch releases keep source compatibility; each
|
|
4
4
|
new minor may change the API. Read the section for every minor you skip.
|
|
5
5
|
|
|
6
|
+
## 0.5.1
|
|
7
|
+
|
|
8
|
+
CrowdyJS 18.2.0 and CrowdyCPP 0.56.0. No API change; one behaviour fix.
|
|
9
|
+
|
|
10
|
+
- **Chunk loads keep recorded voxel edits** (OI-2026-10-02-006). Since ck-api v2.33.0 every
|
|
11
|
+
voxel edit recorded for a chunk (a hub's or mod's `world.set_voxels`, `updateVoxel`, a
|
|
12
|
+
realtime voxel update) arrives only in the chunk's `voxelStates`, never in its `voxels`.
|
|
13
|
+
`ChunkStore.hydrate()` now applies each entry's voxel type at its voxel, also on a chunk
|
|
14
|
+
stored with `voxels: null`, and an entry without a state clears the hydrated state there.
|
|
15
|
+
`ensure_around()` no longer reloads a chunk it already holds when a bulk load around a new
|
|
16
|
+
center returns it again; prune the chunk to load it afresh. Turn on
|
|
17
|
+
`hydrate_voxel_states` to see hub and mod edits after a reload.
|
|
18
|
+
- A state a local `set_voxel` gave a voxel is not cleared by a later hydration that says the
|
|
19
|
+
voxel has none: the native core keeps it until the next realtime update there.
|
|
20
|
+
|
|
6
21
|
## 0.5.0
|
|
7
22
|
|
|
8
23
|
CrowdyJS 18.1.0 and CrowdyCPP 0.55.0. Additive, plus one refusal that is a security fix.
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: crowdypy
|
|
3
|
-
Version: 0.5.
|
|
3
|
+
Version: 0.5.1.dev1
|
|
4
4
|
Summary: Official Python SDK for Crowded Kingdoms: typed GraphQL clients and a native UDP replication core
|
|
5
5
|
Keywords: crowded-kingdoms,multiplayer,replication,graphql,sdk,udp
|
|
6
6
|
Author: Crowded Kingdoms
|
|
@@ -51,11 +51,13 @@ CrowdyPy follows the [CrowdyJS](https://github.com/CrowdedKingdoms/CrowdyJS) API
|
|
|
51
51
|
client, bound with [nanobind](https://github.com/wjakob/nanobind) and shipped inside the
|
|
52
52
|
wheel. Python never touches a datagram.
|
|
53
53
|
|
|
54
|
-
**v0.5.
|
|
55
|
-
- `
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
-
|
|
54
|
+
**v0.5.1: chunk loads keep recorded voxel edits (CrowdyJS 18.2.0, CrowdyCPP 0.56.0).**
|
|
55
|
+
- `ChunkStore.hydrate()` puts every recorded voxel edit (`voxelStates`: a hub's or mod's
|
|
56
|
+
`world.set_voxels`, `updateVoxel`, realtime updates) on the grid, and a later
|
|
57
|
+
`ensure_around()` keeps a chunk it already loaded instead of reloading its bare voxels.
|
|
58
|
+
- 0.5.0 brought the ck-exec gateway check (`client.exec.connect()` sends the connect token
|
|
59
|
+
only to a gateway on the game API's estate, and reports a refusal as `Denied`) and open
|
|
60
|
+
grids (`game_apps.open_permissions()` and `set_open_permissions()`).
|
|
59
61
|
- 0.4 brought the headless Crowdy Studio (`crowdypy.studio`), player-host observation
|
|
60
62
|
(`crowdypy.player_host`), the roots CrowdyCPP covers beyond CrowdyJS, and the strict parity
|
|
61
63
|
gate ([`docs/parity-matrix.md`](docs/parity-matrix.md) has no gaps); 0.3.0 the World Stores,
|
|
@@ -11,11 +11,13 @@ CrowdyPy follows the [CrowdyJS](https://github.com/CrowdedKingdoms/CrowdyJS) API
|
|
|
11
11
|
client, bound with [nanobind](https://github.com/wjakob/nanobind) and shipped inside the
|
|
12
12
|
wheel. Python never touches a datagram.
|
|
13
13
|
|
|
14
|
-
**v0.5.
|
|
15
|
-
- `
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
-
|
|
14
|
+
**v0.5.1: chunk loads keep recorded voxel edits (CrowdyJS 18.2.0, CrowdyCPP 0.56.0).**
|
|
15
|
+
- `ChunkStore.hydrate()` puts every recorded voxel edit (`voxelStates`: a hub's or mod's
|
|
16
|
+
`world.set_voxels`, `updateVoxel`, realtime updates) on the grid, and a later
|
|
17
|
+
`ensure_around()` keeps a chunk it already loaded instead of reloading its bare voxels.
|
|
18
|
+
- 0.5.0 brought the ck-exec gateway check (`client.exec.connect()` sends the connect token
|
|
19
|
+
only to a gateway on the game API's estate, and reports a refusal as `Denied`) and open
|
|
20
|
+
grids (`game_apps.open_permissions()` and `set_open_permissions()`).
|
|
19
21
|
- 0.4 brought the headless Crowdy Studio (`crowdypy.studio`), player-host observation
|
|
20
22
|
(`crowdypy.player_host`), the roots CrowdyCPP covers beyond CrowdyJS, and the strict parity
|
|
21
23
|
gate ([`docs/parity-matrix.md`](docs/parity-matrix.md) has no gaps); 0.3.0 the World Stores,
|
|
@@ -5,7 +5,7 @@ are in `pyproject.toml` (`[project].version`, `[tool.crowdypy.crowdyjs]`,
|
|
|
5
5
|
`[tool.crowdypy.crowdycpp]`); `tests/unit/test_release_versions.py` refuses this page when
|
|
6
6
|
its version disagrees.
|
|
7
7
|
|
|
8
|
-
- CrowdyPy `0.5.
|
|
8
|
+
- CrowdyPy `0.5.1`
|
|
9
9
|
- API surface: CrowdyJS (the pinned version and commit in `pyproject.toml`); the generated
|
|
10
10
|
`docs/parity-matrix.md` lists every covered method, every native equivalent and every
|
|
11
11
|
browser exclusion with its reason. The gate is strict: there are no portable gaps, and a
|
|
@@ -34,7 +34,7 @@ requirement names one exactly, the same way a caret never matches an npm prerele
|
|
|
34
34
|
|
|
35
35
|
## Server compatibility
|
|
36
36
|
|
|
37
|
-
- ck-exec (`client.exec`)
|
|
37
|
+
- ck-exec (`client.exec`) runs on dev and test, and on prod from its migration; a Game API that does not serve the
|
|
38
38
|
`exec*` roots answers those calls with a GraphQL validation error.
|
|
39
39
|
- Direct sign-in (`auth.login`, `auth.register`) is served to non-browser callers. CrowdyPy
|
|
40
40
|
sends no `Origin` header, so it is exempt from `HOSTED_SIGN_IN_REQUIRED`.
|
|
@@ -51,6 +51,7 @@ player once and signs it in for the later suites.
|
|
|
51
51
|
| 2026-10-01 | dev tier, app `96701660793088` (CrowdyPy e2e, in the org admin's org) | 0.4.0 (branch) | 8 passed; Studio skipped (the suite needs a grid the owner controls in that app; a placeholder is refused with `CROWDY_STUDIO_GRID_NOT_FOUND`) |
|
|
52
52
|
| 2026-10-01 | dev tier, app `96701660793088` | the published `dev/v0.4.0` wheel (`0.4.0.dev1`, manylinux x86_64, installed into a clean Python 3.12) | 8 passed |
|
|
53
53
|
| 2026-10-01 | dev tier, app `96701660793088` | `crowdypy 0.4.1.dev1` from PyPI (`pip install crowdypy` in a clean Python 3.12; the first version published by trusted publishing) | 8 passed; Studio skipped |
|
|
54
|
+
| 2026-10-01 | dev tier, app `96701660793088`; the open-grid suite in its own throwaway org and app (`CROWDY_E2E_THROWAWAY_OWNER=1`) | `crowdypy 0.5.0.dev1` from PyPI (`pip install crowdypy` in a clean Python 3.12) | 10 passed; Studio skipped |
|
|
54
55
|
|
|
55
56
|
## Not covered here
|
|
56
57
|
|
|
@@ -60,7 +61,7 @@ These CrowdyCPP suites have no CrowdyPy counterpart yet; the reason is in each r
|
|
|
60
61
|
|---|---|
|
|
61
62
|
| `e2e_billing_quotas`, `e2e_payments` | billing and payment mutations on a shared tier; CrowdyPy wraps the same documents CrowdyJS sends, covered by the unit suites |
|
|
62
63
|
| `e2e_marketplace_claims` | owns a real chunk; needs a reserved coordinate and a `SELF_CLAIM` app |
|
|
63
|
-
| `e2e_exec_client_halves`, `e2e_exec_gateway` | need a ck-exec mod grid
|
|
64
|
+
| `e2e_exec_client_halves`, `e2e_exec_gateway` | need a ck-exec mod grid, or a gateway running the ck-exec demo app, for calls and subscription pushes; the open-grid suite connects to the tier's gateway and pings, and the gateway client's frames are checked against the shared fixture and a local server |
|
|
64
65
|
| `e2e_cross_server` | needs a deployment with two or more replication servers reachable from the runner |
|
|
65
66
|
| `e2e_agentic_studio`, `e2e_native_studio_integration` | the agent session is CrowdyJS's in-browser agent; CrowdyPy carries the policy and usage roots only |
|
|
66
67
|
| `e2e_soak_two_clients`, `e2e_permission_refresh` | long-running; slated for `CROWDY_E2E_SLOW=1` suites |
|
|
@@ -4,8 +4,8 @@ Generated by `tools/parity/parity.py`; do not edit by hand. Classifications live
|
|
|
4
4
|
|
|
5
5
|
## Target
|
|
6
6
|
|
|
7
|
-
- CrowdyJS: `18.
|
|
8
|
-
- CrowdyCPP (native core): `0.
|
|
7
|
+
- CrowdyJS: `18.2.0` at `269966d158f45749e9a563abf6032369ae0c258a`
|
|
8
|
+
- CrowdyCPP (native core): `0.56.0` at `910ce23082940b570dc02f009d68d31594bd4be3`
|
|
9
9
|
- schema.gql identical to CrowdyJS's: yes
|
|
10
10
|
- Gate mode: strict portable parity (every portable gap is release-blocking)
|
|
11
11
|
|
|
@@ -374,8 +374,7 @@ inline nb::tuple row_tuple(const NotificationBatch& b, std::size_t i) {
|
|
|
374
374
|
|
|
375
375
|
// ------------------------------------------------------------------ the connection
|
|
376
376
|
|
|
377
|
-
// Defined in replication_binding.cpp, so this header pulls in no platform socket headers
|
|
378
|
-
// (<windows.h>'s far and near macros break CrowdyCPP's headers included after it).
|
|
377
|
+
// Defined in replication_binding.cpp, so this header pulls in no platform socket headers.
|
|
379
378
|
void write_wake(std::int64_t fd);
|
|
380
379
|
void prepare_wake_fd(std::int64_t fd);
|
|
381
380
|
|
|
@@ -4,7 +4,7 @@ build-backend = "scikit_build_core.build"
|
|
|
4
4
|
|
|
5
5
|
[project]
|
|
6
6
|
name = "crowdypy"
|
|
7
|
-
version = "0.5.
|
|
7
|
+
version = "0.5.1.dev1"
|
|
8
8
|
description = "Official Python SDK for Crowded Kingdoms: typed GraphQL clients and a native UDP replication core"
|
|
9
9
|
readme = "README.md"
|
|
10
10
|
license = "MIT AND Apache-2.0"
|
|
@@ -117,19 +117,19 @@ environment = { OPENSSL_ROOT_DIR = "C:/vcpkg/installed/x64-windows-static-md" }
|
|
|
117
117
|
# --------------------------------------------------------------------------------------
|
|
118
118
|
|
|
119
119
|
[tool.crowdypy.crowdyjs]
|
|
120
|
-
version = "18.
|
|
121
|
-
commit = "
|
|
120
|
+
version = "18.2.0"
|
|
121
|
+
commit = "269966d158f45749e9a563abf6032369ae0c258a"
|
|
122
122
|
|
|
123
123
|
[tool.crowdypy.crowdycpp]
|
|
124
|
-
version = "0.
|
|
125
|
-
tag = "
|
|
126
|
-
commit = "
|
|
127
|
-
tree-sha256 = "
|
|
124
|
+
version = "0.56.0"
|
|
125
|
+
tag = "910ce23082940b570dc02f009d68d31594bd4be3"
|
|
126
|
+
commit = "910ce23082940b570dc02f009d68d31594bd4be3"
|
|
127
|
+
tree-sha256 = "1e294223900a84c064ba8c50281edfe5cea2c7c2ac042d842fa5a7804ad89cd4"
|
|
128
128
|
|
|
129
129
|
# schema.gql and operations/ are CrowdyJS's, copied from the commit pinned above by
|
|
130
130
|
# scripts/schema_sync.py, which records these hashes and re-derives them in CI.
|
|
131
131
|
[tool.crowdypy.graphql]
|
|
132
|
-
schema-sha256 = "
|
|
132
|
+
schema-sha256 = "f00952f685420f6c0f4bf58d56debda29aea8cce9b877754393611393ff63db1"
|
|
133
133
|
operations-sha256 = "d5e0c505589ea26ecc3398b12f02ad7bd786457f7010ad87dcb8af2ea9366c77"
|
|
134
134
|
|
|
135
135
|
# The SDL the docs site publishes. scripts/schema_drift.py compares the snapshot against it
|