Hacktoberfest 2026 : les issues que les mainteneurs ont marquées pour octobre, ouvertes et accessibles aux débutants. Parcourir les issues Hacktoberfest

Unreal SDK: no way to set confirmed reads on the connection (Rust SDK has with_confirmed_reads)

Ouverte Adaptée aux débutants
#6,328 1 commentaire 0 réactions 0 personnes assignées Voir sur GitHub

Les mainteneurs répondent en général sous 1 jour

Personne n'a encore pris cette issue.

Évaluation

Difficulté
2/5
Temps estimé
1-3 heures
Accessibilité débutants
84/100
Type d'issue
Fonctionnalité
Clarté
Clairement spécifiée
Activité
Active
Stack technique
cpp, unreal-engine
Domaine
game-dev, networking

Piste de recherche

Commencez par UDbConnectionBuilderBase::Build dans sdks/unreal/src/SpacetimeDbSdk/Private/Connection/DbConnectionBuilder.cpp, en utilisant l’implémentation Rust située dans sdks/rust/src/websocket.rs et db_connection.rs comme référence comportementale. Ajoutez l’option aux constructeurs C++ et exposés à Blueprint, en conservant l’omission lorsqu’elle n’est pas définie et en sérialisant une valeur booléenne explicite lorsqu’elle est configurée. La tâche est terminée lorsque confirmed=true ou confirmed=false est correctement ajouté et couvert par les tests concernés du SDK Unreal.

Rédigé par le modèle d'indexation à partir du texte de l'issue.

Description

SpacetimeDB 2.12.0, Unreal SDK from sdks/unreal/src/SpacetimeDbSdk at v2.12.0, UE 5.8.3.

The Rust SDK lets the client choose the read mode explicitly: DbConnectionBuilder::with_confirmed_reads(bool) adds &confirmed=true|false to the subscribe URL (sdks/rust/src/websocket.rs, db_connection.rs). The Unreal SDK has no equivalent: UDbConnectionBuilderBase::Build (Private/Connection/DbConnectionBuilder.cpp) always builds

<uri>/v1/database/<name>/subscribe?compression=<Gzip|None>

so the mode is whatever the server default is for the protocol. With v2.bsatn.spacetimedb (which the Unreal SDK uses, Websocket.cpp) the server default is confirmed = true (client-api/src/routes/subscribe.rs, DEFAULT_CONFIRMED_READS), which is what we want, but we can't pin it from the client.

Why it matters for us: our game logic treats "reducer reply received" as "the transaction is durable" (inventory, trades, store purchases are only shown as done after the reply). If the default ever changes, or a different protocol version is negotiated, Unreal clients would silently switch to replies-before-fsync, while our Rust tools keep true explicitly.

Request: add WithConfirmedReads(bool) to UDbConnectionBuilder (and the Blueprint builder), appending &confirmed=true|false only when it was set, mirroring the Rust SDK. We can send a PR if that helps.

Workaround today: none without patching the SDK (the database name is interpolated into the path, so a query parameter can't be injected cleanly). We rely on the v2 default and check it in our load tests.

Langage dominant
Rust
Étoiles
25.3k
Forks
1.1k
Merge moyen
2 j 23 h
PR mergées (30 j)
67

Préparer son environnement

  • Fournit un Dockerfile ou un fichier Docker Compose
  • Propose un modèle de pull request
  • Aucun guide de contribution

Par où commencer

  1. Lisez l'issue en entier, puis le guide de contribution du projet.
  2. Signalez en commentaire que vous la prenez — cela évite que deux personnes fassent le même travail.
  3. Forkez le dépôt et travaillez sur une branche.
  4. Ouvrez une pull request qui référence le numéro de l'issue.

Autres issues de clockworklabs/SpacetimeDB

Toutes les issues de clockworklabs/SpacetimeDB

Issues similaires

Plus d'issues Rust

Recevez les nouvelles issues par e-mail

Un résumé court des issues GitHub adaptées aux débutants.