Merge branch 'master' into codex/frontend-error-dialogs

# Conflicts:
#	.hermes/shared-memory/decision-log.md
#	server-rs/crates/api-server/src/generated_asset_sheets.rs
This commit is contained in:
kdletters
2026-05-26 22:10:41 +08:00
175 changed files with 4760 additions and 465 deletions

View File

@@ -9,6 +9,7 @@ use spacetimedb_sdk::__codegen::{self as __sdk, __lib, __sats, __ws};
pub struct BarkBattleGalleryViewRow {
pub work_id: String,
pub owner_user_id: String,
pub author_display_name: String,
pub source_draft_id: Option<String>,
pub config_version: u64,
pub ruleset_version: String,
@@ -38,6 +39,7 @@ impl __sdk::InModule for BarkBattleGalleryViewRow {
pub struct BarkBattleGalleryViewRowCols {
pub work_id: __sdk::__query_builder::Col<BarkBattleGalleryViewRow, String>,
pub owner_user_id: __sdk::__query_builder::Col<BarkBattleGalleryViewRow, String>,
pub author_display_name: __sdk::__query_builder::Col<BarkBattleGalleryViewRow, String>,
pub source_draft_id: __sdk::__query_builder::Col<BarkBattleGalleryViewRow, Option<String>>,
pub config_version: __sdk::__query_builder::Col<BarkBattleGalleryViewRow, u64>,
pub ruleset_version: __sdk::__query_builder::Col<BarkBattleGalleryViewRow, String>,
@@ -66,6 +68,10 @@ impl __sdk::__query_builder::HasCols for BarkBattleGalleryViewRow {
BarkBattleGalleryViewRowCols {
work_id: __sdk::__query_builder::Col::new(table_name, "work_id"),
owner_user_id: __sdk::__query_builder::Col::new(table_name, "owner_user_id"),
author_display_name: __sdk::__query_builder::Col::new(
table_name,
"author_display_name",
),
source_draft_id: __sdk::__query_builder::Col::new(table_name, "source_draft_id"),
config_version: __sdk::__query_builder::Col::new(table_name, "config_version"),
ruleset_version: __sdk::__query_builder::Col::new(table_name, "ruleset_version"),

View File

@@ -0,0 +1,114 @@
// THIS FILE IS AUTOMATICALLY GENERATED BY SPACETIMEDB. EDITS TO THIS FILE
// WILL NOT BE SAVED. MODIFY TABLES IN YOUR MODULE SOURCE CODE INSTEAD.
#![allow(unused, clippy::all)]
use super::public_work_detail_entry_type::PublicWorkDetailEntry;
use spacetimedb_sdk::__codegen::{self as __sdk, __lib, __sats, __ws};
/// Table handle for the table `public_work_detail_entry`.
///
/// Obtain a handle from the [`PublicWorkDetailEntryTableAccess::public_work_detail_entry`] method on [`super::RemoteTables`],
/// like `ctx.db.public_work_detail_entry()`.
///
/// Users are encouraged not to explicitly reference this type,
/// but to directly chain method calls,
/// like `ctx.db.public_work_detail_entry().on_insert(...)`.
pub struct PublicWorkDetailEntryTableHandle<'ctx> {
imp: __sdk::TableHandle<PublicWorkDetailEntry>,
ctx: std::marker::PhantomData<&'ctx super::RemoteTables>,
}
#[allow(non_camel_case_types)]
/// Extension trait for access to the table `public_work_detail_entry`.
///
/// Implemented for [`super::RemoteTables`].
pub trait PublicWorkDetailEntryTableAccess {
#[allow(non_snake_case)]
/// Obtain a [`PublicWorkDetailEntryTableHandle`], which mediates access to the table `public_work_detail_entry`.
fn public_work_detail_entry(&self) -> PublicWorkDetailEntryTableHandle<'_>;
}
impl PublicWorkDetailEntryTableAccess for super::RemoteTables {
fn public_work_detail_entry(&self) -> PublicWorkDetailEntryTableHandle<'_> {
PublicWorkDetailEntryTableHandle {
imp: self
.imp
.get_table::<PublicWorkDetailEntry>("public_work_detail_entry"),
ctx: std::marker::PhantomData,
}
}
}
pub struct PublicWorkDetailEntryInsertCallbackId(__sdk::CallbackId);
pub struct PublicWorkDetailEntryDeleteCallbackId(__sdk::CallbackId);
impl<'ctx> __sdk::Table for PublicWorkDetailEntryTableHandle<'ctx> {
type Row = PublicWorkDetailEntry;
type EventContext = super::EventContext;
fn count(&self) -> u64 {
self.imp.count()
}
fn iter(&self) -> impl Iterator<Item = PublicWorkDetailEntry> + '_ {
self.imp.iter()
}
type InsertCallbackId = PublicWorkDetailEntryInsertCallbackId;
fn on_insert(
&self,
callback: impl FnMut(&Self::EventContext, &Self::Row) + Send + 'static,
) -> PublicWorkDetailEntryInsertCallbackId {
PublicWorkDetailEntryInsertCallbackId(self.imp.on_insert(Box::new(callback)))
}
fn remove_on_insert(&self, callback: PublicWorkDetailEntryInsertCallbackId) {
self.imp.remove_on_insert(callback.0)
}
type DeleteCallbackId = PublicWorkDetailEntryDeleteCallbackId;
fn on_delete(
&self,
callback: impl FnMut(&Self::EventContext, &Self::Row) + Send + 'static,
) -> PublicWorkDetailEntryDeleteCallbackId {
PublicWorkDetailEntryDeleteCallbackId(self.imp.on_delete(Box::new(callback)))
}
fn remove_on_delete(&self, callback: PublicWorkDetailEntryDeleteCallbackId) {
self.imp.remove_on_delete(callback.0)
}
}
#[doc(hidden)]
pub(super) fn register_table(client_cache: &mut __sdk::ClientCache<super::RemoteModule>) {
let _table =
client_cache.get_or_make_table::<PublicWorkDetailEntry>("public_work_detail_entry");
}
#[doc(hidden)]
pub(super) fn parse_table_update(
raw_updates: __ws::v2::TableUpdate,
) -> __sdk::Result<__sdk::TableUpdate<PublicWorkDetailEntry>> {
__sdk::TableUpdate::parse_table_update(raw_updates).map_err(|e| {
__sdk::InternalError::failed_parse("TableUpdate<PublicWorkDetailEntry>", "TableUpdate")
.with_cause(e)
.into()
})
}
#[allow(non_camel_case_types)]
/// Extension trait for query builder access to the table `PublicWorkDetailEntry`.
///
/// Implemented for [`__sdk::QueryTableAccessor`].
pub trait public_work_detail_entryQueryTableAccess {
#[allow(non_snake_case)]
/// Get a query builder for the table `PublicWorkDetailEntry`.
fn public_work_detail_entry(&self) -> __sdk::__query_builder::Table<PublicWorkDetailEntry>;
}
impl public_work_detail_entryQueryTableAccess for __sdk::QueryTableAccessor {
fn public_work_detail_entry(&self) -> __sdk::__query_builder::Table<PublicWorkDetailEntry> {
__sdk::__query_builder::Table::new("public_work_detail_entry")
}
}

View File

@@ -0,0 +1,97 @@
// THIS FILE IS AUTOMATICALLY GENERATED BY SPACETIMEDB. EDITS TO THIS FILE
// WILL NOT BE SAVED. MODIFY TABLES IN YOUR MODULE SOURCE CODE INSTEAD.
#![allow(unused, clippy::all)]
use spacetimedb_sdk::__codegen::{self as __sdk, __lib, __sats, __ws};
#[derive(__lib::ser::Serialize, __lib::de::Deserialize, Clone, PartialEq, Debug)]
#[sats(crate = __lib)]
pub struct PublicWorkDetailEntry {
pub source_type: String,
pub work_id: String,
pub profile_id: String,
pub source_session_id: Option<String>,
pub public_work_code: String,
pub owner_user_id: String,
pub author_display_name: String,
pub world_name: String,
pub subtitle: String,
pub summary_text: String,
pub cover_image_src: Option<String>,
pub cover_asset_id: Option<String>,
pub theme_tags: Vec<String>,
pub play_count: u32,
pub remix_count: u32,
pub like_count: u32,
pub published_at_micros: Option<i64>,
pub updated_at_micros: i64,
pub sort_time_micros: i64,
pub detail_payload_json: String,
}
impl __sdk::InModule for PublicWorkDetailEntry {
type Module = super::RemoteModule;
}
/// Column accessor struct for the table `PublicWorkDetailEntry`.
///
/// Provides typed access to columns for query building.
pub struct PublicWorkDetailEntryCols {
pub source_type: __sdk::__query_builder::Col<PublicWorkDetailEntry, String>,
pub work_id: __sdk::__query_builder::Col<PublicWorkDetailEntry, String>,
pub profile_id: __sdk::__query_builder::Col<PublicWorkDetailEntry, String>,
pub source_session_id: __sdk::__query_builder::Col<PublicWorkDetailEntry, Option<String>>,
pub public_work_code: __sdk::__query_builder::Col<PublicWorkDetailEntry, String>,
pub owner_user_id: __sdk::__query_builder::Col<PublicWorkDetailEntry, String>,
pub author_display_name: __sdk::__query_builder::Col<PublicWorkDetailEntry, String>,
pub world_name: __sdk::__query_builder::Col<PublicWorkDetailEntry, String>,
pub subtitle: __sdk::__query_builder::Col<PublicWorkDetailEntry, String>,
pub summary_text: __sdk::__query_builder::Col<PublicWorkDetailEntry, String>,
pub cover_image_src: __sdk::__query_builder::Col<PublicWorkDetailEntry, Option<String>>,
pub cover_asset_id: __sdk::__query_builder::Col<PublicWorkDetailEntry, Option<String>>,
pub theme_tags: __sdk::__query_builder::Col<PublicWorkDetailEntry, Vec<String>>,
pub play_count: __sdk::__query_builder::Col<PublicWorkDetailEntry, u32>,
pub remix_count: __sdk::__query_builder::Col<PublicWorkDetailEntry, u32>,
pub like_count: __sdk::__query_builder::Col<PublicWorkDetailEntry, u32>,
pub published_at_micros: __sdk::__query_builder::Col<PublicWorkDetailEntry, Option<i64>>,
pub updated_at_micros: __sdk::__query_builder::Col<PublicWorkDetailEntry, i64>,
pub sort_time_micros: __sdk::__query_builder::Col<PublicWorkDetailEntry, i64>,
pub detail_payload_json: __sdk::__query_builder::Col<PublicWorkDetailEntry, String>,
}
impl __sdk::__query_builder::HasCols for PublicWorkDetailEntry {
type Cols = PublicWorkDetailEntryCols;
fn cols(table_name: &'static str) -> Self::Cols {
PublicWorkDetailEntryCols {
source_type: __sdk::__query_builder::Col::new(table_name, "source_type"),
work_id: __sdk::__query_builder::Col::new(table_name, "work_id"),
profile_id: __sdk::__query_builder::Col::new(table_name, "profile_id"),
source_session_id: __sdk::__query_builder::Col::new(table_name, "source_session_id"),
public_work_code: __sdk::__query_builder::Col::new(table_name, "public_work_code"),
owner_user_id: __sdk::__query_builder::Col::new(table_name, "owner_user_id"),
author_display_name: __sdk::__query_builder::Col::new(
table_name,
"author_display_name",
),
world_name: __sdk::__query_builder::Col::new(table_name, "world_name"),
subtitle: __sdk::__query_builder::Col::new(table_name, "subtitle"),
summary_text: __sdk::__query_builder::Col::new(table_name, "summary_text"),
cover_image_src: __sdk::__query_builder::Col::new(table_name, "cover_image_src"),
cover_asset_id: __sdk::__query_builder::Col::new(table_name, "cover_asset_id"),
theme_tags: __sdk::__query_builder::Col::new(table_name, "theme_tags"),
play_count: __sdk::__query_builder::Col::new(table_name, "play_count"),
remix_count: __sdk::__query_builder::Col::new(table_name, "remix_count"),
like_count: __sdk::__query_builder::Col::new(table_name, "like_count"),
published_at_micros: __sdk::__query_builder::Col::new(
table_name,
"published_at_micros",
),
updated_at_micros: __sdk::__query_builder::Col::new(table_name, "updated_at_micros"),
sort_time_micros: __sdk::__query_builder::Col::new(table_name, "sort_time_micros"),
detail_payload_json: __sdk::__query_builder::Col::new(
table_name,
"detail_payload_json",
),
}
}
}

View File

@@ -0,0 +1,114 @@
// THIS FILE IS AUTOMATICALLY GENERATED BY SPACETIMEDB. EDITS TO THIS FILE
// WILL NOT BE SAVED. MODIFY TABLES IN YOUR MODULE SOURCE CODE INSTEAD.
#![allow(unused, clippy::all)]
use super::public_work_gallery_entry_type::PublicWorkGalleryEntry;
use spacetimedb_sdk::__codegen::{self as __sdk, __lib, __sats, __ws};
/// Table handle for the table `public_work_gallery_entry`.
///
/// Obtain a handle from the [`PublicWorkGalleryEntryTableAccess::public_work_gallery_entry`] method on [`super::RemoteTables`],
/// like `ctx.db.public_work_gallery_entry()`.
///
/// Users are encouraged not to explicitly reference this type,
/// but to directly chain method calls,
/// like `ctx.db.public_work_gallery_entry().on_insert(...)`.
pub struct PublicWorkGalleryEntryTableHandle<'ctx> {
imp: __sdk::TableHandle<PublicWorkGalleryEntry>,
ctx: std::marker::PhantomData<&'ctx super::RemoteTables>,
}
#[allow(non_camel_case_types)]
/// Extension trait for access to the table `public_work_gallery_entry`.
///
/// Implemented for [`super::RemoteTables`].
pub trait PublicWorkGalleryEntryTableAccess {
#[allow(non_snake_case)]
/// Obtain a [`PublicWorkGalleryEntryTableHandle`], which mediates access to the table `public_work_gallery_entry`.
fn public_work_gallery_entry(&self) -> PublicWorkGalleryEntryTableHandle<'_>;
}
impl PublicWorkGalleryEntryTableAccess for super::RemoteTables {
fn public_work_gallery_entry(&self) -> PublicWorkGalleryEntryTableHandle<'_> {
PublicWorkGalleryEntryTableHandle {
imp: self
.imp
.get_table::<PublicWorkGalleryEntry>("public_work_gallery_entry"),
ctx: std::marker::PhantomData,
}
}
}
pub struct PublicWorkGalleryEntryInsertCallbackId(__sdk::CallbackId);
pub struct PublicWorkGalleryEntryDeleteCallbackId(__sdk::CallbackId);
impl<'ctx> __sdk::Table for PublicWorkGalleryEntryTableHandle<'ctx> {
type Row = PublicWorkGalleryEntry;
type EventContext = super::EventContext;
fn count(&self) -> u64 {
self.imp.count()
}
fn iter(&self) -> impl Iterator<Item = PublicWorkGalleryEntry> + '_ {
self.imp.iter()
}
type InsertCallbackId = PublicWorkGalleryEntryInsertCallbackId;
fn on_insert(
&self,
callback: impl FnMut(&Self::EventContext, &Self::Row) + Send + 'static,
) -> PublicWorkGalleryEntryInsertCallbackId {
PublicWorkGalleryEntryInsertCallbackId(self.imp.on_insert(Box::new(callback)))
}
fn remove_on_insert(&self, callback: PublicWorkGalleryEntryInsertCallbackId) {
self.imp.remove_on_insert(callback.0)
}
type DeleteCallbackId = PublicWorkGalleryEntryDeleteCallbackId;
fn on_delete(
&self,
callback: impl FnMut(&Self::EventContext, &Self::Row) + Send + 'static,
) -> PublicWorkGalleryEntryDeleteCallbackId {
PublicWorkGalleryEntryDeleteCallbackId(self.imp.on_delete(Box::new(callback)))
}
fn remove_on_delete(&self, callback: PublicWorkGalleryEntryDeleteCallbackId) {
self.imp.remove_on_delete(callback.0)
}
}
#[doc(hidden)]
pub(super) fn register_table(client_cache: &mut __sdk::ClientCache<super::RemoteModule>) {
let _table =
client_cache.get_or_make_table::<PublicWorkGalleryEntry>("public_work_gallery_entry");
}
#[doc(hidden)]
pub(super) fn parse_table_update(
raw_updates: __ws::v2::TableUpdate,
) -> __sdk::Result<__sdk::TableUpdate<PublicWorkGalleryEntry>> {
__sdk::TableUpdate::parse_table_update(raw_updates).map_err(|e| {
__sdk::InternalError::failed_parse("TableUpdate<PublicWorkGalleryEntry>", "TableUpdate")
.with_cause(e)
.into()
})
}
#[allow(non_camel_case_types)]
/// Extension trait for query builder access to the table `PublicWorkGalleryEntry`.
///
/// Implemented for [`__sdk::QueryTableAccessor`].
pub trait public_work_gallery_entryQueryTableAccess {
#[allow(non_snake_case)]
/// Get a query builder for the table `PublicWorkGalleryEntry`.
fn public_work_gallery_entry(&self) -> __sdk::__query_builder::Table<PublicWorkGalleryEntry>;
}
impl public_work_gallery_entryQueryTableAccess for __sdk::QueryTableAccessor {
fn public_work_gallery_entry(&self) -> __sdk::__query_builder::Table<PublicWorkGalleryEntry> {
__sdk::__query_builder::Table::new("public_work_gallery_entry")
}
}

View File

@@ -0,0 +1,91 @@
// THIS FILE IS AUTOMATICALLY GENERATED BY SPACETIMEDB. EDITS TO THIS FILE
// WILL NOT BE SAVED. MODIFY TABLES IN YOUR MODULE SOURCE CODE INSTEAD.
#![allow(unused, clippy::all)]
use spacetimedb_sdk::__codegen::{self as __sdk, __lib, __sats, __ws};
#[derive(__lib::ser::Serialize, __lib::de::Deserialize, Clone, PartialEq, Debug)]
#[sats(crate = __lib)]
pub struct PublicWorkGalleryEntry {
pub source_type: String,
pub work_id: String,
pub profile_id: String,
pub source_session_id: Option<String>,
pub public_work_code: String,
pub owner_user_id: String,
pub author_display_name: String,
pub world_name: String,
pub subtitle: String,
pub summary_text: String,
pub cover_image_src: Option<String>,
pub cover_asset_id: Option<String>,
pub theme_tags: Vec<String>,
pub play_count: u32,
pub remix_count: u32,
pub like_count: u32,
pub published_at_micros: Option<i64>,
pub updated_at_micros: i64,
pub sort_time_micros: i64,
}
impl __sdk::InModule for PublicWorkGalleryEntry {
type Module = super::RemoteModule;
}
/// Column accessor struct for the table `PublicWorkGalleryEntry`.
///
/// Provides typed access to columns for query building.
pub struct PublicWorkGalleryEntryCols {
pub source_type: __sdk::__query_builder::Col<PublicWorkGalleryEntry, String>,
pub work_id: __sdk::__query_builder::Col<PublicWorkGalleryEntry, String>,
pub profile_id: __sdk::__query_builder::Col<PublicWorkGalleryEntry, String>,
pub source_session_id: __sdk::__query_builder::Col<PublicWorkGalleryEntry, Option<String>>,
pub public_work_code: __sdk::__query_builder::Col<PublicWorkGalleryEntry, String>,
pub owner_user_id: __sdk::__query_builder::Col<PublicWorkGalleryEntry, String>,
pub author_display_name: __sdk::__query_builder::Col<PublicWorkGalleryEntry, String>,
pub world_name: __sdk::__query_builder::Col<PublicWorkGalleryEntry, String>,
pub subtitle: __sdk::__query_builder::Col<PublicWorkGalleryEntry, String>,
pub summary_text: __sdk::__query_builder::Col<PublicWorkGalleryEntry, String>,
pub cover_image_src: __sdk::__query_builder::Col<PublicWorkGalleryEntry, Option<String>>,
pub cover_asset_id: __sdk::__query_builder::Col<PublicWorkGalleryEntry, Option<String>>,
pub theme_tags: __sdk::__query_builder::Col<PublicWorkGalleryEntry, Vec<String>>,
pub play_count: __sdk::__query_builder::Col<PublicWorkGalleryEntry, u32>,
pub remix_count: __sdk::__query_builder::Col<PublicWorkGalleryEntry, u32>,
pub like_count: __sdk::__query_builder::Col<PublicWorkGalleryEntry, u32>,
pub published_at_micros: __sdk::__query_builder::Col<PublicWorkGalleryEntry, Option<i64>>,
pub updated_at_micros: __sdk::__query_builder::Col<PublicWorkGalleryEntry, i64>,
pub sort_time_micros: __sdk::__query_builder::Col<PublicWorkGalleryEntry, i64>,
}
impl __sdk::__query_builder::HasCols for PublicWorkGalleryEntry {
type Cols = PublicWorkGalleryEntryCols;
fn cols(table_name: &'static str) -> Self::Cols {
PublicWorkGalleryEntryCols {
source_type: __sdk::__query_builder::Col::new(table_name, "source_type"),
work_id: __sdk::__query_builder::Col::new(table_name, "work_id"),
profile_id: __sdk::__query_builder::Col::new(table_name, "profile_id"),
source_session_id: __sdk::__query_builder::Col::new(table_name, "source_session_id"),
public_work_code: __sdk::__query_builder::Col::new(table_name, "public_work_code"),
owner_user_id: __sdk::__query_builder::Col::new(table_name, "owner_user_id"),
author_display_name: __sdk::__query_builder::Col::new(
table_name,
"author_display_name",
),
world_name: __sdk::__query_builder::Col::new(table_name, "world_name"),
subtitle: __sdk::__query_builder::Col::new(table_name, "subtitle"),
summary_text: __sdk::__query_builder::Col::new(table_name, "summary_text"),
cover_image_src: __sdk::__query_builder::Col::new(table_name, "cover_image_src"),
cover_asset_id: __sdk::__query_builder::Col::new(table_name, "cover_asset_id"),
theme_tags: __sdk::__query_builder::Col::new(table_name, "theme_tags"),
play_count: __sdk::__query_builder::Col::new(table_name, "play_count"),
remix_count: __sdk::__query_builder::Col::new(table_name, "remix_count"),
like_count: __sdk::__query_builder::Col::new(table_name, "like_count"),
published_at_micros: __sdk::__query_builder::Col::new(
table_name,
"published_at_micros",
),
updated_at_micros: __sdk::__query_builder::Col::new(table_name, "updated_at_micros"),
sort_time_micros: __sdk::__query_builder::Col::new(table_name, "sort_time_micros"),
}
}
}

View File

@@ -10,6 +10,7 @@ pub struct PuzzleRunNextLevelInput {
pub run_id: String,
pub owner_user_id: String,
pub target_profile_id: Option<String>,
pub prefer_similar_work: bool,
pub advanced_at_micros: i64,
}