diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml
index f9c105f4c4c..dbf3f28d91b 100644
--- a/.github/workflows/ci.yml
+++ b/.github/workflows/ci.yml
@@ -590,39 +590,6 @@ jobs:
run: |
cargo ci cli-docs
- llm_ci_check:
- name: Verify LLM benchmark is up to date
- permissions:
- contents: read
- runs-on: ubuntu-latest
- # Disable the tests because they are causing us headaches with merge conflicts and re-runs etc.
- if: false
- steps:
- # Build the tool from master to ensure consistent hash computation
- # with the llm-benchmark-update workflow (which also uses master's tool).
- - name: Checkout master (build tool from trusted code)
- uses: actions/checkout@v4
- with:
- ref: master
- fetch-depth: 1
-
- - uses: dtolnay/rust-toolchain@stable
- - uses: Swatinem/rust-cache@v2
-
- - name: Install llm-benchmark tool from master
- run: |
- cargo install --path tools/xtask-llm-benchmark --locked
- command -v llm_benchmark
-
- # Now checkout the PR branch to verify its benchmark files
- - name: Checkout PR branch
- uses: actions/checkout@v4
- with:
- clean: false
-
- - name: Run hash check (both langs)
- run: llm_benchmark ci-check
-
unity-testsuite:
needs: [lints]
# Skip if this is an external contribution.
diff --git a/.github/workflows/docs-update-llms.yaml b/.github/workflows/docs-update-llms.yaml
new file mode 100644
index 00000000000..d7d2751cd68
--- /dev/null
+++ b/.github/workflows/docs-update-llms.yaml
@@ -0,0 +1,67 @@
+name: Docs / Update llms files
+
+permissions:
+ contents: write
+
+on:
+ push:
+ branches:
+ - docs/release
+ paths:
+ - 'docs/docs/**'
+ - 'skills/**'
+ workflow_dispatch: # Allow manual trigger
+
+jobs:
+ update-llms:
+ runs-on: spacetimedb-new-runner-2
+ steps:
+ - name: Checkout repository
+ uses: actions/checkout@v3
+ with:
+ ref: docs/release
+
+ - name: Set up Node.js
+ uses: actions/setup-node@v3
+ with:
+ node-version: '22'
+
+ - uses: pnpm/action-setup@v4
+ with:
+ run_install: true
+
+ - name: Get pnpm store directory
+ working-directory: sdks/typescript
+ shell: bash
+ run: |
+ echo "STORE_PATH=$(pnpm store path --silent)" >> $GITHUB_ENV
+
+ - uses: actions/cache@v4
+ name: Setup pnpm cache
+ with:
+ path: ${{ env.STORE_PATH }}
+ key: ${{ runner.os }}-pnpm-store-${{ hashFiles('**/pnpm-lock.yaml') }}
+ restore-keys: |
+ ${{ runner.os }}-pnpm-store-
+
+ - name: Install dependencies
+ working-directory: docs
+ run: pnpm install
+
+ - name: Docusaurus build
+ working-directory: docs
+ run: pnpm build
+
+ - name: Generate llms files
+ working-directory: docs
+ run: node scripts/generate-llms.mjs
+
+ - name: Commit updated llms files
+ working-directory: docs
+ run: |
+ git config user.name "github-actions[bot]"
+ git config user.email "github-actions[bot]@users.noreply.github.com"
+ git add static/llms.md
+ git diff --staged --quiet && echo "No changes" && exit 0
+ git commit -m "Update llms files from docs build"
+ git push
diff --git a/.github/workflows/llm-benchmark-periodic.yml b/.github/workflows/llm-benchmark-periodic.yml
new file mode 100644
index 00000000000..c043611a49a
--- /dev/null
+++ b/.github/workflows/llm-benchmark-periodic.yml
@@ -0,0 +1,118 @@
+name: Periodic LLM benchmarks
+
+on:
+ schedule:
+ # Daily at midnight UTC. Change to '0 */6 * * *' for every 6h,
+ # or '0 */4 * * *' for every 4h.
+ - cron: '0 0 * * *'
+ workflow_dispatch:
+ inputs:
+ models:
+ description: 'Models to run (provider:model format, comma-separated, or "all")'
+ required: false
+ default: 'all'
+ languages:
+ description: 'Languages to benchmark (comma-separated: rust,csharp,typescript)'
+ required: false
+ default: 'rust,csharp,typescript'
+ modes:
+ description: 'Modes to run (comma-separated: guidelines,no_context,docs,...)'
+ required: false
+ default: 'guidelines,no_context'
+
+permissions:
+ contents: read
+
+concurrency:
+ group: llm-benchmark-periodic
+ cancel-in-progress: true
+
+jobs:
+ run-benchmarks:
+ runs-on: spacetimedb-new-runner
+ container:
+ image: localhost:5000/spacetimedb-ci:latest
+ options: >-
+ --privileged
+ timeout-minutes: 180
+
+ steps:
+ - name: Install spacetime CLI
+ run: |
+ curl -sSf https://install.spacetimedb.com | sh -s -- -y
+ echo "$HOME/.local/bin" >> $GITHUB_PATH
+
+ - name: Checkout master
+ uses: actions/checkout@v4
+ with:
+ ref: master
+ fetch-depth: 1
+
+ - uses: dtolnay/rust-toolchain@stable
+ - uses: Swatinem/rust-cache@v2
+
+ - name: Setup .NET SDK
+ uses: actions/setup-dotnet@v4
+ with:
+ dotnet-version: "8.0.x"
+
+ - name: Install WASI workload
+ env:
+ DOTNET_MULTILEVEL_LOOKUP: "0"
+ DOTNET_CLI_HOME: ${{ runner.temp }}/dotnet-home
+ DOTNET_SKIP_FIRST_TIME_EXPERIENCE: "1"
+ run: |
+ dotnet workload install wasi-experimental --skip-manifest-update --disable-parallel
+
+ - name: Set up Node.js
+ uses: actions/setup-node@v4
+ with:
+ node-version: 22
+
+ - name: Install pnpm
+ uses: pnpm/action-setup@v4
+
+ - name: Build llm-benchmark tool
+ run: cargo install --path tools/xtask-llm-benchmark --locked
+
+ - name: Run benchmarks
+ env:
+ OPENROUTER_API_KEY: ${{ secrets.OPENROUTER_API_KEY }}
+ OPENAI_API_KEY: ${{ secrets.OPENAI_API_KEY }}
+ ANTHROPIC_API_KEY: ${{ secrets.ANTHROPIC_API_KEY }}
+ LLM_BENCHMARK_API_KEY: ${{ secrets.LLM_BENCHMARK_API_KEY }}
+ LLM_BENCHMARK_UPLOAD_URL: ${{ secrets.LLM_BENCHMARK_UPLOAD_URL }}
+ MSBUILDDISABLENODEREUSE: "1"
+ DOTNET_CLI_USE_MSBUILD_SERVER: "0"
+ INPUT_LANGUAGES: ${{ inputs.languages || 'rust,csharp,typescript' }}
+ INPUT_MODELS: ${{ inputs.models || 'all' }}
+ INPUT_MODES: ${{ inputs.modes || 'guidelines,no_context' }}
+ run: |
+ LANGS="$INPUT_LANGUAGES"
+ MODELS="$INPUT_MODELS"
+ MODES="$INPUT_MODES"
+
+ SUCCEEDED=0
+ FAILED=0
+ for LANG in $(echo "$LANGS" | tr ',' ' '); do
+ if [ "$MODELS" = "all" ]; then
+ if llm_benchmark run --lang "$LANG" --modes "$MODES"; then
+ SUCCEEDED=$((SUCCEEDED + 1))
+ else
+ echo "::warning::Benchmark run failed for lang=$LANG"
+ FAILED=$((FAILED + 1))
+ fi
+ else
+ if llm_benchmark run --lang "$LANG" --modes "$MODES" --models "$MODELS"; then
+ SUCCEEDED=$((SUCCEEDED + 1))
+ else
+ echo "::warning::Benchmark run failed for lang=$LANG models=$MODELS"
+ FAILED=$((FAILED + 1))
+ fi
+ fi
+ done
+ echo "Benchmark runs: $SUCCEEDED succeeded, $FAILED failed"
+ if [ "$SUCCEEDED" -eq 0 ] && [ "$FAILED" -gt 0 ]; then
+ echo "::error::All benchmark runs failed"
+ exit 1
+ fi
diff --git a/.github/workflows/llm-benchmark-update.yml b/.github/workflows/llm-benchmark-update.yml
deleted file mode 100644
index 8d16cd662ed..00000000000
--- a/.github/workflows/llm-benchmark-update.yml
+++ /dev/null
@@ -1,312 +0,0 @@
-name: Update LLM benchmarks
-
-on:
- workflow_dispatch:
- inputs:
- pr_number:
- description: "Pull Request Number"
- required: true
- issue_comment:
- types: [created] # only run when the comment is first created
-
-permissions:
- contents: read
- pull-requests: write
- issues: write
-
-concurrency:
- group: >-
- llm-benchmark
- -${{ github.event_name == 'issue_comment' && github.event.issue.number || inputs.pr_number }}
- ${{ github.event_name == 'issue_comment' && !startsWith(github.event.comment.body, '/update-llm-benchmark') && '-unrelated-comment' }}
- cancel-in-progress: true
-
-jobs:
- update-llm-benchmark:
- # Runnable either with a comment that starts with /update-llm-benchmark
- # or by manually dispatching
- if: |
- (github.event_name == 'issue_comment' && github.event.issue.pull_request && startsWith(github.event.comment.body, '/update-llm-benchmark')) ||
- (github.event_name == 'workflow_dispatch')
- runs-on: spacetimedb-new-runner
- container:
- image: localhost:5000/spacetimedb-ci:latest
- options: >-
- --privileged
- steps:
- # Here we install the spacetime CLI for faster execution of the tests
- # SpacetimeDB itself is not under test here, rather it's the docs.
- # If we want to change that it is possible to have the benchmark compile
- # SpacetimeDB from source.
- - name: Install spacetime CLI
- run: |
- curl -sSf https://install.spacetimedb.com | sh -s -- -y
- echo "$HOME/.local/bin" >> $GITHUB_PATH
-
- - name: Load PR info
- id: pr
- uses: actions/github-script@v7
- with:
- script: |
- let prNumber;
- if (context.eventName === 'issue_comment') {
- prNumber = context.payload.issue.number;
- } else if (context.eventName === 'workflow_dispatch') {
- const raw = context.payload.inputs?.pr_number;
- if (!raw || !/^\d+$/.test(raw)) {
- core.setFailed(`Invalid pr_number input: '${raw}'.`);
- return;
- }
- prNumber = Number(raw);
- } else {
- core.setFailed(`Unsupported event: ${context.eventName}`);
- return;
- }
-
- const { data: pr } = await github.rest.pulls.get({
- owner: context.repo.owner,
- repo: context.repo.repo,
- pull_number: prNumber,
- });
-
- core.setOutput('number', String(prNumber));
- core.setOutput('head_ref', pr.head.ref);
- core.setOutput('head_sha', pr.head.sha);
- core.setOutput('head_repo_full_name', pr.head.repo.full_name);
- core.setOutput('head_owner_type', pr.head.repo.owner.type); // "User"|"Organization"
- core.setOutput('maintainer_can_modify', String(pr.maintainer_can_modify));
-
- # If this was kicked off by a comment, ensure that the commenter is
- # a collaborator on the repo. We don't want unprivileged users to run benchmarks.
- # Note that the workflow that will be run will be the one that is on the `master`
- # branch, NOT the one from the PR. This is important so that the PR author can't
- # sneak in an exfiltration exploit.
- - name: Check commenter permission
- if: github.event_name == 'issue_comment'
- uses: actions/github-script@v7
- with:
- script: |
- const user = context.payload.comment.user.login;
- const { data } = await github.rest.repos.getCollaboratorPermissionLevel({
- owner: context.repo.owner,
- repo: context.repo.repo,
- username: user,
- });
-
- const allowed = new Set(['admin', 'maintain', 'write', 'triage']);
- if (!allowed.has(data.permission)) {
- core.setFailed(`User ${user} has permission '${data.permission}', not allowed to run benchmarks.`);
- }
-
- # If the PR is from a fork, we need to be able to have GitHub actions commit back
- # to the forked repo, so that we can update the benchmark results.
- # In order to do this we need to ensure that the PR is configured to allow the maintainers
- # of the SpacetimeDB repo to commit back ot the fork.
- - name: Check fork pushability (and comment if not)
- if: steps.pr.outputs.head_repo_full_name != github.repository
- uses: actions/github-script@v7
- env:
- PR_NUMBER: ${{ steps.pr.outputs.number }}
- HEAD_OWNER_TYPE: ${{ steps.pr.outputs.head_owner_type }}
- MAINTAINER_CAN_MODIFY: ${{ steps.pr.outputs.maintainer_can_modify }}
- with:
- script: |
- const issue_number = Number(process.env.PR_NUMBER);
- const headOwnerType = process.env.HEAD_OWNER_TYPE;
- const canModify = process.env.MAINTAINER_CAN_MODIFY === 'true';
-
- if (headOwnerType === 'Organization') {
- await github.rest.issues.createComment({
- owner: context.repo.owner,
- repo: context.repo.repo,
- issue_number,
- body: [
- "I can’t push benchmark updates to this PR because it comes from an **organization-owned fork**.",
- "GitHub doesn’t allow granting upstream maintainers push permissions to org-owned forks.",
- "",
- "Options:",
- "- Reopen the PR from a **personal fork** with **Allow edits from maintainers** enabled, or",
- "- A maintainer can apply the benchmark update on an internal branch."
- ].join("\n"),
- });
- core.setFailed("Org-owned fork PR is not pushable by maintainers.");
- return;
- }
-
- if (!canModify) {
- await github.rest.issues.createComment({
- owner: context.repo.owner,
- repo: context.repo.repo,
- issue_number,
- body: [
- "I can’t push benchmark updates to this PR branch until you enable **Allow edits from maintainers**.",
- "Please check the box on the PR page, then re-comment `/update-llm-benchmark`.",
- "See https://docs.github.com/en/pull-requests/collaborating-with-pull-requests/working-with-forks/allowing-changes-to-a-pull-request-branch-created-from-a-fork"
- ].join("\n"),
- });
- core.setFailed("maintainer_can_modify is false; author must enable 'Allow edits from maintainers'.");
- }
-
- # Run the benchmark that is already checked into master to prevent
- # an exfiltration attack whereby the PR author tries to sneak in an exploit
- # and get a maintainer to run the modified benchmark without looking at the
- # PR first. This ensure that we only ever execute code that is checked into
- # master.
- - name: Checkout master (build/install tool from trusted code)
- uses: actions/checkout@v4
- with:
- ref: master
- fetch-depth: 0
- persist-credentials: false
-
- - uses: dtolnay/rust-toolchain@stable
- - uses: Swatinem/rust-cache@v2
-
- # Ensure we use a user-writable .NET install (not /usr/share/dotnet),
- # so workload installs don't require sudo.
- - name: Setup .NET SDK
- uses: actions/setup-dotnet@v4
- with:
- dotnet-version: "8.0.x"
-
- - name: Install WASI workload (wasi-experimental)
- env:
- DOTNET_MULTILEVEL_LOOKUP: "0"
- DOTNET_CLI_HOME: ${{ runner.temp }}/dotnet-home
- DOTNET_SKIP_FIRST_TIME_EXPERIENCE: "1"
- run: |
- dotnet --info
- dotnet workload install wasi-experimental --skip-manifest-update --disable-parallel
-
- - name: Install llm-benchmark tool from master
- run: |
- cargo install --path tools/xtask-llm-benchmark --locked
- command -v llm_benchmark
-
- # Check out the repo on the branch, but ONLY use this code as data!
- # Never execute code that is on the PR branch.
- - name: Checkout PR head (branch)
- uses: actions/checkout@v4
- with:
- repository: ${{ steps.pr.outputs.head_repo_full_name }}
- ref: ${{ steps.pr.outputs.head_sha }}
- fetch-depth: 0
- persist-credentials: false
-
- # Run the benchmark against the PR using the installed tool from the
- # master branch.
- - name: Run benchmark (with provider keys)
- env:
- OPENAI_API_KEY: ${{ secrets.OPENAI_API_KEY }}
- # Prevent MSBuild node reuse issues that cause "Pipe is broken" errors
- # when running multiple dotnet publish commands in parallel.
- # See: https://github.com/dotnet/msbuild/issues/6657
- MSBUILDDISABLENODEREUSE: "1"
- DOTNET_CLI_USE_MSBUILD_SERVER: "0"
- run: |
- llm_benchmark ci-quickfix
- llm_benchmark ci-check
-
- # Generate failure analysis if there are any failures
- - name: Generate failure analysis
- env:
- OPENAI_API_KEY: ${{ secrets.OPENAI_API_KEY }}
- run: |
- llm_benchmark analyze -o docs/llms/docs-benchmark-analysis.md || true
-
- # Generate PR comment markdown (compares against master baseline)
- - name: Generate PR comment markdown
- run: |
- llm_benchmark ci-comment
-
- - name: Ensure only docs/llms changed
- run: |
- set -euo pipefail
- CHANGED="$(git diff --name-only)"
-
- if [ -z "$CHANGED" ]; then
- echo "No changes."
- exit 0
- fi
-
- if echo "$CHANGED" | grep -qvE '^docs/llms/'; then
- echo "Benchmark produced changes outside docs/llms:"
- echo "$CHANGED" | grep -vE '^docs/llms/'
- exit 1
- fi
-
- # Comment the benchmark results on the PR
- - name: Comment benchmark results on PR
- uses: actions/github-script@v7
- env:
- PR_NUMBER: ${{ steps.pr.outputs.number }}
- with:
- github-token: ${{ secrets.CLOCKWORK_LABS_BOT_PAT }}
- script: |
- const fs = require('fs');
-
- // Read the pre-generated comment markdown
- const commentPath = 'docs/llms/docs-benchmark-comment.md';
- if (!fs.existsSync(commentPath)) {
- core.setFailed(`Comment file not found: ${commentPath}`);
- return;
- }
- let body = fs.readFileSync(commentPath, 'utf8');
-
- // Check if failure analysis exists and append it
- const analysisPath = 'docs/llms/docs-benchmark-analysis.md';
- if (fs.existsSync(analysisPath)) {
- const analysis = fs.readFileSync(analysisPath, 'utf8');
- // Only include if there's meaningful content (not just "no failures")
- if (!analysis.includes('No failures found')) {
- body += `\n\nFailure Analysis (click to expand)
\n\n${analysis}\n `;
- }
- }
-
- const issue_number = Number(process.env.PR_NUMBER);
-
- // Always post a new comment
- console.log(`Posting new comment on PR #${issue_number}...`);
- try {
- await github.rest.issues.createComment({
- owner: context.repo.owner,
- repo: context.repo.repo,
- issue_number,
- body,
- });
- console.log('Comment created successfully');
- } catch (err) {
- console.error('Failed to post comment:', err.message);
- console.error('Full error:', JSON.stringify(err, null, 2));
- throw err;
- }
-
- # The benchmarks only modify the docs/llms directory.
- # Commit the changes.
- - name: Commit changes
- run: |
- git config user.name "clockwork-labs-bot"
- git config user.email "clockwork-labs-bot@users.noreply.github.com"
-
- # Prefer staging only the benchmark output area (adjust as needed)
- git add docs/llms
-
- git diff --cached --quiet && exit 0
- git commit -m "Update LLM benchmark results"
-
- # Here we use the https://github.com/clockwork-labs-bot user's
- # personal access token to commit back to the PR branch. This is necessary
- # if we want to be able to push back to external contributor forks.
- - name: Push back to PR branch (same repo or fork)
- env:
- GH_TOKEN: ${{ secrets.CLOCKWORK_LABS_BOT_PAT }}
- run: |
- git remote set-url origin "https://x-access-token:${GH_TOKEN}@github.com/${{ steps.pr.outputs.head_repo_full_name }}.git"
- # Fetch and rebase in case branch moved since workflow started (e.g., previous benchmark run)
- git fetch origin "${{ steps.pr.outputs.head_ref }}"
- if ! git rebase "origin/${{ steps.pr.outputs.head_ref }}"; then
- git rebase --abort
- echo "::error::Rebase failed due to conflicts. The PR branch may have been updated during the benchmark run. Please re-run /update-llm-benchmark."
- exit 1
- fi
- git push origin "HEAD:${{ steps.pr.outputs.head_ref }}"
diff --git a/.github/workflows/llm-benchmark-validate-goldens.yml b/.github/workflows/llm-benchmark-validate-goldens.yml
new file mode 100644
index 00000000000..22866428f16
--- /dev/null
+++ b/.github/workflows/llm-benchmark-validate-goldens.yml
@@ -0,0 +1,78 @@
+name: Validate LLM benchmark golden answers
+
+on:
+ schedule:
+ # Nightly at 2 AM UTC
+ - cron: '0 2 * * *'
+ workflow_dispatch: {}
+
+permissions:
+ contents: read
+
+concurrency:
+ group: llm-benchmark-validate-goldens
+ cancel-in-progress: true
+
+jobs:
+ validate-goldens:
+ runs-on: spacetimedb-new-runner
+ container:
+ image: localhost:5000/spacetimedb-ci:latest
+ options: >-
+ --privileged
+ timeout-minutes: 60
+
+ strategy:
+ fail-fast: false
+ matrix:
+ lang: [rust, csharp, typescript]
+
+ steps:
+ - name: Install spacetime CLI
+ run: |
+ curl -sSf https://install.spacetimedb.com | sh -s -- -y
+ echo "$HOME/.local/bin" >> $GITHUB_PATH
+
+ - name: Checkout master
+ uses: actions/checkout@v4
+ with:
+ ref: master
+ fetch-depth: 1
+
+ - uses: dtolnay/rust-toolchain@stable
+ - uses: Swatinem/rust-cache@v2
+
+ - name: Setup .NET SDK
+ if: matrix.lang == 'csharp'
+ uses: actions/setup-dotnet@v4
+ with:
+ dotnet-version: "8.0.x"
+
+ - name: Install WASI workload
+ if: matrix.lang == 'csharp'
+ env:
+ DOTNET_MULTILEVEL_LOOKUP: "0"
+ DOTNET_CLI_HOME: ${{ runner.temp }}/dotnet-home
+ DOTNET_SKIP_FIRST_TIME_EXPERIENCE: "1"
+ run: |
+ dotnet workload install wasi-experimental --skip-manifest-update --disable-parallel
+
+ - name: Set up Node.js
+ if: matrix.lang == 'typescript'
+ uses: actions/setup-node@v4
+ with:
+ node-version: 22
+
+ - name: Install pnpm
+ if: matrix.lang == 'typescript'
+ uses: pnpm/action-setup@v4
+
+ - name: Build llm-benchmark tool
+ run: cargo install --path tools/xtask-llm-benchmark --locked
+
+ - name: Validate golden answers (${{ matrix.lang }})
+ env:
+ MSBUILDDISABLENODEREUSE: "1"
+ DOTNET_CLI_USE_MSBUILD_SERVER: "0"
+ run: |
+ llm_benchmark run --goldens-only --lang ${{ matrix.lang }}
diff --git a/Cargo.lock b/Cargo.lock
index 4a42447a83f..6d474123a49 100644
--- a/Cargo.lock
+++ b/Cargo.lock
@@ -11427,7 +11427,6 @@ dependencies = [
"chrono",
"clap 4.5.50",
"dotenvy",
- "fs2",
"futures",
"heck 0.5.0",
"regex",
@@ -11437,7 +11436,6 @@ dependencies = [
"spacetimedb 2.1.0",
"spacetimedb-data-structures",
"spacetimedb-guard",
- "tempfile",
"thiserror 2.0.17",
"tokio",
"urlencoding",
diff --git a/crates/cli/build.rs b/crates/cli/build.rs
index 06b962c6066..684cfa6fb50 100644
--- a/crates/cli/build.rs
+++ b/crates/cli/build.rs
@@ -56,10 +56,7 @@ fn get_manifest_dir() -> PathBuf {
// * `get_templates_json` - returns contents of the JSON file with the list of templates
// * `get_template_files` - returns a HashMap with templates contents based on the
// templates list at templates/templates-list.json
-// * `get_ai_rules_base` - returns base AI rules for all languages
-// * `get_ai_rules_typescript` - returns TypeScript-specific AI rules
-// * `get_ai_rules_rust` - returns Rust-specific AI rules
-// * `get_ai_rules_csharp` - returns C#-specific AI rules
+// * `get_skill` - returns the content of a skill file by name
fn generate_template_files() {
let manifest_dir = get_manifest_dir();
let repo_root = get_repo_root();
@@ -111,64 +108,24 @@ fn generate_template_files() {
let ts_bindings_version =
extract_ts_bindings_version(&ts_bindings_package).expect("Failed to read TypeScript bindings version");
- // Embed AI rules files from docs/static/ai-rules/
- let ai_rules_dir = repo_root.join("docs/static/ai-rules");
+ // Embed skill files from skills/*/SKILL.md
+ let skills_dir = repo_root.join("skills");
+ let skill_names = discover_skill_names(&skills_dir);
- // Base rules (all languages)
- let base_rules_path = ai_rules_dir.join("spacetimedb.mdc");
- if base_rules_path.exists() {
- generated_code.push_str("pub fn get_ai_rules_base() -> &'static str {\n");
- generated_code.push_str(&format!(
- " include_str!(\"{}\")\n",
- base_rules_path.to_str().unwrap().replace('\\', "\\\\")
- ));
- generated_code.push_str("}\n\n");
- println!("cargo:rerun-if-changed={}", base_rules_path.display());
- } else {
- panic!("Could not find \"docs/static/ai-rules/spacetimedb.mdc\" file.");
- }
-
- // TypeScript-specific rules
- let ts_rules_path = ai_rules_dir.join("spacetimedb-typescript.mdc");
- if ts_rules_path.exists() {
- generated_code.push_str("pub fn get_ai_rules_typescript() -> &'static str {\n");
- generated_code.push_str(&format!(
- " include_str!(\"{}\")\n",
- ts_rules_path.to_str().unwrap().replace('\\', "\\\\")
- ));
- generated_code.push_str("}\n\n");
- println!("cargo:rerun-if-changed={}", ts_rules_path.display());
- } else {
- panic!("Could not find \"docs/static/ai-rules/spacetimedb-typescript.mdc\" file.");
- }
-
- // Rust-specific rules
- let rust_rules_path = ai_rules_dir.join("spacetimedb-rust.mdc");
- if rust_rules_path.exists() {
- generated_code.push_str("pub fn get_ai_rules_rust() -> &'static str {\n");
- generated_code.push_str(&format!(
- " include_str!(\"{}\")\n",
- rust_rules_path.to_str().unwrap().replace('\\', "\\\\")
- ));
- generated_code.push_str("}\n\n");
- println!("cargo:rerun-if-changed={}", rust_rules_path.display());
- } else {
- panic!("Could not find \"docs/static/ai-rules/spacetimedb-rust.mdc\" file.");
- }
-
- // C#-specific rules
- let csharp_rules_path = ai_rules_dir.join("spacetimedb-csharp.mdc");
- if csharp_rules_path.exists() {
- generated_code.push_str("pub fn get_ai_rules_csharp() -> &'static str {\n");
+ generated_code.push_str("pub fn get_skill(name: &str) -> Option<&'static str> {\n");
+ generated_code.push_str(" match name {\n");
+ for skill_name in &skill_names {
+ let skill_path = skills_dir.join(skill_name).join("SKILL.md");
generated_code.push_str(&format!(
- " include_str!(\"{}\")\n",
- csharp_rules_path.to_str().unwrap().replace('\\', "\\\\")
+ " \"{}\" => Some(include_str!(\"{}\")),\n",
+ skill_name,
+ skill_path.to_str().unwrap().replace('\\', "\\\\")
));
- generated_code.push_str("}\n\n");
- println!("cargo:rerun-if-changed={}", csharp_rules_path.display());
- } else {
- panic!("Could not find \"docs/static/ai-rules/spacetimedb-csharp.mdc\" file.");
+ println!("cargo:rerun-if-changed={}", skill_path.display());
}
+ generated_code.push_str(" _ => None,\n");
+ generated_code.push_str(" }\n");
+ generated_code.push_str("}\n\n");
// Expose workspace metadata so `spacetime init` can rewrite template manifests without hardcoding versions.
generated_code.push_str("pub fn get_workspace_edition() -> &'static str {\n");
@@ -619,3 +576,31 @@ fn copy_if_changed(src: &Path, dst: &Path) -> io::Result<()> {
let mut file = fs::File::create(dst)?;
file.write_all(&src_bytes)
}
+
+/// Discover skill directories under skills/. Each directory containing a SKILL.md
+/// file is considered a skill. Returns sorted skill names.
+fn discover_skill_names(skills_dir: &Path) -> Vec {
+ let mut names = Vec::new();
+
+ let entries = match fs::read_dir(skills_dir) {
+ Ok(entries) => entries,
+ Err(_) => {
+ panic!(
+ "Could not read skills directory at {}. Ensure skills/ exists at the repo root.",
+ skills_dir.display()
+ );
+ }
+ };
+
+ for entry in entries.flatten() {
+ let path = entry.path();
+ if path.is_dir() && path.join("SKILL.md").exists() {
+ if let Some(name) = path.file_name().and_then(|n| n.to_str()) {
+ names.push(name.to_string());
+ }
+ }
+ }
+
+ names.sort();
+ names
+}
diff --git a/crates/cli/src/subcommands/init.rs b/crates/cli/src/subcommands/init.rs
index b4701b41164..7d706a1843d 100644
--- a/crates/cli/src/subcommands/init.rs
+++ b/crates/cli/src/subcommands/init.rs
@@ -1872,61 +1872,73 @@ fn set_dependency_version(item: &mut Item, version: &str, remove_path: bool) {
}
/// Install AI assistant rules for multiple editors/tools.
-/// Writes rules to:
-/// - .cursor/rules/ (Cursor)
+/// Reads from embedded skill files (skills/*/SKILL.md) and writes to:
+/// - .cursor/rules/ (Cursor) — with .mdc frontmatter
/// - CLAUDE.md (Claude Code)
/// - AGENTS.md (Opencode)
/// - .windsurfrules (Windsurf)
/// - .github/copilot-instructions.md (VS Code Copilot)
fn install_ai_rules(config: &TemplateConfig, project_path: &Path) -> anyhow::Result<()> {
- let base_rules = embedded::get_ai_rules_base();
- let ts_rules = embedded::get_ai_rules_typescript();
- let rust_rules = embedded::get_ai_rules_rust();
- let csharp_rules = embedded::get_ai_rules_csharp();
-
- // Check which languages are used in server or client
- let uses_typescript = config.server_lang == Some(ServerLanguage::TypeScript)
- || config.client_lang == Some(ClientLanguage::TypeScript);
- let uses_rust =
- config.server_lang == Some(ServerLanguage::Rust) || config.client_lang == Some(ClientLanguage::Rust);
- let uses_csharp =
- config.server_lang == Some(ServerLanguage::Csharp) || config.client_lang == Some(ClientLanguage::Csharp);
-
- // 1. Cursor: .cursor/rules/ directory with separate files
- let cursor_dir = project_path.join(".cursor/rules");
- fs::create_dir_all(&cursor_dir)?;
- fs::write(cursor_dir.join("spacetimedb.mdc"), base_rules)?;
- if uses_typescript {
- fs::write(cursor_dir.join("spacetimedb-typescript.mdc"), ts_rules)?;
- }
- if uses_rust {
- fs::write(cursor_dir.join("spacetimedb-rust.mdc"), rust_rules)?;
+ // Collect relevant skills based on server and client languages
+ let mut skills: Vec<(&str, &str)> = Vec::new();
+
+ // Always include shared skills
+ if let Some(content) = embedded::get_skill("concepts") {
+ skills.push(("concepts", content));
}
- if uses_csharp {
- fs::write(cursor_dir.join("spacetimedb-csharp.mdc"), csharp_rules)?;
+ if let Some(content) = embedded::get_skill("cli") {
+ skills.push(("cli", content));
}
- // Build combined content for single-file AI assistants
- // Strip the YAML frontmatter from the .mdc files for non-Cursor tools
- let base_content = strip_mdc_frontmatter(base_rules);
- let mut combined_content = base_content.to_string();
-
- if uses_typescript {
- let ts_content = strip_mdc_frontmatter(ts_rules);
- combined_content.push_str("\n\n");
- combined_content.push_str(ts_content);
+ // Server language skill
+ if let Some(server_lang) = config.server_lang {
+ let name = match server_lang {
+ ServerLanguage::Rust => "rust-server",
+ ServerLanguage::TypeScript => "typescript-server",
+ ServerLanguage::Csharp => "csharp-server",
+ ServerLanguage::Cpp => "cpp-server",
+ };
+ if let Some(content) = embedded::get_skill(name) {
+ skills.push((name, content));
+ }
+ // C++ server projects use Unreal as their client SDK
+ if server_lang == ServerLanguage::Cpp {
+ if let Some(content) = embedded::get_skill("unreal") {
+ skills.push(("unreal", content));
+ }
+ }
}
- if uses_rust {
- let rust_content = strip_mdc_frontmatter(rust_rules);
- combined_content.push_str("\n\n");
- combined_content.push_str(rust_content);
+
+ // Client language skill(s)
+ if let Some(client_lang) = config.client_lang {
+ let names: &[&str] = match client_lang {
+ ClientLanguage::Rust => &[], // no Rust client skill yet
+ ClientLanguage::TypeScript => &["typescript-client"],
+ ClientLanguage::Csharp => &["csharp-client", "unity"],
+ };
+ for name in names {
+ if let Some(content) = embedded::get_skill(name) {
+ skills.push((name, content));
+ }
+ }
}
- if uses_csharp {
- let csharp_content = strip_mdc_frontmatter(csharp_rules);
- combined_content.push_str("\n\n");
- combined_content.push_str(csharp_content);
+
+ // 1. Cursor: .cursor/rules/ directory with separate .mdc files
+ let cursor_dir = project_path.join(".cursor/rules");
+ fs::create_dir_all(&cursor_dir)?;
+ for (name, content) in &skills {
+ let mdc_content = skill_to_mdc(content);
+ fs::write(cursor_dir.join(format!("{}.mdc", name)), &mdc_content)?;
}
+ // Build combined content for single-file AI assistants
+ // Strip the YAML frontmatter from skills for non-Cursor tools
+ let combined_content: String = skills
+ .iter()
+ .map(|(_, content)| strip_frontmatter(content))
+ .collect::>()
+ .join("\n\n");
+
// 2. Claude Code: CLAUDE.md
fs::write(project_path.join("CLAUDE.md"), &combined_content)?;
@@ -1944,18 +1956,58 @@ fn install_ai_rules(config: &TemplateConfig, project_path: &Path) -> anyhow::Res
Ok(())
}
-/// Strip YAML frontmatter from .mdc files (the --- delimited section at the start)
-fn strip_mdc_frontmatter(content: &str) -> &str {
- // Look for frontmatter: starts with --- and ends with ---
+/// Convert a SKILL.md file to Cursor .mdc format.
+/// Parses the SKILL.md frontmatter for cursor_globs and cursor_always_apply,
+/// then generates Cursor-compatible frontmatter.
+fn skill_to_mdc(content: &str) -> String {
+ let (frontmatter, body) = split_frontmatter(content);
+
+ // Parse cursor-specific fields from frontmatter
+ let mut description = String::new();
+ let mut cursor_globs = String::new();
+ let mut cursor_always_apply = false;
+
+ for line in frontmatter.lines() {
+ let line = line.trim();
+ if let Some(val) = line.strip_prefix("description:") {
+ description = val.trim().trim_matches('"').to_string();
+ } else if let Some(val) = line.strip_prefix("cursor_globs:") {
+ cursor_globs = val.trim().trim_matches('"').to_string();
+ } else if let Some(val) = line.strip_prefix("cursor_always_apply:") {
+ cursor_always_apply = val.trim() == "true";
+ }
+ }
+
+ let mut mdc = String::new();
+ mdc.push_str("---\n");
+ if !description.is_empty() {
+ mdc.push_str(&format!("description: \"{}\"\n", description));
+ }
+ if !cursor_globs.is_empty() {
+ mdc.push_str(&format!("globs: {}\n", cursor_globs));
+ }
+ mdc.push_str(&format!("alwaysApply: {}\n", cursor_always_apply));
+ mdc.push_str("---\n\n");
+ mdc.push_str(body);
+ mdc
+}
+
+/// Split content into (frontmatter, body). Frontmatter is the text between --- delimiters.
+fn split_frontmatter(content: &str) -> (&str, &str) {
if let Some(after_opening) = content.strip_prefix("---")
&& let Some(end_idx) = after_opening.find("\n---")
{
- // Skip past the closing --- and the newline after it
- let remaining = &after_opening[end_idx + 4..]; // 4 for \n---
- // Skip any leading newlines after frontmatter
- return remaining.trim_start_matches('\n');
+ let frontmatter = &after_opening[..end_idx];
+ let body = &after_opening[end_idx + 4..]; // 4 for \n---
+ let body = body.trim_start_matches('\n');
+ return (frontmatter, body);
}
- content
+ ("", content)
+}
+
+/// Strip YAML frontmatter (the --- delimited section at the start)
+fn strip_frontmatter(content: &str) -> &str {
+ split_frontmatter(content).1
}
/// Check if Emscripten and CMake tooling are available in PATH.
diff --git a/docs/DEVELOP.md b/docs/DEVELOP.md
index fd97525f270..3ee7a261572 100644
--- a/docs/DEVELOP.md
+++ b/docs/DEVELOP.md
@@ -126,21 +126,9 @@ $env:LLM_BENCH_ROUTE_CONCURRENCY="4"
Results directory: `docs/llms`
-### Result Files
+### Results Storage
-There are two sets of result files, each serving a different purpose:
-
-| Files | Purpose | Updated By |
-|-------|---------|------------|
-| `docs-benchmark-details.json`
`docs-benchmark-summary.json` | Test documentation quality with a single reference model (GPT-5) | `cargo llm ci-quickfix` |
-| `llm-comparison-details.json`
`llm-comparison-summary.json` | Compare all LLMs against the same documentation | `cargo llm run` |
-
-- **docs-benchmark**: Used by CI to ensure documentation quality. Contains only GPT-5 results.
-- **llm-comparison**: Used for manual benchmark runs to compare LLM performance. Contains results from all configured models.
-
-> Results writes are lock-safe and atomic. The tool takes an exclusive lock and writes via a temp file, then renames it, so concurrent runs won't corrupt results.
-
-Open `llm_benchmark_stats_viewer.html` in a browser to inspect merged results locally.
+Benchmark results are stored in a remote PostgreSQL database via the spacetime-web API. Results are uploaded automatically after each benchmark batch when `LLM_BENCHMARK_UPLOAD_URL` and `LLM_BENCHMARK_API_KEY` environment variables are set. Use `--dry-run` to skip uploading.
### Current Benchmarks
**basics**
diff --git a/docs/docusaurus.config.ts b/docs/docusaurus.config.ts
index cb921b5dcf7..141c0e803cf 100644
--- a/docs/docusaurus.config.ts
+++ b/docs/docusaurus.config.ts
@@ -217,6 +217,20 @@ const config: Config = {
},
},
],
+ [
+ '@signalwire/docusaurus-plugin-llms-txt',
+ {
+ siteTitle: 'SpacetimeDB',
+ siteDescription:
+ 'SpacetimeDB is a database that lets you write your entire application as a database module. Server logic runs inside the database as WebAssembly. Clients subscribe to queries and get real-time updates over WebSocket. No separate server needed.',
+ depth: 2,
+ content: {
+ enableLlmsFullTxt: true,
+ enableMarkdownFiles: false,
+ includeVersionedDocs: false,
+ },
+ },
+ ],
],
};
diff --git a/docs/llms/docs-benchmark-analysis.md b/docs/llms/docs-benchmark-analysis.md
deleted file mode 100644
index 459875a4ebb..00000000000
--- a/docs/llms/docs-benchmark-analysis.md
+++ /dev/null
@@ -1,250 +0,0 @@
-# Benchmark Failure Analysis
-
-Generated from: `/__w/SpacetimeDB/SpacetimeDB/tools/xtask-llm-benchmark/../../docs/llms/docs-benchmark-details.json`
-
-## Summary
-
-- **Total failures analyzed**: 33
-
----
-
-## Analysis of SpacetimeDB Benchmark Test Failures
-
-### Rust / rustdoc_json Failures
-
-#### Compile/Publish Errors (2 Failures)
-
-##### Failure Group 1: `t_002_scheduled_table` and `t_017_scheduled_columns`
-1. **The generated code**:
- ```rust
- use spacetimedb::{table, reducer, ReducerContext, Table, ScheduleAt};
-
- #[table(accessor = tick_timer, schedule(reducer = tick, column = scheduled_at))]
- pub struct TickTimer {
- #[primary_key]
- #[auto_inc]
- scheduled_id: u64,
- scheduled_at: ScheduleAt,
- }
-
- #[reducer(init)]
- pub fn init(ctx: &ReducerContext) {
- if ctx.db.tick_timer().count() == 0 {
- ctx.db.tick_timer().insert(TickTimer {
- scheduled_id: 0,
- scheduled_at: ScheduleAt::RepeatMicros(50_000),
- });
- }
- }
-
- #[reducer]
- pub fn tick(_ctx: &ReducerContext, _row: TickTimer) {
- }
- ```
-
-2. **The golden example**:
- ```rust
- use spacetimedb::{reducer, table, ReducerContext, ScheduleAt, Table};
- use std::time::Duration;
-
- #[table(accessor = tick_timer, scheduled(tick))]
- pub struct TickTimer {
- #[primary_key]
- #[auto_inc]
- pub scheduled_id: u64,
- pub scheduled_at: ScheduleAt,
- }
-
- #[reducer]
- pub fn tick(_ctx: &ReducerContext, _schedule: TickTimer) {
- }
-
- #[reducer(init)]
- pub fn init(ctx: &ReducerContext) {
- let every_50ms: ScheduleAt = Duration::from_millis(50).into();
- ctx.db.tick_timer().insert(TickTimer {
- scheduled_id: 0,
- scheduled_at: every_50ms,
- });
- }
- ```
-
-3. **The error**:
- - `publish_error: spacetime publish failed (exit=1)`
-
-4. **Explain the difference**:
- - The generated code used `ScheduleAt::RepeatMicros(50_000)` instead of the correct `ScheduleAt::Interval(Duration::from_millis(50).into())`. The way the scheduling was set up was incorrect.
-
-5. **Root cause**:
- - The documentation does not clearly specify the constructor syntax for `ScheduleAt` nor how to correctly set up the scheduled tasks in this context.
-
-6. **Recommendation**:
- - Update documentation to provide examples of different constructors for `ScheduleAt`, specifically emphasizing how to define intervals correctly.
-
----
-
-#### Other Failures (5 failures)
-
-##### Failure Group 2: `t_013_spacetime_sum_type`, `t_015_product_type_columns`, `t_016_sum_type_columns`, `t_018_constraints`, `t_020_ecs`
-1. **The generated code**:
- ```rust
- use spacetimedb::{table, reducer, ReducerContext, Table, SpacetimeType};
-
- #[derive(SpacetimeType)]
- pub struct Rect {
- width: i32,
- height: i32,
- }
-
- #[table(accessor = result)]
- pub struct ResultRow {
- #[primary_key]
- id: i32,
- value: Shape,
- }
-
- #[reducer]
- pub fn set_circle(ctx: &ReducerContext, id: i32, radius: i32) {
- ctx.db.result().insert(ResultRow {
- id,
- value: Shape::Circle(radius),
- });
- }
- ```
-
-2. **The golden example**:
- ```rust
- use spacetimedb::{reducer, table, ReducerContext, SpacetimeType, Table};
-
- #[derive(SpacetimeType, Clone, Debug)]
- pub struct Rect {
- pub width: i32,
- pub height: i32,
- }
-
- #[table(accessor = result)]
- pub struct ResultRow {
- #[primary_key]
- pub id: i32,
- pub value: Shape,
- }
-
- #[reducer]
- pub fn set_circle(ctx: &ReducerContext, id: i32, radius: i32) {
- ctx.db.result().insert(ResultRow { id, value: Shape::Circle(radius) });
- }
- ```
-
-3. **The error**:
- - `spacetime sql failed: no such table: result`
- - `spacetime sql failed: no such table: profile`
- - `spacetime sql failed: no such table: drawings`
-
-4. **Explain the difference**:
- - The generated code omits the `pub` visibility keyword for fields and structs, which prevents proper access by the macros that generate the expected database schema. Additionally, the enum `Shape` wasn't declared correctly in the generated code.
-
-5. **Root cause**:
- - Lack of proper visibility (missing `pub`) for structs and enum fields was not clearly emphasized in the documentation, leading to access issues.
-
-6. **Recommendation**:
- - Provide clear guidelines in the documentation regarding the necessity of using `pub` for struct and enum fields when working with SpacetimeDB components. Include example schemas with visibility marked.
-
----
-
-### Rust / docs Failures (22 total)
-
-#### Timeout Issues (1 failure)
-
-1. **Failure Group**: `t_015_product_type_columns`
- - **Expected**: Modify the query logic to ensure no unnecessary long-running operations exist.
- - **Recommendation**: Provide timeout considerations in the documentation to ensure optimization options are explored to prevent long-running tasks.
-
----
-
-### C# / docs Failures (4 total)
-
-#### C# Failure Group: `t_014_elementary_columns`, `t_016_sum_type_columns`, `t_017_scheduled_columns`, `t_020_ecs`
-1. **The generated code**:
- ```csharp
- using SpacetimeDB;
-
- public static partial class Module
- {
- [SpacetimeDB.Table(Accessor = "Primitive", Public = true)]
- public partial struct Primitive
- {
- [SpacetimeDB.PrimaryKey]
- public int Id;
- public int Count;
- public long Total;
- public float Price;
- public double Ratio;
- public bool Active;
- public string Name;
- }
-
- [SpacetimeDB.Reducer]
- public static void Seed(ReducerContext ctx)
- {
- ctx.Db.Primitive.Insert(new Primitive
- {
- Id = 1,
- Count = 2,
- Total = 3000000000L,
- Price = 1.5f,
- Ratio = 2.25,
- Active = true,
- Name = "Alice"
- });
- }
- }
- ```
-
-2. **The golden example**:
- ```csharp
- using SpacetimeDB;
-
- public static partial class Module
- {
- [Table(Accessor = "Primitive")]
- public partial struct Primitive
- {
- [PrimaryKey] public int Id;
- public int Count;
- public long Total;
- public float Price;
- public double Ratio;
- public bool Active;
- public string Name;
- }
-
- [Reducer]
- public static void Seed(ReducerContext ctx)
- {
- ctx.Db.Primitive.Insert(new Primitive {
- Id = 1,
- Count = 2,
- Total = 3000000000,
- Price = 1.5f,
- Ratio = 2.25,
- Active = true,
- Name = "Alice"
- });
- }
- }
- ```
-
-3. **The error**: `no such table: primitive`
-
-4. **Explain the difference**:
- - Missing the `public` access modifier in the declaration of the `Table` attribute. The expected syntax properly utilizes attributes defined in the library.
-
-5. **Root cause**:
- - Documentation may lack clarity about access modifiers, especially when it comes to how they affect visibility in entities.
-
-6. **Recommendation**:
- - Ensure C# documentation includes explicit examples where `public` is required in class and struct declarations to prevent access issues with tables.
-
----
-
-By addressing the above gaps in documentation and ensuring that generated samples adhere to the expected outcomes, we can significantly reduce the number of failures in future benchmarks.
diff --git a/docs/llms/docs-benchmark-comment.md b/docs/llms/docs-benchmark-comment.md
deleted file mode 100644
index b26d4820585..00000000000
--- a/docs/llms/docs-benchmark-comment.md
+++ /dev/null
@@ -1,17 +0,0 @@
-## LLM Benchmark Results (ci-quickfix)
-
-| Language | Mode | Category | Tests Passed | Task Pass % |
-|----------|------|----------|--------------|-------------|
-| Rust | rustdoc_json | basics | 26/27 | 91.7% ⬆️ +8.3% |
-| Rust | rustdoc_json | schema | 23/34 | 65.3% ⬆️ +10.0% |
-| Rust | rustdoc_json | **total** | 49/61 | **79.7%** ⬆️ +9.1% |
-| Rust | docs | basics | 5/27 | 11.1% |
-| Rust | docs | schema | 8/32 | 20.5% ⬆️ +8.0% |
-| Rust | docs | **total** | 13/59 | **15.4%** ⬆️ +3.6% |
-| C# | docs | basics | 27/27 | 100.0% |
-| C# | docs | schema | 25/34 | 73.7% |
-| C# | docs | **total** | 52/61 | **88.0%** |
-
-_Compared against master branch baseline_
-
-Generated at: 2026-01-27T20:01:19.767Z
diff --git a/docs/llms/docs-benchmark-details.json b/docs/llms/docs-benchmark-details.json
deleted file mode 100644
index b91afc0d43a..00000000000
--- a/docs/llms/docs-benchmark-details.json
+++ /dev/null
@@ -1,3634 +0,0 @@
-{
- "languages": [
- {
- "lang": "rust",
- "modes": [
- {
- "mode": "rustdoc_json",
- "hash": "2a0f4ec42cac03fb3da542793b311e4b399845c688bb0660a6c231c82e96c56a",
- "models": [
- {
- "name": "GPT-5",
- "route_api_model": "gpt-5",
- "tasks": {
- "t_000_empty_reducers": {
- "hash": "2a0f4ec42cac03fb3da542793b311e4b399845c688bb0660a6c231c82e96c56a",
- "task": "t_000_empty_reducers",
- "lang": "rust",
- "golden_published": true,
- "model_name": "GPT-5",
- "total_tests": 1,
- "passed_tests": 1,
- "llm_output": "use spacetimedb::ReducerContext;\n\n#[spacetimedb::reducer]\npub fn empty_reducer_no_args(_ctx: &ReducerContext) {\n}\n\n#[spacetimedb::reducer]\npub fn empty_reducer_with_int(_ctx: &ReducerContext, count: i32) {\n let _ = count;\n}\n\n#[spacetimedb::reducer]\npub fn empty_reducer_with_string(_ctx: &ReducerContext, name: String) {\n let _ = name;\n}\n\n#[spacetimedb::reducer]\npub fn empty_reducer_with_two_args(_ctx: &ReducerContext, count: i32, name: String) {\n let _ = (count, name);\n}\n\n#[spacetimedb::reducer]\npub fn empty_reducer_with_three_args(_ctx: &ReducerContext, active: bool, ratio: f32, label: String) {\n let _ = (active, ratio, label);\n}",
- "category": "basics",
- "route_api_model": "gpt-5",
- "golden_db": "basics-t-000-empty-reducers-golden",
- "llm_db": "basics-t-000-empty-reducers-gpt-5-llm",
- "work_dir_golden": "target/llm-runs/basics/t_000_empty_reducers/rust/server/golden",
- "work_dir_llm": "target/llm-runs/basics/t_000_empty_reducers/rust/server/gpt-5/llm",
- "scorer_details": {
- "schema_parity": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "golden_db": "basics-t-000-empty-reducers-golden",
- "llm_db": "basics-t-000-empty-reducers-gpt-5-llm",
- "reducers_diff": null,
- "reducers_equal": true,
- "server": "http://127.0.0.1:33615",
- "tables_diff": null,
- "tables_equal": true
- }
- }
- },
- "vendor": "openai",
- "started_at": "2026-01-27T19:50:33.923590167Z",
- "finished_at": "2026-01-27T19:51:02.622615452Z"
- },
- "t_001_basic_tables": {
- "hash": "2a0f4ec42cac03fb3da542793b311e4b399845c688bb0660a6c231c82e96c56a",
- "task": "t_001_basic_tables",
- "lang": "rust",
- "golden_published": true,
- "model_name": "GPT-5",
- "total_tests": 1,
- "passed_tests": 1,
- "llm_output": "#[spacetimedb::table(name = user)]\npub struct User {\n #[primary_key]\n id: i32,\n name: String,\n age: i32,\n active: bool,\n}\n\n#[spacetimedb::table(name = product)]\npub struct Product {\n #[primary_key]\n id: i32,\n title: String,\n price: f32,\n in_stock: bool,\n}\n\n#[spacetimedb::table(name = note)]\npub struct Note {\n #[primary_key]\n id: i32,\n body: String,\n rating: i64,\n pinned: bool,\n}",
- "category": "basics",
- "route_api_model": "gpt-5",
- "golden_db": "basics-t-001-basic-tables-golden",
- "llm_db": "basics-t-001-basic-tables-gpt-5-llm",
- "work_dir_golden": "target/llm-runs/basics/t_001_basic_tables/rust/server/golden",
- "work_dir_llm": "target/llm-runs/basics/t_001_basic_tables/rust/server/gpt-5/llm",
- "scorer_details": {
- "schema_parity": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "golden_db": "basics-t-001-basic-tables-golden",
- "llm_db": "basics-t-001-basic-tables-gpt-5-llm",
- "reducers_diff": null,
- "reducers_equal": true,
- "server": "http://127.0.0.1:33615",
- "tables_diff": null,
- "tables_equal": true
- }
- }
- },
- "vendor": "openai",
- "started_at": "2026-01-27T19:50:58.838771838Z",
- "finished_at": "2026-01-27T19:51:33.707208916Z"
- },
- "t_002_scheduled_table": {
- "hash": "2a0f4ec42cac03fb3da542793b311e4b399845c688bb0660a6c231c82e96c56a",
- "task": "t_002_scheduled_table",
- "lang": "rust",
- "golden_published": false,
- "model_name": "GPT-5",
- "total_tests": 1,
- "passed_tests": 0,
- "llm_output": "use spacetimedb::{table, reducer, ReducerContext, Table, ScheduleAt};\n\n#[table(name = tick_timer, schedule(reducer = tick, column = scheduled_at))]\npub struct TickTimer {\n #[primary_key]\n #[auto_inc]\n scheduled_id: u64,\n scheduled_at: ScheduleAt,\n}\n\n#[reducer(init)]\npub fn init(ctx: &ReducerContext) {\n if ctx.db.tick_timer().count() == 0 {\n ctx.db\n .tick_timer()\n .insert(TickTimer { scheduled_id: 0, scheduled_at: ScheduleAt::repeat_micros(50_000) });\n }\n}\n\n#[reducer]\npub fn tick(_ctx: &ReducerContext) {\n}",
- "category": "basics",
- "route_api_model": "gpt-5",
- "golden_db": "basics-t-002-scheduled-table-golden",
- "llm_db": "basics-t-002-scheduled-table-gpt-5-llm",
- "work_dir_golden": "target/llm-runs/basics/t_002_scheduled_table/rust/server/golden",
- "work_dir_llm": "target/llm-runs/basics/t_002_scheduled_table/rust/server/gpt-5/llm",
- "scorer_details": {
- "publish_error": {
- "pass": false,
- "partial": 0.0,
- "notes": {
- "error": "spacetime publish failed (exit=1)\n--- stderr ---\n Updating crates.io index\n Locking 72 packages to latest compatible versions\n Adding generic-array v0.14.7 (available: v0.14.9)\n Adding spacetimedb v1.11.1 (available: v1.11.3)\n Adding spacetimedb-bindings-macro v1.11.1 (available: v1.11.3)\n Adding spacetimedb-bindings-sys v1.11.1 (available: v1.11.3)\n Adding spacetimedb-lib v1.11.1 (available: v1.11.3)\n Adding spacetimedb-primitives v1.11.1 (available: v1.11.3)\n Adding spacetimedb-sats v1.11.1 (available: v1.11.3)\n Compiling proc-macro2 v1.0.106\n Compiling quote v1.0.44\n Compiling unicode-ident v1.0.22\n Compiling typenum v1.19.0\n Compiling version_check v0.9.5\n Compiling autocfg v1.5.0\n Compiling serde_core v1.0.228\n Compiling heck v0.5.0\n Compiling cfg-if v1.0.4\n Compiling shlex v1.3.0\n Compiling either v1.15.0\n Compiling serde v1.0.228\n Compiling find-msvc-tools v0.1.8\n Compiling zerocopy v0.8.34\n Compiling thiserror v1.0.69\n Compiling bitflags v2.10.0\n Compiling nohash-hasher v0.2.0\n Compiling anyhow v1.0.100\n Compiling keccak v0.1.5\n Compiling bytes v1.11.0\n Compiling humantime v2.3.0\n Compiling convert_case v0.4.0\n Compiling zmij v1.0.17\n Compiling heck v0.4.1\n Compiling arrayvec v0.7.6\n Compiling second-stack v0.3.5\n Compiling serde_json v1.0.149\n Compiling hex v0.4.3\n Compiling bytemuck v1.24.0\n Compiling getrandom v0.2.17\n Compiling itoa v1.0.17\n Compiling smallvec v1.15.1\n Compiling arrayref v0.3.9\n Compiling itertools v0.12.1\n Compiling spacetimedb-lib v1.11.1\n Compiling constant_time_eq v0.4.2\n Compiling log v0.4.29\n Compiling memchr v2.7.6\n Compiling rand_core v0.6.4\n Compiling cc v1.2.54\n Compiling scoped-tls v1.0.1\n Compiling generic-array v0.14.7\n Compiling num-traits v0.2.19\n Compiling syn v2.0.114\n Compiling http v1.4.0\n Compiling approx v0.3.2\n Compiling chrono v0.4.43\n Compiling decorum v0.3.1\n Compiling blake3 v1.8.3\n Compiling crypto-common v0.1.7\n Compiling block-buffer v0.10.4\n Compiling digest v0.10.7\n Compiling sha3 v0.10.8\n Compiling ppv-lite86 v0.2.21\n Compiling ethnum v1.5.2\n Compiling rand_chacha v0.3.1\n Compiling rand v0.8.5\n Compiling enum-as-inner v0.6.1\n Compiling thiserror-impl v1.0.69\n Compiling derive_more v0.99.20\n Compiling spacetimedb-primitives v1.11.1\n Compiling spacetimedb-bindings-macro v1.11.1\n Compiling spacetimedb-bindings-sys v1.11.1\n Compiling spacetimedb-sats v1.11.1\n Compiling spacetimedb v1.11.1\n Compiling spacetime-module v0.1.0 (/__w/SpacetimeDB/SpacetimeDB/target/llm-runs/basics/t_002_scheduled_table/rust/server/gpt-5/llm)\nerror: expected one of: `public`, `private`, `name`, `index`, `scheduled`\n --> src/lib.rs:4:28\n |\n4 | #[table(name = tick_timer, schedule(reducer = tick, column = scheduled_at))]\n | ^^^^^^^^\n\nerror[E0422]: cannot find struct, variant or union type `TickTimer` in this scope\n --> src/lib.rs:17:21\n |\n17 | .insert(TickTimer { scheduled_id: 0, scheduled_at: ScheduleAt::repeat_micros(50_000) });\n | ^^^^^^^^^ not found in this scope\n\nerror[E0599]: no method named `tick_timer` found for struct `Local` in the current scope\n --> src/lib.rs:14:15\n |\n14 | if ctx.db.tick_timer().count() == 0 {\n | ^^^^^^^^^^ method not found in `Local`\n\nerror[E0599]: no method named `tick_timer` found for struct `Local` in the current scope\n --> src/lib.rs:16:14\n |\n15 | / ctx.db\n16 | | .tick_timer()\n | | -^^^^^^^^^^ method not found in `Local`\n | |_____________|\n |\n\nerror[E0599]: no variant or associated item named `repeat_micros` found for enum `ScheduleAt` in the current scope\n --> src/lib.rs:17:76\n |\n17 | .insert(TickTimer { scheduled_id: 0, scheduled_at: ScheduleAt::repeat_micros(50_000) });\n | ^^^^^^^^^^^^^ variant or associated item not found in `ScheduleAt`\n\nSome errors have detailed explanations: E0422, E0599.\nFor more information about an error, try `rustc --explain E0422`.\nerror: could not compile `spacetime-module` (lib) due to 5 previous errors\nError: command [\"cargo\", \"build\", \"--config=net.git-fetch-with-cli=true\", \"--target=wasm32-unknown-unknown\", \"--release\", \"--message-format=json-render-diagnostics\"] exited with code 101\n\n--- stdout ---\n",
- "phase": "build_or_publish"
- }
- }
- },
- "vendor": "openai",
- "started_at": "2026-01-27T19:51:00.465423417Z",
- "finished_at": "2026-01-27T19:51:47.339587032Z"
- },
- "t_003_struct_in_table": {
- "hash": "2a0f4ec42cac03fb3da542793b311e4b399845c688bb0660a6c231c82e96c56a",
- "task": "t_003_struct_in_table",
- "lang": "rust",
- "golden_published": true,
- "model_name": "GPT-5",
- "total_tests": 1,
- "passed_tests": 1,
- "llm_output": "use spacetimedb::SpacetimeType;\n\n#[derive(SpacetimeType)]\npub struct Position {\n x: i32,\n y: i32,\n}\n\n#[spacetimedb::table(name = entity)]\npub struct Entity {\n #[primary_key]\n id: i32,\n pos: Position,\n}",
- "category": "basics",
- "route_api_model": "gpt-5",
- "golden_db": "basics-t-003-struct-in-table-golden",
- "llm_db": "basics-t-003-struct-in-table-gpt-5-llm",
- "work_dir_golden": "target/llm-runs/basics/t_003_struct_in_table/rust/server/golden",
- "work_dir_llm": "target/llm-runs/basics/t_003_struct_in_table/rust/server/gpt-5/llm",
- "scorer_details": {
- "schema_parity": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "golden_db": "basics-t-003-struct-in-table-golden",
- "llm_db": "basics-t-003-struct-in-table-gpt-5-llm",
- "reducers_diff": null,
- "reducers_equal": true,
- "server": "http://127.0.0.1:33615",
- "tables_diff": null,
- "tables_equal": true
- }
- }
- },
- "vendor": "openai",
- "started_at": "2026-01-27T19:50:43.120116357Z",
- "finished_at": "2026-01-27T19:51:34.789700080Z"
- },
- "t_004_insert": {
- "hash": "2a0f4ec42cac03fb3da542793b311e4b399845c688bb0660a6c231c82e96c56a",
- "task": "t_004_insert",
- "lang": "rust",
- "golden_published": true,
- "model_name": "GPT-5",
- "total_tests": 2,
- "passed_tests": 2,
- "llm_output": "use spacetimedb::{table, reducer, ReducerContext, Table};\n\n#[table(name = user)]\npub struct User {\n #[primary_key]\n id: i32,\n name: String,\n age: i32,\n active: bool,\n}\n\n#[reducer]\npub fn insert_user(ctx: &ReducerContext, id: i32, name: String, age: i32, active: bool) {\n ctx.db.user().insert(User { id, name, age, active });\n}",
- "category": "basics",
- "route_api_model": "gpt-5",
- "golden_db": "basics-t-004-insert-golden",
- "llm_db": "basics-t-004-insert-gpt-5-llm",
- "work_dir_golden": "target/llm-runs/basics/t_004_insert/rust/server/golden",
- "work_dir_llm": "target/llm-runs/basics/t_004_insert/rust/server/gpt-5/llm",
- "scorer_details": {
- "schema_parity": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "golden_db": "basics-t-004-insert-golden",
- "llm_db": "basics-t-004-insert-gpt-5-llm",
- "reducers_diff": null,
- "reducers_equal": true,
- "server": "http://127.0.0.1:33615",
- "tables_diff": null,
- "tables_equal": true
- }
- },
- "data_parity_insert_user": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "args": [
- 1,
- "Alice",
- 30,
- true
- ],
- "golden_db": "basics-t-004-insert-golden",
- "golden_out": "id | name | age | active ----+---------+-----+-------- 1 | \"Alice\" | 30 | true",
- "llm_db": "basics-t-004-insert-gpt-5-llm",
- "llm_out": "id | name | age | active ----+---------+-----+-------- 1 | \"Alice\" | 30 | true",
- "query": "SELECT id, name, age, active FROM user WHERE id=1",
- "reducer": "insert_user",
- "server": "http://127.0.0.1:33615"
- }
- }
- },
- "vendor": "openai",
- "started_at": "2026-01-27T19:51:00.012104606Z",
- "finished_at": "2026-01-27T19:51:27.169795394Z"
- },
- "t_005_update": {
- "hash": "2a0f4ec42cac03fb3da542793b311e4b399845c688bb0660a6c231c82e96c56a",
- "task": "t_005_update",
- "lang": "rust",
- "golden_published": true,
- "model_name": "GPT-5",
- "total_tests": 3,
- "passed_tests": 3,
- "llm_output": "use spacetimedb::{table, reducer, ReducerContext, Table};\n\n#[table(name = user)]\npub struct User {\n #[primary_key]\n id: i32,\n name: String,\n age: i32,\n active: bool,\n}\n\n#[reducer]\npub fn update_user(ctx: &ReducerContext, id: i32, name: String, age: i32, active: bool) {\n let row = User { id, name, age, active };\n ctx.db.user().id().update(row);\n}",
- "category": "basics",
- "route_api_model": "gpt-5",
- "golden_db": "basics-t-005-update-golden",
- "llm_db": "basics-t-005-update-gpt-5-llm",
- "work_dir_golden": "target/llm-runs/basics/t_005_update/rust/server/golden",
- "work_dir_llm": "target/llm-runs/basics/t_005_update/rust/server/gpt-5/llm",
- "scorer_details": {
- "schema_parity": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "golden_db": "basics-t-005-update-golden",
- "llm_db": "basics-t-005-update-gpt-5-llm",
- "reducers_diff": null,
- "reducers_equal": true,
- "server": "http://127.0.0.1:33615",
- "tables_diff": null,
- "tables_equal": true
- }
- },
- "data_parity_update_user": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "args": [
- 1,
- "Alice2",
- 31,
- false
- ],
- "golden_db": "basics-t-005-update-golden",
- "golden_out": "id | name | age | active ----+----------+-----+-------- 1 | \"Alice2\" | 31 | false",
- "llm_db": "basics-t-005-update-gpt-5-llm",
- "llm_out": "id | name | age | active ----+----------+-----+-------- 1 | \"Alice2\" | 31 | false",
- "query": "SELECT id, name, age, active FROM user WHERE id=1",
- "reducer": "update_user",
- "server": "http://127.0.0.1:33615"
- }
- },
- "seed_users_row": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "sql": "INSERT INTO user(id, name, age, active) VALUES (1, 'Alice', 30, true)"
- }
- }
- },
- "vendor": "openai",
- "started_at": "2026-01-27T19:50:22.268945837Z",
- "finished_at": "2026-01-27T19:51:01.660325703Z"
- },
- "t_006_delete": {
- "hash": "2a0f4ec42cac03fb3da542793b311e4b399845c688bb0660a6c231c82e96c56a",
- "task": "t_006_delete",
- "lang": "rust",
- "golden_published": true,
- "model_name": "GPT-5",
- "total_tests": 3,
- "passed_tests": 3,
- "llm_output": "use spacetimedb::{table, reducer, ReducerContext};\n\n#[table(name = user)]\npub struct User {\n #[primary_key]\n id: i32,\n name: String,\n age: i32,\n active: bool,\n}\n\n#[reducer]\npub fn delete_user(ctx: &ReducerContext, id: i32) {\n ctx.db.user().id().delete(&id);\n}",
- "category": "basics",
- "route_api_model": "gpt-5",
- "golden_db": "basics-t-006-delete-golden",
- "llm_db": "basics-t-006-delete-gpt-5-llm",
- "work_dir_golden": "target/llm-runs/basics/t_006_delete/rust/server/golden",
- "work_dir_llm": "target/llm-runs/basics/t_006_delete/rust/server/gpt-5/llm",
- "scorer_details": {
- "seed_users_row": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "sql": "INSERT INTO user(id, name, age, active) VALUES (1, 'Alice', 30, true)"
- }
- },
- "schema_parity": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "golden_db": "basics-t-006-delete-golden",
- "llm_db": "basics-t-006-delete-gpt-5-llm",
- "reducers_diff": null,
- "reducers_equal": true,
- "server": "http://127.0.0.1:33615",
- "tables_diff": null,
- "tables_equal": true
- }
- },
- "delete_user_count_zero": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "actual": 0,
- "expected": 0,
- "sql": "SELECT COUNT(*) AS n FROM user WHERE id=1"
- }
- }
- },
- "vendor": "openai",
- "started_at": "2026-01-27T19:50:18.814239252Z",
- "finished_at": "2026-01-27T19:51:00.465380864Z"
- },
- "t_007_crud": {
- "hash": "2a0f4ec42cac03fb3da542793b311e4b399845c688bb0660a6c231c82e96c56a",
- "task": "t_007_crud",
- "lang": "rust",
- "golden_published": true,
- "model_name": "GPT-5",
- "total_tests": 4,
- "passed_tests": 4,
- "llm_output": "use spacetimedb::{table, reducer, ReducerContext, Table};\n\n#[table(name = user)]\npub struct User {\n #[primary_key]\n id: i32,\n name: String,\n age: i32,\n active: bool,\n}\n\n#[reducer]\npub fn crud(ctx: &ReducerContext) {\n let users = ctx.db.user();\n\n // insert (id=1, name=\"Alice\", age=30, active=true)\n users.insert(User {\n id: 1,\n name: \"Alice\".to_string(),\n age: 30,\n active: true,\n });\n\n // insert (id=2, name=\"Bob\", age=22, active=false)\n users.insert(User {\n id: 2,\n name: \"Bob\".to_string(),\n age: 22,\n active: false,\n });\n\n // update (id=1, name=\"Alice2\", age=31, active=false)\n users.id().update(User {\n id: 1,\n name: \"Alice2\".to_string(),\n age: 31,\n active: false,\n });\n\n // delete id=2\n users.id().delete(&2);\n}",
- "category": "basics",
- "route_api_model": "gpt-5",
- "golden_db": "basics-t-007-crud-golden",
- "llm_db": "basics-t-007-crud-gpt-5-llm",
- "work_dir_golden": "target/llm-runs/basics/t_007_crud/rust/server/golden",
- "work_dir_llm": "target/llm-runs/basics/t_007_crud/rust/server/gpt-5/llm",
- "scorer_details": {
- "crud_row_id2_deleted": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "actual": 0,
- "expected": 0,
- "sql": "SELECT COUNT(*) AS n FROM user WHERE id=2"
- }
- },
- "schema_parity": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "golden_db": "basics-t-007-crud-golden",
- "llm_db": "basics-t-007-crud-gpt-5-llm",
- "reducers_diff": null,
- "reducers_equal": true,
- "server": "http://127.0.0.1:33615",
- "tables_diff": null,
- "tables_equal": true
- }
- },
- "crud_total_count_one": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "actual": 1,
- "expected": 1,
- "sql": "SELECT COUNT(*) AS n FROM user"
- }
- },
- "crud_row_id1_parity": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "args": [],
- "golden_db": "basics-t-007-crud-golden",
- "golden_out": "id | name | age | active ----+----------+-----+-------- 1 | \"Alice2\" | 31 | false",
- "llm_db": "basics-t-007-crud-gpt-5-llm",
- "llm_out": "id | name | age | active ----+----------+-----+-------- 1 | \"Alice2\" | 31 | false",
- "query": "SELECT id, name, age, active FROM user WHERE id=1",
- "reducer": "crud",
- "server": "http://127.0.0.1:33615"
- }
- }
- },
- "vendor": "openai",
- "started_at": "2026-01-27T19:50:19.572189963Z",
- "finished_at": "2026-01-27T19:51:00.012056746Z"
- },
- "t_008_index_lookup": {
- "hash": "2a0f4ec42cac03fb3da542793b311e4b399845c688bb0660a6c231c82e96c56a",
- "task": "t_008_index_lookup",
- "lang": "rust",
- "golden_published": true,
- "model_name": "GPT-5",
- "total_tests": 3,
- "passed_tests": 3,
- "llm_output": "use spacetimedb::{table, reducer, ReducerContext, Table};\n\n#[table(name = user)]\npub struct User {\n #[primary_key]\n id: i32,\n name: String,\n age: i32,\n active: bool,\n}\n\n#[table(name = result)]\npub struct ResultRow {\n #[primary_key]\n id: i32,\n name: String,\n}\n\n#[reducer]\npub fn lookup_user_name(ctx: &ReducerContext, id: i32) {\n if let Some(user) = ctx.db.user().id().find(id) {\n let _ = ctx.db.result().try_insert(ResultRow {\n id: user.id,\n name: user.name.clone(),\n });\n }\n}",
- "category": "basics",
- "route_api_model": "gpt-5",
- "golden_db": "basics-t-008-index-lookup-golden",
- "llm_db": "basics-t-008-index-lookup-gpt-5-llm",
- "work_dir_golden": "target/llm-runs/basics/t_008_index_lookup/rust/server/golden",
- "work_dir_llm": "target/llm-runs/basics/t_008_index_lookup/rust/server/gpt-5/llm",
- "scorer_details": {
- "seed_user_row": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "sql": "INSERT INTO user(id, name, age, active) VALUES (1, 'Alice', 30, true)"
- }
- },
- "schema_parity": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "golden_db": "basics-t-008-index-lookup-golden",
- "llm_db": "basics-t-008-index-lookup-gpt-5-llm",
- "reducers_diff": null,
- "reducers_equal": true,
- "server": "http://127.0.0.1:33615",
- "tables_diff": null,
- "tables_equal": true
- }
- },
- "index_lookup_projection_parity": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "args": [
- 1
- ],
- "golden_db": "basics-t-008-index-lookup-golden",
- "golden_out": "id | name ----+--------- 1 | \"Alice\"",
- "llm_db": "basics-t-008-index-lookup-gpt-5-llm",
- "llm_out": "id | name ----+--------- 1 | \"Alice\"",
- "query": "SELECT id, name FROM result WHERE id=1",
- "reducer": "lookup_user_name",
- "server": "http://127.0.0.1:33615"
- }
- }
- },
- "vendor": "openai",
- "started_at": "2026-01-27T19:50:59.032238062Z",
- "finished_at": "2026-01-27T19:51:34.520084103Z"
- },
- "t_009_init": {
- "hash": "2a0f4ec42cac03fb3da542793b311e4b399845c688bb0660a6c231c82e96c56a",
- "task": "t_009_init",
- "lang": "rust",
- "golden_published": true,
- "model_name": "GPT-5",
- "total_tests": 4,
- "passed_tests": 4,
- "llm_output": "use spacetimedb::{ReducerContext, Table};\n\n#[spacetimedb::table(name = user)]\npub struct User {\n #[primary_key]\n id: i32,\n name: String,\n age: i32,\n active: bool,\n}\n\n#[spacetimedb::reducer(init)]\npub fn init(ctx: &ReducerContext) {\n ctx.db.user().insert(User {\n id: 1,\n name: \"Alice\".to_string(),\n age: 30,\n active: true,\n });\n ctx.db.user().insert(User {\n id: 2,\n name: \"Bob\".to_string(),\n age: 22,\n active: false,\n });\n}",
- "category": "basics",
- "route_api_model": "gpt-5",
- "golden_db": "basics-t-009-init-golden",
- "llm_db": "basics-t-009-init-gpt-5-llm",
- "work_dir_golden": "target/llm-runs/basics/t_009_init/rust/server/golden",
- "work_dir_llm": "target/llm-runs/basics/t_009_init/rust/server/gpt-5/llm",
- "scorer_details": {
- "init_seed_bob": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "actual": 1,
- "expected": 1,
- "sql": "SELECT COUNT(*) AS n FROM user WHERE id=2 AND name='Bob' AND age=22 AND active=false"
- }
- },
- "init_seed_alice": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "actual": 1,
- "expected": 1,
- "sql": "SELECT COUNT(*) AS n FROM user WHERE id=1 AND name='Alice' AND age=30 AND active=true"
- }
- },
- "schema_parity": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "golden_db": "basics-t-009-init-golden",
- "llm_db": "basics-t-009-init-gpt-5-llm",
- "reducers_diff": null,
- "reducers_equal": true,
- "server": "http://127.0.0.1:33615",
- "tables_diff": null,
- "tables_equal": true
- }
- },
- "init_total_two": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "actual": 2,
- "expected": 2,
- "sql": "SELECT COUNT(*) AS n FROM user"
- }
- }
- },
- "vendor": "openai",
- "started_at": "2026-01-27T19:50:21.549783Z",
- "finished_at": "2026-01-27T19:50:59.032183836Z"
- },
- "t_010_connect": {
- "hash": "2a0f4ec42cac03fb3da542793b311e4b399845c688bb0660a6c231c82e96c56a",
- "task": "t_010_connect",
- "lang": "rust",
- "golden_published": true,
- "model_name": "GPT-5",
- "total_tests": 1,
- "passed_tests": 1,
- "llm_output": "use spacetimedb::{ReducerContext, Table};\n\n#[spacetimedb::table(name = event)]\npub struct Event {\n #[primary_key]\n #[auto_inc]\n id: i32,\n kind: String,\n}\n\n#[spacetimedb::reducer(client_connected)]\npub fn client_connected(ctx: &ReducerContext) {\n let _ = ctx.db.event().insert(Event { id: 0, kind: \"connected\".to_string() });\n}\n\n#[spacetimedb::reducer(client_disconnected)]\npub fn client_disconnected(ctx: &ReducerContext) {\n let _ = ctx.db.event().insert(Event { id: 0, kind: \"disconnected\".to_string() });\n}",
- "category": "basics",
- "route_api_model": "gpt-5",
- "golden_db": "basics-t-010-connect-golden",
- "llm_db": "basics-t-010-connect-gpt-5-llm",
- "work_dir_golden": "target/llm-runs/basics/t_010_connect/rust/server/golden",
- "work_dir_llm": "target/llm-runs/basics/t_010_connect/rust/server/gpt-5/llm",
- "scorer_details": {
- "schema_parity": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "golden_db": "basics-t-010-connect-golden",
- "llm_db": "basics-t-010-connect-gpt-5-llm",
- "reducers_diff": null,
- "reducers_equal": true,
- "server": "http://127.0.0.1:33615",
- "tables_diff": null,
- "tables_equal": true
- }
- }
- },
- "vendor": "openai",
- "started_at": "2026-01-27T19:50:19.565630879Z",
- "finished_at": "2026-01-27T19:50:43.120012892Z"
- },
- "t_011_helper_function": {
- "hash": "2a0f4ec42cac03fb3da542793b311e4b399845c688bb0660a6c231c82e96c56a",
- "task": "t_011_helper_function",
- "lang": "rust",
- "golden_published": true,
- "model_name": "GPT-5",
- "total_tests": 3,
- "passed_tests": 3,
- "llm_output": "use spacetimedb::{table, reducer, ReducerContext, Table};\n\n#[table(name = result)]\npub struct ResultRow {\n #[primary_key]\n id: i32,\n sum: i32,\n}\n\nfn add(a: i32, b: i32) -> i32 {\n a + b\n}\n\n#[reducer]\npub fn compute_sum(ctx: &ReducerContext, id: i32, a: i32, b: i32) {\n let sum = add(a, b);\n ctx.db.result().insert(ResultRow { id, sum });\n}",
- "category": "basics",
- "route_api_model": "gpt-5",
- "golden_db": "basics-t-011-helper-function-golden",
- "llm_db": "basics-t-011-helper-function-gpt-5-llm",
- "work_dir_golden": "target/llm-runs/basics/t_011_helper_function/rust/server/golden",
- "work_dir_llm": "target/llm-runs/basics/t_011_helper_function/rust/server/gpt-5/llm",
- "scorer_details": {
- "helper_func_sum_parity": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "args": [
- 1,
- 2,
- 3
- ],
- "golden_db": "basics-t-011-helper-function-golden",
- "golden_out": "id | sum ----+----- 1 | 5",
- "llm_db": "basics-t-011-helper-function-gpt-5-llm",
- "llm_out": "id | sum ----+----- 1 | 5",
- "query": "SELECT id, sum FROM result WHERE id=1",
- "reducer": "compute_sum",
- "server": "http://127.0.0.1:33615"
- }
- },
- "helper_func_sum_abs": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "actual": 1,
- "expected": 1,
- "sql": "SELECT COUNT(*) AS n FROM result WHERE id=1 AND sum=5"
- }
- },
- "schema_parity": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "golden_db": "basics-t-011-helper-function-golden",
- "llm_db": "basics-t-011-helper-function-gpt-5-llm",
- "reducers_diff": null,
- "reducers_equal": true,
- "server": "http://127.0.0.1:33615",
- "tables_diff": null,
- "tables_equal": true
- }
- }
- },
- "vendor": "openai",
- "started_at": "2026-01-27T19:51:00.227420335Z",
- "finished_at": "2026-01-27T19:51:29.538171947Z"
- },
- "t_012_spacetime_product_type": {
- "hash": "2a0f4ec42cac03fb3da542793b311e4b399845c688bb0660a6c231c82e96c56a",
- "task": "t_012_spacetime_product_type",
- "lang": "rust",
- "golden_published": true,
- "model_name": "GPT-5",
- "total_tests": 3,
- "passed_tests": 3,
- "llm_output": "use spacetimedb::{table, reducer, ReducerContext, Table, SpacetimeType};\n\n#[derive(SpacetimeType)]\npub struct Score {\n left: i32,\n right: i32,\n}\n\n#[table(name = result)]\npub struct ResultRow {\n #[primary_key]\n id: i32,\n value: Score,\n}\n\n#[reducer]\nfn set_score(ctx: &ReducerContext, id: i32, left: i32, right: i32) {\n ctx.db.result().insert(ResultRow {\n id,\n value: Score { left, right },\n });\n}",
- "category": "schema",
- "route_api_model": "gpt-5",
- "golden_db": "schema-t-012-spacetime-product-type-golden",
- "llm_db": "schema-t-012-spacetime-product-type-gpt-5-llm",
- "work_dir_golden": "target/llm-runs/schema/t_012_spacetime_product_type/rust/server/golden",
- "work_dir_llm": "target/llm-runs/schema/t_012_spacetime_product_type/rust/server/gpt-5/llm",
- "scorer_details": {
- "product_type_row_count": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "actual": 1,
- "expected": 1,
- "sql": "SELECT COUNT(*) AS n FROM result WHERE id=1"
- }
- },
- "schema_parity": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "golden_db": "schema-t-012-spacetime-product-type-golden",
- "llm_db": "schema-t-012-spacetime-product-type-gpt-5-llm",
- "reducers_diff": null,
- "reducers_equal": true,
- "server": "http://127.0.0.1:33615",
- "tables_diff": null,
- "tables_equal": true
- }
- },
- "product_type_row_parity": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "args": [
- 1,
- 2,
- 3
- ],
- "golden_db": "schema-t-012-spacetime-product-type-golden",
- "golden_out": "id | value ----+----------------------- 1 | (left = 2, right = 3)",
- "llm_db": "schema-t-012-spacetime-product-type-gpt-5-llm",
- "llm_out": "id | value ----+----------------------- 1 | (left = 2, right = 3)",
- "query": "SELECT id, value FROM result WHERE id=1",
- "reducer": "set_score",
- "server": "http://127.0.0.1:33615"
- }
- }
- },
- "vendor": "openai",
- "started_at": "2026-01-27T19:50:17.029809591Z",
- "finished_at": "2026-01-27T19:50:58.838714798Z"
- },
- "t_013_spacetime_sum_type": {
- "hash": "2a0f4ec42cac03fb3da542793b311e4b399845c688bb0660a6c231c82e96c56a",
- "task": "t_013_spacetime_sum_type",
- "lang": "rust",
- "golden_published": true,
- "model_name": "GPT-5",
- "total_tests": 3,
- "passed_tests": 2,
- "llm_output": "use spacetimedb::{table, reducer, ReducerContext, Table, SpacetimeType};\n\n#[derive(SpacetimeType)]\npub struct Rect {\n width: i32,\n height: i32,\n}\n\n#[derive(SpacetimeType)]\npub enum Shape {\n Circle(i32),\n Rectangle(Rect),\n}\n\n#[table(name = result)]\npub struct ResultRow {\n #[primary_key]\n id: i32,\n value: Shape,\n}\n\n#[reducer]\npub fn set_circle(ctx: &ReducerContext, id: i32, radius: i32) {\n ctx.db.result().insert(ResultRow {\n id,\n value: Shape::Circle(radius),\n });\n}",
- "category": "schema",
- "route_api_model": "gpt-5",
- "golden_db": "schema-t-013-spacetime-sum-type-golden",
- "llm_db": "schema-t-013-spacetime-sum-type-gpt-5-llm",
- "work_dir_golden": "target/llm-runs/schema/t_013_spacetime_sum_type/rust/server/golden",
- "work_dir_llm": "target/llm-runs/schema/t_013_spacetime_sum_type/rust/server/gpt-5/llm",
- "scorer_details": {
- "sum_type_row_parity": {
- "pass": false,
- "partial": 0.0,
- "notes": {
- "error": "spacetime sql failed:\nWARNING: This command is UNSTABLE and subject to breaking changes.\n\nError: no such table: `result`. If the table exists, it may be marked private.\n\nCaused by:\n HTTP status client error (400 Bad Request) for url (http://127.0.0.1:33615/v1/database/c200ef5026b116b67d90edbd0acaca12a273f2a7e6e888cc7265a5d4a4fe7173/sql)\n",
- "phase": "sql_golden"
- }
- },
- "schema_parity": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "golden_db": "schema-t-013-spacetime-sum-type-golden",
- "llm_db": "schema-t-013-spacetime-sum-type-gpt-5-llm",
- "reducers_diff": null,
- "reducers_equal": true,
- "server": "http://127.0.0.1:33615",
- "tables_diff": null,
- "tables_equal": true
- }
- },
- "sum_type_row_count": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "actual": 1,
- "expected": 1,
- "sql": "SELECT COUNT(*) AS n FROM result WHERE id=1"
- }
- }
- },
- "vendor": "openai",
- "started_at": "2026-01-27T19:49:28.665478058Z",
- "finished_at": "2026-01-27T19:50:21.549671530Z"
- },
- "t_014_elementary_columns": {
- "hash": "2a0f4ec42cac03fb3da542793b311e4b399845c688bb0660a6c231c82e96c56a",
- "task": "t_014_elementary_columns",
- "lang": "rust",
- "golden_published": true,
- "model_name": "GPT-5",
- "total_tests": 3,
- "passed_tests": 3,
- "llm_output": "use spacetimedb::{ReducerContext, Table};\n\n#[spacetimedb::table(name = primitive)]\npub struct Primitive {\n #[primary_key]\n id: i32,\n count: i32,\n total: i64,\n price: f32,\n ratio: f64,\n active: bool,\n name: String,\n}\n\n#[spacetimedb::reducer]\npub fn seed(ctx: &ReducerContext) {\n ctx.db.primitive().insert(Primitive {\n id: 1,\n count: 2,\n total: 3_000_000_000,\n price: 1.5,\n ratio: 2.25,\n active: true,\n name: \"Alice\".to_string(),\n });\n}",
- "category": "schema",
- "route_api_model": "gpt-5",
- "golden_db": "schema-t-014-elementary-columns-golden",
- "llm_db": "schema-t-014-elementary-columns-gpt-5-llm",
- "work_dir_golden": "target/llm-runs/schema/t_014_elementary_columns/rust/server/golden",
- "work_dir_llm": "target/llm-runs/schema/t_014_elementary_columns/rust/server/gpt-5/llm",
- "scorer_details": {
- "elementary_columns_row_parity": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "args": [],
- "golden_db": "schema-t-014-elementary-columns-golden",
- "golden_out": "id | count | total | price | ratio | active | name ----+-------+------------+-------+-------+--------+--------- 1 | 2 | 3000000000 | 1.5 | 2.25 | true | \"Alice\"",
- "llm_db": "schema-t-014-elementary-columns-gpt-5-llm",
- "llm_out": "id | count | total | price | ratio | active | name ----+-------+------------+-------+-------+--------+--------- 1 | 2 | 3000000000 | 1.5 | 2.25 | true | \"Alice\"",
- "query": "SELECT id, count, total, price, ratio, active, name FROM primitive WHERE id=1",
- "reducer": "seed",
- "server": "http://127.0.0.1:33615"
- }
- },
- "schema_parity": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "golden_db": "schema-t-014-elementary-columns-golden",
- "llm_db": "schema-t-014-elementary-columns-gpt-5-llm",
- "reducers_diff": null,
- "reducers_equal": true,
- "server": "http://127.0.0.1:33615",
- "tables_diff": null,
- "tables_equal": true
- }
- },
- "elementary_columns_row_count": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "actual": 1,
- "expected": 1,
- "sql": "SELECT COUNT(*) AS n FROM primitive WHERE id=1"
- }
- }
- },
- "vendor": "openai",
- "started_at": "2026-01-27T19:50:12.818589409Z",
- "finished_at": "2026-01-27T19:51:00.227383147Z"
- },
- "t_015_product_type_columns": {
- "hash": "2a0f4ec42cac03fb3da542793b311e4b399845c688bb0660a6c231c82e96c56a",
- "task": "t_015_product_type_columns",
- "lang": "rust",
- "golden_published": true,
- "model_name": "GPT-5",
- "total_tests": 3,
- "passed_tests": 2,
- "llm_output": "use spacetimedb::{table, reducer, ReducerContext, Table, SpacetimeType};\n\n#[derive(SpacetimeType, Clone)]\nstruct Address {\n street: String,\n zip: i32,\n}\n\n#[derive(SpacetimeType, Clone)]\nstruct Position {\n x: i32,\n y: i32,\n}\n\n#[table(name = profile)]\nstruct Profile {\n #[primary_key]\n id: i32,\n home: Address,\n work: Address,\n pos: Position,\n}\n\n#[reducer]\nfn seed(ctx: &ReducerContext) {\n let tbl = ctx.db.profile();\n if tbl.count() == 0 {\n let home = Address { street: \"1 Main\".to_string(), zip: 11111 };\n let work = Address { street: \"2 Broad\".to_string(), zip: 22222 };\n let pos = Position { x: 7, y: 9 };\n tbl.insert(Profile { id: 1, home, work, pos });\n }\n}",
- "category": "schema",
- "route_api_model": "gpt-5",
- "golden_db": "schema-t-015-product-type-columns-golden",
- "llm_db": "schema-t-015-product-type-columns-gpt-5-llm",
- "work_dir_golden": "target/llm-runs/schema/t_015_product_type_columns/rust/server/golden",
- "work_dir_llm": "target/llm-runs/schema/t_015_product_type_columns/rust/server/gpt-5/llm",
- "scorer_details": {
- "product_type_columns_row_count": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "actual": 1,
- "expected": 1,
- "sql": "SELECT COUNT(*) AS n FROM profile WHERE id=1"
- }
- },
- "product_type_columns_row_parity": {
- "pass": false,
- "partial": 0.0,
- "notes": {
- "error": "spacetime sql failed:\nWARNING: This command is UNSTABLE and subject to breaking changes.\n\nError: no such table: `profile`. If the table exists, it may be marked private.\n\nCaused by:\n HTTP status client error (400 Bad Request) for url (http://127.0.0.1:33615/v1/database/c200171a9841d8ed2a9c762ac4e081fe93ed52fe5c9e32ae9bbd874bb7e1a8b5/sql)\n",
- "phase": "sql_golden"
- }
- },
- "schema_parity": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "golden_db": "schema-t-015-product-type-columns-golden",
- "llm_db": "schema-t-015-product-type-columns-gpt-5-llm",
- "reducers_diff": null,
- "reducers_equal": true,
- "server": "http://127.0.0.1:33615",
- "tables_diff": null,
- "tables_equal": true
- }
- }
- },
- "vendor": "openai",
- "started_at": "2026-01-27T19:49:28.666090278Z",
- "finished_at": "2026-01-27T19:50:19.565536981Z"
- },
- "t_016_sum_type_columns": {
- "hash": "2a0f4ec42cac03fb3da542793b311e4b399845c688bb0660a6c231c82e96c56a",
- "task": "t_016_sum_type_columns",
- "lang": "rust",
- "golden_published": true,
- "model_name": "GPT-5",
- "total_tests": 3,
- "passed_tests": 1,
- "llm_output": "use spacetimedb::{table, reducer, ReducerContext, Table, SpacetimeType};\n\n#[derive(SpacetimeType)]\npub struct Rect {\n width: i32,\n height: i32,\n}\n\n#[derive(SpacetimeType)]\npub enum Shape {\n Circle(i32),\n Rectangle(Rect),\n}\n\n#[table(name = drawing)]\npub struct Drawing {\n #[primary_key]\n id: i32,\n a: Shape,\n b: Shape,\n}\n\n#[reducer]\npub fn seed(ctx: &ReducerContext) {\n if ctx.db.drawing().id().find(1i32).is_none() {\n ctx.db.drawing().insert(Drawing {\n id: 1,\n a: Shape::Circle(10),\n b: Shape::Rectangle(Rect { width: 4, height: 6 }),\n });\n }\n}",
- "category": "schema",
- "route_api_model": "gpt-5",
- "golden_db": "schema-t-016-sum-type-columns-golden",
- "llm_db": "schema-t-016-sum-type-columns-gpt-5-llm",
- "work_dir_golden": "target/llm-runs/schema/t_016_sum_type_columns/rust/server/golden",
- "work_dir_llm": "target/llm-runs/schema/t_016_sum_type_columns/rust/server/gpt-5/llm",
- "scorer_details": {
- "sum_type_columns_row_parity": {
- "pass": false,
- "partial": 0.0,
- "notes": {
- "error": "spacetime sql failed:\nWARNING: This command is UNSTABLE and subject to breaking changes.\n\nError: no such table: `drawings`. If the table exists, it may be marked private.\n\nCaused by:\n HTTP status client error (400 Bad Request) for url (http://127.0.0.1:33615/v1/database/c200881b5220df4b060ef4c2656171f2f8326cecff55db6c3c11d3ebbd2f5cec/sql)\n",
- "phase": "sql_golden"
- }
- },
- "schema_parity": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "golden_db": "schema-t-016-sum-type-columns-golden",
- "llm_db": "schema-t-016-sum-type-columns-gpt-5-llm",
- "reducers_diff": null,
- "reducers_equal": true,
- "server": "http://127.0.0.1:33615",
- "tables_diff": null,
- "tables_equal": true
- }
- },
- "sum_type_columns_row_count": {
- "pass": false,
- "partial": 0.0,
- "notes": {
- "error": "spacetime sql failed:\nWARNING: This command is UNSTABLE and subject to breaking changes.\n\nError: no such table: `drawings`. If the table exists, it may be marked private.\n\nCaused by:\n HTTP status client error (400 Bad Request) for url (http://127.0.0.1:33615/v1/database/c20074c3ee57884fdd34989755bdcfa11644a8f79ecbbdbf8f5182f2be46b5ec/sql)\n",
- "phase": "sql"
- }
- }
- },
- "vendor": "openai",
- "started_at": "2026-01-27T19:49:28.665270093Z",
- "finished_at": "2026-01-27T19:50:17.767945290Z"
- },
- "t_017_scheduled_columns": {
- "hash": "2a0f4ec42cac03fb3da542793b311e4b399845c688bb0660a6c231c82e96c56a",
- "task": "t_017_scheduled_columns",
- "lang": "rust",
- "golden_published": false,
- "model_name": "GPT-5",
- "total_tests": 2,
- "passed_tests": 0,
- "llm_output": "use spacetimedb::{table, reducer, ReducerContext, Table, ScheduleAt};\n\n#[table(name = tick_timer, schedule(reducer = tick, column = scheduled_at))]\npub struct TickTimer {\n #[primary_key]\n #[auto_inc]\n scheduled_id: u64,\n scheduled_at: ScheduleAt,\n}\n\n#[reducer(init)]\npub fn init(ctx: &ReducerContext) {\n if ctx.db.tick_timer().count() == 0 {\n ctx.db.tick_timer().insert(TickTimer {\n scheduled_id: 0,\n scheduled_at: ScheduleAt::RepeatMicros(50_000),\n });\n }\n}\n\n#[reducer]\npub fn tick(_ctx: &ReducerContext, _row: TickTimer) {\n}",
- "category": "schema",
- "route_api_model": "gpt-5",
- "golden_db": "schema-t-017-scheduled-columns-golden",
- "llm_db": "schema-t-017-scheduled-columns-gpt-5-llm",
- "work_dir_golden": "target/llm-runs/schema/t_017_scheduled_columns/rust/server/golden",
- "work_dir_llm": "target/llm-runs/schema/t_017_scheduled_columns/rust/server/gpt-5/llm",
- "scorer_details": {
- "publish_error": {
- "pass": false,
- "partial": 0.0,
- "notes": {
- "error": "spacetime publish failed (exit=1)\n--- stderr ---\n Updating crates.io index\n Locking 72 packages to latest compatible versions\n Adding generic-array v0.14.7 (available: v0.14.9)\n Adding spacetimedb v1.11.1 (available: v1.11.3)\n Adding spacetimedb-bindings-macro v1.11.1 (available: v1.11.3)\n Adding spacetimedb-bindings-sys v1.11.1 (available: v1.11.3)\n Adding spacetimedb-lib v1.11.1 (available: v1.11.3)\n Adding spacetimedb-primitives v1.11.1 (available: v1.11.3)\n Adding spacetimedb-sats v1.11.1 (available: v1.11.3)\n Compiling proc-macro2 v1.0.106\n Compiling unicode-ident v1.0.22\n Compiling quote v1.0.44\n Compiling typenum v1.19.0\n Compiling version_check v0.9.5\n Compiling autocfg v1.5.0\n Compiling heck v0.5.0\n Compiling serde_core v1.0.228\n Compiling cfg-if v1.0.4\n Compiling either v1.15.0\n Compiling serde v1.0.228\n Compiling find-msvc-tools v0.1.8\n Compiling shlex v1.3.0\n Compiling zerocopy v0.8.34\n Compiling nohash-hasher v0.2.0\n Compiling anyhow v1.0.100\n Compiling thiserror v1.0.69\n Compiling bitflags v2.10.0\n Compiling keccak v0.1.5\n Compiling convert_case v0.4.0\n Compiling zmij v1.0.17\n Compiling arrayvec v0.7.6\n Compiling humantime v2.3.0\n Compiling bytes v1.11.0\n Compiling heck v0.4.1\n Compiling second-stack v0.3.5\n Compiling hex v0.4.3\n Compiling serde_json v1.0.149\n Compiling constant_time_eq v0.4.2\n Compiling itoa v1.0.17\n Compiling arrayref v0.3.9\n Compiling getrandom v0.2.17\n Compiling spacetimedb-lib v1.11.1\n Compiling bytemuck v1.24.0\n Compiling smallvec v1.15.1\n Compiling rand_core v0.6.4\n Compiling cc v1.2.54\n Compiling log v0.4.29\n Compiling memchr v2.7.6\n Compiling scoped-tls v1.0.1\n Compiling generic-array v0.14.7\n Compiling itertools v0.12.1\n Compiling num-traits v0.2.19\n Compiling http v1.4.0\n Compiling syn v2.0.114\n Compiling approx v0.3.2\n Compiling chrono v0.4.43\n Compiling decorum v0.3.1\n Compiling blake3 v1.8.3\n Compiling crypto-common v0.1.7\n Compiling block-buffer v0.10.4\n Compiling digest v0.10.7\n Compiling sha3 v0.10.8\n Compiling ethnum v1.5.2\n Compiling ppv-lite86 v0.2.21\n Compiling rand_chacha v0.3.1\n Compiling rand v0.8.5\n Compiling enum-as-inner v0.6.1\n Compiling thiserror-impl v1.0.69\n Compiling derive_more v0.99.20\n Compiling spacetimedb-primitives v1.11.1\n Compiling spacetimedb-bindings-macro v1.11.1\n Compiling spacetimedb-bindings-sys v1.11.1\n Compiling spacetimedb-sats v1.11.1\n Compiling spacetimedb v1.11.1\n Compiling spacetime-module v0.1.0 (/__w/SpacetimeDB/SpacetimeDB/target/llm-runs/schema/t_017_scheduled_columns/rust/server/gpt-5/llm)\nerror: expected one of: `public`, `private`, `name`, `index`, `scheduled`\n --> src/lib.rs:4:28\n |\n4 | #[table(name = tick_timer, schedule(reducer = tick, column = scheduled_at))]\n | ^^^^^^^^\n\nerror[E0422]: cannot find struct, variant or union type `TickTimer` in this scope\n --> src/lib.rs:15:36\n |\n15 | ctx.db.tick_timer().insert(TickTimer {\n | ^^^^^^^^^ not found in this scope\n\nerror[E0412]: cannot find type `TickTimer` in this scope\n --> src/lib.rs:23:42\n |\n23 | pub fn tick(_ctx: &ReducerContext, _row: TickTimer) {\n | ^^^^^^^^^ not found in this scope\n\nerror[E0599]: no method named `tick_timer` found for struct `Local` in the current scope\n --> src/lib.rs:14:15\n |\n14 | if ctx.db.tick_timer().count() == 0 {\n | ^^^^^^^^^^ method not found in `Local`\n\nerror[E0599]: no method named `tick_timer` found for struct `Local` in the current scope\n --> src/lib.rs:15:16\n |\n15 | ctx.db.tick_timer().insert(TickTimer {\n | ^^^^^^^^^^ method not found in `Local`\n\nerror[E0599]: no variant or associated item named `RepeatMicros` found for enum `ScheduleAt` in the current scope\n --> src/lib.rs:17:39\n |\n17 | scheduled_at: ScheduleAt::RepeatMicros(50_000),\n | ^^^^^^^^^^^^ variant or associated item not found in `ScheduleAt`\n\nerror[E0277]: invalid reducer signature\n --> src/lib.rs:23:8\n |\n 22 | #[reducer]\n | ---------- required by a bound introduced by this call\n 23 | pub fn tick(_ctx: &ReducerContext, _row: TickTimer) {\n | ^^^^ this reducer signature is not valid\n |\n = help: the trait `Reducer<'_, _>` is not implemented for fn item `for<'a> fn(&'a ReducerContext, {type error}) {tick}`\n = note: \n = note: reducer signatures must match the following pattern:\n = note: `Fn(&ReducerContext, [T1, ...]) [-> Result<(), impl Display>]`\n = note: where each `Ti` type implements `SpacetimeType`.\n = note: \nnote: required by a bound in `register_reducer`\n --> /root/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/spacetimedb-1.11.1/src/rt.rs:746:81\n |\n746 | pub fn register_reducer<'a, A: Args<'a>, I: FnInfo>(_: impl Reducer<'a, A>) {\n | ^^^^^^^^^^^^^^ required by this bound in `register_reducer`\n\nerror[E0277]: invalid reducer signature\n --> src/lib.rs:23:8\n |\n22 | #[reducer]\n | ---------- required by a bound introduced by this call\n23 | pub fn tick(_ctx: &ReducerContext, _row: TickTimer) {\n | ^^^^ this reducer signature is not valid\n |\n = help: the trait `Reducer<'_, _>` is not implemented for fn item `for<'a> fn(&'a ReducerContext, {type error}) {tick}`\n = note: \n = note: reducer signatures must match the following pattern:\n = note: `Fn(&ReducerContext, [T1, ...]) [-> Result<(), impl Display>]`\n = note: where each `Ti` type implements `SpacetimeType`.\n = note: \nnote: required by a bound in `invoke_reducer`\n --> /root/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/spacetimedb-1.11.1/src/rt.rs:45:19\n |\n44 | pub fn invoke_reducer<'a, A: Args<'a>>(\n | -------------- required by a bound in this function\n45 | reducer: impl Reducer<'a, A>,\n | ^^^^^^^^^^^^^^ required by this bound in `invoke_reducer`\n\nSome errors have detailed explanations: E0277, E0412, E0422, E0599.\nFor more information about an error, try `rustc --explain E0277`.\nerror: could not compile `spacetime-module` (lib) due to 8 previous errors\nError: command [\"cargo\", \"build\", \"--config=net.git-fetch-with-cli=true\", \"--target=wasm32-unknown-unknown\", \"--release\", \"--message-format=json-render-diagnostics\"] exited with code 101\n\n--- stdout ---\n",
- "phase": "build_or_publish"
- }
- }
- },
- "vendor": "openai",
- "started_at": "2026-01-27T19:49:28.664841535Z",
- "finished_at": "2026-01-27T19:50:33.923572352Z"
- },
- "t_018_constraints": {
- "hash": "2a0f4ec42cac03fb3da542793b311e4b399845c688bb0660a6c231c82e96c56a",
- "task": "t_018_constraints",
- "lang": "rust",
- "golden_published": true,
- "model_name": "GPT-5",
- "total_tests": 3,
- "passed_tests": 2,
- "llm_output": "use spacetimedb::{ReducerContext, Table};\n\n#[spacetimedb::table(name = account, index(name = by_name, btree(columns = [name])))]\npub struct Account {\n #[primary_key]\n id: i32,\n #[unique]\n email: String,\n name: String,\n}\n\n#[spacetimedb::reducer]\npub fn seed(ctx: &ReducerContext) {\n let accounts = ctx.db.account();\n let _ = accounts.try_insert(Account { id: 1, email: \"a@example.com\".to_string(), name: \"Alice\".to_string() });\n let _ = accounts.try_insert(Account { id: 2, email: \"b@example.com\".to_string(), name: \"Bob\".to_string() });\n}",
- "category": "schema",
- "route_api_model": "gpt-5",
- "golden_db": "schema-t-018-constraints-golden",
- "llm_db": "schema-t-018-constraints-gpt-5-llm",
- "work_dir_golden": "target/llm-runs/schema/t_018_constraints/rust/server/golden",
- "work_dir_llm": "target/llm-runs/schema/t_018_constraints/rust/server/gpt-5/llm",
- "scorer_details": {
- "schema_parity": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "golden_db": "schema-t-018-constraints-golden",
- "llm_db": "schema-t-018-constraints-gpt-5-llm",
- "reducers_diff": null,
- "reducers_equal": true,
- "server": "http://127.0.0.1:33615",
- "tables_diff": null,
- "tables_equal": true
- }
- },
- "constraints_seed_two_rows": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "actual": 1,
- "expected": 1,
- "sql": "SELECT COUNT(*) AS n FROM account WHERE id=2"
- }
- },
- "constraints_row_parity_after_seed": {
- "pass": false,
- "partial": 0.0,
- "notes": {
- "error": "spacetime sql failed:\nWARNING: This command is UNSTABLE and subject to breaking changes.\n\nError: no such table: `account`. If the table exists, it may be marked private.\n\nCaused by:\n HTTP status client error (400 Bad Request) for url (http://127.0.0.1:33615/v1/database/c2002f3e10afac17bd0350f8d8feb90d1ae94d73c7c44c6824e7324679a8e5b9/sql)\n",
- "phase": "sql_golden"
- }
- }
- },
- "vendor": "openai",
- "started_at": "2026-01-27T19:49:28.664543506Z",
- "finished_at": "2026-01-27T19:50:17.029704757Z"
- },
- "t_019_many_to_many": {
- "hash": "2a0f4ec42cac03fb3da542793b311e4b399845c688bb0660a6c231c82e96c56a",
- "task": "t_019_many_to_many",
- "lang": "rust",
- "golden_published": true,
- "model_name": "GPT-5",
- "total_tests": 5,
- "passed_tests": 5,
- "llm_output": "use spacetimedb::{ReducerContext, Table};\n\n#[spacetimedb::table(name = user)]\npub struct User {\n #[primary_key]\n user_id: i32,\n name: String,\n}\n\n#[spacetimedb::table(name = group)]\npub struct Group {\n #[primary_key]\n group_id: i32,\n title: String,\n}\n\n#[spacetimedb::table(\n name = membership,\n index(name = by_user, btree(columns = [user_id])),\n index(name = by_group, btree(columns = [group_id]))\n)]\npub struct Membership {\n #[primary_key]\n id: i32,\n user_id: i32,\n group_id: i32,\n}\n\n#[spacetimedb::reducer]\npub fn seed(ctx: &ReducerContext) {\n // Clear existing rows to ensure the database contains exactly the specified rows.\n let membership_ids: Vec = ctx.db.membership().iter().map(|m| m.id).collect();\n for id in membership_ids {\n ctx.db.membership().id().delete(&id);\n }\n\n let user_ids: Vec = ctx.db.user().iter().map(|u| u.user_id).collect();\n for id in user_ids {\n ctx.db.user().user_id().delete(&id);\n }\n\n let group_ids: Vec = ctx.db.group().iter().map(|g| g.group_id).collect();\n for id in group_ids {\n ctx.db.group().group_id().delete(&id);\n }\n\n // Insert users\n ctx.db.user().insert(User { user_id: 1, name: \"Alice\".to_string() });\n ctx.db.user().insert(User { user_id: 2, name: \"Bob\".to_string() });\n\n // Insert groups\n ctx.db.group().insert(Group { group_id: 10, title: \"Admin\".to_string() });\n ctx.db.group().insert(Group { group_id: 20, title: \"Dev\".to_string() });\n\n // Insert memberships\n ctx.db.membership().insert(Membership { id: 1, user_id: 1, group_id: 10 });\n ctx.db.membership().insert(Membership { id: 2, user_id: 1, group_id: 20 });\n ctx.db.membership().insert(Membership { id: 3, user_id: 2, group_id: 20 });\n}",
- "category": "schema",
- "route_api_model": "gpt-5",
- "golden_db": "schema-t-019-many-to-many-golden",
- "llm_db": "schema-t-019-many-to-many-gpt-5-llm",
- "work_dir_golden": "target/llm-runs/schema/t_019_many_to_many/rust/server/golden",
- "work_dir_llm": "target/llm-runs/schema/t_019_many_to_many/rust/server/gpt-5/llm",
- "scorer_details": {
- "m2m_has_2_20": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "actual": 1,
- "expected": 1,
- "sql": "SELECT COUNT(*) AS n FROM membership WHERE user_id=2 AND group_id=20"
- }
- },
- "schema_parity": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "golden_db": "schema-t-019-many-to-many-golden",
- "llm_db": "schema-t-019-many-to-many-gpt-5-llm",
- "reducers_diff": null,
- "reducers_equal": true,
- "server": "http://127.0.0.1:33615",
- "tables_diff": null,
- "tables_equal": true
- }
- },
- "m2m_has_1_20": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "actual": 1,
- "expected": 1,
- "sql": "SELECT COUNT(*) AS n FROM membership WHERE user_id=1 AND group_id=20"
- }
- },
- "m2m_has_1_10": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "actual": 1,
- "expected": 1,
- "sql": "SELECT COUNT(*) AS n FROM membership WHERE user_id=1 AND group_id=10"
- }
- },
- "memberships_three_rows": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "actual": 3,
- "expected": 3,
- "sql": "SELECT COUNT(*) AS n FROM membership"
- }
- }
- },
- "vendor": "openai",
- "started_at": "2026-01-27T19:49:28.665682949Z",
- "finished_at": "2026-01-27T19:50:22.268882588Z"
- },
- "t_020_ecs": {
- "hash": "2a0f4ec42cac03fb3da542793b311e4b399845c688bb0660a6c231c82e96c56a",
- "task": "t_020_ecs",
- "lang": "rust",
- "golden_published": true,
- "model_name": "GPT-5",
- "total_tests": 5,
- "passed_tests": 1,
- "llm_output": "use spacetimedb::{table, reducer, ReducerContext, Table};\n\n#[table(name = entity)]\npub struct Entity {\n #[primary_key]\n id: i32,\n}\n\n#[table(name = position)]\npub struct Position {\n #[primary_key]\n entity_id: i32,\n x: i32,\n y: i32,\n}\n\n#[table(name = velocity)]\npub struct Velocity {\n #[primary_key]\n entity_id: i32,\n vx: i32,\n vy: i32,\n}\n\n#[table(name = next_position)]\npub struct NextPosition {\n #[primary_key]\n entity_id: i32,\n x: i32,\n y: i32,\n}\n\n#[reducer]\npub fn seed(ctx: &ReducerContext) {\n let _ = ctx.db.entity().try_insert(Entity { id: 1 });\n let _ = ctx.db.entity().try_insert(Entity { id: 2 });\n\n let _ = ctx.db.position().try_insert(Position { entity_id: 1, x: 0, y: 0 });\n let _ = ctx.db.velocity().try_insert(Velocity { entity_id: 1, vx: 1, vy: 0 });\n\n let _ = ctx.db.position().try_insert(Position { entity_id: 2, x: 10, y: 0 });\n let _ = ctx.db.velocity().try_insert(Velocity { entity_id: 2, vx: -2, vy: 3 });\n}\n\n#[reducer]\npub fn step(ctx: &ReducerContext) {\n for pos in ctx.db.position().iter() {\n if let Some(vel) = ctx.db.velocity().entity_id().find(pos.entity_id) {\n let nx = pos.x + vel.vx;\n let ny = pos.y + vel.vy;\n\n if let Some(mut existing) = ctx.db.next_position().entity_id().find(pos.entity_id) {\n existing.x = nx;\n existing.y = ny;\n let _ = ctx.db.next_position().entity_id().update(existing);\n } else {\n let _ = ctx.db.next_position().try_insert(NextPosition {\n entity_id: pos.entity_id,\n x: nx,\n y: ny,\n });\n }\n }\n }\n}",
- "category": "schema",
- "route_api_model": "gpt-5",
- "golden_db": "schema-t-020-ecs-golden",
- "llm_db": "schema-t-020-ecs-gpt-5-llm",
- "work_dir_golden": "target/llm-runs/schema/t_020_ecs/rust/server/golden",
- "work_dir_llm": "target/llm-runs/schema/t_020_ecs/rust/server/gpt-5/llm",
- "scorer_details": {
- "ecs_step_next_positions_count": {
- "pass": false,
- "partial": 0.0,
- "notes": {
- "error": "spacetime sql failed:\nWARNING: This command is UNSTABLE and subject to breaking changes.\n\nError: no such table: `next_positions`. If the table exists, it may be marked private.\n\nCaused by:\n HTTP status client error (400 Bad Request) for url (http://127.0.0.1:33615/v1/database/c200ef190fe9bac0d026751d082f663c75cb0435d300fdc35e1bc1f038529566/sql)\n",
- "phase": "sql"
- }
- },
- "ecs_next_pos_entity2": {
- "pass": false,
- "partial": 0.0,
- "notes": {
- "error": "spacetime sql failed:\nWARNING: This command is UNSTABLE and subject to breaking changes.\n\nError: no such table: `next_positions`. If the table exists, it may be marked private.\n\nCaused by:\n HTTP status client error (400 Bad Request) for url (http://127.0.0.1:33615/v1/database/c200ef190fe9bac0d026751d082f663c75cb0435d300fdc35e1bc1f038529566/sql)\n",
- "phase": "sql"
- }
- },
- "schema_parity": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "golden_db": "schema-t-020-ecs-golden",
- "llm_db": "schema-t-020-ecs-gpt-5-llm",
- "reducers_diff": null,
- "reducers_equal": true,
- "server": "http://127.0.0.1:33615",
- "tables_diff": null,
- "tables_equal": true
- }
- },
- "ecs_next_pos_entity1": {
- "pass": false,
- "partial": 0.0,
- "notes": {
- "error": "spacetime sql failed:\nWARNING: This command is UNSTABLE and subject to breaking changes.\n\nError: no such table: `next_positions`. If the table exists, it may be marked private.\n\nCaused by:\n HTTP status client error (400 Bad Request) for url (http://127.0.0.1:33615/v1/database/c200ef190fe9bac0d026751d082f663c75cb0435d300fdc35e1bc1f038529566/sql)\n",
- "phase": "sql"
- }
- },
- "ecs_seed_positions_count": {
- "pass": false,
- "partial": 0.0,
- "notes": {
- "error": "spacetime sql failed:\nWARNING: This command is UNSTABLE and subject to breaking changes.\n\nError: no such table: `positions`. If the table exists, it may be marked private.\n\nCaused by:\n HTTP status client error (400 Bad Request) for url (http://127.0.0.1:33615/v1/database/c200ef190fe9bac0d026751d082f663c75cb0435d300fdc35e1bc1f038529566/sql)\n",
- "phase": "sql"
- }
- }
- },
- "vendor": "openai",
- "started_at": "2026-01-27T19:49:28.665885964Z",
- "finished_at": "2026-01-27T19:50:18.814108696Z"
- },
- "t_021_multi_column_index": {
- "hash": "2a0f4ec42cac03fb3da542793b311e4b399845c688bb0660a6c231c82e96c56a",
- "task": "t_021_multi_column_index",
- "lang": "rust",
- "golden_published": true,
- "model_name": "GPT-5",
- "total_tests": 4,
- "passed_tests": 4,
- "llm_output": "use spacetimedb::{table, reducer, ReducerContext, Table};\n\n#[table(name = log, index(name = by_user_day, btree(columns = [user_id, day])))]\npub struct Log {\n #[primary_key]\n id: i32,\n user_id: i32,\n day: i32,\n message: String,\n}\n\n#[reducer]\npub fn seed(ctx: &ReducerContext) {\n let table = ctx.db.log();\n table.insert(Log { id: 1, user_id: 7, day: 1, message: \"a\".to_string() });\n table.insert(Log { id: 2, user_id: 7, day: 2, message: \"b\".to_string() });\n table.insert(Log { id: 3, user_id: 9, day: 1, message: \"c\".to_string() });\n}",
- "category": "schema",
- "route_api_model": "gpt-5",
- "golden_db": "schema-t-021-multi-column-index-golden",
- "llm_db": "schema-t-021-multi-column-index-gpt-5-llm",
- "work_dir_golden": "target/llm-runs/schema/t_021_multi_column_index/rust/server/golden",
- "work_dir_llm": "target/llm-runs/schema/t_021_multi_column_index/rust/server/gpt-5/llm",
- "scorer_details": {
- "schema_parity": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "golden_db": "schema-t-021-multi-column-index-golden",
- "llm_db": "schema-t-021-multi-column-index-gpt-5-llm",
- "reducers_diff": null,
- "reducers_equal": true,
- "server": "http://127.0.0.1:33615",
- "tables_diff": null,
- "tables_equal": true
- }
- },
- "mcindex_seed_count": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "actual": 3,
- "expected": 3,
- "sql": "SELECT COUNT(*) AS n FROM log"
- }
- },
- "mcindex_lookup_u7_d1": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "actual": 1,
- "expected": 1,
- "sql": "SELECT COUNT(*) AS n FROM log WHERE user_id=7 AND day=1"
- }
- },
- "mcindex_lookup_u7_d2": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "actual": 1,
- "expected": 1,
- "sql": "SELECT COUNT(*) AS n FROM log WHERE user_id=7 AND day=2"
- }
- }
- },
- "vendor": "openai",
- "started_at": "2026-01-27T19:49:28.665048738Z",
- "finished_at": "2026-01-27T19:50:12.818516478Z"
- }
- }
- }
- ]
- },
- {
- "mode": "docs",
- "hash": "d1bf0b033db905c668d016082c762eb4b91edd1299f7b8d4bcc6def5398610f9",
- "models": [
- {
- "name": "GPT-5",
- "route_api_model": "gpt-5",
- "tasks": {
- "t_000_empty_reducers": {
- "hash": "d1bf0b033db905c668d016082c762eb4b91edd1299f7b8d4bcc6def5398610f9",
- "task": "t_000_empty_reducers",
- "lang": "rust",
- "golden_published": true,
- "model_name": "GPT-5",
- "total_tests": 1,
- "passed_tests": 0,
- "llm_output": "use spacetimedb::ReducerContext;\n\n#[spacetimedb::reducer]\npub fn empty_reducer_no_args(ctx: &ReducerContext) {}\n\n#[spacetimedb::reducer]\npub fn empty_reducer_with_int(ctx: &ReducerContext, count: i32) {}\n\n#[spacetimedb::reducer]\npub fn empty_reducer_with_string(ctx: &ReducerContext, name: String) {}\n\n#[spacetimedb::reducer]\npub fn empty_reducer_with_two_args(ctx: &ReducerContext, count: i32, name: String) {}\n\n#[spacetimedb::reducer]\npub fn empty_reducer_with_three_args(ctx: &ReducerContext, active: bool, ratio: f32, label: String) {}",
- "category": "basics",
- "route_api_model": "gpt-5",
- "golden_db": "basics-t-000-empty-reducers-golden",
- "llm_db": "basics-t-000-empty-reducers-gpt-5-llm",
- "work_dir_golden": "target/llm-runs/basics/t_000_empty_reducers/rust/server/golden",
- "work_dir_llm": "target/llm-runs/basics/t_000_empty_reducers/rust/server/gpt-5/llm",
- "scorer_details": {
- "schema_parity": {
- "pass": false,
- "partial": 0.0,
- "notes": {
- "error": "describe failed: WARNING: This command is UNSTABLE and subject to breaking changes.\n\nError: failed to find database `basics-t-000-empty-reducers-golden`.\n",
- "phase": "describe_golden"
- }
- }
- },
- "vendor": "openai",
- "started_at": "2026-01-27T19:53:02.635478741Z",
- "finished_at": "2026-01-27T19:53:40.787269737Z"
- },
- "t_001_basic_tables": {
- "hash": "d1bf0b033db905c668d016082c762eb4b91edd1299f7b8d4bcc6def5398610f9",
- "task": "t_001_basic_tables",
- "lang": "rust",
- "golden_published": true,
- "model_name": "GPT-5",
- "total_tests": 1,
- "passed_tests": 0,
- "llm_output": "#[spacetimedb::table(name = user)]\npub struct User {\n #[primary_key]\n id: i32,\n name: String,\n age: i32,\n active: bool,\n}\n\n#[spacetimedb::table(name = product)]\npub struct Product {\n #[primary_key]\n id: i32,\n title: String,\n price: f32,\n in_stock: bool,\n}\n\n#[spacetimedb::table(name = note)]\npub struct Note {\n #[primary_key]\n id: i32,\n body: String,\n rating: i64,\n pinned: bool,\n}",
- "category": "basics",
- "route_api_model": "gpt-5",
- "golden_db": "basics-t-001-basic-tables-golden",
- "llm_db": "basics-t-001-basic-tables-gpt-5-llm",
- "work_dir_golden": "target/llm-runs/basics/t_001_basic_tables/rust/server/golden",
- "work_dir_llm": "target/llm-runs/basics/t_001_basic_tables/rust/server/gpt-5/llm",
- "scorer_details": {
- "schema_parity": {
- "pass": false,
- "partial": 0.0,
- "notes": {
- "error": "describe failed: WARNING: This command is UNSTABLE and subject to breaking changes.\n\nError: failed to find database `basics-t-001-basic-tables-golden`.\n",
- "phase": "describe_golden"
- }
- }
- },
- "vendor": "openai",
- "started_at": "2026-01-27T19:53:04.338845678Z",
- "finished_at": "2026-01-27T19:53:39.243226783Z"
- },
- "t_002_scheduled_table": {
- "hash": "d1bf0b033db905c668d016082c762eb4b91edd1299f7b8d4bcc6def5398610f9",
- "task": "t_002_scheduled_table",
- "lang": "rust",
- "golden_published": true,
- "model_name": "GPT-5",
- "total_tests": 1,
- "passed_tests": 0,
- "llm_output": "use spacetimedb::{ReducerContext, ScheduleAt, Table};\n\n#[spacetimedb::table(name = tick_timer, scheduled(tick))]\npub struct TickTimer {\n #[primary_key]\n #[auto_inc]\n scheduled_id: u64,\n scheduled_at: ScheduleAt,\n}\n\n#[spacetimedb::reducer]\npub fn tick(_ctx: &ReducerContext, _timer: TickTimer) -> Result<(), String> {\n Ok(())\n}\n\n#[spacetimedb::reducer(init)]\npub fn init(ctx: &ReducerContext) -> Result<(), String> {\n if ctx.db.tick_timer().count() == 0 {\n use std::time::Duration;\n ctx.db.tick_timer().insert(TickTimer {\n scheduled_id: 0,\n scheduled_at: ScheduleAt::Interval(Duration::from_micros(50_000).into()),\n });\n }\n Ok(())\n}",
- "category": "basics",
- "route_api_model": "gpt-5",
- "golden_db": "basics-t-002-scheduled-table-golden",
- "llm_db": "basics-t-002-scheduled-table-gpt-5-llm",
- "work_dir_golden": "target/llm-runs/basics/t_002_scheduled_table/rust/server/golden",
- "work_dir_llm": "target/llm-runs/basics/t_002_scheduled_table/rust/server/gpt-5/llm",
- "scorer_details": {
- "schema_parity": {
- "pass": false,
- "partial": 0.0,
- "notes": {
- "error": "describe failed: WARNING: This command is UNSTABLE and subject to breaking changes.\n\nError: failed to find database `basics-t-002-scheduled-table-golden`.\n",
- "phase": "describe_golden"
- }
- }
- },
- "vendor": "openai",
- "started_at": "2026-01-27T19:53:38.403872273Z",
- "finished_at": "2026-01-27T19:54:31.831288022Z"
- },
- "t_003_struct_in_table": {
- "hash": "d1bf0b033db905c668d016082c762eb4b91edd1299f7b8d4bcc6def5398610f9",
- "task": "t_003_struct_in_table",
- "lang": "rust",
- "golden_published": true,
- "model_name": "GPT-5",
- "total_tests": 1,
- "passed_tests": 0,
- "llm_output": "use spacetimedb::SpacetimeType;\n\n#[derive(SpacetimeType, Clone, Debug)]\npub struct Position {\n x: i32,\n y: i32,\n}\n\n#[spacetimedb::table(name = entity)]\npub struct Entity {\n #[primary_key]\n id: i32,\n pos: Position,\n}",
- "category": "basics",
- "route_api_model": "gpt-5",
- "golden_db": "basics-t-003-struct-in-table-golden",
- "llm_db": "basics-t-003-struct-in-table-gpt-5-llm",
- "work_dir_golden": "target/llm-runs/basics/t_003_struct_in_table/rust/server/golden",
- "work_dir_llm": "target/llm-runs/basics/t_003_struct_in_table/rust/server/gpt-5/llm",
- "scorer_details": {
- "schema_parity": {
- "pass": false,
- "partial": 0.0,
- "notes": {
- "error": "describe failed: WARNING: This command is UNSTABLE and subject to breaking changes.\n\nError: failed to find database `basics-t-003-struct-in-table-golden`.\n",
- "phase": "describe_golden"
- }
- }
- },
- "vendor": "openai",
- "started_at": "2026-01-27T19:53:02.638916802Z",
- "finished_at": "2026-01-27T19:53:40.055864699Z"
- },
- "t_004_insert": {
- "hash": "d1bf0b033db905c668d016082c762eb4b91edd1299f7b8d4bcc6def5398610f9",
- "task": "t_004_insert",
- "lang": "rust",
- "golden_published": true,
- "model_name": "GPT-5",
- "total_tests": 2,
- "passed_tests": 0,
- "llm_output": "use spacetimedb::{ReducerContext, Table};\n\n#[spacetimedb::table(name = user)]\npub struct User {\n #[primary_key]\n id: i32,\n name: String,\n age: i32,\n active: bool,\n}\n\n#[spacetimedb::reducer]\npub fn insert_user(ctx: &ReducerContext, id: i32, name: String, age: i32, active: bool) {\n ctx.db.user().insert(User { id, name, age, active });\n}",
- "category": "basics",
- "route_api_model": "gpt-5",
- "golden_db": "basics-t-004-insert-golden",
- "llm_db": "basics-t-004-insert-gpt-5-llm",
- "work_dir_golden": "target/llm-runs/basics/t_004_insert/rust/server/golden",
- "work_dir_llm": "target/llm-runs/basics/t_004_insert/rust/server/gpt-5/llm",
- "scorer_details": {
- "schema_parity": {
- "pass": false,
- "partial": 0.0,
- "notes": {
- "error": "describe failed: WARNING: This command is UNSTABLE and subject to breaking changes.\n\nError: failed to find database `basics-t-004-insert-golden`.\n",
- "phase": "describe_golden"
- }
- },
- "data_parity_insert_user": {
- "pass": false,
- "partial": 0.0,
- "notes": {
- "error": "spacetime call failed:\nWARNING: This command is UNSTABLE and subject to breaking changes.\n\nError: failed to find database `basics-t-004-insert-golden`.\n",
- "phase": "call_reducer_golden"
- }
- }
- },
- "vendor": "openai",
- "started_at": "2026-01-27T19:53:33.748279444Z",
- "finished_at": "2026-01-27T19:53:56.014195443Z"
- },
- "t_005_update": {
- "hash": "d1bf0b033db905c668d016082c762eb4b91edd1299f7b8d4bcc6def5398610f9",
- "task": "t_005_update",
- "lang": "rust",
- "golden_published": true,
- "model_name": "GPT-5",
- "total_tests": 3,
- "passed_tests": 0,
- "llm_output": "use spacetimedb::{ReducerContext, Table};\n\n#[spacetimedb::table(name = user)]\npub struct User {\n #[primary_key]\n id: i32,\n name: String,\n age: i32,\n active: bool,\n}\n\n#[spacetimedb::reducer]\npub fn update_user(ctx: &ReducerContext, id: i32, name: String, age: i32, active: bool) {\n if ctx.db.user().id().find(id).is_some() {\n ctx.db.user().id().update(User { id, name, age, active });\n }\n}",
- "category": "basics",
- "route_api_model": "gpt-5",
- "golden_db": "basics-t-005-update-golden",
- "llm_db": "basics-t-005-update-gpt-5-llm",
- "work_dir_golden": "target/llm-runs/basics/t_005_update/rust/server/golden",
- "work_dir_llm": "target/llm-runs/basics/t_005_update/rust/server/gpt-5/llm",
- "scorer_details": {
- "data_parity_update_user": {
- "pass": false,
- "partial": 0.0,
- "notes": {
- "error": "spacetime call failed:\nWARNING: This command is UNSTABLE and subject to breaking changes.\n\nError: failed to find database `basics-t-005-update-golden`.\n",
- "phase": "call_reducer_golden"
- }
- },
- "schema_parity": {
- "pass": false,
- "partial": 0.0,
- "notes": {
- "error": "describe failed: WARNING: This command is UNSTABLE and subject to breaking changes.\n\nError: failed to find database `basics-t-005-update-golden`.\n",
- "phase": "describe_golden"
- }
- },
- "seed_users_row": {
- "pass": false,
- "partial": 0.0,
- "notes": {
- "error": "spacetime sql failed:\nWARNING: This command is UNSTABLE and subject to breaking changes.\n\nError: failed to find database `basics-t-005-update-golden`.\n",
- "phase": "sql_golden",
- "sql": "INSERT INTO user(id, name, age, active) VALUES (1, 'Alice', 30, true)"
- }
- }
- },
- "vendor": "openai",
- "started_at": "2026-01-27T19:53:00.578961998Z",
- "finished_at": "2026-01-27T19:53:38.403844461Z"
- },
- "t_006_delete": {
- "hash": "d1bf0b033db905c668d016082c762eb4b91edd1299f7b8d4bcc6def5398610f9",
- "task": "t_006_delete",
- "lang": "rust",
- "golden_published": true,
- "model_name": "GPT-5",
- "total_tests": 3,
- "passed_tests": 1,
- "llm_output": "use spacetimedb::{ReducerContext, Table};\n\n#[spacetimedb::table(name = user)]\npub struct User {\n #[primary_key]\n id: i32,\n name: String,\n age: i32,\n active: bool,\n}\n\n#[spacetimedb::reducer]\npub fn delete_user(ctx: &ReducerContext, id: i32) {\n ctx.db.user().id().delete(id);\n}",
- "category": "basics",
- "route_api_model": "gpt-5",
- "golden_db": "basics-t-006-delete-golden",
- "llm_db": "basics-t-006-delete-gpt-5-llm",
- "work_dir_golden": "target/llm-runs/basics/t_006_delete/rust/server/golden",
- "work_dir_llm": "target/llm-runs/basics/t_006_delete/rust/server/gpt-5/llm",
- "scorer_details": {
- "schema_parity": {
- "pass": false,
- "partial": 0.0,
- "notes": {
- "error": "describe failed: WARNING: This command is UNSTABLE and subject to breaking changes.\n\nError: failed to find database `basics-t-006-delete-golden`.\n",
- "phase": "describe_golden"
- }
- },
- "seed_users_row": {
- "pass": false,
- "partial": 0.0,
- "notes": {
- "error": "spacetime sql failed:\nWARNING: This command is UNSTABLE and subject to breaking changes.\n\nError: failed to find database `basics-t-006-delete-golden`.\n",
- "phase": "sql_golden",
- "sql": "INSERT INTO user(id, name, age, active) VALUES (1, 'Alice', 30, true)"
- }
- },
- "delete_user_count_zero": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "actual": 0,
- "expected": 0,
- "sql": "SELECT COUNT(*) AS n FROM user WHERE id=1"
- }
- }
- },
- "vendor": "openai",
- "started_at": "2026-01-27T19:52:31.910165978Z",
- "finished_at": "2026-01-27T19:52:58.192517311Z"
- },
- "t_007_crud": {
- "hash": "d1bf0b033db905c668d016082c762eb4b91edd1299f7b8d4bcc6def5398610f9",
- "task": "t_007_crud",
- "lang": "rust",
- "golden_published": true,
- "model_name": "GPT-5",
- "total_tests": 4,
- "passed_tests": 1,
- "llm_output": "use spacetimedb::{ReducerContext, Table};\n\n#[spacetimedb::table(name = user)]\npub struct User {\n #[primary_key]\n id: i32,\n name: String,\n age: i32,\n active: bool,\n}\n\n#[spacetimedb::reducer]\npub fn crud(ctx: &ReducerContext) {\n ctx.db.user().insert(User { id: 1, name: \"Alice\".into(), age: 30, active: true });\n ctx.db.user().insert(User { id: 2, name: \"Bob\".into(), age: 22, active: false });\n ctx.db.user().id().update(User { id: 1, name: \"Alice2\".into(), age: 31, active: false });\n ctx.db.user().id().delete(2);\n}",
- "category": "basics",
- "route_api_model": "gpt-5",
- "golden_db": "basics-t-007-crud-golden",
- "llm_db": "basics-t-007-crud-gpt-5-llm",
- "work_dir_golden": "target/llm-runs/basics/t_007_crud/rust/server/golden",
- "work_dir_llm": "target/llm-runs/basics/t_007_crud/rust/server/gpt-5/llm",
- "scorer_details": {
- "crud_row_id1_parity": {
- "pass": false,
- "partial": 0.0,
- "notes": {
- "error": "spacetime call failed:\nWARNING: This command is UNSTABLE and subject to breaking changes.\n\nError: failed to find database `basics-t-007-crud-golden`.\n",
- "phase": "call_reducer_golden"
- }
- },
- "crud_total_count_one": {
- "pass": false,
- "partial": 0.0,
- "notes": {
- "actual": 0,
- "expected": 1,
- "sql": "SELECT COUNT(*) AS n FROM user"
- }
- },
- "schema_parity": {
- "pass": false,
- "partial": 0.0,
- "notes": {
- "error": "describe failed: WARNING: This command is UNSTABLE and subject to breaking changes.\n\nError: failed to find database `basics-t-007-crud-golden`.\n",
- "phase": "describe_golden"
- }
- },
- "crud_row_id2_deleted": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "actual": 0,
- "expected": 0,
- "sql": "SELECT COUNT(*) AS n FROM user WHERE id=2"
- }
- }
- },
- "vendor": "openai",
- "started_at": "2026-01-27T19:52:42.328837521Z",
- "finished_at": "2026-01-27T19:53:33.740284067Z"
- },
- "t_008_index_lookup": {
- "hash": "d1bf0b033db905c668d016082c762eb4b91edd1299f7b8d4bcc6def5398610f9",
- "task": "t_008_index_lookup",
- "lang": "rust",
- "golden_published": true,
- "model_name": "GPT-5",
- "total_tests": 3,
- "passed_tests": 0,
- "llm_output": "use spacetimedb::{ReducerContext, Table};\n\n#[spacetimedb::table(name = user)]\npub struct User {\n #[primary_key]\n id: i32,\n name: String,\n age: i32,\n active: bool,\n}\n\n#[spacetimedb::table(name = result)]\npub struct ResultRow {\n #[primary_key]\n id: i32,\n name: String,\n}\n\n#[spacetimedb::reducer]\npub fn lookup_user_name(ctx: &ReducerContext, id: i32) {\n if let Some(user) = ctx.db.user().id().find(id) {\n let row = ResultRow { id: user.id, name: user.name.clone() };\n if ctx.db.result().id().find(user.id).is_some() {\n ctx.db.result().id().update(row);\n } else {\n ctx.db.result().insert(row);\n }\n }\n}",
- "category": "basics",
- "route_api_model": "gpt-5",
- "golden_db": "basics-t-008-index-lookup-golden",
- "llm_db": "basics-t-008-index-lookup-gpt-5-llm",
- "work_dir_golden": "target/llm-runs/basics/t_008_index_lookup/rust/server/golden",
- "work_dir_llm": "target/llm-runs/basics/t_008_index_lookup/rust/server/gpt-5/llm",
- "scorer_details": {
- "schema_parity": {
- "pass": false,
- "partial": 0.0,
- "notes": {
- "error": "describe failed: WARNING: This command is UNSTABLE and subject to breaking changes.\n\nError: failed to find database `basics-t-008-index-lookup-golden`.\n",
- "phase": "describe_golden"
- }
- },
- "index_lookup_projection_parity": {
- "pass": false,
- "partial": 0.0,
- "notes": {
- "error": "spacetime call failed:\nWARNING: This command is UNSTABLE and subject to breaking changes.\n\nError: failed to find database `basics-t-008-index-lookup-golden`.\n",
- "phase": "call_reducer_golden"
- }
- },
- "seed_user_row": {
- "pass": false,
- "partial": 0.0,
- "notes": {
- "error": "spacetime sql failed:\nWARNING: This command is UNSTABLE and subject to breaking changes.\n\nError: failed to find database `basics-t-008-index-lookup-golden`.\n",
- "phase": "sql_golden",
- "sql": "INSERT INTO user(id, name, age, active) VALUES (1, 'Alice', 30, true)"
- }
- }
- },
- "vendor": "openai",
- "started_at": "2026-01-27T19:53:17.657026192Z",
- "finished_at": "2026-01-27T19:53:54.093778910Z"
- },
- "t_009_init": {
- "hash": "d1bf0b033db905c668d016082c762eb4b91edd1299f7b8d4bcc6def5398610f9",
- "task": "t_009_init",
- "lang": "rust",
- "golden_published": true,
- "model_name": "GPT-5",
- "total_tests": 4,
- "passed_tests": 3,
- "llm_output": "use spacetimedb::{ReducerContext, Table};\n\n#[spacetimedb::table(name = user)]\npub struct User {\n #[primary_key]\n id: i32,\n name: String,\n age: i32,\n active: bool,\n}\n\n#[spacetimedb::reducer(init)]\npub fn init(ctx: &ReducerContext) -> Result<(), String> {\n ctx.db.user().insert(User { id: 1, name: \"Alice\".to_string(), age: 30, active: true });\n ctx.db.user().insert(User { id: 2, name: \"Bob\".to_string(), age: 22, active: false });\n Ok(())\n}",
- "category": "basics",
- "route_api_model": "gpt-5",
- "golden_db": "basics-t-009-init-golden",
- "llm_db": "basics-t-009-init-gpt-5-llm",
- "work_dir_golden": "target/llm-runs/basics/t_009_init/rust/server/golden",
- "work_dir_llm": "target/llm-runs/basics/t_009_init/rust/server/gpt-5/llm",
- "scorer_details": {
- "init_seed_bob": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "actual": 1,
- "expected": 1,
- "sql": "SELECT COUNT(*) AS n FROM user WHERE id=2 AND name='Bob' AND age=22 AND active=false"
- }
- },
- "schema_parity": {
- "pass": false,
- "partial": 0.0,
- "notes": {
- "error": "describe failed: WARNING: This command is UNSTABLE and subject to breaking changes.\n\nError: failed to find database `basics-t-009-init-golden`.\n",
- "phase": "describe_golden"
- }
- },
- "init_total_two": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "actual": 2,
- "expected": 2,
- "sql": "SELECT COUNT(*) AS n FROM user"
- }
- },
- "init_seed_alice": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "actual": 1,
- "expected": 1,
- "sql": "SELECT COUNT(*) AS n FROM user WHERE id=1 AND name='Alice' AND age=30 AND active=true"
- }
- }
- },
- "vendor": "openai",
- "started_at": "2026-01-27T19:52:58.192552680Z",
- "finished_at": "2026-01-27T19:53:38.342926441Z"
- },
- "t_010_connect": {
- "hash": "d1bf0b033db905c668d016082c762eb4b91edd1299f7b8d4bcc6def5398610f9",
- "task": "t_010_connect",
- "lang": "rust",
- "golden_published": true,
- "model_name": "GPT-5",
- "total_tests": 1,
- "passed_tests": 0,
- "llm_output": "use spacetimedb::{ReducerContext, Table};\n\n#[spacetimedb::table(name = event)]\npub struct Event {\n #[primary_key]\n #[auto_inc]\n id: i32,\n kind: String,\n}\n\n#[spacetimedb::reducer(client_connected)]\npub fn client_connected(ctx: &ReducerContext) {\n ctx.db.event().insert(Event { id: 0, kind: \"connected\".to_string() });\n}\n\n#[spacetimedb::reducer(client_disconnected)]\npub fn client_disconnected(ctx: &ReducerContext) {\n ctx.db.event().insert(Event { id: 0, kind: \"disconnected\".to_string() });\n}",
- "category": "basics",
- "route_api_model": "gpt-5",
- "golden_db": "basics-t-010-connect-golden",
- "llm_db": "basics-t-010-connect-gpt-5-llm",
- "work_dir_golden": "target/llm-runs/basics/t_010_connect/rust/server/golden",
- "work_dir_llm": "target/llm-runs/basics/t_010_connect/rust/server/gpt-5/llm",
- "scorer_details": {
- "schema_parity": {
- "pass": false,
- "partial": 0.0,
- "notes": {
- "error": "describe failed: WARNING: This command is UNSTABLE and subject to breaking changes.\n\nError: failed to find database `basics-t-010-connect-golden`.\n",
- "phase": "describe_golden"
- }
- }
- },
- "vendor": "openai",
- "started_at": "2026-01-27T19:52:35.522740907Z",
- "finished_at": "2026-01-27T19:53:02.635440935Z"
- },
- "t_011_helper_function": {
- "hash": "d1bf0b033db905c668d016082c762eb4b91edd1299f7b8d4bcc6def5398610f9",
- "task": "t_011_helper_function",
- "lang": "rust",
- "golden_published": true,
- "model_name": "GPT-5",
- "total_tests": 3,
- "passed_tests": 0,
- "llm_output": "use spacetimedb::{ReducerContext, Table};\n\n#[spacetimedb::table(name = result)]\npub struct ResultRow {\n #[primary_key]\n id: i32,\n sum: i32,\n}\n\nfn add(a: i32, b: i32) -> i32 {\n a + b\n}\n\n#[spacetimedb::reducer]\npub fn compute_sum(ctx: &ReducerContext, id: i32, a: i32, b: i32) {\n let sum = add(a, b);\n ctx.db.result().insert(ResultRow { id, sum });\n}",
- "category": "basics",
- "route_api_model": "gpt-5",
- "golden_db": "basics-t-011-helper-function-golden",
- "llm_db": "basics-t-011-helper-function-gpt-5-llm",
- "work_dir_golden": "target/llm-runs/basics/t_011_helper_function/rust/server/golden",
- "work_dir_llm": "target/llm-runs/basics/t_011_helper_function/rust/server/gpt-5/llm",
- "scorer_details": {
- "helper_func_sum_abs": {
- "pass": false,
- "partial": 0.0,
- "notes": {
- "actual": 0,
- "expected": 1,
- "sql": "SELECT COUNT(*) AS n FROM result WHERE id=1 AND sum=5"
- }
- },
- "helper_func_sum_parity": {
- "pass": false,
- "partial": 0.0,
- "notes": {
- "error": "spacetime call failed:\nWARNING: This command is UNSTABLE and subject to breaking changes.\n\nError: failed to find database `basics-t-011-helper-function-golden`.\n",
- "phase": "call_reducer_golden"
- }
- },
- "schema_parity": {
- "pass": false,
- "partial": 0.0,
- "notes": {
- "error": "describe failed: WARNING: This command is UNSTABLE and subject to breaking changes.\n\nError: failed to find database `basics-t-011-helper-function-golden`.\n",
- "phase": "describe_golden"
- }
- }
- },
- "vendor": "openai",
- "started_at": "2026-01-27T19:53:37.773674958Z",
- "finished_at": "2026-01-27T19:53:57.689433966Z"
- },
- "t_012_spacetime_product_type": {
- "hash": "d1bf0b033db905c668d016082c762eb4b91edd1299f7b8d4bcc6def5398610f9",
- "task": "t_012_spacetime_product_type",
- "lang": "rust",
- "golden_published": true,
- "model_name": "GPT-5",
- "total_tests": 3,
- "passed_tests": 0,
- "llm_output": "use spacetimedb::{ReducerContext, SpacetimeType, Table};\n\n#[derive(SpacetimeType)]\npub struct Score {\n left: i32,\n right: i32,\n}\n\n#[spacetimedb::table(name = result)]\npub struct ResultRow {\n #[primary_key]\n id: i32,\n value: Score,\n}\n\n#[spacetimedb::reducer]\npub fn set_score(ctx: &ReducerContext, id: i32, left: i32, right: i32) {\n ctx.db.result().insert(ResultRow {\n id,\n value: Score { left, right },\n });\n}",
- "category": "schema",
- "route_api_model": "gpt-5",
- "golden_db": "schema-t-012-spacetime-product-type-golden",
- "llm_db": "schema-t-012-spacetime-product-type-gpt-5-llm",
- "work_dir_golden": "target/llm-runs/schema/t_012_spacetime_product_type/rust/server/golden",
- "work_dir_llm": "target/llm-runs/schema/t_012_spacetime_product_type/rust/server/gpt-5/llm",
- "scorer_details": {
- "product_type_row_parity": {
- "pass": false,
- "partial": 0.0,
- "notes": {
- "error": "spacetime call failed:\nWARNING: This command is UNSTABLE and subject to breaking changes.\n\nError: failed to find database `schema-t-012-spacetime-product-type-golden`.\n",
- "phase": "call_reducer_golden"
- }
- },
- "schema_parity": {
- "pass": false,
- "partial": 0.0,
- "notes": {
- "error": "describe failed: WARNING: This command is UNSTABLE and subject to breaking changes.\n\nError: failed to find database `schema-t-012-spacetime-product-type-golden`.\n",
- "phase": "describe_golden"
- }
- },
- "product_type_row_count": {
- "pass": false,
- "partial": 0.0,
- "notes": {
- "actual": 0,
- "expected": 1,
- "sql": "SELECT COUNT(*) AS n FROM result WHERE id=1"
- }
- }
- },
- "vendor": "openai",
- "started_at": "2026-01-27T19:52:29.436388253Z",
- "finished_at": "2026-01-27T19:53:04.338818518Z"
- },
- "t_013_spacetime_sum_type": {
- "hash": "d1bf0b033db905c668d016082c762eb4b91edd1299f7b8d4bcc6def5398610f9",
- "task": "t_013_spacetime_sum_type",
- "lang": "rust",
- "golden_published": true,
- "model_name": "GPT-5",
- "total_tests": 3,
- "passed_tests": 0,
- "llm_output": "use spacetimedb::Table;\n\n#[derive(spacetimedb::SpacetimeType, Clone, Debug)]\npub struct Rect {\n width: i32,\n height: i32,\n}\n\n#[derive(spacetimedb::SpacetimeType, Clone, Debug)]\npub enum Shape {\n Circle(i32),\n Rectangle(Rect),\n}\n\n#[spacetimedb::table(name = result)]\npub struct ResultRow {\n #[primary_key]\n id: i32,\n value: Shape,\n}\n\n#[spacetimedb::reducer]\npub fn set_circle(ctx: &spacetimedb::ReducerContext, id: i32, radius: i32) {\n ctx.db.result().insert(ResultRow {\n id,\n value: Shape::Circle(radius),\n });\n}",
- "category": "schema",
- "route_api_model": "gpt-5",
- "golden_db": "schema-t-013-spacetime-sum-type-golden",
- "llm_db": "schema-t-013-spacetime-sum-type-gpt-5-llm",
- "work_dir_golden": "target/llm-runs/schema/t_013_spacetime_sum_type/rust/server/golden",
- "work_dir_llm": "target/llm-runs/schema/t_013_spacetime_sum_type/rust/server/gpt-5/llm",
- "scorer_details": {
- "schema_parity": {
- "pass": false,
- "partial": 0.0,
- "notes": {
- "error": "describe failed: WARNING: This command is UNSTABLE and subject to breaking changes.\n\nError: failed to find database `schema-t-013-spacetime-sum-type-golden`.\n",
- "phase": "describe_golden"
- }
- },
- "sum_type_row_count": {
- "pass": false,
- "partial": 0.0,
- "notes": {
- "actual": 0,
- "expected": 1,
- "sql": "SELECT COUNT(*) AS n FROM result WHERE id=1"
- }
- },
- "sum_type_row_parity": {
- "pass": false,
- "partial": 0.0,
- "notes": {
- "error": "spacetime call failed:\nWARNING: This command is UNSTABLE and subject to breaking changes.\n\nError: failed to find database `schema-t-013-spacetime-sum-type-golden`.\n",
- "phase": "call_reducer_golden"
- }
- }
- },
- "vendor": "openai",
- "started_at": "2026-01-27T19:51:47.638500741Z",
- "finished_at": "2026-01-27T19:53:00.578888253Z"
- },
- "t_014_elementary_columns": {
- "hash": "d1bf0b033db905c668d016082c762eb4b91edd1299f7b8d4bcc6def5398610f9",
- "task": "t_014_elementary_columns",
- "lang": "rust",
- "golden_published": true,
- "model_name": "GPT-5",
- "total_tests": 3,
- "passed_tests": 0,
- "llm_output": "use spacetimedb::{ReducerContext, Table};\n\n#[spacetimedb::table(name = primitive)]\npub struct Primitive {\n #[primary_key]\n id: i32,\n count: i32,\n total: i64,\n price: f32,\n ratio: f64,\n active: bool,\n name: String,\n}\n\n#[spacetimedb::reducer]\npub fn seed(ctx: &ReducerContext) {\n ctx.db.primitive().insert(Primitive {\n id: 1,\n count: 2,\n total: 3_000_000_000i64,\n price: 1.5f32,\n ratio: 2.25f64,\n active: true,\n name: \"Alice\".to_string(),\n });\n}",
- "category": "schema",
- "route_api_model": "gpt-5",
- "golden_db": "schema-t-014-elementary-columns-golden",
- "llm_db": "schema-t-014-elementary-columns-gpt-5-llm",
- "work_dir_golden": "target/llm-runs/schema/t_014_elementary_columns/rust/server/golden",
- "work_dir_llm": "target/llm-runs/schema/t_014_elementary_columns/rust/server/gpt-5/llm",
- "scorer_details": {
- "elementary_columns_row_parity": {
- "pass": false,
- "partial": 0.0,
- "notes": {
- "error": "spacetime call failed:\nWARNING: This command is UNSTABLE and subject to breaking changes.\n\nError: failed to find database `schema-t-014-elementary-columns-golden`.\n",
- "phase": "call_reducer_golden"
- }
- },
- "elementary_columns_row_count": {
- "pass": false,
- "partial": 0.0,
- "notes": {
- "actual": 0,
- "expected": 1,
- "sql": "SELECT COUNT(*) AS n FROM primitive WHERE id=1"
- }
- },
- "schema_parity": {
- "pass": false,
- "partial": 0.0,
- "notes": {
- "error": "describe failed: WARNING: This command is UNSTABLE and subject to breaking changes.\n\nError: failed to find database `schema-t-014-elementary-columns-golden`.\n",
- "phase": "describe_golden"
- }
- }
- },
- "vendor": "openai",
- "started_at": "2026-01-27T19:52:27.568323309Z",
- "finished_at": "2026-01-27T19:53:02.605112864Z"
- },
- "t_015_product_type_columns": {
- "hash": "d1bf0b033db905c668d016082c762eb4b91edd1299f7b8d4bcc6def5398610f9",
- "task": "t_015_product_type_columns",
- "lang": "rust",
- "golden_published": false,
- "model_name": "GPT-5",
- "total_tests": 1,
- "passed_tests": 0,
- "llm_output": null,
- "category": "schema",
- "route_api_model": "gpt-5",
- "golden_db": null,
- "llm_db": null,
- "work_dir_golden": null,
- "work_dir_llm": null,
- "scorer_details": {
- "publish_error": {
- "pass": false,
- "partial": 0.0,
- "notes": {
- "error": "LLM call timed out",
- "phase": "build_or_publish"
- }
- }
- },
- "vendor": "openai",
- "started_at": "2026-01-27T19:54:31.831326960Z",
- "finished_at": "2026-01-27T19:54:31.831326960Z"
- },
- "t_016_sum_type_columns": {
- "hash": "d1bf0b033db905c668d016082c762eb4b91edd1299f7b8d4bcc6def5398610f9",
- "task": "t_016_sum_type_columns",
- "lang": "rust",
- "golden_published": true,
- "model_name": "GPT-5",
- "total_tests": 3,
- "passed_tests": 0,
- "llm_output": "use spacetimedb::{ReducerContext, SpacetimeType, Table};\n\n#[derive(SpacetimeType, Clone, Debug)]\npub struct Rect {\n width: i32,\n height: i32,\n}\n\n#[derive(SpacetimeType, Clone, Debug)]\npub enum Shape {\n Circle(i32),\n Rectangle(Rect),\n}\n\n#[spacetimedb::table(name = drawing)]\npub struct Drawing {\n #[primary_key]\n id: i32,\n a: Shape,\n b: Shape,\n}\n\n#[spacetimedb::reducer]\npub fn seed(ctx: &ReducerContext) {\n if ctx.db.drawing().count() == 0 {\n ctx.db.drawing().insert(Drawing {\n id: 1,\n a: Shape::Circle(10),\n b: Shape::Rectangle(Rect { width: 4, height: 6 }),\n });\n }\n}",
- "category": "schema",
- "route_api_model": "gpt-5",
- "golden_db": "schema-t-016-sum-type-columns-golden",
- "llm_db": "schema-t-016-sum-type-columns-gpt-5-llm",
- "work_dir_golden": "target/llm-runs/schema/t_016_sum_type_columns/rust/server/golden",
- "work_dir_llm": "target/llm-runs/schema/t_016_sum_type_columns/rust/server/gpt-5/llm",
- "scorer_details": {
- "schema_parity": {
- "pass": false,
- "partial": 0.0,
- "notes": {
- "error": "describe failed: WARNING: This command is UNSTABLE and subject to breaking changes.\n\nError: failed to find database `schema-t-016-sum-type-columns-golden`.\n",
- "phase": "describe_golden"
- }
- },
- "sum_type_columns_row_parity": {
- "pass": false,
- "partial": 0.0,
- "notes": {
- "error": "spacetime call failed:\nWARNING: This command is UNSTABLE and subject to breaking changes.\n\nError: failed to find database `schema-t-016-sum-type-columns-golden`.\n",
- "phase": "call_reducer_golden"
- }
- },
- "sum_type_columns_row_count": {
- "pass": false,
- "partial": 0.0,
- "notes": {
- "error": "spacetime sql failed:\nWARNING: This command is UNSTABLE and subject to breaking changes.\n\nError: no such table: `drawings`. If the table exists, it may be marked private.\n\nCaused by:\n HTTP status client error (400 Bad Request) for url (http://127.0.0.1:38927/v1/database/c200596b7e7f2350abeb00119177ef3448e7673481a61aeaa7c22e4dd952cb52/sql)\n",
- "phase": "sql"
- }
- }
- },
- "vendor": "openai",
- "started_at": "2026-01-27T19:51:47.634170474Z",
- "finished_at": "2026-01-27T19:52:27.568235316Z"
- },
- "t_017_scheduled_columns": {
- "hash": "d1bf0b033db905c668d016082c762eb4b91edd1299f7b8d4bcc6def5398610f9",
- "task": "t_017_scheduled_columns",
- "lang": "rust",
- "golden_published": true,
- "model_name": "GPT-5",
- "total_tests": 2,
- "passed_tests": 1,
- "llm_output": "use std::time::Duration;\nuse spacetimedb::{ReducerContext, ScheduleAt, Table};\n\n#[spacetimedb::table(name = tick_timer, scheduled(tick))]\npub struct TickTimer {\n #[primary_key]\n #[auto_inc]\n scheduled_id: u64,\n scheduled_at: ScheduleAt,\n}\n\n#[spacetimedb::reducer]\npub fn tick(_ctx: &ReducerContext, _tick_timer: TickTimer) -> Result<(), String> {\n Ok(())\n}\n\n#[spacetimedb::reducer(init)]\npub fn init(ctx: &ReducerContext) -> Result<(), String> {\n if ctx.db.tick_timer().count() == 0 {\n ctx.db.tick_timer().try_insert(TickTimer {\n scheduled_id: 0,\n scheduled_at: ScheduleAt::Interval(Duration::from_micros(50_000).into()),\n })?;\n }\n Ok(())\n}",
- "category": "schema",
- "route_api_model": "gpt-5",
- "golden_db": "schema-t-017-scheduled-columns-golden",
- "llm_db": "schema-t-017-scheduled-columns-gpt-5-llm",
- "work_dir_golden": "target/llm-runs/schema/t_017_scheduled_columns/rust/server/golden",
- "work_dir_llm": "target/llm-runs/schema/t_017_scheduled_columns/rust/server/gpt-5/llm",
- "scorer_details": {
- "schema_parity": {
- "pass": false,
- "partial": 0.0,
- "notes": {
- "error": "describe failed: WARNING: This command is UNSTABLE and subject to breaking changes.\n\nError: failed to find database `schema-t-017-scheduled-columns-golden`.\n",
- "phase": "describe_golden"
- }
- },
- "scheduled_seeded_one_row": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "actual": 1,
- "expected": 1,
- "sql": "SELECT COUNT(*) AS n FROM tick_timer WHERE scheduled_id>=0"
- }
- }
- },
- "vendor": "openai",
- "started_at": "2026-01-27T19:51:47.625840249Z",
- "finished_at": "2026-01-27T19:52:35.522695487Z"
- },
- "t_018_constraints": {
- "hash": "d1bf0b033db905c668d016082c762eb4b91edd1299f7b8d4bcc6def5398610f9",
- "task": "t_018_constraints",
- "lang": "rust",
- "golden_published": true,
- "model_name": "GPT-5",
- "total_tests": 3,
- "passed_tests": 0,
- "llm_output": "use spacetimedb::{ReducerContext, Table};\n\n#[spacetimedb::table(name = account, index(name = by_name, btree(columns = [name])))]\npub struct Account {\n #[primary_key]\n id: i32,\n #[unique]\n email: String,\n name: String,\n}\n\n#[spacetimedb::reducer]\npub fn seed(ctx: &ReducerContext) {\n let ids: Vec = ctx.db.account().iter().map(|a| a.id).collect();\n for id in ids {\n ctx.db.account().id().delete(id);\n }\n\n ctx.db.account().insert(Account {\n id: 1,\n email: \"a@example.com\".into(),\n name: \"Alice\".into(),\n });\n ctx.db.account().insert(Account {\n id: 2,\n email: \"b@example.com\".into(),\n name: \"Bob\".into(),\n });\n}",
- "category": "schema",
- "route_api_model": "gpt-5",
- "golden_db": "schema-t-018-constraints-golden",
- "llm_db": "schema-t-018-constraints-gpt-5-llm",
- "work_dir_golden": "target/llm-runs/schema/t_018_constraints/rust/server/golden",
- "work_dir_llm": "target/llm-runs/schema/t_018_constraints/rust/server/gpt-5/llm",
- "scorer_details": {
- "constraints_row_parity_after_seed": {
- "pass": false,
- "partial": 0.0,
- "notes": {
- "error": "spacetime call failed:\nWARNING: This command is UNSTABLE and subject to breaking changes.\n\nError: failed to find database `schema-t-018-constraints-golden`.\n",
- "phase": "call_reducer_golden"
- }
- },
- "schema_parity": {
- "pass": false,
- "partial": 0.0,
- "notes": {
- "error": "describe failed: WARNING: This command is UNSTABLE and subject to breaking changes.\n\nError: failed to find database `schema-t-018-constraints-golden`.\n",
- "phase": "describe_golden"
- }
- },
- "constraints_seed_two_rows": {
- "pass": false,
- "partial": 0.0,
- "notes": {
- "actual": 0,
- "expected": 1,
- "sql": "SELECT COUNT(*) AS n FROM account WHERE id=2"
- }
- }
- },
- "vendor": "openai",
- "started_at": "2026-01-27T19:51:47.622424031Z",
- "finished_at": "2026-01-27T19:53:37.773579225Z"
- },
- "t_019_many_to_many": {
- "hash": "d1bf0b033db905c668d016082c762eb4b91edd1299f7b8d4bcc6def5398610f9",
- "task": "t_019_many_to_many",
- "lang": "rust",
- "golden_published": true,
- "model_name": "GPT-5",
- "total_tests": 5,
- "passed_tests": 4,
- "llm_output": "use spacetimedb::Table;\n\n#[spacetimedb::table(name = user, public)]\npub struct User {\n #[primary_key]\n user_id: i32,\n name: String,\n}\n\n#[spacetimedb::table(name = group, public)]\npub struct Group {\n #[primary_key]\n group_id: i32,\n title: String,\n}\n\n#[spacetimedb::table(\n name = membership,\n public,\n index(name = by_user, btree(columns = [user_id])),\n index(name = by_group, btree(columns = [group_id]))\n)]\npub struct Membership {\n #[primary_key]\n id: i32,\n user_id: i32,\n group_id: i32,\n}\n\n#[spacetimedb::reducer]\npub fn seed(ctx: &spacetimedb::ReducerContext) {\n ctx.db.user().insert(User { user_id: 1, name: \"Alice\".into() });\n ctx.db.user().insert(User { user_id: 2, name: \"Bob\".into() });\n\n ctx.db.group().insert(Group { group_id: 10, title: \"Admin\".into() });\n ctx.db.group().insert(Group { group_id: 20, title: \"Dev\".into() });\n\n ctx.db.membership().insert(Membership { id: 1, user_id: 1, group_id: 10 });\n ctx.db.membership().insert(Membership { id: 2, user_id: 1, group_id: 20 });\n ctx.db.membership().insert(Membership { id: 3, user_id: 2, group_id: 20 });\n}",
- "category": "schema",
- "route_api_model": "gpt-5",
- "golden_db": "schema-t-019-many-to-many-golden",
- "llm_db": "schema-t-019-many-to-many-gpt-5-llm",
- "work_dir_golden": "target/llm-runs/schema/t_019_many_to_many/rust/server/golden",
- "work_dir_llm": "target/llm-runs/schema/t_019_many_to_many/rust/server/gpt-5/llm",
- "scorer_details": {
- "memberships_three_rows": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "actual": 3,
- "expected": 3,
- "sql": "SELECT COUNT(*) AS n FROM membership"
- }
- },
- "schema_parity": {
- "pass": false,
- "partial": 0.0,
- "notes": {
- "error": "describe failed: WARNING: This command is UNSTABLE and subject to breaking changes.\n\nError: failed to find database `schema-t-019-many-to-many-golden`.\n",
- "phase": "describe_golden"
- }
- },
- "m2m_has_1_20": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "actual": 1,
- "expected": 1,
- "sql": "SELECT COUNT(*) AS n FROM membership WHERE user_id=1 AND group_id=20"
- }
- },
- "m2m_has_1_10": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "actual": 1,
- "expected": 1,
- "sql": "SELECT COUNT(*) AS n FROM membership WHERE user_id=1 AND group_id=10"
- }
- },
- "m2m_has_2_20": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "actual": 1,
- "expected": 1,
- "sql": "SELECT COUNT(*) AS n FROM membership WHERE user_id=2 AND group_id=20"
- }
- }
- },
- "vendor": "openai",
- "started_at": "2026-01-27T19:51:47.642788029Z",
- "finished_at": "2026-01-27T19:52:31.910080797Z"
- },
- "t_020_ecs": {
- "hash": "d1bf0b033db905c668d016082c762eb4b91edd1299f7b8d4bcc6def5398610f9",
- "task": "t_020_ecs",
- "lang": "rust",
- "golden_published": true,
- "model_name": "GPT-5",
- "total_tests": 5,
- "passed_tests": 0,
- "llm_output": "use spacetimedb::{ReducerContext, Table};\n\n#[spacetimedb::table(name = entity)]\npub struct Entity {\n #[primary_key]\n id: i32,\n}\n\n#[spacetimedb::table(name = position)]\npub struct Position {\n #[primary_key]\n entity_id: i32,\n x: i32,\n y: i32,\n}\n\n#[spacetimedb::table(name = velocity)]\npub struct Velocity {\n #[primary_key]\n entity_id: i32,\n vx: i32,\n vy: i32,\n}\n\n#[spacetimedb::table(name = next_position)]\npub struct NextPosition {\n #[primary_key]\n entity_id: i32,\n x: i32,\n y: i32,\n}\n\n#[spacetimedb::reducer]\npub fn seed(ctx: &ReducerContext) {\n // First entity: id=1, pos=(0,0), vel=(1,0)\n ctx.db.entity().id().delete(1);\n ctx.db.position().entity_id().delete(1);\n ctx.db.velocity().entity_id().delete(1);\n ctx.db.entity().insert(Entity { id: 1 });\n ctx.db.position().insert(Position { entity_id: 1, x: 0, y: 0 });\n ctx.db.velocity().insert(Velocity { entity_id: 1, vx: 1, vy: 0 });\n\n // Second entity: id=2, pos=(10,0), vel=(-2,3)\n ctx.db.entity().id().delete(2);\n ctx.db.position().entity_id().delete(2);\n ctx.db.velocity().entity_id().delete(2);\n ctx.db.entity().insert(Entity { id: 2 });\n ctx.db.position().insert(Position { entity_id: 2, x: 10, y: 0 });\n ctx.db.velocity().insert(Velocity { entity_id: 2, vx: -2, vy: 3 });\n}\n\n#[spacetimedb::reducer]\npub fn step(ctx: &ReducerContext) {\n for pos in ctx.db.position().iter() {\n if let Some(vel) = ctx.db.velocity().entity_id().find(pos.entity_id) {\n let nx = pos.x + vel.vx;\n let ny = pos.y + vel.vy;\n if let Some(_existing) = ctx.db.next_position().entity_id().find(pos.entity_id) {\n ctx.db\n .next_position()\n .entity_id()\n .update(NextPosition { entity_id: pos.entity_id, x: nx, y: ny });\n } else {\n ctx.db\n .next_position()\n .insert(NextPosition { entity_id: pos.entity_id, x: nx, y: ny });\n }\n }\n }\n}",
- "category": "schema",
- "route_api_model": "gpt-5",
- "golden_db": "schema-t-020-ecs-golden",
- "llm_db": "schema-t-020-ecs-gpt-5-llm",
- "work_dir_golden": "target/llm-runs/schema/t_020_ecs/rust/server/golden",
- "work_dir_llm": "target/llm-runs/schema/t_020_ecs/rust/server/gpt-5/llm",
- "scorer_details": {
- "schema_parity": {
- "pass": false,
- "partial": 0.0,
- "notes": {
- "error": "describe failed: WARNING: This command is UNSTABLE and subject to breaking changes.\n\nError: failed to find database `schema-t-020-ecs-golden`.\n",
- "phase": "describe_golden"
- }
- },
- "ecs_step_next_positions_count": {
- "pass": false,
- "partial": 0.0,
- "notes": {
- "error": "spacetime sql failed:\nWARNING: This command is UNSTABLE and subject to breaking changes.\n\nError: no such table: `next_positions`. If the table exists, it may be marked private.\n\nCaused by:\n HTTP status client error (400 Bad Request) for url (http://127.0.0.1:38927/v1/database/c2000dfb254023618a83b1182de85ff2f9590dae5ce1c9301d7d8cc01c8bff6e/sql)\n",
- "phase": "sql"
- }
- },
- "ecs_next_pos_entity1": {
- "pass": false,
- "partial": 0.0,
- "notes": {
- "error": "spacetime sql failed:\nWARNING: This command is UNSTABLE and subject to breaking changes.\n\nError: no such table: `next_positions`. If the table exists, it may be marked private.\n\nCaused by:\n HTTP status client error (400 Bad Request) for url (http://127.0.0.1:38927/v1/database/c2000dfb254023618a83b1182de85ff2f9590dae5ce1c9301d7d8cc01c8bff6e/sql)\n",
- "phase": "sql"
- }
- },
- "ecs_seed_positions_count": {
- "pass": false,
- "partial": 0.0,
- "notes": {
- "error": "spacetime sql failed:\nWARNING: This command is UNSTABLE and subject to breaking changes.\n\nError: no such table: `positions`. If the table exists, it may be marked private.\n\nCaused by:\n HTTP status client error (400 Bad Request) for url (http://127.0.0.1:38927/v1/database/c2000dfb254023618a83b1182de85ff2f9590dae5ce1c9301d7d8cc01c8bff6e/sql)\n",
- "phase": "sql"
- }
- },
- "ecs_next_pos_entity2": {
- "pass": false,
- "partial": 0.0,
- "notes": {
- "error": "spacetime sql failed:\nWARNING: This command is UNSTABLE and subject to breaking changes.\n\nError: no such table: `next_positions`. If the table exists, it may be marked private.\n\nCaused by:\n HTTP status client error (400 Bad Request) for url (http://127.0.0.1:38927/v1/database/c2000dfb254023618a83b1182de85ff2f9590dae5ce1c9301d7d8cc01c8bff6e/sql)\n",
- "phase": "sql"
- }
- }
- },
- "vendor": "openai",
- "started_at": "2026-01-27T19:51:47.647113172Z",
- "finished_at": "2026-01-27T19:52:42.328754582Z"
- },
- "t_021_multi_column_index": {
- "hash": "d1bf0b033db905c668d016082c762eb4b91edd1299f7b8d4bcc6def5398610f9",
- "task": "t_021_multi_column_index",
- "lang": "rust",
- "golden_published": true,
- "model_name": "GPT-5",
- "total_tests": 4,
- "passed_tests": 3,
- "llm_output": "use spacetimedb::{ReducerContext, Table};\n\n#[spacetimedb::table(name = log, index(name = by_user_day, btree(columns = [user_id, day])))]\npub struct Log {\n #[primary_key]\n id: i32,\n user_id: i32,\n day: i32,\n message: String,\n}\n\n#[spacetimedb::reducer]\npub fn seed(ctx: &ReducerContext) {\n ctx.db.log().insert(Log { id: 1, user_id: 7, day: 1, message: \"a\".into() });\n ctx.db.log().insert(Log { id: 2, user_id: 7, day: 2, message: \"b\".into() });\n ctx.db.log().insert(Log { id: 3, user_id: 9, day: 1, message: \"c\".into() });\n}",
- "category": "schema",
- "route_api_model": "gpt-5",
- "golden_db": "schema-t-021-multi-column-index-golden",
- "llm_db": "schema-t-021-multi-column-index-gpt-5-llm",
- "work_dir_golden": "target/llm-runs/schema/t_021_multi_column_index/rust/server/golden",
- "work_dir_llm": "target/llm-runs/schema/t_021_multi_column_index/rust/server/gpt-5/llm",
- "scorer_details": {
- "schema_parity": {
- "pass": false,
- "partial": 0.0,
- "notes": {
- "error": "describe failed: WARNING: This command is UNSTABLE and subject to breaking changes.\n\nError: failed to find database `schema-t-021-multi-column-index-golden`.\n",
- "phase": "describe_golden"
- }
- },
- "mcindex_seed_count": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "actual": 3,
- "expected": 3,
- "sql": "SELECT COUNT(*) AS n FROM log"
- }
- },
- "mcindex_lookup_u7_d1": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "actual": 1,
- "expected": 1,
- "sql": "SELECT COUNT(*) AS n FROM log WHERE user_id=7 AND day=1"
- }
- },
- "mcindex_lookup_u7_d2": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "actual": 1,
- "expected": 1,
- "sql": "SELECT COUNT(*) AS n FROM log WHERE user_id=7 AND day=2"
- }
- }
- },
- "vendor": "openai",
- "started_at": "2026-01-27T19:51:47.629929093Z",
- "finished_at": "2026-01-27T19:52:29.436282461Z"
- }
- }
- }
- ]
- }
- ],
- "golden_answers": {
- "basics/t_000_empty_reducers": {
- "answer": "use spacetimedb::{reducer, ReducerContext};\n\n#[reducer]\npub fn empty_reducer_no_args(ctx: &ReducerContext) -> Result<(), String> {\n Ok(())\n}\n\n#[reducer]\npub fn empty_reducer_with_int(ctx: &ReducerContext, count: i32) -> Result<(), String> {\n Ok(())\n}\n\n#[reducer]\npub fn empty_reducer_with_string(ctx: &ReducerContext, name: String) -> Result<(), String> {\n Ok(())\n}\n\n#[reducer]\npub fn empty_reducer_with_two_args(ctx: &ReducerContext, count: i32, name: String) -> Result<(), String> {\n Ok(())\n}\n\n#[reducer]\npub fn empty_reducer_with_three_args(\n ctx: &ReducerContext,\n active: bool,\n ratio: f32,\n label: String,\n) -> Result<(), String> {\n Ok(())\n}\n",
- "syntax": "rust"
- },
- "basics/t_001_basic_tables": {
- "answer": "use spacetimedb::table;\n\n#[table(name = users)]\npub struct Users {\n #[primary_key]\n pub id: i32,\n pub name: String,\n pub age: i32,\n pub active: bool,\n}\n\n#[table(name = products)]\npub struct Products {\n #[primary_key]\n pub id: i32,\n pub title: String,\n pub price: f32,\n pub in_stock: bool,\n}\n\n#[table(name = notes)]\npub struct Notes {\n #[primary_key]\n pub id: i32,\n pub body: String,\n pub rating: i64,\n pub pinned: bool,\n}\n",
- "syntax": "rust"
- },
- "basics/t_002_scheduled_table": {
- "answer": "use spacetimedb::{reducer, table, ReducerContext, ScheduleAt, Table};\nuse std::time::Duration;\n\n#[table(name = tick_timer, scheduled(tick))]\npub struct TickTimer {\n #[primary_key]\n #[auto_inc]\n scheduled_id: u64,\n scheduled_at: ScheduleAt,\n}\n\n#[reducer]\npub fn tick(_ctx: &ReducerContext, _row: TickTimer) -> Result<(), String> {\n Ok(())\n}\n\n#[reducer(init)]\npub fn init(ctx: &ReducerContext) -> Result<(), String> {\n ctx.db.tick_timer().insert(TickTimer {\n scheduled_id: 0,\n scheduled_at: ScheduleAt::Interval(Duration::from_millis(50).into()),\n });\n Ok(())\n}\n",
- "syntax": "rust"
- },
- "basics/t_003_struct_in_table": {
- "answer": "use spacetimedb::{table, SpacetimeType};\n\n#[derive(SpacetimeType, Clone, Debug)]\npub struct Position {\n pub x: i32,\n pub y: i32,\n}\n\n#[table(name = entities)]\npub struct Entity {\n #[primary_key]\n pub id: i32,\n pub pos: Position,\n}\n\n",
- "syntax": "rust"
- },
- "basics/t_004_insert": {
- "answer": "use spacetimedb::{reducer, table, ReducerContext, Table};\n\n#[table(name = users)]\npub struct Users {\n #[primary_key]\n pub id: i32,\n pub name: String,\n pub age: i32,\n pub active: bool,\n}\n\n#[reducer]\npub fn insert_user(ctx: &ReducerContext, id: i32, name: String, age: i32, active: bool) -> Result<(), String> {\n ctx.db.users().insert(Users { id, name, age, active });\n Ok(())\n}\n",
- "syntax": "rust"
- },
- "basics/t_005_update": {
- "answer": "use spacetimedb::{reducer, table, ReducerContext};\n\n#[table(name = users)]\npub struct User {\n #[primary_key]\n pub id: i32,\n pub name: String,\n pub age: i32,\n pub active: bool,\n}\n\n#[reducer]\npub fn update_user(ctx: &ReducerContext, id: i32, name: String, age: i32, active: bool) {\n ctx.db.users().id().update(User { id, name, age, active });\n}",
- "syntax": "rust"
- },
- "basics/t_006_delete": {
- "answer": "use spacetimedb::{reducer, table, ReducerContext};\n\n#[table(name = users)]\npub struct User {\n #[primary_key]\n pub id: i32,\n pub name: String,\n pub age: i32,\n pub active: bool,\n}\n\n#[reducer]\npub fn delete_user(ctx: &ReducerContext, id: i32) {\n ctx.db.users().id().delete(id);\n}\n",
- "syntax": "rust"
- },
- "basics/t_007_crud": {
- "answer": "use spacetimedb::{reducer, table, ReducerContext, Table};\n\n#[table(name = users)]\npub struct User {\n #[primary_key]\n pub id: i32,\n pub name: String,\n pub age: i32,\n pub active: bool,\n}\n\n#[reducer]\npub fn crud(ctx: &ReducerContext) {\n ctx.db.users().insert(User { id: 1, name: \"Alice\".into(), age: 30, active: true });\n ctx.db.users().insert(User { id: 2, name: \"Bob\".into(), age: 22, active: false });\n ctx.db.users().id().update(User { id: 1, name: \"Alice2\".into(), age: 31, active: false });\n ctx.db.users().id().delete(2);\n}\n",
- "syntax": "rust"
- },
- "basics/t_008_index_lookup": {
- "answer": "use spacetimedb::{reducer, table, ReducerContext, Table};\n\n#[table(name = users)]\npub struct User {\n #[primary_key]\n pub id: i32,\n pub name: String,\n pub age: i32,\n pub active: bool,\n}\n\n#[table(name = results)]\npub struct ResultRow {\n #[primary_key]\n pub id: i32,\n pub name: String,\n}\n\n#[reducer]\npub fn lookup_user_name(ctx: &ReducerContext, id: i32) {\n if let Some(u) = ctx.db.users().id().find(id) {\n ctx.db.results().insert(ResultRow { id: u.id, name: u.name });\n }\n}\n",
- "syntax": "rust"
- },
- "basics/t_009_init": {
- "answer": "use spacetimedb::{reducer, table, ReducerContext, Table};\n\n#[table(name = users)]\npub struct User {\n #[primary_key]\n pub id: i32,\n pub name: String,\n pub age: i32,\n pub active: bool,\n}\n\n#[reducer(init)]\npub fn init(ctx: &ReducerContext) {\n ctx.db.users().insert(User { id: 1, name: \"Alice\".into(), age: 30, active: true });\n ctx.db.users().insert(User { id: 2, name: \"Bob\".into(), age: 22, active: false });\n}\n",
- "syntax": "rust"
- },
- "basics/t_010_connect": {
- "answer": "use spacetimedb::{reducer, table, ReducerContext, Table};\n\n#[table(name = events)]\npub struct Event {\n #[primary_key]\n #[auto_inc]\n pub id: u64,\n pub kind: String,\n}\n\n#[reducer(client_connected)]\npub fn client_connected(ctx: &ReducerContext) {\n ctx.db.events().insert(Event { id: 0, kind: \"connected\".into() });\n}\n\n#[reducer(client_disconnected)]\npub fn client_disconnected(ctx: &ReducerContext) {\n ctx.db.events().insert(Event { id: 0, kind: \"disconnected\".into() });\n}\n",
- "syntax": "rust"
- },
- "basics/t_011_helper_function": {
- "answer": "use spacetimedb::{reducer, table, ReducerContext, Table};\n\n#[table(name = results)]\npub struct ResultRow {\n #[primary_key]\n pub id: i32,\n pub sum: i32,\n}\n\nfn add(a: i32, b: i32) -> i32 { a + b }\n\n#[reducer]\npub fn compute_sum(ctx: &ReducerContext, id: i32, a: i32, b: i32) {\n ctx.db.results().insert(ResultRow { id, sum: add(a, b) });\n}\n",
- "syntax": "rust"
- },
- "schema/t_012_spacetime_product_type": {
- "answer": "use spacetimedb::{reducer, table, ReducerContext, SpacetimeType, Table};\n\n#[derive(SpacetimeType, Clone, Debug)]\npub struct Score {\n pub left: i32,\n pub right: i32,\n}\n\n#[table(name = results)]\npub struct ResultRow {\n #[primary_key]\n pub id: i32,\n pub value: Score,\n}\n\n#[reducer]\npub fn set_score(ctx: &ReducerContext, id: i32, left: i32, right: i32) {\n ctx.db.results().insert(ResultRow { id, value: Score { left, right } });\n}\n",
- "syntax": "rust"
- },
- "schema/t_013_spacetime_sum_type": {
- "answer": "use spacetimedb::{reducer, table, ReducerContext, SpacetimeType, Table};\n\n#[derive(SpacetimeType, Clone, Debug)]\npub struct Rect {\n pub width: i32,\n pub height: i32,\n}\n\n#[derive(SpacetimeType, Clone, Debug)]\npub enum Shape {\n Circle(i32),\n Rectangle(Rect),\n}\n\n#[table(name = results)]\npub struct ResultRow {\n #[primary_key]\n pub id: i32,\n pub value: Shape,\n}\n\n#[reducer]\npub fn set_circle(ctx: &ReducerContext, id: i32, radius: i32) {\n ctx.db.results().insert(ResultRow { id, value: Shape::Circle(radius) });\n}\n",
- "syntax": "rust"
- },
- "schema/t_014_elementary_columns": {
- "answer": "use spacetimedb::{reducer, table, ReducerContext, Table};\n\n#[table(name = primitives)]\npub struct Primitive {\n #[primary_key]\n pub id: i32,\n pub count: i32,\n pub total: i64,\n pub price: f32,\n pub ratio: f64,\n pub active: bool,\n pub name: String,\n}\n\n#[reducer]\npub fn seed(ctx: &ReducerContext) {\n ctx.db.primitives().insert(Primitive {\n id: 1,\n count: 2,\n total: 3_000_000_000,\n price: 1.5,\n ratio: 2.25,\n active: true,\n name: \"Alice\".into(),\n });\n}\n",
- "syntax": "rust"
- },
- "schema/t_015_product_type_columns": {
- "answer": "use spacetimedb::{reducer, table, ReducerContext, SpacetimeType, Table};\n\n#[derive(SpacetimeType, Clone, Debug)]\npub struct Address {\n pub street: String,\n pub zip: i32,\n}\n\n#[derive(SpacetimeType, Clone, Debug)]\npub struct Position {\n pub x: i32,\n pub y: i32,\n}\n\n#[table(name = profiles)]\npub struct Profile {\n #[primary_key]\n pub id: i32,\n pub home: Address,\n pub work: Address,\n pub pos: Position,\n}\n\n#[reducer]\npub fn seed(ctx: &ReducerContext) {\n ctx.db.profiles().insert(Profile {\n id: 1,\n home: Address { street: \"1 Main\".into(), zip: 11111 },\n work: Address { street: \"2 Broad\".into(), zip: 22222 },\n pos: Position { x: 7, y: 9 },\n });\n}\n",
- "syntax": "rust"
- },
- "schema/t_016_sum_type_columns": {
- "answer": "use spacetimedb::{reducer, table, ReducerContext, SpacetimeType, Table};\n\n#[derive(SpacetimeType, Clone, Debug)]\npub struct Rect {\n pub width: i32,\n pub height: i32,\n}\n\n#[derive(SpacetimeType, Clone, Debug)]\npub enum Shape {\n Circle(i32),\n Rectangle(Rect),\n}\n\n#[table(name = drawings)]\npub struct Drawing {\n #[primary_key]\n pub id: i32,\n pub a: Shape,\n pub b: Shape,\n}\n\n#[reducer]\npub fn seed(ctx: &ReducerContext) {\n ctx.db.drawings().insert(Drawing {\n id: 1,\n a: Shape::Circle(10),\n b: Shape::Rectangle(Rect { width: 4, height: 6 }),\n });\n}\n",
- "syntax": "rust"
- },
- "schema/t_017_scheduled_columns": {
- "answer": "use spacetimedb::{reducer, table, ReducerContext, ScheduleAt, Table};\nuse std::time::Duration;\n\n#[table(name = tick_timer, scheduled(tick))]\npub struct TickTimer {\n #[primary_key]\n #[auto_inc]\n pub scheduled_id: u64,\n pub scheduled_at: ScheduleAt,\n}\n\n#[reducer]\npub fn tick(_ctx: &ReducerContext, _schedule: TickTimer) {\n}\n\n#[reducer(init)]\npub fn init(ctx: &ReducerContext) {\n let every_50ms: ScheduleAt = Duration::from_millis(50).into();\n ctx.db.tick_timer().insert(TickTimer {\n scheduled_id: 0,\n scheduled_at: every_50ms,\n });\n}\n",
- "syntax": "rust"
- },
- "schema/t_018_constraints": {
- "answer": "use spacetimedb::{reducer, table, ReducerContext, Table};\n\n#[table(\n name = accounts,\n index(name = by_name, btree(columns = [name]))\n)]\npub struct Account {\n #[primary_key]\n pub id: i32,\n #[unique]\n pub email: String,\n pub name: String,\n}\n\n#[reducer]\npub fn seed(ctx: &ReducerContext) {\n ctx.db.accounts().insert(Account { id: 1, email: \"a@example.com\".into(), name: \"Alice\".into() });\n ctx.db.accounts().insert(Account { id: 2, email: \"b@example.com\".into(), name: \"Bob\".into() });\n}\n",
- "syntax": "rust"
- },
- "schema/t_019_many_to_many": {
- "answer": "use spacetimedb::{reducer, table, ReducerContext, Table};\n\n#[table(name = users)]\npub struct User {\n #[primary_key]\n pub user_id: i32,\n pub name: String,\n}\n\n#[table(name = groups)]\npub struct Group {\n #[primary_key]\n pub group_id: i32,\n pub title: String,\n}\n\n#[table(\n name = memberships,\n index(name = by_user, btree(columns = [user_id])),\n index(name = by_group, btree(columns = [group_id]))\n)]\npub struct Membership {\n #[primary_key]\n pub id: i32,\n pub user_id: i32,\n pub group_id: i32,\n}\n\n#[reducer]\npub fn seed(ctx: &ReducerContext) {\n ctx.db.users().insert(User { user_id: 1, name: \"Alice\".into() });\n ctx.db.users().insert(User { user_id: 2, name: \"Bob\".into() });\n\n ctx.db.groups().insert(Group { group_id: 10, title: \"Admin\".into() });\n ctx.db.groups().insert(Group { group_id: 20, title: \"Dev\".into() });\n\n ctx.db.memberships().insert(Membership { id: 1, user_id: 1, group_id: 10 });\n ctx.db.memberships().insert(Membership { id: 2, user_id: 1, group_id: 20 });\n ctx.db.memberships().insert(Membership { id: 3, user_id: 2, group_id: 20 });\n}\n",
- "syntax": "rust"
- },
- "schema/t_020_ecs": {
- "answer": "use spacetimedb::{reducer, table, ReducerContext, Table};\n\n#[table(name = entities)]\npub struct Entity {\n #[primary_key]\n pub id: i32,\n}\n\n#[table(name = positions)]\npub struct Position {\n #[primary_key]\n pub entity_id: i32,\n pub x: i32,\n pub y: i32,\n}\n\n#[table(name = velocities)]\npub struct Velocity {\n #[primary_key]\n pub entity_id: i32,\n pub vx: i32,\n pub vy: i32,\n}\n\n#[table(name = next_positions)]\npub struct NextPosition {\n #[primary_key]\n pub entity_id: i32,\n pub x: i32,\n pub y: i32,\n}\n\n#[reducer]\npub fn seed(ctx: &ReducerContext) {\n ctx.db.entities().insert(Entity { id: 1 });\n ctx.db.entities().insert(Entity { id: 2 });\n\n ctx.db.positions().insert(Position {\n entity_id: 1,\n x: 1,\n y: 0,\n });\n ctx.db.positions().insert(Position {\n entity_id: 2,\n x: 10,\n y: 0,\n });\n\n ctx.db.velocities().insert(Velocity {\n entity_id: 1,\n vx: 1,\n vy: 0,\n });\n ctx.db.velocities().insert(Velocity {\n entity_id: 2,\n vx: -2,\n vy: 3,\n });\n}\n\n#[spacetimedb::reducer]\npub fn step(ctx: &ReducerContext) {\n for p in ctx.db.positions().iter() {\n if let Some(v) = ctx.db.velocities().entity_id().find(p.entity_id) {\n let np = NextPosition {\n entity_id: p.entity_id,\n x: p.x + v.vx,\n y: p.y + v.vy,\n };\n\n if ctx.db.next_positions().entity_id().find(p.entity_id).is_some() {\n ctx.db.next_positions().entity_id().update(np);\n } else {\n ctx.db.next_positions().insert(np);\n }\n }\n }\n}\n",
- "syntax": "rust"
- },
- "schema/t_021_multi_column_index": {
- "answer": "use spacetimedb::{reducer, table, ReducerContext, Table};\n\n#[table(\n name = logs,\n index(name = by_user_day, btree(columns = [user_id, day]))\n)]\npub struct Log {\n #[primary_key]\n pub id: i32,\n pub user_id: i32,\n pub day: i32,\n pub message: String,\n}\n\n#[reducer]\npub fn seed(ctx: &ReducerContext) {\n ctx.db.logs().insert(Log { id: 1, user_id: 7, day: 1, message: \"a\".into() });\n ctx.db.logs().insert(Log { id: 2, user_id: 7, day: 2, message: \"b\".into() });\n ctx.db.logs().insert(Log { id: 3, user_id: 9, day: 1, message: \"c\".into() });\n}\n",
- "syntax": "rust"
- },
- "t_000_empty_reducers": {
- "answer": "use spacetimedb::{reducer, ReducerContext};\n\n#[reducer]\npub fn empty_reducer_no_args(ctx: &ReducerContext) -> Result<(), String> {\n Ok(())\n}\n\n#[reducer]\npub fn empty_reducer_with_int(ctx: &ReducerContext, count: i32) -> Result<(), String> {\n Ok(())\n}\n\n#[reducer]\npub fn empty_reducer_with_string(ctx: &ReducerContext, name: String) -> Result<(), String> {\n Ok(())\n}\n\n#[reducer]\npub fn empty_reducer_with_two_args(ctx: &ReducerContext, count: i32, name: String) -> Result<(), String> {\n Ok(())\n}\n\n#[reducer]\npub fn empty_reducer_with_three_args(\n ctx: &ReducerContext,\n active: bool,\n ratio: f32,\n label: String,\n) -> Result<(), String> {\n Ok(())\n}\n",
- "syntax": "rust"
- },
- "t_001_basic_tables": {
- "answer": "use spacetimedb::table;\n\n#[table(name = user)]\npub struct User {\n #[primary_key]\n pub id: i32,\n pub name: String,\n pub age: i32,\n pub active: bool,\n}\n\n#[table(name = product)]\npub struct Product {\n #[primary_key]\n pub id: i32,\n pub title: String,\n pub price: f32,\n pub in_stock: bool,\n}\n\n#[table(name = note)]\npub struct Note {\n #[primary_key]\n pub id: i32,\n pub body: String,\n pub rating: i64,\n pub pinned: bool,\n}\n",
- "syntax": "rust"
- },
- "t_002_scheduled_table": {
- "answer": "use spacetimedb::{reducer, table, ReducerContext, ScheduleAt, Table};\nuse std::time::Duration;\n\n#[table(name = tick_timer, scheduled(tick))]\npub struct TickTimer {\n #[primary_key]\n #[auto_inc]\n scheduled_id: u64,\n scheduled_at: ScheduleAt,\n}\n\n#[reducer]\npub fn tick(_ctx: &ReducerContext, _row: TickTimer) -> Result<(), String> {\n Ok(())\n}\n\n#[reducer(init)]\npub fn init(ctx: &ReducerContext) -> Result<(), String> {\n ctx.db.tick_timer().insert(TickTimer {\n scheduled_id: 0,\n scheduled_at: ScheduleAt::Interval(Duration::from_millis(50).into()),\n });\n Ok(())\n}\n",
- "syntax": "rust"
- },
- "t_003_struct_in_table": {
- "answer": "use spacetimedb::{table, SpacetimeType};\n\n#[derive(SpacetimeType, Clone, Debug)]\npub struct Position {\n pub x: i32,\n pub y: i32,\n}\n\n#[table(name = entity)]\npub struct Entity {\n #[primary_key]\n pub id: i32,\n pub pos: Position,\n}\n\n",
- "syntax": "rust"
- },
- "t_004_insert": {
- "answer": "use spacetimedb::{reducer, table, ReducerContext, Table};\n\n#[table(name = user)]\npub struct User {\n #[primary_key]\n pub id: i32,\n pub name: String,\n pub age: i32,\n pub active: bool,\n}\n\n#[reducer]\npub fn insert_user(ctx: &ReducerContext, id: i32, name: String, age: i32, active: bool) -> Result<(), String> {\n ctx.db.user().insert(User { id, name, age, active });\n Ok(())\n}\n",
- "syntax": "rust"
- },
- "t_005_update": {
- "answer": "use spacetimedb::{reducer, table, ReducerContext};\n\n#[table(name = user)]\npub struct User {\n #[primary_key]\n pub id: i32,\n pub name: String,\n pub age: i32,\n pub active: bool,\n}\n\n#[reducer]\npub fn update_user(ctx: &ReducerContext, id: i32, name: String, age: i32, active: bool) {\n ctx.db.user().id().update(User { id, name, age, active });\n}",
- "syntax": "rust"
- },
- "t_006_delete": {
- "answer": "use spacetimedb::{reducer, table, ReducerContext};\n\n#[table(name = user)]\npub struct User {\n #[primary_key]\n pub id: i32,\n pub name: String,\n pub age: i32,\n pub active: bool,\n}\n\n#[reducer]\npub fn delete_user(ctx: &ReducerContext, id: i32) {\n ctx.db.user().id().delete(id);\n}\n",
- "syntax": "rust"
- },
- "t_007_crud": {
- "answer": "use spacetimedb::{reducer, table, ReducerContext, Table};\n\n#[table(name = user)]\npub struct User {\n #[primary_key]\n pub id: i32,\n pub name: String,\n pub age: i32,\n pub active: bool,\n}\n\n#[reducer]\npub fn crud(ctx: &ReducerContext) {\n ctx.db.user().insert(User { id: 1, name: \"Alice\".into(), age: 30, active: true });\n ctx.db.user().insert(User { id: 2, name: \"Bob\".into(), age: 22, active: false });\n ctx.db.user().id().update(User { id: 1, name: \"Alice2\".into(), age: 31, active: false });\n ctx.db.user().id().delete(2);\n}\n",
- "syntax": "rust"
- },
- "t_008_index_lookup": {
- "answer": "use spacetimedb::{reducer, table, ReducerContext, Table};\n\n#[table(name = user)]\npub struct User {\n #[primary_key]\n pub id: i32,\n pub name: String,\n pub age: i32,\n pub active: bool,\n}\n\n#[table(name = result)]\npub struct ResultRow {\n #[primary_key]\n pub id: i32,\n pub name: String,\n}\n\n#[reducer]\npub fn lookup_user_name(ctx: &ReducerContext, id: i32) {\n if let Some(u) = ctx.db.user().id().find(id) {\n ctx.db.result().insert(ResultRow { id: u.id, name: u.name });\n }\n}\n",
- "syntax": "rust"
- },
- "t_009_init": {
- "answer": "use spacetimedb::{reducer, table, ReducerContext, Table};\n\n#[table(name = user)]\npub struct User {\n #[primary_key]\n pub id: i32,\n pub name: String,\n pub age: i32,\n pub active: bool,\n}\n\n#[reducer(init)]\npub fn init(ctx: &ReducerContext) {\n ctx.db.user().insert(User { id: 1, name: \"Alice\".into(), age: 30, active: true });\n ctx.db.user().insert(User { id: 2, name: \"Bob\".into(), age: 22, active: false });\n}\n",
- "syntax": "rust"
- },
- "t_010_connect": {
- "answer": "use spacetimedb::{reducer, table, ReducerContext, Table};\n\n#[table(name = event)]\npub struct Event {\n #[primary_key]\n #[auto_inc]\n pub id: u64,\n pub kind: String,\n}\n\n#[reducer(client_connected)]\npub fn client_connected(ctx: &ReducerContext) {\n ctx.db.event().insert(Event { id: 0, kind: \"connected\".into() });\n}\n\n#[reducer(client_disconnected)]\npub fn client_disconnected(ctx: &ReducerContext) {\n ctx.db.event().insert(Event { id: 0, kind: \"disconnected\".into() });\n}\n",
- "syntax": "rust"
- },
- "t_011_helper_function": {
- "answer": "use spacetimedb::{reducer, table, ReducerContext, Table};\n\n#[table(name = result)]\npub struct ResultRow {\n #[primary_key]\n pub id: i32,\n pub sum: i32,\n}\n\nfn add(a: i32, b: i32) -> i32 { a + b }\n\n#[reducer]\npub fn compute_sum(ctx: &ReducerContext, id: i32, a: i32, b: i32) {\n ctx.db.result().insert(ResultRow { id, sum: add(a, b) });\n}\n",
- "syntax": "rust"
- },
- "t_012_spacetime_product_type": {
- "answer": "use spacetimedb::{reducer, table, ReducerContext, SpacetimeType, Table};\n\n#[derive(SpacetimeType, Clone, Debug)]\npub struct Score {\n pub left: i32,\n pub right: i32,\n}\n\n#[table(name = result)]\npub struct ResultRow {\n #[primary_key]\n pub id: i32,\n pub value: Score,\n}\n\n#[reducer]\npub fn set_score(ctx: &ReducerContext, id: i32, left: i32, right: i32) {\n ctx.db.result().insert(ResultRow { id, value: Score { left, right } });\n}\n",
- "syntax": "rust"
- },
- "t_013_spacetime_sum_type": {
- "answer": "use spacetimedb::{reducer, table, ReducerContext, SpacetimeType, Table};\n\n#[derive(SpacetimeType, Clone, Debug)]\npub struct Rect {\n pub width: i32,\n pub height: i32,\n}\n\n#[derive(SpacetimeType, Clone, Debug)]\npub enum Shape {\n Circle(i32),\n Rectangle(Rect),\n}\n\n#[table(name = result)]\npub struct ResultRow {\n #[primary_key]\n pub id: i32,\n pub value: Shape,\n}\n\n#[reducer]\npub fn set_circle(ctx: &ReducerContext, id: i32, radius: i32) {\n ctx.db.result().insert(ResultRow { id, value: Shape::Circle(radius) });\n}\n",
- "syntax": "rust"
- },
- "t_014_elementary_columns": {
- "answer": "use spacetimedb::{reducer, table, ReducerContext, Table};\n\n#[table(name = primitive)]\npub struct Primitive {\n #[primary_key]\n pub id: i32,\n pub count: i32,\n pub total: i64,\n pub price: f32,\n pub ratio: f64,\n pub active: bool,\n pub name: String,\n}\n\n#[reducer]\npub fn seed(ctx: &ReducerContext) {\n ctx.db.primitive().insert(Primitive {\n id: 1,\n count: 2,\n total: 3_000_000_000,\n price: 1.5,\n ratio: 2.25,\n active: true,\n name: \"Alice\".into(),\n });\n}\n",
- "syntax": "rust"
- },
- "t_015_product_type_columns": {
- "answer": "use spacetimedb::{reducer, table, ReducerContext, SpacetimeType, Table};\n\n#[derive(SpacetimeType, Clone, Debug)]\npub struct Address {\n pub street: String,\n pub zip: i32,\n}\n\n#[derive(SpacetimeType, Clone, Debug)]\npub struct Position {\n pub x: i32,\n pub y: i32,\n}\n\n#[table(name = profile)]\npub struct Profile {\n #[primary_key]\n pub id: i32,\n pub home: Address,\n pub work: Address,\n pub pos: Position,\n}\n\n#[reducer]\npub fn seed(ctx: &ReducerContext) {\n ctx.db.profile().insert(Profile {\n id: 1,\n home: Address { street: \"1 Main\".into(), zip: 11111 },\n work: Address { street: \"2 Broad\".into(), zip: 22222 },\n pos: Position { x: 7, y: 9 },\n });\n}\n",
- "syntax": "rust"
- },
- "t_016_sum_type_columns": {
- "answer": "use spacetimedb::{reducer, table, ReducerContext, SpacetimeType, Table};\n\n#[derive(SpacetimeType, Clone, Debug)]\npub struct Rect {\n pub width: i32,\n pub height: i32,\n}\n\n#[derive(SpacetimeType, Clone, Debug)]\npub enum Shape {\n Circle(i32),\n Rectangle(Rect),\n}\n\n#[table(name = drawing)]\npub struct Drawing {\n #[primary_key]\n pub id: i32,\n pub a: Shape,\n pub b: Shape,\n}\n\n#[reducer]\npub fn seed(ctx: &ReducerContext) {\n ctx.db.drawing().insert(Drawing {\n id: 1,\n a: Shape::Circle(10),\n b: Shape::Rectangle(Rect { width: 4, height: 6 }),\n });\n}\n",
- "syntax": "rust"
- },
- "t_017_scheduled_columns": {
- "answer": "use spacetimedb::{reducer, table, ReducerContext, ScheduleAt, Table};\nuse std::time::Duration;\n\n#[table(name = tick_timer, scheduled(tick))]\npub struct TickTimer {\n #[primary_key]\n #[auto_inc]\n pub scheduled_id: u64,\n pub scheduled_at: ScheduleAt,\n}\n\n#[reducer]\npub fn tick(_ctx: &ReducerContext, _schedule: TickTimer) {\n}\n\n#[reducer(init)]\npub fn init(ctx: &ReducerContext) {\n let every_50ms: ScheduleAt = Duration::from_millis(50).into();\n ctx.db.tick_timer().insert(TickTimer {\n scheduled_id: 0,\n scheduled_at: every_50ms,\n });\n}\n",
- "syntax": "rust"
- },
- "t_018_constraints": {
- "answer": "use spacetimedb::{reducer, table, ReducerContext, Table};\n\n#[table(\n name = account,\n index(name = by_name, btree(columns = [name]))\n)]\npub struct Account {\n #[primary_key]\n pub id: i32,\n #[unique]\n pub email: String,\n pub name: String,\n}\n\n#[reducer]\npub fn seed(ctx: &ReducerContext) {\n ctx.db.account().insert(Account { id: 1, email: \"a@example.com\".into(), name: \"Alice\".into() });\n ctx.db.account().insert(Account { id: 2, email: \"b@example.com\".into(), name: \"Bob\".into() });\n}\n",
- "syntax": "rust"
- },
- "t_019_many_to_many": {
- "answer": "use spacetimedb::{reducer, table, ReducerContext, Table};\n\n#[table(name = user)]\npub struct User {\n #[primary_key]\n pub user_id: i32,\n pub name: String,\n}\n\n#[table(name = group)]\npub struct Group {\n #[primary_key]\n pub group_id: i32,\n pub title: String,\n}\n\n#[table(\n name = membership,\n index(name = by_user, btree(columns = [user_id])),\n index(name = by_group, btree(columns = [group_id]))\n)]\npub struct Membership {\n #[primary_key]\n pub id: i32,\n pub user_id: i32,\n pub group_id: i32,\n}\n\n#[reducer]\npub fn seed(ctx: &ReducerContext) {\n ctx.db.user().insert(User { user_id: 1, name: \"Alice\".into() });\n ctx.db.user().insert(User { user_id: 2, name: \"Bob\".into() });\n\n ctx.db.group().insert(Group { group_id: 10, title: \"Admin\".into() });\n ctx.db.group().insert(Group { group_id: 20, title: \"Dev\".into() });\n\n ctx.db.membership().insert(Membership { id: 1, user_id: 1, group_id: 10 });\n ctx.db.membership().insert(Membership { id: 2, user_id: 1, group_id: 20 });\n ctx.db.membership().insert(Membership { id: 3, user_id: 2, group_id: 20 });\n}\n",
- "syntax": "rust"
- },
- "t_020_ecs": {
- "answer": "use spacetimedb::{reducer, table, ReducerContext, Table};\n\n#[table(name = entity)]\npub struct Entity {\n #[primary_key]\n pub id: i32,\n}\n\n#[table(name = position)]\npub struct Position {\n #[primary_key]\n pub entity_id: i32,\n pub x: i32,\n pub y: i32,\n}\n\n#[table(name = velocity)]\npub struct Velocity {\n #[primary_key]\n pub entity_id: i32,\n pub vx: i32,\n pub vy: i32,\n}\n\n#[table(name = next_position)]\npub struct NextPosition {\n #[primary_key]\n pub entity_id: i32,\n pub x: i32,\n pub y: i32,\n}\n\n#[reducer]\npub fn seed(ctx: &ReducerContext) {\n ctx.db.entity().insert(Entity { id: 1 });\n ctx.db.entity().insert(Entity { id: 2 });\n\n ctx.db.position().insert(Position {\n entity_id: 1,\n x: 1,\n y: 0,\n });\n ctx.db.position().insert(Position {\n entity_id: 2,\n x: 10,\n y: 0,\n });\n\n ctx.db.velocity().insert(Velocity {\n entity_id: 1,\n vx: 1,\n vy: 0,\n });\n ctx.db.velocity().insert(Velocity {\n entity_id: 2,\n vx: -2,\n vy: 3,\n });\n}\n\n#[spacetimedb::reducer]\npub fn step(ctx: &ReducerContext) {\n for p in ctx.db.position().iter() {\n if let Some(v) = ctx.db.velocity().entity_id().find(p.entity_id) {\n let np = NextPosition {\n entity_id: p.entity_id,\n x: p.x + v.vx,\n y: p.y + v.vy,\n };\n\n if ctx.db.next_position().entity_id().find(p.entity_id).is_some() {\n ctx.db.next_position().entity_id().update(np);\n } else {\n ctx.db.next_position().insert(np);\n }\n }\n }\n}\n",
- "syntax": "rust"
- },
- "t_021_multi_column_index": {
- "answer": "use spacetimedb::{reducer, table, ReducerContext, Table};\n\n#[table(\n name = log,\n index(name = by_user_day, btree(columns = [user_id, day]))\n)]\npub struct Log {\n #[primary_key]\n pub id: i32,\n pub user_id: i32,\n pub day: i32,\n pub message: String,\n}\n\n#[reducer]\npub fn seed(ctx: &ReducerContext) {\n ctx.db.log().insert(Log { id: 1, user_id: 7, day: 1, message: \"a\".into() });\n ctx.db.log().insert(Log { id: 2, user_id: 7, day: 2, message: \"b\".into() });\n ctx.db.log().insert(Log { id: 3, user_id: 9, day: 1, message: \"c\".into() });\n}\n",
- "syntax": "rust"
- }
- }
- },
- {
- "lang": "csharp",
- "modes": [
- {
- "mode": "docs",
- "hash": "e3621eaacfd5238fb514ff8c09c277ccd66170773959e5b391507110bf3ac17b",
- "models": [
- {
- "name": "GPT-5",
- "route_api_model": "gpt-5",
- "tasks": {
- "t_000_empty_reducers": {
- "hash": "e3621eaacfd5238fb514ff8c09c277ccd66170773959e5b391507110bf3ac17b",
- "task": "t_000_empty_reducers",
- "lang": "csharp",
- "golden_published": true,
- "model_name": "GPT-5",
- "total_tests": 1,
- "passed_tests": 1,
- "llm_output": "using SpacetimeDB;\n\npublic static partial class Module\n{\n [SpacetimeDB.Reducer]\n public static void EmptyReducer_NoArgs(ReducerContext ctx)\n {\n }\n\n [SpacetimeDB.Reducer]\n public static void EmptyReducer_WithInt(ReducerContext ctx, int count)\n {\n }\n\n [SpacetimeDB.Reducer]\n public static void EmptyReducer_WithString(ReducerContext ctx, string name)\n {\n }\n\n [SpacetimeDB.Reducer]\n public static void EmptyReducer_WithTwoArgs(ReducerContext ctx, int count, string name)\n {\n }\n\n [SpacetimeDB.Reducer]\n public static void EmptyReducer_WithThreeArgs(ReducerContext ctx, bool active, float ratio, string label)\n {\n }\n}",
- "category": "basics",
- "route_api_model": "gpt-5",
- "golden_db": "basics-t-000-empty-reducers-golden",
- "llm_db": "basics-t-000-empty-reducers-gpt-5-llm",
- "work_dir_golden": "target/llm-runs/basics/t_000_empty_reducers/csharp/server/golden",
- "work_dir_llm": "target/llm-runs/basics/t_000_empty_reducers/csharp/server/gpt-5/llm",
- "scorer_details": {
- "schema_parity": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "golden_db": "basics-t-000-empty-reducers-golden",
- "llm_db": "basics-t-000-empty-reducers-gpt-5-llm",
- "reducers_diff": null,
- "reducers_equal": true,
- "server": "http://127.0.0.1:34379",
- "tables_diff": null,
- "tables_equal": true
- }
- }
- },
- "vendor": "openai",
- "started_at": "2026-01-27T19:59:45.341740044Z",
- "finished_at": "2026-01-27T20:00:17.110354447Z"
- },
- "t_001_basic_tables": {
- "hash": "e3621eaacfd5238fb514ff8c09c277ccd66170773959e5b391507110bf3ac17b",
- "task": "t_001_basic_tables",
- "lang": "csharp",
- "golden_published": true,
- "model_name": "GPT-5",
- "total_tests": 1,
- "passed_tests": 1,
- "llm_output": "using SpacetimeDB;\n\npublic static partial class Module\n{\n [SpacetimeDB.Table(Accessor = \"User\")]\n public partial struct User\n {\n [SpacetimeDB.PrimaryKey]\n public int Id;\n public string Name;\n public int Age;\n public bool Active;\n }\n\n [SpacetimeDB.Table(Accessor = \"Product\")]\n public partial struct Product\n {\n [SpacetimeDB.PrimaryKey]\n public int Id;\n public string Title;\n public float Price;\n public bool InStock;\n }\n\n [SpacetimeDB.Table(Accessor = \"Note\")]\n public partial struct Note\n {\n [SpacetimeDB.PrimaryKey]\n public int Id;\n public string Body;\n public long Rating;\n public bool Pinned;\n }\n}",
- "category": "basics",
- "route_api_model": "gpt-5",
- "golden_db": "basics-t-001-basic-tables-golden",
- "llm_db": "basics-t-001-basic-tables-gpt-5-llm",
- "work_dir_golden": "target/llm-runs/basics/t_001_basic_tables/csharp/server/golden",
- "work_dir_llm": "target/llm-runs/basics/t_001_basic_tables/csharp/server/gpt-5/llm",
- "scorer_details": {
- "schema_parity": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "golden_db": "basics-t-001-basic-tables-golden",
- "llm_db": "basics-t-001-basic-tables-gpt-5-llm",
- "reducers_diff": null,
- "reducers_equal": true,
- "server": "http://127.0.0.1:34379",
- "tables_diff": null,
- "tables_equal": true
- }
- }
- },
- "vendor": "openai",
- "started_at": "2026-01-27T20:00:10.594319009Z",
- "finished_at": "2026-01-27T20:00:39.454473930Z"
- },
- "t_002_scheduled_table": {
- "hash": "e3621eaacfd5238fb514ff8c09c277ccd66170773959e5b391507110bf3ac17b",
- "task": "t_002_scheduled_table",
- "lang": "csharp",
- "golden_published": true,
- "model_name": "GPT-5",
- "total_tests": 1,
- "passed_tests": 1,
- "llm_output": "using System;\nusing SpacetimeDB;\n\npublic static partial class Module\n{\n [SpacetimeDB.Table(Accessor = \"TickTimer\", Scheduled = nameof(Tick), ScheduledAt = nameof(ScheduledAt))]\n public partial struct TickTimer\n {\n [SpacetimeDB.PrimaryKey]\n [SpacetimeDB.AutoInc]\n public ulong ScheduledId;\n public ScheduleAt ScheduledAt;\n }\n\n [SpacetimeDB.Reducer(ReducerKind.Init)]\n public static void Init(ReducerContext ctx)\n {\n foreach (var row in ctx.Db.TickTimer.Iter())\n {\n ctx.Db.TickTimer.ScheduledId.Delete(row.ScheduledId);\n }\n\n ctx.Db.TickTimer.Insert(new TickTimer\n {\n ScheduledId = 0,\n ScheduledAt = new ScheduleAt.Interval(TimeSpan.FromMilliseconds(50))\n });\n }\n\n [SpacetimeDB.Reducer]\n public static void Tick(ReducerContext ctx, TickTimer _timer)\n {\n // Tick scheduled reducer. Intentionally left blank.\n }\n}",
- "category": "basics",
- "route_api_model": "gpt-5",
- "golden_db": "basics-t-002-scheduled-table-golden",
- "llm_db": "basics-t-002-scheduled-table-gpt-5-llm",
- "work_dir_golden": "target/llm-runs/basics/t_002_scheduled_table/csharp/server/golden",
- "work_dir_llm": "target/llm-runs/basics/t_002_scheduled_table/csharp/server/gpt-5/llm",
- "scorer_details": {
- "schema_parity": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "golden_db": "basics-t-002-scheduled-table-golden",
- "llm_db": "basics-t-002-scheduled-table-gpt-5-llm",
- "reducers_diff": null,
- "reducers_equal": true,
- "server": "http://127.0.0.1:34379",
- "tables_diff": null,
- "tables_equal": true
- }
- }
- },
- "vendor": "openai",
- "started_at": "2026-01-27T20:00:39.454500245Z",
- "finished_at": "2026-01-27T20:01:19.695962602Z"
- },
- "t_003_struct_in_table": {
- "hash": "e3621eaacfd5238fb514ff8c09c277ccd66170773959e5b391507110bf3ac17b",
- "task": "t_003_struct_in_table",
- "lang": "csharp",
- "golden_published": true,
- "model_name": "GPT-5",
- "total_tests": 1,
- "passed_tests": 1,
- "llm_output": "using SpacetimeDB;\n\npublic static partial class Module\n{\n [SpacetimeDB.Type]\n public partial struct Position\n {\n public int X;\n public int Y;\n }\n\n [SpacetimeDB.Table(Accessor = \"Entity\")]\n public partial struct Entity\n {\n [SpacetimeDB.PrimaryKey]\n public int Id;\n public Position Pos;\n }\n}",
- "category": "basics",
- "route_api_model": "gpt-5",
- "golden_db": "basics-t-003-struct-in-table-golden",
- "llm_db": "basics-t-003-struct-in-table-gpt-5-llm",
- "work_dir_golden": "target/llm-runs/basics/t_003_struct_in_table/csharp/server/golden",
- "work_dir_llm": "target/llm-runs/basics/t_003_struct_in_table/csharp/server/gpt-5/llm",
- "scorer_details": {
- "schema_parity": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "golden_db": "basics-t-003-struct-in-table-golden",
- "llm_db": "basics-t-003-struct-in-table-gpt-5-llm",
- "reducers_diff": null,
- "reducers_equal": true,
- "server": "http://127.0.0.1:34379",
- "tables_diff": null,
- "tables_equal": true
- }
- }
- },
- "vendor": "openai",
- "started_at": "2026-01-27T20:00:06.267861248Z",
- "finished_at": "2026-01-27T20:00:37.823969244Z"
- },
- "t_004_insert": {
- "hash": "e3621eaacfd5238fb514ff8c09c277ccd66170773959e5b391507110bf3ac17b",
- "task": "t_004_insert",
- "lang": "csharp",
- "golden_published": true,
- "model_name": "GPT-5",
- "total_tests": 2,
- "passed_tests": 2,
- "llm_output": "using SpacetimeDB;\n\npublic static partial class Module\n{\n [SpacetimeDB.Table(Accessor = \"User\")]\n public partial struct User\n {\n [SpacetimeDB.PrimaryKey]\n public int Id;\n public string Name;\n public int Age;\n public bool Active;\n }\n\n [SpacetimeDB.Reducer]\n public static void InsertUser(ReducerContext ctx, int id, string name, int age, bool active)\n {\n ctx.Db.User.Insert(new User\n {\n Id = id,\n Name = name,\n Age = age,\n Active = active\n });\n }\n}",
- "category": "basics",
- "route_api_model": "gpt-5",
- "golden_db": "basics-t-004-insert-golden",
- "llm_db": "basics-t-004-insert-gpt-5-llm",
- "work_dir_golden": "target/llm-runs/basics/t_004_insert/csharp/server/golden",
- "work_dir_llm": "target/llm-runs/basics/t_004_insert/csharp/server/gpt-5/llm",
- "scorer_details": {
- "schema_parity": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "golden_db": "basics-t-004-insert-golden",
- "llm_db": "basics-t-004-insert-gpt-5-llm",
- "reducers_diff": null,
- "reducers_equal": true,
- "server": "http://127.0.0.1:34379",
- "tables_diff": null,
- "tables_equal": true
- }
- },
- "data_parity_insert_user": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "args": [
- 1,
- "Alice",
- 30,
- true
- ],
- "golden_db": "basics-t-004-insert-golden",
- "golden_out": "Id | Name | Age | Active ----+---------+-----+-------- 1 | \"Alice\" | 30 | true",
- "llm_db": "basics-t-004-insert-gpt-5-llm",
- "llm_out": "Id | Name | Age | Active ----+---------+-----+-------- 1 | \"Alice\" | 30 | true",
- "query": "SELECT Id, Name, Age, Active FROM User WHERE Id=1",
- "reducer": "InsertUser",
- "server": "http://127.0.0.1:34379"
- }
- }
- },
- "vendor": "openai",
- "started_at": "2026-01-27T20:00:17.336276015Z",
- "finished_at": "2026-01-27T20:00:48.236577365Z"
- },
- "t_005_update": {
- "hash": "e3621eaacfd5238fb514ff8c09c277ccd66170773959e5b391507110bf3ac17b",
- "task": "t_005_update",
- "lang": "csharp",
- "golden_published": true,
- "model_name": "GPT-5",
- "total_tests": 3,
- "passed_tests": 3,
- "llm_output": "using SpacetimeDB;\n\npublic static partial class Module\n{\n [SpacetimeDB.Table(Accessor = \"User\")]\n public partial struct User\n {\n [SpacetimeDB.PrimaryKey]\n public int Id;\n public string Name;\n public int Age;\n public bool Active;\n }\n\n [SpacetimeDB.Reducer]\n public static void UpdateUser(ReducerContext ctx, int id, string name, int age, bool active)\n {\n var user = ctx.Db.User.Id.Find(id) ?? throw new System.Exception(\"User not found\");\n user.Name = name;\n user.Age = age;\n user.Active = active;\n user.Id = id;\n ctx.Db.User.Id.Update(user);\n }\n}",
- "category": "basics",
- "route_api_model": "gpt-5",
- "golden_db": "basics-t-005-update-golden",
- "llm_db": "basics-t-005-update-gpt-5-llm",
- "work_dir_golden": "target/llm-runs/basics/t_005_update/csharp/server/golden",
- "work_dir_llm": "target/llm-runs/basics/t_005_update/csharp/server/gpt-5/llm",
- "scorer_details": {
- "data_parity_update_user": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "args": [
- 1,
- "Alice2",
- 31,
- false
- ],
- "golden_db": "basics-t-005-update-golden",
- "golden_out": "Id | Name | Age | Active ----+----------+-----+-------- 1 | \"Alice2\" | 31 | false",
- "llm_db": "basics-t-005-update-gpt-5-llm",
- "llm_out": "Id | Name | Age | Active ----+----------+-----+-------- 1 | \"Alice2\" | 31 | false",
- "query": "SELECT Id, Name, Age, Active FROM User WHERE Id=1",
- "reducer": "UpdateUser",
- "server": "http://127.0.0.1:34379"
- }
- },
- "seed_users_row": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "sql": "INSERT INTO User(Id, Name, Age, Active) VALUES (1, 'Alice', 30, true)"
- }
- },
- "schema_parity": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "golden_db": "basics-t-005-update-golden",
- "llm_db": "basics-t-005-update-gpt-5-llm",
- "reducers_diff": null,
- "reducers_equal": true,
- "server": "http://127.0.0.1:34379",
- "tables_diff": null,
- "tables_equal": true
- }
- }
- },
- "vendor": "openai",
- "started_at": "2026-01-27T19:59:43.681559749Z",
- "finished_at": "2026-01-27T20:00:17.332627669Z"
- },
- "t_006_delete": {
- "hash": "e3621eaacfd5238fb514ff8c09c277ccd66170773959e5b391507110bf3ac17b",
- "task": "t_006_delete",
- "lang": "csharp",
- "golden_published": true,
- "model_name": "GPT-5",
- "total_tests": 3,
- "passed_tests": 3,
- "llm_output": "using SpacetimeDB;\n\npublic static partial class Module\n{\n [SpacetimeDB.Table(Accessor = \"User\")]\n public partial struct User\n {\n [SpacetimeDB.PrimaryKey]\n public int Id;\n public string Name;\n public int Age;\n public bool Active;\n }\n\n [SpacetimeDB.Reducer]\n public static void DeleteUser(ReducerContext ctx, int id)\n {\n ctx.Db.User.Id.Delete(id);\n }\n}",
- "category": "basics",
- "route_api_model": "gpt-5",
- "golden_db": "basics-t-006-delete-golden",
- "llm_db": "basics-t-006-delete-gpt-5-llm",
- "work_dir_golden": "target/llm-runs/basics/t_006_delete/csharp/server/golden",
- "work_dir_llm": "target/llm-runs/basics/t_006_delete/csharp/server/gpt-5/llm",
- "scorer_details": {
- "seed_users_row": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "sql": "INSERT INTO User(Id, Name, Age, Active) VALUES (1, 'Alice', 30, true)"
- }
- },
- "delete_user_count_zero": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "actual": 0,
- "expected": 0,
- "sql": "SELECT COUNT(*) AS n FROM User WHERE Id=1"
- }
- },
- "schema_parity": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "golden_db": "basics-t-006-delete-golden",
- "llm_db": "basics-t-006-delete-gpt-5-llm",
- "reducers_diff": null,
- "reducers_equal": true,
- "server": "http://127.0.0.1:34379",
- "tables_diff": null,
- "tables_equal": true
- }
- }
- },
- "vendor": "openai",
- "started_at": "2026-01-27T19:58:58.264033858Z",
- "finished_at": "2026-01-27T19:59:39.007925686Z"
- },
- "t_007_crud": {
- "hash": "e3621eaacfd5238fb514ff8c09c277ccd66170773959e5b391507110bf3ac17b",
- "task": "t_007_crud",
- "lang": "csharp",
- "golden_published": true,
- "model_name": "GPT-5",
- "total_tests": 4,
- "passed_tests": 4,
- "llm_output": "using SpacetimeDB;\n\npublic static partial class Module\n{\n [SpacetimeDB.Table(Accessor = \"User\")]\n public partial struct User\n {\n [SpacetimeDB.PrimaryKey]\n public int Id;\n public string Name;\n public int Age;\n public bool Active;\n }\n\n [SpacetimeDB.Reducer]\n public static void Crud(ReducerContext ctx)\n {\n ctx.Db.User.Insert(new User { Id = 1, Name = \"Alice\", Age = 30, Active = true });\n ctx.Db.User.Insert(new User { Id = 2, Name = \"Bob\", Age = 22, Active = false });\n\n var found = ctx.Db.User.Id.Find(1);\n if (found is User user)\n {\n user.Name = \"Alice2\";\n user.Age = 31;\n user.Active = false;\n ctx.Db.User.Id.Update(user);\n }\n\n ctx.Db.User.Id.Delete(2);\n }\n}",
- "category": "basics",
- "route_api_model": "gpt-5",
- "golden_db": "basics-t-007-crud-golden",
- "llm_db": "basics-t-007-crud-gpt-5-llm",
- "work_dir_golden": "target/llm-runs/basics/t_007_crud/csharp/server/golden",
- "work_dir_llm": "target/llm-runs/basics/t_007_crud/csharp/server/gpt-5/llm",
- "scorer_details": {
- "schema_parity": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "golden_db": "basics-t-007-crud-golden",
- "llm_db": "basics-t-007-crud-gpt-5-llm",
- "reducers_diff": null,
- "reducers_equal": true,
- "server": "http://127.0.0.1:34379",
- "tables_diff": null,
- "tables_equal": true
- }
- },
- "crud_total_count_one": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "actual": 1,
- "expected": 1,
- "sql": "SELECT COUNT(*) AS n FROM User"
- }
- },
- "crud_row_id2_deleted": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "actual": 0,
- "expected": 0,
- "sql": "SELECT COUNT(*) AS n FROM User WHERE Id=2"
- }
- },
- "crud_row_id1_parity": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "args": [],
- "golden_db": "basics-t-007-crud-golden",
- "golden_out": "Id | Name | Age | Active ----+----------+-----+-------- 1 | \"Alice2\" | 31 | false",
- "llm_db": "basics-t-007-crud-gpt-5-llm",
- "llm_out": "Id | Name | Age | Active ----+----------+-----+-------- 1 | \"Alice2\" | 31 | false",
- "query": "SELECT Id, Name, Age, Active FROM User WHERE Id=1",
- "reducer": "Crud",
- "server": "http://127.0.0.1:34379"
- }
- }
- },
- "vendor": "openai",
- "started_at": "2026-01-27T19:59:29.414134061Z",
- "finished_at": "2026-01-27T20:00:06.267814536Z"
- },
- "t_008_index_lookup": {
- "hash": "e3621eaacfd5238fb514ff8c09c277ccd66170773959e5b391507110bf3ac17b",
- "task": "t_008_index_lookup",
- "lang": "csharp",
- "golden_published": true,
- "model_name": "GPT-5",
- "total_tests": 3,
- "passed_tests": 3,
- "llm_output": "using SpacetimeDB;\n\npublic static partial class Module\n{\n [SpacetimeDB.Table(Accessor = \"User\")]\n public partial class User\n {\n [SpacetimeDB.PrimaryKey]\n public int Id;\n public string Name;\n public int Age;\n public bool Active;\n }\n\n [SpacetimeDB.Table(Accessor = \"Result\")]\n public partial class Result\n {\n [SpacetimeDB.PrimaryKey]\n public int Id;\n public string Name;\n }\n\n [SpacetimeDB.Reducer]\n public static void LookupUserName(ReducerContext ctx, int id)\n {\n var user = ctx.Db.User.Id.Find(id);\n if (user != null)\n {\n ctx.Db.Result.Insert(new Result { Id = user.Id, Name = user.Name });\n }\n }\n}",
- "category": "basics",
- "route_api_model": "gpt-5",
- "golden_db": "basics-t-008-index-lookup-golden",
- "llm_db": "basics-t-008-index-lookup-gpt-5-llm",
- "work_dir_golden": "target/llm-runs/basics/t_008_index_lookup/csharp/server/golden",
- "work_dir_llm": "target/llm-runs/basics/t_008_index_lookup/csharp/server/gpt-5/llm",
- "scorer_details": {
- "index_lookup_projection_parity": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "args": [
- 1
- ],
- "golden_db": "basics-t-008-index-lookup-golden",
- "golden_out": "Id | Name ----+--------- 1 | \"Alice\"",
- "llm_db": "basics-t-008-index-lookup-gpt-5-llm",
- "llm_out": "Id | Name ----+--------- 1 | \"Alice\"",
- "query": "SELECT Id, Name FROM Result WHERE Id=1",
- "reducer": "LookupUserName",
- "server": "http://127.0.0.1:34379"
- }
- },
- "schema_parity": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "golden_db": "basics-t-008-index-lookup-golden",
- "llm_db": "basics-t-008-index-lookup-gpt-5-llm",
- "reducers_diff": null,
- "reducers_equal": true,
- "server": "http://127.0.0.1:34379",
- "tables_diff": null,
- "tables_equal": true
- }
- },
- "seed_user_row": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "sql": "INSERT INTO User(Id, Name, Age, Active) VALUES (1, 'Alice', 30, true)"
- }
- }
- },
- "vendor": "openai",
- "started_at": "2026-01-27T20:00:17.332669093Z",
- "finished_at": "2026-01-27T20:00:55.597420674Z"
- },
- "t_009_init": {
- "hash": "e3621eaacfd5238fb514ff8c09c277ccd66170773959e5b391507110bf3ac17b",
- "task": "t_009_init",
- "lang": "csharp",
- "golden_published": true,
- "model_name": "GPT-5",
- "total_tests": 4,
- "passed_tests": 4,
- "llm_output": "using SpacetimeDB;\n\npublic static partial class Module\n{\n [SpacetimeDB.Table(Accessor = \"User\")]\n public partial struct User\n {\n [SpacetimeDB.PrimaryKey]\n public int Id;\n public string Name;\n public int Age;\n public bool Active;\n }\n\n [SpacetimeDB.Reducer(ReducerKind.Init)]\n public static void Init(ReducerContext ctx)\n {\n ctx.Db.User.Insert(new User { Id = 1, Name = \"Alice\", Age = 30, Active = true });\n ctx.Db.User.Insert(new User { Id = 2, Name = \"Bob\", Age = 22, Active = false });\n }\n}",
- "category": "basics",
- "route_api_model": "gpt-5",
- "golden_db": "basics-t-009-init-golden",
- "llm_db": "basics-t-009-init-gpt-5-llm",
- "work_dir_golden": "target/llm-runs/basics/t_009_init/csharp/server/golden",
- "work_dir_llm": "target/llm-runs/basics/t_009_init/csharp/server/gpt-5/llm",
- "scorer_details": {
- "schema_parity": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "golden_db": "basics-t-009-init-golden",
- "llm_db": "basics-t-009-init-gpt-5-llm",
- "reducers_diff": null,
- "reducers_equal": true,
- "server": "http://127.0.0.1:34379",
- "tables_diff": null,
- "tables_equal": true
- }
- },
- "init_seed_bob": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "actual": 1,
- "expected": 1,
- "sql": "SELECT COUNT(*) AS n FROM User WHERE Id=2 AND Name='Bob' AND Age=22 AND Active=false"
- }
- },
- "init_seed_alice": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "actual": 1,
- "expected": 1,
- "sql": "SELECT COUNT(*) AS n FROM User WHERE Id=1 AND Name='Alice' AND Age=30 AND Active=true"
- }
- },
- "init_total_two": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "actual": 2,
- "expected": 2,
- "sql": "SELECT COUNT(*) AS n FROM User"
- }
- }
- },
- "vendor": "openai",
- "started_at": "2026-01-27T19:59:39.007990909Z",
- "finished_at": "2026-01-27T20:00:10.594272918Z"
- },
- "t_010_connect": {
- "hash": "e3621eaacfd5238fb514ff8c09c277ccd66170773959e5b391507110bf3ac17b",
- "task": "t_010_connect",
- "lang": "csharp",
- "golden_published": true,
- "model_name": "GPT-5",
- "total_tests": 1,
- "passed_tests": 1,
- "llm_output": "using SpacetimeDB;\n\npublic static partial class Module\n{\n [SpacetimeDB.Table(Accessor = \"Event\")]\n public partial struct Event\n {\n [SpacetimeDB.PrimaryKey]\n [SpacetimeDB.AutoInc]\n public int Id;\n public string Kind;\n }\n\n [SpacetimeDB.Reducer(ReducerKind.ClientConnected)]\n public static void ClientConnected(ReducerContext ctx)\n {\n ctx.Db.Event.Insert(new Event { Id = 0, Kind = \"connected\" });\n }\n\n [SpacetimeDB.Reducer(ReducerKind.ClientDisconnected)]\n public static void ClientDisconnected(ReducerContext ctx)\n {\n ctx.Db.Event.Insert(new Event { Id = 0, Kind = \"disconnected\" });\n }\n}",
- "category": "basics",
- "route_api_model": "gpt-5",
- "golden_db": "basics-t-010-connect-golden",
- "llm_db": "basics-t-010-connect-gpt-5-llm",
- "work_dir_golden": "target/llm-runs/basics/t_010_connect/csharp/server/golden",
- "work_dir_llm": "target/llm-runs/basics/t_010_connect/csharp/server/gpt-5/llm",
- "scorer_details": {
- "schema_parity": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "golden_db": "basics-t-010-connect-golden",
- "llm_db": "basics-t-010-connect-gpt-5-llm",
- "reducers_diff": null,
- "reducers_equal": true,
- "server": "http://127.0.0.1:34379",
- "tables_diff": null,
- "tables_equal": true
- }
- }
- },
- "vendor": "openai",
- "started_at": "2026-01-27T19:59:08.068058110Z",
- "finished_at": "2026-01-27T19:59:45.341706421Z"
- },
- "t_011_helper_function": {
- "hash": "e3621eaacfd5238fb514ff8c09c277ccd66170773959e5b391507110bf3ac17b",
- "task": "t_011_helper_function",
- "lang": "csharp",
- "golden_published": true,
- "model_name": "GPT-5",
- "total_tests": 3,
- "passed_tests": 3,
- "llm_output": "using SpacetimeDB;\n\npublic static partial class Module\n{\n [SpacetimeDB.Table(Accessor = \"Result\")]\n public partial struct Result\n {\n [SpacetimeDB.PrimaryKey]\n public int Id;\n public int Sum;\n }\n\n public static int Add(int a, int b)\n {\n return a + b;\n }\n\n [SpacetimeDB.Reducer]\n public static void ComputeSum(ReducerContext ctx, int id, int a, int b)\n {\n ctx.Db.Result.Insert(new Result\n {\n Id = id,\n Sum = Add(a, b),\n });\n }\n}",
- "category": "basics",
- "route_api_model": "gpt-5",
- "golden_db": "basics-t-011-helper-function-golden",
- "llm_db": "basics-t-011-helper-function-gpt-5-llm",
- "work_dir_golden": "target/llm-runs/basics/t_011_helper_function/csharp/server/golden",
- "work_dir_llm": "target/llm-runs/basics/t_011_helper_function/csharp/server/gpt-5/llm",
- "scorer_details": {
- "helper_func_sum_abs": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "actual": 1,
- "expected": 1,
- "sql": "SELECT COUNT(*) AS n FROM Result WHERE Id=1 AND Sum=5"
- }
- },
- "helper_func_sum_parity": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "args": [
- 1,
- 2,
- 3
- ],
- "golden_db": "basics-t-011-helper-function-golden",
- "golden_out": "Id | Sum ----+----- 1 | 5",
- "llm_db": "basics-t-011-helper-function-gpt-5-llm",
- "llm_out": "Id | Sum ----+----- 1 | 5",
- "query": "SELECT Id, Sum FROM Result WHERE Id=1",
- "reducer": "ComputeSum",
- "server": "http://127.0.0.1:34379"
- }
- },
- "schema_parity": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "golden_db": "basics-t-011-helper-function-golden",
- "llm_db": "basics-t-011-helper-function-gpt-5-llm",
- "reducers_diff": null,
- "reducers_equal": true,
- "server": "http://127.0.0.1:34379",
- "tables_diff": null,
- "tables_equal": true
- }
- }
- },
- "vendor": "openai",
- "started_at": "2026-01-27T20:00:37.824007777Z",
- "finished_at": "2026-01-27T20:01:12.698364118Z"
- },
- "t_012_spacetime_product_type": {
- "hash": "e3621eaacfd5238fb514ff8c09c277ccd66170773959e5b391507110bf3ac17b",
- "task": "t_012_spacetime_product_type",
- "lang": "csharp",
- "golden_published": true,
- "model_name": "GPT-5",
- "total_tests": 3,
- "passed_tests": 3,
- "llm_output": "using SpacetimeDB;\n\npublic static partial class Module\n{\n [SpacetimeDB.Type]\n public partial struct Score\n {\n public int Left;\n public int Right;\n }\n\n [SpacetimeDB.Table(Accessor = \"Result\", Public = true)]\n public partial struct Result\n {\n [SpacetimeDB.PrimaryKey]\n public int Id;\n public Score Value;\n }\n\n [SpacetimeDB.Reducer]\n public static void SetScore(ReducerContext ctx, int id, int left, int right)\n {\n ctx.Db.Result.Insert(new Result\n {\n Id = id,\n Value = new Score { Left = left, Right = right }\n });\n }\n}",
- "category": "schema",
- "route_api_model": "gpt-5",
- "golden_db": "schema-t-012-spacetime-product-type-golden",
- "llm_db": "schema-t-012-spacetime-product-type-gpt-5-llm",
- "work_dir_golden": "target/llm-runs/schema/t_012_spacetime_product_type/csharp/server/golden",
- "work_dir_llm": "target/llm-runs/schema/t_012_spacetime_product_type/csharp/server/gpt-5/llm",
- "scorer_details": {
- "product_type_row_parity": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "args": [
- 1,
- 2,
- 3
- ],
- "golden_db": "schema-t-012-spacetime-product-type-golden",
- "golden_out": "Id | Value ----+----------------------- 1 | (Left = 2, Right = 3)",
- "llm_db": "schema-t-012-spacetime-product-type-gpt-5-llm",
- "llm_out": "Id | Value ----+----------------------- 1 | (Left = 2, Right = 3)",
- "query": "SELECT Id, Value FROM Result WHERE Id=1",
- "reducer": "SetScore",
- "server": "http://127.0.0.1:34379"
- }
- },
- "schema_parity": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "golden_db": "schema-t-012-spacetime-product-type-golden",
- "llm_db": "schema-t-012-spacetime-product-type-gpt-5-llm",
- "reducers_diff": null,
- "reducers_equal": true,
- "server": "http://127.0.0.1:34379",
- "tables_diff": null,
- "tables_equal": true
- }
- },
- "product_type_row_count": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "actual": 1,
- "expected": 1,
- "sql": "SELECT COUNT(*) AS n FROM Result WHERE Id=1"
- }
- }
- },
- "vendor": "openai",
- "started_at": "2026-01-27T19:58:50.225754898Z",
- "finished_at": "2026-01-27T19:59:29.413988946Z"
- },
- "t_013_spacetime_sum_type": {
- "hash": "e3621eaacfd5238fb514ff8c09c277ccd66170773959e5b391507110bf3ac17b",
- "task": "t_013_spacetime_sum_type",
- "lang": "csharp",
- "golden_published": true,
- "model_name": "GPT-5",
- "total_tests": 3,
- "passed_tests": 3,
- "llm_output": "using SpacetimeDB;\n\npublic static partial class Module\n{\n [SpacetimeDB.Type]\n public partial struct Circle\n {\n public int Radius;\n }\n\n [SpacetimeDB.Type]\n public partial struct Rectangle\n {\n public int Width;\n public int Height;\n }\n\n [SpacetimeDB.Type]\n public partial record Shape : TaggedEnum<(Circle Circle, Rectangle Rectangle)> { }\n\n [SpacetimeDB.Table(Accessor = \"Result\")]\n public partial struct Result\n {\n [SpacetimeDB.PrimaryKey]\n public int Id;\n public Shape Value;\n }\n\n [SpacetimeDB.Reducer]\n public static void SetCircle(ReducerContext ctx, int id, int radius)\n {\n ctx.Db.Result.Insert(new Result\n {\n Id = id,\n Value = new Shape.Circle(new Circle { Radius = radius })\n });\n }\n}",
- "category": "schema",
- "route_api_model": "gpt-5",
- "golden_db": "schema-t-013-spacetime-sum-type-golden",
- "llm_db": "schema-t-013-spacetime-sum-type-gpt-5-llm",
- "work_dir_golden": "target/llm-runs/schema/t_013_spacetime_sum_type/csharp/server/golden",
- "work_dir_llm": "target/llm-runs/schema/t_013_spacetime_sum_type/csharp/server/gpt-5/llm",
- "scorer_details": {
- "schema_parity": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "golden_db": "schema-t-013-spacetime-sum-type-golden",
- "llm_db": "schema-t-013-spacetime-sum-type-gpt-5-llm",
- "reducers_diff": null,
- "reducers_equal": true,
- "server": "http://127.0.0.1:34379",
- "tables_diff": null,
- "tables_equal": true
- }
- },
- "sum_type_row_count": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "actual": 1,
- "expected": 1,
- "sql": "SELECT COUNT(*) AS n FROM Result WHERE Id=1"
- }
- },
- "sum_type_row_parity": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "args": [
- 1,
- 10
- ],
- "golden_db": "schema-t-013-spacetime-sum-type-golden",
- "golden_out": "Id | Value ----+-------------------------- 1 | (Circle = (Radius = 10))",
- "llm_db": "schema-t-013-spacetime-sum-type-gpt-5-llm",
- "llm_out": "Id | Value ----+-------------------------- 1 | (Circle = (Radius = 10))",
- "query": "SELECT Id, Value FROM Result WHERE Id=1",
- "reducer": "SetCircle",
- "server": "http://127.0.0.1:34379"
- }
- }
- },
- "vendor": "openai",
- "started_at": "2026-01-27T19:57:55.737450825Z",
- "finished_at": "2026-01-27T19:58:46.370198569Z"
- },
- "t_014_elementary_columns": {
- "hash": "e3621eaacfd5238fb514ff8c09c277ccd66170773959e5b391507110bf3ac17b",
- "task": "t_014_elementary_columns",
- "lang": "csharp",
- "golden_published": true,
- "model_name": "GPT-5",
- "total_tests": 3,
- "passed_tests": 1,
- "llm_output": "using SpacetimeDB;\n\npublic static partial class Module\n{\n [SpacetimeDB.Table(Accessor = \"Primitive\", Public = true)]\n public partial struct Primitive\n {\n [SpacetimeDB.PrimaryKey]\n public int Id;\n public int Count;\n public long Total;\n public float Price;\n public double Ratio;\n public bool Active;\n public string Name;\n }\n\n [SpacetimeDB.Reducer]\n public static void Seed(ReducerContext ctx)\n {\n ctx.Db.Primitive.Insert(new Primitive\n {\n Id = 1,\n Count = 2,\n Total = 3000000000L,\n Price = 1.5f,\n Ratio = 2.25,\n Active = true,\n Name = \"Alice\"\n });\n }\n}",
- "category": "schema",
- "route_api_model": "gpt-5",
- "golden_db": "schema-t-014-elementary-columns-golden",
- "llm_db": "schema-t-014-elementary-columns-gpt-5-llm",
- "work_dir_golden": "target/llm-runs/schema/t_014_elementary_columns/csharp/server/golden",
- "work_dir_llm": "target/llm-runs/schema/t_014_elementary_columns/csharp/server/gpt-5/llm",
- "scorer_details": {
- "schema_parity": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "golden_db": "schema-t-014-elementary-columns-golden",
- "llm_db": "schema-t-014-elementary-columns-gpt-5-llm",
- "reducers_diff": null,
- "reducers_equal": true,
- "server": "http://127.0.0.1:34379",
- "tables_diff": null,
- "tables_equal": true
- }
- },
- "elementary_columns_row_count": {
- "pass": false,
- "partial": 0.0,
- "notes": {
- "error": "spacetime sql failed:\nWARNING: This command is UNSTABLE and subject to breaking changes.\n\nError: no such table: `primitive`. If the table exists, it may be marked private.\n\nCaused by:\n HTTP status client error (400 Bad Request) for url (http://127.0.0.1:34379/v1/database/c2006db3efe118f9e2be4d0996245799216709f62c09af27307321501d4ca96f/sql)\n",
- "phase": "sql"
- }
- },
- "elementary_columns_row_parity": {
- "pass": false,
- "partial": 0.0,
- "notes": {
- "error": "spacetime sql failed:\nWARNING: This command is UNSTABLE and subject to breaking changes.\n\nError: no such table: `primitive`. If the table exists, it may be marked private.\n\nCaused by:\n HTTP status client error (400 Bad Request) for url (http://127.0.0.1:34379/v1/database/c2008bda321ec5b24f06db6690e57eaa2c1b3a9bada2318accf99feb7910837d/sql)\n",
- "phase": "sql_golden"
- }
- }
- },
- "vendor": "openai",
- "started_at": "2026-01-27T19:58:46.370277696Z",
- "finished_at": "2026-01-27T19:59:43.681502253Z"
- },
- "t_015_product_type_columns": {
- "hash": "e3621eaacfd5238fb514ff8c09c277ccd66170773959e5b391507110bf3ac17b",
- "task": "t_015_product_type_columns",
- "lang": "csharp",
- "golden_published": true,
- "model_name": "GPT-5",
- "total_tests": 3,
- "passed_tests": 3,
- "llm_output": "using SpacetimeDB;\n\npublic static partial class Module\n{\n [SpacetimeDB.Type]\n public partial struct Address\n {\n public string Street;\n public int Zip;\n }\n\n [SpacetimeDB.Type]\n public partial struct Position\n {\n public int X;\n public int Y;\n }\n\n [SpacetimeDB.Table(Accessor = \"Profile\", Public = true)]\n public partial struct Profile\n {\n [SpacetimeDB.PrimaryKey]\n public int Id;\n public Address Home;\n public Address Work;\n public Position Pos;\n }\n\n [SpacetimeDB.Reducer]\n public static void Seed(ReducerContext ctx)\n {\n if (ctx.Db.Profile.Id.Find(1) == null)\n {\n ctx.Db.Profile.Insert(new Profile\n {\n Id = 1,\n Home = new Address { Street = \"1 Main\", Zip = 11111 },\n Work = new Address { Street = \"2 Broad\", Zip = 22222 },\n Pos = new Position { X = 7, Y = 9 },\n });\n }\n }\n}",
- "category": "schema",
- "route_api_model": "gpt-5",
- "golden_db": "schema-t-015-product-type-columns-golden",
- "llm_db": "schema-t-015-product-type-columns-gpt-5-llm",
- "work_dir_golden": "target/llm-runs/schema/t_015_product_type_columns/csharp/server/golden",
- "work_dir_llm": "target/llm-runs/schema/t_015_product_type_columns/csharp/server/gpt-5/llm",
- "scorer_details": {
- "schema_parity": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "golden_db": "schema-t-015-product-type-columns-golden",
- "llm_db": "schema-t-015-product-type-columns-gpt-5-llm",
- "reducers_diff": null,
- "reducers_equal": true,
- "server": "http://127.0.0.1:34379",
- "tables_diff": null,
- "tables_equal": true
- }
- },
- "product_type_columns_row_parity": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "args": [],
- "golden_db": "schema-t-015-product-type-columns-golden",
- "golden_out": "Id | Home | Work | Pos ----+----------------------------------+-----------------------------------+---------------- 1 | (Street = \"1 Main\", Zip = 11111) | (Street = \"2 Broad\", Zip = 22222) | (X = 7, Y = 9)",
- "llm_db": "schema-t-015-product-type-columns-gpt-5-llm",
- "llm_out": "Id | Home | Work | Pos ----+----------------------------------+-----------------------------------+---------------- 1 | (Street = \"1 Main\", Zip = 11111) | (Street = \"2 Broad\", Zip = 22222) | (X = 7, Y = 9)",
- "query": "SELECT Id, Home, Work, Pos FROM Profile WHERE Id=1",
- "reducer": "Seed",
- "server": "http://127.0.0.1:34379"
- }
- },
- "product_type_columns_row_count": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "actual": 1,
- "expected": 1,
- "sql": "SELECT COUNT(*) AS n FROM Profile WHERE Id=1"
- }
- }
- },
- "vendor": "openai",
- "started_at": "2026-01-27T19:58:04.285909374Z",
- "finished_at": "2026-01-27T19:58:50.225511855Z"
- },
- "t_016_sum_type_columns": {
- "hash": "e3621eaacfd5238fb514ff8c09c277ccd66170773959e5b391507110bf3ac17b",
- "task": "t_016_sum_type_columns",
- "lang": "csharp",
- "golden_published": true,
- "model_name": "GPT-5",
- "total_tests": 3,
- "passed_tests": 1,
- "llm_output": "using SpacetimeDB;\n\npublic static partial class Module\n{\n [SpacetimeDB.Type]\n public partial struct Circle\n {\n public int Radius;\n }\n\n [SpacetimeDB.Type]\n public partial struct Rectangle\n {\n public int Width;\n public int Height;\n }\n\n [SpacetimeDB.Type]\n public partial record Shape : TaggedEnum<(Circle Circle, Rectangle Rectangle)> { }\n\n [SpacetimeDB.Table(Accessor = \"Drawing\")]\n public partial struct Drawing\n {\n [SpacetimeDB.PrimaryKey]\n public int Id;\n public Shape A;\n public Shape B;\n }\n\n [SpacetimeDB.Reducer]\n public static void Seed(ReducerContext ctx)\n {\n ctx.Db.Drawing.Insert(new Drawing\n {\n Id = 1,\n A = new Shape.Circle(new Circle { Radius = 10 }),\n B = new Shape.Rectangle(new Rectangle { Width = 4, Height = 6 })\n });\n }\n}",
- "category": "schema",
- "route_api_model": "gpt-5",
- "golden_db": "schema-t-016-sum-type-columns-golden",
- "llm_db": "schema-t-016-sum-type-columns-gpt-5-llm",
- "work_dir_golden": "target/llm-runs/schema/t_016_sum_type_columns/csharp/server/golden",
- "work_dir_llm": "target/llm-runs/schema/t_016_sum_type_columns/csharp/server/gpt-5/llm",
- "scorer_details": {
- "sum_type_columns_row_count": {
- "pass": false,
- "partial": 0.0,
- "notes": {
- "error": "spacetime sql failed:\nWARNING: This command is UNSTABLE and subject to breaking changes.\n\nError: no such table: `drawings`. If the table exists, it may be marked private.\n\nCaused by:\n HTTP status client error (400 Bad Request) for url (http://127.0.0.1:34379/v1/database/c200a38bd5eaec739ca1bb5f49423cf455fb484e997f330a37dbe10a2f09faac/sql)\n",
- "phase": "sql"
- }
- },
- "schema_parity": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "golden_db": "schema-t-016-sum-type-columns-golden",
- "llm_db": "schema-t-016-sum-type-columns-gpt-5-llm",
- "reducers_diff": null,
- "reducers_equal": true,
- "server": "http://127.0.0.1:34379",
- "tables_diff": null,
- "tables_equal": true
- }
- },
- "sum_type_columns_row_parity": {
- "pass": false,
- "partial": 0.0,
- "notes": {
- "error": "spacetime sql failed:\nWARNING: This command is UNSTABLE and subject to breaking changes.\n\nError: no such table: `drawings`. If the table exists, it may be marked private.\n\nCaused by:\n HTTP status client error (400 Bad Request) for url (http://127.0.0.1:34379/v1/database/c20028da21a53491f84d8895dbcf4906c6c844846426c39ae32b5fd1689a2641/sql)\n",
- "phase": "sql_golden"
- }
- }
- },
- "vendor": "openai",
- "started_at": "2026-01-27T19:57:09.422528630Z",
- "finished_at": "2026-01-27T19:58:04.281919840Z"
- },
- "t_017_scheduled_columns": {
- "hash": "e3621eaacfd5238fb514ff8c09c277ccd66170773959e5b391507110bf3ac17b",
- "task": "t_017_scheduled_columns",
- "lang": "csharp",
- "golden_published": true,
- "model_name": "GPT-5",
- "total_tests": 2,
- "passed_tests": 1,
- "llm_output": "using System;\nusing SpacetimeDB;\n\npublic static partial class Module\n{\n [SpacetimeDB.Table(Accessor = \"TickTimer\", Scheduled = nameof(Tick), ScheduledAt = nameof(ScheduledAt))]\n public partial struct TickTimer\n {\n [SpacetimeDB.PrimaryKey]\n [SpacetimeDB.AutoInc]\n public ulong ScheduledId;\n public ScheduleAt ScheduledAt;\n }\n\n [SpacetimeDB.Reducer]\n public static void Tick(ReducerContext ctx, TickTimer _timer)\n {\n }\n\n [SpacetimeDB.Reducer(ReducerKind.Init)]\n public static void Init(ReducerContext ctx)\n {\n ctx.Db.TickTimer.Insert(new TickTimer\n {\n ScheduledAt = new ScheduleAt.Interval(TimeSpan.FromMilliseconds(50))\n });\n }\n}",
- "category": "schema",
- "route_api_model": "gpt-5",
- "golden_db": "schema-t-017-scheduled-columns-golden",
- "llm_db": "schema-t-017-scheduled-columns-gpt-5-llm",
- "work_dir_golden": "target/llm-runs/schema/t_017_scheduled_columns/csharp/server/golden",
- "work_dir_llm": "target/llm-runs/schema/t_017_scheduled_columns/csharp/server/gpt-5/llm",
- "scorer_details": {
- "scheduled_seeded_one_row": {
- "pass": false,
- "partial": 0.0,
- "notes": {
- "error": "spacetime sql failed:\nWARNING: This command is UNSTABLE and subject to breaking changes.\n\nError: no such table: `tick_timer`. If the table exists, it may be marked private.\n\nCaused by:\n HTTP status client error (400 Bad Request) for url (http://127.0.0.1:34379/v1/database/c200bf2221f01a62dfa1acb5a397b4271a57cfc2f171562204bb3bcee2259214/sql)\n",
- "phase": "sql"
- }
- },
- "schema_parity": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "golden_db": "schema-t-017-scheduled-columns-golden",
- "llm_db": "schema-t-017-scheduled-columns-gpt-5-llm",
- "reducers_diff": null,
- "reducers_equal": true,
- "server": "http://127.0.0.1:34379",
- "tables_diff": null,
- "tables_equal": true
- }
- }
- },
- "vendor": "openai",
- "started_at": "2026-01-27T19:57:09.413847953Z",
- "finished_at": "2026-01-27T19:57:55.737395054Z"
- },
- "t_018_constraints": {
- "hash": "e3621eaacfd5238fb514ff8c09c277ccd66170773959e5b391507110bf3ac17b",
- "task": "t_018_constraints",
- "lang": "csharp",
- "golden_published": true,
- "model_name": "GPT-5",
- "total_tests": 3,
- "passed_tests": 3,
- "llm_output": "using SpacetimeDB;\n\npublic static partial class Module\n{\n [SpacetimeDB.Table(Accessor = \"Account\", Public = true)]\n public partial struct Account\n {\n [SpacetimeDB.PrimaryKey]\n public int Id;\n\n [SpacetimeDB.Unique]\n public string Email;\n\n [SpacetimeDB.Index.BTree(Name = \"by_name\")]\n public string Name;\n }\n\n [SpacetimeDB.Reducer]\n public static void Seed(ReducerContext ctx)\n {\n ctx.Db.Account.Insert(new Account { Id = 1, Email = \"a@example.com\", Name = \"Alice\" });\n ctx.Db.Account.Insert(new Account { Id = 2, Email = \"b@example.com\", Name = \"Bob\" });\n }\n}",
- "category": "schema",
- "route_api_model": "gpt-5",
- "golden_db": "schema-t-018-constraints-golden",
- "llm_db": "schema-t-018-constraints-gpt-5-llm",
- "work_dir_golden": "target/llm-runs/schema/t_018_constraints/csharp/server/golden",
- "work_dir_llm": "target/llm-runs/schema/t_018_constraints/csharp/server/gpt-5/llm",
- "scorer_details": {
- "constraints_row_parity_after_seed": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "args": [],
- "golden_db": "schema-t-018-constraints-golden",
- "golden_out": "Id | Email | Name ----+-----------------+--------- 1 | \"a@example.com\" | \"Alice\"",
- "llm_db": "schema-t-018-constraints-gpt-5-llm",
- "llm_out": "Id | Email | Name ----+-----------------+--------- 1 | \"a@example.com\" | \"Alice\"",
- "query": "SELECT Id, Email, Name FROM Account WHERE Id=1",
- "reducer": "Seed",
- "server": "http://127.0.0.1:34379"
- }
- },
- "constraints_seed_two_rows": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "actual": 1,
- "expected": 1,
- "sql": "SELECT COUNT(*) AS n FROM Account WHERE Id=2"
- }
- },
- "schema_parity": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "golden_db": "schema-t-018-constraints-golden",
- "llm_db": "schema-t-018-constraints-gpt-5-llm",
- "reducers_diff": null,
- "reducers_equal": true,
- "server": "http://127.0.0.1:34379",
- "tables_diff": null,
- "tables_equal": true
- }
- }
- },
- "vendor": "openai",
- "started_at": "2026-01-27T19:57:09.410769526Z",
- "finished_at": "2026-01-27T19:58:03.584746288Z"
- },
- "t_019_many_to_many": {
- "hash": "e3621eaacfd5238fb514ff8c09c277ccd66170773959e5b391507110bf3ac17b",
- "task": "t_019_many_to_many",
- "lang": "csharp",
- "golden_published": true,
- "model_name": "GPT-5",
- "total_tests": 5,
- "passed_tests": 5,
- "llm_output": "using SpacetimeDB;\n\npublic static partial class Module\n{\n [SpacetimeDB.Table(Accessor = \"User\")]\n public partial struct User\n {\n [SpacetimeDB.PrimaryKey]\n public int UserId;\n public string Name;\n }\n\n [SpacetimeDB.Table(Accessor = \"Group\")]\n public partial struct Group\n {\n [SpacetimeDB.PrimaryKey]\n public int GroupId;\n public string Title;\n }\n\n [SpacetimeDB.Table(Accessor = \"Membership\")]\n [SpacetimeDB.Index.BTree(Name = \"by_user\", Columns = new[] { \"UserId\" })]\n [SpacetimeDB.Index.BTree(Name = \"by_group\", Columns = new[] { \"GroupId\" })]\n public partial struct Membership\n {\n [SpacetimeDB.PrimaryKey]\n public int Id;\n public int UserId;\n public int GroupId;\n }\n\n [SpacetimeDB.Reducer]\n public static void Seed(ReducerContext ctx)\n {\n foreach (var m in ctx.Db.Membership.Iter())\n {\n ctx.Db.Membership.Id.Delete(m.Id);\n }\n\n foreach (var g in ctx.Db.Group.Iter())\n {\n ctx.Db.Group.GroupId.Delete(g.GroupId);\n }\n\n foreach (var u in ctx.Db.User.Iter())\n {\n ctx.Db.User.UserId.Delete(u.UserId);\n }\n\n ctx.Db.User.Insert(new User { UserId = 1, Name = \"Alice\" });\n ctx.Db.User.Insert(new User { UserId = 2, Name = \"Bob\" });\n\n ctx.Db.Group.Insert(new Group { GroupId = 10, Title = \"Admin\" });\n ctx.Db.Group.Insert(new Group { GroupId = 20, Title = \"Dev\" });\n\n ctx.Db.Membership.Insert(new Membership { Id = 1, UserId = 1, GroupId = 10 });\n ctx.Db.Membership.Insert(new Membership { Id = 2, UserId = 1, GroupId = 20 });\n ctx.Db.Membership.Insert(new Membership { Id = 3, UserId = 2, GroupId = 20 });\n }\n}",
- "category": "schema",
- "route_api_model": "gpt-5",
- "golden_db": "schema-t-019-many-to-many-golden",
- "llm_db": "schema-t-019-many-to-many-gpt-5-llm",
- "work_dir_golden": "target/llm-runs/schema/t_019_many_to_many/csharp/server/golden",
- "work_dir_llm": "target/llm-runs/schema/t_019_many_to_many/csharp/server/gpt-5/llm",
- "scorer_details": {
- "m2m_has_2_20": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "actual": 1,
- "expected": 1,
- "sql": "SELECT COUNT(*) AS n FROM Membership WHERE UserId=2 AND GroupId=20"
- }
- },
- "memberships_three_rows": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "actual": 3,
- "expected": 3,
- "sql": "SELECT COUNT(*) AS n FROM Membership"
- }
- },
- "schema_parity": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "golden_db": "schema-t-019-many-to-many-golden",
- "llm_db": "schema-t-019-many-to-many-gpt-5-llm",
- "reducers_diff": null,
- "reducers_equal": true,
- "server": "http://127.0.0.1:34379",
- "tables_diff": null,
- "tables_equal": true
- }
- },
- "m2m_has_1_20": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "actual": 1,
- "expected": 1,
- "sql": "SELECT COUNT(*) AS n FROM Membership WHERE UserId=1 AND GroupId=20"
- }
- },
- "m2m_has_1_10": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "actual": 1,
- "expected": 1,
- "sql": "SELECT COUNT(*) AS n FROM Membership WHERE UserId=1 AND GroupId=10"
- }
- }
- },
- "vendor": "openai",
- "started_at": "2026-01-27T19:58:04.046511986Z",
- "finished_at": "2026-01-27T19:58:58.263921552Z"
- },
- "t_020_ecs": {
- "hash": "e3621eaacfd5238fb514ff8c09c277ccd66170773959e5b391507110bf3ac17b",
- "task": "t_020_ecs",
- "lang": "csharp",
- "golden_published": true,
- "model_name": "GPT-5",
- "total_tests": 5,
- "passed_tests": 1,
- "llm_output": "using SpacetimeDB;\n\npublic static partial class Module\n{\n [SpacetimeDB.Table(Accessor = \"Entity\")]\n public partial struct Entity\n {\n [SpacetimeDB.PrimaryKey]\n public int Id;\n }\n\n [SpacetimeDB.Table(Accessor = \"Position\")]\n public partial struct Position\n {\n [SpacetimeDB.PrimaryKey]\n public int EntityId;\n public int X;\n public int Y;\n }\n\n [SpacetimeDB.Table(Accessor = \"Velocity\")]\n public partial struct Velocity\n {\n [SpacetimeDB.PrimaryKey]\n public int EntityId;\n public int VX;\n public int VY;\n }\n\n [SpacetimeDB.Table(Accessor = \"NextPosition\")]\n public partial struct NextPosition\n {\n [SpacetimeDB.PrimaryKey]\n public int EntityId;\n public int X;\n public int Y;\n }\n\n [SpacetimeDB.Reducer]\n public static void Seed(ReducerContext ctx)\n {\n // Entities\n ctx.Db.Entity.Insert(new Entity { Id = 1 });\n ctx.Db.Entity.Insert(new Entity { Id = 2 });\n\n // Positions\n ctx.Db.Position.Insert(new Position { EntityId = 1, X = 0, Y = 0 });\n ctx.Db.Position.Insert(new Position { EntityId = 2, X = 10, Y = 0 });\n\n // Velocities\n ctx.Db.Velocity.Insert(new Velocity { EntityId = 1, VX = 1, VY = 0 });\n ctx.Db.Velocity.Insert(new Velocity { EntityId = 2, VX = -2, VY = 3 });\n }\n\n [SpacetimeDB.Reducer]\n public static void Step(ReducerContext ctx)\n {\n foreach (var pos in ctx.Db.Position.Iter())\n {\n var vel = ctx.Db.Velocity.EntityId.Find(pos.EntityId);\n int vx = 0, vy = 0;\n if (vel != null)\n {\n vx = vel.Value.VX;\n vy = vel.Value.VY;\n }\n\n var next = new NextPosition\n {\n EntityId = pos.EntityId,\n X = pos.X + vx,\n Y = pos.Y + vy\n };\n\n var existing = ctx.Db.NextPosition.EntityId.Find(pos.EntityId);\n if (existing != null)\n {\n ctx.Db.NextPosition.EntityId.Update(next);\n }\n else\n {\n ctx.Db.NextPosition.Insert(next);\n }\n }\n }\n}",
- "category": "schema",
- "route_api_model": "gpt-5",
- "golden_db": "schema-t-020-ecs-golden",
- "llm_db": "schema-t-020-ecs-gpt-5-llm",
- "work_dir_golden": "target/llm-runs/schema/t_020_ecs/csharp/server/golden",
- "work_dir_llm": "target/llm-runs/schema/t_020_ecs/csharp/server/gpt-5/llm",
- "scorer_details": {
- "ecs_step_next_positions_count": {
- "pass": false,
- "partial": 0.0,
- "notes": {
- "error": "spacetime sql failed:\nWARNING: This command is UNSTABLE and subject to breaking changes.\n\nError: no such table: `next_positions`. If the table exists, it may be marked private.\n\nCaused by:\n HTTP status client error (400 Bad Request) for url (http://127.0.0.1:34379/v1/database/c20015874a697116ed39e7f80d0fb9c484518ec19d2cf28ab6bbc9a525d697e0/sql)\n",
- "phase": "sql"
- }
- },
- "ecs_next_pos_entity1": {
- "pass": false,
- "partial": 0.0,
- "notes": {
- "error": "spacetime sql failed:\nWARNING: This command is UNSTABLE and subject to breaking changes.\n\nError: no such table: `next_positions`. If the table exists, it may be marked private.\n\nCaused by:\n HTTP status client error (400 Bad Request) for url (http://127.0.0.1:34379/v1/database/c20015874a697116ed39e7f80d0fb9c484518ec19d2cf28ab6bbc9a525d697e0/sql)\n",
- "phase": "sql"
- }
- },
- "ecs_next_pos_entity2": {
- "pass": false,
- "partial": 0.0,
- "notes": {
- "error": "spacetime sql failed:\nWARNING: This command is UNSTABLE and subject to breaking changes.\n\nError: no such table: `next_positions`. If the table exists, it may be marked private.\n\nCaused by:\n HTTP status client error (400 Bad Request) for url (http://127.0.0.1:34379/v1/database/c20015874a697116ed39e7f80d0fb9c484518ec19d2cf28ab6bbc9a525d697e0/sql)\n",
- "phase": "sql"
- }
- },
- "schema_parity": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "golden_db": "schema-t-020-ecs-golden",
- "llm_db": "schema-t-020-ecs-gpt-5-llm",
- "reducers_diff": null,
- "reducers_equal": true,
- "server": "http://127.0.0.1:34379",
- "tables_diff": null,
- "tables_equal": true
- }
- },
- "ecs_seed_positions_count": {
- "pass": false,
- "partial": 0.0,
- "notes": {
- "error": "spacetime sql failed:\nWARNING: This command is UNSTABLE and subject to breaking changes.\n\nError: no such table: `positions`. If the table exists, it may be marked private.\n\nCaused by:\n HTTP status client error (400 Bad Request) for url (http://127.0.0.1:34379/v1/database/c20015874a697116ed39e7f80d0fb9c484518ec19d2cf28ab6bbc9a525d697e0/sql)\n",
- "phase": "sql"
- }
- }
- },
- "vendor": "openai",
- "started_at": "2026-01-27T19:58:04.281975972Z",
- "finished_at": "2026-01-27T19:59:08.067949434Z"
- },
- "t_021_multi_column_index": {
- "hash": "e3621eaacfd5238fb514ff8c09c277ccd66170773959e5b391507110bf3ac17b",
- "task": "t_021_multi_column_index",
- "lang": "csharp",
- "golden_published": true,
- "model_name": "GPT-5",
- "total_tests": 4,
- "passed_tests": 4,
- "llm_output": "using SpacetimeDB;\n\npublic static partial class Module\n{\n [SpacetimeDB.Table(Accessor = \"Log\")]\n [SpacetimeDB.Index.BTree(Name = \"by_user_day\", Columns = new[] { \"UserId\", \"Day\" })]\n public partial struct Log\n {\n [SpacetimeDB.PrimaryKey]\n public int Id;\n public int UserId;\n public int Day;\n public string Message;\n }\n\n [SpacetimeDB.Reducer]\n public static void Seed(ReducerContext ctx)\n {\n ctx.Db.Log.Insert(new Log { Id = 1, UserId = 7, Day = 1, Message = \"a\" });\n ctx.Db.Log.Insert(new Log { Id = 2, UserId = 7, Day = 2, Message = \"b\" });\n ctx.Db.Log.Insert(new Log { Id = 3, UserId = 9, Day = 1, Message = \"c\" });\n }\n}",
- "category": "schema",
- "route_api_model": "gpt-5",
- "golden_db": "schema-t-021-multi-column-index-golden",
- "llm_db": "schema-t-021-multi-column-index-gpt-5-llm",
- "work_dir_golden": "target/llm-runs/schema/t_021_multi_column_index/csharp/server/golden",
- "work_dir_llm": "target/llm-runs/schema/t_021_multi_column_index/csharp/server/gpt-5/llm",
- "scorer_details": {
- "mcindex_lookup_u7_d2": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "actual": 1,
- "expected": 1,
- "sql": "SELECT COUNT(*) AS n FROM Log WHERE UserId=7 AND Day=2"
- }
- },
- "mcindex_seed_count": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "actual": 3,
- "expected": 3,
- "sql": "SELECT COUNT(*) AS n FROM Log"
- }
- },
- "mcindex_lookup_u7_d1": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "actual": 1,
- "expected": 1,
- "sql": "SELECT COUNT(*) AS n FROM Log WHERE UserId=7 AND Day=1"
- }
- },
- "schema_parity": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "golden_db": "schema-t-021-multi-column-index-golden",
- "llm_db": "schema-t-021-multi-column-index-gpt-5-llm",
- "reducers_diff": null,
- "reducers_equal": true,
- "server": "http://127.0.0.1:34379",
- "tables_diff": null,
- "tables_equal": true
- }
- }
- },
- "vendor": "openai",
- "started_at": "2026-01-27T19:57:09.418092225Z",
- "finished_at": "2026-01-27T19:58:04.046455117Z"
- }
- }
- }
- ]
- }
- ],
- "golden_answers": {
- "basics/t_000_empty_reducers": {
- "answer": "using SpacetimeDB;\n\npublic static partial class Module\n{\n [Reducer]\n public static void EmptyReducer_NoArgs(ReducerContext ctx) { }\n\n [Reducer]\n public static void EmptyReducer_WithInt(ReducerContext ctx, int count) { }\n\n [Reducer]\n public static void EmptyReducer_WithString(ReducerContext ctx, string name) { }\n\n [Reducer]\n public static void EmptyReducer_WithTwoArgs(ReducerContext ctx, int count, string name) { }\n\n [Reducer]\n public static void EmptyReducer_WithThreeArgs(ReducerContext ctx, bool active, float ratio, string label) { }\n}",
- "syntax": "csharp"
- },
- "basics/t_001_basic_tables": {
- "answer": "using SpacetimeDB;\n\npublic static partial class Module\n{\n [Table(Accessor = \"users\")]\n public partial struct Users\n {\n [PrimaryKey] public int Id;\n public string Name;\n public int Age;\n public bool Active;\n }\n\n [Table(Accessor = \"products\")]\n public partial struct Products\n {\n [PrimaryKey] public int Id;\n public string Title;\n public float Price;\n public bool InStock;\n }\n\n [Table(Accessor = \"notes\")]\n public partial struct Notes\n {\n [PrimaryKey] public int Id;\n public string Body;\n public long Rating;\n public bool Pinned;\n }\n}\n",
- "syntax": "csharp"
- },
- "basics/t_002_scheduled_table": {
- "answer": "using SpacetimeDB;\n\npublic static partial class Module\n{\n [Table(Accessor = \"tick_timer\", Scheduled = nameof(Tick), ScheduledAt = nameof(TickTimer.ScheduledAt))]\n public partial struct TickTimer\n {\n [PrimaryKey, AutoInc] public ulong ScheduledId;\n public ScheduleAt ScheduledAt;\n }\n\n [Reducer]\n public static void Tick(ReducerContext ctx, TickTimer timer) { }\n\n [Reducer(ReducerKind.Init)]\n public static void Init(ReducerContext ctx)\n {\n var interval = new TimeDuration { Microseconds = 50_000 };\n ctx.Db.tick_timer.Insert(new TickTimer\n {\n ScheduledAt = new ScheduleAt.Interval(interval)\n });\n }\n}",
- "syntax": "csharp"
- },
- "basics/t_003_struct_in_table": {
- "answer": "using SpacetimeDB;\n\npublic static partial class Module\n{\n [Type]\n public partial struct Position\n {\n public int X;\n public int Y;\n }\n\n [Table(Accessor = \"entities\")]\n public partial struct Entity\n {\n [PrimaryKey] public int Id;\n public Position Pos;\n }\n}\n",
- "syntax": "csharp"
- },
- "basics/t_004_insert": {
- "answer": "using SpacetimeDB;\n\npublic static partial class Module\n{\n [Table(Accessor = \"users\")]\n public partial struct User\n {\n [PrimaryKey] public int Id;\n public string Name;\n public int Age;\n public bool Active;\n }\n\n [Reducer]\n public static void InsertUser(ReducerContext ctx, int id, string name, int age, bool active)\n {\n ctx.Db.users.Insert(new User { Id = id, Name = name, Age = age, Active = active });\n }\n}\n",
- "syntax": "csharp"
- },
- "basics/t_005_update": {
- "answer": "using SpacetimeDB;\n\npublic static partial class Module\n{\n [Table(Accessor = \"users\")]\n public partial struct User\n {\n [PrimaryKey] public int Id;\n public string Name;\n public int Age;\n public bool Active;\n }\n\n [Reducer]\n public static void UpdateUser(ReducerContext ctx, int id, string name, int age, bool active)\n {\n ctx.Db.users.Id.Update(new User { Id = id, Name = name, Age = age, Active = active });\n }\n}\n",
- "syntax": "csharp"
- },
- "basics/t_006_delete": {
- "answer": "using SpacetimeDB;\n\npublic static partial class Module\n{\n [Table(Accessor = \"users\")]\n public partial struct User\n {\n [PrimaryKey] public int Id;\n public string Name;\n public int Age;\n public bool Active;\n }\n\n [Reducer]\n public static void DeleteUser(ReducerContext ctx, int id)\n {\n ctx.Db.users.Id.Delete(id);\n }\n}\n",
- "syntax": "csharp"
- },
- "basics/t_007_crud": {
- "answer": "using SpacetimeDB;\n\npublic static partial class Module\n{\n [Table(Accessor = \"users\")]\n public partial struct User\n {\n [PrimaryKey] public int Id;\n public string Name;\n public int Age;\n public bool Active;\n }\n\n [Reducer]\n public static void Crud(ReducerContext ctx)\n {\n ctx.Db.users.Insert(new User { Id = 1, Name = \"Alice\", Age = 30, Active = true });\n ctx.Db.users.Insert(new User { Id = 2, Name = \"Bob\", Age = 22, Active = false });\n ctx.Db.users.Id.Update(new User { Id = 1, Name = \"Alice2\", Age = 31, Active = false });\n ctx.Db.users.Id.Delete(2);\n }\n}\n",
- "syntax": "csharp"
- },
- "basics/t_008_index_lookup": {
- "answer": "using SpacetimeDB;\n\npublic static partial class Module\n{\n [Table(Accessor = \"users\")]\n public partial struct User\n {\n [PrimaryKey] public int Id;\n public string Name;\n public int Age;\n public bool Active;\n }\n\n [Table(Accessor = \"results\")]\n public partial struct Result\n {\n [PrimaryKey] public int Id;\n public string Name;\n }\n\n [Reducer]\n public static void LookupUserName(ReducerContext ctx, int id)\n {\n var u = ctx.Db.users.Id.Find(id);\n if (u.HasValue)\n {\n var row = u.Value;\n ctx.Db.results.Insert(new Result { Id = row.Id, Name = row.Name });\n }\n }\n}\n",
- "syntax": "csharp"
- },
- "basics/t_009_init": {
- "answer": "using SpacetimeDB;\n\npublic static partial class Module\n{\n [Table(Accessor = \"users\")]\n public partial struct User\n {\n [PrimaryKey] public int Id;\n public string Name;\n public int Age;\n public bool Active;\n }\n\n [Reducer(ReducerKind.Init)]\n public static void Init(ReducerContext ctx)\n {\n ctx.Db.users.Insert(new User { Id = 1, Name = \"Alice\", Age = 30, Active = true });\n ctx.Db.users.Insert(new User { Id = 2, Name = \"Bob\", Age = 22, Active = false });\n }\n}\n",
- "syntax": "csharp"
- },
- "basics/t_010_connect": {
- "answer": "using SpacetimeDB;\n\npublic static partial class Module\n{\n [Table(Accessor = \"events\")]\n public partial struct Event\n {\n [PrimaryKey, AutoInc] public int Id;\n public string Kind;\n }\n\n [Reducer(ReducerKind.ClientConnected)]\n public static void ClientConnected(ReducerContext ctx)\n {\n ctx.Db.events.Insert(new Event { Kind = \"connected\" });\n }\n\n [Reducer(ReducerKind.ClientDisconnected)]\n public static void ClientDisconnected(ReducerContext ctx)\n {\n ctx.Db.events.Insert(new Event { Kind = \"disconnected\" });\n }\n}\n",
- "syntax": "csharp"
- },
- "basics/t_011_helper_function": {
- "answer": "using SpacetimeDB;\n\npublic static partial class Module\n{\n [Table(Accessor = \"results\")]\n public partial struct Result\n {\n [PrimaryKey] public int Id;\n public int Sum;\n }\n\n static int Add(int a, int b) => a + b;\n\n [Reducer]\n public static void ComputeSum(ReducerContext ctx, int id, int a, int b)\n {\n ctx.Db.results.Insert(new Result { Id = id, Sum = Add(a, b) });\n }\n}\n",
- "syntax": "csharp"
- },
- "schema/t_012_spacetime_product_type": {
- "answer": "using SpacetimeDB;\n\npublic static partial class Module\n{\n [Type]\n public partial struct Score\n {\n public int Left;\n public int Right;\n }\n\n [Table(Accessor = \"results\")]\n public partial struct Result\n {\n [PrimaryKey] public int Id;\n public Score Value;\n }\n\n [Reducer]\n public static void SetScore(ReducerContext ctx, int id, int left, int right)\n {\n ctx.Db.results.Insert(new Result { Id = id, Value = new Score { Left = left, Right = right } });\n }\n}\n",
- "syntax": "csharp"
- },
- "schema/t_013_spacetime_sum_type": {
- "answer": "using SpacetimeDB;\n\npublic static partial class Module\n{\n [Type]\n public partial struct Circle { public int Radius; }\n\n [Type]\n public partial struct Rectangle { public int Width; public int Height; }\n\n [Type]\n public partial record Shape : TaggedEnum<(Circle Circle, Rectangle Rectangle)> {}\n\n [Table(Accessor = \"results\")]\n public partial struct Result\n {\n [PrimaryKey] public int Id;\n public Shape Value;\n }\n\n [Reducer]\n public static void SetCircle(ReducerContext ctx, int id, int radius)\n {\n ctx.Db.results.Insert(new Result { Id = id, Value = new Shape.Circle(new Circle { Radius = radius }) });\n }\n}\n",
- "syntax": "csharp"
- },
- "schema/t_014_elementary_columns": {
- "answer": "using SpacetimeDB;\n\npublic static partial class Module\n{\n [Table(Accessor = \"primitives\")]\n public partial struct Primitive\n {\n [PrimaryKey] public int Id;\n public int Count;\n public long Total;\n public float Price;\n public double Ratio;\n public bool Active;\n public string Name;\n }\n\n [Reducer]\n public static void Seed(ReducerContext ctx)\n {\n ctx.Db.primitives.Insert(new Primitive {\n Id = 1,\n Count = 2,\n Total = 3000000000,\n Price = 1.5f,\n Ratio = 2.25,\n Active = true,\n Name = \"Alice\"\n });\n }\n}\n",
- "syntax": "csharp"
- },
- "schema/t_015_product_type_columns": {
- "answer": "using SpacetimeDB;\n\npublic static partial class Module\n{\n [Type]\n public partial struct Address\n {\n public string Street;\n public int Zip;\n }\n\n [Type]\n public partial struct Position\n {\n public int X;\n public int Y;\n }\n\n [Table(Accessor = \"profiles\")]\n public partial struct Profile\n {\n [PrimaryKey] public int Id;\n public Address Home;\n public Address Work;\n public Position Pos;\n }\n\n [Reducer]\n public static void Seed(ReducerContext ctx)\n {\n ctx.Db.profiles.Insert(new Profile {\n Id = 1,\n Home = new Address { Street = \"1 Main\", Zip = 11111 },\n Work = new Address { Street = \"2 Broad\", Zip = 22222 },\n Pos = new Position { X = 7, Y = 9 }\n });\n }\n}\n",
- "syntax": "csharp"
- },
- "schema/t_016_sum_type_columns": {
- "answer": "using SpacetimeDB;\n\npublic static partial class Module\n{\n [Type]\n public partial struct Circle { public int Radius; }\n\n [Type]\n public partial struct Rectangle { public int Width; public int Height; }\n\n [Type]\n public partial record Shape : TaggedEnum<(Circle Circle, Rectangle Rectangle)> {}\n\n [Table(Accessor = \"drawings\")]\n public partial struct Drawing\n {\n [PrimaryKey] public int Id;\n public Shape A;\n public Shape B;\n }\n\n [Reducer]\n public static void Seed(ReducerContext ctx)\n {\n ctx.Db.drawings.Insert(new Drawing {\n Id = 1,\n A = new Shape.Circle(new Circle { Radius = 10 }),\n B = new Shape.Rectangle(new Rectangle { Width = 4, Height = 6 })\n });\n }\n}\n",
- "syntax": "csharp"
- },
- "schema/t_017_scheduled_columns": {
- "answer": "using SpacetimeDB;\n\npublic static partial class Module\n{\n [Table(Accessor = \"tick_timer\", Scheduled = nameof(Tick), ScheduledAt = nameof(ScheduledAt))]\n public partial struct TickTimer\n {\n [PrimaryKey, AutoInc] public ulong ScheduledId;\n public ScheduleAt ScheduledAt;\n }\n\n [Reducer]\n public static void Tick(ReducerContext ctx, TickTimer schedule) { }\n\n [Reducer(ReducerKind.Init)]\n public static void Init(ReducerContext ctx)\n {\n var interval = new TimeDuration { Microseconds = 50_000 };\n ctx.Db.tick_timer.Insert(new TickTimer\n {\n ScheduledId = 0,\n ScheduledAt = new ScheduleAt.Interval(interval)\n });\n }\n}\n",
- "syntax": "csharp"
- },
- "schema/t_018_constraints": {
- "answer": "using SpacetimeDB;\n\npublic static partial class Module\n{\n [SpacetimeDB.Table(Accessor = \"accounts\", Public = true)]\n [SpacetimeDB.Index.BTree(Name = \"by_name\", Columns = [nameof(Name)])]\n public partial struct Account\n {\n [SpacetimeDB.PrimaryKey] public int Id;\n [SpacetimeDB.Unique] public string Email;\n public string Name;\n }\n\n [SpacetimeDB.Reducer]\n public static void Seed(ReducerContext ctx)\n {\n ctx.Db.accounts.Insert(new Account { Id = 1, Email = \"a@example.com\", Name = \"Alice\" });\n ctx.Db.accounts.Insert(new Account { Id = 2, Email = \"b@example.com\", Name = \"Bob\" });\n }\n}",
- "syntax": "csharp"
- },
- "schema/t_019_many_to_many": {
- "answer": "using SpacetimeDB;\n\npublic static partial class Module\n{\n [Table(Accessor = \"users\")]\n public partial struct User\n {\n [PrimaryKey] public int UserId;\n public string Name;\n }\n\n [Table(Accessor = \"groups\")]\n public partial struct Group\n {\n [PrimaryKey] public int GroupId;\n public string Title;\n }\n\n [Table(Accessor = \"memberships\")]\n [SpacetimeDB.Index.BTree(Name = \"by_user\", Columns = new[] { nameof(UserId) })]\n [SpacetimeDB.Index.BTree(Name = \"by_group\", Columns = new[] { nameof(GroupId) })]\n public partial struct Membership\n {\n [PrimaryKey] public int Id;\n public int UserId;\n public int GroupId;\n }\n\n [Reducer]\n public static void Seed(ReducerContext ctx)\n {\n ctx.Db.users.Insert(new User { UserId = 1, Name = \"Alice\" });\n ctx.Db.users.Insert(new User { UserId = 2, Name = \"Bob\" });\n\n ctx.Db.groups.Insert(new Group { GroupId = 10, Title = \"Admin\" });\n ctx.Db.groups.Insert(new Group { GroupId = 20, Title = \"Dev\" });\n\n ctx.Db.memberships.Insert(new Membership { Id = 1, UserId = 1, GroupId = 10 });\n ctx.Db.memberships.Insert(new Membership { Id = 2, UserId = 1, GroupId = 20 });\n ctx.Db.memberships.Insert(new Membership { Id = 3, UserId = 2, GroupId = 20 });\n }\n}\n",
- "syntax": "csharp"
- },
- "schema/t_020_ecs": {
- "answer": "using SpacetimeDB;\n\npublic static partial class Module\n{\n [Table(Accessor = \"entities\")]\n public partial struct Entity { [PrimaryKey] public int Id; }\n\n [Table(Accessor = \"positions\")]\n public partial struct Position\n {\n [PrimaryKey] public int EntityId;\n public int X;\n public int Y;\n }\n\n [Table(Accessor = \"velocities\")]\n public partial struct Velocity\n {\n [PrimaryKey] public int EntityId;\n public int VX;\n public int VY;\n }\n\n [Table(Accessor = \"next_positions\")]\n public partial struct NextPosition\n {\n [PrimaryKey] public int EntityId;\n public int X;\n public int Y;\n }\n\n [Reducer]\n public static void Seed(ReducerContext ctx)\n {\n ctx.Db.entities.Insert(new Entity { Id = 1 });\n ctx.Db.entities.Insert(new Entity { Id = 2 });\n\n ctx.Db.positions.Insert(new Position { EntityId = 1, X = 0, Y = 0 });\n ctx.Db.positions.Insert(new Position { EntityId = 2, X = 10, Y = 0 });\n\n ctx.Db.velocities.Insert(new Velocity { EntityId = 1, VX = 1, VY = 0 });\n ctx.Db.velocities.Insert(new Velocity { EntityId = 2, VX = -2, VY = 3 });\n }\n\n [Reducer]\n public static void Step(ReducerContext ctx)\n {\n foreach (var p in ctx.Db.positions.Iter())\n {\n var velOpt = ctx.Db.velocities.EntityId.Find(p.EntityId);\n if (!velOpt.HasValue) continue;\n\n var np = new NextPosition {\n EntityId = p.EntityId,\n X = p.X + velOpt.Value.VX,\n Y = p.Y + velOpt.Value.VY\n };\n\n if (ctx.Db.next_positions.EntityId.Find(p.EntityId).HasValue)\n ctx.Db.next_positions.EntityId.Update(np);\n else\n ctx.Db.next_positions.Insert(np);\n }\n }\n}\n",
- "syntax": "csharp"
- },
- "schema/t_021_multi_column_index": {
- "answer": "using SpacetimeDB;\n\npublic static partial class Module\n{\n [Table(Accessor = \"logs\")]\n [SpacetimeDB.Index.BTree(Name = \"by_user_day\", Columns = new[] { nameof(UserId), nameof(Day) })]\n public partial struct Log\n {\n [PrimaryKey] public int Id;\n public int UserId;\n public int Day;\n public string Message;\n }\n\n [Reducer]\n public static void Seed(ReducerContext ctx)\n {\n ctx.Db.logs.Insert(new Log { Id = 1, UserId = 7, Day = 1, Message = \"a\" });\n ctx.Db.logs.Insert(new Log { Id = 2, UserId = 7, Day = 2, Message = \"b\" });\n ctx.Db.logs.Insert(new Log { Id = 3, UserId = 9, Day = 1, Message = \"c\" });\n }\n}\n",
- "syntax": "csharp"
- },
- "t_000_empty_reducers": {
- "answer": "using SpacetimeDB;\n\npublic static partial class Module\n{\n [Reducer]\n public static void EmptyReducer_NoArgs(ReducerContext ctx) { }\n\n [Reducer]\n public static void EmptyReducer_WithInt(ReducerContext ctx, int count) { }\n\n [Reducer]\n public static void EmptyReducer_WithString(ReducerContext ctx, string name) { }\n\n [Reducer]\n public static void EmptyReducer_WithTwoArgs(ReducerContext ctx, int count, string name) { }\n\n [Reducer]\n public static void EmptyReducer_WithThreeArgs(ReducerContext ctx, bool active, float ratio, string label) { }\n}",
- "syntax": "csharp"
- },
- "t_001_basic_tables": {
- "answer": "using SpacetimeDB;\n\npublic static partial class Module\n{\n [Table(Accessor = \"User\")]\n public partial struct User\n {\n [PrimaryKey] public int Id;\n public string Name;\n public int Age;\n public bool Active;\n }\n\n [Table(Accessor = \"Product\")]\n public partial struct Product\n {\n [PrimaryKey] public int Id;\n public string Title;\n public float Price;\n public bool InStock;\n }\n\n [Table(Accessor = \"Note\")]\n public partial struct Note\n {\n [PrimaryKey] public int Id;\n public string Body;\n public long Rating;\n public bool Pinned;\n }\n}\n",
- "syntax": "csharp"
- },
- "t_002_scheduled_table": {
- "answer": "using SpacetimeDB;\n\npublic static partial class Module\n{\n [Table(Accessor = \"TickTimer\", Scheduled = nameof(Tick), ScheduledAt = nameof(TickTimer.ScheduledAt))]\n public partial struct TickTimer\n {\n [PrimaryKey, AutoInc] public ulong ScheduledId;\n public ScheduleAt ScheduledAt;\n }\n\n [Reducer]\n public static void Tick(ReducerContext ctx, TickTimer timer) { }\n\n [Reducer(ReducerKind.Init)]\n public static void Init(ReducerContext ctx)\n {\n var interval = new TimeDuration { Microseconds = 50_000 };\n ctx.Db.TickTimer.Insert(new TickTimer\n {\n ScheduledAt = new ScheduleAt.Interval(interval)\n });\n }\n}\n",
- "syntax": "csharp"
- },
- "t_003_struct_in_table": {
- "answer": "using SpacetimeDB;\n\npublic static partial class Module\n{\n [Type]\n public partial struct Position\n {\n public int X;\n public int Y;\n }\n\n [Table(Accessor = \"Entity\")]\n public partial struct Entity\n {\n [PrimaryKey] public int Id;\n public Position Pos;\n }\n}\n",
- "syntax": "csharp"
- },
- "t_004_insert": {
- "answer": "using SpacetimeDB;\n\npublic static partial class Module\n{\n [Table(Accessor = \"User\")]\n public partial struct User\n {\n [PrimaryKey] public int Id;\n public string Name;\n public int Age;\n public bool Active;\n }\n\n [Reducer]\n public static void InsertUser(ReducerContext ctx, int id, string name, int age, bool active)\n {\n ctx.Db.User.Insert(new User { Id = id, Name = name, Age = age, Active = active });\n }\n}\n",
- "syntax": "csharp"
- },
- "t_005_update": {
- "answer": "using SpacetimeDB;\n\npublic static partial class Module\n{\n [Table(Accessor = \"User\")]\n public partial struct User\n {\n [PrimaryKey] public int Id;\n public string Name;\n public int Age;\n public bool Active;\n }\n\n [Reducer]\n public static void UpdateUser(ReducerContext ctx, int id, string name, int age, bool active)\n {\n ctx.Db.User.Id.Update(new User { Id = id, Name = name, Age = age, Active = active });\n }\n}\n",
- "syntax": "csharp"
- },
- "t_006_delete": {
- "answer": "using SpacetimeDB;\n\npublic static partial class Module\n{\n [Table(Accessor = \"User\")]\n public partial struct User\n {\n [PrimaryKey] public int Id;\n public string Name;\n public int Age;\n public bool Active;\n }\n\n [Reducer]\n public static void DeleteUser(ReducerContext ctx, int id)\n {\n ctx.Db.User.Id.Delete(id);\n }\n}\n",
- "syntax": "csharp"
- },
- "t_007_crud": {
- "answer": "using SpacetimeDB;\n\npublic static partial class Module\n{\n [Table(Accessor = \"User\")]\n public partial struct User\n {\n [PrimaryKey] public int Id;\n public string Name;\n public int Age;\n public bool Active;\n }\n\n [Reducer]\n public static void Crud(ReducerContext ctx)\n {\n ctx.Db.User.Insert(new User { Id = 1, Name = \"Alice\", Age = 30, Active = true });\n ctx.Db.User.Insert(new User { Id = 2, Name = \"Bob\", Age = 22, Active = false });\n ctx.Db.User.Id.Update(new User { Id = 1, Name = \"Alice2\", Age = 31, Active = false });\n ctx.Db.User.Id.Delete(2);\n }\n}\n",
- "syntax": "csharp"
- },
- "t_008_index_lookup": {
- "answer": "using SpacetimeDB;\n\npublic static partial class Module\n{\n [Table(Accessor = \"User\")]\n public partial struct User\n {\n [PrimaryKey] public int Id;\n public string Name;\n public int Age;\n public bool Active;\n }\n\n [Table(Accessor = \"Result\")]\n public partial struct Result\n {\n [PrimaryKey] public int Id;\n public string Name;\n }\n\n [Reducer]\n public static void LookupUserName(ReducerContext ctx, int id)\n {\n var u = ctx.Db.User.Id.Find(id);\n if (u.HasValue)\n {\n var row = u.Value;\n ctx.Db.Result.Insert(new Result { Id = row.Id, Name = row.Name });\n }\n }\n}\n",
- "syntax": "csharp"
- },
- "t_009_init": {
- "answer": "using SpacetimeDB;\n\npublic static partial class Module\n{\n [Table(Accessor = \"User\")]\n public partial struct User\n {\n [PrimaryKey] public int Id;\n public string Name;\n public int Age;\n public bool Active;\n }\n\n [Reducer(ReducerKind.Init)]\n public static void Init(ReducerContext ctx)\n {\n ctx.Db.User.Insert(new User { Id = 1, Name = \"Alice\", Age = 30, Active = true });\n ctx.Db.User.Insert(new User { Id = 2, Name = \"Bob\", Age = 22, Active = false });\n }\n}\n",
- "syntax": "csharp"
- },
- "t_010_connect": {
- "answer": "using SpacetimeDB;\n\npublic static partial class Module\n{\n [Table(Accessor = \"Event\")]\n public partial struct Event\n {\n [PrimaryKey, AutoInc] public int Id;\n public string Kind;\n }\n\n [Reducer(ReducerKind.ClientConnected)]\n public static void ClientConnected(ReducerContext ctx)\n {\n ctx.Db.Event.Insert(new Event { Kind = \"connected\" });\n }\n\n [Reducer(ReducerKind.ClientDisconnected)]\n public static void ClientDisconnected(ReducerContext ctx)\n {\n ctx.Db.Event.Insert(new Event { Kind = \"disconnected\" });\n }\n}\n",
- "syntax": "csharp"
- },
- "t_011_helper_function": {
- "answer": "using SpacetimeDB;\n\npublic static partial class Module\n{\n [Table(Accessor = \"Result\")]\n public partial struct Result\n {\n [PrimaryKey] public int Id;\n public int Sum;\n }\n\n static int Add(int a, int b) => a + b;\n\n [Reducer]\n public static void ComputeSum(ReducerContext ctx, int id, int a, int b)\n {\n ctx.Db.Result.Insert(new Result { Id = id, Sum = Add(a, b) });\n }\n}\n",
- "syntax": "csharp"
- },
- "t_012_spacetime_product_type": {
- "answer": "using SpacetimeDB;\n\npublic static partial class Module\n{\n [Type]\n public partial struct Score\n {\n public int Left;\n public int Right;\n }\n \n [Table(Accessor = \"Result\", Public = true)]\n public partial struct Result\n {\n [PrimaryKey] public int Id;\n public Score Value;\n }\n\n [Reducer]\n public static void SetScore(ReducerContext ctx, int id, int left, int right)\n {\n ctx.Db.Result.Insert(new Result { Id = id, Value = new Score { Left = left, Right = right } });\n }\n}\n",
- "syntax": "csharp"
- },
- "t_013_spacetime_sum_type": {
- "answer": "using SpacetimeDB;\n\npublic static partial class Module\n{\n [Type]\n public partial struct Circle { public int Radius; }\n\n [Type]\n public partial struct Rectangle { public int Width; public int Height; }\n\n [Type]\n public partial record Shape : TaggedEnum<(Circle Circle, Rectangle Rectangle)> {}\n\n [Table(Accessor = \"Result\")]\n public partial struct Result\n {\n [PrimaryKey] public int Id;\n public Shape Value;\n }\n\n [Reducer]\n public static void SetCircle(ReducerContext ctx, int id, int radius)\n {\n ctx.Db.Result.Insert(new Result { Id = id, Value = new Shape.Circle(new Circle { Radius = radius }) });\n }\n}\n",
- "syntax": "csharp"
- },
- "t_014_elementary_columns": {
- "answer": "using SpacetimeDB;\n\npublic static partial class Module\n{\n [Table(Accessor = \"Primitive\")]\n public partial struct Primitive\n {\n [PrimaryKey] public int Id;\n public int Count;\n public long Total;\n public float Price;\n public double Ratio;\n public bool Active;\n public string Name;\n }\n\n [Reducer]\n public static void Seed(ReducerContext ctx)\n {\n ctx.Db.Primitive.Insert(new Primitive {\n Id = 1,\n Count = 2,\n Total = 3000000000,\n Price = 1.5f,\n Ratio = 2.25,\n Active = true,\n Name = \"Alice\"\n });\n }\n}\n",
- "syntax": "csharp"
- },
- "t_015_product_type_columns": {
- "answer": "using SpacetimeDB;\n\npublic static partial class Module\n{\n [Type]\n public partial struct Address\n {\n public string Street;\n public int Zip;\n }\n\n [Type]\n public partial struct Position\n {\n public int X;\n public int Y;\n }\n\n [Table(Accessor = \"Profile\", Public = true)]\n public partial struct Profile\n {\n [PrimaryKey] public int Id;\n public Address Home;\n public Address Work;\n public Position Pos;\n }\n\n [Reducer]\n public static void Seed(ReducerContext ctx)\n {\n ctx.Db.Profile.Insert(new Profile {\n Id = 1,\n Home = new Address { Street = \"1 Main\", Zip = 11111 },\n Work = new Address { Street = \"2 Broad\", Zip = 22222 },\n Pos = new Position { X = 7, Y = 9 }\n });\n }\n}\n",
- "syntax": "csharp"
- },
- "t_016_sum_type_columns": {
- "answer": "using SpacetimeDB;\n\npublic static partial class Module\n{\n [Type]\n public partial struct Circle { public int Radius; }\n\n [Type]\n public partial struct Rectangle { public int Width; public int Height; }\n\n [Type]\n public partial record Shape : TaggedEnum<(Circle Circle, Rectangle Rectangle)> {}\n\n [Table(Accessor = \"Drawing\")]\n public partial struct Drawing\n {\n [PrimaryKey] public int Id;\n public Shape A;\n public Shape B;\n }\n\n [Reducer]\n public static void Seed(ReducerContext ctx)\n {\n ctx.Db.Drawing.Insert(new Drawing {\n Id = 1,\n A = new Shape.Circle(new Circle { Radius = 10 }),\n B = new Shape.Rectangle(new Rectangle { Width = 4, Height = 6 })\n });\n }\n}\n",
- "syntax": "csharp"
- },
- "t_017_scheduled_columns": {
- "answer": "using SpacetimeDB;\n\npublic static partial class Module\n{\n [Table(Accessor = \"TickTimer\", Scheduled = nameof(Tick), ScheduledAt = nameof(ScheduledAt))]\n public partial struct TickTimer\n {\n [PrimaryKey, AutoInc] public ulong ScheduledId;\n public ScheduleAt ScheduledAt;\n }\n\n [Reducer]\n public static void Tick(ReducerContext ctx, TickTimer schedule) { }\n\n [Reducer(ReducerKind.Init)]\n public static void Init(ReducerContext ctx)\n {\n var interval = new TimeDuration { Microseconds = 50_000 };\n ctx.Db.TickTimer.Insert(new TickTimer\n {\n ScheduledId = 0,\n ScheduledAt = new ScheduleAt.Interval(interval)\n });\n }\n}\n",
- "syntax": "csharp"
- },
- "t_018_constraints": {
- "answer": "using SpacetimeDB;\n\npublic static partial class Module\n{\n [SpacetimeDB.Table(Accessor = \"Account\", Public = true)]\n [SpacetimeDB.Index.BTree(Name = \"by_name\", Columns = [nameof(Name)])]\n public partial struct Account\n {\n [SpacetimeDB.PrimaryKey] public int Id;\n [SpacetimeDB.Unique] public string Email;\n public string Name;\n }\n\n [SpacetimeDB.Reducer]\n public static void Seed(ReducerContext ctx)\n {\n ctx.Db.Account.Insert(new Account { Id = 1, Email = \"a@example.com\", Name = \"Alice\" });\n ctx.Db.Account.Insert(new Account { Id = 2, Email = \"b@example.com\", Name = \"Bob\" });\n }\n}\n",
- "syntax": "csharp"
- },
- "t_019_many_to_many": {
- "answer": "using SpacetimeDB;\n\npublic static partial class Module\n{\n [Table(Accessor = \"User\")]\n public partial struct User\n {\n [PrimaryKey] public int UserId;\n public string Name;\n }\n\n [Table(Accessor = \"Group\")]\n public partial struct Group\n {\n [PrimaryKey] public int GroupId;\n public string Title;\n }\n\n [Table(Accessor = \"Membership\")]\n [SpacetimeDB.Index.BTree(Name = \"by_user\", Columns = new[] { nameof(UserId) })]\n [SpacetimeDB.Index.BTree(Name = \"by_group\", Columns = new[] { nameof(GroupId) })]\n public partial struct Membership\n {\n [PrimaryKey] public int Id;\n public int UserId;\n public int GroupId;\n }\n\n [Reducer]\n public static void Seed(ReducerContext ctx)\n {\n ctx.Db.User.Insert(new User { UserId = 1, Name = \"Alice\" });\n ctx.Db.User.Insert(new User { UserId = 2, Name = \"Bob\" });\n\n ctx.Db.Group.Insert(new Group { GroupId = 10, Title = \"Admin\" });\n ctx.Db.Group.Insert(new Group { GroupId = 20, Title = \"Dev\" });\n\n ctx.Db.Membership.Insert(new Membership { Id = 1, UserId = 1, GroupId = 10 });\n ctx.Db.Membership.Insert(new Membership { Id = 2, UserId = 1, GroupId = 20 });\n ctx.Db.Membership.Insert(new Membership { Id = 3, UserId = 2, GroupId = 20 });\n }\n}\n",
- "syntax": "csharp"
- },
- "t_020_ecs": {
- "answer": "using SpacetimeDB;\n\npublic static partial class Module\n{\n [Table(Accessor = \"Entity\")]\n public partial struct Entity { [PrimaryKey] public int Id; }\n\n [Table(Accessor = \"Position\")]\n public partial struct Position\n {\n [PrimaryKey] public int EntityId;\n public int X;\n public int Y;\n }\n\n [Table(Accessor = \"Velocity\")]\n public partial struct Velocity\n {\n [PrimaryKey] public int EntityId;\n public int VX;\n public int VY;\n }\n\n [Table(Accessor = \"NextPosition\")]\n public partial struct NextPosition\n {\n [PrimaryKey] public int EntityId;\n public int X;\n public int Y;\n }\n\n [Reducer]\n public static void Seed(ReducerContext ctx)\n {\n ctx.Db.Entity.Insert(new Entity { Id = 1 });\n ctx.Db.Entity.Insert(new Entity { Id = 2 });\n\n ctx.Db.Position.Insert(new Position { EntityId = 1, X = 0, Y = 0 });\n ctx.Db.Position.Insert(new Position { EntityId = 2, X = 10, Y = 0 });\n\n ctx.Db.Velocity.Insert(new Velocity { EntityId = 1, VX = 1, VY = 0 });\n ctx.Db.Velocity.Insert(new Velocity { EntityId = 2, VX = -2, VY = 3 });\n }\n\n [Reducer]\n public static void Step(ReducerContext ctx)\n {\n foreach (var p in ctx.Db.Position.Iter())\n {\n var velOpt = ctx.Db.Velocity.EntityId.Find(p.EntityId);\n if (!velOpt.HasValue) continue;\n\n var np = new NextPosition {\n EntityId = p.EntityId,\n X = p.X + velOpt.Value.VX,\n Y = p.Y + velOpt.Value.VY\n };\n\n if (ctx.Db.NextPosition.EntityId.Find(p.EntityId).HasValue)\n ctx.Db.NextPosition.EntityId.Update(np);\n else\n ctx.Db.NextPosition.Insert(np);\n }\n }\n}\n",
- "syntax": "csharp"
- },
- "t_021_multi_column_index": {
- "answer": "using SpacetimeDB;\n\npublic static partial class Module\n{\n [Table(Accessor = \"Log\")]\n [SpacetimeDB.Index.BTree(Name = \"by_user_day\", Columns = new[] { nameof(UserId), nameof(Day) })]\n public partial struct Log\n {\n [PrimaryKey] public int Id;\n public int UserId;\n public int Day;\n public string Message;\n }\n\n [Reducer]\n public static void Seed(ReducerContext ctx)\n {\n ctx.Db.Log.Insert(new Log { Id = 1, UserId = 7, Day = 1, Message = \"a\" });\n ctx.Db.Log.Insert(new Log { Id = 2, UserId = 7, Day = 2, Message = \"b\" });\n ctx.Db.Log.Insert(new Log { Id = 3, UserId = 9, Day = 1, Message = \"c\" });\n }\n}\n",
- "syntax": "csharp"
- }
- }
- }
- ]
-}
diff --git a/docs/llms/docs-benchmark-details.lock b/docs/llms/docs-benchmark-details.lock
deleted file mode 100644
index e69de29bb2d..00000000000
diff --git a/docs/llms/docs-benchmark-summary.json b/docs/llms/docs-benchmark-summary.json
deleted file mode 100644
index bf684185512..00000000000
--- a/docs/llms/docs-benchmark-summary.json
+++ /dev/null
@@ -1,113 +0,0 @@
-{
- "version": 1,
- "generated_at": "2026-01-27T20:01:19.767Z",
- "by_language": {
- "csharp": {
- "modes": {
- "docs": {
- "hash": "e3621eaacfd5238fb514ff8c09c277ccd66170773959e5b391507110bf3ac17b",
- "models": {
- "GPT-5": {
- "categories": {
- "basics": {
- "tasks": 12,
- "total_tests": 27,
- "passed_tests": 27,
- "pass_pct": 100.0,
- "task_pass_equiv": 12.0,
- "task_pass_pct": 100.0
- },
- "schema": {
- "tasks": 10,
- "total_tests": 34,
- "passed_tests": 25,
- "pass_pct": 73.52941,
- "task_pass_equiv": 7.3666663,
- "task_pass_pct": 73.666664
- }
- },
- "totals": {
- "tasks": 22,
- "total_tests": 61,
- "passed_tests": 52,
- "pass_pct": 85.2459,
- "task_pass_equiv": 19.366667,
- "task_pass_pct": 88.030304
- }
- }
- }
- }
- }
- },
- "rust": {
- "modes": {
- "docs": {
- "hash": "d1bf0b033db905c668d016082c762eb4b91edd1299f7b8d4bcc6def5398610f9",
- "models": {
- "GPT-5": {
- "categories": {
- "basics": {
- "tasks": 12,
- "total_tests": 27,
- "passed_tests": 5,
- "pass_pct": 18.518518,
- "task_pass_equiv": 1.3333334,
- "task_pass_pct": 11.111112
- },
- "schema": {
- "tasks": 10,
- "total_tests": 32,
- "passed_tests": 8,
- "pass_pct": 25.0,
- "task_pass_equiv": 2.05,
- "task_pass_pct": 20.5
- }
- },
- "totals": {
- "tasks": 22,
- "total_tests": 59,
- "passed_tests": 13,
- "pass_pct": 22.033897,
- "task_pass_equiv": 3.3833334,
- "task_pass_pct": 15.378788
- }
- }
- }
- },
- "rustdoc_json": {
- "hash": "2a0f4ec42cac03fb3da542793b311e4b399845c688bb0660a6c231c82e96c56a",
- "models": {
- "GPT-5": {
- "categories": {
- "basics": {
- "tasks": 12,
- "total_tests": 27,
- "passed_tests": 26,
- "pass_pct": 96.296295,
- "task_pass_equiv": 11.0,
- "task_pass_pct": 91.66667
- },
- "schema": {
- "tasks": 10,
- "total_tests": 34,
- "passed_tests": 23,
- "pass_pct": 67.64706,
- "task_pass_equiv": 6.5333333,
- "task_pass_pct": 65.33333
- }
- },
- "totals": {
- "tasks": 22,
- "total_tests": 61,
- "passed_tests": 49,
- "pass_pct": 80.327866,
- "task_pass_equiv": 17.533335,
- "task_pass_pct": 79.696976
- }
- }
- }
- }
- }
- }
- }
-}
\ No newline at end of file
diff --git a/docs/llms/llm-comparison-details.json b/docs/llms/llm-comparison-details.json
deleted file mode 100644
index 186a2936080..00000000000
--- a/docs/llms/llm-comparison-details.json
+++ /dev/null
@@ -1,28839 +0,0 @@
-{
- "languages": [
- {
- "lang": "csharp",
- "modes": [
- {
- "mode": "docs",
- "hash": "a4ddc223e2035781ae7e86c8c38c0d78212e9a0c4149c6535625b4033878e3a4",
- "models": [
- {
- "name": "Grok 4",
- "route_api_model": "grok-4",
- "tasks": {
- "t_000_empty_reducers": {
- "hash": "a4ddc223e2035781ae7e86c8c38c0d78212e9a0c4149c6535625b4033878e3a4",
- "task": "t_000_empty_reducers",
- "lang": "csharp",
- "golden_published": true,
- "model_name": "Grok 4",
- "total_tests": 1,
- "passed_tests": 1,
- "category": "basics",
- "route_api_model": "grok-4",
- "scorer_details": {
- "schema_parity": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "reducers_diff": null,
- "reducers_equal": true,
- "tables_diff": null,
- "tables_equal": true
- }
- }
- },
- "vendor": "xai"
- },
- "t_001_basic_tables": {
- "hash": "a4ddc223e2035781ae7e86c8c38c0d78212e9a0c4149c6535625b4033878e3a4",
- "task": "t_001_basic_tables",
- "lang": "csharp",
- "golden_published": true,
- "model_name": "Grok 4",
- "total_tests": 1,
- "passed_tests": 1,
- "category": "basics",
- "route_api_model": "grok-4",
- "scorer_details": {
- "schema_parity": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "reducers_diff": null,
- "reducers_equal": true,
- "tables_diff": null,
- "tables_equal": true
- }
- }
- },
- "vendor": "xai"
- },
- "t_002_scheduled_table": {
- "hash": "a4ddc223e2035781ae7e86c8c38c0d78212e9a0c4149c6535625b4033878e3a4",
- "task": "t_002_scheduled_table",
- "lang": "csharp",
- "golden_published": true,
- "model_name": "Grok 4",
- "total_tests": 1,
- "passed_tests": 1,
- "category": "basics",
- "route_api_model": "grok-4",
- "scorer_details": {
- "schema_parity": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "reducers_diff": null,
- "reducers_equal": true,
- "tables_diff": null,
- "tables_equal": true
- }
- }
- },
- "vendor": "xai"
- },
- "t_003_struct_in_table": {
- "hash": "a4ddc223e2035781ae7e86c8c38c0d78212e9a0c4149c6535625b4033878e3a4",
- "task": "t_003_struct_in_table",
- "lang": "csharp",
- "golden_published": true,
- "model_name": "Grok 4",
- "total_tests": 1,
- "passed_tests": 1,
- "category": "basics",
- "route_api_model": "grok-4",
- "scorer_details": {
- "schema_parity": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "reducers_diff": null,
- "reducers_equal": true,
- "tables_diff": null,
- "tables_equal": true
- }
- }
- },
- "vendor": "xai"
- },
- "t_004_insert": {
- "hash": "a4ddc223e2035781ae7e86c8c38c0d78212e9a0c4149c6535625b4033878e3a4",
- "task": "t_004_insert",
- "lang": "csharp",
- "golden_published": true,
- "model_name": "Grok 4",
- "total_tests": 2,
- "passed_tests": 2,
- "category": "basics",
- "route_api_model": "grok-4",
- "scorer_details": {
- "schema_parity": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "reducers_diff": null,
- "reducers_equal": true,
- "tables_diff": null,
- "tables_equal": true
- }
- },
- "data_parity_insert_user": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "args": [
- 1,
- "Alice",
- 30,
- true
- ],
- "golden_out": "Id | Name | Age | Active ----+---------+-----+-------- 1 | \"Alice\" | 30 | true",
- "llm_out": "Id | Name | Age | Active ----+---------+-----+-------- 1 | \"Alice\" | 30 | true",
- "query": "SELECT Id, Name, Age, Active FROM User WHERE Id=1",
- "reducer": "insert_user"
- }
- }
- },
- "vendor": "xai"
- },
- "t_005_update": {
- "hash": "a4ddc223e2035781ae7e86c8c38c0d78212e9a0c4149c6535625b4033878e3a4",
- "task": "t_005_update",
- "lang": "csharp",
- "golden_published": true,
- "model_name": "Grok 4",
- "total_tests": 3,
- "passed_tests": 1,
- "llm_output": "using SpacetimeDB;\r\n\r\npublic static partial class Module\r\n{\r\n [SpacetimeDB.Table(Accessor = \"User\")]\r\n public partial struct User\r\n {\r\n [SpacetimeDB.PrimaryKey]\r\n public int Id;\r\n public string Name;\r\n public int Age;\r\n public bool Active;\r\n }\r\n\r\n [SpacetimeDB.Reducer]\r\n public static void UpdateUser(ReducerContext ctx, int id, string name, int age, bool active)\r\n {\r\n var user = ctx.Db.User.Id.Find(id).Value;\r\n user.Name = name;\r\n user.Age = age;\r\n user.Active = active;\r\n ctx.Db.User.Id.Update(user);\r\n }\r\n}",
- "category": "basics",
- "route_api_model": "grok-4",
- "scorer_details": {
- "data_parity_update_user": {
- "pass": false,
- "partial": 0.0,
- "notes": {
- "error": "spacetime call failed:\nWARNING: This command is UNSTABLE and subject to breaking changes.\n\nError: Response text: InvalidOperation_NoValue\n\nCaused by:\n HTTP status server error (530 ) for url (http://127.0.0.1:56242/v1/database/c200aa3b9311f7739950b10c863ca1ecbd3638a7be9b433e4255b989c306f4d3/call/update_user)\n",
- "phase": "call_reducer_llm"
- }
- },
- "schema_parity": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "reducers_diff": null,
- "reducers_equal": true,
- "tables_diff": null,
- "tables_equal": true
- }
- },
- "seed_users_row": {
- "pass": false,
- "partial": 0.0,
- "notes": {
- "error": "spacetime sql failed:\nWARNING: This command is UNSTABLE and subject to breaking changes.\n\nError: IndexError: Unique constraint violation 'user_id_idx_btree' in table 'user': column(s): '[\"id\"]' value: 1\n\nCaused by:\n HTTP status client error (400 Bad Request) for url (http://127.0.0.1:56242/v1/database/c2003fa012003c49d80084f437bb713f6a093beeaea5587a135d5ff1731afde4/sql)\n",
- "phase": "sql_golden",
- "sql": "INSERT INTO User(Id, Name, Age, Active) VALUES (1, 'Alice', 30, true)"
- }
- }
- },
- "vendor": "xai"
- },
- "t_006_delete": {
- "hash": "a4ddc223e2035781ae7e86c8c38c0d78212e9a0c4149c6535625b4033878e3a4",
- "task": "t_006_delete",
- "lang": "csharp",
- "golden_published": true,
- "model_name": "Grok 4",
- "total_tests": 3,
- "passed_tests": 3,
- "category": "basics",
- "route_api_model": "grok-4",
- "scorer_details": {
- "schema_parity": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "reducers_diff": null,
- "reducers_equal": true,
- "tables_diff": null,
- "tables_equal": true
- }
- },
- "seed_users_row": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "sql": "INSERT INTO User(Id, Name, Age, Active) VALUES (1, 'Alice', 30, true)"
- }
- },
- "delete_user_count_zero": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "actual": 0,
- "expected": 0,
- "sql": "SELECT COUNT(*) AS n FROM User WHERE Id=1"
- }
- }
- },
- "vendor": "xai"
- },
- "t_007_crud": {
- "hash": "a4ddc223e2035781ae7e86c8c38c0d78212e9a0c4149c6535625b4033878e3a4",
- "task": "t_007_crud",
- "lang": "csharp",
- "golden_published": true,
- "model_name": "Grok 4",
- "total_tests": 4,
- "passed_tests": 2,
- "llm_output": "using SpacetimeDB;\r\n\r\npublic static partial class Module\r\n{\r\n [SpacetimeDB.Table(Accessor = \"User\")]\r\n public partial struct User\r\n {\r\n [SpacetimeDB.PrimaryKey]\r\n public int Id;\r\n public string Name;\r\n public int Age;\r\n public bool Active;\r\n }\r\n\r\n [SpacetimeDB.Reducer]\r\n public static void Crud(ReducerContext ctx)\r\n {\r\n ctx.Db.User.Insert(new User { Id = 1, Name = \"Alice\", Age = 30, Active = true });\r\n ctx.Db.User.Insert(new User { Id = 2, Name = \"Bob\", Age = 22, Active = false });\r\n var user = ctx.Db.User.Id.Find(1).Value;\r\n user.Name = \"Alice2\";\r\n user.Age = 31;\r\n user.Active = false;\r\n ctx.Db.User.Id.Update(user);\r\n ctx.Db.User.Id.Delete(2);\r\n }\r\n}",
- "category": "basics",
- "route_api_model": "grok-4",
- "scorer_details": {
- "crud_row_id2_deleted": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "actual": 0,
- "expected": 0,
- "sql": "SELECT COUNT(*) AS n FROM User WHERE Id=2"
- }
- },
- "schema_parity": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "reducers_diff": null,
- "reducers_equal": true,
- "tables_diff": null,
- "tables_equal": true
- }
- },
- "crud_row_id1_parity": {
- "pass": false,
- "partial": 0.0,
- "notes": {
- "error": "spacetime call failed:\nWARNING: This command is UNSTABLE and subject to breaking changes.\n\nError: Response text: Value with given unique identifier already exists\n\nCaused by:\n HTTP status server error (530 ) for url (http://127.0.0.1:56242/v1/database/c200bae1f2bdd27271e560dbfda8814cfd2302b7e12fa45c11457037728b852a/call/crud)\n",
- "phase": "call_reducer_golden"
- }
- },
- "crud_total_count_one": {
- "pass": false,
- "partial": 0.0,
- "notes": {
- "actual": 0,
- "expected": 1,
- "sql": "SELECT COUNT(*) AS n FROM User"
- }
- }
- },
- "vendor": "xai"
- },
- "t_008_index_lookup": {
- "hash": "a4ddc223e2035781ae7e86c8c38c0d78212e9a0c4149c6535625b4033878e3a4",
- "task": "t_008_index_lookup",
- "lang": "csharp",
- "golden_published": true,
- "model_name": "Grok 4",
- "total_tests": 3,
- "passed_tests": 3,
- "category": "basics",
- "route_api_model": "grok-4",
- "scorer_details": {
- "index_lookup_projection_parity": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "args": [
- 1
- ],
- "golden_out": "Id | Name ----+--------- 1 | \"Alice\"",
- "llm_out": "Id | Name ----+--------- 1 | \"Alice\"",
- "query": "SELECT Id, Name FROM Result WHERE Id=1",
- "reducer": "lookup_user_name"
- }
- },
- "schema_parity": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "reducers_diff": null,
- "reducers_equal": true,
- "tables_diff": null,
- "tables_equal": true
- }
- },
- "seed_user_row": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "sql": "INSERT INTO User(Id, Name, Age, Active) VALUES (1, 'Alice', 30, true)"
- }
- }
- },
- "vendor": "xai"
- },
- "t_009_init": {
- "hash": "a4ddc223e2035781ae7e86c8c38c0d78212e9a0c4149c6535625b4033878e3a4",
- "task": "t_009_init",
- "lang": "csharp",
- "golden_published": true,
- "model_name": "Grok 4",
- "total_tests": 4,
- "passed_tests": 4,
- "category": "basics",
- "route_api_model": "grok-4",
- "scorer_details": {
- "init_seed_alice": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "actual": 1,
- "expected": 1,
- "sql": "SELECT COUNT(*) AS n FROM User WHERE Id=1 AND Name='Alice' AND Age=30 AND Active=true"
- }
- },
- "init_total_two": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "actual": 2,
- "expected": 2,
- "sql": "SELECT COUNT(*) AS n FROM User"
- }
- },
- "schema_parity": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "reducers_diff": null,
- "reducers_equal": true,
- "tables_diff": null,
- "tables_equal": true
- }
- },
- "init_seed_bob": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "actual": 1,
- "expected": 1,
- "sql": "SELECT COUNT(*) AS n FROM User WHERE Id=2 AND Name='Bob' AND Age=22 AND Active=false"
- }
- }
- },
- "vendor": "xai"
- },
- "t_010_connect": {
- "hash": "a4ddc223e2035781ae7e86c8c38c0d78212e9a0c4149c6535625b4033878e3a4",
- "task": "t_010_connect",
- "lang": "csharp",
- "golden_published": true,
- "model_name": "Grok 4",
- "total_tests": 1,
- "passed_tests": 1,
- "category": "basics",
- "route_api_model": "grok-4",
- "scorer_details": {
- "schema_parity": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "reducers_diff": null,
- "reducers_equal": true,
- "tables_diff": null,
- "tables_equal": true
- }
- }
- },
- "vendor": "xai"
- },
- "t_011_helper_function": {
- "hash": "a4ddc223e2035781ae7e86c8c38c0d78212e9a0c4149c6535625b4033878e3a4",
- "task": "t_011_helper_function",
- "lang": "csharp",
- "golden_published": true,
- "model_name": "Grok 4",
- "total_tests": 3,
- "passed_tests": 3,
- "category": "basics",
- "route_api_model": "grok-4",
- "scorer_details": {
- "helper_func_sum_parity": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "args": [
- 1,
- 2,
- 3
- ],
- "golden_out": "Id | Sum ----+----- 1 | 5",
- "llm_out": "Id | Sum ----+----- 1 | 5",
- "query": "SELECT Id, Sum FROM Result WHERE Id=1",
- "reducer": "compute_sum"
- }
- },
- "schema_parity": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "reducers_diff": null,
- "reducers_equal": true,
- "tables_diff": null,
- "tables_equal": true
- }
- },
- "helper_func_sum_abs": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "actual": 1,
- "expected": 1,
- "sql": "SELECT COUNT(*) AS n FROM Result WHERE Id=1 AND Sum=5"
- }
- }
- },
- "vendor": "xai"
- },
- "t_012_spacetime_product_type": {
- "hash": "a4ddc223e2035781ae7e86c8c38c0d78212e9a0c4149c6535625b4033878e3a4",
- "task": "t_012_spacetime_product_type",
- "lang": "csharp",
- "golden_published": true,
- "model_name": "Grok 4",
- "total_tests": 3,
- "passed_tests": 3,
- "category": "schema",
- "route_api_model": "grok-4",
- "scorer_details": {
- "product_type_row_count": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "actual": 1,
- "expected": 1,
- "sql": "SELECT COUNT(*) AS n FROM Result WHERE Id=1"
- }
- },
- "schema_parity": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "reducers_diff": null,
- "reducers_equal": true,
- "tables_diff": null,
- "tables_equal": true
- }
- },
- "product_type_row_parity": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "args": [
- 1,
- 2,
- 3
- ],
- "golden_out": "Id | Value ----+----------------------- 1 | (left = 2, right = 3)",
- "llm_out": "Id | Value ----+----------------------- 1 | (left = 2, right = 3)",
- "query": "SELECT Id, Value FROM Result WHERE Id=1",
- "reducer": "set_score"
- }
- }
- },
- "vendor": "xai"
- },
- "t_013_spacetime_sum_type": {
- "hash": "a4ddc223e2035781ae7e86c8c38c0d78212e9a0c4149c6535625b4033878e3a4",
- "task": "t_013_spacetime_sum_type",
- "lang": "csharp",
- "golden_published": true,
- "model_name": "Grok 4",
- "total_tests": 3,
- "passed_tests": 3,
- "category": "schema",
- "route_api_model": "grok-4",
- "scorer_details": {
- "schema_parity": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "reducers_diff": null,
- "reducers_equal": true,
- "tables_diff": null,
- "tables_equal": true
- }
- },
- "sum_type_row_parity": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "args": [
- 1,
- 10
- ],
- "golden_out": "Id | Value ----+-------------------------- 1 | (circle = (radius = 10))",
- "llm_out": "Id | Value ----+-------------------------- 1 | (circle = (radius = 10))",
- "query": "SELECT Id, Value FROM Result WHERE Id=1",
- "reducer": "set_circle"
- }
- },
- "sum_type_row_count": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "actual": 1,
- "expected": 1,
- "sql": "SELECT COUNT(*) AS n FROM Result WHERE Id=1"
- }
- }
- },
- "vendor": "xai"
- },
- "t_014_elementary_columns": {
- "hash": "a4ddc223e2035781ae7e86c8c38c0d78212e9a0c4149c6535625b4033878e3a4",
- "task": "t_014_elementary_columns",
- "lang": "csharp",
- "golden_published": true,
- "model_name": "Grok 4",
- "total_tests": 3,
- "passed_tests": 3,
- "category": "schema",
- "route_api_model": "grok-4",
- "scorer_details": {
- "schema_parity": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "reducers_diff": null,
- "reducers_equal": true,
- "tables_diff": null,
- "tables_equal": true
- }
- },
- "elementary_columns_row_parity": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "args": [],
- "golden_out": "Id | Count | Total | Price | Ratio | Active | Name ----+-------+------------+-------+-------+--------+--------- 1 | 2 | 3000000000 | 1.5 | 2.25 | true | \"Alice\"",
- "llm_out": "Id | Count | Total | Price | Ratio | Active | Name ----+-------+------------+-------+-------+--------+--------- 1 | 2 | 3000000000 | 1.5 | 2.25 | true | \"Alice\"",
- "query": "SELECT Id, Count, Total, Price, Ratio, Active, Name FROM Primitive WHERE Id=1",
- "reducer": "seed"
- }
- },
- "elementary_columns_row_count": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "actual": 1,
- "expected": 1,
- "sql": "SELECT COUNT(*) AS n FROM Primitive WHERE Id=1"
- }
- }
- },
- "vendor": "xai"
- },
- "t_015_product_type_columns": {
- "hash": "a4ddc223e2035781ae7e86c8c38c0d78212e9a0c4149c6535625b4033878e3a4",
- "task": "t_015_product_type_columns",
- "lang": "csharp",
- "golden_published": true,
- "model_name": "Grok 4",
- "total_tests": 3,
- "passed_tests": 3,
- "category": "schema",
- "route_api_model": "grok-4",
- "scorer_details": {
- "product_type_columns_row_parity": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "args": [],
- "golden_out": "Id | Home | Work | Pos ----+----------------------------------+-----------------------------------+---------------- 1 | (street = \"1 Main\", zip = 11111) | (street = \"2 Broad\", zip = 22222) | (x = 7, y = 9)",
- "llm_out": "Id | Home | Work | Pos ----+----------------------------------+-----------------------------------+---------------- 1 | (street = \"1 Main\", zip = 11111) | (street = \"2 Broad\", zip = 22222) | (x = 7, y = 9)",
- "query": "SELECT Id, Home, Work, Pos FROM Profile WHERE Id=1",
- "reducer": "seed"
- }
- },
- "schema_parity": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "reducers_diff": null,
- "reducers_equal": true,
- "tables_diff": null,
- "tables_equal": true
- }
- },
- "product_type_columns_row_count": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "actual": 1,
- "expected": 1,
- "sql": "SELECT COUNT(*) AS n FROM Profile WHERE Id=1"
- }
- }
- },
- "vendor": "xai"
- },
- "t_016_sum_type_columns": {
- "hash": "a4ddc223e2035781ae7e86c8c38c0d78212e9a0c4149c6535625b4033878e3a4",
- "task": "t_016_sum_type_columns",
- "lang": "csharp",
- "golden_published": true,
- "model_name": "Grok 4",
- "total_tests": 3,
- "passed_tests": 3,
- "category": "schema",
- "route_api_model": "grok-4",
- "scorer_details": {
- "sum_type_columns_row_parity": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "args": [],
- "golden_out": "Id | A | B ----+--------------------------+--------------------------------------- 1 | (circle = (radius = 10)) | (rectangle = (width = 4, height = 6))",
- "llm_out": "Id | A | B ----+--------------------------+--------------------------------------- 1 | (circle = (radius = 10)) | (rectangle = (width = 4, height = 6))",
- "query": "SELECT Id, A, B FROM Drawing WHERE Id=1",
- "reducer": "seed"
- }
- },
- "schema_parity": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "reducers_diff": null,
- "reducers_equal": true,
- "tables_diff": null,
- "tables_equal": true
- }
- },
- "sum_type_columns_row_count": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "actual": 1,
- "expected": 1,
- "sql": "SELECT COUNT(*) AS n FROM Drawing WHERE Id=1"
- }
- }
- },
- "vendor": "xai"
- },
- "t_017_scheduled_columns": {
- "hash": "a4ddc223e2035781ae7e86c8c38c0d78212e9a0c4149c6535625b4033878e3a4",
- "task": "t_017_scheduled_columns",
- "lang": "csharp",
- "golden_published": true,
- "model_name": "Grok 4",
- "total_tests": 2,
- "passed_tests": 2,
- "category": "schema",
- "route_api_model": "grok-4",
- "scorer_details": {
- "schema_parity": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "reducers_diff": null,
- "reducers_equal": true,
- "tables_diff": null,
- "tables_equal": true
- }
- },
- "scheduled_seeded_one_row": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "actual": 1,
- "expected": 1,
- "sql": "SELECT COUNT(*) AS n FROM TickTimer WHERE ScheduledId>=0"
- }
- }
- },
- "vendor": "xai"
- },
- "t_018_constraints": {
- "hash": "a4ddc223e2035781ae7e86c8c38c0d78212e9a0c4149c6535625b4033878e3a4",
- "task": "t_018_constraints",
- "lang": "csharp",
- "golden_published": true,
- "model_name": "Grok 4",
- "total_tests": 3,
- "passed_tests": 3,
- "category": "schema",
- "route_api_model": "grok-4",
- "scorer_details": {
- "schema_parity": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "reducers_diff": null,
- "reducers_equal": true,
- "tables_diff": null,
- "tables_equal": true
- }
- },
- "constraints_row_parity_after_seed": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "args": [],
- "golden_out": "Id | Email | Name ----+-----------------+--------- 1 | \"a@example.com\" | \"Alice\"",
- "llm_out": "Id | Email | Name ----+-----------------+--------- 1 | \"a@example.com\" | \"Alice\"",
- "query": "SELECT Id, Email, Name FROM Account WHERE Id=1",
- "reducer": "seed"
- }
- },
- "constraints_seed_two_rows": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "actual": 1,
- "expected": 1,
- "sql": "SELECT COUNT(*) AS n FROM Account WHERE Id=2"
- }
- }
- },
- "vendor": "xai"
- },
- "t_019_many_to_many": {
- "hash": "a4ddc223e2035781ae7e86c8c38c0d78212e9a0c4149c6535625b4033878e3a4",
- "task": "t_019_many_to_many",
- "lang": "csharp",
- "golden_published": true,
- "model_name": "Grok 4",
- "total_tests": 5,
- "passed_tests": 5,
- "category": "schema",
- "route_api_model": "grok-4",
- "scorer_details": {
- "m2m_has_1_20": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "actual": 1,
- "expected": 1,
- "sql": "SELECT COUNT(*) AS n FROM Membership WHERE UserId=1 AND GroupId=20"
- }
- },
- "m2m_has_2_20": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "actual": 1,
- "expected": 1,
- "sql": "SELECT COUNT(*) AS n FROM Membership WHERE UserId=2 AND GroupId=20"
- }
- },
- "schema_parity": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "reducers_diff": null,
- "reducers_equal": true,
- "tables_diff": null,
- "tables_equal": true
- }
- },
- "m2m_has_1_10": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "actual": 1,
- "expected": 1,
- "sql": "SELECT COUNT(*) AS n FROM Membership WHERE UserId=1 AND GroupId=10"
- }
- },
- "memberships_three_rows": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "actual": 3,
- "expected": 3,
- "sql": "SELECT COUNT(*) AS n FROM Membership"
- }
- }
- },
- "vendor": "xai"
- },
- "t_020_ecs": {
- "hash": "a4ddc223e2035781ae7e86c8c38c0d78212e9a0c4149c6535625b4033878e3a4",
- "task": "t_020_ecs",
- "lang": "csharp",
- "golden_published": true,
- "model_name": "Grok 4",
- "total_tests": 5,
- "passed_tests": 5,
- "category": "schema",
- "route_api_model": "grok-4",
- "scorer_details": {
- "ecs_next_pos_entity2": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "actual": 1,
- "expected": 1,
- "sql": "SELECT COUNT(*) AS n FROM NextPosition WHERE EntityId=2 AND X=8 AND Y=3"
- }
- },
- "ecs_next_pos_entity1": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "actual": 1,
- "expected": 1,
- "sql": "SELECT COUNT(*) AS n FROM NextPosition WHERE EntityId=1 AND X=1 AND Y=0"
- }
- },
- "ecs_seed_position_count": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "actual": 2,
- "expected": 2,
- "sql": "SELECT COUNT(*) AS n FROM Position"
- }
- },
- "schema_parity": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "reducers_diff": null,
- "reducers_equal": true,
- "tables_diff": null,
- "tables_equal": true
- }
- },
- "ecs_step_next_position_count": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "actual": 2,
- "expected": 2,
- "sql": "SELECT COUNT(*) AS n FROM NextPosition"
- }
- }
- },
- "vendor": "xai"
- },
- "t_021_multi_column_index": {
- "hash": "a4ddc223e2035781ae7e86c8c38c0d78212e9a0c4149c6535625b4033878e3a4",
- "task": "t_021_multi_column_index",
- "lang": "csharp",
- "golden_published": true,
- "model_name": "Grok 4",
- "total_tests": 4,
- "passed_tests": 4,
- "category": "schema",
- "route_api_model": "grok-4",
- "scorer_details": {
- "mcindex_seed_count": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "actual": 3,
- "expected": 3,
- "sql": "SELECT COUNT(*) AS n FROM Log"
- }
- },
- "mcindex_lookup_u7_d1": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "actual": 1,
- "expected": 1,
- "sql": "SELECT COUNT(*) AS n FROM Log WHERE UserId=7 AND Day=1"
- }
- },
- "schema_parity": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "reducers_diff": null,
- "reducers_equal": true,
- "tables_diff": null,
- "tables_equal": true
- }
- },
- "mcindex_lookup_u7_d2": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "actual": 1,
- "expected": 1,
- "sql": "SELECT COUNT(*) AS n FROM Log WHERE UserId=7 AND Day=2"
- }
- }
- },
- "vendor": "xai"
- }
- }
- },
- {
- "name": "Claude Opus 4.6",
- "route_api_model": "claude-opus-4-6",
- "tasks": {
- "t_000_empty_reducers": {
- "hash": "a4ddc223e2035781ae7e86c8c38c0d78212e9a0c4149c6535625b4033878e3a4",
- "task": "t_000_empty_reducers",
- "lang": "csharp",
- "golden_published": true,
- "model_name": "Claude Opus 4.6",
- "total_tests": 1,
- "passed_tests": 1,
- "category": "basics",
- "route_api_model": "claude-opus-4-6",
- "scorer_details": {
- "schema_parity": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "reducers_diff": null,
- "reducers_equal": true,
- "tables_diff": null,
- "tables_equal": true
- }
- }
- },
- "vendor": "anthropic"
- },
- "t_001_basic_tables": {
- "hash": "a4ddc223e2035781ae7e86c8c38c0d78212e9a0c4149c6535625b4033878e3a4",
- "task": "t_001_basic_tables",
- "lang": "csharp",
- "golden_published": true,
- "model_name": "Claude Opus 4.6",
- "total_tests": 1,
- "passed_tests": 1,
- "category": "basics",
- "route_api_model": "claude-opus-4-6",
- "scorer_details": {
- "schema_parity": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "reducers_diff": null,
- "reducers_equal": true,
- "tables_diff": null,
- "tables_equal": true
- }
- }
- },
- "vendor": "anthropic"
- },
- "t_002_scheduled_table": {
- "hash": "a4ddc223e2035781ae7e86c8c38c0d78212e9a0c4149c6535625b4033878e3a4",
- "task": "t_002_scheduled_table",
- "lang": "csharp",
- "golden_published": true,
- "model_name": "Claude Opus 4.6",
- "total_tests": 1,
- "passed_tests": 1,
- "category": "basics",
- "route_api_model": "claude-opus-4-6",
- "scorer_details": {
- "schema_parity": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "reducers_diff": null,
- "reducers_equal": true,
- "tables_diff": null,
- "tables_equal": true
- }
- }
- },
- "vendor": "anthropic"
- },
- "t_003_struct_in_table": {
- "hash": "a4ddc223e2035781ae7e86c8c38c0d78212e9a0c4149c6535625b4033878e3a4",
- "task": "t_003_struct_in_table",
- "lang": "csharp",
- "golden_published": true,
- "model_name": "Claude Opus 4.6",
- "total_tests": 1,
- "passed_tests": 1,
- "category": "basics",
- "route_api_model": "claude-opus-4-6",
- "scorer_details": {
- "schema_parity": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "reducers_diff": null,
- "reducers_equal": true,
- "tables_diff": null,
- "tables_equal": true
- }
- }
- },
- "vendor": "anthropic"
- },
- "t_004_insert": {
- "hash": "a4ddc223e2035781ae7e86c8c38c0d78212e9a0c4149c6535625b4033878e3a4",
- "task": "t_004_insert",
- "lang": "csharp",
- "golden_published": true,
- "model_name": "Claude Opus 4.6",
- "total_tests": 2,
- "passed_tests": 2,
- "category": "basics",
- "route_api_model": "claude-opus-4-6",
- "scorer_details": {
- "schema_parity": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "reducers_diff": null,
- "reducers_equal": true,
- "tables_diff": null,
- "tables_equal": true
- }
- },
- "data_parity_insert_user": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "args": [
- 1,
- "Alice",
- 30,
- true
- ],
- "golden_out": "Id | Name | Age | Active ----+---------+-----+-------- 1 | \"Alice\" | 30 | true",
- "llm_out": "Id | Name | Age | Active ----+---------+-----+-------- 1 | \"Alice\" | 30 | true",
- "query": "SELECT Id, Name, Age, Active FROM User WHERE Id=1",
- "reducer": "insert_user"
- }
- }
- },
- "vendor": "anthropic"
- },
- "t_005_update": {
- "hash": "a4ddc223e2035781ae7e86c8c38c0d78212e9a0c4149c6535625b4033878e3a4",
- "task": "t_005_update",
- "lang": "csharp",
- "golden_published": true,
- "model_name": "Claude Opus 4.6",
- "total_tests": 3,
- "passed_tests": 1,
- "llm_output": "using SpacetimeDB;\n\npublic static partial class Module\n{\n [SpacetimeDB.Table(Accessor = \"User\", Public = true)]\n public partial struct User\n {\n [SpacetimeDB.PrimaryKey]\n public int Id;\n public string Name;\n public int Age;\n public bool Active;\n }\n\n [SpacetimeDB.Reducer]\n public static void UpdateUser(ReducerContext ctx, int id, string name, int age, bool active)\n {\n var user = ctx.Db.User.Id.Find(id);\n if (user is not null)\n {\n ctx.Db.User.Id.Update(new User\n {\n Id = id,\n Name = name,\n Age = age,\n Active = active,\n });\n }\n }\n}",
- "category": "basics",
- "route_api_model": "claude-opus-4-6",
- "scorer_details": {
- "data_parity_update_user": {
- "pass": false,
- "partial": 0.0,
- "notes": {
- "args": [
- 1,
- "Alice2",
- 31,
- false
- ],
- "golden_out": "Id | Name | Age | Active ----+----------+-----+-------- 1 | \"Alice2\" | 31 | false",
- "llm_out": "Id | Name | Age | Active ----+------+-----+--------",
- "query": "SELECT Id, Name, Age, Active FROM User WHERE Id=1",
- "reducer": "update_user"
- }
- },
- "schema_parity": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "reducers_diff": null,
- "reducers_equal": true,
- "tables_diff": null,
- "tables_equal": true
- }
- },
- "seed_users_row": {
- "pass": false,
- "partial": 0.0,
- "notes": {
- "error": "spacetime sql failed:\nWARNING: This command is UNSTABLE and subject to breaking changes.\n\nError: IndexError: Unique constraint violation 'user_id_idx_btree' in table 'user': column(s): '[\"id\"]' value: 1\n\nCaused by:\n HTTP status client error (400 Bad Request) for url (http://127.0.0.1:56242/v1/database/c2003fa012003c49d80084f437bb713f6a093beeaea5587a135d5ff1731afde4/sql)\n",
- "phase": "sql_golden",
- "sql": "INSERT INTO User(Id, Name, Age, Active) VALUES (1, 'Alice', 30, true)"
- }
- }
- },
- "vendor": "anthropic"
- },
- "t_006_delete": {
- "hash": "a4ddc223e2035781ae7e86c8c38c0d78212e9a0c4149c6535625b4033878e3a4",
- "task": "t_006_delete",
- "lang": "csharp",
- "golden_published": true,
- "model_name": "Claude Opus 4.6",
- "total_tests": 3,
- "passed_tests": 3,
- "category": "basics",
- "route_api_model": "claude-opus-4-6",
- "scorer_details": {
- "schema_parity": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "reducers_diff": null,
- "reducers_equal": true,
- "tables_diff": null,
- "tables_equal": true
- }
- },
- "seed_users_row": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "sql": "INSERT INTO User(Id, Name, Age, Active) VALUES (1, 'Alice', 30, true)"
- }
- },
- "delete_user_count_zero": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "actual": 0,
- "expected": 0,
- "sql": "SELECT COUNT(*) AS n FROM User WHERE Id=1"
- }
- }
- },
- "vendor": "anthropic"
- },
- "t_007_crud": {
- "hash": "a4ddc223e2035781ae7e86c8c38c0d78212e9a0c4149c6535625b4033878e3a4",
- "task": "t_007_crud",
- "lang": "csharp",
- "golden_published": true,
- "model_name": "Claude Opus 4.6",
- "total_tests": 4,
- "passed_tests": 4,
- "category": "basics",
- "route_api_model": "claude-opus-4-6",
- "scorer_details": {
- "crud_row_id2_deleted": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "actual": 0,
- "expected": 0,
- "sql": "SELECT COUNT(*) AS n FROM User WHERE Id=2"
- }
- },
- "schema_parity": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "reducers_diff": null,
- "reducers_equal": true,
- "tables_diff": null,
- "tables_equal": true
- }
- },
- "crud_row_id1_parity": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "args": [],
- "golden_out": "Id | Name | Age | Active ----+----------+-----+-------- 1 | \"Alice2\" | 31 | false",
- "llm_out": "Id | Name | Age | Active ----+----------+-----+-------- 1 | \"Alice2\" | 31 | false",
- "query": "SELECT Id, Name, Age, Active FROM User WHERE Id=1",
- "reducer": "crud"
- }
- },
- "crud_total_count_one": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "actual": 1,
- "expected": 1,
- "sql": "SELECT COUNT(*) AS n FROM User"
- }
- }
- },
- "vendor": "anthropic"
- },
- "t_008_index_lookup": {
- "hash": "a4ddc223e2035781ae7e86c8c38c0d78212e9a0c4149c6535625b4033878e3a4",
- "task": "t_008_index_lookup",
- "lang": "csharp",
- "golden_published": true,
- "model_name": "Claude Opus 4.6",
- "total_tests": 3,
- "passed_tests": 3,
- "category": "basics",
- "route_api_model": "claude-opus-4-6",
- "scorer_details": {
- "index_lookup_projection_parity": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "args": [
- 1
- ],
- "golden_out": "Id | Name ----+--------- 1 | \"Alice\"",
- "llm_out": "Id | Name ----+--------- 1 | \"Alice\"",
- "query": "SELECT Id, Name FROM Result WHERE Id=1",
- "reducer": "lookup_user_name"
- }
- },
- "schema_parity": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "reducers_diff": null,
- "reducers_equal": true,
- "tables_diff": null,
- "tables_equal": true
- }
- },
- "seed_user_row": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "sql": "INSERT INTO User(Id, Name, Age, Active) VALUES (1, 'Alice', 30, true)"
- }
- }
- },
- "vendor": "anthropic"
- },
- "t_009_init": {
- "hash": "a4ddc223e2035781ae7e86c8c38c0d78212e9a0c4149c6535625b4033878e3a4",
- "task": "t_009_init",
- "lang": "csharp",
- "golden_published": true,
- "model_name": "Claude Opus 4.6",
- "total_tests": 4,
- "passed_tests": 4,
- "category": "basics",
- "route_api_model": "claude-opus-4-6",
- "scorer_details": {
- "init_seed_alice": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "actual": 1,
- "expected": 1,
- "sql": "SELECT COUNT(*) AS n FROM User WHERE Id=1 AND Name='Alice' AND Age=30 AND Active=true"
- }
- },
- "init_total_two": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "actual": 2,
- "expected": 2,
- "sql": "SELECT COUNT(*) AS n FROM User"
- }
- },
- "schema_parity": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "reducers_diff": null,
- "reducers_equal": true,
- "tables_diff": null,
- "tables_equal": true
- }
- },
- "init_seed_bob": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "actual": 1,
- "expected": 1,
- "sql": "SELECT COUNT(*) AS n FROM User WHERE Id=2 AND Name='Bob' AND Age=22 AND Active=false"
- }
- }
- },
- "vendor": "anthropic"
- },
- "t_010_connect": {
- "hash": "a4ddc223e2035781ae7e86c8c38c0d78212e9a0c4149c6535625b4033878e3a4",
- "task": "t_010_connect",
- "lang": "csharp",
- "golden_published": true,
- "model_name": "Claude Opus 4.6",
- "total_tests": 1,
- "passed_tests": 1,
- "category": "basics",
- "route_api_model": "claude-opus-4-6",
- "scorer_details": {
- "schema_parity": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "reducers_diff": null,
- "reducers_equal": true,
- "tables_diff": null,
- "tables_equal": true
- }
- }
- },
- "vendor": "anthropic"
- },
- "t_011_helper_function": {
- "hash": "a4ddc223e2035781ae7e86c8c38c0d78212e9a0c4149c6535625b4033878e3a4",
- "task": "t_011_helper_function",
- "lang": "csharp",
- "golden_published": true,
- "model_name": "Claude Opus 4.6",
- "total_tests": 3,
- "passed_tests": 3,
- "category": "basics",
- "route_api_model": "claude-opus-4-6",
- "scorer_details": {
- "helper_func_sum_parity": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "args": [
- 1,
- 2,
- 3
- ],
- "golden_out": "Id | Sum ----+----- 1 | 5",
- "llm_out": "Id | Sum ----+----- 1 | 5",
- "query": "SELECT Id, Sum FROM Result WHERE Id=1",
- "reducer": "compute_sum"
- }
- },
- "schema_parity": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "reducers_diff": null,
- "reducers_equal": true,
- "tables_diff": null,
- "tables_equal": true
- }
- },
- "helper_func_sum_abs": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "actual": 1,
- "expected": 1,
- "sql": "SELECT COUNT(*) AS n FROM Result WHERE Id=1 AND Sum=5"
- }
- }
- },
- "vendor": "anthropic"
- },
- "t_012_spacetime_product_type": {
- "hash": "a4ddc223e2035781ae7e86c8c38c0d78212e9a0c4149c6535625b4033878e3a4",
- "task": "t_012_spacetime_product_type",
- "lang": "csharp",
- "golden_published": true,
- "model_name": "Claude Opus 4.6",
- "total_tests": 3,
- "passed_tests": 3,
- "category": "schema",
- "route_api_model": "claude-opus-4-6",
- "scorer_details": {
- "product_type_row_count": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "actual": 1,
- "expected": 1,
- "sql": "SELECT COUNT(*) AS n FROM Result WHERE Id=1"
- }
- },
- "schema_parity": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "reducers_diff": null,
- "reducers_equal": true,
- "tables_diff": null,
- "tables_equal": true
- }
- },
- "product_type_row_parity": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "args": [
- 1,
- 2,
- 3
- ],
- "golden_out": "Id | Value ----+----------------------- 1 | (left = 2, right = 3)",
- "llm_out": "Id | Value ----+----------------------- 1 | (left = 2, right = 3)",
- "query": "SELECT Id, Value FROM Result WHERE Id=1",
- "reducer": "set_score"
- }
- }
- },
- "vendor": "anthropic"
- },
- "t_013_spacetime_sum_type": {
- "hash": "a4ddc223e2035781ae7e86c8c38c0d78212e9a0c4149c6535625b4033878e3a4",
- "task": "t_013_spacetime_sum_type",
- "lang": "csharp",
- "golden_published": false,
- "model_name": "Claude Opus 4.6",
- "total_tests": 3,
- "passed_tests": 0,
- "llm_output": "using SpacetimeDB;\n\n[SpacetimeDB.Type]\npublic partial struct Circle\n{\n public int Radius;\n}\n\n[SpacetimeDB.Type]\npublic partial struct Rectangle\n{\n public int Width;\n public int Height;\n}\n\n[SpacetimeDB.Type]\npublic partial record Shape : TaggedEnum<(Circle Circle, Rectangle Rectangle)>;\n\n[SpacetimeDB.Table(Accessor = \"Result\", Public = true)]\npublic partial struct Result\n{\n [SpacetimeDB.PrimaryKey]\n public int Id;\n public Shape Value;\n}\n\npublic static partial class Module\n{\n [SpacetimeDB.Reducer]\n public static void SetCircle(ReducerContext ctx, int id, int radius)\n {\n ctx.Db.Result.Insert(new Result\n {\n Id = id,\n Value = new Shape.Circle(new Circle { Radius = radius })\n });\n }\n}",
- "category": "schema",
- "route_api_model": "claude-opus-4-6",
- "scorer_details": {
- "publish_error": {
- "pass": false,
- "partial": 0.0,
- "notes": {
- "error": "spacetime build (csharp) failed (exit=1)\n--- stderr ---\nError: command [\"dotnet\", \"publish\", \"-c\", \"Release\", \"-v\", \"quiet\"] exited with code 1\n\n--- stdout ---\nD:\\Development\\ClockworkLabs\\SpacetimeDB\\SpacetimeDBPrivate\\public\\target\\llm-runs\\schema\\t_013_spacetime_sum_type\\csharp\\server\\claude-opus-4-6\\llm\\obj\\Release\\net8.0\\wasi-wasm\\SpacetimeDB.BSATN.Codegen\\SpacetimeDB.Codegen.Type\\Shape.cs(6,26): error CS8910: The primary constructor conflicts with the synthesized copy constructor. [D:\\Development\\ClockworkLabs\\SpacetimeDB\\SpacetimeDBPrivate\\public\\target\\llm-runs\\schema\\t_013_spacetime_sum_type\\csharp\\server\\claude-opus-4-6\\llm\\StdbModule.csproj]\r\nD:\\Development\\ClockworkLabs\\SpacetimeDB\\SpacetimeDBPrivate\\public\\target\\llm-runs\\schema\\t_013_spacetime_sum_type\\csharp\\server\\claude-opus-4-6\\llm\\obj\\Release\\net8.0\\wasi-wasm\\SpacetimeDB.BSATN.Codegen\\SpacetimeDB.Codegen.Type\\Shape.cs(12,26): error CS8910: The primary constructor conflicts with the synthesized copy constructor. [D:\\Development\\ClockworkLabs\\SpacetimeDB\\SpacetimeDBPrivate\\public\\target\\llm-runs\\schema\\t_013_spacetime_sum_type\\csharp\\server\\claude-opus-4-6\\llm\\StdbModule.csproj]\r\n",
- "phase": "build_or_publish"
- }
- }
- },
- "vendor": "anthropic"
- },
- "t_014_elementary_columns": {
- "hash": "a4ddc223e2035781ae7e86c8c38c0d78212e9a0c4149c6535625b4033878e3a4",
- "task": "t_014_elementary_columns",
- "lang": "csharp",
- "golden_published": true,
- "model_name": "Claude Opus 4.6",
- "total_tests": 3,
- "passed_tests": 3,
- "category": "schema",
- "route_api_model": "claude-opus-4-6",
- "scorer_details": {
- "schema_parity": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "reducers_diff": null,
- "reducers_equal": true,
- "tables_diff": null,
- "tables_equal": true
- }
- },
- "elementary_columns_row_parity": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "args": [],
- "golden_out": "Id | Count | Total | Price | Ratio | Active | Name ----+-------+------------+-------+-------+--------+--------- 1 | 2 | 3000000000 | 1.5 | 2.25 | true | \"Alice\"",
- "llm_out": "Id | Count | Total | Price | Ratio | Active | Name ----+-------+------------+-------+-------+--------+--------- 1 | 2 | 3000000000 | 1.5 | 2.25 | true | \"Alice\"",
- "query": "SELECT Id, Count, Total, Price, Ratio, Active, Name FROM Primitive WHERE Id=1",
- "reducer": "seed"
- }
- },
- "elementary_columns_row_count": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "actual": 1,
- "expected": 1,
- "sql": "SELECT COUNT(*) AS n FROM Primitive WHERE Id=1"
- }
- }
- },
- "vendor": "anthropic"
- },
- "t_015_product_type_columns": {
- "hash": "a4ddc223e2035781ae7e86c8c38c0d78212e9a0c4149c6535625b4033878e3a4",
- "task": "t_015_product_type_columns",
- "lang": "csharp",
- "golden_published": true,
- "model_name": "Claude Opus 4.6",
- "total_tests": 3,
- "passed_tests": 3,
- "category": "schema",
- "route_api_model": "claude-opus-4-6",
- "scorer_details": {
- "product_type_columns_row_parity": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "args": [],
- "golden_out": "Id | Home | Work | Pos ----+----------------------------------+-----------------------------------+---------------- 1 | (street = \"1 Main\", zip = 11111) | (street = \"2 Broad\", zip = 22222) | (x = 7, y = 9)",
- "llm_out": "Id | Home | Work | Pos ----+----------------------------------+-----------------------------------+---------------- 1 | (street = \"1 Main\", zip = 11111) | (street = \"2 Broad\", zip = 22222) | (x = 7, y = 9)",
- "query": "SELECT Id, Home, Work, Pos FROM Profile WHERE Id=1",
- "reducer": "seed"
- }
- },
- "schema_parity": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "reducers_diff": null,
- "reducers_equal": true,
- "tables_diff": null,
- "tables_equal": true
- }
- },
- "product_type_columns_row_count": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "actual": 1,
- "expected": 1,
- "sql": "SELECT COUNT(*) AS n FROM Profile WHERE Id=1"
- }
- }
- },
- "vendor": "anthropic"
- },
- "t_016_sum_type_columns": {
- "hash": "a4ddc223e2035781ae7e86c8c38c0d78212e9a0c4149c6535625b4033878e3a4",
- "task": "t_016_sum_type_columns",
- "lang": "csharp",
- "golden_published": false,
- "model_name": "Claude Opus 4.6",
- "total_tests": 3,
- "passed_tests": 0,
- "llm_output": "using SpacetimeDB;\n\n[SpacetimeDB.Type]\npublic partial struct Circle\n{\n public int Radius;\n}\n\n[SpacetimeDB.Type]\npublic partial struct Rectangle\n{\n public int Width;\n public int Height;\n}\n\n[SpacetimeDB.Type]\npublic partial record Shape : TaggedEnum<(Circle Circle, Rectangle Rectangle)>;\n\n[SpacetimeDB.Table(Accessor = \"Drawing\", Public = true)]\npublic partial struct Drawing\n{\n [SpacetimeDB.PrimaryKey]\n public int Id;\n public Shape A;\n public Shape B;\n}\n\npublic static partial class Module\n{\n [SpacetimeDB.Reducer]\n public static void Seed(ReducerContext ctx)\n {\n ctx.Db.Drawing.Insert(new Drawing\n {\n Id = 1,\n A = new Shape.Circle(new Circle { Radius = 10 }),\n B = new Shape.Rectangle(new Rectangle { Width = 4, Height = 6 })\n });\n }\n}",
- "category": "schema",
- "route_api_model": "claude-opus-4-6",
- "scorer_details": {
- "publish_error": {
- "pass": false,
- "partial": 0.0,
- "notes": {
- "error": "spacetime build (csharp) failed (exit=1)\n--- stderr ---\nError: command [\"dotnet\", \"publish\", \"-c\", \"Release\", \"-v\", \"quiet\"] exited with code 1\n\n--- stdout ---\nD:\\Development\\ClockworkLabs\\SpacetimeDB\\SpacetimeDBPrivate\\public\\target\\llm-runs\\schema\\t_016_sum_type_columns\\csharp\\server\\claude-opus-4-6\\llm\\obj\\Release\\net8.0\\wasi-wasm\\SpacetimeDB.BSATN.Codegen\\SpacetimeDB.Codegen.Type\\Shape.cs(6,26): error CS8910: The primary constructor conflicts with the synthesized copy constructor. [D:\\Development\\ClockworkLabs\\SpacetimeDB\\SpacetimeDBPrivate\\public\\target\\llm-runs\\schema\\t_016_sum_type_columns\\csharp\\server\\claude-opus-4-6\\llm\\StdbModule.csproj]\r\nD:\\Development\\ClockworkLabs\\SpacetimeDB\\SpacetimeDBPrivate\\public\\target\\llm-runs\\schema\\t_016_sum_type_columns\\csharp\\server\\claude-opus-4-6\\llm\\obj\\Release\\net8.0\\wasi-wasm\\SpacetimeDB.BSATN.Codegen\\SpacetimeDB.Codegen.Type\\Shape.cs(12,26): error CS8910: The primary constructor conflicts with the synthesized copy constructor. [D:\\Development\\ClockworkLabs\\SpacetimeDB\\SpacetimeDBPrivate\\public\\target\\llm-runs\\schema\\t_016_sum_type_columns\\csharp\\server\\claude-opus-4-6\\llm\\StdbModule.csproj]\r\n",
- "phase": "build_or_publish"
- }
- }
- },
- "vendor": "anthropic"
- },
- "t_017_scheduled_columns": {
- "hash": "a4ddc223e2035781ae7e86c8c38c0d78212e9a0c4149c6535625b4033878e3a4",
- "task": "t_017_scheduled_columns",
- "lang": "csharp",
- "golden_published": true,
- "model_name": "Claude Opus 4.6",
- "total_tests": 2,
- "passed_tests": 2,
- "category": "schema",
- "route_api_model": "claude-opus-4-6",
- "scorer_details": {
- "schema_parity": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "reducers_diff": null,
- "reducers_equal": true,
- "tables_diff": null,
- "tables_equal": true
- }
- },
- "scheduled_seeded_one_row": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "actual": 1,
- "expected": 1,
- "sql": "SELECT COUNT(*) AS n FROM TickTimer WHERE ScheduledId>=0"
- }
- }
- },
- "vendor": "anthropic"
- },
- "t_018_constraints": {
- "hash": "a4ddc223e2035781ae7e86c8c38c0d78212e9a0c4149c6535625b4033878e3a4",
- "task": "t_018_constraints",
- "lang": "csharp",
- "golden_published": true,
- "model_name": "Claude Opus 4.6",
- "total_tests": 3,
- "passed_tests": 3,
- "category": "schema",
- "route_api_model": "claude-opus-4-6",
- "scorer_details": {
- "schema_parity": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "reducers_diff": null,
- "reducers_equal": true,
- "tables_diff": null,
- "tables_equal": true
- }
- },
- "constraints_row_parity_after_seed": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "args": [],
- "golden_out": "Id | Email | Name ----+-----------------+--------- 1 | \"a@example.com\" | \"Alice\"",
- "llm_out": "Id | Email | Name ----+-----------------+--------- 1 | \"a@example.com\" | \"Alice\"",
- "query": "SELECT Id, Email, Name FROM Account WHERE Id=1",
- "reducer": "seed"
- }
- },
- "constraints_seed_two_rows": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "actual": 1,
- "expected": 1,
- "sql": "SELECT COUNT(*) AS n FROM Account WHERE Id=2"
- }
- }
- },
- "vendor": "anthropic"
- },
- "t_019_many_to_many": {
- "hash": "a4ddc223e2035781ae7e86c8c38c0d78212e9a0c4149c6535625b4033878e3a4",
- "task": "t_019_many_to_many",
- "lang": "csharp",
- "golden_published": true,
- "model_name": "Claude Opus 4.6",
- "total_tests": 5,
- "passed_tests": 5,
- "category": "schema",
- "route_api_model": "claude-opus-4-6",
- "scorer_details": {
- "m2m_has_1_20": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "actual": 1,
- "expected": 1,
- "sql": "SELECT COUNT(*) AS n FROM Membership WHERE UserId=1 AND GroupId=20"
- }
- },
- "m2m_has_2_20": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "actual": 1,
- "expected": 1,
- "sql": "SELECT COUNT(*) AS n FROM Membership WHERE UserId=2 AND GroupId=20"
- }
- },
- "schema_parity": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "reducers_diff": null,
- "reducers_equal": true,
- "tables_diff": null,
- "tables_equal": true
- }
- },
- "m2m_has_1_10": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "actual": 1,
- "expected": 1,
- "sql": "SELECT COUNT(*) AS n FROM Membership WHERE UserId=1 AND GroupId=10"
- }
- },
- "memberships_three_rows": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "actual": 3,
- "expected": 3,
- "sql": "SELECT COUNT(*) AS n FROM Membership"
- }
- }
- },
- "vendor": "anthropic"
- },
- "t_020_ecs": {
- "hash": "a4ddc223e2035781ae7e86c8c38c0d78212e9a0c4149c6535625b4033878e3a4",
- "task": "t_020_ecs",
- "lang": "csharp",
- "golden_published": true,
- "model_name": "Claude Opus 4.6",
- "total_tests": 5,
- "passed_tests": 5,
- "category": "schema",
- "route_api_model": "claude-opus-4-6",
- "scorer_details": {
- "ecs_next_pos_entity2": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "actual": 1,
- "expected": 1,
- "sql": "SELECT COUNT(*) AS n FROM NextPosition WHERE EntityId=2 AND X=8 AND Y=3"
- }
- },
- "ecs_next_pos_entity1": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "actual": 1,
- "expected": 1,
- "sql": "SELECT COUNT(*) AS n FROM NextPosition WHERE EntityId=1 AND X=1 AND Y=0"
- }
- },
- "ecs_seed_position_count": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "actual": 2,
- "expected": 2,
- "sql": "SELECT COUNT(*) AS n FROM Position"
- }
- },
- "schema_parity": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "reducers_diff": null,
- "reducers_equal": true,
- "tables_diff": null,
- "tables_equal": true
- }
- },
- "ecs_step_next_position_count": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "actual": 2,
- "expected": 2,
- "sql": "SELECT COUNT(*) AS n FROM NextPosition"
- }
- }
- },
- "vendor": "anthropic"
- },
- "t_021_multi_column_index": {
- "hash": "a4ddc223e2035781ae7e86c8c38c0d78212e9a0c4149c6535625b4033878e3a4",
- "task": "t_021_multi_column_index",
- "lang": "csharp",
- "golden_published": true,
- "model_name": "Claude Opus 4.6",
- "total_tests": 4,
- "passed_tests": 4,
- "category": "schema",
- "route_api_model": "claude-opus-4-6",
- "scorer_details": {
- "mcindex_seed_count": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "actual": 3,
- "expected": 3,
- "sql": "SELECT COUNT(*) AS n FROM Log"
- }
- },
- "mcindex_lookup_u7_d1": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "actual": 1,
- "expected": 1,
- "sql": "SELECT COUNT(*) AS n FROM Log WHERE UserId=7 AND Day=1"
- }
- },
- "schema_parity": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "reducers_diff": null,
- "reducers_equal": true,
- "tables_diff": null,
- "tables_equal": true
- }
- },
- "mcindex_lookup_u7_d2": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "actual": 1,
- "expected": 1,
- "sql": "SELECT COUNT(*) AS n FROM Log WHERE UserId=7 AND Day=2"
- }
- }
- },
- "vendor": "anthropic"
- }
- }
- },
- {
- "name": "Claude Sonnet 4.6",
- "route_api_model": "claude-sonnet-4-6",
- "tasks": {
- "t_000_empty_reducers": {
- "hash": "a4ddc223e2035781ae7e86c8c38c0d78212e9a0c4149c6535625b4033878e3a4",
- "task": "t_000_empty_reducers",
- "lang": "csharp",
- "golden_published": true,
- "model_name": "Claude Sonnet 4.6",
- "total_tests": 1,
- "passed_tests": 1,
- "category": "basics",
- "route_api_model": "claude-sonnet-4-6",
- "scorer_details": {
- "schema_parity": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "reducers_diff": null,
- "reducers_equal": true,
- "tables_diff": null,
- "tables_equal": true
- }
- }
- },
- "vendor": "anthropic"
- },
- "t_001_basic_tables": {
- "hash": "a4ddc223e2035781ae7e86c8c38c0d78212e9a0c4149c6535625b4033878e3a4",
- "task": "t_001_basic_tables",
- "lang": "csharp",
- "golden_published": true,
- "model_name": "Claude Sonnet 4.6",
- "total_tests": 1,
- "passed_tests": 1,
- "category": "basics",
- "route_api_model": "claude-sonnet-4-6",
- "scorer_details": {
- "schema_parity": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "reducers_diff": null,
- "reducers_equal": true,
- "tables_diff": null,
- "tables_equal": true
- }
- }
- },
- "vendor": "anthropic"
- },
- "t_002_scheduled_table": {
- "hash": "a4ddc223e2035781ae7e86c8c38c0d78212e9a0c4149c6535625b4033878e3a4",
- "task": "t_002_scheduled_table",
- "lang": "csharp",
- "golden_published": true,
- "model_name": "Claude Sonnet 4.6",
- "total_tests": 1,
- "passed_tests": 1,
- "category": "basics",
- "route_api_model": "claude-sonnet-4-6",
- "scorer_details": {
- "schema_parity": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "reducers_diff": null,
- "reducers_equal": true,
- "tables_diff": null,
- "tables_equal": true
- }
- }
- },
- "vendor": "anthropic"
- },
- "t_003_struct_in_table": {
- "hash": "a4ddc223e2035781ae7e86c8c38c0d78212e9a0c4149c6535625b4033878e3a4",
- "task": "t_003_struct_in_table",
- "lang": "csharp",
- "golden_published": true,
- "model_name": "Claude Sonnet 4.6",
- "total_tests": 1,
- "passed_tests": 1,
- "category": "basics",
- "route_api_model": "claude-sonnet-4-6",
- "scorer_details": {
- "schema_parity": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "reducers_diff": null,
- "reducers_equal": true,
- "tables_diff": null,
- "tables_equal": true
- }
- }
- },
- "vendor": "anthropic"
- },
- "t_004_insert": {
- "hash": "a4ddc223e2035781ae7e86c8c38c0d78212e9a0c4149c6535625b4033878e3a4",
- "task": "t_004_insert",
- "lang": "csharp",
- "golden_published": true,
- "model_name": "Claude Sonnet 4.6",
- "total_tests": 2,
- "passed_tests": 2,
- "category": "basics",
- "route_api_model": "claude-sonnet-4-6",
- "scorer_details": {
- "schema_parity": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "reducers_diff": null,
- "reducers_equal": true,
- "tables_diff": null,
- "tables_equal": true
- }
- },
- "data_parity_insert_user": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "args": [
- 1,
- "Alice",
- 30,
- true
- ],
- "golden_out": "Id | Name | Age | Active ----+---------+-----+-------- 1 | \"Alice\" | 30 | true",
- "llm_out": "Id | Name | Age | Active ----+---------+-----+-------- 1 | \"Alice\" | 30 | true",
- "query": "SELECT Id, Name, Age, Active FROM User WHERE Id=1",
- "reducer": "insert_user"
- }
- }
- },
- "vendor": "anthropic"
- },
- "t_005_update": {
- "hash": "a4ddc223e2035781ae7e86c8c38c0d78212e9a0c4149c6535625b4033878e3a4",
- "task": "t_005_update",
- "lang": "csharp",
- "golden_published": true,
- "model_name": "Claude Sonnet 4.6",
- "total_tests": 3,
- "passed_tests": 3,
- "category": "basics",
- "route_api_model": "claude-sonnet-4-6",
- "scorer_details": {
- "data_parity_update_user": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "args": [
- 1,
- "Alice2",
- 31,
- false
- ],
- "golden_out": "Id | Name | Age | Active ----+----------+-----+-------- 1 | \"Alice2\" | 31 | false",
- "llm_out": "Id | Name | Age | Active ----+----------+-----+-------- 1 | \"Alice2\" | 31 | false",
- "query": "SELECT Id, Name, Age, Active FROM User WHERE Id=1",
- "reducer": "update_user"
- }
- },
- "schema_parity": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "reducers_diff": null,
- "reducers_equal": true,
- "tables_diff": null,
- "tables_equal": true
- }
- },
- "seed_users_row": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "sql": "INSERT INTO User(Id, Name, Age, Active) VALUES (1, 'Alice', 30, true)"
- }
- }
- },
- "vendor": "anthropic"
- },
- "t_006_delete": {
- "hash": "a4ddc223e2035781ae7e86c8c38c0d78212e9a0c4149c6535625b4033878e3a4",
- "task": "t_006_delete",
- "lang": "csharp",
- "golden_published": true,
- "model_name": "Claude Sonnet 4.6",
- "total_tests": 3,
- "passed_tests": 3,
- "category": "basics",
- "route_api_model": "claude-sonnet-4-6",
- "scorer_details": {
- "schema_parity": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "reducers_diff": null,
- "reducers_equal": true,
- "tables_diff": null,
- "tables_equal": true
- }
- },
- "seed_users_row": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "sql": "INSERT INTO User(Id, Name, Age, Active) VALUES (1, 'Alice', 30, true)"
- }
- },
- "delete_user_count_zero": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "actual": 0,
- "expected": 0,
- "sql": "SELECT COUNT(*) AS n FROM User WHERE Id=1"
- }
- }
- },
- "vendor": "anthropic"
- },
- "t_007_crud": {
- "hash": "a4ddc223e2035781ae7e86c8c38c0d78212e9a0c4149c6535625b4033878e3a4",
- "task": "t_007_crud",
- "lang": "csharp",
- "golden_published": true,
- "model_name": "Claude Sonnet 4.6",
- "total_tests": 4,
- "passed_tests": 2,
- "llm_output": "using SpacetimeDB;\n\npublic static partial class Module\n{\n [SpacetimeDB.Table(Accessor = \"User\", Public = true)]\n public partial struct User\n {\n [SpacetimeDB.PrimaryKey]\n public int Id;\n public string Name;\n public int Age;\n public bool Active;\n }\n\n [SpacetimeDB.Reducer]\n public static void Crud(ReducerContext ctx)\n {\n ctx.Db.User.Insert(new User { Id = 1, Name = \"Alice\", Age = 30, Active = true });\n ctx.Db.User.Insert(new User { Id = 2, Name = \"Bob\", Age = 22, Active = false });\n\n var user1 = ctx.Db.User.Id.Find(1) ?? throw new System.Exception(\"User 1 not found\");\n user1.Name = \"Alice2\";\n user1.Age = 31;\n user1.Active = false;\n ctx.Db.User.Id.Update(user1);\n\n ctx.Db.User.Id.Delete(2);\n }\n}",
- "category": "basics",
- "route_api_model": "claude-sonnet-4-6",
- "scorer_details": {
- "crud_row_id2_deleted": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "actual": 0,
- "expected": 0,
- "sql": "SELECT COUNT(*) AS n FROM User WHERE Id=2"
- }
- },
- "schema_parity": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "reducers_diff": null,
- "reducers_equal": true,
- "tables_diff": null,
- "tables_equal": true
- }
- },
- "crud_row_id1_parity": {
- "pass": false,
- "partial": 0.0,
- "notes": {
- "error": "spacetime call failed:\nWARNING: This command is UNSTABLE and subject to breaking changes.\n\nError: Response text: Value with given unique identifier already exists\n\nCaused by:\n HTTP status server error (530 ) for url (http://127.0.0.1:56242/v1/database/c200bae1f2bdd27271e560dbfda8814cfd2302b7e12fa45c11457037728b852a/call/crud)\n",
- "phase": "call_reducer_golden"
- }
- },
- "crud_total_count_one": {
- "pass": false,
- "partial": 0.0,
- "notes": {
- "actual": 0,
- "expected": 1,
- "sql": "SELECT COUNT(*) AS n FROM User"
- }
- }
- },
- "vendor": "anthropic"
- },
- "t_008_index_lookup": {
- "hash": "a4ddc223e2035781ae7e86c8c38c0d78212e9a0c4149c6535625b4033878e3a4",
- "task": "t_008_index_lookup",
- "lang": "csharp",
- "golden_published": true,
- "model_name": "Claude Sonnet 4.6",
- "total_tests": 3,
- "passed_tests": 3,
- "category": "basics",
- "route_api_model": "claude-sonnet-4-6",
- "scorer_details": {
- "index_lookup_projection_parity": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "args": [
- 1
- ],
- "golden_out": "Id | Name ----+--------- 1 | \"Alice\"",
- "llm_out": "Id | Name ----+--------- 1 | \"Alice\"",
- "query": "SELECT Id, Name FROM Result WHERE Id=1",
- "reducer": "lookup_user_name"
- }
- },
- "schema_parity": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "reducers_diff": null,
- "reducers_equal": true,
- "tables_diff": null,
- "tables_equal": true
- }
- },
- "seed_user_row": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "sql": "INSERT INTO User(Id, Name, Age, Active) VALUES (1, 'Alice', 30, true)"
- }
- }
- },
- "vendor": "anthropic"
- },
- "t_009_init": {
- "hash": "a4ddc223e2035781ae7e86c8c38c0d78212e9a0c4149c6535625b4033878e3a4",
- "task": "t_009_init",
- "lang": "csharp",
- "golden_published": true,
- "model_name": "Claude Sonnet 4.6",
- "total_tests": 4,
- "passed_tests": 4,
- "category": "basics",
- "route_api_model": "claude-sonnet-4-6",
- "scorer_details": {
- "init_seed_alice": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "actual": 1,
- "expected": 1,
- "sql": "SELECT COUNT(*) AS n FROM User WHERE Id=1 AND Name='Alice' AND Age=30 AND Active=true"
- }
- },
- "init_total_two": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "actual": 2,
- "expected": 2,
- "sql": "SELECT COUNT(*) AS n FROM User"
- }
- },
- "schema_parity": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "reducers_diff": null,
- "reducers_equal": true,
- "tables_diff": null,
- "tables_equal": true
- }
- },
- "init_seed_bob": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "actual": 1,
- "expected": 1,
- "sql": "SELECT COUNT(*) AS n FROM User WHERE Id=2 AND Name='Bob' AND Age=22 AND Active=false"
- }
- }
- },
- "vendor": "anthropic"
- },
- "t_010_connect": {
- "hash": "a4ddc223e2035781ae7e86c8c38c0d78212e9a0c4149c6535625b4033878e3a4",
- "task": "t_010_connect",
- "lang": "csharp",
- "golden_published": true,
- "model_name": "Claude Sonnet 4.6",
- "total_tests": 1,
- "passed_tests": 1,
- "category": "basics",
- "route_api_model": "claude-sonnet-4-6",
- "scorer_details": {
- "schema_parity": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "reducers_diff": null,
- "reducers_equal": true,
- "tables_diff": null,
- "tables_equal": true
- }
- }
- },
- "vendor": "anthropic"
- },
- "t_011_helper_function": {
- "hash": "a4ddc223e2035781ae7e86c8c38c0d78212e9a0c4149c6535625b4033878e3a4",
- "task": "t_011_helper_function",
- "lang": "csharp",
- "golden_published": true,
- "model_name": "Claude Sonnet 4.6",
- "total_tests": 3,
- "passed_tests": 3,
- "category": "basics",
- "route_api_model": "claude-sonnet-4-6",
- "scorer_details": {
- "helper_func_sum_abs": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "actual": 1,
- "expected": 1,
- "sql": "SELECT COUNT(*) AS n FROM Result WHERE Id=1 AND Sum=5"
- }
- },
- "schema_parity": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "reducers_diff": null,
- "reducers_equal": true,
- "tables_diff": null,
- "tables_equal": true
- }
- },
- "helper_func_sum_parity": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "args": [
- 1,
- 2,
- 3
- ],
- "golden_out": "Id | Sum ----+----- 1 | 5",
- "llm_out": "Id | Sum ----+----- 1 | 5",
- "query": "SELECT Id, Sum FROM Result WHERE Id=1",
- "reducer": "compute_sum"
- }
- }
- },
- "vendor": "anthropic"
- },
- "t_012_spacetime_product_type": {
- "hash": "a4ddc223e2035781ae7e86c8c38c0d78212e9a0c4149c6535625b4033878e3a4",
- "task": "t_012_spacetime_product_type",
- "lang": "csharp",
- "golden_published": true,
- "model_name": "Claude Sonnet 4.6",
- "total_tests": 3,
- "passed_tests": 3,
- "category": "schema",
- "route_api_model": "claude-sonnet-4-6",
- "scorer_details": {
- "product_type_row_count": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "actual": 1,
- "expected": 1,
- "sql": "SELECT COUNT(*) AS n FROM Result WHERE Id=1"
- }
- },
- "schema_parity": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "reducers_diff": null,
- "reducers_equal": true,
- "tables_diff": null,
- "tables_equal": true
- }
- },
- "product_type_row_parity": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "args": [
- 1,
- 2,
- 3
- ],
- "golden_out": "Id | Value ----+----------------------- 1 | (left = 2, right = 3)",
- "llm_out": "Id | Value ----+----------------------- 1 | (left = 2, right = 3)",
- "query": "SELECT Id, Value FROM Result WHERE Id=1",
- "reducer": "set_score"
- }
- }
- },
- "vendor": "anthropic"
- },
- "t_013_spacetime_sum_type": {
- "hash": "a4ddc223e2035781ae7e86c8c38c0d78212e9a0c4149c6535625b4033878e3a4",
- "task": "t_013_spacetime_sum_type",
- "lang": "csharp",
- "golden_published": true,
- "model_name": "Claude Sonnet 4.6",
- "total_tests": 3,
- "passed_tests": 3,
- "category": "schema",
- "route_api_model": "claude-sonnet-4-6",
- "scorer_details": {
- "schema_parity": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "reducers_diff": null,
- "reducers_equal": true,
- "tables_diff": null,
- "tables_equal": true
- }
- },
- "sum_type_row_parity": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "args": [
- 1,
- 10
- ],
- "golden_out": "Id | Value ----+-------------------------- 1 | (circle = (radius = 10))",
- "llm_out": "Id | Value ----+-------------------------- 1 | (circle = (radius = 10))",
- "query": "SELECT Id, Value FROM Result WHERE Id=1",
- "reducer": "set_circle"
- }
- },
- "sum_type_row_count": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "actual": 1,
- "expected": 1,
- "sql": "SELECT COUNT(*) AS n FROM Result WHERE Id=1"
- }
- }
- },
- "vendor": "anthropic"
- },
- "t_014_elementary_columns": {
- "hash": "a4ddc223e2035781ae7e86c8c38c0d78212e9a0c4149c6535625b4033878e3a4",
- "task": "t_014_elementary_columns",
- "lang": "csharp",
- "golden_published": true,
- "model_name": "Claude Sonnet 4.6",
- "total_tests": 3,
- "passed_tests": 3,
- "category": "schema",
- "route_api_model": "claude-sonnet-4-6",
- "scorer_details": {
- "schema_parity": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "reducers_diff": null,
- "reducers_equal": true,
- "tables_diff": null,
- "tables_equal": true
- }
- },
- "elementary_columns_row_parity": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "args": [],
- "golden_out": "Id | Count | Total | Price | Ratio | Active | Name ----+-------+------------+-------+-------+--------+--------- 1 | 2 | 3000000000 | 1.5 | 2.25 | true | \"Alice\"",
- "llm_out": "Id | Count | Total | Price | Ratio | Active | Name ----+-------+------------+-------+-------+--------+--------- 1 | 2 | 3000000000 | 1.5 | 2.25 | true | \"Alice\"",
- "query": "SELECT Id, Count, Total, Price, Ratio, Active, Name FROM Primitive WHERE Id=1",
- "reducer": "seed"
- }
- },
- "elementary_columns_row_count": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "actual": 1,
- "expected": 1,
- "sql": "SELECT COUNT(*) AS n FROM Primitive WHERE Id=1"
- }
- }
- },
- "vendor": "anthropic"
- },
- "t_015_product_type_columns": {
- "hash": "a4ddc223e2035781ae7e86c8c38c0d78212e9a0c4149c6535625b4033878e3a4",
- "task": "t_015_product_type_columns",
- "lang": "csharp",
- "golden_published": true,
- "model_name": "Claude Sonnet 4.6",
- "total_tests": 3,
- "passed_tests": 3,
- "category": "schema",
- "route_api_model": "claude-sonnet-4-6",
- "scorer_details": {
- "product_type_columns_row_parity": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "args": [],
- "golden_out": "Id | Home | Work | Pos ----+----------------------------------+-----------------------------------+---------------- 1 | (street = \"1 Main\", zip = 11111) | (street = \"2 Broad\", zip = 22222) | (x = 7, y = 9)",
- "llm_out": "Id | Home | Work | Pos ----+----------------------------------+-----------------------------------+---------------- 1 | (street = \"1 Main\", zip = 11111) | (street = \"2 Broad\", zip = 22222) | (x = 7, y = 9)",
- "query": "SELECT Id, Home, Work, Pos FROM Profile WHERE Id=1",
- "reducer": "seed"
- }
- },
- "schema_parity": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "reducers_diff": null,
- "reducers_equal": true,
- "tables_diff": null,
- "tables_equal": true
- }
- },
- "product_type_columns_row_count": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "actual": 1,
- "expected": 1,
- "sql": "SELECT COUNT(*) AS n FROM Profile WHERE Id=1"
- }
- }
- },
- "vendor": "anthropic"
- },
- "t_016_sum_type_columns": {
- "hash": "a4ddc223e2035781ae7e86c8c38c0d78212e9a0c4149c6535625b4033878e3a4",
- "task": "t_016_sum_type_columns",
- "lang": "csharp",
- "golden_published": true,
- "model_name": "Claude Sonnet 4.6",
- "total_tests": 3,
- "passed_tests": 2,
- "llm_output": "using SpacetimeDB;\n\npublic static partial class Module\n{\n [SpacetimeDB.Type]\n public partial struct Circle\n {\n public int Radius;\n }\n\n [SpacetimeDB.Type]\n public partial struct Rectangle\n {\n public int Width;\n public int Height;\n }\n\n [SpacetimeDB.Type]\n public partial record Shape : SpacetimeDB.TaggedEnum<(Circle Circle, Rectangle Rectangle)> { }\n\n [SpacetimeDB.Table(Name = \"Drawing\", Public = true)]\n public partial struct Drawing\n {\n [SpacetimeDB.PrimaryKey]\n public int Id;\n public Shape A;\n public Shape B;\n }\n\n [SpacetimeDB.Reducer]\n public static void Seed(ReducerContext ctx)\n {\n ctx.Db.Drawing.Insert(new Drawing\n {\n Id = 1,\n A = new Shape.Circle(new Circle { Radius = 10 }),\n B = new Shape.Rectangle(new Rectangle { Width = 4, Height = 6 })\n });\n }\n}",
- "category": "schema",
- "route_api_model": "claude-sonnet-4-6",
- "scorer_details": {
- "sum_type_columns_row_parity": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "args": [],
- "golden_out": "Id | A | B ----+--------------------------+--------------------------------------- 1 | (circle = (radius = 10)) | (rectangle = (width = 4, height = 6))",
- "llm_out": "Id | A | B ----+--------------------------+--------------------------------------- 1 | (circle = (radius = 10)) | (rectangle = (width = 4, height = 6))",
- "query": "SELECT Id, A, B FROM Drawing WHERE Id=1",
- "reducer": "seed"
- }
- },
- "schema_parity": {
- "pass": false,
- "partial": 0.0,
- "notes": {
- "reducers_diff": null,
- "reducers_equal": true,
- "tables_diff": {
- "changed": {},
- "only_golden": {
- "drawing": {}
- },
- "only_llm": {
- "Drawing": {}
- }
- },
- "tables_equal": false
- }
- },
- "sum_type_columns_row_count": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "actual": 1,
- "expected": 1,
- "sql": "SELECT COUNT(*) AS n FROM Drawing WHERE Id=1"
- }
- }
- },
- "vendor": "anthropic"
- },
- "t_017_scheduled_columns": {
- "hash": "a4ddc223e2035781ae7e86c8c38c0d78212e9a0c4149c6535625b4033878e3a4",
- "task": "t_017_scheduled_columns",
- "lang": "csharp",
- "golden_published": true,
- "model_name": "Claude Sonnet 4.6",
- "total_tests": 2,
- "passed_tests": 2,
- "category": "schema",
- "route_api_model": "claude-sonnet-4-6",
- "scorer_details": {
- "schema_parity": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "reducers_diff": null,
- "reducers_equal": true,
- "tables_diff": null,
- "tables_equal": true
- }
- },
- "scheduled_seeded_one_row": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "actual": 1,
- "expected": 1,
- "sql": "SELECT COUNT(*) AS n FROM TickTimer WHERE ScheduledId>=0"
- }
- }
- },
- "vendor": "anthropic"
- },
- "t_018_constraints": {
- "hash": "a4ddc223e2035781ae7e86c8c38c0d78212e9a0c4149c6535625b4033878e3a4",
- "task": "t_018_constraints",
- "lang": "csharp",
- "golden_published": true,
- "model_name": "Claude Sonnet 4.6",
- "total_tests": 3,
- "passed_tests": 3,
- "category": "schema",
- "route_api_model": "claude-sonnet-4-6",
- "scorer_details": {
- "schema_parity": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "reducers_diff": null,
- "reducers_equal": true,
- "tables_diff": null,
- "tables_equal": true
- }
- },
- "constraints_row_parity_after_seed": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "args": [],
- "golden_out": "Id | Email | Name ----+-----------------+--------- 1 | \"a@example.com\" | \"Alice\"",
- "llm_out": "Id | Email | Name ----+-----------------+--------- 1 | \"a@example.com\" | \"Alice\"",
- "query": "SELECT Id, Email, Name FROM Account WHERE Id=1",
- "reducer": "seed"
- }
- },
- "constraints_seed_two_rows": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "actual": 1,
- "expected": 1,
- "sql": "SELECT COUNT(*) AS n FROM Account WHERE Id=2"
- }
- }
- },
- "vendor": "anthropic"
- },
- "t_019_many_to_many": {
- "hash": "a4ddc223e2035781ae7e86c8c38c0d78212e9a0c4149c6535625b4033878e3a4",
- "task": "t_019_many_to_many",
- "lang": "csharp",
- "golden_published": true,
- "model_name": "Claude Sonnet 4.6",
- "total_tests": 5,
- "passed_tests": 5,
- "category": "schema",
- "route_api_model": "claude-sonnet-4-6",
- "scorer_details": {
- "m2m_has_1_20": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "actual": 1,
- "expected": 1,
- "sql": "SELECT COUNT(*) AS n FROM Membership WHERE UserId=1 AND GroupId=20"
- }
- },
- "m2m_has_2_20": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "actual": 1,
- "expected": 1,
- "sql": "SELECT COUNT(*) AS n FROM Membership WHERE UserId=2 AND GroupId=20"
- }
- },
- "schema_parity": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "reducers_diff": null,
- "reducers_equal": true,
- "tables_diff": null,
- "tables_equal": true
- }
- },
- "m2m_has_1_10": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "actual": 1,
- "expected": 1,
- "sql": "SELECT COUNT(*) AS n FROM Membership WHERE UserId=1 AND GroupId=10"
- }
- },
- "memberships_three_rows": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "actual": 3,
- "expected": 3,
- "sql": "SELECT COUNT(*) AS n FROM Membership"
- }
- }
- },
- "vendor": "anthropic"
- },
- "t_020_ecs": {
- "hash": "a4ddc223e2035781ae7e86c8c38c0d78212e9a0c4149c6535625b4033878e3a4",
- "task": "t_020_ecs",
- "lang": "csharp",
- "golden_published": true,
- "model_name": "Claude Sonnet 4.6",
- "total_tests": 5,
- "passed_tests": 5,
- "category": "schema",
- "route_api_model": "claude-sonnet-4-6",
- "scorer_details": {
- "ecs_next_pos_entity2": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "actual": 1,
- "expected": 1,
- "sql": "SELECT COUNT(*) AS n FROM NextPosition WHERE EntityId=2 AND X=8 AND Y=3"
- }
- },
- "ecs_next_pos_entity1": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "actual": 1,
- "expected": 1,
- "sql": "SELECT COUNT(*) AS n FROM NextPosition WHERE EntityId=1 AND X=1 AND Y=0"
- }
- },
- "ecs_seed_position_count": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "actual": 2,
- "expected": 2,
- "sql": "SELECT COUNT(*) AS n FROM Position"
- }
- },
- "schema_parity": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "reducers_diff": null,
- "reducers_equal": true,
- "tables_diff": null,
- "tables_equal": true
- }
- },
- "ecs_step_next_position_count": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "actual": 2,
- "expected": 2,
- "sql": "SELECT COUNT(*) AS n FROM NextPosition"
- }
- }
- },
- "vendor": "anthropic"
- },
- "t_021_multi_column_index": {
- "hash": "a4ddc223e2035781ae7e86c8c38c0d78212e9a0c4149c6535625b4033878e3a4",
- "task": "t_021_multi_column_index",
- "lang": "csharp",
- "golden_published": true,
- "model_name": "Claude Sonnet 4.6",
- "total_tests": 4,
- "passed_tests": 4,
- "category": "schema",
- "route_api_model": "claude-sonnet-4-6",
- "scorer_details": {
- "mcindex_seed_count": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "actual": 3,
- "expected": 3,
- "sql": "SELECT COUNT(*) AS n FROM Log"
- }
- },
- "mcindex_lookup_u7_d1": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "actual": 1,
- "expected": 1,
- "sql": "SELECT COUNT(*) AS n FROM Log WHERE UserId=7 AND Day=1"
- }
- },
- "schema_parity": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "reducers_diff": null,
- "reducers_equal": true,
- "tables_diff": null,
- "tables_equal": true
- }
- },
- "mcindex_lookup_u7_d2": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "actual": 1,
- "expected": 1,
- "sql": "SELECT COUNT(*) AS n FROM Log WHERE UserId=7 AND Day=2"
- }
- }
- },
- "vendor": "anthropic"
- }
- }
- },
- {
- "name": "GPT-5.2-Codex",
- "route_api_model": "gpt-5.2-codex",
- "tasks": {
- "t_000_empty_reducers": {
- "hash": "a4ddc223e2035781ae7e86c8c38c0d78212e9a0c4149c6535625b4033878e3a4",
- "task": "t_000_empty_reducers",
- "lang": "csharp",
- "golden_published": true,
- "model_name": "GPT-5.2-Codex",
- "total_tests": 1,
- "passed_tests": 0,
- "llm_output": "using SpacetimeDB;\n\npublic static partial class Module\n{\n [SpacetimeDB.Table(Name = \"EmptyTable\")]\n public partial struct EmptyTable\n {\n [SpacetimeDB.PrimaryKey]\n public int Id;\n }\n\n [SpacetimeDB.Reducer]\n public static void EmptyReducer_NoArgs(ReducerContext ctx)\n {\n }\n\n [SpacetimeDB.Reducer]\n public static void EmptyReducer_WithInt(ReducerContext ctx, int count)\n {\n }\n\n [SpacetimeDB.Reducer]\n public static void EmptyReducer_WithString(ReducerContext ctx, string name)\n {\n }\n\n [SpacetimeDB.Reducer]\n public static void EmptyReducer_WithTwoArgs(ReducerContext ctx, int count, string name)\n {\n }\n\n [SpacetimeDB.Reducer]\n public static void EmptyReducer_WithThreeArgs(ReducerContext ctx, bool active, float ratio, string label)\n {\n }\n}",
- "category": "basics",
- "route_api_model": "gpt-5.2-codex",
- "scorer_details": {
- "schema_parity": {
- "pass": false,
- "partial": 0.0,
- "notes": {
- "reducers_diff": null,
- "reducers_equal": true,
- "tables_diff": {
- "changed": {},
- "only_golden": {
- "empty_table": {}
- },
- "only_llm": {
- "EmptyTable": {}
- }
- },
- "tables_equal": false
- }
- }
- },
- "vendor": "openai"
- },
- "t_001_basic_tables": {
- "hash": "a4ddc223e2035781ae7e86c8c38c0d78212e9a0c4149c6535625b4033878e3a4",
- "task": "t_001_basic_tables",
- "lang": "csharp",
- "golden_published": true,
- "model_name": "GPT-5.2-Codex",
- "total_tests": 1,
- "passed_tests": 0,
- "llm_output": "using SpacetimeDB;\n\npublic static partial class Module\n{\n [SpacetimeDB.Table(Name = \"User\", Public = true)]\n public partial struct User\n {\n [SpacetimeDB.PrimaryKey]\n public int Id;\n public string Name;\n public int Age;\n public bool Active;\n }\n\n [SpacetimeDB.Table(Name = \"Product\", Public = true)]\n public partial struct Product\n {\n [SpacetimeDB.PrimaryKey]\n public int Id;\n public string Title;\n public float Price;\n public bool InStock;\n }\n\n [SpacetimeDB.Table(Name = \"Note\", Public = true)]\n public partial struct Note\n {\n [SpacetimeDB.PrimaryKey]\n public int Id;\n public string Body;\n public long Rating;\n public bool Pinned;\n }\n}",
- "category": "basics",
- "route_api_model": "gpt-5.2-codex",
- "scorer_details": {
- "schema_parity": {
- "pass": false,
- "partial": 0.0,
- "notes": {
- "reducers_diff": null,
- "reducers_equal": true,
- "tables_diff": {
- "changed": {},
- "only_golden": {
- "note": {},
- "product": {},
- "user": {}
- },
- "only_llm": {
- "Note": {},
- "Product": {},
- "User": {}
- }
- },
- "tables_equal": false
- }
- }
- },
- "vendor": "openai"
- },
- "t_002_scheduled_table": {
- "hash": "a4ddc223e2035781ae7e86c8c38c0d78212e9a0c4149c6535625b4033878e3a4",
- "task": "t_002_scheduled_table",
- "lang": "csharp",
- "golden_published": true,
- "model_name": "GPT-5.2-Codex",
- "total_tests": 1,
- "passed_tests": 1,
- "category": "basics",
- "route_api_model": "gpt-5.2-codex",
- "scorer_details": {
- "schema_parity": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "reducers_diff": null,
- "reducers_equal": true,
- "tables_diff": null,
- "tables_equal": true
- }
- }
- },
- "vendor": "openai"
- },
- "t_003_struct_in_table": {
- "hash": "a4ddc223e2035781ae7e86c8c38c0d78212e9a0c4149c6535625b4033878e3a4",
- "task": "t_003_struct_in_table",
- "lang": "csharp",
- "golden_published": true,
- "model_name": "GPT-5.2-Codex",
- "total_tests": 1,
- "passed_tests": 1,
- "category": "basics",
- "route_api_model": "gpt-5.2-codex",
- "scorer_details": {
- "schema_parity": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "reducers_diff": null,
- "reducers_equal": true,
- "tables_diff": null,
- "tables_equal": true
- }
- }
- },
- "vendor": "openai"
- },
- "t_004_insert": {
- "hash": "a4ddc223e2035781ae7e86c8c38c0d78212e9a0c4149c6535625b4033878e3a4",
- "task": "t_004_insert",
- "lang": "csharp",
- "golden_published": true,
- "model_name": "GPT-5.2-Codex",
- "total_tests": 2,
- "passed_tests": 1,
- "llm_output": "using SpacetimeDB;\n\npublic static partial class Module\n{\n [SpacetimeDB.Table(Name = \"User\", Public = true)]\n public partial struct User\n {\n [SpacetimeDB.PrimaryKey]\n public int Id;\n public string Name;\n public int Age;\n public bool Active;\n }\n\n [SpacetimeDB.Reducer]\n public static void InsertUser(ReducerContext ctx, int id, string name, int age, bool active)\n {\n ctx.Db.User.Insert(new User\n {\n Id = id,\n Name = name,\n Age = age,\n Active = active\n });\n }\n}",
- "category": "basics",
- "route_api_model": "gpt-5.2-codex",
- "scorer_details": {
- "schema_parity": {
- "pass": false,
- "partial": 0.0,
- "notes": {
- "reducers_diff": null,
- "reducers_equal": true,
- "tables_diff": {
- "changed": {},
- "only_golden": {
- "user": {}
- },
- "only_llm": {
- "User": {}
- }
- },
- "tables_equal": false
- }
- },
- "data_parity_insert_user": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "args": [
- 1,
- "Alice",
- 30,
- true
- ],
- "golden_out": "Id | Name | Age | Active ----+---------+-----+-------- 1 | \"Alice\" | 30 | true",
- "llm_out": "Id | Name | Age | Active ----+---------+-----+-------- 1 | \"Alice\" | 30 | true",
- "query": "SELECT Id, Name, Age, Active FROM User WHERE Id=1",
- "reducer": "insert_user"
- }
- }
- },
- "vendor": "openai"
- },
- "t_005_update": {
- "hash": "a4ddc223e2035781ae7e86c8c38c0d78212e9a0c4149c6535625b4033878e3a4",
- "task": "t_005_update",
- "lang": "csharp",
- "golden_published": true,
- "model_name": "GPT-5.2-Codex",
- "total_tests": 3,
- "passed_tests": 0,
- "llm_output": "using SpacetimeDB;\n\npublic static partial class Module\n{\n [SpacetimeDB.Table(Name = \"User\", Public = true)]\n public partial struct User\n {\n [SpacetimeDB.PrimaryKey]\n public int Id;\n public string Name;\n public int Age;\n public bool Active;\n }\n\n [SpacetimeDB.Reducer]\n public static void UpdateUser(ReducerContext ctx, int id, string name, int age, bool active)\n {\n var user = ctx.Db.User.Id.Find(id);\n if (user == null)\n {\n throw new System.Exception(\"User not found\");\n }\n\n ctx.Db.User.Id.Update(new User\n {\n Id = id,\n Name = name,\n Age = age,\n Active = active\n });\n }\n}",
- "category": "basics",
- "route_api_model": "gpt-5.2-codex",
- "scorer_details": {
- "data_parity_update_user": {
- "pass": false,
- "partial": 0.0,
- "notes": {
- "error": "spacetime call failed:\nWARNING: This command is UNSTABLE and subject to breaking changes.\n\nError: Response text: User not found\n\nCaused by:\n HTTP status server error (530 ) for url (http://127.0.0.1:56242/v1/database/c2007cc5b4cc7151bdd0e1be650a69e8154c8656fdd4b50483331748cd393975/call/update_user)\n",
- "phase": "call_reducer_llm"
- }
- },
- "schema_parity": {
- "pass": false,
- "partial": 0.0,
- "notes": {
- "reducers_diff": null,
- "reducers_equal": true,
- "tables_diff": {
- "changed": {},
- "only_golden": {
- "user": {}
- },
- "only_llm": {
- "User": {}
- }
- },
- "tables_equal": false
- }
- },
- "seed_users_row": {
- "pass": false,
- "partial": 0.0,
- "notes": {
- "error": "spacetime sql failed:\nWARNING: This command is UNSTABLE and subject to breaking changes.\n\nError: IndexError: Unique constraint violation 'user_id_idx_btree' in table 'user': column(s): '[\"id\"]' value: 1\n\nCaused by:\n HTTP status client error (400 Bad Request) for url (http://127.0.0.1:56242/v1/database/c2003fa012003c49d80084f437bb713f6a093beeaea5587a135d5ff1731afde4/sql)\n",
- "phase": "sql_golden",
- "sql": "INSERT INTO User(Id, Name, Age, Active) VALUES (1, 'Alice', 30, true)"
- }
- }
- },
- "vendor": "openai"
- },
- "t_006_delete": {
- "hash": "a4ddc223e2035781ae7e86c8c38c0d78212e9a0c4149c6535625b4033878e3a4",
- "task": "t_006_delete",
- "lang": "csharp",
- "golden_published": true,
- "model_name": "GPT-5.2-Codex",
- "total_tests": 3,
- "passed_tests": 2,
- "llm_output": "using SpacetimeDB;\n\npublic static partial class Module\n{\n [SpacetimeDB.Table(Name = \"User\", Public = true)]\n public partial struct User\n {\n [SpacetimeDB.PrimaryKey]\n public int Id;\n public string Name;\n public int Age;\n public bool Active;\n }\n\n [SpacetimeDB.Reducer]\n public static void DeleteUser(ReducerContext ctx, int id)\n {\n ctx.Db.User.Id.Delete(id);\n }\n}",
- "category": "basics",
- "route_api_model": "gpt-5.2-codex",
- "scorer_details": {
- "schema_parity": {
- "pass": false,
- "partial": 0.0,
- "notes": {
- "reducers_diff": null,
- "reducers_equal": true,
- "tables_diff": {
- "changed": {},
- "only_golden": {
- "user": {}
- },
- "only_llm": {
- "User": {}
- }
- },
- "tables_equal": false
- }
- },
- "seed_users_row": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "sql": "INSERT INTO User(Id, Name, Age, Active) VALUES (1, 'Alice', 30, true)"
- }
- },
- "delete_user_count_zero": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "actual": 0,
- "expected": 0,
- "sql": "SELECT COUNT(*) AS n FROM User WHERE Id=1"
- }
- }
- },
- "vendor": "openai"
- },
- "t_007_crud": {
- "hash": "a4ddc223e2035781ae7e86c8c38c0d78212e9a0c4149c6535625b4033878e3a4",
- "task": "t_007_crud",
- "lang": "csharp",
- "golden_published": true,
- "model_name": "GPT-5.2-Codex",
- "total_tests": 4,
- "passed_tests": 1,
- "llm_output": "using SpacetimeDB;\n\npublic static partial class Module\n{\n [SpacetimeDB.Table(Name = \"User\", Public = true)]\n public partial struct User\n {\n [SpacetimeDB.PrimaryKey]\n public int Id;\n public string Name;\n public int Age;\n public bool Active;\n }\n\n [SpacetimeDB.Reducer]\n public static void Crud(ReducerContext ctx)\n {\n ctx.Db.User.Insert(new User { Id = 1, Name = \"Alice\", Age = 30, Active = true });\n ctx.Db.User.Insert(new User { Id = 2, Name = \"Bob\", Age = 22, Active = false });\n\n ctx.Db.User.Id.Update(new User { Id = 1, Name = \"Alice2\", Age = 31, Active = false });\n\n ctx.Db.User.Id.Delete(2);\n }\n}",
- "category": "basics",
- "route_api_model": "gpt-5.2-codex",
- "scorer_details": {
- "crud_row_id2_deleted": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "actual": 0,
- "expected": 0,
- "sql": "SELECT COUNT(*) AS n FROM User WHERE Id=2"
- }
- },
- "schema_parity": {
- "pass": false,
- "partial": 0.0,
- "notes": {
- "reducers_diff": null,
- "reducers_equal": true,
- "tables_diff": {
- "changed": {},
- "only_golden": {
- "user": {}
- },
- "only_llm": {
- "User": {}
- }
- },
- "tables_equal": false
- }
- },
- "crud_row_id1_parity": {
- "pass": false,
- "partial": 0.0,
- "notes": {
- "error": "spacetime call failed:\nWARNING: This command is UNSTABLE and subject to breaking changes.\n\nError: Response text: Value with given unique identifier already exists\n\nCaused by:\n HTTP status server error (530 ) for url (http://127.0.0.1:56242/v1/database/c200bae1f2bdd27271e560dbfda8814cfd2302b7e12fa45c11457037728b852a/call/crud)\n",
- "phase": "call_reducer_golden"
- }
- },
- "crud_total_count_one": {
- "pass": false,
- "partial": 0.0,
- "notes": {
- "actual": 0,
- "expected": 1,
- "sql": "SELECT COUNT(*) AS n FROM User"
- }
- }
- },
- "vendor": "openai"
- },
- "t_008_index_lookup": {
- "hash": "a4ddc223e2035781ae7e86c8c38c0d78212e9a0c4149c6535625b4033878e3a4",
- "task": "t_008_index_lookup",
- "lang": "csharp",
- "golden_published": true,
- "model_name": "GPT-5.2-Codex",
- "total_tests": 3,
- "passed_tests": 3,
- "category": "basics",
- "route_api_model": "gpt-5.2-codex",
- "scorer_details": {
- "index_lookup_projection_parity": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "args": [
- 1
- ],
- "golden_out": "Id | Name ----+--------- 1 | \"Alice\"",
- "llm_out": "Id | Name ----+--------- 1 | \"Alice\"",
- "query": "SELECT Id, Name FROM Result WHERE Id=1",
- "reducer": "lookup_user_name"
- }
- },
- "schema_parity": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "reducers_diff": null,
- "reducers_equal": true,
- "tables_diff": null,
- "tables_equal": true
- }
- },
- "seed_user_row": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "sql": "INSERT INTO User(Id, Name, Age, Active) VALUES (1, 'Alice', 30, true)"
- }
- }
- },
- "vendor": "openai"
- },
- "t_009_init": {
- "hash": "a4ddc223e2035781ae7e86c8c38c0d78212e9a0c4149c6535625b4033878e3a4",
- "task": "t_009_init",
- "lang": "csharp",
- "golden_published": true,
- "model_name": "GPT-5.2-Codex",
- "total_tests": 4,
- "passed_tests": 4,
- "category": "basics",
- "route_api_model": "gpt-5.2-codex",
- "scorer_details": {
- "init_seed_alice": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "actual": 1,
- "expected": 1,
- "sql": "SELECT COUNT(*) AS n FROM User WHERE Id=1 AND Name='Alice' AND Age=30 AND Active=true"
- }
- },
- "init_total_two": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "actual": 2,
- "expected": 2,
- "sql": "SELECT COUNT(*) AS n FROM User"
- }
- },
- "schema_parity": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "reducers_diff": null,
- "reducers_equal": true,
- "tables_diff": null,
- "tables_equal": true
- }
- },
- "init_seed_bob": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "actual": 1,
- "expected": 1,
- "sql": "SELECT COUNT(*) AS n FROM User WHERE Id=2 AND Name='Bob' AND Age=22 AND Active=false"
- }
- }
- },
- "vendor": "openai"
- },
- "t_010_connect": {
- "hash": "a4ddc223e2035781ae7e86c8c38c0d78212e9a0c4149c6535625b4033878e3a4",
- "task": "t_010_connect",
- "lang": "csharp",
- "golden_published": true,
- "model_name": "GPT-5.2-Codex",
- "total_tests": 1,
- "passed_tests": 0,
- "llm_output": "using SpacetimeDB;\n\npublic static partial class Module\n{\n [SpacetimeDB.Table(Name = \"Event\", Public = true)]\n public partial struct Event\n {\n [SpacetimeDB.PrimaryKey]\n [SpacetimeDB.AutoInc]\n public int Id;\n public string Kind;\n }\n\n [SpacetimeDB.Reducer(ReducerKind.ClientConnected)]\n public static void ClientConnected(ReducerContext ctx)\n {\n ctx.Db.Event.Insert(new Event { Id = 0, Kind = \"connected\" });\n }\n\n [SpacetimeDB.Reducer(ReducerKind.ClientDisconnected)]\n public static void ClientDisconnected(ReducerContext ctx)\n {\n ctx.Db.Event.Insert(new Event { Id = 0, Kind = \"disconnected\" });\n }\n}",
- "category": "basics",
- "route_api_model": "gpt-5.2-codex",
- "scorer_details": {
- "schema_parity": {
- "pass": false,
- "partial": 0.0,
- "notes": {
- "reducers_diff": null,
- "reducers_equal": true,
- "tables_diff": {
- "changed": {},
- "only_golden": {
- "event": {}
- },
- "only_llm": {
- "Event": {}
- }
- },
- "tables_equal": false
- }
- }
- },
- "vendor": "openai"
- },
- "t_011_helper_function": {
- "hash": "a4ddc223e2035781ae7e86c8c38c0d78212e9a0c4149c6535625b4033878e3a4",
- "task": "t_011_helper_function",
- "lang": "csharp",
- "golden_published": true,
- "model_name": "GPT-5.2-Codex",
- "total_tests": 3,
- "passed_tests": 3,
- "category": "basics",
- "route_api_model": "gpt-5.2-codex",
- "scorer_details": {
- "helper_func_sum_parity": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "args": [
- 1,
- 2,
- 3
- ],
- "golden_out": "Id | Sum ----+----- 1 | 5",
- "llm_out": "Id | Sum ----+----- 1 | 5",
- "query": "SELECT Id, Sum FROM Result WHERE Id=1",
- "reducer": "compute_sum"
- }
- },
- "schema_parity": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "reducers_diff": null,
- "reducers_equal": true,
- "tables_diff": null,
- "tables_equal": true
- }
- },
- "helper_func_sum_abs": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "actual": 1,
- "expected": 1,
- "sql": "SELECT COUNT(*) AS n FROM Result WHERE Id=1 AND Sum=5"
- }
- }
- },
- "vendor": "openai"
- },
- "t_012_spacetime_product_type": {
- "hash": "a4ddc223e2035781ae7e86c8c38c0d78212e9a0c4149c6535625b4033878e3a4",
- "task": "t_012_spacetime_product_type",
- "lang": "csharp",
- "golden_published": true,
- "model_name": "GPT-5.2-Codex",
- "total_tests": 3,
- "passed_tests": 3,
- "category": "schema",
- "route_api_model": "gpt-5.2-codex",
- "scorer_details": {
- "product_type_row_count": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "actual": 1,
- "expected": 1,
- "sql": "SELECT COUNT(*) AS n FROM Result WHERE Id=1"
- }
- },
- "schema_parity": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "reducers_diff": null,
- "reducers_equal": true,
- "tables_diff": null,
- "tables_equal": true
- }
- },
- "product_type_row_parity": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "args": [
- 1,
- 2,
- 3
- ],
- "golden_out": "Id | Value ----+----------------------- 1 | (left = 2, right = 3)",
- "llm_out": "Id | Value ----+----------------------- 1 | (left = 2, right = 3)",
- "query": "SELECT Id, Value FROM Result WHERE Id=1",
- "reducer": "set_score"
- }
- }
- },
- "vendor": "openai"
- },
- "t_013_spacetime_sum_type": {
- "hash": "a4ddc223e2035781ae7e86c8c38c0d78212e9a0c4149c6535625b4033878e3a4",
- "task": "t_013_spacetime_sum_type",
- "lang": "csharp",
- "golden_published": true,
- "model_name": "GPT-5.2-Codex",
- "total_tests": 3,
- "passed_tests": 3,
- "category": "schema",
- "route_api_model": "gpt-5.2-codex",
- "scorer_details": {
- "schema_parity": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "reducers_diff": null,
- "reducers_equal": true,
- "tables_diff": null,
- "tables_equal": true
- }
- },
- "sum_type_row_parity": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "args": [
- 1,
- 10
- ],
- "golden_out": "Id | Value ----+-------------------------- 1 | (circle = (radius = 10))",
- "llm_out": "Id | Value ----+-------------------------- 1 | (circle = (radius = 10))",
- "query": "SELECT Id, Value FROM Result WHERE Id=1",
- "reducer": "set_circle"
- }
- },
- "sum_type_row_count": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "actual": 1,
- "expected": 1,
- "sql": "SELECT COUNT(*) AS n FROM Result WHERE Id=1"
- }
- }
- },
- "vendor": "openai"
- },
- "t_014_elementary_columns": {
- "hash": "a4ddc223e2035781ae7e86c8c38c0d78212e9a0c4149c6535625b4033878e3a4",
- "task": "t_014_elementary_columns",
- "lang": "csharp",
- "golden_published": true,
- "model_name": "GPT-5.2-Codex",
- "total_tests": 3,
- "passed_tests": 2,
- "llm_output": "using SpacetimeDB;\n\npublic static partial class Module\n{\n [SpacetimeDB.Table(Name = \"Primitive\", Public = true)]\n public partial struct Primitive\n {\n [SpacetimeDB.PrimaryKey]\n public int Id;\n public int Count;\n public long Total;\n public float Price;\n public double Ratio;\n public bool Active;\n public string Name;\n }\n\n [SpacetimeDB.Reducer]\n public static void Seed(ReducerContext ctx)\n {\n ctx.Db.Primitive.Insert(new Primitive\n {\n Id = 1,\n Count = 2,\n Total = 3000000000L,\n Price = 1.5f,\n Ratio = 2.25,\n Active = true,\n Name = \"Alice\"\n });\n }\n}",
- "category": "schema",
- "route_api_model": "gpt-5.2-codex",
- "scorer_details": {
- "schema_parity": {
- "pass": false,
- "partial": 0.0,
- "notes": {
- "reducers_diff": null,
- "reducers_equal": true,
- "tables_diff": {
- "changed": {},
- "only_golden": {
- "primitive": {}
- },
- "only_llm": {
- "Primitive": {}
- }
- },
- "tables_equal": false
- }
- },
- "elementary_columns_row_parity": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "args": [],
- "golden_out": "Id | Count | Total | Price | Ratio | Active | Name ----+-------+------------+-------+-------+--------+--------- 1 | 2 | 3000000000 | 1.5 | 2.25 | true | \"Alice\"",
- "llm_out": "Id | Count | Total | Price | Ratio | Active | Name ----+-------+------------+-------+-------+--------+--------- 1 | 2 | 3000000000 | 1.5 | 2.25 | true | \"Alice\"",
- "query": "SELECT Id, Count, Total, Price, Ratio, Active, Name FROM Primitive WHERE Id=1",
- "reducer": "seed"
- }
- },
- "elementary_columns_row_count": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "actual": 1,
- "expected": 1,
- "sql": "SELECT COUNT(*) AS n FROM Primitive WHERE Id=1"
- }
- }
- },
- "vendor": "openai"
- },
- "t_015_product_type_columns": {
- "hash": "a4ddc223e2035781ae7e86c8c38c0d78212e9a0c4149c6535625b4033878e3a4",
- "task": "t_015_product_type_columns",
- "lang": "csharp",
- "golden_published": true,
- "model_name": "GPT-5.2-Codex",
- "total_tests": 3,
- "passed_tests": 3,
- "category": "schema",
- "route_api_model": "gpt-5.2-codex",
- "scorer_details": {
- "product_type_columns_row_parity": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "args": [],
- "golden_out": "Id | Home | Work | Pos ----+----------------------------------+-----------------------------------+---------------- 1 | (street = \"1 Main\", zip = 11111) | (street = \"2 Broad\", zip = 22222) | (x = 7, y = 9)",
- "llm_out": "Id | Home | Work | Pos ----+----------------------------------+-----------------------------------+---------------- 1 | (street = \"1 Main\", zip = 11111) | (street = \"2 Broad\", zip = 22222) | (x = 7, y = 9)",
- "query": "SELECT Id, Home, Work, Pos FROM Profile WHERE Id=1",
- "reducer": "seed"
- }
- },
- "schema_parity": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "reducers_diff": null,
- "reducers_equal": true,
- "tables_diff": null,
- "tables_equal": true
- }
- },
- "product_type_columns_row_count": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "actual": 1,
- "expected": 1,
- "sql": "SELECT COUNT(*) AS n FROM Profile WHERE Id=1"
- }
- }
- },
- "vendor": "openai"
- },
- "t_016_sum_type_columns": {
- "hash": "a4ddc223e2035781ae7e86c8c38c0d78212e9a0c4149c6535625b4033878e3a4",
- "task": "t_016_sum_type_columns",
- "lang": "csharp",
- "golden_published": true,
- "model_name": "GPT-5.2-Codex",
- "total_tests": 3,
- "passed_tests": 2,
- "llm_output": "using SpacetimeDB;\n\npublic static partial class Module\n{\n [SpacetimeDB.Type]\n public partial struct Circle\n {\n public int Radius;\n }\n\n [SpacetimeDB.Type]\n public partial struct Rectangle\n {\n public int Width;\n public int Height;\n }\n\n [SpacetimeDB.Type]\n public partial record Shape : TaggedEnum<(Circle Circle, Rectangle Rectangle)> { }\n\n [SpacetimeDB.Table(Name = \"Drawing\")]\n public partial struct Drawing\n {\n [SpacetimeDB.PrimaryKey]\n public int Id;\n public Shape A;\n public Shape B;\n }\n\n [SpacetimeDB.Reducer]\n public static void Seed(ReducerContext ctx)\n {\n ctx.Db.Drawing.Insert(new Drawing\n {\n Id = 1,\n A = new Shape.Circle(new Circle { Radius = 10 }),\n B = new Shape.Rectangle(new Rectangle { Width = 4, Height = 6 })\n });\n }\n}",
- "category": "schema",
- "route_api_model": "gpt-5.2-codex",
- "scorer_details": {
- "sum_type_columns_row_parity": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "args": [],
- "golden_out": "Id | A | B ----+--------------------------+--------------------------------------- 1 | (circle = (radius = 10)) | (rectangle = (width = 4, height = 6))",
- "llm_out": "Id | A | B ----+--------------------------+--------------------------------------- 1 | (circle = (radius = 10)) | (rectangle = (width = 4, height = 6))",
- "query": "SELECT Id, A, B FROM Drawing WHERE Id=1",
- "reducer": "seed"
- }
- },
- "schema_parity": {
- "pass": false,
- "partial": 0.0,
- "notes": {
- "reducers_diff": null,
- "reducers_equal": true,
- "tables_diff": {
- "changed": {},
- "only_golden": {
- "drawing": {}
- },
- "only_llm": {
- "Drawing": {}
- }
- },
- "tables_equal": false
- }
- },
- "sum_type_columns_row_count": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "actual": 1,
- "expected": 1,
- "sql": "SELECT COUNT(*) AS n FROM Drawing WHERE Id=1"
- }
- }
- },
- "vendor": "openai"
- },
- "t_017_scheduled_columns": {
- "hash": "a4ddc223e2035781ae7e86c8c38c0d78212e9a0c4149c6535625b4033878e3a4",
- "task": "t_017_scheduled_columns",
- "lang": "csharp",
- "golden_published": true,
- "model_name": "GPT-5.2-Codex",
- "total_tests": 2,
- "passed_tests": 2,
- "category": "schema",
- "route_api_model": "gpt-5.2-codex",
- "scorer_details": {
- "schema_parity": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "reducers_diff": null,
- "reducers_equal": true,
- "tables_diff": null,
- "tables_equal": true
- }
- },
- "scheduled_seeded_one_row": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "actual": 1,
- "expected": 1,
- "sql": "SELECT COUNT(*) AS n FROM TickTimer WHERE ScheduledId>=0"
- }
- }
- },
- "vendor": "openai"
- },
- "t_018_constraints": {
- "hash": "a4ddc223e2035781ae7e86c8c38c0d78212e9a0c4149c6535625b4033878e3a4",
- "task": "t_018_constraints",
- "lang": "csharp",
- "golden_published": true,
- "model_name": "GPT-5.2-Codex",
- "total_tests": 3,
- "passed_tests": 2,
- "llm_output": "using SpacetimeDB;\n\npublic static partial class Module\n{\n [SpacetimeDB.Table(Name = \"Account\", Public = true)]\n [SpacetimeDB.Index.BTree(Name = \"by_name\", Columns = new[] { nameof(Name) })]\n public partial struct Account\n {\n [SpacetimeDB.PrimaryKey]\n public int Id;\n\n [SpacetimeDB.Unique]\n public string Email;\n\n public string Name;\n }\n\n [SpacetimeDB.Reducer]\n public static void Seed(ReducerContext ctx)\n {\n ctx.Db.Account.Insert(new Account { Id = 1, Email = \"a@example.com\", Name = \"Alice\" });\n ctx.Db.Account.Insert(new Account { Id = 2, Email = \"b@example.com\", Name = \"Bob\" });\n }\n}",
- "category": "schema",
- "route_api_model": "gpt-5.2-codex",
- "scorer_details": {
- "schema_parity": {
- "pass": false,
- "partial": 0.0,
- "notes": {
- "reducers_diff": null,
- "reducers_equal": true,
- "tables_diff": {
- "changed": {},
- "only_golden": {
- "account": {}
- },
- "only_llm": {
- "Account": {}
- }
- },
- "tables_equal": false
- }
- },
- "constraints_row_parity_after_seed": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "args": [],
- "golden_out": "Id | Email | Name ----+-----------------+--------- 1 | \"a@example.com\" | \"Alice\"",
- "llm_out": "Id | Email | Name ----+-----------------+--------- 1 | \"a@example.com\" | \"Alice\"",
- "query": "SELECT Id, Email, Name FROM Account WHERE Id=1",
- "reducer": "seed"
- }
- },
- "constraints_seed_two_rows": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "actual": 1,
- "expected": 1,
- "sql": "SELECT COUNT(*) AS n FROM Account WHERE Id=2"
- }
- }
- },
- "vendor": "openai"
- },
- "t_019_many_to_many": {
- "hash": "a4ddc223e2035781ae7e86c8c38c0d78212e9a0c4149c6535625b4033878e3a4",
- "task": "t_019_many_to_many",
- "lang": "csharp",
- "golden_published": true,
- "model_name": "GPT-5.2-Codex",
- "total_tests": 5,
- "passed_tests": 5,
- "category": "schema",
- "route_api_model": "gpt-5.2-codex",
- "scorer_details": {
- "m2m_has_1_20": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "actual": 1,
- "expected": 1,
- "sql": "SELECT COUNT(*) AS n FROM Membership WHERE UserId=1 AND GroupId=20"
- }
- },
- "m2m_has_2_20": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "actual": 1,
- "expected": 1,
- "sql": "SELECT COUNT(*) AS n FROM Membership WHERE UserId=2 AND GroupId=20"
- }
- },
- "schema_parity": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "reducers_diff": null,
- "reducers_equal": true,
- "tables_diff": null,
- "tables_equal": true
- }
- },
- "m2m_has_1_10": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "actual": 1,
- "expected": 1,
- "sql": "SELECT COUNT(*) AS n FROM Membership WHERE UserId=1 AND GroupId=10"
- }
- },
- "memberships_three_rows": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "actual": 3,
- "expected": 3,
- "sql": "SELECT COUNT(*) AS n FROM Membership"
- }
- }
- },
- "vendor": "openai"
- },
- "t_020_ecs": {
- "hash": "a4ddc223e2035781ae7e86c8c38c0d78212e9a0c4149c6535625b4033878e3a4",
- "task": "t_020_ecs",
- "lang": "csharp",
- "golden_published": true,
- "model_name": "GPT-5.2-Codex",
- "total_tests": 5,
- "passed_tests": 4,
- "llm_output": "using SpacetimeDB;\n\npublic static partial class Module\n{\n [SpacetimeDB.Table(Name = \"Entity\", Public = true)]\n public partial struct Entity\n {\n [SpacetimeDB.PrimaryKey]\n public int Id;\n }\n\n [SpacetimeDB.Table(Name = \"Position\", Public = true)]\n public partial struct Position\n {\n [SpacetimeDB.PrimaryKey]\n public int EntityId;\n public int X;\n public int Y;\n }\n\n [SpacetimeDB.Table(Name = \"Velocity\", Public = true)]\n public partial struct Velocity\n {\n [SpacetimeDB.PrimaryKey]\n public int EntityId;\n public int VX;\n public int VY;\n }\n\n [SpacetimeDB.Table(Name = \"NextPosition\", Public = true)]\n public partial struct NextPosition\n {\n [SpacetimeDB.PrimaryKey]\n public int EntityId;\n public int X;\n public int Y;\n }\n\n [SpacetimeDB.Reducer]\n public static void Seed(ReducerContext ctx)\n {\n ctx.Db.Entity.Insert(new Entity { Id = 1 });\n ctx.Db.Position.Insert(new Position { EntityId = 1, X = 0, Y = 0 });\n ctx.Db.Velocity.Insert(new Velocity { EntityId = 1, VX = 1, VY = 0 });\n\n ctx.Db.Entity.Insert(new Entity { Id = 2 });\n ctx.Db.Position.Insert(new Position { EntityId = 2, X = 10, Y = 0 });\n ctx.Db.Velocity.Insert(new Velocity { EntityId = 2, VX = -2, VY = 3 });\n }\n\n [SpacetimeDB.Reducer]\n public static void Step(ReducerContext ctx)\n {\n foreach (var pos in ctx.Db.Position.Iter())\n {\n if (ctx.Db.Velocity.EntityId.Find(pos.EntityId) is Velocity vel)\n {\n var newX = pos.X + vel.VX;\n var newY = pos.Y + vel.VY;\n\n if (ctx.Db.NextPosition.EntityId.Find(pos.EntityId) is NextPosition existing)\n {\n existing.X = newX;\n existing.Y = newY;\n ctx.Db.NextPosition.EntityId.Update(existing);\n }\n else\n {\n ctx.Db.NextPosition.Insert(new NextPosition\n {\n EntityId = pos.EntityId,\n X = newX,\n Y = newY\n });\n }\n }\n }\n }\n}",
- "category": "schema",
- "route_api_model": "gpt-5.2-codex",
- "scorer_details": {
- "ecs_next_pos_entity2": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "actual": 1,
- "expected": 1,
- "sql": "SELECT COUNT(*) AS n FROM NextPosition WHERE EntityId=2 AND X=8 AND Y=3"
- }
- },
- "ecs_next_pos_entity1": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "actual": 1,
- "expected": 1,
- "sql": "SELECT COUNT(*) AS n FROM NextPosition WHERE EntityId=1 AND X=1 AND Y=0"
- }
- },
- "ecs_seed_position_count": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "actual": 2,
- "expected": 2,
- "sql": "SELECT COUNT(*) AS n FROM Position"
- }
- },
- "schema_parity": {
- "pass": false,
- "partial": 0.0,
- "notes": {
- "reducers_diff": null,
- "reducers_equal": true,
- "tables_diff": {
- "changed": {},
- "only_golden": {
- "entity": {},
- "next_position": {},
- "position": {},
- "velocity": {}
- },
- "only_llm": {
- "Entity": {},
- "NextPosition": {},
- "Position": {},
- "Velocity": {}
- }
- },
- "tables_equal": false
- }
- },
- "ecs_step_next_position_count": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "actual": 2,
- "expected": 2,
- "sql": "SELECT COUNT(*) AS n FROM NextPosition"
- }
- }
- },
- "vendor": "openai"
- },
- "t_021_multi_column_index": {
- "hash": "a4ddc223e2035781ae7e86c8c38c0d78212e9a0c4149c6535625b4033878e3a4",
- "task": "t_021_multi_column_index",
- "lang": "csharp",
- "golden_published": true,
- "model_name": "GPT-5.2-Codex",
- "total_tests": 4,
- "passed_tests": 3,
- "llm_output": "using SpacetimeDB;\n\npublic static partial class Module\n{\n [SpacetimeDB.Table(Name = \"Log\")]\n [SpacetimeDB.Index.BTree(Name = \"by_user_day\", Columns = new[] { nameof(UserId), nameof(Day) })]\n public partial struct Log\n {\n [SpacetimeDB.PrimaryKey]\n public int Id;\n public int UserId;\n public int Day;\n public string Message;\n }\n\n [SpacetimeDB.Reducer]\n public static void Seed(ReducerContext ctx)\n {\n ctx.Db.Log.Insert(new Log { Id = 1, UserId = 7, Day = 1, Message = \"a\" });\n ctx.Db.Log.Insert(new Log { Id = 2, UserId = 7, Day = 2, Message = \"b\" });\n ctx.Db.Log.Insert(new Log { Id = 3, UserId = 9, Day = 1, Message = \"c\" });\n }\n}",
- "category": "schema",
- "route_api_model": "gpt-5.2-codex",
- "scorer_details": {
- "mcindex_seed_count": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "actual": 3,
- "expected": 3,
- "sql": "SELECT COUNT(*) AS n FROM Log"
- }
- },
- "mcindex_lookup_u7_d1": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "actual": 1,
- "expected": 1,
- "sql": "SELECT COUNT(*) AS n FROM Log WHERE UserId=7 AND Day=1"
- }
- },
- "schema_parity": {
- "pass": false,
- "partial": 0.0,
- "notes": {
- "reducers_diff": null,
- "reducers_equal": true,
- "tables_diff": {
- "changed": {},
- "only_golden": {
- "log": {}
- },
- "only_llm": {
- "Log": {}
- }
- },
- "tables_equal": false
- }
- },
- "mcindex_lookup_u7_d2": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "actual": 1,
- "expected": 1,
- "sql": "SELECT COUNT(*) AS n FROM Log WHERE UserId=7 AND Day=2"
- }
- }
- },
- "vendor": "openai"
- }
- }
- },
- {
- "name": "GPT-5-mini",
- "route_api_model": "gpt-5-mini",
- "tasks": {
- "t_000_empty_reducers": {
- "hash": "a4ddc223e2035781ae7e86c8c38c0d78212e9a0c4149c6535625b4033878e3a4",
- "task": "t_000_empty_reducers",
- "lang": "csharp",
- "golden_published": true,
- "model_name": "GPT-5-mini",
- "total_tests": 1,
- "passed_tests": 1,
- "category": "basics",
- "route_api_model": "gpt-5-mini",
- "scorer_details": {
- "schema_parity": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "reducers_diff": null,
- "reducers_equal": true,
- "tables_diff": null,
- "tables_equal": true
- }
- }
- },
- "vendor": "openai"
- },
- "t_001_basic_tables": {
- "hash": "a4ddc223e2035781ae7e86c8c38c0d78212e9a0c4149c6535625b4033878e3a4",
- "task": "t_001_basic_tables",
- "lang": "csharp",
- "golden_published": true,
- "model_name": "GPT-5-mini",
- "total_tests": 1,
- "passed_tests": 1,
- "category": "basics",
- "route_api_model": "gpt-5-mini",
- "scorer_details": {
- "schema_parity": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "reducers_diff": null,
- "reducers_equal": true,
- "tables_diff": null,
- "tables_equal": true
- }
- }
- },
- "vendor": "openai"
- },
- "t_002_scheduled_table": {
- "hash": "a4ddc223e2035781ae7e86c8c38c0d78212e9a0c4149c6535625b4033878e3a4",
- "task": "t_002_scheduled_table",
- "lang": "csharp",
- "golden_published": true,
- "model_name": "GPT-5-mini",
- "total_tests": 1,
- "passed_tests": 1,
- "category": "basics",
- "route_api_model": "gpt-5-mini",
- "scorer_details": {
- "schema_parity": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "reducers_diff": null,
- "reducers_equal": true,
- "tables_diff": null,
- "tables_equal": true
- }
- }
- },
- "vendor": "openai"
- },
- "t_003_struct_in_table": {
- "hash": "a4ddc223e2035781ae7e86c8c38c0d78212e9a0c4149c6535625b4033878e3a4",
- "task": "t_003_struct_in_table",
- "lang": "csharp",
- "golden_published": true,
- "model_name": "GPT-5-mini",
- "total_tests": 1,
- "passed_tests": 1,
- "category": "basics",
- "route_api_model": "gpt-5-mini",
- "scorer_details": {
- "schema_parity": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "reducers_diff": null,
- "reducers_equal": true,
- "tables_diff": null,
- "tables_equal": true
- }
- }
- },
- "vendor": "openai"
- },
- "t_004_insert": {
- "hash": "a4ddc223e2035781ae7e86c8c38c0d78212e9a0c4149c6535625b4033878e3a4",
- "task": "t_004_insert",
- "lang": "csharp",
- "golden_published": true,
- "model_name": "GPT-5-mini",
- "total_tests": 2,
- "passed_tests": 2,
- "category": "basics",
- "route_api_model": "gpt-5-mini",
- "scorer_details": {
- "schema_parity": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "reducers_diff": null,
- "reducers_equal": true,
- "tables_diff": null,
- "tables_equal": true
- }
- },
- "data_parity_insert_user": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "args": [
- 1,
- "Alice",
- 30,
- true
- ],
- "golden_out": "Id | Name | Age | Active ----+---------+-----+-------- 1 | \"Alice\" | 30 | true",
- "llm_out": "Id | Name | Age | Active ----+---------+-----+-------- 1 | \"Alice\" | 30 | true",
- "query": "SELECT Id, Name, Age, Active FROM User WHERE Id=1",
- "reducer": "insert_user"
- }
- }
- },
- "vendor": "openai"
- },
- "t_005_update": {
- "hash": "a4ddc223e2035781ae7e86c8c38c0d78212e9a0c4149c6535625b4033878e3a4",
- "task": "t_005_update",
- "lang": "csharp",
- "golden_published": true,
- "model_name": "GPT-5-mini",
- "total_tests": 3,
- "passed_tests": 1,
- "llm_output": "using SpacetimeDB;\n\npublic static partial class Module\n{\n [SpacetimeDB.Table(Accessor = \"User\", Public = true)]\n public partial struct User\n {\n [SpacetimeDB.PrimaryKey]\n public int Id;\n public string Name;\n public int Age;\n public bool Active;\n }\n\n [SpacetimeDB.Reducer]\n public static void UpdateUser(ReducerContext ctx, int id, string name, int age, bool active)\n {\n if (ctx.Db.User.Id.Find(id) is User user)\n {\n user.Id = id;\n user.Name = name;\n user.Age = age;\n user.Active = active;\n ctx.Db.User.Id.Update(user);\n }\n else\n {\n throw new System.Exception(\"User not found\");\n }\n }\n}",
- "category": "basics",
- "route_api_model": "gpt-5-mini",
- "scorer_details": {
- "data_parity_update_user": {
- "pass": false,
- "partial": 0.0,
- "notes": {
- "error": "spacetime call failed:\nWARNING: This command is UNSTABLE and subject to breaking changes.\n\nError: Response text: User not found\n\nCaused by:\n HTTP status server error (530 ) for url (http://127.0.0.1:56242/v1/database/c20048d2fdae4756e4aaa130f4b085ba3c9bb64f9f0610cfcd04c4f66a98f06e/call/update_user)\n",
- "phase": "call_reducer_llm"
- }
- },
- "schema_parity": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "reducers_diff": null,
- "reducers_equal": true,
- "tables_diff": null,
- "tables_equal": true
- }
- },
- "seed_users_row": {
- "pass": false,
- "partial": 0.0,
- "notes": {
- "error": "spacetime sql failed:\nWARNING: This command is UNSTABLE and subject to breaking changes.\n\nError: IndexError: Unique constraint violation 'user_id_idx_btree' in table 'user': column(s): '[\"id\"]' value: 1\n\nCaused by:\n HTTP status client error (400 Bad Request) for url (http://127.0.0.1:56242/v1/database/c2003fa012003c49d80084f437bb713f6a093beeaea5587a135d5ff1731afde4/sql)\n",
- "phase": "sql_golden",
- "sql": "INSERT INTO User(Id, Name, Age, Active) VALUES (1, 'Alice', 30, true)"
- }
- }
- },
- "vendor": "openai"
- },
- "t_006_delete": {
- "hash": "a4ddc223e2035781ae7e86c8c38c0d78212e9a0c4149c6535625b4033878e3a4",
- "task": "t_006_delete",
- "lang": "csharp",
- "golden_published": true,
- "model_name": "GPT-5-mini",
- "total_tests": 3,
- "passed_tests": 3,
- "category": "basics",
- "route_api_model": "gpt-5-mini",
- "scorer_details": {
- "schema_parity": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "reducers_diff": null,
- "reducers_equal": true,
- "tables_diff": null,
- "tables_equal": true
- }
- },
- "seed_users_row": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "sql": "INSERT INTO User(Id, Name, Age, Active) VALUES (1, 'Alice', 30, true)"
- }
- },
- "delete_user_count_zero": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "actual": 0,
- "expected": 0,
- "sql": "SELECT COUNT(*) AS n FROM User WHERE Id=1"
- }
- }
- },
- "vendor": "openai"
- },
- "t_007_crud": {
- "hash": "a4ddc223e2035781ae7e86c8c38c0d78212e9a0c4149c6535625b4033878e3a4",
- "task": "t_007_crud",
- "lang": "csharp",
- "golden_published": true,
- "model_name": "GPT-5-mini",
- "total_tests": 4,
- "passed_tests": 2,
- "llm_output": "using SpacetimeDB;\n\npublic static partial class Module\n{\n [SpacetimeDB.Table(Accessor = \"User\", Public = true)]\n public partial struct User\n {\n [SpacetimeDB.PrimaryKey]\n public int Id;\n public string Name;\n public int Age;\n public bool Active;\n }\n\n [SpacetimeDB.Reducer]\n public static void Crud(ReducerContext ctx)\n {\n ctx.Db.User.Insert(new User { Id = 1, Name = \"Alice\", Age = 30, Active = true });\n ctx.Db.User.Insert(new User { Id = 2, Name = \"Bob\", Age = 22, Active = false });\n\n if (ctx.Db.User.Id.Find(1) is User user)\n {\n user.Name = \"Alice2\";\n user.Age = 31;\n user.Active = false;\n ctx.Db.User.Id.Update(user);\n }\n\n ctx.Db.User.Id.Delete(2);\n }\n}",
- "category": "basics",
- "route_api_model": "gpt-5-mini",
- "scorer_details": {
- "crud_row_id2_deleted": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "actual": 0,
- "expected": 0,
- "sql": "SELECT COUNT(*) AS n FROM User WHERE Id=2"
- }
- },
- "schema_parity": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "reducers_diff": null,
- "reducers_equal": true,
- "tables_diff": null,
- "tables_equal": true
- }
- },
- "crud_row_id1_parity": {
- "pass": false,
- "partial": 0.0,
- "notes": {
- "error": "spacetime call failed:\nWARNING: This command is UNSTABLE and subject to breaking changes.\n\nError: Response text: Value with given unique identifier already exists\n\nCaused by:\n HTTP status server error (530 ) for url (http://127.0.0.1:56242/v1/database/c200bae1f2bdd27271e560dbfda8814cfd2302b7e12fa45c11457037728b852a/call/crud)\n",
- "phase": "call_reducer_golden"
- }
- },
- "crud_total_count_one": {
- "pass": false,
- "partial": 0.0,
- "notes": {
- "actual": 0,
- "expected": 1,
- "sql": "SELECT COUNT(*) AS n FROM User"
- }
- }
- },
- "vendor": "openai"
- },
- "t_008_index_lookup": {
- "hash": "a4ddc223e2035781ae7e86c8c38c0d78212e9a0c4149c6535625b4033878e3a4",
- "task": "t_008_index_lookup",
- "lang": "csharp",
- "golden_published": true,
- "model_name": "GPT-5-mini",
- "total_tests": 3,
- "passed_tests": 3,
- "category": "basics",
- "route_api_model": "gpt-5-mini",
- "scorer_details": {
- "index_lookup_projection_parity": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "args": [
- 1
- ],
- "golden_out": "Id | Name ----+--------- 1 | \"Alice\"",
- "llm_out": "Id | Name ----+--------- 1 | \"Alice\"",
- "query": "SELECT Id, Name FROM Result WHERE Id=1",
- "reducer": "lookup_user_name"
- }
- },
- "schema_parity": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "reducers_diff": null,
- "reducers_equal": true,
- "tables_diff": null,
- "tables_equal": true
- }
- },
- "seed_user_row": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "sql": "INSERT INTO User(Id, Name, Age, Active) VALUES (1, 'Alice', 30, true)"
- }
- }
- },
- "vendor": "openai"
- },
- "t_009_init": {
- "hash": "a4ddc223e2035781ae7e86c8c38c0d78212e9a0c4149c6535625b4033878e3a4",
- "task": "t_009_init",
- "lang": "csharp",
- "golden_published": true,
- "model_name": "GPT-5-mini",
- "total_tests": 4,
- "passed_tests": 4,
- "category": "basics",
- "route_api_model": "gpt-5-mini",
- "scorer_details": {
- "init_seed_alice": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "actual": 1,
- "expected": 1,
- "sql": "SELECT COUNT(*) AS n FROM User WHERE Id=1 AND Name='Alice' AND Age=30 AND Active=true"
- }
- },
- "init_total_two": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "actual": 2,
- "expected": 2,
- "sql": "SELECT COUNT(*) AS n FROM User"
- }
- },
- "schema_parity": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "reducers_diff": null,
- "reducers_equal": true,
- "tables_diff": null,
- "tables_equal": true
- }
- },
- "init_seed_bob": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "actual": 1,
- "expected": 1,
- "sql": "SELECT COUNT(*) AS n FROM User WHERE Id=2 AND Name='Bob' AND Age=22 AND Active=false"
- }
- }
- },
- "vendor": "openai"
- },
- "t_010_connect": {
- "hash": "a4ddc223e2035781ae7e86c8c38c0d78212e9a0c4149c6535625b4033878e3a4",
- "task": "t_010_connect",
- "lang": "csharp",
- "golden_published": true,
- "model_name": "GPT-5-mini",
- "total_tests": 1,
- "passed_tests": 1,
- "category": "basics",
- "route_api_model": "gpt-5-mini",
- "scorer_details": {
- "schema_parity": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "reducers_diff": null,
- "reducers_equal": true,
- "tables_diff": null,
- "tables_equal": true
- }
- }
- },
- "vendor": "openai"
- },
- "t_011_helper_function": {
- "hash": "a4ddc223e2035781ae7e86c8c38c0d78212e9a0c4149c6535625b4033878e3a4",
- "task": "t_011_helper_function",
- "lang": "csharp",
- "golden_published": true,
- "model_name": "GPT-5-mini",
- "total_tests": 3,
- "passed_tests": 3,
- "category": "basics",
- "route_api_model": "gpt-5-mini",
- "scorer_details": {
- "helper_func_sum_abs": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "actual": 1,
- "expected": 1,
- "sql": "SELECT COUNT(*) AS n FROM Result WHERE Id=1 AND Sum=5"
- }
- },
- "schema_parity": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "reducers_diff": null,
- "reducers_equal": true,
- "tables_diff": null,
- "tables_equal": true
- }
- },
- "helper_func_sum_parity": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "args": [
- 1,
- 2,
- 3
- ],
- "golden_out": "Id | Sum ----+----- 1 | 5",
- "llm_out": "Id | Sum ----+----- 1 | 5",
- "query": "SELECT Id, Sum FROM Result WHERE Id=1",
- "reducer": "compute_sum"
- }
- }
- },
- "vendor": "openai"
- },
- "t_012_spacetime_product_type": {
- "hash": "a4ddc223e2035781ae7e86c8c38c0d78212e9a0c4149c6535625b4033878e3a4",
- "task": "t_012_spacetime_product_type",
- "lang": "csharp",
- "golden_published": true,
- "model_name": "GPT-5-mini",
- "total_tests": 3,
- "passed_tests": 3,
- "category": "schema",
- "route_api_model": "gpt-5-mini",
- "scorer_details": {
- "product_type_row_count": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "actual": 1,
- "expected": 1,
- "sql": "SELECT COUNT(*) AS n FROM Result WHERE Id=1"
- }
- },
- "schema_parity": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "reducers_diff": null,
- "reducers_equal": true,
- "tables_diff": null,
- "tables_equal": true
- }
- },
- "product_type_row_parity": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "args": [
- 1,
- 2,
- 3
- ],
- "golden_out": "Id | Value ----+----------------------- 1 | (left = 2, right = 3)",
- "llm_out": "Id | Value ----+----------------------- 1 | (left = 2, right = 3)",
- "query": "SELECT Id, Value FROM Result WHERE Id=1",
- "reducer": "set_score"
- }
- }
- },
- "vendor": "openai"
- },
- "t_013_spacetime_sum_type": {
- "hash": "a4ddc223e2035781ae7e86c8c38c0d78212e9a0c4149c6535625b4033878e3a4",
- "task": "t_013_spacetime_sum_type",
- "lang": "csharp",
- "golden_published": false,
- "model_name": "GPT-5-mini",
- "total_tests": 3,
- "passed_tests": 0,
- "llm_output": "using SpacetimeDB;\n\npublic static partial class Module\n{\n [SpacetimeDB.Type]\n public partial struct Circle\n {\n public int Radius;\n }\n\n [SpacetimeDB.Type]\n public partial struct Rectangle\n {\n public int Width;\n public int Height;\n }\n\n public partial record Shape : TaggedEnum<(Circle Circle, Rectangle Rectangle)> { }\n\n [SpacetimeDB.Table(Accessor = \"Result\", Public = true)]\n public partial struct Result\n {\n [SpacetimeDB.PrimaryKey]\n public int Id;\n public Shape Value;\n }\n\n [SpacetimeDB.Reducer]\n public static void SetCircle(ReducerContext ctx, int id, int radius)\n {\n ctx.Db.Result.Insert(new Result\n {\n Id = id,\n Value = new Shape.Circle(new Circle { Radius = radius })\n });\n }\n}",
- "category": "schema",
- "route_api_model": "gpt-5-mini",
- "scorer_details": {
- "publish_error": {
- "pass": false,
- "partial": 0.0,
- "notes": {
- "error": "spacetime build (csharp) failed (exit=1)\n--- stderr ---\nError: command [\"dotnet\", \"publish\", \"-c\", \"Release\", \"-v\", \"quiet\"] exited with code 1\n\n--- stdout ---\nD:\\Development\\ClockworkLabs\\SpacetimeDB\\SpacetimeDBPrivate\\public\\target\\llm-runs\\schema\\t_013_spacetime_sum_type\\csharp\\server\\gpt-5-mini\\llm\\obj\\Release\\net8.0\\wasi-wasm\\SpacetimeDB.Codegen\\SpacetimeDB.Codegen.Module\\Module.Result.cs(25,47): error CS0426: The type name 'BSATN' does not exist in the type 'Module.Shape' [D:\\Development\\ClockworkLabs\\SpacetimeDB\\SpacetimeDBPrivate\\public\\target\\llm-runs\\schema\\t_013_spacetime_sum_type\\csharp\\server\\gpt-5-mini\\llm\\StdbModule.csproj]\r\n",
- "phase": "build_or_publish"
- }
- }
- },
- "vendor": "openai"
- },
- "t_014_elementary_columns": {
- "hash": "a4ddc223e2035781ae7e86c8c38c0d78212e9a0c4149c6535625b4033878e3a4",
- "task": "t_014_elementary_columns",
- "lang": "csharp",
- "golden_published": true,
- "model_name": "GPT-5-mini",
- "total_tests": 3,
- "passed_tests": 3,
- "category": "schema",
- "route_api_model": "gpt-5-mini",
- "scorer_details": {
- "schema_parity": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "reducers_diff": null,
- "reducers_equal": true,
- "tables_diff": null,
- "tables_equal": true
- }
- },
- "elementary_columns_row_parity": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "args": [],
- "golden_out": "Id | Count | Total | Price | Ratio | Active | Name ----+-------+------------+-------+-------+--------+--------- 1 | 2 | 3000000000 | 1.5 | 2.25 | true | \"Alice\"",
- "llm_out": "Id | Count | Total | Price | Ratio | Active | Name ----+-------+------------+-------+-------+--------+--------- 1 | 2 | 3000000000 | 1.5 | 2.25 | true | \"Alice\"",
- "query": "SELECT Id, Count, Total, Price, Ratio, Active, Name FROM Primitive WHERE Id=1",
- "reducer": "seed"
- }
- },
- "elementary_columns_row_count": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "actual": 1,
- "expected": 1,
- "sql": "SELECT COUNT(*) AS n FROM Primitive WHERE Id=1"
- }
- }
- },
- "vendor": "openai"
- },
- "t_015_product_type_columns": {
- "hash": "a4ddc223e2035781ae7e86c8c38c0d78212e9a0c4149c6535625b4033878e3a4",
- "task": "t_015_product_type_columns",
- "lang": "csharp",
- "golden_published": true,
- "model_name": "GPT-5-mini",
- "total_tests": 3,
- "passed_tests": 3,
- "category": "schema",
- "route_api_model": "gpt-5-mini",
- "scorer_details": {
- "product_type_columns_row_parity": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "args": [],
- "golden_out": "Id | Home | Work | Pos ----+----------------------------------+-----------------------------------+---------------- 1 | (street = \"1 Main\", zip = 11111) | (street = \"2 Broad\", zip = 22222) | (x = 7, y = 9)",
- "llm_out": "Id | Home | Work | Pos ----+----------------------------------+-----------------------------------+---------------- 1 | (street = \"1 Main\", zip = 11111) | (street = \"2 Broad\", zip = 22222) | (x = 7, y = 9)",
- "query": "SELECT Id, Home, Work, Pos FROM Profile WHERE Id=1",
- "reducer": "seed"
- }
- },
- "schema_parity": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "reducers_diff": null,
- "reducers_equal": true,
- "tables_diff": null,
- "tables_equal": true
- }
- },
- "product_type_columns_row_count": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "actual": 1,
- "expected": 1,
- "sql": "SELECT COUNT(*) AS n FROM Profile WHERE Id=1"
- }
- }
- },
- "vendor": "openai"
- },
- "t_016_sum_type_columns": {
- "hash": "a4ddc223e2035781ae7e86c8c38c0d78212e9a0c4149c6535625b4033878e3a4",
- "task": "t_016_sum_type_columns",
- "lang": "csharp",
- "golden_published": false,
- "model_name": "GPT-5-mini",
- "total_tests": 3,
- "passed_tests": 0,
- "llm_output": "using SpacetimeDB;\n\npublic static partial class Module\n{\n [SpacetimeDB.Type]\n public partial struct Circle\n {\n public int Radius;\n }\n\n [SpacetimeDB.Type]\n public partial struct Rectangle\n {\n public int Width;\n public int Height;\n }\n\n [SpacetimeDB.Type]\n public partial record Shape : TaggedEnum<(\n Circle Circle,\n Rectangle Rectangle\n )>\n {\n }\n\n [SpacetimeDB.Table(Accessor = \"Drawing\", Public = true)]\n public partial struct Drawing\n {\n [SpacetimeDB.PrimaryKey]\n public int Id;\n public Shape A;\n public Shape B;\n }\n\n [SpacetimeDB.Reducer]\n public static void Seed(ReducerContext ctx)\n {\n // Insert exactly one row into Drawing:\n // (Id=1, A=Circle{Radius=10}, B=Rectangle{Width=4, Height=6})\n // Construct sum variants using the generated TaggedEnum variants.\n // Depending on codegen, the factory method names may vary;\n // common pattern is Variant constructors accessible via the record.\n ctx.Db.Drawing.Insert(new Drawing\n {\n Id = 1,\n A = Shape.Circle(new Circle { Radius = 10 }),\n B = Shape.Rectangle(new Rectangle { Width = 4, Height = 6 })\n });\n }\n}",
- "category": "schema",
- "route_api_model": "gpt-5-mini",
- "scorer_details": {
- "publish_error": {
- "pass": false,
- "partial": 0.0,
- "notes": {
- "error": "spacetime build (csharp) failed (exit=1)\n--- stderr ---\nError: command [\"dotnet\", \"publish\", \"-c\", \"Release\", \"-v\", \"quiet\"] exited with code 1\n\n--- stdout ---\nD:\\Development\\ClockworkLabs\\SpacetimeDB\\SpacetimeDBPrivate\\public\\target\\llm-runs\\schema\\t_016_sum_type_columns\\csharp\\server\\gpt-5-mini\\llm\\Lib.cs(47,23): error CS1955: Non-invocable member 'Module.Shape.Circle' cannot be used like a method. [D:\\Development\\ClockworkLabs\\SpacetimeDB\\SpacetimeDBPrivate\\public\\target\\llm-runs\\schema\\t_016_sum_type_columns\\csharp\\server\\gpt-5-mini\\llm\\StdbModule.csproj]\r\nD:\\Development\\ClockworkLabs\\SpacetimeDB\\SpacetimeDBPrivate\\public\\target\\llm-runs\\schema\\t_016_sum_type_columns\\csharp\\server\\gpt-5-mini\\llm\\Lib.cs(48,23): error CS1955: Non-invocable member 'Module.Shape.Rectangle' cannot be used like a method. [D:\\Development\\ClockworkLabs\\SpacetimeDB\\SpacetimeDBPrivate\\public\\target\\llm-runs\\schema\\t_016_sum_type_columns\\csharp\\server\\gpt-5-mini\\llm\\StdbModule.csproj]\r\n",
- "phase": "build_or_publish"
- }
- }
- },
- "vendor": "openai"
- },
- "t_017_scheduled_columns": {
- "hash": "a4ddc223e2035781ae7e86c8c38c0d78212e9a0c4149c6535625b4033878e3a4",
- "task": "t_017_scheduled_columns",
- "lang": "csharp",
- "golden_published": true,
- "model_name": "GPT-5-mini",
- "total_tests": 2,
- "passed_tests": 2,
- "category": "schema",
- "route_api_model": "gpt-5-mini",
- "scorer_details": {
- "schema_parity": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "reducers_diff": null,
- "reducers_equal": true,
- "tables_diff": null,
- "tables_equal": true
- }
- },
- "scheduled_seeded_one_row": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "actual": 1,
- "expected": 1,
- "sql": "SELECT COUNT(*) AS n FROM TickTimer WHERE ScheduledId>=0"
- }
- }
- },
- "vendor": "openai"
- },
- "t_018_constraints": {
- "hash": "a4ddc223e2035781ae7e86c8c38c0d78212e9a0c4149c6535625b4033878e3a4",
- "task": "t_018_constraints",
- "lang": "csharp",
- "golden_published": false,
- "model_name": "GPT-5-mini",
- "total_tests": 3,
- "passed_tests": 0,
- "llm_output": "using SpacetimeDB;\n\npublic static partial class Module\n{\n [SpacetimeDB.Index.BTree(Accessor = \"by_name\", Columns = new[] { nameof(Name) })]\n [SpacetimeDB.Table(Accessor = \"Account\", Public = true)]\n public partial struct Account\n {\n [SpacetimeDB.PrimaryKey]\n public int Id;\n [SpacetimeDB.Unique]\n public string Email = \"\";\n public string Name = \"\";\n }\n\n [SpacetimeDB.Reducer]\n public static void Seed(ReducerContext ctx)\n {\n ctx.Db.Account.Insert(new Account { Id = 1, Email = \"a@example.com\", Name = \"Alice\" });\n ctx.Db.Account.Insert(new Account { Id = 2, Email = \"b@example.com\", Name = \"Bob\" });\n }\n}",
- "category": "schema",
- "route_api_model": "gpt-5-mini",
- "scorer_details": {
- "publish_error": {
- "pass": false,
- "partial": 0.0,
- "notes": {
- "error": "spacetime build (csharp) failed (exit=1)\n--- stderr ---\nError: command [\"dotnet\", \"publish\", \"-c\", \"Release\", \"-v\", \"quiet\"] exited with code 1\n\n--- stdout ---\nD:\\Development\\ClockworkLabs\\SpacetimeDB\\SpacetimeDBPrivate\\public\\target\\llm-runs\\schema\\t_018_constraints\\csharp\\server\\gpt-5-mini\\llm\\Lib.cs(8,27): error CS8983: A 'struct' with field initializers must include an explicitly declared constructor. [D:\\Development\\ClockworkLabs\\SpacetimeDB\\SpacetimeDBPrivate\\public\\target\\llm-runs\\schema\\t_018_constraints\\csharp\\server\\gpt-5-mini\\llm\\StdbModule.csproj]\r\n",
- "phase": "build_or_publish"
- }
- }
- },
- "vendor": "openai"
- },
- "t_019_many_to_many": {
- "hash": "a4ddc223e2035781ae7e86c8c38c0d78212e9a0c4149c6535625b4033878e3a4",
- "task": "t_019_many_to_many",
- "lang": "csharp",
- "golden_published": true,
- "model_name": "GPT-5-mini",
- "total_tests": 5,
- "passed_tests": 5,
- "category": "schema",
- "route_api_model": "gpt-5-mini",
- "scorer_details": {
- "m2m_has_1_20": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "actual": 1,
- "expected": 1,
- "sql": "SELECT COUNT(*) AS n FROM Membership WHERE UserId=1 AND GroupId=20"
- }
- },
- "m2m_has_2_20": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "actual": 1,
- "expected": 1,
- "sql": "SELECT COUNT(*) AS n FROM Membership WHERE UserId=2 AND GroupId=20"
- }
- },
- "schema_parity": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "reducers_diff": null,
- "reducers_equal": true,
- "tables_diff": null,
- "tables_equal": true
- }
- },
- "m2m_has_1_10": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "actual": 1,
- "expected": 1,
- "sql": "SELECT COUNT(*) AS n FROM Membership WHERE UserId=1 AND GroupId=10"
- }
- },
- "memberships_three_rows": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "actual": 3,
- "expected": 3,
- "sql": "SELECT COUNT(*) AS n FROM Membership"
- }
- }
- },
- "vendor": "openai"
- },
- "t_020_ecs": {
- "hash": "a4ddc223e2035781ae7e86c8c38c0d78212e9a0c4149c6535625b4033878e3a4",
- "task": "t_020_ecs",
- "lang": "csharp",
- "golden_published": true,
- "model_name": "GPT-5-mini",
- "total_tests": 5,
- "passed_tests": 5,
- "category": "schema",
- "route_api_model": "gpt-5-mini",
- "scorer_details": {
- "ecs_next_pos_entity2": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "actual": 1,
- "expected": 1,
- "sql": "SELECT COUNT(*) AS n FROM NextPosition WHERE EntityId=2 AND X=8 AND Y=3"
- }
- },
- "ecs_next_pos_entity1": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "actual": 1,
- "expected": 1,
- "sql": "SELECT COUNT(*) AS n FROM NextPosition WHERE EntityId=1 AND X=1 AND Y=0"
- }
- },
- "ecs_seed_position_count": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "actual": 2,
- "expected": 2,
- "sql": "SELECT COUNT(*) AS n FROM Position"
- }
- },
- "schema_parity": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "reducers_diff": null,
- "reducers_equal": true,
- "tables_diff": null,
- "tables_equal": true
- }
- },
- "ecs_step_next_position_count": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "actual": 2,
- "expected": 2,
- "sql": "SELECT COUNT(*) AS n FROM NextPosition"
- }
- }
- },
- "vendor": "openai"
- },
- "t_021_multi_column_index": {
- "hash": "a4ddc223e2035781ae7e86c8c38c0d78212e9a0c4149c6535625b4033878e3a4",
- "task": "t_021_multi_column_index",
- "lang": "csharp",
- "golden_published": true,
- "model_name": "GPT-5-mini",
- "total_tests": 4,
- "passed_tests": 4,
- "category": "schema",
- "route_api_model": "gpt-5-mini",
- "scorer_details": {
- "mcindex_seed_count": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "actual": 3,
- "expected": 3,
- "sql": "SELECT COUNT(*) AS n FROM Log"
- }
- },
- "mcindex_lookup_u7_d1": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "actual": 1,
- "expected": 1,
- "sql": "SELECT COUNT(*) AS n FROM Log WHERE UserId=7 AND Day=1"
- }
- },
- "schema_parity": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "reducers_diff": null,
- "reducers_equal": true,
- "tables_diff": null,
- "tables_equal": true
- }
- },
- "mcindex_lookup_u7_d2": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "actual": 1,
- "expected": 1,
- "sql": "SELECT COUNT(*) AS n FROM Log WHERE UserId=7 AND Day=2"
- }
- }
- },
- "vendor": "openai"
- }
- }
- },
- {
- "name": "Grok Code",
- "route_api_model": "grok-code-fast-1",
- "tasks": {
- "t_000_empty_reducers": {
- "hash": "a4ddc223e2035781ae7e86c8c38c0d78212e9a0c4149c6535625b4033878e3a4",
- "task": "t_000_empty_reducers",
- "lang": "csharp",
- "golden_published": true,
- "model_name": "Grok Code",
- "total_tests": 1,
- "passed_tests": 1,
- "category": "basics",
- "route_api_model": "grok-code-fast-1",
- "scorer_details": {
- "schema_parity": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "reducers_diff": null,
- "reducers_equal": true,
- "tables_diff": null,
- "tables_equal": true
- }
- }
- },
- "vendor": "xai"
- },
- "t_001_basic_tables": {
- "hash": "a4ddc223e2035781ae7e86c8c38c0d78212e9a0c4149c6535625b4033878e3a4",
- "task": "t_001_basic_tables",
- "lang": "csharp",
- "golden_published": true,
- "model_name": "Grok Code",
- "total_tests": 1,
- "passed_tests": 1,
- "category": "basics",
- "route_api_model": "grok-code-fast-1",
- "scorer_details": {
- "schema_parity": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "reducers_diff": null,
- "reducers_equal": true,
- "tables_diff": null,
- "tables_equal": true
- }
- }
- },
- "vendor": "xai"
- },
- "t_002_scheduled_table": {
- "hash": "a4ddc223e2035781ae7e86c8c38c0d78212e9a0c4149c6535625b4033878e3a4",
- "task": "t_002_scheduled_table",
- "lang": "csharp",
- "golden_published": true,
- "model_name": "Grok Code",
- "total_tests": 1,
- "passed_tests": 1,
- "category": "basics",
- "route_api_model": "grok-code-fast-1",
- "scorer_details": {
- "schema_parity": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "reducers_diff": null,
- "reducers_equal": true,
- "tables_diff": null,
- "tables_equal": true
- }
- }
- },
- "vendor": "xai"
- },
- "t_003_struct_in_table": {
- "hash": "a4ddc223e2035781ae7e86c8c38c0d78212e9a0c4149c6535625b4033878e3a4",
- "task": "t_003_struct_in_table",
- "lang": "csharp",
- "golden_published": true,
- "model_name": "Grok Code",
- "total_tests": 1,
- "passed_tests": 1,
- "category": "basics",
- "route_api_model": "grok-code-fast-1",
- "scorer_details": {
- "schema_parity": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "reducers_diff": null,
- "reducers_equal": true,
- "tables_diff": null,
- "tables_equal": true
- }
- }
- },
- "vendor": "xai"
- },
- "t_004_insert": {
- "hash": "a4ddc223e2035781ae7e86c8c38c0d78212e9a0c4149c6535625b4033878e3a4",
- "task": "t_004_insert",
- "lang": "csharp",
- "golden_published": true,
- "model_name": "Grok Code",
- "total_tests": 2,
- "passed_tests": 2,
- "category": "basics",
- "route_api_model": "grok-code-fast-1",
- "scorer_details": {
- "schema_parity": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "reducers_diff": null,
- "reducers_equal": true,
- "tables_diff": null,
- "tables_equal": true
- }
- },
- "data_parity_insert_user": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "args": [
- 1,
- "Alice",
- 30,
- true
- ],
- "golden_out": "Id | Name | Age | Active ----+---------+-----+-------- 1 | \"Alice\" | 30 | true",
- "llm_out": "Id | Name | Age | Active ----+---------+-----+-------- 1 | \"Alice\" | 30 | true",
- "query": "SELECT Id, Name, Age, Active FROM User WHERE Id=1",
- "reducer": "insert_user"
- }
- }
- },
- "vendor": "xai"
- },
- "t_005_update": {
- "hash": "a4ddc223e2035781ae7e86c8c38c0d78212e9a0c4149c6535625b4033878e3a4",
- "task": "t_005_update",
- "lang": "csharp",
- "golden_published": false,
- "model_name": "Grok Code",
- "total_tests": 3,
- "passed_tests": 0,
- "llm_output": "using SpacetimeDB;\n\npublic static partial class Module\n{\n [SpacetimeDB.Table(Accessor = \"User\", Public = true)]\n public partial struct User\n {\n [SpacetimeDB.PrimaryKey]\n public int Id;\n public string Name;\n public int Age;\n public bool Active;\n }\n\n [SpacetimeDB.Reducer]\n public static void UpdateUser(ReducerContext ctx, int id, string name, int age, bool active)\n {\n var user = ctx.Db.User.Id.Find(id);\n if (user != null)\n {\n user.Name = name;\n user.Age = age;\n user.Active = active;\n ctx.Db.User.Id.Update(user);\n }\n }\n}",
- "category": "basics",
- "route_api_model": "grok-code-fast-1",
- "scorer_details": {
- "publish_error": {
- "pass": false,
- "partial": 0.0,
- "notes": {
- "error": "spacetime build (csharp) failed (exit=1)\n--- stderr ---\nError: command [\"dotnet\", \"publish\", \"-c\", \"Release\", \"-v\", \"quiet\"] exited with code 1\n\n--- stdout ---\nD:\\Development\\ClockworkLabs\\SpacetimeDB\\SpacetimeDBPrivate\\public\\target\\llm-runs\\basics\\t_005_update\\csharp\\server\\grok-code\\llm\\Lib.cs(22,18): error CS1061: 'Module.User?' does not contain a definition for 'Name' and no accessible extension method 'Name' accepting a first argument of type 'Module.User?' could be found (are you missing a using directive or an assembly reference?) [D:\\Development\\ClockworkLabs\\SpacetimeDB\\SpacetimeDBPrivate\\public\\target\\llm-runs\\basics\\t_005_update\\csharp\\server\\grok-code\\llm\\StdbModule.csproj]\r\nD:\\Development\\ClockworkLabs\\SpacetimeDB\\SpacetimeDBPrivate\\public\\target\\llm-runs\\basics\\t_005_update\\csharp\\server\\grok-code\\llm\\Lib.cs(23,18): error CS1061: 'Module.User?' does not contain a definition for 'Age' and no accessible extension method 'Age' accepting a first argument of type 'Module.User?' could be found (are you missing a using directive or an assembly reference?) [D:\\Development\\ClockworkLabs\\SpacetimeDB\\SpacetimeDBPrivate\\public\\target\\llm-runs\\basics\\t_005_update\\csharp\\server\\grok-code\\llm\\StdbModule.csproj]\r\nD:\\Development\\ClockworkLabs\\SpacetimeDB\\SpacetimeDBPrivate\\public\\target\\llm-runs\\basics\\t_005_update\\csharp\\server\\grok-code\\llm\\Lib.cs(24,18): error CS1061: 'Module.User?' does not contain a definition for 'Active' and no accessible extension method 'Active' accepting a first argument of type 'Module.User?' could be found (are you missing a using directive or an assembly reference?) [D:\\Development\\ClockworkLabs\\SpacetimeDB\\SpacetimeDBPrivate\\public\\target\\llm-runs\\basics\\t_005_update\\csharp\\server\\grok-code\\llm\\StdbModule.csproj]\r\nD:\\Development\\ClockworkLabs\\SpacetimeDB\\SpacetimeDBPrivate\\public\\target\\llm-runs\\basics\\t_005_update\\csharp\\server\\grok-code\\llm\\Lib.cs(25,35): error CS1503: Argument 1: cannot convert from 'Module.User?' to 'Module.User' [D:\\Development\\ClockworkLabs\\SpacetimeDB\\SpacetimeDBPrivate\\public\\target\\llm-runs\\basics\\t_005_update\\csharp\\server\\grok-code\\llm\\StdbModule.csproj]\r\n",
- "phase": "build_or_publish"
- }
- }
- },
- "vendor": "xai"
- },
- "t_006_delete": {
- "hash": "a4ddc223e2035781ae7e86c8c38c0d78212e9a0c4149c6535625b4033878e3a4",
- "task": "t_006_delete",
- "lang": "csharp",
- "golden_published": true,
- "model_name": "Grok Code",
- "total_tests": 3,
- "passed_tests": 3,
- "category": "basics",
- "route_api_model": "grok-code-fast-1",
- "scorer_details": {
- "schema_parity": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "reducers_diff": null,
- "reducers_equal": true,
- "tables_diff": null,
- "tables_equal": true
- }
- },
- "seed_users_row": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "sql": "INSERT INTO User(Id, Name, Age, Active) VALUES (1, 'Alice', 30, true)"
- }
- },
- "delete_user_count_zero": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "actual": 0,
- "expected": 0,
- "sql": "SELECT COUNT(*) AS n FROM User WHERE Id=1"
- }
- }
- },
- "vendor": "xai"
- },
- "t_007_crud": {
- "hash": "a4ddc223e2035781ae7e86c8c38c0d78212e9a0c4149c6535625b4033878e3a4",
- "task": "t_007_crud",
- "lang": "csharp",
- "golden_published": true,
- "model_name": "Grok Code",
- "total_tests": 4,
- "passed_tests": 2,
- "llm_output": "using SpacetimeDB;\n\npublic static partial class Module\n{\n [SpacetimeDB.Table(Accessor = \"User\", Public = true)]\n public partial struct User\n {\n [SpacetimeDB.PrimaryKey]\n public int Id;\n public string Name;\n public int Age;\n public bool Active;\n }\n\n [SpacetimeDB.Reducer]\n public static void Crud(ReducerContext ctx)\n {\n ctx.Db.User.Insert(new User { Id = 1, Name = \"Alice\", Age = 30, Active = true });\n ctx.Db.User.Insert(new User { Id = 2, Name = \"Bob\", Age = 22, Active = false });\n ctx.Db.User.Id.Update(new User { Id = 1, Name = \"Alice2\", Age = 31, Active = false });\n ctx.Db.User.Id.Delete(2);\n }\n}",
- "category": "basics",
- "route_api_model": "grok-code-fast-1",
- "scorer_details": {
- "crud_row_id2_deleted": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "actual": 0,
- "expected": 0,
- "sql": "SELECT COUNT(*) AS n FROM User WHERE Id=2"
- }
- },
- "schema_parity": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "reducers_diff": null,
- "reducers_equal": true,
- "tables_diff": null,
- "tables_equal": true
- }
- },
- "crud_row_id1_parity": {
- "pass": false,
- "partial": 0.0,
- "notes": {
- "error": "spacetime call failed:\nWARNING: This command is UNSTABLE and subject to breaking changes.\n\nError: Response text: Value with given unique identifier already exists\n\nCaused by:\n HTTP status server error (530 ) for url (http://127.0.0.1:56242/v1/database/c200bae1f2bdd27271e560dbfda8814cfd2302b7e12fa45c11457037728b852a/call/crud)\n",
- "phase": "call_reducer_golden"
- }
- },
- "crud_total_count_one": {
- "pass": false,
- "partial": 0.0,
- "notes": {
- "actual": 0,
- "expected": 1,
- "sql": "SELECT COUNT(*) AS n FROM User"
- }
- }
- },
- "vendor": "xai"
- },
- "t_008_index_lookup": {
- "hash": "a4ddc223e2035781ae7e86c8c38c0d78212e9a0c4149c6535625b4033878e3a4",
- "task": "t_008_index_lookup",
- "lang": "csharp",
- "golden_published": true,
- "model_name": "Grok Code",
- "total_tests": 3,
- "passed_tests": 3,
- "category": "basics",
- "route_api_model": "grok-code-fast-1",
- "scorer_details": {
- "index_lookup_projection_parity": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "args": [
- 1
- ],
- "golden_out": "Id | Name ----+--------- 1 | \"Alice\"",
- "llm_out": "Id | Name ----+--------- 1 | \"Alice\"",
- "query": "SELECT Id, Name FROM Result WHERE Id=1",
- "reducer": "lookup_user_name"
- }
- },
- "schema_parity": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "reducers_diff": null,
- "reducers_equal": true,
- "tables_diff": null,
- "tables_equal": true
- }
- },
- "seed_user_row": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "sql": "INSERT INTO User(Id, Name, Age, Active) VALUES (1, 'Alice', 30, true)"
- }
- }
- },
- "vendor": "xai"
- },
- "t_009_init": {
- "hash": "a4ddc223e2035781ae7e86c8c38c0d78212e9a0c4149c6535625b4033878e3a4",
- "task": "t_009_init",
- "lang": "csharp",
- "golden_published": true,
- "model_name": "Grok Code",
- "total_tests": 4,
- "passed_tests": 4,
- "category": "basics",
- "route_api_model": "grok-code-fast-1",
- "scorer_details": {
- "init_seed_alice": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "actual": 1,
- "expected": 1,
- "sql": "SELECT COUNT(*) AS n FROM User WHERE Id=1 AND Name='Alice' AND Age=30 AND Active=true"
- }
- },
- "init_total_two": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "actual": 2,
- "expected": 2,
- "sql": "SELECT COUNT(*) AS n FROM User"
- }
- },
- "schema_parity": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "reducers_diff": null,
- "reducers_equal": true,
- "tables_diff": null,
- "tables_equal": true
- }
- },
- "init_seed_bob": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "actual": 1,
- "expected": 1,
- "sql": "SELECT COUNT(*) AS n FROM User WHERE Id=2 AND Name='Bob' AND Age=22 AND Active=false"
- }
- }
- },
- "vendor": "xai"
- },
- "t_010_connect": {
- "hash": "a4ddc223e2035781ae7e86c8c38c0d78212e9a0c4149c6535625b4033878e3a4",
- "task": "t_010_connect",
- "lang": "csharp",
- "golden_published": true,
- "model_name": "Grok Code",
- "total_tests": 1,
- "passed_tests": 1,
- "category": "basics",
- "route_api_model": "grok-code-fast-1",
- "scorer_details": {
- "schema_parity": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "reducers_diff": null,
- "reducers_equal": true,
- "tables_diff": null,
- "tables_equal": true
- }
- }
- },
- "vendor": "xai"
- },
- "t_011_helper_function": {
- "hash": "a4ddc223e2035781ae7e86c8c38c0d78212e9a0c4149c6535625b4033878e3a4",
- "task": "t_011_helper_function",
- "lang": "csharp",
- "golden_published": true,
- "model_name": "Grok Code",
- "total_tests": 3,
- "passed_tests": 3,
- "category": "basics",
- "route_api_model": "grok-code-fast-1",
- "scorer_details": {
- "helper_func_sum_parity": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "args": [
- 1,
- 2,
- 3
- ],
- "golden_out": "Id | Sum ----+----- 1 | 5",
- "llm_out": "Id | Sum ----+----- 1 | 5",
- "query": "SELECT Id, Sum FROM Result WHERE Id=1",
- "reducer": "compute_sum"
- }
- },
- "schema_parity": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "reducers_diff": null,
- "reducers_equal": true,
- "tables_diff": null,
- "tables_equal": true
- }
- },
- "helper_func_sum_abs": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "actual": 1,
- "expected": 1,
- "sql": "SELECT COUNT(*) AS n FROM Result WHERE Id=1 AND Sum=5"
- }
- }
- },
- "vendor": "xai"
- },
- "t_012_spacetime_product_type": {
- "hash": "a4ddc223e2035781ae7e86c8c38c0d78212e9a0c4149c6535625b4033878e3a4",
- "task": "t_012_spacetime_product_type",
- "lang": "csharp",
- "golden_published": true,
- "model_name": "Grok Code",
- "total_tests": 3,
- "passed_tests": 3,
- "category": "schema",
- "route_api_model": "grok-code-fast-1",
- "scorer_details": {
- "product_type_row_count": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "actual": 1,
- "expected": 1,
- "sql": "SELECT COUNT(*) AS n FROM Result WHERE Id=1"
- }
- },
- "schema_parity": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "reducers_diff": null,
- "reducers_equal": true,
- "tables_diff": null,
- "tables_equal": true
- }
- },
- "product_type_row_parity": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "args": [
- 1,
- 2,
- 3
- ],
- "golden_out": "Id | Value ----+----------------------- 1 | (left = 2, right = 3)",
- "llm_out": "Id | Value ----+----------------------- 1 | (left = 2, right = 3)",
- "query": "SELECT Id, Value FROM Result WHERE Id=1",
- "reducer": "set_score"
- }
- }
- },
- "vendor": "xai"
- },
- "t_013_spacetime_sum_type": {
- "hash": "a4ddc223e2035781ae7e86c8c38c0d78212e9a0c4149c6535625b4033878e3a4",
- "task": "t_013_spacetime_sum_type",
- "lang": "csharp",
- "golden_published": true,
- "model_name": "Grok Code",
- "total_tests": 3,
- "passed_tests": 3,
- "category": "schema",
- "route_api_model": "grok-code-fast-1",
- "scorer_details": {
- "schema_parity": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "reducers_diff": null,
- "reducers_equal": true,
- "tables_diff": null,
- "tables_equal": true
- }
- },
- "sum_type_row_parity": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "args": [
- 1,
- 10
- ],
- "golden_out": "Id | Value ----+-------------------------- 1 | (circle = (radius = 10))",
- "llm_out": "Id | Value ----+-------------------------- 1 | (circle = (radius = 10))",
- "query": "SELECT Id, Value FROM Result WHERE Id=1",
- "reducer": "set_circle"
- }
- },
- "sum_type_row_count": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "actual": 1,
- "expected": 1,
- "sql": "SELECT COUNT(*) AS n FROM Result WHERE Id=1"
- }
- }
- },
- "vendor": "xai"
- },
- "t_014_elementary_columns": {
- "hash": "a4ddc223e2035781ae7e86c8c38c0d78212e9a0c4149c6535625b4033878e3a4",
- "task": "t_014_elementary_columns",
- "lang": "csharp",
- "golden_published": true,
- "model_name": "Grok Code",
- "total_tests": 3,
- "passed_tests": 3,
- "category": "schema",
- "route_api_model": "grok-code-fast-1",
- "scorer_details": {
- "schema_parity": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "reducers_diff": null,
- "reducers_equal": true,
- "tables_diff": null,
- "tables_equal": true
- }
- },
- "elementary_columns_row_parity": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "args": [],
- "golden_out": "Id | Count | Total | Price | Ratio | Active | Name ----+-------+------------+-------+-------+--------+--------- 1 | 2 | 3000000000 | 1.5 | 2.25 | true | \"Alice\"",
- "llm_out": "Id | Count | Total | Price | Ratio | Active | Name ----+-------+------------+-------+-------+--------+--------- 1 | 2 | 3000000000 | 1.5 | 2.25 | true | \"Alice\"",
- "query": "SELECT Id, Count, Total, Price, Ratio, Active, Name FROM Primitive WHERE Id=1",
- "reducer": "seed"
- }
- },
- "elementary_columns_row_count": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "actual": 1,
- "expected": 1,
- "sql": "SELECT COUNT(*) AS n FROM Primitive WHERE Id=1"
- }
- }
- },
- "vendor": "xai"
- },
- "t_015_product_type_columns": {
- "hash": "a4ddc223e2035781ae7e86c8c38c0d78212e9a0c4149c6535625b4033878e3a4",
- "task": "t_015_product_type_columns",
- "lang": "csharp",
- "golden_published": true,
- "model_name": "Grok Code",
- "total_tests": 3,
- "passed_tests": 3,
- "category": "schema",
- "route_api_model": "grok-code-fast-1",
- "scorer_details": {
- "product_type_columns_row_parity": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "args": [],
- "golden_out": "Id | Home | Work | Pos ----+----------------------------------+-----------------------------------+---------------- 1 | (street = \"1 Main\", zip = 11111) | (street = \"2 Broad\", zip = 22222) | (x = 7, y = 9)",
- "llm_out": "Id | Home | Work | Pos ----+----------------------------------+-----------------------------------+---------------- 1 | (street = \"1 Main\", zip = 11111) | (street = \"2 Broad\", zip = 22222) | (x = 7, y = 9)",
- "query": "SELECT Id, Home, Work, Pos FROM Profile WHERE Id=1",
- "reducer": "seed"
- }
- },
- "schema_parity": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "reducers_diff": null,
- "reducers_equal": true,
- "tables_diff": null,
- "tables_equal": true
- }
- },
- "product_type_columns_row_count": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "actual": 1,
- "expected": 1,
- "sql": "SELECT COUNT(*) AS n FROM Profile WHERE Id=1"
- }
- }
- },
- "vendor": "xai"
- },
- "t_016_sum_type_columns": {
- "hash": "a4ddc223e2035781ae7e86c8c38c0d78212e9a0c4149c6535625b4033878e3a4",
- "task": "t_016_sum_type_columns",
- "lang": "csharp",
- "golden_published": true,
- "model_name": "Grok Code",
- "total_tests": 3,
- "passed_tests": 3,
- "category": "schema",
- "route_api_model": "grok-code-fast-1",
- "scorer_details": {
- "sum_type_columns_row_parity": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "args": [],
- "golden_out": "Id | A | B ----+--------------------------+--------------------------------------- 1 | (circle = (radius = 10)) | (rectangle = (width = 4, height = 6))",
- "llm_out": "Id | A | B ----+--------------------------+--------------------------------------- 1 | (circle = (radius = 10)) | (rectangle = (width = 4, height = 6))",
- "query": "SELECT Id, A, B FROM Drawing WHERE Id=1",
- "reducer": "seed"
- }
- },
- "schema_parity": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "reducers_diff": null,
- "reducers_equal": true,
- "tables_diff": null,
- "tables_equal": true
- }
- },
- "sum_type_columns_row_count": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "actual": 1,
- "expected": 1,
- "sql": "SELECT COUNT(*) AS n FROM Drawing WHERE Id=1"
- }
- }
- },
- "vendor": "xai"
- },
- "t_017_scheduled_columns": {
- "hash": "a4ddc223e2035781ae7e86c8c38c0d78212e9a0c4149c6535625b4033878e3a4",
- "task": "t_017_scheduled_columns",
- "lang": "csharp",
- "golden_published": true,
- "model_name": "Grok Code",
- "total_tests": 2,
- "passed_tests": 2,
- "category": "schema",
- "route_api_model": "grok-code-fast-1",
- "scorer_details": {
- "schema_parity": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "reducers_diff": null,
- "reducers_equal": true,
- "tables_diff": null,
- "tables_equal": true
- }
- },
- "scheduled_seeded_one_row": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "actual": 1,
- "expected": 1,
- "sql": "SELECT COUNT(*) AS n FROM TickTimer WHERE ScheduledId>=0"
- }
- }
- },
- "vendor": "xai"
- },
- "t_018_constraints": {
- "hash": "a4ddc223e2035781ae7e86c8c38c0d78212e9a0c4149c6535625b4033878e3a4",
- "task": "t_018_constraints",
- "lang": "csharp",
- "golden_published": true,
- "model_name": "Grok Code",
- "total_tests": 3,
- "passed_tests": 3,
- "category": "schema",
- "route_api_model": "grok-code-fast-1",
- "scorer_details": {
- "schema_parity": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "reducers_diff": null,
- "reducers_equal": true,
- "tables_diff": null,
- "tables_equal": true
- }
- },
- "constraints_row_parity_after_seed": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "args": [],
- "golden_out": "Id | Email | Name ----+-----------------+--------- 1 | \"a@example.com\" | \"Alice\"",
- "llm_out": "Id | Email | Name ----+-----------------+--------- 1 | \"a@example.com\" | \"Alice\"",
- "query": "SELECT Id, Email, Name FROM Account WHERE Id=1",
- "reducer": "seed"
- }
- },
- "constraints_seed_two_rows": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "actual": 1,
- "expected": 1,
- "sql": "SELECT COUNT(*) AS n FROM Account WHERE Id=2"
- }
- }
- },
- "vendor": "xai"
- },
- "t_019_many_to_many": {
- "hash": "a4ddc223e2035781ae7e86c8c38c0d78212e9a0c4149c6535625b4033878e3a4",
- "task": "t_019_many_to_many",
- "lang": "csharp",
- "golden_published": true,
- "model_name": "Grok Code",
- "total_tests": 5,
- "passed_tests": 4,
- "llm_output": "using SpacetimeDB;\n\npublic static partial class Module\n{\n [SpacetimeDB.Table(Accessor = \"User\", Public = true)]\n public partial struct User\n {\n [SpacetimeDB.PrimaryKey]\n public int UserId;\n public string Name;\n }\n\n [SpacetimeDB.Table(Accessor = \"Group\", Public = true)]\n public partial struct Group\n {\n [SpacetimeDB.PrimaryKey]\n public int GroupId;\n public string Title;\n }\n\n [SpacetimeDB.Table(Accessor = \"Membership\", Public = true)]\n [SpacetimeDB.Index.BTree(Accessor = \"by_user\", Columns = new[] { \"UserId\" })]\n [SpacetimeDB.Index.BTree(Accessor = \"by_group\", Columns = new[] { \"GroupId\" })]\n public partial struct Membership\n {\n [SpacetimeDB.PrimaryKey]\n public int Id;\n public int UserId;\n public int GroupId;\n }\n\n [SpacetimeDB.Reducer(ReducerKind.Init)]\n public static void Seed(ReducerContext ctx)\n {\n ctx.Db.User.Insert(new User { UserId = 1, Name = \"Alice\" });\n ctx.Db.User.Insert(new User { UserId = 2, Name = \"Bob\" });\n ctx.Db.Group.Insert(new Group { GroupId = 10, Title = \"Admin\" });\n ctx.Db.Group.Insert(new Group { GroupId = 20, Title = \"Dev\" });\n ctx.Db.Membership.Insert(new Membership { Id = 1, UserId = 1, GroupId = 10 });\n ctx.Db.Membership.Insert(new Membership { Id = 2, UserId = 1, GroupId = 20 });\n ctx.Db.Membership.Insert(new Membership { Id = 3, UserId = 2, GroupId = 20 });\n }\n}",
- "category": "schema",
- "route_api_model": "grok-code-fast-1",
- "scorer_details": {
- "m2m_has_1_20": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "actual": 1,
- "expected": 1,
- "sql": "SELECT COUNT(*) AS n FROM Membership WHERE UserId=1 AND GroupId=20"
- }
- },
- "m2m_has_2_20": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "actual": 1,
- "expected": 1,
- "sql": "SELECT COUNT(*) AS n FROM Membership WHERE UserId=2 AND GroupId=20"
- }
- },
- "schema_parity": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "reducers_diff": null,
- "reducers_equal": true,
- "tables_diff": null,
- "tables_equal": true
- }
- },
- "m2m_has_1_10": {
- "pass": false,
- "partial": 0.0,
- "notes": {
- "error": "spacetime call failed:\nWARNING: This command is UNSTABLE and subject to breaking changes.\n\nError: Response text: can't directly call special Init lifecycle reducer\n\nCaused by:\n HTTP status client error (400 Bad Request) for url (http://127.0.0.1:56242/v1/database/c200bbac8a83a1bd5dc662ac727908d6998563a26278c22b4767396494e5791f/call/seed)\n",
- "phase": "call_reducer"
- }
- },
- "memberships_three_rows": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "actual": 3,
- "expected": 3,
- "sql": "SELECT COUNT(*) AS n FROM Membership"
- }
- }
- },
- "vendor": "xai"
- },
- "t_020_ecs": {
- "hash": "a4ddc223e2035781ae7e86c8c38c0d78212e9a0c4149c6535625b4033878e3a4",
- "task": "t_020_ecs",
- "lang": "csharp",
- "golden_published": false,
- "model_name": "Grok Code",
- "total_tests": 5,
- "passed_tests": 0,
- "llm_output": "using SpacetimeDB;\n\npublic static partial class Module\n{\n [SpacetimeDB.Table(Accessor = \"Entity\", Public = true)]\n public partial struct Entity\n {\n [SpacetimeDB.PrimaryKey]\n public int Id;\n }\n\n [SpacetimeDB.Table(Accessor = \"Position\", Public = true)]\n public partial struct Position\n {\n [SpacetimeDB.PrimaryKey]\n public int EntityId;\n public int X;\n public int Y;\n }\n\n [SpacetimeDB.Table(Accessor = \"Velocity\", Public = true)]\n public partial struct Velocity\n {\n [SpacetimeDB.PrimaryKey]\n public int EntityId;\n public int VX;\n public int VY;\n }\n\n [SpacetimeDB.Table(Accessor = \"NextPosition\", Public = true)]\n public partial struct NextPosition\n {\n [SpacetimeDB.PrimaryKey]\n public int EntityId;\n public int X;\n public int Y;\n }\n\n [SpacetimeDB.Reducer]\n public static void Seed(ReducerContext ctx)\n {\n ctx.Db.Entity.Insert(new Entity { Id = 1 });\n ctx.Db.Entity.Insert(new Entity { Id = 2 });\n ctx.Db.Position.Insert(new Position { EntityId = 1, X = 0, Y = 0 });\n ctx.Db.Position.Insert(new Position { EntityId = 2, X = 10, Y = 0 });\n ctx.Db.Velocity.Insert(new Velocity { EntityId = 1, VX = 1, VY = 0 });\n ctx.Db.Velocity.Insert(new Velocity { EntityId = 2, VX = -2, VY = 3 });\n }\n\n [SpacetimeDB.Reducer]\n public static void Step(ReducerContext ctx)\n {\n foreach (var pos in ctx.Db.Position.Iter())\n {\n var vel = ctx.Db.Velocity.EntityId.Find(pos.EntityId);\n if (vel != null)\n {\n int newX = pos.X + vel.VX;\n int newY = pos.Y + vel.VY;\n var nextPos = new NextPosition { EntityId = pos.EntityId, X = newX, Y = newY };\n var existing = ctx.Db.NextPosition.EntityId.Find(pos.EntityId);\n if (existing != null)\n {\n existing.X = newX;\n existing.Y = newY;\n ctx.Db.NextPosition.EntityId.Update(existing);\n }\n else\n {\n ctx.Db.NextPosition.Insert(nextPos);\n }\n }\n }\n }\n}",
- "category": "schema",
- "route_api_model": "grok-code-fast-1",
- "scorer_details": {
- "publish_error": {
- "pass": false,
- "partial": 0.0,
- "notes": {
- "error": "spacetime build (csharp) failed (exit=1)\n--- stderr ---\nError: command [\"dotnet\", \"publish\", \"-c\", \"Release\", \"-v\", \"quiet\"] exited with code 1\n\n--- stdout ---\nD:\\Development\\ClockworkLabs\\SpacetimeDB\\SpacetimeDBPrivate\\public\\target\\llm-runs\\schema\\t_020_ecs\\csharp\\server\\grok-code\\llm\\Lib.cs(59,40): error CS1061: 'Module.Velocity?' does not contain a definition for 'VX' and no accessible extension method 'VX' accepting a first argument of type 'Module.Velocity?' could be found (are you missing a using directive or an assembly reference?) [D:\\Development\\ClockworkLabs\\SpacetimeDB\\SpacetimeDBPrivate\\public\\target\\llm-runs\\schema\\t_020_ecs\\csharp\\server\\grok-code\\llm\\StdbModule.csproj]\r\nD:\\Development\\ClockworkLabs\\SpacetimeDB\\SpacetimeDBPrivate\\public\\target\\llm-runs\\schema\\t_020_ecs\\csharp\\server\\grok-code\\llm\\Lib.cs(60,40): error CS1061: 'Module.Velocity?' does not contain a definition for 'VY' and no accessible extension method 'VY' accepting a first argument of type 'Module.Velocity?' could be found (are you missing a using directive or an assembly reference?) [D:\\Development\\ClockworkLabs\\SpacetimeDB\\SpacetimeDBPrivate\\public\\target\\llm-runs\\schema\\t_020_ecs\\csharp\\server\\grok-code\\llm\\StdbModule.csproj]\r\nD:\\Development\\ClockworkLabs\\SpacetimeDB\\SpacetimeDBPrivate\\public\\target\\llm-runs\\schema\\t_020_ecs\\csharp\\server\\grok-code\\llm\\Lib.cs(65,30): error CS1061: 'Module.NextPosition?' does not contain a definition for 'X' and no accessible extension method 'X' accepting a first argument of type 'Module.NextPosition?' could be found (are you missing a using directive or an assembly reference?) [D:\\Development\\ClockworkLabs\\SpacetimeDB\\SpacetimeDBPrivate\\public\\target\\llm-runs\\schema\\t_020_ecs\\csharp\\server\\grok-code\\llm\\StdbModule.csproj]\r\nD:\\Development\\ClockworkLabs\\SpacetimeDB\\SpacetimeDBPrivate\\public\\target\\llm-runs\\schema\\t_020_ecs\\csharp\\server\\grok-code\\llm\\Lib.cs(66,30): error CS1061: 'Module.NextPosition?' does not contain a definition for 'Y' and no accessible extension method 'Y' accepting a first argument of type 'Module.NextPosition?' could be found (are you missing a using directive or an assembly reference?) [D:\\Development\\ClockworkLabs\\SpacetimeDB\\SpacetimeDBPrivate\\public\\target\\llm-runs\\schema\\t_020_ecs\\csharp\\server\\grok-code\\llm\\StdbModule.csproj]\r\nD:\\Development\\ClockworkLabs\\SpacetimeDB\\SpacetimeDBPrivate\\public\\target\\llm-runs\\schema\\t_020_ecs\\csharp\\server\\grok-code\\llm\\Lib.cs(67,57): error CS1503: Argument 1: cannot convert from 'Module.NextPosition?' to 'Module.NextPosition' [D:\\Development\\ClockworkLabs\\SpacetimeDB\\SpacetimeDBPrivate\\public\\target\\llm-runs\\schema\\t_020_ecs\\csharp\\server\\grok-code\\llm\\StdbModule.csproj]\r\n",
- "phase": "build_or_publish"
- }
- }
- },
- "vendor": "xai"
- },
- "t_021_multi_column_index": {
- "hash": "a4ddc223e2035781ae7e86c8c38c0d78212e9a0c4149c6535625b4033878e3a4",
- "task": "t_021_multi_column_index",
- "lang": "csharp",
- "golden_published": true,
- "model_name": "Grok Code",
- "total_tests": 4,
- "passed_tests": 4,
- "category": "schema",
- "route_api_model": "grok-code-fast-1",
- "scorer_details": {
- "mcindex_seed_count": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "actual": 3,
- "expected": 3,
- "sql": "SELECT COUNT(*) AS n FROM Log"
- }
- },
- "mcindex_lookup_u7_d1": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "actual": 1,
- "expected": 1,
- "sql": "SELECT COUNT(*) AS n FROM Log WHERE UserId=7 AND Day=1"
- }
- },
- "schema_parity": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "reducers_diff": null,
- "reducers_equal": true,
- "tables_diff": null,
- "tables_equal": true
- }
- },
- "mcindex_lookup_u7_d2": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "actual": 1,
- "expected": 1,
- "sql": "SELECT COUNT(*) AS n FROM Log WHERE UserId=7 AND Day=2"
- }
- }
- },
- "vendor": "xai"
- }
- }
- },
- {
- "name": "Gemini 3.1 Pro",
- "route_api_model": "google/gemini-3.1-pro-preview",
- "tasks": {
- "t_000_empty_reducers": {
- "hash": "a4ddc223e2035781ae7e86c8c38c0d78212e9a0c4149c6535625b4033878e3a4",
- "task": "t_000_empty_reducers",
- "lang": "csharp",
- "golden_published": true,
- "model_name": "Gemini 3.1 Pro",
- "total_tests": 1,
- "passed_tests": 1,
- "category": "basics",
- "route_api_model": "google/gemini-3.1-pro-preview",
- "scorer_details": {
- "schema_parity": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "reducers_diff": null,
- "reducers_equal": true,
- "tables_diff": null,
- "tables_equal": true
- }
- }
- },
- "vendor": "meta"
- },
- "t_001_basic_tables": {
- "hash": "a4ddc223e2035781ae7e86c8c38c0d78212e9a0c4149c6535625b4033878e3a4",
- "task": "t_001_basic_tables",
- "lang": "csharp",
- "golden_published": true,
- "model_name": "Gemini 3.1 Pro",
- "total_tests": 1,
- "passed_tests": 1,
- "category": "basics",
- "route_api_model": "google/gemini-3.1-pro-preview",
- "scorer_details": {
- "schema_parity": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "reducers_diff": null,
- "reducers_equal": true,
- "tables_diff": null,
- "tables_equal": true
- }
- }
- },
- "vendor": "meta"
- },
- "t_002_scheduled_table": {
- "hash": "a4ddc223e2035781ae7e86c8c38c0d78212e9a0c4149c6535625b4033878e3a4",
- "task": "t_002_scheduled_table",
- "lang": "csharp",
- "golden_published": true,
- "model_name": "Gemini 3.1 Pro",
- "total_tests": 1,
- "passed_tests": 1,
- "category": "basics",
- "route_api_model": "google/gemini-3.1-pro-preview",
- "scorer_details": {
- "schema_parity": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "reducers_diff": null,
- "reducers_equal": true,
- "tables_diff": null,
- "tables_equal": true
- }
- }
- },
- "vendor": "meta"
- },
- "t_003_struct_in_table": {
- "hash": "a4ddc223e2035781ae7e86c8c38c0d78212e9a0c4149c6535625b4033878e3a4",
- "task": "t_003_struct_in_table",
- "lang": "csharp",
- "golden_published": true,
- "model_name": "Gemini 3.1 Pro",
- "total_tests": 1,
- "passed_tests": 1,
- "category": "basics",
- "route_api_model": "google/gemini-3.1-pro-preview",
- "scorer_details": {
- "schema_parity": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "reducers_diff": null,
- "reducers_equal": true,
- "tables_diff": null,
- "tables_equal": true
- }
- }
- },
- "vendor": "meta"
- },
- "t_004_insert": {
- "hash": "a4ddc223e2035781ae7e86c8c38c0d78212e9a0c4149c6535625b4033878e3a4",
- "task": "t_004_insert",
- "lang": "csharp",
- "golden_published": true,
- "model_name": "Gemini 3.1 Pro",
- "total_tests": 2,
- "passed_tests": 2,
- "category": "basics",
- "route_api_model": "google/gemini-3.1-pro-preview",
- "scorer_details": {
- "schema_parity": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "reducers_diff": null,
- "reducers_equal": true,
- "tables_diff": null,
- "tables_equal": true
- }
- },
- "data_parity_insert_user": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "args": [
- 1,
- "Alice",
- 30,
- true
- ],
- "golden_out": "Id | Name | Age | Active ----+---------+-----+-------- 1 | \"Alice\" | 30 | true",
- "llm_out": "Id | Name | Age | Active ----+---------+-----+-------- 1 | \"Alice\" | 30 | true",
- "query": "SELECT Id, Name, Age, Active FROM User WHERE Id=1",
- "reducer": "insert_user"
- }
- }
- },
- "vendor": "meta"
- },
- "t_005_update": {
- "hash": "a4ddc223e2035781ae7e86c8c38c0d78212e9a0c4149c6535625b4033878e3a4",
- "task": "t_005_update",
- "lang": "csharp",
- "golden_published": true,
- "model_name": "Gemini 3.1 Pro",
- "total_tests": 3,
- "passed_tests": 1,
- "llm_output": "using SpacetimeDB;\n\npublic static partial class Module\n{\n [SpacetimeDB.Table(Accessor = \"User\", Public = true)]\n public partial struct User\n {\n [SpacetimeDB.PrimaryKey]\n public int Id;\n public string Name;\n public int Age;\n public bool Active;\n }\n\n [SpacetimeDB.Reducer]\n public static void UpdateUser(ReducerContext ctx, int id, string name, int age, bool active)\n {\n ctx.Db.User.Id.Update(new User\n {\n Id = id,\n Name = name,\n Age = age,\n Active = active\n });\n }\n}",
- "category": "basics",
- "route_api_model": "google/gemini-3.1-pro-preview",
- "scorer_details": {
- "data_parity_update_user": {
- "pass": false,
- "partial": 0.0,
- "notes": {
- "error": "spacetime call failed:\nWARNING: This command is UNSTABLE and subject to breaking changes.\n\nError: Response text: The row was not found, e.g., in an update call\n\nCaused by:\n HTTP status server error (530 ) for url (http://127.0.0.1:56242/v1/database/c200c507051814efa1a26fabe22102c4e36fc055d14106ab65ac9c03fec8d3da/call/update_user)\n",
- "phase": "call_reducer_llm"
- }
- },
- "schema_parity": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "reducers_diff": null,
- "reducers_equal": true,
- "tables_diff": null,
- "tables_equal": true
- }
- },
- "seed_users_row": {
- "pass": false,
- "partial": 0.0,
- "notes": {
- "error": "spacetime sql failed:\nWARNING: This command is UNSTABLE and subject to breaking changes.\n\nError: IndexError: Unique constraint violation 'user_id_idx_btree' in table 'user': column(s): '[\"id\"]' value: 1\n\nCaused by:\n HTTP status client error (400 Bad Request) for url (http://127.0.0.1:56242/v1/database/c2003fa012003c49d80084f437bb713f6a093beeaea5587a135d5ff1731afde4/sql)\n",
- "phase": "sql_golden",
- "sql": "INSERT INTO User(Id, Name, Age, Active) VALUES (1, 'Alice', 30, true)"
- }
- }
- },
- "vendor": "meta"
- },
- "t_006_delete": {
- "hash": "a4ddc223e2035781ae7e86c8c38c0d78212e9a0c4149c6535625b4033878e3a4",
- "task": "t_006_delete",
- "lang": "csharp",
- "golden_published": true,
- "model_name": "Gemini 3.1 Pro",
- "total_tests": 3,
- "passed_tests": 3,
- "category": "basics",
- "route_api_model": "google/gemini-3.1-pro-preview",
- "scorer_details": {
- "schema_parity": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "reducers_diff": null,
- "reducers_equal": true,
- "tables_diff": null,
- "tables_equal": true
- }
- },
- "seed_users_row": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "sql": "INSERT INTO User(Id, Name, Age, Active) VALUES (1, 'Alice', 30, true)"
- }
- },
- "delete_user_count_zero": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "actual": 0,
- "expected": 0,
- "sql": "SELECT COUNT(*) AS n FROM User WHERE Id=1"
- }
- }
- },
- "vendor": "meta"
- },
- "t_007_crud": {
- "hash": "a4ddc223e2035781ae7e86c8c38c0d78212e9a0c4149c6535625b4033878e3a4",
- "task": "t_007_crud",
- "lang": "csharp",
- "golden_published": true,
- "model_name": "Gemini 3.1 Pro",
- "total_tests": 4,
- "passed_tests": 2,
- "llm_output": "using SpacetimeDB;\n\npublic static partial class Module\n{\n [SpacetimeDB.Table(Accessor = \"User\", Public = true)]\n public partial struct User\n {\n [SpacetimeDB.PrimaryKey]\n public int Id;\n public string Name;\n public int Age;\n public bool Active;\n }\n\n [SpacetimeDB.Reducer]\n public static void Crud(ReducerContext ctx)\n {\n ctx.Db.User.Insert(new User\n {\n Id = 1,\n Name = \"Alice\",\n Age = 30,\n Active = true\n });\n\n ctx.Db.User.Insert(new User\n {\n Id = 2,\n Name = \"Bob\",\n Age = 22,\n Active = false\n });\n\n ctx.Db.User.Id.Update(new User\n {\n Id = 1,\n Name = \"Alice2\",\n Age = 31,\n Active = false\n });\n\n ctx.Db.User.Id.Delete(2);\n }\n}",
- "category": "basics",
- "route_api_model": "google/gemini-3.1-pro-preview",
- "scorer_details": {
- "crud_row_id2_deleted": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "actual": 0,
- "expected": 0,
- "sql": "SELECT COUNT(*) AS n FROM User WHERE Id=2"
- }
- },
- "schema_parity": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "reducers_diff": null,
- "reducers_equal": true,
- "tables_diff": null,
- "tables_equal": true
- }
- },
- "crud_row_id1_parity": {
- "pass": false,
- "partial": 0.0,
- "notes": {
- "error": "spacetime call failed:\nWARNING: This command is UNSTABLE and subject to breaking changes.\n\nError: Response text: Value with given unique identifier already exists\n\nCaused by:\n HTTP status server error (530 ) for url (http://127.0.0.1:56242/v1/database/c200bae1f2bdd27271e560dbfda8814cfd2302b7e12fa45c11457037728b852a/call/crud)\n",
- "phase": "call_reducer_golden"
- }
- },
- "crud_total_count_one": {
- "pass": false,
- "partial": 0.0,
- "notes": {
- "actual": 0,
- "expected": 1,
- "sql": "SELECT COUNT(*) AS n FROM User"
- }
- }
- },
- "vendor": "meta"
- },
- "t_008_index_lookup": {
- "hash": "a4ddc223e2035781ae7e86c8c38c0d78212e9a0c4149c6535625b4033878e3a4",
- "task": "t_008_index_lookup",
- "lang": "csharp",
- "golden_published": true,
- "model_name": "Gemini 3.1 Pro",
- "total_tests": 3,
- "passed_tests": 3,
- "category": "basics",
- "route_api_model": "google/gemini-3.1-pro-preview",
- "scorer_details": {
- "index_lookup_projection_parity": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "args": [
- 1
- ],
- "golden_out": "Id | Name ----+--------- 1 | \"Alice\"",
- "llm_out": "Id | Name ----+--------- 1 | \"Alice\"",
- "query": "SELECT Id, Name FROM Result WHERE Id=1",
- "reducer": "lookup_user_name"
- }
- },
- "schema_parity": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "reducers_diff": null,
- "reducers_equal": true,
- "tables_diff": null,
- "tables_equal": true
- }
- },
- "seed_user_row": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "sql": "INSERT INTO User(Id, Name, Age, Active) VALUES (1, 'Alice', 30, true)"
- }
- }
- },
- "vendor": "meta"
- },
- "t_009_init": {
- "hash": "a4ddc223e2035781ae7e86c8c38c0d78212e9a0c4149c6535625b4033878e3a4",
- "task": "t_009_init",
- "lang": "csharp",
- "golden_published": true,
- "model_name": "Gemini 3.1 Pro",
- "total_tests": 4,
- "passed_tests": 4,
- "category": "basics",
- "route_api_model": "google/gemini-3.1-pro-preview",
- "scorer_details": {
- "init_seed_alice": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "actual": 1,
- "expected": 1,
- "sql": "SELECT COUNT(*) AS n FROM User WHERE Id=1 AND Name='Alice' AND Age=30 AND Active=true"
- }
- },
- "init_total_two": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "actual": 2,
- "expected": 2,
- "sql": "SELECT COUNT(*) AS n FROM User"
- }
- },
- "schema_parity": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "reducers_diff": null,
- "reducers_equal": true,
- "tables_diff": null,
- "tables_equal": true
- }
- },
- "init_seed_bob": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "actual": 1,
- "expected": 1,
- "sql": "SELECT COUNT(*) AS n FROM User WHERE Id=2 AND Name='Bob' AND Age=22 AND Active=false"
- }
- }
- },
- "vendor": "meta"
- },
- "t_010_connect": {
- "hash": "a4ddc223e2035781ae7e86c8c38c0d78212e9a0c4149c6535625b4033878e3a4",
- "task": "t_010_connect",
- "lang": "csharp",
- "golden_published": true,
- "model_name": "Gemini 3.1 Pro",
- "total_tests": 1,
- "passed_tests": 1,
- "category": "basics",
- "route_api_model": "google/gemini-3.1-pro-preview",
- "scorer_details": {
- "schema_parity": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "reducers_diff": null,
- "reducers_equal": true,
- "tables_diff": null,
- "tables_equal": true
- }
- }
- },
- "vendor": "meta"
- },
- "t_011_helper_function": {
- "hash": "a4ddc223e2035781ae7e86c8c38c0d78212e9a0c4149c6535625b4033878e3a4",
- "task": "t_011_helper_function",
- "lang": "csharp",
- "golden_published": true,
- "model_name": "Gemini 3.1 Pro",
- "total_tests": 3,
- "passed_tests": 3,
- "category": "basics",
- "route_api_model": "google/gemini-3.1-pro-preview",
- "scorer_details": {
- "helper_func_sum_abs": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "actual": 1,
- "expected": 1,
- "sql": "SELECT COUNT(*) AS n FROM Result WHERE Id=1 AND Sum=5"
- }
- },
- "schema_parity": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "reducers_diff": null,
- "reducers_equal": true,
- "tables_diff": null,
- "tables_equal": true
- }
- },
- "helper_func_sum_parity": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "args": [
- 1,
- 2,
- 3
- ],
- "golden_out": "Id | Sum ----+----- 1 | 5",
- "llm_out": "Id | Sum ----+----- 1 | 5",
- "query": "SELECT Id, Sum FROM Result WHERE Id=1",
- "reducer": "compute_sum"
- }
- }
- },
- "vendor": "meta"
- },
- "t_012_spacetime_product_type": {
- "hash": "a4ddc223e2035781ae7e86c8c38c0d78212e9a0c4149c6535625b4033878e3a4",
- "task": "t_012_spacetime_product_type",
- "lang": "csharp",
- "golden_published": true,
- "model_name": "Gemini 3.1 Pro",
- "total_tests": 3,
- "passed_tests": 3,
- "category": "schema",
- "route_api_model": "google/gemini-3.1-pro-preview",
- "scorer_details": {
- "product_type_row_count": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "actual": 1,
- "expected": 1,
- "sql": "SELECT COUNT(*) AS n FROM Result WHERE Id=1"
- }
- },
- "schema_parity": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "reducers_diff": null,
- "reducers_equal": true,
- "tables_diff": null,
- "tables_equal": true
- }
- },
- "product_type_row_parity": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "args": [
- 1,
- 2,
- 3
- ],
- "golden_out": "Id | Value ----+----------------------- 1 | (left = 2, right = 3)",
- "llm_out": "Id | Value ----+----------------------- 1 | (left = 2, right = 3)",
- "query": "SELECT Id, Value FROM Result WHERE Id=1",
- "reducer": "set_score"
- }
- }
- },
- "vendor": "meta"
- },
- "t_013_spacetime_sum_type": {
- "hash": "a4ddc223e2035781ae7e86c8c38c0d78212e9a0c4149c6535625b4033878e3a4",
- "task": "t_013_spacetime_sum_type",
- "lang": "csharp",
- "golden_published": false,
- "model_name": "Gemini 3.1 Pro",
- "total_tests": 3,
- "passed_tests": 0,
- "llm_output": "using SpacetimeDB;\n\n[SpacetimeDB.Type]\npublic partial struct Circle\n{\n public int Radius;\n}\n\n[SpacetimeDB.Type]\npublic partial struct Rectangle\n{\n public int Width;\n public int Height;\n}\n\n[SpacetimeDB.Type]\npublic partial record Shape : TaggedEnum<(Circle Circle, Rectangle Rectangle)> { }\n\n[SpacetimeDB.Table(Accessor = \"Result\", Public = true)]\npublic partial struct Result\n{\n [SpacetimeDB.PrimaryKey]\n public int Id;\n public Shape Value;\n}\n\npublic static partial class Module\n{\n [SpacetimeDB.Reducer]\n public static void SetCircle(ReducerContext ctx, int id, int radius)\n {\n ctx.Db.Result.Insert(new Result\n {\n Id = id,\n Value = Shape.Circle(new Circle { Radius = radius })\n });\n }\n}",
- "category": "schema",
- "route_api_model": "google/gemini-3.1-pro-preview",
- "scorer_details": {
- "publish_error": {
- "pass": false,
- "partial": 0.0,
- "notes": {
- "error": "spacetime build (csharp) failed (exit=1)\n--- stderr ---\nError: command [\"dotnet\", \"publish\", \"-c\", \"Release\", \"-v\", \"quiet\"] exited with code 1\n\n--- stdout ---\nD:\\Development\\ClockworkLabs\\SpacetimeDB\\SpacetimeDBPrivate\\public\\target\\llm-runs\\schema\\t_013_spacetime_sum_type\\csharp\\server\\gemini-3-1-pro\\llm\\obj\\Release\\net8.0\\wasi-wasm\\SpacetimeDB.BSATN.Codegen\\SpacetimeDB.Codegen.Type\\Shape.cs(6,26): error CS8910: The primary constructor conflicts with the synthesized copy constructor. [D:\\Development\\ClockworkLabs\\SpacetimeDB\\SpacetimeDBPrivate\\public\\target\\llm-runs\\schema\\t_013_spacetime_sum_type\\csharp\\server\\gemini-3-1-pro\\llm\\StdbModule.csproj]\r\nD:\\Development\\ClockworkLabs\\SpacetimeDB\\SpacetimeDBPrivate\\public\\target\\llm-runs\\schema\\t_013_spacetime_sum_type\\csharp\\server\\gemini-3-1-pro\\llm\\obj\\Release\\net8.0\\wasi-wasm\\SpacetimeDB.BSATN.Codegen\\SpacetimeDB.Codegen.Type\\Shape.cs(12,26): error CS8910: The primary constructor conflicts with the synthesized copy constructor. [D:\\Development\\ClockworkLabs\\SpacetimeDB\\SpacetimeDBPrivate\\public\\target\\llm-runs\\schema\\t_013_spacetime_sum_type\\csharp\\server\\gemini-3-1-pro\\llm\\StdbModule.csproj]\r\n",
- "phase": "build_or_publish"
- }
- }
- },
- "vendor": "meta"
- },
- "t_014_elementary_columns": {
- "hash": "a4ddc223e2035781ae7e86c8c38c0d78212e9a0c4149c6535625b4033878e3a4",
- "task": "t_014_elementary_columns",
- "lang": "csharp",
- "golden_published": true,
- "model_name": "Gemini 3.1 Pro",
- "total_tests": 3,
- "passed_tests": 3,
- "category": "schema",
- "route_api_model": "google/gemini-3.1-pro-preview",
- "scorer_details": {
- "schema_parity": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "reducers_diff": null,
- "reducers_equal": true,
- "tables_diff": null,
- "tables_equal": true
- }
- },
- "elementary_columns_row_parity": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "args": [],
- "golden_out": "Id | Count | Total | Price | Ratio | Active | Name ----+-------+------------+-------+-------+--------+--------- 1 | 2 | 3000000000 | 1.5 | 2.25 | true | \"Alice\"",
- "llm_out": "Id | Count | Total | Price | Ratio | Active | Name ----+-------+------------+-------+-------+--------+--------- 1 | 2 | 3000000000 | 1.5 | 2.25 | true | \"Alice\"",
- "query": "SELECT Id, Count, Total, Price, Ratio, Active, Name FROM Primitive WHERE Id=1",
- "reducer": "seed"
- }
- },
- "elementary_columns_row_count": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "actual": 1,
- "expected": 1,
- "sql": "SELECT COUNT(*) AS n FROM Primitive WHERE Id=1"
- }
- }
- },
- "vendor": "meta"
- },
- "t_015_product_type_columns": {
- "hash": "a4ddc223e2035781ae7e86c8c38c0d78212e9a0c4149c6535625b4033878e3a4",
- "task": "t_015_product_type_columns",
- "lang": "csharp",
- "golden_published": true,
- "model_name": "Gemini 3.1 Pro",
- "total_tests": 3,
- "passed_tests": 3,
- "category": "schema",
- "route_api_model": "google/gemini-3.1-pro-preview",
- "scorer_details": {
- "product_type_columns_row_parity": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "args": [],
- "golden_out": "Id | Home | Work | Pos ----+----------------------------------+-----------------------------------+---------------- 1 | (street = \"1 Main\", zip = 11111) | (street = \"2 Broad\", zip = 22222) | (x = 7, y = 9)",
- "llm_out": "Id | Home | Work | Pos ----+----------------------------------+-----------------------------------+---------------- 1 | (street = \"1 Main\", zip = 11111) | (street = \"2 Broad\", zip = 22222) | (x = 7, y = 9)",
- "query": "SELECT Id, Home, Work, Pos FROM Profile WHERE Id=1",
- "reducer": "seed"
- }
- },
- "schema_parity": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "reducers_diff": null,
- "reducers_equal": true,
- "tables_diff": null,
- "tables_equal": true
- }
- },
- "product_type_columns_row_count": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "actual": 1,
- "expected": 1,
- "sql": "SELECT COUNT(*) AS n FROM Profile WHERE Id=1"
- }
- }
- },
- "vendor": "meta"
- },
- "t_016_sum_type_columns": {
- "hash": "a4ddc223e2035781ae7e86c8c38c0d78212e9a0c4149c6535625b4033878e3a4",
- "task": "t_016_sum_type_columns",
- "lang": "csharp",
- "golden_published": false,
- "model_name": "Gemini 3.1 Pro",
- "total_tests": 3,
- "passed_tests": 0,
- "llm_output": "using SpacetimeDB;\n\n[SpacetimeDB.Type]\npublic partial struct Circle\n{\n public int Radius;\n}\n\n[SpacetimeDB.Type]\npublic partial struct Rectangle\n{\n public int Width;\n public int Height;\n}\n\n[SpacetimeDB.Type]\npublic partial record Shape : TaggedEnum<(Circle Circle, Rectangle Rectangle)> { }\n\n[SpacetimeDB.Table(Accessor = \"Drawing\", Public = true)]\npublic partial struct Drawing\n{\n [SpacetimeDB.PrimaryKey]\n public int Id;\n public Shape A;\n public Shape B;\n}\n\npublic static partial class Module\n{\n [SpacetimeDB.Reducer]\n public static void Seed(ReducerContext ctx)\n {\n ctx.Db.Drawing.Insert(new Drawing\n {\n Id = 1,\n A = Shape.Circle(new Circle { Radius = 10 }),\n B = Shape.Rectangle(new Rectangle { Width = 4, Height = 6 })\n });\n }\n}",
- "category": "schema",
- "route_api_model": "google/gemini-3.1-pro-preview",
- "scorer_details": {
- "publish_error": {
- "pass": false,
- "partial": 0.0,
- "notes": {
- "error": "spacetime build (csharp) failed (exit=1)\n--- stderr ---\nError: command [\"dotnet\", \"publish\", \"-c\", \"Release\", \"-v\", \"quiet\"] exited with code 1\n\n--- stdout ---\nD:\\Development\\ClockworkLabs\\SpacetimeDB\\SpacetimeDBPrivate\\public\\target\\llm-runs\\schema\\t_016_sum_type_columns\\csharp\\server\\gemini-3-1-pro\\llm\\obj\\Release\\net8.0\\wasi-wasm\\SpacetimeDB.BSATN.Codegen\\SpacetimeDB.Codegen.Type\\Shape.cs(6,26): error CS8910: The primary constructor conflicts with the synthesized copy constructor. [D:\\Development\\ClockworkLabs\\SpacetimeDB\\SpacetimeDBPrivate\\public\\target\\llm-runs\\schema\\t_016_sum_type_columns\\csharp\\server\\gemini-3-1-pro\\llm\\StdbModule.csproj]\r\nD:\\Development\\ClockworkLabs\\SpacetimeDB\\SpacetimeDBPrivate\\public\\target\\llm-runs\\schema\\t_016_sum_type_columns\\csharp\\server\\gemini-3-1-pro\\llm\\obj\\Release\\net8.0\\wasi-wasm\\SpacetimeDB.BSATN.Codegen\\SpacetimeDB.Codegen.Type\\Shape.cs(12,26): error CS8910: The primary constructor conflicts with the synthesized copy constructor. [D:\\Development\\ClockworkLabs\\SpacetimeDB\\SpacetimeDBPrivate\\public\\target\\llm-runs\\schema\\t_016_sum_type_columns\\csharp\\server\\gemini-3-1-pro\\llm\\StdbModule.csproj]\r\n",
- "phase": "build_or_publish"
- }
- }
- },
- "vendor": "meta"
- },
- "t_017_scheduled_columns": {
- "hash": "a4ddc223e2035781ae7e86c8c38c0d78212e9a0c4149c6535625b4033878e3a4",
- "task": "t_017_scheduled_columns",
- "lang": "csharp",
- "golden_published": true,
- "model_name": "Gemini 3.1 Pro",
- "total_tests": 2,
- "passed_tests": 2,
- "category": "schema",
- "route_api_model": "google/gemini-3.1-pro-preview",
- "scorer_details": {
- "schema_parity": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "reducers_diff": null,
- "reducers_equal": true,
- "tables_diff": null,
- "tables_equal": true
- }
- },
- "scheduled_seeded_one_row": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "actual": 1,
- "expected": 1,
- "sql": "SELECT COUNT(*) AS n FROM TickTimer WHERE ScheduledId>=0"
- }
- }
- },
- "vendor": "meta"
- },
- "t_018_constraints": {
- "hash": "a4ddc223e2035781ae7e86c8c38c0d78212e9a0c4149c6535625b4033878e3a4",
- "task": "t_018_constraints",
- "lang": "csharp",
- "golden_published": true,
- "model_name": "Gemini 3.1 Pro",
- "total_tests": 3,
- "passed_tests": 3,
- "category": "schema",
- "route_api_model": "google/gemini-3.1-pro-preview",
- "scorer_details": {
- "schema_parity": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "reducers_diff": null,
- "reducers_equal": true,
- "tables_diff": null,
- "tables_equal": true
- }
- },
- "constraints_row_parity_after_seed": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "args": [],
- "golden_out": "Id | Email | Name ----+-----------------+--------- 1 | \"a@example.com\" | \"Alice\"",
- "llm_out": "Id | Email | Name ----+-----------------+--------- 1 | \"a@example.com\" | \"Alice\"",
- "query": "SELECT Id, Email, Name FROM Account WHERE Id=1",
- "reducer": "seed"
- }
- },
- "constraints_seed_two_rows": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "actual": 1,
- "expected": 1,
- "sql": "SELECT COUNT(*) AS n FROM Account WHERE Id=2"
- }
- }
- },
- "vendor": "meta"
- },
- "t_019_many_to_many": {
- "hash": "a4ddc223e2035781ae7e86c8c38c0d78212e9a0c4149c6535625b4033878e3a4",
- "task": "t_019_many_to_many",
- "lang": "csharp",
- "golden_published": true,
- "model_name": "Gemini 3.1 Pro",
- "total_tests": 5,
- "passed_tests": 5,
- "category": "schema",
- "route_api_model": "google/gemini-3.1-pro-preview",
- "scorer_details": {
- "m2m_has_1_20": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "actual": 1,
- "expected": 1,
- "sql": "SELECT COUNT(*) AS n FROM Membership WHERE UserId=1 AND GroupId=20"
- }
- },
- "m2m_has_2_20": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "actual": 1,
- "expected": 1,
- "sql": "SELECT COUNT(*) AS n FROM Membership WHERE UserId=2 AND GroupId=20"
- }
- },
- "schema_parity": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "reducers_diff": null,
- "reducers_equal": true,
- "tables_diff": null,
- "tables_equal": true
- }
- },
- "m2m_has_1_10": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "actual": 1,
- "expected": 1,
- "sql": "SELECT COUNT(*) AS n FROM Membership WHERE UserId=1 AND GroupId=10"
- }
- },
- "memberships_three_rows": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "actual": 3,
- "expected": 3,
- "sql": "SELECT COUNT(*) AS n FROM Membership"
- }
- }
- },
- "vendor": "meta"
- },
- "t_020_ecs": {
- "hash": "a4ddc223e2035781ae7e86c8c38c0d78212e9a0c4149c6535625b4033878e3a4",
- "task": "t_020_ecs",
- "lang": "csharp",
- "golden_published": true,
- "model_name": "Gemini 3.1 Pro",
- "total_tests": 5,
- "passed_tests": 5,
- "category": "schema",
- "route_api_model": "google/gemini-3.1-pro-preview",
- "scorer_details": {
- "ecs_next_pos_entity2": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "actual": 1,
- "expected": 1,
- "sql": "SELECT COUNT(*) AS n FROM NextPosition WHERE EntityId=2 AND X=8 AND Y=3"
- }
- },
- "ecs_next_pos_entity1": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "actual": 1,
- "expected": 1,
- "sql": "SELECT COUNT(*) AS n FROM NextPosition WHERE EntityId=1 AND X=1 AND Y=0"
- }
- },
- "ecs_seed_position_count": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "actual": 2,
- "expected": 2,
- "sql": "SELECT COUNT(*) AS n FROM Position"
- }
- },
- "schema_parity": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "reducers_diff": null,
- "reducers_equal": true,
- "tables_diff": null,
- "tables_equal": true
- }
- },
- "ecs_step_next_position_count": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "actual": 2,
- "expected": 2,
- "sql": "SELECT COUNT(*) AS n FROM NextPosition"
- }
- }
- },
- "vendor": "meta"
- },
- "t_021_multi_column_index": {
- "hash": "a4ddc223e2035781ae7e86c8c38c0d78212e9a0c4149c6535625b4033878e3a4",
- "task": "t_021_multi_column_index",
- "lang": "csharp",
- "golden_published": true,
- "model_name": "Gemini 3.1 Pro",
- "total_tests": 4,
- "passed_tests": 4,
- "category": "schema",
- "route_api_model": "google/gemini-3.1-pro-preview",
- "scorer_details": {
- "mcindex_seed_count": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "actual": 3,
- "expected": 3,
- "sql": "SELECT COUNT(*) AS n FROM Log"
- }
- },
- "mcindex_lookup_u7_d1": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "actual": 1,
- "expected": 1,
- "sql": "SELECT COUNT(*) AS n FROM Log WHERE UserId=7 AND Day=1"
- }
- },
- "schema_parity": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "reducers_diff": null,
- "reducers_equal": true,
- "tables_diff": null,
- "tables_equal": true
- }
- },
- "mcindex_lookup_u7_d2": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "actual": 1,
- "expected": 1,
- "sql": "SELECT COUNT(*) AS n FROM Log WHERE UserId=7 AND Day=2"
- }
- }
- },
- "vendor": "meta"
- }
- }
- },
- {
- "name": "Gemini 3 Flash",
- "route_api_model": "google/gemini-3-flash-preview",
- "tasks": {
- "t_000_empty_reducers": {
- "hash": "a4ddc223e2035781ae7e86c8c38c0d78212e9a0c4149c6535625b4033878e3a4",
- "task": "t_000_empty_reducers",
- "lang": "csharp",
- "golden_published": true,
- "model_name": "Gemini 3 Flash",
- "total_tests": 1,
- "passed_tests": 1,
- "category": "basics",
- "route_api_model": "google/gemini-3-flash-preview",
- "scorer_details": {
- "schema_parity": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "reducers_diff": null,
- "reducers_equal": true,
- "tables_diff": null,
- "tables_equal": true
- }
- }
- },
- "vendor": "meta"
- },
- "t_001_basic_tables": {
- "hash": "a4ddc223e2035781ae7e86c8c38c0d78212e9a0c4149c6535625b4033878e3a4",
- "task": "t_001_basic_tables",
- "lang": "csharp",
- "golden_published": true,
- "model_name": "Gemini 3 Flash",
- "total_tests": 1,
- "passed_tests": 1,
- "category": "basics",
- "route_api_model": "google/gemini-3-flash-preview",
- "scorer_details": {
- "schema_parity": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "reducers_diff": null,
- "reducers_equal": true,
- "tables_diff": null,
- "tables_equal": true
- }
- }
- },
- "vendor": "meta"
- },
- "t_002_scheduled_table": {
- "hash": "a4ddc223e2035781ae7e86c8c38c0d78212e9a0c4149c6535625b4033878e3a4",
- "task": "t_002_scheduled_table",
- "lang": "csharp",
- "golden_published": true,
- "model_name": "Gemini 3 Flash",
- "total_tests": 1,
- "passed_tests": 1,
- "category": "basics",
- "route_api_model": "google/gemini-3-flash-preview",
- "scorer_details": {
- "schema_parity": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "reducers_diff": null,
- "reducers_equal": true,
- "tables_diff": null,
- "tables_equal": true
- }
- }
- },
- "vendor": "meta"
- },
- "t_003_struct_in_table": {
- "hash": "a4ddc223e2035781ae7e86c8c38c0d78212e9a0c4149c6535625b4033878e3a4",
- "task": "t_003_struct_in_table",
- "lang": "csharp",
- "golden_published": true,
- "model_name": "Gemini 3 Flash",
- "total_tests": 1,
- "passed_tests": 1,
- "category": "basics",
- "route_api_model": "google/gemini-3-flash-preview",
- "scorer_details": {
- "schema_parity": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "reducers_diff": null,
- "reducers_equal": true,
- "tables_diff": null,
- "tables_equal": true
- }
- }
- },
- "vendor": "meta"
- },
- "t_004_insert": {
- "hash": "a4ddc223e2035781ae7e86c8c38c0d78212e9a0c4149c6535625b4033878e3a4",
- "task": "t_004_insert",
- "lang": "csharp",
- "golden_published": true,
- "model_name": "Gemini 3 Flash",
- "total_tests": 2,
- "passed_tests": 2,
- "category": "basics",
- "route_api_model": "google/gemini-3-flash-preview",
- "scorer_details": {
- "schema_parity": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "reducers_diff": null,
- "reducers_equal": true,
- "tables_diff": null,
- "tables_equal": true
- }
- },
- "data_parity_insert_user": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "args": [
- 1,
- "Alice",
- 30,
- true
- ],
- "golden_out": "Id | Name | Age | Active ----+---------+-----+-------- 1 | \"Alice\" | 30 | true",
- "llm_out": "Id | Name | Age | Active ----+---------+-----+-------- 1 | \"Alice\" | 30 | true",
- "query": "SELECT Id, Name, Age, Active FROM User WHERE Id=1",
- "reducer": "insert_user"
- }
- }
- },
- "vendor": "meta"
- },
- "t_005_update": {
- "hash": "a4ddc223e2035781ae7e86c8c38c0d78212e9a0c4149c6535625b4033878e3a4",
- "task": "t_005_update",
- "lang": "csharp",
- "golden_published": true,
- "model_name": "Gemini 3 Flash",
- "total_tests": 3,
- "passed_tests": 1,
- "llm_output": "using SpacetimeDB;\n\n[SpacetimeDB.Table(Accessor = \"User\", Public = true)]\npublic partial struct User\n{\n [SpacetimeDB.PrimaryKey]\n public int Id;\n public string Name;\n public int Age;\n public bool Active;\n}\n\npublic static partial class Module\n{\n [SpacetimeDB.Reducer]\n public static void UpdateUser(ReducerContext ctx, int id, string name, int age, bool active)\n {\n var user = ctx.Db.User.Id.Find(id);\n if (user != null)\n {\n ctx.Db.User.Id.Update(new User\n {\n Id = id,\n Name = name,\n Age = age,\n Active = active\n });\n }\n }\n}",
- "category": "basics",
- "route_api_model": "google/gemini-3-flash-preview",
- "scorer_details": {
- "data_parity_update_user": {
- "pass": false,
- "partial": 0.0,
- "notes": {
- "args": [
- 1,
- "Alice2",
- 31,
- false
- ],
- "golden_out": "Id | Name | Age | Active ----+----------+-----+-------- 1 | \"Alice2\" | 31 | false",
- "llm_out": "Id | Name | Age | Active ----+------+-----+--------",
- "query": "SELECT Id, Name, Age, Active FROM User WHERE Id=1",
- "reducer": "update_user"
- }
- },
- "schema_parity": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "reducers_diff": null,
- "reducers_equal": true,
- "tables_diff": null,
- "tables_equal": true
- }
- },
- "seed_users_row": {
- "pass": false,
- "partial": 0.0,
- "notes": {
- "error": "spacetime sql failed:\nWARNING: This command is UNSTABLE and subject to breaking changes.\n\nError: IndexError: Unique constraint violation 'user_id_idx_btree' in table 'user': column(s): '[\"id\"]' value: 1\n\nCaused by:\n HTTP status client error (400 Bad Request) for url (http://127.0.0.1:56242/v1/database/c2003fa012003c49d80084f437bb713f6a093beeaea5587a135d5ff1731afde4/sql)\n",
- "phase": "sql_golden",
- "sql": "INSERT INTO User(Id, Name, Age, Active) VALUES (1, 'Alice', 30, true)"
- }
- }
- },
- "vendor": "meta"
- },
- "t_006_delete": {
- "hash": "a4ddc223e2035781ae7e86c8c38c0d78212e9a0c4149c6535625b4033878e3a4",
- "task": "t_006_delete",
- "lang": "csharp",
- "golden_published": true,
- "model_name": "Gemini 3 Flash",
- "total_tests": 3,
- "passed_tests": 3,
- "category": "basics",
- "route_api_model": "google/gemini-3-flash-preview",
- "scorer_details": {
- "schema_parity": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "reducers_diff": null,
- "reducers_equal": true,
- "tables_diff": null,
- "tables_equal": true
- }
- },
- "seed_users_row": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "sql": "INSERT INTO User(Id, Name, Age, Active) VALUES (1, 'Alice', 30, true)"
- }
- },
- "delete_user_count_zero": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "actual": 0,
- "expected": 0,
- "sql": "SELECT COUNT(*) AS n FROM User WHERE Id=1"
- }
- }
- },
- "vendor": "meta"
- },
- "t_007_crud": {
- "hash": "a4ddc223e2035781ae7e86c8c38c0d78212e9a0c4149c6535625b4033878e3a4",
- "task": "t_007_crud",
- "lang": "csharp",
- "golden_published": true,
- "model_name": "Gemini 3 Flash",
- "total_tests": 4,
- "passed_tests": 2,
- "llm_output": "using SpacetimeDB;\n\n[SpacetimeDB.Table(Accessor = \"User\", Public = true)]\npublic partial struct User\n{\n [SpacetimeDB.PrimaryKey]\n public int Id;\n public string Name;\n public int Age;\n public bool Active;\n}\n\npublic static partial class Module\n{\n [SpacetimeDB.Reducer]\n public static void Crud(ReducerContext ctx)\n {\n ctx.Db.User.Insert(new User\n {\n Id = 1,\n Name = \"Alice\",\n Age = 30,\n Active = true\n });\n\n ctx.Db.User.Insert(new User\n {\n Id = 2,\n Name = \"Bob\",\n Age = 22,\n Active = false\n });\n\n var alice = ctx.Db.User.Id.Find(1);\n if (alice.HasValue)\n {\n var updatedAlice = alice.Value;\n updatedAlice.Name = \"Alice2\";\n updatedAlice.Age = 31;\n updatedAlice.Active = false;\n ctx.Db.User.Id.Update(updatedAlice);\n }\n\n ctx.Db.User.Id.Delete(2);\n }\n}",
- "category": "basics",
- "route_api_model": "google/gemini-3-flash-preview",
- "scorer_details": {
- "crud_row_id2_deleted": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "actual": 0,
- "expected": 0,
- "sql": "SELECT COUNT(*) AS n FROM User WHERE Id=2"
- }
- },
- "schema_parity": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "reducers_diff": null,
- "reducers_equal": true,
- "tables_diff": null,
- "tables_equal": true
- }
- },
- "crud_row_id1_parity": {
- "pass": false,
- "partial": 0.0,
- "notes": {
- "error": "spacetime call failed:\nWARNING: This command is UNSTABLE and subject to breaking changes.\n\nError: Response text: Value with given unique identifier already exists\n\nCaused by:\n HTTP status server error (530 ) for url (http://127.0.0.1:56242/v1/database/c200bae1f2bdd27271e560dbfda8814cfd2302b7e12fa45c11457037728b852a/call/crud)\n",
- "phase": "call_reducer_golden"
- }
- },
- "crud_total_count_one": {
- "pass": false,
- "partial": 0.0,
- "notes": {
- "actual": 0,
- "expected": 1,
- "sql": "SELECT COUNT(*) AS n FROM User"
- }
- }
- },
- "vendor": "meta"
- },
- "t_008_index_lookup": {
- "hash": "a4ddc223e2035781ae7e86c8c38c0d78212e9a0c4149c6535625b4033878e3a4",
- "task": "t_008_index_lookup",
- "lang": "csharp",
- "golden_published": true,
- "model_name": "Gemini 3 Flash",
- "total_tests": 3,
- "passed_tests": 3,
- "category": "basics",
- "route_api_model": "google/gemini-3-flash-preview",
- "scorer_details": {
- "index_lookup_projection_parity": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "args": [
- 1
- ],
- "golden_out": "Id | Name ----+--------- 1 | \"Alice\"",
- "llm_out": "Id | Name ----+--------- 1 | \"Alice\"",
- "query": "SELECT Id, Name FROM Result WHERE Id=1",
- "reducer": "lookup_user_name"
- }
- },
- "schema_parity": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "reducers_diff": null,
- "reducers_equal": true,
- "tables_diff": null,
- "tables_equal": true
- }
- },
- "seed_user_row": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "sql": "INSERT INTO User(Id, Name, Age, Active) VALUES (1, 'Alice', 30, true)"
- }
- }
- },
- "vendor": "meta"
- },
- "t_009_init": {
- "hash": "a4ddc223e2035781ae7e86c8c38c0d78212e9a0c4149c6535625b4033878e3a4",
- "task": "t_009_init",
- "lang": "csharp",
- "golden_published": true,
- "model_name": "Gemini 3 Flash",
- "total_tests": 4,
- "passed_tests": 4,
- "category": "basics",
- "route_api_model": "google/gemini-3-flash-preview",
- "scorer_details": {
- "init_seed_alice": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "actual": 1,
- "expected": 1,
- "sql": "SELECT COUNT(*) AS n FROM User WHERE Id=1 AND Name='Alice' AND Age=30 AND Active=true"
- }
- },
- "init_total_two": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "actual": 2,
- "expected": 2,
- "sql": "SELECT COUNT(*) AS n FROM User"
- }
- },
- "schema_parity": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "reducers_diff": null,
- "reducers_equal": true,
- "tables_diff": null,
- "tables_equal": true
- }
- },
- "init_seed_bob": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "actual": 1,
- "expected": 1,
- "sql": "SELECT COUNT(*) AS n FROM User WHERE Id=2 AND Name='Bob' AND Age=22 AND Active=false"
- }
- }
- },
- "vendor": "meta"
- },
- "t_010_connect": {
- "hash": "a4ddc223e2035781ae7e86c8c38c0d78212e9a0c4149c6535625b4033878e3a4",
- "task": "t_010_connect",
- "lang": "csharp",
- "golden_published": true,
- "model_name": "Gemini 3 Flash",
- "total_tests": 1,
- "passed_tests": 1,
- "category": "basics",
- "route_api_model": "google/gemini-3-flash-preview",
- "scorer_details": {
- "schema_parity": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "reducers_diff": null,
- "reducers_equal": true,
- "tables_diff": null,
- "tables_equal": true
- }
- }
- },
- "vendor": "meta"
- },
- "t_011_helper_function": {
- "hash": "a4ddc223e2035781ae7e86c8c38c0d78212e9a0c4149c6535625b4033878e3a4",
- "task": "t_011_helper_function",
- "lang": "csharp",
- "golden_published": true,
- "model_name": "Gemini 3 Flash",
- "total_tests": 3,
- "passed_tests": 3,
- "category": "basics",
- "route_api_model": "google/gemini-3-flash-preview",
- "scorer_details": {
- "helper_func_sum_abs": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "actual": 1,
- "expected": 1,
- "sql": "SELECT COUNT(*) AS n FROM Result WHERE Id=1 AND Sum=5"
- }
- },
- "schema_parity": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "reducers_diff": null,
- "reducers_equal": true,
- "tables_diff": null,
- "tables_equal": true
- }
- },
- "helper_func_sum_parity": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "args": [
- 1,
- 2,
- 3
- ],
- "golden_out": "Id | Sum ----+----- 1 | 5",
- "llm_out": "Id | Sum ----+----- 1 | 5",
- "query": "SELECT Id, Sum FROM Result WHERE Id=1",
- "reducer": "compute_sum"
- }
- }
- },
- "vendor": "meta"
- },
- "t_012_spacetime_product_type": {
- "hash": "a4ddc223e2035781ae7e86c8c38c0d78212e9a0c4149c6535625b4033878e3a4",
- "task": "t_012_spacetime_product_type",
- "lang": "csharp",
- "golden_published": true,
- "model_name": "Gemini 3 Flash",
- "total_tests": 3,
- "passed_tests": 3,
- "category": "schema",
- "route_api_model": "google/gemini-3-flash-preview",
- "scorer_details": {
- "product_type_row_count": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "actual": 1,
- "expected": 1,
- "sql": "SELECT COUNT(*) AS n FROM Result WHERE Id=1"
- }
- },
- "schema_parity": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "reducers_diff": null,
- "reducers_equal": true,
- "tables_diff": null,
- "tables_equal": true
- }
- },
- "product_type_row_parity": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "args": [
- 1,
- 2,
- 3
- ],
- "golden_out": "Id | Value ----+----------------------- 1 | (left = 2, right = 3)",
- "llm_out": "Id | Value ----+----------------------- 1 | (left = 2, right = 3)",
- "query": "SELECT Id, Value FROM Result WHERE Id=1",
- "reducer": "set_score"
- }
- }
- },
- "vendor": "meta"
- },
- "t_013_spacetime_sum_type": {
- "hash": "a4ddc223e2035781ae7e86c8c38c0d78212e9a0c4149c6535625b4033878e3a4",
- "task": "t_013_spacetime_sum_type",
- "lang": "csharp",
- "golden_published": false,
- "model_name": "Gemini 3 Flash",
- "total_tests": 3,
- "passed_tests": 0,
- "llm_output": "using SpacetimeDB;\n\n[SpacetimeDB.Type]\npublic partial struct Circle\n{\n public int Radius;\n}\n\n[SpacetimeDB.Type]\npublic partial struct Rectangle\n{\n public int Width;\n public int Height;\n}\n\n[SpacetimeDB.Type]\npublic partial record Shape : TaggedEnum<(Circle Circle, Rectangle Rectangle)> { }\n\n[SpacetimeDB.Table(Accessor = \"Result\", Public = true)]\npublic partial struct Result\n{\n [SpacetimeDB.PrimaryKey]\n public int Id;\n public Shape Value;\n}\n\npublic static partial class Module\n{\n [SpacetimeDB.Reducer]\n public static void SetCircle(ReducerContext ctx, int id, int radius)\n {\n ctx.Db.Result.Insert(new Result\n {\n Id = id,\n Value = Shape.Circle(new Circle { Radius = radius })\n });\n }\n}",
- "category": "schema",
- "route_api_model": "google/gemini-3-flash-preview",
- "scorer_details": {
- "publish_error": {
- "pass": false,
- "partial": 0.0,
- "notes": {
- "error": "spacetime build (csharp) failed (exit=1)\n--- stderr ---\nError: command [\"dotnet\", \"publish\", \"-c\", \"Release\", \"-v\", \"quiet\"] exited with code 1\n\n--- stdout ---\nD:\\Development\\ClockworkLabs\\SpacetimeDB\\SpacetimeDBPrivate\\public\\target\\llm-runs\\schema\\t_013_spacetime_sum_type\\csharp\\server\\gemini-3-flash\\llm\\obj\\Release\\net8.0\\wasi-wasm\\SpacetimeDB.BSATN.Codegen\\SpacetimeDB.Codegen.Type\\Shape.cs(6,26): error CS8910: The primary constructor conflicts with the synthesized copy constructor. [D:\\Development\\ClockworkLabs\\SpacetimeDB\\SpacetimeDBPrivate\\public\\target\\llm-runs\\schema\\t_013_spacetime_sum_type\\csharp\\server\\gemini-3-flash\\llm\\StdbModule.csproj]\r\nD:\\Development\\ClockworkLabs\\SpacetimeDB\\SpacetimeDBPrivate\\public\\target\\llm-runs\\schema\\t_013_spacetime_sum_type\\csharp\\server\\gemini-3-flash\\llm\\obj\\Release\\net8.0\\wasi-wasm\\SpacetimeDB.BSATN.Codegen\\SpacetimeDB.Codegen.Type\\Shape.cs(12,26): error CS8910: The primary constructor conflicts with the synthesized copy constructor. [D:\\Development\\ClockworkLabs\\SpacetimeDB\\SpacetimeDBPrivate\\public\\target\\llm-runs\\schema\\t_013_spacetime_sum_type\\csharp\\server\\gemini-3-flash\\llm\\StdbModule.csproj]\r\n",
- "phase": "build_or_publish"
- }
- }
- },
- "vendor": "meta"
- },
- "t_014_elementary_columns": {
- "hash": "a4ddc223e2035781ae7e86c8c38c0d78212e9a0c4149c6535625b4033878e3a4",
- "task": "t_014_elementary_columns",
- "lang": "csharp",
- "golden_published": true,
- "model_name": "Gemini 3 Flash",
- "total_tests": 3,
- "passed_tests": 2,
- "llm_output": "using SpacetimeDB;\n\npublic static partial class Module\n{\n [SpacetimeDB.Table(Accessor = \"Primitive\", Public = true)]\n public partial struct Primitive\n {\n [SpacetimeDB.PrimaryKey]\n public int Id;\n public int Count;\n public long Total;\n public float Price;\n public double Ratio;\n public bool Active;\n public string Name;\n }\n\n [SpacetimeDB.Reducer(ReducerKind.Init)]\n public static void Seed(ReducerContext ctx)\n {\n ctx.Db.Primitive.Insert(new Primitive\n {\n Id = 1,\n Count = 2,\n Total = 3000000000L,\n Price = 1.5f,\n Ratio = 2.25,\n Active = true,\n Name = \"Alice\"\n });\n }\n}",
- "category": "schema",
- "route_api_model": "google/gemini-3-flash-preview",
- "scorer_details": {
- "schema_parity": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "reducers_diff": null,
- "reducers_equal": true,
- "tables_diff": null,
- "tables_equal": true
- }
- },
- "elementary_columns_row_parity": {
- "pass": false,
- "partial": 0.0,
- "notes": {
- "error": "spacetime call failed:\nWARNING: This command is UNSTABLE and subject to breaking changes.\n\nError: Response text: can't directly call special Init lifecycle reducer\n\nCaused by:\n HTTP status client error (400 Bad Request) for url (http://127.0.0.1:56242/v1/database/c200c52fb7b64f38ac169672ccaaf9aa528624106da48843b0f078bfbec22654/call/seed)\n",
- "phase": "call_reducer_llm"
- }
- },
- "elementary_columns_row_count": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "actual": 1,
- "expected": 1,
- "sql": "SELECT COUNT(*) AS n FROM Primitive WHERE Id=1"
- }
- }
- },
- "vendor": "meta"
- },
- "t_015_product_type_columns": {
- "hash": "a4ddc223e2035781ae7e86c8c38c0d78212e9a0c4149c6535625b4033878e3a4",
- "task": "t_015_product_type_columns",
- "lang": "csharp",
- "golden_published": true,
- "model_name": "Gemini 3 Flash",
- "total_tests": 3,
- "passed_tests": 3,
- "category": "schema",
- "route_api_model": "google/gemini-3-flash-preview",
- "scorer_details": {
- "product_type_columns_row_parity": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "args": [],
- "golden_out": "Id | Home | Work | Pos ----+----------------------------------+-----------------------------------+---------------- 1 | (street = \"1 Main\", zip = 11111) | (street = \"2 Broad\", zip = 22222) | (x = 7, y = 9)",
- "llm_out": "Id | Home | Work | Pos ----+----------------------------------+-----------------------------------+---------------- 1 | (street = \"1 Main\", zip = 11111) | (street = \"2 Broad\", zip = 22222) | (x = 7, y = 9)",
- "query": "SELECT Id, Home, Work, Pos FROM Profile WHERE Id=1",
- "reducer": "seed"
- }
- },
- "schema_parity": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "reducers_diff": null,
- "reducers_equal": true,
- "tables_diff": null,
- "tables_equal": true
- }
- },
- "product_type_columns_row_count": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "actual": 1,
- "expected": 1,
- "sql": "SELECT COUNT(*) AS n FROM Profile WHERE Id=1"
- }
- }
- },
- "vendor": "meta"
- },
- "t_016_sum_type_columns": {
- "hash": "a4ddc223e2035781ae7e86c8c38c0d78212e9a0c4149c6535625b4033878e3a4",
- "task": "t_016_sum_type_columns",
- "lang": "csharp",
- "golden_published": false,
- "model_name": "Gemini 3 Flash",
- "total_tests": 3,
- "passed_tests": 0,
- "llm_output": "using SpacetimeDB;\n\n[SpacetimeDB.Type]\npublic partial struct Circle\n{\n public int Radius;\n}\n\n[SpacetimeDB.Type]\npublic partial struct Rectangle\n{\n public int Width;\n public int Height;\n}\n\n[SpacetimeDB.Type]\npublic partial record Shape : TaggedEnum<(Circle Circle, Rectangle Rectangle)> { }\n\n[SpacetimeDB.Table(Accessor = \"Drawing\", Public = true)]\npublic partial struct Drawing\n{\n [SpacetimeDB.PrimaryKey]\n public int Id;\n public Shape A;\n public Shape B;\n}\n\npublic static partial class Module\n{\n [SpacetimeDB.Reducer(ReducerKind.Init)]\n public static void Seed(ReducerContext ctx)\n {\n ctx.Db.Drawing.Insert(new Drawing\n {\n Id = 1,\n A = Shape.Circle(new Circle { Radius = 10 }),\n B = Shape.Rectangle(new Rectangle { Width = 4, Height = 6 })\n });\n }\n}",
- "category": "schema",
- "route_api_model": "google/gemini-3-flash-preview",
- "scorer_details": {
- "publish_error": {
- "pass": false,
- "partial": 0.0,
- "notes": {
- "error": "spacetime build (csharp) failed (exit=1)\n--- stderr ---\nError: command [\"dotnet\", \"publish\", \"-c\", \"Release\", \"-v\", \"quiet\"] exited with code 1\n\n--- stdout ---\nD:\\Development\\ClockworkLabs\\SpacetimeDB\\SpacetimeDBPrivate\\public\\target\\llm-runs\\schema\\t_016_sum_type_columns\\csharp\\server\\gemini-3-flash\\llm\\obj\\Release\\net8.0\\wasi-wasm\\SpacetimeDB.BSATN.Codegen\\SpacetimeDB.Codegen.Type\\Shape.cs(6,26): error CS8910: The primary constructor conflicts with the synthesized copy constructor. [D:\\Development\\ClockworkLabs\\SpacetimeDB\\SpacetimeDBPrivate\\public\\target\\llm-runs\\schema\\t_016_sum_type_columns\\csharp\\server\\gemini-3-flash\\llm\\StdbModule.csproj]\r\nD:\\Development\\ClockworkLabs\\SpacetimeDB\\SpacetimeDBPrivate\\public\\target\\llm-runs\\schema\\t_016_sum_type_columns\\csharp\\server\\gemini-3-flash\\llm\\obj\\Release\\net8.0\\wasi-wasm\\SpacetimeDB.BSATN.Codegen\\SpacetimeDB.Codegen.Type\\Shape.cs(12,26): error CS8910: The primary constructor conflicts with the synthesized copy constructor. [D:\\Development\\ClockworkLabs\\SpacetimeDB\\SpacetimeDBPrivate\\public\\target\\llm-runs\\schema\\t_016_sum_type_columns\\csharp\\server\\gemini-3-flash\\llm\\StdbModule.csproj]\r\n",
- "phase": "build_or_publish"
- }
- }
- },
- "vendor": "meta"
- },
- "t_017_scheduled_columns": {
- "hash": "a4ddc223e2035781ae7e86c8c38c0d78212e9a0c4149c6535625b4033878e3a4",
- "task": "t_017_scheduled_columns",
- "lang": "csharp",
- "golden_published": true,
- "model_name": "Gemini 3 Flash",
- "total_tests": 2,
- "passed_tests": 2,
- "category": "schema",
- "route_api_model": "google/gemini-3-flash-preview",
- "scorer_details": {
- "schema_parity": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "reducers_diff": null,
- "reducers_equal": true,
- "tables_diff": null,
- "tables_equal": true
- }
- },
- "scheduled_seeded_one_row": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "actual": 1,
- "expected": 1,
- "sql": "SELECT COUNT(*) AS n FROM TickTimer WHERE ScheduledId>=0"
- }
- }
- },
- "vendor": "meta"
- },
- "t_018_constraints": {
- "hash": "a4ddc223e2035781ae7e86c8c38c0d78212e9a0c4149c6535625b4033878e3a4",
- "task": "t_018_constraints",
- "lang": "csharp",
- "golden_published": true,
- "model_name": "Gemini 3 Flash",
- "total_tests": 3,
- "passed_tests": 3,
- "category": "schema",
- "route_api_model": "google/gemini-3-flash-preview",
- "scorer_details": {
- "schema_parity": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "reducers_diff": null,
- "reducers_equal": true,
- "tables_diff": null,
- "tables_equal": true
- }
- },
- "constraints_row_parity_after_seed": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "args": [],
- "golden_out": "Id | Email | Name ----+-----------------+--------- 1 | \"a@example.com\" | \"Alice\"",
- "llm_out": "Id | Email | Name ----+-----------------+--------- 1 | \"a@example.com\" | \"Alice\"",
- "query": "SELECT Id, Email, Name FROM Account WHERE Id=1",
- "reducer": "seed"
- }
- },
- "constraints_seed_two_rows": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "actual": 1,
- "expected": 1,
- "sql": "SELECT COUNT(*) AS n FROM Account WHERE Id=2"
- }
- }
- },
- "vendor": "meta"
- },
- "t_019_many_to_many": {
- "hash": "a4ddc223e2035781ae7e86c8c38c0d78212e9a0c4149c6535625b4033878e3a4",
- "task": "t_019_many_to_many",
- "lang": "csharp",
- "golden_published": false,
- "model_name": "Gemini 3 Flash",
- "total_tests": 5,
- "passed_tests": 0,
- "llm_output": "using SpacetimeDB;\n\npublic static partial class Module\n{\n [Table(Accessor = \"User\", Public = true)]\n public partial struct User\n {\n [PrimaryKey]\n public int UserId;\n public string Name;\n }\n\n [Table(Accessor = \"Group\", Public = true)]\n public partial struct Group\n {\n [PrimaryKey]\n public int GroupId;\n public string Title;\n }\n\n [Table(Accessor = \"Membership\", Public = true)]\n [Index.BTree(Accessor = \"by_user\", Columns = new[] { \"UserId\" })]\n [Index.BTree(Accessor = \"by_group\", Columns = new[] { \"GroupId\" })]\n public partial struct Membership\n {\n [PrimaryKey]\n public int Id;\n public int UserId;\n public int GroupId;\n }\n\n [Reducer]\n public static void Seed(ReducerContext ctx)\n {\n ctx.Db.User.Insert(new User { UserId = 1, Name = \"Alice\" });\n ctx.Db.User.Insert(new User { UserId = 2, Name = \"Bob\" });\n\n ctx.Db.Group.Insert(new Group { GroupId = 10, Title = \"Admin\" });\n ctx.Db.Group.Insert(new Group { GroupId = 20, Title = \"Dev\" });\n\n ctx.Db.Membership.Insert(new Membership { Id = 1, UserId = 1, GroupId = 10 });\n ctx.Db.Membership.Insert(new Membership { Id = 2, UserId = 1, GroupId = 20 });\n ctx.Db.Membership.Insert(new Membership { Id = 3, UserId = 2, GroupId = 20 });\n }\n}",
- "category": "schema",
- "route_api_model": "google/gemini-3-flash-preview",
- "scorer_details": {
- "publish_error": {
- "pass": false,
- "partial": 0.0,
- "notes": {
- "error": "spacetime build (csharp) failed (exit=1)\n--- stderr ---\nError: command [\"dotnet\", \"publish\", \"-c\", \"Release\", \"-v\", \"quiet\"] exited with code 1\n\n--- stdout ---\nD:\\Development\\ClockworkLabs\\SpacetimeDB\\SpacetimeDBPrivate\\public\\target\\llm-runs\\schema\\t_019_many_to_many\\csharp\\server\\gemini-3-flash\\llm\\Lib.cs(23,6): error CS0104: 'Index' is an ambiguous reference between 'SpacetimeDB.Index' and 'System.Index' [D:\\Development\\ClockworkLabs\\SpacetimeDB\\SpacetimeDBPrivate\\public\\target\\llm-runs\\schema\\t_019_many_to_many\\csharp\\server\\gemini-3-flash\\llm\\StdbModule.csproj]\r\nD:\\Development\\ClockworkLabs\\SpacetimeDB\\SpacetimeDBPrivate\\public\\target\\llm-runs\\schema\\t_019_many_to_many\\csharp\\server\\gemini-3-flash\\llm\\Lib.cs(24,6): error CS0104: 'Index' is an ambiguous reference between 'SpacetimeDB.Index' and 'System.Index' [D:\\Development\\ClockworkLabs\\SpacetimeDB\\SpacetimeDBPrivate\\public\\target\\llm-runs\\schema\\t_019_many_to_many\\csharp\\server\\gemini-3-flash\\llm\\StdbModule.csproj]\r\n",
- "phase": "build_or_publish"
- }
- }
- },
- "vendor": "meta"
- },
- "t_020_ecs": {
- "hash": "a4ddc223e2035781ae7e86c8c38c0d78212e9a0c4149c6535625b4033878e3a4",
- "task": "t_020_ecs",
- "lang": "csharp",
- "golden_published": true,
- "model_name": "Gemini 3 Flash",
- "total_tests": 5,
- "passed_tests": 5,
- "category": "schema",
- "route_api_model": "google/gemini-3-flash-preview",
- "scorer_details": {
- "ecs_next_pos_entity2": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "actual": 1,
- "expected": 1,
- "sql": "SELECT COUNT(*) AS n FROM NextPosition WHERE EntityId=2 AND X=8 AND Y=3"
- }
- },
- "ecs_next_pos_entity1": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "actual": 1,
- "expected": 1,
- "sql": "SELECT COUNT(*) AS n FROM NextPosition WHERE EntityId=1 AND X=1 AND Y=0"
- }
- },
- "ecs_seed_position_count": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "actual": 2,
- "expected": 2,
- "sql": "SELECT COUNT(*) AS n FROM Position"
- }
- },
- "schema_parity": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "reducers_diff": null,
- "reducers_equal": true,
- "tables_diff": null,
- "tables_equal": true
- }
- },
- "ecs_step_next_position_count": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "actual": 2,
- "expected": 2,
- "sql": "SELECT COUNT(*) AS n FROM NextPosition"
- }
- }
- },
- "vendor": "meta"
- },
- "t_021_multi_column_index": {
- "hash": "a4ddc223e2035781ae7e86c8c38c0d78212e9a0c4149c6535625b4033878e3a4",
- "task": "t_021_multi_column_index",
- "lang": "csharp",
- "golden_published": true,
- "model_name": "Gemini 3 Flash",
- "total_tests": 4,
- "passed_tests": 4,
- "category": "schema",
- "route_api_model": "google/gemini-3-flash-preview",
- "scorer_details": {
- "mcindex_seed_count": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "actual": 3,
- "expected": 3,
- "sql": "SELECT COUNT(*) AS n FROM Log"
- }
- },
- "mcindex_lookup_u7_d1": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "actual": 1,
- "expected": 1,
- "sql": "SELECT COUNT(*) AS n FROM Log WHERE UserId=7 AND Day=1"
- }
- },
- "schema_parity": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "reducers_diff": null,
- "reducers_equal": true,
- "tables_diff": null,
- "tables_equal": true
- }
- },
- "mcindex_lookup_u7_d2": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "actual": 1,
- "expected": 1,
- "sql": "SELECT COUNT(*) AS n FROM Log WHERE UserId=7 AND Day=2"
- }
- }
- },
- "vendor": "meta"
- }
- }
- },
- {
- "name": "DeepSeek Chat",
- "route_api_model": "deepseek-chat",
- "tasks": {
- "t_000_empty_reducers": {
- "hash": "a4ddc223e2035781ae7e86c8c38c0d78212e9a0c4149c6535625b4033878e3a4",
- "task": "t_000_empty_reducers",
- "lang": "csharp",
- "golden_published": true,
- "model_name": "DeepSeek Chat",
- "total_tests": 1,
- "passed_tests": 1,
- "category": "basics",
- "route_api_model": "deepseek-chat",
- "scorer_details": {
- "schema_parity": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "reducers_diff": null,
- "reducers_equal": true,
- "tables_diff": null,
- "tables_equal": true
- }
- }
- },
- "vendor": "deepseek"
- },
- "t_001_basic_tables": {
- "hash": "a4ddc223e2035781ae7e86c8c38c0d78212e9a0c4149c6535625b4033878e3a4",
- "task": "t_001_basic_tables",
- "lang": "csharp",
- "golden_published": true,
- "model_name": "DeepSeek Chat",
- "total_tests": 1,
- "passed_tests": 1,
- "category": "basics",
- "route_api_model": "deepseek-chat",
- "scorer_details": {
- "schema_parity": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "reducers_diff": null,
- "reducers_equal": true,
- "tables_diff": null,
- "tables_equal": true
- }
- }
- },
- "vendor": "deepseek"
- },
- "t_002_scheduled_table": {
- "hash": "a4ddc223e2035781ae7e86c8c38c0d78212e9a0c4149c6535625b4033878e3a4",
- "task": "t_002_scheduled_table",
- "lang": "csharp",
- "golden_published": true,
- "model_name": "DeepSeek Chat",
- "total_tests": 1,
- "passed_tests": 1,
- "category": "basics",
- "route_api_model": "deepseek-chat",
- "scorer_details": {
- "schema_parity": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "reducers_diff": null,
- "reducers_equal": true,
- "tables_diff": null,
- "tables_equal": true
- }
- }
- },
- "vendor": "deepseek"
- },
- "t_003_struct_in_table": {
- "hash": "a4ddc223e2035781ae7e86c8c38c0d78212e9a0c4149c6535625b4033878e3a4",
- "task": "t_003_struct_in_table",
- "lang": "csharp",
- "golden_published": true,
- "model_name": "DeepSeek Chat",
- "total_tests": 1,
- "passed_tests": 1,
- "category": "basics",
- "route_api_model": "deepseek-chat",
- "scorer_details": {
- "schema_parity": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "reducers_diff": null,
- "reducers_equal": true,
- "tables_diff": null,
- "tables_equal": true
- }
- }
- },
- "vendor": "deepseek"
- },
- "t_004_insert": {
- "hash": "a4ddc223e2035781ae7e86c8c38c0d78212e9a0c4149c6535625b4033878e3a4",
- "task": "t_004_insert",
- "lang": "csharp",
- "golden_published": true,
- "model_name": "DeepSeek Chat",
- "total_tests": 2,
- "passed_tests": 2,
- "category": "basics",
- "route_api_model": "deepseek-chat",
- "scorer_details": {
- "schema_parity": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "reducers_diff": null,
- "reducers_equal": true,
- "tables_diff": null,
- "tables_equal": true
- }
- },
- "data_parity_insert_user": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "args": [
- 1,
- "Alice",
- 30,
- true
- ],
- "golden_out": "Id | Name | Age | Active ----+---------+-----+-------- 1 | \"Alice\" | 30 | true",
- "llm_out": "Id | Name | Age | Active ----+---------+-----+-------- 1 | \"Alice\" | 30 | true",
- "query": "SELECT Id, Name, Age, Active FROM User WHERE Id=1",
- "reducer": "insert_user"
- }
- }
- },
- "vendor": "deepseek"
- },
- "t_005_update": {
- "hash": "a4ddc223e2035781ae7e86c8c38c0d78212e9a0c4149c6535625b4033878e3a4",
- "task": "t_005_update",
- "lang": "csharp",
- "golden_published": true,
- "model_name": "DeepSeek Chat",
- "total_tests": 3,
- "passed_tests": 1,
- "llm_output": "using SpacetimeDB;\n\npublic static partial class Module\n{\n [SpacetimeDB.Table(Accessor = \"User\")]\n public partial struct User\n {\n [SpacetimeDB.PrimaryKey]\n public int Id;\n public string Name;\n public int Age;\n public bool Active;\n }\n\n [SpacetimeDB.Reducer]\n public static void UpdateUser(ReducerContext ctx, int id, string name, int age, bool active)\n {\n var user = ctx.Db.User.Id.Find(id);\n if (user.HasValue)\n {\n ctx.Db.User.Id.Update(new User\n {\n Id = id,\n Name = name,\n Age = age,\n Active = active\n });\n }\n }\n}",
- "category": "basics",
- "route_api_model": "deepseek-chat",
- "scorer_details": {
- "data_parity_update_user": {
- "pass": false,
- "partial": 0.0,
- "notes": {
- "args": [
- 1,
- "Alice2",
- 31,
- false
- ],
- "golden_out": "Id | Name | Age | Active ----+----------+-----+-------- 1 | \"Alice2\" | 31 | false",
- "llm_out": "Id | Name | Age | Active ----+------+-----+--------",
- "query": "SELECT Id, Name, Age, Active FROM User WHERE Id=1",
- "reducer": "update_user"
- }
- },
- "schema_parity": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "reducers_diff": null,
- "reducers_equal": true,
- "tables_diff": null,
- "tables_equal": true
- }
- },
- "seed_users_row": {
- "pass": false,
- "partial": 0.0,
- "notes": {
- "error": "spacetime sql failed:\nWARNING: This command is UNSTABLE and subject to breaking changes.\n\nError: IndexError: Unique constraint violation 'user_id_idx_btree' in table 'user': column(s): '[\"id\"]' value: 1\n\nCaused by:\n HTTP status client error (400 Bad Request) for url (http://127.0.0.1:56242/v1/database/c2003fa012003c49d80084f437bb713f6a093beeaea5587a135d5ff1731afde4/sql)\n",
- "phase": "sql_golden",
- "sql": "INSERT INTO User(Id, Name, Age, Active) VALUES (1, 'Alice', 30, true)"
- }
- }
- },
- "vendor": "deepseek"
- },
- "t_006_delete": {
- "hash": "a4ddc223e2035781ae7e86c8c38c0d78212e9a0c4149c6535625b4033878e3a4",
- "task": "t_006_delete",
- "lang": "csharp",
- "golden_published": true,
- "model_name": "DeepSeek Chat",
- "total_tests": 3,
- "passed_tests": 3,
- "category": "basics",
- "route_api_model": "deepseek-chat",
- "scorer_details": {
- "schema_parity": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "reducers_diff": null,
- "reducers_equal": true,
- "tables_diff": null,
- "tables_equal": true
- }
- },
- "seed_users_row": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "sql": "INSERT INTO User(Id, Name, Age, Active) VALUES (1, 'Alice', 30, true)"
- }
- },
- "delete_user_count_zero": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "actual": 0,
- "expected": 0,
- "sql": "SELECT COUNT(*) AS n FROM User WHERE Id=1"
- }
- }
- },
- "vendor": "deepseek"
- },
- "t_007_crud": {
- "hash": "a4ddc223e2035781ae7e86c8c38c0d78212e9a0c4149c6535625b4033878e3a4",
- "task": "t_007_crud",
- "lang": "csharp",
- "golden_published": true,
- "model_name": "DeepSeek Chat",
- "total_tests": 4,
- "passed_tests": 2,
- "llm_output": "using SpacetimeDB;\n\npublic static partial class Module\n{\n [SpacetimeDB.Table(Accessor = \"User\", Public = true)]\n public partial struct User\n {\n [SpacetimeDB.PrimaryKey]\n public int Id;\n public string Name;\n public int Age;\n public bool Active;\n }\n\n [SpacetimeDB.Reducer]\n public static void Crud(ReducerContext ctx)\n {\n ctx.Db.User.Insert(new User { Id = 1, Name = \"Alice\", Age = 30, Active = true });\n ctx.Db.User.Insert(new User { Id = 2, Name = \"Bob\", Age = 22, Active = false });\n ctx.Db.User.Id.Update(new User { Id = 1, Name = \"Alice2\", Age = 31, Active = false });\n ctx.Db.User.Id.Delete(2);\n }\n}",
- "category": "basics",
- "route_api_model": "deepseek-chat",
- "scorer_details": {
- "crud_row_id2_deleted": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "actual": 0,
- "expected": 0,
- "sql": "SELECT COUNT(*) AS n FROM User WHERE Id=2"
- }
- },
- "schema_parity": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "reducers_diff": null,
- "reducers_equal": true,
- "tables_diff": null,
- "tables_equal": true
- }
- },
- "crud_row_id1_parity": {
- "pass": false,
- "partial": 0.0,
- "notes": {
- "error": "spacetime call failed:\nWARNING: This command is UNSTABLE and subject to breaking changes.\n\nError: Response text: Value with given unique identifier already exists\n\nCaused by:\n HTTP status server error (530 ) for url (http://127.0.0.1:56242/v1/database/c200bae1f2bdd27271e560dbfda8814cfd2302b7e12fa45c11457037728b852a/call/crud)\n",
- "phase": "call_reducer_golden"
- }
- },
- "crud_total_count_one": {
- "pass": false,
- "partial": 0.0,
- "notes": {
- "actual": 0,
- "expected": 1,
- "sql": "SELECT COUNT(*) AS n FROM User"
- }
- }
- },
- "vendor": "deepseek"
- },
- "t_008_index_lookup": {
- "hash": "a4ddc223e2035781ae7e86c8c38c0d78212e9a0c4149c6535625b4033878e3a4",
- "task": "t_008_index_lookup",
- "lang": "csharp",
- "golden_published": true,
- "model_name": "DeepSeek Chat",
- "total_tests": 3,
- "passed_tests": 3,
- "category": "basics",
- "route_api_model": "deepseek-chat",
- "scorer_details": {
- "index_lookup_projection_parity": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "args": [
- 1
- ],
- "golden_out": "Id | Name ----+--------- 1 | \"Alice\"",
- "llm_out": "Id | Name ----+--------- 1 | \"Alice\"",
- "query": "SELECT Id, Name FROM Result WHERE Id=1",
- "reducer": "lookup_user_name"
- }
- },
- "schema_parity": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "reducers_diff": null,
- "reducers_equal": true,
- "tables_diff": null,
- "tables_equal": true
- }
- },
- "seed_user_row": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "sql": "INSERT INTO User(Id, Name, Age, Active) VALUES (1, 'Alice', 30, true)"
- }
- }
- },
- "vendor": "deepseek"
- },
- "t_009_init": {
- "hash": "a4ddc223e2035781ae7e86c8c38c0d78212e9a0c4149c6535625b4033878e3a4",
- "task": "t_009_init",
- "lang": "csharp",
- "golden_published": true,
- "model_name": "DeepSeek Chat",
- "total_tests": 4,
- "passed_tests": 4,
- "category": "basics",
- "route_api_model": "deepseek-chat",
- "scorer_details": {
- "init_seed_alice": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "actual": 1,
- "expected": 1,
- "sql": "SELECT COUNT(*) AS n FROM User WHERE Id=1 AND Name='Alice' AND Age=30 AND Active=true"
- }
- },
- "init_total_two": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "actual": 2,
- "expected": 2,
- "sql": "SELECT COUNT(*) AS n FROM User"
- }
- },
- "schema_parity": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "reducers_diff": null,
- "reducers_equal": true,
- "tables_diff": null,
- "tables_equal": true
- }
- },
- "init_seed_bob": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "actual": 1,
- "expected": 1,
- "sql": "SELECT COUNT(*) AS n FROM User WHERE Id=2 AND Name='Bob' AND Age=22 AND Active=false"
- }
- }
- },
- "vendor": "deepseek"
- },
- "t_010_connect": {
- "hash": "a4ddc223e2035781ae7e86c8c38c0d78212e9a0c4149c6535625b4033878e3a4",
- "task": "t_010_connect",
- "lang": "csharp",
- "golden_published": true,
- "model_name": "DeepSeek Chat",
- "total_tests": 1,
- "passed_tests": 1,
- "category": "basics",
- "route_api_model": "deepseek-chat",
- "scorer_details": {
- "schema_parity": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "reducers_diff": null,
- "reducers_equal": true,
- "tables_diff": null,
- "tables_equal": true
- }
- }
- },
- "vendor": "deepseek"
- },
- "t_011_helper_function": {
- "hash": "a4ddc223e2035781ae7e86c8c38c0d78212e9a0c4149c6535625b4033878e3a4",
- "task": "t_011_helper_function",
- "lang": "csharp",
- "golden_published": true,
- "model_name": "DeepSeek Chat",
- "total_tests": 3,
- "passed_tests": 3,
- "category": "basics",
- "route_api_model": "deepseek-chat",
- "scorer_details": {
- "helper_func_sum_abs": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "actual": 1,
- "expected": 1,
- "sql": "SELECT COUNT(*) AS n FROM Result WHERE Id=1 AND Sum=5"
- }
- },
- "schema_parity": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "reducers_diff": null,
- "reducers_equal": true,
- "tables_diff": null,
- "tables_equal": true
- }
- },
- "helper_func_sum_parity": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "args": [
- 1,
- 2,
- 3
- ],
- "golden_out": "Id | Sum ----+----- 1 | 5",
- "llm_out": "Id | Sum ----+----- 1 | 5",
- "query": "SELECT Id, Sum FROM Result WHERE Id=1",
- "reducer": "compute_sum"
- }
- }
- },
- "vendor": "deepseek"
- },
- "t_012_spacetime_product_type": {
- "hash": "a4ddc223e2035781ae7e86c8c38c0d78212e9a0c4149c6535625b4033878e3a4",
- "task": "t_012_spacetime_product_type",
- "lang": "csharp",
- "golden_published": true,
- "model_name": "DeepSeek Chat",
- "total_tests": 3,
- "passed_tests": 3,
- "category": "schema",
- "route_api_model": "deepseek-chat",
- "scorer_details": {
- "product_type_row_count": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "actual": 1,
- "expected": 1,
- "sql": "SELECT COUNT(*) AS n FROM Result WHERE Id=1"
- }
- },
- "schema_parity": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "reducers_diff": null,
- "reducers_equal": true,
- "tables_diff": null,
- "tables_equal": true
- }
- },
- "product_type_row_parity": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "args": [
- 1,
- 2,
- 3
- ],
- "golden_out": "Id | Value ----+----------------------- 1 | (left = 2, right = 3)",
- "llm_out": "Id | Value ----+----------------------- 1 | (left = 2, right = 3)",
- "query": "SELECT Id, Value FROM Result WHERE Id=1",
- "reducer": "set_score"
- }
- }
- },
- "vendor": "deepseek"
- },
- "t_013_spacetime_sum_type": {
- "hash": "a4ddc223e2035781ae7e86c8c38c0d78212e9a0c4149c6535625b4033878e3a4",
- "task": "t_013_spacetime_sum_type",
- "lang": "csharp",
- "golden_published": true,
- "model_name": "DeepSeek Chat",
- "total_tests": 3,
- "passed_tests": 2,
- "llm_output": "using SpacetimeDB;\n\npublic static partial class Module\n{\n [SpacetimeDB.Type]\n public partial struct Circle\n {\n public int Radius;\n }\n\n [SpacetimeDB.Type]\n public partial struct Rectangle\n {\n public int Width;\n public int Height;\n }\n\n [SpacetimeDB.Type]\n public partial struct Shape\n {\n public Circle? Circle;\n public Rectangle? Rectangle;\n }\n\n [SpacetimeDB.Table(Accessor = \"Result\")]\n public partial struct Result\n {\n [SpacetimeDB.PrimaryKey]\n public int Id;\n public Shape Value;\n }\n\n [SpacetimeDB.Reducer]\n public static void SetCircle(ReducerContext ctx, int id, int radius)\n {\n ctx.Db.Result.Insert(new Result\n {\n Id = id,\n Value = new Shape { Circle = new Circle { Radius = radius } }\n });\n }\n}",
- "category": "schema",
- "route_api_model": "deepseek-chat",
- "scorer_details": {
- "schema_parity": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "reducers_diff": null,
- "reducers_equal": true,
- "tables_diff": null,
- "tables_equal": true
- }
- },
- "sum_type_row_parity": {
- "pass": false,
- "partial": 0.0,
- "notes": {
- "args": [
- 1,
- 10
- ],
- "golden_out": "Id | Value ----+-------------------------- 1 | (circle = (radius = 10))",
- "llm_out": "Id | Value ----+------------------------------------------------------------ 1 | (circle = (some = (radius = 10)), rectangle = (none = ()))",
- "query": "SELECT Id, Value FROM Result WHERE Id=1",
- "reducer": "set_circle"
- }
- },
- "sum_type_row_count": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "actual": 1,
- "expected": 1,
- "sql": "SELECT COUNT(*) AS n FROM Result WHERE Id=1"
- }
- }
- },
- "vendor": "deepseek"
- },
- "t_014_elementary_columns": {
- "hash": "a4ddc223e2035781ae7e86c8c38c0d78212e9a0c4149c6535625b4033878e3a4",
- "task": "t_014_elementary_columns",
- "lang": "csharp",
- "golden_published": true,
- "model_name": "DeepSeek Chat",
- "total_tests": 3,
- "passed_tests": 3,
- "category": "schema",
- "route_api_model": "deepseek-chat",
- "scorer_details": {
- "schema_parity": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "reducers_diff": null,
- "reducers_equal": true,
- "tables_diff": null,
- "tables_equal": true
- }
- },
- "elementary_columns_row_parity": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "args": [],
- "golden_out": "Id | Count | Total | Price | Ratio | Active | Name ----+-------+------------+-------+-------+--------+--------- 1 | 2 | 3000000000 | 1.5 | 2.25 | true | \"Alice\"",
- "llm_out": "Id | Count | Total | Price | Ratio | Active | Name ----+-------+------------+-------+-------+--------+--------- 1 | 2 | 3000000000 | 1.5 | 2.25 | true | \"Alice\"",
- "query": "SELECT Id, Count, Total, Price, Ratio, Active, Name FROM Primitive WHERE Id=1",
- "reducer": "seed"
- }
- },
- "elementary_columns_row_count": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "actual": 1,
- "expected": 1,
- "sql": "SELECT COUNT(*) AS n FROM Primitive WHERE Id=1"
- }
- }
- },
- "vendor": "deepseek"
- },
- "t_015_product_type_columns": {
- "hash": "a4ddc223e2035781ae7e86c8c38c0d78212e9a0c4149c6535625b4033878e3a4",
- "task": "t_015_product_type_columns",
- "lang": "csharp",
- "golden_published": true,
- "model_name": "DeepSeek Chat",
- "total_tests": 3,
- "passed_tests": 3,
- "category": "schema",
- "route_api_model": "deepseek-chat",
- "scorer_details": {
- "product_type_columns_row_parity": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "args": [],
- "golden_out": "Id | Home | Work | Pos ----+----------------------------------+-----------------------------------+---------------- 1 | (street = \"1 Main\", zip = 11111) | (street = \"2 Broad\", zip = 22222) | (x = 7, y = 9)",
- "llm_out": "Id | Home | Work | Pos ----+----------------------------------+-----------------------------------+---------------- 1 | (street = \"1 Main\", zip = 11111) | (street = \"2 Broad\", zip = 22222) | (x = 7, y = 9)",
- "query": "SELECT Id, Home, Work, Pos FROM Profile WHERE Id=1",
- "reducer": "seed"
- }
- },
- "schema_parity": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "reducers_diff": null,
- "reducers_equal": true,
- "tables_diff": null,
- "tables_equal": true
- }
- },
- "product_type_columns_row_count": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "actual": 1,
- "expected": 1,
- "sql": "SELECT COUNT(*) AS n FROM Profile WHERE Id=1"
- }
- }
- },
- "vendor": "deepseek"
- },
- "t_016_sum_type_columns": {
- "hash": "a4ddc223e2035781ae7e86c8c38c0d78212e9a0c4149c6535625b4033878e3a4",
- "task": "t_016_sum_type_columns",
- "lang": "csharp",
- "golden_published": true,
- "model_name": "DeepSeek Chat",
- "total_tests": 3,
- "passed_tests": 2,
- "llm_output": "using SpacetimeDB;\n\npublic static partial class Module\n{\n [SpacetimeDB.Type]\n public partial struct Circle\n {\n public int Radius;\n }\n\n [SpacetimeDB.Type]\n public partial struct Rectangle\n {\n public int Width;\n public int Height;\n }\n\n [SpacetimeDB.Type]\n public partial struct Shape\n {\n public Circle? Circle;\n public Rectangle? Rectangle;\n }\n\n [SpacetimeDB.Table(Accessor = \"Drawing\")]\n public partial struct Drawing\n {\n [SpacetimeDB.PrimaryKey]\n public int Id;\n public Shape A;\n public Shape B;\n }\n\n [SpacetimeDB.Reducer]\n public static void Seed(ReducerContext ctx)\n {\n ctx.Db.Drawing.Insert(new Drawing\n {\n Id = 1,\n A = new Shape { Circle = new Circle { Radius = 10 } },\n B = new Shape { Rectangle = new Rectangle { Width = 4, Height = 6 } }\n });\n }\n}",
- "category": "schema",
- "route_api_model": "deepseek-chat",
- "scorer_details": {
- "sum_type_columns_row_parity": {
- "pass": false,
- "partial": 0.0,
- "notes": {
- "args": [],
- "golden_out": "Id | A | B ----+--------------------------+--------------------------------------- 1 | (circle = (radius = 10)) | (rectangle = (width = 4, height = 6))",
- "llm_out": "Id | A | B ----+------------------------------------------------------------+---------------------------------------------------------------------- 1 | (circle = (some = (radius = 10)), rectangle = (none = ())) | (circle = (none = ()), rectangle = (some = (width = 4, height = 6)))",
- "query": "SELECT Id, A, B FROM Drawing WHERE Id=1",
- "reducer": "seed"
- }
- },
- "schema_parity": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "reducers_diff": null,
- "reducers_equal": true,
- "tables_diff": null,
- "tables_equal": true
- }
- },
- "sum_type_columns_row_count": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "actual": 1,
- "expected": 1,
- "sql": "SELECT COUNT(*) AS n FROM Drawing WHERE Id=1"
- }
- }
- },
- "vendor": "deepseek"
- },
- "t_017_scheduled_columns": {
- "hash": "a4ddc223e2035781ae7e86c8c38c0d78212e9a0c4149c6535625b4033878e3a4",
- "task": "t_017_scheduled_columns",
- "lang": "csharp",
- "golden_published": true,
- "model_name": "DeepSeek Chat",
- "total_tests": 2,
- "passed_tests": 2,
- "category": "schema",
- "route_api_model": "deepseek-chat",
- "scorer_details": {
- "schema_parity": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "reducers_diff": null,
- "reducers_equal": true,
- "tables_diff": null,
- "tables_equal": true
- }
- },
- "scheduled_seeded_one_row": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "actual": 1,
- "expected": 1,
- "sql": "SELECT COUNT(*) AS n FROM TickTimer WHERE ScheduledId>=0"
- }
- }
- },
- "vendor": "deepseek"
- },
- "t_018_constraints": {
- "hash": "a4ddc223e2035781ae7e86c8c38c0d78212e9a0c4149c6535625b4033878e3a4",
- "task": "t_018_constraints",
- "lang": "csharp",
- "golden_published": true,
- "model_name": "DeepSeek Chat",
- "total_tests": 3,
- "passed_tests": 3,
- "category": "schema",
- "route_api_model": "deepseek-chat",
- "scorer_details": {
- "schema_parity": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "reducers_diff": null,
- "reducers_equal": true,
- "tables_diff": null,
- "tables_equal": true
- }
- },
- "constraints_row_parity_after_seed": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "args": [],
- "golden_out": "Id | Email | Name ----+-----------------+--------- 1 | \"a@example.com\" | \"Alice\"",
- "llm_out": "Id | Email | Name ----+-----------------+--------- 1 | \"a@example.com\" | \"Alice\"",
- "query": "SELECT Id, Email, Name FROM Account WHERE Id=1",
- "reducer": "seed"
- }
- },
- "constraints_seed_two_rows": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "actual": 1,
- "expected": 1,
- "sql": "SELECT COUNT(*) AS n FROM Account WHERE Id=2"
- }
- }
- },
- "vendor": "deepseek"
- },
- "t_019_many_to_many": {
- "hash": "a4ddc223e2035781ae7e86c8c38c0d78212e9a0c4149c6535625b4033878e3a4",
- "task": "t_019_many_to_many",
- "lang": "csharp",
- "golden_published": true,
- "model_name": "DeepSeek Chat",
- "total_tests": 5,
- "passed_tests": 5,
- "category": "schema",
- "route_api_model": "deepseek-chat",
- "scorer_details": {
- "m2m_has_1_20": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "actual": 1,
- "expected": 1,
- "sql": "SELECT COUNT(*) AS n FROM Membership WHERE UserId=1 AND GroupId=20"
- }
- },
- "m2m_has_2_20": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "actual": 1,
- "expected": 1,
- "sql": "SELECT COUNT(*) AS n FROM Membership WHERE UserId=2 AND GroupId=20"
- }
- },
- "schema_parity": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "reducers_diff": null,
- "reducers_equal": true,
- "tables_diff": null,
- "tables_equal": true
- }
- },
- "m2m_has_1_10": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "actual": 1,
- "expected": 1,
- "sql": "SELECT COUNT(*) AS n FROM Membership WHERE UserId=1 AND GroupId=10"
- }
- },
- "memberships_three_rows": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "actual": 3,
- "expected": 3,
- "sql": "SELECT COUNT(*) AS n FROM Membership"
- }
- }
- },
- "vendor": "deepseek"
- },
- "t_020_ecs": {
- "hash": "a4ddc223e2035781ae7e86c8c38c0d78212e9a0c4149c6535625b4033878e3a4",
- "task": "t_020_ecs",
- "lang": "csharp",
- "golden_published": true,
- "model_name": "DeepSeek Chat",
- "total_tests": 5,
- "passed_tests": 2,
- "llm_output": "using SpacetimeDB;\n\npublic static partial class Module\n{\n [SpacetimeDB.Table(Accessor = \"Entity\", Public = true)]\n public partial struct Entity\n {\n [SpacetimeDB.PrimaryKey]\n public int Id;\n }\n\n [SpacetimeDB.Table(Accessor = \"Position\", Public = true)]\n public partial struct Position\n {\n [SpacetimeDB.PrimaryKey]\n public int EntityId;\n public int X;\n public int Y;\n }\n\n [SpacetimeDB.Table(Accessor = \"Velocity\", Public = true)]\n public partial struct Velocity\n {\n [SpacetimeDB.PrimaryKey]\n public int EntityId;\n public int VX;\n public int VY;\n }\n\n [SpacetimeDB.Table(Accessor = \"NextPosition\", Public = true)]\n public partial struct NextPosition\n {\n [SpacetimeDB.PrimaryKey]\n public int EntityId;\n public int X;\n public int Y;\n }\n\n [SpacetimeDB.Reducer]\n public static void Seed(ReducerContext ctx)\n {\n ctx.Db.Entity.Insert(new Entity { Id = 1 });\n ctx.Db.Position.Insert(new Position { EntityId = 1, X = 0, Y = 0 });\n ctx.Db.Velocity.Insert(new Velocity { EntityId = 1, VX = 1, VY = 0 });\n\n ctx.Db.Entity.Insert(new Entity { Id = 2 });\n ctx.Db.Position.Insert(new Position { EntityId = 2, X = 10, Y = 0 });\n ctx.Db.Velocity.Insert(new Velocity { EntityId = 2, VX = -2, VY = 3 });\n }\n\n [SpacetimeDB.Reducer]\n public static void Step(ReducerContext ctx)\n {\n foreach (var pos in ctx.Db.Position.Iter())\n {\n var vel = ctx.Db.Velocity.EntityId.Find(pos.EntityId);\n if (vel.HasValue)\n {\n var nextPos = new NextPosition\n {\n EntityId = pos.EntityId,\n X = pos.X + vel.Value.VX,\n Y = pos.Y + vel.Value.VY\n };\n ctx.Db.NextPosition.EntityId.Update(nextPos);\n }\n }\n }\n}",
- "category": "schema",
- "route_api_model": "deepseek-chat",
- "scorer_details": {
- "ecs_next_pos_entity2": {
- "pass": false,
- "partial": 0.0,
- "notes": {
- "error": "spacetime call failed:\nWARNING: This command is UNSTABLE and subject to breaking changes.\n\nError: Response text: The row was not found, e.g., in an update call\n\nCaused by:\n HTTP status server error (530 ) for url (http://127.0.0.1:56242/v1/database/c20037a8f99a52ad0d30979e9235082416df0a4c9ac89afa9c7c4d3bf295770b/call/step)\n",
- "phase": "call_reducer"
- }
- },
- "ecs_next_pos_entity1": {
- "pass": false,
- "partial": 0.0,
- "notes": {
- "error": "spacetime call failed:\nWARNING: This command is UNSTABLE and subject to breaking changes.\n\nError: Response text: The row was not found, e.g., in an update call\n\nCaused by:\n HTTP status server error (530 ) for url (http://127.0.0.1:56242/v1/database/c20037a8f99a52ad0d30979e9235082416df0a4c9ac89afa9c7c4d3bf295770b/call/step)\n",
- "phase": "call_reducer"
- }
- },
- "ecs_seed_position_count": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "actual": 2,
- "expected": 2,
- "sql": "SELECT COUNT(*) AS n FROM Position"
- }
- },
- "schema_parity": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "reducers_diff": null,
- "reducers_equal": true,
- "tables_diff": null,
- "tables_equal": true
- }
- },
- "ecs_step_next_position_count": {
- "pass": false,
- "partial": 0.0,
- "notes": {
- "error": "spacetime call failed:\nWARNING: This command is UNSTABLE and subject to breaking changes.\n\nError: Response text: The row was not found, e.g., in an update call\n\nCaused by:\n HTTP status server error (530 ) for url (http://127.0.0.1:56242/v1/database/c20037a8f99a52ad0d30979e9235082416df0a4c9ac89afa9c7c4d3bf295770b/call/step)\n",
- "phase": "call_reducer"
- }
- }
- },
- "vendor": "deepseek"
- },
- "t_021_multi_column_index": {
- "hash": "a4ddc223e2035781ae7e86c8c38c0d78212e9a0c4149c6535625b4033878e3a4",
- "task": "t_021_multi_column_index",
- "lang": "csharp",
- "golden_published": true,
- "model_name": "DeepSeek Chat",
- "total_tests": 4,
- "passed_tests": 4,
- "category": "schema",
- "route_api_model": "deepseek-chat",
- "scorer_details": {
- "mcindex_seed_count": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "actual": 3,
- "expected": 3,
- "sql": "SELECT COUNT(*) AS n FROM Log"
- }
- },
- "mcindex_lookup_u7_d1": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "actual": 1,
- "expected": 1,
- "sql": "SELECT COUNT(*) AS n FROM Log WHERE UserId=7 AND Day=1"
- }
- },
- "schema_parity": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "reducers_diff": null,
- "reducers_equal": true,
- "tables_diff": null,
- "tables_equal": true
- }
- },
- "mcindex_lookup_u7_d2": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "actual": 1,
- "expected": 1,
- "sql": "SELECT COUNT(*) AS n FROM Log WHERE UserId=7 AND Day=2"
- }
- }
- },
- "vendor": "deepseek"
- }
- }
- },
- {
- "name": "DeepSeek Reasoner",
- "route_api_model": "deepseek-reasoner",
- "tasks": {
- "t_000_empty_reducers": {
- "hash": "a4ddc223e2035781ae7e86c8c38c0d78212e9a0c4149c6535625b4033878e3a4",
- "task": "t_000_empty_reducers",
- "lang": "csharp",
- "golden_published": true,
- "model_name": "DeepSeek Reasoner",
- "total_tests": 1,
- "passed_tests": 1,
- "category": "basics",
- "route_api_model": "deepseek-reasoner",
- "scorer_details": {
- "schema_parity": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "reducers_diff": null,
- "reducers_equal": true,
- "tables_diff": null,
- "tables_equal": true
- }
- }
- },
- "vendor": "deepseek"
- },
- "t_001_basic_tables": {
- "hash": "a4ddc223e2035781ae7e86c8c38c0d78212e9a0c4149c6535625b4033878e3a4",
- "task": "t_001_basic_tables",
- "lang": "csharp",
- "golden_published": true,
- "model_name": "DeepSeek Reasoner",
- "total_tests": 1,
- "passed_tests": 1,
- "category": "basics",
- "route_api_model": "deepseek-reasoner",
- "scorer_details": {
- "schema_parity": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "reducers_diff": null,
- "reducers_equal": true,
- "tables_diff": null,
- "tables_equal": true
- }
- }
- },
- "vendor": "deepseek"
- },
- "t_002_scheduled_table": {
- "hash": "a4ddc223e2035781ae7e86c8c38c0d78212e9a0c4149c6535625b4033878e3a4",
- "task": "t_002_scheduled_table",
- "lang": "csharp",
- "golden_published": true,
- "model_name": "DeepSeek Reasoner",
- "total_tests": 1,
- "passed_tests": 1,
- "category": "basics",
- "route_api_model": "deepseek-reasoner",
- "scorer_details": {
- "schema_parity": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "reducers_diff": null,
- "reducers_equal": true,
- "tables_diff": null,
- "tables_equal": true
- }
- }
- },
- "vendor": "deepseek"
- },
- "t_003_struct_in_table": {
- "hash": "a4ddc223e2035781ae7e86c8c38c0d78212e9a0c4149c6535625b4033878e3a4",
- "task": "t_003_struct_in_table",
- "lang": "csharp",
- "golden_published": true,
- "model_name": "DeepSeek Reasoner",
- "total_tests": 1,
- "passed_tests": 1,
- "category": "basics",
- "route_api_model": "deepseek-reasoner",
- "scorer_details": {
- "schema_parity": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "reducers_diff": null,
- "reducers_equal": true,
- "tables_diff": null,
- "tables_equal": true
- }
- }
- },
- "vendor": "deepseek"
- },
- "t_004_insert": {
- "hash": "a4ddc223e2035781ae7e86c8c38c0d78212e9a0c4149c6535625b4033878e3a4",
- "task": "t_004_insert",
- "lang": "csharp",
- "golden_published": true,
- "model_name": "DeepSeek Reasoner",
- "total_tests": 2,
- "passed_tests": 2,
- "category": "basics",
- "route_api_model": "deepseek-reasoner",
- "scorer_details": {
- "schema_parity": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "reducers_diff": null,
- "reducers_equal": true,
- "tables_diff": null,
- "tables_equal": true
- }
- },
- "data_parity_insert_user": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "args": [
- 1,
- "Alice",
- 30,
- true
- ],
- "golden_out": "Id | Name | Age | Active ----+---------+-----+-------- 1 | \"Alice\" | 30 | true",
- "llm_out": "Id | Name | Age | Active ----+---------+-----+-------- 1 | \"Alice\" | 30 | true",
- "query": "SELECT Id, Name, Age, Active FROM User WHERE Id=1",
- "reducer": "insert_user"
- }
- }
- },
- "vendor": "deepseek"
- },
- "t_005_update": {
- "hash": "a4ddc223e2035781ae7e86c8c38c0d78212e9a0c4149c6535625b4033878e3a4",
- "task": "t_005_update",
- "lang": "csharp",
- "golden_published": true,
- "model_name": "DeepSeek Reasoner",
- "total_tests": 3,
- "passed_tests": 1,
- "llm_output": "using SpacetimeDB;\n\npublic static partial class Module\n{\n [SpacetimeDB.Table(Accessor = \"User\")]\n public partial struct User\n {\n [SpacetimeDB.PrimaryKey]\n public int Id;\n public string Name;\n public int Age;\n public bool Active;\n }\n\n [SpacetimeDB.Reducer]\n public static void UpdateUser(ReducerContext ctx, int id, string name, int age, bool active)\n {\n var existing = ctx.Db.User.Id.Find(id);\n if (existing.HasValue)\n {\n ctx.Db.User.Id.Update(new User { Id = id, Name = name, Age = age, Active = active });\n }\n }\n}",
- "category": "basics",
- "route_api_model": "deepseek-reasoner",
- "scorer_details": {
- "data_parity_update_user": {
- "pass": false,
- "partial": 0.0,
- "notes": {
- "args": [
- 1,
- "Alice2",
- 31,
- false
- ],
- "golden_out": "Id | Name | Age | Active ----+----------+-----+-------- 1 | \"Alice2\" | 31 | false",
- "llm_out": "Id | Name | Age | Active ----+------+-----+--------",
- "query": "SELECT Id, Name, Age, Active FROM User WHERE Id=1",
- "reducer": "update_user"
- }
- },
- "schema_parity": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "reducers_diff": null,
- "reducers_equal": true,
- "tables_diff": null,
- "tables_equal": true
- }
- },
- "seed_users_row": {
- "pass": false,
- "partial": 0.0,
- "notes": {
- "error": "spacetime sql failed:\nWARNING: This command is UNSTABLE and subject to breaking changes.\n\nError: IndexError: Unique constraint violation 'user_id_idx_btree' in table 'user': column(s): '[\"id\"]' value: 1\n\nCaused by:\n HTTP status client error (400 Bad Request) for url (http://127.0.0.1:56242/v1/database/c2003fa012003c49d80084f437bb713f6a093beeaea5587a135d5ff1731afde4/sql)\n",
- "phase": "sql_golden",
- "sql": "INSERT INTO User(Id, Name, Age, Active) VALUES (1, 'Alice', 30, true)"
- }
- }
- },
- "vendor": "deepseek"
- },
- "t_006_delete": {
- "hash": "a4ddc223e2035781ae7e86c8c38c0d78212e9a0c4149c6535625b4033878e3a4",
- "task": "t_006_delete",
- "lang": "csharp",
- "golden_published": true,
- "model_name": "DeepSeek Reasoner",
- "total_tests": 3,
- "passed_tests": 3,
- "category": "basics",
- "route_api_model": "deepseek-reasoner",
- "scorer_details": {
- "schema_parity": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "reducers_diff": null,
- "reducers_equal": true,
- "tables_diff": null,
- "tables_equal": true
- }
- },
- "seed_users_row": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "sql": "INSERT INTO User(Id, Name, Age, Active) VALUES (1, 'Alice', 30, true)"
- }
- },
- "delete_user_count_zero": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "actual": 0,
- "expected": 0,
- "sql": "SELECT COUNT(*) AS n FROM User WHERE Id=1"
- }
- }
- },
- "vendor": "deepseek"
- },
- "t_007_crud": {
- "hash": "a4ddc223e2035781ae7e86c8c38c0d78212e9a0c4149c6535625b4033878e3a4",
- "task": "t_007_crud",
- "lang": "csharp",
- "golden_published": true,
- "model_name": "DeepSeek Reasoner",
- "total_tests": 4,
- "passed_tests": 2,
- "llm_output": "using SpacetimeDB;\n\npublic static partial class Module\n{\n [SpacetimeDB.Table(Accessor = \"User\", Public = true)]\n public partial struct User\n {\n [SpacetimeDB.PrimaryKey]\n public int Id;\n public string Name;\n public int Age;\n public bool Active;\n }\n\n [SpacetimeDB.Reducer]\n public static void Crud(ReducerContext ctx)\n {\n ctx.Db.User.Insert(new User { Id = 1, Name = \"Alice\", Age = 30, Active = true });\n ctx.Db.User.Insert(new User { Id = 2, Name = \"Bob\", Age = 22, Active = false });\n ctx.Db.User.Id.Update(new User { Id = 1, Name = \"Alice2\", Age = 31, Active = false });\n ctx.Db.User.Id.Delete(2);\n }\n}",
- "category": "basics",
- "route_api_model": "deepseek-reasoner",
- "scorer_details": {
- "crud_row_id2_deleted": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "actual": 0,
- "expected": 0,
- "sql": "SELECT COUNT(*) AS n FROM User WHERE Id=2"
- }
- },
- "schema_parity": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "reducers_diff": null,
- "reducers_equal": true,
- "tables_diff": null,
- "tables_equal": true
- }
- },
- "crud_row_id1_parity": {
- "pass": false,
- "partial": 0.0,
- "notes": {
- "error": "spacetime call failed:\nWARNING: This command is UNSTABLE and subject to breaking changes.\n\nError: Response text: Value with given unique identifier already exists\n\nCaused by:\n HTTP status server error (530 ) for url (http://127.0.0.1:56242/v1/database/c200bae1f2bdd27271e560dbfda8814cfd2302b7e12fa45c11457037728b852a/call/crud)\n",
- "phase": "call_reducer_golden"
- }
- },
- "crud_total_count_one": {
- "pass": false,
- "partial": 0.0,
- "notes": {
- "actual": 0,
- "expected": 1,
- "sql": "SELECT COUNT(*) AS n FROM User"
- }
- }
- },
- "vendor": "deepseek"
- },
- "t_008_index_lookup": {
- "hash": "a4ddc223e2035781ae7e86c8c38c0d78212e9a0c4149c6535625b4033878e3a4",
- "task": "t_008_index_lookup",
- "lang": "csharp",
- "golden_published": true,
- "model_name": "DeepSeek Reasoner",
- "total_tests": 3,
- "passed_tests": 3,
- "category": "basics",
- "route_api_model": "deepseek-reasoner",
- "scorer_details": {
- "index_lookup_projection_parity": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "args": [
- 1
- ],
- "golden_out": "Id | Name ----+--------- 1 | \"Alice\"",
- "llm_out": "Id | Name ----+--------- 1 | \"Alice\"",
- "query": "SELECT Id, Name FROM Result WHERE Id=1",
- "reducer": "lookup_user_name"
- }
- },
- "schema_parity": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "reducers_diff": null,
- "reducers_equal": true,
- "tables_diff": null,
- "tables_equal": true
- }
- },
- "seed_user_row": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "sql": "INSERT INTO User(Id, Name, Age, Active) VALUES (1, 'Alice', 30, true)"
- }
- }
- },
- "vendor": "deepseek"
- },
- "t_009_init": {
- "hash": "a4ddc223e2035781ae7e86c8c38c0d78212e9a0c4149c6535625b4033878e3a4",
- "task": "t_009_init",
- "lang": "csharp",
- "golden_published": true,
- "model_name": "DeepSeek Reasoner",
- "total_tests": 4,
- "passed_tests": 3,
- "llm_output": "using SpacetimeDB;\n\n[SpacetimeDB.Table(Name = \"User\", Public = true)]\npublic partial struct User\n{\n [SpacetimeDB.PrimaryKey]\n public int Id;\n public string Name;\n public int Age;\n public bool Active;\n}\n\npublic static partial class Module\n{\n [SpacetimeDB.Reducer(ReducerKind.Init)]\n public static void Init(ReducerContext ctx)\n {\n ctx.Db.User.Insert(new User { Id = 1, Name = \"Alice\", Age = 30, Active = true });\n ctx.Db.User.Insert(new User { Id = 2, Name = \"Bob\", Age = 22, Active = false });\n }\n}",
- "category": "basics",
- "route_api_model": "deepseek-reasoner",
- "scorer_details": {
- "init_seed_alice": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "actual": 1,
- "expected": 1,
- "sql": "SELECT COUNT(*) AS n FROM User WHERE Id=1 AND Name='Alice' AND Age=30 AND Active=true"
- }
- },
- "init_total_two": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "actual": 2,
- "expected": 2,
- "sql": "SELECT COUNT(*) AS n FROM User"
- }
- },
- "schema_parity": {
- "pass": false,
- "partial": 0.0,
- "notes": {
- "reducers_diff": null,
- "reducers_equal": true,
- "tables_diff": {
- "changed": {},
- "only_golden": {
- "user": {}
- },
- "only_llm": {
- "User": {}
- }
- },
- "tables_equal": false
- }
- },
- "init_seed_bob": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "actual": 1,
- "expected": 1,
- "sql": "SELECT COUNT(*) AS n FROM User WHERE Id=2 AND Name='Bob' AND Age=22 AND Active=false"
- }
- }
- },
- "vendor": "deepseek"
- },
- "t_010_connect": {
- "hash": "a4ddc223e2035781ae7e86c8c38c0d78212e9a0c4149c6535625b4033878e3a4",
- "task": "t_010_connect",
- "lang": "csharp",
- "golden_published": true,
- "model_name": "DeepSeek Reasoner",
- "total_tests": 1,
- "passed_tests": 1,
- "category": "basics",
- "route_api_model": "deepseek-reasoner",
- "scorer_details": {
- "schema_parity": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "reducers_diff": null,
- "reducers_equal": true,
- "tables_diff": null,
- "tables_equal": true
- }
- }
- },
- "vendor": "deepseek"
- },
- "t_011_helper_function": {
- "hash": "a4ddc223e2035781ae7e86c8c38c0d78212e9a0c4149c6535625b4033878e3a4",
- "task": "t_011_helper_function",
- "lang": "csharp",
- "golden_published": true,
- "model_name": "DeepSeek Reasoner",
- "total_tests": 3,
- "passed_tests": 3,
- "category": "basics",
- "route_api_model": "deepseek-reasoner",
- "scorer_details": {
- "helper_func_sum_parity": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "args": [
- 1,
- 2,
- 3
- ],
- "golden_out": "Id | Sum ----+----- 1 | 5",
- "llm_out": "Id | Sum ----+----- 1 | 5",
- "query": "SELECT Id, Sum FROM Result WHERE Id=1",
- "reducer": "compute_sum"
- }
- },
- "schema_parity": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "reducers_diff": null,
- "reducers_equal": true,
- "tables_diff": null,
- "tables_equal": true
- }
- },
- "helper_func_sum_abs": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "actual": 1,
- "expected": 1,
- "sql": "SELECT COUNT(*) AS n FROM Result WHERE Id=1 AND Sum=5"
- }
- }
- },
- "vendor": "deepseek"
- },
- "t_012_spacetime_product_type": {
- "hash": "a4ddc223e2035781ae7e86c8c38c0d78212e9a0c4149c6535625b4033878e3a4",
- "task": "t_012_spacetime_product_type",
- "lang": "csharp",
- "golden_published": true,
- "model_name": "DeepSeek Reasoner",
- "total_tests": 3,
- "passed_tests": 3,
- "category": "schema",
- "route_api_model": "deepseek-reasoner",
- "scorer_details": {
- "product_type_row_count": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "actual": 1,
- "expected": 1,
- "sql": "SELECT COUNT(*) AS n FROM Result WHERE Id=1"
- }
- },
- "schema_parity": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "reducers_diff": null,
- "reducers_equal": true,
- "tables_diff": null,
- "tables_equal": true
- }
- },
- "product_type_row_parity": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "args": [
- 1,
- 2,
- 3
- ],
- "golden_out": "Id | Value ----+----------------------- 1 | (left = 2, right = 3)",
- "llm_out": "Id | Value ----+----------------------- 1 | (left = 2, right = 3)",
- "query": "SELECT Id, Value FROM Result WHERE Id=1",
- "reducer": "set_score"
- }
- }
- },
- "vendor": "deepseek"
- },
- "t_013_spacetime_sum_type": {
- "hash": "a4ddc223e2035781ae7e86c8c38c0d78212e9a0c4149c6535625b4033878e3a4",
- "task": "t_013_spacetime_sum_type",
- "lang": "csharp",
- "golden_published": false,
- "model_name": "DeepSeek Reasoner",
- "total_tests": 3,
- "passed_tests": 0,
- "llm_output": "using SpacetimeDB;\n\n[SpacetimeDB.Type]\npublic abstract class Shape { }\n\n[SpacetimeDB.Type]\npublic class Circle : Shape\n{\n public int Radius;\n}\n\n[SpacetimeDB.Type]\npublic class Rectangle : Shape\n{\n public int Width;\n public int Height;\n}\n\n[SpacetimeDB.Table(Accessor = \"Result\")]\npublic partial struct Result\n{\n [SpacetimeDB.PrimaryKey]\n public int Id;\n public Shape Value;\n}\n\npublic static partial class Module\n{\n [SpacetimeDB.Reducer]\n public static void SetCircle(ReducerContext ctx, int id, int radius)\n {\n ctx.Db.Result.Insert(new Result\n {\n Id = id,\n Value = new Circle { Radius = radius }\n });\n }\n}",
- "category": "schema",
- "route_api_model": "deepseek-reasoner",
- "scorer_details": {
- "publish_error": {
- "pass": false,
- "partial": 0.0,
- "notes": {
- "error": "spacetime build (csharp) failed (exit=1)\n--- stderr ---\nError: command [\"dotnet\", \"publish\", \"-c\", \"Release\", \"-v\", \"quiet\"] exited with code 1\n\n--- stdout ---\nD:\\Development\\ClockworkLabs\\SpacetimeDB\\SpacetimeDBPrivate\\public\\target\\llm-runs\\schema\\t_013_spacetime_sum_type\\csharp\\server\\deepseek-reasoner\\llm\\Lib.cs(5,23): error CS0260: Missing partial modifier on declaration of type 'Shape'; another partial declaration of this type exists [D:\\Development\\ClockworkLabs\\SpacetimeDB\\SpacetimeDBPrivate\\public\\target\\llm-runs\\schema\\t_013_spacetime_sum_type\\csharp\\server\\deepseek-reasoner\\llm\\StdbModule.csproj]\r\nD:\\Development\\ClockworkLabs\\SpacetimeDB\\SpacetimeDBPrivate\\public\\target\\llm-runs\\schema\\t_013_spacetime_sum_type\\csharp\\server\\deepseek-reasoner\\llm\\Lib.cs(8,14): error CS0260: Missing partial modifier on declaration of type 'Circle'; another partial declaration of this type exists [D:\\Development\\ClockworkLabs\\SpacetimeDB\\SpacetimeDBPrivate\\public\\target\\llm-runs\\schema\\t_013_spacetime_sum_type\\csharp\\server\\deepseek-reasoner\\llm\\StdbModule.csproj]\r\nD:\\Development\\ClockworkLabs\\SpacetimeDB\\SpacetimeDBPrivate\\public\\target\\llm-runs\\schema\\t_013_spacetime_sum_type\\csharp\\server\\deepseek-reasoner\\llm\\Lib.cs(14,14): error CS0260: Missing partial modifier on declaration of type 'Rectangle'; another partial declaration of this type exists [D:\\Development\\ClockworkLabs\\SpacetimeDB\\SpacetimeDBPrivate\\public\\target\\llm-runs\\schema\\t_013_spacetime_sum_type\\csharp\\server\\deepseek-reasoner\\llm\\StdbModule.csproj]\r\nD:\\Development\\ClockworkLabs\\SpacetimeDB\\SpacetimeDBPrivate\\public\\target\\llm-runs\\schema\\t_013_spacetime_sum_type\\csharp\\server\\deepseek-reasoner\\llm\\obj\\Release\\net8.0\\wasi-wasm\\SpacetimeDB.BSATN.Codegen\\SpacetimeDB.Codegen.Type\\Circle.cs(6,17): warning CS0108: 'Circle.ReadFields(BinaryReader)' hides inherited member 'Shape.ReadFields(BinaryReader)'. Use the new keyword if hiding was intended. [D:\\Development\\ClockworkLabs\\SpacetimeDB\\SpacetimeDBPrivate\\public\\target\\llm-runs\\schema\\t_013_spacetime_sum_type\\csharp\\server\\deepseek-reasoner\\llm\\StdbModule.csproj]\r\nD:\\Development\\ClockworkLabs\\SpacetimeDB\\SpacetimeDBPrivate\\public\\target\\llm-runs\\schema\\t_013_spacetime_sum_type\\csharp\\server\\deepseek-reasoner\\llm\\obj\\Release\\net8.0\\wasi-wasm\\SpacetimeDB.BSATN.Codegen\\SpacetimeDB.Codegen.Type\\Circle.cs(10,17): warning CS0108: 'Circle.WriteFields(BinaryWriter)' hides inherited member 'Shape.WriteFields(BinaryWriter)'. Use the new keyword if hiding was intended. [D:\\Development\\ClockworkLabs\\SpacetimeDB\\SpacetimeDBPrivate\\public\\target\\llm-runs\\schema\\t_013_spacetime_sum_type\\csharp\\server\\deepseek-reasoner\\llm\\StdbModule.csproj]\r\nD:\\Development\\ClockworkLabs\\SpacetimeDB\\SpacetimeDBPrivate\\public\\target\\llm-runs\\schema\\t_013_spacetime_sum_type\\csharp\\server\\deepseek-reasoner\\llm\\obj\\Release\\net8.0\\wasi-wasm\\SpacetimeDB.BSATN.Codegen\\SpacetimeDB.Codegen.Type\\Circle.cs(19,36): warning CS0108: 'Circle.BSATN' hides inherited member 'Shape.BSATN'. Use the new keyword if hiding was intended. [D:\\Development\\ClockworkLabs\\SpacetimeDB\\SpacetimeDBPrivate\\public\\target\\llm-runs\\schema\\t_013_spacetime_sum_type\\csharp\\server\\deepseek-reasoner\\llm\\StdbModule.csproj]\r\nD:\\Development\\ClockworkLabs\\SpacetimeDB\\SpacetimeDBPrivate\\public\\target\\llm-runs\\schema\\t_013_spacetime_sum_type\\csharp\\server\\deepseek-reasoner\\llm\\obj\\Release\\net8.0\\wasi-wasm\\SpacetimeDB.BSATN.Codegen\\SpacetimeDB.Codegen.Type\\Rectangle.cs(6,17): warning CS0108: 'Rectangle.ReadFields(BinaryReader)' hides inherited member 'Shape.ReadFields(BinaryReader)'. Use the new keyword if hiding was intended. [D:\\Development\\ClockworkLabs\\SpacetimeDB\\SpacetimeDBPrivate\\public\\target\\llm-runs\\schema\\t_013_spacetime_sum_type\\csharp\\server\\deepseek-reasoner\\llm\\StdbModule.csproj]\r\nD:\\Development\\ClockworkLabs\\SpacetimeDB\\SpacetimeDBPrivate\\public\\target\\llm-runs\\schema\\t_013_spacetime_sum_type\\csharp\\server\\deepseek-reasoner\\llm\\obj\\Release\\net8.0\\wasi-wasm\\SpacetimeDB.BSATN.Codegen\\SpacetimeDB.Codegen.Type\\Rectangle.cs(11,17): warning CS0108: 'Rectangle.WriteFields(BinaryWriter)' hides inherited member 'Shape.WriteFields(BinaryWriter)'. Use the new keyword if hiding was intended. [D:\\Development\\ClockworkLabs\\SpacetimeDB\\SpacetimeDBPrivate\\public\\target\\llm-runs\\schema\\t_013_spacetime_sum_type\\csharp\\server\\deepseek-reasoner\\llm\\StdbModule.csproj]\r\nD:\\Development\\ClockworkLabs\\SpacetimeDB\\SpacetimeDBPrivate\\public\\target\\llm-runs\\schema\\t_013_spacetime_sum_type\\csharp\\server\\deepseek-reasoner\\llm\\obj\\Release\\net8.0\\wasi-wasm\\SpacetimeDB.BSATN.Codegen\\SpacetimeDB.Codegen.Type\\Rectangle.cs(21,36): warning CS0108: 'Rectangle.BSATN' hides inherited member 'Shape.BSATN'. Use the new keyword if hiding was intended. [D:\\Development\\ClockworkLabs\\SpacetimeDB\\SpacetimeDBPrivate\\public\\target\\llm-runs\\schema\\t_013_spacetime_sum_type\\csharp\\server\\deepseek-reasoner\\llm\\StdbModule.csproj]\r\n",
- "phase": "build_or_publish"
- }
- }
- },
- "vendor": "deepseek"
- },
- "t_014_elementary_columns": {
- "hash": "a4ddc223e2035781ae7e86c8c38c0d78212e9a0c4149c6535625b4033878e3a4",
- "task": "t_014_elementary_columns",
- "lang": "csharp",
- "golden_published": true,
- "model_name": "DeepSeek Reasoner",
- "total_tests": 3,
- "passed_tests": 3,
- "category": "schema",
- "route_api_model": "deepseek-reasoner",
- "scorer_details": {
- "schema_parity": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "reducers_diff": null,
- "reducers_equal": true,
- "tables_diff": null,
- "tables_equal": true
- }
- },
- "elementary_columns_row_parity": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "args": [],
- "golden_out": "Id | Count | Total | Price | Ratio | Active | Name ----+-------+------------+-------+-------+--------+--------- 1 | 2 | 3000000000 | 1.5 | 2.25 | true | \"Alice\"",
- "llm_out": "Id | Count | Total | Price | Ratio | Active | Name ----+-------+------------+-------+-------+--------+--------- 1 | 2 | 3000000000 | 1.5 | 2.25 | true | \"Alice\"",
- "query": "SELECT Id, Count, Total, Price, Ratio, Active, Name FROM Primitive WHERE Id=1",
- "reducer": "seed"
- }
- },
- "elementary_columns_row_count": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "actual": 1,
- "expected": 1,
- "sql": "SELECT COUNT(*) AS n FROM Primitive WHERE Id=1"
- }
- }
- },
- "vendor": "deepseek"
- },
- "t_015_product_type_columns": {
- "hash": "a4ddc223e2035781ae7e86c8c38c0d78212e9a0c4149c6535625b4033878e3a4",
- "task": "t_015_product_type_columns",
- "lang": "csharp",
- "golden_published": true,
- "model_name": "DeepSeek Reasoner",
- "total_tests": 3,
- "passed_tests": 3,
- "category": "schema",
- "route_api_model": "deepseek-reasoner",
- "scorer_details": {
- "product_type_columns_row_parity": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "args": [],
- "golden_out": "Id | Home | Work | Pos ----+----------------------------------+-----------------------------------+---------------- 1 | (street = \"1 Main\", zip = 11111) | (street = \"2 Broad\", zip = 22222) | (x = 7, y = 9)",
- "llm_out": "Id | Home | Work | Pos ----+----------------------------------+-----------------------------------+---------------- 1 | (street = \"1 Main\", zip = 11111) | (street = \"2 Broad\", zip = 22222) | (x = 7, y = 9)",
- "query": "SELECT Id, Home, Work, Pos FROM Profile WHERE Id=1",
- "reducer": "seed"
- }
- },
- "schema_parity": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "reducers_diff": null,
- "reducers_equal": true,
- "tables_diff": null,
- "tables_equal": true
- }
- },
- "product_type_columns_row_count": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "actual": 1,
- "expected": 1,
- "sql": "SELECT COUNT(*) AS n FROM Profile WHERE Id=1"
- }
- }
- },
- "vendor": "deepseek"
- },
- "t_016_sum_type_columns": {
- "hash": "a4ddc223e2035781ae7e86c8c38c0d78212e9a0c4149c6535625b4033878e3a4",
- "task": "t_016_sum_type_columns",
- "lang": "csharp",
- "golden_published": false,
- "model_name": "DeepSeek Reasoner",
- "total_tests": 3,
- "passed_tests": 0,
- "llm_output": "using SpacetimeDB;\n\n[SpacetimeDB.Sum]\npublic interface Shape { }\n\n[SpacetimeDB.Type]\npublic struct Circle : Shape\n{\n public int Radius;\n}\n\n[SpacetimeDB.Type]\npublic struct Rectangle : Shape\n{\n public int Width;\n public int Height;\n}\n\n[SpacetimeDB.Table(Accessor = \"Drawing\")]\npublic partial struct Drawing\n{\n [SpacetimeDB.PrimaryKey]\n public int Id;\n public Shape A;\n public Shape B;\n}\n\npublic static partial class Module\n{\n [SpacetimeDB.Reducer]\n public static void Seed(ReducerContext ctx)\n {\n ctx.Db.Drawing.Insert(new Drawing\n {\n Id = 1,\n A = new Circle { Radius = 10 },\n B = new Rectangle { Width = 4, Height = 6 }\n });\n }\n}",
- "category": "schema",
- "route_api_model": "deepseek-reasoner",
- "scorer_details": {
- "publish_error": {
- "pass": false,
- "partial": 0.0,
- "notes": {
- "error": "spacetime build (csharp) failed (exit=1)\n--- stderr ---\nError: command [\"dotnet\", \"publish\", \"-c\", \"Release\", \"-v\", \"quiet\"] exited with code 1\n\n--- stdout ---\nD:\\Development\\ClockworkLabs\\SpacetimeDB\\SpacetimeDBPrivate\\public\\target\\llm-runs\\schema\\t_016_sum_type_columns\\csharp\\server\\deepseek-reasoner\\llm\\Lib.cs(8,15): error CS0260: Missing partial modifier on declaration of type 'Circle'; another partial declaration of this type exists [D:\\Development\\ClockworkLabs\\SpacetimeDB\\SpacetimeDBPrivate\\public\\target\\llm-runs\\schema\\t_016_sum_type_columns\\csharp\\server\\deepseek-reasoner\\llm\\StdbModule.csproj]\r\nD:\\Development\\ClockworkLabs\\SpacetimeDB\\SpacetimeDBPrivate\\public\\target\\llm-runs\\schema\\t_016_sum_type_columns\\csharp\\server\\deepseek-reasoner\\llm\\Lib.cs(14,15): error CS0260: Missing partial modifier on declaration of type 'Rectangle'; another partial declaration of this type exists [D:\\Development\\ClockworkLabs\\SpacetimeDB\\SpacetimeDBPrivate\\public\\target\\llm-runs\\schema\\t_016_sum_type_columns\\csharp\\server\\deepseek-reasoner\\llm\\StdbModule.csproj]\r\nD:\\Development\\ClockworkLabs\\SpacetimeDB\\SpacetimeDBPrivate\\public\\target\\llm-runs\\schema\\t_016_sum_type_columns\\csharp\\server\\deepseek-reasoner\\llm\\Lib.cs(4,14): error CS0234: The type or namespace name 'SumAttribute' does not exist in the namespace 'SpacetimeDB' (are you missing an assembly reference?) [D:\\Development\\ClockworkLabs\\SpacetimeDB\\SpacetimeDBPrivate\\public\\target\\llm-runs\\schema\\t_016_sum_type_columns\\csharp\\server\\deepseek-reasoner\\llm\\StdbModule.csproj]\r\nD:\\Development\\ClockworkLabs\\SpacetimeDB\\SpacetimeDBPrivate\\public\\target\\llm-runs\\schema\\t_016_sum_type_columns\\csharp\\server\\deepseek-reasoner\\llm\\Lib.cs(4,14): error CS0234: The type or namespace name 'Sum' does not exist in the namespace 'SpacetimeDB' (are you missing an assembly reference?) [D:\\Development\\ClockworkLabs\\SpacetimeDB\\SpacetimeDBPrivate\\public\\target\\llm-runs\\schema\\t_016_sum_type_columns\\csharp\\server\\deepseek-reasoner\\llm\\StdbModule.csproj]\r\nD:\\Development\\ClockworkLabs\\SpacetimeDB\\SpacetimeDBPrivate\\public\\target\\llm-runs\\schema\\t_016_sum_type_columns\\csharp\\server\\deepseek-reasoner\\llm\\obj\\Release\\net8.0\\wasi-wasm\\SpacetimeDB.Codegen\\SpacetimeDB.Codegen.Module\\Drawing.cs(26,40): error CS0426: The type name 'BSATN' does not exist in the type 'Shape' [D:\\Development\\ClockworkLabs\\SpacetimeDB\\SpacetimeDBPrivate\\public\\target\\llm-runs\\schema\\t_016_sum_type_columns\\csharp\\server\\deepseek-reasoner\\llm\\StdbModule.csproj]\r\nD:\\Development\\ClockworkLabs\\SpacetimeDB\\SpacetimeDBPrivate\\public\\target\\llm-runs\\schema\\t_016_sum_type_columns\\csharp\\server\\deepseek-reasoner\\llm\\obj\\Release\\net8.0\\wasi-wasm\\SpacetimeDB.Codegen\\SpacetimeDB.Codegen.Module\\Drawing.cs(27,40): error CS0426: The type name 'BSATN' does not exist in the type 'Shape' [D:\\Development\\ClockworkLabs\\SpacetimeDB\\SpacetimeDBPrivate\\public\\target\\llm-runs\\schema\\t_016_sum_type_columns\\csharp\\server\\deepseek-reasoner\\llm\\StdbModule.csproj]\r\n",
- "phase": "build_or_publish"
- }
- }
- },
- "vendor": "deepseek"
- },
- "t_017_scheduled_columns": {
- "hash": "a4ddc223e2035781ae7e86c8c38c0d78212e9a0c4149c6535625b4033878e3a4",
- "task": "t_017_scheduled_columns",
- "lang": "csharp",
- "golden_published": true,
- "model_name": "DeepSeek Reasoner",
- "total_tests": 2,
- "passed_tests": 2,
- "category": "schema",
- "route_api_model": "deepseek-reasoner",
- "scorer_details": {
- "schema_parity": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "reducers_diff": null,
- "reducers_equal": true,
- "tables_diff": null,
- "tables_equal": true
- }
- },
- "scheduled_seeded_one_row": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "actual": 1,
- "expected": 1,
- "sql": "SELECT COUNT(*) AS n FROM TickTimer WHERE ScheduledId>=0"
- }
- }
- },
- "vendor": "deepseek"
- },
- "t_018_constraints": {
- "hash": "a4ddc223e2035781ae7e86c8c38c0d78212e9a0c4149c6535625b4033878e3a4",
- "task": "t_018_constraints",
- "lang": "csharp",
- "golden_published": true,
- "model_name": "DeepSeek Reasoner",
- "total_tests": 3,
- "passed_tests": 3,
- "category": "schema",
- "route_api_model": "deepseek-reasoner",
- "scorer_details": {
- "schema_parity": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "reducers_diff": null,
- "reducers_equal": true,
- "tables_diff": null,
- "tables_equal": true
- }
- },
- "constraints_row_parity_after_seed": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "args": [],
- "golden_out": "Id | Email | Name ----+-----------------+--------- 1 | \"a@example.com\" | \"Alice\"",
- "llm_out": "Id | Email | Name ----+-----------------+--------- 1 | \"a@example.com\" | \"Alice\"",
- "query": "SELECT Id, Email, Name FROM Account WHERE Id=1",
- "reducer": "seed"
- }
- },
- "constraints_seed_two_rows": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "actual": 1,
- "expected": 1,
- "sql": "SELECT COUNT(*) AS n FROM Account WHERE Id=2"
- }
- }
- },
- "vendor": "deepseek"
- },
- "t_019_many_to_many": {
- "hash": "a4ddc223e2035781ae7e86c8c38c0d78212e9a0c4149c6535625b4033878e3a4",
- "task": "t_019_many_to_many",
- "lang": "csharp",
- "golden_published": false,
- "model_name": "DeepSeek Reasoner",
- "total_tests": 5,
- "passed_tests": 0,
- "llm_output": "using SpacetimeDB;\n\npublic static partial class Module\n{\n [SpacetimeDB.Table(Accessor = \"User\", Public = true)]\n public partial struct User\n {\n [SpacetimeDB.PrimaryKey]\n public int UserId;\n public string Name;\n }\n\n [SpacetimeDB.Table(Accessor = \"Group\", Public = true)]\n public partial struct Group\n {\n [SpacetimeDB.PrimaryKey]\n public int GroupId;\n public string Title;\n }\n\n [SpacetimeDB.Table(Accessor = \"Membership\", Public = true)]\n public partial struct Membership\n {\n [SpacetimeDB.PrimaryKey]\n public int Id;\n public int UserId;\n public int GroupId;\n }\n\n [SpacetimeDB.Index.BTree(Accessor = \"by_user\", Columns = new[] { nameof(Membership.UserId) })]\n [SpacetimeDB.Index.BTree(Accessor = \"by_group\", Columns = new[] { nameof(Membership.GroupId) })]\n private static void MembershipIndices() { }\n\n [SpacetimeDB.Reducer]\n public static void Seed(ReducerContext ctx)\n {\n ctx.Db.User.Insert(new User { UserId = 1, Name = \"Alice\" });\n ctx.Db.User.Insert(new User { UserId = 2, Name = \"Bob\" });\n\n ctx.Db.Group.Insert(new Group { GroupId = 10, Title = \"Admin\" });\n ctx.Db.Group.Insert(new Group { GroupId = 20, Title = \"Dev\" });\n\n ctx.Db.Membership.Insert(new Membership { Id = 1, UserId = 1, GroupId = 10 });\n ctx.Db.Membership.Insert(new Membership { Id = 2, UserId = 1, GroupId = 20 });\n ctx.Db.Membership.Insert(new Membership { Id = 3, UserId = 2, GroupId = 20 });\n }\n}",
- "category": "schema",
- "route_api_model": "deepseek-reasoner",
- "scorer_details": {
- "publish_error": {
- "pass": false,
- "partial": 0.0,
- "notes": {
- "error": "spacetime build (csharp) failed (exit=1)\n--- stderr ---\nError: command [\"dotnet\", \"publish\", \"-c\", \"Release\", \"-v\", \"quiet\"] exited with code 1\n\n--- stdout ---\nD:\\Development\\ClockworkLabs\\SpacetimeDB\\SpacetimeDBPrivate\\public\\target\\llm-runs\\schema\\t_019_many_to_many\\csharp\\server\\deepseek-reasoner\\llm\\Lib.cs(31,6): error CS0592: Attribute 'SpacetimeDB.Index.BTree' is not valid on this declaration type. It is only valid on 'class, struct, field' declarations. [D:\\Development\\ClockworkLabs\\SpacetimeDB\\SpacetimeDBPrivate\\public\\target\\llm-runs\\schema\\t_019_many_to_many\\csharp\\server\\deepseek-reasoner\\llm\\StdbModule.csproj]\r\nD:\\Development\\ClockworkLabs\\SpacetimeDB\\SpacetimeDBPrivate\\public\\target\\llm-runs\\schema\\t_019_many_to_many\\csharp\\server\\deepseek-reasoner\\llm\\Lib.cs(32,6): error CS0592: Attribute 'SpacetimeDB.Index.BTree' is not valid on this declaration type. It is only valid on 'class, struct, field' declarations. [D:\\Development\\ClockworkLabs\\SpacetimeDB\\SpacetimeDBPrivate\\public\\target\\llm-runs\\schema\\t_019_many_to_many\\csharp\\server\\deepseek-reasoner\\llm\\StdbModule.csproj]\r\n",
- "phase": "build_or_publish"
- }
- }
- },
- "vendor": "deepseek"
- },
- "t_020_ecs": {
- "hash": "a4ddc223e2035781ae7e86c8c38c0d78212e9a0c4149c6535625b4033878e3a4",
- "task": "t_020_ecs",
- "lang": "csharp",
- "golden_published": true,
- "model_name": "DeepSeek Reasoner",
- "total_tests": 5,
- "passed_tests": 2,
- "llm_output": "using SpacetimeDB;\n\npublic static partial class Module\n{\n [SpacetimeDB.Table(Accessor = \"Entity\", Public = true)]\n public partial struct Entity\n {\n [SpacetimeDB.PrimaryKey]\n public int Id;\n }\n\n [SpacetimeDB.Table(Accessor = \"Position\", Public = true)]\n public partial struct Position\n {\n [SpacetimeDB.PrimaryKey]\n public int EntityId;\n public int X;\n public int Y;\n }\n\n [SpacetimeDB.Table(Accessor = \"Velocity\", Public = true)]\n public partial struct Velocity\n {\n [SpacetimeDB.PrimaryKey]\n public int EntityId;\n public int VX;\n public int VY;\n }\n\n [SpacetimeDB.Table(Accessor = \"NextPosition\", Public = true)]\n public partial struct NextPosition\n {\n [SpacetimeDB.PrimaryKey]\n public int EntityId;\n public int X;\n public int Y;\n }\n\n [SpacetimeDB.Reducer]\n public static void Seed(ReducerContext ctx)\n {\n ctx.Db.Entity.Insert(new Entity { Id = 1 });\n ctx.Db.Entity.Insert(new Entity { Id = 2 });\n\n ctx.Db.Position.Insert(new Position { EntityId = 1, X = 0, Y = 0 });\n ctx.Db.Velocity.Insert(new Velocity { EntityId = 1, VX = 1, VY = 0 });\n\n ctx.Db.Position.Insert(new Position { EntityId = 2, X = 10, Y = 0 });\n ctx.Db.Velocity.Insert(new Velocity { EntityId = 2, VX = -2, VY = 3 });\n }\n\n [SpacetimeDB.Reducer]\n public static void Step(ReducerContext ctx)\n {\n foreach (var position in ctx.Db.Position.Iter())\n {\n var velocity = ctx.Db.Velocity.EntityId.Find(position.EntityId);\n if (velocity.HasValue)\n {\n ctx.Db.NextPosition.EntityId.Update(new NextPosition\n {\n EntityId = position.EntityId,\n X = position.X + velocity.Value.VX,\n Y = position.Y + velocity.Value.VY\n });\n }\n }\n }\n}",
- "category": "schema",
- "route_api_model": "deepseek-reasoner",
- "scorer_details": {
- "ecs_next_pos_entity2": {
- "pass": false,
- "partial": 0.0,
- "notes": {
- "error": "spacetime call failed:\nWARNING: This command is UNSTABLE and subject to breaking changes.\n\nError: Response text: The row was not found, e.g., in an update call\n\nCaused by:\n HTTP status server error (530 ) for url (http://127.0.0.1:56242/v1/database/c20099b3d0c2458756ced30eddcd5b6a159367cc5ed1f56ae744696f8ce77b24/call/step)\n",
- "phase": "call_reducer"
- }
- },
- "ecs_next_pos_entity1": {
- "pass": false,
- "partial": 0.0,
- "notes": {
- "error": "spacetime call failed:\nWARNING: This command is UNSTABLE and subject to breaking changes.\n\nError: Response text: The row was not found, e.g., in an update call\n\nCaused by:\n HTTP status server error (530 ) for url (http://127.0.0.1:56242/v1/database/c20099b3d0c2458756ced30eddcd5b6a159367cc5ed1f56ae744696f8ce77b24/call/step)\n",
- "phase": "call_reducer"
- }
- },
- "ecs_seed_position_count": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "actual": 2,
- "expected": 2,
- "sql": "SELECT COUNT(*) AS n FROM Position"
- }
- },
- "schema_parity": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "reducers_diff": null,
- "reducers_equal": true,
- "tables_diff": null,
- "tables_equal": true
- }
- },
- "ecs_step_next_position_count": {
- "pass": false,
- "partial": 0.0,
- "notes": {
- "error": "spacetime call failed:\nWARNING: This command is UNSTABLE and subject to breaking changes.\n\nError: Response text: The row was not found, e.g., in an update call\n\nCaused by:\n HTTP status server error (530 ) for url (http://127.0.0.1:56242/v1/database/c20099b3d0c2458756ced30eddcd5b6a159367cc5ed1f56ae744696f8ce77b24/call/step)\n",
- "phase": "call_reducer"
- }
- }
- },
- "vendor": "deepseek"
- },
- "t_021_multi_column_index": {
- "hash": "a4ddc223e2035781ae7e86c8c38c0d78212e9a0c4149c6535625b4033878e3a4",
- "task": "t_021_multi_column_index",
- "lang": "csharp",
- "golden_published": false,
- "model_name": "DeepSeek Reasoner",
- "total_tests": 4,
- "passed_tests": 0,
- "llm_output": "using SpacetimeDB;\n\npublic static partial class Module\n{\n [SpacetimeDB.Table(Accessor = \"Log\")]\n public partial struct Log\n {\n [SpacetimeDB.PrimaryKey]\n [SpacetimeDB.AutoInc]\n public int Id;\n public int UserId;\n public int Day;\n public string Message;\n\n [SpacetimeDB.Index.BTree(Accessor = \"by_user_day\", Columns = new[] { nameof(UserId), nameof(Day) })]\n }\n\n [SpacetimeDB.Reducer]\n public static void Seed(ReducerContext ctx)\n {\n ctx.Db.Log.Insert(new Log { Id = 0, UserId = 7, Day = 1, Message = \"a\" });\n ctx.Db.Log.Insert(new Log { Id = 0, UserId = 7, Day = 2, Message = \"b\" });\n ctx.Db.Log.Insert(new Log { Id = 0, UserId = 9, Day = 1, Message = \"c\" });\n }\n}",
- "category": "schema",
- "route_api_model": "deepseek-reasoner",
- "scorer_details": {
- "publish_error": {
- "pass": false,
- "partial": 0.0,
- "notes": {
- "error": "spacetime build (csharp) failed (exit=1)\n--- stderr ---\nError: command [\"dotnet\", \"publish\", \"-c\", \"Release\", \"-v\", \"quiet\"] exited with code 1\n\n--- stdout ---\nD:\\Development\\ClockworkLabs\\SpacetimeDB\\SpacetimeDBPrivate\\public\\target\\llm-runs\\schema\\t_021_multi_column_index\\csharp\\server\\deepseek-reasoner\\llm\\Lib.cs(17,5): error CS1519: Invalid token '}' in class, record, struct, or interface member declaration [D:\\Development\\ClockworkLabs\\SpacetimeDB\\SpacetimeDBPrivate\\public\\target\\llm-runs\\schema\\t_021_multi_column_index\\csharp\\server\\deepseek-reasoner\\llm\\StdbModule.csproj]\r\n",
- "phase": "build_or_publish"
- }
- }
- },
- "vendor": "deepseek"
- }
- }
- }
- ]
- },
- {
- "mode": "llms.md",
- "hash": "171b01e97d14a2c03356933e7c86331362cc53b87e82cd534cd74273e7bc8ea4",
- "models": []
- }
- ],
- "golden_answers": {
- "basics/t_000_empty_reducers": {
- "answer": "using SpacetimeDB;\r\n\r\npublic static partial class Module\r\n{\r\n [Reducer]\r\n public static void EmptyReducer_NoArgs(ReducerContext ctx) { }\r\n\r\n [Reducer]\r\n public static void EmptyReducer_WithInt(ReducerContext ctx, int count) { }\r\n\r\n [Reducer]\r\n public static void EmptyReducer_WithString(ReducerContext ctx, string name) { }\r\n\r\n [Reducer]\r\n public static void EmptyReducer_WithTwoArgs(ReducerContext ctx, int count, string name) { }\r\n\r\n [Reducer]\r\n public static void EmptyReducer_WithThreeArgs(ReducerContext ctx, bool active, float ratio, string label) { }\r\n}",
- "syntax": "csharp"
- },
- "basics/t_001_basic_tables": {
- "answer": "using SpacetimeDB;\r\n\r\npublic static partial class Module\r\n{\r\n [Table(Name = \"users\")]\r\n public partial struct Users\r\n {\r\n [PrimaryKey] public int Id;\r\n public string Name;\r\n public int Age;\r\n public bool Active;\r\n }\r\n\r\n [Table(Name = \"products\")]\r\n public partial struct Products\r\n {\r\n [PrimaryKey] public int Id;\r\n public string Title;\r\n public float Price;\r\n public bool InStock;\r\n }\r\n\r\n [Table(Name = \"notes\")]\r\n public partial struct Notes\r\n {\r\n [PrimaryKey] public int Id;\r\n public string Body;\r\n public long Rating;\r\n public bool Pinned;\r\n }\r\n}\r\n",
- "syntax": "csharp"
- },
- "basics/t_002_scheduled_table": {
- "answer": "using SpacetimeDB;\r\n\r\npublic static partial class Module\r\n{\r\n [Table(Name = \"tick_timer\", Scheduled = nameof(Tick), ScheduledAt = nameof(TickTimer.ScheduledAt))]\r\n public partial struct TickTimer\r\n {\r\n [PrimaryKey, AutoInc] public ulong ScheduledId;\r\n public ScheduleAt ScheduledAt;\r\n }\r\n\r\n [Reducer]\r\n public static void Tick(ReducerContext ctx, TickTimer timer) { }\r\n\r\n [Reducer(ReducerKind.Init)]\r\n public static void Init(ReducerContext ctx)\r\n {\r\n var interval = new TimeDuration { Microseconds = 50_000 };\r\n ctx.Db.tick_timer.Insert(new TickTimer\r\n {\r\n ScheduledAt = new ScheduleAt.Interval(interval)\r\n });\r\n }\r\n}",
- "syntax": "csharp"
- },
- "basics/t_003_struct_in_table": {
- "answer": "using SpacetimeDB;\r\n\r\npublic static partial class Module\r\n{\r\n [Type]\r\n public partial struct Position\r\n {\r\n public int X;\r\n public int Y;\r\n }\r\n\r\n [Table(Name = \"entities\")]\r\n public partial struct Entity\r\n {\r\n [PrimaryKey] public int Id;\r\n public Position Pos;\r\n }\r\n}\r\n",
- "syntax": "csharp"
- },
- "basics/t_004_insert": {
- "answer": "using SpacetimeDB;\r\n\r\npublic static partial class Module\r\n{\r\n [Table(Name = \"users\")]\r\n public partial struct User\r\n {\r\n [PrimaryKey] public int Id;\r\n public string Name;\r\n public int Age;\r\n public bool Active;\r\n }\r\n\r\n [Reducer]\r\n public static void InsertUser(ReducerContext ctx, int id, string name, int age, bool active)\r\n {\r\n ctx.Db.users.Insert(new User { Id = id, Name = name, Age = age, Active = active });\r\n }\r\n}\r\n",
- "syntax": "csharp"
- },
- "basics/t_005_update": {
- "answer": "using SpacetimeDB;\r\n\r\npublic static partial class Module\r\n{\r\n [Table(Name = \"users\")]\r\n public partial struct User\r\n {\r\n [PrimaryKey] public int Id;\r\n public string Name;\r\n public int Age;\r\n public bool Active;\r\n }\r\n\r\n [Reducer]\r\n public static void UpdateUser(ReducerContext ctx, int id, string name, int age, bool active)\r\n {\r\n ctx.Db.users.Id.Update(new User { Id = id, Name = name, Age = age, Active = active });\r\n }\r\n}\r\n",
- "syntax": "csharp"
- },
- "basics/t_006_delete": {
- "answer": "using SpacetimeDB;\r\n\r\npublic static partial class Module\r\n{\r\n [Table(Name = \"users\")]\r\n public partial struct User\r\n {\r\n [PrimaryKey] public int Id;\r\n public string Name;\r\n public int Age;\r\n public bool Active;\r\n }\r\n\r\n [Reducer]\r\n public static void DeleteUser(ReducerContext ctx, int id)\r\n {\r\n ctx.Db.users.Id.Delete(id);\r\n }\r\n}\r\n",
- "syntax": "csharp"
- },
- "basics/t_007_crud": {
- "answer": "using SpacetimeDB;\r\n\r\npublic static partial class Module\r\n{\r\n [Table(Name = \"users\")]\r\n public partial struct User\r\n {\r\n [PrimaryKey] public int Id;\r\n public string Name;\r\n public int Age;\r\n public bool Active;\r\n }\r\n\r\n [Reducer]\r\n public static void Crud(ReducerContext ctx)\r\n {\r\n ctx.Db.users.Insert(new User { Id = 1, Name = \"Alice\", Age = 30, Active = true });\r\n ctx.Db.users.Insert(new User { Id = 2, Name = \"Bob\", Age = 22, Active = false });\r\n ctx.Db.users.Id.Update(new User { Id = 1, Name = \"Alice2\", Age = 31, Active = false });\r\n ctx.Db.users.Id.Delete(2);\r\n }\r\n}\r\n",
- "syntax": "csharp"
- },
- "basics/t_008_index_lookup": {
- "answer": "using SpacetimeDB;\r\n\r\npublic static partial class Module\r\n{\r\n [Table(Name = \"users\")]\r\n public partial struct User\r\n {\r\n [PrimaryKey] public int Id;\r\n public string Name;\r\n public int Age;\r\n public bool Active;\r\n }\r\n\r\n [Table(Name = \"results\")]\r\n public partial struct Result\r\n {\r\n [PrimaryKey] public int Id;\r\n public string Name;\r\n }\r\n\r\n [Reducer]\r\n public static void LookupUserName(ReducerContext ctx, int id)\r\n {\r\n var u = ctx.Db.users.Id.Find(id);\r\n if (u.HasValue)\r\n {\r\n var row = u.Value;\r\n ctx.Db.results.Insert(new Result { Id = row.Id, Name = row.Name });\r\n }\r\n }\r\n}\r\n",
- "syntax": "csharp"
- },
- "basics/t_009_init": {
- "answer": "using SpacetimeDB;\r\n\r\npublic static partial class Module\r\n{\r\n [Table(Name = \"users\")]\r\n public partial struct User\r\n {\r\n [PrimaryKey] public int Id;\r\n public string Name;\r\n public int Age;\r\n public bool Active;\r\n }\r\n\r\n [Reducer(ReducerKind.Init)]\r\n public static void Init(ReducerContext ctx)\r\n {\r\n ctx.Db.users.Insert(new User { Id = 1, Name = \"Alice\", Age = 30, Active = true });\r\n ctx.Db.users.Insert(new User { Id = 2, Name = \"Bob\", Age = 22, Active = false });\r\n }\r\n}\r\n",
- "syntax": "csharp"
- },
- "basics/t_010_connect": {
- "answer": "using SpacetimeDB;\r\n\r\npublic static partial class Module\r\n{\r\n [Table(Name = \"events\")]\r\n public partial struct Event\r\n {\r\n [PrimaryKey, AutoInc] public int Id;\r\n public string Kind;\r\n }\r\n\r\n [Reducer(ReducerKind.ClientConnected)]\r\n public static void ClientConnected(ReducerContext ctx)\r\n {\r\n ctx.Db.events.Insert(new Event { Kind = \"connected\" });\r\n }\r\n\r\n [Reducer(ReducerKind.ClientDisconnected)]\r\n public static void ClientDisconnected(ReducerContext ctx)\r\n {\r\n ctx.Db.events.Insert(new Event { Kind = \"disconnected\" });\r\n }\r\n}\r\n",
- "syntax": "csharp"
- },
- "basics/t_011_helper_function": {
- "answer": "using SpacetimeDB;\r\n\r\npublic static partial class Module\r\n{\r\n [Table(Name = \"results\")]\r\n public partial struct Result\r\n {\r\n [PrimaryKey] public int Id;\r\n public int Sum;\r\n }\r\n\r\n static int Add(int a, int b) => a + b;\r\n\r\n [Reducer]\r\n public static void ComputeSum(ReducerContext ctx, int id, int a, int b)\r\n {\r\n ctx.Db.results.Insert(new Result { Id = id, Sum = Add(a, b) });\r\n }\r\n}\r\n",
- "syntax": "csharp"
- },
- "schema/t_012_spacetime_product_type": {
- "answer": "using SpacetimeDB;\r\n\r\npublic static partial class Module\r\n{\r\n [Type]\r\n public partial struct Score\r\n {\r\n public int Left;\r\n public int Right;\r\n }\r\n\r\n [Table(Name = \"results\")]\r\n public partial struct Result\r\n {\r\n [PrimaryKey] public int Id;\r\n public Score Value;\r\n }\r\n\r\n [Reducer]\r\n public static void SetScore(ReducerContext ctx, int id, int left, int right)\r\n {\r\n ctx.Db.results.Insert(new Result { Id = id, Value = new Score { Left = left, Right = right } });\r\n }\r\n}\r\n",
- "syntax": "csharp"
- },
- "schema/t_013_spacetime_sum_type": {
- "answer": "using SpacetimeDB;\r\n\r\npublic static partial class Module\r\n{\r\n [Type]\r\n public partial struct Circle { public int Radius; }\r\n\r\n [Type]\r\n public partial struct Rectangle { public int Width; public int Height; }\r\n\r\n [Type]\r\n public partial record Shape : TaggedEnum<(Circle Circle, Rectangle Rectangle)> {}\r\n\r\n [Table(Name = \"results\")]\r\n public partial struct Result\r\n {\r\n [PrimaryKey] public int Id;\r\n public Shape Value;\r\n }\r\n\r\n [Reducer]\r\n public static void SetCircle(ReducerContext ctx, int id, int radius)\r\n {\r\n ctx.Db.results.Insert(new Result { Id = id, Value = new Shape.Circle(new Circle { Radius = radius }) });\r\n }\r\n}\r\n",
- "syntax": "csharp"
- },
- "schema/t_014_elementary_columns": {
- "answer": "using SpacetimeDB;\r\n\r\npublic static partial class Module\r\n{\r\n [Table(Name = \"primitives\")]\r\n public partial struct Primitive\r\n {\r\n [PrimaryKey] public int Id;\r\n public int Count;\r\n public long Total;\r\n public float Price;\r\n public double Ratio;\r\n public bool Active;\r\n public string Name;\r\n }\r\n\r\n [Reducer]\r\n public static void Seed(ReducerContext ctx)\r\n {\r\n ctx.Db.primitives.Insert(new Primitive {\r\n Id = 1,\r\n Count = 2,\r\n Total = 3000000000,\r\n Price = 1.5f,\r\n Ratio = 2.25,\r\n Active = true,\r\n Name = \"Alice\"\r\n });\r\n }\r\n}\r\n",
- "syntax": "csharp"
- },
- "schema/t_015_product_type_columns": {
- "answer": "using SpacetimeDB;\r\n\r\npublic static partial class Module\r\n{\r\n [Type]\r\n public partial struct Address\r\n {\r\n public string Street;\r\n public int Zip;\r\n }\r\n\r\n [Type]\r\n public partial struct Position\r\n {\r\n public int X;\r\n public int Y;\r\n }\r\n\r\n [Table(Name = \"profiles\")]\r\n public partial struct Profile\r\n {\r\n [PrimaryKey] public int Id;\r\n public Address Home;\r\n public Address Work;\r\n public Position Pos;\r\n }\r\n\r\n [Reducer]\r\n public static void Seed(ReducerContext ctx)\r\n {\r\n ctx.Db.profiles.Insert(new Profile {\r\n Id = 1,\r\n Home = new Address { Street = \"1 Main\", Zip = 11111 },\r\n Work = new Address { Street = \"2 Broad\", Zip = 22222 },\r\n Pos = new Position { X = 7, Y = 9 }\r\n });\r\n }\r\n}\r\n",
- "syntax": "csharp"
- },
- "schema/t_016_sum_type_columns": {
- "answer": "using SpacetimeDB;\r\n\r\npublic static partial class Module\r\n{\r\n [Type]\r\n public partial struct Circle { public int Radius; }\r\n\r\n [Type]\r\n public partial struct Rectangle { public int Width; public int Height; }\r\n\r\n [Type]\r\n public partial record Shape : TaggedEnum<(Circle Circle, Rectangle Rectangle)> {}\r\n\r\n [Table(Name = \"drawings\")]\r\n public partial struct Drawing\r\n {\r\n [PrimaryKey] public int Id;\r\n public Shape A;\r\n public Shape B;\r\n }\r\n\r\n [Reducer]\r\n public static void Seed(ReducerContext ctx)\r\n {\r\n ctx.Db.drawings.Insert(new Drawing {\r\n Id = 1,\r\n A = new Shape.Circle(new Circle { Radius = 10 }),\r\n B = new Shape.Rectangle(new Rectangle { Width = 4, Height = 6 })\r\n });\r\n }\r\n}\r\n",
- "syntax": "csharp"
- },
- "schema/t_017_scheduled_columns": {
- "answer": "using SpacetimeDB;\r\n\r\npublic static partial class Module\r\n{\r\n [Table(Name = \"tick_timer\", Scheduled = nameof(Tick), ScheduledAt = nameof(ScheduledAt))]\r\n public partial struct TickTimer\r\n {\r\n [PrimaryKey, AutoInc] public ulong ScheduledId;\r\n public ScheduleAt ScheduledAt;\r\n }\r\n\r\n [Reducer]\r\n public static void Tick(ReducerContext ctx, TickTimer schedule) { }\r\n\r\n [Reducer(ReducerKind.Init)]\r\n public static void Init(ReducerContext ctx)\r\n {\r\n var interval = new TimeDuration { Microseconds = 50_000 };\r\n ctx.Db.tick_timer.Insert(new TickTimer\r\n {\r\n ScheduledId = 0,\r\n ScheduledAt = new ScheduleAt.Interval(interval)\r\n });\r\n }\r\n}\r\n",
- "syntax": "csharp"
- },
- "schema/t_018_constraints": {
- "answer": "using SpacetimeDB;\r\n\r\npublic static partial class Module\r\n{\r\n [SpacetimeDB.Table(Accessor = \"accounts\", Public = true)]\r\n [SpacetimeDB.Index.BTree(Name = \"by_name\", Columns = [nameof(Name)])]\r\n public partial struct Account\r\n {\r\n [SpacetimeDB.PrimaryKey] public int Id;\r\n [SpacetimeDB.Unique] public string Email;\r\n public string Name;\r\n }\r\n\r\n [SpacetimeDB.Reducer]\r\n public static void Seed(ReducerContext ctx)\r\n {\r\n ctx.Db.accounts.Insert(new Account { Id = 1, Email = \"a@example.com\", Name = \"Alice\" });\r\n ctx.Db.accounts.Insert(new Account { Id = 2, Email = \"b@example.com\", Name = \"Bob\" });\r\n }\r\n}",
- "syntax": "csharp"
- },
- "schema/t_019_many_to_many": {
- "answer": "using SpacetimeDB;\r\n\r\npublic static partial class Module\r\n{\r\n [Table(Name = \"users\")]\r\n public partial struct User\r\n {\r\n [PrimaryKey] public int UserId;\r\n public string Name;\r\n }\r\n\r\n [Table(Name = \"groups\")]\r\n public partial struct Group\r\n {\r\n [PrimaryKey] public int GroupId;\r\n public string Title;\r\n }\r\n\r\n [Table(Name = \"memberships\")]\r\n [SpacetimeDB.Index.BTree(Name = \"by_user\", Columns = new[] { nameof(UserId) })]\r\n [SpacetimeDB.Index.BTree(Name = \"by_group\", Columns = new[] { nameof(GroupId) })]\r\n public partial struct Membership\r\n {\r\n [PrimaryKey] public int Id;\r\n public int UserId;\r\n public int GroupId;\r\n }\r\n\r\n [Reducer]\r\n public static void Seed(ReducerContext ctx)\r\n {\r\n ctx.Db.users.Insert(new User { UserId = 1, Name = \"Alice\" });\r\n ctx.Db.users.Insert(new User { UserId = 2, Name = \"Bob\" });\r\n\r\n ctx.Db.groups.Insert(new Group { GroupId = 10, Title = \"Admin\" });\r\n ctx.Db.groups.Insert(new Group { GroupId = 20, Title = \"Dev\" });\r\n\r\n ctx.Db.memberships.Insert(new Membership { Id = 1, UserId = 1, GroupId = 10 });\r\n ctx.Db.memberships.Insert(new Membership { Id = 2, UserId = 1, GroupId = 20 });\r\n ctx.Db.memberships.Insert(new Membership { Id = 3, UserId = 2, GroupId = 20 });\r\n }\r\n}\r\n",
- "syntax": "csharp"
- },
- "schema/t_020_ecs": {
- "answer": "using SpacetimeDB;\r\n\r\npublic static partial class Module\r\n{\r\n [Table(Name = \"entities\")]\r\n public partial struct Entity { [PrimaryKey] public int Id; }\r\n\r\n [Table(Name = \"positions\")]\r\n public partial struct Position\r\n {\r\n [PrimaryKey] public int EntityId;\r\n public int X;\r\n public int Y;\r\n }\r\n\r\n [Table(Name = \"velocities\")]\r\n public partial struct Velocity\r\n {\r\n [PrimaryKey] public int EntityId;\r\n public int VX;\r\n public int VY;\r\n }\r\n\r\n [Table(Name = \"next_positions\")]\r\n public partial struct NextPosition\r\n {\r\n [PrimaryKey] public int EntityId;\r\n public int X;\r\n public int Y;\r\n }\r\n\r\n [Reducer]\r\n public static void Seed(ReducerContext ctx)\r\n {\r\n ctx.Db.entities.Insert(new Entity { Id = 1 });\r\n ctx.Db.entities.Insert(new Entity { Id = 2 });\r\n\r\n ctx.Db.positions.Insert(new Position { EntityId = 1, X = 0, Y = 0 });\r\n ctx.Db.positions.Insert(new Position { EntityId = 2, X = 10, Y = 0 });\r\n\r\n ctx.Db.velocities.Insert(new Velocity { EntityId = 1, VX = 1, VY = 0 });\r\n ctx.Db.velocities.Insert(new Velocity { EntityId = 2, VX = -2, VY = 3 });\r\n }\r\n\r\n [Reducer]\r\n public static void Step(ReducerContext ctx)\r\n {\r\n foreach (var p in ctx.Db.positions.Iter())\r\n {\r\n var velOpt = ctx.Db.velocities.EntityId.Find(p.EntityId);\r\n if (!velOpt.HasValue) continue;\r\n\r\n var np = new NextPosition {\r\n EntityId = p.EntityId,\r\n X = p.X + velOpt.Value.VX,\r\n Y = p.Y + velOpt.Value.VY\r\n };\r\n\r\n if (ctx.Db.next_positions.EntityId.Find(p.EntityId).HasValue)\r\n ctx.Db.next_positions.EntityId.Update(np);\r\n else\r\n ctx.Db.next_positions.Insert(np);\r\n }\r\n }\r\n}\r\n",
- "syntax": "csharp"
- },
- "schema/t_021_multi_column_index": {
- "answer": "using SpacetimeDB;\r\n\r\npublic static partial class Module\r\n{\r\n [Table(Name = \"logs\")]\r\n [SpacetimeDB.Index.BTree(Name = \"by_user_day\", Columns = new[] { nameof(UserId), nameof(Day) })]\r\n public partial struct Log\r\n {\r\n [PrimaryKey] public int Id;\r\n public int UserId;\r\n public int Day;\r\n public string Message;\r\n }\r\n\r\n [Reducer]\r\n public static void Seed(ReducerContext ctx)\r\n {\r\n ctx.Db.logs.Insert(new Log { Id = 1, UserId = 7, Day = 1, Message = \"a\" });\r\n ctx.Db.logs.Insert(new Log { Id = 2, UserId = 7, Day = 2, Message = \"b\" });\r\n ctx.Db.logs.Insert(new Log { Id = 3, UserId = 9, Day = 1, Message = \"c\" });\r\n }\r\n}\r\n",
- "syntax": "csharp"
- },
- "t_000_empty_reducers": {
- "answer": "using SpacetimeDB;\r\n\r\npublic static partial class Module\r\n{\r\n [Table(Accessor = \"EmptyTable\")]\r\n public partial struct EmptyTable\r\n {\r\n [PrimaryKey] public int Id;\r\n }\r\n\r\n [Reducer]\r\n public static void EmptyReducer_NoArgs(ReducerContext ctx) { }\r\n\r\n [Reducer]\r\n public static void EmptyReducer_WithInt(ReducerContext ctx, int count) { }\r\n\r\n [Reducer]\r\n public static void EmptyReducer_WithString(ReducerContext ctx, string name) { }\r\n\r\n [Reducer]\r\n public static void EmptyReducer_WithTwoArgs(ReducerContext ctx, int count, string name) { }\r\n\r\n [Reducer]\r\n public static void EmptyReducer_WithThreeArgs(ReducerContext ctx, bool active, float ratio, string label) { }\r\n}",
- "syntax": "csharp"
- },
- "t_001_basic_tables": {
- "answer": "using SpacetimeDB;\r\n\r\npublic static partial class Module\r\n{\r\n [Table(Accessor = \"User\")]\r\n public partial struct User\r\n {\r\n [PrimaryKey] public int Id;\r\n public string Name;\r\n public int Age;\r\n public bool Active;\r\n }\r\n\r\n [Table(Accessor = \"Product\")]\r\n public partial struct Product\r\n {\r\n [PrimaryKey] public int Id;\r\n public string Title;\r\n public float Price;\r\n public bool InStock;\r\n }\r\n\r\n [Table(Accessor = \"Note\")]\r\n public partial struct Note\r\n {\r\n [PrimaryKey] public int Id;\r\n public string Body;\r\n public long Rating;\r\n public bool Pinned;\r\n }\r\n}\r\n",
- "syntax": "csharp"
- },
- "t_002_scheduled_table": {
- "answer": "using SpacetimeDB;\r\n\r\npublic static partial class Module\r\n{\r\n [Table(Accessor = \"TickTimer\", Scheduled = nameof(Tick), ScheduledAt = nameof(TickTimer.ScheduledAt))]\r\n public partial struct TickTimer\r\n {\r\n [PrimaryKey, AutoInc] public ulong ScheduledId;\r\n public ScheduleAt ScheduledAt;\r\n }\r\n\r\n [Reducer]\r\n public static void Tick(ReducerContext ctx, TickTimer timer) { }\r\n\r\n [Reducer(ReducerKind.Init)]\r\n public static void Init(ReducerContext ctx)\r\n {\r\n var interval = new TimeDuration { Microseconds = 50_000 };\r\n ctx.Db.TickTimer.Insert(new TickTimer\r\n {\r\n ScheduledAt = new ScheduleAt.Interval(interval)\r\n });\r\n }\r\n}\r\n",
- "syntax": "csharp"
- },
- "t_003_struct_in_table": {
- "answer": "using SpacetimeDB;\r\n\r\npublic static partial class Module\r\n{\r\n [Type]\r\n public partial struct Position\r\n {\r\n public int X;\r\n public int Y;\r\n }\r\n\r\n [Table(Accessor = \"Entity\")]\r\n public partial struct Entity\r\n {\r\n [PrimaryKey] public int Id;\r\n public Position Pos;\r\n }\r\n}\r\n",
- "syntax": "csharp"
- },
- "t_004_insert": {
- "answer": "using SpacetimeDB;\r\n\r\npublic static partial class Module\r\n{\r\n [Table(Accessor = \"User\")]\r\n public partial struct User\r\n {\r\n [PrimaryKey] public int Id;\r\n public string Name;\r\n public int Age;\r\n public bool Active;\r\n }\r\n\r\n [Reducer]\r\n public static void InsertUser(ReducerContext ctx, int id, string name, int age, bool active)\r\n {\r\n ctx.Db.User.Insert(new User { Id = id, Name = name, Age = age, Active = active });\r\n }\r\n}\r\n",
- "syntax": "csharp"
- },
- "t_005_update": {
- "answer": "using SpacetimeDB;\r\n\r\npublic static partial class Module\r\n{\r\n [Table(Accessor = \"User\")]\r\n public partial struct User\r\n {\r\n [PrimaryKey] public int Id;\r\n public string Name;\r\n public int Age;\r\n public bool Active;\r\n }\r\n\r\n [Reducer]\r\n public static void UpdateUser(ReducerContext ctx, int id, string name, int age, bool active)\r\n {\r\n ctx.Db.User.Id.Update(new User { Id = id, Name = name, Age = age, Active = active });\r\n }\r\n}\r\n",
- "syntax": "csharp"
- },
- "t_006_delete": {
- "answer": "using SpacetimeDB;\r\n\r\npublic static partial class Module\r\n{\r\n [Table(Accessor = \"User\")]\r\n public partial struct User\r\n {\r\n [PrimaryKey] public int Id;\r\n public string Name;\r\n public int Age;\r\n public bool Active;\r\n }\r\n\r\n [Reducer]\r\n public static void DeleteUser(ReducerContext ctx, int id)\r\n {\r\n ctx.Db.User.Id.Delete(id);\r\n }\r\n}\r\n",
- "syntax": "csharp"
- },
- "t_007_crud": {
- "answer": "using SpacetimeDB;\r\n\r\npublic static partial class Module\r\n{\r\n [Table(Accessor = \"User\")]\r\n public partial struct User\r\n {\r\n [PrimaryKey] public int Id;\r\n public string Name;\r\n public int Age;\r\n public bool Active;\r\n }\r\n\r\n [Reducer]\r\n public static void Crud(ReducerContext ctx)\r\n {\r\n ctx.Db.User.Insert(new User { Id = 1, Name = \"Alice\", Age = 30, Active = true });\r\n ctx.Db.User.Insert(new User { Id = 2, Name = \"Bob\", Age = 22, Active = false });\r\n ctx.Db.User.Id.Update(new User { Id = 1, Name = \"Alice2\", Age = 31, Active = false });\r\n ctx.Db.User.Id.Delete(2);\r\n }\r\n}\r\n",
- "syntax": "csharp"
- },
- "t_008_index_lookup": {
- "answer": "using SpacetimeDB;\r\n\r\npublic static partial class Module\r\n{\r\n [Table(Accessor = \"User\")]\r\n public partial struct User\r\n {\r\n [PrimaryKey] public int Id;\r\n public string Name;\r\n public int Age;\r\n public bool Active;\r\n }\r\n\r\n [Table(Accessor = \"Result\")]\r\n public partial struct Result\r\n {\r\n [PrimaryKey] public int Id;\r\n public string Name;\r\n }\r\n\r\n [Reducer]\r\n public static void LookupUserName(ReducerContext ctx, int id)\r\n {\r\n var u = ctx.Db.User.Id.Find(id);\r\n if (u.HasValue)\r\n {\r\n var row = u.Value;\r\n ctx.Db.Result.Insert(new Result { Id = row.Id, Name = row.Name });\r\n }\r\n }\r\n}\r\n",
- "syntax": "csharp"
- },
- "t_009_init": {
- "answer": "using SpacetimeDB;\r\n\r\npublic static partial class Module\r\n{\r\n [Table(Accessor = \"User\")]\r\n public partial struct User\r\n {\r\n [PrimaryKey] public int Id;\r\n public string Name;\r\n public int Age;\r\n public bool Active;\r\n }\r\n\r\n [Reducer(ReducerKind.Init)]\r\n public static void Init(ReducerContext ctx)\r\n {\r\n ctx.Db.User.Insert(new User { Id = 1, Name = \"Alice\", Age = 30, Active = true });\r\n ctx.Db.User.Insert(new User { Id = 2, Name = \"Bob\", Age = 22, Active = false });\r\n }\r\n}\r\n",
- "syntax": "csharp"
- },
- "t_010_connect": {
- "answer": "using SpacetimeDB;\r\n\r\npublic static partial class Module\r\n{\r\n [Table(Accessor = \"Event\")]\r\n public partial struct Event\r\n {\r\n [PrimaryKey, AutoInc] public int Id;\r\n public string Kind;\r\n }\r\n\r\n [Reducer(ReducerKind.ClientConnected)]\r\n public static void ClientConnected(ReducerContext ctx)\r\n {\r\n ctx.Db.Event.Insert(new Event { Kind = \"connected\" });\r\n }\r\n\r\n [Reducer(ReducerKind.ClientDisconnected)]\r\n public static void ClientDisconnected(ReducerContext ctx)\r\n {\r\n ctx.Db.Event.Insert(new Event { Kind = \"disconnected\" });\r\n }\r\n}\r\n",
- "syntax": "csharp"
- },
- "t_011_helper_function": {
- "answer": "using SpacetimeDB;\r\n\r\npublic static partial class Module\r\n{\r\n [Table(Accessor = \"Result\")]\r\n public partial struct Result\r\n {\r\n [PrimaryKey] public int Id;\r\n public int Sum;\r\n }\r\n\r\n static int Add(int a, int b) => a + b;\r\n\r\n [Reducer]\r\n public static void ComputeSum(ReducerContext ctx, int id, int a, int b)\r\n {\r\n ctx.Db.Result.Insert(new Result { Id = id, Sum = Add(a, b) });\r\n }\r\n}\r\n",
- "syntax": "csharp"
- },
- "t_012_spacetime_product_type": {
- "answer": "using SpacetimeDB;\r\n\r\npublic static partial class Module\r\n{\r\n [Type]\r\n public partial struct Score\r\n {\r\n public int Left;\r\n public int Right;\r\n }\r\n \r\n [Table(Accessor = \"Result\", Public = true)]\r\n public partial struct Result\r\n {\r\n [PrimaryKey] public int Id;\r\n public Score Value;\r\n }\r\n\r\n [Reducer]\r\n public static void SetScore(ReducerContext ctx, int id, int left, int right)\r\n {\r\n ctx.Db.Result.Insert(new Result { Id = id, Value = new Score { Left = left, Right = right } });\r\n }\r\n}\r\n",
- "syntax": "csharp"
- },
- "t_013_spacetime_sum_type": {
- "answer": "using SpacetimeDB;\r\n\r\npublic static partial class Module\r\n{\r\n [Type]\r\n public partial struct Circle { public int Radius; }\r\n\r\n [Type]\r\n public partial struct Rectangle { public int Width; public int Height; }\r\n\r\n [Type]\r\n public partial record Shape : TaggedEnum<(Circle Circle, Rectangle Rectangle)> {}\r\n\r\n [Table(Accessor = \"Result\")]\r\n public partial struct Result\r\n {\r\n [PrimaryKey] public int Id;\r\n public Shape Value;\r\n }\r\n\r\n [Reducer]\r\n public static void SetCircle(ReducerContext ctx, int id, int radius)\r\n {\r\n ctx.Db.Result.Insert(new Result { Id = id, Value = new Shape.Circle(new Circle { Radius = radius }) });\r\n }\r\n}\r\n",
- "syntax": "csharp"
- },
- "t_014_elementary_columns": {
- "answer": "using SpacetimeDB;\r\n\r\npublic static partial class Module\r\n{\r\n [Table(Accessor = \"Primitive\")]\r\n public partial struct Primitive\r\n {\r\n [PrimaryKey] public int Id;\r\n public int Count;\r\n public long Total;\r\n public float Price;\r\n public double Ratio;\r\n public bool Active;\r\n public string Name;\r\n }\r\n\r\n [Reducer]\r\n public static void Seed(ReducerContext ctx)\r\n {\r\n ctx.Db.Primitive.Insert(new Primitive {\r\n Id = 1,\r\n Count = 2,\r\n Total = 3000000000,\r\n Price = 1.5f,\r\n Ratio = 2.25,\r\n Active = true,\r\n Name = \"Alice\"\r\n });\r\n }\r\n}\r\n",
- "syntax": "csharp"
- },
- "t_015_product_type_columns": {
- "answer": "using SpacetimeDB;\r\n\r\npublic static partial class Module\r\n{\r\n [Type]\r\n public partial struct Address\r\n {\r\n public string Street;\r\n public int Zip;\r\n }\r\n\r\n [Type]\r\n public partial struct Position\r\n {\r\n public int X;\r\n public int Y;\r\n }\r\n\r\n [Table(Accessor = \"Profile\", Public = true)]\r\n public partial struct Profile\r\n {\r\n [PrimaryKey] public int Id;\r\n public Address Home;\r\n public Address Work;\r\n public Position Pos;\r\n }\r\n\r\n [Reducer]\r\n public static void Seed(ReducerContext ctx)\r\n {\r\n ctx.Db.Profile.Insert(new Profile {\r\n Id = 1,\r\n Home = new Address { Street = \"1 Main\", Zip = 11111 },\r\n Work = new Address { Street = \"2 Broad\", Zip = 22222 },\r\n Pos = new Position { X = 7, Y = 9 }\r\n });\r\n }\r\n}\r\n",
- "syntax": "csharp"
- },
- "t_016_sum_type_columns": {
- "answer": "using SpacetimeDB;\r\n\r\npublic static partial class Module\r\n{\r\n [Type]\r\n public partial struct Circle { public int Radius; }\r\n\r\n [Type]\r\n public partial struct Rectangle { public int Width; public int Height; }\r\n\r\n [Type]\r\n public partial record Shape : TaggedEnum<(Circle Circle, Rectangle Rectangle)> {}\r\n\r\n [Table(Accessor = \"Drawing\")]\r\n public partial struct Drawing\r\n {\r\n [PrimaryKey] public int Id;\r\n public Shape A;\r\n public Shape B;\r\n }\r\n\r\n [Reducer]\r\n public static void Seed(ReducerContext ctx)\r\n {\r\n ctx.Db.Drawing.Insert(new Drawing {\r\n Id = 1,\r\n A = new Shape.Circle(new Circle { Radius = 10 }),\r\n B = new Shape.Rectangle(new Rectangle { Width = 4, Height = 6 })\r\n });\r\n }\r\n}\r\n",
- "syntax": "csharp"
- },
- "t_017_scheduled_columns": {
- "answer": "using SpacetimeDB;\r\n\r\npublic static partial class Module\r\n{\r\n [Table(Accessor = \"TickTimer\", Scheduled = nameof(Tick), ScheduledAt = nameof(ScheduledAt))]\r\n public partial struct TickTimer\r\n {\r\n [PrimaryKey, AutoInc] public ulong ScheduledId;\r\n public ScheduleAt ScheduledAt;\r\n }\r\n\r\n [Reducer]\r\n public static void Tick(ReducerContext ctx, TickTimer schedule) { }\r\n\r\n [Reducer(ReducerKind.Init)]\r\n public static void Init(ReducerContext ctx)\r\n {\r\n var interval = new TimeDuration { Microseconds = 50_000 };\r\n ctx.Db.TickTimer.Insert(new TickTimer\r\n {\r\n ScheduledId = 0,\r\n ScheduledAt = new ScheduleAt.Interval(interval)\r\n });\r\n }\r\n}\r\n",
- "syntax": "csharp"
- },
- "t_018_constraints": {
- "answer": "using SpacetimeDB;\r\n\r\npublic static partial class Module\r\n{\r\n [SpacetimeDB.Table(Accessor = \"Account\", Public = true)]\r\n [SpacetimeDB.Index.BTree(Accessor = \"by_name\", Columns = [nameof(Name)])]\r\n public partial struct Account\r\n {\r\n [SpacetimeDB.PrimaryKey] public int Id;\r\n [SpacetimeDB.Unique] public string Email;\r\n public string Name;\r\n }\r\n\r\n [SpacetimeDB.Reducer]\r\n public static void Seed(ReducerContext ctx)\r\n {\r\n ctx.Db.Account.Insert(new Account { Id = 1, Email = \"a@example.com\", Name = \"Alice\" });\r\n ctx.Db.Account.Insert(new Account { Id = 2, Email = \"b@example.com\", Name = \"Bob\" });\r\n }\r\n}\r\n",
- "syntax": "csharp"
- },
- "t_019_many_to_many": {
- "answer": "using SpacetimeDB;\r\n\r\npublic static partial class Module\r\n{\r\n [Table(Accessor = \"User\")]\r\n public partial struct User\r\n {\r\n [PrimaryKey] public int UserId;\r\n public string Name;\r\n }\r\n\r\n [Table(Accessor = \"Group\")]\r\n public partial struct Group\r\n {\r\n [PrimaryKey] public int GroupId;\r\n public string Title;\r\n }\r\n\r\n [Table(Accessor = \"Membership\")]\r\n [SpacetimeDB.Index.BTree(Accessor = \"by_user\", Columns = new[] { nameof(UserId) })]\r\n [SpacetimeDB.Index.BTree(Accessor = \"by_group\", Columns = new[] { nameof(GroupId) })]\r\n public partial struct Membership\r\n {\r\n [PrimaryKey] public int Id;\r\n public int UserId;\r\n public int GroupId;\r\n }\r\n\r\n [Reducer]\r\n public static void Seed(ReducerContext ctx)\r\n {\r\n ctx.Db.User.Insert(new User { UserId = 1, Name = \"Alice\" });\r\n ctx.Db.User.Insert(new User { UserId = 2, Name = \"Bob\" });\r\n\r\n ctx.Db.Group.Insert(new Group { GroupId = 10, Title = \"Admin\" });\r\n ctx.Db.Group.Insert(new Group { GroupId = 20, Title = \"Dev\" });\r\n\r\n ctx.Db.Membership.Insert(new Membership { Id = 1, UserId = 1, GroupId = 10 });\r\n ctx.Db.Membership.Insert(new Membership { Id = 2, UserId = 1, GroupId = 20 });\r\n ctx.Db.Membership.Insert(new Membership { Id = 3, UserId = 2, GroupId = 20 });\r\n }\r\n}\r\n",
- "syntax": "csharp"
- },
- "t_020_ecs": {
- "answer": "using SpacetimeDB;\r\n\r\npublic static partial class Module\r\n{\r\n [Table(Accessor = \"Entity\")]\r\n public partial struct Entity { [PrimaryKey] public int Id; }\r\n\r\n [Table(Accessor = \"Position\")]\r\n public partial struct Position\r\n {\r\n [PrimaryKey] public int EntityId;\r\n public int X;\r\n public int Y;\r\n }\r\n\r\n [Table(Accessor = \"Velocity\")]\r\n public partial struct Velocity\r\n {\r\n [PrimaryKey] public int EntityId;\r\n public int VX;\r\n public int VY;\r\n }\r\n\r\n [Table(Accessor = \"NextPosition\")]\r\n public partial struct NextPosition\r\n {\r\n [PrimaryKey] public int EntityId;\r\n public int X;\r\n public int Y;\r\n }\r\n\r\n [Reducer]\r\n public static void Seed(ReducerContext ctx)\r\n {\r\n ctx.Db.Entity.Insert(new Entity { Id = 1 });\r\n ctx.Db.Entity.Insert(new Entity { Id = 2 });\r\n\r\n ctx.Db.Position.Insert(new Position { EntityId = 1, X = 0, Y = 0 });\r\n ctx.Db.Position.Insert(new Position { EntityId = 2, X = 10, Y = 0 });\r\n\r\n ctx.Db.Velocity.Insert(new Velocity { EntityId = 1, VX = 1, VY = 0 });\r\n ctx.Db.Velocity.Insert(new Velocity { EntityId = 2, VX = -2, VY = 3 });\r\n }\r\n\r\n [Reducer]\r\n public static void Step(ReducerContext ctx)\r\n {\r\n foreach (var p in ctx.Db.Position.Iter())\r\n {\r\n var velOpt = ctx.Db.Velocity.EntityId.Find(p.EntityId);\r\n if (!velOpt.HasValue) continue;\r\n\r\n var np = new NextPosition {\r\n EntityId = p.EntityId,\r\n X = p.X + velOpt.Value.VX,\r\n Y = p.Y + velOpt.Value.VY\r\n };\r\n\r\n if (ctx.Db.NextPosition.EntityId.Find(p.EntityId).HasValue)\r\n ctx.Db.NextPosition.EntityId.Update(np);\r\n else\r\n ctx.Db.NextPosition.Insert(np);\r\n }\r\n }\r\n}\r\n",
- "syntax": "csharp"
- },
- "t_021_multi_column_index": {
- "answer": "using SpacetimeDB;\r\n\r\npublic static partial class Module\r\n{\r\n [Table(Accessor = \"Log\")]\r\n [SpacetimeDB.Index.BTree(Accessor = \"by_user_day\", Columns = new[] { nameof(UserId), nameof(Day) })]\r\n public partial struct Log\r\n {\r\n [PrimaryKey] public int Id;\r\n public int UserId;\r\n public int Day;\r\n public string Message;\r\n }\r\n\r\n [Reducer]\r\n public static void Seed(ReducerContext ctx)\r\n {\r\n ctx.Db.Log.Insert(new Log { Id = 1, UserId = 7, Day = 1, Message = \"a\" });\r\n ctx.Db.Log.Insert(new Log { Id = 2, UserId = 7, Day = 2, Message = \"b\" });\r\n ctx.Db.Log.Insert(new Log { Id = 3, UserId = 9, Day = 1, Message = \"c\" });\r\n }\r\n}\r\n",
- "syntax": "csharp"
- }
- }
- },
- {
- "lang": "rust",
- "modes": [
- {
- "mode": "docs",
- "hash": "cb5bf60a6d17e761b5fcec5d8e69bafbaf56602e570522e688d4da57973c7ea8",
- "models": [
- {
- "name": "Grok 4",
- "route_api_model": "grok-4",
- "tasks": {
- "t_000_empty_reducers": {
- "hash": "9d3acb3d6846ea1568d76e4b62ded3705f5a1dea72331bd2cbcfb5aae9d6761c",
- "task": "t_000_empty_reducers",
- "lang": "rust",
- "golden_published": true,
- "model_name": "Grok 4",
- "total_tests": 1,
- "passed_tests": 1,
- "category": "basics",
- "route_api_model": "grok-4",
- "scorer_details": {
- "schema_parity": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "reducers_diff": null,
- "reducers_equal": true,
- "tables_diff": null,
- "tables_equal": true
- }
- }
- },
- "vendor": "xai"
- },
- "t_001_basic_tables": {
- "hash": "9d3acb3d6846ea1568d76e4b62ded3705f5a1dea72331bd2cbcfb5aae9d6761c",
- "task": "t_001_basic_tables",
- "lang": "rust",
- "golden_published": true,
- "model_name": "Grok 4",
- "total_tests": 1,
- "passed_tests": 1,
- "category": "basics",
- "route_api_model": "grok-4",
- "scorer_details": {
- "schema_parity": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "reducers_diff": null,
- "reducers_equal": true,
- "tables_diff": null,
- "tables_equal": true
- }
- }
- },
- "vendor": "xai"
- },
- "t_002_scheduled_table": {
- "hash": "9d3acb3d6846ea1568d76e4b62ded3705f5a1dea72331bd2cbcfb5aae9d6761c",
- "task": "t_002_scheduled_table",
- "lang": "rust",
- "golden_published": true,
- "model_name": "Grok 4",
- "total_tests": 1,
- "passed_tests": 1,
- "category": "basics",
- "route_api_model": "grok-4",
- "scorer_details": {
- "schema_parity": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "reducers_diff": null,
- "reducers_equal": true,
- "tables_diff": null,
- "tables_equal": true
- }
- }
- },
- "vendor": "xai"
- },
- "t_003_struct_in_table": {
- "hash": "9d3acb3d6846ea1568d76e4b62ded3705f5a1dea72331bd2cbcfb5aae9d6761c",
- "task": "t_003_struct_in_table",
- "lang": "rust",
- "golden_published": true,
- "model_name": "Grok 4",
- "total_tests": 1,
- "passed_tests": 1,
- "category": "basics",
- "route_api_model": "grok-4",
- "scorer_details": {
- "schema_parity": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "reducers_diff": null,
- "reducers_equal": true,
- "tables_diff": null,
- "tables_equal": true
- }
- }
- },
- "vendor": "xai"
- },
- "t_004_insert": {
- "hash": "9d3acb3d6846ea1568d76e4b62ded3705f5a1dea72331bd2cbcfb5aae9d6761c",
- "task": "t_004_insert",
- "lang": "rust",
- "golden_published": true,
- "model_name": "Grok 4",
- "total_tests": 2,
- "passed_tests": 2,
- "category": "basics",
- "route_api_model": "grok-4",
- "scorer_details": {
- "schema_parity": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "reducers_diff": null,
- "reducers_equal": true,
- "tables_diff": null,
- "tables_equal": true
- }
- },
- "data_parity_insert_user": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "args": [
- 1,
- "Alice",
- 30,
- true
- ],
- "golden_out": "id | name | age | active ----+---------+-----+-------- 1 | \"Alice\" | 30 | true",
- "llm_out": "id | name | age | active ----+---------+-----+-------- 1 | \"Alice\" | 30 | true",
- "query": "SELECT id, name, age, active FROM user WHERE id=1",
- "reducer": "insert_user"
- }
- }
- },
- "vendor": "xai"
- },
- "t_005_update": {
- "hash": "9d3acb3d6846ea1568d76e4b62ded3705f5a1dea72331bd2cbcfb5aae9d6761c",
- "task": "t_005_update",
- "lang": "rust",
- "golden_published": true,
- "model_name": "Grok 4",
- "total_tests": 3,
- "passed_tests": 3,
- "category": "basics",
- "route_api_model": "grok-4",
- "scorer_details": {
- "data_parity_update_user": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "args": [
- 1,
- "Alice2",
- 31,
- false
- ],
- "golden_out": "id | name | age | active ----+----------+-----+-------- 1 | \"Alice2\" | 31 | false",
- "llm_out": "id | name | age | active ----+----------+-----+-------- 1 | \"Alice2\" | 31 | false",
- "query": "SELECT id, name, age, active FROM user WHERE id=1",
- "reducer": "update_user"
- }
- },
- "schema_parity": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "reducers_diff": null,
- "reducers_equal": true,
- "tables_diff": null,
- "tables_equal": true
- }
- },
- "seed_users_row": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "sql": "INSERT INTO user(id, name, age, active) VALUES (1, 'Alice', 30, true)"
- }
- }
- },
- "vendor": "xai"
- },
- "t_006_delete": {
- "hash": "9d3acb3d6846ea1568d76e4b62ded3705f5a1dea72331bd2cbcfb5aae9d6761c",
- "task": "t_006_delete",
- "lang": "rust",
- "golden_published": true,
- "model_name": "Grok 4",
- "total_tests": 3,
- "passed_tests": 3,
- "category": "basics",
- "route_api_model": "grok-4",
- "scorer_details": {
- "schema_parity": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "reducers_diff": null,
- "reducers_equal": true,
- "tables_diff": null,
- "tables_equal": true
- }
- },
- "seed_users_row": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "sql": "INSERT INTO user(id, name, age, active) VALUES (1, 'Alice', 30, true)"
- }
- },
- "delete_user_count_zero": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "actual": 0,
- "expected": 0,
- "sql": "SELECT COUNT(*) AS n FROM user WHERE id=1"
- }
- }
- },
- "vendor": "xai"
- },
- "t_007_crud": {
- "hash": "9d3acb3d6846ea1568d76e4b62ded3705f5a1dea72331bd2cbcfb5aae9d6761c",
- "task": "t_007_crud",
- "lang": "rust",
- "golden_published": true,
- "model_name": "Grok 4",
- "total_tests": 4,
- "passed_tests": 4,
- "category": "basics",
- "route_api_model": "grok-4",
- "scorer_details": {
- "crud_row_id2_deleted": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "actual": 0,
- "expected": 0,
- "sql": "SELECT COUNT(*) AS n FROM user WHERE id=2"
- }
- },
- "schema_parity": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "reducers_diff": null,
- "reducers_equal": true,
- "tables_diff": null,
- "tables_equal": true
- }
- },
- "crud_row_id1_parity": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "args": [],
- "golden_out": "id | name | age | active ----+----------+-----+-------- 1 | \"Alice2\" | 31 | false",
- "llm_out": "id | name | age | active ----+----------+-----+-------- 1 | \"Alice2\" | 31 | false",
- "query": "SELECT id, name, age, active FROM user WHERE id=1",
- "reducer": "crud"
- }
- },
- "crud_total_count_one": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "actual": 1,
- "expected": 1,
- "sql": "SELECT COUNT(*) AS n FROM user"
- }
- }
- },
- "vendor": "xai"
- },
- "t_008_index_lookup": {
- "hash": "9d3acb3d6846ea1568d76e4b62ded3705f5a1dea72331bd2cbcfb5aae9d6761c",
- "task": "t_008_index_lookup",
- "lang": "rust",
- "golden_published": true,
- "model_name": "Grok 4",
- "total_tests": 3,
- "passed_tests": 3,
- "category": "basics",
- "route_api_model": "grok-4",
- "scorer_details": {
- "index_lookup_projection_parity": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "args": [
- 1
- ],
- "golden_out": "id | name ----+--------- 1 | \"Alice\"",
- "llm_out": "id | name ----+--------- 1 | \"Alice\"",
- "query": "SELECT id, name FROM result WHERE id=1",
- "reducer": "lookup_user_name"
- }
- },
- "schema_parity": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "reducers_diff": null,
- "reducers_equal": true,
- "tables_diff": null,
- "tables_equal": true
- }
- },
- "seed_user_row": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "sql": "INSERT INTO user(id, name, age, active) VALUES (1, 'Alice', 30, true)"
- }
- }
- },
- "vendor": "xai"
- },
- "t_009_init": {
- "hash": "9d3acb3d6846ea1568d76e4b62ded3705f5a1dea72331bd2cbcfb5aae9d6761c",
- "task": "t_009_init",
- "lang": "rust",
- "golden_published": true,
- "model_name": "Grok 4",
- "total_tests": 4,
- "passed_tests": 4,
- "category": "basics",
- "route_api_model": "grok-4",
- "scorer_details": {
- "init_seed_alice": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "actual": 1,
- "expected": 1,
- "sql": "SELECT COUNT(*) AS n FROM user WHERE id=1 AND name='Alice' AND age=30 AND active=true"
- }
- },
- "init_total_two": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "actual": 2,
- "expected": 2,
- "sql": "SELECT COUNT(*) AS n FROM user"
- }
- },
- "schema_parity": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "reducers_diff": null,
- "reducers_equal": true,
- "tables_diff": null,
- "tables_equal": true
- }
- },
- "init_seed_bob": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "actual": 1,
- "expected": 1,
- "sql": "SELECT COUNT(*) AS n FROM user WHERE id=2 AND name='Bob' AND age=22 AND active=false"
- }
- }
- },
- "vendor": "xai"
- },
- "t_010_connect": {
- "hash": "9d3acb3d6846ea1568d76e4b62ded3705f5a1dea72331bd2cbcfb5aae9d6761c",
- "task": "t_010_connect",
- "lang": "rust",
- "golden_published": true,
- "model_name": "Grok 4",
- "total_tests": 1,
- "passed_tests": 1,
- "category": "basics",
- "route_api_model": "grok-4",
- "scorer_details": {
- "schema_parity": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "reducers_diff": null,
- "reducers_equal": true,
- "tables_diff": null,
- "tables_equal": true
- }
- }
- },
- "vendor": "xai"
- },
- "t_011_helper_function": {
- "hash": "9d3acb3d6846ea1568d76e4b62ded3705f5a1dea72331bd2cbcfb5aae9d6761c",
- "task": "t_011_helper_function",
- "lang": "rust",
- "golden_published": false,
- "model_name": "Grok 4",
- "total_tests": 3,
- "passed_tests": 0,
- "llm_output": "use spacetimedb::{table, reducer, ReducerContext};\n\n#[spacetimedb::table(accessor = result)]\npub struct ResultRow {\n #[primary_key]\n id: i32,\n sum: i32,\n}\n\nfn add(a: i32, b: i32) -> i32 {\n a + b\n}\n\n#[reducer]\npub fn compute_sum(ctx: &ReducerContext, id: i32, a: i32, b: i32) {\n ctx.db.result().insert(ResultRow { id, sum: add(a, b) });\n}",
- "category": "basics",
- "route_api_model": "grok-4",
- "scorer_details": {
- "publish_error": {
- "pass": false,
- "partial": 0.0,
- "notes": {
- "error": "spacetime publish failed (exit=1)\n--- stderr ---\n Updating crates.io index\n Locking 104 packages to latest compatible versions\n Adding generic-array v0.14.7 (available: v0.14.9)\n Compiling proc-macro2 v1.0.106\n Compiling unicode-ident v1.0.24\n Compiling quote v1.0.44\n Compiling version_check v0.9.5\n Compiling typenum v1.19.0\n Compiling autocfg v1.5.0\n Compiling heck v0.5.0\n Compiling serde_core v1.0.228\n Compiling cfg-if v1.0.4\n Compiling rustversion v1.0.22\n Compiling serde v1.0.228\n Compiling itoa v1.0.17\n Compiling find-msvc-tools v0.1.9\n Compiling either v1.15.0\n Compiling shlex v1.3.0\n Compiling thiserror v1.0.69\n Compiling nohash-hasher v0.2.0\n Compiling bitflags v2.11.0\n Compiling anyhow v1.0.102\n Compiling zerocopy v0.8.39\n Compiling heck v0.4.1\n Compiling bytes v1.11.1\n Compiling humantime v2.3.0\n Compiling convert_case v0.4.0\n Compiling ryu v1.0.23\n Compiling keccak v0.1.6\n Compiling arrayvec v0.7.6\n Compiling second-stack v0.3.5\n Compiling smallvec v1.15.1\n Compiling bytemuck v1.25.0\n Compiling getrandom v0.2.17\n Compiling constant_time_eq v0.4.2\n Compiling itertools v0.12.1\n Compiling hex v0.4.3\n Compiling zmij v1.0.21\n Compiling arrayref v0.3.9\n Compiling spacetimedb-lib v2.0.0 (D:\\Development\\ClockworkLabs\\SpacetimeDB\\SpacetimeDBPrivate\\public\\crates\\lib)\n Compiling uuid v1.21.0\n Compiling rand_core v0.6.4\n Compiling log v0.4.29\n Compiling num-traits v0.2.19\n Compiling serde_json v1.0.149\n Compiling memchr v2.8.0\n Compiling generic-array v0.14.7\n Compiling scoped-tls v1.0.1\n Compiling cc v1.2.56\n Compiling http v1.4.0\n Compiling castaway v0.2.4\n Compiling lean_string v0.5.1\n Compiling syn v2.0.117\n Compiling blake3 v1.8.3\n Compiling approx v0.3.2\n Compiling chrono v0.4.43\n Compiling decorum v0.3.1\n Compiling crypto-common v0.1.7\n Compiling block-buffer v0.10.4\n Compiling digest v0.10.7\n Compiling sha3 v0.10.8\n Compiling ethnum v1.5.2\n Compiling enum-as-inner v0.6.1\n Compiling thiserror-impl v1.0.69\n Compiling derive_more v0.99.20\n Compiling ppv-lite86 v0.2.21\n Compiling rand_chacha v0.3.1\n Compiling spacetimedb-primitives v2.0.0 (D:\\Development\\ClockworkLabs\\SpacetimeDB\\SpacetimeDBPrivate\\public\\crates\\primitives)\n Compiling rand v0.8.5\n Compiling spacetimedb-bindings-sys v2.0.0 (D:\\Development\\ClockworkLabs\\SpacetimeDB\\SpacetimeDBPrivate\\public\\crates\\bindings-sys)\n Compiling spacetimedb-bindings-macro v2.0.0 (D:\\Development\\ClockworkLabs\\SpacetimeDB\\SpacetimeDBPrivate\\public\\crates\\bindings-macro)\n Compiling spacetimedb-sats v2.0.0 (D:\\Development\\ClockworkLabs\\SpacetimeDB\\SpacetimeDBPrivate\\public\\crates\\sats)\n Compiling spacetimedb-query-builder v2.0.0 (D:\\Development\\ClockworkLabs\\SpacetimeDB\\SpacetimeDBPrivate\\public\\crates\\query-builder)\n Compiling spacetimedb v2.0.0 (D:\\Development\\ClockworkLabs\\SpacetimeDB\\SpacetimeDBPrivate\\public\\crates\\bindings)\n Compiling spacetime-module v0.1.0 (D:\\Development\\ClockworkLabs\\SpacetimeDB\\SpacetimeDBPrivate\\public\\target\\llm-runs\\basics\\t_011_helper_function\\rust\\server\\grok-4\\llm)\nwarning: unused import: `table`\n --> src\\lib.rs:2:19\n |\n2 | use spacetimedb::{table, reducer, ReducerContext};\n | ^^^^^\n |\n = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default\n\nerror[E0599]: no method named `insert` found for reference `&result__TableHandle` in the current scope\n --> src\\lib.rs:17:21\n |\n17 | ctx.db.result().insert(ResultRow { id, sum: add(a, b) });\n | ^^^^^^\n |\n = help: items from traits can only be used if the trait is in scope\nhelp: trait `Table` which provides `insert` is implemented but not in scope; perhaps you want to import it\n |\n 2 + use spacetimedb::Table;\n |\nhelp: there is a method `try_insert` with a similar name\n |\n17 | ctx.db.result().try_insert(ResultRow { id, sum: add(a, b) });\n | ++++\n\nFor more information about this error, try `rustc --explain E0599`.\nwarning: `spacetime-module` (lib) generated 1 warning\nerror: could not compile `spacetime-module` (lib) due to 1 previous error; 1 warning emitted\nError: command [\"cargo\", \"build\", \"--config=net.git-fetch-with-cli=true\", \"--target=wasm32-unknown-unknown\", \"--release\", \"--message-format=json-render-diagnostics\"] exited with code 101\n\n--- stdout ---\n",
- "phase": "build_or_publish"
- }
- }
- },
- "vendor": "xai"
- },
- "t_012_spacetime_product_type": {
- "hash": "9d3acb3d6846ea1568d76e4b62ded3705f5a1dea72331bd2cbcfb5aae9d6761c",
- "task": "t_012_spacetime_product_type",
- "lang": "rust",
- "golden_published": true,
- "model_name": "Grok 4",
- "total_tests": 3,
- "passed_tests": 3,
- "category": "schema",
- "route_api_model": "grok-4",
- "scorer_details": {
- "product_type_row_count": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "actual": 1,
- "expected": 1,
- "sql": "SELECT COUNT(*) AS n FROM result WHERE id=1"
- }
- },
- "schema_parity": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "reducers_diff": null,
- "reducers_equal": true,
- "tables_diff": null,
- "tables_equal": true
- }
- },
- "product_type_row_parity": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "args": [
- 1,
- 2,
- 3
- ],
- "golden_out": "id | value ----+----------------------- 1 | (left = 2, right = 3)",
- "llm_out": "id | value ----+----------------------- 1 | (left = 2, right = 3)",
- "query": "SELECT id, value FROM result WHERE id=1",
- "reducer": "set_score"
- }
- }
- },
- "vendor": "xai"
- },
- "t_013_spacetime_sum_type": {
- "hash": "9d3acb3d6846ea1568d76e4b62ded3705f5a1dea72331bd2cbcfb5aae9d6761c",
- "task": "t_013_spacetime_sum_type",
- "lang": "rust",
- "golden_published": true,
- "model_name": "Grok 4",
- "total_tests": 3,
- "passed_tests": 3,
- "category": "schema",
- "route_api_model": "grok-4",
- "scorer_details": {
- "schema_parity": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "reducers_diff": null,
- "reducers_equal": true,
- "tables_diff": null,
- "tables_equal": true
- }
- },
- "sum_type_row_parity": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "args": [
- 1,
- 10
- ],
- "golden_out": "id | value ----+--------------- 1 | (circle = 10)",
- "llm_out": "id | value ----+--------------- 1 | (circle = 10)",
- "query": "SELECT id, value FROM result WHERE id=1",
- "reducer": "set_circle"
- }
- },
- "sum_type_row_count": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "actual": 1,
- "expected": 1,
- "sql": "SELECT COUNT(*) AS n FROM result WHERE id=1"
- }
- }
- },
- "vendor": "xai"
- },
- "t_014_elementary_columns": {
- "hash": "9d3acb3d6846ea1568d76e4b62ded3705f5a1dea72331bd2cbcfb5aae9d6761c",
- "task": "t_014_elementary_columns",
- "lang": "rust",
- "golden_published": false,
- "model_name": "Grok 4",
- "total_tests": 3,
- "passed_tests": 0,
- "llm_output": "use spacetimedb::{table, reducer, ReducerContext};\n\n#[table(accessor = primitive)]\npub struct Primitive {\n #[primary_key]\n id: i32,\n count: i32,\n total: i64,\n price: f32,\n ratio: f64,\n active: bool,\n name: String,\n}\n\n#[reducer]\npub fn seed(ctx: &ReducerContext) {\n ctx.db.primitive().insert(Primitive {\n id: 1,\n count: 2,\n total: 3000000000,\n price: 1.5,\n ratio: 2.25,\n active: true,\n name: \"Alice\".to_string(),\n });\n}",
- "category": "schema",
- "route_api_model": "grok-4",
- "scorer_details": {
- "publish_error": {
- "pass": false,
- "partial": 0.0,
- "notes": {
- "error": "spacetime publish failed (exit=1)\n--- stderr ---\n Updating crates.io index\n Locking 104 packages to latest compatible versions\n Adding generic-array v0.14.7 (available: v0.14.9)\n Compiling proc-macro2 v1.0.106\n Compiling quote v1.0.44\n Compiling unicode-ident v1.0.24\n Compiling typenum v1.19.0\n Compiling version_check v0.9.5\n Compiling autocfg v1.5.0\n Compiling heck v0.5.0\n Compiling serde_core v1.0.228\n Compiling cfg-if v1.0.4\n Compiling rustversion v1.0.22\n Compiling find-msvc-tools v0.1.9\n Compiling serde v1.0.228\n Compiling either v1.15.0\n Compiling itoa v1.0.17\n Compiling shlex v1.3.0\n Compiling bitflags v2.11.0\n Compiling anyhow v1.0.102\n Compiling zerocopy v0.8.39\n Compiling nohash-hasher v0.2.0\n Compiling thiserror v1.0.69\n Compiling heck v0.4.1\n Compiling arrayvec v0.7.6\n Compiling humantime v2.3.0\n Compiling ryu v1.0.23\n Compiling keccak v0.1.6\n Compiling bytes v1.11.1\n Compiling convert_case v0.4.0\n Compiling bytemuck v1.25.0\n Compiling hex v0.4.3\n Compiling itertools v0.12.1\n Compiling spacetimedb-lib v2.0.0 (D:\\Development\\ClockworkLabs\\SpacetimeDB\\SpacetimeDBPrivate\\public\\crates\\lib)\n Compiling second-stack v0.3.5\n Compiling arrayref v0.3.9\n Compiling getrandom v0.2.17\n Compiling zmij v1.0.21\n Compiling smallvec v1.15.1\n Compiling uuid v1.21.0\n Compiling generic-array v0.14.7\n Compiling num-traits v0.2.19\n Compiling constant_time_eq v0.4.2\n Compiling serde_json v1.0.149\n Compiling log v0.4.29\n Compiling memchr v2.8.0\n Compiling scoped-tls v1.0.1\n Compiling http v1.4.0\n Compiling rand_core v0.6.4\n Compiling cc v1.2.56\n Compiling castaway v0.2.4\n Compiling lean_string v0.5.1\n Compiling syn v2.0.117\n Compiling blake3 v1.8.3\n Compiling approx v0.3.2\n Compiling chrono v0.4.43\n Compiling decorum v0.3.1\n Compiling block-buffer v0.10.4\n Compiling crypto-common v0.1.7\n Compiling digest v0.10.7\n Compiling sha3 v0.10.8\n Compiling ethnum v1.5.2\n Compiling ppv-lite86 v0.2.21\n Compiling enum-as-inner v0.6.1\n Compiling thiserror-impl v1.0.69\n Compiling derive_more v0.99.20\n Compiling rand_chacha v0.3.1\n Compiling rand v0.8.5\n Compiling spacetimedb-primitives v2.0.0 (D:\\Development\\ClockworkLabs\\SpacetimeDB\\SpacetimeDBPrivate\\public\\crates\\primitives)\n Compiling spacetimedb-bindings-sys v2.0.0 (D:\\Development\\ClockworkLabs\\SpacetimeDB\\SpacetimeDBPrivate\\public\\crates\\bindings-sys)\n Compiling spacetimedb-bindings-macro v2.0.0 (D:\\Development\\ClockworkLabs\\SpacetimeDB\\SpacetimeDBPrivate\\public\\crates\\bindings-macro)\n Compiling spacetimedb-sats v2.0.0 (D:\\Development\\ClockworkLabs\\SpacetimeDB\\SpacetimeDBPrivate\\public\\crates\\sats)\n Compiling spacetimedb-query-builder v2.0.0 (D:\\Development\\ClockworkLabs\\SpacetimeDB\\SpacetimeDBPrivate\\public\\crates\\query-builder)\n Compiling spacetimedb v2.0.0 (D:\\Development\\ClockworkLabs\\SpacetimeDB\\SpacetimeDBPrivate\\public\\crates\\bindings)\n Compiling spacetime-module v0.1.0 (D:\\Development\\ClockworkLabs\\SpacetimeDB\\SpacetimeDBPrivate\\public\\target\\llm-runs\\schema\\t_014_elementary_columns\\rust\\server\\grok-4\\llm)\nerror[E0599]: no method named `insert` found for reference `&primitive__TableHandle` in the current scope\n --> src\\lib.rs:18:24\n |\n18 | ctx.db.primitive().insert(Primitive {\n | -------------------^^^^^^\n |\n = help: items from traits can only be used if the trait is in scope\nhelp: trait `Table` which provides `insert` is implemented but not in scope; perhaps you want to import it\n |\n 2 + use spacetimedb::Table;\n |\nhelp: there is a method `try_insert` with a similar name\n |\n18 | ctx.db.primitive().try_insert(Primitive {\n | ++++\n\nFor more information about this error, try `rustc --explain E0599`.\nerror: could not compile `spacetime-module` (lib) due to 1 previous error\nError: command [\"cargo\", \"build\", \"--config=net.git-fetch-with-cli=true\", \"--target=wasm32-unknown-unknown\", \"--release\", \"--message-format=json-render-diagnostics\"] exited with code 101\n\n--- stdout ---\n",
- "phase": "build_or_publish"
- }
- }
- },
- "vendor": "xai"
- },
- "t_015_product_type_columns": {
- "hash": "9d3acb3d6846ea1568d76e4b62ded3705f5a1dea72331bd2cbcfb5aae9d6761c",
- "task": "t_015_product_type_columns",
- "lang": "rust",
- "golden_published": true,
- "model_name": "Grok 4",
- "total_tests": 3,
- "passed_tests": 3,
- "category": "schema",
- "route_api_model": "grok-4",
- "scorer_details": {
- "product_type_columns_row_parity": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "args": [],
- "golden_out": "id | home | work | pos ----+----------------------------------+-----------------------------------+---------------- 1 | (street = \"1 Main\", zip = 11111) | (street = \"2 Broad\", zip = 22222) | (x = 7, y = 9)",
- "llm_out": "id | home | work | pos ----+----------------------------------+-----------------------------------+---------------- 1 | (street = \"1 Main\", zip = 11111) | (street = \"2 Broad\", zip = 22222) | (x = 7, y = 9)",
- "query": "SELECT id, home, work, pos FROM profile WHERE id=1",
- "reducer": "seed"
- }
- },
- "schema_parity": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "reducers_diff": null,
- "reducers_equal": true,
- "tables_diff": null,
- "tables_equal": true
- }
- },
- "product_type_columns_row_count": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "actual": 1,
- "expected": 1,
- "sql": "SELECT COUNT(*) AS n FROM profile WHERE id=1"
- }
- }
- },
- "vendor": "xai"
- },
- "t_016_sum_type_columns": {
- "hash": "9d3acb3d6846ea1568d76e4b62ded3705f5a1dea72331bd2cbcfb5aae9d6761c",
- "task": "t_016_sum_type_columns",
- "lang": "rust",
- "golden_published": true,
- "model_name": "Grok 4",
- "total_tests": 3,
- "passed_tests": 3,
- "category": "schema",
- "route_api_model": "grok-4",
- "scorer_details": {
- "sum_type_columns_row_parity": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "args": [],
- "golden_out": "id | a | b ----+---------------+--------------------------------------- 1 | (circle = 10) | (rectangle = (width = 4, height = 6))",
- "llm_out": "id | a | b ----+---------------+--------------------------------------- 1 | (circle = 10) | (rectangle = (width = 4, height = 6))",
- "query": "SELECT id, a, b FROM drawing WHERE id=1",
- "reducer": "seed"
- }
- },
- "schema_parity": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "reducers_diff": null,
- "reducers_equal": true,
- "tables_diff": null,
- "tables_equal": true
- }
- },
- "sum_type_columns_row_count": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "actual": 1,
- "expected": 1,
- "sql": "SELECT COUNT(*) AS n FROM drawing WHERE id=1"
- }
- }
- },
- "vendor": "xai"
- },
- "t_017_scheduled_columns": {
- "hash": "9d3acb3d6846ea1568d76e4b62ded3705f5a1dea72331bd2cbcfb5aae9d6761c",
- "task": "t_017_scheduled_columns",
- "lang": "rust",
- "golden_published": true,
- "model_name": "Grok 4",
- "total_tests": 2,
- "passed_tests": 2,
- "category": "schema",
- "route_api_model": "grok-4",
- "scorer_details": {
- "schema_parity": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "reducers_diff": null,
- "reducers_equal": true,
- "tables_diff": null,
- "tables_equal": true
- }
- },
- "scheduled_seeded_one_row": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "actual": 1,
- "expected": 1,
- "sql": "SELECT COUNT(*) AS n FROM tick_timer WHERE scheduled_id>=0"
- }
- }
- },
- "vendor": "xai"
- },
- "t_018_constraints": {
- "hash": "9d3acb3d6846ea1568d76e4b62ded3705f5a1dea72331bd2cbcfb5aae9d6761c",
- "task": "t_018_constraints",
- "lang": "rust",
- "golden_published": true,
- "model_name": "Grok 4",
- "total_tests": 3,
- "passed_tests": 3,
- "category": "schema",
- "route_api_model": "grok-4",
- "scorer_details": {
- "schema_parity": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "reducers_diff": null,
- "reducers_equal": true,
- "tables_diff": null,
- "tables_equal": true
- }
- },
- "constraints_row_parity_after_seed": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "args": [],
- "golden_out": "id | email | name ----+-----------------+--------- 1 | \"a@example.com\" | \"Alice\"",
- "llm_out": "id | email | name ----+-----------------+--------- 1 | \"a@example.com\" | \"Alice\"",
- "query": "SELECT id, email, name FROM account WHERE id=1",
- "reducer": "seed"
- }
- },
- "constraints_seed_two_rows": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "actual": 1,
- "expected": 1,
- "sql": "SELECT COUNT(*) AS n FROM account WHERE id=2"
- }
- }
- },
- "vendor": "xai"
- },
- "t_019_many_to_many": {
- "hash": "9d3acb3d6846ea1568d76e4b62ded3705f5a1dea72331bd2cbcfb5aae9d6761c",
- "task": "t_019_many_to_many",
- "lang": "rust",
- "golden_published": true,
- "model_name": "Grok 4",
- "total_tests": 5,
- "passed_tests": 5,
- "category": "schema",
- "route_api_model": "grok-4",
- "scorer_details": {
- "m2m_has_1_20": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "actual": 1,
- "expected": 1,
- "sql": "SELECT COUNT(*) AS n FROM membership WHERE user_id=1 AND group_id=20"
- }
- },
- "m2m_has_2_20": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "actual": 1,
- "expected": 1,
- "sql": "SELECT COUNT(*) AS n FROM membership WHERE user_id=2 AND group_id=20"
- }
- },
- "schema_parity": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "reducers_diff": null,
- "reducers_equal": true,
- "tables_diff": null,
- "tables_equal": true
- }
- },
- "m2m_has_1_10": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "actual": 1,
- "expected": 1,
- "sql": "SELECT COUNT(*) AS n FROM membership WHERE user_id=1 AND group_id=10"
- }
- },
- "memberships_three_rows": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "actual": 3,
- "expected": 3,
- "sql": "SELECT COUNT(*) AS n FROM membership"
- }
- }
- },
- "vendor": "xai"
- },
- "t_020_ecs": {
- "hash": "9d3acb3d6846ea1568d76e4b62ded3705f5a1dea72331bd2cbcfb5aae9d6761c",
- "task": "t_020_ecs",
- "lang": "rust",
- "golden_published": true,
- "model_name": "Grok 4",
- "total_tests": 5,
- "passed_tests": 5,
- "category": "schema",
- "route_api_model": "grok-4",
- "scorer_details": {
- "ecs_next_pos_entity2": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "actual": 1,
- "expected": 1,
- "sql": "SELECT COUNT(*) AS n FROM next_position WHERE entity_id=2 AND x=8 AND y=3"
- }
- },
- "ecs_next_pos_entity1": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "actual": 1,
- "expected": 1,
- "sql": "SELECT COUNT(*) AS n FROM next_position WHERE entity_id=1 AND x=1 AND y=0"
- }
- },
- "ecs_seed_position_count": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "actual": 2,
- "expected": 2,
- "sql": "SELECT COUNT(*) AS n FROM position"
- }
- },
- "schema_parity": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "reducers_diff": null,
- "reducers_equal": true,
- "tables_diff": null,
- "tables_equal": true
- }
- },
- "ecs_step_next_position_count": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "actual": 2,
- "expected": 2,
- "sql": "SELECT COUNT(*) AS n FROM next_position"
- }
- }
- },
- "vendor": "xai"
- },
- "t_021_multi_column_index": {
- "hash": "9d3acb3d6846ea1568d76e4b62ded3705f5a1dea72331bd2cbcfb5aae9d6761c",
- "task": "t_021_multi_column_index",
- "lang": "rust",
- "golden_published": true,
- "model_name": "Grok 4",
- "total_tests": 4,
- "passed_tests": 4,
- "category": "schema",
- "route_api_model": "grok-4",
- "scorer_details": {
- "mcindex_seed_count": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "actual": 3,
- "expected": 3,
- "sql": "SELECT COUNT(*) AS n FROM log"
- }
- },
- "mcindex_lookup_u7_d1": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "actual": 1,
- "expected": 1,
- "sql": "SELECT COUNT(*) AS n FROM log WHERE user_id=7 AND day=1"
- }
- },
- "schema_parity": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "reducers_diff": null,
- "reducers_equal": true,
- "tables_diff": null,
- "tables_equal": true
- }
- },
- "mcindex_lookup_u7_d2": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "actual": 1,
- "expected": 1,
- "sql": "SELECT COUNT(*) AS n FROM log WHERE user_id=7 AND day=2"
- }
- }
- },
- "vendor": "xai"
- }
- }
- },
- {
- "name": "Grok Code",
- "route_api_model": "grok-code-fast-1",
- "tasks": {
- "t_000_empty_reducers": {
- "hash": "3505a160bff25cbe99eb4235b037d39ade89af05864f8b90b7723b63caaa3781",
- "task": "t_000_empty_reducers",
- "lang": "rust",
- "golden_published": true,
- "model_name": "Grok Code",
- "total_tests": 1,
- "passed_tests": 1,
- "category": "basics",
- "route_api_model": "grok-code-fast-1",
- "scorer_details": {
- "schema_parity": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "reducers_diff": null,
- "reducers_equal": true,
- "tables_diff": null,
- "tables_equal": true
- }
- }
- },
- "vendor": "xai"
- },
- "t_001_basic_tables": {
- "hash": "3505a160bff25cbe99eb4235b037d39ade89af05864f8b90b7723b63caaa3781",
- "task": "t_001_basic_tables",
- "lang": "rust",
- "golden_published": true,
- "model_name": "Grok Code",
- "total_tests": 1,
- "passed_tests": 1,
- "category": "basics",
- "route_api_model": "grok-code-fast-1",
- "scorer_details": {
- "schema_parity": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "reducers_diff": null,
- "reducers_equal": true,
- "tables_diff": null,
- "tables_equal": true
- }
- }
- },
- "vendor": "xai"
- },
- "t_002_scheduled_table": {
- "hash": "3505a160bff25cbe99eb4235b037d39ade89af05864f8b90b7723b63caaa3781",
- "task": "t_002_scheduled_table",
- "lang": "rust",
- "golden_published": false,
- "model_name": "Grok Code",
- "total_tests": 1,
- "passed_tests": 0,
- "llm_output": "use spacetimedb::{table, reducer, ScheduleAt, ReducerContext, Table};\nuse std::time::Duration;\n\n#[table(accessor = tick_timer, scheduled(tick))]\npub struct TickTimer {\n #[primary_key]\n #[auto_inc]\n pub scheduled_id: u64,\n pub scheduled_at: ScheduleAt,\n}\n\n#[reducer(init)]\npub fn init(ctx: &ReducerContext) -> Result<(), String> {\n ctx.db.tick_timer().insert(TickTimer {\n scheduled_id: 0,\n scheduled_at: ScheduleAt::Interval(Duration::from_micros(50_000).into()),\n })?;\n Ok(())\n}\n\n#[reducer]\npub fn tick(ctx: &ReducerContext, _timer: TickTimer) -> Result<(), String> {\n log::info!(\"Tick!\");\n Ok(())\n}",
- "category": "basics",
- "route_api_model": "grok-code-fast-1",
- "scorer_details": {
- "publish_error": {
- "pass": false,
- "partial": 0.0,
- "notes": {
- "error": "spacetime publish failed (exit=1)\n--- stderr ---\n Blocking waiting for file lock on package cache\n Updating crates.io index\n Blocking waiting for file lock on package cache\n Locking 104 packages to latest compatible versions\n Adding generic-array v0.14.7 (available: v0.14.9)\n Blocking waiting for file lock on package cache\n Blocking waiting for file lock on package cache\n Compiling proc-macro2 v1.0.106\n Compiling quote v1.0.44\n Compiling unicode-ident v1.0.24\n Compiling typenum v1.19.0\n Compiling version_check v0.9.5\n Compiling autocfg v1.5.0\n Compiling serde_core v1.0.228\n Compiling heck v0.5.0\n Compiling cfg-if v1.0.4\n Compiling rustversion v1.0.22\n Compiling shlex v1.3.0\n Compiling either v1.15.0\n Compiling serde v1.0.228\n Compiling find-msvc-tools v0.1.9\n Compiling itoa v1.0.17\n Compiling anyhow v1.0.102\n Compiling nohash-hasher v0.2.0\n Compiling zerocopy v0.8.39\n Compiling thiserror v1.0.69\n Compiling bitflags v2.11.0\n Compiling bytes v1.11.1\n Compiling ryu v1.0.23\n Compiling heck v0.4.1\n Compiling humantime v2.3.0\n Compiling arrayvec v0.7.6\n Compiling keccak v0.1.6\n Compiling convert_case v0.4.0\n Compiling uuid v1.21.0\n Compiling bytemuck v1.25.0\n Compiling getrandom v0.2.17\n Compiling zmij v1.0.21\n Compiling itertools v0.12.1\n Compiling second-stack v0.3.5\n Compiling smallvec v1.15.1\n Compiling constant_time_eq v0.4.2\n Compiling spacetimedb-lib v2.0.0 (D:\\Development\\ClockworkLabs\\SpacetimeDB\\SpacetimeDBPrivate\\public\\crates\\lib)\n Compiling arrayref v0.3.9\n Compiling hex v0.4.3\n Compiling rand_core v0.6.4\n Compiling generic-array v0.14.7\n Compiling num-traits v0.2.19\n Compiling log v0.4.29\n Compiling cc v1.2.56\n Compiling serde_json v1.0.149\n Compiling memchr v2.8.0\n Compiling scoped-tls v1.0.1\n Compiling http v1.4.0\n Compiling castaway v0.2.4\n Compiling lean_string v0.5.1\n Compiling blake3 v1.8.3\n Compiling syn v2.0.117\n Compiling crypto-common v0.1.7\n Compiling block-buffer v0.10.4\n Compiling digest v0.10.7\n Compiling approx v0.3.2\n Compiling chrono v0.4.43\n Compiling decorum v0.3.1\n Compiling sha3 v0.10.8\n Compiling ethnum v1.5.2\n Compiling ppv-lite86 v0.2.21\n Compiling rand_chacha v0.3.1\n Compiling enum-as-inner v0.6.1\n Compiling thiserror-impl v1.0.69\n Compiling derive_more v0.99.20\n Compiling rand v0.8.5\n Compiling spacetimedb-primitives v2.0.0 (D:\\Development\\ClockworkLabs\\SpacetimeDB\\SpacetimeDBPrivate\\public\\crates\\primitives)\n Compiling spacetimedb-bindings-sys v2.0.0 (D:\\Development\\ClockworkLabs\\SpacetimeDB\\SpacetimeDBPrivate\\public\\crates\\bindings-sys)\n Compiling spacetimedb-bindings-macro v2.0.0 (D:\\Development\\ClockworkLabs\\SpacetimeDB\\SpacetimeDBPrivate\\public\\crates\\bindings-macro)\n Compiling spacetimedb-sats v2.0.0 (D:\\Development\\ClockworkLabs\\SpacetimeDB\\SpacetimeDBPrivate\\public\\crates\\sats)\n Compiling spacetimedb-query-builder v2.0.0 (D:\\Development\\ClockworkLabs\\SpacetimeDB\\SpacetimeDBPrivate\\public\\crates\\query-builder)\n Compiling spacetimedb v2.0.0 (D:\\Development\\ClockworkLabs\\SpacetimeDB\\SpacetimeDBPrivate\\public\\crates\\bindings)\n Compiling spacetime-module v0.1.0 (D:\\Development\\ClockworkLabs\\SpacetimeDB\\SpacetimeDBPrivate\\public\\target\\llm-runs\\basics\\t_002_scheduled_table\\rust\\server\\grok-code\\llm)\nerror[E0277]: the `?` operator can only be applied to values that implement `Try`\n --> src\\lib.rs:15:5\n |\n15 | / ctx.db.tick_timer().insert(TickTimer {\n16 | | scheduled_id: 0,\n17 | | scheduled_at: ScheduleAt::Interval(Duration::from_micros(50_000).into()),\n18 | | })?;\n | |_______^ the `?` operator cannot be applied to type `TickTimer`\n |\nhelp: the trait `Try` is not implemented for `TickTimer`\n --> src\\lib.rs:6:1\n |\n 6 | pub struct TickTimer {\n | ^^^^^^^^^^^^^^^^^^^^\n\nwarning: unused variable: `ctx`\n --> src\\lib.rs:23:13\n |\n23 | pub fn tick(ctx: &ReducerContext, _timer: TickTimer) -> Result<(), String> {\n | ^^^ help: if this is intentional, prefix it with an underscore: `_ctx`\n |\n = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default\n\nFor more information about this error, try `rustc --explain E0277`.\nwarning: `spacetime-module` (lib) generated 1 warning\nerror: could not compile `spacetime-module` (lib) due to 1 previous error; 1 warning emitted\nError: command [\"cargo\", \"build\", \"--config=net.git-fetch-with-cli=true\", \"--target=wasm32-unknown-unknown\", \"--release\", \"--message-format=json-render-diagnostics\"] exited with code 101\n\n--- stdout ---\n",
- "phase": "build_or_publish"
- }
- }
- },
- "vendor": "xai"
- },
- "t_003_struct_in_table": {
- "hash": "3505a160bff25cbe99eb4235b037d39ade89af05864f8b90b7723b63caaa3781",
- "task": "t_003_struct_in_table",
- "lang": "rust",
- "golden_published": true,
- "model_name": "Grok Code",
- "total_tests": 1,
- "passed_tests": 1,
- "category": "basics",
- "route_api_model": "grok-code-fast-1",
- "scorer_details": {
- "schema_parity": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "reducers_diff": null,
- "reducers_equal": true,
- "tables_diff": null,
- "tables_equal": true
- }
- }
- },
- "vendor": "xai"
- },
- "t_004_insert": {
- "hash": "3505a160bff25cbe99eb4235b037d39ade89af05864f8b90b7723b63caaa3781",
- "task": "t_004_insert",
- "lang": "rust",
- "golden_published": true,
- "model_name": "Grok Code",
- "total_tests": 2,
- "passed_tests": 2,
- "category": "basics",
- "route_api_model": "grok-code-fast-1",
- "scorer_details": {
- "schema_parity": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "reducers_diff": null,
- "reducers_equal": true,
- "tables_diff": null,
- "tables_equal": true
- }
- },
- "data_parity_insert_user": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "args": [
- 1,
- "Alice",
- 30,
- true
- ],
- "golden_out": "id | name | age | active ----+---------+-----+-------- 1 | \"Alice\" | 30 | true",
- "llm_out": "id | name | age | active ----+---------+-----+-------- 1 | \"Alice\" | 30 | true",
- "query": "SELECT id, name, age, active FROM user WHERE id=1",
- "reducer": "insert_user"
- }
- }
- },
- "vendor": "xai"
- },
- "t_005_update": {
- "hash": "3505a160bff25cbe99eb4235b037d39ade89af05864f8b90b7723b63caaa3781",
- "task": "t_005_update",
- "lang": "rust",
- "golden_published": true,
- "model_name": "Grok Code",
- "total_tests": 3,
- "passed_tests": 1,
- "llm_output": "use spacetimedb::{reducer, table, ReducerContext, Table};\n\n#[table(accessor = user, public)]\npub struct User {\n #[primary_key]\n pub id: i32,\n pub name: String,\n pub age: i32,\n pub active: bool,\n}\n\n#[reducer]\npub fn update_user(ctx: &ReducerContext, id: i32, name: String, age: i32, active: bool) -> Result<(), String> {\n if let Some(mut user) = ctx.db.user().id().find(id) {\n user.name = name;\n user.age = age;\n user.active = active;\n ctx.db.user().id().update(user);\n Ok(())\n } else {\n Err(\"User not found\".to_string())\n }\n}",
- "category": "basics",
- "route_api_model": "grok-code-fast-1",
- "scorer_details": {
- "data_parity_update_user": {
- "pass": false,
- "partial": 0.0,
- "notes": {
- "error": "spacetime call failed:\nWARNING: This command is UNSTABLE and subject to breaking changes.\n\nError: Response text: User not found\n\nCaused by:\n HTTP status server error (530 ) for url (http://127.0.0.1:52560/v1/database/c200b4b6b681336f3d490f150af6142028dda5d692b4617ae373d927c932a73c/call/update_user)\n",
- "phase": "call_reducer_llm"
- }
- },
- "schema_parity": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "reducers_diff": null,
- "reducers_equal": true,
- "tables_diff": null,
- "tables_equal": true
- }
- },
- "seed_users_row": {
- "pass": false,
- "partial": 0.0,
- "notes": {
- "error": "spacetime sql failed:\nWARNING: This command is UNSTABLE and subject to breaking changes.\n\nError: IndexError: Unique constraint violation 'user_id_idx_btree' in table 'user': column(s): '[\"id\"]' value: 1\n\nCaused by:\n HTTP status client error (400 Bad Request) for url (http://127.0.0.1:52560/v1/database/c2001d6dfa10edf536fccc3c29d6f6cb7b463b8da0a3dd77d4fb71c99c7750b4/sql)\n",
- "phase": "sql_golden",
- "sql": "INSERT INTO user(id, name, age, active) VALUES (1, 'Alice', 30, true)"
- }
- }
- },
- "vendor": "xai"
- },
- "t_006_delete": {
- "hash": "3505a160bff25cbe99eb4235b037d39ade89af05864f8b90b7723b63caaa3781",
- "task": "t_006_delete",
- "lang": "rust",
- "golden_published": true,
- "model_name": "Grok Code",
- "total_tests": 3,
- "passed_tests": 3,
- "category": "basics",
- "route_api_model": "grok-code-fast-1",
- "scorer_details": {
- "schema_parity": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "reducers_diff": null,
- "reducers_equal": true,
- "tables_diff": null,
- "tables_equal": true
- }
- },
- "seed_users_row": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "sql": "INSERT INTO user(id, name, age, active) VALUES (1, 'Alice', 30, true)"
- }
- },
- "delete_user_count_zero": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "actual": 0,
- "expected": 0,
- "sql": "SELECT COUNT(*) AS n FROM user WHERE id=1"
- }
- }
- },
- "vendor": "xai"
- },
- "t_007_crud": {
- "hash": "3505a160bff25cbe99eb4235b037d39ade89af05864f8b90b7723b63caaa3781",
- "task": "t_007_crud",
- "lang": "rust",
- "golden_published": true,
- "model_name": "Grok Code",
- "total_tests": 4,
- "passed_tests": 2,
- "llm_output": "use spacetimedb::{table, reducer, ReducerContext, Table};\n\n#[spacetimedb::table(accessor = user, public)]\npub struct User {\n #[primary_key]\n pub id: i32,\n pub name: String,\n pub age: i32,\n pub active: bool,\n}\n\n#[spacetimedb::reducer]\npub fn crud(ctx: &ReducerContext) -> Result<(), String> {\n // insert (id=1, name=\"Alice\", age=30, active=true)\n ctx.db.user().insert(User {\n id: 1,\n name: \"Alice\".to_string(),\n age: 30,\n active: true,\n });\n\n // insert (id=2, name=\"Bob\", age=22, active=false)\n ctx.db.user().insert(User {\n id: 2,\n name: \"Bob\".to_string(),\n age: 22,\n active: false,\n });\n\n // update (id=1, name=\"Alice2\", age=31, active=false)\n let mut user = ctx.db.user().id().find(1).unwrap();\n user.name = \"Alice2\".to_string();\n user.age = 31;\n user.active = false;\n ctx.db.user().id().update(user);\n\n // delete id=2\n ctx.db.user().id().delete(2);\n\n Ok(())\n}",
- "category": "basics",
- "route_api_model": "grok-code-fast-1",
- "scorer_details": {
- "crud_row_id2_deleted": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "actual": 0,
- "expected": 0,
- "sql": "SELECT COUNT(*) AS n FROM user WHERE id=2"
- }
- },
- "schema_parity": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "reducers_diff": null,
- "reducers_equal": true,
- "tables_diff": null,
- "tables_equal": true
- }
- },
- "crud_row_id1_parity": {
- "pass": false,
- "partial": 0.0,
- "notes": {
- "error": "spacetime call failed:\nWARNING: This command is UNSTABLE and subject to breaking changes.\n\nError: Response text: The instance encountered a fatal error.\n\nCaused by:\n HTTP status server error (530 ) for url (http://127.0.0.1:52560/v1/database/c20066687897c66c0ddc228392f529f52e38e116fa0210b3a1a7c200f6511192/call/crud)\n",
- "phase": "call_reducer_golden"
- }
- },
- "crud_total_count_one": {
- "pass": false,
- "partial": 0.0,
- "notes": {
- "actual": 0,
- "expected": 1,
- "sql": "SELECT COUNT(*) AS n FROM user"
- }
- }
- },
- "vendor": "xai"
- },
- "t_008_index_lookup": {
- "hash": "3505a160bff25cbe99eb4235b037d39ade89af05864f8b90b7723b63caaa3781",
- "task": "t_008_index_lookup",
- "lang": "rust",
- "golden_published": true,
- "model_name": "Grok Code",
- "total_tests": 3,
- "passed_tests": 3,
- "category": "basics",
- "route_api_model": "grok-code-fast-1",
- "scorer_details": {
- "index_lookup_projection_parity": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "args": [
- 1
- ],
- "golden_out": "id | name ----+--------- 1 | \"Alice\"",
- "llm_out": "id | name ----+--------- 1 | \"Alice\"",
- "query": "SELECT id, name FROM result WHERE id=1",
- "reducer": "lookup_user_name"
- }
- },
- "schema_parity": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "reducers_diff": null,
- "reducers_equal": true,
- "tables_diff": null,
- "tables_equal": true
- }
- },
- "seed_user_row": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "sql": "INSERT INTO user(id, name, age, active) VALUES (1, 'Alice', 30, true)"
- }
- }
- },
- "vendor": "xai"
- },
- "t_009_init": {
- "hash": "3505a160bff25cbe99eb4235b037d39ade89af05864f8b90b7723b63caaa3781",
- "task": "t_009_init",
- "lang": "rust",
- "golden_published": true,
- "model_name": "Grok Code",
- "total_tests": 4,
- "passed_tests": 4,
- "category": "basics",
- "route_api_model": "grok-code-fast-1",
- "scorer_details": {
- "init_seed_alice": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "actual": 1,
- "expected": 1,
- "sql": "SELECT COUNT(*) AS n FROM user WHERE id=1 AND name='Alice' AND age=30 AND active=true"
- }
- },
- "init_total_two": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "actual": 2,
- "expected": 2,
- "sql": "SELECT COUNT(*) AS n FROM user"
- }
- },
- "schema_parity": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "reducers_diff": null,
- "reducers_equal": true,
- "tables_diff": null,
- "tables_equal": true
- }
- },
- "init_seed_bob": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "actual": 1,
- "expected": 1,
- "sql": "SELECT COUNT(*) AS n FROM user WHERE id=2 AND name='Bob' AND age=22 AND active=false"
- }
- }
- },
- "vendor": "xai"
- },
- "t_010_connect": {
- "hash": "3505a160bff25cbe99eb4235b037d39ade89af05864f8b90b7723b63caaa3781",
- "task": "t_010_connect",
- "lang": "rust",
- "golden_published": true,
- "model_name": "Grok Code",
- "total_tests": 1,
- "passed_tests": 1,
- "category": "basics",
- "route_api_model": "grok-code-fast-1",
- "scorer_details": {
- "schema_parity": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "reducers_diff": null,
- "reducers_equal": true,
- "tables_diff": null,
- "tables_equal": true
- }
- }
- },
- "vendor": "xai"
- },
- "t_011_helper_function": {
- "hash": "3505a160bff25cbe99eb4235b037d39ade89af05864f8b90b7723b63caaa3781",
- "task": "t_011_helper_function",
- "lang": "rust",
- "golden_published": true,
- "model_name": "Grok Code",
- "total_tests": 3,
- "passed_tests": 3,
- "category": "basics",
- "route_api_model": "grok-code-fast-1",
- "scorer_details": {
- "helper_func_sum_abs": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "actual": 1,
- "expected": 1,
- "sql": "SELECT COUNT(*) AS n FROM result WHERE id=1 AND sum=5"
- }
- },
- "schema_parity": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "reducers_diff": null,
- "reducers_equal": true,
- "tables_diff": null,
- "tables_equal": true
- }
- },
- "helper_func_sum_parity": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "args": [
- 1,
- 2,
- 3
- ],
- "golden_out": "id | sum ----+----- 1 | 5",
- "llm_out": "id | sum ----+----- 1 | 5",
- "query": "SELECT id, sum FROM result WHERE id=1",
- "reducer": "compute_sum"
- }
- }
- },
- "vendor": "xai"
- },
- "t_012_spacetime_product_type": {
- "hash": "3505a160bff25cbe99eb4235b037d39ade89af05864f8b90b7723b63caaa3781",
- "task": "t_012_spacetime_product_type",
- "lang": "rust",
- "golden_published": true,
- "model_name": "Grok Code",
- "total_tests": 3,
- "passed_tests": 3,
- "category": "schema",
- "route_api_model": "grok-code-fast-1",
- "scorer_details": {
- "product_type_row_count": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "actual": 1,
- "expected": 1,
- "sql": "SELECT COUNT(*) AS n FROM result WHERE id=1"
- }
- },
- "schema_parity": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "reducers_diff": null,
- "reducers_equal": true,
- "tables_diff": null,
- "tables_equal": true
- }
- },
- "product_type_row_parity": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "args": [
- 1,
- 2,
- 3
- ],
- "golden_out": "id | value ----+----------------------- 1 | (left = 2, right = 3)",
- "llm_out": "id | value ----+----------------------- 1 | (left = 2, right = 3)",
- "query": "SELECT id, value FROM result WHERE id=1",
- "reducer": "set_score"
- }
- }
- },
- "vendor": "xai"
- },
- "t_013_spacetime_sum_type": {
- "hash": "3505a160bff25cbe99eb4235b037d39ade89af05864f8b90b7723b63caaa3781",
- "task": "t_013_spacetime_sum_type",
- "lang": "rust",
- "golden_published": true,
- "model_name": "Grok Code",
- "total_tests": 3,
- "passed_tests": 3,
- "category": "schema",
- "route_api_model": "grok-code-fast-1",
- "scorer_details": {
- "schema_parity": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "reducers_diff": null,
- "reducers_equal": true,
- "tables_diff": null,
- "tables_equal": true
- }
- },
- "sum_type_row_parity": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "args": [
- 1,
- 10
- ],
- "golden_out": "id | value ----+--------------- 1 | (Circle = 10)",
- "llm_out": "id | value ----+--------------- 1 | (Circle = 10)",
- "query": "SELECT id, value FROM result WHERE id=1",
- "reducer": "set_circle"
- }
- },
- "sum_type_row_count": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "actual": 1,
- "expected": 1,
- "sql": "SELECT COUNT(*) AS n FROM result WHERE id=1"
- }
- }
- },
- "vendor": "xai"
- },
- "t_014_elementary_columns": {
- "hash": "3505a160bff25cbe99eb4235b037d39ade89af05864f8b90b7723b63caaa3781",
- "task": "t_014_elementary_columns",
- "lang": "rust",
- "golden_published": true,
- "model_name": "Grok Code",
- "total_tests": 3,
- "passed_tests": 3,
- "category": "schema",
- "route_api_model": "grok-code-fast-1",
- "scorer_details": {
- "schema_parity": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "reducers_diff": null,
- "reducers_equal": true,
- "tables_diff": null,
- "tables_equal": true
- }
- },
- "elementary_columns_row_parity": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "args": [],
- "golden_out": "id | count | total | price | ratio | active | name ----+-------+------------+-------+-------+--------+--------- 1 | 2 | 3000000000 | 1.5 | 2.25 | true | \"Alice\"",
- "llm_out": "id | count | total | price | ratio | active | name ----+-------+------------+-------+-------+--------+--------- 1 | 2 | 3000000000 | 1.5 | 2.25 | true | \"Alice\"",
- "query": "SELECT id, count, total, price, ratio, active, name FROM primitive WHERE id=1",
- "reducer": "seed"
- }
- },
- "elementary_columns_row_count": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "actual": 1,
- "expected": 1,
- "sql": "SELECT COUNT(*) AS n FROM primitive WHERE id=1"
- }
- }
- },
- "vendor": "xai"
- },
- "t_015_product_type_columns": {
- "hash": "3505a160bff25cbe99eb4235b037d39ade89af05864f8b90b7723b63caaa3781",
- "task": "t_015_product_type_columns",
- "lang": "rust",
- "golden_published": true,
- "model_name": "Grok Code",
- "total_tests": 3,
- "passed_tests": 3,
- "category": "schema",
- "route_api_model": "grok-code-fast-1",
- "scorer_details": {
- "product_type_columns_row_parity": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "args": [],
- "golden_out": "id | home | work | pos ----+----------------------------------+-----------------------------------+---------------- 1 | (street = \"1 Main\", zip = 11111) | (street = \"2 Broad\", zip = 22222) | (x = 7, y = 9)",
- "llm_out": "id | home | work | pos ----+----------------------------------+-----------------------------------+---------------- 1 | (street = \"1 Main\", zip = 11111) | (street = \"2 Broad\", zip = 22222) | (x = 7, y = 9)",
- "query": "SELECT id, home, work, pos FROM profile WHERE id=1",
- "reducer": "seed"
- }
- },
- "schema_parity": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "reducers_diff": null,
- "reducers_equal": true,
- "tables_diff": null,
- "tables_equal": true
- }
- },
- "product_type_columns_row_count": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "actual": 1,
- "expected": 1,
- "sql": "SELECT COUNT(*) AS n FROM profile WHERE id=1"
- }
- }
- },
- "vendor": "xai"
- },
- "t_016_sum_type_columns": {
- "hash": "3505a160bff25cbe99eb4235b037d39ade89af05864f8b90b7723b63caaa3781",
- "task": "t_016_sum_type_columns",
- "lang": "rust",
- "golden_published": true,
- "model_name": "Grok Code",
- "total_tests": 3,
- "passed_tests": 3,
- "category": "schema",
- "route_api_model": "grok-code-fast-1",
- "scorer_details": {
- "sum_type_columns_row_parity": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "args": [],
- "golden_out": "id | a | b ----+---------------+--------------------------------------- 1 | (Circle = 10) | (Rectangle = (width = 4, height = 6))",
- "llm_out": "id | a | b ----+---------------+--------------------------------------- 1 | (Circle = 10) | (Rectangle = (width = 4, height = 6))",
- "query": "SELECT id, a, b FROM drawing WHERE id=1",
- "reducer": "seed"
- }
- },
- "schema_parity": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "reducers_diff": null,
- "reducers_equal": true,
- "tables_diff": null,
- "tables_equal": true
- }
- },
- "sum_type_columns_row_count": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "actual": 1,
- "expected": 1,
- "sql": "SELECT COUNT(*) AS n FROM drawing WHERE id=1"
- }
- }
- },
- "vendor": "xai"
- },
- "t_017_scheduled_columns": {
- "hash": "3505a160bff25cbe99eb4235b037d39ade89af05864f8b90b7723b63caaa3781",
- "task": "t_017_scheduled_columns",
- "lang": "rust",
- "golden_published": true,
- "model_name": "Grok Code",
- "total_tests": 2,
- "passed_tests": 2,
- "category": "schema",
- "route_api_model": "grok-code-fast-1",
- "scorer_details": {
- "schema_parity": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "reducers_diff": null,
- "reducers_equal": true,
- "tables_diff": null,
- "tables_equal": true
- }
- },
- "scheduled_seeded_one_row": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "actual": 1,
- "expected": 1,
- "sql": "SELECT COUNT(*) AS n FROM tick_timer WHERE scheduled_id>=0"
- }
- }
- },
- "vendor": "xai"
- },
- "t_018_constraints": {
- "hash": "3505a160bff25cbe99eb4235b037d39ade89af05864f8b90b7723b63caaa3781",
- "task": "t_018_constraints",
- "lang": "rust",
- "golden_published": true,
- "model_name": "Grok Code",
- "total_tests": 3,
- "passed_tests": 3,
- "category": "schema",
- "route_api_model": "grok-code-fast-1",
- "scorer_details": {
- "schema_parity": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "reducers_diff": null,
- "reducers_equal": true,
- "tables_diff": null,
- "tables_equal": true
- }
- },
- "constraints_row_parity_after_seed": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "args": [],
- "golden_out": "id | email | name ----+-----------------+--------- 1 | \"a@example.com\" | \"Alice\"",
- "llm_out": "id | email | name ----+-----------------+--------- 1 | \"a@example.com\" | \"Alice\"",
- "query": "SELECT id, email, name FROM account WHERE id=1",
- "reducer": "seed"
- }
- },
- "constraints_seed_two_rows": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "actual": 1,
- "expected": 1,
- "sql": "SELECT COUNT(*) AS n FROM account WHERE id=2"
- }
- }
- },
- "vendor": "xai"
- },
- "t_019_many_to_many": {
- "hash": "3505a160bff25cbe99eb4235b037d39ade89af05864f8b90b7723b63caaa3781",
- "task": "t_019_many_to_many",
- "lang": "rust",
- "golden_published": true,
- "model_name": "Grok Code",
- "total_tests": 5,
- "passed_tests": 4,
- "llm_output": "use spacetimedb::{reducer, table, ReducerContext, Table};\n\n#[spacetimedb::table(accessor = user, public)]\npub struct User {\n #[primary_key]\n user_id: i32,\n name: String,\n}\n\n#[spacetimedb::table(accessor = group, public)]\npub struct Group {\n #[primary_key]\n group_id: i32,\n title: String,\n}\n\n#[spacetimedb::table(accessor = membership, index(accessor = by_user, btree(columns = [user_id])), index(accessor = by_group, btree(columns = [group_id])), public)]\npub struct Membership {\n #[primary_key]\n id: i32,\n user_id: i32,\n group_id: i32,\n}\n\n#[spacetimedb::reducer(init)]\npub fn seed(ctx: &ReducerContext) -> Result<(), String> {\n ctx.db.user().insert(User { user_id: 1, name: \"Alice\".to_string() });\n ctx.db.user().insert(User { user_id: 2, name: \"Bob\".to_string() });\n ctx.db.group().insert(Group { group_id: 10, title: \"Admin\".to_string() });\n ctx.db.group().insert(Group { group_id: 20, title: \"Dev\".to_string() });\n ctx.db.membership().insert(Membership { id: 1, user_id: 1, group_id: 10 });\n ctx.db.membership().insert(Membership { id: 2, user_id: 1, group_id: 20 });\n ctx.db.membership().insert(Membership { id: 3, user_id: 2, group_id: 20 });\n Ok(())\n}",
- "category": "schema",
- "route_api_model": "grok-code-fast-1",
- "scorer_details": {
- "m2m_has_1_20": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "actual": 1,
- "expected": 1,
- "sql": "SELECT COUNT(*) AS n FROM membership WHERE user_id=1 AND group_id=20"
- }
- },
- "m2m_has_2_20": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "actual": 1,
- "expected": 1,
- "sql": "SELECT COUNT(*) AS n FROM membership WHERE user_id=2 AND group_id=20"
- }
- },
- "schema_parity": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "reducers_diff": null,
- "reducers_equal": true,
- "tables_diff": null,
- "tables_equal": true
- }
- },
- "m2m_has_1_10": {
- "pass": false,
- "partial": 0.0,
- "notes": {
- "error": "spacetime call failed:\nWARNING: This command is UNSTABLE and subject to breaking changes.\n\nError: Response text: can't directly call special Init lifecycle reducer\n\nCaused by:\n HTTP status client error (400 Bad Request) for url (http://127.0.0.1:52560/v1/database/c200a51c04585e87f6869330cab3dc6e8908e5185bc174fc786acd0c2f65c478/call/seed)\n",
- "phase": "call_reducer"
- }
- },
- "memberships_three_rows": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "actual": 3,
- "expected": 3,
- "sql": "SELECT COUNT(*) AS n FROM membership"
- }
- }
- },
- "vendor": "xai"
- },
- "t_020_ecs": {
- "hash": "3505a160bff25cbe99eb4235b037d39ade89af05864f8b90b7723b63caaa3781",
- "task": "t_020_ecs",
- "lang": "rust",
- "golden_published": true,
- "model_name": "Grok Code",
- "total_tests": 5,
- "passed_tests": 5,
- "category": "schema",
- "route_api_model": "grok-code-fast-1",
- "scorer_details": {
- "ecs_next_pos_entity2": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "actual": 1,
- "expected": 1,
- "sql": "SELECT COUNT(*) AS n FROM next_position WHERE entity_id=2 AND x=8 AND y=3"
- }
- },
- "ecs_next_pos_entity1": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "actual": 1,
- "expected": 1,
- "sql": "SELECT COUNT(*) AS n FROM next_position WHERE entity_id=1 AND x=1 AND y=0"
- }
- },
- "ecs_seed_position_count": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "actual": 2,
- "expected": 2,
- "sql": "SELECT COUNT(*) AS n FROM position"
- }
- },
- "schema_parity": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "reducers_diff": null,
- "reducers_equal": true,
- "tables_diff": null,
- "tables_equal": true
- }
- },
- "ecs_step_next_position_count": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "actual": 2,
- "expected": 2,
- "sql": "SELECT COUNT(*) AS n FROM next_position"
- }
- }
- },
- "vendor": "xai"
- },
- "t_021_multi_column_index": {
- "hash": "3505a160bff25cbe99eb4235b037d39ade89af05864f8b90b7723b63caaa3781",
- "task": "t_021_multi_column_index",
- "lang": "rust",
- "golden_published": true,
- "model_name": "Grok Code",
- "total_tests": 4,
- "passed_tests": 4,
- "category": "schema",
- "route_api_model": "grok-code-fast-1",
- "scorer_details": {
- "mcindex_seed_count": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "actual": 3,
- "expected": 3,
- "sql": "SELECT COUNT(*) AS n FROM log"
- }
- },
- "mcindex_lookup_u7_d1": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "actual": 1,
- "expected": 1,
- "sql": "SELECT COUNT(*) AS n FROM log WHERE user_id=7 AND day=1"
- }
- },
- "schema_parity": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "reducers_diff": null,
- "reducers_equal": true,
- "tables_diff": null,
- "tables_equal": true
- }
- },
- "mcindex_lookup_u7_d2": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "actual": 1,
- "expected": 1,
- "sql": "SELECT COUNT(*) AS n FROM log WHERE user_id=7 AND day=2"
- }
- }
- },
- "vendor": "xai"
- }
- }
- },
- {
- "name": "Claude Sonnet 4.6",
- "route_api_model": "claude-sonnet-4-6",
- "tasks": {
- "t_000_empty_reducers": {
- "hash": "cb5bf60a6d17e761b5fcec5d8e69bafbaf56602e570522e688d4da57973c7ea8",
- "task": "t_000_empty_reducers",
- "lang": "rust",
- "golden_published": true,
- "model_name": "Claude Sonnet 4.6",
- "total_tests": 1,
- "passed_tests": 1,
- "category": "basics",
- "route_api_model": "claude-sonnet-4-6",
- "scorer_details": {
- "schema_parity": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "reducers_diff": null,
- "reducers_equal": true,
- "tables_diff": null,
- "tables_equal": true
- }
- }
- },
- "vendor": "anthropic"
- },
- "t_001_basic_tables": {
- "hash": "cb5bf60a6d17e761b5fcec5d8e69bafbaf56602e570522e688d4da57973c7ea8",
- "task": "t_001_basic_tables",
- "lang": "rust",
- "golden_published": true,
- "model_name": "Claude Sonnet 4.6",
- "total_tests": 1,
- "passed_tests": 1,
- "category": "basics",
- "route_api_model": "claude-sonnet-4-6",
- "scorer_details": {
- "schema_parity": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "reducers_diff": null,
- "reducers_equal": true,
- "tables_diff": null,
- "tables_equal": true
- }
- }
- },
- "vendor": "anthropic"
- },
- "t_002_scheduled_table": {
- "hash": "cb5bf60a6d17e761b5fcec5d8e69bafbaf56602e570522e688d4da57973c7ea8",
- "task": "t_002_scheduled_table",
- "lang": "rust",
- "golden_published": true,
- "model_name": "Claude Sonnet 4.6",
- "total_tests": 1,
- "passed_tests": 1,
- "category": "basics",
- "route_api_model": "claude-sonnet-4-6",
- "scorer_details": {
- "schema_parity": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "reducers_diff": null,
- "reducers_equal": true,
- "tables_diff": null,
- "tables_equal": true
- }
- }
- },
- "vendor": "anthropic"
- },
- "t_003_struct_in_table": {
- "hash": "cb5bf60a6d17e761b5fcec5d8e69bafbaf56602e570522e688d4da57973c7ea8",
- "task": "t_003_struct_in_table",
- "lang": "rust",
- "golden_published": true,
- "model_name": "Claude Sonnet 4.6",
- "total_tests": 1,
- "passed_tests": 1,
- "category": "basics",
- "route_api_model": "claude-sonnet-4-6",
- "scorer_details": {
- "schema_parity": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "reducers_diff": null,
- "reducers_equal": true,
- "tables_diff": null,
- "tables_equal": true
- }
- }
- },
- "vendor": "anthropic"
- },
- "t_004_insert": {
- "hash": "cb5bf60a6d17e761b5fcec5d8e69bafbaf56602e570522e688d4da57973c7ea8",
- "task": "t_004_insert",
- "lang": "rust",
- "golden_published": true,
- "model_name": "Claude Sonnet 4.6",
- "total_tests": 2,
- "passed_tests": 2,
- "category": "basics",
- "route_api_model": "claude-sonnet-4-6",
- "scorer_details": {
- "schema_parity": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "reducers_diff": null,
- "reducers_equal": true,
- "tables_diff": null,
- "tables_equal": true
- }
- },
- "data_parity_insert_user": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "args": [
- 1,
- "Alice",
- 30,
- true
- ],
- "golden_out": "id | name | age | active ----+---------+-----+-------- 1 | \"Alice\" | 30 | true",
- "llm_out": "id | name | age | active ----+---------+-----+-------- 1 | \"Alice\" | 30 | true",
- "query": "SELECT id, name, age, active FROM user WHERE id=1",
- "reducer": "insert_user"
- }
- }
- },
- "vendor": "anthropic"
- },
- "t_005_update": {
- "hash": "cb5bf60a6d17e761b5fcec5d8e69bafbaf56602e570522e688d4da57973c7ea8",
- "task": "t_005_update",
- "lang": "rust",
- "golden_published": true,
- "model_name": "Claude Sonnet 4.6",
- "total_tests": 3,
- "passed_tests": 3,
- "category": "basics",
- "route_api_model": "claude-sonnet-4-6",
- "scorer_details": {
- "data_parity_update_user": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "args": [
- 1,
- "Alice2",
- 31,
- false
- ],
- "golden_out": "id | name | age | active ----+----------+-----+-------- 1 | \"Alice2\" | 31 | false",
- "llm_out": "id | name | age | active ----+----------+-----+-------- 1 | \"Alice2\" | 31 | false",
- "query": "SELECT id, name, age, active FROM user WHERE id=1",
- "reducer": "update_user"
- }
- },
- "schema_parity": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "reducers_diff": null,
- "reducers_equal": true,
- "tables_diff": null,
- "tables_equal": true
- }
- },
- "seed_users_row": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "sql": "INSERT INTO user(id, name, age, active) VALUES (1, 'Alice', 30, true)"
- }
- }
- },
- "vendor": "anthropic"
- },
- "t_006_delete": {
- "hash": "cb5bf60a6d17e761b5fcec5d8e69bafbaf56602e570522e688d4da57973c7ea8",
- "task": "t_006_delete",
- "lang": "rust",
- "golden_published": true,
- "model_name": "Claude Sonnet 4.6",
- "total_tests": 3,
- "passed_tests": 3,
- "category": "basics",
- "route_api_model": "claude-sonnet-4-6",
- "scorer_details": {
- "schema_parity": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "reducers_diff": null,
- "reducers_equal": true,
- "tables_diff": null,
- "tables_equal": true
- }
- },
- "seed_users_row": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "sql": "INSERT INTO user(id, name, age, active) VALUES (1, 'Alice', 30, true)"
- }
- },
- "delete_user_count_zero": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "actual": 0,
- "expected": 0,
- "sql": "SELECT COUNT(*) AS n FROM user WHERE id=1"
- }
- }
- },
- "vendor": "anthropic"
- },
- "t_007_crud": {
- "hash": "cb5bf60a6d17e761b5fcec5d8e69bafbaf56602e570522e688d4da57973c7ea8",
- "task": "t_007_crud",
- "lang": "rust",
- "golden_published": true,
- "model_name": "Claude Sonnet 4.6",
- "total_tests": 4,
- "passed_tests": 4,
- "category": "basics",
- "route_api_model": "claude-sonnet-4-6",
- "scorer_details": {
- "crud_row_id2_deleted": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "actual": 0,
- "expected": 0,
- "sql": "SELECT COUNT(*) AS n FROM user WHERE id=2"
- }
- },
- "schema_parity": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "reducers_diff": null,
- "reducers_equal": true,
- "tables_diff": null,
- "tables_equal": true
- }
- },
- "crud_row_id1_parity": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "args": [],
- "golden_out": "id | name | age | active ----+----------+-----+-------- 1 | \"Alice2\" | 31 | false",
- "llm_out": "id | name | age | active ----+----------+-----+-------- 1 | \"Alice2\" | 31 | false",
- "query": "SELECT id, name, age, active FROM user WHERE id=1",
- "reducer": "crud"
- }
- },
- "crud_total_count_one": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "actual": 1,
- "expected": 1,
- "sql": "SELECT COUNT(*) AS n FROM user"
- }
- }
- },
- "vendor": "anthropic"
- },
- "t_008_index_lookup": {
- "hash": "cb5bf60a6d17e761b5fcec5d8e69bafbaf56602e570522e688d4da57973c7ea8",
- "task": "t_008_index_lookup",
- "lang": "rust",
- "golden_published": true,
- "model_name": "Claude Sonnet 4.6",
- "total_tests": 3,
- "passed_tests": 3,
- "category": "basics",
- "route_api_model": "claude-sonnet-4-6",
- "scorer_details": {
- "index_lookup_projection_parity": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "args": [
- 1
- ],
- "golden_out": "id | name ----+--------- 1 | \"Alice\"",
- "llm_out": "id | name ----+--------- 1 | \"Alice\"",
- "query": "SELECT id, name FROM result WHERE id=1",
- "reducer": "lookup_user_name"
- }
- },
- "schema_parity": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "reducers_diff": null,
- "reducers_equal": true,
- "tables_diff": null,
- "tables_equal": true
- }
- },
- "seed_user_row": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "sql": "INSERT INTO user(id, name, age, active) VALUES (1, 'Alice', 30, true)"
- }
- }
- },
- "vendor": "anthropic"
- },
- "t_009_init": {
- "hash": "cb5bf60a6d17e761b5fcec5d8e69bafbaf56602e570522e688d4da57973c7ea8",
- "task": "t_009_init",
- "lang": "rust",
- "golden_published": true,
- "model_name": "Claude Sonnet 4.6",
- "total_tests": 4,
- "passed_tests": 4,
- "category": "basics",
- "route_api_model": "claude-sonnet-4-6",
- "scorer_details": {
- "init_seed_alice": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "actual": 1,
- "expected": 1,
- "sql": "SELECT COUNT(*) AS n FROM user WHERE id=1 AND name='Alice' AND age=30 AND active=true"
- }
- },
- "init_total_two": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "actual": 2,
- "expected": 2,
- "sql": "SELECT COUNT(*) AS n FROM user"
- }
- },
- "schema_parity": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "reducers_diff": null,
- "reducers_equal": true,
- "tables_diff": null,
- "tables_equal": true
- }
- },
- "init_seed_bob": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "actual": 1,
- "expected": 1,
- "sql": "SELECT COUNT(*) AS n FROM user WHERE id=2 AND name='Bob' AND age=22 AND active=false"
- }
- }
- },
- "vendor": "anthropic"
- },
- "t_010_connect": {
- "hash": "cb5bf60a6d17e761b5fcec5d8e69bafbaf56602e570522e688d4da57973c7ea8",
- "task": "t_010_connect",
- "lang": "rust",
- "golden_published": true,
- "model_name": "Claude Sonnet 4.6",
- "total_tests": 1,
- "passed_tests": 1,
- "category": "basics",
- "route_api_model": "claude-sonnet-4-6",
- "scorer_details": {
- "schema_parity": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "reducers_diff": null,
- "reducers_equal": true,
- "tables_diff": null,
- "tables_equal": true
- }
- }
- },
- "vendor": "anthropic"
- },
- "t_011_helper_function": {
- "hash": "cb5bf60a6d17e761b5fcec5d8e69bafbaf56602e570522e688d4da57973c7ea8",
- "task": "t_011_helper_function",
- "lang": "rust",
- "golden_published": true,
- "model_name": "Claude Sonnet 4.6",
- "total_tests": 3,
- "passed_tests": 3,
- "category": "basics",
- "route_api_model": "claude-sonnet-4-6",
- "scorer_details": {
- "helper_func_sum_parity": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "args": [
- 1,
- 2,
- 3
- ],
- "golden_out": "id | sum ----+----- 1 | 5",
- "llm_out": "id | sum ----+----- 1 | 5",
- "query": "SELECT id, sum FROM result WHERE id=1",
- "reducer": "compute_sum"
- }
- },
- "schema_parity": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "reducers_diff": null,
- "reducers_equal": true,
- "tables_diff": null,
- "tables_equal": true
- }
- },
- "helper_func_sum_abs": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "actual": 1,
- "expected": 1,
- "sql": "SELECT COUNT(*) AS n FROM result WHERE id=1 AND sum=5"
- }
- }
- },
- "vendor": "anthropic"
- },
- "t_012_spacetime_product_type": {
- "hash": "cb5bf60a6d17e761b5fcec5d8e69bafbaf56602e570522e688d4da57973c7ea8",
- "task": "t_012_spacetime_product_type",
- "lang": "rust",
- "golden_published": true,
- "model_name": "Claude Sonnet 4.6",
- "total_tests": 3,
- "passed_tests": 3,
- "category": "schema",
- "route_api_model": "claude-sonnet-4-6",
- "scorer_details": {
- "product_type_row_count": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "actual": 1,
- "expected": 1,
- "sql": "SELECT COUNT(*) AS n FROM result WHERE id=1"
- }
- },
- "schema_parity": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "reducers_diff": null,
- "reducers_equal": true,
- "tables_diff": null,
- "tables_equal": true
- }
- },
- "product_type_row_parity": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "args": [
- 1,
- 2,
- 3
- ],
- "golden_out": "id | value ----+----------------------- 1 | (left = 2, right = 3)",
- "llm_out": "id | value ----+----------------------- 1 | (left = 2, right = 3)",
- "query": "SELECT id, value FROM result WHERE id=1",
- "reducer": "set_score"
- }
- }
- },
- "vendor": "anthropic"
- },
- "t_013_spacetime_sum_type": {
- "hash": "cb5bf60a6d17e761b5fcec5d8e69bafbaf56602e570522e688d4da57973c7ea8",
- "task": "t_013_spacetime_sum_type",
- "lang": "rust",
- "golden_published": true,
- "model_name": "Claude Sonnet 4.6",
- "total_tests": 3,
- "passed_tests": 3,
- "category": "schema",
- "route_api_model": "claude-sonnet-4-6",
- "scorer_details": {
- "schema_parity": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "reducers_diff": null,
- "reducers_equal": true,
- "tables_diff": null,
- "tables_equal": true
- }
- },
- "sum_type_row_parity": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "args": [
- 1,
- 10
- ],
- "golden_out": "id | value ----+--------------- 1 | (circle = 10)",
- "llm_out": "id | value ----+--------------- 1 | (circle = 10)",
- "query": "SELECT id, value FROM result WHERE id=1",
- "reducer": "set_circle"
- }
- },
- "sum_type_row_count": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "actual": 1,
- "expected": 1,
- "sql": "SELECT COUNT(*) AS n FROM result WHERE id=1"
- }
- }
- },
- "vendor": "anthropic"
- },
- "t_014_elementary_columns": {
- "hash": "cb5bf60a6d17e761b5fcec5d8e69bafbaf56602e570522e688d4da57973c7ea8",
- "task": "t_014_elementary_columns",
- "lang": "rust",
- "golden_published": true,
- "model_name": "Claude Sonnet 4.6",
- "total_tests": 3,
- "passed_tests": 3,
- "category": "schema",
- "route_api_model": "claude-sonnet-4-6",
- "scorer_details": {
- "schema_parity": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "reducers_diff": null,
- "reducers_equal": true,
- "tables_diff": null,
- "tables_equal": true
- }
- },
- "elementary_columns_row_parity": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "args": [],
- "golden_out": "id | count | total | price | ratio | active | name ----+-------+------------+-------+-------+--------+--------- 1 | 2 | 3000000000 | 1.5 | 2.25 | true | \"Alice\"",
- "llm_out": "id | count | total | price | ratio | active | name ----+-------+------------+-------+-------+--------+--------- 1 | 2 | 3000000000 | 1.5 | 2.25 | true | \"Alice\"",
- "query": "SELECT id, count, total, price, ratio, active, name FROM primitive WHERE id=1",
- "reducer": "seed"
- }
- },
- "elementary_columns_row_count": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "actual": 1,
- "expected": 1,
- "sql": "SELECT COUNT(*) AS n FROM primitive WHERE id=1"
- }
- }
- },
- "vendor": "anthropic"
- },
- "t_015_product_type_columns": {
- "hash": "cb5bf60a6d17e761b5fcec5d8e69bafbaf56602e570522e688d4da57973c7ea8",
- "task": "t_015_product_type_columns",
- "lang": "rust",
- "golden_published": true,
- "model_name": "Claude Sonnet 4.6",
- "total_tests": 3,
- "passed_tests": 3,
- "category": "schema",
- "route_api_model": "claude-sonnet-4-6",
- "scorer_details": {
- "product_type_columns_row_parity": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "args": [],
- "golden_out": "id | home | work | pos ----+----------------------------------+-----------------------------------+---------------- 1 | (street = \"1 Main\", zip = 11111) | (street = \"2 Broad\", zip = 22222) | (x = 7, y = 9)",
- "llm_out": "id | home | work | pos ----+----------------------------------+-----------------------------------+---------------- 1 | (street = \"1 Main\", zip = 11111) | (street = \"2 Broad\", zip = 22222) | (x = 7, y = 9)",
- "query": "SELECT id, home, work, pos FROM profile WHERE id=1",
- "reducer": "seed"
- }
- },
- "schema_parity": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "reducers_diff": null,
- "reducers_equal": true,
- "tables_diff": null,
- "tables_equal": true
- }
- },
- "product_type_columns_row_count": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "actual": 1,
- "expected": 1,
- "sql": "SELECT COUNT(*) AS n FROM profile WHERE id=1"
- }
- }
- },
- "vendor": "anthropic"
- },
- "t_016_sum_type_columns": {
- "hash": "cb5bf60a6d17e761b5fcec5d8e69bafbaf56602e570522e688d4da57973c7ea8",
- "task": "t_016_sum_type_columns",
- "lang": "rust",
- "golden_published": true,
- "model_name": "Claude Sonnet 4.6",
- "total_tests": 3,
- "passed_tests": 3,
- "category": "schema",
- "route_api_model": "claude-sonnet-4-6",
- "scorer_details": {
- "sum_type_columns_row_parity": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "args": [],
- "golden_out": "id | a | b ----+---------------+--------------------------------------- 1 | (circle = 10) | (rectangle = (width = 4, height = 6))",
- "llm_out": "id | a | b ----+---------------+--------------------------------------- 1 | (circle = 10) | (rectangle = (width = 4, height = 6))",
- "query": "SELECT id, a, b FROM drawing WHERE id=1",
- "reducer": "seed"
- }
- },
- "schema_parity": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "reducers_diff": null,
- "reducers_equal": true,
- "tables_diff": null,
- "tables_equal": true
- }
- },
- "sum_type_columns_row_count": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "actual": 1,
- "expected": 1,
- "sql": "SELECT COUNT(*) AS n FROM drawing WHERE id=1"
- }
- }
- },
- "vendor": "anthropic"
- },
- "t_017_scheduled_columns": {
- "hash": "cb5bf60a6d17e761b5fcec5d8e69bafbaf56602e570522e688d4da57973c7ea8",
- "task": "t_017_scheduled_columns",
- "lang": "rust",
- "golden_published": true,
- "model_name": "Claude Sonnet 4.6",
- "total_tests": 2,
- "passed_tests": 2,
- "category": "schema",
- "route_api_model": "claude-sonnet-4-6",
- "scorer_details": {
- "schema_parity": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "reducers_diff": null,
- "reducers_equal": true,
- "tables_diff": null,
- "tables_equal": true
- }
- },
- "scheduled_seeded_one_row": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "actual": 1,
- "expected": 1,
- "sql": "SELECT COUNT(*) AS n FROM tick_timer WHERE scheduled_id>=0"
- }
- }
- },
- "vendor": "anthropic"
- },
- "t_018_constraints": {
- "hash": "cb5bf60a6d17e761b5fcec5d8e69bafbaf56602e570522e688d4da57973c7ea8",
- "task": "t_018_constraints",
- "lang": "rust",
- "golden_published": true,
- "model_name": "Claude Sonnet 4.6",
- "total_tests": 3,
- "passed_tests": 3,
- "category": "schema",
- "route_api_model": "claude-sonnet-4-6",
- "scorer_details": {
- "schema_parity": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "reducers_diff": null,
- "reducers_equal": true,
- "tables_diff": null,
- "tables_equal": true
- }
- },
- "constraints_row_parity_after_seed": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "args": [],
- "golden_out": "id | email | name ----+-----------------+--------- 1 | \"a@example.com\" | \"Alice\"",
- "llm_out": "id | email | name ----+-----------------+--------- 1 | \"a@example.com\" | \"Alice\"",
- "query": "SELECT id, email, name FROM account WHERE id=1",
- "reducer": "seed"
- }
- },
- "constraints_seed_two_rows": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "actual": 1,
- "expected": 1,
- "sql": "SELECT COUNT(*) AS n FROM account WHERE id=2"
- }
- }
- },
- "vendor": "anthropic"
- },
- "t_019_many_to_many": {
- "hash": "cb5bf60a6d17e761b5fcec5d8e69bafbaf56602e570522e688d4da57973c7ea8",
- "task": "t_019_many_to_many",
- "lang": "rust",
- "golden_published": true,
- "model_name": "Claude Sonnet 4.6",
- "total_tests": 5,
- "passed_tests": 5,
- "category": "schema",
- "route_api_model": "claude-sonnet-4-6",
- "scorer_details": {
- "m2m_has_1_20": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "actual": 1,
- "expected": 1,
- "sql": "SELECT COUNT(*) AS n FROM membership WHERE user_id=1 AND group_id=20"
- }
- },
- "m2m_has_2_20": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "actual": 1,
- "expected": 1,
- "sql": "SELECT COUNT(*) AS n FROM membership WHERE user_id=2 AND group_id=20"
- }
- },
- "schema_parity": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "reducers_diff": null,
- "reducers_equal": true,
- "tables_diff": null,
- "tables_equal": true
- }
- },
- "m2m_has_1_10": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "actual": 1,
- "expected": 1,
- "sql": "SELECT COUNT(*) AS n FROM membership WHERE user_id=1 AND group_id=10"
- }
- },
- "memberships_three_rows": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "actual": 3,
- "expected": 3,
- "sql": "SELECT COUNT(*) AS n FROM membership"
- }
- }
- },
- "vendor": "anthropic"
- },
- "t_020_ecs": {
- "hash": "cb5bf60a6d17e761b5fcec5d8e69bafbaf56602e570522e688d4da57973c7ea8",
- "task": "t_020_ecs",
- "lang": "rust",
- "golden_published": true,
- "model_name": "Claude Sonnet 4.6",
- "total_tests": 5,
- "passed_tests": 5,
- "category": "schema",
- "route_api_model": "claude-sonnet-4-6",
- "scorer_details": {
- "ecs_next_pos_entity2": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "actual": 1,
- "expected": 1,
- "sql": "SELECT COUNT(*) AS n FROM next_position WHERE entity_id=2 AND x=8 AND y=3"
- }
- },
- "ecs_next_pos_entity1": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "actual": 1,
- "expected": 1,
- "sql": "SELECT COUNT(*) AS n FROM next_position WHERE entity_id=1 AND x=1 AND y=0"
- }
- },
- "ecs_seed_position_count": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "actual": 2,
- "expected": 2,
- "sql": "SELECT COUNT(*) AS n FROM position"
- }
- },
- "schema_parity": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "reducers_diff": null,
- "reducers_equal": true,
- "tables_diff": null,
- "tables_equal": true
- }
- },
- "ecs_step_next_position_count": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "actual": 2,
- "expected": 2,
- "sql": "SELECT COUNT(*) AS n FROM next_position"
- }
- }
- },
- "vendor": "anthropic"
- },
- "t_021_multi_column_index": {
- "hash": "cb5bf60a6d17e761b5fcec5d8e69bafbaf56602e570522e688d4da57973c7ea8",
- "task": "t_021_multi_column_index",
- "lang": "rust",
- "golden_published": true,
- "model_name": "Claude Sonnet 4.6",
- "total_tests": 4,
- "passed_tests": 4,
- "category": "schema",
- "route_api_model": "claude-sonnet-4-6",
- "scorer_details": {
- "mcindex_seed_count": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "actual": 3,
- "expected": 3,
- "sql": "SELECT COUNT(*) AS n FROM log"
- }
- },
- "mcindex_lookup_u7_d1": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "actual": 1,
- "expected": 1,
- "sql": "SELECT COUNT(*) AS n FROM log WHERE user_id=7 AND day=1"
- }
- },
- "schema_parity": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "reducers_diff": null,
- "reducers_equal": true,
- "tables_diff": null,
- "tables_equal": true
- }
- },
- "mcindex_lookup_u7_d2": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "actual": 1,
- "expected": 1,
- "sql": "SELECT COUNT(*) AS n FROM log WHERE user_id=7 AND day=2"
- }
- }
- },
- "vendor": "anthropic"
- }
- }
- },
- {
- "name": "Claude Opus 4.6",
- "route_api_model": "claude-opus-4-6",
- "tasks": {
- "t_000_empty_reducers": {
- "hash": "3505a160bff25cbe99eb4235b037d39ade89af05864f8b90b7723b63caaa3781",
- "task": "t_000_empty_reducers",
- "lang": "rust",
- "golden_published": true,
- "model_name": "Claude Opus 4.6",
- "total_tests": 1,
- "passed_tests": 1,
- "category": "basics",
- "route_api_model": "claude-opus-4-6",
- "scorer_details": {
- "schema_parity": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "reducers_diff": null,
- "reducers_equal": true,
- "tables_diff": null,
- "tables_equal": true
- }
- }
- },
- "vendor": "anthropic"
- },
- "t_001_basic_tables": {
- "hash": "3505a160bff25cbe99eb4235b037d39ade89af05864f8b90b7723b63caaa3781",
- "task": "t_001_basic_tables",
- "lang": "rust",
- "golden_published": true,
- "model_name": "Claude Opus 4.6",
- "total_tests": 1,
- "passed_tests": 1,
- "category": "basics",
- "route_api_model": "claude-opus-4-6",
- "scorer_details": {
- "schema_parity": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "reducers_diff": null,
- "reducers_equal": true,
- "tables_diff": null,
- "tables_equal": true
- }
- }
- },
- "vendor": "anthropic"
- },
- "t_002_scheduled_table": {
- "hash": "3505a160bff25cbe99eb4235b037d39ade89af05864f8b90b7723b63caaa3781",
- "task": "t_002_scheduled_table",
- "lang": "rust",
- "golden_published": true,
- "model_name": "Claude Opus 4.6",
- "total_tests": 1,
- "passed_tests": 1,
- "category": "basics",
- "route_api_model": "claude-opus-4-6",
- "scorer_details": {
- "schema_parity": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "reducers_diff": null,
- "reducers_equal": true,
- "tables_diff": null,
- "tables_equal": true
- }
- }
- },
- "vendor": "anthropic"
- },
- "t_003_struct_in_table": {
- "hash": "3505a160bff25cbe99eb4235b037d39ade89af05864f8b90b7723b63caaa3781",
- "task": "t_003_struct_in_table",
- "lang": "rust",
- "golden_published": true,
- "model_name": "Claude Opus 4.6",
- "total_tests": 1,
- "passed_tests": 1,
- "category": "basics",
- "route_api_model": "claude-opus-4-6",
- "scorer_details": {
- "schema_parity": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "reducers_diff": null,
- "reducers_equal": true,
- "tables_diff": null,
- "tables_equal": true
- }
- }
- },
- "vendor": "anthropic"
- },
- "t_004_insert": {
- "hash": "3505a160bff25cbe99eb4235b037d39ade89af05864f8b90b7723b63caaa3781",
- "task": "t_004_insert",
- "lang": "rust",
- "golden_published": true,
- "model_name": "Claude Opus 4.6",
- "total_tests": 2,
- "passed_tests": 2,
- "category": "basics",
- "route_api_model": "claude-opus-4-6",
- "scorer_details": {
- "schema_parity": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "reducers_diff": null,
- "reducers_equal": true,
- "tables_diff": null,
- "tables_equal": true
- }
- },
- "data_parity_insert_user": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "args": [
- 1,
- "Alice",
- 30,
- true
- ],
- "golden_out": "id | name | age | active ----+---------+-----+-------- 1 | \"Alice\" | 30 | true",
- "llm_out": "id | name | age | active ----+---------+-----+-------- 1 | \"Alice\" | 30 | true",
- "query": "SELECT id, name, age, active FROM user WHERE id=1",
- "reducer": "insert_user"
- }
- }
- },
- "vendor": "anthropic"
- },
- "t_005_update": {
- "hash": "3505a160bff25cbe99eb4235b037d39ade89af05864f8b90b7723b63caaa3781",
- "task": "t_005_update",
- "lang": "rust",
- "golden_published": true,
- "model_name": "Claude Opus 4.6",
- "total_tests": 3,
- "passed_tests": 3,
- "category": "basics",
- "route_api_model": "claude-opus-4-6",
- "scorer_details": {
- "data_parity_update_user": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "args": [
- 1,
- "Alice2",
- 31,
- false
- ],
- "golden_out": "id | name | age | active ----+----------+-----+-------- 1 | \"Alice2\" | 31 | false",
- "llm_out": "id | name | age | active ----+----------+-----+-------- 1 | \"Alice2\" | 31 | false",
- "query": "SELECT id, name, age, active FROM user WHERE id=1",
- "reducer": "update_user"
- }
- },
- "schema_parity": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "reducers_diff": null,
- "reducers_equal": true,
- "tables_diff": null,
- "tables_equal": true
- }
- },
- "seed_users_row": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "sql": "INSERT INTO user(id, name, age, active) VALUES (1, 'Alice', 30, true)"
- }
- }
- },
- "vendor": "anthropic"
- },
- "t_006_delete": {
- "hash": "3505a160bff25cbe99eb4235b037d39ade89af05864f8b90b7723b63caaa3781",
- "task": "t_006_delete",
- "lang": "rust",
- "golden_published": true,
- "model_name": "Claude Opus 4.6",
- "total_tests": 3,
- "passed_tests": 3,
- "category": "basics",
- "route_api_model": "claude-opus-4-6",
- "scorer_details": {
- "schema_parity": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "reducers_diff": null,
- "reducers_equal": true,
- "tables_diff": null,
- "tables_equal": true
- }
- },
- "seed_users_row": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "sql": "INSERT INTO user(id, name, age, active) VALUES (1, 'Alice', 30, true)"
- }
- },
- "delete_user_count_zero": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "actual": 0,
- "expected": 0,
- "sql": "SELECT COUNT(*) AS n FROM user WHERE id=1"
- }
- }
- },
- "vendor": "anthropic"
- },
- "t_007_crud": {
- "hash": "3505a160bff25cbe99eb4235b037d39ade89af05864f8b90b7723b63caaa3781",
- "task": "t_007_crud",
- "lang": "rust",
- "golden_published": true,
- "model_name": "Claude Opus 4.6",
- "total_tests": 4,
- "passed_tests": 4,
- "category": "basics",
- "route_api_model": "claude-opus-4-6",
- "scorer_details": {
- "crud_row_id2_deleted": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "actual": 0,
- "expected": 0,
- "sql": "SELECT COUNT(*) AS n FROM user WHERE id=2"
- }
- },
- "schema_parity": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "reducers_diff": null,
- "reducers_equal": true,
- "tables_diff": null,
- "tables_equal": true
- }
- },
- "crud_row_id1_parity": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "args": [],
- "golden_out": "id | name | age | active ----+----------+-----+-------- 1 | \"Alice2\" | 31 | false",
- "llm_out": "id | name | age | active ----+----------+-----+-------- 1 | \"Alice2\" | 31 | false",
- "query": "SELECT id, name, age, active FROM user WHERE id=1",
- "reducer": "crud"
- }
- },
- "crud_total_count_one": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "actual": 1,
- "expected": 1,
- "sql": "SELECT COUNT(*) AS n FROM user"
- }
- }
- },
- "vendor": "anthropic"
- },
- "t_008_index_lookup": {
- "hash": "3505a160bff25cbe99eb4235b037d39ade89af05864f8b90b7723b63caaa3781",
- "task": "t_008_index_lookup",
- "lang": "rust",
- "golden_published": true,
- "model_name": "Claude Opus 4.6",
- "total_tests": 3,
- "passed_tests": 3,
- "category": "basics",
- "route_api_model": "claude-opus-4-6",
- "scorer_details": {
- "index_lookup_projection_parity": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "args": [
- 1
- ],
- "golden_out": "id | name ----+--------- 1 | \"Alice\"",
- "llm_out": "id | name ----+--------- 1 | \"Alice\"",
- "query": "SELECT id, name FROM result WHERE id=1",
- "reducer": "lookup_user_name"
- }
- },
- "schema_parity": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "reducers_diff": null,
- "reducers_equal": true,
- "tables_diff": null,
- "tables_equal": true
- }
- },
- "seed_user_row": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "sql": "INSERT INTO user(id, name, age, active) VALUES (1, 'Alice', 30, true)"
- }
- }
- },
- "vendor": "anthropic"
- },
- "t_009_init": {
- "hash": "3505a160bff25cbe99eb4235b037d39ade89af05864f8b90b7723b63caaa3781",
- "task": "t_009_init",
- "lang": "rust",
- "golden_published": true,
- "model_name": "Claude Opus 4.6",
- "total_tests": 4,
- "passed_tests": 4,
- "category": "basics",
- "route_api_model": "claude-opus-4-6",
- "scorer_details": {
- "init_seed_alice": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "actual": 1,
- "expected": 1,
- "sql": "SELECT COUNT(*) AS n FROM user WHERE id=1 AND name='Alice' AND age=30 AND active=true"
- }
- },
- "init_total_two": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "actual": 2,
- "expected": 2,
- "sql": "SELECT COUNT(*) AS n FROM user"
- }
- },
- "schema_parity": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "reducers_diff": null,
- "reducers_equal": true,
- "tables_diff": null,
- "tables_equal": true
- }
- },
- "init_seed_bob": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "actual": 1,
- "expected": 1,
- "sql": "SELECT COUNT(*) AS n FROM user WHERE id=2 AND name='Bob' AND age=22 AND active=false"
- }
- }
- },
- "vendor": "anthropic"
- },
- "t_010_connect": {
- "hash": "3505a160bff25cbe99eb4235b037d39ade89af05864f8b90b7723b63caaa3781",
- "task": "t_010_connect",
- "lang": "rust",
- "golden_published": true,
- "model_name": "Claude Opus 4.6",
- "total_tests": 1,
- "passed_tests": 1,
- "category": "basics",
- "route_api_model": "claude-opus-4-6",
- "scorer_details": {
- "schema_parity": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "reducers_diff": null,
- "reducers_equal": true,
- "tables_diff": null,
- "tables_equal": true
- }
- }
- },
- "vendor": "anthropic"
- },
- "t_011_helper_function": {
- "hash": "3505a160bff25cbe99eb4235b037d39ade89af05864f8b90b7723b63caaa3781",
- "task": "t_011_helper_function",
- "lang": "rust",
- "golden_published": true,
- "model_name": "Claude Opus 4.6",
- "total_tests": 3,
- "passed_tests": 3,
- "category": "basics",
- "route_api_model": "claude-opus-4-6",
- "scorer_details": {
- "helper_func_sum_parity": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "args": [
- 1,
- 2,
- 3
- ],
- "golden_out": "id | sum ----+----- 1 | 5",
- "llm_out": "id | sum ----+----- 1 | 5",
- "query": "SELECT id, sum FROM result WHERE id=1",
- "reducer": "compute_sum"
- }
- },
- "schema_parity": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "reducers_diff": null,
- "reducers_equal": true,
- "tables_diff": null,
- "tables_equal": true
- }
- },
- "helper_func_sum_abs": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "actual": 1,
- "expected": 1,
- "sql": "SELECT COUNT(*) AS n FROM result WHERE id=1 AND sum=5"
- }
- }
- },
- "vendor": "anthropic"
- },
- "t_012_spacetime_product_type": {
- "hash": "3505a160bff25cbe99eb4235b037d39ade89af05864f8b90b7723b63caaa3781",
- "task": "t_012_spacetime_product_type",
- "lang": "rust",
- "golden_published": true,
- "model_name": "Claude Opus 4.6",
- "total_tests": 3,
- "passed_tests": 3,
- "category": "schema",
- "route_api_model": "claude-opus-4-6",
- "scorer_details": {
- "product_type_row_count": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "actual": 1,
- "expected": 1,
- "sql": "SELECT COUNT(*) AS n FROM result WHERE id=1"
- }
- },
- "schema_parity": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "reducers_diff": null,
- "reducers_equal": true,
- "tables_diff": null,
- "tables_equal": true
- }
- },
- "product_type_row_parity": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "args": [
- 1,
- 2,
- 3
- ],
- "golden_out": "id | value ----+----------------------- 1 | (left = 2, right = 3)",
- "llm_out": "id | value ----+----------------------- 1 | (left = 2, right = 3)",
- "query": "SELECT id, value FROM result WHERE id=1",
- "reducer": "set_score"
- }
- }
- },
- "vendor": "anthropic"
- },
- "t_013_spacetime_sum_type": {
- "hash": "3505a160bff25cbe99eb4235b037d39ade89af05864f8b90b7723b63caaa3781",
- "task": "t_013_spacetime_sum_type",
- "lang": "rust",
- "golden_published": true,
- "model_name": "Claude Opus 4.6",
- "total_tests": 3,
- "passed_tests": 3,
- "category": "schema",
- "route_api_model": "claude-opus-4-6",
- "scorer_details": {
- "schema_parity": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "reducers_diff": null,
- "reducers_equal": true,
- "tables_diff": null,
- "tables_equal": true
- }
- },
- "sum_type_row_parity": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "args": [
- 1,
- 10
- ],
- "golden_out": "id | value ----+--------------- 1 | (Circle = 10)",
- "llm_out": "id | value ----+--------------- 1 | (Circle = 10)",
- "query": "SELECT id, value FROM result WHERE id=1",
- "reducer": "set_circle"
- }
- },
- "sum_type_row_count": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "actual": 1,
- "expected": 1,
- "sql": "SELECT COUNT(*) AS n FROM result WHERE id=1"
- }
- }
- },
- "vendor": "anthropic"
- },
- "t_014_elementary_columns": {
- "hash": "3505a160bff25cbe99eb4235b037d39ade89af05864f8b90b7723b63caaa3781",
- "task": "t_014_elementary_columns",
- "lang": "rust",
- "golden_published": true,
- "model_name": "Claude Opus 4.6",
- "total_tests": 3,
- "passed_tests": 3,
- "category": "schema",
- "route_api_model": "claude-opus-4-6",
- "scorer_details": {
- "schema_parity": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "reducers_diff": null,
- "reducers_equal": true,
- "tables_diff": null,
- "tables_equal": true
- }
- },
- "elementary_columns_row_parity": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "args": [],
- "golden_out": "id | count | total | price | ratio | active | name ----+-------+------------+-------+-------+--------+--------- 1 | 2 | 3000000000 | 1.5 | 2.25 | true | \"Alice\"",
- "llm_out": "id | count | total | price | ratio | active | name ----+-------+------------+-------+-------+--------+--------- 1 | 2 | 3000000000 | 1.5 | 2.25 | true | \"Alice\"",
- "query": "SELECT id, count, total, price, ratio, active, name FROM primitive WHERE id=1",
- "reducer": "seed"
- }
- },
- "elementary_columns_row_count": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "actual": 1,
- "expected": 1,
- "sql": "SELECT COUNT(*) AS n FROM primitive WHERE id=1"
- }
- }
- },
- "vendor": "anthropic"
- },
- "t_015_product_type_columns": {
- "hash": "3505a160bff25cbe99eb4235b037d39ade89af05864f8b90b7723b63caaa3781",
- "task": "t_015_product_type_columns",
- "lang": "rust",
- "golden_published": true,
- "model_name": "Claude Opus 4.6",
- "total_tests": 3,
- "passed_tests": 3,
- "category": "schema",
- "route_api_model": "claude-opus-4-6",
- "scorer_details": {
- "product_type_columns_row_parity": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "args": [],
- "golden_out": "id | home | work | pos ----+----------------------------------+-----------------------------------+---------------- 1 | (street = \"1 Main\", zip = 11111) | (street = \"2 Broad\", zip = 22222) | (x = 7, y = 9)",
- "llm_out": "id | home | work | pos ----+----------------------------------+-----------------------------------+---------------- 1 | (street = \"1 Main\", zip = 11111) | (street = \"2 Broad\", zip = 22222) | (x = 7, y = 9)",
- "query": "SELECT id, home, work, pos FROM profile WHERE id=1",
- "reducer": "seed"
- }
- },
- "schema_parity": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "reducers_diff": null,
- "reducers_equal": true,
- "tables_diff": null,
- "tables_equal": true
- }
- },
- "product_type_columns_row_count": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "actual": 1,
- "expected": 1,
- "sql": "SELECT COUNT(*) AS n FROM profile WHERE id=1"
- }
- }
- },
- "vendor": "anthropic"
- },
- "t_016_sum_type_columns": {
- "hash": "3505a160bff25cbe99eb4235b037d39ade89af05864f8b90b7723b63caaa3781",
- "task": "t_016_sum_type_columns",
- "lang": "rust",
- "golden_published": true,
- "model_name": "Claude Opus 4.6",
- "total_tests": 3,
- "passed_tests": 3,
- "category": "schema",
- "route_api_model": "claude-opus-4-6",
- "scorer_details": {
- "sum_type_columns_row_parity": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "args": [],
- "golden_out": "id | a | b ----+---------------+--------------------------------------- 1 | (Circle = 10) | (Rectangle = (width = 4, height = 6))",
- "llm_out": "id | a | b ----+---------------+--------------------------------------- 1 | (Circle = 10) | (Rectangle = (width = 4, height = 6))",
- "query": "SELECT id, a, b FROM drawing WHERE id=1",
- "reducer": "seed"
- }
- },
- "schema_parity": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "reducers_diff": null,
- "reducers_equal": true,
- "tables_diff": null,
- "tables_equal": true
- }
- },
- "sum_type_columns_row_count": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "actual": 1,
- "expected": 1,
- "sql": "SELECT COUNT(*) AS n FROM drawing WHERE id=1"
- }
- }
- },
- "vendor": "anthropic"
- },
- "t_017_scheduled_columns": {
- "hash": "3505a160bff25cbe99eb4235b037d39ade89af05864f8b90b7723b63caaa3781",
- "task": "t_017_scheduled_columns",
- "lang": "rust",
- "golden_published": true,
- "model_name": "Claude Opus 4.6",
- "total_tests": 2,
- "passed_tests": 2,
- "category": "schema",
- "route_api_model": "claude-opus-4-6",
- "scorer_details": {
- "schema_parity": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "reducers_diff": null,
- "reducers_equal": true,
- "tables_diff": null,
- "tables_equal": true
- }
- },
- "scheduled_seeded_one_row": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "actual": 1,
- "expected": 1,
- "sql": "SELECT COUNT(*) AS n FROM tick_timer WHERE scheduled_id>=0"
- }
- }
- },
- "vendor": "anthropic"
- },
- "t_018_constraints": {
- "hash": "3505a160bff25cbe99eb4235b037d39ade89af05864f8b90b7723b63caaa3781",
- "task": "t_018_constraints",
- "lang": "rust",
- "golden_published": true,
- "model_name": "Claude Opus 4.6",
- "total_tests": 3,
- "passed_tests": 3,
- "category": "schema",
- "route_api_model": "claude-opus-4-6",
- "scorer_details": {
- "schema_parity": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "reducers_diff": null,
- "reducers_equal": true,
- "tables_diff": null,
- "tables_equal": true
- }
- },
- "constraints_row_parity_after_seed": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "args": [],
- "golden_out": "id | email | name ----+-----------------+--------- 1 | \"a@example.com\" | \"Alice\"",
- "llm_out": "id | email | name ----+-----------------+--------- 1 | \"a@example.com\" | \"Alice\"",
- "query": "SELECT id, email, name FROM account WHERE id=1",
- "reducer": "seed"
- }
- },
- "constraints_seed_two_rows": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "actual": 1,
- "expected": 1,
- "sql": "SELECT COUNT(*) AS n FROM account WHERE id=2"
- }
- }
- },
- "vendor": "anthropic"
- },
- "t_019_many_to_many": {
- "hash": "3505a160bff25cbe99eb4235b037d39ade89af05864f8b90b7723b63caaa3781",
- "task": "t_019_many_to_many",
- "lang": "rust",
- "golden_published": true,
- "model_name": "Claude Opus 4.6",
- "total_tests": 5,
- "passed_tests": 5,
- "category": "schema",
- "route_api_model": "claude-opus-4-6",
- "scorer_details": {
- "m2m_has_1_20": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "actual": 1,
- "expected": 1,
- "sql": "SELECT COUNT(*) AS n FROM membership WHERE user_id=1 AND group_id=20"
- }
- },
- "m2m_has_2_20": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "actual": 1,
- "expected": 1,
- "sql": "SELECT COUNT(*) AS n FROM membership WHERE user_id=2 AND group_id=20"
- }
- },
- "schema_parity": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "reducers_diff": null,
- "reducers_equal": true,
- "tables_diff": null,
- "tables_equal": true
- }
- },
- "m2m_has_1_10": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "actual": 1,
- "expected": 1,
- "sql": "SELECT COUNT(*) AS n FROM membership WHERE user_id=1 AND group_id=10"
- }
- },
- "memberships_three_rows": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "actual": 3,
- "expected": 3,
- "sql": "SELECT COUNT(*) AS n FROM membership"
- }
- }
- },
- "vendor": "anthropic"
- },
- "t_020_ecs": {
- "hash": "3505a160bff25cbe99eb4235b037d39ade89af05864f8b90b7723b63caaa3781",
- "task": "t_020_ecs",
- "lang": "rust",
- "golden_published": true,
- "model_name": "Claude Opus 4.6",
- "total_tests": 5,
- "passed_tests": 5,
- "category": "schema",
- "route_api_model": "claude-opus-4-6",
- "scorer_details": {
- "ecs_next_pos_entity2": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "actual": 1,
- "expected": 1,
- "sql": "SELECT COUNT(*) AS n FROM next_position WHERE entity_id=2 AND x=8 AND y=3"
- }
- },
- "ecs_next_pos_entity1": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "actual": 1,
- "expected": 1,
- "sql": "SELECT COUNT(*) AS n FROM next_position WHERE entity_id=1 AND x=1 AND y=0"
- }
- },
- "ecs_seed_position_count": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "actual": 2,
- "expected": 2,
- "sql": "SELECT COUNT(*) AS n FROM position"
- }
- },
- "schema_parity": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "reducers_diff": null,
- "reducers_equal": true,
- "tables_diff": null,
- "tables_equal": true
- }
- },
- "ecs_step_next_position_count": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "actual": 2,
- "expected": 2,
- "sql": "SELECT COUNT(*) AS n FROM next_position"
- }
- }
- },
- "vendor": "anthropic"
- },
- "t_021_multi_column_index": {
- "hash": "3505a160bff25cbe99eb4235b037d39ade89af05864f8b90b7723b63caaa3781",
- "task": "t_021_multi_column_index",
- "lang": "rust",
- "golden_published": true,
- "model_name": "Claude Opus 4.6",
- "total_tests": 4,
- "passed_tests": 4,
- "category": "schema",
- "route_api_model": "claude-opus-4-6",
- "scorer_details": {
- "mcindex_seed_count": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "actual": 3,
- "expected": 3,
- "sql": "SELECT COUNT(*) AS n FROM log"
- }
- },
- "mcindex_lookup_u7_d1": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "actual": 1,
- "expected": 1,
- "sql": "SELECT COUNT(*) AS n FROM log WHERE user_id=7 AND day=1"
- }
- },
- "schema_parity": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "reducers_diff": null,
- "reducers_equal": true,
- "tables_diff": null,
- "tables_equal": true
- }
- },
- "mcindex_lookup_u7_d2": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "actual": 1,
- "expected": 1,
- "sql": "SELECT COUNT(*) AS n FROM log WHERE user_id=7 AND day=2"
- }
- }
- },
- "vendor": "anthropic"
- }
- }
- },
- {
- "name": "Gemini 3.1 Pro",
- "route_api_model": "gemini-3.1-pro-preview",
- "tasks": {
- "t_000_empty_reducers": {
- "hash": "3505a160bff25cbe99eb4235b037d39ade89af05864f8b90b7723b63caaa3781",
- "task": "t_000_empty_reducers",
- "lang": "rust",
- "golden_published": true,
- "model_name": "Gemini 3.1 Pro",
- "total_tests": 1,
- "passed_tests": 1,
- "category": "basics",
- "route_api_model": "gemini-3.1-pro-preview",
- "scorer_details": {
- "schema_parity": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "reducers_diff": null,
- "reducers_equal": true,
- "tables_diff": null,
- "tables_equal": true
- }
- }
- },
- "vendor": "google"
- },
- "t_001_basic_tables": {
- "hash": "3505a160bff25cbe99eb4235b037d39ade89af05864f8b90b7723b63caaa3781",
- "task": "t_001_basic_tables",
- "lang": "rust",
- "golden_published": true,
- "model_name": "Gemini 3.1 Pro",
- "total_tests": 1,
- "passed_tests": 1,
- "category": "basics",
- "route_api_model": "gemini-3.1-pro-preview",
- "scorer_details": {
- "schema_parity": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "reducers_diff": null,
- "reducers_equal": true,
- "tables_diff": null,
- "tables_equal": true
- }
- }
- },
- "vendor": "google"
- },
- "t_002_scheduled_table": {
- "hash": "3505a160bff25cbe99eb4235b037d39ade89af05864f8b90b7723b63caaa3781",
- "task": "t_002_scheduled_table",
- "lang": "rust",
- "golden_published": true,
- "model_name": "Gemini 3.1 Pro",
- "total_tests": 1,
- "passed_tests": 1,
- "category": "basics",
- "route_api_model": "gemini-3.1-pro-preview",
- "scorer_details": {
- "schema_parity": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "reducers_diff": null,
- "reducers_equal": true,
- "tables_diff": null,
- "tables_equal": true
- }
- }
- },
- "vendor": "google"
- },
- "t_003_struct_in_table": {
- "hash": "3505a160bff25cbe99eb4235b037d39ade89af05864f8b90b7723b63caaa3781",
- "task": "t_003_struct_in_table",
- "lang": "rust",
- "golden_published": false,
- "model_name": "Gemini 3.1 Pro",
- "total_tests": 1,
- "passed_tests": 0,
- "llm_output": "use spacetimedb::SpacetimeType;\n\n#[derive(SpacetimeType)]\npub struct Position {\n pub x: i32,\n pub y: i32,\n}\n\n#[spacetimedb::table(name = entity, public)]\npub struct Entity {\n #[primary_key]\n pub id: i32,\n pub pos: Position,\n}",
- "category": "basics",
- "route_api_model": "gemini-3.1-pro-preview",
- "scorer_details": {
- "publish_error": {
- "pass": false,
- "partial": 0.0,
- "notes": {
- "error": "spacetime publish failed (exit=1)\n--- stderr ---\n Updating crates.io index\n Locking 104 packages to latest compatible versions\n Adding generic-array v0.14.7 (available: v0.14.9)\n Compiling proc-macro2 v1.0.106\n Compiling quote v1.0.44\n Compiling unicode-ident v1.0.24\n Compiling typenum v1.19.0\n Compiling version_check v0.9.5\n Compiling autocfg v1.5.0\n Compiling heck v0.5.0\n Compiling serde_core v1.0.228\n Compiling cfg-if v1.0.4\n Compiling rustversion v1.0.22\n Compiling itoa v1.0.17\n Compiling serde v1.0.228\n Compiling either v1.15.0\n Compiling shlex v1.3.0\n Compiling find-msvc-tools v0.1.9\n Compiling nohash-hasher v0.2.0\n Compiling bitflags v2.11.0\n Compiling anyhow v1.0.102\n Compiling thiserror v1.0.69\n Compiling zerocopy v0.8.39\n Compiling ryu v1.0.23\n Compiling convert_case v0.4.0\n Compiling arrayvec v0.7.6\n Compiling heck v0.4.1\n Compiling humantime v2.3.0\n Compiling keccak v0.1.6\n Compiling bytes v1.11.1\n Compiling arrayref v0.3.9\n Compiling smallvec v1.15.1\n Compiling getrandom v0.2.17\n Compiling spacetimedb-lib v2.0.0 (D:\\Development\\ClockworkLabs\\SpacetimeDB\\SpacetimeDBPrivate\\public\\crates\\lib)\n Compiling second-stack v0.3.5\n Compiling itertools v0.12.1\n Compiling bytemuck v1.25.0\n Compiling uuid v1.21.0\n Compiling constant_time_eq v0.4.2\n Compiling hex v0.4.3\n Compiling zmij v1.0.21\n Compiling rand_core v0.6.4\n Compiling log v0.4.29\n Compiling generic-array v0.14.7\n Compiling serde_json v1.0.149\n Compiling memchr v2.8.0\n Compiling scoped-tls v1.0.1\n Compiling num-traits v0.2.19\n Compiling cc v1.2.56\n Compiling http v1.4.0\n Compiling castaway v0.2.4\n Compiling lean_string v0.5.1\n Compiling syn v2.0.117\n Compiling approx v0.3.2\n Compiling chrono v0.4.43\n Compiling blake3 v1.8.3\n Compiling decorum v0.3.1\n Compiling crypto-common v0.1.7\n Compiling block-buffer v0.10.4\n Compiling digest v0.10.7\n Compiling sha3 v0.10.8\n Compiling ethnum v1.5.2\n Compiling ppv-lite86 v0.2.21\n Compiling enum-as-inner v0.6.1\n Compiling thiserror-impl v1.0.69\n Compiling derive_more v0.99.20\n Compiling rand_chacha v0.3.1\n Compiling rand v0.8.5\n Compiling spacetimedb-primitives v2.0.0 (D:\\Development\\ClockworkLabs\\SpacetimeDB\\SpacetimeDBPrivate\\public\\crates\\primitives)\n Compiling spacetimedb-bindings-sys v2.0.0 (D:\\Development\\ClockworkLabs\\SpacetimeDB\\SpacetimeDBPrivate\\public\\crates\\bindings-sys)\n Compiling spacetimedb-bindings-macro v2.0.0 (D:\\Development\\ClockworkLabs\\SpacetimeDB\\SpacetimeDBPrivate\\public\\crates\\bindings-macro)\n Compiling spacetimedb-sats v2.0.0 (D:\\Development\\ClockworkLabs\\SpacetimeDB\\SpacetimeDBPrivate\\public\\crates\\sats)\n Compiling spacetimedb-query-builder v2.0.0 (D:\\Development\\ClockworkLabs\\SpacetimeDB\\SpacetimeDBPrivate\\public\\crates\\query-builder)\n Compiling spacetimedb v2.0.0 (D:\\Development\\ClockworkLabs\\SpacetimeDB\\SpacetimeDBPrivate\\public\\crates\\bindings)\n Compiling spacetime-module v0.1.0 (D:\\Development\\ClockworkLabs\\SpacetimeDB\\SpacetimeDBPrivate\\public\\target\\llm-runs\\basics\\t_003_struct_in_table\\rust\\server\\gemini-3-1-pro\\llm)\nerror: Expected a string literal for `name`, but found an identifier. Did you mean to specify an `accessor`?\n \n If you're migrating from SpacetimeDB 1.*, replace `name = entity` with `accessor = entity`.\n --> src\\lib.rs:10:22\n |\n10 | #[spacetimedb::table(name = entity, public)]\n | ^^^^^^\n\nerror: could not compile `spacetime-module` (lib) due to 1 previous error\nError: command [\"cargo\", \"build\", \"--config=net.git-fetch-with-cli=true\", \"--target=wasm32-unknown-unknown\", \"--release\", \"--message-format=json-render-diagnostics\"] exited with code 101\n\n--- stdout ---\n",
- "phase": "build_or_publish"
- }
- }
- },
- "vendor": "google"
- },
- "t_004_insert": {
- "hash": "3505a160bff25cbe99eb4235b037d39ade89af05864f8b90b7723b63caaa3781",
- "task": "t_004_insert",
- "lang": "rust",
- "golden_published": true,
- "model_name": "Gemini 3.1 Pro",
- "total_tests": 2,
- "passed_tests": 2,
- "category": "basics",
- "route_api_model": "gemini-3.1-pro-preview",
- "scorer_details": {
- "schema_parity": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "reducers_diff": null,
- "reducers_equal": true,
- "tables_diff": null,
- "tables_equal": true
- }
- },
- "data_parity_insert_user": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "args": [
- 1,
- "Alice",
- 30,
- true
- ],
- "golden_out": "id | name | age | active ----+---------+-----+-------- 1 | \"Alice\" | 30 | true",
- "llm_out": "id | name | age | active ----+---------+-----+-------- 1 | \"Alice\" | 30 | true",
- "query": "SELECT id, name, age, active FROM user WHERE id=1",
- "reducer": "insert_user"
- }
- }
- },
- "vendor": "google"
- },
- "t_005_update": {
- "hash": "3505a160bff25cbe99eb4235b037d39ade89af05864f8b90b7723b63caaa3781",
- "task": "t_005_update",
- "lang": "rust",
- "golden_published": true,
- "model_name": "Gemini 3.1 Pro",
- "total_tests": 3,
- "passed_tests": 3,
- "category": "basics",
- "route_api_model": "gemini-3.1-pro-preview",
- "scorer_details": {
- "data_parity_update_user": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "args": [
- 1,
- "Alice2",
- 31,
- false
- ],
- "golden_out": "id | name | age | active ----+----------+-----+-------- 1 | \"Alice2\" | 31 | false",
- "llm_out": "id | name | age | active ----+----------+-----+-------- 1 | \"Alice2\" | 31 | false",
- "query": "SELECT id, name, age, active FROM user WHERE id=1",
- "reducer": "update_user"
- }
- },
- "schema_parity": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "reducers_diff": null,
- "reducers_equal": true,
- "tables_diff": null,
- "tables_equal": true
- }
- },
- "seed_users_row": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "sql": "INSERT INTO user(id, name, age, active) VALUES (1, 'Alice', 30, true)"
- }
- }
- },
- "vendor": "google"
- },
- "t_006_delete": {
- "hash": "3505a160bff25cbe99eb4235b037d39ade89af05864f8b90b7723b63caaa3781",
- "task": "t_006_delete",
- "lang": "rust",
- "golden_published": true,
- "model_name": "Gemini 3.1 Pro",
- "total_tests": 3,
- "passed_tests": 3,
- "category": "basics",
- "route_api_model": "gemini-3.1-pro-preview",
- "scorer_details": {
- "schema_parity": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "reducers_diff": null,
- "reducers_equal": true,
- "tables_diff": null,
- "tables_equal": true
- }
- },
- "seed_users_row": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "sql": "INSERT INTO user(id, name, age, active) VALUES (1, 'Alice', 30, true)"
- }
- },
- "delete_user_count_zero": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "actual": 0,
- "expected": 0,
- "sql": "SELECT COUNT(*) AS n FROM user WHERE id=1"
- }
- }
- },
- "vendor": "google"
- },
- "t_007_crud": {
- "hash": "3505a160bff25cbe99eb4235b037d39ade89af05864f8b90b7723b63caaa3781",
- "task": "t_007_crud",
- "lang": "rust",
- "golden_published": true,
- "model_name": "Gemini 3.1 Pro",
- "total_tests": 4,
- "passed_tests": 4,
- "category": "basics",
- "route_api_model": "gemini-3.1-pro-preview",
- "scorer_details": {
- "crud_row_id2_deleted": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "actual": 0,
- "expected": 0,
- "sql": "SELECT COUNT(*) AS n FROM user WHERE id=2"
- }
- },
- "schema_parity": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "reducers_diff": null,
- "reducers_equal": true,
- "tables_diff": null,
- "tables_equal": true
- }
- },
- "crud_row_id1_parity": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "args": [],
- "golden_out": "id | name | age | active ----+----------+-----+-------- 1 | \"Alice2\" | 31 | false",
- "llm_out": "id | name | age | active ----+----------+-----+-------- 1 | \"Alice2\" | 31 | false",
- "query": "SELECT id, name, age, active FROM user WHERE id=1",
- "reducer": "crud"
- }
- },
- "crud_total_count_one": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "actual": 1,
- "expected": 1,
- "sql": "SELECT COUNT(*) AS n FROM user"
- }
- }
- },
- "vendor": "google"
- },
- "t_008_index_lookup": {
- "hash": "3505a160bff25cbe99eb4235b037d39ade89af05864f8b90b7723b63caaa3781",
- "task": "t_008_index_lookup",
- "lang": "rust",
- "golden_published": false,
- "model_name": "Gemini 3.1 Pro",
- "total_tests": 3,
- "passed_tests": 0,
- "llm_output": "use spacetimedb::{ReducerContext, Table};\n\n#[spacetimedb::table(name = user, public)]\npub struct User {\n #[primary_key]\n pub id: i32,\n pub name: String,\n pub age: i32,\n pub active: bool,\n}\n\n#[spacetimedb::table(name = result, public)]\npub struct ResultRow {\n #[primary_key]\n pub id: i32,\n pub name: String,\n}\n\n#[spacetimedb::reducer]\npub fn lookup_user_name(ctx: &ReducerContext, id: i32) {\n if let Some(user_row) = ctx.db.user().id().find(id) {\n ctx.db.result().insert(ResultRow {\n id: user_row.id,\n name: user_row.name,\n });\n }\n}",
- "category": "basics",
- "route_api_model": "gemini-3.1-pro-preview",
- "scorer_details": {
- "publish_error": {
- "pass": false,
- "partial": 0.0,
- "notes": {
- "error": "spacetime publish failed (exit=1)\n--- stderr ---\n Updating crates.io index\n Locking 104 packages to latest compatible versions\n Adding generic-array v0.14.7 (available: v0.14.9)\n Compiling proc-macro2 v1.0.106\n Compiling quote v1.0.44\n Compiling unicode-ident v1.0.24\n Compiling version_check v0.9.5\n Compiling typenum v1.19.0\n Compiling autocfg v1.5.0\n Compiling serde_core v1.0.228\n Compiling heck v0.5.0\n Compiling cfg-if v1.0.4\n Compiling rustversion v1.0.22\n Compiling find-msvc-tools v0.1.9\n Compiling itoa v1.0.17\n Compiling serde v1.0.228\n Compiling either v1.15.0\n Compiling shlex v1.3.0\n Compiling zerocopy v0.8.39\n Compiling anyhow v1.0.102\n Compiling bitflags v2.11.0\n Compiling nohash-hasher v0.2.0\n Compiling thiserror v1.0.69\n Compiling bytes v1.11.1\n Compiling heck v0.4.1\n Compiling ryu v1.0.23\n Compiling keccak v0.1.6\n Compiling arrayvec v0.7.6\n Compiling convert_case v0.4.0\n Compiling humantime v2.3.0\n Compiling constant_time_eq v0.4.2\n Compiling hex v0.4.3\n Compiling getrandom v0.2.17\n Compiling spacetimedb-lib v2.0.0 (D:\\Development\\ClockworkLabs\\SpacetimeDB\\SpacetimeDBPrivate\\public\\crates\\lib)\n Compiling zmij v1.0.21\n Compiling arrayref v0.3.9\n Compiling uuid v1.21.0\n Compiling itertools v0.12.1\n Compiling second-stack v0.3.5\n Compiling smallvec v1.15.1\n Compiling generic-array v0.14.7\n Compiling bytemuck v1.25.0\n Compiling rand_core v0.6.4\n Compiling log v0.4.29\n Compiling serde_json v1.0.149\n Compiling memchr v2.8.0\n Compiling scoped-tls v1.0.1\n Compiling num-traits v0.2.19\n Compiling cc v1.2.56\n Compiling http v1.4.0\n Compiling castaway v0.2.4\n Compiling lean_string v0.5.1\n Compiling syn v2.0.117\n Compiling blake3 v1.8.3\n Compiling approx v0.3.2\n Compiling chrono v0.4.43\n Compiling decorum v0.3.1\n Compiling block-buffer v0.10.4\n Compiling crypto-common v0.1.7\n Compiling digest v0.10.7\n Compiling sha3 v0.10.8\n Compiling ethnum v1.5.2\n Compiling ppv-lite86 v0.2.21\n Compiling enum-as-inner v0.6.1\n Compiling thiserror-impl v1.0.69\n Compiling derive_more v0.99.20\n Compiling rand_chacha v0.3.1\n Compiling rand v0.8.5\n Compiling spacetimedb-primitives v2.0.0 (D:\\Development\\ClockworkLabs\\SpacetimeDB\\SpacetimeDBPrivate\\public\\crates\\primitives)\n Compiling spacetimedb-bindings-sys v2.0.0 (D:\\Development\\ClockworkLabs\\SpacetimeDB\\SpacetimeDBPrivate\\public\\crates\\bindings-sys)\n Compiling spacetimedb-bindings-macro v2.0.0 (D:\\Development\\ClockworkLabs\\SpacetimeDB\\SpacetimeDBPrivate\\public\\crates\\bindings-macro)\n Compiling spacetimedb-sats v2.0.0 (D:\\Development\\ClockworkLabs\\SpacetimeDB\\SpacetimeDBPrivate\\public\\crates\\sats)\n Compiling spacetimedb-query-builder v2.0.0 (D:\\Development\\ClockworkLabs\\SpacetimeDB\\SpacetimeDBPrivate\\public\\crates\\query-builder)\n Compiling spacetimedb v2.0.0 (D:\\Development\\ClockworkLabs\\SpacetimeDB\\SpacetimeDBPrivate\\public\\crates\\bindings)\n Compiling spacetime-module v0.1.0 (D:\\Development\\ClockworkLabs\\SpacetimeDB\\SpacetimeDBPrivate\\public\\target\\llm-runs\\basics\\t_008_index_lookup\\rust\\server\\gemini-3-1-pro\\llm)\nerror: Expected a string literal for `name`, but found an identifier. Did you mean to specify an `accessor`?\n \n If you're migrating from SpacetimeDB 1.*, replace `name = user` with `accessor = user`.\n --> src\\lib.rs:4:22\n |\n4 | #[spacetimedb::table(name = user, public)]\n | ^^^^^^\n\nerror: Expected a string literal for `name`, but found an identifier. Did you mean to specify an `accessor`?\n \n If you're migrating from SpacetimeDB 1.*, replace `name = result` with `accessor = result`.\n --> src\\lib.rs:13:22\n |\n13 | #[spacetimedb::table(name = result, public)]\n | ^^^^^^\n\nerror[E0422]: cannot find struct, variant or union type `ResultRow` in this scope\n --> src\\lib.rs:23:32\n |\n23 | ctx.db.result().insert(ResultRow {\n | ^^^^^^^^^ not found in this scope\n\nerror[E0599]: no method named `user` found for struct `Local` in the current scope\n --> src\\lib.rs:22:36\n |\n22 | if let Some(user_row) = ctx.db.user().id().find(id) {\n | ^^^^ method not found in `Local`\n\nerror[E0599]: no method named `result` found for struct `Local` in the current scope\n --> src\\lib.rs:23:16\n |\n23 | ctx.db.result().insert(ResultRow {\n | ^^^^^^ method not found in `Local`\n\nSome errors have detailed explanations: E0422, E0599.\nFor more information about an error, try `rustc --explain E0422`.\nerror: could not compile `spacetime-module` (lib) due to 5 previous errors\nError: command [\"cargo\", \"build\", \"--config=net.git-fetch-with-cli=true\", \"--target=wasm32-unknown-unknown\", \"--release\", \"--message-format=json-render-diagnostics\"] exited with code 101\n\n--- stdout ---\n",
- "phase": "build_or_publish"
- }
- }
- },
- "vendor": "google"
- },
- "t_009_init": {
- "hash": "3505a160bff25cbe99eb4235b037d39ade89af05864f8b90b7723b63caaa3781",
- "task": "t_009_init",
- "lang": "rust",
- "golden_published": true,
- "model_name": "Gemini 3.1 Pro",
- "total_tests": 4,
- "passed_tests": 4,
- "category": "basics",
- "route_api_model": "gemini-3.1-pro-preview",
- "scorer_details": {
- "init_seed_alice": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "actual": 1,
- "expected": 1,
- "sql": "SELECT COUNT(*) AS n FROM user WHERE id=1 AND name='Alice' AND age=30 AND active=true"
- }
- },
- "init_total_two": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "actual": 2,
- "expected": 2,
- "sql": "SELECT COUNT(*) AS n FROM user"
- }
- },
- "schema_parity": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "reducers_diff": null,
- "reducers_equal": true,
- "tables_diff": null,
- "tables_equal": true
- }
- },
- "init_seed_bob": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "actual": 1,
- "expected": 1,
- "sql": "SELECT COUNT(*) AS n FROM user WHERE id=2 AND name='Bob' AND age=22 AND active=false"
- }
- }
- },
- "vendor": "google"
- },
- "t_010_connect": {
- "hash": "3505a160bff25cbe99eb4235b037d39ade89af05864f8b90b7723b63caaa3781",
- "task": "t_010_connect",
- "lang": "rust",
- "golden_published": false,
- "model_name": "Gemini 3.1 Pro",
- "total_tests": 1,
- "passed_tests": 0,
- "llm_output": "use spacetimedb::{ReducerContext, Table};\n\n#[spacetimedb::table(name = event, public)]\npub struct Event {\n #[primary_key]\n #[auto_inc]\n pub id: i32,\n pub kind: String,\n}\n\n#[spacetimedb::reducer(client_connected)]\npub fn client_connected(ctx: &ReducerContext) {\n ctx.db.event().insert(Event {\n id: 0,\n kind: \"connected\".to_string(),\n });\n}\n\n#[spacetimedb::reducer(client_disconnected)]\npub fn client_disconnected(ctx: &ReducerContext) {\n ctx.db.event().insert(Event {\n id: 0,\n kind: \"disconnected\".to_string(),\n });\n}",
- "category": "basics",
- "route_api_model": "gemini-3.1-pro-preview",
- "scorer_details": {
- "publish_error": {
- "pass": false,
- "partial": 0.0,
- "notes": {
- "error": "spacetime publish failed (exit=1)\n--- stderr ---\n Updating crates.io index\n Locking 104 packages to latest compatible versions\n Adding generic-array v0.14.7 (available: v0.14.9)\n Compiling proc-macro2 v1.0.106\n Compiling quote v1.0.44\n Compiling unicode-ident v1.0.24\n Compiling version_check v0.9.5\n Compiling typenum v1.19.0\n Compiling autocfg v1.5.0\n Compiling heck v0.5.0\n Compiling serde_core v1.0.228\n Compiling cfg-if v1.0.4\n Compiling rustversion v1.0.22\n Compiling serde v1.0.228\n Compiling shlex v1.3.0\n Compiling find-msvc-tools v0.1.9\n Compiling either v1.15.0\n Compiling itoa v1.0.17\n Compiling thiserror v1.0.69\n Compiling nohash-hasher v0.2.0\n Compiling bitflags v2.11.0\n Compiling anyhow v1.0.102\n Compiling zerocopy v0.8.39\n Compiling heck v0.4.1\n Compiling convert_case v0.4.0\n Compiling humantime v2.3.0\n Compiling ryu v1.0.23\n Compiling keccak v0.1.6\n Compiling arrayvec v0.7.6\n Compiling bytes v1.11.1\n Compiling constant_time_eq v0.4.2\n Compiling second-stack v0.3.5\n Compiling getrandom v0.2.17\n Compiling zmij v1.0.21\n Compiling spacetimedb-lib v2.0.0 (D:\\Development\\ClockworkLabs\\SpacetimeDB\\SpacetimeDBPrivate\\public\\crates\\lib)\n Compiling itertools v0.12.1\n Compiling arrayref v0.3.9\n Compiling bytemuck v1.25.0\n Compiling hex v0.4.3\n Compiling uuid v1.21.0\n Compiling smallvec v1.15.1\n Compiling rand_core v0.6.4\n Compiling log v0.4.29\n Compiling num-traits v0.2.19\n Compiling serde_json v1.0.149\n Compiling memchr v2.8.0\n Compiling scoped-tls v1.0.1\n Compiling generic-array v0.14.7\n Compiling cc v1.2.56\n Compiling http v1.4.0\n Compiling castaway v0.2.4\n Compiling lean_string v0.5.1\n Compiling syn v2.0.117\n Compiling blake3 v1.8.3\n Compiling approx v0.3.2\n Compiling chrono v0.4.43\n Compiling decorum v0.3.1\n Compiling crypto-common v0.1.7\n Compiling block-buffer v0.10.4\n Compiling digest v0.10.7\n Compiling sha3 v0.10.8\n Compiling ethnum v1.5.2\n Compiling enum-as-inner v0.6.1\n Compiling thiserror-impl v1.0.69\n Compiling derive_more v0.99.20\n Compiling ppv-lite86 v0.2.21\n Compiling rand_chacha v0.3.1\n Compiling rand v0.8.5\n Compiling spacetimedb-primitives v2.0.0 (D:\\Development\\ClockworkLabs\\SpacetimeDB\\SpacetimeDBPrivate\\public\\crates\\primitives)\n Compiling spacetimedb-bindings-sys v2.0.0 (D:\\Development\\ClockworkLabs\\SpacetimeDB\\SpacetimeDBPrivate\\public\\crates\\bindings-sys)\n Compiling spacetimedb-bindings-macro v2.0.0 (D:\\Development\\ClockworkLabs\\SpacetimeDB\\SpacetimeDBPrivate\\public\\crates\\bindings-macro)\n Compiling spacetimedb-sats v2.0.0 (D:\\Development\\ClockworkLabs\\SpacetimeDB\\SpacetimeDBPrivate\\public\\crates\\sats)\n Compiling spacetimedb-query-builder v2.0.0 (D:\\Development\\ClockworkLabs\\SpacetimeDB\\SpacetimeDBPrivate\\public\\crates\\query-builder)\n Compiling spacetimedb v2.0.0 (D:\\Development\\ClockworkLabs\\SpacetimeDB\\SpacetimeDBPrivate\\public\\crates\\bindings)\n Compiling spacetime-module v0.1.0 (D:\\Development\\ClockworkLabs\\SpacetimeDB\\SpacetimeDBPrivate\\public\\target\\llm-runs\\basics\\t_010_connect\\rust\\server\\gemini-3-1-pro\\llm)\nerror: Expected a string literal for `name`, but found an identifier. Did you mean to specify an `accessor`?\n \n If you're migrating from SpacetimeDB 1.*, replace `name = event` with `accessor = event`.\n --> src\\lib.rs:4:22\n |\n4 | #[spacetimedb::table(name = event, public)]\n | ^^^^^^\n\nerror[E0422]: cannot find struct, variant or union type `Event` in this scope\n --> src\\lib.rs:14:27\n |\n14 | ctx.db.event().insert(Event {\n | ^^^^^ not found in this scope\n\nerror[E0422]: cannot find struct, variant or union type `Event` in this scope\n --> src\\lib.rs:22:27\n |\n22 | ctx.db.event().insert(Event {\n | ^^^^^ not found in this scope\n\nerror[E0599]: no method named `event` found for struct `Local` in the current scope\n --> src\\lib.rs:14:12\n |\n14 | ctx.db.event().insert(Event {\n | ^^^^^ method not found in `Local`\n\nerror[E0599]: no method named `event` found for struct `Local` in the current scope\n --> src\\lib.rs:22:12\n |\n22 | ctx.db.event().insert(Event {\n | ^^^^^ method not found in `Local`\n\nSome errors have detailed explanations: E0422, E0599.\nFor more information about an error, try `rustc --explain E0422`.\nerror: could not compile `spacetime-module` (lib) due to 5 previous errors\nError: command [\"cargo\", \"build\", \"--config=net.git-fetch-with-cli=true\", \"--target=wasm32-unknown-unknown\", \"--release\", \"--message-format=json-render-diagnostics\"] exited with code 101\n\n--- stdout ---\n",
- "phase": "build_or_publish"
- }
- }
- },
- "vendor": "google"
- },
- "t_011_helper_function": {
- "hash": "3505a160bff25cbe99eb4235b037d39ade89af05864f8b90b7723b63caaa3781",
- "task": "t_011_helper_function",
- "lang": "rust",
- "golden_published": true,
- "model_name": "Gemini 3.1 Pro",
- "total_tests": 3,
- "passed_tests": 3,
- "category": "basics",
- "route_api_model": "gemini-3.1-pro-preview",
- "scorer_details": {
- "helper_func_sum_parity": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "args": [
- 1,
- 2,
- 3
- ],
- "golden_out": "id | sum ----+----- 1 | 5",
- "llm_out": "id | sum ----+----- 1 | 5",
- "query": "SELECT id, sum FROM result WHERE id=1",
- "reducer": "compute_sum"
- }
- },
- "schema_parity": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "reducers_diff": null,
- "reducers_equal": true,
- "tables_diff": null,
- "tables_equal": true
- }
- },
- "helper_func_sum_abs": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "actual": 1,
- "expected": 1,
- "sql": "SELECT COUNT(*) AS n FROM result WHERE id=1 AND sum=5"
- }
- }
- },
- "vendor": "google"
- },
- "t_012_spacetime_product_type": {
- "hash": "3505a160bff25cbe99eb4235b037d39ade89af05864f8b90b7723b63caaa3781",
- "task": "t_012_spacetime_product_type",
- "lang": "rust",
- "golden_published": false,
- "model_name": "Gemini 3.1 Pro",
- "total_tests": 3,
- "passed_tests": 0,
- "llm_output": "use spacetimedb::{reducer, table, ReducerContext, SpacetimeType, Table};\n\n#[derive(SpacetimeType)]\npub struct Score {\n pub left: i32,\n pub right: i32,\n}\n\n#[table(name = result, public)]\npub struct ResultRow {\n #[primary_key]\n pub id: i32,\n pub value: Score,\n}\n\n#[reducer]\npub fn set_score(ctx: &ReducerContext, id: i32, left: i32, right: i32) {\n ctx.db.result().insert(ResultRow {\n id,\n value: Score { left, right },\n });\n}",
- "category": "schema",
- "route_api_model": "gemini-3.1-pro-preview",
- "scorer_details": {
- "publish_error": {
- "pass": false,
- "partial": 0.0,
- "notes": {
- "error": "spacetime publish failed (exit=1)\n--- stderr ---\n Updating crates.io index\n Locking 104 packages to latest compatible versions\n Adding generic-array v0.14.7 (available: v0.14.9)\n Compiling proc-macro2 v1.0.106\n Compiling unicode-ident v1.0.24\n Compiling quote v1.0.44\n Compiling version_check v0.9.5\n Compiling typenum v1.19.0\n Compiling autocfg v1.5.0\n Compiling heck v0.5.0\n Compiling serde_core v1.0.228\n Compiling rustversion v1.0.22\n Compiling cfg-if v1.0.4\n Compiling either v1.15.0\n Compiling shlex v1.3.0\n Compiling itoa v1.0.17\n Compiling serde v1.0.228\n Compiling find-msvc-tools v0.1.9\n Compiling zerocopy v0.8.39\n Compiling nohash-hasher v0.2.0\n Compiling bitflags v2.11.0\n Compiling anyhow v1.0.102\n Compiling thiserror v1.0.69\n Compiling humantime v2.3.0\n Compiling ryu v1.0.23\n Compiling arrayvec v0.7.6\n Compiling keccak v0.1.6\n Compiling bytes v1.11.1\n Compiling convert_case v0.4.0\n Compiling heck v0.4.1\n Compiling bytemuck v1.25.0\n Compiling constant_time_eq v0.4.2\n Compiling getrandom v0.2.17\n Compiling arrayref v0.3.9\n Compiling itertools v0.12.1\n Compiling uuid v1.21.0\n Compiling hex v0.4.3\n Compiling spacetimedb-lib v2.0.0 (D:\\Development\\ClockworkLabs\\SpacetimeDB\\SpacetimeDBPrivate\\public\\crates\\lib)\n Compiling zmij v1.0.21\n Compiling second-stack v0.3.5\n Compiling smallvec v1.15.1\n Compiling rand_core v0.6.4\n Compiling log v0.4.29\n Compiling serde_json v1.0.149\n Compiling cc v1.2.56\n Compiling memchr v2.8.0\n Compiling scoped-tls v1.0.1\n Compiling generic-array v0.14.7\n Compiling num-traits v0.2.19\n Compiling http v1.4.0\n Compiling castaway v0.2.4\n Compiling lean_string v0.5.1\n Compiling syn v2.0.117\n Compiling blake3 v1.8.3\n Compiling approx v0.3.2\n Compiling chrono v0.4.43\n Compiling decorum v0.3.1\n Compiling block-buffer v0.10.4\n Compiling crypto-common v0.1.7\n Compiling digest v0.10.7\n Compiling sha3 v0.10.8\n Compiling ethnum v1.5.2\n Compiling enum-as-inner v0.6.1\n Compiling thiserror-impl v1.0.69\n Compiling derive_more v0.99.20\n Compiling ppv-lite86 v0.2.21\n Compiling rand_chacha v0.3.1\n Compiling spacetimedb-primitives v2.0.0 (D:\\Development\\ClockworkLabs\\SpacetimeDB\\SpacetimeDBPrivate\\public\\crates\\primitives)\n Compiling rand v0.8.5\n Compiling spacetimedb-bindings-sys v2.0.0 (D:\\Development\\ClockworkLabs\\SpacetimeDB\\SpacetimeDBPrivate\\public\\crates\\bindings-sys)\n Compiling spacetimedb-bindings-macro v2.0.0 (D:\\Development\\ClockworkLabs\\SpacetimeDB\\SpacetimeDBPrivate\\public\\crates\\bindings-macro)\n Compiling spacetimedb-sats v2.0.0 (D:\\Development\\ClockworkLabs\\SpacetimeDB\\SpacetimeDBPrivate\\public\\crates\\sats)\n Compiling spacetimedb-query-builder v2.0.0 (D:\\Development\\ClockworkLabs\\SpacetimeDB\\SpacetimeDBPrivate\\public\\crates\\query-builder)\n Compiling spacetimedb v2.0.0 (D:\\Development\\ClockworkLabs\\SpacetimeDB\\SpacetimeDBPrivate\\public\\crates\\bindings)\n Compiling spacetime-module v0.1.0 (D:\\Development\\ClockworkLabs\\SpacetimeDB\\SpacetimeDBPrivate\\public\\target\\llm-runs\\schema\\t_012_spacetime_product_type\\rust\\server\\gemini-3-1-pro\\llm)\nerror: Expected a string literal for `name`, but found an identifier. Did you mean to specify an `accessor`?\n \n If you're migrating from SpacetimeDB 1.*, replace `name = result` with `accessor = result`.\n --> src\\lib.rs:10:9\n |\n10 | #[table(name = result, public)]\n | ^^^^^^\n\nerror[E0422]: cannot find struct, variant or union type `ResultRow` in this scope\n --> src\\lib.rs:19:28\n |\n19 | ctx.db.result().insert(ResultRow {\n | ^^^^^^^^^ not found in this scope\n\nerror[E0599]: no method named `result` found for struct `Local` in the current scope\n --> src\\lib.rs:19:12\n |\n19 | ctx.db.result().insert(ResultRow {\n | ^^^^^^ method not found in `Local`\n\nSome errors have detailed explanations: E0422, E0599.\nFor more information about an error, try `rustc --explain E0422`.\nerror: could not compile `spacetime-module` (lib) due to 3 previous errors\nError: command [\"cargo\", \"build\", \"--config=net.git-fetch-with-cli=true\", \"--target=wasm32-unknown-unknown\", \"--release\", \"--message-format=json-render-diagnostics\"] exited with code 101\n\n--- stdout ---\n",
- "phase": "build_or_publish"
- }
- }
- },
- "vendor": "google"
- },
- "t_013_spacetime_sum_type": {
- "hash": "3505a160bff25cbe99eb4235b037d39ade89af05864f8b90b7723b63caaa3781",
- "task": "t_013_spacetime_sum_type",
- "lang": "rust",
- "golden_published": true,
- "model_name": "Gemini 3.1 Pro",
- "total_tests": 3,
- "passed_tests": 3,
- "category": "schema",
- "route_api_model": "gemini-3.1-pro-preview",
- "scorer_details": {
- "schema_parity": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "reducers_diff": null,
- "reducers_equal": true,
- "tables_diff": null,
- "tables_equal": true
- }
- },
- "sum_type_row_parity": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "args": [
- 1,
- 10
- ],
- "golden_out": "id | value ----+--------------- 1 | (Circle = 10)",
- "llm_out": "id | value ----+--------------- 1 | (Circle = 10)",
- "query": "SELECT id, value FROM result WHERE id=1",
- "reducer": "set_circle"
- }
- },
- "sum_type_row_count": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "actual": 1,
- "expected": 1,
- "sql": "SELECT COUNT(*) AS n FROM result WHERE id=1"
- }
- }
- },
- "vendor": "google"
- },
- "t_014_elementary_columns": {
- "hash": "3505a160bff25cbe99eb4235b037d39ade89af05864f8b90b7723b63caaa3781",
- "task": "t_014_elementary_columns",
- "lang": "rust",
- "golden_published": true,
- "model_name": "Gemini 3.1 Pro",
- "total_tests": 3,
- "passed_tests": 3,
- "category": "schema",
- "route_api_model": "gemini-3.1-pro-preview",
- "scorer_details": {
- "schema_parity": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "reducers_diff": null,
- "reducers_equal": true,
- "tables_diff": null,
- "tables_equal": true
- }
- },
- "elementary_columns_row_parity": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "args": [],
- "golden_out": "id | count | total | price | ratio | active | name ----+-------+------------+-------+-------+--------+--------- 1 | 2 | 3000000000 | 1.5 | 2.25 | true | \"Alice\"",
- "llm_out": "id | count | total | price | ratio | active | name ----+-------+------------+-------+-------+--------+--------- 1 | 2 | 3000000000 | 1.5 | 2.25 | true | \"Alice\"",
- "query": "SELECT id, count, total, price, ratio, active, name FROM primitive WHERE id=1",
- "reducer": "seed"
- }
- },
- "elementary_columns_row_count": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "actual": 1,
- "expected": 1,
- "sql": "SELECT COUNT(*) AS n FROM primitive WHERE id=1"
- }
- }
- },
- "vendor": "google"
- },
- "t_015_product_type_columns": {
- "hash": "3505a160bff25cbe99eb4235b037d39ade89af05864f8b90b7723b63caaa3781",
- "task": "t_015_product_type_columns",
- "lang": "rust",
- "golden_published": true,
- "model_name": "Gemini 3.1 Pro",
- "total_tests": 3,
- "passed_tests": 3,
- "category": "schema",
- "route_api_model": "gemini-3.1-pro-preview",
- "scorer_details": {
- "product_type_columns_row_parity": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "args": [],
- "golden_out": "id | home | work | pos ----+----------------------------------+-----------------------------------+---------------- 1 | (street = \"1 Main\", zip = 11111) | (street = \"2 Broad\", zip = 22222) | (x = 7, y = 9)",
- "llm_out": "id | home | work | pos ----+----------------------------------+-----------------------------------+---------------- 1 | (street = \"1 Main\", zip = 11111) | (street = \"2 Broad\", zip = 22222) | (x = 7, y = 9)",
- "query": "SELECT id, home, work, pos FROM profile WHERE id=1",
- "reducer": "seed"
- }
- },
- "schema_parity": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "reducers_diff": null,
- "reducers_equal": true,
- "tables_diff": null,
- "tables_equal": true
- }
- },
- "product_type_columns_row_count": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "actual": 1,
- "expected": 1,
- "sql": "SELECT COUNT(*) AS n FROM profile WHERE id=1"
- }
- }
- },
- "vendor": "google"
- },
- "t_016_sum_type_columns": {
- "hash": "3505a160bff25cbe99eb4235b037d39ade89af05864f8b90b7723b63caaa3781",
- "task": "t_016_sum_type_columns",
- "lang": "rust",
- "golden_published": false,
- "model_name": "Gemini 3.1 Pro",
- "total_tests": 3,
- "passed_tests": 0,
- "llm_output": "use spacetimedb::{reducer, table, ReducerContext, SpacetimeType, Table};\n\n#[derive(SpacetimeType)]\npub struct Rect {\n pub width: i32,\n pub height: i32,\n}\n\n#[derive(SpacetimeType)]\npub enum Shape {\n Circle(i32),\n Rectangle(Rect),\n}\n\n#[table(name = drawing, public)]\npub struct Drawing {\n #[primary_key]\n pub id: i32,\n pub a: Shape,\n pub b: Shape,\n}\n\n#[reducer]\npub fn seed(ctx: &ReducerContext) {\n ctx.db.drawing().insert(Drawing {\n id: 1,\n a: Shape::Circle(10),\n b: Shape::Rectangle(Rect { width: 4, height: 6 }),\n });\n}",
- "category": "schema",
- "route_api_model": "gemini-3.1-pro-preview",
- "scorer_details": {
- "publish_error": {
- "pass": false,
- "partial": 0.0,
- "notes": {
- "error": "spacetime publish failed (exit=1)\n--- stderr ---\n Updating crates.io index\n Locking 104 packages to latest compatible versions\n Adding generic-array v0.14.7 (available: v0.14.9)\n Compiling proc-macro2 v1.0.106\n Compiling quote v1.0.44\n Compiling unicode-ident v1.0.24\n Compiling typenum v1.19.0\n Compiling version_check v0.9.5\n Compiling autocfg v1.5.0\n Compiling serde_core v1.0.228\n Compiling heck v0.5.0\n Compiling rustversion v1.0.22\n Compiling cfg-if v1.0.4\n Compiling shlex v1.3.0\n Compiling either v1.15.0\n Compiling itoa v1.0.17\n Compiling serde v1.0.228\n Compiling find-msvc-tools v0.1.9\n Compiling thiserror v1.0.69\n Compiling bitflags v2.11.0\n Compiling nohash-hasher v0.2.0\n Compiling anyhow v1.0.102\n Compiling zerocopy v0.8.39\n Compiling convert_case v0.4.0\n Compiling humantime v2.3.0\n Compiling bytes v1.11.1\n Compiling arrayvec v0.7.6\n Compiling ryu v1.0.23\n Compiling heck v0.4.1\n Compiling keccak v0.1.6\n Compiling bytemuck v1.25.0\n Compiling hex v0.4.3\n Compiling second-stack v0.3.5\n Compiling itertools v0.12.1\n Compiling getrandom v0.2.17\n Compiling constant_time_eq v0.4.2\n Compiling spacetimedb-lib v2.0.0 (D:\\Development\\ClockworkLabs\\SpacetimeDB\\SpacetimeDBPrivate\\public\\crates\\lib)\n Compiling uuid v1.21.0\n Compiling smallvec v1.15.1\n Compiling arrayref v0.3.9\n Compiling zmij v1.0.21\n Compiling generic-array v0.14.7\n Compiling serde_json v1.0.149\n Compiling log v0.4.29\n Compiling rand_core v0.6.4\n Compiling memchr v2.8.0\n Compiling scoped-tls v1.0.1\n Compiling num-traits v0.2.19\n Compiling cc v1.2.56\n Compiling http v1.4.0\n Compiling castaway v0.2.4\n Compiling lean_string v0.5.1\n Compiling syn v2.0.117\n Compiling blake3 v1.8.3\n Compiling block-buffer v0.10.4\n Compiling crypto-common v0.1.7\n Compiling approx v0.3.2\n Compiling chrono v0.4.43\n Compiling digest v0.10.7\n Compiling decorum v0.3.1\n Compiling sha3 v0.10.8\n Compiling ethnum v1.5.2\n Compiling ppv-lite86 v0.2.21\n Compiling enum-as-inner v0.6.1\n Compiling thiserror-impl v1.0.69\n Compiling derive_more v0.99.20\n Compiling rand_chacha v0.3.1\n Compiling rand v0.8.5\n Compiling spacetimedb-primitives v2.0.0 (D:\\Development\\ClockworkLabs\\SpacetimeDB\\SpacetimeDBPrivate\\public\\crates\\primitives)\n Compiling spacetimedb-bindings-sys v2.0.0 (D:\\Development\\ClockworkLabs\\SpacetimeDB\\SpacetimeDBPrivate\\public\\crates\\bindings-sys)\n Compiling spacetimedb-bindings-macro v2.0.0 (D:\\Development\\ClockworkLabs\\SpacetimeDB\\SpacetimeDBPrivate\\public\\crates\\bindings-macro)\n Compiling spacetimedb-sats v2.0.0 (D:\\Development\\ClockworkLabs\\SpacetimeDB\\SpacetimeDBPrivate\\public\\crates\\sats)\n Compiling spacetimedb-query-builder v2.0.0 (D:\\Development\\ClockworkLabs\\SpacetimeDB\\SpacetimeDBPrivate\\public\\crates\\query-builder)\n Compiling spacetimedb v2.0.0 (D:\\Development\\ClockworkLabs\\SpacetimeDB\\SpacetimeDBPrivate\\public\\crates\\bindings)\n Compiling spacetime-module v0.1.0 (D:\\Development\\ClockworkLabs\\SpacetimeDB\\SpacetimeDBPrivate\\public\\target\\llm-runs\\schema\\t_016_sum_type_columns\\rust\\server\\gemini-3-1-pro\\llm)\nerror: Expected a string literal for `name`, but found an identifier. Did you mean to specify an `accessor`?\n \n If you're migrating from SpacetimeDB 1.*, replace `name = drawing` with `accessor = drawing`.\n --> src\\lib.rs:16:9\n |\n16 | #[table(name = drawing, public)]\n | ^^^^^^\n\nerror[E0422]: cannot find struct, variant or union type `Drawing` in this scope\n --> src\\lib.rs:26:29\n |\n26 | ctx.db.drawing().insert(Drawing {\n | ^^^^^^^ not found in this scope\n\nerror[E0599]: no method named `drawing` found for struct `Local` in the current scope\n --> src\\lib.rs:26:12\n |\n26 | ctx.db.drawing().insert(Drawing {\n | ^^^^^^^ method not found in `Local`\n\nSome errors have detailed explanations: E0422, E0599.\nFor more information about an error, try `rustc --explain E0422`.\nerror: could not compile `spacetime-module` (lib) due to 3 previous errors\nError: command [\"cargo\", \"build\", \"--config=net.git-fetch-with-cli=true\", \"--target=wasm32-unknown-unknown\", \"--release\", \"--message-format=json-render-diagnostics\"] exited with code 101\n\n--- stdout ---\n",
- "phase": "build_or_publish"
- }
- }
- },
- "vendor": "google"
- },
- "t_017_scheduled_columns": {
- "hash": "3505a160bff25cbe99eb4235b037d39ade89af05864f8b90b7723b63caaa3781",
- "task": "t_017_scheduled_columns",
- "lang": "rust",
- "golden_published": true,
- "model_name": "Gemini 3.1 Pro",
- "total_tests": 2,
- "passed_tests": 2,
- "category": "schema",
- "route_api_model": "gemini-3.1-pro-preview",
- "scorer_details": {
- "schema_parity": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "reducers_diff": null,
- "reducers_equal": true,
- "tables_diff": null,
- "tables_equal": true
- }
- },
- "scheduled_seeded_one_row": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "actual": 1,
- "expected": 1,
- "sql": "SELECT COUNT(*) AS n FROM tick_timer WHERE scheduled_id>=0"
- }
- }
- },
- "vendor": "google"
- },
- "t_018_constraints": {
- "hash": "3505a160bff25cbe99eb4235b037d39ade89af05864f8b90b7723b63caaa3781",
- "task": "t_018_constraints",
- "lang": "rust",
- "golden_published": true,
- "model_name": "Gemini 3.1 Pro",
- "total_tests": 3,
- "passed_tests": 3,
- "category": "schema",
- "route_api_model": "gemini-3.1-pro-preview",
- "scorer_details": {
- "schema_parity": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "reducers_diff": null,
- "reducers_equal": true,
- "tables_diff": null,
- "tables_equal": true
- }
- },
- "constraints_row_parity_after_seed": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "args": [],
- "golden_out": "id | email | name ----+-----------------+--------- 1 | \"a@example.com\" | \"Alice\"",
- "llm_out": "id | email | name ----+-----------------+--------- 1 | \"a@example.com\" | \"Alice\"",
- "query": "SELECT id, email, name FROM account WHERE id=1",
- "reducer": "seed"
- }
- },
- "constraints_seed_two_rows": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "actual": 1,
- "expected": 1,
- "sql": "SELECT COUNT(*) AS n FROM account WHERE id=2"
- }
- }
- },
- "vendor": "google"
- },
- "t_019_many_to_many": {
- "hash": "3505a160bff25cbe99eb4235b037d39ade89af05864f8b90b7723b63caaa3781",
- "task": "t_019_many_to_many",
- "lang": "rust",
- "golden_published": true,
- "model_name": "Gemini 3.1 Pro",
- "total_tests": 5,
- "passed_tests": 5,
- "category": "schema",
- "route_api_model": "gemini-3.1-pro-preview",
- "scorer_details": {
- "m2m_has_1_20": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "actual": 1,
- "expected": 1,
- "sql": "SELECT COUNT(*) AS n FROM membership WHERE user_id=1 AND group_id=20"
- }
- },
- "m2m_has_2_20": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "actual": 1,
- "expected": 1,
- "sql": "SELECT COUNT(*) AS n FROM membership WHERE user_id=2 AND group_id=20"
- }
- },
- "schema_parity": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "reducers_diff": null,
- "reducers_equal": true,
- "tables_diff": null,
- "tables_equal": true
- }
- },
- "m2m_has_1_10": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "actual": 1,
- "expected": 1,
- "sql": "SELECT COUNT(*) AS n FROM membership WHERE user_id=1 AND group_id=10"
- }
- },
- "memberships_three_rows": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "actual": 3,
- "expected": 3,
- "sql": "SELECT COUNT(*) AS n FROM membership"
- }
- }
- },
- "vendor": "google"
- },
- "t_020_ecs": {
- "hash": "3505a160bff25cbe99eb4235b037d39ade89af05864f8b90b7723b63caaa3781",
- "task": "t_020_ecs",
- "lang": "rust",
- "golden_published": true,
- "model_name": "Gemini 3.1 Pro",
- "total_tests": 5,
- "passed_tests": 5,
- "category": "schema",
- "route_api_model": "gemini-3.1-pro-preview",
- "scorer_details": {
- "ecs_next_pos_entity2": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "actual": 1,
- "expected": 1,
- "sql": "SELECT COUNT(*) AS n FROM next_position WHERE entity_id=2 AND x=8 AND y=3"
- }
- },
- "ecs_next_pos_entity1": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "actual": 1,
- "expected": 1,
- "sql": "SELECT COUNT(*) AS n FROM next_position WHERE entity_id=1 AND x=1 AND y=0"
- }
- },
- "ecs_seed_position_count": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "actual": 2,
- "expected": 2,
- "sql": "SELECT COUNT(*) AS n FROM position"
- }
- },
- "schema_parity": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "reducers_diff": null,
- "reducers_equal": true,
- "tables_diff": null,
- "tables_equal": true
- }
- },
- "ecs_step_next_position_count": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "actual": 2,
- "expected": 2,
- "sql": "SELECT COUNT(*) AS n FROM next_position"
- }
- }
- },
- "vendor": "google"
- },
- "t_021_multi_column_index": {
- "hash": "3505a160bff25cbe99eb4235b037d39ade89af05864f8b90b7723b63caaa3781",
- "task": "t_021_multi_column_index",
- "lang": "rust",
- "golden_published": true,
- "model_name": "Gemini 3.1 Pro",
- "total_tests": 4,
- "passed_tests": 4,
- "category": "schema",
- "route_api_model": "gemini-3.1-pro-preview",
- "scorer_details": {
- "mcindex_seed_count": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "actual": 3,
- "expected": 3,
- "sql": "SELECT COUNT(*) AS n FROM log"
- }
- },
- "mcindex_lookup_u7_d1": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "actual": 1,
- "expected": 1,
- "sql": "SELECT COUNT(*) AS n FROM log WHERE user_id=7 AND day=1"
- }
- },
- "schema_parity": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "reducers_diff": null,
- "reducers_equal": true,
- "tables_diff": null,
- "tables_equal": true
- }
- },
- "mcindex_lookup_u7_d2": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "actual": 1,
- "expected": 1,
- "sql": "SELECT COUNT(*) AS n FROM log WHERE user_id=7 AND day=2"
- }
- }
- },
- "vendor": "google"
- }
- }
- },
- {
- "name": "Gemini 3 Flash",
- "route_api_model": "gemini-3-flash-preview",
- "tasks": {
- "t_000_empty_reducers": {
- "hash": "3505a160bff25cbe99eb4235b037d39ade89af05864f8b90b7723b63caaa3781",
- "task": "t_000_empty_reducers",
- "lang": "rust",
- "golden_published": true,
- "model_name": "Gemini 3 Flash",
- "total_tests": 1,
- "passed_tests": 1,
- "category": "basics",
- "route_api_model": "gemini-3-flash-preview",
- "scorer_details": {
- "schema_parity": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "reducers_diff": null,
- "reducers_equal": true,
- "tables_diff": null,
- "tables_equal": true
- }
- }
- },
- "vendor": "google"
- },
- "t_001_basic_tables": {
- "hash": "3505a160bff25cbe99eb4235b037d39ade89af05864f8b90b7723b63caaa3781",
- "task": "t_001_basic_tables",
- "lang": "rust",
- "golden_published": true,
- "model_name": "Gemini 3 Flash",
- "total_tests": 1,
- "passed_tests": 1,
- "category": "basics",
- "route_api_model": "gemini-3-flash-preview",
- "scorer_details": {
- "schema_parity": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "reducers_diff": null,
- "reducers_equal": true,
- "tables_diff": null,
- "tables_equal": true
- }
- }
- },
- "vendor": "google"
- },
- "t_002_scheduled_table": {
- "hash": "3505a160bff25cbe99eb4235b037d39ade89af05864f8b90b7723b63caaa3781",
- "task": "t_002_scheduled_table",
- "lang": "rust",
- "golden_published": true,
- "model_name": "Gemini 3 Flash",
- "total_tests": 1,
- "passed_tests": 1,
- "category": "basics",
- "route_api_model": "gemini-3-flash-preview",
- "scorer_details": {
- "schema_parity": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "reducers_diff": null,
- "reducers_equal": true,
- "tables_diff": null,
- "tables_equal": true
- }
- }
- },
- "vendor": "google"
- },
- "t_003_struct_in_table": {
- "hash": "3505a160bff25cbe99eb4235b037d39ade89af05864f8b90b7723b63caaa3781",
- "task": "t_003_struct_in_table",
- "lang": "rust",
- "golden_published": true,
- "model_name": "Gemini 3 Flash",
- "total_tests": 1,
- "passed_tests": 1,
- "category": "basics",
- "route_api_model": "gemini-3-flash-preview",
- "scorer_details": {
- "schema_parity": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "reducers_diff": null,
- "reducers_equal": true,
- "tables_diff": null,
- "tables_equal": true
- }
- }
- },
- "vendor": "google"
- },
- "t_004_insert": {
- "hash": "3505a160bff25cbe99eb4235b037d39ade89af05864f8b90b7723b63caaa3781",
- "task": "t_004_insert",
- "lang": "rust",
- "golden_published": true,
- "model_name": "Gemini 3 Flash",
- "total_tests": 2,
- "passed_tests": 2,
- "category": "basics",
- "route_api_model": "gemini-3-flash-preview",
- "scorer_details": {
- "schema_parity": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "reducers_diff": null,
- "reducers_equal": true,
- "tables_diff": null,
- "tables_equal": true
- }
- },
- "data_parity_insert_user": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "args": [
- 1,
- "Alice",
- 30,
- true
- ],
- "golden_out": "id | name | age | active ----+---------+-----+-------- 1 | \"Alice\" | 30 | true",
- "llm_out": "id | name | age | active ----+---------+-----+-------- 1 | \"Alice\" | 30 | true",
- "query": "SELECT id, name, age, active FROM user WHERE id=1",
- "reducer": "insert_user"
- }
- }
- },
- "vendor": "google"
- },
- "t_005_update": {
- "hash": "3505a160bff25cbe99eb4235b037d39ade89af05864f8b90b7723b63caaa3781",
- "task": "t_005_update",
- "lang": "rust",
- "golden_published": true,
- "model_name": "Gemini 3 Flash",
- "total_tests": 3,
- "passed_tests": 3,
- "category": "basics",
- "route_api_model": "gemini-3-flash-preview",
- "scorer_details": {
- "data_parity_update_user": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "args": [
- 1,
- "Alice2",
- 31,
- false
- ],
- "golden_out": "id | name | age | active ----+----------+-----+-------- 1 | \"Alice2\" | 31 | false",
- "llm_out": "id | name | age | active ----+----------+-----+-------- 1 | \"Alice2\" | 31 | false",
- "query": "SELECT id, name, age, active FROM user WHERE id=1",
- "reducer": "update_user"
- }
- },
- "schema_parity": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "reducers_diff": null,
- "reducers_equal": true,
- "tables_diff": null,
- "tables_equal": true
- }
- },
- "seed_users_row": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "sql": "INSERT INTO user(id, name, age, active) VALUES (1, 'Alice', 30, true)"
- }
- }
- },
- "vendor": "google"
- },
- "t_006_delete": {
- "hash": "3505a160bff25cbe99eb4235b037d39ade89af05864f8b90b7723b63caaa3781",
- "task": "t_006_delete",
- "lang": "rust",
- "golden_published": true,
- "model_name": "Gemini 3 Flash",
- "total_tests": 3,
- "passed_tests": 3,
- "category": "basics",
- "route_api_model": "gemini-3-flash-preview",
- "scorer_details": {
- "schema_parity": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "reducers_diff": null,
- "reducers_equal": true,
- "tables_diff": null,
- "tables_equal": true
- }
- },
- "seed_users_row": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "sql": "INSERT INTO user(id, name, age, active) VALUES (1, 'Alice', 30, true)"
- }
- },
- "delete_user_count_zero": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "actual": 0,
- "expected": 0,
- "sql": "SELECT COUNT(*) AS n FROM user WHERE id=1"
- }
- }
- },
- "vendor": "google"
- },
- "t_007_crud": {
- "hash": "3505a160bff25cbe99eb4235b037d39ade89af05864f8b90b7723b63caaa3781",
- "task": "t_007_crud",
- "lang": "rust",
- "golden_published": true,
- "model_name": "Gemini 3 Flash",
- "total_tests": 4,
- "passed_tests": 2,
- "llm_output": "use spacetimedb::{reducer, table, ReducerContext, Table};\n\n#[table(accessor = user, public)]\npub struct User {\n #[primary_key]\n pub id: i32,\n pub name: String,\n pub age: i32,\n pub active: bool,\n}\n\n#[reducer]\npub fn crud(ctx: &ReducerContext) {\n ctx.db.user().insert(User {\n id: 1,\n name: \"Alice\".to_string(),\n age: 30,\n active: true,\n });\n\n ctx.db.user().insert(User {\n id: 2,\n name: \"Bob\".to_string(),\n age: 22,\n active: false,\n });\n\n ctx.db.user().id().update(User {\n id: 1,\n name: \"Alice2\".to_string(),\n age: 31,\n active: false,\n });\n\n ctx.db.user().id().delete(2);\n}",
- "category": "basics",
- "route_api_model": "gemini-3-flash-preview",
- "scorer_details": {
- "crud_row_id2_deleted": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "actual": 0,
- "expected": 0,
- "sql": "SELECT COUNT(*) AS n FROM user WHERE id=2"
- }
- },
- "schema_parity": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "reducers_diff": null,
- "reducers_equal": true,
- "tables_diff": null,
- "tables_equal": true
- }
- },
- "crud_row_id1_parity": {
- "pass": false,
- "partial": 0.0,
- "notes": {
- "error": "spacetime call failed:\nWARNING: This command is UNSTABLE and subject to breaking changes.\n\nError: Response text: The instance encountered a fatal error.\n\nCaused by:\n HTTP status server error (530 ) for url (http://127.0.0.1:65377/v1/database/c20096c5a2babaf26bff2ee7bd720dcc5093a966ac672bda297b2fa31c09128c/call/crud)\n",
- "phase": "call_reducer_golden"
- }
- },
- "crud_total_count_one": {
- "pass": false,
- "partial": 0.0,
- "notes": {
- "actual": 0,
- "expected": 1,
- "sql": "SELECT COUNT(*) AS n FROM user"
- }
- }
- },
- "vendor": "google"
- },
- "t_008_index_lookup": {
- "hash": "3505a160bff25cbe99eb4235b037d39ade89af05864f8b90b7723b63caaa3781",
- "task": "t_008_index_lookup",
- "lang": "rust",
- "golden_published": true,
- "model_name": "Gemini 3 Flash",
- "total_tests": 3,
- "passed_tests": 3,
- "category": "basics",
- "route_api_model": "gemini-3-flash-preview",
- "scorer_details": {
- "index_lookup_projection_parity": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "args": [
- 1
- ],
- "golden_out": "id | name ----+--------- 1 | \"Alice\"",
- "llm_out": "id | name ----+--------- 1 | \"Alice\"",
- "query": "SELECT id, name FROM result WHERE id=1",
- "reducer": "lookup_user_name"
- }
- },
- "schema_parity": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "reducers_diff": null,
- "reducers_equal": true,
- "tables_diff": null,
- "tables_equal": true
- }
- },
- "seed_user_row": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "sql": "INSERT INTO user(id, name, age, active) VALUES (1, 'Alice', 30, true)"
- }
- }
- },
- "vendor": "google"
- },
- "t_009_init": {
- "hash": "3505a160bff25cbe99eb4235b037d39ade89af05864f8b90b7723b63caaa3781",
- "task": "t_009_init",
- "lang": "rust",
- "golden_published": true,
- "model_name": "Gemini 3 Flash",
- "total_tests": 4,
- "passed_tests": 4,
- "category": "basics",
- "route_api_model": "gemini-3-flash-preview",
- "scorer_details": {
- "init_seed_alice": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "actual": 1,
- "expected": 1,
- "sql": "SELECT COUNT(*) AS n FROM user WHERE id=1 AND name='Alice' AND age=30 AND active=true"
- }
- },
- "init_total_two": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "actual": 2,
- "expected": 2,
- "sql": "SELECT COUNT(*) AS n FROM user"
- }
- },
- "schema_parity": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "reducers_diff": null,
- "reducers_equal": true,
- "tables_diff": null,
- "tables_equal": true
- }
- },
- "init_seed_bob": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "actual": 1,
- "expected": 1,
- "sql": "SELECT COUNT(*) AS n FROM user WHERE id=2 AND name='Bob' AND age=22 AND active=false"
- }
- }
- },
- "vendor": "google"
- },
- "t_010_connect": {
- "hash": "3505a160bff25cbe99eb4235b037d39ade89af05864f8b90b7723b63caaa3781",
- "task": "t_010_connect",
- "lang": "rust",
- "golden_published": true,
- "model_name": "Gemini 3 Flash",
- "total_tests": 1,
- "passed_tests": 1,
- "category": "basics",
- "route_api_model": "gemini-3-flash-preview",
- "scorer_details": {
- "schema_parity": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "reducers_diff": null,
- "reducers_equal": true,
- "tables_diff": null,
- "tables_equal": true
- }
- }
- },
- "vendor": "google"
- },
- "t_011_helper_function": {
- "hash": "3505a160bff25cbe99eb4235b037d39ade89af05864f8b90b7723b63caaa3781",
- "task": "t_011_helper_function",
- "lang": "rust",
- "golden_published": true,
- "model_name": "Gemini 3 Flash",
- "total_tests": 3,
- "passed_tests": 3,
- "category": "basics",
- "route_api_model": "gemini-3-flash-preview",
- "scorer_details": {
- "helper_func_sum_parity": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "args": [
- 1,
- 2,
- 3
- ],
- "golden_out": "id | sum ----+----- 1 | 5",
- "llm_out": "id | sum ----+----- 1 | 5",
- "query": "SELECT id, sum FROM result WHERE id=1",
- "reducer": "compute_sum"
- }
- },
- "schema_parity": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "reducers_diff": null,
- "reducers_equal": true,
- "tables_diff": null,
- "tables_equal": true
- }
- },
- "helper_func_sum_abs": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "actual": 1,
- "expected": 1,
- "sql": "SELECT COUNT(*) AS n FROM result WHERE id=1 AND sum=5"
- }
- }
- },
- "vendor": "google"
- },
- "t_012_spacetime_product_type": {
- "hash": "3505a160bff25cbe99eb4235b037d39ade89af05864f8b90b7723b63caaa3781",
- "task": "t_012_spacetime_product_type",
- "lang": "rust",
- "golden_published": true,
- "model_name": "Gemini 3 Flash",
- "total_tests": 3,
- "passed_tests": 3,
- "category": "schema",
- "route_api_model": "gemini-3-flash-preview",
- "scorer_details": {
- "product_type_row_count": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "actual": 1,
- "expected": 1,
- "sql": "SELECT COUNT(*) AS n FROM result WHERE id=1"
- }
- },
- "schema_parity": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "reducers_diff": null,
- "reducers_equal": true,
- "tables_diff": null,
- "tables_equal": true
- }
- },
- "product_type_row_parity": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "args": [
- 1,
- 2,
- 3
- ],
- "golden_out": "id | value ----+----------------------- 1 | (left = 2, right = 3)",
- "llm_out": "id | value ----+----------------------- 1 | (left = 2, right = 3)",
- "query": "SELECT id, value FROM result WHERE id=1",
- "reducer": "set_score"
- }
- }
- },
- "vendor": "google"
- },
- "t_013_spacetime_sum_type": {
- "hash": "3505a160bff25cbe99eb4235b037d39ade89af05864f8b90b7723b63caaa3781",
- "task": "t_013_spacetime_sum_type",
- "lang": "rust",
- "golden_published": true,
- "model_name": "Gemini 3 Flash",
- "total_tests": 3,
- "passed_tests": 3,
- "category": "schema",
- "route_api_model": "gemini-3-flash-preview",
- "scorer_details": {
- "schema_parity": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "reducers_diff": null,
- "reducers_equal": true,
- "tables_diff": null,
- "tables_equal": true
- }
- },
- "sum_type_row_parity": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "args": [
- 1,
- 10
- ],
- "golden_out": "id | value ----+--------------- 1 | (Circle = 10)",
- "llm_out": "id | value ----+--------------- 1 | (Circle = 10)",
- "query": "SELECT id, value FROM result WHERE id=1",
- "reducer": "set_circle"
- }
- },
- "sum_type_row_count": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "actual": 1,
- "expected": 1,
- "sql": "SELECT COUNT(*) AS n FROM result WHERE id=1"
- }
- }
- },
- "vendor": "google"
- },
- "t_014_elementary_columns": {
- "hash": "3505a160bff25cbe99eb4235b037d39ade89af05864f8b90b7723b63caaa3781",
- "task": "t_014_elementary_columns",
- "lang": "rust",
- "golden_published": true,
- "model_name": "Gemini 3 Flash",
- "total_tests": 3,
- "passed_tests": 3,
- "category": "schema",
- "route_api_model": "gemini-3-flash-preview",
- "scorer_details": {
- "schema_parity": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "reducers_diff": null,
- "reducers_equal": true,
- "tables_diff": null,
- "tables_equal": true
- }
- },
- "elementary_columns_row_parity": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "args": [],
- "golden_out": "id | count | total | price | ratio | active | name ----+-------+------------+-------+-------+--------+--------- 1 | 2 | 3000000000 | 1.5 | 2.25 | true | \"Alice\"",
- "llm_out": "id | count | total | price | ratio | active | name ----+-------+------------+-------+-------+--------+--------- 1 | 2 | 3000000000 | 1.5 | 2.25 | true | \"Alice\"",
- "query": "SELECT id, count, total, price, ratio, active, name FROM primitive WHERE id=1",
- "reducer": "seed"
- }
- },
- "elementary_columns_row_count": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "actual": 1,
- "expected": 1,
- "sql": "SELECT COUNT(*) AS n FROM primitive WHERE id=1"
- }
- }
- },
- "vendor": "google"
- },
- "t_015_product_type_columns": {
- "hash": "3505a160bff25cbe99eb4235b037d39ade89af05864f8b90b7723b63caaa3781",
- "task": "t_015_product_type_columns",
- "lang": "rust",
- "golden_published": true,
- "model_name": "Gemini 3 Flash",
- "total_tests": 3,
- "passed_tests": 3,
- "category": "schema",
- "route_api_model": "gemini-3-flash-preview",
- "scorer_details": {
- "product_type_columns_row_parity": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "args": [],
- "golden_out": "id | home | work | pos ----+----------------------------------+-----------------------------------+---------------- 1 | (street = \"1 Main\", zip = 11111) | (street = \"2 Broad\", zip = 22222) | (x = 7, y = 9)",
- "llm_out": "id | home | work | pos ----+----------------------------------+-----------------------------------+---------------- 1 | (street = \"1 Main\", zip = 11111) | (street = \"2 Broad\", zip = 22222) | (x = 7, y = 9)",
- "query": "SELECT id, home, work, pos FROM profile WHERE id=1",
- "reducer": "seed"
- }
- },
- "schema_parity": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "reducers_diff": null,
- "reducers_equal": true,
- "tables_diff": null,
- "tables_equal": true
- }
- },
- "product_type_columns_row_count": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "actual": 1,
- "expected": 1,
- "sql": "SELECT COUNT(*) AS n FROM profile WHERE id=1"
- }
- }
- },
- "vendor": "google"
- },
- "t_016_sum_type_columns": {
- "hash": "3505a160bff25cbe99eb4235b037d39ade89af05864f8b90b7723b63caaa3781",
- "task": "t_016_sum_type_columns",
- "lang": "rust",
- "golden_published": true,
- "model_name": "Gemini 3 Flash",
- "total_tests": 3,
- "passed_tests": 3,
- "category": "schema",
- "route_api_model": "gemini-3-flash-preview",
- "scorer_details": {
- "sum_type_columns_row_parity": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "args": [],
- "golden_out": "id | a | b ----+---------------+--------------------------------------- 1 | (Circle = 10) | (Rectangle = (width = 4, height = 6))",
- "llm_out": "id | a | b ----+---------------+--------------------------------------- 1 | (Circle = 10) | (Rectangle = (width = 4, height = 6))",
- "query": "SELECT id, a, b FROM drawing WHERE id=1",
- "reducer": "seed"
- }
- },
- "schema_parity": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "reducers_diff": null,
- "reducers_equal": true,
- "tables_diff": null,
- "tables_equal": true
- }
- },
- "sum_type_columns_row_count": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "actual": 1,
- "expected": 1,
- "sql": "SELECT COUNT(*) AS n FROM drawing WHERE id=1"
- }
- }
- },
- "vendor": "google"
- },
- "t_017_scheduled_columns": {
- "hash": "3505a160bff25cbe99eb4235b037d39ade89af05864f8b90b7723b63caaa3781",
- "task": "t_017_scheduled_columns",
- "lang": "rust",
- "golden_published": true,
- "model_name": "Gemini 3 Flash",
- "total_tests": 2,
- "passed_tests": 2,
- "category": "schema",
- "route_api_model": "gemini-3-flash-preview",
- "scorer_details": {
- "schema_parity": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "reducers_diff": null,
- "reducers_equal": true,
- "tables_diff": null,
- "tables_equal": true
- }
- },
- "scheduled_seeded_one_row": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "actual": 1,
- "expected": 1,
- "sql": "SELECT COUNT(*) AS n FROM tick_timer WHERE scheduled_id>=0"
- }
- }
- },
- "vendor": "google"
- },
- "t_018_constraints": {
- "hash": "3505a160bff25cbe99eb4235b037d39ade89af05864f8b90b7723b63caaa3781",
- "task": "t_018_constraints",
- "lang": "rust",
- "golden_published": true,
- "model_name": "Gemini 3 Flash",
- "total_tests": 3,
- "passed_tests": 3,
- "category": "schema",
- "route_api_model": "gemini-3-flash-preview",
- "scorer_details": {
- "schema_parity": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "reducers_diff": null,
- "reducers_equal": true,
- "tables_diff": null,
- "tables_equal": true
- }
- },
- "constraints_row_parity_after_seed": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "args": [],
- "golden_out": "id | email | name ----+-----------------+--------- 1 | \"a@example.com\" | \"Alice\"",
- "llm_out": "id | email | name ----+-----------------+--------- 1 | \"a@example.com\" | \"Alice\"",
- "query": "SELECT id, email, name FROM account WHERE id=1",
- "reducer": "seed"
- }
- },
- "constraints_seed_two_rows": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "actual": 1,
- "expected": 1,
- "sql": "SELECT COUNT(*) AS n FROM account WHERE id=2"
- }
- }
- },
- "vendor": "google"
- },
- "t_019_many_to_many": {
- "hash": "3505a160bff25cbe99eb4235b037d39ade89af05864f8b90b7723b63caaa3781",
- "task": "t_019_many_to_many",
- "lang": "rust",
- "golden_published": true,
- "model_name": "Gemini 3 Flash",
- "total_tests": 5,
- "passed_tests": 5,
- "category": "schema",
- "route_api_model": "gemini-3-flash-preview",
- "scorer_details": {
- "m2m_has_1_20": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "actual": 1,
- "expected": 1,
- "sql": "SELECT COUNT(*) AS n FROM membership WHERE user_id=1 AND group_id=20"
- }
- },
- "m2m_has_2_20": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "actual": 1,
- "expected": 1,
- "sql": "SELECT COUNT(*) AS n FROM membership WHERE user_id=2 AND group_id=20"
- }
- },
- "schema_parity": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "reducers_diff": null,
- "reducers_equal": true,
- "tables_diff": null,
- "tables_equal": true
- }
- },
- "m2m_has_1_10": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "actual": 1,
- "expected": 1,
- "sql": "SELECT COUNT(*) AS n FROM membership WHERE user_id=1 AND group_id=10"
- }
- },
- "memberships_three_rows": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "actual": 3,
- "expected": 3,
- "sql": "SELECT COUNT(*) AS n FROM membership"
- }
- }
- },
- "vendor": "google"
- },
- "t_020_ecs": {
- "hash": "3505a160bff25cbe99eb4235b037d39ade89af05864f8b90b7723b63caaa3781",
- "task": "t_020_ecs",
- "lang": "rust",
- "golden_published": true,
- "model_name": "Gemini 3 Flash",
- "total_tests": 5,
- "passed_tests": 5,
- "category": "schema",
- "route_api_model": "gemini-3-flash-preview",
- "scorer_details": {
- "ecs_next_pos_entity2": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "actual": 1,
- "expected": 1,
- "sql": "SELECT COUNT(*) AS n FROM next_position WHERE entity_id=2 AND x=8 AND y=3"
- }
- },
- "ecs_next_pos_entity1": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "actual": 1,
- "expected": 1,
- "sql": "SELECT COUNT(*) AS n FROM next_position WHERE entity_id=1 AND x=1 AND y=0"
- }
- },
- "ecs_seed_position_count": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "actual": 2,
- "expected": 2,
- "sql": "SELECT COUNT(*) AS n FROM position"
- }
- },
- "schema_parity": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "reducers_diff": null,
- "reducers_equal": true,
- "tables_diff": null,
- "tables_equal": true
- }
- },
- "ecs_step_next_position_count": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "actual": 2,
- "expected": 2,
- "sql": "SELECT COUNT(*) AS n FROM next_position"
- }
- }
- },
- "vendor": "google"
- },
- "t_021_multi_column_index": {
- "hash": "3505a160bff25cbe99eb4235b037d39ade89af05864f8b90b7723b63caaa3781",
- "task": "t_021_multi_column_index",
- "lang": "rust",
- "golden_published": true,
- "model_name": "Gemini 3 Flash",
- "total_tests": 4,
- "passed_tests": 4,
- "category": "schema",
- "route_api_model": "gemini-3-flash-preview",
- "scorer_details": {
- "mcindex_seed_count": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "actual": 3,
- "expected": 3,
- "sql": "SELECT COUNT(*) AS n FROM log"
- }
- },
- "mcindex_lookup_u7_d1": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "actual": 1,
- "expected": 1,
- "sql": "SELECT COUNT(*) AS n FROM log WHERE user_id=7 AND day=1"
- }
- },
- "schema_parity": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "reducers_diff": null,
- "reducers_equal": true,
- "tables_diff": null,
- "tables_equal": true
- }
- },
- "mcindex_lookup_u7_d2": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "actual": 1,
- "expected": 1,
- "sql": "SELECT COUNT(*) AS n FROM log WHERE user_id=7 AND day=2"
- }
- }
- },
- "vendor": "google"
- }
- }
- },
- {
- "name": "GPT-5.2-Codex",
- "route_api_model": "gpt-5.2-codex",
- "tasks": {
- "t_000_empty_reducers": {
- "hash": "cb5bf60a6d17e761b5fcec5d8e69bafbaf56602e570522e688d4da57973c7ea8",
- "task": "t_000_empty_reducers",
- "lang": "rust",
- "golden_published": false,
- "model_name": "GPT-5.2-Codex",
- "total_tests": 1,
- "passed_tests": 0,
- "llm_output": "use spacetimedb::{ReducerContext};\n\n#[spacetimedb::table(accessor = Placeholder)]\npub struct Placeholder {\n #[primary_key]\n pub id: i32,\n}\n\n#[spacetimedb::reducer]\npub fn empty_reducer_no_args(_ctx: &ReducerContext) {\n}\n\n#[spacetimedb::reducer]\npub fn empty_reducer_with_int(_ctx: &ReducerContext, _count: i32) {\n}\n\n#[spacetimedb::reducer]\npub fn empty_reducer_with_string(_ctx: &ReducerContext, _name: String) {\n}\n\n#[spacetimedb::reducer]\npub fn empty_reducer_with_two_args(_ctx: &ReducerContext, _count: i32, _name: String) {\n}\n\n#[spacetimedb::reducer]\npub fn empty_reducer_with_three_args(_ctx: &ReducerContext, _active: bool, _ratio: f32, _label: String) {\n}",
- "category": "basics",
- "route_api_model": "gpt-5.2-codex",
- "scorer_details": {
- "publish_error": {
- "pass": false,
- "partial": 0.0,
- "notes": {
- "error": "spacetime publish failed (exit=1)\n--- stderr ---\n Updating crates.io index\n Locking 104 packages to latest compatible versions\n Adding generic-array v0.14.7 (available: v0.14.9)\n Compiling proc-macro2 v1.0.106\n Compiling quote v1.0.44\n Compiling unicode-ident v1.0.24\n Compiling version_check v0.9.5\n Compiling typenum v1.19.0\n Compiling autocfg v1.5.0\n Compiling serde_core v1.0.228\n Compiling heck v0.5.0\n Compiling rustversion v1.0.22\n Compiling cfg-if v1.0.4\n Compiling itoa v1.0.17\n Compiling shlex v1.3.0\n Compiling either v1.15.0\n Compiling find-msvc-tools v0.1.9\n Compiling serde v1.0.228\n Compiling zerocopy v0.8.39\n Compiling anyhow v1.0.102\n Compiling thiserror v1.0.69\n Compiling bitflags v2.11.0\n Compiling nohash-hasher v0.2.0\n Compiling bytes v1.11.1\n Compiling humantime v2.3.0\n Compiling convert_case v0.4.0\n Compiling ryu v1.0.23\n Compiling arrayvec v0.7.6\n Compiling keccak v0.1.6\n Compiling heck v0.4.1\n Compiling constant_time_eq v0.4.2\n Compiling zmij v1.0.21\n Compiling getrandom v0.2.17\n Compiling spacetimedb-lib v2.0.0 (D:\\Development\\ClockworkLabs\\SpacetimeDB\\SpacetimeDBPrivate\\public\\crates\\lib)\n Compiling uuid v1.21.0\n Compiling bytemuck v1.25.0\n Compiling itertools v0.12.1\n Compiling smallvec v1.15.1\n Compiling second-stack v0.3.5\n Compiling hex v0.4.3\n Compiling arrayref v0.3.9\n Compiling generic-array v0.14.7\n Compiling rand_core v0.6.4\n Compiling log v0.4.29\n Compiling serde_json v1.0.149\n Compiling memchr v2.8.0\n Compiling scoped-tls v1.0.1\n Compiling num-traits v0.2.19\n Compiling cc v1.2.56\n Compiling http v1.4.0\n Compiling castaway v0.2.4\n Compiling lean_string v0.5.1\n Compiling syn v2.0.117\n Compiling blake3 v1.8.3\n Compiling approx v0.3.2\n Compiling chrono v0.4.43\n Compiling decorum v0.3.1\n Compiling block-buffer v0.10.4\n Compiling crypto-common v0.1.7\n Compiling digest v0.10.7\n Compiling sha3 v0.10.8\n Compiling ethnum v1.5.2\n Compiling ppv-lite86 v0.2.21\n Compiling enum-as-inner v0.6.1\n Compiling thiserror-impl v1.0.69\n Compiling derive_more v0.99.20\n Compiling rand_chacha v0.3.1\n Compiling rand v0.8.5\n Compiling spacetimedb-primitives v2.0.0 (D:\\Development\\ClockworkLabs\\SpacetimeDB\\SpacetimeDBPrivate\\public\\crates\\primitives)\n Compiling spacetimedb-bindings-sys v2.0.0 (D:\\Development\\ClockworkLabs\\SpacetimeDB\\SpacetimeDBPrivate\\public\\crates\\bindings-sys)\n Compiling spacetimedb-bindings-macro v2.0.0 (D:\\Development\\ClockworkLabs\\SpacetimeDB\\SpacetimeDBPrivate\\public\\crates\\bindings-macro)\n Compiling spacetimedb-sats v2.0.0 (D:\\Development\\ClockworkLabs\\SpacetimeDB\\SpacetimeDBPrivate\\public\\crates\\sats)\n Compiling spacetimedb-query-builder v2.0.0 (D:\\Development\\ClockworkLabs\\SpacetimeDB\\SpacetimeDBPrivate\\public\\crates\\query-builder)\n Compiling spacetimedb v2.0.0 (D:\\Development\\ClockworkLabs\\SpacetimeDB\\SpacetimeDBPrivate\\public\\crates\\bindings)\n Compiling spacetime-module v0.1.0 (D:\\Development\\ClockworkLabs\\SpacetimeDB\\SpacetimeDBPrivate\\public\\target\\llm-runs\\basics\\t_000_empty_reducers\\rust\\server\\gpt-5-2-codex\\llm)\nerror[E0428]: the name `Placeholder` is defined multiple times\n --> src\\lib.rs:5:1\n |\n4 | #[spacetimedb::table(accessor = Placeholder)]\n | _________________________________-\n5 | | pub struct Placeholder {\n | | ^^-^^^^^^^^^^^^^^^^^^^\n | |_|_|\n | | previous definition of the trait `Placeholder` here\n | `Placeholder` redefined here\n |\n = note: `Placeholder` must be defined only once in the type namespace of this module\n\nerror[E0574]: expected struct, variant or union type, found trait `Placeholder`\n --> src\\lib.rs:5:12\n |\n5 | pub struct Placeholder {\n | ^^^^^^^^^^^ not a struct, variant or union type\n\nerror[E0782]: expected a type, found a trait\n --> src\\lib.rs:5:12\n |\n5 | pub struct Placeholder {\n | ^^^^^^^^^^^\n |\nhelp: you can add the `dyn` keyword if you want a trait object\n |\n5 | pub struct dyn Placeholder {\n | +++\n\nerror[E0782]: expected a type, found a trait\n --> src\\lib.rs:5:12\n |\n5 | pub struct Placeholder {\n | ^^^^^^^^^^^\n\nerror[E0782]: expected a type, found a trait\n --> src\\lib.rs:5:12\n |\n5 | pub struct Placeholder {\n | ^^^^^^^^^^^\n |\nhelp: use a new generic type parameter, constrained by `Placeholder`\n |\n4 ~ #[spacetimedb::table(accessor = Placeholder)]\n5 ~ pub struct T {\n |\nhelp: you can also use an opaque type, but users won't be able to specify the type parameter when calling the `fn`, having to rely exclusively on type inference\n |\n5 | pub struct impl Placeholder {\n | ++++\nhelp: alternatively, use a trait object to accept any type that implements `Placeholder`, accessing its methods at runtime using dynamic dispatch\n |\n5 | pub struct dyn Placeholder {\n | +++\n\nSome errors have detailed explanations: E0428, E0574, E0782.\nFor more information about an error, try `rustc --explain E0428`.\nerror: could not compile `spacetime-module` (lib) due to 5 previous errors\nError: command [\"cargo\", \"build\", \"--config=net.git-fetch-with-cli=true\", \"--target=wasm32-unknown-unknown\", \"--release\", \"--message-format=json-render-diagnostics\"] exited with code 101\n\n--- stdout ---\n",
- "phase": "build_or_publish"
- }
- }
- },
- "vendor": "openai"
- },
- "t_001_basic_tables": {
- "hash": "cb5bf60a6d17e761b5fcec5d8e69bafbaf56602e570522e688d4da57973c7ea8",
- "task": "t_001_basic_tables",
- "lang": "rust",
- "golden_published": true,
- "model_name": "GPT-5.2-Codex",
- "total_tests": 1,
- "passed_tests": 1,
- "category": "basics",
- "route_api_model": "gpt-5.2-codex",
- "scorer_details": {
- "schema_parity": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "reducers_diff": null,
- "reducers_equal": true,
- "tables_diff": null,
- "tables_equal": true
- }
- }
- },
- "vendor": "openai"
- },
- "t_002_scheduled_table": {
- "hash": "cb5bf60a6d17e761b5fcec5d8e69bafbaf56602e570522e688d4da57973c7ea8",
- "task": "t_002_scheduled_table",
- "lang": "rust",
- "golden_published": true,
- "model_name": "GPT-5.2-Codex",
- "total_tests": 1,
- "passed_tests": 1,
- "category": "basics",
- "route_api_model": "gpt-5.2-codex",
- "scorer_details": {
- "schema_parity": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "reducers_diff": null,
- "reducers_equal": true,
- "tables_diff": null,
- "tables_equal": true
- }
- }
- },
- "vendor": "openai"
- },
- "t_003_struct_in_table": {
- "hash": "cb5bf60a6d17e761b5fcec5d8e69bafbaf56602e570522e688d4da57973c7ea8",
- "task": "t_003_struct_in_table",
- "lang": "rust",
- "golden_published": true,
- "model_name": "GPT-5.2-Codex",
- "total_tests": 1,
- "passed_tests": 1,
- "category": "basics",
- "route_api_model": "gpt-5.2-codex",
- "scorer_details": {
- "schema_parity": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "reducers_diff": null,
- "reducers_equal": true,
- "tables_diff": null,
- "tables_equal": true
- }
- }
- },
- "vendor": "openai"
- },
- "t_004_insert": {
- "hash": "cb5bf60a6d17e761b5fcec5d8e69bafbaf56602e570522e688d4da57973c7ea8",
- "task": "t_004_insert",
- "lang": "rust",
- "golden_published": true,
- "model_name": "GPT-5.2-Codex",
- "total_tests": 2,
- "passed_tests": 2,
- "category": "basics",
- "route_api_model": "gpt-5.2-codex",
- "scorer_details": {
- "schema_parity": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "reducers_diff": null,
- "reducers_equal": true,
- "tables_diff": null,
- "tables_equal": true
- }
- },
- "data_parity_insert_user": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "args": [
- 1,
- "Alice",
- 30,
- true
- ],
- "golden_out": "id | name | age | active ----+---------+-----+-------- 1 | \"Alice\" | 30 | true",
- "llm_out": "id | name | age | active ----+---------+-----+-------- 1 | \"Alice\" | 30 | true",
- "query": "SELECT id, name, age, active FROM user WHERE id=1",
- "reducer": "insert_user"
- }
- }
- },
- "vendor": "openai"
- },
- "t_005_update": {
- "hash": "cb5bf60a6d17e761b5fcec5d8e69bafbaf56602e570522e688d4da57973c7ea8",
- "task": "t_005_update",
- "lang": "rust",
- "golden_published": true,
- "model_name": "GPT-5.2-Codex",
- "total_tests": 3,
- "passed_tests": 3,
- "category": "basics",
- "route_api_model": "gpt-5.2-codex",
- "scorer_details": {
- "data_parity_update_user": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "args": [
- 1,
- "Alice2",
- 31,
- false
- ],
- "golden_out": "id | name | age | active ----+----------+-----+-------- 1 | \"Alice2\" | 31 | false",
- "llm_out": "id | name | age | active ----+----------+-----+-------- 1 | \"Alice2\" | 31 | false",
- "query": "SELECT id, name, age, active FROM user WHERE id=1",
- "reducer": "update_user"
- }
- },
- "schema_parity": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "reducers_diff": null,
- "reducers_equal": true,
- "tables_diff": null,
- "tables_equal": true
- }
- },
- "seed_users_row": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "sql": "INSERT INTO user(id, name, age, active) VALUES (1, 'Alice', 30, true)"
- }
- }
- },
- "vendor": "openai"
- },
- "t_006_delete": {
- "hash": "cb5bf60a6d17e761b5fcec5d8e69bafbaf56602e570522e688d4da57973c7ea8",
- "task": "t_006_delete",
- "lang": "rust",
- "golden_published": true,
- "model_name": "GPT-5.2-Codex",
- "total_tests": 3,
- "passed_tests": 3,
- "category": "basics",
- "route_api_model": "gpt-5.2-codex",
- "scorer_details": {
- "schema_parity": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "reducers_diff": null,
- "reducers_equal": true,
- "tables_diff": null,
- "tables_equal": true
- }
- },
- "seed_users_row": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "sql": "INSERT INTO user(id, name, age, active) VALUES (1, 'Alice', 30, true)"
- }
- },
- "delete_user_count_zero": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "actual": 0,
- "expected": 0,
- "sql": "SELECT COUNT(*) AS n FROM user WHERE id=1"
- }
- }
- },
- "vendor": "openai"
- },
- "t_007_crud": {
- "hash": "cb5bf60a6d17e761b5fcec5d8e69bafbaf56602e570522e688d4da57973c7ea8",
- "task": "t_007_crud",
- "lang": "rust",
- "golden_published": true,
- "model_name": "GPT-5.2-Codex",
- "total_tests": 4,
- "passed_tests": 4,
- "category": "basics",
- "route_api_model": "gpt-5.2-codex",
- "scorer_details": {
- "crud_row_id2_deleted": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "actual": 0,
- "expected": 0,
- "sql": "SELECT COUNT(*) AS n FROM user WHERE id=2"
- }
- },
- "schema_parity": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "reducers_diff": null,
- "reducers_equal": true,
- "tables_diff": null,
- "tables_equal": true
- }
- },
- "crud_row_id1_parity": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "args": [],
- "golden_out": "id | name | age | active ----+----------+-----+-------- 1 | \"Alice2\" | 31 | false",
- "llm_out": "id | name | age | active ----+----------+-----+-------- 1 | \"Alice2\" | 31 | false",
- "query": "SELECT id, name, age, active FROM user WHERE id=1",
- "reducer": "crud"
- }
- },
- "crud_total_count_one": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "actual": 1,
- "expected": 1,
- "sql": "SELECT COUNT(*) AS n FROM user"
- }
- }
- },
- "vendor": "openai"
- },
- "t_008_index_lookup": {
- "hash": "cb5bf60a6d17e761b5fcec5d8e69bafbaf56602e570522e688d4da57973c7ea8",
- "task": "t_008_index_lookup",
- "lang": "rust",
- "golden_published": true,
- "model_name": "GPT-5.2-Codex",
- "total_tests": 3,
- "passed_tests": 3,
- "category": "basics",
- "route_api_model": "gpt-5.2-codex",
- "scorer_details": {
- "index_lookup_projection_parity": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "args": [
- 1
- ],
- "golden_out": "id | name ----+--------- 1 | \"Alice\"",
- "llm_out": "id | name ----+--------- 1 | \"Alice\"",
- "query": "SELECT id, name FROM result WHERE id=1",
- "reducer": "lookup_user_name"
- }
- },
- "schema_parity": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "reducers_diff": null,
- "reducers_equal": true,
- "tables_diff": null,
- "tables_equal": true
- }
- },
- "seed_user_row": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "sql": "INSERT INTO user(id, name, age, active) VALUES (1, 'Alice', 30, true)"
- }
- }
- },
- "vendor": "openai"
- },
- "t_009_init": {
- "hash": "cb5bf60a6d17e761b5fcec5d8e69bafbaf56602e570522e688d4da57973c7ea8",
- "task": "t_009_init",
- "lang": "rust",
- "golden_published": true,
- "model_name": "GPT-5.2-Codex",
- "total_tests": 4,
- "passed_tests": 4,
- "category": "basics",
- "route_api_model": "gpt-5.2-codex",
- "scorer_details": {
- "init_seed_alice": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "actual": 1,
- "expected": 1,
- "sql": "SELECT COUNT(*) AS n FROM user WHERE id=1 AND name='Alice' AND age=30 AND active=true"
- }
- },
- "init_total_two": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "actual": 2,
- "expected": 2,
- "sql": "SELECT COUNT(*) AS n FROM user"
- }
- },
- "schema_parity": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "reducers_diff": null,
- "reducers_equal": true,
- "tables_diff": null,
- "tables_equal": true
- }
- },
- "init_seed_bob": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "actual": 1,
- "expected": 1,
- "sql": "SELECT COUNT(*) AS n FROM user WHERE id=2 AND name='Bob' AND age=22 AND active=false"
- }
- }
- },
- "vendor": "openai"
- },
- "t_010_connect": {
- "hash": "cb5bf60a6d17e761b5fcec5d8e69bafbaf56602e570522e688d4da57973c7ea8",
- "task": "t_010_connect",
- "lang": "rust",
- "golden_published": true,
- "model_name": "GPT-5.2-Codex",
- "total_tests": 1,
- "passed_tests": 1,
- "category": "basics",
- "route_api_model": "gpt-5.2-codex",
- "scorer_details": {
- "schema_parity": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "reducers_diff": null,
- "reducers_equal": true,
- "tables_diff": null,
- "tables_equal": true
- }
- }
- },
- "vendor": "openai"
- },
- "t_011_helper_function": {
- "hash": "cb5bf60a6d17e761b5fcec5d8e69bafbaf56602e570522e688d4da57973c7ea8",
- "task": "t_011_helper_function",
- "lang": "rust",
- "golden_published": true,
- "model_name": "GPT-5.2-Codex",
- "total_tests": 3,
- "passed_tests": 3,
- "category": "basics",
- "route_api_model": "gpt-5.2-codex",
- "scorer_details": {
- "helper_func_sum_parity": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "args": [
- 1,
- 2,
- 3
- ],
- "golden_out": "id | sum ----+----- 1 | 5",
- "llm_out": "id | sum ----+----- 1 | 5",
- "query": "SELECT id, sum FROM result WHERE id=1",
- "reducer": "compute_sum"
- }
- },
- "schema_parity": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "reducers_diff": null,
- "reducers_equal": true,
- "tables_diff": null,
- "tables_equal": true
- }
- },
- "helper_func_sum_abs": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "actual": 1,
- "expected": 1,
- "sql": "SELECT COUNT(*) AS n FROM result WHERE id=1 AND sum=5"
- }
- }
- },
- "vendor": "openai"
- },
- "t_012_spacetime_product_type": {
- "hash": "cb5bf60a6d17e761b5fcec5d8e69bafbaf56602e570522e688d4da57973c7ea8",
- "task": "t_012_spacetime_product_type",
- "lang": "rust",
- "golden_published": true,
- "model_name": "GPT-5.2-Codex",
- "total_tests": 3,
- "passed_tests": 3,
- "category": "schema",
- "route_api_model": "gpt-5.2-codex",
- "scorer_details": {
- "product_type_row_count": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "actual": 1,
- "expected": 1,
- "sql": "SELECT COUNT(*) AS n FROM result WHERE id=1"
- }
- },
- "schema_parity": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "reducers_diff": null,
- "reducers_equal": true,
- "tables_diff": null,
- "tables_equal": true
- }
- },
- "product_type_row_parity": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "args": [
- 1,
- 2,
- 3
- ],
- "golden_out": "id | value ----+----------------------- 1 | (left = 2, right = 3)",
- "llm_out": "id | value ----+----------------------- 1 | (left = 2, right = 3)",
- "query": "SELECT id, value FROM result WHERE id=1",
- "reducer": "set_score"
- }
- }
- },
- "vendor": "openai"
- },
- "t_013_spacetime_sum_type": {
- "hash": "cb5bf60a6d17e761b5fcec5d8e69bafbaf56602e570522e688d4da57973c7ea8",
- "task": "t_013_spacetime_sum_type",
- "lang": "rust",
- "golden_published": true,
- "model_name": "GPT-5.2-Codex",
- "total_tests": 3,
- "passed_tests": 3,
- "category": "schema",
- "route_api_model": "gpt-5.2-codex",
- "scorer_details": {
- "schema_parity": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "reducers_diff": null,
- "reducers_equal": true,
- "tables_diff": null,
- "tables_equal": true
- }
- },
- "sum_type_row_parity": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "args": [
- 1,
- 10
- ],
- "golden_out": "id | value ----+--------------- 1 | (circle = 10)",
- "llm_out": "id | value ----+--------------- 1 | (circle = 10)",
- "query": "SELECT id, value FROM result WHERE id=1",
- "reducer": "set_circle"
- }
- },
- "sum_type_row_count": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "actual": 1,
- "expected": 1,
- "sql": "SELECT COUNT(*) AS n FROM result WHERE id=1"
- }
- }
- },
- "vendor": "openai"
- },
- "t_014_elementary_columns": {
- "hash": "cb5bf60a6d17e761b5fcec5d8e69bafbaf56602e570522e688d4da57973c7ea8",
- "task": "t_014_elementary_columns",
- "lang": "rust",
- "golden_published": true,
- "model_name": "GPT-5.2-Codex",
- "total_tests": 3,
- "passed_tests": 3,
- "category": "schema",
- "route_api_model": "gpt-5.2-codex",
- "scorer_details": {
- "schema_parity": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "reducers_diff": null,
- "reducers_equal": true,
- "tables_diff": null,
- "tables_equal": true
- }
- },
- "elementary_columns_row_parity": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "args": [],
- "golden_out": "id | count | total | price | ratio | active | name ----+-------+------------+-------+-------+--------+--------- 1 | 2 | 3000000000 | 1.5 | 2.25 | true | \"Alice\"",
- "llm_out": "id | count | total | price | ratio | active | name ----+-------+------------+-------+-------+--------+--------- 1 | 2 | 3000000000 | 1.5 | 2.25 | true | \"Alice\"",
- "query": "SELECT id, count, total, price, ratio, active, name FROM primitive WHERE id=1",
- "reducer": "seed"
- }
- },
- "elementary_columns_row_count": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "actual": 1,
- "expected": 1,
- "sql": "SELECT COUNT(*) AS n FROM primitive WHERE id=1"
- }
- }
- },
- "vendor": "openai"
- },
- "t_015_product_type_columns": {
- "hash": "cb5bf60a6d17e761b5fcec5d8e69bafbaf56602e570522e688d4da57973c7ea8",
- "task": "t_015_product_type_columns",
- "lang": "rust",
- "golden_published": true,
- "model_name": "GPT-5.2-Codex",
- "total_tests": 3,
- "passed_tests": 3,
- "category": "schema",
- "route_api_model": "gpt-5.2-codex",
- "scorer_details": {
- "product_type_columns_row_parity": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "args": [],
- "golden_out": "id | home | work | pos ----+----------------------------------+-----------------------------------+---------------- 1 | (street = \"1 Main\", zip = 11111) | (street = \"2 Broad\", zip = 22222) | (x = 7, y = 9)",
- "llm_out": "id | home | work | pos ----+----------------------------------+-----------------------------------+---------------- 1 | (street = \"1 Main\", zip = 11111) | (street = \"2 Broad\", zip = 22222) | (x = 7, y = 9)",
- "query": "SELECT id, home, work, pos FROM profile WHERE id=1",
- "reducer": "seed"
- }
- },
- "schema_parity": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "reducers_diff": null,
- "reducers_equal": true,
- "tables_diff": null,
- "tables_equal": true
- }
- },
- "product_type_columns_row_count": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "actual": 1,
- "expected": 1,
- "sql": "SELECT COUNT(*) AS n FROM profile WHERE id=1"
- }
- }
- },
- "vendor": "openai"
- },
- "t_016_sum_type_columns": {
- "hash": "cb5bf60a6d17e761b5fcec5d8e69bafbaf56602e570522e688d4da57973c7ea8",
- "task": "t_016_sum_type_columns",
- "lang": "rust",
- "golden_published": true,
- "model_name": "GPT-5.2-Codex",
- "total_tests": 3,
- "passed_tests": 3,
- "category": "schema",
- "route_api_model": "gpt-5.2-codex",
- "scorer_details": {
- "sum_type_columns_row_parity": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "args": [],
- "golden_out": "id | a | b ----+---------------+--------------------------------------- 1 | (circle = 10) | (rectangle = (width = 4, height = 6))",
- "llm_out": "id | a | b ----+---------------+--------------------------------------- 1 | (circle = 10) | (rectangle = (width = 4, height = 6))",
- "query": "SELECT id, a, b FROM drawing WHERE id=1",
- "reducer": "seed"
- }
- },
- "schema_parity": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "reducers_diff": null,
- "reducers_equal": true,
- "tables_diff": null,
- "tables_equal": true
- }
- },
- "sum_type_columns_row_count": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "actual": 1,
- "expected": 1,
- "sql": "SELECT COUNT(*) AS n FROM drawing WHERE id=1"
- }
- }
- },
- "vendor": "openai"
- },
- "t_017_scheduled_columns": {
- "hash": "cb5bf60a6d17e761b5fcec5d8e69bafbaf56602e570522e688d4da57973c7ea8",
- "task": "t_017_scheduled_columns",
- "lang": "rust",
- "golden_published": true,
- "model_name": "GPT-5.2-Codex",
- "total_tests": 2,
- "passed_tests": 2,
- "category": "schema",
- "route_api_model": "gpt-5.2-codex",
- "scorer_details": {
- "schema_parity": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "reducers_diff": null,
- "reducers_equal": true,
- "tables_diff": null,
- "tables_equal": true
- }
- },
- "scheduled_seeded_one_row": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "actual": 1,
- "expected": 1,
- "sql": "SELECT COUNT(*) AS n FROM tick_timer WHERE scheduled_id>=0"
- }
- }
- },
- "vendor": "openai"
- },
- "t_018_constraints": {
- "hash": "cb5bf60a6d17e761b5fcec5d8e69bafbaf56602e570522e688d4da57973c7ea8",
- "task": "t_018_constraints",
- "lang": "rust",
- "golden_published": true,
- "model_name": "GPT-5.2-Codex",
- "total_tests": 3,
- "passed_tests": 3,
- "category": "schema",
- "route_api_model": "gpt-5.2-codex",
- "scorer_details": {
- "schema_parity": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "reducers_diff": null,
- "reducers_equal": true,
- "tables_diff": null,
- "tables_equal": true
- }
- },
- "constraints_row_parity_after_seed": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "args": [],
- "golden_out": "id | email | name ----+-----------------+--------- 1 | \"a@example.com\" | \"Alice\"",
- "llm_out": "id | email | name ----+-----------------+--------- 1 | \"a@example.com\" | \"Alice\"",
- "query": "SELECT id, email, name FROM account WHERE id=1",
- "reducer": "seed"
- }
- },
- "constraints_seed_two_rows": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "actual": 1,
- "expected": 1,
- "sql": "SELECT COUNT(*) AS n FROM account WHERE id=2"
- }
- }
- },
- "vendor": "openai"
- },
- "t_019_many_to_many": {
- "hash": "cb5bf60a6d17e761b5fcec5d8e69bafbaf56602e570522e688d4da57973c7ea8",
- "task": "t_019_many_to_many",
- "lang": "rust",
- "golden_published": false,
- "model_name": "GPT-5.2-Codex",
- "total_tests": 5,
- "passed_tests": 0,
- "llm_output": "use spacetimedb::{ReducerContext, Table};\n\n#[spacetimedb::table(name = user, public)]\npub struct User {\n #[primary_key]\n pub user_id: i32,\n pub name: String,\n}\n\n#[spacetimedb::table(name = group, public)]\npub struct Group {\n #[primary_key]\n pub group_id: i32,\n pub title: String,\n}\n\n#[spacetimedb::table(\n name = membership,\n public,\n index(name = by_user, btree(columns = [user_id])),\n index(name = by_group, btree(columns = [group_id]))\n)]\npub struct Membership {\n #[primary_key]\n pub id: i32,\n pub user_id: i32,\n pub group_id: i32,\n}\n\n#[spacetimedb::reducer]\npub fn seed(ctx: &ReducerContext) {\n ctx.db.user().insert(User {\n user_id: 1,\n name: \"Alice\".to_string(),\n });\n ctx.db.user().insert(User {\n user_id: 2,\n name: \"Bob\".to_string(),\n });\n\n ctx.db.group().insert(Group {\n group_id: 10,\n title: \"Admin\".to_string(),\n });\n ctx.db.group().insert(Group {\n group_id: 20,\n title: \"Dev\".to_string(),\n });\n\n ctx.db.membership().insert(Membership {\n id: 1,\n user_id: 1,\n group_id: 10,\n });\n ctx.db.membership().insert(Membership {\n id: 2,\n user_id: 1,\n group_id: 20,\n });\n ctx.db.membership().insert(Membership {\n id: 3,\n user_id: 2,\n group_id: 20,\n });\n}",
- "category": "schema",
- "route_api_model": "gpt-5.2-codex",
- "scorer_details": {
- "publish_error": {
- "pass": false,
- "partial": 0.0,
- "notes": {
- "error": "spacetime publish failed (exit=1)\n--- stderr ---\n Updating crates.io index\n Locking 104 packages to latest compatible versions\n Adding generic-array v0.14.7 (available: v0.14.9)\n Compiling proc-macro2 v1.0.106\n Compiling quote v1.0.44\n Compiling unicode-ident v1.0.24\n Compiling version_check v0.9.5\n Compiling typenum v1.19.0\n Compiling autocfg v1.5.0\n Compiling heck v0.5.0\n Compiling serde_core v1.0.228\n Compiling cfg-if v1.0.4\n Compiling rustversion v1.0.22\n Compiling either v1.15.0\n Compiling find-msvc-tools v0.1.9\n Compiling serde v1.0.228\n Compiling shlex v1.3.0\n Compiling itoa v1.0.17\n Compiling anyhow v1.0.102\n Compiling nohash-hasher v0.2.0\n Compiling thiserror v1.0.69\n Compiling zerocopy v0.8.39\n Compiling bitflags v2.11.0\n Compiling arrayvec v0.7.6\n Compiling bytes v1.11.1\n Compiling ryu v1.0.23\n Compiling convert_case v0.4.0\n Compiling keccak v0.1.6\n Compiling heck v0.4.1\n Compiling humantime v2.3.0\n Compiling smallvec v1.15.1\n Compiling spacetimedb-lib v2.0.0 (D:\\Development\\ClockworkLabs\\SpacetimeDB\\SpacetimeDBPrivate\\public\\crates\\lib)\n Compiling getrandom v0.2.17\n Compiling arrayref v0.3.9\n Compiling second-stack v0.3.5\n Compiling zmij v1.0.21\n Compiling constant_time_eq v0.4.2\n Compiling itertools v0.12.1\n Compiling hex v0.4.3\n Compiling uuid v1.21.0\n Compiling bytemuck v1.25.0\n Compiling rand_core v0.6.4\n Compiling serde_json v1.0.149\n Compiling log v0.4.29\n Compiling memchr v2.8.0\n Compiling scoped-tls v1.0.1\n Compiling generic-array v0.14.7\n Compiling num-traits v0.2.19\n Compiling cc v1.2.56\n Compiling http v1.4.0\n Compiling castaway v0.2.4\n Compiling lean_string v0.5.1\n Compiling syn v2.0.117\n Compiling approx v0.3.2\n Compiling chrono v0.4.43\n Compiling blake3 v1.8.3\n Compiling crypto-common v0.1.7\n Compiling block-buffer v0.10.4\n Compiling decorum v0.3.1\n Compiling digest v0.10.7\n Compiling sha3 v0.10.8\n Compiling ethnum v1.5.2\n Compiling ppv-lite86 v0.2.21\n Compiling enum-as-inner v0.6.1\n Compiling thiserror-impl v1.0.69\n Compiling derive_more v0.99.20\n Compiling rand_chacha v0.3.1\n Compiling rand v0.8.5\n Compiling spacetimedb-primitives v2.0.0 (D:\\Development\\ClockworkLabs\\SpacetimeDB\\SpacetimeDBPrivate\\public\\crates\\primitives)\n Compiling spacetimedb-bindings-sys v2.0.0 (D:\\Development\\ClockworkLabs\\SpacetimeDB\\SpacetimeDBPrivate\\public\\crates\\bindings-sys)\n Compiling spacetimedb-bindings-macro v2.0.0 (D:\\Development\\ClockworkLabs\\SpacetimeDB\\SpacetimeDBPrivate\\public\\crates\\bindings-macro)\n Compiling spacetimedb-sats v2.0.0 (D:\\Development\\ClockworkLabs\\SpacetimeDB\\SpacetimeDBPrivate\\public\\crates\\sats)\n Compiling spacetimedb-query-builder v2.0.0 (D:\\Development\\ClockworkLabs\\SpacetimeDB\\SpacetimeDBPrivate\\public\\crates\\query-builder)\n Compiling spacetimedb v2.0.0 (D:\\Development\\ClockworkLabs\\SpacetimeDB\\SpacetimeDBPrivate\\public\\crates\\bindings)\n Compiling spacetime-module v0.1.0 (D:\\Development\\ClockworkLabs\\SpacetimeDB\\SpacetimeDBPrivate\\public\\target\\llm-runs\\schema\\t_019_many_to_many\\rust\\server\\gpt-5-2-codex\\llm)\nerror: Expected a string literal for `name`, but found an identifier. Did you mean to specify an `accessor`?\n \n If you're migrating from SpacetimeDB 1.*, replace `name = user` with `accessor = user`.\n --> src\\lib.rs:4:22\n |\n4 | #[spacetimedb::table(name = user, public)]\n | ^^^^^^\n\nerror: Expected a string literal for `name`, but found an identifier. Did you mean to specify an `accessor`?\n \n If you're migrating from SpacetimeDB 1.*, replace `name = group` with `accessor = group`.\n --> src\\lib.rs:11:22\n |\n11 | #[spacetimedb::table(name = group, public)]\n | ^^^^^^\n\nerror: Expected a string literal for `name`, but found an identifier. Did you mean to specify an `accessor`?\n \n If you're migrating from SpacetimeDB 1.*, replace `name = membership` with `accessor = membership`.\n --> src\\lib.rs:19:5\n |\n19 | name = membership,\n | ^^^^^^\n\nerror[E0422]: cannot find struct, variant or union type `User` in this scope\n --> src\\lib.rs:33:26\n |\n33 | ctx.db.user().insert(User {\n | ^^^^ not found in this scope\n\nerror[E0422]: cannot find struct, variant or union type `User` in this scope\n --> src\\lib.rs:37:26\n |\n37 | ctx.db.user().insert(User {\n | ^^^^ not found in this scope\n\nerror[E0422]: cannot find struct, variant or union type `Group` in this scope\n --> src\\lib.rs:42:27\n |\n42 | ctx.db.group().insert(Group {\n | ^^^^^ not found in this scope\n\nerror[E0422]: cannot find struct, variant or union type `Group` in this scope\n --> src\\lib.rs:46:27\n |\n46 | ctx.db.group().insert(Group {\n | ^^^^^ not found in this scope\n\nerror[E0422]: cannot find struct, variant or union type `Membership` in this scope\n --> src\\lib.rs:51:32\n |\n51 | ctx.db.membership().insert(Membership {\n | ^^^^^^^^^^ not found in this scope\n\nerror[E0422]: cannot find struct, variant or union type `Membership` in this scope\n --> src\\lib.rs:56:32\n |\n56 | ctx.db.membership().insert(Membership {\n | ^^^^^^^^^^ not found in this scope\n\nerror[E0422]: cannot find struct, variant or union type `Membership` in this scope\n --> src\\lib.rs:61:32\n |\n61 | ctx.db.membership().insert(Membership {\n | ^^^^^^^^^^ not found in this scope\n\nerror[E0599]: no method named `user` found for struct `Local` in the current scope\n --> src\\lib.rs:33:12\n |\n33 | ctx.db.user().insert(User {\n | ^^^^ method not found in `Local`\n\nerror[E0599]: no method named `user` found for struct `Local` in the current scope\n --> src\\lib.rs:37:12\n |\n37 | ctx.db.user().insert(User {\n | ^^^^ method not found in `Local`\n\nerror[E0599]: no method named `group` found for struct `Local` in the current scope\n --> src\\lib.rs:42:12\n |\n42 | ctx.db.group().insert(Group {\n | ^^^^^ method not found in `Local`\n\nerror[E0599]: no method named `group` found for struct `Local` in the current scope\n --> src\\lib.rs:46:12\n |\n46 | ctx.db.group().insert(Group {\n | ^^^^^ method not found in `Local`\n\nerror[E0599]: no method named `membership` found for struct `Local` in the current scope\n --> src\\lib.rs:51:12\n |\n51 | ctx.db.membership().insert(Membership {\n | ^^^^^^^^^^ method not found in `Local`\n\nerror[E0599]: no method named `membership` found for struct `Local` in the current scope\n --> src\\lib.rs:56:12\n |\n56 | ctx.db.membership().insert(Membership {\n | ^^^^^^^^^^ method not found in `Local`\n\nerror[E0599]: no method named `membership` found for struct `Local` in the current scope\n --> src\\lib.rs:61:12\n |\n61 | ctx.db.membership().insert(Membership {\n | ^^^^^^^^^^ method not found in `Local`\n\nSome errors have detailed explanations: E0422, E0599.\nFor more information about an error, try `rustc --explain E0422`.\nerror: could not compile `spacetime-module` (lib) due to 17 previous errors\nError: command [\"cargo\", \"build\", \"--config=net.git-fetch-with-cli=true\", \"--target=wasm32-unknown-unknown\", \"--release\", \"--message-format=json-render-diagnostics\"] exited with code 101\n\n--- stdout ---\n",
- "phase": "build_or_publish"
- }
- }
- },
- "vendor": "openai"
- },
- "t_020_ecs": {
- "hash": "cb5bf60a6d17e761b5fcec5d8e69bafbaf56602e570522e688d4da57973c7ea8",
- "task": "t_020_ecs",
- "lang": "rust",
- "golden_published": true,
- "model_name": "GPT-5.2-Codex",
- "total_tests": 5,
- "passed_tests": 5,
- "category": "schema",
- "route_api_model": "gpt-5.2-codex",
- "scorer_details": {
- "ecs_next_pos_entity2": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "actual": 1,
- "expected": 1,
- "sql": "SELECT COUNT(*) AS n FROM next_position WHERE entity_id=2 AND x=8 AND y=3"
- }
- },
- "ecs_next_pos_entity1": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "actual": 1,
- "expected": 1,
- "sql": "SELECT COUNT(*) AS n FROM next_position WHERE entity_id=1 AND x=1 AND y=0"
- }
- },
- "ecs_seed_position_count": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "actual": 2,
- "expected": 2,
- "sql": "SELECT COUNT(*) AS n FROM position"
- }
- },
- "schema_parity": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "reducers_diff": null,
- "reducers_equal": true,
- "tables_diff": null,
- "tables_equal": true
- }
- },
- "ecs_step_next_position_count": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "actual": 2,
- "expected": 2,
- "sql": "SELECT COUNT(*) AS n FROM next_position"
- }
- }
- },
- "vendor": "openai"
- },
- "t_021_multi_column_index": {
- "hash": "cb5bf60a6d17e761b5fcec5d8e69bafbaf56602e570522e688d4da57973c7ea8",
- "task": "t_021_multi_column_index",
- "lang": "rust",
- "golden_published": true,
- "model_name": "GPT-5.2-Codex",
- "total_tests": 4,
- "passed_tests": 4,
- "category": "schema",
- "route_api_model": "gpt-5.2-codex",
- "scorer_details": {
- "mcindex_seed_count": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "actual": 3,
- "expected": 3,
- "sql": "SELECT COUNT(*) AS n FROM log"
- }
- },
- "mcindex_lookup_u7_d1": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "actual": 1,
- "expected": 1,
- "sql": "SELECT COUNT(*) AS n FROM log WHERE user_id=7 AND day=1"
- }
- },
- "schema_parity": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "reducers_diff": null,
- "reducers_equal": true,
- "tables_diff": null,
- "tables_equal": true
- }
- },
- "mcindex_lookup_u7_d2": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "actual": 1,
- "expected": 1,
- "sql": "SELECT COUNT(*) AS n FROM log WHERE user_id=7 AND day=2"
- }
- }
- },
- "vendor": "openai"
- }
- }
- },
- {
- "name": "GPT-5-mini",
- "route_api_model": "gpt-5-mini",
- "tasks": {
- "t_000_empty_reducers": {
- "hash": "475c22b985e81027333ffa0d043dc9cbbb2ed9171f8083e5747c79c5585722d9",
- "task": "t_000_empty_reducers",
- "lang": "rust",
- "golden_published": true,
- "model_name": "GPT-5-mini",
- "total_tests": 1,
- "passed_tests": 1,
- "category": "basics",
- "route_api_model": "gpt-5-mini",
- "scorer_details": {
- "schema_parity": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "reducers_diff": null,
- "reducers_equal": true,
- "tables_diff": null,
- "tables_equal": true
- }
- }
- },
- "vendor": "openai"
- },
- "t_001_basic_tables": {
- "hash": "475c22b985e81027333ffa0d043dc9cbbb2ed9171f8083e5747c79c5585722d9",
- "task": "t_001_basic_tables",
- "lang": "rust",
- "golden_published": true,
- "model_name": "GPT-5-mini",
- "total_tests": 1,
- "passed_tests": 1,
- "category": "basics",
- "route_api_model": "gpt-5-mini",
- "scorer_details": {
- "schema_parity": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "reducers_diff": null,
- "reducers_equal": true,
- "tables_diff": null,
- "tables_equal": true
- }
- }
- },
- "vendor": "openai"
- },
- "t_002_scheduled_table": {
- "hash": "475c22b985e81027333ffa0d043dc9cbbb2ed9171f8083e5747c79c5585722d9",
- "task": "t_002_scheduled_table",
- "lang": "rust",
- "golden_published": true,
- "model_name": "GPT-5-mini",
- "total_tests": 1,
- "passed_tests": 1,
- "category": "basics",
- "route_api_model": "gpt-5-mini",
- "scorer_details": {
- "schema_parity": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "reducers_diff": null,
- "reducers_equal": true,
- "tables_diff": null,
- "tables_equal": true
- }
- }
- },
- "vendor": "openai"
- },
- "t_003_struct_in_table": {
- "hash": "475c22b985e81027333ffa0d043dc9cbbb2ed9171f8083e5747c79c5585722d9",
- "task": "t_003_struct_in_table",
- "lang": "rust",
- "golden_published": true,
- "model_name": "GPT-5-mini",
- "total_tests": 1,
- "passed_tests": 1,
- "category": "basics",
- "route_api_model": "gpt-5-mini",
- "scorer_details": {
- "schema_parity": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "reducers_diff": null,
- "reducers_equal": true,
- "tables_diff": null,
- "tables_equal": true
- }
- }
- },
- "vendor": "openai"
- },
- "t_004_insert": {
- "hash": "475c22b985e81027333ffa0d043dc9cbbb2ed9171f8083e5747c79c5585722d9",
- "task": "t_004_insert",
- "lang": "rust",
- "golden_published": true,
- "model_name": "GPT-5-mini",
- "total_tests": 2,
- "passed_tests": 2,
- "category": "basics",
- "route_api_model": "gpt-5-mini",
- "scorer_details": {
- "schema_parity": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "reducers_diff": null,
- "reducers_equal": true,
- "tables_diff": null,
- "tables_equal": true
- }
- },
- "data_parity_insert_user": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "args": [
- 1,
- "Alice",
- 30,
- true
- ],
- "golden_out": "id | name | age | active ----+---------+-----+-------- 1 | \"Alice\" | 30 | true",
- "llm_out": "id | name | age | active ----+---------+-----+-------- 1 | \"Alice\" | 30 | true",
- "query": "SELECT id, name, age, active FROM user WHERE id=1",
- "reducer": "insert_user"
- }
- }
- },
- "vendor": "openai"
- },
- "t_005_update": {
- "hash": "475c22b985e81027333ffa0d043dc9cbbb2ed9171f8083e5747c79c5585722d9",
- "task": "t_005_update",
- "lang": "rust",
- "golden_published": true,
- "model_name": "GPT-5-mini",
- "total_tests": 3,
- "passed_tests": 1,
- "llm_output": "use spacetimedb::{ReducerContext, Table};\n\n#[spacetimedb::table(accessor = user)]\npub struct User {\n #[primary_key]\n pub id: i32,\n pub name: String,\n pub age: i32,\n pub active: bool,\n}\n\n#[spacetimedb::reducer]\npub fn update_user(ctx: &ReducerContext, id: i32, name: String, age: i32, active: bool) -> Result<(), String> {\n if ctx.db.user().id().find(id).is_some() {\n ctx.db.user().id().update(User { id, name, age, active });\n Ok(())\n } else {\n Err(\"User not found\".to_string())\n }\n}",
- "category": "basics",
- "route_api_model": "gpt-5-mini",
- "scorer_details": {
- "data_parity_update_user": {
- "pass": false,
- "partial": 0.0,
- "notes": {
- "error": "spacetime call failed:\nWARNING: This command is UNSTABLE and subject to breaking changes.\n\nError: Response text: User not found\n\nCaused by:\n HTTP status server error (530 ) for url (http://127.0.0.1:62032/v1/database/c2009b55af479168fa8dc45fa8e822846c3e82e1fb2e0ac91f9ffd0da9f1a058/call/update_user)\n",
- "phase": "call_reducer_llm"
- }
- },
- "schema_parity": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "reducers_diff": null,
- "reducers_equal": true,
- "tables_diff": null,
- "tables_equal": true
- }
- },
- "seed_users_row": {
- "pass": false,
- "partial": 0.0,
- "notes": {
- "error": "spacetime sql failed:\nWARNING: This command is UNSTABLE and subject to breaking changes.\n\nError: IndexError: Unique constraint violation 'user_id_idx_btree' in table 'user': column(s): '[\"id\"]' value: 1\n\nCaused by:\n HTTP status client error (400 Bad Request) for url (http://127.0.0.1:62032/v1/database/c2003a3ababf2e2b5374bac162fec14fc8b57142230b968a3bbb889bbd60b560/sql)\n",
- "phase": "sql_golden",
- "sql": "INSERT INTO user(id, name, age, active) VALUES (1, 'Alice', 30, true)"
- }
- }
- },
- "vendor": "openai"
- },
- "t_006_delete": {
- "hash": "475c22b985e81027333ffa0d043dc9cbbb2ed9171f8083e5747c79c5585722d9",
- "task": "t_006_delete",
- "lang": "rust",
- "golden_published": true,
- "model_name": "GPT-5-mini",
- "total_tests": 3,
- "passed_tests": 3,
- "category": "basics",
- "route_api_model": "gpt-5-mini",
- "scorer_details": {
- "schema_parity": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "reducers_diff": null,
- "reducers_equal": true,
- "tables_diff": null,
- "tables_equal": true
- }
- },
- "seed_users_row": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "sql": "INSERT INTO user(id, name, age, active) VALUES (1, 'Alice', 30, true)"
- }
- },
- "delete_user_count_zero": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "actual": 0,
- "expected": 0,
- "sql": "SELECT COUNT(*) AS n FROM user WHERE id=1"
- }
- }
- },
- "vendor": "openai"
- },
- "t_007_crud": {
- "hash": "475c22b985e81027333ffa0d043dc9cbbb2ed9171f8083e5747c79c5585722d9",
- "task": "t_007_crud",
- "lang": "rust",
- "golden_published": true,
- "model_name": "GPT-5-mini",
- "total_tests": 4,
- "passed_tests": 2,
- "llm_output": "use spacetimedb::{ReducerContext, Table};\n\n#[spacetimedb::table(accessor = user, public)]\npub struct User {\n #[primary_key]\n pub id: i32,\n pub name: String,\n pub age: i32,\n pub active: bool,\n}\n\n#[spacetimedb::reducer]\npub fn crud(ctx: &ReducerContext) -> Result<(), String> {\n // Insert id=1 Alice\n ctx.db.user().insert(User {\n id: 1,\n name: \"Alice\".to_string(),\n age: 30,\n active: true,\n });\n\n // Insert id=2 Bob\n ctx.db.user().insert(User {\n id: 2,\n name: \"Bob\".to_string(),\n age: 22,\n active: false,\n });\n\n // Update id=1 -> Alice2, age=31, active=false\n if let Some(mut u) = ctx.db.user().id().find(1) {\n u.name = \"Alice2\".to_string();\n u.age = 31;\n u.active = false;\n ctx.db.user().id().update(u);\n } else {\n return Err(\"User with id=1 not found for update\".to_string());\n }\n\n // Delete id=2\n ctx.db.user().id().delete(2);\n\n Ok(())\n}",
- "category": "basics",
- "route_api_model": "gpt-5-mini",
- "scorer_details": {
- "crud_row_id2_deleted": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "actual": 0,
- "expected": 0,
- "sql": "SELECT COUNT(*) AS n FROM user WHERE id=2"
- }
- },
- "schema_parity": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "reducers_diff": null,
- "reducers_equal": true,
- "tables_diff": null,
- "tables_equal": true
- }
- },
- "crud_row_id1_parity": {
- "pass": false,
- "partial": 0.0,
- "notes": {
- "error": "spacetime call failed:\nWARNING: This command is UNSTABLE and subject to breaking changes.\n\nError: Response text: The instance encountered a fatal error.\n\nCaused by:\n HTTP status server error (530 ) for url (http://127.0.0.1:62032/v1/database/c200b25c6336d7792fc5beed9cc4b084a6e741db8bf7ce1e2484acf8479e91e0/call/crud)\n",
- "phase": "call_reducer_golden"
- }
- },
- "crud_total_count_one": {
- "pass": false,
- "partial": 0.0,
- "notes": {
- "actual": 0,
- "expected": 1,
- "sql": "SELECT COUNT(*) AS n FROM user"
- }
- }
- },
- "vendor": "openai"
- },
- "t_008_index_lookup": {
- "hash": "475c22b985e81027333ffa0d043dc9cbbb2ed9171f8083e5747c79c5585722d9",
- "task": "t_008_index_lookup",
- "lang": "rust",
- "golden_published": true,
- "model_name": "GPT-5-mini",
- "total_tests": 3,
- "passed_tests": 3,
- "category": "basics",
- "route_api_model": "gpt-5-mini",
- "scorer_details": {
- "index_lookup_projection_parity": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "args": [
- 1
- ],
- "golden_out": "id | name ----+--------- 1 | \"Alice\"",
- "llm_out": "id | name ----+--------- 1 | \"Alice\"",
- "query": "SELECT id, name FROM result WHERE id=1",
- "reducer": "lookup_user_name"
- }
- },
- "schema_parity": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "reducers_diff": null,
- "reducers_equal": true,
- "tables_diff": null,
- "tables_equal": true
- }
- },
- "seed_user_row": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "sql": "INSERT INTO user(id, name, age, active) VALUES (1, 'Alice', 30, true)"
- }
- }
- },
- "vendor": "openai"
- },
- "t_009_init": {
- "hash": "475c22b985e81027333ffa0d043dc9cbbb2ed9171f8083e5747c79c5585722d9",
- "task": "t_009_init",
- "lang": "rust",
- "golden_published": true,
- "model_name": "GPT-5-mini",
- "total_tests": 4,
- "passed_tests": 4,
- "category": "basics",
- "route_api_model": "gpt-5-mini",
- "scorer_details": {
- "init_seed_alice": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "actual": 1,
- "expected": 1,
- "sql": "SELECT COUNT(*) AS n FROM user WHERE id=1 AND name='Alice' AND age=30 AND active=true"
- }
- },
- "init_total_two": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "actual": 2,
- "expected": 2,
- "sql": "SELECT COUNT(*) AS n FROM user"
- }
- },
- "schema_parity": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "reducers_diff": null,
- "reducers_equal": true,
- "tables_diff": null,
- "tables_equal": true
- }
- },
- "init_seed_bob": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "actual": 1,
- "expected": 1,
- "sql": "SELECT COUNT(*) AS n FROM user WHERE id=2 AND name='Bob' AND age=22 AND active=false"
- }
- }
- },
- "vendor": "openai"
- },
- "t_010_connect": {
- "hash": "475c22b985e81027333ffa0d043dc9cbbb2ed9171f8083e5747c79c5585722d9",
- "task": "t_010_connect",
- "lang": "rust",
- "golden_published": true,
- "model_name": "GPT-5-mini",
- "total_tests": 1,
- "passed_tests": 1,
- "category": "basics",
- "route_api_model": "gpt-5-mini",
- "scorer_details": {
- "schema_parity": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "reducers_diff": null,
- "reducers_equal": true,
- "tables_diff": null,
- "tables_equal": true
- }
- }
- },
- "vendor": "openai"
- },
- "t_011_helper_function": {
- "hash": "475c22b985e81027333ffa0d043dc9cbbb2ed9171f8083e5747c79c5585722d9",
- "task": "t_011_helper_function",
- "lang": "rust",
- "golden_published": true,
- "model_name": "GPT-5-mini",
- "total_tests": 3,
- "passed_tests": 3,
- "category": "basics",
- "route_api_model": "gpt-5-mini",
- "scorer_details": {
- "helper_func_sum_abs": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "actual": 1,
- "expected": 1,
- "sql": "SELECT COUNT(*) AS n FROM result WHERE id=1 AND sum=5"
- }
- },
- "schema_parity": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "reducers_diff": null,
- "reducers_equal": true,
- "tables_diff": null,
- "tables_equal": true
- }
- },
- "helper_func_sum_parity": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "args": [
- 1,
- 2,
- 3
- ],
- "golden_out": "id | sum ----+----- 1 | 5",
- "llm_out": "id | sum ----+----- 1 | 5",
- "query": "SELECT id, sum FROM result WHERE id=1",
- "reducer": "compute_sum"
- }
- }
- },
- "vendor": "openai"
- },
- "t_012_spacetime_product_type": {
- "hash": "475c22b985e81027333ffa0d043dc9cbbb2ed9171f8083e5747c79c5585722d9",
- "task": "t_012_spacetime_product_type",
- "lang": "rust",
- "golden_published": true,
- "model_name": "GPT-5-mini",
- "total_tests": 3,
- "passed_tests": 3,
- "category": "schema",
- "route_api_model": "gpt-5-mini",
- "scorer_details": {
- "product_type_row_count": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "actual": 1,
- "expected": 1,
- "sql": "SELECT COUNT(*) AS n FROM result WHERE id=1"
- }
- },
- "schema_parity": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "reducers_diff": null,
- "reducers_equal": true,
- "tables_diff": null,
- "tables_equal": true
- }
- },
- "product_type_row_parity": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "args": [
- 1,
- 2,
- 3
- ],
- "golden_out": "id | value ----+----------------------- 1 | (left = 2, right = 3)",
- "llm_out": "id | value ----+----------------------- 1 | (left = 2, right = 3)",
- "query": "SELECT id, value FROM result WHERE id=1",
- "reducer": "set_score"
- }
- }
- },
- "vendor": "openai"
- },
- "t_013_spacetime_sum_type": {
- "hash": "475c22b985e81027333ffa0d043dc9cbbb2ed9171f8083e5747c79c5585722d9",
- "task": "t_013_spacetime_sum_type",
- "lang": "rust",
- "golden_published": true,
- "model_name": "GPT-5-mini",
- "total_tests": 3,
- "passed_tests": 3,
- "category": "schema",
- "route_api_model": "gpt-5-mini",
- "scorer_details": {
- "schema_parity": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "reducers_diff": null,
- "reducers_equal": true,
- "tables_diff": null,
- "tables_equal": true
- }
- },
- "sum_type_row_parity": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "args": [
- 1,
- 10
- ],
- "golden_out": "id | value ----+--------------- 1 | (circle = 10)",
- "llm_out": "id | value ----+--------------- 1 | (circle = 10)",
- "query": "SELECT id, value FROM result WHERE id=1",
- "reducer": "set_circle"
- }
- },
- "sum_type_row_count": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "actual": 1,
- "expected": 1,
- "sql": "SELECT COUNT(*) AS n FROM result WHERE id=1"
- }
- }
- },
- "vendor": "openai"
- },
- "t_014_elementary_columns": {
- "hash": "475c22b985e81027333ffa0d043dc9cbbb2ed9171f8083e5747c79c5585722d9",
- "task": "t_014_elementary_columns",
- "lang": "rust",
- "golden_published": true,
- "model_name": "GPT-5-mini",
- "total_tests": 3,
- "passed_tests": 3,
- "category": "schema",
- "route_api_model": "gpt-5-mini",
- "scorer_details": {
- "schema_parity": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "reducers_diff": null,
- "reducers_equal": true,
- "tables_diff": null,
- "tables_equal": true
- }
- },
- "elementary_columns_row_parity": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "args": [],
- "golden_out": "id | count | total | price | ratio | active | name ----+-------+------------+-------+-------+--------+--------- 1 | 2 | 3000000000 | 1.5 | 2.25 | true | \"Alice\"",
- "llm_out": "id | count | total | price | ratio | active | name ----+-------+------------+-------+-------+--------+--------- 1 | 2 | 3000000000 | 1.5 | 2.25 | true | \"Alice\"",
- "query": "SELECT id, count, total, price, ratio, active, name FROM primitive WHERE id=1",
- "reducer": "seed"
- }
- },
- "elementary_columns_row_count": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "actual": 1,
- "expected": 1,
- "sql": "SELECT COUNT(*) AS n FROM primitive WHERE id=1"
- }
- }
- },
- "vendor": "openai"
- },
- "t_015_product_type_columns": {
- "hash": "475c22b985e81027333ffa0d043dc9cbbb2ed9171f8083e5747c79c5585722d9",
- "task": "t_015_product_type_columns",
- "lang": "rust",
- "golden_published": true,
- "model_name": "GPT-5-mini",
- "total_tests": 3,
- "passed_tests": 3,
- "category": "schema",
- "route_api_model": "gpt-5-mini",
- "scorer_details": {
- "product_type_columns_row_parity": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "args": [],
- "golden_out": "id | home | work | pos ----+----------------------------------+-----------------------------------+---------------- 1 | (street = \"1 Main\", zip = 11111) | (street = \"2 Broad\", zip = 22222) | (x = 7, y = 9)",
- "llm_out": "id | home | work | pos ----+----------------------------------+-----------------------------------+---------------- 1 | (street = \"1 Main\", zip = 11111) | (street = \"2 Broad\", zip = 22222) | (x = 7, y = 9)",
- "query": "SELECT id, home, work, pos FROM profile WHERE id=1",
- "reducer": "seed"
- }
- },
- "schema_parity": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "reducers_diff": null,
- "reducers_equal": true,
- "tables_diff": null,
- "tables_equal": true
- }
- },
- "product_type_columns_row_count": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "actual": 1,
- "expected": 1,
- "sql": "SELECT COUNT(*) AS n FROM profile WHERE id=1"
- }
- }
- },
- "vendor": "openai"
- },
- "t_016_sum_type_columns": {
- "hash": "475c22b985e81027333ffa0d043dc9cbbb2ed9171f8083e5747c79c5585722d9",
- "task": "t_016_sum_type_columns",
- "lang": "rust",
- "golden_published": true,
- "model_name": "GPT-5-mini",
- "total_tests": 3,
- "passed_tests": 3,
- "category": "schema",
- "route_api_model": "gpt-5-mini",
- "scorer_details": {
- "sum_type_columns_row_parity": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "args": [],
- "golden_out": "id | a | b ----+---------------+--------------------------------------- 1 | (circle = 10) | (rectangle = (width = 4, height = 6))",
- "llm_out": "id | a | b ----+---------------+--------------------------------------- 1 | (circle = 10) | (rectangle = (width = 4, height = 6))",
- "query": "SELECT id, a, b FROM drawing WHERE id=1",
- "reducer": "seed"
- }
- },
- "schema_parity": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "reducers_diff": null,
- "reducers_equal": true,
- "tables_diff": null,
- "tables_equal": true
- }
- },
- "sum_type_columns_row_count": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "actual": 1,
- "expected": 1,
- "sql": "SELECT COUNT(*) AS n FROM drawing WHERE id=1"
- }
- }
- },
- "vendor": "openai"
- },
- "t_017_scheduled_columns": {
- "hash": "475c22b985e81027333ffa0d043dc9cbbb2ed9171f8083e5747c79c5585722d9",
- "task": "t_017_scheduled_columns",
- "lang": "rust",
- "golden_published": true,
- "model_name": "GPT-5-mini",
- "total_tests": 2,
- "passed_tests": 2,
- "category": "schema",
- "route_api_model": "gpt-5-mini",
- "scorer_details": {
- "schema_parity": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "reducers_diff": null,
- "reducers_equal": true,
- "tables_diff": null,
- "tables_equal": true
- }
- },
- "scheduled_seeded_one_row": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "actual": 1,
- "expected": 1,
- "sql": "SELECT COUNT(*) AS n FROM tick_timer WHERE scheduled_id>=0"
- }
- }
- },
- "vendor": "openai"
- },
- "t_018_constraints": {
- "hash": "475c22b985e81027333ffa0d043dc9cbbb2ed9171f8083e5747c79c5585722d9",
- "task": "t_018_constraints",
- "lang": "rust",
- "golden_published": true,
- "model_name": "GPT-5-mini",
- "total_tests": 3,
- "passed_tests": 3,
- "category": "schema",
- "route_api_model": "gpt-5-mini",
- "scorer_details": {
- "schema_parity": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "reducers_diff": null,
- "reducers_equal": true,
- "tables_diff": null,
- "tables_equal": true
- }
- },
- "constraints_row_parity_after_seed": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "args": [],
- "golden_out": "id | email | name ----+-----------------+--------- 1 | \"a@example.com\" | \"Alice\"",
- "llm_out": "id | email | name ----+-----------------+--------- 1 | \"a@example.com\" | \"Alice\"",
- "query": "SELECT id, email, name FROM account WHERE id=1",
- "reducer": "seed"
- }
- },
- "constraints_seed_two_rows": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "actual": 1,
- "expected": 1,
- "sql": "SELECT COUNT(*) AS n FROM account WHERE id=2"
- }
- }
- },
- "vendor": "openai"
- },
- "t_019_many_to_many": {
- "hash": "475c22b985e81027333ffa0d043dc9cbbb2ed9171f8083e5747c79c5585722d9",
- "task": "t_019_many_to_many",
- "lang": "rust",
- "golden_published": true,
- "model_name": "GPT-5-mini",
- "total_tests": 5,
- "passed_tests": 5,
- "category": "schema",
- "route_api_model": "gpt-5-mini",
- "scorer_details": {
- "m2m_has_1_20": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "actual": 1,
- "expected": 1,
- "sql": "SELECT COUNT(*) AS n FROM membership WHERE user_id=1 AND group_id=20"
- }
- },
- "m2m_has_2_20": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "actual": 1,
- "expected": 1,
- "sql": "SELECT COUNT(*) AS n FROM membership WHERE user_id=2 AND group_id=20"
- }
- },
- "schema_parity": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "reducers_diff": null,
- "reducers_equal": true,
- "tables_diff": null,
- "tables_equal": true
- }
- },
- "m2m_has_1_10": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "actual": 1,
- "expected": 1,
- "sql": "SELECT COUNT(*) AS n FROM membership WHERE user_id=1 AND group_id=10"
- }
- },
- "memberships_three_rows": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "actual": 3,
- "expected": 3,
- "sql": "SELECT COUNT(*) AS n FROM membership"
- }
- }
- },
- "vendor": "openai"
- },
- "t_020_ecs": {
- "hash": "475c22b985e81027333ffa0d043dc9cbbb2ed9171f8083e5747c79c5585722d9",
- "task": "t_020_ecs",
- "lang": "rust",
- "golden_published": true,
- "model_name": "GPT-5-mini",
- "total_tests": 5,
- "passed_tests": 5,
- "category": "schema",
- "route_api_model": "gpt-5-mini",
- "scorer_details": {
- "ecs_next_pos_entity2": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "actual": 1,
- "expected": 1,
- "sql": "SELECT COUNT(*) AS n FROM next_position WHERE entity_id=2 AND x=8 AND y=3"
- }
- },
- "ecs_next_pos_entity1": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "actual": 1,
- "expected": 1,
- "sql": "SELECT COUNT(*) AS n FROM next_position WHERE entity_id=1 AND x=1 AND y=0"
- }
- },
- "ecs_seed_position_count": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "actual": 2,
- "expected": 2,
- "sql": "SELECT COUNT(*) AS n FROM position"
- }
- },
- "schema_parity": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "reducers_diff": null,
- "reducers_equal": true,
- "tables_diff": null,
- "tables_equal": true
- }
- },
- "ecs_step_next_position_count": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "actual": 2,
- "expected": 2,
- "sql": "SELECT COUNT(*) AS n FROM next_position"
- }
- }
- },
- "vendor": "openai"
- },
- "t_021_multi_column_index": {
- "hash": "475c22b985e81027333ffa0d043dc9cbbb2ed9171f8083e5747c79c5585722d9",
- "task": "t_021_multi_column_index",
- "lang": "rust",
- "golden_published": true,
- "model_name": "GPT-5-mini",
- "total_tests": 4,
- "passed_tests": 4,
- "category": "schema",
- "route_api_model": "gpt-5-mini",
- "scorer_details": {
- "mcindex_seed_count": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "actual": 3,
- "expected": 3,
- "sql": "SELECT COUNT(*) AS n FROM log"
- }
- },
- "mcindex_lookup_u7_d1": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "actual": 1,
- "expected": 1,
- "sql": "SELECT COUNT(*) AS n FROM log WHERE user_id=7 AND day=1"
- }
- },
- "schema_parity": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "reducers_diff": null,
- "reducers_equal": true,
- "tables_diff": null,
- "tables_equal": true
- }
- },
- "mcindex_lookup_u7_d2": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "actual": 1,
- "expected": 1,
- "sql": "SELECT COUNT(*) AS n FROM log WHERE user_id=7 AND day=2"
- }
- }
- },
- "vendor": "openai"
- }
- }
- },
- {
- "name": "DeepSeek Chat",
- "route_api_model": "deepseek-chat",
- "tasks": {
- "t_000_empty_reducers": {
- "hash": "475c22b985e81027333ffa0d043dc9cbbb2ed9171f8083e5747c79c5585722d9",
- "task": "t_000_empty_reducers",
- "lang": "rust",
- "golden_published": true,
- "model_name": "DeepSeek Chat",
- "total_tests": 1,
- "passed_tests": 1,
- "category": "basics",
- "route_api_model": "deepseek-chat",
- "scorer_details": {
- "schema_parity": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "reducers_diff": null,
- "reducers_equal": true,
- "tables_diff": null,
- "tables_equal": true
- }
- }
- },
- "vendor": "deepseek"
- },
- "t_001_basic_tables": {
- "hash": "475c22b985e81027333ffa0d043dc9cbbb2ed9171f8083e5747c79c5585722d9",
- "task": "t_001_basic_tables",
- "lang": "rust",
- "golden_published": true,
- "model_name": "DeepSeek Chat",
- "total_tests": 1,
- "passed_tests": 1,
- "category": "basics",
- "route_api_model": "deepseek-chat",
- "scorer_details": {
- "schema_parity": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "reducers_diff": null,
- "reducers_equal": true,
- "tables_diff": null,
- "tables_equal": true
- }
- }
- },
- "vendor": "deepseek"
- },
- "t_002_scheduled_table": {
- "hash": "475c22b985e81027333ffa0d043dc9cbbb2ed9171f8083e5747c79c5585722d9",
- "task": "t_002_scheduled_table",
- "lang": "rust",
- "golden_published": true,
- "model_name": "DeepSeek Chat",
- "total_tests": 1,
- "passed_tests": 1,
- "category": "basics",
- "route_api_model": "deepseek-chat",
- "scorer_details": {
- "schema_parity": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "reducers_diff": null,
- "reducers_equal": true,
- "tables_diff": null,
- "tables_equal": true
- }
- }
- },
- "vendor": "deepseek"
- },
- "t_003_struct_in_table": {
- "hash": "475c22b985e81027333ffa0d043dc9cbbb2ed9171f8083e5747c79c5585722d9",
- "task": "t_003_struct_in_table",
- "lang": "rust",
- "golden_published": true,
- "model_name": "DeepSeek Chat",
- "total_tests": 1,
- "passed_tests": 1,
- "category": "basics",
- "route_api_model": "deepseek-chat",
- "scorer_details": {
- "schema_parity": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "reducers_diff": null,
- "reducers_equal": true,
- "tables_diff": null,
- "tables_equal": true
- }
- }
- },
- "vendor": "deepseek"
- },
- "t_004_insert": {
- "hash": "475c22b985e81027333ffa0d043dc9cbbb2ed9171f8083e5747c79c5585722d9",
- "task": "t_004_insert",
- "lang": "rust",
- "golden_published": true,
- "model_name": "DeepSeek Chat",
- "total_tests": 2,
- "passed_tests": 2,
- "category": "basics",
- "route_api_model": "deepseek-chat",
- "scorer_details": {
- "schema_parity": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "reducers_diff": null,
- "reducers_equal": true,
- "tables_diff": null,
- "tables_equal": true
- }
- },
- "data_parity_insert_user": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "args": [
- 1,
- "Alice",
- 30,
- true
- ],
- "golden_out": "id | name | age | active ----+---------+-----+-------- 1 | \"Alice\" | 30 | true",
- "llm_out": "id | name | age | active ----+---------+-----+-------- 1 | \"Alice\" | 30 | true",
- "query": "SELECT id, name, age, active FROM user WHERE id=1",
- "reducer": "insert_user"
- }
- }
- },
- "vendor": "deepseek"
- },
- "t_005_update": {
- "hash": "475c22b985e81027333ffa0d043dc9cbbb2ed9171f8083e5747c79c5585722d9",
- "task": "t_005_update",
- "lang": "rust",
- "golden_published": true,
- "model_name": "DeepSeek Chat",
- "total_tests": 3,
- "passed_tests": 3,
- "category": "basics",
- "route_api_model": "deepseek-chat",
- "scorer_details": {
- "data_parity_update_user": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "args": [
- 1,
- "Alice2",
- 31,
- false
- ],
- "golden_out": "id | name | age | active ----+----------+-----+-------- 1 | \"Alice2\" | 31 | false",
- "llm_out": "id | name | age | active ----+----------+-----+-------- 1 | \"Alice2\" | 31 | false",
- "query": "SELECT id, name, age, active FROM user WHERE id=1",
- "reducer": "update_user"
- }
- },
- "schema_parity": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "reducers_diff": null,
- "reducers_equal": true,
- "tables_diff": null,
- "tables_equal": true
- }
- },
- "seed_users_row": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "sql": "INSERT INTO user(id, name, age, active) VALUES (1, 'Alice', 30, true)"
- }
- }
- },
- "vendor": "deepseek"
- },
- "t_006_delete": {
- "hash": "475c22b985e81027333ffa0d043dc9cbbb2ed9171f8083e5747c79c5585722d9",
- "task": "t_006_delete",
- "lang": "rust",
- "golden_published": true,
- "model_name": "DeepSeek Chat",
- "total_tests": 3,
- "passed_tests": 3,
- "category": "basics",
- "route_api_model": "deepseek-chat",
- "scorer_details": {
- "schema_parity": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "reducers_diff": null,
- "reducers_equal": true,
- "tables_diff": null,
- "tables_equal": true
- }
- },
- "seed_users_row": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "sql": "INSERT INTO user(id, name, age, active) VALUES (1, 'Alice', 30, true)"
- }
- },
- "delete_user_count_zero": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "actual": 0,
- "expected": 0,
- "sql": "SELECT COUNT(*) AS n FROM user WHERE id=1"
- }
- }
- },
- "vendor": "deepseek"
- },
- "t_007_crud": {
- "hash": "475c22b985e81027333ffa0d043dc9cbbb2ed9171f8083e5747c79c5585722d9",
- "task": "t_007_crud",
- "lang": "rust",
- "golden_published": false,
- "model_name": "DeepSeek Chat",
- "total_tests": 4,
- "passed_tests": 0,
- "llm_output": "use spacetimedb::{ReducerContext, Table, TableWithPrimaryKey};\n\n#[spacetimedb::table(accessor = user, public)]\npub struct User {\n #[primary_key]\n id: i32,\n name: String,\n age: i32,\n active: bool,\n}\n\n#[spacetimedb::reducer]\npub fn crud(ctx: &ReducerContext) -> Result<(), String> {\n ctx.db.user().insert(User {\n id: 1,\n name: \"Alice\".to_string(),\n age: 30,\n active: true,\n });\n ctx.db.user().insert(User {\n id: 2,\n name: \"Bob\".to_string(),\n age: 22,\n active: false,\n });\n if let Some(mut user) = ctx.db.user().id().find(&1) {\n user.name = \"Alice2\".to_string();\n user.age = 31;\n user.active = false;\n ctx.db.user().id().update(user);\n }\n ctx.db.user().id().delete(&2);\n Ok(())\n}",
- "category": "basics",
- "route_api_model": "deepseek-chat",
- "scorer_details": {
- "publish_error": {
- "pass": false,
- "partial": 0.0,
- "notes": {
- "error": "spacetime publish failed (exit=1)\n--- stderr ---\n Blocking waiting for file lock on package cache\n Updating crates.io index\n Blocking waiting for file lock on package cache\n Locking 104 packages to latest compatible versions\n Adding generic-array v0.14.7 (available: v0.14.9)\n Blocking waiting for file lock on package cache\n Blocking waiting for file lock on package cache\n Blocking waiting for file lock on package cache\n Compiling proc-macro2 v1.0.106\n Compiling quote v1.0.44\n Compiling unicode-ident v1.0.24\n Compiling version_check v0.9.5\n Compiling typenum v1.19.0\n Compiling autocfg v1.5.0\n Compiling serde_core v1.0.228\n Compiling heck v0.5.0\n Compiling rustversion v1.0.22\n Compiling cfg-if v1.0.4\n Compiling serde v1.0.228\n Compiling either v1.15.0\n Compiling shlex v1.3.0\n Compiling find-msvc-tools v0.1.9\n Compiling itoa v1.0.17\n Compiling nohash-hasher v0.2.0\n Compiling bitflags v2.11.0\n Compiling anyhow v1.0.102\n Compiling zerocopy v0.8.39\n Compiling thiserror v1.0.69\n Compiling ryu v1.0.23\n Compiling heck v0.4.1\n Compiling arrayvec v0.7.6\n Compiling keccak v0.1.6\n Compiling humantime v2.3.0\n Compiling convert_case v0.4.0\n Compiling bytes v1.11.1\n Compiling spacetimedb-lib v2.0.0 (D:\\Development\\ClockworkLabs\\SpacetimeDB\\SpacetimeDBPrivate\\public\\crates\\lib)\n Compiling arrayref v0.3.9\n Compiling getrandom v0.2.17\n Compiling constant_time_eq v0.4.2\n Compiling uuid v1.21.0\n Compiling second-stack v0.3.5\n Compiling num-traits v0.2.19\n Compiling generic-array v0.14.7\n Compiling itertools v0.12.1\n Compiling smallvec v1.15.1\n Compiling zmij v1.0.21\n Compiling bytemuck v1.25.0\n Compiling hex v0.4.3\n Compiling serde_json v1.0.149\n Compiling log v0.4.29\n Compiling cc v1.2.56\n Compiling memchr v2.8.0\n Compiling http v1.4.0\n Compiling scoped-tls v1.0.1\n Compiling rand_core v0.6.4\n Compiling blake3 v1.8.3\n Compiling castaway v0.2.4\n Compiling lean_string v0.5.1\n Compiling approx v0.3.2\n Compiling chrono v0.4.43\n Compiling decorum v0.3.1\n Compiling syn v2.0.117\n Compiling crypto-common v0.1.7\n Compiling block-buffer v0.10.4\n Compiling digest v0.10.7\n Compiling sha3 v0.10.8\n Compiling ethnum v1.5.2\n Compiling ppv-lite86 v0.2.21\n Compiling rand_chacha v0.3.1\n Compiling rand v0.8.5\n Compiling enum-as-inner v0.6.1\n Compiling thiserror-impl v1.0.69\n Compiling derive_more v0.99.20\n Compiling spacetimedb-primitives v2.0.0 (D:\\Development\\ClockworkLabs\\SpacetimeDB\\SpacetimeDBPrivate\\public\\crates\\primitives)\n Compiling spacetimedb-bindings-sys v2.0.0 (D:\\Development\\ClockworkLabs\\SpacetimeDB\\SpacetimeDBPrivate\\public\\crates\\bindings-sys)\n Compiling spacetimedb-bindings-macro v2.0.0 (D:\\Development\\ClockworkLabs\\SpacetimeDB\\SpacetimeDBPrivate\\public\\crates\\bindings-macro)\n Compiling spacetimedb-sats v2.0.0 (D:\\Development\\ClockworkLabs\\SpacetimeDB\\SpacetimeDBPrivate\\public\\crates\\sats)\n Compiling spacetimedb-query-builder v2.0.0 (D:\\Development\\ClockworkLabs\\SpacetimeDB\\SpacetimeDBPrivate\\public\\crates\\query-builder)\n Compiling spacetimedb v2.0.0 (D:\\Development\\ClockworkLabs\\SpacetimeDB\\SpacetimeDBPrivate\\public\\crates\\bindings)\n Compiling spacetime-module v0.1.0 (D:\\Development\\ClockworkLabs\\SpacetimeDB\\SpacetimeDBPrivate\\public\\target\\llm-runs\\basics\\t_007_crud\\rust\\server\\deepseek-chat\\llm)\nerror[E0432]: unresolved import `spacetimedb::TableWithPrimaryKey`\n --> src\\lib.rs:2:42\n |\n2 | use spacetimedb::{ReducerContext, Table, TableWithPrimaryKey};\n | ^^^^^^^^^^^^^^^^^^^ no `TableWithPrimaryKey` in the root\n\nFor more information about this error, try `rustc --explain E0432`.\nerror: could not compile `spacetime-module` (lib) due to 1 previous error\nError: command [\"cargo\", \"build\", \"--config=net.git-fetch-with-cli=true\", \"--target=wasm32-unknown-unknown\", \"--release\", \"--message-format=json-render-diagnostics\"] exited with code 101\n\n--- stdout ---\n",
- "phase": "build_or_publish"
- }
- }
- },
- "vendor": "deepseek"
- },
- "t_008_index_lookup": {
- "hash": "475c22b985e81027333ffa0d043dc9cbbb2ed9171f8083e5747c79c5585722d9",
- "task": "t_008_index_lookup",
- "lang": "rust",
- "golden_published": true,
- "model_name": "DeepSeek Chat",
- "total_tests": 3,
- "passed_tests": 3,
- "category": "basics",
- "route_api_model": "deepseek-chat",
- "scorer_details": {
- "index_lookup_projection_parity": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "args": [
- 1
- ],
- "golden_out": "id | name ----+--------- 1 | \"Alice\"",
- "llm_out": "id | name ----+--------- 1 | \"Alice\"",
- "query": "SELECT id, name FROM result WHERE id=1",
- "reducer": "lookup_user_name"
- }
- },
- "schema_parity": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "reducers_diff": null,
- "reducers_equal": true,
- "tables_diff": null,
- "tables_equal": true
- }
- },
- "seed_user_row": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "sql": "INSERT INTO user(id, name, age, active) VALUES (1, 'Alice', 30, true)"
- }
- }
- },
- "vendor": "deepseek"
- },
- "t_009_init": {
- "hash": "475c22b985e81027333ffa0d043dc9cbbb2ed9171f8083e5747c79c5585722d9",
- "task": "t_009_init",
- "lang": "rust",
- "golden_published": true,
- "model_name": "DeepSeek Chat",
- "total_tests": 4,
- "passed_tests": 4,
- "category": "basics",
- "route_api_model": "deepseek-chat",
- "scorer_details": {
- "init_seed_alice": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "actual": 1,
- "expected": 1,
- "sql": "SELECT COUNT(*) AS n FROM user WHERE id=1 AND name='Alice' AND age=30 AND active=true"
- }
- },
- "init_total_two": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "actual": 2,
- "expected": 2,
- "sql": "SELECT COUNT(*) AS n FROM user"
- }
- },
- "schema_parity": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "reducers_diff": null,
- "reducers_equal": true,
- "tables_diff": null,
- "tables_equal": true
- }
- },
- "init_seed_bob": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "actual": 1,
- "expected": 1,
- "sql": "SELECT COUNT(*) AS n FROM user WHERE id=2 AND name='Bob' AND age=22 AND active=false"
- }
- }
- },
- "vendor": "deepseek"
- },
- "t_010_connect": {
- "hash": "475c22b985e81027333ffa0d043dc9cbbb2ed9171f8083e5747c79c5585722d9",
- "task": "t_010_connect",
- "lang": "rust",
- "golden_published": true,
- "model_name": "DeepSeek Chat",
- "total_tests": 1,
- "passed_tests": 1,
- "category": "basics",
- "route_api_model": "deepseek-chat",
- "scorer_details": {
- "schema_parity": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "reducers_diff": null,
- "reducers_equal": true,
- "tables_diff": null,
- "tables_equal": true
- }
- }
- },
- "vendor": "deepseek"
- },
- "t_011_helper_function": {
- "hash": "475c22b985e81027333ffa0d043dc9cbbb2ed9171f8083e5747c79c5585722d9",
- "task": "t_011_helper_function",
- "lang": "rust",
- "golden_published": true,
- "model_name": "DeepSeek Chat",
- "total_tests": 3,
- "passed_tests": 3,
- "category": "basics",
- "route_api_model": "deepseek-chat",
- "scorer_details": {
- "helper_func_sum_abs": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "actual": 1,
- "expected": 1,
- "sql": "SELECT COUNT(*) AS n FROM result WHERE id=1 AND sum=5"
- }
- },
- "schema_parity": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "reducers_diff": null,
- "reducers_equal": true,
- "tables_diff": null,
- "tables_equal": true
- }
- },
- "helper_func_sum_parity": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "args": [
- 1,
- 2,
- 3
- ],
- "golden_out": "id | sum ----+----- 1 | 5",
- "llm_out": "id | sum ----+----- 1 | 5",
- "query": "SELECT id, sum FROM result WHERE id=1",
- "reducer": "compute_sum"
- }
- }
- },
- "vendor": "deepseek"
- },
- "t_012_spacetime_product_type": {
- "hash": "475c22b985e81027333ffa0d043dc9cbbb2ed9171f8083e5747c79c5585722d9",
- "task": "t_012_spacetime_product_type",
- "lang": "rust",
- "golden_published": true,
- "model_name": "DeepSeek Chat",
- "total_tests": 3,
- "passed_tests": 3,
- "category": "schema",
- "route_api_model": "deepseek-chat",
- "scorer_details": {
- "product_type_row_count": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "actual": 1,
- "expected": 1,
- "sql": "SELECT COUNT(*) AS n FROM result WHERE id=1"
- }
- },
- "schema_parity": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "reducers_diff": null,
- "reducers_equal": true,
- "tables_diff": null,
- "tables_equal": true
- }
- },
- "product_type_row_parity": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "args": [
- 1,
- 2,
- 3
- ],
- "golden_out": "id | value ----+----------------------- 1 | (left = 2, right = 3)",
- "llm_out": "id | value ----+----------------------- 1 | (left = 2, right = 3)",
- "query": "SELECT id, value FROM result WHERE id=1",
- "reducer": "set_score"
- }
- }
- },
- "vendor": "deepseek"
- },
- "t_013_spacetime_sum_type": {
- "hash": "475c22b985e81027333ffa0d043dc9cbbb2ed9171f8083e5747c79c5585722d9",
- "task": "t_013_spacetime_sum_type",
- "lang": "rust",
- "golden_published": true,
- "model_name": "DeepSeek Chat",
- "total_tests": 3,
- "passed_tests": 3,
- "category": "schema",
- "route_api_model": "deepseek-chat",
- "scorer_details": {
- "schema_parity": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "reducers_diff": null,
- "reducers_equal": true,
- "tables_diff": null,
- "tables_equal": true
- }
- },
- "sum_type_row_parity": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "args": [
- 1,
- 10
- ],
- "golden_out": "id | value ----+--------------- 1 | (circle = 10)",
- "llm_out": "id | value ----+--------------- 1 | (circle = 10)",
- "query": "SELECT id, value FROM result WHERE id=1",
- "reducer": "set_circle"
- }
- },
- "sum_type_row_count": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "actual": 1,
- "expected": 1,
- "sql": "SELECT COUNT(*) AS n FROM result WHERE id=1"
- }
- }
- },
- "vendor": "deepseek"
- },
- "t_014_elementary_columns": {
- "hash": "475c22b985e81027333ffa0d043dc9cbbb2ed9171f8083e5747c79c5585722d9",
- "task": "t_014_elementary_columns",
- "lang": "rust",
- "golden_published": true,
- "model_name": "DeepSeek Chat",
- "total_tests": 3,
- "passed_tests": 3,
- "category": "schema",
- "route_api_model": "deepseek-chat",
- "scorer_details": {
- "schema_parity": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "reducers_diff": null,
- "reducers_equal": true,
- "tables_diff": null,
- "tables_equal": true
- }
- },
- "elementary_columns_row_parity": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "args": [],
- "golden_out": "id | count | total | price | ratio | active | name ----+-------+------------+-------+-------+--------+--------- 1 | 2 | 3000000000 | 1.5 | 2.25 | true | \"Alice\"",
- "llm_out": "id | count | total | price | ratio | active | name ----+-------+------------+-------+-------+--------+--------- 1 | 2 | 3000000000 | 1.5 | 2.25 | true | \"Alice\"",
- "query": "SELECT id, count, total, price, ratio, active, name FROM primitive WHERE id=1",
- "reducer": "seed"
- }
- },
- "elementary_columns_row_count": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "actual": 1,
- "expected": 1,
- "sql": "SELECT COUNT(*) AS n FROM primitive WHERE id=1"
- }
- }
- },
- "vendor": "deepseek"
- },
- "t_015_product_type_columns": {
- "hash": "475c22b985e81027333ffa0d043dc9cbbb2ed9171f8083e5747c79c5585722d9",
- "task": "t_015_product_type_columns",
- "lang": "rust",
- "golden_published": true,
- "model_name": "DeepSeek Chat",
- "total_tests": 3,
- "passed_tests": 3,
- "category": "schema",
- "route_api_model": "deepseek-chat",
- "scorer_details": {
- "product_type_columns_row_parity": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "args": [],
- "golden_out": "id | home | work | pos ----+----------------------------------+-----------------------------------+---------------- 1 | (street = \"1 Main\", zip = 11111) | (street = \"2 Broad\", zip = 22222) | (x = 7, y = 9)",
- "llm_out": "id | home | work | pos ----+----------------------------------+-----------------------------------+---------------- 1 | (street = \"1 Main\", zip = 11111) | (street = \"2 Broad\", zip = 22222) | (x = 7, y = 9)",
- "query": "SELECT id, home, work, pos FROM profile WHERE id=1",
- "reducer": "seed"
- }
- },
- "schema_parity": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "reducers_diff": null,
- "reducers_equal": true,
- "tables_diff": null,
- "tables_equal": true
- }
- },
- "product_type_columns_row_count": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "actual": 1,
- "expected": 1,
- "sql": "SELECT COUNT(*) AS n FROM profile WHERE id=1"
- }
- }
- },
- "vendor": "deepseek"
- },
- "t_016_sum_type_columns": {
- "hash": "475c22b985e81027333ffa0d043dc9cbbb2ed9171f8083e5747c79c5585722d9",
- "task": "t_016_sum_type_columns",
- "lang": "rust",
- "golden_published": true,
- "model_name": "DeepSeek Chat",
- "total_tests": 3,
- "passed_tests": 3,
- "category": "schema",
- "route_api_model": "deepseek-chat",
- "scorer_details": {
- "sum_type_columns_row_parity": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "args": [],
- "golden_out": "id | a | b ----+---------------+--------------------------------------- 1 | (circle = 10) | (rectangle = (width = 4, height = 6))",
- "llm_out": "id | a | b ----+---------------+--------------------------------------- 1 | (circle = 10) | (rectangle = (width = 4, height = 6))",
- "query": "SELECT id, a, b FROM drawing WHERE id=1",
- "reducer": "seed"
- }
- },
- "schema_parity": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "reducers_diff": null,
- "reducers_equal": true,
- "tables_diff": null,
- "tables_equal": true
- }
- },
- "sum_type_columns_row_count": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "actual": 1,
- "expected": 1,
- "sql": "SELECT COUNT(*) AS n FROM drawing WHERE id=1"
- }
- }
- },
- "vendor": "deepseek"
- },
- "t_017_scheduled_columns": {
- "hash": "475c22b985e81027333ffa0d043dc9cbbb2ed9171f8083e5747c79c5585722d9",
- "task": "t_017_scheduled_columns",
- "lang": "rust",
- "golden_published": false,
- "model_name": "DeepSeek Chat",
- "total_tests": 2,
- "passed_tests": 0,
- "llm_output": "use spacetimedb::{ReducerContext, ScheduleAt};\n\n#[spacetimedb::table(accessor = tick_timer, scheduled(tick))]\npub struct TickTimer {\n #[primary_key]\n #[auto_inc]\n scheduled_id: u64,\n scheduled_at: ScheduleAt,\n}\n\n#[spacetimedb::reducer]\npub fn tick(_ctx: &ReducerContext, _timer: TickTimer) {}\n\n#[spacetimedb::reducer(init)]\npub fn init(ctx: &ReducerContext) {\n ctx.db.tick_timer().insert(TickTimer {\n scheduled_id: 0,\n scheduled_at: ScheduleAt::Interval(std::time::Duration::from_micros(50_000).into()),\n });\n}",
- "category": "schema",
- "route_api_model": "deepseek-chat",
- "scorer_details": {
- "publish_error": {
- "pass": false,
- "partial": 0.0,
- "notes": {
- "error": "spacetime publish failed (exit=1)\n--- stderr ---\n Updating crates.io index\n Locking 104 packages to latest compatible versions\n Adding generic-array v0.14.7 (available: v0.14.9)\n Compiling proc-macro2 v1.0.106\n Compiling unicode-ident v1.0.24\n Compiling quote v1.0.44\n Compiling version_check v0.9.5\n Compiling typenum v1.19.0\n Compiling autocfg v1.5.0\n Compiling serde_core v1.0.228\n Compiling heck v0.5.0\n Compiling cfg-if v1.0.4\n Compiling rustversion v1.0.22\n Compiling find-msvc-tools v0.1.9\n Compiling either v1.15.0\n Compiling serde v1.0.228\n Compiling shlex v1.3.0\n Compiling itoa v1.0.17\n Compiling bitflags v2.11.0\n Compiling thiserror v1.0.69\n Compiling anyhow v1.0.102\n Compiling nohash-hasher v0.2.0\n Compiling zerocopy v0.8.39\n Compiling arrayvec v0.7.6\n Compiling keccak v0.1.6\n Compiling bytes v1.11.1\n Compiling convert_case v0.4.0\n Compiling ryu v1.0.23\n Compiling heck v0.4.1\n Compiling humantime v2.3.0\n Compiling uuid v1.21.0\n Compiling smallvec v1.15.1\n Compiling itertools v0.12.1\n Compiling getrandom v0.2.17\n Compiling bytemuck v1.25.0\n Compiling spacetimedb-lib v2.0.0 (D:\\Development\\ClockworkLabs\\SpacetimeDB\\SpacetimeDBPrivate\\public\\crates\\lib)\n Compiling constant_time_eq v0.4.2\n Compiling arrayref v0.3.9\n Compiling hex v0.4.3\n Compiling cc v1.2.56\n Compiling second-stack v0.3.5\n Compiling generic-array v0.14.7\n Compiling zmij v1.0.21\n Compiling log v0.4.29\n Compiling serde_json v1.0.149\n Compiling memchr v2.8.0\n Compiling scoped-tls v1.0.1\n Compiling rand_core v0.6.4\n Compiling num-traits v0.2.19\n Compiling http v1.4.0\n Compiling castaway v0.2.4\n Compiling lean_string v0.5.1\n Compiling blake3 v1.8.3\n Compiling syn v2.0.117\n Compiling approx v0.3.2\n Compiling chrono v0.4.43\n Compiling decorum v0.3.1\n Compiling block-buffer v0.10.4\n Compiling crypto-common v0.1.7\n Compiling digest v0.10.7\n Compiling sha3 v0.10.8\n Compiling ethnum v1.5.2\n Compiling ppv-lite86 v0.2.21\n Compiling enum-as-inner v0.6.1\n Compiling thiserror-impl v1.0.69\n Compiling derive_more v0.99.20\n Compiling rand_chacha v0.3.1\n Compiling rand v0.8.5\n Compiling spacetimedb-primitives v2.0.0 (D:\\Development\\ClockworkLabs\\SpacetimeDB\\SpacetimeDBPrivate\\public\\crates\\primitives)\n Compiling spacetimedb-bindings-sys v2.0.0 (D:\\Development\\ClockworkLabs\\SpacetimeDB\\SpacetimeDBPrivate\\public\\crates\\bindings-sys)\n Compiling spacetimedb-bindings-macro v2.0.0 (D:\\Development\\ClockworkLabs\\SpacetimeDB\\SpacetimeDBPrivate\\public\\crates\\bindings-macro)\n Compiling spacetimedb-sats v2.0.0 (D:\\Development\\ClockworkLabs\\SpacetimeDB\\SpacetimeDBPrivate\\public\\crates\\sats)\n Compiling spacetimedb-query-builder v2.0.0 (D:\\Development\\ClockworkLabs\\SpacetimeDB\\SpacetimeDBPrivate\\public\\crates\\query-builder)\n Compiling spacetimedb v2.0.0 (D:\\Development\\ClockworkLabs\\SpacetimeDB\\SpacetimeDBPrivate\\public\\crates\\bindings)\n Compiling spacetime-module v0.1.0 (D:\\Development\\ClockworkLabs\\SpacetimeDB\\SpacetimeDBPrivate\\public\\target\\llm-runs\\schema\\t_017_scheduled_columns\\rust\\server\\deepseek-chat\\llm)\nerror[E0599]: no method named `insert` found for reference `&tick_timer__TableHandle` in the current scope\n --> src\\lib.rs:17:25\n |\n17 | ctx.db.tick_timer().insert(TickTimer {\n | --------------------^^^^^^\n |\n = help: items from traits can only be used if the trait is in scope\nhelp: trait `Table` which provides `insert` is implemented but not in scope; perhaps you want to import it\n |\n 2 + use spacetimedb::Table;\n |\nhelp: there is a method `try_insert` with a similar name\n |\n17 | ctx.db.tick_timer().try_insert(TickTimer {\n | ++++\n\nFor more information about this error, try `rustc --explain E0599`.\nerror: could not compile `spacetime-module` (lib) due to 1 previous error\nError: command [\"cargo\", \"build\", \"--config=net.git-fetch-with-cli=true\", \"--target=wasm32-unknown-unknown\", \"--release\", \"--message-format=json-render-diagnostics\"] exited with code 101\n\n--- stdout ---\n",
- "phase": "build_or_publish"
- }
- }
- },
- "vendor": "deepseek"
- },
- "t_018_constraints": {
- "hash": "475c22b985e81027333ffa0d043dc9cbbb2ed9171f8083e5747c79c5585722d9",
- "task": "t_018_constraints",
- "lang": "rust",
- "golden_published": false,
- "model_name": "DeepSeek Chat",
- "total_tests": 3,
- "passed_tests": 0,
- "llm_output": "use spacetimedb::{ReducerContext, Table};\n\n#[spacetimedb::table(accessor = account, public)]\npub struct Account {\n #[primary_key]\n id: i32,\n #[unique]\n email: String,\n name: String,\n}\n\n#[spacetimedb::index(accessor = by_name, btree(columns = [name]))]\nimpl Account {}\n\n#[spacetimedb::reducer]\npub fn seed(ctx: &ReducerContext) -> Result<(), String> {\n ctx.db.account().try_insert(Account {\n id: 1,\n email: \"a@example.com\".to_string(),\n name: \"Alice\".to_string(),\n })?;\n ctx.db.account().try_insert(Account {\n id: 2,\n email: \"b@example.com\".to_string(),\n name: \"Bob\".to_string(),\n })?;\n Ok(())\n}",
- "category": "schema",
- "route_api_model": "deepseek-chat",
- "scorer_details": {
- "publish_error": {
- "pass": false,
- "partial": 0.0,
- "notes": {
- "error": "spacetime publish failed (exit=1)\n--- stderr ---\n Updating crates.io index\n Locking 104 packages to latest compatible versions\n Adding generic-array v0.14.7 (available: v0.14.9)\n Compiling proc-macro2 v1.0.106\n Compiling quote v1.0.44\n Compiling unicode-ident v1.0.24\n Compiling typenum v1.19.0\n Compiling version_check v0.9.5\n Compiling autocfg v1.5.0\n Compiling serde_core v1.0.228\n Compiling heck v0.5.0\n Compiling cfg-if v1.0.4\n Compiling rustversion v1.0.22\n Compiling either v1.15.0\n Compiling serde v1.0.228\n Compiling find-msvc-tools v0.1.9\n Compiling itoa v1.0.17\n Compiling shlex v1.3.0\n Compiling nohash-hasher v0.2.0\n Compiling bitflags v2.11.0\n Compiling anyhow v1.0.102\n Compiling thiserror v1.0.69\n Compiling zerocopy v0.8.39\n Compiling humantime v2.3.0\n Compiling arrayvec v0.7.6\n Compiling ryu v1.0.23\n Compiling bytes v1.11.1\n Compiling convert_case v0.4.0\n Compiling heck v0.4.1\n Compiling keccak v0.1.6\n Compiling hex v0.4.3\n Compiling arrayref v0.3.9\n Compiling getrandom v0.2.17\n Compiling itertools v0.12.1\n Compiling cc v1.2.56\n Compiling second-stack v0.3.5\n Compiling uuid v1.21.0\n Compiling spacetimedb-lib v2.0.0 (D:\\Development\\ClockworkLabs\\SpacetimeDB\\SpacetimeDBPrivate\\public\\crates\\lib)\n Compiling zmij v1.0.21\n Compiling bytemuck v1.25.0\n Compiling smallvec v1.15.1\n Compiling constant_time_eq v0.4.2\n Compiling generic-array v0.14.7\n Compiling serde_json v1.0.149\n Compiling log v0.4.29\n Compiling memchr v2.8.0\n Compiling scoped-tls v1.0.1\n Compiling num-traits v0.2.19\n Compiling rand_core v0.6.4\n Compiling http v1.4.0\n Compiling blake3 v1.8.3\n Compiling castaway v0.2.4\n Compiling lean_string v0.5.1\n Compiling syn v2.0.117\n Compiling block-buffer v0.10.4\n Compiling crypto-common v0.1.7\n Compiling approx v0.3.2\n Compiling chrono v0.4.43\n Compiling decorum v0.3.1\n Compiling digest v0.10.7\n Compiling sha3 v0.10.8\n Compiling ethnum v1.5.2\n Compiling ppv-lite86 v0.2.21\n Compiling rand_chacha v0.3.1\n Compiling enum-as-inner v0.6.1\n Compiling thiserror-impl v1.0.69\n Compiling derive_more v0.99.20\n Compiling rand v0.8.5\n Compiling spacetimedb-primitives v2.0.0 (D:\\Development\\ClockworkLabs\\SpacetimeDB\\SpacetimeDBPrivate\\public\\crates\\primitives)\n Compiling spacetimedb-bindings-macro v2.0.0 (D:\\Development\\ClockworkLabs\\SpacetimeDB\\SpacetimeDBPrivate\\public\\crates\\bindings-macro)\n Compiling spacetimedb-bindings-sys v2.0.0 (D:\\Development\\ClockworkLabs\\SpacetimeDB\\SpacetimeDBPrivate\\public\\crates\\bindings-sys)\n Compiling spacetimedb-sats v2.0.0 (D:\\Development\\ClockworkLabs\\SpacetimeDB\\SpacetimeDBPrivate\\public\\crates\\sats)\n Compiling spacetimedb-query-builder v2.0.0 (D:\\Development\\ClockworkLabs\\SpacetimeDB\\SpacetimeDBPrivate\\public\\crates\\query-builder)\n Compiling spacetimedb v2.0.0 (D:\\Development\\ClockworkLabs\\SpacetimeDB\\SpacetimeDBPrivate\\public\\crates\\bindings)\n Compiling spacetime-module v0.1.0 (D:\\Development\\ClockworkLabs\\SpacetimeDB\\SpacetimeDBPrivate\\public\\target\\llm-runs\\schema\\t_018_constraints\\rust\\server\\deepseek-chat\\llm)\nerror[E0433]: failed to resolve: could not find `index` in `spacetimedb`\n --> src\\lib.rs:13:16\n |\n13 | #[spacetimedb::index(accessor = by_name, btree(columns = [name]))]\n | ^^^^^ could not find `index` in `spacetimedb`\n\nFor more information about this error, try `rustc --explain E0433`.\nerror: could not compile `spacetime-module` (lib) due to 1 previous error\nError: command [\"cargo\", \"build\", \"--config=net.git-fetch-with-cli=true\", \"--target=wasm32-unknown-unknown\", \"--release\", \"--message-format=json-render-diagnostics\"] exited with code 101\n\n--- stdout ---\n",
- "phase": "build_or_publish"
- }
- }
- },
- "vendor": "deepseek"
- },
- "t_019_many_to_many": {
- "hash": "475c22b985e81027333ffa0d043dc9cbbb2ed9171f8083e5747c79c5585722d9",
- "task": "t_019_many_to_many",
- "lang": "rust",
- "golden_published": true,
- "model_name": "DeepSeek Chat",
- "total_tests": 5,
- "passed_tests": 5,
- "category": "schema",
- "route_api_model": "deepseek-chat",
- "scorer_details": {
- "m2m_has_1_20": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "actual": 1,
- "expected": 1,
- "sql": "SELECT COUNT(*) AS n FROM membership WHERE user_id=1 AND group_id=20"
- }
- },
- "m2m_has_2_20": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "actual": 1,
- "expected": 1,
- "sql": "SELECT COUNT(*) AS n FROM membership WHERE user_id=2 AND group_id=20"
- }
- },
- "schema_parity": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "reducers_diff": null,
- "reducers_equal": true,
- "tables_diff": null,
- "tables_equal": true
- }
- },
- "m2m_has_1_10": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "actual": 1,
- "expected": 1,
- "sql": "SELECT COUNT(*) AS n FROM membership WHERE user_id=1 AND group_id=10"
- }
- },
- "memberships_three_rows": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "actual": 3,
- "expected": 3,
- "sql": "SELECT COUNT(*) AS n FROM membership"
- }
- }
- },
- "vendor": "deepseek"
- },
- "t_020_ecs": {
- "hash": "475c22b985e81027333ffa0d043dc9cbbb2ed9171f8083e5747c79c5585722d9",
- "task": "t_020_ecs",
- "lang": "rust",
- "golden_published": true,
- "model_name": "DeepSeek Chat",
- "total_tests": 5,
- "passed_tests": 2,
- "llm_output": "use spacetimedb::{ReducerContext, Table};\n\n#[spacetimedb::table(accessor = entity, public)]\npub struct Entity {\n #[primary_key]\n id: i32,\n}\n\n#[spacetimedb::table(accessor = position, public)]\npub struct Position {\n #[primary_key]\n entity_id: i32,\n x: i32,\n y: i32,\n}\n\n#[spacetimedb::table(accessor = velocity, public)]\npub struct Velocity {\n #[primary_key]\n entity_id: i32,\n vx: i32,\n vy: i32,\n}\n\n#[spacetimedb::table(accessor = next_position, public)]\npub struct NextPosition {\n #[primary_key]\n entity_id: i32,\n x: i32,\n y: i32,\n}\n\n#[spacetimedb::reducer]\npub fn seed(ctx: &ReducerContext) {\n ctx.db.entity().insert(Entity { id: 1 });\n ctx.db.entity().insert(Entity { id: 2 });\n ctx.db.position().insert(Position { entity_id: 1, x: 0, y: 0 });\n ctx.db.position().insert(Position { entity_id: 2, x: 10, y: 0 });\n ctx.db.velocity().insert(Velocity { entity_id: 1, vx: 1, vy: 0 });\n ctx.db.velocity().insert(Velocity { entity_id: 2, vx: -2, vy: 3 });\n}\n\n#[spacetimedb::reducer]\npub fn step(ctx: &ReducerContext) {\n for position in ctx.db.position().iter() {\n if let Some(velocity) = ctx.db.velocity().entity_id().find(&position.entity_id) {\n let x = position.x + velocity.vx;\n let y = position.y + velocity.vy;\n ctx.db.next_position().entity_id().update(NextPosition {\n entity_id: position.entity_id,\n x,\n y,\n });\n }\n }\n}",
- "category": "schema",
- "route_api_model": "deepseek-chat",
- "scorer_details": {
- "ecs_next_pos_entity2": {
- "pass": false,
- "partial": 0.0,
- "notes": {
- "error": "spacetime call failed:\nWARNING: This command is UNSTABLE and subject to breaking changes.\n\nError: Response text: The instance encountered a fatal error.\n\nCaused by:\n HTTP status server error (530 ) for url (http://127.0.0.1:51837/v1/database/c2003ca2cbca9219edc134b65e4f06ddb6ceeec39e53cc91fab5832436194d5e/call/step)\n",
- "phase": "call_reducer"
- }
- },
- "ecs_next_pos_entity1": {
- "pass": false,
- "partial": 0.0,
- "notes": {
- "error": "spacetime call failed:\nWARNING: This command is UNSTABLE and subject to breaking changes.\n\nError: Response text: The instance encountered a fatal error.\n\nCaused by:\n HTTP status server error (530 ) for url (http://127.0.0.1:51837/v1/database/c2003ca2cbca9219edc134b65e4f06ddb6ceeec39e53cc91fab5832436194d5e/call/step)\n",
- "phase": "call_reducer"
- }
- },
- "ecs_seed_position_count": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "actual": 2,
- "expected": 2,
- "sql": "SELECT COUNT(*) AS n FROM position"
- }
- },
- "schema_parity": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "reducers_diff": null,
- "reducers_equal": true,
- "tables_diff": null,
- "tables_equal": true
- }
- },
- "ecs_step_next_position_count": {
- "pass": false,
- "partial": 0.0,
- "notes": {
- "error": "spacetime call failed:\nWARNING: This command is UNSTABLE and subject to breaking changes.\n\nError: Response text: The instance encountered a fatal error.\n\nCaused by:\n HTTP status server error (530 ) for url (http://127.0.0.1:51837/v1/database/c2003ca2cbca9219edc134b65e4f06ddb6ceeec39e53cc91fab5832436194d5e/call/step)\n",
- "phase": "call_reducer"
- }
- }
- },
- "vendor": "deepseek"
- },
- "t_021_multi_column_index": {
- "hash": "475c22b985e81027333ffa0d043dc9cbbb2ed9171f8083e5747c79c5585722d9",
- "task": "t_021_multi_column_index",
- "lang": "rust",
- "golden_published": true,
- "model_name": "DeepSeek Chat",
- "total_tests": 4,
- "passed_tests": 4,
- "category": "schema",
- "route_api_model": "deepseek-chat",
- "scorer_details": {
- "mcindex_seed_count": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "actual": 3,
- "expected": 3,
- "sql": "SELECT COUNT(*) AS n FROM log"
- }
- },
- "mcindex_lookup_u7_d1": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "actual": 1,
- "expected": 1,
- "sql": "SELECT COUNT(*) AS n FROM log WHERE user_id=7 AND day=1"
- }
- },
- "schema_parity": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "reducers_diff": null,
- "reducers_equal": true,
- "tables_diff": null,
- "tables_equal": true
- }
- },
- "mcindex_lookup_u7_d2": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "actual": 1,
- "expected": 1,
- "sql": "SELECT COUNT(*) AS n FROM log WHERE user_id=7 AND day=2"
- }
- }
- },
- "vendor": "deepseek"
- }
- }
- },
- {
- "name": "DeepSeek Reasoner",
- "route_api_model": "deepseek-reasoner",
- "tasks": {
- "t_000_empty_reducers": {
- "hash": "475c22b985e81027333ffa0d043dc9cbbb2ed9171f8083e5747c79c5585722d9",
- "task": "t_000_empty_reducers",
- "lang": "rust",
- "golden_published": false,
- "model_name": "DeepSeek Reasoner",
- "total_tests": 1,
- "passed_tests": 0,
- "llm_output": "use spacetimedb::reducer;\n\n#[reducer]\npub fn empty_reducer_no_args() {}\n\n#[reducer]\npub fn empty_reducer_with_int(count: i32) {}\n\n#[reducer]\npub fn empty_reducer_with_string(name: String) {}\n\n#[reducer]\npub fn empty_reducer_with_two_args(count: i32, name: String) {}\n\n#[reducer]\npub fn empty_reducer_with_three_args(active: bool, ratio: f32, label: String) {}",
- "category": "basics",
- "route_api_model": "deepseek-reasoner",
- "scorer_details": {
- "publish_error": {
- "pass": false,
- "partial": 0.0,
- "notes": {
- "error": "spacetime publish failed (exit=1)\n--- stderr ---\n Blocking waiting for file lock on package cache\n Updating crates.io index\n Blocking waiting for file lock on package cache\n Locking 104 packages to latest compatible versions\n Adding generic-array v0.14.7 (available: v0.14.9)\n Blocking waiting for file lock on package cache\n Blocking waiting for file lock on package cache\n Compiling proc-macro2 v1.0.106\n Compiling quote v1.0.44\n Compiling unicode-ident v1.0.24\n Compiling version_check v0.9.5\n Compiling typenum v1.19.0\n Compiling autocfg v1.5.0\n Compiling heck v0.5.0\n Compiling serde_core v1.0.228\n Compiling rustversion v1.0.22\n Compiling cfg-if v1.0.4\n Compiling find-msvc-tools v0.1.9\n Compiling either v1.15.0\n Compiling itoa v1.0.17\n Compiling serde v1.0.228\n Compiling shlex v1.3.0\n Compiling thiserror v1.0.69\n Compiling anyhow v1.0.102\n Compiling nohash-hasher v0.2.0\n Compiling bitflags v2.11.0\n Compiling zerocopy v0.8.39\n Compiling heck v0.4.1\n Compiling arrayvec v0.7.6\n Compiling humantime v2.3.0\n Compiling ryu v1.0.23\n Compiling convert_case v0.4.0\n Compiling keccak v0.1.6\n Compiling bytes v1.11.1\n Compiling uuid v1.21.0\n Compiling constant_time_eq v0.4.2\n Compiling getrandom v0.2.17\n Compiling zmij v1.0.21\n Compiling cc v1.2.56\n Compiling itertools v0.12.1\n Compiling second-stack v0.3.5\n Compiling spacetimedb-lib v2.0.0 (D:\\Development\\ClockworkLabs\\SpacetimeDB\\SpacetimeDBPrivate\\public\\crates\\lib)\n Compiling smallvec v1.15.1\n Compiling arrayref v0.3.9\n Compiling bytemuck v1.25.0\n Compiling hex v0.4.3\n Compiling generic-array v0.14.7\n Compiling num-traits v0.2.19\n Compiling rand_core v0.6.4\n Compiling serde_json v1.0.149\n Compiling log v0.4.29\n Compiling memchr v2.8.0\n Compiling scoped-tls v1.0.1\n Compiling http v1.4.0\n Compiling blake3 v1.8.3\n Compiling castaway v0.2.4\n Compiling lean_string v0.5.1\n Compiling approx v0.3.2\n Compiling chrono v0.4.43\n Compiling syn v2.0.117\n Compiling block-buffer v0.10.4\n Compiling crypto-common v0.1.7\n Compiling decorum v0.3.1\n Compiling digest v0.10.7\n Compiling sha3 v0.10.8\n Compiling ethnum v1.5.2\n Compiling ppv-lite86 v0.2.21\n Compiling enum-as-inner v0.6.1\n Compiling thiserror-impl v1.0.69\n Compiling derive_more v0.99.20\n Compiling rand_chacha v0.3.1\n Compiling rand v0.8.5\n Compiling spacetimedb-primitives v2.0.0 (D:\\Development\\ClockworkLabs\\SpacetimeDB\\SpacetimeDBPrivate\\public\\crates\\primitives)\n Compiling spacetimedb-bindings-macro v2.0.0 (D:\\Development\\ClockworkLabs\\SpacetimeDB\\SpacetimeDBPrivate\\public\\crates\\bindings-macro)\n Compiling spacetimedb-bindings-sys v2.0.0 (D:\\Development\\ClockworkLabs\\SpacetimeDB\\SpacetimeDBPrivate\\public\\crates\\bindings-sys)\n Compiling spacetimedb-sats v2.0.0 (D:\\Development\\ClockworkLabs\\SpacetimeDB\\SpacetimeDBPrivate\\public\\crates\\sats)\n Compiling spacetimedb-query-builder v2.0.0 (D:\\Development\\ClockworkLabs\\SpacetimeDB\\SpacetimeDBPrivate\\public\\crates\\query-builder)\n Compiling spacetimedb v2.0.0 (D:\\Development\\ClockworkLabs\\SpacetimeDB\\SpacetimeDBPrivate\\public\\crates\\bindings)\n Compiling spacetime-module v0.1.0 (D:\\Development\\ClockworkLabs\\SpacetimeDB\\SpacetimeDBPrivate\\public\\target\\llm-runs\\basics\\t_000_empty_reducers\\rust\\server\\deepseek-reasoner\\llm)\nerror[E0277]: invalid reducer signature\n --> src\\lib.rs:5:8\n |\n 4 | #[reducer]\n | ---------- required by a bound introduced by this call\n 5 | pub fn empty_reducer_no_args() {}\n | ^^^^^^^^^^^^^^^^^^^^^ this reducer signature is not valid\n |\n = help: the trait `Reducer<'_, _>` is not implemented for fn item `fn() {empty_reducer_no_args}`\n = note: \n = note: reducer signatures must match the following pattern:\n = note: `Fn(&ReducerContext, [T1, ...]) [-> Result<(), impl Display>]`\n = note: where each `Ti` type implements `SpacetimeType`.\n = note: \nnote: required by a bound in `register_reducer`\n --> D:\\Development\\ClockworkLabs\\SpacetimeDB\\SpacetimeDBPrivate\\public\\crates\\bindings\\src\\rt.rs:785:81\n |\n785 | pub fn register_reducer<'a, A: Args<'a>, I: FnInfo>(_: impl Reducer<'a, A>) {\n | ^^^^^^^^^^^^^^ required by this bound in `register_reducer`\n\nerror[E0277]: invalid reducer signature\n --> src\\lib.rs:5:8\n |\n 4 | #[reducer]\n | ---------- required by a bound introduced by this call\n 5 | pub fn empty_reducer_no_args() {}\n | ^^^^^^^^^^^^^^^^^^^^^ this reducer signature is not valid\n |\n = help: the trait `Reducer<'_, _>` is not implemented for fn item `fn() {empty_reducer_no_args}`\n = note: \n = note: reducer signatures must match the following pattern:\n = note: `Fn(&ReducerContext, [T1, ...]) [-> Result<(), impl Display>]`\n = note: where each `Ti` type implements `SpacetimeType`.\n = note: \nnote: required by a bound in `invoke_reducer`\n --> D:\\Development\\ClockworkLabs\\SpacetimeDB\\SpacetimeDBPrivate\\public\\crates\\bindings\\src\\rt.rs:48:19\n |\n47 | pub fn invoke_reducer<'a, A: Args<'a>>(\n | -------------- required by a bound in this function\n48 | reducer: impl Reducer<'a, A>,\n | ^^^^^^^^^^^^^^ required by this bound in `invoke_reducer`\n\nerror[E0277]: invalid reducer signature\n --> src\\lib.rs:8:8\n |\n 7 | #[reducer]\n | ---------- required by a bound introduced by this call\n 8 | pub fn empty_reducer_with_int(count: i32) {}\n | ^^^^^^^^^^^^^^^^^^^^^^ this reducer signature is not valid\n |\n = help: the trait `Reducer<'_, _>` is not implemented for fn item `fn(i32) {empty_reducer_with_int}`\n = note: \n = note: reducer signatures must match the following pattern:\n = note: `Fn(&ReducerContext, [T1, ...]) [-> Result<(), impl Display>]`\n = note: where each `Ti` type implements `SpacetimeType`.\n = note: \nnote: required by a bound in `register_reducer`\n --> D:\\Development\\ClockworkLabs\\SpacetimeDB\\SpacetimeDBPrivate\\public\\crates\\bindings\\src\\rt.rs:785:81\n |\n785 | pub fn register_reducer<'a, A: Args<'a>, I: FnInfo>(_: impl Reducer<'a, A>) {\n | ^^^^^^^^^^^^^^ required by this bound in `register_reducer`\n\nerror[E0277]: the first argument of a reducer must be `&ReducerContext`\n --> src\\lib.rs:8:38\n |\n 8 | pub fn empty_reducer_with_int(count: i32) {}\n | ^^^ first argument must be `&ReducerContext`\n |\n = help: the trait `ReducerContextArg` is not implemented for `i32`\nhelp: the trait `ReducerContextArg` is implemented for `&ReducerContext`\n --> D:\\Development\\ClockworkLabs\\SpacetimeDB\\SpacetimeDBPrivate\\public\\crates\\bindings\\src\\rt.rs:249:1\n |\n249 | impl ReducerContextArg for &ReducerContext {}\n | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n\nerror[E0277]: invalid reducer signature\n --> src\\lib.rs:8:8\n |\n 7 | #[reducer]\n | ---------- required by a bound introduced by this call\n 8 | pub fn empty_reducer_with_int(count: i32) {}\n | ^^^^^^^^^^^^^^^^^^^^^^ this reducer signature is not valid\n |\n = help: the trait `Reducer<'_, _>` is not implemented for fn item `fn(i32) {empty_reducer_with_int}`\n = note: \n = note: reducer signatures must match the following pattern:\n = note: `Fn(&ReducerContext, [T1, ...]) [-> Result<(), impl Display>]`\n = note: where each `Ti` type implements `SpacetimeType`.\n = note: \nnote: required by a bound in `invoke_reducer`\n --> D:\\Development\\ClockworkLabs\\SpacetimeDB\\SpacetimeDBPrivate\\public\\crates\\bindings\\src\\rt.rs:48:19\n |\n47 | pub fn invoke_reducer<'a, A: Args<'a>>(\n | -------------- required by a bound in this function\n48 | reducer: impl Reducer<'a, A>,\n | ^^^^^^^^^^^^^^ required by this bound in `invoke_reducer`\n\nerror[E0277]: invalid reducer signature\n --> src\\lib.rs:11:8\n |\n 10 | #[reducer]\n | ---------- required by a bound introduced by this call\n 11 | pub fn empty_reducer_with_string(name: String) {}\n | ^^^^^^^^^^^^^^^^^^^^^^^^^ this reducer signature is not valid\n |\n = help: the trait `Reducer<'_, _>` is not implemented for fn item `fn(std::string::String) {empty_reducer_with_string}`\n = note: \n = note: reducer signatures must match the following pattern:\n = note: `Fn(&ReducerContext, [T1, ...]) [-> Result<(), impl Display>]`\n = note: where each `Ti` type implements `SpacetimeType`.\n = note: \nnote: required by a bound in `register_reducer`\n --> D:\\Development\\ClockworkLabs\\SpacetimeDB\\SpacetimeDBPrivate\\public\\crates\\bindings\\src\\rt.rs:785:81\n |\n785 | pub fn register_reducer<'a, A: Args<'a>, I: FnInfo>(_: impl Reducer<'a, A>) {\n | ^^^^^^^^^^^^^^ required by this bound in `register_reducer`\n\nerror[E0277]: the first argument of a reducer must be `&ReducerContext`\n --> src\\lib.rs:11:40\n |\n 11 | pub fn empty_reducer_with_string(name: String) {}\n | ^^^^^^ first argument must be `&ReducerContext`\n |\n = help: the trait `ReducerContextArg` is not implemented for `std::string::String`\nhelp: the trait `ReducerContextArg` is implemented for `&ReducerContext`\n --> D:\\Development\\ClockworkLabs\\SpacetimeDB\\SpacetimeDBPrivate\\public\\crates\\bindings\\src\\rt.rs:249:1\n |\n249 | impl ReducerContextArg for &ReducerContext {}\n | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n\nerror[E0277]: invalid reducer signature\n --> src\\lib.rs:11:8\n |\n10 | #[reducer]\n | ---------- required by a bound introduced by this call\n11 | pub fn empty_reducer_with_string(name: String) {}\n | ^^^^^^^^^^^^^^^^^^^^^^^^^ this reducer signature is not valid\n |\n = help: the trait `Reducer<'_, _>` is not implemented for fn item `fn(std::string::String) {empty_reducer_with_string}`\n = note: \n = note: reducer signatures must match the following pattern:\n = note: `Fn(&ReducerContext, [T1, ...]) [-> Result<(), impl Display>]`\n = note: where each `Ti` type implements `SpacetimeType`.\n = note: \nnote: required by a bound in `invoke_reducer`\n --> D:\\Development\\ClockworkLabs\\SpacetimeDB\\SpacetimeDBPrivate\\public\\crates\\bindings\\src\\rt.rs:48:19\n |\n47 | pub fn invoke_reducer<'a, A: Args<'a>>(\n | -------------- required by a bound in this function\n48 | reducer: impl Reducer<'a, A>,\n | ^^^^^^^^^^^^^^ required by this bound in `invoke_reducer`\n\nerror[E0277]: invalid reducer signature\n --> src\\lib.rs:14:8\n |\n 13 | #[reducer]\n | ---------- required by a bound introduced by this call\n 14 | pub fn empty_reducer_with_two_args(count: i32, name: String) {}\n | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ this reducer signature is not valid\n |\n = help: the trait `Reducer<'_, _>` is not implemented for fn item `fn(i32, std::string::String) {empty_reducer_with_two_args}`\n = note: \n = note: reducer signatures must match the following pattern:\n = note: `Fn(&ReducerContext, [T1, ...]) [-> Result<(), impl Display>]`\n = note: where each `Ti` type implements `SpacetimeType`.\n = note: \nnote: required by a bound in `register_reducer`\n --> D:\\Development\\ClockworkLabs\\SpacetimeDB\\SpacetimeDBPrivate\\public\\crates\\bindings\\src\\rt.rs:785:81\n |\n785 | pub fn register_reducer<'a, A: Args<'a>, I: FnInfo>(_: impl Reducer<'a, A>) {\n | ^^^^^^^^^^^^^^ required by this bound in `register_reducer`\n\nerror[E0277]: the first argument of a reducer must be `&ReducerContext`\n --> src\\lib.rs:14:43\n |\n 14 | pub fn empty_reducer_with_two_args(count: i32, name: String) {}\n | ^^^ first argument must be `&ReducerContext`\n |\n = help: the trait `ReducerContextArg` is not implemented for `i32`\nhelp: the trait `ReducerContextArg` is implemented for `&ReducerContext`\n --> D:\\Development\\ClockworkLabs\\SpacetimeDB\\SpacetimeDBPrivate\\public\\crates\\bindings\\src\\rt.rs:249:1\n |\n249 | impl ReducerContextArg for &ReducerContext {}\n | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n\nerror[E0277]: invalid reducer signature\n --> src\\lib.rs:14:8\n |\n13 | #[reducer]\n | ---------- required by a bound introduced by this call\n14 | pub fn empty_reducer_with_two_args(count: i32, name: String) {}\n | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ this reducer signature is not valid\n |\n = help: the trait `Reducer<'_, _>` is not implemented for fn item `fn(i32, std::string::String) {empty_reducer_with_two_args}`\n = note: \n = note: reducer signatures must match the following pattern:\n = note: `Fn(&ReducerContext, [T1, ...]) [-> Result<(), impl Display>]`\n = note: where each `Ti` type implements `SpacetimeType`.\n = note: \nnote: required by a bound in `invoke_reducer`\n --> D:\\Development\\ClockworkLabs\\SpacetimeDB\\SpacetimeDBPrivate\\public\\crates\\bindings\\src\\rt.rs:48:19\n |\n47 | pub fn invoke_reducer<'a, A: Args<'a>>(\n | -------------- required by a bound in this function\n48 | reducer: impl Reducer<'a, A>,\n | ^^^^^^^^^^^^^^ required by this bound in `invoke_reducer`\n\nerror[E0277]: invalid reducer signature\n --> src\\lib.rs:17:8\n |\n 16 | #[reducer]\n | ---------- required by a bound introduced by this call\n 17 | pub fn empty_reducer_with_three_args(active: bool, ratio: f32, label: String) {}\n | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ this reducer signature is not valid\n |\n = help: the trait `Reducer<'_, _>` is not implemented for fn item `fn(bool, f32, std::string::String) {empty_reducer_with_three_args}`\n = note: \n = note: reducer signatures must match the following pattern:\n = note: `Fn(&ReducerContext, [T1, ...]) [-> Result<(), impl Display>]`\n = note: where each `Ti` type implements `SpacetimeType`.\n = note: \nnote: required by a bound in `register_reducer`\n --> D:\\Development\\ClockworkLabs\\SpacetimeDB\\SpacetimeDBPrivate\\public\\crates\\bindings\\src\\rt.rs:785:81\n |\n785 | pub fn register_reducer<'a, A: Args<'a>, I: FnInfo>(_: impl Reducer<'a, A>) {\n | ^^^^^^^^^^^^^^ required by this bound in `register_reducer`\n\nerror[E0277]: the first argument of a reducer must be `&ReducerContext`\n --> src\\lib.rs:17:46\n |\n 17 | pub fn empty_reducer_with_three_args(active: bool, ratio: f32, label: String) {}\n | ^^^^ first argument must be `&ReducerContext`\n |\n = help: the trait `ReducerContextArg` is not implemented for `bool`\nhelp: the trait `ReducerContextArg` is implemented for `&ReducerContext`\n --> D:\\Development\\ClockworkLabs\\SpacetimeDB\\SpacetimeDBPrivate\\public\\crates\\bindings\\src\\rt.rs:249:1\n |\n249 | impl ReducerContextArg for &ReducerContext {}\n | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n\nerror[E0277]: invalid reducer signature\n --> src\\lib.rs:17:8\n |\n16 | #[reducer]\n | ---------- required by a bound introduced by this call\n17 | pub fn empty_reducer_with_three_args(active: bool, ratio: f32, label: String) {}\n | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ this reducer signature is not valid\n |\n = help: the trait `Reducer<'_, _>` is not implemented for fn item `fn(bool, f32, std::string::String) {empty_reducer_with_three_args}`\n = note: \n = note: reducer signatures must match the following pattern:\n = note: `Fn(&ReducerContext, [T1, ...]) [-> Result<(), impl Display>]`\n = note: where each `Ti` type implements `SpacetimeType`.\n = note: \nnote: required by a bound in `invoke_reducer`\n --> D:\\Development\\ClockworkLabs\\SpacetimeDB\\SpacetimeDBPrivate\\public\\crates\\bindings\\src\\rt.rs:48:19\n |\n47 | pub fn invoke_reducer<'a, A: Args<'a>>(\n | -------------- required by a bound in this function\n48 | reducer: impl Reducer<'a, A>,\n | ^^^^^^^^^^^^^^ required by this bound in `invoke_reducer`\n\nwarning: unused variable: `count`\n --> src\\lib.rs:8:31\n |\n8 | pub fn empty_reducer_with_int(count: i32) {}\n | ^^^^^ help: if this is intentional, prefix it with an underscore: `_count`\n |\n = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default\n\nwarning: unused variable: `name`\n --> src\\lib.rs:11:34\n |\n11 | pub fn empty_reducer_with_string(name: String) {}\n | ^^^^ help: if this is intentional, prefix it with an underscore: `_name`\n\nwarning: unused variable: `count`\n --> src\\lib.rs:14:36\n |\n14 | pub fn empty_reducer_with_two_args(count: i32, name: String) {}\n | ^^^^^ help: if this is intentional, prefix it with an underscore: `_count`\n\nwarning: unused variable: `name`\n --> src\\lib.rs:14:48\n |\n14 | pub fn empty_reducer_with_two_args(count: i32, name: String) {}\n | ^^^^ help: if this is intentional, prefix it with an underscore: `_name`\n\nwarning: unused variable: `active`\n --> src\\lib.rs:17:38\n |\n17 | pub fn empty_reducer_with_three_args(active: bool, ratio: f32, label: String) {}\n | ^^^^^^ help: if this is intentional, prefix it with an underscore: `_active`\n\nwarning: unused variable: `ratio`\n --> src\\lib.rs:17:52\n |\n17 | pub fn empty_reducer_with_three_args(active: bool, ratio: f32, label: String) {}\n | ^^^^^ help: if this is intentional, prefix it with an underscore: `_ratio`\n\nwarning: unused variable: `label`\n --> src\\lib.rs:17:64\n |\n17 | pub fn empty_reducer_with_three_args(active: bool, ratio: f32, label: String) {}\n | ^^^^^ help: if this is intentional, prefix it with an underscore: `_label`\n\nFor more information about this error, try `rustc --explain E0277`.\nwarning: `spacetime-module` (lib) generated 7 warnings\nerror: could not compile `spacetime-module` (lib) due to 14 previous errors; 7 warnings emitted\nError: command [\"cargo\", \"build\", \"--config=net.git-fetch-with-cli=true\", \"--target=wasm32-unknown-unknown\", \"--release\", \"--message-format=json-render-diagnostics\"] exited with code 101\n\n--- stdout ---\n",
- "phase": "build_or_publish"
- }
- }
- },
- "vendor": "deepseek"
- },
- "t_001_basic_tables": {
- "hash": "475c22b985e81027333ffa0d043dc9cbbb2ed9171f8083e5747c79c5585722d9",
- "task": "t_001_basic_tables",
- "lang": "rust",
- "golden_published": false,
- "model_name": "DeepSeek Reasoner",
- "total_tests": 1,
- "passed_tests": 0,
- "llm_output": "use spacetimedb::*;\n\n#[spacetimedb::table(name = \"user\", public)]\npub struct User {\n #[primary_key]\n pub id: i32,\n pub name: String,\n pub age: i32,\n pub active: bool,\n}\n\n#[spacetimedb::table(name = \"product\", public)]\npub struct Product {\n #[primary_key]\n pub id: i32,\n pub title: String,\n pub price: f32,\n pub in_stock: bool,\n}\n\n#[spacetimedb::table(name = \"note\", public)]\npub struct Note {\n #[primary_key]\n pub id: i32,\n pub body: String,\n pub rating: i64,\n pub pinned: bool,\n}",
- "category": "basics",
- "route_api_model": "deepseek-reasoner",
- "scorer_details": {
- "publish_error": {
- "pass": false,
- "partial": 0.0,
- "notes": {
- "error": "spacetime publish failed (exit=1)\n--- stderr ---\n Updating crates.io index\n Locking 104 packages to latest compatible versions\n Adding generic-array v0.14.7 (available: v0.14.9)\n Compiling proc-macro2 v1.0.106\n Compiling quote v1.0.44\n Compiling unicode-ident v1.0.24\n Compiling version_check v0.9.5\n Compiling typenum v1.19.0\n Compiling autocfg v1.5.0\n Compiling heck v0.5.0\n Compiling serde_core v1.0.228\n Compiling cfg-if v1.0.4\n Compiling rustversion v1.0.22\n Compiling either v1.15.0\n Compiling itoa v1.0.17\n Compiling find-msvc-tools v0.1.9\n Compiling shlex v1.3.0\n Compiling serde v1.0.228\n Compiling nohash-hasher v0.2.0\n Compiling bitflags v2.11.0\n Compiling thiserror v1.0.69\n Compiling anyhow v1.0.102\n Compiling zerocopy v0.8.39\n Compiling ryu v1.0.23\n Compiling keccak v0.1.6\n Compiling bytes v1.11.1\n Compiling humantime v2.3.0\n Compiling convert_case v0.4.0\n Compiling heck v0.4.1\n Compiling arrayvec v0.7.6\n Compiling hex v0.4.3\n Compiling zmij v1.0.21\n Compiling getrandom v0.2.17\n Compiling smallvec v1.15.1\n Compiling uuid v1.21.0\n Compiling itertools v0.12.1\n Compiling arrayref v0.3.9\n Compiling constant_time_eq v0.4.2\n Compiling spacetimedb-lib v2.0.0 (D:\\Development\\ClockworkLabs\\SpacetimeDB\\SpacetimeDBPrivate\\public\\crates\\lib)\n Compiling generic-array v0.14.7\n Compiling second-stack v0.3.5\n Compiling bytemuck v1.25.0\n Compiling rand_core v0.6.4\n Compiling serde_json v1.0.149\n Compiling log v0.4.29\n Compiling memchr v2.8.0\n Compiling scoped-tls v1.0.1\n Compiling num-traits v0.2.19\n Compiling cc v1.2.56\n Compiling http v1.4.0\n Compiling castaway v0.2.4\n Compiling lean_string v0.5.1\n Compiling syn v2.0.117\n Compiling blake3 v1.8.3\n Compiling block-buffer v0.10.4\n Compiling crypto-common v0.1.7\n Compiling approx v0.3.2\n Compiling chrono v0.4.43\n Compiling digest v0.10.7\n Compiling decorum v0.3.1\n Compiling sha3 v0.10.8\n Compiling ethnum v1.5.2\n Compiling enum-as-inner v0.6.1\n Compiling thiserror-impl v1.0.69\n Compiling derive_more v0.99.20\n Compiling ppv-lite86 v0.2.21\n Compiling rand_chacha v0.3.1\n Compiling rand v0.8.5\n Compiling spacetimedb-primitives v2.0.0 (D:\\Development\\ClockworkLabs\\SpacetimeDB\\SpacetimeDBPrivate\\public\\crates\\primitives)\n Compiling spacetimedb-bindings-sys v2.0.0 (D:\\Development\\ClockworkLabs\\SpacetimeDB\\SpacetimeDBPrivate\\public\\crates\\bindings-sys)\n Compiling spacetimedb-bindings-macro v2.0.0 (D:\\Development\\ClockworkLabs\\SpacetimeDB\\SpacetimeDBPrivate\\public\\crates\\bindings-macro)\n Compiling spacetimedb-sats v2.0.0 (D:\\Development\\ClockworkLabs\\SpacetimeDB\\SpacetimeDBPrivate\\public\\crates\\sats)\n Compiling spacetimedb-query-builder v2.0.0 (D:\\Development\\ClockworkLabs\\SpacetimeDB\\SpacetimeDBPrivate\\public\\crates\\query-builder)\n Compiling spacetimedb v2.0.0 (D:\\Development\\ClockworkLabs\\SpacetimeDB\\SpacetimeDBPrivate\\public\\crates\\bindings)\n Compiling spacetime-module v0.1.0 (D:\\Development\\ClockworkLabs\\SpacetimeDB\\SpacetimeDBPrivate\\public\\target\\llm-runs\\basics\\t_001_basic_tables\\rust\\server\\deepseek-reasoner\\llm)\nerror: Expected an `accessor` in table definition, but got only a `name`.\n Did you mean to specify `accessor` instead?\n `accessor` is required, but `name` is optional.\n \n If you're migrating from SpacetimeDB 1.*, replace `name = \"user\"` with `accessor = user`\n --> src\\lib.rs:4:29\n |\n4 | #[spacetimedb::table(name = \"user\", public)]\n | ^^^^^^\n\nerror: Expected an `accessor` in table definition, but got only a `name`.\n Did you mean to specify `accessor` instead?\n `accessor` is required, but `name` is optional.\n \n If you're migrating from SpacetimeDB 1.*, replace `name = \"product\"` with `accessor = product`\n --> src\\lib.rs:13:29\n |\n13 | #[spacetimedb::table(name = \"product\", public)]\n | ^^^^^^^^^\n\nerror: Expected an `accessor` in table definition, but got only a `name`.\n Did you mean to specify `accessor` instead?\n `accessor` is required, but `name` is optional.\n \n If you're migrating from SpacetimeDB 1.*, replace `name = \"note\"` with `accessor = note`\n --> src\\lib.rs:22:29\n |\n22 | #[spacetimedb::table(name = \"note\", public)]\n | ^^^^^^\n\nwarning: unused import: `spacetimedb::*`\n --> src\\lib.rs:2:5\n |\n2 | use spacetimedb::*;\n | ^^^^^^^^^^^^^^\n |\n = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default\n\nwarning: `spacetime-module` (lib) generated 1 warning\nerror: could not compile `spacetime-module` (lib) due to 3 previous errors; 1 warning emitted\nError: command [\"cargo\", \"build\", \"--config=net.git-fetch-with-cli=true\", \"--target=wasm32-unknown-unknown\", \"--release\", \"--message-format=json-render-diagnostics\"] exited with code 101\n\n--- stdout ---\n",
- "phase": "build_or_publish"
- }
- }
- },
- "vendor": "deepseek"
- },
- "t_002_scheduled_table": {
- "hash": "475c22b985e81027333ffa0d043dc9cbbb2ed9171f8083e5747c79c5585722d9",
- "task": "t_002_scheduled_table",
- "lang": "rust",
- "golden_published": false,
- "model_name": "DeepSeek Reasoner",
- "total_tests": 1,
- "passed_tests": 0,
- "llm_output": "use spacetimedb::{ReducerContext, ScheduleAt};\nuse std::time::Duration;\n\n#[spacetimedb::table(accessor = tick_timer, scheduled(tick))]\npub struct TickTimer {\n #[primary_key]\n #[auto_inc]\n scheduled_id: u64,\n scheduled_at: ScheduleAt,\n}\n\n#[spacetimedb::reducer]\npub fn tick(_ctx: &ReducerContext, _timer: TickTimer) -> Result<(), String> {\n Ok(())\n}\n\n#[spacetimedb::reducer(init)]\npub fn init(ctx: &ReducerContext) -> Result<(), String> {\n ctx.db.tick_timer().try_insert(TickTimer {\n scheduled_id: 0,\n scheduled_at: ScheduleAt::Interval(Duration::from_micros(50_000).into()),\n })?;\n Ok(())\n}",
- "category": "basics",
- "route_api_model": "deepseek-reasoner",
- "scorer_details": {
- "publish_error": {
- "pass": false,
- "partial": 0.0,
- "notes": {
- "error": "spacetime publish failed (exit=1)\n--- stderr ---\n Updating crates.io index\n Locking 104 packages to latest compatible versions\n Adding generic-array v0.14.7 (available: v0.14.9)\n Compiling proc-macro2 v1.0.106\n Compiling unicode-ident v1.0.24\n Compiling quote v1.0.44\n Compiling version_check v0.9.5\n Compiling typenum v1.19.0\n Compiling autocfg v1.5.0\n Compiling serde_core v1.0.228\n Compiling heck v0.5.0\n Compiling rustversion v1.0.22\n Compiling cfg-if v1.0.4\n Compiling either v1.15.0\n Compiling shlex v1.3.0\n Compiling serde v1.0.228\n Compiling itoa v1.0.17\n Compiling find-msvc-tools v0.1.9\n Compiling anyhow v1.0.102\n Compiling nohash-hasher v0.2.0\n Compiling bitflags v2.11.0\n Compiling zerocopy v0.8.39\n Compiling thiserror v1.0.69\n Compiling ryu v1.0.23\n Compiling heck v0.4.1\n Compiling bytes v1.11.1\n Compiling arrayvec v0.7.6\n Compiling humantime v2.3.0\n Compiling keccak v0.1.6\n Compiling convert_case v0.4.0\n Compiling hex v0.4.3\n Compiling constant_time_eq v0.4.2\n Compiling getrandom v0.2.17\n Compiling smallvec v1.15.1\n Compiling itertools v0.12.1\n Compiling zmij v1.0.21\n Compiling bytemuck v1.25.0\n Compiling spacetimedb-lib v2.0.0 (D:\\Development\\ClockworkLabs\\SpacetimeDB\\SpacetimeDBPrivate\\public\\crates\\lib)\n Compiling arrayref v0.3.9\n Compiling cc v1.2.56\n Compiling uuid v1.21.0\n Compiling second-stack v0.3.5\n Compiling rand_core v0.6.4\n Compiling generic-array v0.14.7\n Compiling serde_json v1.0.149\n Compiling log v0.4.29\n Compiling memchr v2.8.0\n Compiling scoped-tls v1.0.1\n Compiling num-traits v0.2.19\n Compiling http v1.4.0\n Compiling blake3 v1.8.3\n Compiling syn v2.0.117\n Compiling castaway v0.2.4\n Compiling lean_string v0.5.1\n Compiling approx v0.3.2\n Compiling chrono v0.4.43\n Compiling crypto-common v0.1.7\n Compiling block-buffer v0.10.4\n Compiling decorum v0.3.1\n Compiling digest v0.10.7\n Compiling sha3 v0.10.8\n Compiling ethnum v1.5.2\n Compiling ppv-lite86 v0.2.21\n Compiling enum-as-inner v0.6.1\n Compiling thiserror-impl v1.0.69\n Compiling derive_more v0.99.20\n Compiling rand_chacha v0.3.1\n Compiling rand v0.8.5\n Compiling spacetimedb-primitives v2.0.0 (D:\\Development\\ClockworkLabs\\SpacetimeDB\\SpacetimeDBPrivate\\public\\crates\\primitives)\n Compiling spacetimedb-bindings-sys v2.0.0 (D:\\Development\\ClockworkLabs\\SpacetimeDB\\SpacetimeDBPrivate\\public\\crates\\bindings-sys)\n Compiling spacetimedb-bindings-macro v2.0.0 (D:\\Development\\ClockworkLabs\\SpacetimeDB\\SpacetimeDBPrivate\\public\\crates\\bindings-macro)\n Compiling spacetimedb-sats v2.0.0 (D:\\Development\\ClockworkLabs\\SpacetimeDB\\SpacetimeDBPrivate\\public\\crates\\sats)\n Compiling spacetimedb-query-builder v2.0.0 (D:\\Development\\ClockworkLabs\\SpacetimeDB\\SpacetimeDBPrivate\\public\\crates\\query-builder)\n Compiling spacetimedb v2.0.0 (D:\\Development\\ClockworkLabs\\SpacetimeDB\\SpacetimeDBPrivate\\public\\crates\\bindings)\n Compiling spacetime-module v0.1.0 (D:\\Development\\ClockworkLabs\\SpacetimeDB\\SpacetimeDBPrivate\\public\\target\\llm-runs\\basics\\t_002_scheduled_table\\rust\\server\\deepseek-reasoner\\llm)\nerror[E0599]: no method named `try_insert` found for reference `&tick_timer__TableHandle` in the current scope\n --> src\\lib.rs:20:25\n |\n20 | ctx.db.tick_timer().try_insert(TickTimer {\n | --------------------^^^^^^^^^^\n |\n = help: items from traits can only be used if the trait is in scope\nhelp: trait `Table` which provides `try_insert` is implemented but not in scope; perhaps you want to import it\n |\n 2 + use spacetimedb::Table;\n |\nhelp: there is a method `insert` with a similar name\n |\n20 - ctx.db.tick_timer().try_insert(TickTimer {\n20 + ctx.db.tick_timer().insert(TickTimer {\n |\n\nFor more information about this error, try `rustc --explain E0599`.\nerror: could not compile `spacetime-module` (lib) due to 1 previous error\nError: command [\"cargo\", \"build\", \"--config=net.git-fetch-with-cli=true\", \"--target=wasm32-unknown-unknown\", \"--release\", \"--message-format=json-render-diagnostics\"] exited with code 101\n\n--- stdout ---\n",
- "phase": "build_or_publish"
- }
- }
- },
- "vendor": "deepseek"
- },
- "t_003_struct_in_table": {
- "hash": "475c22b985e81027333ffa0d043dc9cbbb2ed9171f8083e5747c79c5585722d9",
- "task": "t_003_struct_in_table",
- "lang": "rust",
- "golden_published": true,
- "model_name": "DeepSeek Reasoner",
- "total_tests": 1,
- "passed_tests": 1,
- "category": "basics",
- "route_api_model": "deepseek-reasoner",
- "scorer_details": {
- "schema_parity": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "reducers_diff": null,
- "reducers_equal": true,
- "tables_diff": null,
- "tables_equal": true
- }
- }
- },
- "vendor": "deepseek"
- },
- "t_004_insert": {
- "hash": "475c22b985e81027333ffa0d043dc9cbbb2ed9171f8083e5747c79c5585722d9",
- "task": "t_004_insert",
- "lang": "rust",
- "golden_published": true,
- "model_name": "DeepSeek Reasoner",
- "total_tests": 2,
- "passed_tests": 2,
- "category": "basics",
- "route_api_model": "deepseek-reasoner",
- "scorer_details": {
- "schema_parity": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "reducers_diff": null,
- "reducers_equal": true,
- "tables_diff": null,
- "tables_equal": true
- }
- },
- "data_parity_insert_user": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "args": [
- 1,
- "Alice",
- 30,
- true
- ],
- "golden_out": "id | name | age | active ----+---------+-----+-------- 1 | \"Alice\" | 30 | true",
- "llm_out": "id | name | age | active ----+---------+-----+-------- 1 | \"Alice\" | 30 | true",
- "query": "SELECT id, name, age, active FROM user WHERE id=1",
- "reducer": "insert_user"
- }
- }
- },
- "vendor": "deepseek"
- },
- "t_005_update": {
- "hash": "475c22b985e81027333ffa0d043dc9cbbb2ed9171f8083e5747c79c5585722d9",
- "task": "t_005_update",
- "lang": "rust",
- "golden_published": true,
- "model_name": "DeepSeek Reasoner",
- "total_tests": 3,
- "passed_tests": 1,
- "llm_output": "use spacetimedb::{reducer, ReducerContext, Table};\n\n#[spacetimedb::table(accessor = user)]\npub struct User {\n #[primary_key]\n id: i32,\n name: String,\n age: i32,\n active: bool,\n}\n\n#[reducer]\npub fn update_user(ctx: &ReducerContext, id: i32, name: String, age: i32, active: bool) -> Result<(), String> {\n if let Some(mut user) = ctx.db.user().id().find(&id) {\n user.name = name;\n user.age = age;\n user.active = active;\n ctx.db.user().id().update(user);\n Ok(())\n } else {\n Err(\"User not found\".to_string())\n }\n}",
- "category": "basics",
- "route_api_model": "deepseek-reasoner",
- "scorer_details": {
- "data_parity_update_user": {
- "pass": false,
- "partial": 0.0,
- "notes": {
- "error": "spacetime call failed:\nWARNING: This command is UNSTABLE and subject to breaking changes.\n\nError: Response text: User not found\n\nCaused by:\n HTTP status server error (530 ) for url (http://127.0.0.1:51837/v1/database/c2002164b37ce4f96f227fa5bb3cb6da9e53db6e1670422853aeac15b200b7e0/call/update_user)\n",
- "phase": "call_reducer_llm"
- }
- },
- "schema_parity": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "reducers_diff": null,
- "reducers_equal": true,
- "tables_diff": null,
- "tables_equal": true
- }
- },
- "seed_users_row": {
- "pass": false,
- "partial": 0.0,
- "notes": {
- "error": "spacetime sql failed:\nWARNING: This command is UNSTABLE and subject to breaking changes.\n\nError: IndexError: Unique constraint violation 'user_id_idx_btree' in table 'user': column(s): '[\"id\"]' value: 1\n\nCaused by:\n HTTP status client error (400 Bad Request) for url (http://127.0.0.1:51837/v1/database/c2000a90004ed84b414eff7b7f67582479ace69bf4205243a5687144b9b08fa3/sql)\n",
- "phase": "sql_golden",
- "sql": "INSERT INTO user(id, name, age, active) VALUES (1, 'Alice', 30, true)"
- }
- }
- },
- "vendor": "deepseek"
- },
- "t_006_delete": {
- "hash": "475c22b985e81027333ffa0d043dc9cbbb2ed9171f8083e5747c79c5585722d9",
- "task": "t_006_delete",
- "lang": "rust",
- "golden_published": true,
- "model_name": "DeepSeek Reasoner",
- "total_tests": 3,
- "passed_tests": 3,
- "category": "basics",
- "route_api_model": "deepseek-reasoner",
- "scorer_details": {
- "schema_parity": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "reducers_diff": null,
- "reducers_equal": true,
- "tables_diff": null,
- "tables_equal": true
- }
- },
- "seed_users_row": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "sql": "INSERT INTO user(id, name, age, active) VALUES (1, 'Alice', 30, true)"
- }
- },
- "delete_user_count_zero": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "actual": 0,
- "expected": 0,
- "sql": "SELECT COUNT(*) AS n FROM user WHERE id=1"
- }
- }
- },
- "vendor": "deepseek"
- },
- "t_007_crud": {
- "hash": "475c22b985e81027333ffa0d043dc9cbbb2ed9171f8083e5747c79c5585722d9",
- "task": "t_007_crud",
- "lang": "rust",
- "golden_published": true,
- "model_name": "DeepSeek Reasoner",
- "total_tests": 4,
- "passed_tests": 4,
- "category": "basics",
- "route_api_model": "deepseek-reasoner",
- "scorer_details": {
- "crud_row_id2_deleted": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "actual": 0,
- "expected": 0,
- "sql": "SELECT COUNT(*) AS n FROM user WHERE id=2"
- }
- },
- "schema_parity": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "reducers_diff": null,
- "reducers_equal": true,
- "tables_diff": null,
- "tables_equal": true
- }
- },
- "crud_row_id1_parity": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "args": [],
- "golden_out": "id | name | age | active ----+----------+-----+-------- 1 | \"Alice2\" | 31 | false",
- "llm_out": "id | name | age | active ----+----------+-----+-------- 1 | \"Alice2\" | 31 | false",
- "query": "SELECT id, name, age, active FROM user WHERE id=1",
- "reducer": "crud"
- }
- },
- "crud_total_count_one": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "actual": 1,
- "expected": 1,
- "sql": "SELECT COUNT(*) AS n FROM user"
- }
- }
- },
- "vendor": "deepseek"
- },
- "t_008_index_lookup": {
- "hash": "475c22b985e81027333ffa0d043dc9cbbb2ed9171f8083e5747c79c5585722d9",
- "task": "t_008_index_lookup",
- "lang": "rust",
- "golden_published": true,
- "model_name": "DeepSeek Reasoner",
- "total_tests": 3,
- "passed_tests": 3,
- "category": "basics",
- "route_api_model": "deepseek-reasoner",
- "scorer_details": {
- "index_lookup_projection_parity": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "args": [
- 1
- ],
- "golden_out": "id | name ----+--------- 1 | \"Alice\"",
- "llm_out": "id | name ----+--------- 1 | \"Alice\"",
- "query": "SELECT id, name FROM result WHERE id=1",
- "reducer": "lookup_user_name"
- }
- },
- "schema_parity": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "reducers_diff": null,
- "reducers_equal": true,
- "tables_diff": null,
- "tables_equal": true
- }
- },
- "seed_user_row": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "sql": "INSERT INTO user(id, name, age, active) VALUES (1, 'Alice', 30, true)"
- }
- }
- },
- "vendor": "deepseek"
- },
- "t_009_init": {
- "hash": "475c22b985e81027333ffa0d043dc9cbbb2ed9171f8083e5747c79c5585722d9",
- "task": "t_009_init",
- "lang": "rust",
- "golden_published": true,
- "model_name": "DeepSeek Reasoner",
- "total_tests": 4,
- "passed_tests": 4,
- "category": "basics",
- "route_api_model": "deepseek-reasoner",
- "scorer_details": {
- "init_seed_alice": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "actual": 1,
- "expected": 1,
- "sql": "SELECT COUNT(*) AS n FROM user WHERE id=1 AND name='Alice' AND age=30 AND active=true"
- }
- },
- "init_total_two": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "actual": 2,
- "expected": 2,
- "sql": "SELECT COUNT(*) AS n FROM user"
- }
- },
- "schema_parity": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "reducers_diff": null,
- "reducers_equal": true,
- "tables_diff": null,
- "tables_equal": true
- }
- },
- "init_seed_bob": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "actual": 1,
- "expected": 1,
- "sql": "SELECT COUNT(*) AS n FROM user WHERE id=2 AND name='Bob' AND age=22 AND active=false"
- }
- }
- },
- "vendor": "deepseek"
- },
- "t_010_connect": {
- "hash": "475c22b985e81027333ffa0d043dc9cbbb2ed9171f8083e5747c79c5585722d9",
- "task": "t_010_connect",
- "lang": "rust",
- "golden_published": true,
- "model_name": "DeepSeek Reasoner",
- "total_tests": 1,
- "passed_tests": 1,
- "category": "basics",
- "route_api_model": "deepseek-reasoner",
- "scorer_details": {
- "schema_parity": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "reducers_diff": null,
- "reducers_equal": true,
- "tables_diff": null,
- "tables_equal": true
- }
- }
- },
- "vendor": "deepseek"
- },
- "t_011_helper_function": {
- "hash": "475c22b985e81027333ffa0d043dc9cbbb2ed9171f8083e5747c79c5585722d9",
- "task": "t_011_helper_function",
- "lang": "rust",
- "golden_published": true,
- "model_name": "DeepSeek Reasoner",
- "total_tests": 3,
- "passed_tests": 3,
- "category": "basics",
- "route_api_model": "deepseek-reasoner",
- "scorer_details": {
- "helper_func_sum_parity": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "args": [
- 1,
- 2,
- 3
- ],
- "golden_out": "id | sum ----+----- 1 | 5",
- "llm_out": "id | sum ----+----- 1 | 5",
- "query": "SELECT id, sum FROM result WHERE id=1",
- "reducer": "compute_sum"
- }
- },
- "schema_parity": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "reducers_diff": null,
- "reducers_equal": true,
- "tables_diff": null,
- "tables_equal": true
- }
- },
- "helper_func_sum_abs": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "actual": 1,
- "expected": 1,
- "sql": "SELECT COUNT(*) AS n FROM result WHERE id=1 AND sum=5"
- }
- }
- },
- "vendor": "deepseek"
- },
- "t_012_spacetime_product_type": {
- "hash": "475c22b985e81027333ffa0d043dc9cbbb2ed9171f8083e5747c79c5585722d9",
- "task": "t_012_spacetime_product_type",
- "lang": "rust",
- "golden_published": true,
- "model_name": "DeepSeek Reasoner",
- "total_tests": 3,
- "passed_tests": 3,
- "category": "schema",
- "route_api_model": "deepseek-reasoner",
- "scorer_details": {
- "product_type_row_count": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "actual": 1,
- "expected": 1,
- "sql": "SELECT COUNT(*) AS n FROM result WHERE id=1"
- }
- },
- "schema_parity": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "reducers_diff": null,
- "reducers_equal": true,
- "tables_diff": null,
- "tables_equal": true
- }
- },
- "product_type_row_parity": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "args": [
- 1,
- 2,
- 3
- ],
- "golden_out": "id | value ----+----------------------- 1 | (left = 2, right = 3)",
- "llm_out": "id | value ----+----------------------- 1 | (left = 2, right = 3)",
- "query": "SELECT id, value FROM result WHERE id=1",
- "reducer": "set_score"
- }
- }
- },
- "vendor": "deepseek"
- },
- "t_013_spacetime_sum_type": {
- "hash": "475c22b985e81027333ffa0d043dc9cbbb2ed9171f8083e5747c79c5585722d9",
- "task": "t_013_spacetime_sum_type",
- "lang": "rust",
- "golden_published": false,
- "model_name": "DeepSeek Reasoner",
- "total_tests": 3,
- "passed_tests": 0,
- "llm_output": "use spacetimedb::{ReducerContext, SpacetimeType};\n\n#[derive(SpacetimeType, Clone)]\npub struct Rect {\n width: i32,\n height: i32,\n}\n\n#[derive(SpacetimeType, Clone)]\npub enum Shape {\n Circle(i32),\n Rectangle(Rect),\n}\n\n#[spacetimedb::table(accessor = result, public)]\npub struct ResultRow {\n #[primary_key]\n id: i32,\n value: Shape,\n}\n\n#[spacetimedb::reducer]\npub fn set_circle(ctx: &ReducerContext, id: i32, radius: i32) {\n ctx.db.result().insert(ResultRow {\n id,\n value: Shape::Circle(radius),\n });\n}",
- "category": "schema",
- "route_api_model": "deepseek-reasoner",
- "scorer_details": {
- "publish_error": {
- "pass": false,
- "partial": 0.0,
- "notes": {
- "error": "spacetime publish failed (exit=1)\n--- stderr ---\n Updating crates.io index\n Locking 104 packages to latest compatible versions\n Adding generic-array v0.14.7 (available: v0.14.9)\n Compiling proc-macro2 v1.0.106\n Compiling quote v1.0.44\n Compiling unicode-ident v1.0.24\n Compiling version_check v0.9.5\n Compiling typenum v1.19.0\n Compiling autocfg v1.5.0\n Compiling heck v0.5.0\n Compiling serde_core v1.0.228\n Compiling cfg-if v1.0.4\n Compiling rustversion v1.0.22\n Compiling itoa v1.0.17\n Compiling shlex v1.3.0\n Compiling either v1.15.0\n Compiling serde v1.0.228\n Compiling find-msvc-tools v0.1.9\n Compiling bitflags v2.11.0\n Compiling nohash-hasher v0.2.0\n Compiling zerocopy v0.8.39\n Compiling thiserror v1.0.69\n Compiling anyhow v1.0.102\n Compiling heck v0.4.1\n Compiling convert_case v0.4.0\n Compiling bytes v1.11.1\n Compiling arrayvec v0.7.6\n Compiling ryu v1.0.23\n Compiling keccak v0.1.6\n Compiling humantime v2.3.0\n Compiling smallvec v1.15.1\n Compiling second-stack v0.3.5\n Compiling constant_time_eq v0.4.2\n Compiling spacetimedb-lib v2.0.0 (D:\\Development\\ClockworkLabs\\SpacetimeDB\\SpacetimeDBPrivate\\public\\crates\\lib)\n Compiling itertools v0.12.1\n Compiling getrandom v0.2.17\n Compiling arrayref v0.3.9\n Compiling cc v1.2.56\n Compiling generic-array v0.14.7\n Compiling uuid v1.21.0\n Compiling bytemuck v1.25.0\n Compiling hex v0.4.3\n Compiling zmij v1.0.21\n Compiling num-traits v0.2.19\n Compiling log v0.4.29\n Compiling serde_json v1.0.149\n Compiling memchr v2.8.0\n Compiling rand_core v0.6.4\n Compiling http v1.4.0\n Compiling scoped-tls v1.0.1\n Compiling blake3 v1.8.3\n Compiling castaway v0.2.4\n Compiling lean_string v0.5.1\n Compiling syn v2.0.117\n Compiling crypto-common v0.1.7\n Compiling block-buffer v0.10.4\n Compiling approx v0.3.2\n Compiling chrono v0.4.43\n Compiling digest v0.10.7\n Compiling decorum v0.3.1\n Compiling sha3 v0.10.8\n Compiling ethnum v1.5.2\n Compiling enum-as-inner v0.6.1\n Compiling thiserror-impl v1.0.69\n Compiling derive_more v0.99.20\n Compiling ppv-lite86 v0.2.21\n Compiling rand_chacha v0.3.1\n Compiling spacetimedb-primitives v2.0.0 (D:\\Development\\ClockworkLabs\\SpacetimeDB\\SpacetimeDBPrivate\\public\\crates\\primitives)\n Compiling rand v0.8.5\n Compiling spacetimedb-bindings-sys v2.0.0 (D:\\Development\\ClockworkLabs\\SpacetimeDB\\SpacetimeDBPrivate\\public\\crates\\bindings-sys)\n Compiling spacetimedb-bindings-macro v2.0.0 (D:\\Development\\ClockworkLabs\\SpacetimeDB\\SpacetimeDBPrivate\\public\\crates\\bindings-macro)\n Compiling spacetimedb-sats v2.0.0 (D:\\Development\\ClockworkLabs\\SpacetimeDB\\SpacetimeDBPrivate\\public\\crates\\sats)\n Compiling spacetimedb-query-builder v2.0.0 (D:\\Development\\ClockworkLabs\\SpacetimeDB\\SpacetimeDBPrivate\\public\\crates\\query-builder)\n Compiling spacetimedb v2.0.0 (D:\\Development\\ClockworkLabs\\SpacetimeDB\\SpacetimeDBPrivate\\public\\crates\\bindings)\n Compiling spacetime-module v0.1.0 (D:\\Development\\ClockworkLabs\\SpacetimeDB\\SpacetimeDBPrivate\\public\\target\\llm-runs\\schema\\t_013_spacetime_sum_type\\rust\\server\\deepseek-reasoner\\llm)\nerror[E0599]: no method named `insert` found for reference `&result__TableHandle` in the current scope\n --> src\\lib.rs:25:21\n |\n25 | ctx.db.result().insert(ResultRow {\n | ----------------^^^^^^\n |\n = help: items from traits can only be used if the trait is in scope\nhelp: trait `Table` which provides `insert` is implemented but not in scope; perhaps you want to import it\n |\n 2 + use spacetimedb::Table;\n |\nhelp: there is a method `try_insert` with a similar name\n |\n25 | ctx.db.result().try_insert(ResultRow {\n | ++++\n\nFor more information about this error, try `rustc --explain E0599`.\nerror: could not compile `spacetime-module` (lib) due to 1 previous error\nError: command [\"cargo\", \"build\", \"--config=net.git-fetch-with-cli=true\", \"--target=wasm32-unknown-unknown\", \"--release\", \"--message-format=json-render-diagnostics\"] exited with code 101\n\n--- stdout ---\n",
- "phase": "build_or_publish"
- }
- }
- },
- "vendor": "deepseek"
- },
- "t_014_elementary_columns": {
- "hash": "475c22b985e81027333ffa0d043dc9cbbb2ed9171f8083e5747c79c5585722d9",
- "task": "t_014_elementary_columns",
- "lang": "rust",
- "golden_published": true,
- "model_name": "DeepSeek Reasoner",
- "total_tests": 3,
- "passed_tests": 3,
- "category": "schema",
- "route_api_model": "deepseek-reasoner",
- "scorer_details": {
- "schema_parity": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "reducers_diff": null,
- "reducers_equal": true,
- "tables_diff": null,
- "tables_equal": true
- }
- },
- "elementary_columns_row_parity": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "args": [],
- "golden_out": "id | count | total | price | ratio | active | name ----+-------+------------+-------+-------+--------+--------- 1 | 2 | 3000000000 | 1.5 | 2.25 | true | \"Alice\"",
- "llm_out": "id | count | total | price | ratio | active | name ----+-------+------------+-------+-------+--------+--------- 1 | 2 | 3000000000 | 1.5 | 2.25 | true | \"Alice\"",
- "query": "SELECT id, count, total, price, ratio, active, name FROM primitive WHERE id=1",
- "reducer": "seed"
- }
- },
- "elementary_columns_row_count": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "actual": 1,
- "expected": 1,
- "sql": "SELECT COUNT(*) AS n FROM primitive WHERE id=1"
- }
- }
- },
- "vendor": "deepseek"
- },
- "t_015_product_type_columns": {
- "hash": "475c22b985e81027333ffa0d043dc9cbbb2ed9171f8083e5747c79c5585722d9",
- "task": "t_015_product_type_columns",
- "lang": "rust",
- "golden_published": false,
- "model_name": "DeepSeek Reasoner",
- "total_tests": 3,
- "passed_tests": 0,
- "llm_output": "use spacetimedb::{ReducerContext, SpacetimeType};\n\n#[derive(SpacetimeType, Clone)]\npub struct Address {\n street: String,\n zip: i32,\n}\n\n#[derive(SpacetimeType, Clone)]\npub struct Position {\n x: i32,\n y: i32,\n}\n\n#[spacetimedb::table(accessor = profile)]\npub struct Profile {\n #[primary_key]\n id: i32,\n home: Address,\n work: Address,\n pos: Position,\n}\n\n#[spacetimedb::reducer]\npub fn seed(ctx: &ReducerContext) {\n ctx.db.profile().insert(Profile {\n id: 1,\n home: Address {\n street: \"1 Main\".into(),\n zip: 11111,\n },\n work: Address {\n street: \"2 Broad\".into(),\n zip: 22222,\n },\n pos: Position { x: 7, y: 9 },\n });\n}",
- "category": "schema",
- "route_api_model": "deepseek-reasoner",
- "scorer_details": {
- "publish_error": {
- "pass": false,
- "partial": 0.0,
- "notes": {
- "error": "spacetime publish failed (exit=1)\n--- stderr ---\n Updating crates.io index\n Blocking waiting for file lock on package cache\n Locking 104 packages to latest compatible versions\n Adding generic-array v0.14.7 (available: v0.14.9)\n Blocking waiting for file lock on package cache\n Blocking waiting for file lock on package cache\n Blocking waiting for file lock on package cache\n Compiling proc-macro2 v1.0.106\n Compiling quote v1.0.44\n Compiling unicode-ident v1.0.24\n Compiling version_check v0.9.5\n Compiling typenum v1.19.0\n Compiling autocfg v1.5.0\n Compiling serde_core v1.0.228\n Compiling heck v0.5.0\n Compiling rustversion v1.0.22\n Compiling cfg-if v1.0.4\n Compiling find-msvc-tools v0.1.9\n Compiling itoa v1.0.17\n Compiling shlex v1.3.0\n Compiling either v1.15.0\n Compiling serde v1.0.228\n Compiling bitflags v2.11.0\n Compiling zerocopy v0.8.39\n Compiling nohash-hasher v0.2.0\n Compiling anyhow v1.0.102\n Compiling thiserror v1.0.69\n Compiling humantime v2.3.0\n Compiling ryu v1.0.23\n Compiling keccak v0.1.6\n Compiling heck v0.4.1\n Compiling convert_case v0.4.0\n Compiling arrayvec v0.7.6\n Compiling bytes v1.11.1\n Compiling bytemuck v1.25.0\n Compiling spacetimedb-lib v2.0.0 (D:\\Development\\ClockworkLabs\\SpacetimeDB\\SpacetimeDBPrivate\\public\\crates\\lib)\n Compiling getrandom v0.2.17\n Compiling zmij v1.0.21\n Compiling arrayref v0.3.9\n Compiling itertools v0.12.1\n Compiling second-stack v0.3.5\n Compiling smallvec v1.15.1\n Compiling constant_time_eq v0.4.2\n Compiling uuid v1.21.0\n Compiling generic-array v0.14.7\n Compiling hex v0.4.3\n Compiling serde_json v1.0.149\n Compiling log v0.4.29\n Compiling num-traits v0.2.19\n Compiling memchr v2.8.0\n Compiling http v1.4.0\n Compiling scoped-tls v1.0.1\n Compiling rand_core v0.6.4\n Compiling cc v1.2.56\n Compiling blake3 v1.8.3\n Compiling castaway v0.2.4\n Compiling lean_string v0.5.1\n Compiling approx v0.3.2\n Compiling chrono v0.4.43\n Compiling decorum v0.3.1\n Compiling syn v2.0.117\n Compiling crypto-common v0.1.7\n Compiling block-buffer v0.10.4\n Compiling digest v0.10.7\n Compiling ethnum v1.5.2\n Compiling sha3 v0.10.8\n Compiling ppv-lite86 v0.2.21\n Compiling rand_chacha v0.3.1\n Compiling rand v0.8.5\n Compiling enum-as-inner v0.6.1\n Compiling thiserror-impl v1.0.69\n Compiling derive_more v0.99.20\n Compiling spacetimedb-primitives v2.0.0 (D:\\Development\\ClockworkLabs\\SpacetimeDB\\SpacetimeDBPrivate\\public\\crates\\primitives)\n Compiling spacetimedb-bindings-sys v2.0.0 (D:\\Development\\ClockworkLabs\\SpacetimeDB\\SpacetimeDBPrivate\\public\\crates\\bindings-sys)\n Compiling spacetimedb-bindings-macro v2.0.0 (D:\\Development\\ClockworkLabs\\SpacetimeDB\\SpacetimeDBPrivate\\public\\crates\\bindings-macro)\n Compiling spacetimedb-sats v2.0.0 (D:\\Development\\ClockworkLabs\\SpacetimeDB\\SpacetimeDBPrivate\\public\\crates\\sats)\n Compiling spacetimedb-query-builder v2.0.0 (D:\\Development\\ClockworkLabs\\SpacetimeDB\\SpacetimeDBPrivate\\public\\crates\\query-builder)\n Compiling spacetimedb v2.0.0 (D:\\Development\\ClockworkLabs\\SpacetimeDB\\SpacetimeDBPrivate\\public\\crates\\bindings)\n Compiling spacetime-module v0.1.0 (D:\\Development\\ClockworkLabs\\SpacetimeDB\\SpacetimeDBPrivate\\public\\target\\llm-runs\\schema\\t_015_product_type_columns\\rust\\server\\deepseek-reasoner\\llm)\nerror[E0599]: no method named `insert` found for reference `&profile__TableHandle` in the current scope\n --> src\\lib.rs:27:22\n |\n27 | ctx.db.profile().insert(Profile {\n | -----------------^^^^^^\n |\n = help: items from traits can only be used if the trait is in scope\nhelp: trait `Table` which provides `insert` is implemented but not in scope; perhaps you want to import it\n |\n 2 + use spacetimedb::Table;\n |\nhelp: there is a method `try_insert` with a similar name\n |\n27 | ctx.db.profile().try_insert(Profile {\n | ++++\n\nFor more information about this error, try `rustc --explain E0599`.\nerror: could not compile `spacetime-module` (lib) due to 1 previous error\nError: command [\"cargo\", \"build\", \"--config=net.git-fetch-with-cli=true\", \"--target=wasm32-unknown-unknown\", \"--release\", \"--message-format=json-render-diagnostics\"] exited with code 101\n\n--- stdout ---\n",
- "phase": "build_or_publish"
- }
- }
- },
- "vendor": "deepseek"
- },
- "t_016_sum_type_columns": {
- "hash": "475c22b985e81027333ffa0d043dc9cbbb2ed9171f8083e5747c79c5585722d9",
- "task": "t_016_sum_type_columns",
- "lang": "rust",
- "golden_published": false,
- "model_name": "DeepSeek Reasoner",
- "total_tests": 3,
- "passed_tests": 0,
- "llm_output": "use spacetimedb::{ReducerContext, SpacetimeType};\n\n#[derive(SpacetimeType, Clone, Debug)]\npub struct Rect {\n pub width: i32,\n pub height: i32,\n}\n\n#[derive(SpacetimeType, Clone, Debug)]\npub enum Shape {\n Circle(i32),\n Rectangle(Rect),\n}\n\n#[spacetimedb::table(accessor = drawing, public)]\npub struct Drawing {\n #[primary_key]\n pub id: i32,\n pub a: Shape,\n pub b: Shape,\n}\n\n#[spacetimedb::reducer]\npub fn seed(ctx: &ReducerContext) -> Result<(), String> {\n ctx.db.drawing().try_insert(Drawing {\n id: 1,\n a: Shape::Circle(10),\n b: Shape::Rectangle(Rect { width: 4, height: 6 }),\n })?;\n Ok(())\n}",
- "category": "schema",
- "route_api_model": "deepseek-reasoner",
- "scorer_details": {
- "publish_error": {
- "pass": false,
- "partial": 0.0,
- "notes": {
- "error": "spacetime publish failed (exit=1)\n--- stderr ---\n Blocking waiting for file lock on package cache\n Updating crates.io index\n Blocking waiting for file lock on package cache\n Locking 104 packages to latest compatible versions\n Adding generic-array v0.14.7 (available: v0.14.9)\n Blocking waiting for file lock on package cache\n Blocking waiting for file lock on package cache\n Compiling proc-macro2 v1.0.106\n Compiling quote v1.0.44\n Compiling unicode-ident v1.0.24\n Compiling version_check v0.9.5\n Compiling typenum v1.19.0\n Compiling autocfg v1.5.0\n Compiling serde_core v1.0.228\n Compiling heck v0.5.0\n Compiling cfg-if v1.0.4\n Compiling rustversion v1.0.22\n Compiling either v1.15.0\n Compiling shlex v1.3.0\n Compiling itoa v1.0.17\n Compiling find-msvc-tools v0.1.9\n Compiling serde v1.0.228\n Compiling nohash-hasher v0.2.0\n Compiling anyhow v1.0.102\n Compiling zerocopy v0.8.39\n Compiling bitflags v2.11.0\n Compiling thiserror v1.0.69\n Compiling arrayvec v0.7.6\n Compiling keccak v0.1.6\n Compiling convert_case v0.4.0\n Compiling heck v0.4.1\n Compiling ryu v1.0.23\n Compiling humantime v2.3.0\n Compiling bytes v1.11.1\n Compiling arrayref v0.3.9\n Compiling hex v0.4.3\n Compiling smallvec v1.15.1\n Compiling itertools v0.12.1\n Compiling getrandom v0.2.17\n Compiling spacetimedb-lib v2.0.0 (D:\\Development\\ClockworkLabs\\SpacetimeDB\\SpacetimeDBPrivate\\public\\crates\\lib)\n Compiling uuid v1.21.0\n Compiling zmij v1.0.21\n Compiling cc v1.2.56\n Compiling constant_time_eq v0.4.2\n Compiling num-traits v0.2.19\n Compiling second-stack v0.3.5\n Compiling bytemuck v1.25.0\n Compiling log v0.4.29\n Compiling serde_json v1.0.149\n Compiling memchr v2.8.0\n Compiling scoped-tls v1.0.1\n Compiling generic-array v0.14.7\n Compiling rand_core v0.6.4\n Compiling http v1.4.0\n Compiling blake3 v1.8.3\n Compiling castaway v0.2.4\n Compiling lean_string v0.5.1\n Compiling syn v2.0.117\n Compiling crypto-common v0.1.7\n Compiling block-buffer v0.10.4\n Compiling digest v0.10.7\n Compiling sha3 v0.10.8\n Compiling approx v0.3.2\n Compiling chrono v0.4.43\n Compiling ethnum v1.5.2\n Compiling decorum v0.3.1\n Compiling ppv-lite86 v0.2.21\n Compiling enum-as-inner v0.6.1\n Compiling thiserror-impl v1.0.69\n Compiling derive_more v0.99.20\n Compiling rand_chacha v0.3.1\n Compiling rand v0.8.5\n Compiling spacetimedb-primitives v2.0.0 (D:\\Development\\ClockworkLabs\\SpacetimeDB\\SpacetimeDBPrivate\\public\\crates\\primitives)\n Compiling spacetimedb-bindings-sys v2.0.0 (D:\\Development\\ClockworkLabs\\SpacetimeDB\\SpacetimeDBPrivate\\public\\crates\\bindings-sys)\n Compiling spacetimedb-bindings-macro v2.0.0 (D:\\Development\\ClockworkLabs\\SpacetimeDB\\SpacetimeDBPrivate\\public\\crates\\bindings-macro)\n Compiling spacetimedb-sats v2.0.0 (D:\\Development\\ClockworkLabs\\SpacetimeDB\\SpacetimeDBPrivate\\public\\crates\\sats)\n Compiling spacetimedb-query-builder v2.0.0 (D:\\Development\\ClockworkLabs\\SpacetimeDB\\SpacetimeDBPrivate\\public\\crates\\query-builder)\n Compiling spacetimedb v2.0.0 (D:\\Development\\ClockworkLabs\\SpacetimeDB\\SpacetimeDBPrivate\\public\\crates\\bindings)\n Compiling spacetime-module v0.1.0 (D:\\Development\\ClockworkLabs\\SpacetimeDB\\SpacetimeDBPrivate\\public\\target\\llm-runs\\schema\\t_016_sum_type_columns\\rust\\server\\deepseek-reasoner\\llm)\nerror[E0599]: no method named `try_insert` found for reference `&drawing__TableHandle` in the current scope\n --> src\\lib.rs:26:22\n |\n26 | ctx.db.drawing().try_insert(Drawing {\n | -----------------^^^^^^^^^^\n |\n = help: items from traits can only be used if the trait is in scope\nhelp: trait `Table` which provides `try_insert` is implemented but not in scope; perhaps you want to import it\n |\n 2 + use spacetimedb::Table;\n |\nhelp: there is a method `insert` with a similar name\n |\n26 - ctx.db.drawing().try_insert(Drawing {\n26 + ctx.db.drawing().insert(Drawing {\n |\n\nFor more information about this error, try `rustc --explain E0599`.\nerror: could not compile `spacetime-module` (lib) due to 1 previous error\nError: command [\"cargo\", \"build\", \"--config=net.git-fetch-with-cli=true\", \"--target=wasm32-unknown-unknown\", \"--release\", \"--message-format=json-render-diagnostics\"] exited with code 101\n\n--- stdout ---\n",
- "phase": "build_or_publish"
- }
- }
- },
- "vendor": "deepseek"
- },
- "t_017_scheduled_columns": {
- "hash": "475c22b985e81027333ffa0d043dc9cbbb2ed9171f8083e5747c79c5585722d9",
- "task": "t_017_scheduled_columns",
- "lang": "rust",
- "golden_published": false,
- "model_name": "DeepSeek Reasoner",
- "total_tests": 2,
- "passed_tests": 0,
- "llm_output": "use spacetimedb::{ReducerContext, ScheduleAt};\nuse std::time::Duration;\n\n#[spacetimedb::table(accessor = tick_timer, scheduled(tick))]\npub struct TickTimer {\n #[primary_key]\n #[auto_inc]\n pub scheduled_id: u64,\n pub scheduled_at: ScheduleAt,\n}\n\n#[spacetimedb::reducer]\npub fn tick(_ctx: &ReducerContext, _timer: TickTimer) -> Result<(), String> {\n Ok(())\n}\n\n#[spacetimedb::reducer(init)]\npub fn init(ctx: &ReducerContext) -> Result<(), String> {\n ctx.db.tick_timer().try_insert(TickTimer {\n scheduled_id: 0,\n scheduled_at: ScheduleAt::Interval(Duration::from_micros(50_000).into()),\n })?;\n Ok(())\n}",
- "category": "schema",
- "route_api_model": "deepseek-reasoner",
- "scorer_details": {
- "publish_error": {
- "pass": false,
- "partial": 0.0,
- "notes": {
- "error": "spacetime publish failed (exit=1)\n--- stderr ---\n Updating crates.io index\n Locking 104 packages to latest compatible versions\n Adding generic-array v0.14.7 (available: v0.14.9)\n Compiling proc-macro2 v1.0.106\n Compiling quote v1.0.44\n Compiling unicode-ident v1.0.24\n Compiling version_check v0.9.5\n Compiling typenum v1.19.0\n Compiling autocfg v1.5.0\n Compiling serde_core v1.0.228\n Compiling heck v0.5.0\n Compiling cfg-if v1.0.4\n Compiling rustversion v1.0.22\n Compiling shlex v1.3.0\n Compiling find-msvc-tools v0.1.9\n Compiling itoa v1.0.17\n Compiling either v1.15.0\n Compiling serde v1.0.228\n Compiling nohash-hasher v0.2.0\n Compiling zerocopy v0.8.39\n Compiling thiserror v1.0.69\n Compiling anyhow v1.0.102\n Compiling bitflags v2.11.0\n Compiling ryu v1.0.23\n Compiling convert_case v0.4.0\n Compiling keccak v0.1.6\n Compiling heck v0.4.1\n Compiling bytes v1.11.1\n Compiling arrayvec v0.7.6\n Compiling humantime v2.3.0\n Compiling spacetimedb-lib v2.0.0 (D:\\Development\\ClockworkLabs\\SpacetimeDB\\SpacetimeDBPrivate\\public\\crates\\lib)\n Compiling uuid v1.21.0\n Compiling getrandom v0.2.17\n Compiling bytemuck v1.25.0\n Compiling zmij v1.0.21\n Compiling smallvec v1.15.1\n Compiling constant_time_eq v0.4.2\n Compiling hex v0.4.3\n Compiling itertools v0.12.1\n Compiling second-stack v0.3.5\n Compiling num-traits v0.2.19\n Compiling arrayref v0.3.9\n Compiling serde_json v1.0.149\n Compiling log v0.4.29\n Compiling memchr v2.8.0\n Compiling generic-array v0.14.7\n Compiling cc v1.2.56\n Compiling scoped-tls v1.0.1\n Compiling rand_core v0.6.4\n Compiling http v1.4.0\n Compiling castaway v0.2.4\n Compiling lean_string v0.5.1\n Compiling blake3 v1.8.3\n Compiling approx v0.3.2\n Compiling chrono v0.4.43\n Compiling syn v2.0.117\n Compiling decorum v0.3.1\n Compiling block-buffer v0.10.4\n Compiling crypto-common v0.1.7\n Compiling digest v0.10.7\n Compiling sha3 v0.10.8\n Compiling ethnum v1.5.2\n Compiling ppv-lite86 v0.2.21\n Compiling rand_chacha v0.3.1\n Compiling rand v0.8.5\n Compiling enum-as-inner v0.6.1\n Compiling thiserror-impl v1.0.69\n Compiling derive_more v0.99.20\n Compiling spacetimedb-primitives v2.0.0 (D:\\Development\\ClockworkLabs\\SpacetimeDB\\SpacetimeDBPrivate\\public\\crates\\primitives)\n Compiling spacetimedb-bindings-sys v2.0.0 (D:\\Development\\ClockworkLabs\\SpacetimeDB\\SpacetimeDBPrivate\\public\\crates\\bindings-sys)\n Compiling spacetimedb-bindings-macro v2.0.0 (D:\\Development\\ClockworkLabs\\SpacetimeDB\\SpacetimeDBPrivate\\public\\crates\\bindings-macro)\n Compiling spacetimedb-sats v2.0.0 (D:\\Development\\ClockworkLabs\\SpacetimeDB\\SpacetimeDBPrivate\\public\\crates\\sats)\n Compiling spacetimedb-query-builder v2.0.0 (D:\\Development\\ClockworkLabs\\SpacetimeDB\\SpacetimeDBPrivate\\public\\crates\\query-builder)\n Compiling spacetimedb v2.0.0 (D:\\Development\\ClockworkLabs\\SpacetimeDB\\SpacetimeDBPrivate\\public\\crates\\bindings)\n Compiling spacetime-module v0.1.0 (D:\\Development\\ClockworkLabs\\SpacetimeDB\\SpacetimeDBPrivate\\public\\target\\llm-runs\\schema\\t_017_scheduled_columns\\rust\\server\\deepseek-reasoner\\llm)\nerror[E0599]: no method named `try_insert` found for reference `&tick_timer__TableHandle` in the current scope\n --> src\\lib.rs:20:25\n |\n20 | ctx.db.tick_timer().try_insert(TickTimer {\n | --------------------^^^^^^^^^^\n |\n = help: items from traits can only be used if the trait is in scope\nhelp: trait `Table` which provides `try_insert` is implemented but not in scope; perhaps you want to import it\n |\n 2 + use spacetimedb::Table;\n |\nhelp: there is a method `insert` with a similar name\n |\n20 - ctx.db.tick_timer().try_insert(TickTimer {\n20 + ctx.db.tick_timer().insert(TickTimer {\n |\n\nFor more information about this error, try `rustc --explain E0599`.\nerror: could not compile `spacetime-module` (lib) due to 1 previous error\nError: command [\"cargo\", \"build\", \"--config=net.git-fetch-with-cli=true\", \"--target=wasm32-unknown-unknown\", \"--release\", \"--message-format=json-render-diagnostics\"] exited with code 101\n\n--- stdout ---\n",
- "phase": "build_or_publish"
- }
- }
- },
- "vendor": "deepseek"
- },
- "t_018_constraints": {
- "hash": "475c22b985e81027333ffa0d043dc9cbbb2ed9171f8083e5747c79c5585722d9",
- "task": "t_018_constraints",
- "lang": "rust",
- "golden_published": false,
- "model_name": "DeepSeek Reasoner",
- "total_tests": 3,
- "passed_tests": 0,
- "llm_output": "use spacetimedb::{ReducerContext, Table};\n\n#[spacetimedb::table(\n accessor = account,\n index(accessor = by_name, btree(name))\n)]\npub struct Account {\n #[primary_key]\n id: i32,\n #[unique]\n email: String,\n name: String,\n}\n\n#[spacetimedb::reducer]\npub fn seed(ctx: &ReducerContext) -> Result<(), String> {\n ctx.db.account().insert(Account {\n id: 1,\n email: \"a@example.com\".to_string(),\n name: \"Alice\".to_string(),\n });\n ctx.db.account().insert(Account {\n id: 2,\n email: \"b@example.com\".to_string(),\n name: \"Bob\".to_string(),\n });\n Ok(())\n}",
- "category": "schema",
- "route_api_model": "deepseek-reasoner",
- "scorer_details": {
- "publish_error": {
- "pass": false,
- "partial": 0.0,
- "notes": {
- "error": "spacetime publish failed (exit=1)\n--- stderr ---\n Updating crates.io index\n Locking 104 packages to latest compatible versions\n Adding generic-array v0.14.7 (available: v0.14.9)\n Compiling proc-macro2 v1.0.106\n Compiling unicode-ident v1.0.24\n Compiling quote v1.0.44\n Compiling version_check v0.9.5\n Compiling typenum v1.19.0\n Compiling autocfg v1.5.0\n Compiling serde_core v1.0.228\n Compiling heck v0.5.0\n Compiling rustversion v1.0.22\n Compiling cfg-if v1.0.4\n Compiling serde v1.0.228\n Compiling either v1.15.0\n Compiling itoa v1.0.17\n Compiling find-msvc-tools v0.1.9\n Compiling shlex v1.3.0\n Compiling bitflags v2.11.0\n Compiling thiserror v1.0.69\n Compiling zerocopy v0.8.39\n Compiling nohash-hasher v0.2.0\n Compiling anyhow v1.0.102\n Compiling ryu v1.0.23\n Compiling heck v0.4.1\n Compiling bytes v1.11.1\n Compiling convert_case v0.4.0\n Compiling humantime v2.3.0\n Compiling arrayvec v0.7.6\n Compiling keccak v0.1.6\n Compiling arrayref v0.3.9\n Compiling uuid v1.21.0\n Compiling getrandom v0.2.17\n Compiling bytemuck v1.25.0\n Compiling second-stack v0.3.5\n Compiling hex v0.4.3\n Compiling itertools v0.12.1\n Compiling zmij v1.0.21\n Compiling constant_time_eq v0.4.2\n Compiling spacetimedb-lib v2.0.0 (D:\\Development\\ClockworkLabs\\SpacetimeDB\\SpacetimeDBPrivate\\public\\crates\\lib)\n Compiling smallvec v1.15.1\n Compiling rand_core v0.6.4\n Compiling serde_json v1.0.149\n Compiling log v0.4.29\n Compiling memchr v2.8.0\n Compiling scoped-tls v1.0.1\n Compiling num-traits v0.2.19\n Compiling generic-array v0.14.7\n Compiling cc v1.2.56\n Compiling http v1.4.0\n Compiling castaway v0.2.4\n Compiling lean_string v0.5.1\n Compiling syn v2.0.117\n Compiling blake3 v1.8.3\n Compiling approx v0.3.2\n Compiling chrono v0.4.43\n Compiling crypto-common v0.1.7\n Compiling block-buffer v0.10.4\n Compiling decorum v0.3.1\n Compiling digest v0.10.7\n Compiling sha3 v0.10.8\n Compiling ethnum v1.5.2\n Compiling enum-as-inner v0.6.1\n Compiling thiserror-impl v1.0.69\n Compiling derive_more v0.99.20\n Compiling ppv-lite86 v0.2.21\n Compiling rand_chacha v0.3.1\n Compiling spacetimedb-primitives v2.0.0 (D:\\Development\\ClockworkLabs\\SpacetimeDB\\SpacetimeDBPrivate\\public\\crates\\primitives)\n Compiling rand v0.8.5\n Compiling spacetimedb-bindings-sys v2.0.0 (D:\\Development\\ClockworkLabs\\SpacetimeDB\\SpacetimeDBPrivate\\public\\crates\\bindings-sys)\n Compiling spacetimedb-bindings-macro v2.0.0 (D:\\Development\\ClockworkLabs\\SpacetimeDB\\SpacetimeDBPrivate\\public\\crates\\bindings-macro)\n Compiling spacetimedb-sats v2.0.0 (D:\\Development\\ClockworkLabs\\SpacetimeDB\\SpacetimeDBPrivate\\public\\crates\\sats)\n Compiling spacetimedb-query-builder v2.0.0 (D:\\Development\\ClockworkLabs\\SpacetimeDB\\SpacetimeDBPrivate\\public\\crates\\query-builder)\n Compiling spacetimedb v2.0.0 (D:\\Development\\ClockworkLabs\\SpacetimeDB\\SpacetimeDBPrivate\\public\\crates\\bindings)\n Compiling spacetime-module v0.1.0 (D:\\Development\\ClockworkLabs\\SpacetimeDB\\SpacetimeDBPrivate\\public\\target\\llm-runs\\schema\\t_018_constraints\\rust\\server\\deepseek-reasoner\\llm)\nerror: expected `columns`\n --> src\\lib.rs:6:37\n |\n6 | index(accessor = by_name, btree(name))\n | ^^^^\n\nerror[E0422]: cannot find struct, variant or union type `Account` in this scope\n --> src\\lib.rs:18:29\n |\n18 | ctx.db.account().insert(Account {\n | ^^^^^^^ not found in this scope\n\nerror[E0422]: cannot find struct, variant or union type `Account` in this scope\n --> src\\lib.rs:23:29\n |\n23 | ctx.db.account().insert(Account {\n | ^^^^^^^ not found in this scope\n\nerror[E0599]: no method named `account` found for struct `Local` in the current scope\n --> src\\lib.rs:18:12\n |\n18 | ctx.db.account().insert(Account {\n | ^^^^^^^ method not found in `Local`\n\nerror[E0599]: no method named `account` found for struct `Local` in the current scope\n --> src\\lib.rs:23:12\n |\n23 | ctx.db.account().insert(Account {\n | ^^^^^^^ method not found in `Local`\n\nSome errors have detailed explanations: E0422, E0599.\nFor more information about an error, try `rustc --explain E0422`.\nerror: could not compile `spacetime-module` (lib) due to 5 previous errors\nError: command [\"cargo\", \"build\", \"--config=net.git-fetch-with-cli=true\", \"--target=wasm32-unknown-unknown\", \"--release\", \"--message-format=json-render-diagnostics\"] exited with code 101\n\n--- stdout ---\n",
- "phase": "build_or_publish"
- }
- }
- },
- "vendor": "deepseek"
- },
- "t_019_many_to_many": {
- "hash": "475c22b985e81027333ffa0d043dc9cbbb2ed9171f8083e5747c79c5585722d9",
- "task": "t_019_many_to_many",
- "lang": "rust",
- "golden_published": false,
- "model_name": "DeepSeek Reasoner",
- "total_tests": 5,
- "passed_tests": 0,
- "llm_output": "use spacetimedb::{ReducerContext, Table};\n\n#[spacetimedb::table(accessor = user, public)]\npub struct User {\n #[primary_key]\n user_id: i32,\n name: String,\n}\n\n#[spacetimedb::table(accessor = group, public)]\npub struct Group {\n #[primary_key]\n group_id: i32,\n title: String,\n}\n\n#[spacetimedb::table(accessor = membership, public)]\npub struct Membership {\n #[primary_key]\n id: i32,\n user_id: i32,\n group_id: i32,\n #[index(accessor = by_user, btree(columns = [user_id]))]\n #[index(accessor = by_group, btree(columns = [group_id]))]\n}\n\n#[spacetimedb::reducer]\npub fn seed(ctx: &ReducerContext) {\n ctx.db.user().insert(User { user_id: 1, name: \"Alice\".into() });\n ctx.db.user().insert(User { user_id: 2, name: \"Bob\".into() });\n ctx.db.group().insert(Group { group_id: 10, title: \"Admin\".into() });\n ctx.db.group().insert(Group { group_id: 20, title: \"Dev\".into() });\n ctx.db.membership().insert(Membership { id: 1, user_id: 1, group_id: 10 });\n ctx.db.membership().insert(Membership { id: 2, user_id: 1, group_id: 20 });\n ctx.db.membership().insert(Membership { id: 3, user_id: 2, group_id: 20 });\n}",
- "category": "schema",
- "route_api_model": "deepseek-reasoner",
- "scorer_details": {
- "publish_error": {
- "pass": false,
- "partial": 0.0,
- "notes": {
- "error": "spacetime publish failed (exit=1)\n--- stderr ---\n Updating crates.io index\n Locking 104 packages to latest compatible versions\n Adding generic-array v0.14.7 (available: v0.14.9)\n Compiling proc-macro2 v1.0.106\n Compiling quote v1.0.44\n Compiling unicode-ident v1.0.24\n Compiling version_check v0.9.5\n Compiling typenum v1.19.0\n Compiling autocfg v1.5.0\n Compiling heck v0.5.0\n Compiling serde_core v1.0.228\n Compiling cfg-if v1.0.4\n Compiling rustversion v1.0.22\n Compiling either v1.15.0\n Compiling shlex v1.3.0\n Compiling serde v1.0.228\n Compiling itoa v1.0.17\n Compiling find-msvc-tools v0.1.9\n Compiling bitflags v2.11.0\n Compiling nohash-hasher v0.2.0\n Compiling zerocopy v0.8.39\n Compiling thiserror v1.0.69\n Compiling anyhow v1.0.102\n Compiling humantime v2.3.0\n Compiling bytes v1.11.1\n Compiling ryu v1.0.23\n Compiling convert_case v0.4.0\n Compiling arrayvec v0.7.6\n Compiling keccak v0.1.6\n Compiling heck v0.4.1\n Compiling bytemuck v1.25.0\n Compiling constant_time_eq v0.4.2\n Compiling getrandom v0.2.17\n Compiling uuid v1.21.0\n Compiling zmij v1.0.21\n Compiling arrayref v0.3.9\n Compiling second-stack v0.3.5\n Compiling itertools v0.12.1\n Compiling hex v0.4.3\n Compiling smallvec v1.15.1\n Compiling spacetimedb-lib v2.0.0 (D:\\Development\\ClockworkLabs\\SpacetimeDB\\SpacetimeDBPrivate\\public\\crates\\lib)\n Compiling rand_core v0.6.4\n Compiling log v0.4.29\n Compiling generic-array v0.14.7\n Compiling serde_json v1.0.149\n Compiling memchr v2.8.0\n Compiling scoped-tls v1.0.1\n Compiling num-traits v0.2.19\n Compiling cc v1.2.56\n Compiling http v1.4.0\n Compiling castaway v0.2.4\n Compiling lean_string v0.5.1\n Compiling syn v2.0.117\n Compiling approx v0.3.2\n Compiling chrono v0.4.43\n Compiling blake3 v1.8.3\n Compiling decorum v0.3.1\n Compiling crypto-common v0.1.7\n Compiling block-buffer v0.10.4\n Compiling digest v0.10.7\n Compiling sha3 v0.10.8\n Compiling ethnum v1.5.2\n Compiling ppv-lite86 v0.2.21\n Compiling enum-as-inner v0.6.1\n Compiling thiserror-impl v1.0.69\n Compiling derive_more v0.99.20\n Compiling rand_chacha v0.3.1\n Compiling rand v0.8.5\n Compiling spacetimedb-primitives v2.0.0 (D:\\Development\\ClockworkLabs\\SpacetimeDB\\SpacetimeDBPrivate\\public\\crates\\primitives)\n Compiling spacetimedb-bindings-sys v2.0.0 (D:\\Development\\ClockworkLabs\\SpacetimeDB\\SpacetimeDBPrivate\\public\\crates\\bindings-sys)\n Compiling spacetimedb-bindings-macro v2.0.0 (D:\\Development\\ClockworkLabs\\SpacetimeDB\\SpacetimeDBPrivate\\public\\crates\\bindings-macro)\n Compiling spacetimedb-sats v2.0.0 (D:\\Development\\ClockworkLabs\\SpacetimeDB\\SpacetimeDBPrivate\\public\\crates\\sats)\n Compiling spacetimedb-query-builder v2.0.0 (D:\\Development\\ClockworkLabs\\SpacetimeDB\\SpacetimeDBPrivate\\public\\crates\\query-builder)\n Compiling spacetimedb v2.0.0 (D:\\Development\\ClockworkLabs\\SpacetimeDB\\SpacetimeDBPrivate\\public\\crates\\bindings)\n Compiling spacetime-module v0.1.0 (D:\\Development\\ClockworkLabs\\SpacetimeDB\\SpacetimeDBPrivate\\public\\target\\llm-runs\\schema\\t_019_many_to_many\\rust\\server\\deepseek-reasoner\\llm)\nerror: expected identifier, found `}`\n --> src\\lib.rs:26:1\n |\n19 | pub struct Membership {\n | ---------- while parsing this struct\n...\n26 | }\n | ^ expected identifier\n\nerror: unexpected end of input, expected identifier\n --> src\\lib.rs:26:1\n |\n26 | }\n | ^\n\nerror[E0422]: cannot find struct, variant or union type `Membership` in this scope\n --> src\\lib.rs:34:32\n |\n34 | ctx.db.membership().insert(Membership { id: 1, user_id: 1, group_id: 10 });\n | ^^^^^^^^^^ not found in this scope\n\nerror[E0422]: cannot find struct, variant or union type `Membership` in this scope\n --> src\\lib.rs:35:32\n |\n35 | ctx.db.membership().insert(Membership { id: 2, user_id: 1, group_id: 20 });\n | ^^^^^^^^^^ not found in this scope\n\nerror[E0422]: cannot find struct, variant or union type `Membership` in this scope\n --> src\\lib.rs:36:32\n |\n36 | ctx.db.membership().insert(Membership { id: 3, user_id: 2, group_id: 20 });\n | ^^^^^^^^^^ not found in this scope\n\nerror[E0599]: no method named `membership` found for struct `Local` in the current scope\n --> src\\lib.rs:34:12\n |\n34 | ctx.db.membership().insert(Membership { id: 1, user_id: 1, group_id: 10 });\n | ^^^^^^^^^^ method not found in `Local`\n\nerror[E0599]: no method named `membership` found for struct `Local` in the current scope\n --> src\\lib.rs:35:12\n |\n35 | ctx.db.membership().insert(Membership { id: 2, user_id: 1, group_id: 20 });\n | ^^^^^^^^^^ method not found in `Local`\n\nerror[E0599]: no method named `membership` found for struct `Local` in the current scope\n --> src\\lib.rs:36:12\n |\n36 | ctx.db.membership().insert(Membership { id: 3, user_id: 2, group_id: 20 });\n | ^^^^^^^^^^ method not found in `Local`\n\nSome errors have detailed explanations: E0422, E0599.\nFor more information about an error, try `rustc --explain E0422`.\nerror: could not compile `spacetime-module` (lib) due to 8 previous errors\nError: command [\"cargo\", \"build\", \"--config=net.git-fetch-with-cli=true\", \"--target=wasm32-unknown-unknown\", \"--release\", \"--message-format=json-render-diagnostics\"] exited with code 101\n\n--- stdout ---\n",
- "phase": "build_or_publish"
- }
- }
- },
- "vendor": "deepseek"
- },
- "t_020_ecs": {
- "hash": "475c22b985e81027333ffa0d043dc9cbbb2ed9171f8083e5747c79c5585722d9",
- "task": "t_020_ecs",
- "lang": "rust",
- "golden_published": true,
- "model_name": "DeepSeek Reasoner",
- "total_tests": 5,
- "passed_tests": 2,
- "llm_output": "use spacetimedb::{ReducerContext, Table};\n\n#[spacetimedb::table(accessor = entity, public)]\npub struct Entity {\n #[primary_key]\n id: i32,\n}\n\n#[spacetimedb::table(accessor = position, public)]\npub struct Position {\n #[primary_key]\n entity_id: i32,\n x: i32,\n y: i32,\n}\n\n#[spacetimedb::table(accessor = velocity, public)]\npub struct Velocity {\n #[primary_key]\n entity_id: i32,\n vx: i32,\n vy: i32,\n}\n\n#[spacetimedb::table(accessor = next_position, public)]\npub struct NextPosition {\n #[primary_key]\n entity_id: i32,\n x: i32,\n y: i32,\n}\n\n#[spacetimedb::reducer]\npub fn seed(ctx: &ReducerContext) -> Result<(), String> {\n ctx.db.entity().insert(Entity { id: 1 });\n ctx.db.entity().insert(Entity { id: 2 });\n\n ctx.db.position().insert(Position {\n entity_id: 1,\n x: 0,\n y: 0,\n });\n ctx.db.velocity().insert(Velocity {\n entity_id: 1,\n vx: 1,\n vy: 0,\n });\n\n ctx.db.position().insert(Position {\n entity_id: 2,\n x: 10,\n y: 0,\n });\n ctx.db.velocity().insert(Velocity {\n entity_id: 2,\n vx: -2,\n vy: 3,\n });\n\n Ok(())\n}\n\n#[spacetimedb::reducer]\npub fn step(ctx: &ReducerContext) -> Result<(), String> {\n for position in ctx.db.position().iter() {\n if let Some(vel) = ctx.db.velocity().entity_id().find(&position.entity_id) {\n let new_x = position.x + vel.vx;\n let new_y = position.y + vel.vy;\n ctx.db.next_position().entity_id().update(NextPosition {\n entity_id: position.entity_id,\n x: new_x,\n y: new_y,\n });\n }\n }\n Ok(())\n}",
- "category": "schema",
- "route_api_model": "deepseek-reasoner",
- "scorer_details": {
- "ecs_next_pos_entity2": {
- "pass": false,
- "partial": 0.0,
- "notes": {
- "error": "spacetime call failed:\nWARNING: This command is UNSTABLE and subject to breaking changes.\n\nError: Response text: The instance encountered a fatal error.\n\nCaused by:\n HTTP status server error (530 ) for url (http://127.0.0.1:51837/v1/database/c200850a27f2c7b38bd43bed2c7fbefe5e9fc22392017696d385a87542e5769e/call/step)\n",
- "phase": "call_reducer"
- }
- },
- "ecs_next_pos_entity1": {
- "pass": false,
- "partial": 0.0,
- "notes": {
- "error": "spacetime call failed:\nWARNING: This command is UNSTABLE and subject to breaking changes.\n\nError: Response text: The instance encountered a fatal error.\n\nCaused by:\n HTTP status server error (530 ) for url (http://127.0.0.1:51837/v1/database/c200850a27f2c7b38bd43bed2c7fbefe5e9fc22392017696d385a87542e5769e/call/step)\n",
- "phase": "call_reducer"
- }
- },
- "ecs_seed_position_count": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "actual": 2,
- "expected": 2,
- "sql": "SELECT COUNT(*) AS n FROM position"
- }
- },
- "schema_parity": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "reducers_diff": null,
- "reducers_equal": true,
- "tables_diff": null,
- "tables_equal": true
- }
- },
- "ecs_step_next_position_count": {
- "pass": false,
- "partial": 0.0,
- "notes": {
- "error": "spacetime call failed:\nWARNING: This command is UNSTABLE and subject to breaking changes.\n\nError: Response text: The instance encountered a fatal error.\n\nCaused by:\n HTTP status server error (530 ) for url (http://127.0.0.1:51837/v1/database/c200850a27f2c7b38bd43bed2c7fbefe5e9fc22392017696d385a87542e5769e/call/step)\n",
- "phase": "call_reducer"
- }
- }
- },
- "vendor": "deepseek"
- },
- "t_021_multi_column_index": {
- "hash": "475c22b985e81027333ffa0d043dc9cbbb2ed9171f8083e5747c79c5585722d9",
- "task": "t_021_multi_column_index",
- "lang": "rust",
- "golden_published": true,
- "model_name": "DeepSeek Reasoner",
- "total_tests": 4,
- "passed_tests": 4,
- "category": "schema",
- "route_api_model": "deepseek-reasoner",
- "scorer_details": {
- "mcindex_seed_count": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "actual": 3,
- "expected": 3,
- "sql": "SELECT COUNT(*) AS n FROM log"
- }
- },
- "mcindex_lookup_u7_d1": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "actual": 1,
- "expected": 1,
- "sql": "SELECT COUNT(*) AS n FROM log WHERE user_id=7 AND day=1"
- }
- },
- "schema_parity": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "reducers_diff": null,
- "reducers_equal": true,
- "tables_diff": null,
- "tables_equal": true
- }
- },
- "mcindex_lookup_u7_d2": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "actual": 1,
- "expected": 1,
- "sql": "SELECT COUNT(*) AS n FROM log WHERE user_id=7 AND day=2"
- }
- }
- },
- "vendor": "deepseek"
- }
- }
- }
- ]
- },
- {
- "mode": "llms.md",
- "hash": "7bd4918052e02c4b09d50e7037cd2e81add76a4b42468acac54ee8f4073e37cf",
- "models": [
- {
- "name": "Grok 4",
- "route_api_model": "grok-4",
- "tasks": {
- "t_002_scheduled_table": {
- "hash": "7bd4918052e02c4b09d50e7037cd2e81add76a4b42468acac54ee8f4073e37cf",
- "task": "t_002_scheduled_table",
- "lang": "rust",
- "golden_published": false,
- "model_name": "Grok 4",
- "total_tests": 1,
- "passed_tests": 0,
- "llm_output": "```rust\nuse spacetimedb::{table, reducer, ReducerContext, ScheduleAt, TimeDuration};\n\n#[table(accessor = tick_timer, scheduled(tick))]\n#[derive(Clone, Debug)]\npub struct TickTimer {\n #[primary_key]\n #[auto_inc]\n pub scheduled_id: u64,\n pub scheduled_at: ScheduleAt,\n}\n\n#[reducer(init)]\npub fn init(ctx: &ReducerContext) {\n ctx.db.tick_timer().insert(TickTimer {\n scheduled_id: 0,\n scheduled_at: TimeDuration::from_micros(50_000).into(),\n });\n}\n\n#[reducer]\npub fn tick(ctx: &ReducerContext, args: TickTimer) -> Result<(), String> {\n if ctx.sender() != ctx.identity() {\n return Err(\"Reducer `tick` may not be invoked by clients, only via scheduling.\".into());\n }\n Ok(())\n}\n```",
- "category": "basics",
- "route_api_model": "grok-4",
- "scorer_details": {
- "publish_error": {
- "pass": false,
- "partial": 0.0,
- "notes": {
- "error": "spacetime publish failed (exit=1)\n--- stderr ---\n Updating crates.io index\n Locking 104 packages to latest compatible versions\n Adding generic-array v0.14.7 (available: v0.14.9)\n Compiling proc-macro2 v1.0.106\n Compiling unicode-ident v1.0.24\n Compiling quote v1.0.44\n Compiling typenum v1.19.0\n Compiling version_check v0.9.5\n Compiling autocfg v1.5.0\n Compiling heck v0.5.0\n Compiling serde_core v1.0.228\n Compiling cfg-if v1.0.4\n Compiling rustversion v1.0.22\n Compiling either v1.15.0\n Compiling shlex v1.3.0\n Compiling find-msvc-tools v0.1.9\n Compiling serde v1.0.228\n Compiling itoa v1.0.17\n Compiling anyhow v1.0.102\n Compiling nohash-hasher v0.2.0\n Compiling zerocopy v0.8.39\n Compiling bitflags v2.11.0\n Compiling thiserror v1.0.69\n Compiling bytes v1.11.1\n Compiling ryu v1.0.23\n Compiling keccak v0.1.6\n Compiling humantime v2.3.0\n Compiling arrayvec v0.7.6\n Compiling heck v0.4.1\n Compiling convert_case v0.4.0\n Compiling constant_time_eq v0.4.2\n Compiling uuid v1.21.0\n Compiling getrandom v0.2.17\n Compiling smallvec v1.15.1\n Compiling itertools v0.12.1\n Compiling hex v0.4.3\n Compiling bytemuck v1.25.0\n Compiling arrayref v0.3.9\n Compiling cc v1.2.56\n Compiling spacetimedb-lib v2.0.0 (D:\\Development\\ClockworkLabs\\SpacetimeDB\\SpacetimeDBPrivate\\public\\crates\\lib)\n Compiling zmij v1.0.21\n Compiling second-stack v0.3.5\n Compiling rand_core v0.6.4\n Compiling log v0.4.29\n Compiling serde_json v1.0.149\n Compiling generic-array v0.14.7\n Compiling memchr v2.8.0\n Compiling scoped-tls v1.0.1\n Compiling num-traits v0.2.19\n Compiling http v1.4.0\n Compiling blake3 v1.8.3\n Compiling syn v2.0.117\n Compiling castaway v0.2.4\n Compiling lean_string v0.5.1\n Compiling approx v0.3.2\n Compiling chrono v0.4.43\n Compiling decorum v0.3.1\n Compiling block-buffer v0.10.4\n Compiling crypto-common v0.1.7\n Compiling digest v0.10.7\n Compiling sha3 v0.10.8\n Compiling ethnum v1.5.2\n Compiling ppv-lite86 v0.2.21\n Compiling enum-as-inner v0.6.1\n Compiling thiserror-impl v1.0.69\n Compiling derive_more v0.99.20\n Compiling rand_chacha v0.3.1\n Compiling rand v0.8.5\n Compiling spacetimedb-primitives v2.0.0 (D:\\Development\\ClockworkLabs\\SpacetimeDB\\SpacetimeDBPrivate\\public\\crates\\primitives)\n Compiling spacetimedb-bindings-sys v2.0.0 (D:\\Development\\ClockworkLabs\\SpacetimeDB\\SpacetimeDBPrivate\\public\\crates\\bindings-sys)\n Compiling spacetimedb-bindings-macro v2.0.0 (D:\\Development\\ClockworkLabs\\SpacetimeDB\\SpacetimeDBPrivate\\public\\crates\\bindings-macro)\n Compiling spacetimedb-sats v2.0.0 (D:\\Development\\ClockworkLabs\\SpacetimeDB\\SpacetimeDBPrivate\\public\\crates\\sats)\n Compiling spacetimedb-query-builder v2.0.0 (D:\\Development\\ClockworkLabs\\SpacetimeDB\\SpacetimeDBPrivate\\public\\crates\\query-builder)\n Compiling spacetimedb v2.0.0 (D:\\Development\\ClockworkLabs\\SpacetimeDB\\SpacetimeDBPrivate\\public\\crates\\bindings)\n Compiling spacetime-module v0.1.0 (D:\\Development\\ClockworkLabs\\SpacetimeDB\\SpacetimeDBPrivate\\public\\target\\llm-runs\\basics\\t_002_scheduled_table\\rust\\server\\grok-4\\llm)\nerror[E0599]: no method named `insert` found for reference `&tick_timer__TableHandle` in the current scope\n --> src\\lib.rs:15:25\n |\n15 | ctx.db.tick_timer().insert(TickTimer {\n | --------------------^^^^^^\n |\n = help: items from traits can only be used if the trait is in scope\nhelp: trait `Table` which provides `insert` is implemented but not in scope; perhaps you want to import it\n |\n 2 + use spacetimedb::Table;\n |\nhelp: there is a method `try_insert` with a similar name\n |\n15 | ctx.db.tick_timer().try_insert(TickTimer {\n | ++++\n\nwarning: unused variable: `args`\n --> src\\lib.rs:22:35\n |\n22 | pub fn tick(ctx: &ReducerContext, args: TickTimer) -> Result<(), String> {\n | ^^^^ help: if this is intentional, prefix it with an underscore: `_args`\n |\n = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default\n\nFor more information about this error, try `rustc --explain E0599`.\nwarning: `spacetime-module` (lib) generated 1 warning\nerror: could not compile `spacetime-module` (lib) due to 1 previous error; 1 warning emitted\nError: command [\"cargo\", \"build\", \"--config=net.git-fetch-with-cli=true\", \"--target=wasm32-unknown-unknown\", \"--release\", \"--message-format=json-render-diagnostics\"] exited with code 101\n\n--- stdout ---\n",
- "phase": "build_or_publish"
- }
- }
- },
- "vendor": "xai"
- },
- "t_012_spacetime_product_type": {
- "hash": "7bd4918052e02c4b09d50e7037cd2e81add76a4b42468acac54ee8f4073e37cf",
- "task": "t_012_spacetime_product_type",
- "lang": "rust",
- "golden_published": true,
- "model_name": "Grok 4",
- "total_tests": 3,
- "passed_tests": 3,
- "category": "schema",
- "route_api_model": "grok-4",
- "scorer_details": {
- "product_type_row_count": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "actual": 1,
- "expected": 1,
- "sql": "SELECT COUNT(*) AS n FROM result WHERE id=1"
- }
- },
- "schema_parity": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "reducers_diff": null,
- "reducers_equal": true,
- "tables_diff": null,
- "tables_equal": true
- }
- },
- "product_type_row_parity": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "args": [
- 1,
- 2,
- 3
- ],
- "golden_out": "id | value ----+----------------------- 1 | (left = 2, right = 3)",
- "llm_out": "id | value ----+----------------------- 1 | (left = 2, right = 3)",
- "query": "SELECT id, value FROM result WHERE id=1",
- "reducer": "set_score"
- }
- }
- },
- "vendor": "xai"
- },
- "t_017_scheduled_columns": {
- "hash": "7bd4918052e02c4b09d50e7037cd2e81add76a4b42468acac54ee8f4073e37cf",
- "task": "t_017_scheduled_columns",
- "lang": "rust",
- "golden_published": true,
- "model_name": "Grok 4",
- "total_tests": 2,
- "passed_tests": 2,
- "category": "schema",
- "route_api_model": "grok-4",
- "scorer_details": {
- "schema_parity": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "reducers_diff": null,
- "reducers_equal": true,
- "tables_diff": null,
- "tables_equal": true
- }
- },
- "scheduled_seeded_one_row": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "actual": 1,
- "expected": 1,
- "sql": "SELECT COUNT(*) AS n FROM tick_timer WHERE scheduled_id>=0"
- }
- }
- },
- "vendor": "xai"
- },
- "t_021_multi_column_index": {
- "hash": "7bd4918052e02c4b09d50e7037cd2e81add76a4b42468acac54ee8f4073e37cf",
- "task": "t_021_multi_column_index",
- "lang": "rust",
- "golden_published": false,
- "model_name": "Grok 4",
- "total_tests": 4,
- "passed_tests": 0,
- "llm_output": "use spacetimedb::{reducer, ReducerContext, Table};\n\n#[table(accessor = log, index(accessor = by_user_day, btree(columns = [user_id, day])))]\n#[derive(Clone, Debug)]\npub struct Log {\n #[primary_key]\n pub id: i32,\n pub user_id: i32,\n pub day: i32,\n pub message: String,\n}\n\n#[reducer]\npub fn seed(ctx: &ReducerContext) {\n ctx.db.log().insert(Log { id: 1, user_id: 7, day: 1, message: \"a\".to_string() });\n ctx.db.log().insert(Log { id: 2, user_id: 7, day: 2, message: \"b\".to_string() });\n ctx.db.log().insert(Log { id: 3, user_id: 9, day: 1, message: \"c\".to_string() });\n}",
- "category": "schema",
- "route_api_model": "grok-4",
- "scorer_details": {
- "publish_error": {
- "pass": false,
- "partial": 0.0,
- "notes": {
- "error": "spacetime publish failed (exit=1)\n--- stderr ---\n Updating crates.io index\n Locking 104 packages to latest compatible versions\n Adding generic-array v0.14.7 (available: v0.14.9)\n Compiling proc-macro2 v1.0.106\n Compiling unicode-ident v1.0.24\n Compiling quote v1.0.44\n Compiling version_check v0.9.5\n Compiling typenum v1.19.0\n Compiling autocfg v1.5.0\n Compiling serde_core v1.0.228\n Compiling heck v0.5.0\n Compiling cfg-if v1.0.4\n Compiling rustversion v1.0.22\n Compiling either v1.15.0\n Compiling serde v1.0.228\n Compiling shlex v1.3.0\n Compiling find-msvc-tools v0.1.9\n Compiling itoa v1.0.17\n Compiling nohash-hasher v0.2.0\n Compiling anyhow v1.0.102\n Compiling zerocopy v0.8.39\n Compiling thiserror v1.0.69\n Compiling bitflags v2.11.0\n Compiling humantime v2.3.0\n Compiling arrayvec v0.7.6\n Compiling heck v0.4.1\n Compiling bytes v1.11.1\n Compiling ryu v1.0.23\n Compiling keccak v0.1.6\n Compiling convert_case v0.4.0\n Compiling bytemuck v1.25.0\n Compiling hex v0.4.3\n Compiling getrandom v0.2.17\n Compiling constant_time_eq v0.4.2\n Compiling arrayref v0.3.9\n Compiling itertools v0.12.1\n Compiling zmij v1.0.21\n Compiling second-stack v0.3.5\n Compiling smallvec v1.15.1\n Compiling spacetimedb-lib v2.0.0 (D:\\Development\\ClockworkLabs\\SpacetimeDB\\SpacetimeDBPrivate\\public\\crates\\lib)\n Compiling uuid v1.21.0\n Compiling rand_core v0.6.4\n Compiling generic-array v0.14.7\n Compiling serde_json v1.0.149\n Compiling log v0.4.29\n Compiling memchr v2.8.0\n Compiling scoped-tls v1.0.1\n Compiling cc v1.2.56\n Compiling num-traits v0.2.19\n Compiling http v1.4.0\n Compiling castaway v0.2.4\n Compiling lean_string v0.5.1\n Compiling syn v2.0.117\n Compiling blake3 v1.8.3\n Compiling approx v0.3.2\n Compiling chrono v0.4.43\n Compiling decorum v0.3.1\n Compiling block-buffer v0.10.4\n Compiling crypto-common v0.1.7\n Compiling digest v0.10.7\n Compiling sha3 v0.10.8\n Compiling ethnum v1.5.2\n Compiling ppv-lite86 v0.2.21\n Compiling enum-as-inner v0.6.1\n Compiling thiserror-impl v1.0.69\n Compiling derive_more v0.99.20\n Compiling rand_chacha v0.3.1\n Compiling rand v0.8.5\n Compiling spacetimedb-primitives v2.0.0 (D:\\Development\\ClockworkLabs\\SpacetimeDB\\SpacetimeDBPrivate\\public\\crates\\primitives)\n Compiling spacetimedb-bindings-sys v2.0.0 (D:\\Development\\ClockworkLabs\\SpacetimeDB\\SpacetimeDBPrivate\\public\\crates\\bindings-sys)\n Compiling spacetimedb-bindings-macro v2.0.0 (D:\\Development\\ClockworkLabs\\SpacetimeDB\\SpacetimeDBPrivate\\public\\crates\\bindings-macro)\n Compiling spacetimedb-sats v2.0.0 (D:\\Development\\ClockworkLabs\\SpacetimeDB\\SpacetimeDBPrivate\\public\\crates\\sats)\n Compiling spacetimedb-query-builder v2.0.0 (D:\\Development\\ClockworkLabs\\SpacetimeDB\\SpacetimeDBPrivate\\public\\crates\\query-builder)\n Compiling spacetimedb v2.0.0 (D:\\Development\\ClockworkLabs\\SpacetimeDB\\SpacetimeDBPrivate\\public\\crates\\bindings)\n Compiling spacetime-module v0.1.0 (D:\\Development\\ClockworkLabs\\SpacetimeDB\\SpacetimeDBPrivate\\public\\target\\llm-runs\\schema\\t_021_multi_column_index\\rust\\server\\grok-4\\llm)\nerror: cannot find attribute `table` in this scope\n --> src\\lib.rs:4:3\n |\n4 | #[table(accessor = log, index(accessor = by_user_day, btree(columns = [user_id, day])))]\n | ^^^^^\n |\nhelp: a built-in attribute with a similar name exists\n |\n4 | #[stable(accessor = log, index(accessor = by_user_day, btree(columns = [user_id, day])))]\n | +\nhelp: consider importing this attribute macro\n |\n2 + use spacetimedb::table;\n |\n\nerror: cannot find attribute `primary_key` in this scope\n --> src\\lib.rs:7:7\n |\n7 | #[primary_key]\n | ^^^^^^^^^^^\n |\n = note: `primary_key` is an attribute that can be used by the derive macro `__TableHelper`, you might be missing a `derive` attribute\n\nerror[E0599]: no method named `log` found for struct `Local` in the current scope\n --> src\\lib.rs:16:12\n |\n16 | ctx.db.log().insert(Log { id: 1, user_id: 7, day: 1, message: \"a\".to_string() });\n | ^^^ method not found in `Local`\n\nerror[E0599]: no method named `log` found for struct `Local` in the current scope\n --> src\\lib.rs:17:12\n |\n17 | ctx.db.log().insert(Log { id: 2, user_id: 7, day: 2, message: \"b\".to_string() });\n | ^^^ method not found in `Local`\n\nerror[E0599]: no method named `log` found for struct `Local` in the current scope\n --> src\\lib.rs:18:12\n |\n18 | ctx.db.log().insert(Log { id: 3, user_id: 9, day: 1, message: \"c\".to_string() });\n | ^^^ method not found in `Local`\n\nFor more information about this error, try `rustc --explain E0599`.\nerror: could not compile `spacetime-module` (lib) due to 5 previous errors\nError: command [\"cargo\", \"build\", \"--config=net.git-fetch-with-cli=true\", \"--target=wasm32-unknown-unknown\", \"--release\", \"--message-format=json-render-diagnostics\"] exited with code 101\n\n--- stdout ---\n",
- "phase": "build_or_publish"
- }
- }
- },
- "vendor": "xai"
- }
- }
- }
- ]
- },
- {
- "mode": "rustdoc_json",
- "hash": "b0d5bbe755291d8ec65de0a74b4eecfa344670639ca5f1a365ced3ab9717e97c",
- "models": [
- {
- "name": "Grok 4",
- "route_api_model": "grok-4",
- "tasks": {
- "t_000_empty_reducers": {
- "hash": "d47c11c6f8fd2858029ca4bcb1a9fdc8b79b46dac58a8a1b6ddb16f9f3d7213e",
- "task": "t_000_empty_reducers",
- "lang": "rust",
- "golden_published": true,
- "model_name": "Grok 4",
- "total_tests": 1,
- "passed_tests": 1,
- "llm_output": "use spacetimedb::{reducer, ReducerContext};\n\n#[reducer]\npub fn empty_reducer_no_args(ctx: &ReducerContext) {}\n\n#[reducer]\npub fn empty_reducer_with_int(ctx: &ReducerContext, count: i32) {}\n\n#[reducer]\npub fn empty_reducer_with_string(ctx: &ReducerContext, name: String) {}\n\n#[reducer]\npub fn empty_reducer_with_two_args(ctx: &ReducerContext, count: i32, name: String) {}\n\n#[reducer]\npub fn empty_reducer_with_three_args(ctx: &ReducerContext, active: bool, ratio: f32, label: String) {}",
- "category": "basics",
- "route_api_model": "grok-4",
- "golden_db": "basics-t-000-empty-reducers-golden",
- "llm_db": "basics-t-000-empty-reducers-grok-4-llm",
- "work_dir_golden": "target\\llm-runs\\basics\\t_000_empty_reducers\\rust\\server\\golden",
- "work_dir_llm": "target\\llm-runs\\basics\\t_000_empty_reducers\\rust\\server\\grok-4\\llm",
- "scorer_details": {
- "schema_parity": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "golden_db": "basics-t-000-empty-reducers-golden",
- "llm_db": "basics-t-000-empty-reducers-grok-4-llm",
- "reducers_diff": null,
- "reducers_equal": true,
- "server": "local",
- "tables_diff": null,
- "tables_equal": true
- }
- }
- },
- "vendor": "xai",
- "started_at": "2025-10-22T01:02:05.164175300Z",
- "finished_at": "2025-10-22T01:03:40.928800800Z"
- },
- "t_001_basic_tables": {
- "hash": "d47c11c6f8fd2858029ca4bcb1a9fdc8b79b46dac58a8a1b6ddb16f9f3d7213e",
- "task": "t_001_basic_tables",
- "lang": "rust",
- "golden_published": true,
- "model_name": "Grok 4",
- "total_tests": 1,
- "passed_tests": 1,
- "llm_output": "use spacetimedb::table;\n\n#[table(name = users)]\npub struct User {\n #[primary_key]\n id: i32,\n name: String,\n age: i32,\n active: bool\n}\n\n#[table(name = products)]\npub struct Product {\n #[primary_key]\n id: i32,\n title: String,\n price: f32,\n in_stock: bool\n}\n\n#[table(name = notes)]\npub struct Note {\n #[primary_key]\n id: i32,\n body: String,\n rating: i64,\n pinned: bool\n}",
- "category": "basics",
- "route_api_model": "grok-4",
- "golden_db": "basics-t-001-basic-tables-golden",
- "llm_db": "basics-t-001-basic-tables-grok-4-llm",
- "work_dir_golden": "target\\llm-runs\\basics\\t_001_basic_tables\\rust\\server\\golden",
- "work_dir_llm": "target\\llm-runs\\basics\\t_001_basic_tables\\rust\\server\\grok-4\\llm",
- "scorer_details": {
- "schema_parity": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "golden_db": "basics-t-001-basic-tables-golden",
- "llm_db": "basics-t-001-basic-tables-grok-4-llm",
- "reducers_diff": null,
- "reducers_equal": true,
- "server": "local",
- "tables_diff": null,
- "tables_equal": true
- }
- }
- },
- "vendor": "xai",
- "started_at": "2025-10-22T01:02:05.179899400Z",
- "finished_at": "2025-10-22T01:03:50.594608Z"
- },
- "t_002_scheduled_table": {
- "hash": "b0d5bbe755291d8ec65de0a74b4eecfa344670639ca5f1a365ced3ab9717e97c",
- "task": "t_002_scheduled_table",
- "lang": "rust",
- "golden_published": false,
- "model_name": "Grok 4",
- "total_tests": 1,
- "passed_tests": 0,
- "category": "basics",
- "route_api_model": "grok-4",
- "scorer_details": {
- "publish_error": {
- "pass": false,
- "partial": 0.0,
- "notes": {
- "error": "POST https://api.x.ai/v1/chat/completions status 429 Too Many Requests body: {\"code\":\"Some resource has been exhausted\",\"error\":\"Your team 5fc90f6d-3ee0-435e-a2e2-c7d23f7ea90d has either used all available credits or reached its monthly spending limit. To continue making API requests, please purchase more credits or raise your spending limit.\"}",
- "phase": "build_or_publish"
- }
- }
- },
- "vendor": "xai"
- },
- "t_003_struct_in_table": {
- "hash": "d47c11c6f8fd2858029ca4bcb1a9fdc8b79b46dac58a8a1b6ddb16f9f3d7213e",
- "task": "t_003_struct_in_table",
- "lang": "rust",
- "golden_published": false,
- "model_name": "Grok 4",
- "total_tests": 1,
- "passed_tests": 0,
- "llm_output": "use spacetimedb::spacetimedb;\n\n#[derive(SpacetimeType)]\npub struct Position {\n x: i32,\n y: i32,\n}\n\n#[spacetimedb::table(name = entities)]\npub struct Entity {\n #[primary_key]\n id: i32,\n pos: Position,\n}",
- "category": "basics",
- "route_api_model": "grok-4",
- "golden_db": "basics-t-003-struct-in-table-golden",
- "llm_db": "basics-t-003-struct-in-table-grok-4-llm",
- "work_dir_golden": "target\\llm-runs\\basics\\t_003_struct_in_table\\rust\\server\\golden",
- "work_dir_llm": "target\\llm-runs\\basics\\t_003_struct_in_table\\rust\\server\\grok-4\\llm",
- "scorer_details": {
- "publish_error": {
- "pass": false,
- "partial": 0.0,
- "notes": {
- "error": "spacetime publish failed (exit=1)\n--- stderr ---\n Updating crates.io index\n Locking 67 packages to latest compatible versions\n Compiling proc-macro2 v1.0.101\n Compiling unicode-ident v1.0.20\n Compiling quote v1.0.41\n Compiling version_check v0.9.5\n Compiling typenum v1.19.0\n Compiling autocfg v1.5.0\n Compiling cfg-if v1.0.4\n Compiling serde_core v1.0.228\n Compiling either v1.15.0\n Compiling shlex v1.3.0\n Compiling find-msvc-tools v0.1.4\n Compiling zerocopy v0.8.27\n Compiling serde v1.0.228\n Compiling anyhow v1.0.100\n Compiling nohash-hasher v0.2.0\n Compiling thiserror v1.0.69\n Compiling bitflags v2.10.0\n Compiling convert_case v0.4.0\n Compiling heck v0.4.1\n Compiling humantime v2.3.0\n Compiling arrayvec v0.7.6\n Compiling heck v0.5.0\n Compiling keccak v0.1.5\n Compiling arrayref v0.3.9\n Compiling constant_time_eq v0.3.1\n Compiling bytes v1.10.1\n Compiling smallvec v1.15.1\n Compiling hex v0.4.3\n Compiling bytemuck v1.24.0\n Compiling itertools v0.12.1\n Compiling getrandom v0.2.16\n Compiling second-stack v0.3.5\n Compiling cc v1.2.41\n Compiling spacetimedb-lib v1.6.0\n Compiling log v0.4.28\n Compiling scoped-tls v1.0.1\n Compiling generic-array v0.14.9\n Compiling rand_core v0.6.4\n Compiling num-traits v0.2.19\n Compiling blake3 v1.8.2\n Compiling spacetimedb-primitives v1.6.0\n Compiling spacetimedb-bindings-sys v1.6.0\n Compiling syn v2.0.107\n Compiling block-buffer v0.10.4\n Compiling crypto-common v0.1.6\n Compiling ppv-lite86 v0.2.21\n Compiling digest v0.10.7\n Compiling ethnum v1.5.2\n Compiling sha3 v0.10.8\n Compiling rand_chacha v0.3.1\n Compiling approx v0.3.2\n Compiling chrono v0.4.42\n Compiling decorum v0.3.1\n Compiling rand v0.8.5\n Compiling thiserror-impl v1.0.69\n Compiling spacetimedb-bindings-macro v1.6.0\n Compiling derive_more v0.99.20\n Compiling enum-as-inner v0.6.1\n Compiling spacetimedb-sats v1.6.0\n Compiling spacetimedb v1.6.0\n Compiling spacetime-module v0.1.0 (E:\\Development\\ClockworkLabs\\SpacetimeDB\\SpacetimeDBPrivate\\private\\target\\llm-runs\\basics\\t_003_struct_in_table\\rust\\server\\grok-4\\llm)\nerror[E0432]: unresolved import `spacetimedb::spacetimedb`\n --> src\\lib.rs:2:5\n |\n2 | use spacetimedb::spacetimedb;\n | ^^^^^^^^^^^^^^^^^^^^^^^^ no `spacetimedb` in the root\n\nerror: cannot find derive macro `SpacetimeType` in this scope\n --> src\\lib.rs:4:10\n |\n4 | #[derive(SpacetimeType)]\n | ^^^^^^^^^^^^^\n |\nhelp: consider importing this derive macro\n |\n2 + use spacetimedb::SpacetimeType;\n |\n\nFor more information about this error, try `rustc --explain E0432`.\nerror: could not compile `spacetime-module` (lib) due to 2 previous errors\nError: command [\"cargo\", \"build\", \"--config=net.git-fetch-with-cli=true\", \"--target=wasm32-unknown-unknown\", \"--release\", \"--message-format=json-render-diagnostics\"] exited with code 101\n\n--- stdout ---\n",
- "phase": "build_or_publish"
- }
- }
- },
- "vendor": "xai",
- "started_at": "2025-10-22T01:02:05.185773400Z",
- "finished_at": "2025-10-22T01:03:37.665154500Z"
- },
- "t_004_insert": {
- "hash": "d47c11c6f8fd2858029ca4bcb1a9fdc8b79b46dac58a8a1b6ddb16f9f3d7213e",
- "task": "t_004_insert",
- "lang": "rust",
- "golden_published": false,
- "model_name": "Grok 4",
- "total_tests": 2,
- "passed_tests": 0,
- "llm_output": "use spacetimedb::{table, reducer, ReducerContext};\n\n#[table(name = users)]\npub struct User {\n #[primary_key]\n id: i32,\n name: String,\n age: i32,\n active: bool,\n}\n\n#[reducer]\npub fn insert_user(ctx: &ReducerContext, id: i32, name: String, age: i32, active: bool) {\n ctx.db.users().insert(User { id, name, age, active });\n}",
- "category": "basics",
- "route_api_model": "grok-4",
- "golden_db": "basics-t-004-insert-golden",
- "llm_db": "basics-t-004-insert-grok-4-llm",
- "work_dir_golden": "target\\llm-runs\\basics\\t_004_insert\\rust\\server\\golden",
- "work_dir_llm": "target\\llm-runs\\basics\\t_004_insert\\rust\\server\\grok-4\\llm",
- "scorer_details": {
- "publish_error": {
- "pass": false,
- "partial": 0.0,
- "notes": {
- "error": "spacetime publish failed (exit=1)\n--- stderr ---\n Updating crates.io index\n Locking 67 packages to latest compatible versions\n Blocking waiting for file lock on package cache\n Compiling proc-macro2 v1.0.101\n Compiling quote v1.0.41\n Compiling unicode-ident v1.0.20\n Compiling version_check v0.9.5\n Compiling typenum v1.19.0\n Compiling autocfg v1.5.0\n Compiling serde_core v1.0.228\n Compiling cfg-if v1.0.4\n Compiling shlex v1.3.0\n Compiling find-msvc-tools v0.1.4\n Compiling either v1.15.0\n Compiling zerocopy v0.8.27\n Compiling serde v1.0.228\n Compiling anyhow v1.0.100\n Compiling nohash-hasher v0.2.0\n Compiling bitflags v2.10.0\n Compiling thiserror v1.0.69\n Compiling convert_case v0.4.0\n Compiling keccak v0.1.5\n Compiling humantime v2.3.0\n Compiling heck v0.4.1\n Compiling arrayvec v0.7.6\n Compiling heck v0.5.0\n Compiling bytemuck v1.24.0\n Compiling second-stack v0.3.5\n Compiling smallvec v1.15.1\n Compiling hex v0.4.3\n Compiling bytes v1.10.1\n Compiling arrayref v0.3.9\n Compiling getrandom v0.2.16\n Compiling constant_time_eq v0.3.1\n Compiling spacetimedb-lib v1.6.0\n Compiling itertools v0.12.1\n Compiling rand_core v0.6.4\n Compiling log v0.4.28\n Compiling generic-array v0.14.9\n Compiling scoped-tls v1.0.1\n Compiling cc v1.2.41\n Compiling num-traits v0.2.19\n Compiling spacetimedb-primitives v1.6.0\n Compiling blake3 v1.8.2\n Compiling spacetimedb-bindings-sys v1.6.0\n Compiling crypto-common v0.1.6\n Compiling block-buffer v0.10.4\n Compiling digest v0.10.7\n Compiling syn v2.0.107\n Compiling approx v0.3.2\n Compiling chrono v0.4.42\n Compiling sha3 v0.10.8\n Compiling ppv-lite86 v0.2.21\n Compiling decorum v0.3.1\n Compiling rand_chacha v0.3.1\n Compiling rand v0.8.5\n Compiling ethnum v1.5.2\n Compiling thiserror-impl v1.0.69\n Compiling spacetimedb-bindings-macro v1.6.0\n Compiling enum-as-inner v0.6.1\n Compiling derive_more v0.99.20\n Compiling spacetimedb-sats v1.6.0\n Compiling spacetimedb v1.6.0\n Compiling spacetime-module v0.1.0 (E:\\Development\\ClockworkLabs\\SpacetimeDB\\SpacetimeDBPrivate\\private\\target\\llm-runs\\basics\\t_004_insert\\rust\\server\\grok-4\\llm)\nerror[E0599]: no method named `insert` found for reference `&users__TableHandle` in the current scope\n --> src\\lib.rs:15:20\n |\n15 | ctx.db.users().insert(User { id, name, age, active });\n | ^^^^^^\n |\n = help: items from traits can only be used if the trait is in scope\nhelp: trait `Table` which provides `insert` is implemented but not in scope; perhaps you want to import it\n |\n 2 + use spacetimedb::Table;\n |\nhelp: there is a method `try_insert` with a similar name\n |\n15 | ctx.db.users().try_insert(User { id, name, age, active });\n | ++++\n\nFor more information about this error, try `rustc --explain E0599`.\nerror: could not compile `spacetime-module` (lib) due to 1 previous error\nError: command [\"cargo\", \"build\", \"--config=net.git-fetch-with-cli=true\", \"--target=wasm32-unknown-unknown\", \"--release\", \"--message-format=json-render-diagnostics\"] exited with code 101\n\n--- stdout ---\n",
- "phase": "build_or_publish"
- }
- }
- },
- "vendor": "xai",
- "started_at": "2025-10-22T01:02:05.188490Z",
- "finished_at": "2025-10-22T01:02:55.582287600Z"
- },
- "t_005_update": {
- "hash": "d47c11c6f8fd2858029ca4bcb1a9fdc8b79b46dac58a8a1b6ddb16f9f3d7213e",
- "task": "t_005_update",
- "lang": "rust",
- "golden_published": true,
- "model_name": "Grok 4",
- "total_tests": 3,
- "passed_tests": 3,
- "llm_output": "use spacetimedb::{ReducerContext, Table};\n\n#[spacetimedb::table(name = users)]\npub struct User {\n #[primary_key]\n id: i32,\n name: String,\n age: i32,\n active: bool,\n}\n\n#[spacetimedb::reducer]\npub fn update_user(ctx: &ReducerContext, id: i32, name: String, age: i32, active: bool) {\n let user = User { id, name, age, active };\n ctx.db.users().id().update(user);\n}",
- "category": "basics",
- "route_api_model": "grok-4",
- "golden_db": "basics-t-005-update-golden",
- "llm_db": "basics-t-005-update-grok-4-llm",
- "work_dir_golden": "target\\llm-runs\\basics\\t_005_update\\rust\\server\\golden",
- "work_dir_llm": "target\\llm-runs\\basics\\t_005_update\\rust\\server\\grok-4\\llm",
- "scorer_details": {
- "data_parity_update_user": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "args": [
- 1,
- "Alice2",
- 31,
- false
- ],
- "golden_db": "basics-t-005-update-golden",
- "golden_out": "id | name | age | active ----+----------+-----+-------- 1 | \"Alice2\" | 31 | false",
- "llm_db": "basics-t-005-update-grok-4-llm",
- "llm_out": "id | name | age | active ----+----------+-----+-------- 1 | \"Alice2\" | 31 | false",
- "query": "SELECT id, name, age, active FROM users WHERE id=1",
- "reducer": "update_user",
- "server": "local"
- }
- },
- "schema_parity": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "golden_db": "basics-t-005-update-golden",
- "llm_db": "basics-t-005-update-grok-4-llm",
- "reducers_diff": null,
- "reducers_equal": true,
- "server": "local",
- "tables_diff": null,
- "tables_equal": true
- }
- },
- "seed_users_row": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "sql": "INSERT INTO users(id, name, age, active) VALUES (1, 'Alice', 30, true)"
- }
- }
- },
- "vendor": "xai",
- "started_at": "2025-10-22T01:02:05.191882800Z",
- "finished_at": "2025-10-22T01:03:51.231015600Z"
- },
- "t_006_delete": {
- "hash": "d47c11c6f8fd2858029ca4bcb1a9fdc8b79b46dac58a8a1b6ddb16f9f3d7213e",
- "task": "t_006_delete",
- "lang": "rust",
- "golden_published": true,
- "model_name": "Grok 4",
- "total_tests": 3,
- "passed_tests": 3,
- "llm_output": "use spacetimedb::{reducer, ReducerContext, table};\n\n#[table(name = users)]\npub struct User {\n #[primary_key]\n id: i32,\n name: String,\n age: i32,\n active: bool,\n}\n\n#[reducer]\npub fn delete_user(ctx: &ReducerContext, id: i32) {\n ctx.db.users().id().delete(&id);\n}",
- "category": "basics",
- "route_api_model": "grok-4",
- "golden_db": "basics-t-006-delete-golden",
- "llm_db": "basics-t-006-delete-grok-4-llm",
- "work_dir_golden": "target\\llm-runs\\basics\\t_006_delete\\rust\\server\\golden",
- "work_dir_llm": "target\\llm-runs\\basics\\t_006_delete\\rust\\server\\grok-4\\llm",
- "scorer_details": {
- "schema_parity": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "golden_db": "basics-t-006-delete-golden",
- "llm_db": "basics-t-006-delete-grok-4-llm",
- "reducers_diff": null,
- "reducers_equal": true,
- "server": "local",
- "tables_diff": null,
- "tables_equal": true
- }
- },
- "seed_users_row": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "sql": "INSERT INTO users(id, name, age, active) VALUES (1, 'Alice', 30, true)"
- }
- },
- "delete_user_count_zero": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "actual": 0,
- "expected": 0,
- "sql": "SELECT COUNT(*) AS n FROM users WHERE id=1"
- }
- }
- },
- "vendor": "xai",
- "started_at": "2025-10-22T01:02:05.194777800Z",
- "finished_at": "2025-10-22T01:03:09.975424400Z"
- },
- "t_007_crud": {
- "hash": "d47c11c6f8fd2858029ca4bcb1a9fdc8b79b46dac58a8a1b6ddb16f9f3d7213e",
- "task": "t_007_crud",
- "lang": "rust",
- "golden_published": false,
- "model_name": "Grok 4",
- "total_tests": 4,
- "passed_tests": 0,
- "llm_output": "use spacetimedb::{reducer, ReducerContext, UniqueColumn};\n\n#[spacetimedb::table(name = users)]\npub struct User {\n #[primary_key]\n id: i32,\n name: String,\n age: i32,\n active: bool,\n}\n\n#[reducer]\npub fn crud(ctx: &ReducerContext) {\n ctx.db.users().insert(User { id: 1, name: \"Alice\".to_string(), age: 30, active: true });\n ctx.db.users().insert(User { id: 2, name: \"Bob\".to_string(), age: 22, active: false });\n let updated = User { id: 1, name: \"Alice2\".to_string(), age: 31, active: false };\n ctx.db.users().id().update(updated);\n ctx.db.users().id().delete(&2);\n}",
- "category": "basics",
- "route_api_model": "grok-4",
- "golden_db": "basics-t-007-crud-golden",
- "llm_db": "basics-t-007-crud-grok-4-llm",
- "work_dir_golden": "target\\llm-runs\\basics\\t_007_crud\\rust\\server\\golden",
- "work_dir_llm": "target\\llm-runs\\basics\\t_007_crud\\rust\\server\\grok-4\\llm",
- "scorer_details": {
- "publish_error": {
- "pass": false,
- "partial": 0.0,
- "notes": {
- "error": "spacetime publish failed (exit=1)\n--- stderr ---\n Updating crates.io index\n Locking 67 packages to latest compatible versions\n Compiling proc-macro2 v1.0.101\n Compiling unicode-ident v1.0.20\n Compiling quote v1.0.41\n Compiling typenum v1.19.0\n Compiling version_check v0.9.5\n Compiling autocfg v1.5.0\n Compiling serde_core v1.0.228\n Compiling cfg-if v1.0.4\n Compiling serde v1.0.228\n Compiling either v1.15.0\n Compiling zerocopy v0.8.27\n Compiling find-msvc-tools v0.1.4\n Compiling shlex v1.3.0\n Compiling bitflags v2.10.0\n Compiling anyhow v1.0.100\n Compiling nohash-hasher v0.2.0\n Compiling thiserror v1.0.69\n Compiling humantime v2.3.0\n Compiling convert_case v0.4.0\n Compiling keccak v0.1.5\n Compiling arrayvec v0.7.6\n Compiling heck v0.4.1\n Compiling heck v0.5.0\n Compiling second-stack v0.3.5\n Compiling hex v0.4.3\n Compiling bytemuck v1.24.0\n Compiling constant_time_eq v0.3.1\n Compiling bytes v1.10.1\n Compiling arrayref v0.3.9\n Compiling getrandom v0.2.16\n Compiling itertools v0.12.1\n Compiling spacetimedb-lib v1.6.0\n Compiling smallvec v1.15.1\n Compiling rand_core v0.6.4\n Compiling log v0.4.28\n Compiling scoped-tls v1.0.1\n Compiling generic-array v0.14.9\n Compiling cc v1.2.41\n Compiling num-traits v0.2.19\n Compiling spacetimedb-primitives v1.6.0\n Compiling blake3 v1.8.2\n Compiling spacetimedb-bindings-sys v1.6.0\n Compiling ppv-lite86 v0.2.21\n Compiling block-buffer v0.10.4\n Compiling crypto-common v0.1.6\n Compiling digest v0.10.7\n Compiling rand_chacha v0.3.1\n Compiling syn v2.0.107\n Compiling ethnum v1.5.2\n Compiling sha3 v0.10.8\n Compiling rand v0.8.5\n Compiling approx v0.3.2\n Compiling chrono v0.4.42\n Compiling decorum v0.3.1\n Compiling thiserror-impl v1.0.69\n Compiling enum-as-inner v0.6.1\n Compiling spacetimedb-bindings-macro v1.6.0\n Compiling derive_more v0.99.20\n Compiling spacetimedb-sats v1.6.0\n Compiling spacetimedb v1.6.0\n Compiling spacetime-module v0.1.0 (E:\\Development\\ClockworkLabs\\SpacetimeDB\\SpacetimeDBPrivate\\private\\target\\llm-runs\\basics\\t_007_crud\\rust\\server\\grok-4\\llm)\nwarning: unused import: `UniqueColumn`\n --> src\\lib.rs:2:44\n |\n2 | use spacetimedb::{reducer, ReducerContext, UniqueColumn};\n | ^^^^^^^^^^^^\n |\n = note: `#[warn(unused_imports)]` on by default\n\nerror[E0599]: no method named `insert` found for reference `&users__TableHandle` in the current scope\n --> src\\lib.rs:15:20\n |\n15 | ctx.db.users().insert(User { id: 1, name: \"Alice\".to_string(), age: 30, active: true });\n | ^^^^^^\n |\n = help: items from traits can only be used if the trait is in scope\nhelp: trait `Table` which provides `insert` is implemented but not in scope; perhaps you want to import it\n |\n 2 + use spacetimedb::Table;\n |\nhelp: there is a method `try_insert` with a similar name\n |\n15 | ctx.db.users().try_insert(User { id: 1, name: \"Alice\".to_string(), age: 30, active: true });\n | ++++\n\nerror[E0599]: no method named `insert` found for reference `&users__TableHandle` in the current scope\n --> src\\lib.rs:16:20\n |\n16 | ctx.db.users().insert(User { id: 2, name: \"Bob\".to_string(), age: 22, active: false });\n | ^^^^^^\n |\n = help: items from traits can only be used if the trait is in scope\nhelp: trait `Table` which provides `insert` is implemented but not in scope; perhaps you want to import it\n |\n 2 + use spacetimedb::Table;\n |\nhelp: there is a method `try_insert` with a similar name\n |\n16 | ctx.db.users().try_insert(User { id: 2, name: \"Bob\".to_string(), age: 22, active: false });\n | ++++\n\nFor more information about this error, try `rustc --explain E0599`.\nwarning: `spacetime-module` (lib) generated 1 warning\nerror: could not compile `spacetime-module` (lib) due to 2 previous errors; 1 warning emitted\nError: command [\"cargo\", \"build\", \"--config=net.git-fetch-with-cli=true\", \"--target=wasm32-unknown-unknown\", \"--release\", \"--message-format=json-render-diagnostics\"] exited with code 101\n\n--- stdout ---\n",
- "phase": "build_or_publish"
- }
- }
- },
- "vendor": "xai",
- "started_at": "2025-10-22T01:02:05.197437100Z",
- "finished_at": "2025-10-22T01:03:34.519339400Z"
- },
- "t_008_index_lookup": {
- "hash": "d47c11c6f8fd2858029ca4bcb1a9fdc8b79b46dac58a8a1b6ddb16f9f3d7213e",
- "task": "t_008_index_lookup",
- "lang": "rust",
- "golden_published": false,
- "model_name": "Grok 4",
- "total_tests": 3,
- "passed_tests": 0,
- "llm_output": "use spacetimedb::{table, reducer, ReducerContext, Table, UniqueColumn};\n\n#[table(name = users)]\npub struct User {\n #[primary_key]\n id: i32,\n name: String,\n age: i32,\n active: bool\n}\n\n#[table(name = results)]\npub struct Result {\n #[primary_key]\n id: i32,\n name: String\n}\n\n#[reducer]\npub fn lookup_user_name(ctx: &ReducerContext, id: i32) {\n if let Some(user) = ctx.db.users().id().find(&id) {\n ctx.db.results().insert(Result { id: user.id, name: user.name });\n }\n}",
- "category": "basics",
- "route_api_model": "grok-4",
- "golden_db": "basics-t-008-index-lookup-golden",
- "llm_db": "basics-t-008-index-lookup-grok-4-llm",
- "work_dir_golden": "target\\llm-runs\\basics\\t_008_index_lookup\\rust\\server\\golden",
- "work_dir_llm": "target\\llm-runs\\basics\\t_008_index_lookup\\rust\\server\\grok-4\\llm",
- "scorer_details": {
- "publish_error": {
- "pass": false,
- "partial": 0.0,
- "notes": {
- "error": "spacetime publish failed (exit=1)\n--- stderr ---\n Blocking waiting for file lock on package cache\n Updating crates.io index\n Blocking waiting for file lock on package cache\n Locking 67 packages to latest compatible versions\n Blocking waiting for file lock on package cache\n Blocking waiting for file lock on package cache\n Compiling proc-macro2 v1.0.101\n Compiling unicode-ident v1.0.20\n Compiling quote v1.0.41\n Compiling version_check v0.9.5\n Compiling typenum v1.19.0\n Compiling autocfg v1.5.0\n Compiling serde_core v1.0.228\n Compiling cfg-if v1.0.4\n Compiling zerocopy v0.8.27\n Compiling either v1.15.0\n Compiling serde v1.0.228\n Compiling shlex v1.3.0\n Compiling find-msvc-tools v0.1.4\n Compiling nohash-hasher v0.2.0\n Compiling anyhow v1.0.100\n Compiling bitflags v2.10.0\n Compiling thiserror v1.0.69\n Compiling heck v0.5.0\n Compiling arrayvec v0.7.6\n Compiling heck v0.4.1\n Compiling keccak v0.1.5\n Compiling humantime v2.3.0\n Compiling convert_case v0.4.0\n Compiling bytes v1.10.1\n Compiling second-stack v0.3.5\n Compiling hex v0.4.3\n Compiling smallvec v1.15.1\n Compiling bytemuck v1.24.0\n Compiling arrayref v0.3.9\n Compiling cc v1.2.41\n Compiling itertools v0.12.1\n Compiling getrandom v0.2.16\n Compiling constant_time_eq v0.3.1\n Compiling spacetimedb-lib v1.6.0\n Compiling scoped-tls v1.0.1\n Compiling generic-array v0.14.9\n Compiling log v0.4.28\n Compiling num-traits v0.2.19\n Compiling rand_core v0.6.4\n Compiling blake3 v1.8.2\n Compiling spacetimedb-primitives v1.6.0\n Compiling spacetimedb-bindings-sys v1.6.0\n Compiling block-buffer v0.10.4\n Compiling crypto-common v0.1.6\n Compiling syn v2.0.107\n Compiling ppv-lite86 v0.2.21\n Compiling digest v0.10.7\n Compiling ethnum v1.5.2\n Compiling approx v0.3.2\n Compiling chrono v0.4.42\n Compiling rand_chacha v0.3.1\n Compiling sha3 v0.10.8\n Compiling decorum v0.3.1\n Compiling rand v0.8.5\n Compiling thiserror-impl v1.0.69\n Compiling derive_more v0.99.20\n Compiling spacetimedb-bindings-macro v1.6.0\n Compiling enum-as-inner v0.6.1\n Compiling spacetimedb-sats v1.6.0\n Compiling spacetimedb v1.6.0\n Compiling spacetime-module v0.1.0 (E:\\Development\\ClockworkLabs\\SpacetimeDB\\SpacetimeDBPrivate\\private\\target\\llm-runs\\basics\\t_008_index_lookup\\rust\\server\\grok-4\\llm)\nwarning: unused import: `UniqueColumn`\n --> src\\lib.rs:2:58\n |\n2 | use spacetimedb::{table, reducer, ReducerContext, Table, UniqueColumn};\n | ^^^^^^^^^^^^\n |\n = note: `#[warn(unused_imports)]` on by default\n\nerror[E0107]: struct takes 0 generic arguments but 2 generic arguments were supplied\n --> src\\lib.rs:4:1\n |\n 4 | #[table(name = users)]\n | ^^^^^^^^^^^^^^^^^^^^^^ expected 0 generic arguments\n |\nnote: struct defined here, with 0 generic parameters\n --> src\\lib.rs:14:12\n |\n14 | pub struct Result {\n | ^^^^^^\n = note: this error originates in the derive macro `spacetimedb::__TableHelper` (in Nightly builds, run with -Z macro-backtrace for more info)\n\nerror[E0053]: method `deserialize` has an incompatible type for trait\n --> src\\lib.rs:4:1\n |\n4 | #[table(name = users)]\n | ^^^^^^^^^^^^^^^^^^^^^^ expected `Result`, found `Result`\n |\n = note: expected signature `fn(_) -> std::result::Result>::Error>`\n found signature `fn(_) -> Result`\n = note: this error originates in the derive macro `spacetimedb::__TableHelper` (in Nightly builds, run with -Z macro-backtrace for more info)\n\nerror[E0053]: method `visit_seq_product` has an incompatible type for trait\n --> src\\lib.rs:4:1\n |\n4 | #[table(name = users)]\n | ^^^^^^^^^^^^^^^^^^^^^^ expected `Result`, found `Result`\n |\n = note: expected signature `fn(_::__ProductVisitor, _) -> std::result::Result>::Error>`\n found signature `fn(_::__ProductVisitor, _) -> Result`\n = note: this error originates in the derive macro `spacetimedb::__TableHelper` (in Nightly builds, run with -Z macro-backtrace for more info)\n\nerror[E0053]: method `visit_named_product` has an incompatible type for trait\n --> src\\lib.rs:4:1\n |\n4 | #[table(name = users)]\n | ^^^^^^^^^^^^^^^^^^^^^^ expected `Result`, found `Result`\n |\n = note: expected signature `fn(_::__ProductVisitor, _) -> std::result::Result>::Error>`\n found signature `fn(_::__ProductVisitor, _) -> Result`\n = note: this error originates in the derive macro `spacetimedb::__TableHelper` (in Nightly builds, run with -Z macro-backtrace for more info)\n\nerror[E0053]: method `visit` has an incompatible type for trait\n --> src\\lib.rs:4:1\n |\n4 | #[table(name = users)]\n | ^^^^^^^^^^^^^^^^^^^^^^ expected `Result<__ProductFieldIdent, __E>`, found `Result`\n |\n = note: expected signature `fn(_::__ProductVisitor, &_) -> std::result::Result<_::__ProductFieldIdent, __E>`\n found signature `fn(_::__ProductVisitor, &_) -> Result`\n = note: this error originates in the derive macro `spacetimedb::__TableHelper` (in Nightly builds, run with -Z macro-backtrace for more info)\n\nerror[E0053]: method `serialize` has an incompatible type for trait\n --> src\\lib.rs:4:1\n |\n4 | #[table(name = users)]\n | ^^^^^^^^^^^^^^^^^^^^^^ expected `Result<::Ok, ...>`, found `Result`\n |\n = note: expected signature `fn(&User, _) -> std::result::Result<::Ok, ::Error>`\n found signature `fn(&User, _) -> Result`\n = note: this error originates in the derive macro `spacetimedb::__TableHelper` (in Nightly builds, run with -Z macro-backtrace for more info)\n\nerror[E0107]: struct takes 0 generic arguments but 2 generic arguments were supplied\n --> src\\lib.rs:13:1\n |\n13 | #[table(name = results)]\n | ^^^^^^^^^^^^^^^^^^^^^^^^ expected 0 generic arguments\n |\nnote: struct defined here, with 0 generic parameters\n --> src\\lib.rs:14:12\n |\n14 | pub struct Result {\n | ^^^^^^\n = note: this error originates in the derive macro `spacetimedb::__TableHelper` (in Nightly builds, run with -Z macro-backtrace for more info)\n\nerror[E0053]: method `deserialize` has an incompatible type for trait\n --> src\\lib.rs:13:1\n |\n13 | #[table(name = results)]\n | ^^^^^^^^^^^^^^^^^^^^^^^^ expected `Result`, found `Result`\n |\n = note: expected signature `fn(_) -> std::result::Result>::Error>`\n found signature `fn(_) -> Result`\n = note: this error originates in the derive macro `spacetimedb::__TableHelper` (in Nightly builds, run with -Z macro-backtrace for more info)\n\nerror[E0053]: method `visit_seq_product` has an incompatible type for trait\n --> src\\lib.rs:13:1\n |\n13 | #[table(name = results)]\n | ^^^^^^^^^^^^^^^^^^^^^^^^ expected `Result`, found `Result`\n |\n = note: expected signature `fn(_::__ProductVisitor, _) -> std::result::Result>::Error>`\n found signature `fn(_::__ProductVisitor, _) -> Result`\n = note: this error originates in the derive macro `spacetimedb::__TableHelper` (in Nightly builds, run with -Z macro-backtrace for more info)\n\nerror[E0053]: method `visit_named_product` has an incompatible type for trait\n --> src\\lib.rs:13:1\n |\n13 | #[table(name = results)]\n | ^^^^^^^^^^^^^^^^^^^^^^^^ expected `Result`, found `Result`\n |\n = note: expected signature `fn(_::__ProductVisitor, _) -> std::result::Result>::Error>`\n found signature `fn(_::__ProductVisitor, _) -> Result`\n = note: this error originates in the derive macro `spacetimedb::__TableHelper` (in Nightly builds, run with -Z macro-backtrace for more info)\n\nerror[E0053]: method `visit` has an incompatible type for trait\n --> src\\lib.rs:13:1\n |\n13 | #[table(name = results)]\n | ^^^^^^^^^^^^^^^^^^^^^^^^ expected `Result<__ProductFieldIdent, __E>`, found `Result`\n |\n = note: expected signature `fn(_::__ProductVisitor, &_) -> std::result::Result<_::__ProductFieldIdent, __E>`\n found signature `fn(_::__ProductVisitor, &_) -> Result`\n = note: this error originates in the derive macro `spacetimedb::__TableHelper` (in Nightly builds, run with -Z macro-backtrace for more info)\n\nerror[E0053]: method `serialize` has an incompatible type for trait\n --> src\\lib.rs:13:1\n |\n13 | #[table(name = results)]\n | ^^^^^^^^^^^^^^^^^^^^^^^^ expected `Result<::Ok, ...>`, found `Result`\n |\n = note: expected signature `fn(&Result, _) -> std::result::Result<::Ok, ::Error>`\n found signature `fn(&Result, _) -> Result`\n = note: this error originates in the derive macro `spacetimedb::__TableHelper` (in Nightly builds, run with -Z macro-backtrace for more info)\n\nerror[E0308]: mismatched types\n --> src\\lib.rs:4:1\n |\n 4 | #[table(name = users)]\n | ^^^^^^^^^^^^^^^^^^^^^^\n | |\n | expected `Result`, found `Result`\n | expected `Result` because of return type\n |\n = note: `Result` and `Result` have similar names, but are actually distinct types\nnote: `Result` is defined in crate `core`\n --> C:\\Users\\bradl\\.rustup\\toolchains\\1.90.0-x86_64-pc-windows-msvc\\lib/rustlib/src/rust\\library/core/src/result.rs:548:1\n |\n548 | pub enum Result {\n | ^^^^^^^^^^^^^^^^^^^^^\nnote: `Result` is defined in the current crate\n --> src\\lib.rs:14:1\n |\n 14 | pub struct Result {\n | ^^^^^^^^^^^^^^^^^\n = note: this error originates in the derive macro `spacetimedb::__TableHelper` (in Nightly builds, run with -Z macro-backtrace for more info)\n\nerror[E0277]: the `?` operator can only be used in a method that returns `Result` or `Option` (or another type that implements `FromResidual`)\n --> src\\lib.rs:4:22\n |\n4 | #[table(name = users)]\n | ---------------------^\n | | |\n | | cannot use the `?` operator in a method that returns `Result`\n | this function should return `Result` or `Option` to accept `?`\n |\n = note: this error originates in the derive macro `spacetimedb::__TableHelper` which comes from the expansion of the attribute macro `table` (in Nightly builds, run with -Z macro-backtrace for more info)\n\nerror[E0308]: mismatched types\n --> src\\lib.rs:4:1\n |\n 4 | #[table(name = users)]\n | ^^^^^^^^^^^^^^^^^^^^^^\n | |\n | expected `Result`, found `Result`\n | expected `Result` because of return type\n |\n = note: `std::result::Result` and `Result` have similar names, but are actually distinct types\nnote: `std::result::Result` is defined in crate `core`\n --> C:\\Users\\bradl\\.rustup\\toolchains\\1.90.0-x86_64-pc-windows-msvc\\lib/rustlib/src/rust\\library/core/src/result.rs:548:1\n |\n548 | pub enum Result {\n | ^^^^^^^^^^^^^^^^^^^^^\nnote: `Result` is defined in the current crate\n --> src\\lib.rs:14:1\n |\n 14 | pub struct Result {\n | ^^^^^^^^^^^^^^^^^\n = note: this error originates in the derive macro `spacetimedb::__TableHelper` (in Nightly builds, run with -Z macro-backtrace for more info)\n\nerror[E0308]: mismatched types\n --> src\\lib.rs:4:1\n |\n 4 | #[table(name = users)]\n | ^^^^^^^^^^^^^^^^^^^^^^\n | |\n | expected `Result`, found `Result<_, _>`\n | expected `Result` because of return type\n |\n = note: `std::result::Result<_, _>` and `Result` have similar names, but are actually distinct types\nnote: `std::result::Result<_, _>` is defined in crate `core`\n --> C:\\Users\\bradl\\.rustup\\toolchains\\1.90.0-x86_64-pc-windows-msvc\\lib/rustlib/src/rust\\library/core/src/result.rs:548:1\n |\n548 | pub enum Result {\n | ^^^^^^^^^^^^^^^^^^^^^\nnote: `Result` is defined in the current crate\n --> src\\lib.rs:14:1\n |\n 14 | pub struct Result {\n | ^^^^^^^^^^^^^^^^^\n = note: this error originates in the derive macro `spacetimedb::__TableHelper` (in Nightly builds, run with -Z macro-backtrace for more info)\n\nerror[E0308]: mismatched types\n --> src\\lib.rs:4:1\n |\n 4 | #[table(name = users)]\n | ^^^^^^^^^^^^^^^^^^^^^^\n | |\n | expected `Result`, found `Result<__ProductFieldIdent, _>`\n | expected `Result` because of return type\n |\n = note: `Result<__ProductFieldIdent, _>` and `Result` have similar names, but are actually distinct types\nnote: `Result<__ProductFieldIdent, _>` is defined in crate `core`\n --> C:\\Users\\bradl\\.rustup\\toolchains\\1.90.0-x86_64-pc-windows-msvc\\lib/rustlib/src/rust\\library/core/src/result.rs:548:1\n |\n548 | pub enum Result {\n | ^^^^^^^^^^^^^^^^^^^^^\nnote: `Result` is defined in the current crate\n --> src\\lib.rs:14:1\n |\n 14 | pub struct Result {\n | ^^^^^^^^^^^^^^^^^\n = note: this error originates in the derive macro `spacetimedb::__TableHelper` (in Nightly builds, run with -Z macro-backtrace for more info)\n\nerror[E0308]: mismatched types\n --> src\\lib.rs:4:1\n |\n 4 | #[table(name = users)]\n | ^^^^^^^^^^^^^^^^^^^^^^\n | |\n | expected `Result`, found `Result<::Ok, ...>`\n | expected `Result` because of return type\n |\n = note: `Result<::Ok, ...>` and `Result` have similar names, but are actually distinct types\nnote: `Result<::Ok, ...>` is defined in crate `core`\n --> C:\\Users\\bradl\\.rustup\\toolchains\\1.90.0-x86_64-pc-windows-msvc\\lib/rustlib/src/rust\\library/core/src/result.rs:548:1\n |\n548 | pub enum Result {\n | ^^^^^^^^^^^^^^^^^^^^^\nnote: `Result` is defined in the current crate\n --> src\\lib.rs:14:1\n |\n 14 | pub struct Result {\n | ^^^^^^^^^^^^^^^^^\n = note: this error originates in the derive macro `spacetimedb::__TableHelper` (in Nightly builds, run with -Z macro-backtrace for more info)\n\nerror[E0308]: mismatched types\n --> src\\lib.rs:13:1\n |\n 13 | #[table(name = results)]\n | ^^^^^^^^^^^^^^^^^^^^^^^^\n | |\n | expected `Result`, found `Result`\n | expected `Result` because of return type\n |\n = note: `Result` and `Result` have similar names, but are actually distinct types\nnote: `Result` is defined in crate `core`\n --> C:\\Users\\bradl\\.rustup\\toolchains\\1.90.0-x86_64-pc-windows-msvc\\lib/rustlib/src/rust\\library/core/src/result.rs:548:1\n |\n548 | pub enum Result {\n | ^^^^^^^^^^^^^^^^^^^^^\nnote: `Result` is defined in the current crate\n --> src\\lib.rs:14:1\n |\n 14 | pub struct Result {\n | ^^^^^^^^^^^^^^^^^\n = note: this error originates in the derive macro `spacetimedb::__TableHelper` (in Nightly builds, run with -Z macro-backtrace for more info)\nhelp: consider using `Result::expect` to unwrap the `std::result::Result>::Error>` value, panicking if the value is a `Result::Err`\n |\n 13 | #[table(name = results)].expect(\"REASON\")\n | +++++++++++++++++\n\nerror[E0277]: the `?` operator can only be used in a method that returns `Result` or `Option` (or another type that implements `FromResidual`)\n --> src\\lib.rs:13:24\n |\n13 | #[table(name = results)]\n | -----------------------^\n | | |\n | | cannot use the `?` operator in a method that returns `Result`\n | this function should return `Result` or `Option` to accept `?`\n |\n = note: this error originates in the derive macro `spacetimedb::__TableHelper` which comes from the expansion of the attribute macro `table` (in Nightly builds, run with -Z macro-backtrace for more info)\n\nerror[E0308]: mismatched types\n --> src\\lib.rs:13:1\n |\n 13 | #[table(name = results)]\n | ^^^^^^^^^^^^^^^^^^^^^^^^\n | |\n | expected `Result`, found `Result`\n | expected `Result` because of return type\n |\n = note: `std::result::Result` and `Result` have similar names, but are actually distinct types\nnote: `std::result::Result` is defined in crate `core`\n --> C:\\Users\\bradl\\.rustup\\toolchains\\1.90.0-x86_64-pc-windows-msvc\\lib/rustlib/src/rust\\library/core/src/result.rs:548:1\n |\n548 | pub enum Result {\n | ^^^^^^^^^^^^^^^^^^^^^\nnote: `Result` is defined in the current crate\n --> src\\lib.rs:14:1\n |\n 14 | pub struct Result {\n | ^^^^^^^^^^^^^^^^^\n = note: this error originates in the derive macro `spacetimedb::__TableHelper` (in Nightly builds, run with -Z macro-backtrace for more info)\n\nerror[E0308]: mismatched types\n --> src\\lib.rs:13:1\n |\n 13 | #[table(name = results)]\n | ^^^^^^^^^^^^^^^^^^^^^^^^\n | |\n | expected `Result`, found `Result<_, _>`\n | expected `Result` because of return type\n |\n = note: `std::result::Result<_, _>` and `Result` have similar names, but are actually distinct types\nnote: `std::result::Result<_, _>` is defined in crate `core`\n --> C:\\Users\\bradl\\.rustup\\toolchains\\1.90.0-x86_64-pc-windows-msvc\\lib/rustlib/src/rust\\library/core/src/result.rs:548:1\n |\n548 | pub enum Result {\n | ^^^^^^^^^^^^^^^^^^^^^\nnote: `Result` is defined in the current crate\n --> src\\lib.rs:14:1\n |\n 14 | pub struct Result {\n | ^^^^^^^^^^^^^^^^^\n = note: this error originates in the derive macro `spacetimedb::__TableHelper` (in Nightly builds, run with -Z macro-backtrace for more info)\n\nerror[E0308]: mismatched types\n --> src\\lib.rs:13:1\n |\n 13 | #[table(name = results)]\n | ^^^^^^^^^^^^^^^^^^^^^^^^\n | |\n | expected `Result`, found `Result<__ProductFieldIdent, _>`\n | expected `Result` because of return type\n |\n = note: `Result<__ProductFieldIdent, _>` and `Result` have similar names, but are actually distinct types\nnote: `Result<__ProductFieldIdent, _>` is defined in crate `core`\n --> C:\\Users\\bradl\\.rustup\\toolchains\\1.90.0-x86_64-pc-windows-msvc\\lib/rustlib/src/rust\\library/core/src/result.rs:548:1\n |\n548 | pub enum Result {\n | ^^^^^^^^^^^^^^^^^^^^^\nnote: `Result` is defined in the current crate\n --> src\\lib.rs:14:1\n |\n 14 | pub struct Result {\n | ^^^^^^^^^^^^^^^^^\n = note: this error originates in the derive macro `spacetimedb::__TableHelper` (in Nightly builds, run with -Z macro-backtrace for more info)\n\nerror[E0308]: mismatched types\n --> src\\lib.rs:13:1\n |\n 13 | #[table(name = results)]\n | ^^^^^^^^^^^^^^^^^^^^^^^^\n | |\n | expected `Result`, found `Result<::Ok, ...>`\n | expected `Result` because of return type\n |\n = note: `Result<::Ok, ...>` and `Result` have similar names, but are actually distinct types\nnote: `Result<::Ok, ...>` is defined in crate `core`\n --> C:\\Users\\bradl\\.rustup\\toolchains\\1.90.0-x86_64-pc-windows-msvc\\lib/rustlib/src/rust\\library/core/src/result.rs:548:1\n |\n548 | pub enum Result {\n | ^^^^^^^^^^^^^^^^^^^^^\nnote: `Result` is defined in the current crate\n --> src\\lib.rs:14:1\n |\n 14 | pub struct Result {\n | ^^^^^^^^^^^^^^^^^\n = note: this error originates in the derive macro `spacetimedb::__TableHelper` (in Nightly builds, run with -Z macro-backtrace for more info)\n\nSome errors have detailed explanations: E0053, E0107, E0277, E0308.\nFor more information about an error, try `rustc --explain E0053`.\nwarning: `spacetime-module` (lib) generated 1 warning\nerror: could not compile `spacetime-module` (lib) due to 28 previous errors; 1 warning emitted\nError: command [\"cargo\", \"build\", \"--config=net.git-fetch-with-cli=true\", \"--target=wasm32-unknown-unknown\", \"--release\", \"--message-format=json-render-diagnostics\"] exited with code 101\n\n--- stdout ---\n",
- "phase": "build_or_publish"
- }
- }
- },
- "vendor": "xai",
- "started_at": "2025-10-22T01:02:05.200443800Z",
- "finished_at": "2025-10-22T01:03:49.306266200Z"
- },
- "t_009_init": {
- "hash": "d47c11c6f8fd2858029ca4bcb1a9fdc8b79b46dac58a8a1b6ddb16f9f3d7213e",
- "task": "t_009_init",
- "lang": "rust",
- "golden_published": true,
- "model_name": "Grok 4",
- "total_tests": 4,
- "passed_tests": 4,
- "llm_output": "use spacetimedb::{reducer, table, ReducerContext, Table};\n\n#[table(name = users)]\npub struct User {\n #[primary_key]\n id: i32,\n name: String,\n age: i32,\n active: bool,\n}\n\n#[reducer(init)]\npub fn init(ctx: &ReducerContext) {\n ctx.db.users().insert(User { id: 1, name: \"Alice\".to_string(), age: 30, active: true });\n ctx.db.users().insert(User { id: 2, name: \"Bob\".to_string(), age: 22, active: false });\n}",
- "category": "basics",
- "route_api_model": "grok-4",
- "golden_db": "basics-t-009-init-golden",
- "llm_db": "basics-t-009-init-grok-4-llm",
- "work_dir_golden": "target\\llm-runs\\basics\\t_009_init\\rust\\server\\golden",
- "work_dir_llm": "target\\llm-runs\\basics\\t_009_init\\rust\\server\\grok-4\\llm",
- "scorer_details": {
- "init_seed_alice": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "actual": 1,
- "expected": 1,
- "sql": "SELECT COUNT(*) AS n FROM users WHERE id=1 AND name='Alice' AND age=30 AND active=true"
- }
- },
- "init_total_two": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "actual": 2,
- "expected": 2,
- "sql": "SELECT COUNT(*) AS n FROM users"
- }
- },
- "schema_parity": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "golden_db": "basics-t-009-init-golden",
- "llm_db": "basics-t-009-init-grok-4-llm",
- "reducers_diff": null,
- "reducers_equal": true,
- "server": "local",
- "tables_diff": null,
- "tables_equal": true
- }
- },
- "init_seed_bob": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "actual": 1,
- "expected": 1,
- "sql": "SELECT COUNT(*) AS n FROM users WHERE id=2 AND name='Bob' AND age=22 AND active=false"
- }
- }
- },
- "vendor": "xai",
- "started_at": "2025-10-22T01:02:05.203170700Z",
- "finished_at": "2025-10-22T01:03:51.597278500Z"
- },
- "t_010_connect": {
- "hash": "d47c11c6f8fd2858029ca4bcb1a9fdc8b79b46dac58a8a1b6ddb16f9f3d7213e",
- "task": "t_010_connect",
- "lang": "rust",
- "golden_published": true,
- "model_name": "Grok 4",
- "total_tests": 1,
- "passed_tests": 1,
- "llm_output": "use spacetimedb::{ReducerContext, Table};\n\n#[spacetimedb::table(name = events)]\npub struct Event {\n #[primary_key]\n #[auto_inc]\n id: i32,\n kind: String,\n}\n\n#[spacetimedb::reducer(client_connected)]\npub fn client_connected(ctx: &ReducerContext) {\n ctx.db.events().insert(Event {\n id: 0,\n kind: \"connected\".into(),\n });\n}\n\n#[spacetimedb::reducer(client_disconnected)]\npub fn client_disconnected(ctx: &ReducerContext) {\n ctx.db.events().insert(Event {\n id: 0,\n kind: \"disconnected\".into(),\n });\n}",
- "category": "basics",
- "route_api_model": "grok-4",
- "golden_db": "basics-t-010-connect-golden",
- "llm_db": "basics-t-010-connect-grok-4-llm",
- "work_dir_golden": "target\\llm-runs\\basics\\t_010_connect\\rust\\server\\golden",
- "work_dir_llm": "target\\llm-runs\\basics\\t_010_connect\\rust\\server\\grok-4\\llm",
- "scorer_details": {
- "schema_parity": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "golden_db": "basics-t-010-connect-golden",
- "llm_db": "basics-t-010-connect-grok-4-llm",
- "reducers_diff": null,
- "reducers_equal": true,
- "server": "local",
- "tables_diff": null,
- "tables_equal": true
- }
- }
- },
- "vendor": "xai",
- "started_at": "2025-10-22T01:02:05.205852800Z",
- "finished_at": "2025-10-22T01:03:18.971400900Z"
- },
- "t_011_helper_function": {
- "hash": "d47c11c6f8fd2858029ca4bcb1a9fdc8b79b46dac58a8a1b6ddb16f9f3d7213e",
- "task": "t_011_helper_function",
- "lang": "rust",
- "golden_published": false,
- "model_name": "Grok 4",
- "total_tests": 3,
- "passed_tests": 0,
- "llm_output": "use spacetimedb::{reducer, ReducerContext};\n\n#[spacetimedb::table(name = results)]\npub struct Result {\n #[primary_key]\n id: i32,\n sum: i32,\n}\n\nfn add(a: i32, b: i32) -> i32 {\n a + b\n}\n\n#[reducer]\npub fn compute_sum(ctx: &ReducerContext, id: i32, a: i32, b: i32) {\n ctx.db.results().insert(Result { id, sum: add(a, b) });\n}",
- "category": "basics",
- "route_api_model": "grok-4",
- "golden_db": "basics-t-011-helper-function-golden",
- "llm_db": "basics-t-011-helper-function-grok-4-llm",
- "work_dir_golden": "target\\llm-runs\\basics\\t_011_helper_function\\rust\\server\\golden",
- "work_dir_llm": "target\\llm-runs\\basics\\t_011_helper_function\\rust\\server\\grok-4\\llm",
- "scorer_details": {
- "publish_error": {
- "pass": false,
- "partial": 0.0,
- "notes": {
- "error": "spacetime publish failed (exit=1)\n--- stderr ---\n Updating crates.io index\n Locking 67 packages to latest compatible versions\n Compiling proc-macro2 v1.0.101\n Compiling unicode-ident v1.0.20\n Compiling quote v1.0.41\n Compiling version_check v0.9.5\n Compiling typenum v1.19.0\n Compiling autocfg v1.5.0\n Compiling serde_core v1.0.228\n Compiling cfg-if v1.0.4\n Compiling either v1.15.0\n Compiling shlex v1.3.0\n Compiling zerocopy v0.8.27\n Compiling serde v1.0.228\n Compiling find-msvc-tools v0.1.4\n Compiling bitflags v2.10.0\n Compiling anyhow v1.0.100\n Compiling thiserror v1.0.69\n Compiling nohash-hasher v0.2.0\n Compiling arrayvec v0.7.6\n Compiling convert_case v0.4.0\n Compiling heck v0.4.1\n Compiling humantime v2.3.0\n Compiling heck v0.5.0\n Compiling keccak v0.1.5\n Compiling bytes v1.10.1\n Compiling hex v0.4.3\n Compiling constant_time_eq v0.3.1\n Compiling smallvec v1.15.1\n Compiling spacetimedb-lib v1.6.0\n Compiling arrayref v0.3.9\n Compiling getrandom v0.2.16\n Compiling bytemuck v1.24.0\n Compiling second-stack v0.3.5\n Compiling itertools v0.12.1\n Compiling log v0.4.28\n Compiling scoped-tls v1.0.1\n Compiling rand_core v0.6.4\n Compiling cc v1.2.41\n Compiling generic-array v0.14.9\n Compiling num-traits v0.2.19\n Compiling spacetimedb-primitives v1.6.0\n Compiling blake3 v1.8.2\n Compiling syn v2.0.107\n Compiling spacetimedb-bindings-sys v1.6.0\n Compiling approx v0.3.2\n Compiling chrono v0.4.42\n Compiling crypto-common v0.1.6\n Compiling block-buffer v0.10.4\n Compiling decorum v0.3.1\n Compiling digest v0.10.7\n Compiling sha3 v0.10.8\n Compiling ppv-lite86 v0.2.21\n Compiling rand_chacha v0.3.1\n Compiling ethnum v1.5.2\n Compiling rand v0.8.5\n Compiling thiserror-impl v1.0.69\n Compiling enum-as-inner v0.6.1\n Compiling spacetimedb-bindings-macro v1.6.0\n Compiling derive_more v0.99.20\n Compiling spacetimedb-sats v1.6.0\n Compiling spacetimedb v1.6.0\n Compiling spacetime-module v0.1.0 (E:\\Development\\ClockworkLabs\\SpacetimeDB\\SpacetimeDBPrivate\\private\\target\\llm-runs\\basics\\t_011_helper_function\\rust\\server\\grok-4\\llm)\nerror[E0107]: struct takes 0 generic arguments but 2 generic arguments were supplied\n --> src\\lib.rs:4:1\n |\n4 | #[spacetimedb::table(name = results)]\n | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ expected 0 generic arguments\n |\nnote: struct defined here, with 0 generic parameters\n --> src\\lib.rs:5:12\n |\n5 | pub struct Result {\n | ^^^^^^\n = note: this error originates in the derive macro `spacetimedb::__TableHelper` (in Nightly builds, run with -Z macro-backtrace for more info)\n\nerror[E0053]: method `deserialize` has an incompatible type for trait\n --> src\\lib.rs:4:1\n |\n4 | #[spacetimedb::table(name = results)]\n | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ expected `Result`, found `Result`\n |\n = note: expected signature `fn(_) -> std::result::Result>::Error>`\n found signature `fn(_) -> Result`\n = note: this error originates in the derive macro `spacetimedb::__TableHelper` (in Nightly builds, run with -Z macro-backtrace for more info)\n\nerror[E0053]: method `visit_seq_product` has an incompatible type for trait\n --> src\\lib.rs:4:1\n |\n4 | #[spacetimedb::table(name = results)]\n | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ expected `Result`, found `Result`\n |\n = note: expected signature `fn(__ProductVisitor, _) -> std::result::Result>::Error>`\n found signature `fn(__ProductVisitor, _) -> Result`\n = note: this error originates in the derive macro `spacetimedb::__TableHelper` (in Nightly builds, run with -Z macro-backtrace for more info)\n\nerror[E0053]: method `visit_named_product` has an incompatible type for trait\n --> src\\lib.rs:4:1\n |\n4 | #[spacetimedb::table(name = results)]\n | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ expected `Result`, found `Result`\n |\n = note: expected signature `fn(__ProductVisitor, _) -> std::result::Result>::Error>`\n found signature `fn(__ProductVisitor, _) -> Result`\n = note: this error originates in the derive macro `spacetimedb::__TableHelper` (in Nightly builds, run with -Z macro-backtrace for more info)\n\nerror[E0053]: method `visit` has an incompatible type for trait\n --> src\\lib.rs:4:1\n |\n4 | #[spacetimedb::table(name = results)]\n | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ expected `Result<__ProductFieldIdent, __E>`, found `Result`\n |\n = note: expected signature `fn(__ProductVisitor, &_) -> std::result::Result<__ProductFieldIdent, __E>`\n found signature `fn(__ProductVisitor, &_) -> Result`\n = note: this error originates in the derive macro `spacetimedb::__TableHelper` (in Nightly builds, run with -Z macro-backtrace for more info)\n\nerror[E0053]: method `serialize` has an incompatible type for trait\n --> src\\lib.rs:4:1\n |\n4 | #[spacetimedb::table(name = results)]\n | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ expected `Result<::Ok, ...>`, found `Result`\n |\n = note: expected signature `fn(&Result, _) -> std::result::Result<::Ok, ::Error>`\n found signature `fn(&Result, _) -> Result`\n = note: this error originates in the derive macro `spacetimedb::__TableHelper` (in Nightly builds, run with -Z macro-backtrace for more info)\n\nerror[E0308]: mismatched types\n --> src\\lib.rs:4:1\n |\n 4 | #[spacetimedb::table(name = results)]\n | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n | |\n | expected `Result`, found `Result`\n | expected `Result` because of return type\n |\n = note: `Result` and `Result` have similar names, but are actually distinct types\nnote: `Result` is defined in crate `core`\n --> C:\\Users\\bradl\\.rustup\\toolchains\\1.90.0-x86_64-pc-windows-msvc\\lib/rustlib/src/rust\\library/core/src/result.rs:548:1\n |\n548 | pub enum Result {\n | ^^^^^^^^^^^^^^^^^^^^^\nnote: `Result` is defined in the current crate\n --> src\\lib.rs:5:1\n |\n 5 | pub struct Result {\n | ^^^^^^^^^^^^^^^^^\n = note: this error originates in the derive macro `spacetimedb::__TableHelper` (in Nightly builds, run with -Z macro-backtrace for more info)\nhelp: consider using `Result::expect` to unwrap the `std::result::Result>::Error>` value, panicking if the value is a `Result::Err`\n |\n 4 | #[spacetimedb::table(name = results)].expect(\"REASON\")\n | +++++++++++++++++\n\nerror[E0277]: the `?` operator can only be used in a method that returns `Result` or `Option` (or another type that implements `FromResidual`)\n --> src\\lib.rs:4:37\n |\n4 | #[spacetimedb::table(name = results)]\n | ------------------------------------^\n | | |\n | | cannot use the `?` operator in a method that returns `Result`\n | this function should return `Result` or `Option` to accept `?`\n |\n = note: this error originates in the derive macro `spacetimedb::__TableHelper` which comes from the expansion of the attribute macro `spacetimedb::table` (in Nightly builds, run with -Z macro-backtrace for more info)\n\nerror[E0308]: mismatched types\n --> src\\lib.rs:4:1\n |\n 4 | #[spacetimedb::table(name = results)]\n | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n | |\n | expected `Result`, found `Result`\n | expected `Result` because of return type\n |\n = note: `std::result::Result` and `Result` have similar names, but are actually distinct types\nnote: `std::result::Result` is defined in crate `core`\n --> C:\\Users\\bradl\\.rustup\\toolchains\\1.90.0-x86_64-pc-windows-msvc\\lib/rustlib/src/rust\\library/core/src/result.rs:548:1\n |\n548 | pub enum Result {\n | ^^^^^^^^^^^^^^^^^^^^^\nnote: `Result` is defined in the current crate\n --> src\\lib.rs:5:1\n |\n 5 | pub struct Result {\n | ^^^^^^^^^^^^^^^^^\n = note: this error originates in the derive macro `spacetimedb::__TableHelper` (in Nightly builds, run with -Z macro-backtrace for more info)\n\nerror[E0308]: mismatched types\n --> src\\lib.rs:4:1\n |\n 4 | #[spacetimedb::table(name = results)]\n | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n | |\n | expected `Result`, found `Result<_, _>`\n | expected `Result` because of return type\n |\n = note: `std::result::Result<_, _>` and `Result` have similar names, but are actually distinct types\nnote: `std::result::Result<_, _>` is defined in crate `core`\n --> C:\\Users\\bradl\\.rustup\\toolchains\\1.90.0-x86_64-pc-windows-msvc\\lib/rustlib/src/rust\\library/core/src/result.rs:548:1\n |\n548 | pub enum Result {\n | ^^^^^^^^^^^^^^^^^^^^^\nnote: `Result` is defined in the current crate\n --> src\\lib.rs:5:1\n |\n 5 | pub struct Result {\n | ^^^^^^^^^^^^^^^^^\n = note: this error originates in the derive macro `spacetimedb::__TableHelper` (in Nightly builds, run with -Z macro-backtrace for more info)\n\nerror[E0308]: mismatched types\n --> src\\lib.rs:4:1\n |\n 4 | #[spacetimedb::table(name = results)]\n | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n | |\n | expected `Result`, found `Result<__ProductFieldIdent, _>`\n | expected `Result` because of return type\n |\n = note: `Result<__ProductFieldIdent, _>` and `Result` have similar names, but are actually distinct types\nnote: `Result<__ProductFieldIdent, _>` is defined in crate `core`\n --> C:\\Users\\bradl\\.rustup\\toolchains\\1.90.0-x86_64-pc-windows-msvc\\lib/rustlib/src/rust\\library/core/src/result.rs:548:1\n |\n548 | pub enum Result {\n | ^^^^^^^^^^^^^^^^^^^^^\nnote: `Result` is defined in the current crate\n --> src\\lib.rs:5:1\n |\n 5 | pub struct Result {\n | ^^^^^^^^^^^^^^^^^\n = note: this error originates in the derive macro `spacetimedb::__TableHelper` (in Nightly builds, run with -Z macro-backtrace for more info)\n\nerror[E0308]: mismatched types\n --> src\\lib.rs:4:1\n |\n 4 | #[spacetimedb::table(name = results)]\n | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n | |\n | expected `Result`, found `Result<::Ok, ...>`\n | expected `Result` because of return type\n |\n = note: `Result<::Ok, ...>` and `Result` have similar names, but are actually distinct types\nnote: `Result<::Ok, ...>` is defined in crate `core`\n --> C:\\Users\\bradl\\.rustup\\toolchains\\1.90.0-x86_64-pc-windows-msvc\\lib/rustlib/src/rust\\library/core/src/result.rs:548:1\n |\n548 | pub enum Result {\n | ^^^^^^^^^^^^^^^^^^^^^\nnote: `Result` is defined in the current crate\n --> src\\lib.rs:5:1\n |\n 5 | pub struct Result {\n | ^^^^^^^^^^^^^^^^^\n = note: this error originates in the derive macro `spacetimedb::__TableHelper` (in Nightly builds, run with -Z macro-backtrace for more info)\n\nerror[E0599]: no method named `insert` found for reference `&results__TableHandle` in the current scope\n --> src\\lib.rs:17:22\n |\n17 | ctx.db.results().insert(Result { id, sum: add(a, b) });\n | ^^^^^^\n |\n = help: items from traits can only be used if the trait is in scope\nhelp: trait `Table` which provides `insert` is implemented but not in scope; perhaps you want to import it\n |\n 2 + use spacetimedb::Table;\n |\nhelp: there is a method `try_insert` with a similar name\n |\n17 | ctx.db.results().try_insert(Result { id, sum: add(a, b) });\n | ++++\n\nSome errors have detailed explanations: E0053, E0107, E0277, E0308, E0599.\nFor more information about an error, try `rustc --explain E0053`.\nerror: could not compile `spacetime-module` (lib) due to 15 previous errors\nError: command [\"cargo\", \"build\", \"--config=net.git-fetch-with-cli=true\", \"--target=wasm32-unknown-unknown\", \"--release\", \"--message-format=json-render-diagnostics\"] exited with code 101\n\n--- stdout ---\n",
- "phase": "build_or_publish"
- }
- }
- },
- "vendor": "xai",
- "started_at": "2025-10-22T01:02:05.208437500Z",
- "finished_at": "2025-10-22T01:03:17.124837500Z"
- },
- "t_012_spacetime_product_type": {
- "hash": "b0d5bbe755291d8ec65de0a74b4eecfa344670639ca5f1a365ced3ab9717e97c",
- "task": "t_012_spacetime_product_type",
- "lang": "rust",
- "golden_published": false,
- "model_name": "Grok 4",
- "total_tests": 1,
- "passed_tests": 0,
- "category": "schema",
- "route_api_model": "grok-4",
- "scorer_details": {
- "publish_error": {
- "pass": false,
- "partial": 0.0,
- "notes": {
- "error": "POST https://api.x.ai/v1/chat/completions status 429 Too Many Requests body: {\"code\":\"Some resource has been exhausted\",\"error\":\"Your team 5fc90f6d-3ee0-435e-a2e2-c7d23f7ea90d has either used all available credits or reached its monthly spending limit. To continue making API requests, please purchase more credits or raise your spending limit.\"}",
- "phase": "build_or_publish"
- }
- }
- },
- "vendor": "xai"
- },
- "t_013_spacetime_sum_type": {
- "hash": "d47c11c6f8fd2858029ca4bcb1a9fdc8b79b46dac58a8a1b6ddb16f9f3d7213e",
- "task": "t_013_spacetime_sum_type",
- "lang": "rust",
- "golden_published": false,
- "model_name": "Grok 4",
- "total_tests": 3,
- "passed_tests": 0,
- "llm_output": "use spacetimedb::{SpacetimeType, ReducerContext, reducer, table};\n\n#[derive(SpacetimeType)]\npub struct Rect {\n width: i32,\n height: i32,\n}\n\n#[derive(SpacetimeType)]\npub enum Shape {\n Circle(i32),\n Rectangle(Rect),\n}\n\n#[table(name = results)]\npub struct Result {\n #[primary_key]\n id: i32,\n value: Shape,\n}\n\n#[reducer]\npub fn set_circle(ctx: &ReducerContext, id: i32, radius: i32) {\n ctx.db.results().insert(Result { id, value: Shape::Circle(radius) });\n}",
- "category": "schema",
- "route_api_model": "grok-4",
- "golden_db": "schema-t-013-spacetime-sum-type-golden",
- "llm_db": "schema-t-013-spacetime-sum-type-grok-4-llm",
- "work_dir_golden": "target\\llm-runs\\schema\\t_013_spacetime_sum_type\\rust\\server\\golden",
- "work_dir_llm": "target\\llm-runs\\schema\\t_013_spacetime_sum_type\\rust\\server\\grok-4\\llm",
- "scorer_details": {
- "publish_error": {
- "pass": false,
- "partial": 0.0,
- "notes": {
- "error": "spacetime publish failed (exit=1)\n--- stderr ---\n Updating crates.io index\n Locking 67 packages to latest compatible versions\n Compiling proc-macro2 v1.0.101\n Compiling quote v1.0.41\n Compiling unicode-ident v1.0.20\n Compiling typenum v1.19.0\n Compiling version_check v0.9.5\n Compiling autocfg v1.5.0\n Compiling serde_core v1.0.228\n Compiling cfg-if v1.0.4\n Compiling either v1.15.0\n Compiling zerocopy v0.8.27\n Compiling find-msvc-tools v0.1.4\n Compiling serde v1.0.228\n Compiling shlex v1.3.0\n Compiling nohash-hasher v0.2.0\n Compiling anyhow v1.0.100\n Compiling bitflags v2.10.0\n Compiling thiserror v1.0.69\n Compiling convert_case v0.4.0\n Compiling keccak v0.1.5\n Compiling arrayvec v0.7.6\n Compiling heck v0.4.1\n Compiling heck v0.5.0\n Compiling humantime v2.3.0\n Compiling smallvec v1.15.1\n Compiling spacetimedb-lib v1.6.0\n Compiling arrayref v0.3.9\n Compiling constant_time_eq v0.3.1\n Compiling hex v0.4.3\n Compiling second-stack v0.3.5\n Compiling getrandom v0.2.16\n Compiling bytes v1.10.1\n Compiling bytemuck v1.24.0\n Compiling itertools v0.12.1\n Compiling scoped-tls v1.0.1\n Compiling log v0.4.28\n Compiling rand_core v0.6.4\n Compiling cc v1.2.41\n Compiling generic-array v0.14.9\n Compiling num-traits v0.2.19\n Compiling spacetimedb-primitives v1.6.0\n Compiling syn v2.0.107\n Compiling blake3 v1.8.2\n Compiling block-buffer v0.10.4\n Compiling crypto-common v0.1.6\n Compiling approx v0.3.2\n Compiling chrono v0.4.42\n Compiling digest v0.10.7\n Compiling spacetimedb-bindings-sys v1.6.0\n Compiling decorum v0.3.1\n Compiling sha3 v0.10.8\n Compiling ethnum v1.5.2\n Compiling ppv-lite86 v0.2.21\n Compiling rand_chacha v0.3.1\n Compiling rand v0.8.5\n Compiling thiserror-impl v1.0.69\n Compiling derive_more v0.99.20\n Compiling enum-as-inner v0.6.1\n Compiling spacetimedb-bindings-macro v1.6.0\n Compiling spacetimedb-sats v1.6.0\n Compiling spacetimedb v1.6.0\n Compiling spacetime-module v0.1.0 (E:\\Development\\ClockworkLabs\\SpacetimeDB\\SpacetimeDBPrivate\\private\\target\\llm-runs\\schema\\t_013_spacetime_sum_type\\rust\\server\\grok-4\\llm)\nerror[E0107]: struct takes 0 generic arguments but 2 generic arguments were supplied\n --> src\\lib.rs:4:10\n |\n 4 | #[derive(SpacetimeType)]\n | ^^^^^^^^^^^^^ expected 0 generic arguments\n |\nnote: struct defined here, with 0 generic parameters\n --> src\\lib.rs:17:12\n |\n17 | pub struct Result {\n | ^^^^^^\n = note: this error originates in the derive macro `SpacetimeType` (in Nightly builds, run with -Z macro-backtrace for more info)\n\nerror[E0053]: method `deserialize` has an incompatible type for trait\n --> src\\lib.rs:4:10\n |\n4 | #[derive(SpacetimeType)]\n | ^^^^^^^^^^^^^ expected `Result`, found `Result`\n |\n = note: expected signature `fn(_) -> std::result::Result>::Error>`\n found signature `fn(_) -> Result`\n = note: this error originates in the derive macro `SpacetimeType` (in Nightly builds, run with -Z macro-backtrace for more info)\n\nerror[E0053]: method `visit_seq_product` has an incompatible type for trait\n --> src\\lib.rs:4:10\n |\n4 | #[derive(SpacetimeType)]\n | ^^^^^^^^^^^^^ expected `Result`, found `Result`\n |\n = note: expected signature `fn(_::__ProductVisitor, _) -> std::result::Result>::Error>`\n found signature `fn(_::__ProductVisitor, _) -> Result`\n = note: this error originates in the derive macro `SpacetimeType` (in Nightly builds, run with -Z macro-backtrace for more info)\n\nerror[E0053]: method `visit_named_product` has an incompatible type for trait\n --> src\\lib.rs:4:10\n |\n4 | #[derive(SpacetimeType)]\n | ^^^^^^^^^^^^^ expected `Result`, found `Result`\n |\n = note: expected signature `fn(_::__ProductVisitor, _) -> std::result::Result>::Error>`\n found signature `fn(_::__ProductVisitor, _) -> Result`\n = note: this error originates in the derive macro `SpacetimeType` (in Nightly builds, run with -Z macro-backtrace for more info)\n\nerror[E0053]: method `visit` has an incompatible type for trait\n --> src\\lib.rs:4:10\n |\n4 | #[derive(SpacetimeType)]\n | ^^^^^^^^^^^^^ expected `Result<__ProductFieldIdent, __E>`, found `Result`\n |\n = note: expected signature `fn(_::__ProductVisitor, &_) -> std::result::Result<_::__ProductFieldIdent, __E>`\n found signature `fn(_::__ProductVisitor, &_) -> Result`\n = note: this error originates in the derive macro `SpacetimeType` (in Nightly builds, run with -Z macro-backtrace for more info)\n\nerror[E0053]: method `serialize` has an incompatible type for trait\n --> src\\lib.rs:4:10\n |\n4 | #[derive(SpacetimeType)]\n | ^^^^^^^^^^^^^ expected `Result<::Ok, ...>`, found `Result`\n |\n = note: expected signature `fn(&Rect, _) -> std::result::Result<::Ok, ::Error>`\n found signature `fn(&Rect, _) -> Result`\n = note: this error originates in the derive macro `SpacetimeType` (in Nightly builds, run with -Z macro-backtrace for more info)\n\nerror[E0107]: struct takes 0 generic arguments but 2 generic arguments were supplied\n --> src\\lib.rs:10:10\n |\n10 | #[derive(SpacetimeType)]\n | ^^^^^^^^^^^^^ expected 0 generic arguments\n |\nnote: struct defined here, with 0 generic parameters\n --> src\\lib.rs:17:12\n |\n17 | pub struct Result {\n | ^^^^^^\n = note: this error originates in the derive macro `SpacetimeType` (in Nightly builds, run with -Z macro-backtrace for more info)\n\nerror[E0053]: method `deserialize` has an incompatible type for trait\n --> src\\lib.rs:10:10\n |\n10 | #[derive(SpacetimeType)]\n | ^^^^^^^^^^^^^ expected `Result`, found `Result`\n |\n = note: expected signature `fn(_) -> std::result::Result>::Error>`\n found signature `fn(_) -> Result`\n = note: this error originates in the derive macro `SpacetimeType` (in Nightly builds, run with -Z macro-backtrace for more info)\n\nerror[E0053]: method `visit_sum` has an incompatible type for trait\n --> src\\lib.rs:10:10\n |\n10 | #[derive(SpacetimeType)]\n | ^^^^^^^^^^^^^ expected `Result`, found `Result`\n |\n = note: expected signature `fn(__SumVisitor, _) -> std::result::Result>::Error>`\n found signature `fn(__SumVisitor, _) -> Result`\n = note: this error originates in the derive macro `SpacetimeType` (in Nightly builds, run with -Z macro-backtrace for more info)\n\nerror[E0053]: method `visit_tag` has an incompatible type for trait\n --> src\\lib.rs:10:10\n |\n10 | #[derive(SpacetimeType)]\n | ^^^^^^^^^^^^^ expected `std::result::Result<__Variant, E>`, found `Result`\n |\n = note: expected signature `fn(__SumVisitor, _) -> std::result::Result<__Variant, E>`\n found signature `fn(__SumVisitor, _) -> Result`\n = note: this error originates in the derive macro `SpacetimeType` (in Nightly builds, run with -Z macro-backtrace for more info)\n\nerror[E0053]: method `visit_name` has an incompatible type for trait\n --> src\\lib.rs:10:10\n |\n10 | #[derive(SpacetimeType)]\n | ^^^^^^^^^^^^^ expected `std::result::Result<__Variant, E>`, found `Result`\n |\n = note: expected signature `fn(__SumVisitor, &_) -> std::result::Result<__Variant, E>`\n found signature `fn(__SumVisitor, &_) -> Result`\n = note: this error originates in the derive macro `SpacetimeType` (in Nightly builds, run with -Z macro-backtrace for more info)\n\nerror[E0053]: method `serialize` has an incompatible type for trait\n --> src\\lib.rs:10:10\n |\n10 | #[derive(SpacetimeType)]\n | ^^^^^^^^^^^^^ expected `Result<::Ok, ...>`, found `Result`\n |\n = note: expected signature `fn(&Shape, _) -> std::result::Result<::Ok, ::Error>`\n found signature `fn(&Shape, _) -> Result`\n = note: this error originates in the derive macro `SpacetimeType` (in Nightly builds, run with -Z macro-backtrace for more info)\n\nerror[E0107]: struct takes 0 generic arguments but 2 generic arguments were supplied\n --> src\\lib.rs:16:1\n |\n16 | #[table(name = results)]\n | ^^^^^^^^^^^^^^^^^^^^^^^^ expected 0 generic arguments\n |\nnote: struct defined here, with 0 generic parameters\n --> src\\lib.rs:17:12\n |\n17 | pub struct Result {\n | ^^^^^^\n = note: this error originates in the derive macro `spacetimedb::__TableHelper` (in Nightly builds, run with -Z macro-backtrace for more info)\n\nerror[E0053]: method `deserialize` has an incompatible type for trait\n --> src\\lib.rs:16:1\n |\n16 | #[table(name = results)]\n | ^^^^^^^^^^^^^^^^^^^^^^^^ expected `Result`, found `Result`\n |\n = note: expected signature `fn(_) -> std::result::Result>::Error>`\n found signature `fn(_) -> Result`\n = note: this error originates in the derive macro `spacetimedb::__TableHelper` (in Nightly builds, run with -Z macro-backtrace for more info)\n\nerror[E0053]: method `visit_seq_product` has an incompatible type for trait\n --> src\\lib.rs:16:1\n |\n16 | #[table(name = results)]\n | ^^^^^^^^^^^^^^^^^^^^^^^^ expected `Result`, found `Result`\n |\n = note: expected signature `fn(_::__ProductVisitor, _) -> std::result::Result>::Error>`\n found signature `fn(_::__ProductVisitor, _) -> Result`\n = note: this error originates in the derive macro `spacetimedb::__TableHelper` (in Nightly builds, run with -Z macro-backtrace for more info)\n\nerror[E0053]: method `visit_named_product` has an incompatible type for trait\n --> src\\lib.rs:16:1\n |\n16 | #[table(name = results)]\n | ^^^^^^^^^^^^^^^^^^^^^^^^ expected `Result`, found `Result`\n |\n = note: expected signature `fn(_::__ProductVisitor, _) -> std::result::Result>::Error>`\n found signature `fn(_::__ProductVisitor, _) -> Result`\n = note: this error originates in the derive macro `spacetimedb::__TableHelper` (in Nightly builds, run with -Z macro-backtrace for more info)\n\nerror[E0053]: method `visit` has an incompatible type for trait\n --> src\\lib.rs:16:1\n |\n16 | #[table(name = results)]\n | ^^^^^^^^^^^^^^^^^^^^^^^^ expected `Result<__ProductFieldIdent, __E>`, found `Result`\n |\n = note: expected signature `fn(_::__ProductVisitor, &_) -> std::result::Result<_::__ProductFieldIdent, __E>`\n found signature `fn(_::__ProductVisitor, &_) -> Result`\n = note: this error originates in the derive macro `spacetimedb::__TableHelper` (in Nightly builds, run with -Z macro-backtrace for more info)\n\nerror[E0053]: method `serialize` has an incompatible type for trait\n --> src\\lib.rs:16:1\n |\n16 | #[table(name = results)]\n | ^^^^^^^^^^^^^^^^^^^^^^^^ expected `Result<::Ok, ...>`, found `Result`\n |\n = note: expected signature `fn(&Result, _) -> std::result::Result<::Ok, ::Error>`\n found signature `fn(&Result, _) -> Result`\n = note: this error originates in the derive macro `spacetimedb::__TableHelper` (in Nightly builds, run with -Z macro-backtrace for more info)\n\nerror[E0308]: mismatched types\n --> src\\lib.rs:4:10\n |\n 4 | #[derive(SpacetimeType)]\n | ^^^^^^^^^^^^^\n | |\n | expected `Result`, found `Result`\n | expected `Result` because of return type\n |\n = note: `Result` and `Result` have similar names, but are actually distinct types\nnote: `Result` is defined in crate `core`\n --> C:\\Users\\bradl\\.rustup\\toolchains\\1.90.0-x86_64-pc-windows-msvc\\lib/rustlib/src/rust\\library/core/src/result.rs:548:1\n |\n548 | pub enum Result {\n | ^^^^^^^^^^^^^^^^^^^^^\nnote: `Result` is defined in the current crate\n --> src\\lib.rs:17:1\n |\n 17 | pub struct Result {\n | ^^^^^^^^^^^^^^^^^\n = note: this error originates in the derive macro `SpacetimeType` (in Nightly builds, run with -Z macro-backtrace for more info)\n\nerror[E0277]: the `?` operator can only be used in a method that returns `Result` or `Option` (or another type that implements `FromResidual`)\n --> src\\lib.rs:4:22\n |\n4 | #[derive(SpacetimeType)]\n | ------------^\n | | |\n | | cannot use the `?` operator in a method that returns `Result`\n | this function should return `Result` or `Option` to accept `?`\n |\n = note: this error originates in the derive macro `SpacetimeType` (in Nightly builds, run with -Z macro-backtrace for more info)\n\nerror[E0308]: mismatched types\n --> src\\lib.rs:4:10\n |\n 4 | #[derive(SpacetimeType)]\n | ^^^^^^^^^^^^^\n | |\n | expected `Result`, found `Result`\n | expected `Result` because of return type\n |\n = note: `std::result::Result` and `Result` have similar names, but are actually distinct types\nnote: `std::result::Result` is defined in crate `core`\n --> C:\\Users\\bradl\\.rustup\\toolchains\\1.90.0-x86_64-pc-windows-msvc\\lib/rustlib/src/rust\\library/core/src/result.rs:548:1\n |\n548 | pub enum Result {\n | ^^^^^^^^^^^^^^^^^^^^^\nnote: `Result` is defined in the current crate\n --> src\\lib.rs:17:1\n |\n 17 | pub struct Result {\n | ^^^^^^^^^^^^^^^^^\n = note: this error originates in the derive macro `SpacetimeType` (in Nightly builds, run with -Z macro-backtrace for more info)\n\nerror[E0308]: mismatched types\n --> src\\lib.rs:4:10\n |\n 4 | #[derive(SpacetimeType)]\n | ^^^^^^^^^^^^^\n | |\n | expected `Result`, found `Result<_, _>`\n | expected `Result` because of return type\n |\n = note: `std::result::Result<_, _>` and `Result` have similar names, but are actually distinct types\nnote: `std::result::Result<_, _>` is defined in crate `core`\n --> C:\\Users\\bradl\\.rustup\\toolchains\\1.90.0-x86_64-pc-windows-msvc\\lib/rustlib/src/rust\\library/core/src/result.rs:548:1\n |\n548 | pub enum Result {\n | ^^^^^^^^^^^^^^^^^^^^^\nnote: `Result` is defined in the current crate\n --> src\\lib.rs:17:1\n |\n 17 | pub struct Result {\n | ^^^^^^^^^^^^^^^^^\n = note: this error originates in the derive macro `SpacetimeType` (in Nightly builds, run with -Z macro-backtrace for more info)\n\nerror[E0308]: mismatched types\n --> src\\lib.rs:4:10\n |\n 4 | #[derive(SpacetimeType)]\n | ^^^^^^^^^^^^^\n | |\n | expected `Result`, found `Result<__ProductFieldIdent, _>`\n | expected `Result` because of return type\n |\n = note: `Result<__ProductFieldIdent, _>` and `Result` have similar names, but are actually distinct types\nnote: `Result<__ProductFieldIdent, _>` is defined in crate `core`\n --> C:\\Users\\bradl\\.rustup\\toolchains\\1.90.0-x86_64-pc-windows-msvc\\lib/rustlib/src/rust\\library/core/src/result.rs:548:1\n |\n548 | pub enum Result {\n | ^^^^^^^^^^^^^^^^^^^^^\nnote: `Result` is defined in the current crate\n --> src\\lib.rs:17:1\n |\n 17 | pub struct Result {\n | ^^^^^^^^^^^^^^^^^\n = note: this error originates in the derive macro `SpacetimeType` (in Nightly builds, run with -Z macro-backtrace for more info)\n\nerror[E0308]: mismatched types\n --> src\\lib.rs:4:10\n |\n 4 | #[derive(SpacetimeType)]\n | ^^^^^^^^^^^^^\n | |\n | expected `Result`, found `Result<::Ok, ...>`\n | expected `Result` because of return type\n |\n = note: `Result<::Ok, ...>` and `Result` have similar names, but are actually distinct types\nnote: `Result<::Ok, ...>` is defined in crate `core`\n --> C:\\Users\\bradl\\.rustup\\toolchains\\1.90.0-x86_64-pc-windows-msvc\\lib/rustlib/src/rust\\library/core/src/result.rs:548:1\n |\n548 | pub enum Result {\n | ^^^^^^^^^^^^^^^^^^^^^\nnote: `Result` is defined in the current crate\n --> src\\lib.rs:17:1\n |\n 17 | pub struct Result {\n | ^^^^^^^^^^^^^^^^^\n = note: this error originates in the derive macro `SpacetimeType` (in Nightly builds, run with -Z macro-backtrace for more info)\n\nerror[E0308]: mismatched types\n --> src\\lib.rs:10:10\n |\n 10 | #[derive(SpacetimeType)]\n | ^^^^^^^^^^^^^\n | |\n | expected `Result`, found `Result`\n | expected `Result` because of return type\n |\n = note: `Result` and `Result` have similar names, but are actually distinct types\nnote: `Result` is defined in crate `core`\n --> C:\\Users\\bradl\\.rustup\\toolchains\\1.90.0-x86_64-pc-windows-msvc\\lib/rustlib/src/rust\\library/core/src/result.rs:548:1\n |\n548 | pub enum Result {\n | ^^^^^^^^^^^^^^^^^^^^^\nnote: `Result` is defined in the current crate\n --> src\\lib.rs:17:1\n |\n 17 | pub struct Result {\n | ^^^^^^^^^^^^^^^^^\n = note: this error originates in the derive macro `SpacetimeType` (in Nightly builds, run with -Z macro-backtrace for more info)\n\nerror[E0277]: the `?` operator can only be used in a method that returns `Result` or `Option` (or another type that implements `FromResidual`)\n --> src\\lib.rs:10:22\n |\n10 | #[derive(SpacetimeType)]\n | ------------^\n | | |\n | | cannot use the `?` operator in a method that returns `Result`\n | this function should return `Result` or `Option` to accept `?`\n |\n = note: this error originates in the derive macro `SpacetimeType` (in Nightly builds, run with -Z macro-backtrace for more info)\n\nerror[E0308]: mismatched types\n --> src\\lib.rs:10:10\n |\n 10 | #[derive(SpacetimeType)]\n | ^^^^^^^^^^^^^\n | |\n | expected `Result`, found `Result`\n | expected `Result` because of return type\n |\n = note: `std::result::Result` and `Result` have similar names, but are actually distinct types\nnote: `std::result::Result` is defined in crate `core`\n --> C:\\Users\\bradl\\.rustup\\toolchains\\1.90.0-x86_64-pc-windows-msvc\\lib/rustlib/src/rust\\library/core/src/result.rs:548:1\n |\n548 | pub enum Result {\n | ^^^^^^^^^^^^^^^^^^^^^\nnote: `Result` is defined in the current crate\n --> src\\lib.rs:17:1\n |\n 17 | pub struct Result {\n | ^^^^^^^^^^^^^^^^^\n = note: this error originates in the derive macro `SpacetimeType` (in Nightly builds, run with -Z macro-backtrace for more info)\n\nerror[E0308]: mismatched types\n --> src\\lib.rs:10:10\n |\n 10 | #[derive(SpacetimeType)]\n | ^^^^^^^^^^^^^\n | |\n | expected `Result`, found `Result<__Variant, _>`\n | expected `Result` because of return type\n |\n = note: `std::result::Result<__Variant, _>` and `Result` have similar names, but are actually distinct types\nnote: `std::result::Result<__Variant, _>` is defined in crate `core`\n --> C:\\Users\\bradl\\.rustup\\toolchains\\1.90.0-x86_64-pc-windows-msvc\\lib/rustlib/src/rust\\library/core/src/result.rs:548:1\n |\n548 | pub enum Result {\n | ^^^^^^^^^^^^^^^^^^^^^\nnote: `Result` is defined in the current crate\n --> src\\lib.rs:17:1\n |\n 17 | pub struct Result {\n | ^^^^^^^^^^^^^^^^^\n = note: this error originates in the derive macro `SpacetimeType` (in Nightly builds, run with -Z macro-backtrace for more info)\n\nerror[E0308]: mismatched types\n --> src\\lib.rs:12:12\n |\n 10 | #[derive(SpacetimeType)]\n | ------------- expected `Result` because of return type\n 11 | pub enum Shape {\n 12 | Circle(i32),\n | ^^^ expected `Result`, found `Result<::Ok, ...>`\n |\n = note: `Result<::Ok, ...>` and `Result` have similar names, but are actually distinct types\nnote: `Result<::Ok, ...>` is defined in crate `core`\n --> C:\\Users\\bradl\\.rustup\\toolchains\\1.90.0-x86_64-pc-windows-msvc\\lib/rustlib/src/rust\\library/core/src/result.rs:548:1\n |\n548 | pub enum Result {\n | ^^^^^^^^^^^^^^^^^^^^^\nnote: `Result` is defined in the current crate\n --> src\\lib.rs:17:1\n |\n 17 | pub struct Result {\n | ^^^^^^^^^^^^^^^^^\n\nerror[E0308]: mismatched types\n --> src\\lib.rs:16:1\n |\n 16 | #[table(name = results)]\n | ^^^^^^^^^^^^^^^^^^^^^^^^\n | |\n | expected `Result`, found `Result`\n | expected `Result` because of return type\n |\n = note: `Result` and `Result` have similar names, but are actually distinct types\nnote: `Result` is defined in crate `core`\n --> C:\\Users\\bradl\\.rustup\\toolchains\\1.90.0-x86_64-pc-windows-msvc\\lib/rustlib/src/rust\\library/core/src/result.rs:548:1\n |\n548 | pub enum Result {\n | ^^^^^^^^^^^^^^^^^^^^^\nnote: `Result` is defined in the current crate\n --> src\\lib.rs:17:1\n |\n 17 | pub struct Result {\n | ^^^^^^^^^^^^^^^^^\n = note: this error originates in the derive macro `spacetimedb::__TableHelper` (in Nightly builds, run with -Z macro-backtrace for more info)\nhelp: consider using `Result::expect` to unwrap the `std::result::Result>::Error>` value, panicking if the value is a `Result::Err`\n |\n 16 | #[table(name = results)].expect(\"REASON\")\n | +++++++++++++++++\n\nerror[E0277]: the `?` operator can only be used in a method that returns `Result` or `Option` (or another type that implements `FromResidual`)\n --> src\\lib.rs:16:24\n |\n16 | #[table(name = results)]\n | -----------------------^\n | | |\n | | cannot use the `?` operator in a method that returns `Result`\n | this function should return `Result` or `Option` to accept `?`\n |\n = note: this error originates in the derive macro `spacetimedb::__TableHelper` which comes from the expansion of the attribute macro `table` (in Nightly builds, run with -Z macro-backtrace for more info)\n\nerror[E0308]: mismatched types\n --> src\\lib.rs:16:1\n |\n 16 | #[table(name = results)]\n | ^^^^^^^^^^^^^^^^^^^^^^^^\n | |\n | expected `Result`, found `Result`\n | expected `Result` because of return type\n |\n = note: `std::result::Result` and `Result` have similar names, but are actually distinct types\nnote: `std::result::Result` is defined in crate `core`\n --> C:\\Users\\bradl\\.rustup\\toolchains\\1.90.0-x86_64-pc-windows-msvc\\lib/rustlib/src/rust\\library/core/src/result.rs:548:1\n |\n548 | pub enum Result {\n | ^^^^^^^^^^^^^^^^^^^^^\nnote: `Result` is defined in the current crate\n --> src\\lib.rs:17:1\n |\n 17 | pub struct Result {\n | ^^^^^^^^^^^^^^^^^\n = note: this error originates in the derive macro `spacetimedb::__TableHelper` (in Nightly builds, run with -Z macro-backtrace for more info)\n\nerror[E0308]: mismatched types\n --> src\\lib.rs:16:1\n |\n 16 | #[table(name = results)]\n | ^^^^^^^^^^^^^^^^^^^^^^^^\n | |\n | expected `Result`, found `Result<_, _>`\n | expected `Result` because of return type\n |\n = note: `std::result::Result<_, _>` and `Result` have similar names, but are actually distinct types\nnote: `std::result::Result<_, _>` is defined in crate `core`\n --> C:\\Users\\bradl\\.rustup\\toolchains\\1.90.0-x86_64-pc-windows-msvc\\lib/rustlib/src/rust\\library/core/src/result.rs:548:1\n |\n548 | pub enum Result {\n | ^^^^^^^^^^^^^^^^^^^^^\nnote: `Result` is defined in the current crate\n --> src\\lib.rs:17:1\n |\n 17 | pub struct Result {\n | ^^^^^^^^^^^^^^^^^\n = note: this error originates in the derive macro `spacetimedb::__TableHelper` (in Nightly builds, run with -Z macro-backtrace for more info)\n\nerror[E0308]: mismatched types\n --> src\\lib.rs:16:1\n |\n 16 | #[table(name = results)]\n | ^^^^^^^^^^^^^^^^^^^^^^^^\n | |\n | expected `Result`, found `Result<__ProductFieldIdent, _>`\n | expected `Result` because of return type\n |\n = note: `Result<__ProductFieldIdent, _>` and `Result` have similar names, but are actually distinct types\nnote: `Result<__ProductFieldIdent, _>` is defined in crate `core`\n --> C:\\Users\\bradl\\.rustup\\toolchains\\1.90.0-x86_64-pc-windows-msvc\\lib/rustlib/src/rust\\library/core/src/result.rs:548:1\n |\n548 | pub enum Result {\n | ^^^^^^^^^^^^^^^^^^^^^\nnote: `Result` is defined in the current crate\n --> src\\lib.rs:17:1\n |\n 17 | pub struct Result {\n | ^^^^^^^^^^^^^^^^^\n = note: this error originates in the derive macro `spacetimedb::__TableHelper` (in Nightly builds, run with -Z macro-backtrace for more info)\n\nerror[E0308]: mismatched types\n --> src\\lib.rs:16:1\n |\n 16 | #[table(name = results)]\n | ^^^^^^^^^^^^^^^^^^^^^^^^\n | |\n | expected `Result`, found `Result<::Ok, ...>`\n | expected `Result` because of return type\n |\n = note: `Result<::Ok, ...>` and `Result` have similar names, but are actually distinct types\nnote: `Result<::Ok, ...>` is defined in crate `core`\n --> C:\\Users\\bradl\\.rustup\\toolchains\\1.90.0-x86_64-pc-windows-msvc\\lib/rustlib/src/rust\\library/core/src/result.rs:548:1\n |\n548 | pub enum Result {\n | ^^^^^^^^^^^^^^^^^^^^^\nnote: `Result` is defined in the current crate\n --> src\\lib.rs:17:1\n |\n 17 | pub struct Result {\n | ^^^^^^^^^^^^^^^^^\n = note: this error originates in the derive macro `spacetimedb::__TableHelper` (in Nightly builds, run with -Z macro-backtrace for more info)\n\nerror[E0599]: no method named `insert` found for reference `&results__TableHandle` in the current scope\n --> src\\lib.rs:25:22\n |\n25 | ctx.db.results().insert(Result { id, value: Shape::Circle(radius) });\n | ^^^^^^\n |\n = help: items from traits can only be used if the trait is in scope\nhelp: trait `Table` which provides `insert` is implemented but not in scope; perhaps you want to import it\n |\n 2 + use spacetimedb::Table;\n |\nhelp: there is a method `try_insert` with a similar name\n |\n25 | ctx.db.results().try_insert(Result { id, value: Shape::Circle(radius) });\n | ++++\n\nSome errors have detailed explanations: E0053, E0107, E0277, E0308, E0599.\nFor more information about an error, try `rustc --explain E0053`.\nerror: could not compile `spacetime-module` (lib) due to 40 previous errors\nError: command [\"cargo\", \"build\", \"--config=net.git-fetch-with-cli=true\", \"--target=wasm32-unknown-unknown\", \"--release\", \"--message-format=json-render-diagnostics\"] exited with code 101\n\n--- stdout ---\n",
- "phase": "build_or_publish"
- }
- }
- },
- "vendor": "xai",
- "started_at": "2025-10-22T01:02:05.214065100Z",
- "finished_at": "2025-10-22T01:03:53.947923200Z"
- },
- "t_014_elementary_columns": {
- "hash": "d47c11c6f8fd2858029ca4bcb1a9fdc8b79b46dac58a8a1b6ddb16f9f3d7213e",
- "task": "t_014_elementary_columns",
- "lang": "rust",
- "golden_published": false,
- "model_name": "Grok 4",
- "total_tests": 3,
- "passed_tests": 0,
- "llm_output": "use spacetimedb::{reducer, table, ReducerContext};\n\n#[table(name = primitives)]\npub struct Primitive {\n #[primary_key]\n id: i32,\n count: i32,\n total: i64,\n price: f32,\n ratio: f64,\n active: bool,\n name: String,\n}\n\n#[reducer(init)]\npub fn seed(ctx: &ReducerContext) {\n ctx.db.primitives().insert(Primitive {\n id: 1,\n count: 2,\n total: 3000000000i64,\n price: 1.5f32,\n ratio: 2.25f64,\n active: true,\n name: \"Alice\".to_string(),\n });\n}",
- "category": "schema",
- "route_api_model": "grok-4",
- "golden_db": "schema-t-014-elementary-columns-golden",
- "llm_db": "schema-t-014-elementary-columns-grok-4-llm",
- "work_dir_golden": "target\\llm-runs\\schema\\t_014_elementary_columns\\rust\\server\\golden",
- "work_dir_llm": "target\\llm-runs\\schema\\t_014_elementary_columns\\rust\\server\\grok-4\\llm",
- "scorer_details": {
- "publish_error": {
- "pass": false,
- "partial": 0.0,
- "notes": {
- "error": "spacetime publish failed (exit=1)\n--- stderr ---\n Blocking waiting for file lock on package cache\n Updating crates.io index\n Blocking waiting for file lock on package cache\n Locking 67 packages to latest compatible versions\n Blocking waiting for file lock on package cache\n Blocking waiting for file lock on package cache\n Blocking waiting for file lock on package cache\n Compiling proc-macro2 v1.0.101\n Compiling quote v1.0.41\n Compiling unicode-ident v1.0.20\n Compiling typenum v1.19.0\n Compiling version_check v0.9.5\n Compiling autocfg v1.5.0\n Compiling cfg-if v1.0.4\n Compiling serde_core v1.0.228\n Compiling either v1.15.0\n Compiling shlex v1.3.0\n Compiling zerocopy v0.8.27\n Compiling serde v1.0.228\n Compiling find-msvc-tools v0.1.4\n Compiling nohash-hasher v0.2.0\n Compiling anyhow v1.0.100\n Compiling thiserror v1.0.69\n Compiling bitflags v2.10.0\n Compiling keccak v0.1.5\n Compiling convert_case v0.4.0\n Compiling arrayvec v0.7.6\n Compiling humantime v2.3.0\n Compiling heck v0.4.1\n Compiling heck v0.5.0\n Compiling second-stack v0.3.5\n Compiling constant_time_eq v0.3.1\n Compiling bytemuck v1.24.0\n Compiling smallvec v1.15.1\n Compiling bytes v1.10.1\n Compiling spacetimedb-lib v1.6.0\n Compiling itertools v0.12.1\n Compiling cc v1.2.41\n Compiling getrandom v0.2.16\n Compiling generic-array v0.14.9\n Compiling arrayref v0.3.9\n Compiling hex v0.4.3\n Compiling log v0.4.28\n Compiling scoped-tls v1.0.1\n Compiling num-traits v0.2.19\n Compiling rand_core v0.6.4\n Compiling spacetimedb-primitives v1.6.0\n Compiling blake3 v1.8.2\n Compiling spacetimedb-bindings-sys v1.6.0\n Compiling block-buffer v0.10.4\n Compiling crypto-common v0.1.6\n Compiling syn v2.0.107\n Compiling digest v0.10.7\n Compiling ppv-lite86 v0.2.21\n Compiling approx v0.3.2\n Compiling chrono v0.4.42\n Compiling decorum v0.3.1\n Compiling ethnum v1.5.2\n Compiling rand_chacha v0.3.1\n Compiling sha3 v0.10.8\n Compiling rand v0.8.5\n Compiling thiserror-impl v1.0.69\n Compiling derive_more v0.99.20\n Compiling enum-as-inner v0.6.1\n Compiling spacetimedb-bindings-macro v1.6.0\n Compiling spacetimedb-sats v1.6.0\n Compiling spacetimedb v1.6.0\n Compiling spacetime-module v0.1.0 (E:\\Development\\ClockworkLabs\\SpacetimeDB\\SpacetimeDBPrivate\\private\\target\\llm-runs\\schema\\t_014_elementary_columns\\rust\\server\\grok-4\\llm)\nerror[E0599]: no method named `insert` found for reference `&primitives__TableHandle` in the current scope\n --> src\\lib.rs:18:25\n |\n18 | ctx.db.primitives().insert(Primitive {\n | --------------------^^^^^^\n |\n = help: items from traits can only be used if the trait is in scope\nhelp: trait `Table` which provides `insert` is implemented but not in scope; perhaps you want to import it\n |\n 2 + use spacetimedb::Table;\n |\nhelp: there is a method `try_insert` with a similar name\n |\n18 | ctx.db.primitives().try_insert(Primitive {\n | ++++\n\nFor more information about this error, try `rustc --explain E0599`.\nerror: could not compile `spacetime-module` (lib) due to 1 previous error\nError: command [\"cargo\", \"build\", \"--config=net.git-fetch-with-cli=true\", \"--target=wasm32-unknown-unknown\", \"--release\", \"--message-format=json-render-diagnostics\"] exited with code 101\n\n--- stdout ---\n",
- "phase": "build_or_publish"
- }
- }
- },
- "vendor": "xai",
- "started_at": "2025-10-22T01:02:05.216933200Z",
- "finished_at": "2025-10-22T01:03:49.010285900Z"
- },
- "t_015_product_type_columns": {
- "hash": "d47c11c6f8fd2858029ca4bcb1a9fdc8b79b46dac58a8a1b6ddb16f9f3d7213e",
- "task": "t_015_product_type_columns",
- "lang": "rust",
- "golden_published": false,
- "model_name": "Grok 4",
- "total_tests": 3,
- "passed_tests": 0,
- "llm_output": "use spacetimedb::{reducer, table, ReducerContext};\n\n#[derive(spacetimedb::SpacetimeType)]\npub struct Address {\n street: String,\n zip: i32\n}\n\n#[derive(spacetimedb::SpacetimeType)]\npub struct Position {\n x: i32,\n y: i32\n}\n\n#[table(name = profiles)]\npub struct Profile {\n #[primary_key]\n id: i32,\n home: Address,\n work: Address,\n pos: Position\n}\n\n#[reducer]\npub fn seed(ctx: &ReducerContext) {\n ctx.db.profiles().insert(Profile {\n id: 1,\n home: Address { street: \"1 Main\".to_string(), zip: 11111 },\n work: Address { street: \"2 Broad\".to_string(), zip: 22222 },\n pos: Position { x: 7, y: 9 }\n });\n}",
- "category": "schema",
- "route_api_model": "grok-4",
- "golden_db": "schema-t-015-product-type-columns-golden",
- "llm_db": "schema-t-015-product-type-columns-grok-4-llm",
- "work_dir_golden": "target\\llm-runs\\schema\\t_015_product_type_columns\\rust\\server\\golden",
- "work_dir_llm": "target\\llm-runs\\schema\\t_015_product_type_columns\\rust\\server\\grok-4\\llm",
- "scorer_details": {
- "publish_error": {
- "pass": false,
- "partial": 0.0,
- "notes": {
- "error": "spacetime publish failed (exit=1)\n--- stderr ---\n Updating crates.io index\n Locking 67 packages to latest compatible versions\n Compiling proc-macro2 v1.0.101\n Compiling unicode-ident v1.0.20\n Compiling quote v1.0.41\n Compiling version_check v0.9.5\n Compiling typenum v1.19.0\n Compiling autocfg v1.5.0\n Compiling serde_core v1.0.228\n Compiling cfg-if v1.0.4\n Compiling either v1.15.0\n Compiling shlex v1.3.0\n Compiling serde v1.0.228\n Compiling find-msvc-tools v0.1.4\n Compiling zerocopy v0.8.27\n Compiling bitflags v2.10.0\n Compiling nohash-hasher v0.2.0\n Compiling anyhow v1.0.100\n Compiling thiserror v1.0.69\n Compiling humantime v2.3.0\n Compiling keccak v0.1.5\n Compiling convert_case v0.4.0\n Compiling heck v0.4.1\n Compiling arrayvec v0.7.6\n Compiling heck v0.5.0\n Compiling second-stack v0.3.5\n Compiling smallvec v1.15.1\n Compiling bytemuck v1.24.0\n Compiling constant_time_eq v0.3.1\n Compiling spacetimedb-lib v1.6.0\n Compiling arrayref v0.3.9\n Compiling getrandom v0.2.16\n Compiling hex v0.4.3\n Compiling bytes v1.10.1\n Compiling scoped-tls v1.0.1\n Compiling itertools v0.12.1\n Compiling rand_core v0.6.4\n Compiling log v0.4.28\n Compiling generic-array v0.14.9\n Compiling num-traits v0.2.19\n Compiling cc v1.2.41\n Compiling syn v2.0.107\n Compiling blake3 v1.8.2\n Compiling spacetimedb-primitives v1.6.0\n Compiling crypto-common v0.1.6\n Compiling block-buffer v0.10.4\n Compiling digest v0.10.7\n Compiling spacetimedb-bindings-sys v1.6.0\n Compiling approx v0.3.2\n Compiling chrono v0.4.42\n Compiling decorum v0.3.1\n Compiling sha3 v0.10.8\n Compiling ppv-lite86 v0.2.21\n Compiling rand_chacha v0.3.1\n Compiling rand v0.8.5\n Compiling ethnum v1.5.2\n Compiling thiserror-impl v1.0.69\n Compiling derive_more v0.99.20\n Compiling enum-as-inner v0.6.1\n Compiling spacetimedb-bindings-macro v1.6.0\n Compiling spacetimedb-sats v1.6.0\n Compiling spacetimedb v1.6.0\n Compiling spacetime-module v0.1.0 (E:\\Development\\ClockworkLabs\\SpacetimeDB\\SpacetimeDBPrivate\\private\\target\\llm-runs\\schema\\t_015_product_type_columns\\rust\\server\\grok-4\\llm)\nerror[E0599]: no method named `insert` found for reference `&profiles__TableHandle` in the current scope\n --> src\\lib.rs:27:23\n |\n27 | ctx.db.profiles().insert(Profile {\n | ------------------^^^^^^\n |\n = help: items from traits can only be used if the trait is in scope\nhelp: trait `Table` which provides `insert` is implemented but not in scope; perhaps you want to import it\n |\n 2 + use spacetimedb::Table;\n |\nhelp: there is a method `try_insert` with a similar name\n |\n27 | ctx.db.profiles().try_insert(Profile {\n | ++++\n\nFor more information about this error, try `rustc --explain E0599`.\nerror: could not compile `spacetime-module` (lib) due to 1 previous error\nError: command [\"cargo\", \"build\", \"--config=net.git-fetch-with-cli=true\", \"--target=wasm32-unknown-unknown\", \"--release\", \"--message-format=json-render-diagnostics\"] exited with code 101\n\n--- stdout ---\n",
- "phase": "build_or_publish"
- }
- }
- },
- "vendor": "xai",
- "started_at": "2025-10-22T01:02:05.219748600Z",
- "finished_at": "2025-10-22T01:04:00.131061Z"
- },
- "t_016_sum_type_columns": {
- "hash": "d47c11c6f8fd2858029ca4bcb1a9fdc8b79b46dac58a8a1b6ddb16f9f3d7213e",
- "task": "t_016_sum_type_columns",
- "lang": "rust",
- "golden_published": false,
- "model_name": "Grok 4",
- "total_tests": 3,
- "passed_tests": 0,
- "llm_output": "use spacetimedb::{spacetimedb, ReducerContext, Table};\n\n#[derive(spacetimedb::SpacetimeType)]\npub struct Rect {\n width: i32,\n height: i32,\n}\n\n#[derive(spacetimedb::SpacetimeType)]\npub enum Shape {\n Circle(i32),\n Rectangle(Rect),\n}\n\n#[spacetimedb::table(name = drawings)]\npub struct Drawing {\n #[primary_key]\n id: i32,\n a: Shape,\n b: Shape,\n}\n\n#[spacetimedb::reducer(seed)]\npub fn seed(ctx: &ReducerContext) {\n ctx.db.drawings().insert(Drawing {\n id: 1,\n a: Shape::Circle(10),\n b: Shape::Rectangle(Rect { width: 4, height: 6 }),\n });\n}",
- "category": "schema",
- "route_api_model": "grok-4",
- "golden_db": "schema-t-016-sum-type-columns-golden",
- "llm_db": "schema-t-016-sum-type-columns-grok-4-llm",
- "work_dir_golden": "target\\llm-runs\\schema\\t_016_sum_type_columns\\rust\\server\\golden",
- "work_dir_llm": "target\\llm-runs\\schema\\t_016_sum_type_columns\\rust\\server\\grok-4\\llm",
- "scorer_details": {
- "publish_error": {
- "pass": false,
- "partial": 0.0,
- "notes": {
- "error": "spacetime publish failed (exit=1)\n--- stderr ---\n Updating crates.io index\n Locking 67 packages to latest compatible versions\n Compiling proc-macro2 v1.0.101\n Compiling quote v1.0.41\n Compiling unicode-ident v1.0.20\n Compiling typenum v1.19.0\n Compiling version_check v0.9.5\n Compiling autocfg v1.5.0\n Compiling serde_core v1.0.228\n Compiling cfg-if v1.0.4\n Compiling shlex v1.3.0\n Compiling either v1.15.0\n Compiling zerocopy v0.8.27\n Compiling serde v1.0.228\n Compiling find-msvc-tools v0.1.4\n Compiling nohash-hasher v0.2.0\n Compiling bitflags v2.10.0\n Compiling thiserror v1.0.69\n Compiling anyhow v1.0.100\n Compiling humantime v2.3.0\n Compiling keccak v0.1.5\n Compiling heck v0.4.1\n Compiling convert_case v0.4.0\n Compiling heck v0.5.0\n Compiling arrayvec v0.7.6\n Compiling second-stack v0.3.5\n Compiling spacetimedb-lib v1.6.0\n Compiling arrayref v0.3.9\n Compiling constant_time_eq v0.3.1\n Compiling bytemuck v1.24.0\n Compiling bytes v1.10.1\n Compiling getrandom v0.2.16\n Compiling hex v0.4.3\n Compiling smallvec v1.15.1\n Compiling itertools v0.12.1\n Compiling scoped-tls v1.0.1\n Compiling rand_core v0.6.4\n Compiling log v0.4.28\n Compiling generic-array v0.14.9\n Compiling cc v1.2.41\n Compiling num-traits v0.2.19\n Compiling blake3 v1.8.2\n Compiling syn v2.0.107\n Compiling spacetimedb-primitives v1.6.0\n Compiling approx v0.3.2\n Compiling chrono v0.4.42\n Compiling spacetimedb-bindings-sys v1.6.0\n Compiling block-buffer v0.10.4\n Compiling crypto-common v0.1.6\n Compiling decorum v0.3.1\n Compiling ppv-lite86 v0.2.21\n Compiling digest v0.10.7\n Compiling ethnum v1.5.2\n Compiling sha3 v0.10.8\n Compiling rand_chacha v0.3.1\n Compiling rand v0.8.5\n Compiling thiserror-impl v1.0.69\n Compiling spacetimedb-bindings-macro v1.6.0\n Compiling enum-as-inner v0.6.1\n Compiling derive_more v0.99.20\n Compiling spacetimedb-sats v1.6.0\n Compiling spacetimedb v1.6.0\n Compiling spacetime-module v0.1.0 (E:\\Development\\ClockworkLabs\\SpacetimeDB\\SpacetimeDBPrivate\\private\\target\\llm-runs\\schema\\t_016_sum_type_columns\\rust\\server\\grok-4\\llm)\nerror: expected one of: `init`, `client_connected`, `client_disconnected`, `update`, `name`\n --> src\\lib.rs:24:24\n |\n24 | #[spacetimedb::reducer(seed)]\n | ^^^^\n\nerror[E0432]: unresolved import `spacetimedb::spacetimedb`\n --> src\\lib.rs:2:19\n |\n2 | use spacetimedb::{spacetimedb, ReducerContext, Table};\n | ^^^^^^^^^^^ no `spacetimedb` in the root\n\nFor more information about this error, try `rustc --explain E0432`.\nerror: could not compile `spacetime-module` (lib) due to 2 previous errors\nError: command [\"cargo\", \"build\", \"--config=net.git-fetch-with-cli=true\", \"--target=wasm32-unknown-unknown\", \"--release\", \"--message-format=json-render-diagnostics\"] exited with code 101\n\n--- stdout ---\n",
- "phase": "build_or_publish"
- }
- }
- },
- "vendor": "xai",
- "started_at": "2025-10-22T01:02:05.222488900Z",
- "finished_at": "2025-10-22T01:03:17.896166200Z"
- },
- "t_017_scheduled_columns": {
- "hash": "b0d5bbe755291d8ec65de0a74b4eecfa344670639ca5f1a365ced3ab9717e97c",
- "task": "t_017_scheduled_columns",
- "lang": "rust",
- "golden_published": false,
- "model_name": "Grok 4",
- "total_tests": 1,
- "passed_tests": 0,
- "category": "schema",
- "route_api_model": "grok-4",
- "scorer_details": {
- "publish_error": {
- "pass": false,
- "partial": 0.0,
- "notes": {
- "error": "POST https://api.x.ai/v1/chat/completions status 429 Too Many Requests body: {\"code\":\"Some resource has been exhausted\",\"error\":\"Your team 5fc90f6d-3ee0-435e-a2e2-c7d23f7ea90d has either used all available credits or reached its monthly spending limit. To continue making API requests, please purchase more credits or raise your spending limit.\"}",
- "phase": "build_or_publish"
- }
- }
- },
- "vendor": "xai"
- },
- "t_018_constraints": {
- "hash": "d47c11c6f8fd2858029ca4bcb1a9fdc8b79b46dac58a8a1b6ddb16f9f3d7213e",
- "task": "t_018_constraints",
- "lang": "rust",
- "golden_published": false,
- "model_name": "Grok 4",
- "total_tests": 3,
- "passed_tests": 0,
- "llm_output": "use spacetimedb::{reducer, ReducerContext};\n\n#[spacetimedb::table(name = accounts, index(name = by_name, btree(columns = [name])))]\npub struct Account {\n #[primary_key]\n id: i32,\n #[unique]\n email: String,\n name: String,\n}\n\n#[reducer]\npub fn seed(ctx: &ReducerContext) {\n ctx.db.accounts().insert(Account { id: 1, email: \"a@example.com\".to_string(), name: \"Alice\".to_string() });\n ctx.db.accounts().insert(Account { id: 2, email: \"b@example.com\".to_string(), name: \"Bob\".to_string() });\n}",
- "category": "schema",
- "route_api_model": "grok-4",
- "golden_db": "schema-t-018-constraints-golden",
- "llm_db": "schema-t-018-constraints-grok-4-llm",
- "work_dir_golden": "target\\llm-runs\\schema\\t_018_constraints\\rust\\server\\golden",
- "work_dir_llm": "target\\llm-runs\\schema\\t_018_constraints\\rust\\server\\grok-4\\llm",
- "scorer_details": {
- "publish_error": {
- "pass": false,
- "partial": 0.0,
- "notes": {
- "error": "spacetime publish failed (exit=1)\n--- stderr ---\n Blocking waiting for file lock on package cache\n Updating crates.io index\n Blocking waiting for file lock on package cache\n Locking 67 packages to latest compatible versions\n Blocking waiting for file lock on package cache\n Blocking waiting for file lock on package cache\n Blocking waiting for file lock on package cache\n Compiling proc-macro2 v1.0.101\n Compiling quote v1.0.41\n Compiling unicode-ident v1.0.20\n Compiling version_check v0.9.5\n Compiling typenum v1.19.0\n Compiling autocfg v1.5.0\n Compiling serde_core v1.0.228\n Compiling cfg-if v1.0.4\n Compiling zerocopy v0.8.27\n Compiling shlex v1.3.0\n Compiling either v1.15.0\n Compiling serde v1.0.228\n Compiling find-msvc-tools v0.1.4\n Compiling bitflags v2.10.0\n Compiling anyhow v1.0.100\n Compiling thiserror v1.0.69\n Compiling nohash-hasher v0.2.0\n Compiling humantime v2.3.0\n Compiling keccak v0.1.5\n Compiling heck v0.4.1\n Compiling heck v0.5.0\n Compiling arrayvec v0.7.6\n Compiling convert_case v0.4.0\n Compiling smallvec v1.15.1\n Compiling spacetimedb-lib v1.6.0\n Compiling bytemuck v1.24.0\n Compiling bytes v1.10.1\n Compiling second-stack v0.3.5\n Compiling hex v0.4.3\n Compiling getrandom v0.2.16\n Compiling itertools v0.12.1\n Compiling arrayref v0.3.9\n Compiling generic-array v0.14.9\n Compiling cc v1.2.41\n Compiling constant_time_eq v0.3.1\n Compiling log v0.4.28\n Compiling scoped-tls v1.0.1\n Compiling rand_core v0.6.4\n Compiling spacetimedb-primitives v1.6.0\n Compiling num-traits v0.2.19\n Compiling blake3 v1.8.2\n Compiling spacetimedb-bindings-sys v1.6.0\n Compiling ppv-lite86 v0.2.21\n Compiling rand_chacha v0.3.1\n Compiling ethnum v1.5.2\n Compiling rand v0.8.5\n Compiling block-buffer v0.10.4\n Compiling crypto-common v0.1.6\n Compiling syn v2.0.107\n Compiling digest v0.10.7\n Compiling sha3 v0.10.8\n Compiling approx v0.3.2\n Compiling chrono v0.4.42\n Compiling decorum v0.3.1\n Compiling thiserror-impl v1.0.69\n Compiling enum-as-inner v0.6.1\n Compiling spacetimedb-bindings-macro v1.6.0\n Compiling derive_more v0.99.20\n Compiling spacetimedb-sats v1.6.0\n Compiling spacetimedb v1.6.0\n Compiling spacetime-module v0.1.0 (E:\\Development\\ClockworkLabs\\SpacetimeDB\\SpacetimeDBPrivate\\private\\target\\llm-runs\\schema\\t_018_constraints\\rust\\server\\grok-4\\llm)\nerror[E0599]: no method named `insert` found for reference `&accounts__TableHandle` in the current scope\n --> src\\lib.rs:15:23\n |\n15 | ctx.db.accounts().insert(Account { id: 1, email: \"a@example.com\".to_string(), name: \"Alice\".to_string() });\n | ^^^^^^\n |\n = help: items from traits can only be used if the trait is in scope\nhelp: trait `Table` which provides `insert` is implemented but not in scope; perhaps you want to import it\n |\n 2 + use spacetimedb::Table;\n |\nhelp: there is a method `try_insert` with a similar name\n |\n15 | ctx.db.accounts().try_insert(Account { id: 1, email: \"a@example.com\".to_string(), name: \"Alice\".to_string() });\n | ++++\n\nerror[E0599]: no method named `insert` found for reference `&accounts__TableHandle` in the current scope\n --> src\\lib.rs:16:23\n |\n16 | ctx.db.accounts().insert(Account { id: 2, email: \"b@example.com\".to_string(), name: \"Bob\".to_string() });\n | ^^^^^^\n |\n = help: items from traits can only be used if the trait is in scope\nhelp: trait `Table` which provides `insert` is implemented but not in scope; perhaps you want to import it\n |\n 2 + use spacetimedb::Table;\n |\nhelp: there is a method `try_insert` with a similar name\n |\n16 | ctx.db.accounts().try_insert(Account { id: 2, email: \"b@example.com\".to_string(), name: \"Bob\".to_string() });\n | ++++\n\nFor more information about this error, try `rustc --explain E0599`.\nerror: could not compile `spacetime-module` (lib) due to 2 previous errors\nError: command [\"cargo\", \"build\", \"--config=net.git-fetch-with-cli=true\", \"--target=wasm32-unknown-unknown\", \"--release\", \"--message-format=json-render-diagnostics\"] exited with code 101\n\n--- stdout ---\n",
- "phase": "build_or_publish"
- }
- }
- },
- "vendor": "xai",
- "started_at": "2025-10-22T01:02:05.228601900Z",
- "finished_at": "2025-10-22T01:03:49.415425800Z"
- },
- "t_019_many_to_many": {
- "hash": "d47c11c6f8fd2858029ca4bcb1a9fdc8b79b46dac58a8a1b6ddb16f9f3d7213e",
- "task": "t_019_many_to_many",
- "lang": "rust",
- "golden_published": false,
- "model_name": "Grok 4",
- "total_tests": 5,
- "passed_tests": 0,
- "llm_output": "use spacetimedb::{table, reducer, ReducerContext};\n\n#[table(name = users)]\npub struct User {\n #[primary_key]\n user_id: i32,\n name: String,\n}\n\n#[table(name = groups)]\npub struct Group {\n #[primary_key]\n group_id: i32,\n title: String,\n}\n\n#[table(name = memberships, index(name = by_user, btree(columns = [user_id])), index(name = by_group, btree(columns = [group_id])))]\npub struct Membership {\n #[primary_key]\n id: i32,\n user_id: i32,\n group_id: i32,\n}\n\n#[reducer]\npub fn seed(ctx: &ReducerContext) {\n ctx.db.users().insert(User { user_id: 1, name: \"Alice\".into() });\n ctx.db.users().insert(User { user_id: 2, name: \"Bob\".into() });\n ctx.db.groups().insert(Group { group_id: 10, title: \"Admin\".into() });\n ctx.db.groups().insert(Group { group_id: 20, title: \"Dev\".into() });\n ctx.db.memberships().insert(Membership { id: 1, user_id: 1, group_id: 10 });\n ctx.db.memberships().insert(Membership { id: 2, user_id: 1, group_id: 20 });\n ctx.db.memberships().insert(Membership { id: 3, user_id: 2, group_id: 20 });\n}",
- "category": "schema",
- "route_api_model": "grok-4",
- "golden_db": "schema-t-019-many-to-many-golden",
- "llm_db": "schema-t-019-many-to-many-grok-4-llm",
- "work_dir_golden": "target\\llm-runs\\schema\\t_019_many_to_many\\rust\\server\\golden",
- "work_dir_llm": "target\\llm-runs\\schema\\t_019_many_to_many\\rust\\server\\grok-4\\llm",
- "scorer_details": {
- "publish_error": {
- "pass": false,
- "partial": 0.0,
- "notes": {
- "error": "spacetime publish failed (exit=1)\n--- stderr ---\n Updating crates.io index\n Locking 67 packages to latest compatible versions\n Compiling proc-macro2 v1.0.101\n Compiling quote v1.0.41\n Compiling unicode-ident v1.0.20\n Compiling typenum v1.19.0\n Compiling version_check v0.9.5\n Compiling autocfg v1.5.0\n Compiling cfg-if v1.0.4\n Compiling serde_core v1.0.228\n Compiling serde v1.0.228\n Compiling find-msvc-tools v0.1.4\n Compiling either v1.15.0\n Compiling shlex v1.3.0\n Compiling zerocopy v0.8.27\n Compiling nohash-hasher v0.2.0\n Compiling anyhow v1.0.100\n Compiling bitflags v2.10.0\n Compiling thiserror v1.0.69\n Compiling humantime v2.3.0\n Compiling heck v0.4.1\n Compiling keccak v0.1.5\n Compiling arrayvec v0.7.6\n Compiling convert_case v0.4.0\n Compiling heck v0.5.0\n Compiling smallvec v1.15.1\n Compiling constant_time_eq v0.3.1\n Compiling arrayref v0.3.9\n Compiling bytemuck v1.24.0\n Compiling second-stack v0.3.5\n Compiling bytes v1.10.1\n Compiling itertools v0.12.1\n Compiling cc v1.2.41\n Compiling getrandom v0.2.16\n Compiling spacetimedb-lib v1.6.0\n Compiling hex v0.4.3\n Compiling log v0.4.28\n Compiling scoped-tls v1.0.1\n Compiling generic-array v0.14.9\n Compiling num-traits v0.2.19\n Compiling rand_core v0.6.4\n Compiling spacetimedb-primitives v1.6.0\n Compiling blake3 v1.8.2\n Compiling spacetimedb-bindings-sys v1.6.0\n Compiling syn v2.0.107\n Compiling crypto-common v0.1.6\n Compiling block-buffer v0.10.4\n Compiling digest v0.10.7\n Compiling sha3 v0.10.8\n Compiling approx v0.3.2\n Compiling chrono v0.4.42\n Compiling ppv-lite86 v0.2.21\n Compiling decorum v0.3.1\n Compiling rand_chacha v0.3.1\n Compiling rand v0.8.5\n Compiling ethnum v1.5.2\n Compiling thiserror-impl v1.0.69\n Compiling enum-as-inner v0.6.1\n Compiling derive_more v0.99.20\n Compiling spacetimedb-bindings-macro v1.6.0\n Compiling spacetimedb-sats v1.6.0\n Compiling spacetimedb v1.6.0\n Compiling spacetime-module v0.1.0 (E:\\Development\\ClockworkLabs\\SpacetimeDB\\SpacetimeDBPrivate\\private\\target\\llm-runs\\schema\\t_019_many_to_many\\rust\\server\\grok-4\\llm)\nerror[E0599]: no method named `insert` found for reference `&users__TableHandle` in the current scope\n --> src\\lib.rs:28:20\n |\n28 | ctx.db.users().insert(User { user_id: 1, name: \"Alice\".into() });\n | ^^^^^^\n |\n = help: items from traits can only be used if the trait is in scope\nhelp: trait `Table` which provides `insert` is implemented but not in scope; perhaps you want to import it\n |\n 2 + use spacetimedb::Table;\n |\nhelp: there is a method `try_insert` with a similar name\n |\n28 | ctx.db.users().try_insert(User { user_id: 1, name: \"Alice\".into() });\n | ++++\n\nerror[E0599]: no method named `insert` found for reference `&users__TableHandle` in the current scope\n --> src\\lib.rs:29:20\n |\n29 | ctx.db.users().insert(User { user_id: 2, name: \"Bob\".into() });\n | ^^^^^^\n |\n = help: items from traits can only be used if the trait is in scope\nhelp: trait `Table` which provides `insert` is implemented but not in scope; perhaps you want to import it\n |\n 2 + use spacetimedb::Table;\n |\nhelp: there is a method `try_insert` with a similar name\n |\n29 | ctx.db.users().try_insert(User { user_id: 2, name: \"Bob\".into() });\n | ++++\n\nerror[E0599]: no method named `insert` found for reference `&groups__TableHandle` in the current scope\n --> src\\lib.rs:30:21\n |\n30 | ctx.db.groups().insert(Group { group_id: 10, title: \"Admin\".into() });\n | ^^^^^^\n |\n = help: items from traits can only be used if the trait is in scope\nhelp: trait `Table` which provides `insert` is implemented but not in scope; perhaps you want to import it\n |\n 2 + use spacetimedb::Table;\n |\nhelp: there is a method `try_insert` with a similar name\n |\n30 | ctx.db.groups().try_insert(Group { group_id: 10, title: \"Admin\".into() });\n | ++++\n\nerror[E0599]: no method named `insert` found for reference `&groups__TableHandle` in the current scope\n --> src\\lib.rs:31:21\n |\n31 | ctx.db.groups().insert(Group { group_id: 20, title: \"Dev\".into() });\n | ^^^^^^\n |\n = help: items from traits can only be used if the trait is in scope\nhelp: trait `Table` which provides `insert` is implemented but not in scope; perhaps you want to import it\n |\n 2 + use spacetimedb::Table;\n |\nhelp: there is a method `try_insert` with a similar name\n |\n31 | ctx.db.groups().try_insert(Group { group_id: 20, title: \"Dev\".into() });\n | ++++\n\nerror[E0599]: no method named `insert` found for reference `&memberships__TableHandle` in the current scope\n --> src\\lib.rs:32:26\n |\n32 | ctx.db.memberships().insert(Membership { id: 1, user_id: 1, group_id: 10 });\n | ^^^^^^\n |\n = help: items from traits can only be used if the trait is in scope\nhelp: trait `Table` which provides `insert` is implemented but not in scope; perhaps you want to import it\n |\n 2 + use spacetimedb::Table;\n |\nhelp: there is a method `try_insert` with a similar name\n |\n32 | ctx.db.memberships().try_insert(Membership { id: 1, user_id: 1, group_id: 10 });\n | ++++\n\nerror[E0599]: no method named `insert` found for reference `&memberships__TableHandle` in the current scope\n --> src\\lib.rs:33:26\n |\n33 | ctx.db.memberships().insert(Membership { id: 2, user_id: 1, group_id: 20 });\n | ^^^^^^\n |\n = help: items from traits can only be used if the trait is in scope\nhelp: trait `Table` which provides `insert` is implemented but not in scope; perhaps you want to import it\n |\n 2 + use spacetimedb::Table;\n |\nhelp: there is a method `try_insert` with a similar name\n |\n33 | ctx.db.memberships().try_insert(Membership { id: 2, user_id: 1, group_id: 20 });\n | ++++\n\nerror[E0599]: no method named `insert` found for reference `&memberships__TableHandle` in the current scope\n --> src\\lib.rs:34:26\n |\n34 | ctx.db.memberships().insert(Membership { id: 3, user_id: 2, group_id: 20 });\n | ^^^^^^\n |\n = help: items from traits can only be used if the trait is in scope\nhelp: trait `Table` which provides `insert` is implemented but not in scope; perhaps you want to import it\n |\n 2 + use spacetimedb::Table;\n |\nhelp: there is a method `try_insert` with a similar name\n |\n34 | ctx.db.memberships().try_insert(Membership { id: 3, user_id: 2, group_id: 20 });\n | ++++\n\nFor more information about this error, try `rustc --explain E0599`.\nerror: could not compile `spacetime-module` (lib) due to 7 previous errors\nError: command [\"cargo\", \"build\", \"--config=net.git-fetch-with-cli=true\", \"--target=wasm32-unknown-unknown\", \"--release\", \"--message-format=json-render-diagnostics\"] exited with code 101\n\n--- stdout ---\n",
- "phase": "build_or_publish"
- }
- }
- },
- "vendor": "xai",
- "started_at": "2025-10-22T01:02:05.232020Z",
- "finished_at": "2025-10-22T01:03:38.139665400Z"
- },
- "t_020_ecs": {
- "hash": "d47c11c6f8fd2858029ca4bcb1a9fdc8b79b46dac58a8a1b6ddb16f9f3d7213e",
- "task": "t_020_ecs",
- "lang": "rust",
- "golden_published": false,
- "model_name": "Grok 4",
- "total_tests": 5,
- "passed_tests": 0,
- "llm_output": "use spacetimedb::{ReducerContext, spacetimedb};\n\n#[spacetimedb::table(name = entities, public)]\npub struct Entity {\n #[primary_key]\n id: i32,\n}\n\n#[spacetimedb::table(name = positions, public)]\npub struct Position {\n #[primary_key]\n entity_id: i32,\n x: i32,\n y: i32,\n}\n\n#[spacetimedb::table(name = velocities, public)]\npub struct Velocity {\n #[primary_key]\n entity_id: i32,\n vx: i32,\n vy: i32,\n}\n\n#[spacetimedb::table(name = next_positions, public)]\npub struct NextPosition {\n #[primary_key]\n entity_id: i32,\n x: i32,\n y: i32,\n}\n\n#[spacetimedb::reducer]\npub fn seed(ctx: &ReducerContext) {\n ctx.db.entities().insert(Entity { id: 1 });\n ctx.db.entities().insert(Entity { id: 2 });\n ctx.db.positions().insert(Position { entity_id: 1, x: 0, y: 0 });\n ctx.db.positions().insert(Position { entity_id: 2, x: 10, y: 0 });\n ctx.db.velocities().insert(Velocity { entity_id: 1, vx: 1, vy: 0 });\n ctx.db.velocities().insert(Velocity { entity_id: 2, vx: -2, vy: 3 });\n}\n\n#[spacetimedb::reducer]\npub fn step(ctx: &ReducerContext) {\n for pos in ctx.db.positions().iter() {\n if let Some(vel) = ctx.db.velocities().entity_id().find(&pos.entity_id) {\n let new_x = pos.x + vel.vx;\n let new_y = pos.y + vel.vy;\n let next_pos = NextPosition { entity_id: pos.entity_id, x: new_x, y: new_y };\n if ctx.db.next_positions().entity_id().find(&next_pos.entity_id).is_some() {\n ctx.db.next_positions().entity_id().update(next_pos);\n } else {\n ctx.db.next_positions().insert(next_pos);\n }\n }\n }\n}",
- "category": "schema",
- "route_api_model": "grok-4",
- "golden_db": "schema-t-020-ecs-golden",
- "llm_db": "schema-t-020-ecs-grok-4-llm",
- "work_dir_golden": "target\\llm-runs\\schema\\t_020_ecs\\rust\\server\\golden",
- "work_dir_llm": "target\\llm-runs\\schema\\t_020_ecs\\rust\\server\\grok-4\\llm",
- "scorer_details": {
- "publish_error": {
- "pass": false,
- "partial": 0.0,
- "notes": {
- "error": "spacetime publish failed (exit=1)\n--- stderr ---\n Updating crates.io index\n Locking 67 packages to latest compatible versions\n Compiling proc-macro2 v1.0.101\n Compiling quote v1.0.41\n Compiling unicode-ident v1.0.20\n Compiling version_check v0.9.5\n Compiling typenum v1.19.0\n Compiling autocfg v1.5.0\n Compiling serde_core v1.0.228\n Compiling cfg-if v1.0.4\n Compiling either v1.15.0\n Compiling zerocopy v0.8.27\n Compiling serde v1.0.228\n Compiling find-msvc-tools v0.1.4\n Compiling shlex v1.3.0\n Compiling bitflags v2.10.0\n Compiling nohash-hasher v0.2.0\n Compiling anyhow v1.0.100\n Compiling thiserror v1.0.69\n Compiling heck v0.5.0\n Compiling heck v0.4.1\n Compiling arrayvec v0.7.6\n Compiling humantime v2.3.0\n Compiling convert_case v0.4.0\n Compiling keccak v0.1.5\n Compiling arrayref v0.3.9\n Compiling hex v0.4.3\n Compiling bytes v1.10.1\n Compiling bytemuck v1.24.0\n Compiling second-stack v0.3.5\n Compiling constant_time_eq v0.3.1\n Compiling smallvec v1.15.1\n Compiling getrandom v0.2.16\n Compiling spacetimedb-lib v1.6.0\n Compiling log v0.4.28\n Compiling scoped-tls v1.0.1\n Compiling rand_core v0.6.4\n Compiling itertools v0.12.1\n Compiling generic-array v0.14.9\n Compiling num-traits v0.2.19\n Compiling cc v1.2.41\n Compiling syn v2.0.107\n Compiling blake3 v1.8.2\n Compiling spacetimedb-primitives v1.6.0\n Compiling block-buffer v0.10.4\n Compiling crypto-common v0.1.6\n Compiling approx v0.3.2\n Compiling chrono v0.4.42\n Compiling digest v0.10.7\n Compiling decorum v0.3.1\n Compiling sha3 v0.10.8\n Compiling spacetimedb-bindings-sys v1.6.0\n Compiling ppv-lite86 v0.2.21\n Compiling rand_chacha v0.3.1\n Compiling rand v0.8.5\n Compiling ethnum v1.5.2\n Compiling thiserror-impl v1.0.69\n Compiling enum-as-inner v0.6.1\n Compiling derive_more v0.99.20\n Compiling spacetimedb-bindings-macro v1.6.0\n Compiling spacetimedb-sats v1.6.0\n Compiling spacetimedb v1.6.0\n Compiling spacetime-module v0.1.0 (E:\\Development\\ClockworkLabs\\SpacetimeDB\\SpacetimeDBPrivate\\private\\target\\llm-runs\\schema\\t_020_ecs\\rust\\server\\grok-4\\llm)\nerror[E0432]: unresolved import `spacetimedb::spacetimedb`\n --> src\\lib.rs:2:35\n |\n2 | use spacetimedb::{ReducerContext, spacetimedb};\n | ^^^^^^^^^^^ no `spacetimedb` in the root\n\nFor more information about this error, try `rustc --explain E0432`.\nerror: could not compile `spacetime-module` (lib) due to 1 previous error\nError: command [\"cargo\", \"build\", \"--config=net.git-fetch-with-cli=true\", \"--target=wasm32-unknown-unknown\", \"--release\", \"--message-format=json-render-diagnostics\"] exited with code 101\n\n--- stdout ---\n",
- "phase": "build_or_publish"
- }
- }
- },
- "vendor": "xai",
- "started_at": "2025-10-22T01:02:55.582569300Z",
- "finished_at": "2025-10-22T01:04:24.232996900Z"
- },
- "t_021_multi_column_index": {
- "hash": "b0d5bbe755291d8ec65de0a74b4eecfa344670639ca5f1a365ced3ab9717e97c",
- "task": "t_021_multi_column_index",
- "lang": "rust",
- "golden_published": false,
- "model_name": "Grok 4",
- "total_tests": 1,
- "passed_tests": 0,
- "category": "schema",
- "route_api_model": "grok-4",
- "scorer_details": {
- "publish_error": {
- "pass": false,
- "partial": 0.0,
- "notes": {
- "error": "POST https://api.x.ai/v1/chat/completions status 429 Too Many Requests body: {\"code\":\"Some resource has been exhausted\",\"error\":\"Your team 5fc90f6d-3ee0-435e-a2e2-c7d23f7ea90d has either used all available credits or reached its monthly spending limit. To continue making API requests, please purchase more credits or raise your spending limit.\"}",
- "phase": "build_or_publish"
- }
- }
- },
- "vendor": "xai"
- }
- }
- }
- ]
- },
- {
- "mode": "cursor_rules",
- "hash": "edbeadd577ce7acdedf6ce10e46c0aaee75d0cd6c30c8faef266a23ad86d12cf",
- "models": [
- {
- "name": "Grok 4",
- "route_api_model": "grok-4",
- "tasks": {
- "t_002_scheduled_table": {
- "hash": "edbeadd577ce7acdedf6ce10e46c0aaee75d0cd6c30c8faef266a23ad86d12cf",
- "task": "t_002_scheduled_table",
- "lang": "rust",
- "golden_published": true,
- "model_name": "Grok 4",
- "total_tests": 1,
- "passed_tests": 1,
- "category": "basics",
- "route_api_model": "grok-4",
- "scorer_details": {
- "schema_parity": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "reducers_diff": null,
- "reducers_equal": true,
- "tables_diff": null,
- "tables_equal": true
- }
- }
- },
- "vendor": "xai"
- },
- "t_004_insert": {
- "hash": "edbeadd577ce7acdedf6ce10e46c0aaee75d0cd6c30c8faef266a23ad86d12cf",
- "task": "t_004_insert",
- "lang": "rust",
- "golden_published": true,
- "model_name": "Grok 4",
- "total_tests": 2,
- "passed_tests": 2,
- "category": "basics",
- "route_api_model": "grok-4",
- "scorer_details": {
- "schema_parity": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "reducers_diff": null,
- "reducers_equal": true,
- "tables_diff": null,
- "tables_equal": true
- }
- },
- "data_parity_insert_user": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "args": [
- 1,
- "Alice",
- 30,
- true
- ],
- "golden_out": "id | name | age | active ----+---------+-----+-------- 1 | \"Alice\" | 30 | true",
- "llm_out": "id | name | age | active ----+---------+-----+-------- 1 | \"Alice\" | 30 | true",
- "query": "SELECT id, name, age, active FROM user WHERE id=1",
- "reducer": "insert_user"
- }
- }
- },
- "vendor": "xai"
- },
- "t_007_crud": {
- "hash": "edbeadd577ce7acdedf6ce10e46c0aaee75d0cd6c30c8faef266a23ad86d12cf",
- "task": "t_007_crud",
- "lang": "rust",
- "golden_published": true,
- "model_name": "Grok 4",
- "total_tests": 4,
- "passed_tests": 4,
- "category": "basics",
- "route_api_model": "grok-4",
- "scorer_details": {
- "crud_row_id2_deleted": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "actual": 0,
- "expected": 0,
- "sql": "SELECT COUNT(*) AS n FROM user WHERE id=2"
- }
- },
- "schema_parity": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "reducers_diff": null,
- "reducers_equal": true,
- "tables_diff": null,
- "tables_equal": true
- }
- },
- "crud_row_id1_parity": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "args": [],
- "golden_out": "id | name | age | active ----+----------+-----+-------- 1 | \"Alice2\" | 31 | false",
- "llm_out": "id | name | age | active ----+----------+-----+-------- 1 | \"Alice2\" | 31 | false",
- "query": "SELECT id, name, age, active FROM user WHERE id=1",
- "reducer": "crud"
- }
- },
- "crud_total_count_one": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "actual": 1,
- "expected": 1,
- "sql": "SELECT COUNT(*) AS n FROM user"
- }
- }
- },
- "vendor": "xai"
- },
- "t_012_spacetime_product_type": {
- "hash": "edbeadd577ce7acdedf6ce10e46c0aaee75d0cd6c30c8faef266a23ad86d12cf",
- "task": "t_012_spacetime_product_type",
- "lang": "rust",
- "golden_published": true,
- "model_name": "Grok 4",
- "total_tests": 3,
- "passed_tests": 3,
- "category": "schema",
- "route_api_model": "grok-4",
- "scorer_details": {
- "product_type_row_count": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "actual": 1,
- "expected": 1,
- "sql": "SELECT COUNT(*) AS n FROM result WHERE id=1"
- }
- },
- "schema_parity": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "reducers_diff": null,
- "reducers_equal": true,
- "tables_diff": null,
- "tables_equal": true
- }
- },
- "product_type_row_parity": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "args": [
- 1,
- 2,
- 3
- ],
- "golden_out": "id | value ----+----------------------- 1 | (left = 2, right = 3)",
- "llm_out": "id | value ----+----------------------- 1 | (left = 2, right = 3)",
- "query": "SELECT id, value FROM result WHERE id=1",
- "reducer": "set_score"
- }
- }
- },
- "vendor": "xai"
- },
- "t_016_sum_type_columns": {
- "hash": "edbeadd577ce7acdedf6ce10e46c0aaee75d0cd6c30c8faef266a23ad86d12cf",
- "task": "t_016_sum_type_columns",
- "lang": "rust",
- "golden_published": true,
- "model_name": "Grok 4",
- "total_tests": 3,
- "passed_tests": 3,
- "category": "schema",
- "route_api_model": "grok-4",
- "scorer_details": {
- "sum_type_columns_row_parity": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "args": [],
- "golden_out": "id | a | b ----+---------------+--------------------------------------- 1 | (Circle = 10) | (Rectangle = (width = 4, height = 6))",
- "llm_out": "id | a | b ----+---------------+--------------------------------------- 1 | (Circle = 10) | (Rectangle = (width = 4, height = 6))",
- "query": "SELECT id, a, b FROM drawing WHERE id=1",
- "reducer": "seed"
- }
- },
- "schema_parity": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "reducers_diff": null,
- "reducers_equal": true,
- "tables_diff": null,
- "tables_equal": true
- }
- },
- "sum_type_columns_row_count": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "actual": 1,
- "expected": 1,
- "sql": "SELECT COUNT(*) AS n FROM drawing WHERE id=1"
- }
- }
- },
- "vendor": "xai"
- },
- "t_017_scheduled_columns": {
- "hash": "edbeadd577ce7acdedf6ce10e46c0aaee75d0cd6c30c8faef266a23ad86d12cf",
- "task": "t_017_scheduled_columns",
- "lang": "rust",
- "golden_published": true,
- "model_name": "Grok 4",
- "total_tests": 2,
- "passed_tests": 2,
- "category": "schema",
- "route_api_model": "grok-4",
- "scorer_details": {
- "schema_parity": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "reducers_diff": null,
- "reducers_equal": true,
- "tables_diff": null,
- "tables_equal": true
- }
- },
- "scheduled_seeded_one_row": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "actual": 1,
- "expected": 1,
- "sql": "SELECT COUNT(*) AS n FROM tick_timer WHERE scheduled_id>=0"
- }
- }
- },
- "vendor": "xai"
- },
- "t_020_ecs": {
- "hash": "edbeadd577ce7acdedf6ce10e46c0aaee75d0cd6c30c8faef266a23ad86d12cf",
- "task": "t_020_ecs",
- "lang": "rust",
- "golden_published": true,
- "model_name": "Grok 4",
- "total_tests": 5,
- "passed_tests": 5,
- "category": "schema",
- "route_api_model": "grok-4",
- "scorer_details": {
- "ecs_next_pos_entity2": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "actual": 1,
- "expected": 1,
- "sql": "SELECT COUNT(*) AS n FROM next_position WHERE entity_id=2 AND x=8 AND y=3"
- }
- },
- "ecs_next_pos_entity1": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "actual": 1,
- "expected": 1,
- "sql": "SELECT COUNT(*) AS n FROM next_position WHERE entity_id=1 AND x=1 AND y=0"
- }
- },
- "ecs_seed_position_count": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "actual": 2,
- "expected": 2,
- "sql": "SELECT COUNT(*) AS n FROM position"
- }
- },
- "schema_parity": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "reducers_diff": null,
- "reducers_equal": true,
- "tables_diff": null,
- "tables_equal": true
- }
- },
- "ecs_step_next_position_count": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "actual": 2,
- "expected": 2,
- "sql": "SELECT COUNT(*) AS n FROM next_position"
- }
- }
- },
- "vendor": "xai"
- },
- "t_021_multi_column_index": {
- "hash": "edbeadd577ce7acdedf6ce10e46c0aaee75d0cd6c30c8faef266a23ad86d12cf",
- "task": "t_021_multi_column_index",
- "lang": "rust",
- "golden_published": false,
- "model_name": "Grok 4",
- "total_tests": 4,
- "passed_tests": 0,
- "llm_output": "use spacetimedb::{table, reducer, Table, ReducerContext};\n\n#[table(accessor = log, public, index(name = by_user_day, btree(columns = [user_id, day])))]\npub struct Log {\n #[primary_key]\n id: i32,\n user_id: i32,\n day: i32,\n message: String,\n}\n\n#[reducer]\npub fn seed(ctx: &ReducerContext) -> Result<(), String> {\n ctx.db.log().insert(Log { id: 1, user_id: 7, day: 1, message: \"a\".to_string() });\n ctx.db.log().insert(Log { id: 2, user_id: 7, day: 2, message: \"b\".to_string() });\n ctx.db.log().insert(Log { id: 3, user_id: 9, day: 1, message: \"c\".to_string() });\n Ok(())\n}",
- "category": "schema",
- "route_api_model": "grok-4",
- "scorer_details": {
- "publish_error": {
- "pass": false,
- "partial": 0.0,
- "notes": {
- "error": "spacetime publish failed (exit=1)\n--- stderr ---\n Updating crates.io index\n Locking 104 packages to latest compatible versions\n Adding generic-array v0.14.7 (available: v0.14.9)\n Compiling proc-macro2 v1.0.106\n Compiling unicode-ident v1.0.24\n Compiling quote v1.0.44\n Compiling version_check v0.9.5\n Compiling typenum v1.19.0\n Compiling autocfg v1.5.0\n Compiling heck v0.5.0\n Compiling serde_core v1.0.228\n Compiling cfg-if v1.0.4\n Compiling rustversion v1.0.22\n Compiling either v1.15.0\n Compiling itoa v1.0.17\n Compiling find-msvc-tools v0.1.9\n Compiling serde v1.0.228\n Compiling shlex v1.3.0\n Compiling zerocopy v0.8.39\n Compiling anyhow v1.0.102\n Compiling thiserror v1.0.69\n Compiling nohash-hasher v0.2.0\n Compiling bitflags v2.11.0\n Compiling ryu v1.0.23\n Compiling arrayvec v0.7.6\n Compiling bytes v1.11.1\n Compiling keccak v0.1.6\n Compiling heck v0.4.1\n Compiling humantime v2.3.0\n Compiling convert_case v0.4.0\n Compiling hex v0.4.3\n Compiling constant_time_eq v0.4.2\n Compiling getrandom v0.2.17\n Compiling smallvec v1.15.1\n Compiling arrayref v0.3.9\n Compiling spacetimedb-lib v2.0.0 (D:\\Development\\ClockworkLabs\\SpacetimeDB\\SpacetimeDBPrivate\\public\\crates\\lib)\n Compiling bytemuck v1.25.0\n Compiling itertools v0.12.1\n Compiling second-stack v0.3.5\n Compiling zmij v1.0.21\n Compiling uuid v1.21.0\n Compiling rand_core v0.6.4\n Compiling log v0.4.29\n Compiling serde_json v1.0.149\n Compiling memchr v2.8.0\n Compiling scoped-tls v1.0.1\n Compiling generic-array v0.14.7\n Compiling num-traits v0.2.19\n Compiling cc v1.2.56\n Compiling http v1.4.0\n Compiling castaway v0.2.4\n Compiling lean_string v0.5.1\n Compiling syn v2.0.117\n Compiling blake3 v1.8.3\n Compiling approx v0.3.2\n Compiling chrono v0.4.43\n Compiling crypto-common v0.1.7\n Compiling block-buffer v0.10.4\n Compiling decorum v0.3.1\n Compiling digest v0.10.7\n Compiling sha3 v0.10.8\n Compiling ethnum v1.5.2\n Compiling ppv-lite86 v0.2.21\n Compiling enum-as-inner v0.6.1\n Compiling thiserror-impl v1.0.69\n Compiling derive_more v0.99.20\n Compiling rand_chacha v0.3.1\n Compiling rand v0.8.5\n Compiling spacetimedb-primitives v2.0.0 (D:\\Development\\ClockworkLabs\\SpacetimeDB\\SpacetimeDBPrivate\\public\\crates\\primitives)\n Compiling spacetimedb-bindings-sys v2.0.0 (D:\\Development\\ClockworkLabs\\SpacetimeDB\\SpacetimeDBPrivate\\public\\crates\\bindings-sys)\n Compiling spacetimedb-bindings-macro v2.0.0 (D:\\Development\\ClockworkLabs\\SpacetimeDB\\SpacetimeDBPrivate\\public\\crates\\bindings-macro)\n Compiling spacetimedb-sats v2.0.0 (D:\\Development\\ClockworkLabs\\SpacetimeDB\\SpacetimeDBPrivate\\public\\crates\\sats)\n Compiling spacetimedb-query-builder v2.0.0 (D:\\Development\\ClockworkLabs\\SpacetimeDB\\SpacetimeDBPrivate\\public\\crates\\query-builder)\n Compiling spacetimedb v2.0.0 (D:\\Development\\ClockworkLabs\\SpacetimeDB\\SpacetimeDBPrivate\\public\\crates\\bindings)\n Compiling spacetime-module v0.1.0 (D:\\Development\\ClockworkLabs\\SpacetimeDB\\SpacetimeDBPrivate\\public\\target\\llm-runs\\schema\\t_021_multi_column_index\\rust\\server\\grok-4\\llm)\nerror: expected string literal\n --> src\\lib.rs:4:46\n |\n4 | #[table(accessor = log, public, index(name = by_user_day, btree(columns = [user_id, day])))]\n | ^^^^^^^^^^^\n\nerror[E0422]: cannot find struct, variant or union type `Log` in this scope\n --> src\\lib.rs:15:25\n |\n15 | ctx.db.log().insert(Log { id: 1, user_id: 7, day: 1, message: \"a\".to_string() });\n | ^^^ not found in this scope\n\nerror[E0422]: cannot find struct, variant or union type `Log` in this scope\n --> src\\lib.rs:16:25\n |\n16 | ctx.db.log().insert(Log { id: 2, user_id: 7, day: 2, message: \"b\".to_string() });\n | ^^^ not found in this scope\n\nerror[E0422]: cannot find struct, variant or union type `Log` in this scope\n --> src\\lib.rs:17:25\n |\n17 | ctx.db.log().insert(Log { id: 3, user_id: 9, day: 1, message: \"c\".to_string() });\n | ^^^ not found in this scope\n\nerror[E0599]: no method named `log` found for struct `Local` in the current scope\n --> src\\lib.rs:15:12\n |\n15 | ctx.db.log().insert(Log { id: 1, user_id: 7, day: 1, message: \"a\".to_string() });\n | ^^^ method not found in `Local`\n\nerror[E0599]: no method named `log` found for struct `Local` in the current scope\n --> src\\lib.rs:16:12\n |\n16 | ctx.db.log().insert(Log { id: 2, user_id: 7, day: 2, message: \"b\".to_string() });\n | ^^^ method not found in `Local`\n\nerror[E0599]: no method named `log` found for struct `Local` in the current scope\n --> src\\lib.rs:17:12\n |\n17 | ctx.db.log().insert(Log { id: 3, user_id: 9, day: 1, message: \"c\".to_string() });\n | ^^^ method not found in `Local`\n\nSome errors have detailed explanations: E0422, E0599.\nFor more information about an error, try `rustc --explain E0422`.\nerror: could not compile `spacetime-module` (lib) due to 7 previous errors\nError: command [\"cargo\", \"build\", \"--config=net.git-fetch-with-cli=true\", \"--target=wasm32-unknown-unknown\", \"--release\", \"--message-format=json-render-diagnostics\"] exited with code 101\n\n--- stdout ---\n",
- "phase": "build_or_publish"
- }
- }
- },
- "vendor": "xai"
- }
- }
- }
- ]
- },
- {
- "mode": "none",
- "hash": "af1349b9f5f9a1a6a0404dea36dcc9499bcb25c9adc112b7cc9a93cae41f3262",
- "models": [
- {
- "name": "Grok 4",
- "route_api_model": "grok-4",
- "tasks": {
- "t_002_scheduled_table": {
- "hash": "af1349b9f5f9a1a6a0404dea36dcc9499bcb25c9adc112b7cc9a93cae41f3262",
- "task": "t_002_scheduled_table",
- "lang": "rust",
- "golden_published": false,
- "model_name": "Grok 4",
- "total_tests": 1,
- "passed_tests": 0,
- "category": "basics",
- "route_api_model": "grok-4",
- "scorer_details": {
- "publish_error": {
- "pass": false,
- "partial": 0.0,
- "notes": {
- "error": "POST https://api.x.ai/v1/chat/completions status 429 Too Many Requests body: {\"code\":\"Some resource has been exhausted\",\"error\":\"Your team 5fc90f6d-3ee0-435e-a2e2-c7d23f7ea90d has either used all available credits or reached its monthly spending limit. To continue making API requests, please purchase more credits or raise your spending limit.\"}",
- "phase": "build_or_publish"
- }
- }
- },
- "vendor": "xai"
- },
- "t_012_spacetime_product_type": {
- "hash": "af1349b9f5f9a1a6a0404dea36dcc9499bcb25c9adc112b7cc9a93cae41f3262",
- "task": "t_012_spacetime_product_type",
- "lang": "rust",
- "golden_published": false,
- "model_name": "Grok 4",
- "total_tests": 1,
- "passed_tests": 0,
- "category": "schema",
- "route_api_model": "grok-4",
- "scorer_details": {
- "publish_error": {
- "pass": false,
- "partial": 0.0,
- "notes": {
- "error": "POST https://api.x.ai/v1/chat/completions status 429 Too Many Requests body: {\"code\":\"Some resource has been exhausted\",\"error\":\"Your team 5fc90f6d-3ee0-435e-a2e2-c7d23f7ea90d has either used all available credits or reached its monthly spending limit. To continue making API requests, please purchase more credits or raise your spending limit.\"}",
- "phase": "build_or_publish"
- }
- }
- },
- "vendor": "xai"
- },
- "t_017_scheduled_columns": {
- "hash": "af1349b9f5f9a1a6a0404dea36dcc9499bcb25c9adc112b7cc9a93cae41f3262",
- "task": "t_017_scheduled_columns",
- "lang": "rust",
- "golden_published": false,
- "model_name": "Grok 4",
- "total_tests": 1,
- "passed_tests": 0,
- "category": "schema",
- "route_api_model": "grok-4",
- "scorer_details": {
- "publish_error": {
- "pass": false,
- "partial": 0.0,
- "notes": {
- "error": "POST https://api.x.ai/v1/chat/completions status 429 Too Many Requests body: {\"code\":\"Some resource has been exhausted\",\"error\":\"Your team 5fc90f6d-3ee0-435e-a2e2-c7d23f7ea90d has either used all available credits or reached its monthly spending limit. To continue making API requests, please purchase more credits or raise your spending limit.\"}",
- "phase": "build_or_publish"
- }
- }
- },
- "vendor": "xai"
- },
- "t_021_multi_column_index": {
- "hash": "af1349b9f5f9a1a6a0404dea36dcc9499bcb25c9adc112b7cc9a93cae41f3262",
- "task": "t_021_multi_column_index",
- "lang": "rust",
- "golden_published": false,
- "model_name": "Grok 4",
- "total_tests": 1,
- "passed_tests": 0,
- "category": "schema",
- "route_api_model": "grok-4",
- "scorer_details": {
- "publish_error": {
- "pass": false,
- "partial": 0.0,
- "notes": {
- "error": "POST https://api.x.ai/v1/chat/completions status 429 Too Many Requests body: {\"code\":\"Some resource has been exhausted\",\"error\":\"Your team 5fc90f6d-3ee0-435e-a2e2-c7d23f7ea90d has either used all available credits or reached its monthly spending limit. To continue making API requests, please purchase more credits or raise your spending limit.\"}",
- "phase": "build_or_publish"
- }
- }
- },
- "vendor": "xai"
- }
- }
- }
- ]
- }
- ],
- "golden_answers": {
- "basics/t_000_empty_reducers": {
- "answer": "use spacetimedb::{reducer, ReducerContext};\r\n\r\n#[reducer]\r\npub fn empty_reducer_no_args(ctx: &ReducerContext) -> Result<(), String> {\r\n Ok(())\r\n}\r\n\r\n#[reducer]\r\npub fn empty_reducer_with_int(ctx: &ReducerContext, count: i32) -> Result<(), String> {\r\n Ok(())\r\n}\r\n\r\n#[reducer]\r\npub fn empty_reducer_with_string(ctx: &ReducerContext, name: String) -> Result<(), String> {\r\n Ok(())\r\n}\r\n\r\n#[reducer]\r\npub fn empty_reducer_with_two_args(ctx: &ReducerContext, count: i32, name: String) -> Result<(), String> {\r\n Ok(())\r\n}\r\n\r\n#[reducer]\r\npub fn empty_reducer_with_three_args(\r\n ctx: &ReducerContext,\r\n active: bool,\r\n ratio: f32,\r\n label: String,\r\n) -> Result<(), String> {\r\n Ok(())\r\n}\r\n",
- "syntax": "rust"
- },
- "basics/t_001_basic_tables": {
- "answer": "use spacetimedb::table;\r\n\r\n#[table(name = users)]\r\npub struct Users {\r\n #[primary_key]\r\n pub id: i32,\r\n pub name: String,\r\n pub age: i32,\r\n pub active: bool,\r\n}\r\n\r\n#[table(name = products)]\r\npub struct Products {\r\n #[primary_key]\r\n pub id: i32,\r\n pub title: String,\r\n pub price: f32,\r\n pub in_stock: bool,\r\n}\r\n\r\n#[table(name = notes)]\r\npub struct Notes {\r\n #[primary_key]\r\n pub id: i32,\r\n pub body: String,\r\n pub rating: i64,\r\n pub pinned: bool,\r\n}\r\n",
- "syntax": "rust"
- },
- "basics/t_002_scheduled_table": {
- "answer": "use spacetimedb::{reducer, table, ReducerContext, ScheduleAt, Table};\r\nuse std::time::Duration;\r\n\r\n#[table(name = tick_timer, scheduled(tick))]\r\npub struct TickTimer {\r\n #[primary_key]\r\n #[auto_inc]\r\n scheduled_id: u64,\r\n scheduled_at: ScheduleAt,\r\n}\r\n\r\n#[reducer]\r\npub fn tick(_ctx: &ReducerContext, _row: TickTimer) -> Result<(), String> {\r\n Ok(())\r\n}\r\n\r\n#[reducer(init)]\r\npub fn init(ctx: &ReducerContext) -> Result<(), String> {\r\n ctx.db.tick_timer().insert(TickTimer {\r\n scheduled_id: 0,\r\n scheduled_at: ScheduleAt::Interval(Duration::from_millis(50).into()),\r\n });\r\n Ok(())\r\n}\r\n",
- "syntax": "rust"
- },
- "basics/t_003_struct_in_table": {
- "answer": "use spacetimedb::{table, SpacetimeType};\r\n\r\n#[derive(SpacetimeType, Clone, Debug)]\r\npub struct Position {\r\n pub x: i32,\r\n pub y: i32,\r\n}\r\n\r\n#[table(name = entities)]\r\npub struct Entity {\r\n #[primary_key]\r\n pub id: i32,\r\n pub pos: Position,\r\n}\r\n\r\n",
- "syntax": "rust"
- },
- "basics/t_004_insert": {
- "answer": "use spacetimedb::{reducer, table, ReducerContext, Table};\r\n\r\n#[table(name = users)]\r\npub struct Users {\r\n #[primary_key]\r\n pub id: i32,\r\n pub name: String,\r\n pub age: i32,\r\n pub active: bool,\r\n}\r\n\r\n#[reducer]\r\npub fn insert_user(ctx: &ReducerContext, id: i32, name: String, age: i32, active: bool) -> Result<(), String> {\r\n ctx.db.users().insert(Users { id, name, age, active });\r\n Ok(())\r\n}\r\n",
- "syntax": "rust"
- },
- "basics/t_005_update": {
- "answer": "use spacetimedb::{reducer, table, ReducerContext};\r\n\r\n#[table(name = users)]\r\npub struct User {\r\n #[primary_key]\r\n pub id: i32,\r\n pub name: String,\r\n pub age: i32,\r\n pub active: bool,\r\n}\r\n\r\n#[reducer]\r\npub fn update_user(ctx: &ReducerContext, id: i32, name: String, age: i32, active: bool) {\r\n ctx.db.users().id().update(User { id, name, age, active });\r\n}",
- "syntax": "rust"
- },
- "basics/t_006_delete": {
- "answer": "use spacetimedb::{reducer, table, ReducerContext};\r\n\r\n#[table(name = users)]\r\npub struct User {\r\n #[primary_key]\r\n pub id: i32,\r\n pub name: String,\r\n pub age: i32,\r\n pub active: bool,\r\n}\r\n\r\n#[reducer]\r\npub fn delete_user(ctx: &ReducerContext, id: i32) {\r\n ctx.db.users().id().delete(id);\r\n}\r\n",
- "syntax": "rust"
- },
- "basics/t_007_crud": {
- "answer": "use spacetimedb::{reducer, table, ReducerContext, Table};\r\n\r\n#[table(name = users)]\r\npub struct User {\r\n #[primary_key]\r\n pub id: i32,\r\n pub name: String,\r\n pub age: i32,\r\n pub active: bool,\r\n}\r\n\r\n#[reducer]\r\npub fn crud(ctx: &ReducerContext) {\r\n ctx.db.users().insert(User { id: 1, name: \"Alice\".into(), age: 30, active: true });\r\n ctx.db.users().insert(User { id: 2, name: \"Bob\".into(), age: 22, active: false });\r\n ctx.db.users().id().update(User { id: 1, name: \"Alice2\".into(), age: 31, active: false });\r\n ctx.db.users().id().delete(2);\r\n}\r\n",
- "syntax": "rust"
- },
- "basics/t_008_index_lookup": {
- "answer": "use spacetimedb::{reducer, table, ReducerContext, Table};\r\n\r\n#[table(name = users)]\r\npub struct User {\r\n #[primary_key]\r\n pub id: i32,\r\n pub name: String,\r\n pub age: i32,\r\n pub active: bool,\r\n}\r\n\r\n#[table(name = results)]\r\npub struct ResultRow {\r\n #[primary_key]\r\n pub id: i32,\r\n pub name: String,\r\n}\r\n\r\n#[reducer]\r\npub fn lookup_user_name(ctx: &ReducerContext, id: i32) {\r\n if let Some(u) = ctx.db.users().id().find(id) {\r\n ctx.db.results().insert(ResultRow { id: u.id, name: u.name });\r\n }\r\n}\r\n",
- "syntax": "rust"
- },
- "basics/t_009_init": {
- "answer": "use spacetimedb::{reducer, table, ReducerContext, Table};\r\n\r\n#[table(name = users)]\r\npub struct User {\r\n #[primary_key]\r\n pub id: i32,\r\n pub name: String,\r\n pub age: i32,\r\n pub active: bool,\r\n}\r\n\r\n#[reducer(init)]\r\npub fn init(ctx: &ReducerContext) {\r\n ctx.db.users().insert(User { id: 1, name: \"Alice\".into(), age: 30, active: true });\r\n ctx.db.users().insert(User { id: 2, name: \"Bob\".into(), age: 22, active: false });\r\n}\r\n",
- "syntax": "rust"
- },
- "basics/t_010_connect": {
- "answer": "use spacetimedb::{reducer, table, ReducerContext, Table};\r\n\r\n#[table(name = events)]\r\npub struct Event {\r\n #[primary_key]\r\n #[auto_inc]\r\n pub id: u64,\r\n pub kind: String,\r\n}\r\n\r\n#[reducer(client_connected)]\r\npub fn client_connected(ctx: &ReducerContext) {\r\n ctx.db.events().insert(Event { id: 0, kind: \"connected\".into() });\r\n}\r\n\r\n#[reducer(client_disconnected)]\r\npub fn client_disconnected(ctx: &ReducerContext) {\r\n ctx.db.events().insert(Event { id: 0, kind: \"disconnected\".into() });\r\n}\r\n",
- "syntax": "rust"
- },
- "basics/t_011_helper_function": {
- "answer": "use spacetimedb::{reducer, table, ReducerContext, Table};\r\n\r\n#[table(name = results)]\r\npub struct ResultRow {\r\n #[primary_key]\r\n pub id: i32,\r\n pub sum: i32,\r\n}\r\n\r\nfn add(a: i32, b: i32) -> i32 { a + b }\r\n\r\n#[reducer]\r\npub fn compute_sum(ctx: &ReducerContext, id: i32, a: i32, b: i32) {\r\n ctx.db.results().insert(ResultRow { id, sum: add(a, b) });\r\n}\r\n",
- "syntax": "rust"
- },
- "schema/t_012_spacetime_product_type": {
- "answer": "use spacetimedb::{reducer, table, ReducerContext, SpacetimeType, Table};\r\n\r\n#[derive(SpacetimeType, Clone, Debug)]\r\npub struct Score {\r\n pub left: i32,\r\n pub right: i32,\r\n}\r\n\r\n#[table(name = results)]\r\npub struct ResultRow {\r\n #[primary_key]\r\n pub id: i32,\r\n pub value: Score,\r\n}\r\n\r\n#[reducer]\r\npub fn set_score(ctx: &ReducerContext, id: i32, left: i32, right: i32) {\r\n ctx.db.results().insert(ResultRow { id, value: Score { left, right } });\r\n}\r\n",
- "syntax": "rust"
- },
- "schema/t_013_spacetime_sum_type": {
- "answer": "use spacetimedb::{reducer, table, ReducerContext, SpacetimeType, Table};\r\n\r\n#[derive(SpacetimeType, Clone, Debug)]\r\npub struct Rect {\r\n pub width: i32,\r\n pub height: i32,\r\n}\r\n\r\n#[derive(SpacetimeType, Clone, Debug)]\r\npub enum Shape {\r\n Circle(i32),\r\n Rectangle(Rect),\r\n}\r\n\r\n#[table(name = results)]\r\npub struct ResultRow {\r\n #[primary_key]\r\n pub id: i32,\r\n pub value: Shape,\r\n}\r\n\r\n#[reducer]\r\npub fn set_circle(ctx: &ReducerContext, id: i32, radius: i32) {\r\n ctx.db.results().insert(ResultRow { id, value: Shape::Circle(radius) });\r\n}\r\n",
- "syntax": "rust"
- },
- "schema/t_014_elementary_columns": {
- "answer": "use spacetimedb::{reducer, table, ReducerContext, Table};\r\n\r\n#[table(name = primitives)]\r\npub struct Primitive {\r\n #[primary_key]\r\n pub id: i32,\r\n pub count: i32,\r\n pub total: i64,\r\n pub price: f32,\r\n pub ratio: f64,\r\n pub active: bool,\r\n pub name: String,\r\n}\r\n\r\n#[reducer]\r\npub fn seed(ctx: &ReducerContext) {\r\n ctx.db.primitives().insert(Primitive {\r\n id: 1,\r\n count: 2,\r\n total: 3_000_000_000,\r\n price: 1.5,\r\n ratio: 2.25,\r\n active: true,\r\n name: \"Alice\".into(),\r\n });\r\n}\r\n",
- "syntax": "rust"
- },
- "schema/t_015_product_type_columns": {
- "answer": "use spacetimedb::{reducer, table, ReducerContext, SpacetimeType, Table};\r\n\r\n#[derive(SpacetimeType, Clone, Debug)]\r\npub struct Address {\r\n pub street: String,\r\n pub zip: i32,\r\n}\r\n\r\n#[derive(SpacetimeType, Clone, Debug)]\r\npub struct Position {\r\n pub x: i32,\r\n pub y: i32,\r\n}\r\n\r\n#[table(name = profiles)]\r\npub struct Profile {\r\n #[primary_key]\r\n pub id: i32,\r\n pub home: Address,\r\n pub work: Address,\r\n pub pos: Position,\r\n}\r\n\r\n#[reducer]\r\npub fn seed(ctx: &ReducerContext) {\r\n ctx.db.profiles().insert(Profile {\r\n id: 1,\r\n home: Address { street: \"1 Main\".into(), zip: 11111 },\r\n work: Address { street: \"2 Broad\".into(), zip: 22222 },\r\n pos: Position { x: 7, y: 9 },\r\n });\r\n}\r\n",
- "syntax": "rust"
- },
- "schema/t_016_sum_type_columns": {
- "answer": "use spacetimedb::{reducer, table, ReducerContext, SpacetimeType, Table};\r\n\r\n#[derive(SpacetimeType, Clone, Debug)]\r\npub struct Rect {\r\n pub width: i32,\r\n pub height: i32,\r\n}\r\n\r\n#[derive(SpacetimeType, Clone, Debug)]\r\npub enum Shape {\r\n Circle(i32),\r\n Rectangle(Rect),\r\n}\r\n\r\n#[table(name = drawings)]\r\npub struct Drawing {\r\n #[primary_key]\r\n pub id: i32,\r\n pub a: Shape,\r\n pub b: Shape,\r\n}\r\n\r\n#[reducer]\r\npub fn seed(ctx: &ReducerContext) {\r\n ctx.db.drawings().insert(Drawing {\r\n id: 1,\r\n a: Shape::Circle(10),\r\n b: Shape::Rectangle(Rect { width: 4, height: 6 }),\r\n });\r\n}\r\n",
- "syntax": "rust"
- },
- "schema/t_017_scheduled_columns": {
- "answer": "use spacetimedb::{reducer, table, ReducerContext, ScheduleAt, Table};\r\nuse std::time::Duration;\r\n\r\n#[table(name = tick_timer, scheduled(tick))]\r\npub struct TickTimer {\r\n #[primary_key]\r\n #[auto_inc]\r\n pub scheduled_id: u64,\r\n pub scheduled_at: ScheduleAt,\r\n}\r\n\r\n#[reducer]\r\npub fn tick(_ctx: &ReducerContext, _schedule: TickTimer) {\r\n}\r\n\r\n#[reducer(init)]\r\npub fn init(ctx: &ReducerContext) {\r\n let every_50ms: ScheduleAt = Duration::from_millis(50).into();\r\n ctx.db.tick_timer().insert(TickTimer {\r\n scheduled_id: 0,\r\n scheduled_at: every_50ms,\r\n });\r\n}\r\n",
- "syntax": "rust"
- },
- "schema/t_018_constraints": {
- "answer": "use spacetimedb::{reducer, table, ReducerContext, Table};\r\n\r\n#[table(\r\n name = accounts,\r\n index(name = by_name, btree(columns = [name]))\r\n)]\r\npub struct Account {\r\n #[primary_key]\r\n pub id: i32,\r\n #[unique]\r\n pub email: String,\r\n pub name: String,\r\n}\r\n\r\n#[reducer]\r\npub fn seed(ctx: &ReducerContext) {\r\n ctx.db.accounts().insert(Account { id: 1, email: \"a@example.com\".into(), name: \"Alice\".into() });\r\n ctx.db.accounts().insert(Account { id: 2, email: \"b@example.com\".into(), name: \"Bob\".into() });\r\n}\r\n",
- "syntax": "rust"
- },
- "schema/t_019_many_to_many": {
- "answer": "use spacetimedb::{reducer, table, ReducerContext, Table};\r\n\r\n#[table(name = users)]\r\npub struct User {\r\n #[primary_key]\r\n pub user_id: i32,\r\n pub name: String,\r\n}\r\n\r\n#[table(name = groups)]\r\npub struct Group {\r\n #[primary_key]\r\n pub group_id: i32,\r\n pub title: String,\r\n}\r\n\r\n#[table(\r\n name = memberships,\r\n index(name = by_user, btree(columns = [user_id])),\r\n index(name = by_group, btree(columns = [group_id]))\r\n)]\r\npub struct Membership {\r\n #[primary_key]\r\n pub id: i32,\r\n pub user_id: i32,\r\n pub group_id: i32,\r\n}\r\n\r\n#[reducer]\r\npub fn seed(ctx: &ReducerContext) {\r\n ctx.db.users().insert(User { user_id: 1, name: \"Alice\".into() });\r\n ctx.db.users().insert(User { user_id: 2, name: \"Bob\".into() });\r\n\r\n ctx.db.groups().insert(Group { group_id: 10, title: \"Admin\".into() });\r\n ctx.db.groups().insert(Group { group_id: 20, title: \"Dev\".into() });\r\n\r\n ctx.db.memberships().insert(Membership { id: 1, user_id: 1, group_id: 10 });\r\n ctx.db.memberships().insert(Membership { id: 2, user_id: 1, group_id: 20 });\r\n ctx.db.memberships().insert(Membership { id: 3, user_id: 2, group_id: 20 });\r\n}\r\n",
- "syntax": "rust"
- },
- "schema/t_020_ecs": {
- "answer": "use spacetimedb::{reducer, table, ReducerContext, Table};\r\n\r\n#[table(name = entities)]\r\npub struct Entity {\r\n #[primary_key]\r\n pub id: i32,\r\n}\r\n\r\n#[table(name = positions)]\r\npub struct Position {\r\n #[primary_key]\r\n pub entity_id: i32,\r\n pub x: i32,\r\n pub y: i32,\r\n}\r\n\r\n#[table(name = velocities)]\r\npub struct Velocity {\r\n #[primary_key]\r\n pub entity_id: i32,\r\n pub vx: i32,\r\n pub vy: i32,\r\n}\r\n\r\n#[table(name = next_positions)]\r\npub struct NextPosition {\r\n #[primary_key]\r\n pub entity_id: i32,\r\n pub x: i32,\r\n pub y: i32,\r\n}\r\n\r\n#[reducer]\r\npub fn seed(ctx: &ReducerContext) {\r\n ctx.db.entities().insert(Entity { id: 1 });\r\n ctx.db.entities().insert(Entity { id: 2 });\r\n\r\n ctx.db.positions().insert(Position {\r\n entity_id: 1,\r\n x: 1,\r\n y: 0,\r\n });\r\n ctx.db.positions().insert(Position {\r\n entity_id: 2,\r\n x: 10,\r\n y: 0,\r\n });\r\n\r\n ctx.db.velocities().insert(Velocity {\r\n entity_id: 1,\r\n vx: 1,\r\n vy: 0,\r\n });\r\n ctx.db.velocities().insert(Velocity {\r\n entity_id: 2,\r\n vx: -2,\r\n vy: 3,\r\n });\r\n}\r\n\r\n#[spacetimedb::reducer]\r\npub fn step(ctx: &ReducerContext) {\r\n for p in ctx.db.positions().iter() {\r\n if let Some(v) = ctx.db.velocities().entity_id().find(p.entity_id) {\r\n let np = NextPosition {\r\n entity_id: p.entity_id,\r\n x: p.x + v.vx,\r\n y: p.y + v.vy,\r\n };\r\n\r\n if ctx.db.next_positions().entity_id().find(p.entity_id).is_some() {\r\n ctx.db.next_positions().entity_id().update(np);\r\n } else {\r\n ctx.db.next_positions().insert(np);\r\n }\r\n }\r\n }\r\n}\r\n",
- "syntax": "rust"
- },
- "schema/t_021_multi_column_index": {
- "answer": "use spacetimedb::{reducer, table, ReducerContext, Table};\r\n\r\n#[table(\r\n name = logs,\r\n index(name = by_user_day, btree(columns = [user_id, day]))\r\n)]\r\npub struct Log {\r\n #[primary_key]\r\n pub id: i32,\r\n pub user_id: i32,\r\n pub day: i32,\r\n pub message: String,\r\n}\r\n\r\n#[reducer]\r\npub fn seed(ctx: &ReducerContext) {\r\n ctx.db.logs().insert(Log { id: 1, user_id: 7, day: 1, message: \"a\".into() });\r\n ctx.db.logs().insert(Log { id: 2, user_id: 7, day: 2, message: \"b\".into() });\r\n ctx.db.logs().insert(Log { id: 3, user_id: 9, day: 1, message: \"c\".into() });\r\n}\r\n",
- "syntax": "rust"
- },
- "t_000_empty_reducers": {
- "answer": "use spacetimedb::{reducer, table, ReducerContext};\r\n\r\n#[table(accessor = empty_table)]\r\npub struct EmptyTable {\r\n #[primary_key]\r\n pub id: i32,\r\n}\r\n\r\n#[reducer]\r\npub fn empty_reducer_no_args(ctx: &ReducerContext) -> Result<(), String> {\r\n Ok(())\r\n}\r\n\r\n#[reducer]\r\npub fn empty_reducer_with_int(ctx: &ReducerContext, count: i32) -> Result<(), String> {\r\n Ok(())\r\n}\r\n\r\n#[reducer]\r\npub fn empty_reducer_with_string(ctx: &ReducerContext, name: String) -> Result<(), String> {\r\n Ok(())\r\n}\r\n\r\n#[reducer]\r\npub fn empty_reducer_with_two_args(ctx: &ReducerContext, count: i32, name: String) -> Result<(), String> {\r\n Ok(())\r\n}\r\n\r\n#[reducer]\r\npub fn empty_reducer_with_three_args(\r\n ctx: &ReducerContext,\r\n active: bool,\r\n ratio: f32,\r\n label: String,\r\n) -> Result<(), String> {\r\n Ok(())\r\n}\r\n",
- "syntax": "rust"
- },
- "t_001_basic_tables": {
- "answer": "use spacetimedb::table;\r\n\r\n#[table(accessor = user)]\r\npub struct User {\r\n #[primary_key]\r\n pub id: i32,\r\n pub name: String,\r\n pub age: i32,\r\n pub active: bool,\r\n}\r\n\r\n#[table(accessor = product)]\r\npub struct Product {\r\n #[primary_key]\r\n pub id: i32,\r\n pub title: String,\r\n pub price: f32,\r\n pub in_stock: bool,\r\n}\r\n\r\n#[table(accessor = note)]\r\npub struct Note {\r\n #[primary_key]\r\n pub id: i32,\r\n pub body: String,\r\n pub rating: i64,\r\n pub pinned: bool,\r\n}\r\n",
- "syntax": "rust"
- },
- "t_002_scheduled_table": {
- "answer": "use spacetimedb::{reducer, table, ReducerContext, ScheduleAt, Table};\r\nuse std::time::Duration;\r\n\r\n#[table(accessor = tick_timer, scheduled(tick))]\r\npub struct TickTimer {\r\n #[primary_key]\r\n #[auto_inc]\r\n scheduled_id: u64,\r\n scheduled_at: ScheduleAt,\r\n}\r\n\r\n#[reducer]\r\npub fn tick(_ctx: &ReducerContext, _row: TickTimer) -> Result<(), String> {\r\n Ok(())\r\n}\r\n\r\n#[reducer(init)]\r\npub fn init(ctx: &ReducerContext) -> Result<(), String> {\r\n ctx.db.tick_timer().insert(TickTimer {\r\n scheduled_id: 0,\r\n scheduled_at: ScheduleAt::Interval(Duration::from_millis(50).into()),\r\n });\r\n Ok(())\r\n}\r\n",
- "syntax": "rust"
- },
- "t_003_struct_in_table": {
- "answer": "use spacetimedb::{table, SpacetimeType};\r\n\r\n#[derive(SpacetimeType, Clone, Debug)]\r\npub struct Position {\r\n pub x: i32,\r\n pub y: i32,\r\n}\r\n\r\n#[table(accessor = entity)]\r\npub struct Entity {\r\n #[primary_key]\r\n pub id: i32,\r\n pub pos: Position,\r\n}\r\n",
- "syntax": "rust"
- },
- "t_004_insert": {
- "answer": "use spacetimedb::{reducer, table, ReducerContext, Table};\r\n\r\n#[table(accessor = user)]\r\npub struct User {\r\n #[primary_key]\r\n pub id: i32,\r\n pub name: String,\r\n pub age: i32,\r\n pub active: bool,\r\n}\r\n\r\n#[reducer]\r\npub fn insert_user(ctx: &ReducerContext, id: i32, name: String, age: i32, active: bool) -> Result<(), String> {\r\n ctx.db.user().insert(User { id, name, age, active });\r\n Ok(())\r\n}\r\n",
- "syntax": "rust"
- },
- "t_005_update": {
- "answer": "use spacetimedb::{reducer, table, ReducerContext};\r\n\r\n#[table(accessor = user)]\r\npub struct User {\r\n #[primary_key]\r\n pub id: i32,\r\n pub name: String,\r\n pub age: i32,\r\n pub active: bool,\r\n}\r\n\r\n#[reducer]\r\npub fn update_user(ctx: &ReducerContext, id: i32, name: String, age: i32, active: bool) {\r\n ctx.db.user().id().update(User { id, name, age, active });\r\n}\r\n",
- "syntax": "rust"
- },
- "t_006_delete": {
- "answer": "use spacetimedb::{reducer, table, ReducerContext};\r\n\r\n#[table(accessor = user)]\r\npub struct User {\r\n #[primary_key]\r\n pub id: i32,\r\n pub name: String,\r\n pub age: i32,\r\n pub active: bool,\r\n}\r\n\r\n#[reducer]\r\npub fn delete_user(ctx: &ReducerContext, id: i32) {\r\n ctx.db.user().id().delete(id);\r\n}\r\n",
- "syntax": "rust"
- },
- "t_007_crud": {
- "answer": "use spacetimedb::{reducer, table, ReducerContext, Table};\r\n\r\n#[table(accessor = user)]\r\npub struct User {\r\n #[primary_key]\r\n pub id: i32,\r\n pub name: String,\r\n pub age: i32,\r\n pub active: bool,\r\n}\r\n\r\n#[reducer]\r\npub fn crud(ctx: &ReducerContext) {\r\n ctx.db.user().insert(User {\r\n id: 1,\r\n name: \"Alice\".into(),\r\n age: 30,\r\n active: true,\r\n });\r\n ctx.db.user().insert(User {\r\n id: 2,\r\n name: \"Bob\".into(),\r\n age: 22,\r\n active: false,\r\n });\r\n ctx.db.user().id().update(User {\r\n id: 1,\r\n name: \"Alice2\".into(),\r\n age: 31,\r\n active: false,\r\n });\r\n ctx.db.user().id().delete(2);\r\n}\r\n",
- "syntax": "rust"
- },
- "t_008_index_lookup": {
- "answer": "use spacetimedb::{reducer, table, ReducerContext, Table};\r\n\r\n#[table(accessor = user)]\r\npub struct User {\r\n #[primary_key]\r\n pub id: i32,\r\n pub name: String,\r\n pub age: i32,\r\n pub active: bool,\r\n}\r\n\r\n#[table(accessor = result)]\r\npub struct ResultRow {\r\n #[primary_key]\r\n pub id: i32,\r\n pub name: String,\r\n}\r\n\r\n#[reducer]\r\npub fn lookup_user_name(ctx: &ReducerContext, id: i32) {\r\n if let Some(u) = ctx.db.user().id().find(id) {\r\n ctx.db.result().insert(ResultRow { id: u.id, name: u.name });\r\n }\r\n}\r\n",
- "syntax": "rust"
- },
- "t_009_init": {
- "answer": "use spacetimedb::{reducer, table, ReducerContext, Table};\r\n\r\n#[table(accessor = user)]\r\npub struct User {\r\n #[primary_key]\r\n pub id: i32,\r\n pub name: String,\r\n pub age: i32,\r\n pub active: bool,\r\n}\r\n\r\n#[reducer(init)]\r\npub fn init(ctx: &ReducerContext) {\r\n ctx.db.user().insert(User {\r\n id: 1,\r\n name: \"Alice\".into(),\r\n age: 30,\r\n active: true,\r\n });\r\n ctx.db.user().insert(User {\r\n id: 2,\r\n name: \"Bob\".into(),\r\n age: 22,\r\n active: false,\r\n });\r\n}\r\n",
- "syntax": "rust"
- },
- "t_010_connect": {
- "answer": "use spacetimedb::{reducer, table, ReducerContext, Table};\r\n\r\n#[table(accessor = event)]\r\npub struct Event {\r\n #[primary_key]\r\n #[auto_inc]\r\n pub id: u64,\r\n pub kind: String,\r\n}\r\n\r\n#[reducer(client_connected)]\r\npub fn client_connected(ctx: &ReducerContext) {\r\n ctx.db.event().insert(Event {\r\n id: 0,\r\n kind: \"connected\".into(),\r\n });\r\n}\r\n\r\n#[reducer(client_disconnected)]\r\npub fn client_disconnected(ctx: &ReducerContext) {\r\n ctx.db.event().insert(Event {\r\n id: 0,\r\n kind: \"disconnected\".into(),\r\n });\r\n}\r\n",
- "syntax": "rust"
- },
- "t_011_helper_function": {
- "answer": "use spacetimedb::{reducer, table, ReducerContext, Table};\r\n\r\n#[table(accessor = result)]\r\npub struct ResultRow {\r\n #[primary_key]\r\n pub id: i32,\r\n pub sum: i32,\r\n}\r\n\r\nfn add(a: i32, b: i32) -> i32 {\r\n a + b\r\n}\r\n\r\n#[reducer]\r\npub fn compute_sum(ctx: &ReducerContext, id: i32, a: i32, b: i32) {\r\n ctx.db.result().insert(ResultRow { id, sum: add(a, b) });\r\n}\r\n",
- "syntax": "rust"
- },
- "t_012_spacetime_product_type": {
- "answer": "use spacetimedb::{reducer, table, ReducerContext, SpacetimeType, Table};\r\n\r\n#[derive(SpacetimeType, Clone, Debug)]\r\npub struct Score {\r\n pub left: i32,\r\n pub right: i32,\r\n}\r\n\r\n#[table(accessor = result)]\r\npub struct ResultRow {\r\n #[primary_key]\r\n pub id: i32,\r\n pub value: Score,\r\n}\r\n\r\n#[reducer]\r\npub fn set_score(ctx: &ReducerContext, id: i32, left: i32, right: i32) {\r\n ctx.db.result().insert(ResultRow {\r\n id,\r\n value: Score { left, right },\r\n });\r\n}\r\n",
- "syntax": "rust"
- },
- "t_013_spacetime_sum_type": {
- "answer": "use spacetimedb::{reducer, table, ReducerContext, SpacetimeType, Table};\r\n\r\n#[derive(SpacetimeType, Clone, Debug)]\r\npub struct Rect {\r\n pub width: i32,\r\n pub height: i32,\r\n}\r\n\r\n#[derive(SpacetimeType, Clone, Debug)]\r\npub enum Shape {\r\n Circle(i32),\r\n Rectangle(Rect),\r\n}\r\n\r\n#[table(accessor = result)]\r\npub struct ResultRow {\r\n #[primary_key]\r\n pub id: i32,\r\n pub value: Shape,\r\n}\r\n\r\n#[reducer]\r\npub fn set_circle(ctx: &ReducerContext, id: i32, radius: i32) {\r\n ctx.db.result().insert(ResultRow {\r\n id,\r\n value: Shape::Circle(radius),\r\n });\r\n}\r\n",
- "syntax": "rust"
- },
- "t_014_elementary_columns": {
- "answer": "use spacetimedb::{reducer, table, ReducerContext, Table};\r\n\r\n#[table(accessor = primitive)]\r\npub struct Primitive {\r\n #[primary_key]\r\n pub id: i32,\r\n pub count: i32,\r\n pub total: i64,\r\n pub price: f32,\r\n pub ratio: f64,\r\n pub active: bool,\r\n pub name: String,\r\n}\r\n\r\n#[reducer]\r\npub fn seed(ctx: &ReducerContext) {\r\n ctx.db.primitive().insert(Primitive {\r\n id: 1,\r\n count: 2,\r\n total: 3_000_000_000,\r\n price: 1.5,\r\n ratio: 2.25,\r\n active: true,\r\n name: \"Alice\".into(),\r\n });\r\n}\r\n",
- "syntax": "rust"
- },
- "t_015_product_type_columns": {
- "answer": "use spacetimedb::{reducer, table, ReducerContext, SpacetimeType, Table};\r\n\r\n#[derive(SpacetimeType, Clone, Debug)]\r\npub struct Address {\r\n pub street: String,\r\n pub zip: i32,\r\n}\r\n\r\n#[derive(SpacetimeType, Clone, Debug)]\r\npub struct Position {\r\n pub x: i32,\r\n pub y: i32,\r\n}\r\n\r\n#[table(accessor = profile)]\r\npub struct Profile {\r\n #[primary_key]\r\n pub id: i32,\r\n pub home: Address,\r\n pub work: Address,\r\n pub pos: Position,\r\n}\r\n\r\n#[reducer]\r\npub fn seed(ctx: &ReducerContext) {\r\n ctx.db.profile().insert(Profile {\r\n id: 1,\r\n home: Address {\r\n street: \"1 Main\".into(),\r\n zip: 11111,\r\n },\r\n work: Address {\r\n street: \"2 Broad\".into(),\r\n zip: 22222,\r\n },\r\n pos: Position { x: 7, y: 9 },\r\n });\r\n}\r\n",
- "syntax": "rust"
- },
- "t_016_sum_type_columns": {
- "answer": "use spacetimedb::{reducer, table, ReducerContext, SpacetimeType, Table};\r\n\r\n#[derive(SpacetimeType, Clone, Debug)]\r\npub struct Rect {\r\n pub width: i32,\r\n pub height: i32,\r\n}\r\n\r\n#[derive(SpacetimeType, Clone, Debug)]\r\npub enum Shape {\r\n Circle(i32),\r\n Rectangle(Rect),\r\n}\r\n\r\n#[table(accessor = drawing)]\r\npub struct Drawing {\r\n #[primary_key]\r\n pub id: i32,\r\n pub a: Shape,\r\n pub b: Shape,\r\n}\r\n\r\n#[reducer]\r\npub fn seed(ctx: &ReducerContext) {\r\n ctx.db.drawing().insert(Drawing {\r\n id: 1,\r\n a: Shape::Circle(10),\r\n b: Shape::Rectangle(Rect { width: 4, height: 6 }),\r\n });\r\n}\r\n",
- "syntax": "rust"
- },
- "t_017_scheduled_columns": {
- "answer": "use spacetimedb::{reducer, table, ReducerContext, ScheduleAt, Table};\r\nuse std::time::Duration;\r\n\r\n#[table(accessor = tick_timer, scheduled(tick))]\r\npub struct TickTimer {\r\n #[primary_key]\r\n #[auto_inc]\r\n pub scheduled_id: u64,\r\n pub scheduled_at: ScheduleAt,\r\n}\r\n\r\n#[reducer]\r\npub fn tick(_ctx: &ReducerContext, _schedule: TickTimer) {}\r\n\r\n#[reducer(init)]\r\npub fn init(ctx: &ReducerContext) {\r\n let every_50ms: ScheduleAt = Duration::from_millis(50).into();\r\n ctx.db.tick_timer().insert(TickTimer {\r\n scheduled_id: 0,\r\n scheduled_at: every_50ms,\r\n });\r\n}\r\n",
- "syntax": "rust"
- },
- "t_018_constraints": {
- "answer": "use spacetimedb::{reducer, table, ReducerContext, Table};\r\n\r\n#[table(\r\n accessor = account,\r\n index(accessor = by_name, btree(columns = [name]))\r\n)]\r\npub struct Account {\r\n #[primary_key]\r\n pub id: i32,\r\n #[unique]\r\n pub email: String,\r\n pub name: String,\r\n}\r\n\r\n#[reducer]\r\npub fn seed(ctx: &ReducerContext) {\r\n ctx.db.account().insert(Account {\r\n id: 1,\r\n email: \"a@example.com\".into(),\r\n name: \"Alice\".into(),\r\n });\r\n ctx.db.account().insert(Account {\r\n id: 2,\r\n email: \"b@example.com\".into(),\r\n name: \"Bob\".into(),\r\n });\r\n}\r\n",
- "syntax": "rust"
- },
- "t_019_many_to_many": {
- "answer": "use spacetimedb::{reducer, table, ReducerContext, Table};\r\n\r\n#[table(accessor = user)]\r\npub struct User {\r\n #[primary_key]\r\n pub user_id: i32,\r\n pub name: String,\r\n}\r\n\r\n#[table(accessor = group)]\r\npub struct Group {\r\n #[primary_key]\r\n pub group_id: i32,\r\n pub title: String,\r\n}\r\n\r\n#[table(\r\n accessor = membership,\r\n index(accessor = by_user, btree(columns = [user_id])),\r\n index(accessor = by_group, btree(columns = [group_id]))\r\n)]\r\npub struct Membership {\r\n #[primary_key]\r\n pub id: i32,\r\n pub user_id: i32,\r\n pub group_id: i32,\r\n}\r\n\r\n#[reducer]\r\npub fn seed(ctx: &ReducerContext) {\r\n ctx.db.user().insert(User {\r\n user_id: 1,\r\n name: \"Alice\".into(),\r\n });\r\n ctx.db.user().insert(User {\r\n user_id: 2,\r\n name: \"Bob\".into(),\r\n });\r\n\r\n ctx.db.group().insert(Group {\r\n group_id: 10,\r\n title: \"Admin\".into(),\r\n });\r\n ctx.db.group().insert(Group {\r\n group_id: 20,\r\n title: \"Dev\".into(),\r\n });\r\n\r\n ctx.db.membership().insert(Membership {\r\n id: 1,\r\n user_id: 1,\r\n group_id: 10,\r\n });\r\n ctx.db.membership().insert(Membership {\r\n id: 2,\r\n user_id: 1,\r\n group_id: 20,\r\n });\r\n ctx.db.membership().insert(Membership {\r\n id: 3,\r\n user_id: 2,\r\n group_id: 20,\r\n });\r\n}\r\n",
- "syntax": "rust"
- },
- "t_020_ecs": {
- "answer": "use spacetimedb::{reducer, table, ReducerContext, Table};\r\n\r\n#[table(accessor = entity)]\r\npub struct Entity {\r\n #[primary_key]\r\n pub id: i32,\r\n}\r\n\r\n#[table(accessor = position)]\r\npub struct Position {\r\n #[primary_key]\r\n pub entity_id: i32,\r\n pub x: i32,\r\n pub y: i32,\r\n}\r\n\r\n#[table(accessor = velocity)]\r\npub struct Velocity {\r\n #[primary_key]\r\n pub entity_id: i32,\r\n pub vx: i32,\r\n pub vy: i32,\r\n}\r\n\r\n#[table(accessor = next_position)]\r\npub struct NextPosition {\r\n #[primary_key]\r\n pub entity_id: i32,\r\n pub x: i32,\r\n pub y: i32,\r\n}\r\n\r\n#[reducer]\r\npub fn seed(ctx: &ReducerContext) {\r\n ctx.db.entity().insert(Entity { id: 1 });\r\n ctx.db.entity().insert(Entity { id: 2 });\r\n\r\n ctx.db.position().insert(Position {\r\n entity_id: 1,\r\n x: 1,\r\n y: 0,\r\n });\r\n ctx.db.position().insert(Position {\r\n entity_id: 2,\r\n x: 10,\r\n y: 0,\r\n });\r\n\r\n ctx.db.velocity().insert(Velocity {\r\n entity_id: 1,\r\n vx: 1,\r\n vy: 0,\r\n });\r\n ctx.db.velocity().insert(Velocity {\r\n entity_id: 2,\r\n vx: -2,\r\n vy: 3,\r\n });\r\n}\r\n\r\n#[spacetimedb::reducer]\r\npub fn step(ctx: &ReducerContext) {\r\n for p in ctx.db.position().iter() {\r\n if let Some(v) = ctx.db.velocity().entity_id().find(p.entity_id) {\r\n let np = NextPosition {\r\n entity_id: p.entity_id,\r\n x: p.x + v.vx,\r\n y: p.y + v.vy,\r\n };\r\n\r\n if ctx.db.next_position().entity_id().find(p.entity_id).is_some() {\r\n ctx.db.next_position().entity_id().update(np);\r\n } else {\r\n ctx.db.next_position().insert(np);\r\n }\r\n }\r\n }\r\n}\r\n",
- "syntax": "rust"
- },
- "t_021_multi_column_index": {
- "answer": "use spacetimedb::{reducer, table, ReducerContext, Table};\r\n\r\n#[table(\r\n accessor = log,\r\n index(accessor = by_user_day, btree(columns = [user_id, day]))\r\n)]\r\npub struct Log {\r\n #[primary_key]\r\n pub id: i32,\r\n pub user_id: i32,\r\n pub day: i32,\r\n pub message: String,\r\n}\r\n\r\n#[reducer]\r\npub fn seed(ctx: &ReducerContext) {\r\n ctx.db.log().insert(Log {\r\n id: 1,\r\n user_id: 7,\r\n day: 1,\r\n message: \"a\".into(),\r\n });\r\n ctx.db.log().insert(Log {\r\n id: 2,\r\n user_id: 7,\r\n day: 2,\r\n message: \"b\".into(),\r\n });\r\n ctx.db.log().insert(Log {\r\n id: 3,\r\n user_id: 9,\r\n day: 1,\r\n message: \"c\".into(),\r\n });\r\n}\r\n",
- "syntax": "rust"
- }
- }
- },
- {
- "lang": "typescript",
- "modes": [
- {
- "mode": "docs",
- "hash": "3924da8acd3f980dd3c715b8feeec704c6d1a33c376ebb95ece2d4e0eef81093",
- "models": [
- {
- "name": "Grok 4",
- "route_api_model": "grok-4",
- "tasks": {
- "t_000_empty_reducers": {
- "hash": "f0986524ee7bda1802573e7e4794bd56933365fb35e4af7c830014214cb8ec77",
- "task": "t_000_empty_reducers",
- "lang": "typescript",
- "golden_published": true,
- "model_name": "Grok 4",
- "total_tests": 1,
- "passed_tests": 1,
- "category": "basics",
- "route_api_model": "grok-4",
- "scorer_details": {
- "schema_parity": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "reducers_diff": null,
- "reducers_equal": true,
- "tables_diff": null,
- "tables_equal": true
- }
- }
- },
- "vendor": "xai"
- },
- "t_001_basic_tables": {
- "hash": "f0986524ee7bda1802573e7e4794bd56933365fb35e4af7c830014214cb8ec77",
- "task": "t_001_basic_tables",
- "lang": "typescript",
- "golden_published": false,
- "model_name": "Grok 4",
- "total_tests": 1,
- "passed_tests": 0,
- "llm_output": "import { schema, table, t } from 'spacetimedb/server';\n\nconst user = table(\n {},\n {\n id: t.i32().primaryKey(),\n name: t.string(),\n age: t.i32(),\n active: t.bool(),\n }\n);\n\nconst product = table(\n {},\n {\n id: t.i32().primaryKey(),\n title: t.string(),\n price: t.f32(),\n inStock: t.bool(),\n }\n);\n\nconst note = table(\n {},\n {\n id: t.i32().primaryKey(),\n body: t.string(),\n rating: t.i64(),\n pinned: t.bool(),\n }\n);\n\nconst spacetimedb = schema({ user, product, note });\nexport default spacetimedb;",
- "category": "basics",
- "route_api_model": "grok-4",
- "scorer_details": {
- "publish_error": {
- "pass": false,
- "partial": 0.0,
- "notes": {
- "error": "spacetime publish (typescript) failed (exit=1)\n--- stderr ---\ntsc not found in node_modules. Make sure you have the `typescript` package as a dev-dependency and that your dependencies are installed.\nError: Errors occurred:\nname `undefined_id_idx_btree` is used for multiple entities\n\n\n\nCaused by:\n HTTP status server error (500 Internal Server Error) for url (http://127.0.0.1:61803/v1/database/basics-t-001-basic-tables-grok-4-llm?clear=true&host_type=Js)\n\n--- stdout ---\nBuild finished successfully.\nUploading to http://127.0.0.1:61803 => http://127.0.0.1:61803\nThis will DESTROY the current basics-t-001-basic-tables-grok-4-llm module, and ALL corresponding data.\nSkipping confirmation due to --yes\nPublishing module...\nJavaScript / TypeScript support is currently in BETA.\nThere may be bugs. Please file issues if you encounter any.\n\n",
- "phase": "build_or_publish"
- }
- }
- },
- "vendor": "xai"
- },
- "t_002_scheduled_table": {
- "hash": "f0986524ee7bda1802573e7e4794bd56933365fb35e4af7c830014214cb8ec77",
- "task": "t_002_scheduled_table",
- "lang": "typescript",
- "golden_published": true,
- "model_name": "Grok 4",
- "total_tests": 1,
- "passed_tests": 1,
- "category": "basics",
- "route_api_model": "grok-4",
- "scorer_details": {
- "schema_parity": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "reducers_diff": null,
- "reducers_equal": true,
- "tables_diff": null,
- "tables_equal": true
- }
- }
- },
- "vendor": "xai"
- },
- "t_003_struct_in_table": {
- "hash": "f0986524ee7bda1802573e7e4794bd56933365fb35e4af7c830014214cb8ec77",
- "task": "t_003_struct_in_table",
- "lang": "typescript",
- "golden_published": true,
- "model_name": "Grok 4",
- "total_tests": 1,
- "passed_tests": 1,
- "category": "basics",
- "route_api_model": "grok-4",
- "scorer_details": {
- "schema_parity": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "reducers_diff": null,
- "reducers_equal": true,
- "tables_diff": null,
- "tables_equal": true
- }
- }
- },
- "vendor": "xai"
- },
- "t_004_insert": {
- "hash": "f0986524ee7bda1802573e7e4794bd56933365fb35e4af7c830014214cb8ec77",
- "task": "t_004_insert",
- "lang": "typescript",
- "golden_published": true,
- "model_name": "Grok 4",
- "total_tests": 2,
- "passed_tests": 2,
- "category": "basics",
- "route_api_model": "grok-4",
- "scorer_details": {
- "schema_parity": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "reducers_diff": null,
- "reducers_equal": true,
- "tables_diff": null,
- "tables_equal": true
- }
- },
- "data_parity_insert_user": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "args": [
- 1,
- "Alice",
- 30,
- true
- ],
- "golden_out": "id | name | age | active ----+---------+-----+-------- 1 | \"Alice\" | 30 | true",
- "llm_out": "id | name | age | active ----+---------+-----+-------- 1 | \"Alice\" | 30 | true",
- "query": "SELECT id, name, age, active FROM user WHERE id=1",
- "reducer": "insert_user"
- }
- }
- },
- "vendor": "xai"
- },
- "t_005_update": {
- "hash": "f0986524ee7bda1802573e7e4794bd56933365fb35e4af7c830014214cb8ec77",
- "task": "t_005_update",
- "lang": "typescript",
- "golden_published": true,
- "model_name": "Grok 4",
- "total_tests": 3,
- "passed_tests": 3,
- "category": "basics",
- "route_api_model": "grok-4",
- "scorer_details": {
- "data_parity_update_user": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "args": [
- 1,
- "Alice2",
- 31,
- false
- ],
- "golden_out": "id | name | age | active ----+----------+-----+-------- 1 | \"Alice2\" | 31 | false",
- "llm_out": "id | name | age | active ----+----------+-----+-------- 1 | \"Alice2\" | 31 | false",
- "query": "SELECT id, name, age, active FROM user WHERE id=1",
- "reducer": "update_user"
- }
- },
- "schema_parity": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "reducers_diff": null,
- "reducers_equal": true,
- "tables_diff": null,
- "tables_equal": true
- }
- },
- "seed_users_row": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "sql": "INSERT INTO user(id, name, age, active) VALUES (1, 'Alice', 30, true)"
- }
- }
- },
- "vendor": "xai"
- },
- "t_006_delete": {
- "hash": "f0986524ee7bda1802573e7e4794bd56933365fb35e4af7c830014214cb8ec77",
- "task": "t_006_delete",
- "lang": "typescript",
- "golden_published": true,
- "model_name": "Grok 4",
- "total_tests": 3,
- "passed_tests": 3,
- "category": "basics",
- "route_api_model": "grok-4",
- "scorer_details": {
- "schema_parity": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "reducers_diff": null,
- "reducers_equal": true,
- "tables_diff": null,
- "tables_equal": true
- }
- },
- "seed_users_row": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "sql": "INSERT INTO user(id, name, age, active) VALUES (1, 'Alice', 30, true)"
- }
- },
- "delete_user_count_zero": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "actual": 0,
- "expected": 0,
- "sql": "SELECT COUNT(*) AS n FROM user WHERE id=1"
- }
- }
- },
- "vendor": "xai"
- },
- "t_007_crud": {
- "hash": "f0986524ee7bda1802573e7e4794bd56933365fb35e4af7c830014214cb8ec77",
- "task": "t_007_crud",
- "lang": "typescript",
- "golden_published": true,
- "model_name": "Grok 4",
- "total_tests": 4,
- "passed_tests": 2,
- "llm_output": "import { schema, table, t } from 'spacetimedb/server';\n\nconst user = table(\n { name: 'user' },\n {\n id: t.i32().primaryKey(),\n name: t.string(),\n age: t.i32(),\n active: t.bool(),\n }\n);\n\nconst spacetimedb = schema({ user });\nexport default spacetimedb;\n\nexport const crud = spacetimedb.reducer((ctx) => {\n ctx.db.user.insert({ id: 1, name: \"Alice\", age: 30, active: true });\n ctx.db.user.insert({ id: 2, name: \"Bob\", age: 22, active: false });\n ctx.db.user.id.update({ id: 1, name: \"Alice2\", age: 31, active: false });\n ctx.db.user.id.delete(2);\n});",
- "category": "basics",
- "route_api_model": "grok-4",
- "scorer_details": {
- "crud_row_id2_deleted": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "actual": 0,
- "expected": 0,
- "sql": "SELECT COUNT(*) AS n FROM user WHERE id=2"
- }
- },
- "schema_parity": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "reducers_diff": null,
- "reducers_equal": true,
- "tables_diff": null,
- "tables_equal": true
- }
- },
- "crud_row_id1_parity": {
- "pass": false,
- "partial": 0.0,
- "notes": {
- "error": "spacetime call failed:\nWARNING: This command is UNSTABLE and subject to breaking changes.\n\nError: Response text: The instance encountered a fatal error.\n\nCaused by:\n HTTP status server error (530 ) for url (http://127.0.0.1:61803/v1/database/c20068c1ae115e07ee7bd680c6a31b29545b7d0a54dbdbaba4637daaf54dd3ee/call/crud)\n",
- "phase": "call_reducer_golden"
- }
- },
- "crud_total_count_one": {
- "pass": false,
- "partial": 0.0,
- "notes": {
- "actual": 0,
- "expected": 1,
- "sql": "SELECT COUNT(*) AS n FROM user"
- }
- }
- },
- "vendor": "xai"
- },
- "t_008_index_lookup": {
- "hash": "f0986524ee7bda1802573e7e4794bd56933365fb35e4af7c830014214cb8ec77",
- "task": "t_008_index_lookup",
- "lang": "typescript",
- "golden_published": false,
- "model_name": "Grok 4",
- "total_tests": 3,
- "passed_tests": 0,
- "llm_output": "import { schema, table, t } from 'spacetimedb/server';\n\nconst user = table(\n { public: true },\n {\n id: t.i32().primaryKey(),\n name: t.string(),\n age: t.i32(),\n active: t.bool(),\n }\n);\n\nconst result = table(\n { public: true },\n {\n id: t.i32().primaryKey(),\n name: t.string(),\n }\n);\n\nconst spacetimedb = schema({ user, result });\nexport default spacetimedb;\n\nexport const lookupUserName = spacetimedb.reducer({ id: t.i32() }, (ctx, { id }) => {\n const foundUser = ctx.db.user.id.find(id);\n if (foundUser) {\n ctx.db.result.insert({\n id: foundUser.id,\n name: foundUser.name,\n });\n }\n});",
- "category": "basics",
- "route_api_model": "grok-4",
- "scorer_details": {
- "publish_error": {
- "pass": false,
- "partial": 0.0,
- "notes": {
- "error": "spacetime publish (typescript) failed (exit=1)\n--- stderr ---\ntsc not found in node_modules. Make sure you have the `typescript` package as a dev-dependency and that your dependencies are installed.\nError: Errors occurred:\nname `undefined_id_idx_btree` is used for multiple entities\n\n\n\nCaused by:\n HTTP status server error (500 Internal Server Error) for url (http://127.0.0.1:61803/v1/database/basics-t-008-index-lookup-grok-4-llm?clear=true&host_type=Js)\n\n--- stdout ---\nBuild finished successfully.\nUploading to http://127.0.0.1:61803 => http://127.0.0.1:61803\nThis will DESTROY the current basics-t-008-index-lookup-grok-4-llm module, and ALL corresponding data.\nSkipping confirmation due to --yes\nPublishing module...\nJavaScript / TypeScript support is currently in BETA.\nThere may be bugs. Please file issues if you encounter any.\n\n",
- "phase": "build_or_publish"
- }
- }
- },
- "vendor": "xai"
- },
- "t_009_init": {
- "hash": "f0986524ee7bda1802573e7e4794bd56933365fb35e4af7c830014214cb8ec77",
- "task": "t_009_init",
- "lang": "typescript",
- "golden_published": true,
- "model_name": "Grok 4",
- "total_tests": 4,
- "passed_tests": 4,
- "category": "basics",
- "route_api_model": "grok-4",
- "scorer_details": {
- "init_seed_alice": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "actual": 1,
- "expected": 1,
- "sql": "SELECT COUNT(*) AS n FROM user WHERE id=1 AND name='Alice' AND age=30 AND active=true"
- }
- },
- "init_total_two": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "actual": 2,
- "expected": 2,
- "sql": "SELECT COUNT(*) AS n FROM user"
- }
- },
- "schema_parity": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "reducers_diff": null,
- "reducers_equal": true,
- "tables_diff": null,
- "tables_equal": true
- }
- },
- "init_seed_bob": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "actual": 1,
- "expected": 1,
- "sql": "SELECT COUNT(*) AS n FROM user WHERE id=2 AND name='Bob' AND age=22 AND active=false"
- }
- }
- },
- "vendor": "xai"
- },
- "t_010_connect": {
- "hash": "f0986524ee7bda1802573e7e4794bd56933365fb35e4af7c830014214cb8ec77",
- "task": "t_010_connect",
- "lang": "typescript",
- "golden_published": true,
- "model_name": "Grok 4",
- "total_tests": 1,
- "passed_tests": 0,
- "llm_output": "import { schema, table, t } from 'spacetimedb/server';\n\nconst event = table(\n { name: 'event' },\n {\n id: t.u64().primaryKey().autoInc(),\n kind: t.string(),\n }\n);\n\nconst spacetimedb = schema({ event });\nexport default spacetimedb;\n\nexport const clientConnected = spacetimedb.clientConnected(ctx => {\n ctx.db.event.insert({ id: 0n, kind: \"connected\" });\n});\n\nexport const clientDisconnected = spacetimedb.clientDisconnected(ctx => {\n ctx.db.event.insert({ id: 0n, kind: \"disconnected\" });\n});",
- "category": "basics",
- "route_api_model": "grok-4",
- "scorer_details": {
- "schema_parity": {
- "pass": false,
- "partial": 0.0,
- "notes": {
- "reducers_diff": {
- "only_golden": [
- "on_connect()",
- "on_disconnect()"
- ],
- "only_llm": [
- "client_connected()",
- "client_disconnected()"
- ]
- },
- "reducers_equal": false,
- "tables_diff": null,
- "tables_equal": true
- }
- }
- },
- "vendor": "xai"
- },
- "t_011_helper_function": {
- "hash": "f0986524ee7bda1802573e7e4794bd56933365fb35e4af7c830014214cb8ec77",
- "task": "t_011_helper_function",
- "lang": "typescript",
- "golden_published": true,
- "model_name": "Grok 4",
- "total_tests": 3,
- "passed_tests": 3,
- "category": "basics",
- "route_api_model": "grok-4",
- "scorer_details": {
- "helper_func_sum_parity": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "args": [
- 1,
- 2,
- 3
- ],
- "golden_out": "id | sum ----+----- 1 | 5",
- "llm_out": "id | sum ----+----- 1 | 5",
- "query": "SELECT id, sum FROM result WHERE id=1",
- "reducer": "compute_sum"
- }
- },
- "schema_parity": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "reducers_diff": null,
- "reducers_equal": true,
- "tables_diff": null,
- "tables_equal": true
- }
- },
- "helper_func_sum_abs": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "actual": 1,
- "expected": 1,
- "sql": "SELECT COUNT(*) AS n FROM result WHERE id=1 AND sum=5"
- }
- }
- },
- "vendor": "xai"
- },
- "t_012_spacetime_product_type": {
- "hash": "f0986524ee7bda1802573e7e4794bd56933365fb35e4af7c830014214cb8ec77",
- "task": "t_012_spacetime_product_type",
- "lang": "typescript",
- "golden_published": true,
- "model_name": "Grok 4",
- "total_tests": 3,
- "passed_tests": 3,
- "category": "schema",
- "route_api_model": "grok-4",
- "scorer_details": {
- "product_type_row_count": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "actual": 1,
- "expected": 1,
- "sql": "SELECT COUNT(*) AS n FROM result WHERE id=1"
- }
- },
- "schema_parity": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "reducers_diff": null,
- "reducers_equal": true,
- "tables_diff": null,
- "tables_equal": true
- }
- },
- "product_type_row_parity": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "args": [
- 1,
- 2,
- 3
- ],
- "golden_out": "id | value ----+----------------------- 1 | (left = 2, right = 3)",
- "llm_out": "id | value ----+----------------------- 1 | (left = 2, right = 3)",
- "query": "SELECT id, value FROM result WHERE id=1",
- "reducer": "set_score"
- }
- }
- },
- "vendor": "xai"
- },
- "t_013_spacetime_sum_type": {
- "hash": "f0986524ee7bda1802573e7e4794bd56933365fb35e4af7c830014214cb8ec77",
- "task": "t_013_spacetime_sum_type",
- "lang": "typescript",
- "golden_published": true,
- "model_name": "Grok 4",
- "total_tests": 3,
- "passed_tests": 1,
- "llm_output": "import { schema, table, t } from 'spacetimedb/server';\r\n\r\nconst Rect = t.object('Rect', {\r\n width: t.i32(),\r\n height: t.i32(),\r\n});\r\n\r\nconst Shape = t.enum('Shape', {\r\n circle: t.i32(),\r\n rectangle: Rect,\r\n});\r\n\r\nconst result = table(\r\n {},\r\n {\r\n id: t.i32().primaryKey(),\r\n value: Shape,\r\n }\r\n);\r\n\r\nconst spacetimedb = schema({ result });\r\nexport default spacetimedb;\r\n\r\nexport const setCircle = spacetimedb.reducer({ id: t.i32(), radius: t.i32() }, (ctx, { id, radius }) => {\r\n ctx.db.result.insert({ id, value: { tag: 'circle', value: radius } });\r\n});",
- "category": "schema",
- "route_api_model": "grok-4",
- "scorer_details": {
- "schema_parity": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "reducers_diff": null,
- "reducers_equal": true,
- "tables_diff": null,
- "tables_equal": true
- }
- },
- "sum_type_row_parity": {
- "pass": false,
- "partial": 0.0,
- "notes": {
- "error": "spacetime call failed:\nWARNING: This command is UNSTABLE and subject to breaking changes.\n\nError: Response text: The instance encountered a fatal error.\n\nCaused by:\n HTTP status server error (530 ) for url (http://127.0.0.1:61803/v1/database/c200e33d4d652b61ce5d379db48f7b2d1a76dfcbd64d177c3f37c946a561c0db/call/set_circle)\n",
- "phase": "call_reducer_golden"
- }
- },
- "sum_type_row_count": {
- "pass": false,
- "partial": 0.0,
- "notes": {
- "actual": 0,
- "expected": 1,
- "sql": "SELECT COUNT(*) AS n FROM result WHERE id=1"
- }
- }
- },
- "vendor": "xai"
- },
- "t_014_elementary_columns": {
- "hash": "f0986524ee7bda1802573e7e4794bd56933365fb35e4af7c830014214cb8ec77",
- "task": "t_014_elementary_columns",
- "lang": "typescript",
- "golden_published": true,
- "model_name": "Grok 4",
- "total_tests": 3,
- "passed_tests": 3,
- "category": "schema",
- "route_api_model": "grok-4",
- "scorer_details": {
- "schema_parity": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "reducers_diff": null,
- "reducers_equal": true,
- "tables_diff": null,
- "tables_equal": true
- }
- },
- "elementary_columns_row_parity": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "args": [],
- "golden_out": "id | count | total | price | ratio | active | name ----+-------+------------+-------+-------+--------+--------- 1 | 2 | 3000000000 | 1.5 | 2.25 | true | \"Alice\"",
- "llm_out": "id | count | total | price | ratio | active | name ----+-------+------------+-------+-------+--------+--------- 1 | 2 | 3000000000 | 1.5 | 2.25 | true | \"Alice\"",
- "query": "SELECT id, count, total, price, ratio, active, name FROM primitive WHERE id=1",
- "reducer": "seed"
- }
- },
- "elementary_columns_row_count": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "actual": 1,
- "expected": 1,
- "sql": "SELECT COUNT(*) AS n FROM primitive WHERE id=1"
- }
- }
- },
- "vendor": "xai"
- },
- "t_015_product_type_columns": {
- "hash": "f0986524ee7bda1802573e7e4794bd56933365fb35e4af7c830014214cb8ec77",
- "task": "t_015_product_type_columns",
- "lang": "typescript",
- "golden_published": true,
- "model_name": "Grok 4",
- "total_tests": 3,
- "passed_tests": 1,
- "llm_output": "import { schema, table, t } from 'spacetimedb/server';\n\nconst Address = t.object('Address', {\n street: t.string(),\n zip: t.i32(),\n});\n\nconst Position = t.object('Position', {\n x: t.i32(),\n y: t.i32(),\n});\n\nconst profile = table(\n {},\n {\n id: t.i32().primaryKey(),\n home: Address,\n work: Address,\n pos: Position,\n }\n);\n\nconst spacetimedb = schema({ profile });\nexport default spacetimedb;\n\nexport const seed = spacetimedb.reducer((ctx) => {\n ctx.db.profile.insert({\n id: 0,\n home: { street: \"1 Main\", zip: 11111 },\n work: { street: \"2 Broad\", zip: 22222 },\n pos: { x: 7, y: 9 },\n });\n});",
- "category": "schema",
- "route_api_model": "grok-4",
- "scorer_details": {
- "product_type_columns_row_parity": {
- "pass": false,
- "partial": 0.0,
- "notes": {
- "args": [],
- "golden_out": "id | home | work | pos ----+----------------------------------+-----------------------------------+---------------- 1 | (street = \"1 Main\", zip = 11111) | (street = \"2 Broad\", zip = 22222) | (x = 7, y = 9)",
- "llm_out": "id | home | work | pos ----+------+------+-----",
- "query": "SELECT id, home, work, pos FROM profile WHERE id=1",
- "reducer": "seed"
- }
- },
- "schema_parity": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "reducers_diff": null,
- "reducers_equal": true,
- "tables_diff": null,
- "tables_equal": true
- }
- },
- "product_type_columns_row_count": {
- "pass": false,
- "partial": 0.0,
- "notes": {
- "actual": 0,
- "expected": 1,
- "sql": "SELECT COUNT(*) AS n FROM profile WHERE id=1"
- }
- }
- },
- "vendor": "xai"
- },
- "t_016_sum_type_columns": {
- "hash": "f0986524ee7bda1802573e7e4794bd56933365fb35e4af7c830014214cb8ec77",
- "task": "t_016_sum_type_columns",
- "lang": "typescript",
- "golden_published": true,
- "model_name": "Grok 4",
- "total_tests": 3,
- "passed_tests": 1,
- "llm_output": "import { schema, table, t } from 'spacetimedb/server';\r\n\r\nconst Rect = t.object('Rect', {\r\n width: t.i32(),\r\n height: t.i32(),\r\n});\r\n\r\nconst Shape = t.enum('Shape', {\r\n circle: t.i32(),\r\n rectangle: Rect,\r\n});\r\n\r\nconst drawing = table(\r\n {},\r\n {\r\n id: t.i32().primaryKey(),\r\n a: Shape,\r\n b: Shape,\r\n }\r\n);\r\n\r\nconst spacetimedb = schema({ drawing });\r\nexport default spacetimedb;\r\n\r\nexport const seed = spacetimedb.reducer((ctx) => {\r\n ctx.db.drawing.insert({\r\n id: 0,\r\n a: { tag: 'circle', value: 10 },\r\n b: { tag: 'rectangle', value: { width: 4, height: 6 } },\r\n });\r\n});",
- "category": "schema",
- "route_api_model": "grok-4",
- "scorer_details": {
- "sum_type_columns_row_parity": {
- "pass": false,
- "partial": 0.0,
- "notes": {
- "error": "spacetime call failed:\nWARNING: This command is UNSTABLE and subject to breaking changes.\n\nError: Response text: The instance encountered a fatal error.\n\nCaused by:\n HTTP status server error (530 ) for url (http://127.0.0.1:61803/v1/database/c2000788e329b453495afd0fdbb496a34d3af0ea9e8d7984f456fba62dc88ed7/call/seed)\n",
- "phase": "call_reducer_golden"
- }
- },
- "schema_parity": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "reducers_diff": null,
- "reducers_equal": true,
- "tables_diff": null,
- "tables_equal": true
- }
- },
- "sum_type_columns_row_count": {
- "pass": false,
- "partial": 0.0,
- "notes": {
- "actual": 0,
- "expected": 1,
- "sql": "SELECT COUNT(*) AS n FROM drawing WHERE id=1"
- }
- }
- },
- "vendor": "xai"
- },
- "t_017_scheduled_columns": {
- "hash": "f0986524ee7bda1802573e7e4794bd56933365fb35e4af7c830014214cb8ec77",
- "task": "t_017_scheduled_columns",
- "lang": "typescript",
- "golden_published": false,
- "model_name": "Grok 4",
- "total_tests": 2,
- "passed_tests": 0,
- "llm_output": "import { schema, table, t } from 'spacetimedb/server';\r\nimport { ScheduleAt, TimeDuration } from 'spacetimedb';\r\n\r\nconst tickTimer = table(\r\n { scheduled: () => tick },\r\n {\r\n scheduledId: t.u64().primaryKey().autoInc(),\r\n scheduledAt: t.scheduleAt(),\r\n }\r\n);\r\n\r\nconst spacetimedb = schema({ tickTimer });\r\nexport default spacetimedb;\r\n\r\nexport const tick = spacetimedb.reducer({ arg: tickTimer.rowType }, (ctx, { arg }) => {});\r\n\r\nexport const init = spacetimedb.init(ctx => {\r\n ctx.db.tickTimer.insert({\r\n scheduledId: 0n,\r\n scheduledAt: ScheduleAt.interval(TimeDuration.fromMillis(50n)),\r\n });\r\n});",
- "category": "schema",
- "route_api_model": "grok-4",
- "scorer_details": {
- "publish_error": {
- "pass": false,
- "partial": 0.0,
- "notes": {
- "error": "spacetime publish (typescript) failed (exit=1)\n--- stderr ---\ntsc not found in node_modules. Make sure you have the `typescript` package as a dev-dependency and that your dependencies are installed.\nError: The instance encountered a fatal error.\n\nCaused by:\n HTTP status server error (500 Internal Server Error) for url (http://127.0.0.1:61803/v1/database/schema-t-017-scheduled-columns-grok-4-llm?clear=true&host_type=Js)\n\n--- stdout ---\nBuild finished successfully.\nUploading to http://127.0.0.1:61803 => http://127.0.0.1:61803\nThis will DESTROY the current schema-t-017-scheduled-columns-grok-4-llm module, and ALL corresponding data.\nSkipping confirmation due to --yes\nPublishing module...\nJavaScript / TypeScript support is currently in BETA.\nThere may be bugs. Please file issues if you encounter any.\n\n",
- "phase": "build_or_publish"
- }
- }
- },
- "vendor": "xai"
- },
- "t_018_constraints": {
- "hash": "f0986524ee7bda1802573e7e4794bd56933365fb35e4af7c830014214cb8ec77",
- "task": "t_018_constraints",
- "lang": "typescript",
- "golden_published": true,
- "model_name": "Grok 4",
- "total_tests": 3,
- "passed_tests": 3,
- "category": "schema",
- "route_api_model": "grok-4",
- "scorer_details": {
- "schema_parity": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "reducers_diff": null,
- "reducers_equal": true,
- "tables_diff": null,
- "tables_equal": true
- }
- },
- "constraints_row_parity_after_seed": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "args": [],
- "golden_out": "id | email | name ----+-----------------+--------- 1 | \"a@example.com\" | \"Alice\"",
- "llm_out": "id | email | name ----+-----------------+--------- 1 | \"a@example.com\" | \"Alice\"",
- "query": "SELECT id, email, name FROM account WHERE id=1",
- "reducer": "seed"
- }
- },
- "constraints_seed_two_rows": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "actual": 1,
- "expected": 1,
- "sql": "SELECT COUNT(*) AS n FROM account WHERE id=2"
- }
- }
- },
- "vendor": "xai"
- },
- "t_019_many_to_many": {
- "hash": "f0986524ee7bda1802573e7e4794bd56933365fb35e4af7c830014214cb8ec77",
- "task": "t_019_many_to_many",
- "lang": "typescript",
- "golden_published": true,
- "model_name": "Grok 4",
- "total_tests": 5,
- "passed_tests": 5,
- "category": "schema",
- "route_api_model": "grok-4",
- "scorer_details": {
- "m2m_has_1_20": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "actual": 1,
- "expected": 1,
- "sql": "SELECT COUNT(*) AS n FROM membership WHERE userId=1 AND groupId=20"
- }
- },
- "m2m_has_2_20": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "actual": 1,
- "expected": 1,
- "sql": "SELECT COUNT(*) AS n FROM membership WHERE userId=2 AND groupId=20"
- }
- },
- "schema_parity": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "reducers_diff": null,
- "reducers_equal": true,
- "tables_diff": null,
- "tables_equal": true
- }
- },
- "m2m_has_1_10": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "actual": 1,
- "expected": 1,
- "sql": "SELECT COUNT(*) AS n FROM membership WHERE userId=1 AND groupId=10"
- }
- },
- "memberships_three_rows": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "actual": 3,
- "expected": 3,
- "sql": "SELECT COUNT(*) AS n FROM membership"
- }
- }
- },
- "vendor": "xai"
- },
- "t_020_ecs": {
- "hash": "f0986524ee7bda1802573e7e4794bd56933365fb35e4af7c830014214cb8ec77",
- "task": "t_020_ecs",
- "lang": "typescript",
- "golden_published": false,
- "model_name": "Grok 4",
- "total_tests": 5,
- "passed_tests": 0,
- "llm_output": "import { schema, table, t } from 'spacetimedb/server';\n\nconst entity = table(\n { public: true },\n {\n id: t.i32().primaryKey().autoInc(),\n }\n);\n\nconst position = table(\n { public: true },\n {\n entityId: t.i32().primaryKey(),\n x: t.i32(),\n y: t.i32(),\n }\n);\n\nconst velocity = table(\n { public: true },\n {\n entityId: t.i32().primaryKey(),\n vx: t.i32(),\n vy: t.i32(),\n }\n);\n\nconst nextPosition = table(\n { public: true },\n {\n entityId: t.i32().primaryKey(),\n x: t.i32(),\n y: t.i32(),\n }\n);\n\nconst spacetimedb = schema({ entity, position, velocity, nextPosition });\nexport default spacetimedb;\n\nexport const seed = spacetimedb.reducer((ctx) => {\n const entity1 = ctx.db.entity.insert({ id: 0 });\n const entity2 = ctx.db.entity.insert({ id: 0 });\n ctx.db.position.insert({ entityId: entity1.id, x: 0, y: 0 });\n ctx.db.velocity.insert({ entityId: entity1.id, vx: 1, vy: 0 });\n ctx.db.position.insert({ entityId: entity2.id, x: 10, y: 0 });\n ctx.db.velocity.insert({ entityId: entity2.id, vx: -2, vy: 3 });\n});\n\nexport const step = spacetimedb.reducer((ctx) => {\n for (const pos of ctx.db.position.iter()) {\n const vel = ctx.db.velocity.entityId.find(pos.entityId);\n if (vel) {\n const newX = pos.x + vel.vx;\n const newY = pos.y + vel.vy;\n const existing = ctx.db.nextPosition.entityId.find(pos.entityId);\n if (existing) {\n ctx.db.nextPosition.entityId.update({ ...existing, x: newX, y: newY });\n } else {\n ctx.db.nextPosition.insert({ entityId: pos.entityId, x: newX, y: newY });\n }\n }\n }\n});",
- "category": "schema",
- "route_api_model": "grok-4",
- "scorer_details": {
- "publish_error": {
- "pass": false,
- "partial": 0.0,
- "notes": {
- "error": "spacetime publish (typescript) failed (exit=1)\n--- stderr ---\ntsc not found in node_modules. Make sure you have the `typescript` package as a dev-dependency and that your dependencies are installed.\nError: Errors occurred:\nname `undefined_entityId_idx_btree` is used for multiple entities\n\n\n\nCaused by:\n HTTP status server error (500 Internal Server Error) for url (http://127.0.0.1:61803/v1/database/schema-t-020-ecs-grok-4-llm?clear=true&host_type=Js)\n\n--- stdout ---\nBuild finished successfully.\nUploading to http://127.0.0.1:61803 => http://127.0.0.1:61803\nThis will DESTROY the current schema-t-020-ecs-grok-4-llm module, and ALL corresponding data.\nSkipping confirmation due to --yes\nPublishing module...\nJavaScript / TypeScript support is currently in BETA.\nThere may be bugs. Please file issues if you encounter any.\n\n",
- "phase": "build_or_publish"
- }
- }
- },
- "vendor": "xai"
- },
- "t_021_multi_column_index": {
- "hash": "f0986524ee7bda1802573e7e4794bd56933365fb35e4af7c830014214cb8ec77",
- "task": "t_021_multi_column_index",
- "lang": "typescript",
- "golden_published": true,
- "model_name": "Grok 4",
- "total_tests": 4,
- "passed_tests": 4,
- "category": "schema",
- "route_api_model": "grok-4",
- "scorer_details": {
- "mcindex_seed_count": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "actual": 3,
- "expected": 3,
- "sql": "SELECT COUNT(*) AS n FROM log"
- }
- },
- "mcindex_lookup_u7_d1": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "actual": 1,
- "expected": 1,
- "sql": "SELECT COUNT(*) AS n FROM log WHERE userId=7 AND day=1"
- }
- },
- "schema_parity": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "reducers_diff": null,
- "reducers_equal": true,
- "tables_diff": null,
- "tables_equal": true
- }
- },
- "mcindex_lookup_u7_d2": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "actual": 1,
- "expected": 1,
- "sql": "SELECT COUNT(*) AS n FROM log WHERE userId=7 AND day=2"
- }
- }
- },
- "vendor": "xai"
- }
- }
- },
- {
- "name": "Claude Opus 4.6",
- "route_api_model": "claude-opus-4-6",
- "tasks": {
- "t_000_empty_reducers": {
- "hash": "c73ba5b8e7438d32e18e96f9ab86c5b8ae2f31d1d614fe8db4abd098176840b0",
- "task": "t_000_empty_reducers",
- "lang": "typescript",
- "golden_published": true,
- "model_name": "Claude Opus 4.6",
- "total_tests": 1,
- "passed_tests": 1,
- "category": "basics",
- "route_api_model": "claude-opus-4-6",
- "scorer_details": {
- "schema_parity": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "reducers_diff": null,
- "reducers_equal": true,
- "tables_diff": null,
- "tables_equal": true
- }
- }
- },
- "vendor": "anthropic"
- },
- "t_001_basic_tables": {
- "hash": "c73ba5b8e7438d32e18e96f9ab86c5b8ae2f31d1d614fe8db4abd098176840b0",
- "task": "t_001_basic_tables",
- "lang": "typescript",
- "golden_published": true,
- "model_name": "Claude Opus 4.6",
- "total_tests": 1,
- "passed_tests": 1,
- "category": "basics",
- "route_api_model": "claude-opus-4-6",
- "scorer_details": {
- "schema_parity": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "reducers_diff": null,
- "reducers_equal": true,
- "tables_diff": null,
- "tables_equal": true
- }
- }
- },
- "vendor": "anthropic"
- },
- "t_002_scheduled_table": {
- "hash": "c73ba5b8e7438d32e18e96f9ab86c5b8ae2f31d1d614fe8db4abd098176840b0",
- "task": "t_002_scheduled_table",
- "lang": "typescript",
- "golden_published": true,
- "model_name": "Claude Opus 4.6",
- "total_tests": 1,
- "passed_tests": 1,
- "category": "basics",
- "route_api_model": "claude-opus-4-6",
- "scorer_details": {
- "schema_parity": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "reducers_diff": null,
- "reducers_equal": true,
- "tables_diff": null,
- "tables_equal": true
- }
- }
- },
- "vendor": "anthropic"
- },
- "t_003_struct_in_table": {
- "hash": "c73ba5b8e7438d32e18e96f9ab86c5b8ae2f31d1d614fe8db4abd098176840b0",
- "task": "t_003_struct_in_table",
- "lang": "typescript",
- "golden_published": true,
- "model_name": "Claude Opus 4.6",
- "total_tests": 1,
- "passed_tests": 1,
- "category": "basics",
- "route_api_model": "claude-opus-4-6",
- "scorer_details": {
- "schema_parity": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "reducers_diff": null,
- "reducers_equal": true,
- "tables_diff": null,
- "tables_equal": true
- }
- }
- },
- "vendor": "anthropic"
- },
- "t_004_insert": {
- "hash": "c73ba5b8e7438d32e18e96f9ab86c5b8ae2f31d1d614fe8db4abd098176840b0",
- "task": "t_004_insert",
- "lang": "typescript",
- "golden_published": true,
- "model_name": "Claude Opus 4.6",
- "total_tests": 2,
- "passed_tests": 2,
- "category": "basics",
- "route_api_model": "claude-opus-4-6",
- "scorer_details": {
- "schema_parity": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "reducers_diff": null,
- "reducers_equal": true,
- "tables_diff": null,
- "tables_equal": true
- }
- },
- "data_parity_insert_user": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "args": [
- 1,
- "Alice",
- 30,
- true
- ],
- "golden_out": "id | name | age | active ----+---------+-----+-------- 1 | \"Alice\" | 30 | true",
- "llm_out": "id | name | age | active ----+---------+-----+-------- 1 | \"Alice\" | 30 | true",
- "query": "SELECT id, name, age, active FROM user WHERE id=1",
- "reducer": "insert_user"
- }
- }
- },
- "vendor": "anthropic"
- },
- "t_005_update": {
- "hash": "c73ba5b8e7438d32e18e96f9ab86c5b8ae2f31d1d614fe8db4abd098176840b0",
- "task": "t_005_update",
- "lang": "typescript",
- "golden_published": true,
- "model_name": "Claude Opus 4.6",
- "total_tests": 3,
- "passed_tests": 3,
- "category": "basics",
- "route_api_model": "claude-opus-4-6",
- "scorer_details": {
- "data_parity_update_user": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "args": [
- 1,
- "Alice2",
- 31,
- false
- ],
- "golden_out": "id | name | age | active ----+----------+-----+-------- 1 | \"Alice2\" | 31 | false",
- "llm_out": "id | name | age | active ----+----------+-----+-------- 1 | \"Alice2\" | 31 | false",
- "query": "SELECT id, name, age, active FROM user WHERE id=1",
- "reducer": "update_user"
- }
- },
- "schema_parity": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "reducers_diff": null,
- "reducers_equal": true,
- "tables_diff": null,
- "tables_equal": true
- }
- },
- "seed_users_row": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "sql": "INSERT INTO user(id, name, age, active) VALUES (1, 'Alice', 30, true)"
- }
- }
- },
- "vendor": "anthropic"
- },
- "t_006_delete": {
- "hash": "c73ba5b8e7438d32e18e96f9ab86c5b8ae2f31d1d614fe8db4abd098176840b0",
- "task": "t_006_delete",
- "lang": "typescript",
- "golden_published": true,
- "model_name": "Claude Opus 4.6",
- "total_tests": 3,
- "passed_tests": 3,
- "category": "basics",
- "route_api_model": "claude-opus-4-6",
- "scorer_details": {
- "schema_parity": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "reducers_diff": null,
- "reducers_equal": true,
- "tables_diff": null,
- "tables_equal": true
- }
- },
- "seed_users_row": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "sql": "INSERT INTO user(id, name, age, active) VALUES (1, 'Alice', 30, true)"
- }
- },
- "delete_user_count_zero": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "actual": 0,
- "expected": 0,
- "sql": "SELECT COUNT(*) AS n FROM user WHERE id=1"
- }
- }
- },
- "vendor": "anthropic"
- },
- "t_007_crud": {
- "hash": "c73ba5b8e7438d32e18e96f9ab86c5b8ae2f31d1d614fe8db4abd098176840b0",
- "task": "t_007_crud",
- "lang": "typescript",
- "golden_published": true,
- "model_name": "Claude Opus 4.6",
- "total_tests": 4,
- "passed_tests": 4,
- "category": "basics",
- "route_api_model": "claude-opus-4-6",
- "scorer_details": {
- "crud_row_id2_deleted": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "actual": 0,
- "expected": 0,
- "sql": "SELECT COUNT(*) AS n FROM user WHERE id=2"
- }
- },
- "schema_parity": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "reducers_diff": null,
- "reducers_equal": true,
- "tables_diff": null,
- "tables_equal": true
- }
- },
- "crud_row_id1_parity": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "args": [],
- "golden_out": "id | name | age | active ----+----------+-----+-------- 1 | \"Alice2\" | 31 | false",
- "llm_out": "id | name | age | active ----+----------+-----+-------- 1 | \"Alice2\" | 31 | false",
- "query": "SELECT id, name, age, active FROM user WHERE id=1",
- "reducer": "crud"
- }
- },
- "crud_total_count_one": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "actual": 1,
- "expected": 1,
- "sql": "SELECT COUNT(*) AS n FROM user"
- }
- }
- },
- "vendor": "anthropic"
- },
- "t_008_index_lookup": {
- "hash": "c73ba5b8e7438d32e18e96f9ab86c5b8ae2f31d1d614fe8db4abd098176840b0",
- "task": "t_008_index_lookup",
- "lang": "typescript",
- "golden_published": true,
- "model_name": "Claude Opus 4.6",
- "total_tests": 3,
- "passed_tests": 3,
- "category": "basics",
- "route_api_model": "claude-opus-4-6",
- "scorer_details": {
- "index_lookup_projection_parity": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "args": [
- 1
- ],
- "golden_out": "id | name ----+--------- 1 | \"Alice\"",
- "llm_out": "id | name ----+--------- 1 | \"Alice\"",
- "query": "SELECT id, name FROM result WHERE id=1",
- "reducer": "lookup_user_name"
- }
- },
- "schema_parity": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "reducers_diff": null,
- "reducers_equal": true,
- "tables_diff": null,
- "tables_equal": true
- }
- },
- "seed_user_row": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "sql": "INSERT INTO user(id, name, age, active) VALUES (1, 'Alice', 30, true)"
- }
- }
- },
- "vendor": "anthropic"
- },
- "t_009_init": {
- "hash": "c73ba5b8e7438d32e18e96f9ab86c5b8ae2f31d1d614fe8db4abd098176840b0",
- "task": "t_009_init",
- "lang": "typescript",
- "golden_published": true,
- "model_name": "Claude Opus 4.6",
- "total_tests": 4,
- "passed_tests": 4,
- "category": "basics",
- "route_api_model": "claude-opus-4-6",
- "scorer_details": {
- "init_seed_alice": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "actual": 1,
- "expected": 1,
- "sql": "SELECT COUNT(*) AS n FROM user WHERE id=1 AND name='Alice' AND age=30 AND active=true"
- }
- },
- "init_total_two": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "actual": 2,
- "expected": 2,
- "sql": "SELECT COUNT(*) AS n FROM user"
- }
- },
- "schema_parity": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "reducers_diff": null,
- "reducers_equal": true,
- "tables_diff": null,
- "tables_equal": true
- }
- },
- "init_seed_bob": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "actual": 1,
- "expected": 1,
- "sql": "SELECT COUNT(*) AS n FROM user WHERE id=2 AND name='Bob' AND age=22 AND active=false"
- }
- }
- },
- "vendor": "anthropic"
- },
- "t_010_connect": {
- "hash": "c73ba5b8e7438d32e18e96f9ab86c5b8ae2f31d1d614fe8db4abd098176840b0",
- "task": "t_010_connect",
- "lang": "typescript",
- "golden_published": true,
- "model_name": "Claude Opus 4.6",
- "total_tests": 1,
- "passed_tests": 0,
- "llm_output": "import { schema, table, t } from 'spacetimedb/server';\n\nconst event = table(\n { name: 'event', public: true },\n {\n id: t.u64().primaryKey().autoInc(),\n kind: t.string(),\n }\n);\n\nconst spacetimedb = schema({ event });\nexport default spacetimedb;\n\nexport const clientConnected = spacetimedb.clientConnected((ctx) => {\n ctx.db.event.insert({ id: 0n, kind: 'connected' });\n});\n\nexport const clientDisconnected = spacetimedb.clientDisconnected((ctx) => {\n ctx.db.event.insert({ id: 0n, kind: 'disconnected' });\n});",
- "category": "basics",
- "route_api_model": "claude-opus-4-6",
- "scorer_details": {
- "schema_parity": {
- "pass": false,
- "partial": 0.0,
- "notes": {
- "reducers_diff": {
- "only_golden": [
- "on_connect()",
- "on_disconnect()"
- ],
- "only_llm": [
- "client_connected()",
- "client_disconnected()"
- ]
- },
- "reducers_equal": false,
- "tables_diff": null,
- "tables_equal": true
- }
- }
- },
- "vendor": "anthropic"
- },
- "t_011_helper_function": {
- "hash": "c73ba5b8e7438d32e18e96f9ab86c5b8ae2f31d1d614fe8db4abd098176840b0",
- "task": "t_011_helper_function",
- "lang": "typescript",
- "golden_published": true,
- "model_name": "Claude Opus 4.6",
- "total_tests": 3,
- "passed_tests": 3,
- "category": "basics",
- "route_api_model": "claude-opus-4-6",
- "scorer_details": {
- "helper_func_sum_abs": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "actual": 1,
- "expected": 1,
- "sql": "SELECT COUNT(*) AS n FROM result WHERE id=1 AND sum=5"
- }
- },
- "schema_parity": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "reducers_diff": null,
- "reducers_equal": true,
- "tables_diff": null,
- "tables_equal": true
- }
- },
- "helper_func_sum_parity": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "args": [
- 1,
- 2,
- 3
- ],
- "golden_out": "id | sum ----+----- 1 | 5",
- "llm_out": "id | sum ----+----- 1 | 5",
- "query": "SELECT id, sum FROM result WHERE id=1",
- "reducer": "compute_sum"
- }
- }
- },
- "vendor": "anthropic"
- },
- "t_012_spacetime_product_type": {
- "hash": "c73ba5b8e7438d32e18e96f9ab86c5b8ae2f31d1d614fe8db4abd098176840b0",
- "task": "t_012_spacetime_product_type",
- "lang": "typescript",
- "golden_published": true,
- "model_name": "Claude Opus 4.6",
- "total_tests": 3,
- "passed_tests": 3,
- "category": "schema",
- "route_api_model": "claude-opus-4-6",
- "scorer_details": {
- "product_type_row_count": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "actual": 1,
- "expected": 1,
- "sql": "SELECT COUNT(*) AS n FROM result WHERE id=1"
- }
- },
- "schema_parity": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "reducers_diff": null,
- "reducers_equal": true,
- "tables_diff": null,
- "tables_equal": true
- }
- },
- "product_type_row_parity": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "args": [
- 1,
- 2,
- 3
- ],
- "golden_out": "id | value ----+----------------------- 1 | (left = 2, right = 3)",
- "llm_out": "id | value ----+----------------------- 1 | (left = 2, right = 3)",
- "query": "SELECT id, value FROM result WHERE id=1",
- "reducer": "set_score"
- }
- }
- },
- "vendor": "anthropic"
- },
- "t_013_spacetime_sum_type": {
- "hash": "c73ba5b8e7438d32e18e96f9ab86c5b8ae2f31d1d614fe8db4abd098176840b0",
- "task": "t_013_spacetime_sum_type",
- "lang": "typescript",
- "golden_published": true,
- "model_name": "Claude Opus 4.6",
- "total_tests": 3,
- "passed_tests": 1,
- "llm_output": "import { schema, table, t } from 'spacetimedb/server';\n\nconst Rect = t.object('Rect', {\n width: t.i32(),\n height: t.i32(),\n});\n\nconst Shape = t.enum('Shape', {\n circle: t.i32(),\n rectangle: Rect,\n});\n\nconst result = table(\n { name: 'result', public: true },\n {\n id: t.i32().primaryKey(),\n value: Shape,\n }\n);\n\nconst spacetimedb = schema({ result });\nexport default spacetimedb;\n\nexport const setCircle = spacetimedb.reducer(\n { id: t.i32(), radius: t.i32() },\n (ctx, { id, radius }) => {\n ctx.db.result.insert({\n id,\n value: { tag: 'circle', value: radius },\n });\n }\n);",
- "category": "schema",
- "route_api_model": "claude-opus-4-6",
- "scorer_details": {
- "schema_parity": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "reducers_diff": null,
- "reducers_equal": true,
- "tables_diff": null,
- "tables_equal": true
- }
- },
- "sum_type_row_parity": {
- "pass": false,
- "partial": 0.0,
- "notes": {
- "error": "spacetime call failed:\nWARNING: This command is UNSTABLE and subject to breaking changes.\n\nError: Response text: The instance encountered a fatal error.\n\nCaused by:\n HTTP status server error (530 ) for url (http://127.0.0.1:49945/v1/database/c200be9d999eaedcdb3217b8dd603ef3e0cbae165a407fec27d275fbd2096ac9/call/set_circle)\n",
- "phase": "call_reducer_golden"
- }
- },
- "sum_type_row_count": {
- "pass": false,
- "partial": 0.0,
- "notes": {
- "actual": 0,
- "expected": 1,
- "sql": "SELECT COUNT(*) AS n FROM result WHERE id=1"
- }
- }
- },
- "vendor": "anthropic"
- },
- "t_014_elementary_columns": {
- "hash": "c73ba5b8e7438d32e18e96f9ab86c5b8ae2f31d1d614fe8db4abd098176840b0",
- "task": "t_014_elementary_columns",
- "lang": "typescript",
- "golden_published": true,
- "model_name": "Claude Opus 4.6",
- "total_tests": 3,
- "passed_tests": 3,
- "category": "schema",
- "route_api_model": "claude-opus-4-6",
- "scorer_details": {
- "schema_parity": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "reducers_diff": null,
- "reducers_equal": true,
- "tables_diff": null,
- "tables_equal": true
- }
- },
- "elementary_columns_row_parity": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "args": [],
- "golden_out": "id | count | total | price | ratio | active | name ----+-------+------------+-------+-------+--------+--------- 1 | 2 | 3000000000 | 1.5 | 2.25 | true | \"Alice\"",
- "llm_out": "id | count | total | price | ratio | active | name ----+-------+------------+-------+-------+--------+--------- 1 | 2 | 3000000000 | 1.5 | 2.25 | true | \"Alice\"",
- "query": "SELECT id, count, total, price, ratio, active, name FROM primitive WHERE id=1",
- "reducer": "seed"
- }
- },
- "elementary_columns_row_count": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "actual": 1,
- "expected": 1,
- "sql": "SELECT COUNT(*) AS n FROM primitive WHERE id=1"
- }
- }
- },
- "vendor": "anthropic"
- },
- "t_015_product_type_columns": {
- "hash": "c73ba5b8e7438d32e18e96f9ab86c5b8ae2f31d1d614fe8db4abd098176840b0",
- "task": "t_015_product_type_columns",
- "lang": "typescript",
- "golden_published": true,
- "model_name": "Claude Opus 4.6",
- "total_tests": 3,
- "passed_tests": 3,
- "category": "schema",
- "route_api_model": "claude-opus-4-6",
- "scorer_details": {
- "product_type_columns_row_parity": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "args": [],
- "golden_out": "id | home | work | pos ----+----------------------------------+-----------------------------------+---------------- 1 | (street = \"1 Main\", zip = 11111) | (street = \"2 Broad\", zip = 22222) | (x = 7, y = 9)",
- "llm_out": "id | home | work | pos ----+----------------------------------+-----------------------------------+---------------- 1 | (street = \"1 Main\", zip = 11111) | (street = \"2 Broad\", zip = 22222) | (x = 7, y = 9)",
- "query": "SELECT id, home, work, pos FROM profile WHERE id=1",
- "reducer": "seed"
- }
- },
- "schema_parity": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "reducers_diff": null,
- "reducers_equal": true,
- "tables_diff": null,
- "tables_equal": true
- }
- },
- "product_type_columns_row_count": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "actual": 1,
- "expected": 1,
- "sql": "SELECT COUNT(*) AS n FROM profile WHERE id=1"
- }
- }
- },
- "vendor": "anthropic"
- },
- "t_016_sum_type_columns": {
- "hash": "c73ba5b8e7438d32e18e96f9ab86c5b8ae2f31d1d614fe8db4abd098176840b0",
- "task": "t_016_sum_type_columns",
- "lang": "typescript",
- "golden_published": true,
- "model_name": "Claude Opus 4.6",
- "total_tests": 3,
- "passed_tests": 1,
- "llm_output": "import { schema, table, t } from 'spacetimedb/server';\n\nconst Rect = t.object('Rect', {\n width: t.i32(),\n height: t.i32(),\n});\n\nconst Shape = t.enum('Shape', {\n circle: t.i32(),\n rectangle: Rect,\n});\n\nconst drawing = table(\n { name: 'drawing', public: true },\n {\n id: t.i32().primaryKey(),\n a: Shape,\n b: Shape,\n }\n);\n\nconst spacetimedb = schema({ drawing });\nexport default spacetimedb;\n\nexport const seed = spacetimedb.reducer((ctx) => {\n ctx.db.drawing.insert({\n id: 1,\n a: { tag: 'circle', value: 10 },\n b: { tag: 'rectangle', value: { width: 4, height: 6 } },\n });\n});",
- "category": "schema",
- "route_api_model": "claude-opus-4-6",
- "scorer_details": {
- "sum_type_columns_row_parity": {
- "pass": false,
- "partial": 0.0,
- "notes": {
- "error": "spacetime call failed:\nWARNING: This command is UNSTABLE and subject to breaking changes.\n\nError: Response text: The instance encountered a fatal error.\n\nCaused by:\n HTTP status server error (530 ) for url (http://127.0.0.1:49945/v1/database/c20059e92845ad15cf4ad8fe76accef3794cd3e31eb6fe27392e28986ad17fc5/call/seed)\n",
- "phase": "call_reducer_golden"
- }
- },
- "schema_parity": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "reducers_diff": null,
- "reducers_equal": true,
- "tables_diff": null,
- "tables_equal": true
- }
- },
- "sum_type_columns_row_count": {
- "pass": false,
- "partial": 0.0,
- "notes": {
- "actual": 0,
- "expected": 1,
- "sql": "SELECT COUNT(*) AS n FROM drawing WHERE id=1"
- }
- }
- },
- "vendor": "anthropic"
- },
- "t_017_scheduled_columns": {
- "hash": "c73ba5b8e7438d32e18e96f9ab86c5b8ae2f31d1d614fe8db4abd098176840b0",
- "task": "t_017_scheduled_columns",
- "lang": "typescript",
- "golden_published": true,
- "model_name": "Claude Opus 4.6",
- "total_tests": 2,
- "passed_tests": 2,
- "category": "schema",
- "route_api_model": "claude-opus-4-6",
- "scorer_details": {
- "schema_parity": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "reducers_diff": null,
- "reducers_equal": true,
- "tables_diff": null,
- "tables_equal": true
- }
- },
- "scheduled_seeded_one_row": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "actual": 1,
- "expected": 1,
- "sql": "SELECT COUNT(*) AS n FROM tickTimer WHERE scheduledId>=0"
- }
- }
- },
- "vendor": "anthropic"
- },
- "t_018_constraints": {
- "hash": "c73ba5b8e7438d32e18e96f9ab86c5b8ae2f31d1d614fe8db4abd098176840b0",
- "task": "t_018_constraints",
- "lang": "typescript",
- "golden_published": true,
- "model_name": "Claude Opus 4.6",
- "total_tests": 3,
- "passed_tests": 3,
- "category": "schema",
- "route_api_model": "claude-opus-4-6",
- "scorer_details": {
- "schema_parity": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "reducers_diff": null,
- "reducers_equal": true,
- "tables_diff": null,
- "tables_equal": true
- }
- },
- "constraints_row_parity_after_seed": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "args": [],
- "golden_out": "id | email | name ----+-----------------+--------- 1 | \"a@example.com\" | \"Alice\"",
- "llm_out": "id | email | name ----+-----------------+--------- 1 | \"a@example.com\" | \"Alice\"",
- "query": "SELECT id, email, name FROM account WHERE id=1",
- "reducer": "seed"
- }
- },
- "constraints_seed_two_rows": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "actual": 1,
- "expected": 1,
- "sql": "SELECT COUNT(*) AS n FROM account WHERE id=2"
- }
- }
- },
- "vendor": "anthropic"
- },
- "t_019_many_to_many": {
- "hash": "c73ba5b8e7438d32e18e96f9ab86c5b8ae2f31d1d614fe8db4abd098176840b0",
- "task": "t_019_many_to_many",
- "lang": "typescript",
- "golden_published": true,
- "model_name": "Claude Opus 4.6",
- "total_tests": 5,
- "passed_tests": 5,
- "category": "schema",
- "route_api_model": "claude-opus-4-6",
- "scorer_details": {
- "m2m_has_1_20": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "actual": 1,
- "expected": 1,
- "sql": "SELECT COUNT(*) AS n FROM membership WHERE userId=1 AND groupId=20"
- }
- },
- "m2m_has_2_20": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "actual": 1,
- "expected": 1,
- "sql": "SELECT COUNT(*) AS n FROM membership WHERE userId=2 AND groupId=20"
- }
- },
- "schema_parity": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "reducers_diff": null,
- "reducers_equal": true,
- "tables_diff": null,
- "tables_equal": true
- }
- },
- "m2m_has_1_10": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "actual": 1,
- "expected": 1,
- "sql": "SELECT COUNT(*) AS n FROM membership WHERE userId=1 AND groupId=10"
- }
- },
- "memberships_three_rows": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "actual": 3,
- "expected": 3,
- "sql": "SELECT COUNT(*) AS n FROM membership"
- }
- }
- },
- "vendor": "anthropic"
- },
- "t_020_ecs": {
- "hash": "c73ba5b8e7438d32e18e96f9ab86c5b8ae2f31d1d614fe8db4abd098176840b0",
- "task": "t_020_ecs",
- "lang": "typescript",
- "golden_published": true,
- "model_name": "Claude Opus 4.6",
- "total_tests": 5,
- "passed_tests": 5,
- "category": "schema",
- "route_api_model": "claude-opus-4-6",
- "scorer_details": {
- "ecs_next_pos_entity2": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "actual": 1,
- "expected": 1,
- "sql": "SELECT COUNT(*) AS n FROM nextPosition WHERE entityId=2 AND x=8 AND y=3"
- }
- },
- "ecs_next_pos_entity1": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "actual": 1,
- "expected": 1,
- "sql": "SELECT COUNT(*) AS n FROM nextPosition WHERE entityId=1 AND x=1 AND y=0"
- }
- },
- "ecs_seed_position_count": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "actual": 2,
- "expected": 2,
- "sql": "SELECT COUNT(*) AS n FROM position"
- }
- },
- "schema_parity": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "reducers_diff": null,
- "reducers_equal": true,
- "tables_diff": null,
- "tables_equal": true
- }
- },
- "ecs_step_next_position_count": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "actual": 2,
- "expected": 2,
- "sql": "SELECT COUNT(*) AS n FROM nextPosition"
- }
- }
- },
- "vendor": "anthropic"
- },
- "t_021_multi_column_index": {
- "hash": "c73ba5b8e7438d32e18e96f9ab86c5b8ae2f31d1d614fe8db4abd098176840b0",
- "task": "t_021_multi_column_index",
- "lang": "typescript",
- "golden_published": true,
- "model_name": "Claude Opus 4.6",
- "total_tests": 4,
- "passed_tests": 4,
- "category": "schema",
- "route_api_model": "claude-opus-4-6",
- "scorer_details": {
- "mcindex_seed_count": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "actual": 3,
- "expected": 3,
- "sql": "SELECT COUNT(*) AS n FROM log"
- }
- },
- "mcindex_lookup_u7_d1": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "actual": 1,
- "expected": 1,
- "sql": "SELECT COUNT(*) AS n FROM log WHERE userId=7 AND day=1"
- }
- },
- "schema_parity": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "reducers_diff": null,
- "reducers_equal": true,
- "tables_diff": null,
- "tables_equal": true
- }
- },
- "mcindex_lookup_u7_d2": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "actual": 1,
- "expected": 1,
- "sql": "SELECT COUNT(*) AS n FROM log WHERE userId=7 AND day=2"
- }
- }
- },
- "vendor": "anthropic"
- }
- }
- },
- {
- "name": "Claude Sonnet 4.6",
- "route_api_model": "claude-sonnet-4-6",
- "tasks": {
- "t_000_empty_reducers": {
- "hash": "c73ba5b8e7438d32e18e96f9ab86c5b8ae2f31d1d614fe8db4abd098176840b0",
- "task": "t_000_empty_reducers",
- "lang": "typescript",
- "golden_published": true,
- "model_name": "Claude Sonnet 4.6",
- "total_tests": 1,
- "passed_tests": 1,
- "category": "basics",
- "route_api_model": "claude-sonnet-4-6",
- "scorer_details": {
- "schema_parity": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "reducers_diff": null,
- "reducers_equal": true,
- "tables_diff": null,
- "tables_equal": true
- }
- }
- },
- "vendor": "anthropic"
- },
- "t_001_basic_tables": {
- "hash": "c73ba5b8e7438d32e18e96f9ab86c5b8ae2f31d1d614fe8db4abd098176840b0",
- "task": "t_001_basic_tables",
- "lang": "typescript",
- "golden_published": true,
- "model_name": "Claude Sonnet 4.6",
- "total_tests": 1,
- "passed_tests": 1,
- "category": "basics",
- "route_api_model": "claude-sonnet-4-6",
- "scorer_details": {
- "schema_parity": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "reducers_diff": null,
- "reducers_equal": true,
- "tables_diff": null,
- "tables_equal": true
- }
- }
- },
- "vendor": "anthropic"
- },
- "t_002_scheduled_table": {
- "hash": "c73ba5b8e7438d32e18e96f9ab86c5b8ae2f31d1d614fe8db4abd098176840b0",
- "task": "t_002_scheduled_table",
- "lang": "typescript",
- "golden_published": true,
- "model_name": "Claude Sonnet 4.6",
- "total_tests": 1,
- "passed_tests": 1,
- "category": "basics",
- "route_api_model": "claude-sonnet-4-6",
- "scorer_details": {
- "schema_parity": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "reducers_diff": null,
- "reducers_equal": true,
- "tables_diff": null,
- "tables_equal": true
- }
- }
- },
- "vendor": "anthropic"
- },
- "t_003_struct_in_table": {
- "hash": "c73ba5b8e7438d32e18e96f9ab86c5b8ae2f31d1d614fe8db4abd098176840b0",
- "task": "t_003_struct_in_table",
- "lang": "typescript",
- "golden_published": true,
- "model_name": "Claude Sonnet 4.6",
- "total_tests": 1,
- "passed_tests": 1,
- "category": "basics",
- "route_api_model": "claude-sonnet-4-6",
- "scorer_details": {
- "schema_parity": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "reducers_diff": null,
- "reducers_equal": true,
- "tables_diff": null,
- "tables_equal": true
- }
- }
- },
- "vendor": "anthropic"
- },
- "t_004_insert": {
- "hash": "c73ba5b8e7438d32e18e96f9ab86c5b8ae2f31d1d614fe8db4abd098176840b0",
- "task": "t_004_insert",
- "lang": "typescript",
- "golden_published": true,
- "model_name": "Claude Sonnet 4.6",
- "total_tests": 2,
- "passed_tests": 2,
- "category": "basics",
- "route_api_model": "claude-sonnet-4-6",
- "scorer_details": {
- "schema_parity": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "reducers_diff": null,
- "reducers_equal": true,
- "tables_diff": null,
- "tables_equal": true
- }
- },
- "data_parity_insert_user": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "args": [
- 1,
- "Alice",
- 30,
- true
- ],
- "golden_out": "id | name | age | active ----+---------+-----+-------- 1 | \"Alice\" | 30 | true",
- "llm_out": "id | name | age | active ----+---------+-----+-------- 1 | \"Alice\" | 30 | true",
- "query": "SELECT id, name, age, active FROM user WHERE id=1",
- "reducer": "insert_user"
- }
- }
- },
- "vendor": "anthropic"
- },
- "t_005_update": {
- "hash": "c73ba5b8e7438d32e18e96f9ab86c5b8ae2f31d1d614fe8db4abd098176840b0",
- "task": "t_005_update",
- "lang": "typescript",
- "golden_published": true,
- "model_name": "Claude Sonnet 4.6",
- "total_tests": 3,
- "passed_tests": 3,
- "category": "basics",
- "route_api_model": "claude-sonnet-4-6",
- "scorer_details": {
- "data_parity_update_user": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "args": [
- 1,
- "Alice2",
- 31,
- false
- ],
- "golden_out": "id | name | age | active ----+----------+-----+-------- 1 | \"Alice2\" | 31 | false",
- "llm_out": "id | name | age | active ----+----------+-----+-------- 1 | \"Alice2\" | 31 | false",
- "query": "SELECT id, name, age, active FROM user WHERE id=1",
- "reducer": "update_user"
- }
- },
- "schema_parity": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "reducers_diff": null,
- "reducers_equal": true,
- "tables_diff": null,
- "tables_equal": true
- }
- },
- "seed_users_row": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "sql": "INSERT INTO user(id, name, age, active) VALUES (1, 'Alice', 30, true)"
- }
- }
- },
- "vendor": "anthropic"
- },
- "t_006_delete": {
- "hash": "c73ba5b8e7438d32e18e96f9ab86c5b8ae2f31d1d614fe8db4abd098176840b0",
- "task": "t_006_delete",
- "lang": "typescript",
- "golden_published": true,
- "model_name": "Claude Sonnet 4.6",
- "total_tests": 3,
- "passed_tests": 3,
- "category": "basics",
- "route_api_model": "claude-sonnet-4-6",
- "scorer_details": {
- "schema_parity": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "reducers_diff": null,
- "reducers_equal": true,
- "tables_diff": null,
- "tables_equal": true
- }
- },
- "seed_users_row": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "sql": "INSERT INTO user(id, name, age, active) VALUES (1, 'Alice', 30, true)"
- }
- },
- "delete_user_count_zero": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "actual": 0,
- "expected": 0,
- "sql": "SELECT COUNT(*) AS n FROM user WHERE id=1"
- }
- }
- },
- "vendor": "anthropic"
- },
- "t_007_crud": {
- "hash": "c73ba5b8e7438d32e18e96f9ab86c5b8ae2f31d1d614fe8db4abd098176840b0",
- "task": "t_007_crud",
- "lang": "typescript",
- "golden_published": true,
- "model_name": "Claude Sonnet 4.6",
- "total_tests": 4,
- "passed_tests": 4,
- "category": "basics",
- "route_api_model": "claude-sonnet-4-6",
- "scorer_details": {
- "crud_row_id2_deleted": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "actual": 0,
- "expected": 0,
- "sql": "SELECT COUNT(*) AS n FROM user WHERE id=2"
- }
- },
- "schema_parity": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "reducers_diff": null,
- "reducers_equal": true,
- "tables_diff": null,
- "tables_equal": true
- }
- },
- "crud_row_id1_parity": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "args": [],
- "golden_out": "id | name | age | active ----+----------+-----+-------- 1 | \"Alice2\" | 31 | false",
- "llm_out": "id | name | age | active ----+----------+-----+-------- 1 | \"Alice2\" | 31 | false",
- "query": "SELECT id, name, age, active FROM user WHERE id=1",
- "reducer": "crud"
- }
- },
- "crud_total_count_one": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "actual": 1,
- "expected": 1,
- "sql": "SELECT COUNT(*) AS n FROM user"
- }
- }
- },
- "vendor": "anthropic"
- },
- "t_008_index_lookup": {
- "hash": "c73ba5b8e7438d32e18e96f9ab86c5b8ae2f31d1d614fe8db4abd098176840b0",
- "task": "t_008_index_lookup",
- "lang": "typescript",
- "golden_published": true,
- "model_name": "Claude Sonnet 4.6",
- "total_tests": 3,
- "passed_tests": 3,
- "category": "basics",
- "route_api_model": "claude-sonnet-4-6",
- "scorer_details": {
- "index_lookup_projection_parity": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "args": [
- 1
- ],
- "golden_out": "id | name ----+--------- 1 | \"Alice\"",
- "llm_out": "id | name ----+--------- 1 | \"Alice\"",
- "query": "SELECT id, name FROM result WHERE id=1",
- "reducer": "lookup_user_name"
- }
- },
- "schema_parity": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "reducers_diff": null,
- "reducers_equal": true,
- "tables_diff": null,
- "tables_equal": true
- }
- },
- "seed_user_row": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "sql": "INSERT INTO user(id, name, age, active) VALUES (1, 'Alice', 30, true)"
- }
- }
- },
- "vendor": "anthropic"
- },
- "t_009_init": {
- "hash": "c73ba5b8e7438d32e18e96f9ab86c5b8ae2f31d1d614fe8db4abd098176840b0",
- "task": "t_009_init",
- "lang": "typescript",
- "golden_published": true,
- "model_name": "Claude Sonnet 4.6",
- "total_tests": 4,
- "passed_tests": 4,
- "category": "basics",
- "route_api_model": "claude-sonnet-4-6",
- "scorer_details": {
- "init_seed_alice": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "actual": 1,
- "expected": 1,
- "sql": "SELECT COUNT(*) AS n FROM user WHERE id=1 AND name='Alice' AND age=30 AND active=true"
- }
- },
- "init_total_two": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "actual": 2,
- "expected": 2,
- "sql": "SELECT COUNT(*) AS n FROM user"
- }
- },
- "schema_parity": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "reducers_diff": null,
- "reducers_equal": true,
- "tables_diff": null,
- "tables_equal": true
- }
- },
- "init_seed_bob": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "actual": 1,
- "expected": 1,
- "sql": "SELECT COUNT(*) AS n FROM user WHERE id=2 AND name='Bob' AND age=22 AND active=false"
- }
- }
- },
- "vendor": "anthropic"
- },
- "t_010_connect": {
- "hash": "c73ba5b8e7438d32e18e96f9ab86c5b8ae2f31d1d614fe8db4abd098176840b0",
- "task": "t_010_connect",
- "lang": "typescript",
- "golden_published": true,
- "model_name": "Claude Sonnet 4.6",
- "total_tests": 1,
- "passed_tests": 0,
- "llm_output": "import { schema, table, t } from 'spacetimedb/server';\n\nconst event = table(\n { name: 'event', public: true },\n {\n id: t.u64().primaryKey().autoInc(),\n kind: t.string(),\n }\n);\n\nconst spacetimedb = schema({ event });\nexport default spacetimedb;\n\nexport const clientConnected = spacetimedb.clientConnected((ctx) => {\n ctx.db.event.insert({ id: 0n, kind: 'connected' });\n});\n\nexport const clientDisconnected = spacetimedb.clientDisconnected((ctx) => {\n ctx.db.event.insert({ id: 0n, kind: 'disconnected' });\n});",
- "category": "basics",
- "route_api_model": "claude-sonnet-4-6",
- "scorer_details": {
- "schema_parity": {
- "pass": false,
- "partial": 0.0,
- "notes": {
- "reducers_diff": {
- "only_golden": [
- "on_connect()",
- "on_disconnect()"
- ],
- "only_llm": [
- "client_connected()",
- "client_disconnected()"
- ]
- },
- "reducers_equal": false,
- "tables_diff": null,
- "tables_equal": true
- }
- }
- },
- "vendor": "anthropic"
- },
- "t_011_helper_function": {
- "hash": "c73ba5b8e7438d32e18e96f9ab86c5b8ae2f31d1d614fe8db4abd098176840b0",
- "task": "t_011_helper_function",
- "lang": "typescript",
- "golden_published": true,
- "model_name": "Claude Sonnet 4.6",
- "total_tests": 3,
- "passed_tests": 3,
- "category": "basics",
- "route_api_model": "claude-sonnet-4-6",
- "scorer_details": {
- "helper_func_sum_abs": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "actual": 1,
- "expected": 1,
- "sql": "SELECT COUNT(*) AS n FROM result WHERE id=1 AND sum=5"
- }
- },
- "schema_parity": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "reducers_diff": null,
- "reducers_equal": true,
- "tables_diff": null,
- "tables_equal": true
- }
- },
- "helper_func_sum_parity": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "args": [
- 1,
- 2,
- 3
- ],
- "golden_out": "id | sum ----+----- 1 | 5",
- "llm_out": "id | sum ----+----- 1 | 5",
- "query": "SELECT id, sum FROM result WHERE id=1",
- "reducer": "compute_sum"
- }
- }
- },
- "vendor": "anthropic"
- },
- "t_012_spacetime_product_type": {
- "hash": "c73ba5b8e7438d32e18e96f9ab86c5b8ae2f31d1d614fe8db4abd098176840b0",
- "task": "t_012_spacetime_product_type",
- "lang": "typescript",
- "golden_published": true,
- "model_name": "Claude Sonnet 4.6",
- "total_tests": 3,
- "passed_tests": 3,
- "category": "schema",
- "route_api_model": "claude-sonnet-4-6",
- "scorer_details": {
- "product_type_row_count": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "actual": 1,
- "expected": 1,
- "sql": "SELECT COUNT(*) AS n FROM result WHERE id=1"
- }
- },
- "schema_parity": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "reducers_diff": null,
- "reducers_equal": true,
- "tables_diff": null,
- "tables_equal": true
- }
- },
- "product_type_row_parity": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "args": [
- 1,
- 2,
- 3
- ],
- "golden_out": "id | value ----+----------------------- 1 | (left = 2, right = 3)",
- "llm_out": "id | value ----+----------------------- 1 | (left = 2, right = 3)",
- "query": "SELECT id, value FROM result WHERE id=1",
- "reducer": "set_score"
- }
- }
- },
- "vendor": "anthropic"
- },
- "t_013_spacetime_sum_type": {
- "hash": "c73ba5b8e7438d32e18e96f9ab86c5b8ae2f31d1d614fe8db4abd098176840b0",
- "task": "t_013_spacetime_sum_type",
- "lang": "typescript",
- "golden_published": true,
- "model_name": "Claude Sonnet 4.6",
- "total_tests": 3,
- "passed_tests": 1,
- "llm_output": "import { schema, table, t } from 'spacetimedb/server';\n\nconst Rect = t.object('Rect', {\n width: t.i32(),\n height: t.i32(),\n});\n\nconst Shape = t.enum('Shape', {\n circle: t.i32(),\n rectangle: Rect,\n});\n\nconst result = table(\n { name: 'result', public: true },\n {\n id: t.i32().primaryKey(),\n value: Shape,\n }\n);\n\nconst spacetimedb = schema({ result });\nexport default spacetimedb;\n\nexport const setCircle = spacetimedb.reducer(\n { id: t.i32(), radius: t.i32() },\n (ctx, { id, radius }) => {\n ctx.db.result.insert({\n id,\n value: { tag: 'circle', value: radius },\n });\n }\n);",
- "category": "schema",
- "route_api_model": "claude-sonnet-4-6",
- "scorer_details": {
- "schema_parity": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "reducers_diff": null,
- "reducers_equal": true,
- "tables_diff": null,
- "tables_equal": true
- }
- },
- "sum_type_row_parity": {
- "pass": false,
- "partial": 0.0,
- "notes": {
- "error": "spacetime call failed:\nWARNING: This command is UNSTABLE and subject to breaking changes.\n\nError: Response text: The instance encountered a fatal error.\n\nCaused by:\n HTTP status server error (530 ) for url (http://127.0.0.1:52577/v1/database/c2006f2817973d324ee8247428b9caa12a024dc31c8ecdc27f11604f3e21ae0b/call/set_circle)\n",
- "phase": "call_reducer_golden"
- }
- },
- "sum_type_row_count": {
- "pass": false,
- "partial": 0.0,
- "notes": {
- "actual": 0,
- "expected": 1,
- "sql": "SELECT COUNT(*) AS n FROM result WHERE id=1"
- }
- }
- },
- "vendor": "anthropic"
- },
- "t_014_elementary_columns": {
- "hash": "c73ba5b8e7438d32e18e96f9ab86c5b8ae2f31d1d614fe8db4abd098176840b0",
- "task": "t_014_elementary_columns",
- "lang": "typescript",
- "golden_published": true,
- "model_name": "Claude Sonnet 4.6",
- "total_tests": 3,
- "passed_tests": 3,
- "category": "schema",
- "route_api_model": "claude-sonnet-4-6",
- "scorer_details": {
- "schema_parity": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "reducers_diff": null,
- "reducers_equal": true,
- "tables_diff": null,
- "tables_equal": true
- }
- },
- "elementary_columns_row_parity": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "args": [],
- "golden_out": "id | count | total | price | ratio | active | name ----+-------+------------+-------+-------+--------+--------- 1 | 2 | 3000000000 | 1.5 | 2.25 | true | \"Alice\"",
- "llm_out": "id | count | total | price | ratio | active | name ----+-------+------------+-------+-------+--------+--------- 1 | 2 | 3000000000 | 1.5 | 2.25 | true | \"Alice\"",
- "query": "SELECT id, count, total, price, ratio, active, name FROM primitive WHERE id=1",
- "reducer": "seed"
- }
- },
- "elementary_columns_row_count": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "actual": 1,
- "expected": 1,
- "sql": "SELECT COUNT(*) AS n FROM primitive WHERE id=1"
- }
- }
- },
- "vendor": "anthropic"
- },
- "t_015_product_type_columns": {
- "hash": "c73ba5b8e7438d32e18e96f9ab86c5b8ae2f31d1d614fe8db4abd098176840b0",
- "task": "t_015_product_type_columns",
- "lang": "typescript",
- "golden_published": true,
- "model_name": "Claude Sonnet 4.6",
- "total_tests": 3,
- "passed_tests": 3,
- "category": "schema",
- "route_api_model": "claude-sonnet-4-6",
- "scorer_details": {
- "product_type_columns_row_parity": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "args": [],
- "golden_out": "id | home | work | pos ----+----------------------------------+-----------------------------------+---------------- 1 | (street = \"1 Main\", zip = 11111) | (street = \"2 Broad\", zip = 22222) | (x = 7, y = 9)",
- "llm_out": "id | home | work | pos ----+----------------------------------+-----------------------------------+---------------- 1 | (street = \"1 Main\", zip = 11111) | (street = \"2 Broad\", zip = 22222) | (x = 7, y = 9)",
- "query": "SELECT id, home, work, pos FROM profile WHERE id=1",
- "reducer": "seed"
- }
- },
- "schema_parity": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "reducers_diff": null,
- "reducers_equal": true,
- "tables_diff": null,
- "tables_equal": true
- }
- },
- "product_type_columns_row_count": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "actual": 1,
- "expected": 1,
- "sql": "SELECT COUNT(*) AS n FROM profile WHERE id=1"
- }
- }
- },
- "vendor": "anthropic"
- },
- "t_016_sum_type_columns": {
- "hash": "c73ba5b8e7438d32e18e96f9ab86c5b8ae2f31d1d614fe8db4abd098176840b0",
- "task": "t_016_sum_type_columns",
- "lang": "typescript",
- "golden_published": true,
- "model_name": "Claude Sonnet 4.6",
- "total_tests": 3,
- "passed_tests": 1,
- "llm_output": "import { schema, table, t } from 'spacetimedb/server';\n\nconst Rect = t.object('Rect', {\n width: t.i32(),\n height: t.i32(),\n});\n\nconst Shape = t.enum('Shape', {\n circle: t.i32(),\n rectangle: Rect,\n});\n\nconst drawing = table(\n { name: 'drawing', public: true },\n {\n id: t.i32().primaryKey(),\n a: Shape,\n b: Shape,\n }\n);\n\nconst spacetimedb = schema({ drawing });\nexport default spacetimedb;\n\nexport const seed = spacetimedb.reducer((ctx) => {\n ctx.db.drawing.insert({\n id: 0,\n a: { tag: 'circle', value: 10 },\n b: { tag: 'rectangle', value: { width: 4, height: 6 } },\n });\n});",
- "category": "schema",
- "route_api_model": "claude-sonnet-4-6",
- "scorer_details": {
- "sum_type_columns_row_parity": {
- "pass": false,
- "partial": 0.0,
- "notes": {
- "error": "spacetime call failed:\nWARNING: This command is UNSTABLE and subject to breaking changes.\n\nError: Response text: The instance encountered a fatal error.\n\nCaused by:\n HTTP status server error (530 ) for url (http://127.0.0.1:52577/v1/database/c2007833132462ef336d257f7a96b6e7fbcc3ce713c37259cee85ab13b5a5db4/call/seed)\n",
- "phase": "call_reducer_golden"
- }
- },
- "schema_parity": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "reducers_diff": null,
- "reducers_equal": true,
- "tables_diff": null,
- "tables_equal": true
- }
- },
- "sum_type_columns_row_count": {
- "pass": false,
- "partial": 0.0,
- "notes": {
- "actual": 0,
- "expected": 1,
- "sql": "SELECT COUNT(*) AS n FROM drawing WHERE id=1"
- }
- }
- },
- "vendor": "anthropic"
- },
- "t_017_scheduled_columns": {
- "hash": "c73ba5b8e7438d32e18e96f9ab86c5b8ae2f31d1d614fe8db4abd098176840b0",
- "task": "t_017_scheduled_columns",
- "lang": "typescript",
- "golden_published": true,
- "model_name": "Claude Sonnet 4.6",
- "total_tests": 2,
- "passed_tests": 2,
- "category": "schema",
- "route_api_model": "claude-sonnet-4-6",
- "scorer_details": {
- "schema_parity": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "reducers_diff": null,
- "reducers_equal": true,
- "tables_diff": null,
- "tables_equal": true
- }
- },
- "scheduled_seeded_one_row": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "actual": 1,
- "expected": 1,
- "sql": "SELECT COUNT(*) AS n FROM tickTimer WHERE scheduledId>=0"
- }
- }
- },
- "vendor": "anthropic"
- },
- "t_018_constraints": {
- "hash": "c73ba5b8e7438d32e18e96f9ab86c5b8ae2f31d1d614fe8db4abd098176840b0",
- "task": "t_018_constraints",
- "lang": "typescript",
- "golden_published": true,
- "model_name": "Claude Sonnet 4.6",
- "total_tests": 3,
- "passed_tests": 3,
- "category": "schema",
- "route_api_model": "claude-sonnet-4-6",
- "scorer_details": {
- "schema_parity": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "reducers_diff": null,
- "reducers_equal": true,
- "tables_diff": null,
- "tables_equal": true
- }
- },
- "constraints_row_parity_after_seed": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "args": [],
- "golden_out": "id | email | name ----+-----------------+--------- 1 | \"a@example.com\" | \"Alice\"",
- "llm_out": "id | email | name ----+-----------------+--------- 1 | \"a@example.com\" | \"Alice\"",
- "query": "SELECT id, email, name FROM account WHERE id=1",
- "reducer": "seed"
- }
- },
- "constraints_seed_two_rows": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "actual": 1,
- "expected": 1,
- "sql": "SELECT COUNT(*) AS n FROM account WHERE id=2"
- }
- }
- },
- "vendor": "anthropic"
- },
- "t_019_many_to_many": {
- "hash": "c73ba5b8e7438d32e18e96f9ab86c5b8ae2f31d1d614fe8db4abd098176840b0",
- "task": "t_019_many_to_many",
- "lang": "typescript",
- "golden_published": true,
- "model_name": "Claude Sonnet 4.6",
- "total_tests": 5,
- "passed_tests": 5,
- "category": "schema",
- "route_api_model": "claude-sonnet-4-6",
- "scorer_details": {
- "m2m_has_1_20": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "actual": 1,
- "expected": 1,
- "sql": "SELECT COUNT(*) AS n FROM membership WHERE userId=1 AND groupId=20"
- }
- },
- "m2m_has_2_20": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "actual": 1,
- "expected": 1,
- "sql": "SELECT COUNT(*) AS n FROM membership WHERE userId=2 AND groupId=20"
- }
- },
- "schema_parity": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "reducers_diff": null,
- "reducers_equal": true,
- "tables_diff": null,
- "tables_equal": true
- }
- },
- "m2m_has_1_10": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "actual": 1,
- "expected": 1,
- "sql": "SELECT COUNT(*) AS n FROM membership WHERE userId=1 AND groupId=10"
- }
- },
- "memberships_three_rows": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "actual": 3,
- "expected": 3,
- "sql": "SELECT COUNT(*) AS n FROM membership"
- }
- }
- },
- "vendor": "anthropic"
- },
- "t_020_ecs": {
- "hash": "c73ba5b8e7438d32e18e96f9ab86c5b8ae2f31d1d614fe8db4abd098176840b0",
- "task": "t_020_ecs",
- "lang": "typescript",
- "golden_published": true,
- "model_name": "Claude Sonnet 4.6",
- "total_tests": 5,
- "passed_tests": 5,
- "category": "schema",
- "route_api_model": "claude-sonnet-4-6",
- "scorer_details": {
- "ecs_next_pos_entity2": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "actual": 1,
- "expected": 1,
- "sql": "SELECT COUNT(*) AS n FROM nextPosition WHERE entityId=2 AND x=8 AND y=3"
- }
- },
- "ecs_next_pos_entity1": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "actual": 1,
- "expected": 1,
- "sql": "SELECT COUNT(*) AS n FROM nextPosition WHERE entityId=1 AND x=1 AND y=0"
- }
- },
- "ecs_seed_position_count": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "actual": 2,
- "expected": 2,
- "sql": "SELECT COUNT(*) AS n FROM position"
- }
- },
- "schema_parity": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "reducers_diff": null,
- "reducers_equal": true,
- "tables_diff": null,
- "tables_equal": true
- }
- },
- "ecs_step_next_position_count": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "actual": 2,
- "expected": 2,
- "sql": "SELECT COUNT(*) AS n FROM nextPosition"
- }
- }
- },
- "vendor": "anthropic"
- },
- "t_021_multi_column_index": {
- "hash": "c73ba5b8e7438d32e18e96f9ab86c5b8ae2f31d1d614fe8db4abd098176840b0",
- "task": "t_021_multi_column_index",
- "lang": "typescript",
- "golden_published": true,
- "model_name": "Claude Sonnet 4.6",
- "total_tests": 4,
- "passed_tests": 4,
- "category": "schema",
- "route_api_model": "claude-sonnet-4-6",
- "scorer_details": {
- "mcindex_seed_count": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "actual": 3,
- "expected": 3,
- "sql": "SELECT COUNT(*) AS n FROM log"
- }
- },
- "mcindex_lookup_u7_d1": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "actual": 1,
- "expected": 1,
- "sql": "SELECT COUNT(*) AS n FROM log WHERE userId=7 AND day=1"
- }
- },
- "schema_parity": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "reducers_diff": null,
- "reducers_equal": true,
- "tables_diff": null,
- "tables_equal": true
- }
- },
- "mcindex_lookup_u7_d2": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "actual": 1,
- "expected": 1,
- "sql": "SELECT COUNT(*) AS n FROM log WHERE userId=7 AND day=2"
- }
- }
- },
- "vendor": "anthropic"
- }
- }
- },
- {
- "name": "GPT-5.2-Codex",
- "route_api_model": "gpt-5.2-codex",
- "tasks": {
- "t_000_empty_reducers": {
- "hash": "3924da8acd3f980dd3c715b8feeec704c6d1a33c376ebb95ece2d4e0eef81093",
- "task": "t_000_empty_reducers",
- "lang": "typescript",
- "golden_published": true,
- "model_name": "GPT-5.2-Codex",
- "total_tests": 1,
- "passed_tests": 1,
- "category": "basics",
- "route_api_model": "gpt-5.2-codex",
- "scorer_details": {
- "schema_parity": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "reducers_diff": null,
- "reducers_equal": true,
- "tables_diff": null,
- "tables_equal": true
- }
- }
- },
- "vendor": "openai"
- },
- "t_001_basic_tables": {
- "hash": "3924da8acd3f980dd3c715b8feeec704c6d1a33c376ebb95ece2d4e0eef81093",
- "task": "t_001_basic_tables",
- "lang": "typescript",
- "golden_published": false,
- "model_name": "GPT-5.2-Codex",
- "total_tests": 1,
- "passed_tests": 0,
- "llm_output": "import { schema, table, t } from 'spacetimedb/server';\n\nconst user = table({ name: 'user', public: true }, {\n id: t.i32().primaryKey(),\n name: t.string(),\n age: t.i32(),\n active: t.bool(),\n});\n\nconst product = table({ name: 'product', public: true }, {\n id: t.i32().primaryKey(),\n title: t.string(),\n price: t.f32(),\n inStock: t.bool(),\n});\n\nconst note = table({ name: 'note', public: true }, {\n id: t.i32().primaryKey(),\n body: t.string(),\n rating: t.i64(),\n pinned: t.bool(),\n});\n\nconst spacetimedb = schema(user, product, note);\nexport default spacetimedb;",
- "category": "basics",
- "route_api_model": "gpt-5.2-codex",
- "scorer_details": {
- "publish_error": {
- "pass": false,
- "partial": 0.0,
- "notes": {
- "error": "spacetime publish (typescript) failed (exit=1)\n--- stderr ---\ntsc not found in node_modules. Make sure you have the `typescript` package as a dev-dependency and that your dependencies are installed.\nError: Uncaught TypeError: table2.tableDef is not a function\n\tat (D:/Development/ClockworkLabs/SpacetimeDB/SpacetimeDBPrivate/public/target/llm-runs/basics/t_001_basic_tables/typescript/server/gpt-5-2-codex/llm/node_modules/.pnpm/spacetimedb@file+..+..+..+._4e6762d0fa0af4732de585440982ec59/node_modules/spacetimedb/dist/server/index.mjs:7402:31)\n\tat SchemaInner (D:/Development/ClockworkLabs/SpacetimeDB/SpacetimeDBPrivate/public/target/llm-runs/basics/t_001_basic_tables/typescript/server/gpt-5-2-codex/llm/node_modules/.pnpm/spacetimedb@file+..+..+..+._4e6762d0fa0af4732de585440982ec59/node_modules/spacetimedb/dist/server/index.mjs:7205:23)\n\tat schema (D:/Development/ClockworkLabs/SpacetimeDB/SpacetimeDBPrivate/public/target/llm-runs/basics/t_001_basic_tables/typescript/server/gpt-5-2-codex/llm/node_modules/.pnpm/spacetimedb@file+..+..+..+._4e6762d0fa0af4732de585440982ec59/node_modules/spacetimedb/dist/server/index.mjs:7399:15)\n\tat (D:/Development/ClockworkLabs/SpacetimeDB/SpacetimeDBPrivate/public/target/llm-runs/basics/t_001_basic_tables/typescript/server/gpt-5-2-codex/llm/src/index.ts:24:21)\n\nCaused by:\n HTTP status server error (500 Internal Server Error) for url (http://127.0.0.1:63834/v1/database/basics-t-001-basic-tables-gpt-5-2-codex-llm?clear=true&host_type=Js)\n\n--- stdout ---\nBuild finished successfully.\nUploading to http://127.0.0.1:63834 => http://127.0.0.1:63834\nThis will DESTROY the current basics-t-001-basic-tables-gpt-5-2-codex-llm module, and ALL corresponding data.\nSkipping confirmation due to --yes\nPublishing module...\nJavaScript / TypeScript support is currently in BETA.\nThere may be bugs. Please file issues if you encounter any.\n\n",
- "phase": "build_or_publish"
- }
- }
- },
- "vendor": "openai"
- },
- "t_002_scheduled_table": {
- "hash": "3924da8acd3f980dd3c715b8feeec704c6d1a33c376ebb95ece2d4e0eef81093",
- "task": "t_002_scheduled_table",
- "lang": "typescript",
- "golden_published": true,
- "model_name": "GPT-5.2-Codex",
- "total_tests": 1,
- "passed_tests": 1,
- "category": "basics",
- "route_api_model": "gpt-5.2-codex",
- "scorer_details": {
- "schema_parity": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "reducers_diff": null,
- "reducers_equal": true,
- "tables_diff": null,
- "tables_equal": true
- }
- }
- },
- "vendor": "openai"
- },
- "t_003_struct_in_table": {
- "hash": "3924da8acd3f980dd3c715b8feeec704c6d1a33c376ebb95ece2d4e0eef81093",
- "task": "t_003_struct_in_table",
- "lang": "typescript",
- "golden_published": false,
- "model_name": "GPT-5.2-Codex",
- "total_tests": 1,
- "passed_tests": 0,
- "llm_output": "import { schema, table, t } from 'spacetimedb/server';\n\nconst Position = t.object('Position', {\n x: t.i32(),\n y: t.i32(),\n});\n\nconst entity = table(\n { name: 'entity' },\n {\n id: t.i32().primaryKey(),\n pos: Position,\n }\n);\n\nconst spacetimedb = schema(entity);\nexport default spacetimedb;",
- "category": "basics",
- "route_api_model": "gpt-5.2-codex",
- "scorer_details": {
- "publish_error": {
- "pass": false,
- "partial": 0.0,
- "notes": {
- "error": "spacetime publish (typescript) failed (exit=1)\n--- stderr ---\ntsc not found in node_modules. Make sure you have the `typescript` package as a dev-dependency and that your dependencies are installed.\nError: Uncaught TypeError: table2.tableDef is not a function\n\tat (D:/Development/ClockworkLabs/SpacetimeDB/SpacetimeDBPrivate/public/target/llm-runs/basics/t_003_struct_in_table/typescript/server/gpt-5-2-codex/llm/node_modules/.pnpm/spacetimedb@file+..+..+..+._4e6762d0fa0af4732de585440982ec59/node_modules/spacetimedb/dist/server/index.mjs:7402:31)\n\tat SchemaInner (D:/Development/ClockworkLabs/SpacetimeDB/SpacetimeDBPrivate/public/target/llm-runs/basics/t_003_struct_in_table/typescript/server/gpt-5-2-codex/llm/node_modules/.pnpm/spacetimedb@file+..+..+..+._4e6762d0fa0af4732de585440982ec59/node_modules/spacetimedb/dist/server/index.mjs:7205:23)\n\tat schema (D:/Development/ClockworkLabs/SpacetimeDB/SpacetimeDBPrivate/public/target/llm-runs/basics/t_003_struct_in_table/typescript/server/gpt-5-2-codex/llm/node_modules/.pnpm/spacetimedb@file+..+..+..+._4e6762d0fa0af4732de585440982ec59/node_modules/spacetimedb/dist/server/index.mjs:7399:15)\n\tat (D:/Development/ClockworkLabs/SpacetimeDB/SpacetimeDBPrivate/public/target/llm-runs/basics/t_003_struct_in_table/typescript/server/gpt-5-2-codex/llm/src/index.ts:16:21)\n\nCaused by:\n HTTP status server error (500 Internal Server Error) for url (http://127.0.0.1:63834/v1/database/basics-t-003-struct-in-table-gpt-5-2-codex-llm?clear=true&host_type=Js)\n\n--- stdout ---\nBuild finished successfully.\nUploading to http://127.0.0.1:63834 => http://127.0.0.1:63834\nThis will DESTROY the current basics-t-003-struct-in-table-gpt-5-2-codex-llm module, and ALL corresponding data.\nSkipping confirmation due to --yes\nPublishing module...\nJavaScript / TypeScript support is currently in BETA.\nThere may be bugs. Please file issues if you encounter any.\n\n",
- "phase": "build_or_publish"
- }
- }
- },
- "vendor": "openai"
- },
- "t_004_insert": {
- "hash": "3924da8acd3f980dd3c715b8feeec704c6d1a33c376ebb95ece2d4e0eef81093",
- "task": "t_004_insert",
- "lang": "typescript",
- "golden_published": false,
- "model_name": "GPT-5.2-Codex",
- "total_tests": 2,
- "passed_tests": 0,
- "llm_output": "import { schema, table, t } from 'spacetimedb/server';\n\nconst user = table(\n { name: 'user' },\n {\n id: t.i32().primaryKey(),\n name: t.string(),\n age: t.i32(),\n active: t.bool(),\n }\n);\n\nconst spacetimedb = schema(user);\nexport default spacetimedb;\n\nexport const insertUser = spacetimedb.reducer(\n { id: t.i32(), name: t.string(), age: t.i32(), active: t.bool() },\n (ctx, { id, name, age, active }) => {\n ctx.db.user.insert({ id, name, age, active });\n }\n);",
- "category": "basics",
- "route_api_model": "gpt-5.2-codex",
- "scorer_details": {
- "publish_error": {
- "pass": false,
- "partial": 0.0,
- "notes": {
- "error": "spacetime publish (typescript) failed (exit=1)\n--- stderr ---\ntsc not found in node_modules. Make sure you have the `typescript` package as a dev-dependency and that your dependencies are installed.\nError: Uncaught TypeError: table2.tableDef is not a function\n\tat (D:/Development/ClockworkLabs/SpacetimeDB/SpacetimeDBPrivate/public/target/llm-runs/basics/t_004_insert/typescript/server/gpt-5-2-codex/llm/node_modules/.pnpm/spacetimedb@file+..+..+..+._4e6762d0fa0af4732de585440982ec59/node_modules/spacetimedb/dist/server/index.mjs:7402:31)\n\tat SchemaInner (D:/Development/ClockworkLabs/SpacetimeDB/SpacetimeDBPrivate/public/target/llm-runs/basics/t_004_insert/typescript/server/gpt-5-2-codex/llm/node_modules/.pnpm/spacetimedb@file+..+..+..+._4e6762d0fa0af4732de585440982ec59/node_modules/spacetimedb/dist/server/index.mjs:7205:23)\n\tat schema (D:/Development/ClockworkLabs/SpacetimeDB/SpacetimeDBPrivate/public/target/llm-runs/basics/t_004_insert/typescript/server/gpt-5-2-codex/llm/node_modules/.pnpm/spacetimedb@file+..+..+..+._4e6762d0fa0af4732de585440982ec59/node_modules/spacetimedb/dist/server/index.mjs:7399:15)\n\tat (D:/Development/ClockworkLabs/SpacetimeDB/SpacetimeDBPrivate/public/target/llm-runs/basics/t_004_insert/typescript/server/gpt-5-2-codex/llm/src/index.ts:13:21)\n\nCaused by:\n HTTP status server error (500 Internal Server Error) for url (http://127.0.0.1:63834/v1/database/basics-t-004-insert-gpt-5-2-codex-llm?clear=true&host_type=Js)\n\n--- stdout ---\nBuild finished successfully.\nUploading to http://127.0.0.1:63834 => http://127.0.0.1:63834\nThis will DESTROY the current basics-t-004-insert-gpt-5-2-codex-llm module, and ALL corresponding data.\nSkipping confirmation due to --yes\nPublishing module...\nJavaScript / TypeScript support is currently in BETA.\nThere may be bugs. Please file issues if you encounter any.\n\n",
- "phase": "build_or_publish"
- }
- }
- },
- "vendor": "openai"
- },
- "t_005_update": {
- "hash": "3924da8acd3f980dd3c715b8feeec704c6d1a33c376ebb95ece2d4e0eef81093",
- "task": "t_005_update",
- "lang": "typescript",
- "golden_published": true,
- "model_name": "GPT-5.2-Codex",
- "total_tests": 3,
- "passed_tests": 3,
- "category": "basics",
- "route_api_model": "gpt-5.2-codex",
- "scorer_details": {
- "data_parity_update_user": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "args": [
- 1,
- "Alice2",
- 31,
- false
- ],
- "golden_out": "id | name | age | active ----+----------+-----+-------- 1 | \"Alice2\" | 31 | false",
- "llm_out": "id | name | age | active ----+----------+-----+-------- 1 | \"Alice2\" | 31 | false",
- "query": "SELECT id, name, age, active FROM user WHERE id=1",
- "reducer": "update_user"
- }
- },
- "schema_parity": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "reducers_diff": null,
- "reducers_equal": true,
- "tables_diff": null,
- "tables_equal": true
- }
- },
- "seed_users_row": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "sql": "INSERT INTO user(id, name, age, active) VALUES (1, 'Alice', 30, true)"
- }
- }
- },
- "vendor": "openai"
- },
- "t_006_delete": {
- "hash": "3924da8acd3f980dd3c715b8feeec704c6d1a33c376ebb95ece2d4e0eef81093",
- "task": "t_006_delete",
- "lang": "typescript",
- "golden_published": true,
- "model_name": "GPT-5.2-Codex",
- "total_tests": 3,
- "passed_tests": 3,
- "category": "basics",
- "route_api_model": "gpt-5.2-codex",
- "scorer_details": {
- "schema_parity": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "reducers_diff": null,
- "reducers_equal": true,
- "tables_diff": null,
- "tables_equal": true
- }
- },
- "seed_users_row": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "sql": "INSERT INTO user(id, name, age, active) VALUES (1, 'Alice', 30, true)"
- }
- },
- "delete_user_count_zero": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "actual": 0,
- "expected": 0,
- "sql": "SELECT COUNT(*) AS n FROM user WHERE id=1"
- }
- }
- },
- "vendor": "openai"
- },
- "t_007_crud": {
- "hash": "3924da8acd3f980dd3c715b8feeec704c6d1a33c376ebb95ece2d4e0eef81093",
- "task": "t_007_crud",
- "lang": "typescript",
- "golden_published": true,
- "model_name": "GPT-5.2-Codex",
- "total_tests": 4,
- "passed_tests": 4,
- "category": "basics",
- "route_api_model": "gpt-5.2-codex",
- "scorer_details": {
- "crud_row_id2_deleted": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "actual": 0,
- "expected": 0,
- "sql": "SELECT COUNT(*) AS n FROM user WHERE id=2"
- }
- },
- "schema_parity": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "reducers_diff": null,
- "reducers_equal": true,
- "tables_diff": null,
- "tables_equal": true
- }
- },
- "crud_row_id1_parity": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "args": [],
- "golden_out": "id | name | age | active ----+----------+-----+-------- 1 | \"Alice2\" | 31 | false",
- "llm_out": "id | name | age | active ----+----------+-----+-------- 1 | \"Alice2\" | 31 | false",
- "query": "SELECT id, name, age, active FROM user WHERE id=1",
- "reducer": "crud"
- }
- },
- "crud_total_count_one": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "actual": 1,
- "expected": 1,
- "sql": "SELECT COUNT(*) AS n FROM user"
- }
- }
- },
- "vendor": "openai"
- },
- "t_008_index_lookup": {
- "hash": "3924da8acd3f980dd3c715b8feeec704c6d1a33c376ebb95ece2d4e0eef81093",
- "task": "t_008_index_lookup",
- "lang": "typescript",
- "golden_published": true,
- "model_name": "GPT-5.2-Codex",
- "total_tests": 3,
- "passed_tests": 3,
- "category": "basics",
- "route_api_model": "gpt-5.2-codex",
- "scorer_details": {
- "index_lookup_projection_parity": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "args": [
- 1
- ],
- "golden_out": "id | name ----+--------- 1 | \"Alice\"",
- "llm_out": "id | name ----+--------- 1 | \"Alice\"",
- "query": "SELECT id, name FROM result WHERE id=1",
- "reducer": "lookup_user_name"
- }
- },
- "schema_parity": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "reducers_diff": null,
- "reducers_equal": true,
- "tables_diff": null,
- "tables_equal": true
- }
- },
- "seed_user_row": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "sql": "INSERT INTO user(id, name, age, active) VALUES (1, 'Alice', 30, true)"
- }
- }
- },
- "vendor": "openai"
- },
- "t_009_init": {
- "hash": "3924da8acd3f980dd3c715b8feeec704c6d1a33c376ebb95ece2d4e0eef81093",
- "task": "t_009_init",
- "lang": "typescript",
- "golden_published": false,
- "model_name": "GPT-5.2-Codex",
- "total_tests": 4,
- "passed_tests": 0,
- "llm_output": "import { schema, table, t } from 'spacetimedb/server';\n\nconst user = table(\n { name: 'user' },\n {\n id: t.i32().primaryKey(),\n name: t.string(),\n age: t.i32(),\n active: t.bool(),\n }\n);\n\nconst spacetimedb = schema(user);\nexport default spacetimedb;\n\nexport const init = spacetimedb.init(ctx => {\n ctx.db.user.insert({ id: 1, name: \"Alice\", age: 30, active: true });\n ctx.db.user.insert({ id: 2, name: \"Bob\", age: 22, active: false });\n});",
- "category": "basics",
- "route_api_model": "gpt-5.2-codex",
- "scorer_details": {
- "publish_error": {
- "pass": false,
- "partial": 0.0,
- "notes": {
- "error": "spacetime publish (typescript) failed (exit=1)\n--- stderr ---\ntsc not found in node_modules. Make sure you have the `typescript` package as a dev-dependency and that your dependencies are installed.\nError: Uncaught TypeError: table2.tableDef is not a function\n\tat (D:/Development/ClockworkLabs/SpacetimeDB/SpacetimeDBPrivate/public/target/llm-runs/basics/t_009_init/typescript/server/gpt-5-2-codex/llm/node_modules/.pnpm/spacetimedb@file+..+..+..+._4e6762d0fa0af4732de585440982ec59/node_modules/spacetimedb/dist/server/index.mjs:7402:31)\n\tat SchemaInner (D:/Development/ClockworkLabs/SpacetimeDB/SpacetimeDBPrivate/public/target/llm-runs/basics/t_009_init/typescript/server/gpt-5-2-codex/llm/node_modules/.pnpm/spacetimedb@file+..+..+..+._4e6762d0fa0af4732de585440982ec59/node_modules/spacetimedb/dist/server/index.mjs:7205:23)\n\tat schema (D:/Development/ClockworkLabs/SpacetimeDB/SpacetimeDBPrivate/public/target/llm-runs/basics/t_009_init/typescript/server/gpt-5-2-codex/llm/node_modules/.pnpm/spacetimedb@file+..+..+..+._4e6762d0fa0af4732de585440982ec59/node_modules/spacetimedb/dist/server/index.mjs:7399:15)\n\tat (D:/Development/ClockworkLabs/SpacetimeDB/SpacetimeDBPrivate/public/target/llm-runs/basics/t_009_init/typescript/server/gpt-5-2-codex/llm/src/index.ts:13:21)\n\nCaused by:\n HTTP status server error (500 Internal Server Error) for url (http://127.0.0.1:63834/v1/database/basics-t-009-init-gpt-5-2-codex-llm?clear=true&host_type=Js)\n\n--- stdout ---\nBuild finished successfully.\nUploading to http://127.0.0.1:63834 => http://127.0.0.1:63834\nThis will DESTROY the current basics-t-009-init-gpt-5-2-codex-llm module, and ALL corresponding data.\nSkipping confirmation due to --yes\nPublishing module...\nJavaScript / TypeScript support is currently in BETA.\nThere may be bugs. Please file issues if you encounter any.\n\n",
- "phase": "build_or_publish"
- }
- }
- },
- "vendor": "openai"
- },
- "t_010_connect": {
- "hash": "3924da8acd3f980dd3c715b8feeec704c6d1a33c376ebb95ece2d4e0eef81093",
- "task": "t_010_connect",
- "lang": "typescript",
- "golden_published": true,
- "model_name": "GPT-5.2-Codex",
- "total_tests": 1,
- "passed_tests": 0,
- "llm_output": "import { schema, table, t } from 'spacetimedb/server';\n\nconst event = table(\n { name: 'event' },\n {\n id: t.u64().primaryKey().autoInc(),\n kind: t.string(),\n }\n);\n\nconst spacetimedb = schema({ event });\nexport default spacetimedb;\n\nexport const clientConnected = spacetimedb.clientConnected((ctx) => {\n ctx.db.event.insert({ id: 0n, kind: 'connected' });\n});\n\nexport const clientDisconnected = spacetimedb.clientDisconnected((ctx) => {\n ctx.db.event.insert({ id: 0n, kind: 'disconnected' });\n});",
- "category": "basics",
- "route_api_model": "gpt-5.2-codex",
- "scorer_details": {
- "schema_parity": {
- "pass": false,
- "partial": 0.0,
- "notes": {
- "reducers_diff": {
- "only_golden": [
- "on_connect()",
- "on_disconnect()"
- ],
- "only_llm": [
- "client_connected()",
- "client_disconnected()"
- ]
- },
- "reducers_equal": false,
- "tables_diff": null,
- "tables_equal": true
- }
- }
- },
- "vendor": "openai"
- },
- "t_011_helper_function": {
- "hash": "3924da8acd3f980dd3c715b8feeec704c6d1a33c376ebb95ece2d4e0eef81093",
- "task": "t_011_helper_function",
- "lang": "typescript",
- "golden_published": false,
- "model_name": "GPT-5.2-Codex",
- "total_tests": 3,
- "passed_tests": 0,
- "llm_output": "import { schema, table, t } from 'spacetimedb/server';\n\nconst result = table({ name: 'result' }, {\n id: t.i32().primaryKey(),\n sum: t.i32(),\n});\n\nconst spacetimedb = schema(result);\nexport default spacetimedb;\n\nfunction add(a: number, b: number): number {\n return a + b;\n}\n\nexport const computeSum = spacetimedb.reducer(\n { id: t.i32(), a: t.i32(), b: t.i32() },\n (ctx, { id, a, b }) => {\n ctx.db.result.insert({ id, sum: add(a, b) });\n }\n);",
- "category": "basics",
- "route_api_model": "gpt-5.2-codex",
- "scorer_details": {
- "publish_error": {
- "pass": false,
- "partial": 0.0,
- "notes": {
- "error": "spacetime publish (typescript) failed (exit=1)\n--- stderr ---\ntsc not found in node_modules. Make sure you have the `typescript` package as a dev-dependency and that your dependencies are installed.\nError: Uncaught TypeError: table2.tableDef is not a function\n\tat (D:/Development/ClockworkLabs/SpacetimeDB/SpacetimeDBPrivate/public/target/llm-runs/basics/t_011_helper_function/typescript/server/gpt-5-2-codex/llm/node_modules/.pnpm/spacetimedb@file+..+..+..+._4e6762d0fa0af4732de585440982ec59/node_modules/spacetimedb/dist/server/index.mjs:7402:31)\n\tat SchemaInner (D:/Development/ClockworkLabs/SpacetimeDB/SpacetimeDBPrivate/public/target/llm-runs/basics/t_011_helper_function/typescript/server/gpt-5-2-codex/llm/node_modules/.pnpm/spacetimedb@file+..+..+..+._4e6762d0fa0af4732de585440982ec59/node_modules/spacetimedb/dist/server/index.mjs:7205:23)\n\tat schema (D:/Development/ClockworkLabs/SpacetimeDB/SpacetimeDBPrivate/public/target/llm-runs/basics/t_011_helper_function/typescript/server/gpt-5-2-codex/llm/node_modules/.pnpm/spacetimedb@file+..+..+..+._4e6762d0fa0af4732de585440982ec59/node_modules/spacetimedb/dist/server/index.mjs:7399:15)\n\tat (D:/Development/ClockworkLabs/SpacetimeDB/SpacetimeDBPrivate/public/target/llm-runs/basics/t_011_helper_function/typescript/server/gpt-5-2-codex/llm/src/index.ts:8:21)\n\nCaused by:\n HTTP status server error (500 Internal Server Error) for url (http://127.0.0.1:63834/v1/database/basics-t-011-helper-function-gpt-5-2-codex-llm?clear=true&host_type=Js)\n\n--- stdout ---\nBuild finished successfully.\nUploading to http://127.0.0.1:63834 => http://127.0.0.1:63834\nThis will DESTROY the current basics-t-011-helper-function-gpt-5-2-codex-llm module, and ALL corresponding data.\nSkipping confirmation due to --yes\nPublishing module...\nJavaScript / TypeScript support is currently in BETA.\nThere may be bugs. Please file issues if you encounter any.\n\n",
- "phase": "build_or_publish"
- }
- }
- },
- "vendor": "openai"
- },
- "t_012_spacetime_product_type": {
- "hash": "f0986524ee7bda1802573e7e4794bd56933365fb35e4af7c830014214cb8ec77",
- "task": "t_012_spacetime_product_type",
- "lang": "typescript",
- "golden_published": true,
- "model_name": "GPT-5.2-Codex",
- "total_tests": 3,
- "passed_tests": 3,
- "category": "schema",
- "route_api_model": "gpt-5.2-codex",
- "scorer_details": {
- "product_type_row_count": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "actual": 1,
- "expected": 1,
- "sql": "SELECT COUNT(*) AS n FROM result WHERE id=1"
- }
- },
- "schema_parity": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "reducers_diff": null,
- "reducers_equal": true,
- "tables_diff": null,
- "tables_equal": true
- }
- },
- "product_type_row_parity": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "args": [
- 1,
- 2,
- 3
- ],
- "golden_out": "id | value ----+----------------------- 1 | (left = 2, right = 3)",
- "llm_out": "id | value ----+----------------------- 1 | (left = 2, right = 3)",
- "query": "SELECT id, value FROM result WHERE id=1",
- "reducer": "set_score"
- }
- }
- },
- "vendor": "openai"
- },
- "t_013_spacetime_sum_type": {
- "hash": "f0986524ee7bda1802573e7e4794bd56933365fb35e4af7c830014214cb8ec77",
- "task": "t_013_spacetime_sum_type",
- "lang": "typescript",
- "golden_published": true,
- "model_name": "GPT-5.2-Codex",
- "total_tests": 3,
- "passed_tests": 1,
- "llm_output": "import { schema, table, t } from 'spacetimedb/server';\n\nconst Rect = t.object('Rect', {\n width: t.i32(),\n height: t.i32(),\n});\n\nconst Shape = t.enum('Shape', {\n circle: t.i32(),\n rectangle: Rect,\n});\n\nconst result = table(\n { name: 'result' },\n {\n id: t.i32().primaryKey(),\n value: Shape,\n }\n);\n\nconst spacetimedb = schema({ result });\nexport default spacetimedb;\n\nexport const setCircle = spacetimedb.reducer(\n { id: t.i32(), radius: t.i32() },\n (ctx, { id, radius }) => {\n ctx.db.result.insert({\n id,\n value: { tag: 'circle', value: radius },\n });\n }\n);",
- "category": "schema",
- "route_api_model": "gpt-5.2-codex",
- "scorer_details": {
- "schema_parity": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "reducers_diff": null,
- "reducers_equal": true,
- "tables_diff": null,
- "tables_equal": true
- }
- },
- "sum_type_row_parity": {
- "pass": false,
- "partial": 0.0,
- "notes": {
- "error": "spacetime call failed:\nWARNING: This command is UNSTABLE and subject to breaking changes.\n\nError: Response text: The instance encountered a fatal error.\n\nCaused by:\n HTTP status server error (530 ) for url (http://127.0.0.1:54010/v1/database/c200acddbfdc9d5afa3818ca12ddf8b0bdff3fed74bb6575dae9acc9c5c48279/call/set_circle)\n",
- "phase": "call_reducer_golden"
- }
- },
- "sum_type_row_count": {
- "pass": false,
- "partial": 0.0,
- "notes": {
- "actual": 0,
- "expected": 1,
- "sql": "SELECT COUNT(*) AS n FROM result WHERE id=1"
- }
- }
- },
- "vendor": "openai"
- },
- "t_014_elementary_columns": {
- "hash": "f0986524ee7bda1802573e7e4794bd56933365fb35e4af7c830014214cb8ec77",
- "task": "t_014_elementary_columns",
- "lang": "typescript",
- "golden_published": true,
- "model_name": "GPT-5.2-Codex",
- "total_tests": 3,
- "passed_tests": 3,
- "category": "schema",
- "route_api_model": "gpt-5.2-codex",
- "scorer_details": {
- "schema_parity": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "reducers_diff": null,
- "reducers_equal": true,
- "tables_diff": null,
- "tables_equal": true
- }
- },
- "elementary_columns_row_parity": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "args": [],
- "golden_out": "id | count | total | price | ratio | active | name ----+-------+------------+-------+-------+--------+--------- 1 | 2 | 3000000000 | 1.5 | 2.25 | true | \"Alice\"",
- "llm_out": "id | count | total | price | ratio | active | name ----+-------+------------+-------+-------+--------+--------- 1 | 2 | 3000000000 | 1.5 | 2.25 | true | \"Alice\"",
- "query": "SELECT id, count, total, price, ratio, active, name FROM primitive WHERE id=1",
- "reducer": "seed"
- }
- },
- "elementary_columns_row_count": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "actual": 1,
- "expected": 1,
- "sql": "SELECT COUNT(*) AS n FROM primitive WHERE id=1"
- }
- }
- },
- "vendor": "openai"
- },
- "t_015_product_type_columns": {
- "hash": "f0986524ee7bda1802573e7e4794bd56933365fb35e4af7c830014214cb8ec77",
- "task": "t_015_product_type_columns",
- "lang": "typescript",
- "golden_published": true,
- "model_name": "GPT-5.2-Codex",
- "total_tests": 3,
- "passed_tests": 3,
- "category": "schema",
- "route_api_model": "gpt-5.2-codex",
- "scorer_details": {
- "product_type_columns_row_parity": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "args": [],
- "golden_out": "id | home | work | pos ----+----------------------------------+-----------------------------------+---------------- 1 | (street = \"1 Main\", zip = 11111) | (street = \"2 Broad\", zip = 22222) | (x = 7, y = 9)",
- "llm_out": "id | home | work | pos ----+----------------------------------+-----------------------------------+---------------- 1 | (street = \"1 Main\", zip = 11111) | (street = \"2 Broad\", zip = 22222) | (x = 7, y = 9)",
- "query": "SELECT id, home, work, pos FROM profile WHERE id=1",
- "reducer": "seed"
- }
- },
- "schema_parity": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "reducers_diff": null,
- "reducers_equal": true,
- "tables_diff": null,
- "tables_equal": true
- }
- },
- "product_type_columns_row_count": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "actual": 1,
- "expected": 1,
- "sql": "SELECT COUNT(*) AS n FROM profile WHERE id=1"
- }
- }
- },
- "vendor": "openai"
- },
- "t_016_sum_type_columns": {
- "hash": "f0986524ee7bda1802573e7e4794bd56933365fb35e4af7c830014214cb8ec77",
- "task": "t_016_sum_type_columns",
- "lang": "typescript",
- "golden_published": true,
- "model_name": "GPT-5.2-Codex",
- "total_tests": 3,
- "passed_tests": 1,
- "llm_output": "import { schema, table, t } from 'spacetimedb/server';\n\nconst Rect = t.object('Rect', {\n width: t.i32(),\n height: t.i32(),\n});\n\nconst Shape = t.enum('Shape', {\n circle: t.i32(),\n rectangle: Rect,\n});\n\nconst drawing = table(\n { name: 'drawing' },\n {\n id: t.i32().primaryKey(),\n a: Shape,\n b: Shape,\n }\n);\n\nconst spacetimedb = schema({ drawing });\nexport default spacetimedb;\n\nexport const seed = spacetimedb.reducer((ctx) => {\n ctx.db.drawing.insert({\n id: 1,\n a: { tag: 'circle', value: 10 },\n b: { tag: 'rectangle', value: { width: 4, height: 6 } },\n });\n});",
- "category": "schema",
- "route_api_model": "gpt-5.2-codex",
- "scorer_details": {
- "sum_type_columns_row_parity": {
- "pass": false,
- "partial": 0.0,
- "notes": {
- "error": "spacetime call failed:\nWARNING: This command is UNSTABLE and subject to breaking changes.\n\nError: Response text: The instance encountered a fatal error.\n\nCaused by:\n HTTP status server error (530 ) for url (http://127.0.0.1:54010/v1/database/c2008f58a39bd092f7ca474551f460eaa1669c8aeca334be93da2661ea290e2d/call/seed)\n",
- "phase": "call_reducer_golden"
- }
- },
- "schema_parity": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "reducers_diff": null,
- "reducers_equal": true,
- "tables_diff": null,
- "tables_equal": true
- }
- },
- "sum_type_columns_row_count": {
- "pass": false,
- "partial": 0.0,
- "notes": {
- "actual": 0,
- "expected": 1,
- "sql": "SELECT COUNT(*) AS n FROM drawing WHERE id=1"
- }
- }
- },
- "vendor": "openai"
- },
- "t_017_scheduled_columns": {
- "hash": "f0986524ee7bda1802573e7e4794bd56933365fb35e4af7c830014214cb8ec77",
- "task": "t_017_scheduled_columns",
- "lang": "typescript",
- "golden_published": false,
- "model_name": "GPT-5.2-Codex",
- "total_tests": 2,
- "passed_tests": 0,
- "llm_output": "import { schema, table, t } from 'spacetimedb/server';\nimport { ScheduleAt } from 'spacetimedb';\n\nconst tickTimer = table(\n { name: 'tickTimer', scheduled: () => tick },\n {\n scheduledId: t.u64().primaryKey().autoInc(),\n scheduledAt: t.scheduleAt(),\n }\n);\n\nconst spacetimedb = schema(tickTimer);\nexport default spacetimedb;\n\nexport const tick = spacetimedb.reducer({ arg: tickTimer.rowType }, (_ctx, { arg }) => {\n void arg;\n});\n\nexport const init = spacetimedb.init(ctx => {\n ctx.db.tickTimer.insert({\n scheduledId: 0n,\n scheduledAt: ScheduleAt.interval(50_000n),\n });\n});",
- "category": "schema",
- "route_api_model": "gpt-5.2-codex",
- "scorer_details": {
- "publish_error": {
- "pass": false,
- "partial": 0.0,
- "notes": {
- "error": "spacetime publish (typescript) failed (exit=1)\n--- stderr ---\ntsc not found in node_modules. Make sure you have the `typescript` package as a dev-dependency and that your dependencies are installed.\nError: Uncaught TypeError: table2.tableDef is not a function\n\tat (D:/Development/ClockworkLabs/SpacetimeDB/SpacetimeDBPrivate/public/target/llm-runs/schema/t_017_scheduled_columns/typescript/server/gpt-5-2-codex/llm/node_modules/.pnpm/spacetimedb@file+..+..+..+._4e6762d0fa0af4732de585440982ec59/node_modules/spacetimedb/dist/server/index.mjs:7402:31)\n\tat SchemaInner (D:/Development/ClockworkLabs/SpacetimeDB/SpacetimeDBPrivate/public/target/llm-runs/schema/t_017_scheduled_columns/typescript/server/gpt-5-2-codex/llm/node_modules/.pnpm/spacetimedb@file+..+..+..+._4e6762d0fa0af4732de585440982ec59/node_modules/spacetimedb/dist/server/index.mjs:7205:23)\n\tat schema (D:/Development/ClockworkLabs/SpacetimeDB/SpacetimeDBPrivate/public/target/llm-runs/schema/t_017_scheduled_columns/typescript/server/gpt-5-2-codex/llm/node_modules/.pnpm/spacetimedb@file+..+..+..+._4e6762d0fa0af4732de585440982ec59/node_modules/spacetimedb/dist/server/index.mjs:7399:15)\n\tat (D:/Development/ClockworkLabs/SpacetimeDB/SpacetimeDBPrivate/public/target/llm-runs/schema/t_017_scheduled_columns/typescript/server/gpt-5-2-codex/llm/src/index.ts:12:21)\n\nCaused by:\n HTTP status server error (500 Internal Server Error) for url (http://127.0.0.1:54010/v1/database/schema-t-017-scheduled-columns-gpt-5-2-codex-llm?clear=true&host_type=Js)\n\n--- stdout ---\nBuild finished successfully.\nUploading to http://127.0.0.1:54010 => http://127.0.0.1:54010\nThis will DESTROY the current schema-t-017-scheduled-columns-gpt-5-2-codex-llm module, and ALL corresponding data.\nSkipping confirmation due to --yes\nPublishing module...\nJavaScript / TypeScript support is currently in BETA.\nThere may be bugs. Please file issues if you encounter any.\n\n",
- "phase": "build_or_publish"
- }
- }
- },
- "vendor": "openai"
- },
- "t_018_constraints": {
- "hash": "f0986524ee7bda1802573e7e4794bd56933365fb35e4af7c830014214cb8ec77",
- "task": "t_018_constraints",
- "lang": "typescript",
- "golden_published": true,
- "model_name": "GPT-5.2-Codex",
- "total_tests": 3,
- "passed_tests": 3,
- "category": "schema",
- "route_api_model": "gpt-5.2-codex",
- "scorer_details": {
- "schema_parity": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "reducers_diff": null,
- "reducers_equal": true,
- "tables_diff": null,
- "tables_equal": true
- }
- },
- "constraints_row_parity_after_seed": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "args": [],
- "golden_out": "id | email | name ----+-----------------+--------- 1 | \"a@example.com\" | \"Alice\"",
- "llm_out": "id | email | name ----+-----------------+--------- 1 | \"a@example.com\" | \"Alice\"",
- "query": "SELECT id, email, name FROM account WHERE id=1",
- "reducer": "seed"
- }
- },
- "constraints_seed_two_rows": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "actual": 1,
- "expected": 1,
- "sql": "SELECT COUNT(*) AS n FROM account WHERE id=2"
- }
- }
- },
- "vendor": "openai"
- },
- "t_019_many_to_many": {
- "hash": "f0986524ee7bda1802573e7e4794bd56933365fb35e4af7c830014214cb8ec77",
- "task": "t_019_many_to_many",
- "lang": "typescript",
- "golden_published": true,
- "model_name": "GPT-5.2-Codex",
- "total_tests": 5,
- "passed_tests": 5,
- "category": "schema",
- "route_api_model": "gpt-5.2-codex",
- "scorer_details": {
- "m2m_has_1_20": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "actual": 1,
- "expected": 1,
- "sql": "SELECT COUNT(*) AS n FROM membership WHERE userId=1 AND groupId=20"
- }
- },
- "m2m_has_2_20": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "actual": 1,
- "expected": 1,
- "sql": "SELECT COUNT(*) AS n FROM membership WHERE userId=2 AND groupId=20"
- }
- },
- "schema_parity": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "reducers_diff": null,
- "reducers_equal": true,
- "tables_diff": null,
- "tables_equal": true
- }
- },
- "m2m_has_1_10": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "actual": 1,
- "expected": 1,
- "sql": "SELECT COUNT(*) AS n FROM membership WHERE userId=1 AND groupId=10"
- }
- },
- "memberships_three_rows": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "actual": 3,
- "expected": 3,
- "sql": "SELECT COUNT(*) AS n FROM membership"
- }
- }
- },
- "vendor": "openai"
- },
- "t_020_ecs": {
- "hash": "f0986524ee7bda1802573e7e4794bd56933365fb35e4af7c830014214cb8ec77",
- "task": "t_020_ecs",
- "lang": "typescript",
- "golden_published": true,
- "model_name": "GPT-5.2-Codex",
- "total_tests": 5,
- "passed_tests": 5,
- "category": "schema",
- "route_api_model": "gpt-5.2-codex",
- "scorer_details": {
- "ecs_next_pos_entity2": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "actual": 1,
- "expected": 1,
- "sql": "SELECT COUNT(*) AS n FROM nextPosition WHERE entityId=2 AND x=8 AND y=3"
- }
- },
- "ecs_next_pos_entity1": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "actual": 1,
- "expected": 1,
- "sql": "SELECT COUNT(*) AS n FROM nextPosition WHERE entityId=1 AND x=1 AND y=0"
- }
- },
- "ecs_seed_position_count": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "actual": 2,
- "expected": 2,
- "sql": "SELECT COUNT(*) AS n FROM position"
- }
- },
- "schema_parity": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "reducers_diff": null,
- "reducers_equal": true,
- "tables_diff": null,
- "tables_equal": true
- }
- },
- "ecs_step_next_position_count": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "actual": 2,
- "expected": 2,
- "sql": "SELECT COUNT(*) AS n FROM nextPosition"
- }
- }
- },
- "vendor": "openai"
- },
- "t_021_multi_column_index": {
- "hash": "f0986524ee7bda1802573e7e4794bd56933365fb35e4af7c830014214cb8ec77",
- "task": "t_021_multi_column_index",
- "lang": "typescript",
- "golden_published": true,
- "model_name": "GPT-5.2-Codex",
- "total_tests": 4,
- "passed_tests": 4,
- "category": "schema",
- "route_api_model": "gpt-5.2-codex",
- "scorer_details": {
- "mcindex_seed_count": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "actual": 3,
- "expected": 3,
- "sql": "SELECT COUNT(*) AS n FROM log"
- }
- },
- "mcindex_lookup_u7_d1": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "actual": 1,
- "expected": 1,
- "sql": "SELECT COUNT(*) AS n FROM log WHERE userId=7 AND day=1"
- }
- },
- "schema_parity": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "reducers_diff": null,
- "reducers_equal": true,
- "tables_diff": null,
- "tables_equal": true
- }
- },
- "mcindex_lookup_u7_d2": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "actual": 1,
- "expected": 1,
- "sql": "SELECT COUNT(*) AS n FROM log WHERE userId=7 AND day=2"
- }
- }
- },
- "vendor": "openai"
- }
- }
- },
- {
- "name": "GPT-5-mini",
- "route_api_model": "gpt-5-mini",
- "tasks": {
- "t_000_empty_reducers": {
- "hash": "c73ba5b8e7438d32e18e96f9ab86c5b8ae2f31d1d614fe8db4abd098176840b0",
- "task": "t_000_empty_reducers",
- "lang": "typescript",
- "golden_published": true,
- "model_name": "GPT-5-mini",
- "total_tests": 1,
- "passed_tests": 1,
- "category": "basics",
- "route_api_model": "gpt-5-mini",
- "scorer_details": {
- "schema_parity": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "reducers_diff": null,
- "reducers_equal": true,
- "tables_diff": null,
- "tables_equal": true
- }
- }
- },
- "vendor": "openai"
- },
- "t_001_basic_tables": {
- "hash": "c73ba5b8e7438d32e18e96f9ab86c5b8ae2f31d1d614fe8db4abd098176840b0",
- "task": "t_001_basic_tables",
- "lang": "typescript",
- "golden_published": true,
- "model_name": "GPT-5-mini",
- "total_tests": 1,
- "passed_tests": 1,
- "category": "basics",
- "route_api_model": "gpt-5-mini",
- "scorer_details": {
- "schema_parity": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "reducers_diff": null,
- "reducers_equal": true,
- "tables_diff": null,
- "tables_equal": true
- }
- }
- },
- "vendor": "openai"
- },
- "t_002_scheduled_table": {
- "hash": "c73ba5b8e7438d32e18e96f9ab86c5b8ae2f31d1d614fe8db4abd098176840b0",
- "task": "t_002_scheduled_table",
- "lang": "typescript",
- "golden_published": false,
- "model_name": "GPT-5-mini",
- "total_tests": 1,
- "passed_tests": 0,
- "llm_output": "import { schema, table, t } from 'spacetimedb/server';\nimport { ScheduleAt } from 'spacetimedb';\n\nconst tickTimer = table(\n { scheduled: 'tick' },\n {\n scheduledId: t.u64().primaryKey().autoInc(),\n scheduledAt: t.scheduleAt(),\n }\n);\n\nconst spacetimedb = schema({ tickTimer });\nexport default spacetimedb;\n\nexport const tick = spacetimedb.reducer(tickTimer.rowType, (ctx, timer) => {\n // Scheduled tick; perform periodic work here.\n console.info('tick at', ctx.timestamp);\n});\n\nexport const init = spacetimedb.init((ctx) => {\n if (ctx.db.tickTimer.count() === 0) {\n ctx.db.tickTimer.insert({\n scheduledId: 0n,\n scheduledAt: ScheduleAt.interval(50_000n),\n });\n }\n});",
- "category": "basics",
- "route_api_model": "gpt-5-mini",
- "scorer_details": {
- "publish_error": {
- "pass": false,
- "partial": 0.0,
- "notes": {
- "error": "spacetime publish (typescript) failed (exit=1)\n--- stderr ---\ntsc not found in node_modules. Make sure you have the `typescript` package as a dev-dependency and that your dependencies are installed.\nError: Uncaught TypeError: reducer is not a function\n\tat resolveSchedules (D:/Development/ClockworkLabs/SpacetimeDB/SpacetimeDBPrivate/public/target/llm-runs/basics/t_002_scheduled_table/typescript/server/gpt-5-mini/llm/node_modules/.pnpm/spacetimedb@file+..+..+..+._4e6762d0fa0af4732de585440982ec59/node_modules/spacetimedb/dist/server/index.mjs:7217:53)\n\tat [SpacetimeDB.moduleHooks.v2] (D:/Development/ClockworkLabs/SpacetimeDB/SpacetimeDBPrivate/public/target/llm-runs/basics/t_002_scheduled_table/typescript/server/gpt-5-mini/llm/node_modules/.pnpm/spacetimedb@file+..+..+..+._4e6762d0fa0af4732de585440982ec59/node_modules/spacetimedb/dist/server/index.mjs:7248:22)\n\nCaused by:\n HTTP status server error (500 Internal Server Error) for url (http://127.0.0.1:54039/v1/database/basics-t-002-scheduled-table-gpt-5-mini-llm?clear=true&host_type=Js)\n\n--- stdout ---\nBuild finished successfully.\nUploading to http://127.0.0.1:54039 => http://127.0.0.1:54039\nThis will DESTROY the current basics-t-002-scheduled-table-gpt-5-mini-llm module, and ALL corresponding data.\nSkipping confirmation due to --yes\nPublishing module...\nJavaScript / TypeScript support is currently in BETA.\nThere may be bugs. Please file issues if you encounter any.\n\n",
- "phase": "build_or_publish"
- }
- }
- },
- "vendor": "openai"
- },
- "t_003_struct_in_table": {
- "hash": "c73ba5b8e7438d32e18e96f9ab86c5b8ae2f31d1d614fe8db4abd098176840b0",
- "task": "t_003_struct_in_table",
- "lang": "typescript",
- "golden_published": true,
- "model_name": "GPT-5-mini",
- "total_tests": 1,
- "passed_tests": 1,
- "category": "basics",
- "route_api_model": "gpt-5-mini",
- "scorer_details": {
- "schema_parity": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "reducers_diff": null,
- "reducers_equal": true,
- "tables_diff": null,
- "tables_equal": true
- }
- }
- },
- "vendor": "openai"
- },
- "t_004_insert": {
- "hash": "c73ba5b8e7438d32e18e96f9ab86c5b8ae2f31d1d614fe8db4abd098176840b0",
- "task": "t_004_insert",
- "lang": "typescript",
- "golden_published": true,
- "model_name": "GPT-5-mini",
- "total_tests": 2,
- "passed_tests": 2,
- "category": "basics",
- "route_api_model": "gpt-5-mini",
- "scorer_details": {
- "schema_parity": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "reducers_diff": null,
- "reducers_equal": true,
- "tables_diff": null,
- "tables_equal": true
- }
- },
- "data_parity_insert_user": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "args": [
- 1,
- "Alice",
- 30,
- true
- ],
- "golden_out": "id | name | age | active ----+---------+-----+-------- 1 | \"Alice\" | 30 | true",
- "llm_out": "id | name | age | active ----+---------+-----+-------- 1 | \"Alice\" | 30 | true",
- "query": "SELECT id, name, age, active FROM user WHERE id=1",
- "reducer": "insert_user"
- }
- }
- },
- "vendor": "openai"
- },
- "t_005_update": {
- "hash": "c73ba5b8e7438d32e18e96f9ab86c5b8ae2f31d1d614fe8db4abd098176840b0",
- "task": "t_005_update",
- "lang": "typescript",
- "golden_published": true,
- "model_name": "GPT-5-mini",
- "total_tests": 3,
- "passed_tests": 3,
- "category": "basics",
- "route_api_model": "gpt-5-mini",
- "scorer_details": {
- "data_parity_update_user": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "args": [
- 1,
- "Alice2",
- 31,
- false
- ],
- "golden_out": "id | name | age | active ----+----------+-----+-------- 1 | \"Alice2\" | 31 | false",
- "llm_out": "id | name | age | active ----+----------+-----+-------- 1 | \"Alice2\" | 31 | false",
- "query": "SELECT id, name, age, active FROM user WHERE id=1",
- "reducer": "update_user"
- }
- },
- "schema_parity": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "reducers_diff": null,
- "reducers_equal": true,
- "tables_diff": null,
- "tables_equal": true
- }
- },
- "seed_users_row": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "sql": "INSERT INTO user(id, name, age, active) VALUES (1, 'Alice', 30, true)"
- }
- }
- },
- "vendor": "openai"
- },
- "t_006_delete": {
- "hash": "c73ba5b8e7438d32e18e96f9ab86c5b8ae2f31d1d614fe8db4abd098176840b0",
- "task": "t_006_delete",
- "lang": "typescript",
- "golden_published": true,
- "model_name": "GPT-5-mini",
- "total_tests": 3,
- "passed_tests": 3,
- "category": "basics",
- "route_api_model": "gpt-5-mini",
- "scorer_details": {
- "schema_parity": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "reducers_diff": null,
- "reducers_equal": true,
- "tables_diff": null,
- "tables_equal": true
- }
- },
- "seed_users_row": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "sql": "INSERT INTO user(id, name, age, active) VALUES (1, 'Alice', 30, true)"
- }
- },
- "delete_user_count_zero": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "actual": 0,
- "expected": 0,
- "sql": "SELECT COUNT(*) AS n FROM user WHERE id=1"
- }
- }
- },
- "vendor": "openai"
- },
- "t_007_crud": {
- "hash": "c73ba5b8e7438d32e18e96f9ab86c5b8ae2f31d1d614fe8db4abd098176840b0",
- "task": "t_007_crud",
- "lang": "typescript",
- "golden_published": true,
- "model_name": "GPT-5-mini",
- "total_tests": 4,
- "passed_tests": 4,
- "category": "basics",
- "route_api_model": "gpt-5-mini",
- "scorer_details": {
- "crud_row_id2_deleted": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "actual": 0,
- "expected": 0,
- "sql": "SELECT COUNT(*) AS n FROM user WHERE id=2"
- }
- },
- "schema_parity": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "reducers_diff": null,
- "reducers_equal": true,
- "tables_diff": null,
- "tables_equal": true
- }
- },
- "crud_row_id1_parity": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "args": [],
- "golden_out": "id | name | age | active ----+----------+-----+-------- 1 | \"Alice2\" | 31 | false",
- "llm_out": "id | name | age | active ----+----------+-----+-------- 1 | \"Alice2\" | 31 | false",
- "query": "SELECT id, name, age, active FROM user WHERE id=1",
- "reducer": "crud"
- }
- },
- "crud_total_count_one": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "actual": 1,
- "expected": 1,
- "sql": "SELECT COUNT(*) AS n FROM user"
- }
- }
- },
- "vendor": "openai"
- },
- "t_008_index_lookup": {
- "hash": "c73ba5b8e7438d32e18e96f9ab86c5b8ae2f31d1d614fe8db4abd098176840b0",
- "task": "t_008_index_lookup",
- "lang": "typescript",
- "golden_published": true,
- "model_name": "GPT-5-mini",
- "total_tests": 3,
- "passed_tests": 3,
- "category": "basics",
- "route_api_model": "gpt-5-mini",
- "scorer_details": {
- "index_lookup_projection_parity": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "args": [
- 1
- ],
- "golden_out": "id | name ----+--------- 1 | \"Alice\"",
- "llm_out": "id | name ----+--------- 1 | \"Alice\"",
- "query": "SELECT id, name FROM result WHERE id=1",
- "reducer": "lookup_user_name"
- }
- },
- "schema_parity": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "reducers_diff": null,
- "reducers_equal": true,
- "tables_diff": null,
- "tables_equal": true
- }
- },
- "seed_user_row": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "sql": "INSERT INTO user(id, name, age, active) VALUES (1, 'Alice', 30, true)"
- }
- }
- },
- "vendor": "openai"
- },
- "t_009_init": {
- "hash": "c73ba5b8e7438d32e18e96f9ab86c5b8ae2f31d1d614fe8db4abd098176840b0",
- "task": "t_009_init",
- "lang": "typescript",
- "golden_published": true,
- "model_name": "GPT-5-mini",
- "total_tests": 4,
- "passed_tests": 4,
- "category": "basics",
- "route_api_model": "gpt-5-mini",
- "scorer_details": {
- "init_seed_alice": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "actual": 1,
- "expected": 1,
- "sql": "SELECT COUNT(*) AS n FROM user WHERE id=1 AND name='Alice' AND age=30 AND active=true"
- }
- },
- "init_total_two": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "actual": 2,
- "expected": 2,
- "sql": "SELECT COUNT(*) AS n FROM user"
- }
- },
- "schema_parity": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "reducers_diff": null,
- "reducers_equal": true,
- "tables_diff": null,
- "tables_equal": true
- }
- },
- "init_seed_bob": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "actual": 1,
- "expected": 1,
- "sql": "SELECT COUNT(*) AS n FROM user WHERE id=2 AND name='Bob' AND age=22 AND active=false"
- }
- }
- },
- "vendor": "openai"
- },
- "t_010_connect": {
- "hash": "c73ba5b8e7438d32e18e96f9ab86c5b8ae2f31d1d614fe8db4abd098176840b0",
- "task": "t_010_connect",
- "lang": "typescript",
- "golden_published": true,
- "model_name": "GPT-5-mini",
- "total_tests": 1,
- "passed_tests": 0,
- "llm_output": "import { schema, table, t } from 'spacetimedb/server';\n\nconst event = table(\n { public: true },\n {\n id: t.u64().primaryKey().autoInc(),\n kind: t.string(),\n }\n);\n\nconst spacetimedb = schema({ event });\nexport default spacetimedb;\n\nexport const clientConnected = spacetimedb.clientConnected((ctx) => {\n ctx.db.event.insert({\n id: 0n,\n kind: \"connected\",\n });\n});\n\nexport const clientDisconnected = spacetimedb.clientDisconnected((ctx) => {\n ctx.db.event.insert({\n id: 0n,\n kind: \"disconnected\",\n });\n});",
- "category": "basics",
- "route_api_model": "gpt-5-mini",
- "scorer_details": {
- "schema_parity": {
- "pass": false,
- "partial": 0.0,
- "notes": {
- "reducers_diff": {
- "only_golden": [
- "on_connect()",
- "on_disconnect()"
- ],
- "only_llm": [
- "client_connected()",
- "client_disconnected()"
- ]
- },
- "reducers_equal": false,
- "tables_diff": null,
- "tables_equal": true
- }
- }
- },
- "vendor": "openai"
- },
- "t_011_helper_function": {
- "hash": "c73ba5b8e7438d32e18e96f9ab86c5b8ae2f31d1d614fe8db4abd098176840b0",
- "task": "t_011_helper_function",
- "lang": "typescript",
- "golden_published": true,
- "model_name": "GPT-5-mini",
- "total_tests": 3,
- "passed_tests": 3,
- "category": "basics",
- "route_api_model": "gpt-5-mini",
- "scorer_details": {
- "helper_func_sum_parity": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "args": [
- 1,
- 2,
- 3
- ],
- "golden_out": "id | sum ----+----- 1 | 5",
- "llm_out": "id | sum ----+----- 1 | 5",
- "query": "SELECT id, sum FROM result WHERE id=1",
- "reducer": "compute_sum"
- }
- },
- "schema_parity": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "reducers_diff": null,
- "reducers_equal": true,
- "tables_diff": null,
- "tables_equal": true
- }
- },
- "helper_func_sum_abs": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "actual": 1,
- "expected": 1,
- "sql": "SELECT COUNT(*) AS n FROM result WHERE id=1 AND sum=5"
- }
- }
- },
- "vendor": "openai"
- },
- "t_012_spacetime_product_type": {
- "hash": "c73ba5b8e7438d32e18e96f9ab86c5b8ae2f31d1d614fe8db4abd098176840b0",
- "task": "t_012_spacetime_product_type",
- "lang": "typescript",
- "golden_published": false,
- "model_name": "GPT-5-mini",
- "total_tests": 3,
- "passed_tests": 0,
- "llm_output": "import { schema, table, t } from 'spacetimedb/server';\n\nexport const Score = t.object('Score', {\n left: t.i32(),\n right: t.i32(),\n});\n\nconst result = table(\n { name: 'result' },\n {\n id: t.i32().primaryKey(),\n value: Score,\n }\n);\n\nconst spacetimedb = schema({ result });\nexport default spacetimedb;\n\nexport const setScore = spacetimedb.reducer(\n { id: t.i32(), left: t.i32(), right: t.i32() },\n (ctx, { id, left, right }) => {\n ctx.db.result.insert({\n id,\n value: { left, right },\n });\n }\n);",
- "category": "schema",
- "route_api_model": "gpt-5-mini",
- "scorer_details": {
- "publish_error": {
- "pass": false,
- "partial": 0.0,
- "notes": {
- "error": "spacetime publish (typescript) failed (exit=1)\n--- stderr ---\ntsc not found in node_modules. Make sure you have the `typescript` package as a dev-dependency and that your dependencies are installed.\nError: Uncaught TypeError: exporting something that is not a spacetime export\n\tat [SpacetimeDB.moduleHooks.v2] (D:/Development/ClockworkLabs/SpacetimeDB/SpacetimeDBPrivate/public/target/llm-runs/schema/t_012_spacetime_product_type/typescript/server/gpt-5-mini/llm/node_modules/.pnpm/spacetimedb@file+..+..+..+._4e6762d0fa0af4732de585440982ec59/node_modules/spacetimedb/dist/server/index.mjs:7241:15)\n\nCaused by:\n HTTP status server error (500 Internal Server Error) for url (http://127.0.0.1:54039/v1/database/schema-t-012-spacetime-product-type-gpt-5-mini-llm?clear=true&host_type=Js)\n\n--- stdout ---\nBuild finished successfully.\nUploading to http://127.0.0.1:54039 => http://127.0.0.1:54039\nThis will DESTROY the current schema-t-012-spacetime-product-type-gpt-5-mini-llm module, and ALL corresponding data.\nSkipping confirmation due to --yes\nPublishing module...\nJavaScript / TypeScript support is currently in BETA.\nThere may be bugs. Please file issues if you encounter any.\n\n",
- "phase": "build_or_publish"
- }
- }
- },
- "vendor": "openai"
- },
- "t_013_spacetime_sum_type": {
- "hash": "c73ba5b8e7438d32e18e96f9ab86c5b8ae2f31d1d614fe8db4abd098176840b0",
- "task": "t_013_spacetime_sum_type",
- "lang": "typescript",
- "golden_published": true,
- "model_name": "GPT-5-mini",
- "total_tests": 3,
- "passed_tests": 1,
- "llm_output": "import { schema, table, t } from 'spacetimedb/server';\n\nconst Rect = t.object('Rect', {\n width: t.i32(),\n height: t.i32(),\n});\n\nconst Shape = t.enum('Shape', {\n circle: t.i32(),\n rectangle: Rect,\n});\n\nconst result = table(\n { name: 'result', public: true },\n {\n id: t.i32().primaryKey(),\n value: Shape,\n }\n);\n\nconst spacetimedb = schema({ result });\nexport default spacetimedb;\n\nexport const setCircle = spacetimedb.reducer({ id: t.i32(), radius: t.i32() }, (ctx, { id, radius }) => {\n ctx.db.result.insert({\n id,\n value: { circle: radius },\n });\n});",
- "category": "schema",
- "route_api_model": "gpt-5-mini",
- "scorer_details": {
- "schema_parity": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "reducers_diff": null,
- "reducers_equal": true,
- "tables_diff": null,
- "tables_equal": true
- }
- },
- "sum_type_row_parity": {
- "pass": false,
- "partial": 0.0,
- "notes": {
- "error": "spacetime call failed:\nWARNING: This command is UNSTABLE and subject to breaking changes.\n\nError: Response text: The instance encountered a fatal error.\n\nCaused by:\n HTTP status server error (530 ) for url (http://127.0.0.1:54039/v1/database/c200bb2648b6b24a98f1c2c1814fcdf7b12362142249436f950bc3656912d9bd/call/set_circle)\n",
- "phase": "call_reducer_golden"
- }
- },
- "sum_type_row_count": {
- "pass": false,
- "partial": 0.0,
- "notes": {
- "actual": 0,
- "expected": 1,
- "sql": "SELECT COUNT(*) AS n FROM result WHERE id=1"
- }
- }
- },
- "vendor": "openai"
- },
- "t_014_elementary_columns": {
- "hash": "c73ba5b8e7438d32e18e96f9ab86c5b8ae2f31d1d614fe8db4abd098176840b0",
- "task": "t_014_elementary_columns",
- "lang": "typescript",
- "golden_published": true,
- "model_name": "GPT-5-mini",
- "total_tests": 3,
- "passed_tests": 3,
- "category": "schema",
- "route_api_model": "gpt-5-mini",
- "scorer_details": {
- "schema_parity": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "reducers_diff": null,
- "reducers_equal": true,
- "tables_diff": null,
- "tables_equal": true
- }
- },
- "elementary_columns_row_parity": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "args": [],
- "golden_out": "id | count | total | price | ratio | active | name ----+-------+------------+-------+-------+--------+--------- 1 | 2 | 3000000000 | 1.5 | 2.25 | true | \"Alice\"",
- "llm_out": "id | count | total | price | ratio | active | name ----+-------+------------+-------+-------+--------+--------- 1 | 2 | 3000000000 | 1.5 | 2.25 | true | \"Alice\"",
- "query": "SELECT id, count, total, price, ratio, active, name FROM primitive WHERE id=1",
- "reducer": "seed"
- }
- },
- "elementary_columns_row_count": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "actual": 1,
- "expected": 1,
- "sql": "SELECT COUNT(*) AS n FROM primitive WHERE id=1"
- }
- }
- },
- "vendor": "openai"
- },
- "t_015_product_type_columns": {
- "hash": "c73ba5b8e7438d32e18e96f9ab86c5b8ae2f31d1d614fe8db4abd098176840b0",
- "task": "t_015_product_type_columns",
- "lang": "typescript",
- "golden_published": true,
- "model_name": "GPT-5-mini",
- "total_tests": 3,
- "passed_tests": 3,
- "category": "schema",
- "route_api_model": "gpt-5-mini",
- "scorer_details": {
- "product_type_columns_row_parity": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "args": [],
- "golden_out": "id | home | work | pos ----+----------------------------------+-----------------------------------+---------------- 1 | (street = \"1 Main\", zip = 11111) | (street = \"2 Broad\", zip = 22222) | (x = 7, y = 9)",
- "llm_out": "id | home | work | pos ----+----------------------------------+-----------------------------------+---------------- 1 | (street = \"1 Main\", zip = 11111) | (street = \"2 Broad\", zip = 22222) | (x = 7, y = 9)",
- "query": "SELECT id, home, work, pos FROM profile WHERE id=1",
- "reducer": "seed"
- }
- },
- "schema_parity": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "reducers_diff": null,
- "reducers_equal": true,
- "tables_diff": null,
- "tables_equal": true
- }
- },
- "product_type_columns_row_count": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "actual": 1,
- "expected": 1,
- "sql": "SELECT COUNT(*) AS n FROM profile WHERE id=1"
- }
- }
- },
- "vendor": "openai"
- },
- "t_016_sum_type_columns": {
- "hash": "c73ba5b8e7438d32e18e96f9ab86c5b8ae2f31d1d614fe8db4abd098176840b0",
- "task": "t_016_sum_type_columns",
- "lang": "typescript",
- "golden_published": false,
- "model_name": "GPT-5-mini",
- "total_tests": 3,
- "passed_tests": 0,
- "llm_output": "import { schema, table, t } from 'spacetimedb/server';\n\nconst Rect = t.object('Rect', {\n width: t.i32(),\n height: t.i32(),\n});\n\nconst Shape = t.enum('Shape', {\n circle: t.i32(),\n rectangle: Rect,\n});\n\nconst drawing = table(\n { name: 'drawing', public: true },\n {\n id: t.i32().primaryKey(),\n a: Shape,\n b: Shape,\n }\n);\n\nconst spacetimedb = schema({ drawing });\nexport default spacetimedb;\n\nexport const seed = spacetimedb.reducer('seed', (ctx) => {\n ctx.db.drawing.id.insert({\n id: 1,\n a: { tag: 'circle', value: 10 },\n b: { tag: 'rectangle', value: { width: 4, height: 6 } },\n });\n});",
- "category": "schema",
- "route_api_model": "gpt-5-mini",
- "scorer_details": {
- "publish_error": {
- "pass": false,
- "partial": 0.0,
- "notes": {
- "error": "spacetime publish (typescript) failed (exit=1)\n--- stderr ---\ntsc not found in node_modules. Make sure you have the `typescript` package as a dev-dependency and that your dependencies are installed.\nError: Uncaught TypeError: Cannot read properties of undefined (reading 'tag')\n\tat (D:/Development/ClockworkLabs/SpacetimeDB/SpacetimeDBPrivate/public/target/llm-runs/schema/t_016_sum_type_columns/typescript/server/gpt-5-mini/llm/node_modules/.pnpm/spacetimedb@file+..+..+..+._4e6762d0fa0af4732de585440982ec59/node_modules/spacetimedb/dist/server/index.mjs:1988:64)\n\tat isFixedSizeProduct (D:/Development/ClockworkLabs/SpacetimeDB/SpacetimeDBPrivate/public/target/llm-runs/schema/t_016_sum_type_columns/typescript/server/gpt-5-mini/llm/node_modules/.pnpm/spacetimedb@file+..+..+..+._4e6762d0fa0af4732de585440982ec59/node_modules/spacetimedb/dist/server/index.mjs:1987:46)\n\tat makeDeserializer (D:/Development/ClockworkLabs/SpacetimeDB/SpacetimeDBPrivate/public/target/llm-runs/schema/t_016_sum_type_columns/typescript/server/gpt-5-mini/llm/node_modules/.pnpm/spacetimedb@file+..+..+..+._4e6762d0fa0af4732de585440982ec59/node_modules/spacetimedb/dist/server/index.mjs:2100:9)\n\tat (D:/Development/ClockworkLabs/SpacetimeDB/SpacetimeDBPrivate/public/target/llm-runs/schema/t_016_sum_type_columns/typescript/server/gpt-5-mini/llm/node_modules/.pnpm/spacetimedb@file+..+..+..+._4e6762d0fa0af4732de585440982ec59/node_modules/spacetimedb/dist/server/index.mjs:6380:35)\n\tat ModuleHooksImpl (D:/Development/ClockworkLabs/SpacetimeDB/SpacetimeDBPrivate/public/target/llm-runs/schema/t_016_sum_type_columns/typescript/server/gpt-5-mini/llm/node_modules/.pnpm/spacetimedb@file+..+..+..+._4e6762d0fa0af4732de585440982ec59/node_modules/spacetimedb/dist/server/index.mjs:6379:65)\n\tat makeHooks (D:/Development/ClockworkLabs/SpacetimeDB/SpacetimeDBPrivate/public/target/llm-runs/schema/t_016_sum_type_columns/typescript/server/gpt-5-mini/llm/node_modules/.pnpm/spacetimedb@file+..+..+..+._4e6762d0fa0af4732de585440982ec59/node_modules/spacetimedb/dist/server/index.mjs:6370:30)\n\tat [SpacetimeDB.moduleHooks.v2] (D:/Development/ClockworkLabs/SpacetimeDB/SpacetimeDBPrivate/public/target/llm-runs/schema/t_016_sum_type_columns/typescript/server/gpt-5-mini/llm/node_modules/.pnpm/spacetimedb@file+..+..+..+._4e6762d0fa0af4732de585440982ec59/node_modules/spacetimedb/dist/server/index.mjs:7249:12)\n\nCaused by:\n HTTP status server error (500 Internal Server Error) for url (http://127.0.0.1:54039/v1/database/schema-t-016-sum-type-columns-gpt-5-mini-llm?clear=true&host_type=Js)\n\n--- stdout ---\nBuild finished successfully.\nUploading to http://127.0.0.1:54039 => http://127.0.0.1:54039\nThis will DESTROY the current schema-t-016-sum-type-columns-gpt-5-mini-llm module, and ALL corresponding data.\nSkipping confirmation due to --yes\nPublishing module...\nJavaScript / TypeScript support is currently in BETA.\nThere may be bugs. Please file issues if you encounter any.\n\n",
- "phase": "build_or_publish"
- }
- }
- },
- "vendor": "openai"
- },
- "t_017_scheduled_columns": {
- "hash": "c73ba5b8e7438d32e18e96f9ab86c5b8ae2f31d1d614fe8db4abd098176840b0",
- "task": "t_017_scheduled_columns",
- "lang": "typescript",
- "golden_published": false,
- "model_name": "GPT-5-mini",
- "total_tests": 2,
- "passed_tests": 0,
- "llm_output": "import { schema, table, t } from 'spacetimedb/server';\nimport { ScheduleAt } from 'spacetimedb';\n\nconst tickTimer = table(\n { scheduled: 'tick' },\n {\n scheduledId: t.u64().primaryKey().autoInc(),\n scheduledAt: t.scheduleAt(),\n }\n);\n\nconst spacetimedb = schema({ tickTimer });\nexport default spacetimedb;\n\nexport const tick = spacetimedb.reducer('tick', tickTimer.rowType, (ctx, timer) => {\n console.info('tick');\n});\n\nexport const init = spacetimedb.init((ctx) => {\n ctx.db.tickTimer.insert({\n scheduledId: 0n,\n scheduledAt: ScheduleAt.interval(50_000n),\n });\n});",
- "category": "schema",
- "route_api_model": "gpt-5-mini",
- "scorer_details": {
- "publish_error": {
- "pass": false,
- "partial": 0.0,
- "notes": {
- "error": "spacetime publish (typescript) failed (exit=1)\n--- stderr ---\ntsc not found in node_modules. Make sure you have the `typescript` package as a dev-dependency and that your dependencies are installed.\nError: Uncaught TypeError: reducer is not a function\n\tat resolveSchedules (D:/Development/ClockworkLabs/SpacetimeDB/SpacetimeDBPrivate/public/target/llm-runs/schema/t_017_scheduled_columns/typescript/server/gpt-5-mini/llm/node_modules/.pnpm/spacetimedb@file+..+..+..+._4e6762d0fa0af4732de585440982ec59/node_modules/spacetimedb/dist/server/index.mjs:7217:53)\n\tat [SpacetimeDB.moduleHooks.v2] (D:/Development/ClockworkLabs/SpacetimeDB/SpacetimeDBPrivate/public/target/llm-runs/schema/t_017_scheduled_columns/typescript/server/gpt-5-mini/llm/node_modules/.pnpm/spacetimedb@file+..+..+..+._4e6762d0fa0af4732de585440982ec59/node_modules/spacetimedb/dist/server/index.mjs:7248:22)\n\nCaused by:\n HTTP status server error (500 Internal Server Error) for url (http://127.0.0.1:54039/v1/database/schema-t-017-scheduled-columns-gpt-5-mini-llm?clear=true&host_type=Js)\n\n--- stdout ---\nBuild finished successfully.\nUploading to http://127.0.0.1:54039 => http://127.0.0.1:54039\nThis will DESTROY the current schema-t-017-scheduled-columns-gpt-5-mini-llm module, and ALL corresponding data.\nSkipping confirmation due to --yes\nPublishing module...\nJavaScript / TypeScript support is currently in BETA.\nThere may be bugs. Please file issues if you encounter any.\n\n",
- "phase": "build_or_publish"
- }
- }
- },
- "vendor": "openai"
- },
- "t_018_constraints": {
- "hash": "c73ba5b8e7438d32e18e96f9ab86c5b8ae2f31d1d614fe8db4abd098176840b0",
- "task": "t_018_constraints",
- "lang": "typescript",
- "golden_published": true,
- "model_name": "GPT-5-mini",
- "total_tests": 3,
- "passed_tests": 3,
- "category": "schema",
- "route_api_model": "gpt-5-mini",
- "scorer_details": {
- "schema_parity": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "reducers_diff": null,
- "reducers_equal": true,
- "tables_diff": null,
- "tables_equal": true
- }
- },
- "constraints_row_parity_after_seed": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "args": [],
- "golden_out": "id | email | name ----+-----------------+--------- 1 | \"a@example.com\" | \"Alice\"",
- "llm_out": "id | email | name ----+-----------------+--------- 1 | \"a@example.com\" | \"Alice\"",
- "query": "SELECT id, email, name FROM account WHERE id=1",
- "reducer": "seed"
- }
- },
- "constraints_seed_two_rows": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "actual": 1,
- "expected": 1,
- "sql": "SELECT COUNT(*) AS n FROM account WHERE id=2"
- }
- }
- },
- "vendor": "openai"
- },
- "t_019_many_to_many": {
- "hash": "c73ba5b8e7438d32e18e96f9ab86c5b8ae2f31d1d614fe8db4abd098176840b0",
- "task": "t_019_many_to_many",
- "lang": "typescript",
- "golden_published": true,
- "model_name": "GPT-5-mini",
- "total_tests": 5,
- "passed_tests": 1,
- "llm_output": "import { schema, table, t } from 'spacetimedb/server';\n\nconst user = table(\n { name: 'user', public: true },\n {\n userId: t.i32().primaryKey(),\n name: t.string(),\n }\n);\n\nconst group = table(\n { name: 'group', public: true },\n {\n groupId: t.i32().primaryKey(),\n title: t.string(),\n }\n);\n\nconst membership = table(\n {\n name: 'membership',\n public: true,\n indexes: [\n { name: 'byUser', algorithm: 'btree', columns: ['userId'] },\n { name: 'byGroup', algorithm: 'btree', columns: ['groupId'] },\n ],\n },\n {\n id: t.i32().primaryKey(),\n userId: t.i32(),\n groupId: t.i32(),\n }\n);\n\nconst spacetimedb = schema({ user, group, membership });\nexport default spacetimedb;\n\nexport const seed = spacetimedb.reducer((ctx) => {\n // Users\n ctx.db.user.userId.insert({ userId: 1, name: \"Alice\" });\n ctx.db.user.userId.insert({ userId: 2, name: \"Bob\" });\n\n // Groups\n ctx.db.group.groupId.insert({ groupId: 10, title: \"Admin\" });\n ctx.db.group.groupId.insert({ groupId: 20, title: \"Dev\" });\n\n // Memberships\n ctx.db.membership.id.insert({ id: 1, userId: 1, groupId: 10 });\n ctx.db.membership.id.insert({ id: 2, userId: 1, groupId: 20 });\n ctx.db.membership.id.insert({ id: 3, userId: 2, groupId: 20 });\n});",
- "category": "schema",
- "route_api_model": "gpt-5-mini",
- "scorer_details": {
- "m2m_has_1_20": {
- "pass": false,
- "partial": 0.0,
- "notes": {
- "actual": 0,
- "expected": 1,
- "sql": "SELECT COUNT(*) AS n FROM membership WHERE userId=1 AND groupId=20"
- }
- },
- "m2m_has_2_20": {
- "pass": false,
- "partial": 0.0,
- "notes": {
- "actual": 0,
- "expected": 1,
- "sql": "SELECT COUNT(*) AS n FROM membership WHERE userId=2 AND groupId=20"
- }
- },
- "schema_parity": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "reducers_diff": null,
- "reducers_equal": true,
- "tables_diff": null,
- "tables_equal": true
- }
- },
- "m2m_has_1_10": {
- "pass": false,
- "partial": 0.0,
- "notes": {
- "error": "spacetime call failed:\nWARNING: This command is UNSTABLE and subject to breaking changes.\n\nError: Response text: The instance encountered a fatal error.\n\nCaused by:\n HTTP status server error (530 ) for url (http://127.0.0.1:54039/v1/database/c2008f1f83f5944b0111c371ec9f5d3bb94125e404c1f8044d20b8b2eba4c88c/call/seed)\n",
- "phase": "call_reducer"
- }
- },
- "memberships_three_rows": {
- "pass": false,
- "partial": 0.0,
- "notes": {
- "actual": 0,
- "expected": 3,
- "sql": "SELECT COUNT(*) AS n FROM membership"
- }
- }
- },
- "vendor": "openai"
- },
- "t_020_ecs": {
- "hash": "c73ba5b8e7438d32e18e96f9ab86c5b8ae2f31d1d614fe8db4abd098176840b0",
- "task": "t_020_ecs",
- "lang": "typescript",
- "golden_published": false,
- "model_name": "GPT-5-mini",
- "total_tests": 5,
- "passed_tests": 0,
- "llm_output": "import { schema, table, t } from 'spacetimedb/server';\n\nconst entity = table(\n { },\n {\n id: t.i32().primaryKey(),\n }\n);\n\nconst position = table(\n { },\n {\n entityId: t.i32().primaryKey(),\n x: t.i32(),\n y: t.i32(),\n }\n);\n\nconst velocity = table(\n { },\n {\n entityId: t.i32().primaryKey(),\n vx: t.i32(),\n vy: t.i32(),\n }\n);\n\nconst nextPosition = table(\n { },\n {\n entityId: t.i32().primaryKey(),\n x: t.i32(),\n y: t.i32(),\n }\n);\n\nexport const spacetimedb = schema({ entity, position, velocity, nextPosition });\nexport default spacetimedb;\n\nexport const seed = spacetimedb.reducer((ctx) => {\n // Insert Entity 1\n ctx.db.entity.id.insert({ id: 1 });\n ctx.db.position.entityId.insert({ entityId: 1, x: 0, y: 0 });\n ctx.db.velocity.entityId.insert({ entityId: 1, vx: 1, vy: 0 });\n\n // Insert Entity 2\n ctx.db.entity.id.insert({ id: 2 });\n ctx.db.position.entityId.insert({ entityId: 2, x: 10, y: 0 });\n ctx.db.velocity.entityId.insert({ entityId: 2, vx: -2, vy: 3 });\n});\n\nexport const step = spacetimedb.reducer((ctx) => {\n for (const pos of ctx.db.position.iter()) {\n const vel = ctx.db.velocity.entityId.find(pos.entityId);\n if (!vel) continue;\n const nx = pos.x + vel.vx;\n const ny = pos.y + vel.vy;\n const existing = ctx.db.nextPosition.entityId.find(pos.entityId);\n if (existing) {\n ctx.db.nextPosition.entityId.update({ ...existing, x: nx, y: ny });\n } else {\n ctx.db.nextPosition.entityId.insert({ entityId: pos.entityId, x: nx, y: ny });\n }\n }\n});",
- "category": "schema",
- "route_api_model": "gpt-5-mini",
- "scorer_details": {
- "publish_error": {
- "pass": false,
- "partial": 0.0,
- "notes": {
- "error": "spacetime publish (typescript) failed (exit=1)\n--- stderr ---\ntsc not found in node_modules. Make sure you have the `typescript` package as a dev-dependency and that your dependencies are installed.\nError: Uncaught TypeError: exporting something that is not a spacetime export\n\tat [SpacetimeDB.moduleHooks.v2] (D:/Development/ClockworkLabs/SpacetimeDB/SpacetimeDBPrivate/public/target/llm-runs/schema/t_020_ecs/typescript/server/gpt-5-mini/llm/node_modules/.pnpm/spacetimedb@file+..+..+..+._4e6762d0fa0af4732de585440982ec59/node_modules/spacetimedb/dist/server/index.mjs:7241:15)\n\nCaused by:\n HTTP status server error (500 Internal Server Error) for url (http://127.0.0.1:54039/v1/database/schema-t-020-ecs-gpt-5-mini-llm?clear=true&host_type=Js)\n\n--- stdout ---\nBuild finished successfully.\nUploading to http://127.0.0.1:54039 => http://127.0.0.1:54039\nThis will DESTROY the current schema-t-020-ecs-gpt-5-mini-llm module, and ALL corresponding data.\nSkipping confirmation due to --yes\nPublishing module...\nJavaScript / TypeScript support is currently in BETA.\nThere may be bugs. Please file issues if you encounter any.\n\n",
- "phase": "build_or_publish"
- }
- }
- },
- "vendor": "openai"
- },
- "t_021_multi_column_index": {
- "hash": "c73ba5b8e7438d32e18e96f9ab86c5b8ae2f31d1d614fe8db4abd098176840b0",
- "task": "t_021_multi_column_index",
- "lang": "typescript",
- "golden_published": true,
- "model_name": "GPT-5-mini",
- "total_tests": 4,
- "passed_tests": 4,
- "category": "schema",
- "route_api_model": "gpt-5-mini",
- "scorer_details": {
- "mcindex_seed_count": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "actual": 3,
- "expected": 3,
- "sql": "SELECT COUNT(*) AS n FROM log"
- }
- },
- "mcindex_lookup_u7_d1": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "actual": 1,
- "expected": 1,
- "sql": "SELECT COUNT(*) AS n FROM log WHERE userId=7 AND day=1"
- }
- },
- "schema_parity": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "reducers_diff": null,
- "reducers_equal": true,
- "tables_diff": null,
- "tables_equal": true
- }
- },
- "mcindex_lookup_u7_d2": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "actual": 1,
- "expected": 1,
- "sql": "SELECT COUNT(*) AS n FROM log WHERE userId=7 AND day=2"
- }
- }
- },
- "vendor": "openai"
- }
- }
- },
- {
- "name": "Grok Code",
- "route_api_model": "grok-code-fast-1",
- "tasks": {
- "t_000_empty_reducers": {
- "hash": "f0986524ee7bda1802573e7e4794bd56933365fb35e4af7c830014214cb8ec77",
- "task": "t_000_empty_reducers",
- "lang": "typescript",
- "golden_published": true,
- "model_name": "Grok Code",
- "total_tests": 1,
- "passed_tests": 1,
- "category": "basics",
- "route_api_model": "grok-code-fast-1",
- "scorer_details": {
- "schema_parity": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "reducers_diff": null,
- "reducers_equal": true,
- "tables_diff": null,
- "tables_equal": true
- }
- }
- },
- "vendor": "xai"
- },
- "t_001_basic_tables": {
- "hash": "f0986524ee7bda1802573e7e4794bd56933365fb35e4af7c830014214cb8ec77",
- "task": "t_001_basic_tables",
- "lang": "typescript",
- "golden_published": true,
- "model_name": "Grok Code",
- "total_tests": 1,
- "passed_tests": 1,
- "category": "basics",
- "route_api_model": "grok-code-fast-1",
- "scorer_details": {
- "schema_parity": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "reducers_diff": null,
- "reducers_equal": true,
- "tables_diff": null,
- "tables_equal": true
- }
- }
- },
- "vendor": "xai"
- },
- "t_002_scheduled_table": {
- "hash": "f0986524ee7bda1802573e7e4794bd56933365fb35e4af7c830014214cb8ec77",
- "task": "t_002_scheduled_table",
- "lang": "typescript",
- "golden_published": true,
- "model_name": "Grok Code",
- "total_tests": 1,
- "passed_tests": 1,
- "category": "basics",
- "route_api_model": "grok-code-fast-1",
- "scorer_details": {
- "schema_parity": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "reducers_diff": null,
- "reducers_equal": true,
- "tables_diff": null,
- "tables_equal": true
- }
- }
- },
- "vendor": "xai"
- },
- "t_003_struct_in_table": {
- "hash": "f0986524ee7bda1802573e7e4794bd56933365fb35e4af7c830014214cb8ec77",
- "task": "t_003_struct_in_table",
- "lang": "typescript",
- "golden_published": true,
- "model_name": "Grok Code",
- "total_tests": 1,
- "passed_tests": 1,
- "category": "basics",
- "route_api_model": "grok-code-fast-1",
- "scorer_details": {
- "schema_parity": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "reducers_diff": null,
- "reducers_equal": true,
- "tables_diff": null,
- "tables_equal": true
- }
- }
- },
- "vendor": "xai"
- },
- "t_004_insert": {
- "hash": "f0986524ee7bda1802573e7e4794bd56933365fb35e4af7c830014214cb8ec77",
- "task": "t_004_insert",
- "lang": "typescript",
- "golden_published": true,
- "model_name": "Grok Code",
- "total_tests": 2,
- "passed_tests": 2,
- "category": "basics",
- "route_api_model": "grok-code-fast-1",
- "scorer_details": {
- "schema_parity": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "reducers_diff": null,
- "reducers_equal": true,
- "tables_diff": null,
- "tables_equal": true
- }
- },
- "data_parity_insert_user": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "args": [
- 1,
- "Alice",
- 30,
- true
- ],
- "golden_out": "id | name | age | active ----+---------+-----+-------- 1 | \"Alice\" | 30 | true",
- "llm_out": "id | name | age | active ----+---------+-----+-------- 1 | \"Alice\" | 30 | true",
- "query": "SELECT id, name, age, active FROM user WHERE id=1",
- "reducer": "insert_user"
- }
- }
- },
- "vendor": "xai"
- },
- "t_005_update": {
- "hash": "f0986524ee7bda1802573e7e4794bd56933365fb35e4af7c830014214cb8ec77",
- "task": "t_005_update",
- "lang": "typescript",
- "golden_published": true,
- "model_name": "Grok Code",
- "total_tests": 3,
- "passed_tests": 1,
- "llm_output": "import { schema, table, t } from 'spacetimedb/server';\n\nconst user = table(\n { name: 'user', public: true },\n {\n id: t.i32().primaryKey(),\n name: t.string(),\n age: t.i32(),\n active: t.bool(),\n }\n);\n\nconst spacetimedb = schema({ user });\nexport default spacetimedb;\n\nexport const updateUser = spacetimedb.reducer({ id: t.i32(), name: t.string(), age: t.i32(), active: t.bool() }, (ctx, { id, name, age, active }) => {\n const userRow = ctx.db.user.id.find(id);\n if (userRow) {\n ctx.db.user.id.update({ ...userRow, name, age, active });\n }\n});",
- "category": "basics",
- "route_api_model": "grok-code-fast-1",
- "scorer_details": {
- "data_parity_update_user": {
- "pass": false,
- "partial": 0.0,
- "notes": {
- "args": [
- 1,
- "Alice2",
- 31,
- false
- ],
- "golden_out": "id | name | age | active ----+----------+-----+-------- 1 | \"Alice2\" | 31 | false",
- "llm_out": "id | name | age | active ----+------+-----+--------",
- "query": "SELECT id, name, age, active FROM user WHERE id=1",
- "reducer": "update_user"
- }
- },
- "schema_parity": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "reducers_diff": null,
- "reducers_equal": true,
- "tables_diff": null,
- "tables_equal": true
- }
- },
- "seed_users_row": {
- "pass": false,
- "partial": 0.0,
- "notes": {
- "error": "spacetime sql failed:\nWARNING: This command is UNSTABLE and subject to breaking changes.\n\nError: IndexError: Unique constraint violation 'user_id_idx_btree' in table 'user': column(s): '[\"id\"]' value: 1\n\nCaused by:\n HTTP status client error (400 Bad Request) for url (http://127.0.0.1:61803/v1/database/c2008d3a5d3b789a38ac8b7e737fd463d7f7b7de462393e2641dfa765aa7cf55/sql)\n",
- "phase": "sql_golden",
- "sql": "INSERT INTO user(id, name, age, active) VALUES (1, 'Alice', 30, true)"
- }
- }
- },
- "vendor": "xai"
- },
- "t_006_delete": {
- "hash": "f0986524ee7bda1802573e7e4794bd56933365fb35e4af7c830014214cb8ec77",
- "task": "t_006_delete",
- "lang": "typescript",
- "golden_published": true,
- "model_name": "Grok Code",
- "total_tests": 3,
- "passed_tests": 3,
- "category": "basics",
- "route_api_model": "grok-code-fast-1",
- "scorer_details": {
- "schema_parity": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "reducers_diff": null,
- "reducers_equal": true,
- "tables_diff": null,
- "tables_equal": true
- }
- },
- "seed_users_row": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "sql": "INSERT INTO user(id, name, age, active) VALUES (1, 'Alice', 30, true)"
- }
- },
- "delete_user_count_zero": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "actual": 0,
- "expected": 0,
- "sql": "SELECT COUNT(*) AS n FROM user WHERE id=1"
- }
- }
- },
- "vendor": "xai"
- },
- "t_007_crud": {
- "hash": "f0986524ee7bda1802573e7e4794bd56933365fb35e4af7c830014214cb8ec77",
- "task": "t_007_crud",
- "lang": "typescript",
- "golden_published": true,
- "model_name": "Grok Code",
- "total_tests": 4,
- "passed_tests": 4,
- "category": "basics",
- "route_api_model": "grok-code-fast-1",
- "scorer_details": {
- "crud_row_id2_deleted": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "actual": 0,
- "expected": 0,
- "sql": "SELECT COUNT(*) AS n FROM user WHERE id=2"
- }
- },
- "schema_parity": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "reducers_diff": null,
- "reducers_equal": true,
- "tables_diff": null,
- "tables_equal": true
- }
- },
- "crud_row_id1_parity": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "args": [],
- "golden_out": "id | name | age | active ----+----------+-----+-------- 1 | \"Alice2\" | 31 | false",
- "llm_out": "id | name | age | active ----+----------+-----+-------- 1 | \"Alice2\" | 31 | false",
- "query": "SELECT id, name, age, active FROM user WHERE id=1",
- "reducer": "crud"
- }
- },
- "crud_total_count_one": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "actual": 1,
- "expected": 1,
- "sql": "SELECT COUNT(*) AS n FROM user"
- }
- }
- },
- "vendor": "xai"
- },
- "t_008_index_lookup": {
- "hash": "f0986524ee7bda1802573e7e4794bd56933365fb35e4af7c830014214cb8ec77",
- "task": "t_008_index_lookup",
- "lang": "typescript",
- "golden_published": true,
- "model_name": "Grok Code",
- "total_tests": 3,
- "passed_tests": 3,
- "category": "basics",
- "route_api_model": "grok-code-fast-1",
- "scorer_details": {
- "index_lookup_projection_parity": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "args": [
- 1
- ],
- "golden_out": "id | name ----+--------- 1 | \"Alice\"",
- "llm_out": "id | name ----+--------- 1 | \"Alice\"",
- "query": "SELECT id, name FROM result WHERE id=1",
- "reducer": "lookup_user_name"
- }
- },
- "schema_parity": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "reducers_diff": null,
- "reducers_equal": true,
- "tables_diff": null,
- "tables_equal": true
- }
- },
- "seed_user_row": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "sql": "INSERT INTO user(id, name, age, active) VALUES (1, 'Alice', 30, true)"
- }
- }
- },
- "vendor": "xai"
- },
- "t_009_init": {
- "hash": "f0986524ee7bda1802573e7e4794bd56933365fb35e4af7c830014214cb8ec77",
- "task": "t_009_init",
- "lang": "typescript",
- "golden_published": true,
- "model_name": "Grok Code",
- "total_tests": 4,
- "passed_tests": 4,
- "category": "basics",
- "route_api_model": "grok-code-fast-1",
- "scorer_details": {
- "init_seed_alice": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "actual": 1,
- "expected": 1,
- "sql": "SELECT COUNT(*) AS n FROM user WHERE id=1 AND name='Alice' AND age=30 AND active=true"
- }
- },
- "init_total_two": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "actual": 2,
- "expected": 2,
- "sql": "SELECT COUNT(*) AS n FROM user"
- }
- },
- "schema_parity": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "reducers_diff": null,
- "reducers_equal": true,
- "tables_diff": null,
- "tables_equal": true
- }
- },
- "init_seed_bob": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "actual": 1,
- "expected": 1,
- "sql": "SELECT COUNT(*) AS n FROM user WHERE id=2 AND name='Bob' AND age=22 AND active=false"
- }
- }
- },
- "vendor": "xai"
- },
- "t_010_connect": {
- "hash": "f0986524ee7bda1802573e7e4794bd56933365fb35e4af7c830014214cb8ec77",
- "task": "t_010_connect",
- "lang": "typescript",
- "golden_published": true,
- "model_name": "Grok Code",
- "total_tests": 1,
- "passed_tests": 0,
- "llm_output": "import { schema, table, t } from 'spacetimedb/server';\n\nconst event = table(\n { name: 'event', public: true },\n {\n id: t.u64().primaryKey().autoInc(),\n kind: t.string(),\n }\n);\n\nconst spacetimedb = schema({ event });\nexport default spacetimedb;\n\nexport const clientConnected = spacetimedb.clientConnected(ctx => {\n ctx.db.event.insert({\n id: 0n,\n kind: \"connected\",\n });\n});\n\nexport const clientDisconnected = spacetimedb.clientDisconnected(ctx => {\n ctx.db.event.insert({\n id: 0n,\n kind: \"disconnected\",\n });\n});",
- "category": "basics",
- "route_api_model": "grok-code-fast-1",
- "scorer_details": {
- "schema_parity": {
- "pass": false,
- "partial": 0.0,
- "notes": {
- "reducers_diff": {
- "only_golden": [
- "on_connect()",
- "on_disconnect()"
- ],
- "only_llm": [
- "client_connected()",
- "client_disconnected()"
- ]
- },
- "reducers_equal": false,
- "tables_diff": null,
- "tables_equal": true
- }
- }
- },
- "vendor": "xai"
- },
- "t_011_helper_function": {
- "hash": "f0986524ee7bda1802573e7e4794bd56933365fb35e4af7c830014214cb8ec77",
- "task": "t_011_helper_function",
- "lang": "typescript",
- "golden_published": true,
- "model_name": "Grok Code",
- "total_tests": 3,
- "passed_tests": 3,
- "category": "basics",
- "route_api_model": "grok-code-fast-1",
- "scorer_details": {
- "helper_func_sum_abs": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "actual": 1,
- "expected": 1,
- "sql": "SELECT COUNT(*) AS n FROM result WHERE id=1 AND sum=5"
- }
- },
- "schema_parity": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "reducers_diff": null,
- "reducers_equal": true,
- "tables_diff": null,
- "tables_equal": true
- }
- },
- "helper_func_sum_parity": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "args": [
- 1,
- 2,
- 3
- ],
- "golden_out": "id | sum ----+----- 1 | 5",
- "llm_out": "id | sum ----+----- 1 | 5",
- "query": "SELECT id, sum FROM result WHERE id=1",
- "reducer": "compute_sum"
- }
- }
- },
- "vendor": "xai"
- },
- "t_012_spacetime_product_type": {
- "hash": "f0986524ee7bda1802573e7e4794bd56933365fb35e4af7c830014214cb8ec77",
- "task": "t_012_spacetime_product_type",
- "lang": "typescript",
- "golden_published": true,
- "model_name": "Grok Code",
- "total_tests": 3,
- "passed_tests": 3,
- "category": "schema",
- "route_api_model": "grok-code-fast-1",
- "scorer_details": {
- "product_type_row_count": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "actual": 1,
- "expected": 1,
- "sql": "SELECT COUNT(*) AS n FROM result WHERE id=1"
- }
- },
- "schema_parity": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "reducers_diff": null,
- "reducers_equal": true,
- "tables_diff": null,
- "tables_equal": true
- }
- },
- "product_type_row_parity": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "args": [
- 1,
- 2,
- 3
- ],
- "golden_out": "id | value ----+----------------------- 1 | (left = 2, right = 3)",
- "llm_out": "id | value ----+----------------------- 1 | (left = 2, right = 3)",
- "query": "SELECT id, value FROM result WHERE id=1",
- "reducer": "set_score"
- }
- }
- },
- "vendor": "xai"
- },
- "t_013_spacetime_sum_type": {
- "hash": "f0986524ee7bda1802573e7e4794bd56933365fb35e4af7c830014214cb8ec77",
- "task": "t_013_spacetime_sum_type",
- "lang": "typescript",
- "golden_published": true,
- "model_name": "Grok Code",
- "total_tests": 3,
- "passed_tests": 1,
- "llm_output": "import { schema, table, t } from 'spacetimedb/server';\n\nconst Rect = t.object('Rect', {\n width: t.i32(),\n height: t.i32(),\n});\n\nconst Shape = t.enum('Shape', {\n circle: t.i32(),\n rectangle: Rect,\n});\n\nconst result = table(\n { name: 'result', public: true },\n {\n id: t.i32().primaryKey(),\n value: Shape,\n }\n);\n\nconst spacetimedb = schema({ result });\nexport default spacetimedb;\n\nexport const setCircle = spacetimedb.reducer({ id: t.i32(), radius: t.i32() }, (ctx, { id, radius }) => {\n ctx.db.result.insert({ id, value: { tag: 'circle', value: radius } });\n});",
- "category": "schema",
- "route_api_model": "grok-code-fast-1",
- "scorer_details": {
- "schema_parity": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "reducers_diff": null,
- "reducers_equal": true,
- "tables_diff": null,
- "tables_equal": true
- }
- },
- "sum_type_row_parity": {
- "pass": false,
- "partial": 0.0,
- "notes": {
- "error": "spacetime call failed:\nWARNING: This command is UNSTABLE and subject to breaking changes.\n\nError: Response text: The instance encountered a fatal error.\n\nCaused by:\n HTTP status server error (530 ) for url (http://127.0.0.1:61803/v1/database/c200e33d4d652b61ce5d379db48f7b2d1a76dfcbd64d177c3f37c946a561c0db/call/set_circle)\n",
- "phase": "call_reducer_golden"
- }
- },
- "sum_type_row_count": {
- "pass": false,
- "partial": 0.0,
- "notes": {
- "actual": 0,
- "expected": 1,
- "sql": "SELECT COUNT(*) AS n FROM result WHERE id=1"
- }
- }
- },
- "vendor": "xai"
- },
- "t_014_elementary_columns": {
- "hash": "f0986524ee7bda1802573e7e4794bd56933365fb35e4af7c830014214cb8ec77",
- "task": "t_014_elementary_columns",
- "lang": "typescript",
- "golden_published": true,
- "model_name": "Grok Code",
- "total_tests": 3,
- "passed_tests": 3,
- "category": "schema",
- "route_api_model": "grok-code-fast-1",
- "scorer_details": {
- "schema_parity": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "reducers_diff": null,
- "reducers_equal": true,
- "tables_diff": null,
- "tables_equal": true
- }
- },
- "elementary_columns_row_parity": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "args": [],
- "golden_out": "id | count | total | price | ratio | active | name ----+-------+------------+-------+-------+--------+--------- 1 | 2 | 3000000000 | 1.5 | 2.25 | true | \"Alice\"",
- "llm_out": "id | count | total | price | ratio | active | name ----+-------+------------+-------+-------+--------+--------- 1 | 2 | 3000000000 | 1.5 | 2.25 | true | \"Alice\"",
- "query": "SELECT id, count, total, price, ratio, active, name FROM primitive WHERE id=1",
- "reducer": "seed"
- }
- },
- "elementary_columns_row_count": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "actual": 1,
- "expected": 1,
- "sql": "SELECT COUNT(*) AS n FROM primitive WHERE id=1"
- }
- }
- },
- "vendor": "xai"
- },
- "t_015_product_type_columns": {
- "hash": "f0986524ee7bda1802573e7e4794bd56933365fb35e4af7c830014214cb8ec77",
- "task": "t_015_product_type_columns",
- "lang": "typescript",
- "golden_published": true,
- "model_name": "Grok Code",
- "total_tests": 3,
- "passed_tests": 3,
- "category": "schema",
- "route_api_model": "grok-code-fast-1",
- "scorer_details": {
- "product_type_columns_row_parity": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "args": [],
- "golden_out": "id | home | work | pos ----+----------------------------------+-----------------------------------+---------------- 1 | (street = \"1 Main\", zip = 11111) | (street = \"2 Broad\", zip = 22222) | (x = 7, y = 9)",
- "llm_out": "id | home | work | pos ----+----------------------------------+-----------------------------------+---------------- 1 | (street = \"1 Main\", zip = 11111) | (street = \"2 Broad\", zip = 22222) | (x = 7, y = 9)",
- "query": "SELECT id, home, work, pos FROM profile WHERE id=1",
- "reducer": "seed"
- }
- },
- "schema_parity": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "reducers_diff": null,
- "reducers_equal": true,
- "tables_diff": null,
- "tables_equal": true
- }
- },
- "product_type_columns_row_count": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "actual": 1,
- "expected": 1,
- "sql": "SELECT COUNT(*) AS n FROM profile WHERE id=1"
- }
- }
- },
- "vendor": "xai"
- },
- "t_016_sum_type_columns": {
- "hash": "f0986524ee7bda1802573e7e4794bd56933365fb35e4af7c830014214cb8ec77",
- "task": "t_016_sum_type_columns",
- "lang": "typescript",
- "golden_published": true,
- "model_name": "Grok Code",
- "total_tests": 3,
- "passed_tests": 1,
- "llm_output": "import { schema, table, t } from 'spacetimedb/server';\n\nconst Rect = t.object('Rect', {\n width: t.i32(),\n height: t.i32(),\n});\n\nconst Shape = t.enum('Shape', {\n circle: t.i32(),\n rectangle: Rect,\n});\n\nconst drawing = table(\n { name: 'drawing', public: true },\n {\n id: t.i32().primaryKey(),\n a: Shape,\n b: Shape,\n }\n);\n\nconst spacetimedb = schema({ drawing });\n\nexport const seed = spacetimedb.reducer({}, (ctx) => {\n ctx.db.drawing.insert({\n id: 0,\n a: { tag: 'circle', value: 10 },\n b: { tag: 'rectangle', value: { width: 4, height: 6 } },\n });\n});\n\nexport default spacetimedb;",
- "category": "schema",
- "route_api_model": "grok-code-fast-1",
- "scorer_details": {
- "sum_type_columns_row_parity": {
- "pass": false,
- "partial": 0.0,
- "notes": {
- "error": "spacetime call failed:\nWARNING: This command is UNSTABLE and subject to breaking changes.\n\nError: Response text: The instance encountered a fatal error.\n\nCaused by:\n HTTP status server error (530 ) for url (http://127.0.0.1:61803/v1/database/c2000788e329b453495afd0fdbb496a34d3af0ea9e8d7984f456fba62dc88ed7/call/seed)\n",
- "phase": "call_reducer_golden"
- }
- },
- "schema_parity": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "reducers_diff": null,
- "reducers_equal": true,
- "tables_diff": null,
- "tables_equal": true
- }
- },
- "sum_type_columns_row_count": {
- "pass": false,
- "partial": 0.0,
- "notes": {
- "actual": 0,
- "expected": 1,
- "sql": "SELECT COUNT(*) AS n FROM drawing WHERE id=1"
- }
- }
- },
- "vendor": "xai"
- },
- "t_017_scheduled_columns": {
- "hash": "f0986524ee7bda1802573e7e4794bd56933365fb35e4af7c830014214cb8ec77",
- "task": "t_017_scheduled_columns",
- "lang": "typescript",
- "golden_published": false,
- "model_name": "Grok Code",
- "total_tests": 2,
- "passed_tests": 0,
- "llm_output": "import { schema, table, t, ScheduleAt } from 'spacetimedb/server';\n\nconst tickTimer = table(\n { scheduled: () => tick },\n {\n scheduledId: t.u64().primaryKey().autoInc(),\n scheduledAt: t.scheduleAt(),\n }\n);\n\nconst spacetimedb = schema({ tickTimer });\n\nexport const tick = spacetimedb.reducer({ arg: tickTimer.rowType }, (ctx, { arg }) => {\n});\n\nexport const init = spacetimedb.reducer((ctx) => {\n ctx.db.tickTimer.insert({\n scheduledId: 0n,\n scheduledAt: ScheduleAt.interval(50000n),\n });\n});\n\nexport default spacetimedb;",
- "category": "schema",
- "route_api_model": "grok-code-fast-1",
- "scorer_details": {
- "publish_error": {
- "pass": false,
- "partial": 0.0,
- "notes": {
- "error": "spacetime publish (typescript) failed (exit=1)\n--- stderr ---\ntsc not found in node_modules. Make sure you have the `typescript` package as a dev-dependency and that your dependencies are installed.\n[MISSING_EXPORT] Error: \"ScheduleAt\" is not exported by \"D:/Development/ClockworkLabs/SpacetimeDB/SpacetimeDBPrivate/public/target/llm-runs/schema/t_017_scheduled_columns/typescript/server/grok-code/llm/node_modules/.pnpm/spacetimedb@file+..+..+..+._4e6762d0fa0af4732de585440982ec59/node_modules/spacetimedb/dist/server/index.mjs\".\n ╭─[ D:/Development/ClockworkLabs/SpacetimeDB/SpacetimeDBPrivate/public/target/llm-runs/schema/t_017_scheduled_columns/typescript/server/grok-code/llm/src/index.ts:1:28 ]\n │\n 1 │ import { schema, table, t, ScheduleAt } from 'spacetimedb/server';\n │ ─────┬──── \n │ ╰────── Missing export\n───╯\n\n\n--- stdout ---\n",
- "phase": "build_or_publish"
- }
- }
- },
- "vendor": "xai"
- },
- "t_018_constraints": {
- "hash": "f0986524ee7bda1802573e7e4794bd56933365fb35e4af7c830014214cb8ec77",
- "task": "t_018_constraints",
- "lang": "typescript",
- "golden_published": true,
- "model_name": "Grok Code",
- "total_tests": 3,
- "passed_tests": 3,
- "category": "schema",
- "route_api_model": "grok-code-fast-1",
- "scorer_details": {
- "schema_parity": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "reducers_diff": null,
- "reducers_equal": true,
- "tables_diff": null,
- "tables_equal": true
- }
- },
- "constraints_row_parity_after_seed": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "args": [],
- "golden_out": "id | email | name ----+-----------------+--------- 1 | \"a@example.com\" | \"Alice\"",
- "llm_out": "id | email | name ----+-----------------+--------- 1 | \"a@example.com\" | \"Alice\"",
- "query": "SELECT id, email, name FROM account WHERE id=1",
- "reducer": "seed"
- }
- },
- "constraints_seed_two_rows": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "actual": 1,
- "expected": 1,
- "sql": "SELECT COUNT(*) AS n FROM account WHERE id=2"
- }
- }
- },
- "vendor": "xai"
- },
- "t_019_many_to_many": {
- "hash": "f0986524ee7bda1802573e7e4794bd56933365fb35e4af7c830014214cb8ec77",
- "task": "t_019_many_to_many",
- "lang": "typescript",
- "golden_published": true,
- "model_name": "Grok Code",
- "total_tests": 5,
- "passed_tests": 5,
- "category": "schema",
- "route_api_model": "grok-code-fast-1",
- "scorer_details": {
- "m2m_has_1_20": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "actual": 1,
- "expected": 1,
- "sql": "SELECT COUNT(*) AS n FROM membership WHERE userId=1 AND groupId=20"
- }
- },
- "m2m_has_2_20": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "actual": 1,
- "expected": 1,
- "sql": "SELECT COUNT(*) AS n FROM membership WHERE userId=2 AND groupId=20"
- }
- },
- "schema_parity": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "reducers_diff": null,
- "reducers_equal": true,
- "tables_diff": null,
- "tables_equal": true
- }
- },
- "m2m_has_1_10": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "actual": 1,
- "expected": 1,
- "sql": "SELECT COUNT(*) AS n FROM membership WHERE userId=1 AND groupId=10"
- }
- },
- "memberships_three_rows": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "actual": 3,
- "expected": 3,
- "sql": "SELECT COUNT(*) AS n FROM membership"
- }
- }
- },
- "vendor": "xai"
- },
- "t_020_ecs": {
- "hash": "f0986524ee7bda1802573e7e4794bd56933365fb35e4af7c830014214cb8ec77",
- "task": "t_020_ecs",
- "lang": "typescript",
- "golden_published": true,
- "model_name": "Grok Code",
- "total_tests": 5,
- "passed_tests": 5,
- "category": "schema",
- "route_api_model": "grok-code-fast-1",
- "scorer_details": {
- "ecs_next_pos_entity2": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "actual": 1,
- "expected": 1,
- "sql": "SELECT COUNT(*) AS n FROM nextPosition WHERE entityId=2 AND x=8 AND y=3"
- }
- },
- "ecs_next_pos_entity1": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "actual": 1,
- "expected": 1,
- "sql": "SELECT COUNT(*) AS n FROM nextPosition WHERE entityId=1 AND x=1 AND y=0"
- }
- },
- "ecs_seed_position_count": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "actual": 2,
- "expected": 2,
- "sql": "SELECT COUNT(*) AS n FROM position"
- }
- },
- "schema_parity": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "reducers_diff": null,
- "reducers_equal": true,
- "tables_diff": null,
- "tables_equal": true
- }
- },
- "ecs_step_next_position_count": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "actual": 2,
- "expected": 2,
- "sql": "SELECT COUNT(*) AS n FROM nextPosition"
- }
- }
- },
- "vendor": "xai"
- },
- "t_021_multi_column_index": {
- "hash": "f0986524ee7bda1802573e7e4794bd56933365fb35e4af7c830014214cb8ec77",
- "task": "t_021_multi_column_index",
- "lang": "typescript",
- "golden_published": true,
- "model_name": "Grok Code",
- "total_tests": 4,
- "passed_tests": 4,
- "category": "schema",
- "route_api_model": "grok-code-fast-1",
- "scorer_details": {
- "mcindex_seed_count": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "actual": 3,
- "expected": 3,
- "sql": "SELECT COUNT(*) AS n FROM log"
- }
- },
- "mcindex_lookup_u7_d1": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "actual": 1,
- "expected": 1,
- "sql": "SELECT COUNT(*) AS n FROM log WHERE userId=7 AND day=1"
- }
- },
- "schema_parity": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "reducers_diff": null,
- "reducers_equal": true,
- "tables_diff": null,
- "tables_equal": true
- }
- },
- "mcindex_lookup_u7_d2": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "actual": 1,
- "expected": 1,
- "sql": "SELECT COUNT(*) AS n FROM log WHERE userId=7 AND day=2"
- }
- }
- },
- "vendor": "xai"
- }
- }
- },
- {
- "name": "Gemini 3 Flash",
- "route_api_model": "google/gemini-3-flash-preview",
- "tasks": {
- "t_000_empty_reducers": {
- "hash": "4fc194f370ec8318bb9b257e2e31aa8ead0dec6b437bd32ff93613e39b0c819f",
- "task": "t_000_empty_reducers",
- "lang": "typescript",
- "golden_published": true,
- "model_name": "Gemini 3 Flash",
- "total_tests": 1,
- "passed_tests": 1,
- "category": "basics",
- "route_api_model": "google/gemini-3-flash-preview",
- "scorer_details": {
- "schema_parity": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "reducers_diff": null,
- "reducers_equal": true,
- "tables_diff": null,
- "tables_equal": true
- }
- }
- },
- "vendor": "meta"
- },
- "t_001_basic_tables": {
- "hash": "4fc194f370ec8318bb9b257e2e31aa8ead0dec6b437bd32ff93613e39b0c819f",
- "task": "t_001_basic_tables",
- "lang": "typescript",
- "golden_published": true,
- "model_name": "Gemini 3 Flash",
- "total_tests": 1,
- "passed_tests": 1,
- "category": "basics",
- "route_api_model": "google/gemini-3-flash-preview",
- "scorer_details": {
- "schema_parity": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "reducers_diff": null,
- "reducers_equal": true,
- "tables_diff": null,
- "tables_equal": true
- }
- }
- },
- "vendor": "meta"
- },
- "t_002_scheduled_table": {
- "hash": "4fc194f370ec8318bb9b257e2e31aa8ead0dec6b437bd32ff93613e39b0c819f",
- "task": "t_002_scheduled_table",
- "lang": "typescript",
- "golden_published": false,
- "model_name": "Gemini 3 Flash",
- "total_tests": 1,
- "passed_tests": 0,
- "llm_output": "import { schema, table, t, ScheduleAt } from 'spacetimedb';\n\nconst tickTimer = table(\n {\n name: 'tickTimer',\n scheduled: (): any => tick,\n },\n {\n scheduledId: t.u64().primaryKey().autoInc(),\n scheduledAt: t.scheduleAt(),\n }\n);\n\nconst spacetimedb = schema({ tickTimer });\nexport default spacetimedb;\n\nexport const tick = spacetimedb.reducer({ arg: tickTimer.rowType }, (ctx, { arg }) => {\n // Reducer logic for each 50ms tick\n});\n\nexport const init = spacetimedb.init((ctx) => {\n ctx.db.tickTimer.insert({\n scheduledId: 0n,\n scheduledAt: ScheduleAt.interval(50n),\n });\n});",
- "category": "basics",
- "route_api_model": "google/gemini-3-flash-preview",
- "scorer_details": {
- "publish_error": {
- "pass": false,
- "partial": 0.0,
- "notes": {
- "error": "spacetime publish (typescript) failed (exit=1)\n--- stderr ---\ntsc not found in node_modules. Make sure you have the `typescript` package as a dev-dependency and that your dependencies are installed.\nError: Your module doesn't import the `spacetimedb/server` package at all - this is likely a mistake, as your module will not be able to interface with the SpacetimeDB host.\n\n--- stdout ---\n",
- "phase": "build_or_publish"
- }
- }
- },
- "vendor": "meta"
- },
- "t_003_struct_in_table": {
- "hash": "4fc194f370ec8318bb9b257e2e31aa8ead0dec6b437bd32ff93613e39b0c819f",
- "task": "t_003_struct_in_table",
- "lang": "typescript",
- "golden_published": true,
- "model_name": "Gemini 3 Flash",
- "total_tests": 1,
- "passed_tests": 1,
- "category": "basics",
- "route_api_model": "google/gemini-3-flash-preview",
- "scorer_details": {
- "schema_parity": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "reducers_diff": null,
- "reducers_equal": true,
- "tables_diff": null,
- "tables_equal": true
- }
- }
- },
- "vendor": "meta"
- },
- "t_004_insert": {
- "hash": "4fc194f370ec8318bb9b257e2e31aa8ead0dec6b437bd32ff93613e39b0c819f",
- "task": "t_004_insert",
- "lang": "typescript",
- "golden_published": true,
- "model_name": "Gemini 3 Flash",
- "total_tests": 2,
- "passed_tests": 2,
- "category": "basics",
- "route_api_model": "google/gemini-3-flash-preview",
- "scorer_details": {
- "schema_parity": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "reducers_diff": null,
- "reducers_equal": true,
- "tables_diff": null,
- "tables_equal": true
- }
- },
- "data_parity_insert_user": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "args": [
- 1,
- "Alice",
- 30,
- true
- ],
- "golden_out": "id | name | age | active ----+---------+-----+-------- 1 | \"Alice\" | 30 | true",
- "llm_out": "id | name | age | active ----+---------+-----+-------- 1 | \"Alice\" | 30 | true",
- "query": "SELECT id, name, age, active FROM user WHERE id=1",
- "reducer": "insert_user"
- }
- }
- },
- "vendor": "meta"
- },
- "t_005_update": {
- "hash": "4fc194f370ec8318bb9b257e2e31aa8ead0dec6b437bd32ff93613e39b0c819f",
- "task": "t_005_update",
- "lang": "typescript",
- "golden_published": true,
- "model_name": "Gemini 3 Flash",
- "total_tests": 3,
- "passed_tests": 3,
- "category": "basics",
- "route_api_model": "google/gemini-3-flash-preview",
- "scorer_details": {
- "data_parity_update_user": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "args": [
- 1,
- "Alice2",
- 31,
- false
- ],
- "golden_out": "id | name | age | active ----+----------+-----+-------- 1 | \"Alice2\" | 31 | false",
- "llm_out": "id | name | age | active ----+----------+-----+-------- 1 | \"Alice2\" | 31 | false",
- "query": "SELECT id, name, age, active FROM user WHERE id=1",
- "reducer": "update_user"
- }
- },
- "schema_parity": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "reducers_diff": null,
- "reducers_equal": true,
- "tables_diff": null,
- "tables_equal": true
- }
- },
- "seed_users_row": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "sql": "INSERT INTO user(id, name, age, active) VALUES (1, 'Alice', 30, true)"
- }
- }
- },
- "vendor": "meta"
- },
- "t_006_delete": {
- "hash": "4fc194f370ec8318bb9b257e2e31aa8ead0dec6b437bd32ff93613e39b0c819f",
- "task": "t_006_delete",
- "lang": "typescript",
- "golden_published": true,
- "model_name": "Gemini 3 Flash",
- "total_tests": 3,
- "passed_tests": 3,
- "category": "basics",
- "route_api_model": "google/gemini-3-flash-preview",
- "scorer_details": {
- "schema_parity": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "reducers_diff": null,
- "reducers_equal": true,
- "tables_diff": null,
- "tables_equal": true
- }
- },
- "seed_users_row": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "sql": "INSERT INTO user(id, name, age, active) VALUES (1, 'Alice', 30, true)"
- }
- },
- "delete_user_count_zero": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "actual": 0,
- "expected": 0,
- "sql": "SELECT COUNT(*) AS n FROM user WHERE id=1"
- }
- }
- },
- "vendor": "meta"
- },
- "t_007_crud": {
- "hash": "4fc194f370ec8318bb9b257e2e31aa8ead0dec6b437bd32ff93613e39b0c819f",
- "task": "t_007_crud",
- "lang": "typescript",
- "golden_published": true,
- "model_name": "Gemini 3 Flash",
- "total_tests": 4,
- "passed_tests": 4,
- "category": "basics",
- "route_api_model": "google/gemini-3-flash-preview",
- "scorer_details": {
- "crud_row_id2_deleted": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "actual": 0,
- "expected": 0,
- "sql": "SELECT COUNT(*) AS n FROM user WHERE id=2"
- }
- },
- "schema_parity": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "reducers_diff": null,
- "reducers_equal": true,
- "tables_diff": null,
- "tables_equal": true
- }
- },
- "crud_row_id1_parity": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "args": [],
- "golden_out": "id | name | age | active ----+----------+-----+-------- 1 | \"Alice2\" | 31 | false",
- "llm_out": "id | name | age | active ----+----------+-----+-------- 1 | \"Alice2\" | 31 | false",
- "query": "SELECT id, name, age, active FROM user WHERE id=1",
- "reducer": "crud"
- }
- },
- "crud_total_count_one": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "actual": 1,
- "expected": 1,
- "sql": "SELECT COUNT(*) AS n FROM user"
- }
- }
- },
- "vendor": "meta"
- },
- "t_008_index_lookup": {
- "hash": "4fc194f370ec8318bb9b257e2e31aa8ead0dec6b437bd32ff93613e39b0c819f",
- "task": "t_008_index_lookup",
- "lang": "typescript",
- "golden_published": true,
- "model_name": "Gemini 3 Flash",
- "total_tests": 3,
- "passed_tests": 3,
- "category": "basics",
- "route_api_model": "google/gemini-3-flash-preview",
- "scorer_details": {
- "index_lookup_projection_parity": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "args": [
- 1
- ],
- "golden_out": "id | name ----+--------- 1 | \"Alice\"",
- "llm_out": "id | name ----+--------- 1 | \"Alice\"",
- "query": "SELECT id, name FROM result WHERE id=1",
- "reducer": "lookup_user_name"
- }
- },
- "schema_parity": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "reducers_diff": null,
- "reducers_equal": true,
- "tables_diff": null,
- "tables_equal": true
- }
- },
- "seed_user_row": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "sql": "INSERT INTO user(id, name, age, active) VALUES (1, 'Alice', 30, true)"
- }
- }
- },
- "vendor": "meta"
- },
- "t_009_init": {
- "hash": "4fc194f370ec8318bb9b257e2e31aa8ead0dec6b437bd32ff93613e39b0c819f",
- "task": "t_009_init",
- "lang": "typescript",
- "golden_published": true,
- "model_name": "Gemini 3 Flash",
- "total_tests": 4,
- "passed_tests": 4,
- "category": "basics",
- "route_api_model": "google/gemini-3-flash-preview",
- "scorer_details": {
- "init_seed_alice": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "actual": 1,
- "expected": 1,
- "sql": "SELECT COUNT(*) AS n FROM user WHERE id=1 AND name='Alice' AND age=30 AND active=true"
- }
- },
- "init_total_two": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "actual": 2,
- "expected": 2,
- "sql": "SELECT COUNT(*) AS n FROM user"
- }
- },
- "schema_parity": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "reducers_diff": null,
- "reducers_equal": true,
- "tables_diff": null,
- "tables_equal": true
- }
- },
- "init_seed_bob": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "actual": 1,
- "expected": 1,
- "sql": "SELECT COUNT(*) AS n FROM user WHERE id=2 AND name='Bob' AND age=22 AND active=false"
- }
- }
- },
- "vendor": "meta"
- },
- "t_010_connect": {
- "hash": "4fc194f370ec8318bb9b257e2e31aa8ead0dec6b437bd32ff93613e39b0c819f",
- "task": "t_010_connect",
- "lang": "typescript",
- "golden_published": true,
- "model_name": "Gemini 3 Flash",
- "total_tests": 1,
- "passed_tests": 0,
- "llm_output": "import { schema, table, t } from 'spacetimedb/server';\n\nconst event = table(\n { name: 'event', public: true },\n {\n id: t.u64().primaryKey().autoInc(),\n kind: t.string(),\n }\n);\n\nconst spacetimedb = schema({ event });\nexport default spacetimedb;\n\nexport const clientConnected = spacetimedb.clientConnected((ctx) => {\n ctx.db.event.insert({\n id: 0n,\n kind: 'connected',\n });\n});\n\nexport const clientDisconnected = spacetimedb.clientDisconnected((ctx) => {\n ctx.db.event.insert({\n id: 0n,\n kind: 'disconnected',\n });\n});",
- "category": "basics",
- "route_api_model": "google/gemini-3-flash-preview",
- "scorer_details": {
- "schema_parity": {
- "pass": false,
- "partial": 0.0,
- "notes": {
- "reducers_diff": {
- "only_golden": [
- "on_connect()",
- "on_disconnect()"
- ],
- "only_llm": [
- "client_connected()",
- "client_disconnected()"
- ]
- },
- "reducers_equal": false,
- "tables_diff": null,
- "tables_equal": true
- }
- }
- },
- "vendor": "meta"
- },
- "t_011_helper_function": {
- "hash": "4fc194f370ec8318bb9b257e2e31aa8ead0dec6b437bd32ff93613e39b0c819f",
- "task": "t_011_helper_function",
- "lang": "typescript",
- "golden_published": true,
- "model_name": "Gemini 3 Flash",
- "total_tests": 3,
- "passed_tests": 3,
- "category": "basics",
- "route_api_model": "google/gemini-3-flash-preview",
- "scorer_details": {
- "helper_func_sum_abs": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "actual": 1,
- "expected": 1,
- "sql": "SELECT COUNT(*) AS n FROM result WHERE id=1 AND sum=5"
- }
- },
- "schema_parity": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "reducers_diff": null,
- "reducers_equal": true,
- "tables_diff": null,
- "tables_equal": true
- }
- },
- "helper_func_sum_parity": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "args": [
- 1,
- 2,
- 3
- ],
- "golden_out": "id | sum ----+----- 1 | 5",
- "llm_out": "id | sum ----+----- 1 | 5",
- "query": "SELECT id, sum FROM result WHERE id=1",
- "reducer": "compute_sum"
- }
- }
- },
- "vendor": "meta"
- },
- "t_012_spacetime_product_type": {
- "hash": "4fc194f370ec8318bb9b257e2e31aa8ead0dec6b437bd32ff93613e39b0c819f",
- "task": "t_012_spacetime_product_type",
- "lang": "typescript",
- "golden_published": true,
- "model_name": "Gemini 3 Flash",
- "total_tests": 3,
- "passed_tests": 3,
- "category": "schema",
- "route_api_model": "google/gemini-3-flash-preview",
- "scorer_details": {
- "product_type_row_count": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "actual": 1,
- "expected": 1,
- "sql": "SELECT COUNT(*) AS n FROM result WHERE id=1"
- }
- },
- "schema_parity": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "reducers_diff": null,
- "reducers_equal": true,
- "tables_diff": null,
- "tables_equal": true
- }
- },
- "product_type_row_parity": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "args": [
- 1,
- 2,
- 3
- ],
- "golden_out": "id | value ----+----------------------- 1 | (left = 2, right = 3)",
- "llm_out": "id | value ----+----------------------- 1 | (left = 2, right = 3)",
- "query": "SELECT id, value FROM result WHERE id=1",
- "reducer": "set_score"
- }
- }
- },
- "vendor": "meta"
- },
- "t_013_spacetime_sum_type": {
- "hash": "4fc194f370ec8318bb9b257e2e31aa8ead0dec6b437bd32ff93613e39b0c819f",
- "task": "t_013_spacetime_sum_type",
- "lang": "typescript",
- "golden_published": false,
- "model_name": "Gemini 3 Flash",
- "total_tests": 3,
- "passed_tests": 0,
- "llm_output": "import { schema, table, t } from 'spacetimedb/server';\n\nconst Rect = t.object('Rect', {\n width: t.i32(),\n height: t.i32()\n});\n\nconst Shape = t.enum('Shape', [\n { circle: t.i32() },\n { rectangle: Rect }\n]);\n\nconst result = table(\n { name: 'result', public: true },\n {\n id: t.i32().primaryKey(),\n value: Shape\n }\n);\n\nconst spacetimedb = schema({ result });\nexport default spacetimedb;\n\nexport const setCircle = spacetimedb.reducer({ id: t.i32(), radius: t.i32() }, (ctx, { id, radius }) => {\n ctx.db.result.insert({\n id,\n value: { tag: 'circle', value: radius }\n });\n});",
- "category": "schema",
- "route_api_model": "google/gemini-3-flash-preview",
- "scorer_details": {
- "publish_error": {
- "pass": false,
- "partial": 0.0,
- "notes": {
- "error": "spacetime publish (typescript) failed (exit=1)\n--- stderr ---\ntsc not found in node_modules. Make sure you have the `typescript` package as a dev-dependency and that your dependencies are installed.\nError: Errors occurred:\nerror at typespace ref `&1`: type ([object Object]: ()) contains identifier error Identifier `[object Object]`'s starting character '[' is neither an underscore ('_') nor a Unicode XID_start character (according to Unicode Standard Annex 31, https://www.unicode.org/reports/tr31/) and cannot be used for entities in a module.\n\n\n\nCaused by:\n HTTP status server error (500 Internal Server Error) for url (http://127.0.0.1:52620/v1/database/schema-t-013-spacetime-sum-type-gemini-3-flash-llm?clear=true&host_type=Js)\n\n--- stdout ---\nBuild finished successfully.\nUploading to http://127.0.0.1:52620 => http://127.0.0.1:52620\nThis will DESTROY the current schema-t-013-spacetime-sum-type-gemini-3-flash-llm module, and ALL corresponding data.\nSkipping confirmation due to --yes\nPublishing module...\nJavaScript / TypeScript support is currently in BETA.\nThere may be bugs. Please file issues if you encounter any.\n\n",
- "phase": "build_or_publish"
- }
- }
- },
- "vendor": "meta"
- },
- "t_014_elementary_columns": {
- "hash": "4fc194f370ec8318bb9b257e2e31aa8ead0dec6b437bd32ff93613e39b0c819f",
- "task": "t_014_elementary_columns",
- "lang": "typescript",
- "golden_published": true,
- "model_name": "Gemini 3 Flash",
- "total_tests": 3,
- "passed_tests": 3,
- "category": "schema",
- "route_api_model": "google/gemini-3-flash-preview",
- "scorer_details": {
- "schema_parity": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "reducers_diff": null,
- "reducers_equal": true,
- "tables_diff": null,
- "tables_equal": true
- }
- },
- "elementary_columns_row_parity": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "args": [],
- "golden_out": "id | count | total | price | ratio | active | name ----+-------+------------+-------+-------+--------+--------- 1 | 2 | 3000000000 | 1.5 | 2.25 | true | \"Alice\"",
- "llm_out": "id | count | total | price | ratio | active | name ----+-------+------------+-------+-------+--------+--------- 1 | 2 | 3000000000 | 1.5 | 2.25 | true | \"Alice\"",
- "query": "SELECT id, count, total, price, ratio, active, name FROM primitive WHERE id=1",
- "reducer": "seed"
- }
- },
- "elementary_columns_row_count": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "actual": 1,
- "expected": 1,
- "sql": "SELECT COUNT(*) AS n FROM primitive WHERE id=1"
- }
- }
- },
- "vendor": "meta"
- },
- "t_015_product_type_columns": {
- "hash": "4fc194f370ec8318bb9b257e2e31aa8ead0dec6b437bd32ff93613e39b0c819f",
- "task": "t_015_product_type_columns",
- "lang": "typescript",
- "golden_published": true,
- "model_name": "Gemini 3 Flash",
- "total_tests": 3,
- "passed_tests": 3,
- "category": "schema",
- "route_api_model": "google/gemini-3-flash-preview",
- "scorer_details": {
- "product_type_columns_row_parity": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "args": [],
- "golden_out": "id | home | work | pos ----+----------------------------------+-----------------------------------+---------------- 1 | (street = \"1 Main\", zip = 11111) | (street = \"2 Broad\", zip = 22222) | (x = 7, y = 9)",
- "llm_out": "id | home | work | pos ----+----------------------------------+-----------------------------------+---------------- 1 | (street = \"1 Main\", zip = 11111) | (street = \"2 Broad\", zip = 22222) | (x = 7, y = 9)",
- "query": "SELECT id, home, work, pos FROM profile WHERE id=1",
- "reducer": "seed"
- }
- },
- "schema_parity": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "reducers_diff": null,
- "reducers_equal": true,
- "tables_diff": null,
- "tables_equal": true
- }
- },
- "product_type_columns_row_count": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "actual": 1,
- "expected": 1,
- "sql": "SELECT COUNT(*) AS n FROM profile WHERE id=1"
- }
- }
- },
- "vendor": "meta"
- },
- "t_016_sum_type_columns": {
- "hash": "4fc194f370ec8318bb9b257e2e31aa8ead0dec6b437bd32ff93613e39b0c819f",
- "task": "t_016_sum_type_columns",
- "lang": "typescript",
- "golden_published": false,
- "model_name": "Gemini 3 Flash",
- "total_tests": 3,
- "passed_tests": 0,
- "llm_output": "import { schema, table, t } from 'spacetimedb/server';\n\nconst Rect = t.object('Rect', {\n width: t.i32(),\n height: t.i32()\n});\n\nconst Shape = t.enum('Shape', [\n { circle: t.i32() },\n { rectangle: Rect }\n]);\n\nconst drawing = table(\n { name: 'drawing', public: true },\n {\n id: t.i32().primaryKey(),\n a: Shape,\n b: Shape\n }\n);\n\nconst spacetimedb = schema({ drawing });\nexport default spacetimedb;\n\nexport const seed = spacetimedb.reducer((ctx) => {\n ctx.db.drawing.insert({\n id: 1,\n a: { tag: 'circle', value: 10 },\n b: { tag: 'rectangle', value: { width: 4, height: 6 } }\n });\n});",
- "category": "schema",
- "route_api_model": "google/gemini-3-flash-preview",
- "scorer_details": {
- "publish_error": {
- "pass": false,
- "partial": 0.0,
- "notes": {
- "error": "spacetime publish (typescript) failed (exit=1)\n--- stderr ---\ntsc not found in node_modules. Make sure you have the `typescript` package as a dev-dependency and that your dependencies are installed.\nError: Errors occurred:\nerror at typespace ref `&1`: type ([object Object]: ()) contains identifier error Identifier `[object Object]`'s starting character '[' is neither an underscore ('_') nor a Unicode XID_start character (according to Unicode Standard Annex 31, https://www.unicode.org/reports/tr31/) and cannot be used for entities in a module.\n\n\n\nCaused by:\n HTTP status server error (500 Internal Server Error) for url (http://127.0.0.1:52620/v1/database/schema-t-016-sum-type-columns-gemini-3-flash-llm?clear=true&host_type=Js)\n\n--- stdout ---\nBuild finished successfully.\nUploading to http://127.0.0.1:52620 => http://127.0.0.1:52620\nThis will DESTROY the current schema-t-016-sum-type-columns-gemini-3-flash-llm module, and ALL corresponding data.\nSkipping confirmation due to --yes\nPublishing module...\nJavaScript / TypeScript support is currently in BETA.\nThere may be bugs. Please file issues if you encounter any.\n\n",
- "phase": "build_or_publish"
- }
- }
- },
- "vendor": "meta"
- },
- "t_017_scheduled_columns": {
- "hash": "4fc194f370ec8318bb9b257e2e31aa8ead0dec6b437bd32ff93613e39b0c819f",
- "task": "t_017_scheduled_columns",
- "lang": "typescript",
- "golden_published": true,
- "model_name": "Gemini 3 Flash",
- "total_tests": 2,
- "passed_tests": 2,
- "category": "schema",
- "route_api_model": "google/gemini-3-flash-preview",
- "scorer_details": {
- "schema_parity": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "reducers_diff": null,
- "reducers_equal": true,
- "tables_diff": null,
- "tables_equal": true
- }
- },
- "scheduled_seeded_one_row": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "actual": 1,
- "expected": 1,
- "sql": "SELECT COUNT(*) AS n FROM tickTimer WHERE scheduledId>=0"
- }
- }
- },
- "vendor": "meta"
- },
- "t_018_constraints": {
- "hash": "4fc194f370ec8318bb9b257e2e31aa8ead0dec6b437bd32ff93613e39b0c819f",
- "task": "t_018_constraints",
- "lang": "typescript",
- "golden_published": true,
- "model_name": "Gemini 3 Flash",
- "total_tests": 3,
- "passed_tests": 3,
- "category": "schema",
- "route_api_model": "google/gemini-3-flash-preview",
- "scorer_details": {
- "schema_parity": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "reducers_diff": null,
- "reducers_equal": true,
- "tables_diff": null,
- "tables_equal": true
- }
- },
- "constraints_row_parity_after_seed": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "args": [],
- "golden_out": "id | email | name ----+-----------------+--------- 1 | \"a@example.com\" | \"Alice\"",
- "llm_out": "id | email | name ----+-----------------+--------- 1 | \"a@example.com\" | \"Alice\"",
- "query": "SELECT id, email, name FROM account WHERE id=1",
- "reducer": "seed"
- }
- },
- "constraints_seed_two_rows": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "actual": 1,
- "expected": 1,
- "sql": "SELECT COUNT(*) AS n FROM account WHERE id=2"
- }
- }
- },
- "vendor": "meta"
- },
- "t_019_many_to_many": {
- "hash": "4fc194f370ec8318bb9b257e2e31aa8ead0dec6b437bd32ff93613e39b0c819f",
- "task": "t_019_many_to_many",
- "lang": "typescript",
- "golden_published": true,
- "model_name": "Gemini 3 Flash",
- "total_tests": 5,
- "passed_tests": 5,
- "category": "schema",
- "route_api_model": "google/gemini-3-flash-preview",
- "scorer_details": {
- "m2m_has_1_20": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "actual": 1,
- "expected": 1,
- "sql": "SELECT COUNT(*) AS n FROM membership WHERE userId=1 AND groupId=20"
- }
- },
- "m2m_has_2_20": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "actual": 1,
- "expected": 1,
- "sql": "SELECT COUNT(*) AS n FROM membership WHERE userId=2 AND groupId=20"
- }
- },
- "schema_parity": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "reducers_diff": null,
- "reducers_equal": true,
- "tables_diff": null,
- "tables_equal": true
- }
- },
- "m2m_has_1_10": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "actual": 1,
- "expected": 1,
- "sql": "SELECT COUNT(*) AS n FROM membership WHERE userId=1 AND groupId=10"
- }
- },
- "memberships_three_rows": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "actual": 3,
- "expected": 3,
- "sql": "SELECT COUNT(*) AS n FROM membership"
- }
- }
- },
- "vendor": "meta"
- },
- "t_020_ecs": {
- "hash": "4fc194f370ec8318bb9b257e2e31aa8ead0dec6b437bd32ff93613e39b0c819f",
- "task": "t_020_ecs",
- "lang": "typescript",
- "golden_published": true,
- "model_name": "Gemini 3 Flash",
- "total_tests": 5,
- "passed_tests": 5,
- "category": "schema",
- "route_api_model": "google/gemini-3-flash-preview",
- "scorer_details": {
- "ecs_next_pos_entity2": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "actual": 1,
- "expected": 1,
- "sql": "SELECT COUNT(*) AS n FROM nextPosition WHERE entityId=2 AND x=8 AND y=3"
- }
- },
- "ecs_next_pos_entity1": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "actual": 1,
- "expected": 1,
- "sql": "SELECT COUNT(*) AS n FROM nextPosition WHERE entityId=1 AND x=1 AND y=0"
- }
- },
- "ecs_seed_position_count": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "actual": 2,
- "expected": 2,
- "sql": "SELECT COUNT(*) AS n FROM position"
- }
- },
- "schema_parity": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "reducers_diff": null,
- "reducers_equal": true,
- "tables_diff": null,
- "tables_equal": true
- }
- },
- "ecs_step_next_position_count": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "actual": 2,
- "expected": 2,
- "sql": "SELECT COUNT(*) AS n FROM nextPosition"
- }
- }
- },
- "vendor": "meta"
- },
- "t_021_multi_column_index": {
- "hash": "4fc194f370ec8318bb9b257e2e31aa8ead0dec6b437bd32ff93613e39b0c819f",
- "task": "t_021_multi_column_index",
- "lang": "typescript",
- "golden_published": true,
- "model_name": "Gemini 3 Flash",
- "total_tests": 4,
- "passed_tests": 4,
- "category": "schema",
- "route_api_model": "google/gemini-3-flash-preview",
- "scorer_details": {
- "mcindex_seed_count": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "actual": 3,
- "expected": 3,
- "sql": "SELECT COUNT(*) AS n FROM log"
- }
- },
- "mcindex_lookup_u7_d1": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "actual": 1,
- "expected": 1,
- "sql": "SELECT COUNT(*) AS n FROM log WHERE userId=7 AND day=1"
- }
- },
- "schema_parity": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "reducers_diff": null,
- "reducers_equal": true,
- "tables_diff": null,
- "tables_equal": true
- }
- },
- "mcindex_lookup_u7_d2": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "actual": 1,
- "expected": 1,
- "sql": "SELECT COUNT(*) AS n FROM log WHERE userId=7 AND day=2"
- }
- }
- },
- "vendor": "meta"
- }
- }
- },
- {
- "name": "Gemini 3.1 Pro",
- "route_api_model": "google/gemini-3.1-pro-preview",
- "tasks": {
- "t_000_empty_reducers": {
- "hash": "4fc194f370ec8318bb9b257e2e31aa8ead0dec6b437bd32ff93613e39b0c819f",
- "task": "t_000_empty_reducers",
- "lang": "typescript",
- "golden_published": true,
- "model_name": "Gemini 3.1 Pro",
- "total_tests": 1,
- "passed_tests": 1,
- "category": "basics",
- "route_api_model": "google/gemini-3.1-pro-preview",
- "scorer_details": {
- "schema_parity": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "reducers_diff": null,
- "reducers_equal": true,
- "tables_diff": null,
- "tables_equal": true
- }
- }
- },
- "vendor": "meta"
- },
- "t_001_basic_tables": {
- "hash": "4fc194f370ec8318bb9b257e2e31aa8ead0dec6b437bd32ff93613e39b0c819f",
- "task": "t_001_basic_tables",
- "lang": "typescript",
- "golden_published": true,
- "model_name": "Gemini 3.1 Pro",
- "total_tests": 1,
- "passed_tests": 1,
- "category": "basics",
- "route_api_model": "google/gemini-3.1-pro-preview",
- "scorer_details": {
- "schema_parity": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "reducers_diff": null,
- "reducers_equal": true,
- "tables_diff": null,
- "tables_equal": true
- }
- }
- },
- "vendor": "meta"
- },
- "t_002_scheduled_table": {
- "hash": "4fc194f370ec8318bb9b257e2e31aa8ead0dec6b437bd32ff93613e39b0c819f",
- "task": "t_002_scheduled_table",
- "lang": "typescript",
- "golden_published": true,
- "model_name": "Gemini 3.1 Pro",
- "total_tests": 1,
- "passed_tests": 1,
- "category": "basics",
- "route_api_model": "google/gemini-3.1-pro-preview",
- "scorer_details": {
- "schema_parity": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "reducers_diff": null,
- "reducers_equal": true,
- "tables_diff": null,
- "tables_equal": true
- }
- }
- },
- "vendor": "meta"
- },
- "t_003_struct_in_table": {
- "hash": "4fc194f370ec8318bb9b257e2e31aa8ead0dec6b437bd32ff93613e39b0c819f",
- "task": "t_003_struct_in_table",
- "lang": "typescript",
- "golden_published": true,
- "model_name": "Gemini 3.1 Pro",
- "total_tests": 1,
- "passed_tests": 1,
- "category": "basics",
- "route_api_model": "google/gemini-3.1-pro-preview",
- "scorer_details": {
- "schema_parity": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "reducers_diff": null,
- "reducers_equal": true,
- "tables_diff": null,
- "tables_equal": true
- }
- }
- },
- "vendor": "meta"
- },
- "t_004_insert": {
- "hash": "4fc194f370ec8318bb9b257e2e31aa8ead0dec6b437bd32ff93613e39b0c819f",
- "task": "t_004_insert",
- "lang": "typescript",
- "golden_published": true,
- "model_name": "Gemini 3.1 Pro",
- "total_tests": 2,
- "passed_tests": 2,
- "category": "basics",
- "route_api_model": "google/gemini-3.1-pro-preview",
- "scorer_details": {
- "schema_parity": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "reducers_diff": null,
- "reducers_equal": true,
- "tables_diff": null,
- "tables_equal": true
- }
- },
- "data_parity_insert_user": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "args": [
- 1,
- "Alice",
- 30,
- true
- ],
- "golden_out": "id | name | age | active ----+---------+-----+-------- 1 | \"Alice\" | 30 | true",
- "llm_out": "id | name | age | active ----+---------+-----+-------- 1 | \"Alice\" | 30 | true",
- "query": "SELECT id, name, age, active FROM user WHERE id=1",
- "reducer": "insert_user"
- }
- }
- },
- "vendor": "meta"
- },
- "t_005_update": {
- "hash": "4fc194f370ec8318bb9b257e2e31aa8ead0dec6b437bd32ff93613e39b0c819f",
- "task": "t_005_update",
- "lang": "typescript",
- "golden_published": true,
- "model_name": "Gemini 3.1 Pro",
- "total_tests": 3,
- "passed_tests": 1,
- "llm_output": "import { schema, table, t } from 'spacetimedb/server';\n\nconst user = table(\n { name: 'user' },\n {\n id: t.i32().primaryKey(),\n name: t.string(),\n age: t.i32(),\n active: t.bool(),\n }\n);\n\nconst spacetimedb = schema({ user });\nexport default spacetimedb;\n\nexport const updateUser = spacetimedb.reducer(\n { id: t.i32(), name: t.string(), age: t.i32(), active: t.bool() },\n (ctx, { id, name, age, active }) => {\n const existing = ctx.db.user.id.find(id);\n if (existing) {\n ctx.db.user.id.update({ id, name, age, active });\n }\n }\n);",
- "category": "basics",
- "route_api_model": "google/gemini-3.1-pro-preview",
- "scorer_details": {
- "data_parity_update_user": {
- "pass": false,
- "partial": 0.0,
- "notes": {
- "args": [
- 1,
- "Alice2",
- 31,
- false
- ],
- "golden_out": "id | name | age | active ----+----------+-----+-------- 1 | \"Alice2\" | 31 | false",
- "llm_out": "id | name | age | active ----+------+-----+--------",
- "query": "SELECT id, name, age, active FROM user WHERE id=1",
- "reducer": "update_user"
- }
- },
- "schema_parity": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "reducers_diff": null,
- "reducers_equal": true,
- "tables_diff": null,
- "tables_equal": true
- }
- },
- "seed_users_row": {
- "pass": false,
- "partial": 0.0,
- "notes": {
- "error": "spacetime sql failed:\nWARNING: This command is UNSTABLE and subject to breaking changes.\n\nError: IndexError: Unique constraint violation 'user_id_idx_btree' in table 'user': column(s): '[\"id\"]' value: 1\n\nCaused by:\n HTTP status client error (400 Bad Request) for url (http://127.0.0.1:52620/v1/database/c200886b2e3f2344ddf070ee0ddd8fedf289888e6ffd6ece476650e341a95371/sql)\n",
- "phase": "sql_golden",
- "sql": "INSERT INTO user(id, name, age, active) VALUES (1, 'Alice', 30, true)"
- }
- }
- },
- "vendor": "meta"
- },
- "t_006_delete": {
- "hash": "4fc194f370ec8318bb9b257e2e31aa8ead0dec6b437bd32ff93613e39b0c819f",
- "task": "t_006_delete",
- "lang": "typescript",
- "golden_published": true,
- "model_name": "Gemini 3.1 Pro",
- "total_tests": 3,
- "passed_tests": 3,
- "category": "basics",
- "route_api_model": "google/gemini-3.1-pro-preview",
- "scorer_details": {
- "schema_parity": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "reducers_diff": null,
- "reducers_equal": true,
- "tables_diff": null,
- "tables_equal": true
- }
- },
- "seed_users_row": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "sql": "INSERT INTO user(id, name, age, active) VALUES (1, 'Alice', 30, true)"
- }
- },
- "delete_user_count_zero": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "actual": 0,
- "expected": 0,
- "sql": "SELECT COUNT(*) AS n FROM user WHERE id=1"
- }
- }
- },
- "vendor": "meta"
- },
- "t_007_crud": {
- "hash": "4fc194f370ec8318bb9b257e2e31aa8ead0dec6b437bd32ff93613e39b0c819f",
- "task": "t_007_crud",
- "lang": "typescript",
- "golden_published": true,
- "model_name": "Gemini 3.1 Pro",
- "total_tests": 4,
- "passed_tests": 2,
- "llm_output": "import { schema, table, t } from 'spacetimedb/server';\n\nconst user = table(\n { name: 'user' },\n {\n id: t.i32().primaryKey(),\n name: t.string(),\n age: t.i32(),\n active: t.bool(),\n }\n);\n\nconst spacetimedb = schema({ user });\nexport default spacetimedb;\n\nexport const crud = spacetimedb.reducer((ctx) => {\n ctx.db.user.insert({ id: 1, name: \"Alice\", age: 30, active: true });\n ctx.db.user.insert({ id: 2, name: \"Bob\", age: 22, active: false });\n ctx.db.user.id.update({ id: 1, name: \"Alice2\", age: 31, active: false });\n ctx.db.user.id.delete(2);\n});",
- "category": "basics",
- "route_api_model": "google/gemini-3.1-pro-preview",
- "scorer_details": {
- "crud_row_id2_deleted": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "actual": 0,
- "expected": 0,
- "sql": "SELECT COUNT(*) AS n FROM user WHERE id=2"
- }
- },
- "schema_parity": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "reducers_diff": null,
- "reducers_equal": true,
- "tables_diff": null,
- "tables_equal": true
- }
- },
- "crud_row_id1_parity": {
- "pass": false,
- "partial": 0.0,
- "notes": {
- "error": "spacetime call failed:\nWARNING: This command is UNSTABLE and subject to breaking changes.\n\nError: Response text: The instance encountered a fatal error.\n\nCaused by:\n HTTP status server error (530 ) for url (http://127.0.0.1:52620/v1/database/c200258ae6e48e89f6a3299e7df0959bbd56effb5cffe76a195c6022a7de614e/call/crud)\n",
- "phase": "call_reducer_golden"
- }
- },
- "crud_total_count_one": {
- "pass": false,
- "partial": 0.0,
- "notes": {
- "actual": 0,
- "expected": 1,
- "sql": "SELECT COUNT(*) AS n FROM user"
- }
- }
- },
- "vendor": "meta"
- },
- "t_008_index_lookup": {
- "hash": "4fc194f370ec8318bb9b257e2e31aa8ead0dec6b437bd32ff93613e39b0c819f",
- "task": "t_008_index_lookup",
- "lang": "typescript",
- "golden_published": true,
- "model_name": "Gemini 3.1 Pro",
- "total_tests": 3,
- "passed_tests": 3,
- "category": "basics",
- "route_api_model": "google/gemini-3.1-pro-preview",
- "scorer_details": {
- "index_lookup_projection_parity": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "args": [
- 1
- ],
- "golden_out": "id | name ----+--------- 1 | \"Alice\"",
- "llm_out": "id | name ----+--------- 1 | \"Alice\"",
- "query": "SELECT id, name FROM result WHERE id=1",
- "reducer": "lookup_user_name"
- }
- },
- "schema_parity": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "reducers_diff": null,
- "reducers_equal": true,
- "tables_diff": null,
- "tables_equal": true
- }
- },
- "seed_user_row": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "sql": "INSERT INTO user(id, name, age, active) VALUES (1, 'Alice', 30, true)"
- }
- }
- },
- "vendor": "meta"
- },
- "t_009_init": {
- "hash": "4fc194f370ec8318bb9b257e2e31aa8ead0dec6b437bd32ff93613e39b0c819f",
- "task": "t_009_init",
- "lang": "typescript",
- "golden_published": true,
- "model_name": "Gemini 3.1 Pro",
- "total_tests": 4,
- "passed_tests": 4,
- "category": "basics",
- "route_api_model": "google/gemini-3.1-pro-preview",
- "scorer_details": {
- "init_seed_alice": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "actual": 1,
- "expected": 1,
- "sql": "SELECT COUNT(*) AS n FROM user WHERE id=1 AND name='Alice' AND age=30 AND active=true"
- }
- },
- "init_total_two": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "actual": 2,
- "expected": 2,
- "sql": "SELECT COUNT(*) AS n FROM user"
- }
- },
- "schema_parity": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "reducers_diff": null,
- "reducers_equal": true,
- "tables_diff": null,
- "tables_equal": true
- }
- },
- "init_seed_bob": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "actual": 1,
- "expected": 1,
- "sql": "SELECT COUNT(*) AS n FROM user WHERE id=2 AND name='Bob' AND age=22 AND active=false"
- }
- }
- },
- "vendor": "meta"
- },
- "t_010_connect": {
- "hash": "4fc194f370ec8318bb9b257e2e31aa8ead0dec6b437bd32ff93613e39b0c819f",
- "task": "t_010_connect",
- "lang": "typescript",
- "golden_published": true,
- "model_name": "Gemini 3.1 Pro",
- "total_tests": 1,
- "passed_tests": 0,
- "llm_output": "import { schema, table, t } from 'spacetimedb/server';\n\nconst event = table(\n { name: 'event' },\n {\n id: t.u64().primaryKey().autoInc(),\n kind: t.string(),\n }\n);\n\nconst spacetimedb = schema({ event });\nexport default spacetimedb;\n\nexport const clientConnected = spacetimedb.clientConnected((ctx) => {\n ctx.db.event.insert({\n id: 0n,\n kind: \"connected\",\n });\n});\n\nexport const clientDisconnected = spacetimedb.clientDisconnected((ctx) => {\n ctx.db.event.insert({\n id: 0n,\n kind: \"disconnected\",\n });\n});",
- "category": "basics",
- "route_api_model": "google/gemini-3.1-pro-preview",
- "scorer_details": {
- "schema_parity": {
- "pass": false,
- "partial": 0.0,
- "notes": {
- "reducers_diff": {
- "only_golden": [
- "on_connect()",
- "on_disconnect()"
- ],
- "only_llm": [
- "client_connected()",
- "client_disconnected()"
- ]
- },
- "reducers_equal": false,
- "tables_diff": null,
- "tables_equal": true
- }
- }
- },
- "vendor": "meta"
- },
- "t_011_helper_function": {
- "hash": "4fc194f370ec8318bb9b257e2e31aa8ead0dec6b437bd32ff93613e39b0c819f",
- "task": "t_011_helper_function",
- "lang": "typescript",
- "golden_published": true,
- "model_name": "Gemini 3.1 Pro",
- "total_tests": 3,
- "passed_tests": 3,
- "category": "basics",
- "route_api_model": "google/gemini-3.1-pro-preview",
- "scorer_details": {
- "helper_func_sum_parity": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "args": [
- 1,
- 2,
- 3
- ],
- "golden_out": "id | sum ----+----- 1 | 5",
- "llm_out": "id | sum ----+----- 1 | 5",
- "query": "SELECT id, sum FROM result WHERE id=1",
- "reducer": "compute_sum"
- }
- },
- "schema_parity": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "reducers_diff": null,
- "reducers_equal": true,
- "tables_diff": null,
- "tables_equal": true
- }
- },
- "helper_func_sum_abs": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "actual": 1,
- "expected": 1,
- "sql": "SELECT COUNT(*) AS n FROM result WHERE id=1 AND sum=5"
- }
- }
- },
- "vendor": "meta"
- },
- "t_012_spacetime_product_type": {
- "hash": "4fc194f370ec8318bb9b257e2e31aa8ead0dec6b437bd32ff93613e39b0c819f",
- "task": "t_012_spacetime_product_type",
- "lang": "typescript",
- "golden_published": true,
- "model_name": "Gemini 3.1 Pro",
- "total_tests": 3,
- "passed_tests": 3,
- "category": "schema",
- "route_api_model": "google/gemini-3.1-pro-preview",
- "scorer_details": {
- "product_type_row_count": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "actual": 1,
- "expected": 1,
- "sql": "SELECT COUNT(*) AS n FROM result WHERE id=1"
- }
- },
- "schema_parity": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "reducers_diff": null,
- "reducers_equal": true,
- "tables_diff": null,
- "tables_equal": true
- }
- },
- "product_type_row_parity": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "args": [
- 1,
- 2,
- 3
- ],
- "golden_out": "id | value ----+----------------------- 1 | (left = 2, right = 3)",
- "llm_out": "id | value ----+----------------------- 1 | (left = 2, right = 3)",
- "query": "SELECT id, value FROM result WHERE id=1",
- "reducer": "set_score"
- }
- }
- },
- "vendor": "meta"
- },
- "t_013_spacetime_sum_type": {
- "hash": "4fc194f370ec8318bb9b257e2e31aa8ead0dec6b437bd32ff93613e39b0c819f",
- "task": "t_013_spacetime_sum_type",
- "lang": "typescript",
- "golden_published": true,
- "model_name": "Gemini 3.1 Pro",
- "total_tests": 3,
- "passed_tests": 1,
- "llm_output": "import { schema, table, t } from 'spacetimedb/server';\n\nconst Rect = t.object('Rect', {\n width: t.i32(),\n height: t.i32(),\n});\n\nconst Shape = t.enum('Shape', {\n circle: t.i32(),\n rectangle: Rect,\n});\n\nconst result = table({ public: true }, {\n id: t.i32().primaryKey(),\n value: Shape,\n});\n\nconst spacetimedb = schema({ result });\nexport default spacetimedb;\n\nexport const setCircle = spacetimedb.reducer({ id: t.i32(), radius: t.i32() }, (ctx, { id, radius }) => {\n ctx.db.result.insert({\n id,\n value: { circle: radius }\n });\n});",
- "category": "schema",
- "route_api_model": "google/gemini-3.1-pro-preview",
- "scorer_details": {
- "schema_parity": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "reducers_diff": null,
- "reducers_equal": true,
- "tables_diff": null,
- "tables_equal": true
- }
- },
- "sum_type_row_parity": {
- "pass": false,
- "partial": 0.0,
- "notes": {
- "error": "spacetime call failed:\nWARNING: This command is UNSTABLE and subject to breaking changes.\n\nError: Response text: The instance encountered a fatal error.\n\nCaused by:\n HTTP status server error (530 ) for url (http://127.0.0.1:52620/v1/database/c200f58ab35aeaf0198d81edad605d27351d3848fe734b272362964e0af50880/call/set_circle)\n",
- "phase": "call_reducer_golden"
- }
- },
- "sum_type_row_count": {
- "pass": false,
- "partial": 0.0,
- "notes": {
- "actual": 0,
- "expected": 1,
- "sql": "SELECT COUNT(*) AS n FROM result WHERE id=1"
- }
- }
- },
- "vendor": "meta"
- },
- "t_014_elementary_columns": {
- "hash": "4fc194f370ec8318bb9b257e2e31aa8ead0dec6b437bd32ff93613e39b0c819f",
- "task": "t_014_elementary_columns",
- "lang": "typescript",
- "golden_published": true,
- "model_name": "Gemini 3.1 Pro",
- "total_tests": 3,
- "passed_tests": 3,
- "category": "schema",
- "route_api_model": "google/gemini-3.1-pro-preview",
- "scorer_details": {
- "schema_parity": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "reducers_diff": null,
- "reducers_equal": true,
- "tables_diff": null,
- "tables_equal": true
- }
- },
- "elementary_columns_row_parity": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "args": [],
- "golden_out": "id | count | total | price | ratio | active | name ----+-------+------------+-------+-------+--------+--------- 1 | 2 | 3000000000 | 1.5 | 2.25 | true | \"Alice\"",
- "llm_out": "id | count | total | price | ratio | active | name ----+-------+------------+-------+-------+--------+--------- 1 | 2 | 3000000000 | 1.5 | 2.25 | true | \"Alice\"",
- "query": "SELECT id, count, total, price, ratio, active, name FROM primitive WHERE id=1",
- "reducer": "seed"
- }
- },
- "elementary_columns_row_count": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "actual": 1,
- "expected": 1,
- "sql": "SELECT COUNT(*) AS n FROM primitive WHERE id=1"
- }
- }
- },
- "vendor": "meta"
- },
- "t_015_product_type_columns": {
- "hash": "4fc194f370ec8318bb9b257e2e31aa8ead0dec6b437bd32ff93613e39b0c819f",
- "task": "t_015_product_type_columns",
- "lang": "typescript",
- "golden_published": true,
- "model_name": "Gemini 3.1 Pro",
- "total_tests": 3,
- "passed_tests": 3,
- "category": "schema",
- "route_api_model": "google/gemini-3.1-pro-preview",
- "scorer_details": {
- "product_type_columns_row_parity": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "args": [],
- "golden_out": "id | home | work | pos ----+----------------------------------+-----------------------------------+---------------- 1 | (street = \"1 Main\", zip = 11111) | (street = \"2 Broad\", zip = 22222) | (x = 7, y = 9)",
- "llm_out": "id | home | work | pos ----+----------------------------------+-----------------------------------+---------------- 1 | (street = \"1 Main\", zip = 11111) | (street = \"2 Broad\", zip = 22222) | (x = 7, y = 9)",
- "query": "SELECT id, home, work, pos FROM profile WHERE id=1",
- "reducer": "seed"
- }
- },
- "schema_parity": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "reducers_diff": null,
- "reducers_equal": true,
- "tables_diff": null,
- "tables_equal": true
- }
- },
- "product_type_columns_row_count": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "actual": 1,
- "expected": 1,
- "sql": "SELECT COUNT(*) AS n FROM profile WHERE id=1"
- }
- }
- },
- "vendor": "meta"
- },
- "t_016_sum_type_columns": {
- "hash": "4fc194f370ec8318bb9b257e2e31aa8ead0dec6b437bd32ff93613e39b0c819f",
- "task": "t_016_sum_type_columns",
- "lang": "typescript",
- "golden_published": true,
- "model_name": "Gemini 3.1 Pro",
- "total_tests": 3,
- "passed_tests": 1,
- "llm_output": "import { schema, table, t } from 'spacetimedb/server';\n\nconst Rect = t.object('Rect', {\n width: t.i32(),\n height: t.i32()\n});\n\nconst Shape = t.enum('Shape', {\n circle: t.i32(),\n rectangle: Rect\n});\n\nconst drawing = table({ name: 'drawing' }, {\n id: t.i32().primaryKey(),\n a: Shape,\n b: Shape\n});\n\nconst spacetimedb = schema({ drawing });\nexport default spacetimedb;\n\nexport const seed = spacetimedb.reducer((ctx) => {\n ctx.db.drawing.insert({\n id: 1,\n a: Shape.circle(10),\n b: Shape.rectangle({ width: 4, height: 6 })\n });\n});",
- "category": "schema",
- "route_api_model": "google/gemini-3.1-pro-preview",
- "scorer_details": {
- "sum_type_columns_row_parity": {
- "pass": false,
- "partial": 0.0,
- "notes": {
- "error": "spacetime call failed:\nWARNING: This command is UNSTABLE and subject to breaking changes.\n\nError: Response text: The instance encountered a fatal error.\n\nCaused by:\n HTTP status server error (530 ) for url (http://127.0.0.1:52620/v1/database/c2009b00db35748e0584cfc37793d20ac8ac6f98c7a02c234e1a9b9e7c073568/call/seed)\n",
- "phase": "call_reducer_golden"
- }
- },
- "schema_parity": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "reducers_diff": null,
- "reducers_equal": true,
- "tables_diff": null,
- "tables_equal": true
- }
- },
- "sum_type_columns_row_count": {
- "pass": false,
- "partial": 0.0,
- "notes": {
- "actual": 0,
- "expected": 1,
- "sql": "SELECT COUNT(*) AS n FROM drawing WHERE id=1"
- }
- }
- },
- "vendor": "meta"
- },
- "t_017_scheduled_columns": {
- "hash": "4fc194f370ec8318bb9b257e2e31aa8ead0dec6b437bd32ff93613e39b0c819f",
- "task": "t_017_scheduled_columns",
- "lang": "typescript",
- "golden_published": true,
- "model_name": "Gemini 3.1 Pro",
- "total_tests": 2,
- "passed_tests": 2,
- "category": "schema",
- "route_api_model": "google/gemini-3.1-pro-preview",
- "scorer_details": {
- "schema_parity": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "reducers_diff": null,
- "reducers_equal": true,
- "tables_diff": null,
- "tables_equal": true
- }
- },
- "scheduled_seeded_one_row": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "actual": 1,
- "expected": 1,
- "sql": "SELECT COUNT(*) AS n FROM tickTimer WHERE scheduledId>=0"
- }
- }
- },
- "vendor": "meta"
- },
- "t_018_constraints": {
- "hash": "4fc194f370ec8318bb9b257e2e31aa8ead0dec6b437bd32ff93613e39b0c819f",
- "task": "t_018_constraints",
- "lang": "typescript",
- "golden_published": true,
- "model_name": "Gemini 3.1 Pro",
- "total_tests": 3,
- "passed_tests": 3,
- "category": "schema",
- "route_api_model": "google/gemini-3.1-pro-preview",
- "scorer_details": {
- "schema_parity": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "reducers_diff": null,
- "reducers_equal": true,
- "tables_diff": null,
- "tables_equal": true
- }
- },
- "constraints_row_parity_after_seed": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "args": [],
- "golden_out": "id | email | name ----+-----------------+--------- 1 | \"a@example.com\" | \"Alice\"",
- "llm_out": "id | email | name ----+-----------------+--------- 1 | \"a@example.com\" | \"Alice\"",
- "query": "SELECT id, email, name FROM account WHERE id=1",
- "reducer": "seed"
- }
- },
- "constraints_seed_two_rows": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "actual": 1,
- "expected": 1,
- "sql": "SELECT COUNT(*) AS n FROM account WHERE id=2"
- }
- }
- },
- "vendor": "meta"
- },
- "t_019_many_to_many": {
- "hash": "4fc194f370ec8318bb9b257e2e31aa8ead0dec6b437bd32ff93613e39b0c819f",
- "task": "t_019_many_to_many",
- "lang": "typescript",
- "golden_published": true,
- "model_name": "Gemini 3.1 Pro",
- "total_tests": 5,
- "passed_tests": 5,
- "category": "schema",
- "route_api_model": "google/gemini-3.1-pro-preview",
- "scorer_details": {
- "m2m_has_1_20": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "actual": 1,
- "expected": 1,
- "sql": "SELECT COUNT(*) AS n FROM membership WHERE userId=1 AND groupId=20"
- }
- },
- "m2m_has_2_20": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "actual": 1,
- "expected": 1,
- "sql": "SELECT COUNT(*) AS n FROM membership WHERE userId=2 AND groupId=20"
- }
- },
- "schema_parity": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "reducers_diff": null,
- "reducers_equal": true,
- "tables_diff": null,
- "tables_equal": true
- }
- },
- "m2m_has_1_10": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "actual": 1,
- "expected": 1,
- "sql": "SELECT COUNT(*) AS n FROM membership WHERE userId=1 AND groupId=10"
- }
- },
- "memberships_three_rows": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "actual": 3,
- "expected": 3,
- "sql": "SELECT COUNT(*) AS n FROM membership"
- }
- }
- },
- "vendor": "meta"
- },
- "t_020_ecs": {
- "hash": "4fc194f370ec8318bb9b257e2e31aa8ead0dec6b437bd32ff93613e39b0c819f",
- "task": "t_020_ecs",
- "lang": "typescript",
- "golden_published": true,
- "model_name": "Gemini 3.1 Pro",
- "total_tests": 5,
- "passed_tests": 5,
- "category": "schema",
- "route_api_model": "google/gemini-3.1-pro-preview",
- "scorer_details": {
- "ecs_next_pos_entity2": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "actual": 1,
- "expected": 1,
- "sql": "SELECT COUNT(*) AS n FROM nextPosition WHERE entityId=2 AND x=8 AND y=3"
- }
- },
- "ecs_next_pos_entity1": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "actual": 1,
- "expected": 1,
- "sql": "SELECT COUNT(*) AS n FROM nextPosition WHERE entityId=1 AND x=1 AND y=0"
- }
- },
- "ecs_seed_position_count": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "actual": 2,
- "expected": 2,
- "sql": "SELECT COUNT(*) AS n FROM position"
- }
- },
- "schema_parity": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "reducers_diff": null,
- "reducers_equal": true,
- "tables_diff": null,
- "tables_equal": true
- }
- },
- "ecs_step_next_position_count": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "actual": 2,
- "expected": 2,
- "sql": "SELECT COUNT(*) AS n FROM nextPosition"
- }
- }
- },
- "vendor": "meta"
- },
- "t_021_multi_column_index": {
- "hash": "4fc194f370ec8318bb9b257e2e31aa8ead0dec6b437bd32ff93613e39b0c819f",
- "task": "t_021_multi_column_index",
- "lang": "typescript",
- "golden_published": true,
- "model_name": "Gemini 3.1 Pro",
- "total_tests": 4,
- "passed_tests": 4,
- "category": "schema",
- "route_api_model": "google/gemini-3.1-pro-preview",
- "scorer_details": {
- "mcindex_seed_count": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "actual": 3,
- "expected": 3,
- "sql": "SELECT COUNT(*) AS n FROM log"
- }
- },
- "mcindex_lookup_u7_d1": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "actual": 1,
- "expected": 1,
- "sql": "SELECT COUNT(*) AS n FROM log WHERE userId=7 AND day=1"
- }
- },
- "schema_parity": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "reducers_diff": null,
- "reducers_equal": true,
- "tables_diff": null,
- "tables_equal": true
- }
- },
- "mcindex_lookup_u7_d2": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "actual": 1,
- "expected": 1,
- "sql": "SELECT COUNT(*) AS n FROM log WHERE userId=7 AND day=2"
- }
- }
- },
- "vendor": "meta"
- }
- }
- },
- {
- "name": "DeepSeek Reasoner",
- "route_api_model": "deepseek-reasoner",
- "tasks": {
- "t_000_empty_reducers": {
- "hash": "f0986524ee7bda1802573e7e4794bd56933365fb35e4af7c830014214cb8ec77",
- "task": "t_000_empty_reducers",
- "lang": "typescript",
- "golden_published": true,
- "model_name": "DeepSeek Reasoner",
- "total_tests": 1,
- "passed_tests": 1,
- "category": "basics",
- "route_api_model": "deepseek-reasoner",
- "scorer_details": {
- "schema_parity": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "reducers_diff": null,
- "reducers_equal": true,
- "tables_diff": null,
- "tables_equal": true
- }
- }
- },
- "vendor": "deepseek"
- },
- "t_001_basic_tables": {
- "hash": "f0986524ee7bda1802573e7e4794bd56933365fb35e4af7c830014214cb8ec77",
- "task": "t_001_basic_tables",
- "lang": "typescript",
- "golden_published": false,
- "model_name": "DeepSeek Reasoner",
- "total_tests": 1,
- "passed_tests": 0,
- "llm_output": "import { schema, table, t } from 'spacetimedb/server';\n\nconst user = table(\n {},\n {\n id: t.i32().primaryKey(),\n name: t.string(),\n age: t.i32(),\n active: t.bool(),\n }\n);\n\nconst product = table(\n {},\n {\n id: t.i32().primaryKey(),\n title: t.string(),\n price: t.f32(),\n inStock: t.bool(),\n }\n);\n\nconst note = table(\n {},\n {\n id: t.i32().primaryKey(),\n body: t.string(),\n rating: t.i64(),\n pinned: t.bool(),\n }\n);\n\nconst spacetimedb = schema({ user, product, note });\nexport default spacetimedb;",
- "category": "basics",
- "route_api_model": "deepseek-reasoner",
- "scorer_details": {
- "publish_error": {
- "pass": false,
- "partial": 0.0,
- "notes": {
- "error": "spacetime publish (typescript) failed (exit=1)\n--- stderr ---\ntsc not found in node_modules. Make sure you have the `typescript` package as a dev-dependency and that your dependencies are installed.\nError: Errors occurred:\nname `undefined_id_idx_btree` is used for multiple entities\n\n\n\nCaused by:\n HTTP status server error (500 Internal Server Error) for url (http://127.0.0.1:62644/v1/database/basics-t-001-basic-tables-deepseek-reasoner-llm?clear=true&host_type=Js)\n\n--- stdout ---\nBuild finished successfully.\nUploading to http://127.0.0.1:62644 => http://127.0.0.1:62644\nThis will DESTROY the current basics-t-001-basic-tables-deepseek-reasoner-llm module, and ALL corresponding data.\nSkipping confirmation due to --yes\nPublishing module...\nJavaScript / TypeScript support is currently in BETA.\nThere may be bugs. Please file issues if you encounter any.\n\n",
- "phase": "build_or_publish"
- }
- }
- },
- "vendor": "deepseek"
- },
- "t_002_scheduled_table": {
- "hash": "f0986524ee7bda1802573e7e4794bd56933365fb35e4af7c830014214cb8ec77",
- "task": "t_002_scheduled_table",
- "lang": "typescript",
- "golden_published": false,
- "model_name": "DeepSeek Reasoner",
- "total_tests": 1,
- "passed_tests": 0,
- "llm_output": "import { schema, table, t } from 'spacetimedb/server';\nimport { ScheduleAt } from 'spacetimedb';\n\nconst tickTimer = table(\n { name: 'tickTimer', scheduled: (): any => tick },\n {\n scheduledId: t.u64().primaryKey().autoInc(),\n scheduledAt: t.scheduleAt(),\n }\n);\n\nconst spacetimedb = schema({ tickTimer });\nexport default spacetimedb;\n\nexport const tick = spacetimedb.reducer({ arg: tickTimer.rowType }, (ctx, { arg }) => {\n});\n\nexport const init = spacetimedb.init((ctx) => {\n ctx.db.tickTimer.insert({ scheduledAt: ScheduleAt.interval(50) });\n});",
- "category": "basics",
- "route_api_model": "deepseek-reasoner",
- "scorer_details": {
- "publish_error": {
- "pass": false,
- "partial": 0.0,
- "notes": {
- "error": "spacetime publish (typescript) failed (exit=1)\n--- stderr ---\ntsc not found in node_modules. Make sure you have the `typescript` package as a dev-dependency and that your dependencies are installed.\nError: The instance encountered a fatal error.\n\nCaused by:\n HTTP status server error (500 Internal Server Error) for url (http://127.0.0.1:62644/v1/database/basics-t-002-scheduled-table-deepseek-reasoner-llm?clear=true&host_type=Js)\n\n--- stdout ---\nBuild finished successfully.\nUploading to http://127.0.0.1:62644 => http://127.0.0.1:62644\nThis will DESTROY the current basics-t-002-scheduled-table-deepseek-reasoner-llm module, and ALL corresponding data.\nSkipping confirmation due to --yes\nPublishing module...\nJavaScript / TypeScript support is currently in BETA.\nThere may be bugs. Please file issues if you encounter any.\n\n",
- "phase": "build_or_publish"
- }
- }
- },
- "vendor": "deepseek"
- },
- "t_003_struct_in_table": {
- "hash": "f0986524ee7bda1802573e7e4794bd56933365fb35e4af7c830014214cb8ec77",
- "task": "t_003_struct_in_table",
- "lang": "typescript",
- "golden_published": true,
- "model_name": "DeepSeek Reasoner",
- "total_tests": 1,
- "passed_tests": 1,
- "category": "basics",
- "route_api_model": "deepseek-reasoner",
- "scorer_details": {
- "schema_parity": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "reducers_diff": null,
- "reducers_equal": true,
- "tables_diff": null,
- "tables_equal": true
- }
- }
- },
- "vendor": "deepseek"
- },
- "t_004_insert": {
- "hash": "f0986524ee7bda1802573e7e4794bd56933365fb35e4af7c830014214cb8ec77",
- "task": "t_004_insert",
- "lang": "typescript",
- "golden_published": true,
- "model_name": "DeepSeek Reasoner",
- "total_tests": 2,
- "passed_tests": 2,
- "category": "basics",
- "route_api_model": "deepseek-reasoner",
- "scorer_details": {
- "schema_parity": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "reducers_diff": null,
- "reducers_equal": true,
- "tables_diff": null,
- "tables_equal": true
- }
- },
- "data_parity_insert_user": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "args": [
- 1,
- "Alice",
- 30,
- true
- ],
- "golden_out": "id | name | age | active ----+---------+-----+-------- 1 | \"Alice\" | 30 | true",
- "llm_out": "id | name | age | active ----+---------+-----+-------- 1 | \"Alice\" | 30 | true",
- "query": "SELECT id, name, age, active FROM user WHERE id=1",
- "reducer": "insert_user"
- }
- }
- },
- "vendor": "deepseek"
- },
- "t_005_update": {
- "hash": "f0986524ee7bda1802573e7e4794bd56933365fb35e4af7c830014214cb8ec77",
- "task": "t_005_update",
- "lang": "typescript",
- "golden_published": true,
- "model_name": "DeepSeek Reasoner",
- "total_tests": 3,
- "passed_tests": 1,
- "llm_output": "import { table, t, schema, SenderError } from 'spacetimedb/server';\n\nconst user = table(\n { name: 'user' },\n {\n id: t.i32().primaryKey(),\n name: t.string(),\n age: t.i32(),\n active: t.bool(),\n }\n);\n\nconst spacetimedb = schema({ user });\nexport default spacetimedb;\n\nexport const updateUser = spacetimedb.reducer(\n { id: t.i32(), name: t.string(), age: t.i32(), active: t.bool() },\n (ctx, { id, name, age, active }) => {\n const row = ctx.db.user.id.find(id);\n if (!row) {\n throw new SenderError(`User with id ${id} not found`);\n }\n ctx.db.user.id.update({ id, name, age, active });\n }\n);",
- "category": "basics",
- "route_api_model": "deepseek-reasoner",
- "scorer_details": {
- "data_parity_update_user": {
- "pass": false,
- "partial": 0.0,
- "notes": {
- "error": "spacetime call failed:\nWARNING: This command is UNSTABLE and subject to breaking changes.\n\nError: Response text: User with id 1 not found\n\nCaused by:\n HTTP status server error (530 ) for url (http://127.0.0.1:62644/v1/database/c2008b2c1ef07a9b15f2b315ef4565aa0a3801298a2cec74a109a5cf962ea8b7/call/update_user)\n",
- "phase": "call_reducer_llm"
- }
- },
- "schema_parity": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "reducers_diff": null,
- "reducers_equal": true,
- "tables_diff": null,
- "tables_equal": true
- }
- },
- "seed_users_row": {
- "pass": false,
- "partial": 0.0,
- "notes": {
- "error": "spacetime sql failed:\nWARNING: This command is UNSTABLE and subject to breaking changes.\n\nError: IndexError: Unique constraint violation 'user_id_idx_btree' in table 'user': column(s): '[\"id\"]' value: 1\n\nCaused by:\n HTTP status client error (400 Bad Request) for url (http://127.0.0.1:62644/v1/database/c200ed791181a62b587de2774b095e98742d8c8beebb5c72e228770f80c7e4c7/sql)\n",
- "phase": "sql_golden",
- "sql": "INSERT INTO user(id, name, age, active) VALUES (1, 'Alice', 30, true)"
- }
- }
- },
- "vendor": "deepseek"
- },
- "t_006_delete": {
- "hash": "f0986524ee7bda1802573e7e4794bd56933365fb35e4af7c830014214cb8ec77",
- "task": "t_006_delete",
- "lang": "typescript",
- "golden_published": false,
- "model_name": "DeepSeek Reasoner",
- "total_tests": 3,
- "passed_tests": 0,
- "llm_output": "import { table, t, schema } from 'spacetimedb/server';\n\nconst user = table(\n { name: 'user' },\n {\n id: t.i32().primaryKey(),\n name: t.string(),\n age: t.i32(),\n active: t.bool(),\n }\n);\n\nconst spacetimedb = schema(user);\nexport default spacetimedb;\n\nexport const deleteUser = spacetimedb.reducer({ id: t.i32() }, (ctx, { id }) => {\n ctx.db.user.id.delete(id);\n});",
- "category": "basics",
- "route_api_model": "deepseek-reasoner",
- "scorer_details": {
- "publish_error": {
- "pass": false,
- "partial": 0.0,
- "notes": {
- "error": "spacetime publish (typescript) failed (exit=1)\n--- stderr ---\ntsc not found in node_modules. Make sure you have the `typescript` package as a dev-dependency and that your dependencies are installed.\nError: Uncaught TypeError: table2.tableDef is not a function\n\tat (D:/Development/ClockworkLabs/SpacetimeDB/SpacetimeDBPrivate/public/target/llm-runs/basics/t_006_delete/typescript/server/deepseek-reasoner/llm/node_modules/.pnpm/spacetimedb@file+..+..+..+._4e6762d0fa0af4732de585440982ec59/node_modules/spacetimedb/dist/server/index.mjs:7402:31)\n\tat SchemaInner (D:/Development/ClockworkLabs/SpacetimeDB/SpacetimeDBPrivate/public/target/llm-runs/basics/t_006_delete/typescript/server/deepseek-reasoner/llm/node_modules/.pnpm/spacetimedb@file+..+..+..+._4e6762d0fa0af4732de585440982ec59/node_modules/spacetimedb/dist/server/index.mjs:7205:23)\n\tat schema (D:/Development/ClockworkLabs/SpacetimeDB/SpacetimeDBPrivate/public/target/llm-runs/basics/t_006_delete/typescript/server/deepseek-reasoner/llm/node_modules/.pnpm/spacetimedb@file+..+..+..+._4e6762d0fa0af4732de585440982ec59/node_modules/spacetimedb/dist/server/index.mjs:7399:15)\n\tat (D:/Development/ClockworkLabs/SpacetimeDB/SpacetimeDBPrivate/public/target/llm-runs/basics/t_006_delete/typescript/server/deepseek-reasoner/llm/src/index.ts:13:21)\n\nCaused by:\n HTTP status server error (500 Internal Server Error) for url (http://127.0.0.1:62644/v1/database/basics-t-006-delete-deepseek-reasoner-llm?clear=true&host_type=Js)\n\n--- stdout ---\nBuild finished successfully.\nUploading to http://127.0.0.1:62644 => http://127.0.0.1:62644\nThis will DESTROY the current basics-t-006-delete-deepseek-reasoner-llm module, and ALL corresponding data.\nSkipping confirmation due to --yes\nPublishing module...\nJavaScript / TypeScript support is currently in BETA.\nThere may be bugs. Please file issues if you encounter any.\n\n",
- "phase": "build_or_publish"
- }
- }
- },
- "vendor": "deepseek"
- },
- "t_007_crud": {
- "hash": "f0986524ee7bda1802573e7e4794bd56933365fb35e4af7c830014214cb8ec77",
- "task": "t_007_crud",
- "lang": "typescript",
- "golden_published": true,
- "model_name": "DeepSeek Reasoner",
- "total_tests": 4,
- "passed_tests": 2,
- "llm_output": "import { schema, table, t } from 'spacetimedb/server';\n\nconst user = table(\n { name: 'user' },\n {\n id: t.i32().primaryKey(),\n name: t.string(),\n age: t.i32(),\n active: t.bool(),\n }\n);\n\nconst spacetimedb = schema({ user });\nexport default spacetimedb;\n\nexport const crud = spacetimedb.reducer((ctx) => {\n ctx.db.user.insert({ id: 1, name: 'Alice', age: 30, active: true });\n ctx.db.user.insert({ id: 2, name: 'Bob', age: 22, active: false });\n const alice = ctx.db.user.id.find(1);\n if (alice) {\n ctx.db.user.id.update({ ...alice, name: 'Alice2', age: 31, active: false });\n }\n ctx.db.user.id.delete(2);\n});",
- "category": "basics",
- "route_api_model": "deepseek-reasoner",
- "scorer_details": {
- "crud_row_id2_deleted": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "actual": 0,
- "expected": 0,
- "sql": "SELECT COUNT(*) AS n FROM user WHERE id=2"
- }
- },
- "schema_parity": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "reducers_diff": null,
- "reducers_equal": true,
- "tables_diff": null,
- "tables_equal": true
- }
- },
- "crud_row_id1_parity": {
- "pass": false,
- "partial": 0.0,
- "notes": {
- "error": "spacetime call failed:\nWARNING: This command is UNSTABLE and subject to breaking changes.\n\nError: Response text: The instance encountered a fatal error.\n\nCaused by:\n HTTP status server error (530 ) for url (http://127.0.0.1:62644/v1/database/c200a955ecab87ea80b202a6ccd46bb73f8565b76f4c684cad73c8a66d2944cb/call/crud)\n",
- "phase": "call_reducer_golden"
- }
- },
- "crud_total_count_one": {
- "pass": false,
- "partial": 0.0,
- "notes": {
- "actual": 0,
- "expected": 1,
- "sql": "SELECT COUNT(*) AS n FROM user"
- }
- }
- },
- "vendor": "deepseek"
- },
- "t_008_index_lookup": {
- "hash": "f0986524ee7bda1802573e7e4794bd56933365fb35e4af7c830014214cb8ec77",
- "task": "t_008_index_lookup",
- "lang": "typescript",
- "golden_published": true,
- "model_name": "DeepSeek Reasoner",
- "total_tests": 3,
- "passed_tests": 3,
- "category": "basics",
- "route_api_model": "deepseek-reasoner",
- "scorer_details": {
- "index_lookup_projection_parity": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "args": [
- 1
- ],
- "golden_out": "id | name ----+--------- 1 | \"Alice\"",
- "llm_out": "id | name ----+--------- 1 | \"Alice\"",
- "query": "SELECT id, name FROM result WHERE id=1",
- "reducer": "lookup_user_name"
- }
- },
- "schema_parity": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "reducers_diff": null,
- "reducers_equal": true,
- "tables_diff": null,
- "tables_equal": true
- }
- },
- "seed_user_row": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "sql": "INSERT INTO user(id, name, age, active) VALUES (1, 'Alice', 30, true)"
- }
- }
- },
- "vendor": "deepseek"
- },
- "t_009_init": {
- "hash": "f0986524ee7bda1802573e7e4794bd56933365fb35e4af7c830014214cb8ec77",
- "task": "t_009_init",
- "lang": "typescript",
- "golden_published": true,
- "model_name": "DeepSeek Reasoner",
- "total_tests": 4,
- "passed_tests": 4,
- "category": "basics",
- "route_api_model": "deepseek-reasoner",
- "scorer_details": {
- "init_seed_alice": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "actual": 1,
- "expected": 1,
- "sql": "SELECT COUNT(*) AS n FROM user WHERE id=1 AND name='Alice' AND age=30 AND active=true"
- }
- },
- "init_total_two": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "actual": 2,
- "expected": 2,
- "sql": "SELECT COUNT(*) AS n FROM user"
- }
- },
- "schema_parity": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "reducers_diff": null,
- "reducers_equal": true,
- "tables_diff": null,
- "tables_equal": true
- }
- },
- "init_seed_bob": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "actual": 1,
- "expected": 1,
- "sql": "SELECT COUNT(*) AS n FROM user WHERE id=2 AND name='Bob' AND age=22 AND active=false"
- }
- }
- },
- "vendor": "deepseek"
- },
- "t_010_connect": {
- "hash": "f0986524ee7bda1802573e7e4794bd56933365fb35e4af7c830014214cb8ec77",
- "task": "t_010_connect",
- "lang": "typescript",
- "golden_published": true,
- "model_name": "DeepSeek Reasoner",
- "total_tests": 1,
- "passed_tests": 0,
- "llm_output": "import { schema, table, t } from 'spacetimedb/server';\n\nconst event = table(\n { name: 'event', public: true },\n {\n id: t.u64().primaryKey().autoInc(),\n kind: t.string(),\n }\n);\n\nconst spacetimedb = schema({ event });\nexport default spacetimedb;\n\nexport const clientConnected = spacetimedb.clientConnected(ctx => {\n ctx.db.event.insert({ id: 0n, kind: 'connected' });\n});\n\nexport const clientDisconnected = spacetimedb.clientDisconnected(ctx => {\n ctx.db.event.insert({ id: 0n, kind: 'disconnected' });\n});",
- "category": "basics",
- "route_api_model": "deepseek-reasoner",
- "scorer_details": {
- "schema_parity": {
- "pass": false,
- "partial": 0.0,
- "notes": {
- "reducers_diff": {
- "only_golden": [
- "on_connect()",
- "on_disconnect()"
- ],
- "only_llm": [
- "client_connected()",
- "client_disconnected()"
- ]
- },
- "reducers_equal": false,
- "tables_diff": null,
- "tables_equal": true
- }
- }
- },
- "vendor": "deepseek"
- },
- "t_011_helper_function": {
- "hash": "f0986524ee7bda1802573e7e4794bd56933365fb35e4af7c830014214cb8ec77",
- "task": "t_011_helper_function",
- "lang": "typescript",
- "golden_published": true,
- "model_name": "DeepSeek Reasoner",
- "total_tests": 3,
- "passed_tests": 3,
- "category": "basics",
- "route_api_model": "deepseek-reasoner",
- "scorer_details": {
- "helper_func_sum_parity": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "args": [
- 1,
- 2,
- 3
- ],
- "golden_out": "id | sum ----+----- 1 | 5",
- "llm_out": "id | sum ----+----- 1 | 5",
- "query": "SELECT id, sum FROM result WHERE id=1",
- "reducer": "compute_sum"
- }
- },
- "schema_parity": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "reducers_diff": null,
- "reducers_equal": true,
- "tables_diff": null,
- "tables_equal": true
- }
- },
- "helper_func_sum_abs": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "actual": 1,
- "expected": 1,
- "sql": "SELECT COUNT(*) AS n FROM result WHERE id=1 AND sum=5"
- }
- }
- },
- "vendor": "deepseek"
- },
- "t_012_spacetime_product_type": {
- "hash": "f0986524ee7bda1802573e7e4794bd56933365fb35e4af7c830014214cb8ec77",
- "task": "t_012_spacetime_product_type",
- "lang": "typescript",
- "golden_published": true,
- "model_name": "DeepSeek Reasoner",
- "total_tests": 3,
- "passed_tests": 3,
- "category": "schema",
- "route_api_model": "deepseek-reasoner",
- "scorer_details": {
- "product_type_row_count": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "actual": 1,
- "expected": 1,
- "sql": "SELECT COUNT(*) AS n FROM result WHERE id=1"
- }
- },
- "schema_parity": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "reducers_diff": null,
- "reducers_equal": true,
- "tables_diff": null,
- "tables_equal": true
- }
- },
- "product_type_row_parity": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "args": [
- 1,
- 2,
- 3
- ],
- "golden_out": "id | value ----+----------------------- 1 | (left = 2, right = 3)",
- "llm_out": "id | value ----+----------------------- 1 | (left = 2, right = 3)",
- "query": "SELECT id, value FROM result WHERE id=1",
- "reducer": "set_score"
- }
- }
- },
- "vendor": "deepseek"
- },
- "t_013_spacetime_sum_type": {
- "hash": "f0986524ee7bda1802573e7e4794bd56933365fb35e4af7c830014214cb8ec77",
- "task": "t_013_spacetime_sum_type",
- "lang": "typescript",
- "golden_published": true,
- "model_name": "DeepSeek Reasoner",
- "total_tests": 3,
- "passed_tests": 1,
- "llm_output": "import { table, t, schema } from 'spacetimedb/server';\n\nconst Rect = t.object('Rect', { width: t.i32(), height: t.i32() });\nconst Shape = t.enum('Shape', { circle: t.i32(), rectangle: Rect });\n\nconst result = table(\n { name: 'result' },\n {\n id: t.i32().primaryKey(),\n value: Shape,\n }\n);\n\nconst spacetimedb = schema({ result });\nexport default spacetimedb;\n\nexport const setCircle = spacetimedb.reducer({ id: t.i32(), radius: t.i32() }, (ctx, { id, radius }) => {\n const shapeValue = { circle: radius };\n ctx.db.result.insert({ id, value: shapeValue });\n});",
- "category": "schema",
- "route_api_model": "deepseek-reasoner",
- "scorer_details": {
- "schema_parity": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "reducers_diff": null,
- "reducers_equal": true,
- "tables_diff": null,
- "tables_equal": true
- }
- },
- "sum_type_row_parity": {
- "pass": false,
- "partial": 0.0,
- "notes": {
- "error": "spacetime call failed:\nWARNING: This command is UNSTABLE and subject to breaking changes.\n\nError: Response text: The instance encountered a fatal error.\n\nCaused by:\n HTTP status server error (530 ) for url (http://127.0.0.1:62644/v1/database/c200f9c264c6263338e4ae4b5f8f760b46aaf9f47002d4a59e3ccaf61f9b16bc/call/set_circle)\n",
- "phase": "call_reducer_golden"
- }
- },
- "sum_type_row_count": {
- "pass": false,
- "partial": 0.0,
- "notes": {
- "actual": 0,
- "expected": 1,
- "sql": "SELECT COUNT(*) AS n FROM result WHERE id=1"
- }
- }
- },
- "vendor": "deepseek"
- },
- "t_014_elementary_columns": {
- "hash": "f0986524ee7bda1802573e7e4794bd56933365fb35e4af7c830014214cb8ec77",
- "task": "t_014_elementary_columns",
- "lang": "typescript",
- "golden_published": false,
- "model_name": "DeepSeek Reasoner",
- "total_tests": 3,
- "passed_tests": 0,
- "llm_output": "import { schema, table, t } from 'spacetimedb/server';\n\nconst primitive = table(\n { name: 'primitive', public: true },\n {\n id: t.i32().primaryKey(),\n count: t.i32(),\n total: t.i64(),\n price: t.f32(),\n ratio: t.f64(),\n active: t.bool(),\n name: t.string(),\n }\n);\n\nconst spacetimedb = schema(primitive);\nexport default spacetimedb;\n\nexport const seed = spacetimedb.reducer((ctx) => {\n ctx.db.primitive.insert({\n id: 1,\n count: 2,\n total: 3000000000n,\n price: 1.5,\n ratio: 2.25,\n active: true,\n name: \"Alice\",\n });\n});",
- "category": "schema",
- "route_api_model": "deepseek-reasoner",
- "scorer_details": {
- "publish_error": {
- "pass": false,
- "partial": 0.0,
- "notes": {
- "error": "spacetime publish (typescript) failed (exit=1)\n--- stderr ---\ntsc not found in node_modules. Make sure you have the `typescript` package as a dev-dependency and that your dependencies are installed.\nError: Uncaught TypeError: table2.tableDef is not a function\n\tat (D:/Development/ClockworkLabs/SpacetimeDB/SpacetimeDBPrivate/public/target/llm-runs/schema/t_014_elementary_columns/typescript/server/deepseek-reasoner/llm/node_modules/.pnpm/spacetimedb@file+..+..+..+._4e6762d0fa0af4732de585440982ec59/node_modules/spacetimedb/dist/server/index.mjs:7402:31)\n\tat SchemaInner (D:/Development/ClockworkLabs/SpacetimeDB/SpacetimeDBPrivate/public/target/llm-runs/schema/t_014_elementary_columns/typescript/server/deepseek-reasoner/llm/node_modules/.pnpm/spacetimedb@file+..+..+..+._4e6762d0fa0af4732de585440982ec59/node_modules/spacetimedb/dist/server/index.mjs:7205:23)\n\tat schema (D:/Development/ClockworkLabs/SpacetimeDB/SpacetimeDBPrivate/public/target/llm-runs/schema/t_014_elementary_columns/typescript/server/deepseek-reasoner/llm/node_modules/.pnpm/spacetimedb@file+..+..+..+._4e6762d0fa0af4732de585440982ec59/node_modules/spacetimedb/dist/server/index.mjs:7399:15)\n\tat (D:/Development/ClockworkLabs/SpacetimeDB/SpacetimeDBPrivate/public/target/llm-runs/schema/t_014_elementary_columns/typescript/server/deepseek-reasoner/llm/src/index.ts:16:21)\n\nCaused by:\n HTTP status server error (500 Internal Server Error) for url (http://127.0.0.1:62644/v1/database/schema-t-014-elementary-columns-deepseek-reasoner-llm?clear=true&host_type=Js)\n\n--- stdout ---\nBuild finished successfully.\nUploading to http://127.0.0.1:62644 => http://127.0.0.1:62644\nThis will DESTROY the current schema-t-014-elementary-columns-deepseek-reasoner-llm module, and ALL corresponding data.\nSkipping confirmation due to --yes\nPublishing module...\nJavaScript / TypeScript support is currently in BETA.\nThere may be bugs. Please file issues if you encounter any.\n\n",
- "phase": "build_or_publish"
- }
- }
- },
- "vendor": "deepseek"
- },
- "t_015_product_type_columns": {
- "hash": "f0986524ee7bda1802573e7e4794bd56933365fb35e4af7c830014214cb8ec77",
- "task": "t_015_product_type_columns",
- "lang": "typescript",
- "golden_published": true,
- "model_name": "DeepSeek Reasoner",
- "total_tests": 3,
- "passed_tests": 3,
- "category": "schema",
- "route_api_model": "deepseek-reasoner",
- "scorer_details": {
- "product_type_columns_row_parity": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "args": [],
- "golden_out": "id | home | work | pos ----+----------------------------------+-----------------------------------+---------------- 1 | (street = \"1 Main\", zip = 11111) | (street = \"2 Broad\", zip = 22222) | (x = 7, y = 9)",
- "llm_out": "id | home | work | pos ----+----------------------------------+-----------------------------------+---------------- 1 | (street = \"1 Main\", zip = 11111) | (street = \"2 Broad\", zip = 22222) | (x = 7, y = 9)",
- "query": "SELECT id, home, work, pos FROM profile WHERE id=1",
- "reducer": "seed"
- }
- },
- "schema_parity": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "reducers_diff": null,
- "reducers_equal": true,
- "tables_diff": null,
- "tables_equal": true
- }
- },
- "product_type_columns_row_count": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "actual": 1,
- "expected": 1,
- "sql": "SELECT COUNT(*) AS n FROM profile WHERE id=1"
- }
- }
- },
- "vendor": "deepseek"
- },
- "t_016_sum_type_columns": {
- "hash": "f0986524ee7bda1802573e7e4794bd56933365fb35e4af7c830014214cb8ec77",
- "task": "t_016_sum_type_columns",
- "lang": "typescript",
- "golden_published": false,
- "model_name": "DeepSeek Reasoner",
- "total_tests": 3,
- "passed_tests": 0,
- "llm_output": "import { schema, table, t } from 'spacetimedb/server';\n\nconst Rect = t.object('Rect', {\n width: t.i32(),\n height: t.i32()\n});\n\nconst Shape = t.union(\n t.object('Circle', { radius: t.i32() }),\n Rect\n);\n\nconst drawing = table(\n { name: 'drawing' },\n {\n id: t.i32().primaryKey(),\n a: Shape,\n b: Shape\n }\n);\n\nconst spacetimedb = schema({ drawing });\n\nexport default spacetimedb;\n\nexport const seed = spacetimedb.reducer((ctx) => {\n ctx.db.drawing.insert({\n id: 0,\n a: { radius: 10 },\n b: { width: 4, height: 6 }\n });\n});",
- "category": "schema",
- "route_api_model": "deepseek-reasoner",
- "scorer_details": {
- "publish_error": {
- "pass": false,
- "partial": 0.0,
- "notes": {
- "error": "spacetime publish (typescript) failed (exit=1)\n--- stderr ---\ntsc not found in node_modules. Make sure you have the `typescript` package as a dev-dependency and that your dependencies are installed.\nError: Uncaught TypeError: t.union is not a function\n\tat (D:/Development/ClockworkLabs/SpacetimeDB/SpacetimeDBPrivate/public/target/llm-runs/schema/t_016_sum_type_columns/typescript/server/deepseek-reasoner/llm/src/index.ts:8:17)\n\nCaused by:\n HTTP status server error (500 Internal Server Error) for url (http://127.0.0.1:62644/v1/database/schema-t-016-sum-type-columns-deepseek-reasoner-llm?clear=true&host_type=Js)\n\n--- stdout ---\nBuild finished successfully.\nUploading to http://127.0.0.1:62644 => http://127.0.0.1:62644\nThis will DESTROY the current schema-t-016-sum-type-columns-deepseek-reasoner-llm module, and ALL corresponding data.\nSkipping confirmation due to --yes\nPublishing module...\nJavaScript / TypeScript support is currently in BETA.\nThere may be bugs. Please file issues if you encounter any.\n\n",
- "phase": "build_or_publish"
- }
- }
- },
- "vendor": "deepseek"
- },
- "t_017_scheduled_columns": {
- "hash": "f0986524ee7bda1802573e7e4794bd56933365fb35e4af7c830014214cb8ec77",
- "task": "t_017_scheduled_columns",
- "lang": "typescript",
- "golden_published": false,
- "model_name": "DeepSeek Reasoner",
- "total_tests": 2,
- "passed_tests": 0,
- "llm_output": "import { schema, table, t } from 'spacetimedb/server';\nimport { ScheduleAt } from 'spacetimedb';\n\nconst tickTimer = table(\n { name: 'tickTimer', scheduled: (): any => tick },\n {\n scheduledId: t.u64().primaryKey().autoInc(),\n scheduledAt: t.scheduleAt(),\n }\n);\n\nconst spacetimedb = schema({ tickTimer });\nexport default spacetimedb;\n\nexport const init = spacetimedb.init(ctx => {\n ctx.db.tickTimer.insert({\n scheduledId: 0n,\n scheduledAt: ScheduleAt.interval(50),\n });\n});\n\nexport const tick = spacetimedb.reducer({ arg: tickTimer.rowType }, (ctx, { arg }) => {\n ctx.db.tickTimer.scheduledId.update({\n ...arg,\n scheduledAt: ScheduleAt.interval(50),\n });\n});",
- "category": "schema",
- "route_api_model": "deepseek-reasoner",
- "scorer_details": {
- "publish_error": {
- "pass": false,
- "partial": 0.0,
- "notes": {
- "error": "spacetime publish (typescript) failed (exit=1)\n--- stderr ---\ntsc not found in node_modules. Make sure you have the `typescript` package as a dev-dependency and that your dependencies are installed.\nError: The instance encountered a fatal error.\n\nCaused by:\n HTTP status server error (500 Internal Server Error) for url (http://127.0.0.1:62644/v1/database/schema-t-017-scheduled-columns-deepseek-reasoner-llm?clear=true&host_type=Js)\n\n--- stdout ---\nBuild finished successfully.\nUploading to http://127.0.0.1:62644 => http://127.0.0.1:62644\nThis will DESTROY the current schema-t-017-scheduled-columns-deepseek-reasoner-llm module, and ALL corresponding data.\nSkipping confirmation due to --yes\nPublishing module...\nJavaScript / TypeScript support is currently in BETA.\nThere may be bugs. Please file issues if you encounter any.\n\n",
- "phase": "build_or_publish"
- }
- }
- },
- "vendor": "deepseek"
- },
- "t_018_constraints": {
- "hash": "f0986524ee7bda1802573e7e4794bd56933365fb35e4af7c830014214cb8ec77",
- "task": "t_018_constraints",
- "lang": "typescript",
- "golden_published": true,
- "model_name": "DeepSeek Reasoner",
- "total_tests": 3,
- "passed_tests": 3,
- "category": "schema",
- "route_api_model": "deepseek-reasoner",
- "scorer_details": {
- "schema_parity": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "reducers_diff": null,
- "reducers_equal": true,
- "tables_diff": null,
- "tables_equal": true
- }
- },
- "constraints_row_parity_after_seed": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "args": [],
- "golden_out": "id | email | name ----+-----------------+--------- 1 | \"a@example.com\" | \"Alice\"",
- "llm_out": "id | email | name ----+-----------------+--------- 1 | \"a@example.com\" | \"Alice\"",
- "query": "SELECT id, email, name FROM account WHERE id=1",
- "reducer": "seed"
- }
- },
- "constraints_seed_two_rows": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "actual": 1,
- "expected": 1,
- "sql": "SELECT COUNT(*) AS n FROM account WHERE id=2"
- }
- }
- },
- "vendor": "deepseek"
- },
- "t_019_many_to_many": {
- "hash": "f0986524ee7bda1802573e7e4794bd56933365fb35e4af7c830014214cb8ec77",
- "task": "t_019_many_to_many",
- "lang": "typescript",
- "golden_published": true,
- "model_name": "DeepSeek Reasoner",
- "total_tests": 5,
- "passed_tests": 5,
- "category": "schema",
- "route_api_model": "deepseek-reasoner",
- "scorer_details": {
- "m2m_has_1_20": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "actual": 1,
- "expected": 1,
- "sql": "SELECT COUNT(*) AS n FROM membership WHERE userId=1 AND groupId=20"
- }
- },
- "m2m_has_2_20": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "actual": 1,
- "expected": 1,
- "sql": "SELECT COUNT(*) AS n FROM membership WHERE userId=2 AND groupId=20"
- }
- },
- "schema_parity": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "reducers_diff": null,
- "reducers_equal": true,
- "tables_diff": null,
- "tables_equal": true
- }
- },
- "m2m_has_1_10": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "actual": 1,
- "expected": 1,
- "sql": "SELECT COUNT(*) AS n FROM membership WHERE userId=1 AND groupId=10"
- }
- },
- "memberships_three_rows": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "actual": 3,
- "expected": 3,
- "sql": "SELECT COUNT(*) AS n FROM membership"
- }
- }
- },
- "vendor": "deepseek"
- },
- "t_020_ecs": {
- "hash": "f0986524ee7bda1802573e7e4794bd56933365fb35e4af7c830014214cb8ec77",
- "task": "t_020_ecs",
- "lang": "typescript",
- "golden_published": false,
- "model_name": "DeepSeek Reasoner",
- "total_tests": 5,
- "passed_tests": 0,
- "llm_output": "import { schema, table, t } from 'spacetimedb/server';\n\nconst entity = table({}, {\n id: t.i32().primaryKey(),\n});\n\nconst position = table({}, {\n entityId: t.i32().primaryKey(),\n x: t.i32(),\n y: t.i32(),\n});\n\nconst velocity = table({}, {\n entityId: t.i32().primaryKey(),\n vx: t.i32(),\n vy: t.i32(),\n});\n\nconst nextPosition = table({}, {\n entityId: t.i32().primaryKey(),\n x: t.i32(),\n y: t.i32(),\n});\n\nconst spacetimedb = schema({ entity, position, velocity, nextPosition });\nexport default spacetimedb;\n\nexport const seed = spacetimedb.reducer((ctx) => {\n ctx.db.entity.insert({ id: 1 });\n ctx.db.entity.insert({ id: 2 });\n ctx.db.position.insert({ entityId: 1, x: 0, y: 0 });\n ctx.db.velocity.insert({ entityId: 1, vx: 1, vy: 0 });\n ctx.db.position.insert({ entityId: 2, x: 10, y: 0 });\n ctx.db.velocity.insert({ entityId: 2, vx: -2, vy: 3 });\n});\n\nexport const step = spacetimedb.reducer((ctx) => {\n for (const pos of ctx.db.position.iter()) {\n const vel = ctx.db.velocity.entityId.find(pos.entityId);\n if (vel) {\n const next = { entityId: pos.entityId, x: pos.x + vel.vx, y: pos.y + vel.vy };\n const existing = ctx.db.nextPosition.entityId.find(pos.entityId);\n if (existing) {\n ctx.db.nextPosition.entityId.update(next);\n } else {\n ctx.db.nextPosition.insert(next);\n }\n }\n }\n});",
- "category": "schema",
- "route_api_model": "deepseek-reasoner",
- "scorer_details": {
- "publish_error": {
- "pass": false,
- "partial": 0.0,
- "notes": {
- "error": "spacetime publish (typescript) failed (exit=1)\n--- stderr ---\ntsc not found in node_modules. Make sure you have the `typescript` package as a dev-dependency and that your dependencies are installed.\nError: Errors occurred:\nname `undefined_entityId_idx_btree` is used for multiple entities\n\n\n\nCaused by:\n HTTP status server error (500 Internal Server Error) for url (http://127.0.0.1:62644/v1/database/schema-t-020-ecs-deepseek-reasoner-llm?clear=true&host_type=Js)\n\n--- stdout ---\nBuild finished successfully.\nUploading to http://127.0.0.1:62644 => http://127.0.0.1:62644\nThis will DESTROY the current schema-t-020-ecs-deepseek-reasoner-llm module, and ALL corresponding data.\nSkipping confirmation due to --yes\nPublishing module...\nJavaScript / TypeScript support is currently in BETA.\nThere may be bugs. Please file issues if you encounter any.\n\n",
- "phase": "build_or_publish"
- }
- }
- },
- "vendor": "deepseek"
- },
- "t_021_multi_column_index": {
- "hash": "f0986524ee7bda1802573e7e4794bd56933365fb35e4af7c830014214cb8ec77",
- "task": "t_021_multi_column_index",
- "lang": "typescript",
- "golden_published": false,
- "model_name": "DeepSeek Reasoner",
- "total_tests": 4,
- "passed_tests": 0,
- "llm_output": "import { table, t, schema } from 'spacetimedb';\n\nconst log = table(\n {\n name: \"log\",\n indexes: [\n {\n name: \"byUserDay\",\n algorithm: \"btree\",\n columns: [\"userId\", \"day\"]\n }\n ]\n },\n {\n id: t.i32().primaryKey(),\n userId: t.i32(),\n day: t.i32(),\n message: t.string()\n }\n);\n\nconst spacetimedb = schema(log);\n\nexport const seed = spacetimedb.reducer((ctx) => {\n ctx.db.log.insert({ id: 1, userId: 7, day: 1, message: \"a\" });\n ctx.db.log.insert({ id: 2, userId: 7, day: 2, message: \"b\" });\n ctx.db.log.insert({ id: 3, userId: 9, day: 1, message: \"c\" });\n});",
- "category": "schema",
- "route_api_model": "deepseek-reasoner",
- "scorer_details": {
- "publish_error": {
- "pass": false,
- "partial": 0.0,
- "notes": {
- "error": "spacetime publish (typescript) failed (exit=1)\n--- stderr ---\ntsc not found in node_modules. Make sure you have the `typescript` package as a dev-dependency and that your dependencies are installed.\nError: Your module doesn't import the `spacetimedb/server` package at all - this is likely a mistake, as your module will not be able to interface with the SpacetimeDB host.\n\n--- stdout ---\n",
- "phase": "build_or_publish"
- }
- }
- },
- "vendor": "deepseek"
- }
- }
- },
- {
- "name": "DeepSeek Chat",
- "route_api_model": "deepseek-chat",
- "tasks": {
- "t_000_empty_reducers": {
- "hash": "f0986524ee7bda1802573e7e4794bd56933365fb35e4af7c830014214cb8ec77",
- "task": "t_000_empty_reducers",
- "lang": "typescript",
- "golden_published": true,
- "model_name": "DeepSeek Chat",
- "total_tests": 1,
- "passed_tests": 1,
- "category": "basics",
- "route_api_model": "deepseek-chat",
- "scorer_details": {
- "schema_parity": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "reducers_diff": null,
- "reducers_equal": true,
- "tables_diff": null,
- "tables_equal": true
- }
- }
- },
- "vendor": "deepseek"
- },
- "t_001_basic_tables": {
- "hash": "f0986524ee7bda1802573e7e4794bd56933365fb35e4af7c830014214cb8ec77",
- "task": "t_001_basic_tables",
- "lang": "typescript",
- "golden_published": true,
- "model_name": "DeepSeek Chat",
- "total_tests": 1,
- "passed_tests": 1,
- "category": "basics",
- "route_api_model": "deepseek-chat",
- "scorer_details": {
- "schema_parity": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "reducers_diff": null,
- "reducers_equal": true,
- "tables_diff": null,
- "tables_equal": true
- }
- }
- },
- "vendor": "deepseek"
- },
- "t_002_scheduled_table": {
- "hash": "f0986524ee7bda1802573e7e4794bd56933365fb35e4af7c830014214cb8ec77",
- "task": "t_002_scheduled_table",
- "lang": "typescript",
- "golden_published": false,
- "model_name": "DeepSeek Chat",
- "total_tests": 1,
- "passed_tests": 0,
- "llm_output": "import { schema, table, t } from 'spacetimedb/server';\nimport { ScheduleAt } from 'spacetimedb';\n\nconst tickTimer = table(\n { scheduled: (): any => tick },\n {\n scheduledId: t.u64().primaryKey().autoInc(),\n scheduledAt: t.scheduleAt(),\n }\n);\n\nconst spacetimedb = schema({ tickTimer });\nexport default spacetimedb;\n\nexport const tick = spacetimedb.reducer({ arg: tickTimer.rowType }, (ctx, { arg }) => {\n});\n\nexport const init = spacetimedb.init(ctx => {\n ctx.db.tickTimer.insert({ scheduledId: 0n, scheduledAt: ScheduleAt.interval(50) });\n});",
- "category": "basics",
- "route_api_model": "deepseek-chat",
- "scorer_details": {
- "publish_error": {
- "pass": false,
- "partial": 0.0,
- "notes": {
- "error": "spacetime publish (typescript) failed (exit=1)\n--- stderr ---\ntsc not found in node_modules. Make sure you have the `typescript` package as a dev-dependency and that your dependencies are installed.\nError: The instance encountered a fatal error.\n\nCaused by:\n HTTP status server error (500 Internal Server Error) for url (http://127.0.0.1:62644/v1/database/basics-t-002-scheduled-table-deepseek-chat-llm?clear=true&host_type=Js)\n\n--- stdout ---\nBuild finished successfully.\nUploading to http://127.0.0.1:62644 => http://127.0.0.1:62644\nThis will DESTROY the current basics-t-002-scheduled-table-deepseek-chat-llm module, and ALL corresponding data.\nSkipping confirmation due to --yes\nPublishing module...\nJavaScript / TypeScript support is currently in BETA.\nThere may be bugs. Please file issues if you encounter any.\n\n",
- "phase": "build_or_publish"
- }
- }
- },
- "vendor": "deepseek"
- },
- "t_003_struct_in_table": {
- "hash": "f0986524ee7bda1802573e7e4794bd56933365fb35e4af7c830014214cb8ec77",
- "task": "t_003_struct_in_table",
- "lang": "typescript",
- "golden_published": true,
- "model_name": "DeepSeek Chat",
- "total_tests": 1,
- "passed_tests": 1,
- "category": "basics",
- "route_api_model": "deepseek-chat",
- "scorer_details": {
- "schema_parity": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "reducers_diff": null,
- "reducers_equal": true,
- "tables_diff": null,
- "tables_equal": true
- }
- }
- },
- "vendor": "deepseek"
- },
- "t_004_insert": {
- "hash": "f0986524ee7bda1802573e7e4794bd56933365fb35e4af7c830014214cb8ec77",
- "task": "t_004_insert",
- "lang": "typescript",
- "golden_published": true,
- "model_name": "DeepSeek Chat",
- "total_tests": 2,
- "passed_tests": 2,
- "category": "basics",
- "route_api_model": "deepseek-chat",
- "scorer_details": {
- "schema_parity": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "reducers_diff": null,
- "reducers_equal": true,
- "tables_diff": null,
- "tables_equal": true
- }
- },
- "data_parity_insert_user": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "args": [
- 1,
- "Alice",
- 30,
- true
- ],
- "golden_out": "id | name | age | active ----+---------+-----+-------- 1 | \"Alice\" | 30 | true",
- "llm_out": "id | name | age | active ----+---------+-----+-------- 1 | \"Alice\" | 30 | true",
- "query": "SELECT id, name, age, active FROM user WHERE id=1",
- "reducer": "insert_user"
- }
- }
- },
- "vendor": "deepseek"
- },
- "t_005_update": {
- "hash": "f0986524ee7bda1802573e7e4794bd56933365fb35e4af7c830014214cb8ec77",
- "task": "t_005_update",
- "lang": "typescript",
- "golden_published": true,
- "model_name": "DeepSeek Chat",
- "total_tests": 3,
- "passed_tests": 3,
- "category": "basics",
- "route_api_model": "deepseek-chat",
- "scorer_details": {
- "data_parity_update_user": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "args": [
- 1,
- "Alice2",
- 31,
- false
- ],
- "golden_out": "id | name | age | active ----+----------+-----+-------- 1 | \"Alice2\" | 31 | false",
- "llm_out": "id | name | age | active ----+----------+-----+-------- 1 | \"Alice2\" | 31 | false",
- "query": "SELECT id, name, age, active FROM user WHERE id=1",
- "reducer": "update_user"
- }
- },
- "schema_parity": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "reducers_diff": null,
- "reducers_equal": true,
- "tables_diff": null,
- "tables_equal": true
- }
- },
- "seed_users_row": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "sql": "INSERT INTO user(id, name, age, active) VALUES (1, 'Alice', 30, true)"
- }
- }
- },
- "vendor": "deepseek"
- },
- "t_006_delete": {
- "hash": "f0986524ee7bda1802573e7e4794bd56933365fb35e4af7c830014214cb8ec77",
- "task": "t_006_delete",
- "lang": "typescript",
- "golden_published": true,
- "model_name": "DeepSeek Chat",
- "total_tests": 3,
- "passed_tests": 3,
- "category": "basics",
- "route_api_model": "deepseek-chat",
- "scorer_details": {
- "schema_parity": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "reducers_diff": null,
- "reducers_equal": true,
- "tables_diff": null,
- "tables_equal": true
- }
- },
- "seed_users_row": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "sql": "INSERT INTO user(id, name, age, active) VALUES (1, 'Alice', 30, true)"
- }
- },
- "delete_user_count_zero": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "actual": 0,
- "expected": 0,
- "sql": "SELECT COUNT(*) AS n FROM user WHERE id=1"
- }
- }
- },
- "vendor": "deepseek"
- },
- "t_007_crud": {
- "hash": "f0986524ee7bda1802573e7e4794bd56933365fb35e4af7c830014214cb8ec77",
- "task": "t_007_crud",
- "lang": "typescript",
- "golden_published": true,
- "model_name": "DeepSeek Chat",
- "total_tests": 4,
- "passed_tests": 4,
- "category": "basics",
- "route_api_model": "deepseek-chat",
- "scorer_details": {
- "crud_row_id2_deleted": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "actual": 0,
- "expected": 0,
- "sql": "SELECT COUNT(*) AS n FROM user WHERE id=2"
- }
- },
- "schema_parity": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "reducers_diff": null,
- "reducers_equal": true,
- "tables_diff": null,
- "tables_equal": true
- }
- },
- "crud_row_id1_parity": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "args": [],
- "golden_out": "id | name | age | active ----+----------+-----+-------- 1 | \"Alice2\" | 31 | false",
- "llm_out": "id | name | age | active ----+----------+-----+-------- 1 | \"Alice2\" | 31 | false",
- "query": "SELECT id, name, age, active FROM user WHERE id=1",
- "reducer": "crud"
- }
- },
- "crud_total_count_one": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "actual": 1,
- "expected": 1,
- "sql": "SELECT COUNT(*) AS n FROM user"
- }
- }
- },
- "vendor": "deepseek"
- },
- "t_008_index_lookup": {
- "hash": "f0986524ee7bda1802573e7e4794bd56933365fb35e4af7c830014214cb8ec77",
- "task": "t_008_index_lookup",
- "lang": "typescript",
- "golden_published": true,
- "model_name": "DeepSeek Chat",
- "total_tests": 3,
- "passed_tests": 3,
- "category": "basics",
- "route_api_model": "deepseek-chat",
- "scorer_details": {
- "index_lookup_projection_parity": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "args": [
- 1
- ],
- "golden_out": "id | name ----+--------- 1 | \"Alice\"",
- "llm_out": "id | name ----+--------- 1 | \"Alice\"",
- "query": "SELECT id, name FROM result WHERE id=1",
- "reducer": "lookup_user_name"
- }
- },
- "schema_parity": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "reducers_diff": null,
- "reducers_equal": true,
- "tables_diff": null,
- "tables_equal": true
- }
- },
- "seed_user_row": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "sql": "INSERT INTO user(id, name, age, active) VALUES (1, 'Alice', 30, true)"
- }
- }
- },
- "vendor": "deepseek"
- },
- "t_009_init": {
- "hash": "f0986524ee7bda1802573e7e4794bd56933365fb35e4af7c830014214cb8ec77",
- "task": "t_009_init",
- "lang": "typescript",
- "golden_published": true,
- "model_name": "DeepSeek Chat",
- "total_tests": 4,
- "passed_tests": 4,
- "category": "basics",
- "route_api_model": "deepseek-chat",
- "scorer_details": {
- "init_seed_alice": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "actual": 1,
- "expected": 1,
- "sql": "SELECT COUNT(*) AS n FROM user WHERE id=1 AND name='Alice' AND age=30 AND active=true"
- }
- },
- "init_total_two": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "actual": 2,
- "expected": 2,
- "sql": "SELECT COUNT(*) AS n FROM user"
- }
- },
- "schema_parity": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "reducers_diff": null,
- "reducers_equal": true,
- "tables_diff": null,
- "tables_equal": true
- }
- },
- "init_seed_bob": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "actual": 1,
- "expected": 1,
- "sql": "SELECT COUNT(*) AS n FROM user WHERE id=2 AND name='Bob' AND age=22 AND active=false"
- }
- }
- },
- "vendor": "deepseek"
- },
- "t_010_connect": {
- "hash": "f0986524ee7bda1802573e7e4794bd56933365fb35e4af7c830014214cb8ec77",
- "task": "t_010_connect",
- "lang": "typescript",
- "golden_published": true,
- "model_name": "DeepSeek Chat",
- "total_tests": 1,
- "passed_tests": 0,
- "llm_output": "import { schema, table, t } from 'spacetimedb/server';\n\nconst event = table(\n { name: 'event', public: true },\n {\n id: t.u64().primaryKey().autoInc(),\n kind: t.string(),\n }\n);\n\nconst spacetimedb = schema({ event });\nexport default spacetimedb;\n\nexport const clientConnected = spacetimedb.clientConnected(ctx => {\n ctx.db.event.insert({ id: 0n, kind: 'connected' });\n});\n\nexport const clientDisconnected = spacetimedb.clientDisconnected(ctx => {\n ctx.db.event.insert({ id: 0n, kind: 'disconnected' });\n});",
- "category": "basics",
- "route_api_model": "deepseek-chat",
- "scorer_details": {
- "schema_parity": {
- "pass": false,
- "partial": 0.0,
- "notes": {
- "reducers_diff": {
- "only_golden": [
- "on_connect()",
- "on_disconnect()"
- ],
- "only_llm": [
- "client_connected()",
- "client_disconnected()"
- ]
- },
- "reducers_equal": false,
- "tables_diff": null,
- "tables_equal": true
- }
- }
- },
- "vendor": "deepseek"
- },
- "t_011_helper_function": {
- "hash": "f0986524ee7bda1802573e7e4794bd56933365fb35e4af7c830014214cb8ec77",
- "task": "t_011_helper_function",
- "lang": "typescript",
- "golden_published": true,
- "model_name": "DeepSeek Chat",
- "total_tests": 3,
- "passed_tests": 3,
- "category": "basics",
- "route_api_model": "deepseek-chat",
- "scorer_details": {
- "helper_func_sum_abs": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "actual": 1,
- "expected": 1,
- "sql": "SELECT COUNT(*) AS n FROM result WHERE id=1 AND sum=5"
- }
- },
- "schema_parity": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "reducers_diff": null,
- "reducers_equal": true,
- "tables_diff": null,
- "tables_equal": true
- }
- },
- "helper_func_sum_parity": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "args": [
- 1,
- 2,
- 3
- ],
- "golden_out": "id | sum ----+----- 1 | 5",
- "llm_out": "id | sum ----+----- 1 | 5",
- "query": "SELECT id, sum FROM result WHERE id=1",
- "reducer": "compute_sum"
- }
- }
- },
- "vendor": "deepseek"
- },
- "t_012_spacetime_product_type": {
- "hash": "f0986524ee7bda1802573e7e4794bd56933365fb35e4af7c830014214cb8ec77",
- "task": "t_012_spacetime_product_type",
- "lang": "typescript",
- "golden_published": true,
- "model_name": "DeepSeek Chat",
- "total_tests": 3,
- "passed_tests": 3,
- "category": "schema",
- "route_api_model": "deepseek-chat",
- "scorer_details": {
- "product_type_row_count": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "actual": 1,
- "expected": 1,
- "sql": "SELECT COUNT(*) AS n FROM result WHERE id=1"
- }
- },
- "schema_parity": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "reducers_diff": null,
- "reducers_equal": true,
- "tables_diff": null,
- "tables_equal": true
- }
- },
- "product_type_row_parity": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "args": [
- 1,
- 2,
- 3
- ],
- "golden_out": "id | value ----+----------------------- 1 | (left = 2, right = 3)",
- "llm_out": "id | value ----+----------------------- 1 | (left = 2, right = 3)",
- "query": "SELECT id, value FROM result WHERE id=1",
- "reducer": "set_score"
- }
- }
- },
- "vendor": "deepseek"
- },
- "t_013_spacetime_sum_type": {
- "hash": "f0986524ee7bda1802573e7e4794bd56933365fb35e4af7c830014214cb8ec77",
- "task": "t_013_spacetime_sum_type",
- "lang": "typescript",
- "golden_published": true,
- "model_name": "DeepSeek Chat",
- "total_tests": 3,
- "passed_tests": 1,
- "llm_output": "import { schema, table, t } from 'spacetimedb/server';\n\nconst Rect = t.object('Rect', {\n width: t.i32(),\n height: t.i32(),\n});\n\nconst Shape = t.enum('Shape', {\n circle: t.i32(),\n rectangle: Rect,\n});\n\nconst result = table(\n { name: 'result' },\n {\n id: t.i32().primaryKey(),\n value: Shape,\n }\n);\n\nconst spacetimedb = schema({ result });\nexport default spacetimedb;\n\nexport const setCircle = spacetimedb.reducer({ id: t.i32(), radius: t.i32() }, (ctx, { id, radius }) => {\n ctx.db.result.insert({\n id,\n value: { tag: 'circle', value: radius },\n });\n});",
- "category": "schema",
- "route_api_model": "deepseek-chat",
- "scorer_details": {
- "schema_parity": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "reducers_diff": null,
- "reducers_equal": true,
- "tables_diff": null,
- "tables_equal": true
- }
- },
- "sum_type_row_parity": {
- "pass": false,
- "partial": 0.0,
- "notes": {
- "error": "spacetime call failed:\nWARNING: This command is UNSTABLE and subject to breaking changes.\n\nError: Response text: The instance encountered a fatal error.\n\nCaused by:\n HTTP status server error (530 ) for url (http://127.0.0.1:62644/v1/database/c200f9c264c6263338e4ae4b5f8f760b46aaf9f47002d4a59e3ccaf61f9b16bc/call/set_circle)\n",
- "phase": "call_reducer_golden"
- }
- },
- "sum_type_row_count": {
- "pass": false,
- "partial": 0.0,
- "notes": {
- "actual": 0,
- "expected": 1,
- "sql": "SELECT COUNT(*) AS n FROM result WHERE id=1"
- }
- }
- },
- "vendor": "deepseek"
- },
- "t_014_elementary_columns": {
- "hash": "f0986524ee7bda1802573e7e4794bd56933365fb35e4af7c830014214cb8ec77",
- "task": "t_014_elementary_columns",
- "lang": "typescript",
- "golden_published": true,
- "model_name": "DeepSeek Chat",
- "total_tests": 3,
- "passed_tests": 3,
- "category": "schema",
- "route_api_model": "deepseek-chat",
- "scorer_details": {
- "schema_parity": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "reducers_diff": null,
- "reducers_equal": true,
- "tables_diff": null,
- "tables_equal": true
- }
- },
- "elementary_columns_row_parity": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "args": [],
- "golden_out": "id | count | total | price | ratio | active | name ----+-------+------------+-------+-------+--------+--------- 1 | 2 | 3000000000 | 1.5 | 2.25 | true | \"Alice\"",
- "llm_out": "id | count | total | price | ratio | active | name ----+-------+------------+-------+-------+--------+--------- 1 | 2 | 3000000000 | 1.5 | 2.25 | true | \"Alice\"",
- "query": "SELECT id, count, total, price, ratio, active, name FROM primitive WHERE id=1",
- "reducer": "seed"
- }
- },
- "elementary_columns_row_count": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "actual": 1,
- "expected": 1,
- "sql": "SELECT COUNT(*) AS n FROM primitive WHERE id=1"
- }
- }
- },
- "vendor": "deepseek"
- },
- "t_015_product_type_columns": {
- "hash": "f0986524ee7bda1802573e7e4794bd56933365fb35e4af7c830014214cb8ec77",
- "task": "t_015_product_type_columns",
- "lang": "typescript",
- "golden_published": true,
- "model_name": "DeepSeek Chat",
- "total_tests": 3,
- "passed_tests": 3,
- "category": "schema",
- "route_api_model": "deepseek-chat",
- "scorer_details": {
- "product_type_columns_row_parity": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "args": [],
- "golden_out": "id | home | work | pos ----+----------------------------------+-----------------------------------+---------------- 1 | (street = \"1 Main\", zip = 11111) | (street = \"2 Broad\", zip = 22222) | (x = 7, y = 9)",
- "llm_out": "id | home | work | pos ----+----------------------------------+-----------------------------------+---------------- 1 | (street = \"1 Main\", zip = 11111) | (street = \"2 Broad\", zip = 22222) | (x = 7, y = 9)",
- "query": "SELECT id, home, work, pos FROM profile WHERE id=1",
- "reducer": "seed"
- }
- },
- "schema_parity": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "reducers_diff": null,
- "reducers_equal": true,
- "tables_diff": null,
- "tables_equal": true
- }
- },
- "product_type_columns_row_count": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "actual": 1,
- "expected": 1,
- "sql": "SELECT COUNT(*) AS n FROM profile WHERE id=1"
- }
- }
- },
- "vendor": "deepseek"
- },
- "t_016_sum_type_columns": {
- "hash": "f0986524ee7bda1802573e7e4794bd56933365fb35e4af7c830014214cb8ec77",
- "task": "t_016_sum_type_columns",
- "lang": "typescript",
- "golden_published": true,
- "model_name": "DeepSeek Chat",
- "total_tests": 3,
- "passed_tests": 1,
- "llm_output": "import { schema, table, t } from 'spacetimedb/server';\n\nconst Rect = t.object('Rect', {\n width: t.i32(),\n height: t.i32(),\n});\n\nconst Shape = t.enum('Shape', {\n circle: t.i32(),\n rectangle: Rect,\n});\n\nconst drawing = table(\n { name: 'drawing' },\n {\n id: t.i32().primaryKey(),\n a: Shape,\n b: Shape,\n }\n);\n\nconst spacetimedb = schema({ drawing });\nexport default spacetimedb;\n\nexport const seed = spacetimedb.reducer((ctx) => {\n ctx.db.drawing.insert({\n id: 1,\n a: { tag: 'circle', value: 10 },\n b: { tag: 'rectangle', value: { width: 4, height: 6 } },\n });\n});",
- "category": "schema",
- "route_api_model": "deepseek-chat",
- "scorer_details": {
- "sum_type_columns_row_parity": {
- "pass": false,
- "partial": 0.0,
- "notes": {
- "error": "spacetime call failed:\nWARNING: This command is UNSTABLE and subject to breaking changes.\n\nError: Response text: The instance encountered a fatal error.\n\nCaused by:\n HTTP status server error (530 ) for url (http://127.0.0.1:62644/v1/database/c200100766258eabd62fb624fa946e1b530e249ae9b9db139394a06440f0538c/call/seed)\n",
- "phase": "call_reducer_golden"
- }
- },
- "schema_parity": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "reducers_diff": null,
- "reducers_equal": true,
- "tables_diff": null,
- "tables_equal": true
- }
- },
- "sum_type_columns_row_count": {
- "pass": false,
- "partial": 0.0,
- "notes": {
- "actual": 0,
- "expected": 1,
- "sql": "SELECT COUNT(*) AS n FROM drawing WHERE id=1"
- }
- }
- },
- "vendor": "deepseek"
- },
- "t_017_scheduled_columns": {
- "hash": "f0986524ee7bda1802573e7e4794bd56933365fb35e4af7c830014214cb8ec77",
- "task": "t_017_scheduled_columns",
- "lang": "typescript",
- "golden_published": false,
- "model_name": "DeepSeek Chat",
- "total_tests": 2,
- "passed_tests": 0,
- "llm_output": "import { schema, table, t } from 'spacetimedb/server';\nimport { ScheduleAt } from 'spacetimedb';\n\nconst tickTimer = table(\n { scheduled: (): any => tick },\n {\n scheduledId: t.u64().primaryKey().autoInc(),\n scheduledAt: t.scheduleAt(),\n }\n);\n\nconst spacetimedb = schema({ tickTimer });\nexport default spacetimedb;\n\nexport const init = spacetimedb.init(ctx => {\n ctx.db.tickTimer.insert({\n scheduledId: 0n,\n scheduledAt: ScheduleAt.interval(50),\n });\n});\n\nexport const tick = spacetimedb.reducer({ arg: tickTimer.rowType }, (ctx, { arg }) => {\n});",
- "category": "schema",
- "route_api_model": "deepseek-chat",
- "scorer_details": {
- "publish_error": {
- "pass": false,
- "partial": 0.0,
- "notes": {
- "error": "spacetime publish (typescript) failed (exit=1)\n--- stderr ---\ntsc not found in node_modules. Make sure you have the `typescript` package as a dev-dependency and that your dependencies are installed.\nError: The instance encountered a fatal error.\n\nCaused by:\n HTTP status server error (500 Internal Server Error) for url (http://127.0.0.1:62644/v1/database/schema-t-017-scheduled-columns-deepseek-chat-llm?clear=true&host_type=Js)\n\n--- stdout ---\nBuild finished successfully.\nUploading to http://127.0.0.1:62644 => http://127.0.0.1:62644\nThis will DESTROY the current schema-t-017-scheduled-columns-deepseek-chat-llm module, and ALL corresponding data.\nSkipping confirmation due to --yes\nPublishing module...\nJavaScript / TypeScript support is currently in BETA.\nThere may be bugs. Please file issues if you encounter any.\n\n",
- "phase": "build_or_publish"
- }
- }
- },
- "vendor": "deepseek"
- },
- "t_018_constraints": {
- "hash": "f0986524ee7bda1802573e7e4794bd56933365fb35e4af7c830014214cb8ec77",
- "task": "t_018_constraints",
- "lang": "typescript",
- "golden_published": true,
- "model_name": "DeepSeek Chat",
- "total_tests": 3,
- "passed_tests": 3,
- "category": "schema",
- "route_api_model": "deepseek-chat",
- "scorer_details": {
- "schema_parity": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "reducers_diff": null,
- "reducers_equal": true,
- "tables_diff": null,
- "tables_equal": true
- }
- },
- "constraints_row_parity_after_seed": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "args": [],
- "golden_out": "id | email | name ----+-----------------+--------- 1 | \"a@example.com\" | \"Alice\"",
- "llm_out": "id | email | name ----+-----------------+--------- 1 | \"a@example.com\" | \"Alice\"",
- "query": "SELECT id, email, name FROM account WHERE id=1",
- "reducer": "seed"
- }
- },
- "constraints_seed_two_rows": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "actual": 1,
- "expected": 1,
- "sql": "SELECT COUNT(*) AS n FROM account WHERE id=2"
- }
- }
- },
- "vendor": "deepseek"
- },
- "t_019_many_to_many": {
- "hash": "f0986524ee7bda1802573e7e4794bd56933365fb35e4af7c830014214cb8ec77",
- "task": "t_019_many_to_many",
- "lang": "typescript",
- "golden_published": true,
- "model_name": "DeepSeek Chat",
- "total_tests": 5,
- "passed_tests": 5,
- "category": "schema",
- "route_api_model": "deepseek-chat",
- "scorer_details": {
- "m2m_has_1_20": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "actual": 1,
- "expected": 1,
- "sql": "SELECT COUNT(*) AS n FROM membership WHERE userId=1 AND groupId=20"
- }
- },
- "m2m_has_2_20": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "actual": 1,
- "expected": 1,
- "sql": "SELECT COUNT(*) AS n FROM membership WHERE userId=2 AND groupId=20"
- }
- },
- "schema_parity": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "reducers_diff": null,
- "reducers_equal": true,
- "tables_diff": null,
- "tables_equal": true
- }
- },
- "m2m_has_1_10": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "actual": 1,
- "expected": 1,
- "sql": "SELECT COUNT(*) AS n FROM membership WHERE userId=1 AND groupId=10"
- }
- },
- "memberships_three_rows": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "actual": 3,
- "expected": 3,
- "sql": "SELECT COUNT(*) AS n FROM membership"
- }
- }
- },
- "vendor": "deepseek"
- },
- "t_020_ecs": {
- "hash": "f0986524ee7bda1802573e7e4794bd56933365fb35e4af7c830014214cb8ec77",
- "task": "t_020_ecs",
- "lang": "typescript",
- "golden_published": true,
- "model_name": "DeepSeek Chat",
- "total_tests": 5,
- "passed_tests": 2,
- "llm_output": "import { schema, table, t } from 'spacetimedb/server';\n\nconst entity = table(\n { name: 'entity', public: true },\n {\n id: t.i32().primaryKey(),\n }\n);\n\nconst position = table(\n { name: 'position', public: true },\n {\n entityId: t.i32().primaryKey(),\n x: t.i32(),\n y: t.i32(),\n }\n);\n\nconst velocity = table(\n { name: 'velocity', public: true },\n {\n entityId: t.i32().primaryKey(),\n vx: t.i32(),\n vy: t.i32(),\n }\n);\n\nconst nextPosition = table(\n { name: 'nextPosition', public: true },\n {\n entityId: t.i32().primaryKey(),\n x: t.i32(),\n y: t.i32(),\n }\n);\n\nconst spacetimedb = schema({ entity, position, velocity, nextPosition });\nexport default spacetimedb;\n\nexport const seed = spacetimedb.reducer((ctx) => {\n ctx.db.entity.insert({ id: 1 });\n ctx.db.position.insert({ entityId: 1, x: 0, y: 0 });\n ctx.db.velocity.insert({ entityId: 1, vx: 1, vy: 0 });\n\n ctx.db.entity.insert({ id: 2 });\n ctx.db.position.insert({ entityId: 2, x: 10, y: 0 });\n ctx.db.velocity.insert({ entityId: 2, vx: -2, vy: 3 });\n});\n\nexport const step = spacetimedb.reducer((ctx) => {\n for (const pos of ctx.db.position.iter()) {\n const vel = ctx.db.velocity.entityId.find(pos.entityId);\n if (vel) {\n const nextX = pos.x + vel.vx;\n const nextY = pos.y + vel.vy;\n ctx.db.nextPosition.entityId.update({ entityId: pos.entityId, x: nextX, y: nextY });\n }\n }\n});",
- "category": "schema",
- "route_api_model": "deepseek-chat",
- "scorer_details": {
- "ecs_next_pos_entity2": {
- "pass": false,
- "partial": 0.0,
- "notes": {
- "error": "spacetime call failed:\nWARNING: This command is UNSTABLE and subject to breaking changes.\n\nError: Response text: The instance encountered a fatal error.\n\nCaused by:\n HTTP status server error (530 ) for url (http://127.0.0.1:62644/v1/database/c200a1edce9df991ad9c3b4c38a078c5d8d969292a7cc2b62ba6d8c83b818cbc/call/step)\n",
- "phase": "call_reducer"
- }
- },
- "ecs_next_pos_entity1": {
- "pass": false,
- "partial": 0.0,
- "notes": {
- "error": "spacetime call failed:\nWARNING: This command is UNSTABLE and subject to breaking changes.\n\nError: Response text: The instance encountered a fatal error.\n\nCaused by:\n HTTP status server error (530 ) for url (http://127.0.0.1:62644/v1/database/c200a1edce9df991ad9c3b4c38a078c5d8d969292a7cc2b62ba6d8c83b818cbc/call/step)\n",
- "phase": "call_reducer"
- }
- },
- "ecs_seed_position_count": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "actual": 2,
- "expected": 2,
- "sql": "SELECT COUNT(*) AS n FROM position"
- }
- },
- "schema_parity": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "reducers_diff": null,
- "reducers_equal": true,
- "tables_diff": null,
- "tables_equal": true
- }
- },
- "ecs_step_next_position_count": {
- "pass": false,
- "partial": 0.0,
- "notes": {
- "error": "spacetime call failed:\nWARNING: This command is UNSTABLE and subject to breaking changes.\n\nError: Response text: The instance encountered a fatal error.\n\nCaused by:\n HTTP status server error (530 ) for url (http://127.0.0.1:62644/v1/database/c200a1edce9df991ad9c3b4c38a078c5d8d969292a7cc2b62ba6d8c83b818cbc/call/step)\n",
- "phase": "call_reducer"
- }
- }
- },
- "vendor": "deepseek"
- },
- "t_021_multi_column_index": {
- "hash": "f0986524ee7bda1802573e7e4794bd56933365fb35e4af7c830014214cb8ec77",
- "task": "t_021_multi_column_index",
- "lang": "typescript",
- "golden_published": true,
- "model_name": "DeepSeek Chat",
- "total_tests": 4,
- "passed_tests": 4,
- "category": "schema",
- "route_api_model": "deepseek-chat",
- "scorer_details": {
- "mcindex_seed_count": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "actual": 3,
- "expected": 3,
- "sql": "SELECT COUNT(*) AS n FROM log"
- }
- },
- "mcindex_lookup_u7_d1": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "actual": 1,
- "expected": 1,
- "sql": "SELECT COUNT(*) AS n FROM log WHERE userId=7 AND day=1"
- }
- },
- "schema_parity": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "reducers_diff": null,
- "reducers_equal": true,
- "tables_diff": null,
- "tables_equal": true
- }
- },
- "mcindex_lookup_u7_d2": {
- "pass": true,
- "partial": 1.0,
- "notes": {
- "actual": 1,
- "expected": 1,
- "sql": "SELECT COUNT(*) AS n FROM log WHERE userId=7 AND day=2"
- }
- }
- },
- "vendor": "deepseek"
- }
- }
- }
- ]
- },
- {
- "mode": "cursor_rules",
- "hash": "f3691654a6b470fedbee3a465fd09fbf63705ffddbd0454b775385d72e02e2b3",
- "models": [
- {
- "name": "GPT-5.2-Codex",
- "route_api_model": "gpt-5.2-codex",
- "tasks": {
- "t_000_empty_reducers": {
- "hash": "f3691654a6b470fedbee3a465fd09fbf63705ffddbd0454b775385d72e02e2b3",
- "task": "t_000_empty_reducers",
- "lang": "typescript",
- "golden_published": false,
- "model_name": "GPT-5.2-Codex",
- "total_tests": 1,
- "passed_tests": 0,
- "llm_output": "import { schema, table, t } from 'spacetimedb/server';\n\nexport const emptyTable = table({ name: 'empty_table' }, {\n id: t.i32().primaryKey(),\n});\n\nexport const spacetimedb = schema(emptyTable);\n\nexport const emptyReducerNoArgs = spacetimedb.reducer('emptyReducerNoArgs', (ctx) => {});\n\nexport const emptyReducerWithInt = spacetimedb.reducer('emptyReducerWithInt', { count: t.i32() }, (ctx, { count }) => {});\n\nexport const emptyReducerWithString = spacetimedb.reducer('emptyReducerWithString', { name: t.string() }, (ctx, { name }) => {});\n\nexport const emptyReducerWithTwoArgs = spacetimedb.reducer('emptyReducerWithTwoArgs', { count: t.i32(), name: t.string() }, (ctx, { count, name }) => {});\n\nexport const emptyReducerWithThreeArgs = spacetimedb.reducer('emptyReducerWithThreeArgs', { active: t.bool(), ratio: t.f32(), label: t.string() }, (ctx, { active, ratio, label }) => {});",
- "category": "basics",
- "route_api_model": "gpt-5.2-codex",
- "scorer_details": {
- "publish_error": {
- "pass": false,
- "partial": 0.0,
- "notes": {
- "error": "spacetime publish (typescript) failed (exit=1)\n--- stderr ---\ntsc not found in node_modules. Make sure you have the `typescript` package as a dev-dependency and that your dependencies are installed.\nError: It seems like you haven't exported your schema. You must `export default schema(...);`\n\n--- stdout ---\n",
- "phase": "build_or_publish"
- }
- }
- },
- "vendor": "openai"
- },
- "t_001_basic_tables": {
- "hash": "f3691654a6b470fedbee3a465fd09fbf63705ffddbd0454b775385d72e02e2b3",
- "task": "t_001_basic_tables",
- "lang": "typescript",
- "golden_published": false,
- "model_name": "GPT-5.2-Codex",
- "total_tests": 1,
- "passed_tests": 0,
- "llm_output": "import { schema, table, t } from 'spacetimedb/server';\n\nexport const user = table({ name: 'user' }, {\n id: t.i32().primaryKey(),\n name: t.string(),\n age: t.i32(),\n active: t.bool(),\n});\n\nexport const product = table({ name: 'product' }, {\n id: t.i32().primaryKey(),\n title: t.string(),\n price: t.f32(),\n inStock: t.bool(),\n});\n\nexport const note = table({ name: 'note' }, {\n id: t.i32().primaryKey(),\n body: t.string(),\n rating: t.i64(),\n pinned: t.bool(),\n});\n\nexport const spacetimedb = schema({ user, product, note });",
- "category": "basics",
- "route_api_model": "gpt-5.2-codex",
- "scorer_details": {
- "publish_error": {
- "pass": false,
- "partial": 0.0,
- "notes": {
- "error": "spacetime publish (typescript) failed (exit=1)\n--- stderr ---\ntsc not found in node_modules. Make sure you have the `typescript` package as a dev-dependency and that your dependencies are installed.\nError: It seems like you haven't exported your schema. You must `export default schema(...);`\n\n--- stdout ---\n",
- "phase": "build_or_publish"
- }
- }
- },
- "vendor": "openai"
- },
- "t_002_scheduled_table": {
- "hash": "f3691654a6b470fedbee3a465fd09fbf63705ffddbd0454b775385d72e02e2b3",
- "task": "t_002_scheduled_table",
- "lang": "typescript",
- "golden_published": false,
- "model_name": "GPT-5.2-Codex",
- "total_tests": 1,
- "passed_tests": 0,
- "llm_output": "import { schema, table, t } from 'spacetimedb/server';\nimport { ScheduleAt } from 'spacetimedb';\n\nexport const tickTimer = table(\n { name: 'tick_timer', scheduled: () => tick },\n {\n scheduledId: t.u64().primaryKey().autoInc(),\n scheduledAt: t.scheduleAt()\n }\n);\n\nexport const spacetimedb = schema({ tickTimer });\n\nconst INTERVAL_MICROS = 50_000n;\n\nexport const tick = spacetimedb.reducer({ arg: tickTimer.rowType }, (ctx, { arg }) => {\n const nextAt = ScheduleAt.time(ctx.timestamp.microsSinceUnixEpoch + INTERVAL_MICROS);\n ctx.db.tickTimer.insert({ scheduledId: 0n, scheduledAt: nextAt });\n});\n\nexport const init = spacetimedb.reducer((ctx) => {\n const firstAt = ScheduleAt.time(ctx.timestamp.microsSinceUnixEpoch + INTERVAL_MICROS);\n ctx.db.tickTimer.insert({ scheduledId: 0n, scheduledAt: firstAt });\n});",
- "category": "basics",
- "route_api_model": "gpt-5.2-codex",
- "scorer_details": {
- "publish_error": {
- "pass": false,
- "partial": 0.0,
- "notes": {
- "error": "spacetime publish (typescript) failed (exit=1)\n--- stderr ---\ntsc not found in node_modules. Make sure you have the `typescript` package as a dev-dependency and that your dependencies are installed.\nError: It seems like you haven't exported your schema. You must `export default schema(...);`\n\n--- stdout ---\n",
- "phase": "build_or_publish"
- }
- }
- },
- "vendor": "openai"
- },
- "t_003_struct_in_table": {
- "hash": "f3691654a6b470fedbee3a465fd09fbf63705ffddbd0454b775385d72e02e2b3",
- "task": "t_003_struct_in_table",
- "lang": "typescript",
- "golden_published": false,
- "model_name": "GPT-5.2-Codex",
- "total_tests": 1,
- "passed_tests": 0,
- "llm_output": "import { schema, table, t } from 'spacetimedb/server';\n\nexport const Position = t.object('Position', {\n x: t.i32(),\n y: t.i32(),\n});\n\nexport const entity = table(\n { name: 'entity' },\n {\n id: t.i32().primaryKey(),\n pos: Position,\n }\n);\n\nexport const spacetimedb = schema({ entity });",
- "category": "basics",
- "route_api_model": "gpt-5.2-codex",
- "scorer_details": {
- "publish_error": {
- "pass": false,
- "partial": 0.0,
- "notes": {
- "error": "spacetime publish (typescript) failed (exit=1)\n--- stderr ---\ntsc not found in node_modules. Make sure you have the `typescript` package as a dev-dependency and that your dependencies are installed.\nError: It seems like you haven't exported your schema. You must `export default schema(...);`\n\n--- stdout ---\n",
- "phase": "build_or_publish"
- }
- }
- },
- "vendor": "openai"
- },
- "t_004_insert": {
- "hash": "f3691654a6b470fedbee3a465fd09fbf63705ffddbd0454b775385d72e02e2b3",
- "task": "t_004_insert",
- "lang": "typescript",
- "golden_published": false,
- "model_name": "GPT-5.2-Codex",
- "total_tests": 2,
- "passed_tests": 0,
- "llm_output": "import { schema, table, t } from 'spacetimedb/server';\n\nexport const user = table(\n { name: 'user' },\n {\n id: t.i32().primaryKey(),\n name: t.string(),\n age: t.i32(),\n active: t.bool(),\n }\n);\n\nexport const spacetimedb = schema({ user });\n\nexport const insertUser = spacetimedb.reducer(\n { id: t.i32(), name: t.string(), age: t.i32(), active: t.bool() },\n (ctx, { id, name, age, active }) => {\n ctx.db.user.insert({ id, name, age, active });\n }\n);",
- "category": "basics",
- "route_api_model": "gpt-5.2-codex",
- "scorer_details": {
- "publish_error": {
- "pass": false,
- "partial": 0.0,
- "notes": {
- "error": "spacetime publish (typescript) failed (exit=1)\n--- stderr ---\ntsc not found in node_modules. Make sure you have the `typescript` package as a dev-dependency and that your dependencies are installed.\nError: It seems like you haven't exported your schema. You must `export default schema(...);`\n\n--- stdout ---\n",
- "phase": "build_or_publish"
- }
- }
- },
- "vendor": "openai"
- },
- "t_005_update": {
- "hash": "f3691654a6b470fedbee3a465fd09fbf63705ffddbd0454b775385d72e02e2b3",
- "task": "t_005_update",
- "lang": "typescript",
- "golden_published": false,
- "model_name": "GPT-5.2-Codex",
- "total_tests": 3,
- "passed_tests": 0,
- "llm_output": "import { schema, table, t, SenderError } from 'spacetimedb/server';\n\nexport const user = table({ name: 'user' }, {\n id: t.i32().primaryKey(),\n name: t.string(),\n age: t.i32(),\n active: t.bool(),\n});\n\nexport const spacetimedb = schema(user);\n\nexport const updateUser = spacetimedb.reducer('updateUser', { id: t.i32(), name: t.string(), age: t.i32(), active: t.bool() }, (ctx, { id, name, age, active }) => {\n const existing = ctx.db.user.id.find(id);\n if (!existing) {\n throw new SenderError('User not found');\n }\n ctx.db.user.id.update({ ...existing, name, age, active });\n});",
- "category": "basics",
- "route_api_model": "gpt-5.2-codex",
- "scorer_details": {
- "publish_error": {
- "pass": false,
- "partial": 0.0,
- "notes": {
- "error": "spacetime publish (typescript) failed (exit=1)\n--- stderr ---\ntsc not found in node_modules. Make sure you have the `typescript` package as a dev-dependency and that your dependencies are installed.\nError: It seems like you haven't exported your schema. You must `export default schema(...);`\n\n--- stdout ---\n",
- "phase": "build_or_publish"
- }
- }
- },
- "vendor": "openai"
- },
- "t_006_delete": {
- "hash": "f3691654a6b470fedbee3a465fd09fbf63705ffddbd0454b775385d72e02e2b3",
- "task": "t_006_delete",
- "lang": "typescript",
- "golden_published": false,
- "model_name": "GPT-5.2-Codex",
- "total_tests": 3,
- "passed_tests": 0,
- "llm_output": "import { schema, table, t } from 'spacetimedb/server';\n\nexport const user = table(\n { name: 'user' },\n {\n id: t.i32().primaryKey(),\n name: t.string(),\n age: t.i32(),\n active: t.bool(),\n }\n);\n\nexport const spacetimedb = schema({ user });\n\nexport const deleteUser = spacetimedb.reducer({ id: t.i32() }, (ctx, { id }) => {\n ctx.db.user.id.delete(id);\n});",
- "category": "basics",
- "route_api_model": "gpt-5.2-codex",
- "scorer_details": {
- "publish_error": {
- "pass": false,
- "partial": 0.0,
- "notes": {
- "error": "spacetime publish (typescript) failed (exit=1)\n--- stderr ---\ntsc not found in node_modules. Make sure you have the `typescript` package as a dev-dependency and that your dependencies are installed.\nError: It seems like you haven't exported your schema. You must `export default schema(...);`\n\n--- stdout ---\n",
- "phase": "build_or_publish"
- }
- }
- },
- "vendor": "openai"
- },
- "t_007_crud": {
- "hash": "f3691654a6b470fedbee3a465fd09fbf63705ffddbd0454b775385d72e02e2b3",
- "task": "t_007_crud",
- "lang": "typescript",
- "golden_published": false,
- "model_name": "GPT-5.2-Codex",
- "total_tests": 4,
- "passed_tests": 0,
- "llm_output": "import { schema, table, t } from 'spacetimedb/server';\n\nexport const user = table({ name: 'user' }, {\n id: t.i32().primaryKey(),\n name: t.string(),\n age: t.i32(),\n active: t.bool(),\n});\n\nexport const spacetimedb = schema({ user });\n\nexport const crud = spacetimedb.reducer((ctx) => {\n ctx.db.user.insert({ id: 1, name: \"Alice\", age: 30, active: true });\n ctx.db.user.insert({ id: 2, name: \"Bob\", age: 22, active: false });\n ctx.db.user.id.update({ id: 1, name: \"Alice2\", age: 31, active: false });\n ctx.db.user.id.delete(2);\n});",
- "category": "basics",
- "route_api_model": "gpt-5.2-codex",
- "scorer_details": {
- "publish_error": {
- "pass": false,
- "partial": 0.0,
- "notes": {
- "error": "spacetime publish (typescript) failed (exit=1)\n--- stderr ---\ntsc not found in node_modules. Make sure you have the `typescript` package as a dev-dependency and that your dependencies are installed.\nError: It seems like you haven't exported your schema. You must `export default schema(...);`\n\n--- stdout ---\n",
- "phase": "build_or_publish"
- }
- }
- },
- "vendor": "openai"
- },
- "t_008_index_lookup": {
- "hash": "f3691654a6b470fedbee3a465fd09fbf63705ffddbd0454b775385d72e02e2b3",
- "task": "t_008_index_lookup",
- "lang": "typescript",
- "golden_published": false,
- "model_name": "GPT-5.2-Codex",
- "total_tests": 3,
- "passed_tests": 0,
- "llm_output": "import { schema, table, t, SenderError } from 'spacetimedb/server';\n\nexport const user = table(\n { name: 'user', public: true },\n {\n id: t.i32().primaryKey(),\n name: t.string(),\n age: t.i32(),\n active: t.bool()\n }\n);\n\nexport const result = table(\n { name: 'result', public: true },\n {\n id: t.i32().primaryKey(),\n name: t.string()\n }\n);\n\nexport const spacetimedb = schema(user, result);\n\nexport const lookupUserName = spacetimedb.reducer(\n 'lookupUserName',\n { id: t.i32() },\n (ctx, { id }) => {\n const u = ctx.db.user.id.find(id);\n if (!u) throw new SenderError('User not found');\n ctx.db.result.insert({ id: u.id, name: u.name });\n }\n);",
- "category": "basics",
- "route_api_model": "gpt-5.2-codex",
- "scorer_details": {
- "publish_error": {
- "pass": false,
- "partial": 0.0,
- "notes": {
- "error": "spacetime publish (typescript) failed (exit=1)\n--- stderr ---\ntsc not found in node_modules. Make sure you have the `typescript` package as a dev-dependency and that your dependencies are installed.\nError: It seems like you haven't exported your schema. You must `export default schema(...);`\n\n--- stdout ---\n",
- "phase": "build_or_publish"
- }
- }
- },
- "vendor": "openai"
- },
- "t_009_init": {
- "hash": "f3691654a6b470fedbee3a465fd09fbf63705ffddbd0454b775385d72e02e2b3",
- "task": "t_009_init",
- "lang": "typescript",
- "golden_published": false,
- "model_name": "GPT-5.2-Codex",
- "total_tests": 4,
- "passed_tests": 0,
- "llm_output": "import { schema, table, t } from 'spacetimedb/server';\n\nexport const user = table({ name: 'user' }, {\n id: t.i32().primaryKey(),\n name: t.string(),\n age: t.i32(),\n active: t.bool(),\n});\n\nexport const spacetimedb = schema({ user });\n\nexport const init = spacetimedb.reducer((ctx) => {\n ctx.db.user.insert({ id: 1, name: 'Alice', age: 30, active: true });\n ctx.db.user.insert({ id: 2, name: 'Bob', age: 22, active: false });\n});",
- "category": "basics",
- "route_api_model": "gpt-5.2-codex",
- "scorer_details": {
- "publish_error": {
- "pass": false,
- "partial": 0.0,
- "notes": {
- "error": "spacetime publish (typescript) failed (exit=1)\n--- stderr ---\ntsc not found in node_modules. Make sure you have the `typescript` package as a dev-dependency and that your dependencies are installed.\nError: It seems like you haven't exported your schema. You must `export default schema(...);`\n\n--- stdout ---\n",
- "phase": "build_or_publish"
- }
- }
- },
- "vendor": "openai"
- },
- "t_010_connect": {
- "hash": "f3691654a6b470fedbee3a465fd09fbf63705ffddbd0454b775385d72e02e2b3",
- "task": "t_010_connect",
- "lang": "typescript",
- "golden_published": false,
- "model_name": "GPT-5.2-Codex",
- "total_tests": 1,
- "passed_tests": 0,
- "llm_output": "import { schema, table, t } from 'spacetimedb/server';\n\nexport const event = table({ name: 'event' }, {\n id: t.u64().primaryKey().autoInc(),\n kind: t.string(),\n});\n\nexport const spacetimedb = schema({ event });\n\nspacetimedb.clientConnected((ctx) => {\n ctx.db.event.insert({ id: 0n, kind: 'connected' });\n});\n\nspacetimedb.clientDisconnected((ctx) => {\n ctx.db.event.insert({ id: 0n, kind: 'disconnected' });\n});",
- "category": "basics",
- "route_api_model": "gpt-5.2-codex",
- "scorer_details": {
- "publish_error": {
- "pass": false,
- "partial": 0.0,
- "notes": {
- "error": "spacetime publish (typescript) failed (exit=1)\n--- stderr ---\ntsc not found in node_modules. Make sure you have the `typescript` package as a dev-dependency and that your dependencies are installed.\nError: It seems like you haven't exported your schema. You must `export default schema(...);`\n\n--- stdout ---\n",
- "phase": "build_or_publish"
- }
- }
- },
- "vendor": "openai"
- },
- "t_011_helper_function": {
- "hash": "f3691654a6b470fedbee3a465fd09fbf63705ffddbd0454b775385d72e02e2b3",
- "task": "t_011_helper_function",
- "lang": "typescript",
- "golden_published": false,
- "model_name": "GPT-5.2-Codex",
- "total_tests": 3,
- "passed_tests": 0,
- "llm_output": "import { schema, table, t } from 'spacetimedb/server';\n\nexport const result = table({ name: 'result' }, {\n id: t.i32().primaryKey(),\n sum: t.i32(),\n});\n\nexport const spacetimedb = schema({ result });\n\nexport function add(a: number, b: number): number {\n return a + b;\n}\n\nexport const computeSum = spacetimedb.reducer({ id: t.i32(), a: t.i32(), b: t.i32() }, (ctx, { id, a, b }) => {\n ctx.db.result.insert({ id, sum: add(a, b) });\n});",
- "category": "basics",
- "route_api_model": "gpt-5.2-codex",
- "scorer_details": {
- "publish_error": {
- "pass": false,
- "partial": 0.0,
- "notes": {
- "error": "spacetime publish (typescript) failed (exit=1)\n--- stderr ---\ntsc not found in node_modules. Make sure you have the `typescript` package as a dev-dependency and that your dependencies are installed.\nError: It seems like you haven't exported your schema. You must `export default schema(...);`\n\n--- stdout ---\n",
- "phase": "build_or_publish"
- }
- }
- },
- "vendor": "openai"
- },
- "t_012_spacetime_product_type": {
- "hash": "f3691654a6b470fedbee3a465fd09fbf63705ffddbd0454b775385d72e02e2b3",
- "task": "t_012_spacetime_product_type",
- "lang": "typescript",
- "golden_published": false,
- "model_name": "GPT-5.2-Codex",
- "total_tests": 3,
- "passed_tests": 0,
- "llm_output": "import { schema, table, t } from 'spacetimedb/server';\n\nexport const Score = t.object('Score', {\n left: t.i32(),\n right: t.i32(),\n});\n\nexport const result = table({ name: 'result' }, {\n id: t.i32().primaryKey(),\n value: Score,\n});\n\nexport const spacetimedb = schema({ result });\n\nexport const setScore = spacetimedb.reducer(\n { id: t.i32(), left: t.i32(), right: t.i32() },\n (ctx, { id, left, right }) => {\n ctx.db.result.insert({ id, value: { left, right } });\n }\n);",
- "category": "schema",
- "route_api_model": "gpt-5.2-codex",
- "scorer_details": {
- "publish_error": {
- "pass": false,
- "partial": 0.0,
- "notes": {
- "error": "spacetime publish (typescript) failed (exit=1)\n--- stderr ---\ntsc not found in node_modules. Make sure you have the `typescript` package as a dev-dependency and that your dependencies are installed.\nError: It seems like you haven't exported your schema. You must `export default schema(...);`\n\n--- stdout ---\n",
- "phase": "build_or_publish"
- }
- }
- },
- "vendor": "openai"
- },
- "t_013_spacetime_sum_type": {
- "hash": "f3691654a6b470fedbee3a465fd09fbf63705ffddbd0454b775385d72e02e2b3",
- "task": "t_013_spacetime_sum_type",
- "lang": "typescript",
- "golden_published": false,
- "model_name": "GPT-5.2-Codex",
- "total_tests": 3,
- "passed_tests": 0,
- "llm_output": "import { schema, table, t } from 'spacetimedb/server';\n\nexport const Rect = t.object('Rect', {\n width: t.i32(),\n height: t.i32(),\n});\n\nexport const Shape = t.enum('Shape', {\n circle: t.i32(),\n rectangle: Rect,\n});\n\nexport const result = table(\n { name: 'result' },\n {\n id: t.i32().primaryKey(),\n value: Shape,\n }\n);\n\nexport const spacetimedb = schema(result);\n\nexport const setCircle = spacetimedb.reducer(\n 'setCircle',\n { id: t.i32(), radius: t.i32() },\n (ctx, { id, radius }) => {\n ctx.db.result.insert({\n id,\n value: { tag: 'circle', value: radius },\n });\n }\n);",
- "category": "schema",
- "route_api_model": "gpt-5.2-codex",
- "scorer_details": {
- "publish_error": {
- "pass": false,
- "partial": 0.0,
- "notes": {
- "error": "spacetime publish (typescript) failed (exit=1)\n--- stderr ---\ntsc not found in node_modules. Make sure you have the `typescript` package as a dev-dependency and that your dependencies are installed.\nError: It seems like you haven't exported your schema. You must `export default schema(...);`\n\n--- stdout ---\n",
- "phase": "build_or_publish"
- }
- }
- },
- "vendor": "openai"
- },
- "t_014_elementary_columns": {
- "hash": "f3691654a6b470fedbee3a465fd09fbf63705ffddbd0454b775385d72e02e2b3",
- "task": "t_014_elementary_columns",
- "lang": "typescript",
- "golden_published": false,
- "model_name": "GPT-5.2-Codex",
- "total_tests": 3,
- "passed_tests": 0,
- "llm_output": "import { schema, table, t } from 'spacetimedb/server';\n\nexport const primitive = table(\n { name: 'primitive' },\n {\n id: t.i32().primaryKey(),\n count: t.i32(),\n total: t.i64(),\n price: t.f32(),\n ratio: t.f64(),\n active: t.bool(),\n name: t.string(),\n }\n);\n\nexport const spacetimedb = schema({ primitive });\n\nexport const seed = spacetimedb.reducer((ctx) => {\n ctx.db.primitive.insert({\n id: 1,\n count: 2,\n total: 3000000000n,\n price: 1.5,\n ratio: 2.25,\n active: true,\n name: 'Alice',\n });\n});",
- "category": "schema",
- "route_api_model": "gpt-5.2-codex",
- "scorer_details": {
- "publish_error": {
- "pass": false,
- "partial": 0.0,
- "notes": {
- "error": "spacetime publish (typescript) failed (exit=1)\n--- stderr ---\ntsc not found in node_modules. Make sure you have the `typescript` package as a dev-dependency and that your dependencies are installed.\nError: It seems like you haven't exported your schema. You must `export default schema(...);`\n\n--- stdout ---\n",
- "phase": "build_or_publish"
- }
- }
- },
- "vendor": "openai"
- },
- "t_015_product_type_columns": {
- "hash": "f3691654a6b470fedbee3a465fd09fbf63705ffddbd0454b775385d72e02e2b3",
- "task": "t_015_product_type_columns",
- "lang": "typescript",
- "golden_published": false,
- "model_name": "GPT-5.2-Codex",
- "total_tests": 3,
- "passed_tests": 0,
- "llm_output": "import { schema, table, t } from 'spacetimedb/server';\n\nconst Address = t.object('Address', {\n street: t.string(),\n zip: t.i32(),\n});\n\nconst Position = t.object('Position', {\n x: t.i32(),\n y: t.i32(),\n});\n\nexport const profile = table(\n { name: 'profile' },\n {\n id: t.i32().primaryKey(),\n home: Address,\n work: Address,\n pos: Position,\n }\n);\n\nexport const spacetimedb = schema({ profile });\n\nexport const seed = spacetimedb.reducer((ctx) => {\n ctx.db.profile.insert({\n id: 1,\n home: { street: '1 Main', zip: 11111 },\n work: { street: '2 Broad', zip: 22222 },\n pos: { x: 7, y: 9 },\n });\n});",
- "category": "schema",
- "route_api_model": "gpt-5.2-codex",
- "scorer_details": {
- "publish_error": {
- "pass": false,
- "partial": 0.0,
- "notes": {
- "error": "spacetime publish (typescript) failed (exit=1)\n--- stderr ---\ntsc not found in node_modules. Make sure you have the `typescript` package as a dev-dependency and that your dependencies are installed.\nError: It seems like you haven't exported your schema. You must `export default schema(...);`\n\n--- stdout ---\n",
- "phase": "build_or_publish"
- }
- }
- },
- "vendor": "openai"
- },
- "t_016_sum_type_columns": {
- "hash": "f3691654a6b470fedbee3a465fd09fbf63705ffddbd0454b775385d72e02e2b3",
- "task": "t_016_sum_type_columns",
- "lang": "typescript",
- "golden_published": false,
- "model_name": "GPT-5.2-Codex",
- "total_tests": 3,
- "passed_tests": 0,
- "llm_output": "import { schema, table, t } from 'spacetimedb/server';\n\nexport const Rect = t.object('Rect', {\n width: t.i32(),\n height: t.i32(),\n});\n\nexport const Shape = t.enum('Shape', {\n circle: t.i32(),\n rectangle: Rect,\n});\n\nexport const drawing = table(\n { name: 'drawing' },\n {\n id: t.i32().primaryKey(),\n a: Shape,\n b: Shape,\n }\n);\n\nexport const spacetimedb = schema({ drawing });\n\nexport const seed = spacetimedb.reducer((ctx) => {\n ctx.db.drawing.insert({\n id: 1,\n a: { tag: 'circle', value: 10 },\n b: { tag: 'rectangle', value: { width: 4, height: 6 } },\n });\n});",
- "category": "schema",
- "route_api_model": "gpt-5.2-codex",
- "scorer_details": {
- "publish_error": {
- "pass": false,
- "partial": 0.0,
- "notes": {
- "error": "spacetime publish (typescript) failed (exit=1)\n--- stderr ---\ntsc not found in node_modules. Make sure you have the `typescript` package as a dev-dependency and that your dependencies are installed.\nError: It seems like you haven't exported your schema. You must `export default schema(...);`\n\n--- stdout ---\n",
- "phase": "build_or_publish"
- }
- }
- },
- "vendor": "openai"
- },
- "t_017_scheduled_columns": {
- "hash": "f3691654a6b470fedbee3a465fd09fbf63705ffddbd0454b775385d72e02e2b3",
- "task": "t_017_scheduled_columns",
- "lang": "typescript",
- "golden_published": false,
- "model_name": "GPT-5.2-Codex",
- "total_tests": 2,
- "passed_tests": 0,
- "llm_output": "import { schema, table, t } from 'spacetimedb/server';\nimport { ScheduleAt } from 'spacetimedb';\n\nexport const tickTimer = table(\n { name: 'tick_timer', scheduled: () => tick },\n {\n scheduledId: t.u64().primaryKey().autoInc(),\n scheduledAt: t.scheduleAt(),\n }\n);\n\nexport const spacetimedb = schema({ tickTimer });\n\nexport const tick = spacetimedb.reducer({ arg: tickTimer.rowType }, (ctx, { arg }) => {\n const nextTime = arg.scheduledAt.tag === 'Time'\n ? arg.scheduledAt.value.microsSinceUnixEpoch + 50_000_000n\n : ctx.timestamp.microsSinceUnixEpoch + 50_000_000n;\n ctx.db.tickTimer.insert({\n scheduledId: 0n,\n scheduledAt: ScheduleAt.time(nextTime),\n });\n});\n\nexport const init = spacetimedb.reducer((ctx) => {\n const nextTime = ctx.timestamp.microsSinceUnixEpoch + 50_000_000n;\n ctx.db.tickTimer.insert({\n scheduledId: 0n,\n scheduledAt: ScheduleAt.time(nextTime),\n });\n});",
- "category": "schema",
- "route_api_model": "gpt-5.2-codex",
- "scorer_details": {
- "publish_error": {
- "pass": false,
- "partial": 0.0,
- "notes": {
- "error": "spacetime publish (typescript) failed (exit=1)\n--- stderr ---\ntsc not found in node_modules. Make sure you have the `typescript` package as a dev-dependency and that your dependencies are installed.\nError: It seems like you haven't exported your schema. You must `export default schema(...);`\n\n--- stdout ---\n",
- "phase": "build_or_publish"
- }
- }
- },
- "vendor": "openai"
- },
- "t_018_constraints": {
- "hash": "f3691654a6b470fedbee3a465fd09fbf63705ffddbd0454b775385d72e02e2b3",
- "task": "t_018_constraints",
- "lang": "typescript",
- "golden_published": false,
- "model_name": "GPT-5.2-Codex",
- "total_tests": 3,
- "passed_tests": 0,
- "llm_output": "import { schema, table, t } from 'spacetimedb/server';\n\nexport const account = table(\n {\n name: 'account',\n indexes: [{ name: 'byName', algorithm: 'btree', columns: ['name'] }],\n },\n {\n id: t.i32().primaryKey(),\n email: t.string().unique(),\n name: t.string(),\n }\n);\n\nexport const spacetimedb = schema({ account });\n\nexport const seed = spacetimedb.reducer((ctx) => {\n ctx.db.account.insert({ id: 1, email: 'a@example.com', name: 'Alice' });\n ctx.db.account.insert({ id: 2, email: 'b@example.com', name: 'Bob' });\n});",
- "category": "schema",
- "route_api_model": "gpt-5.2-codex",
- "scorer_details": {
- "publish_error": {
- "pass": false,
- "partial": 0.0,
- "notes": {
- "error": "spacetime publish (typescript) failed (exit=1)\n--- stderr ---\ntsc not found in node_modules. Make sure you have the `typescript` package as a dev-dependency and that your dependencies are installed.\nError: It seems like you haven't exported your schema. You must `export default schema(...);`\n\n--- stdout ---\n",
- "phase": "build_or_publish"
- }
- }
- },
- "vendor": "openai"
- },
- "t_019_many_to_many": {
- "hash": "f3691654a6b470fedbee3a465fd09fbf63705ffddbd0454b775385d72e02e2b3",
- "task": "t_019_many_to_many",
- "lang": "typescript",
- "golden_published": false,
- "model_name": "GPT-5.2-Codex",
- "total_tests": 5,
- "passed_tests": 0,
- "llm_output": "import { schema, table, t } from 'spacetimedb/server';\n\nexport const user = table(\n { name: 'user' },\n {\n userId: t.i32().primaryKey(),\n name: t.string(),\n }\n);\n\nexport const group = table(\n { name: 'group' },\n {\n groupId: t.i32().primaryKey(),\n title: t.string(),\n }\n);\n\nexport const membership = table(\n {\n name: 'membership',\n indexes: [\n { name: 'byUser', algorithm: 'btree', columns: ['userId'] },\n { name: 'byGroup', algorithm: 'btree', columns: ['groupId'] },\n ],\n },\n {\n id: t.i32().primaryKey(),\n userId: t.i32(),\n groupId: t.i32(),\n }\n);\n\nexport const spacetimedb = schema({ user, group, membership });\n\nexport const seed = spacetimedb.reducer((ctx) => {\n ctx.db.user.insert({ userId: 1, name: 'Alice' });\n ctx.db.user.insert({ userId: 2, name: 'Bob' });\n\n ctx.db.group.insert({ groupId: 10, title: 'Admin' });\n ctx.db.group.insert({ groupId: 20, title: 'Dev' });\n\n ctx.db.membership.insert({ id: 1, userId: 1, groupId: 10 });\n ctx.db.membership.insert({ id: 2, userId: 1, groupId: 20 });\n ctx.db.membership.insert({ id: 3, userId: 2, groupId: 20 });\n});",
- "category": "schema",
- "route_api_model": "gpt-5.2-codex",
- "scorer_details": {
- "publish_error": {
- "pass": false,
- "partial": 0.0,
- "notes": {
- "error": "spacetime publish (typescript) failed (exit=1)\n--- stderr ---\ntsc not found in node_modules. Make sure you have the `typescript` package as a dev-dependency and that your dependencies are installed.\nError: It seems like you haven't exported your schema. You must `export default schema(...);`\n\n--- stdout ---\n",
- "phase": "build_or_publish"
- }
- }
- },
- "vendor": "openai"
- },
- "t_020_ecs": {
- "hash": "f3691654a6b470fedbee3a465fd09fbf63705ffddbd0454b775385d72e02e2b3",
- "task": "t_020_ecs",
- "lang": "typescript",
- "golden_published": false,
- "model_name": "GPT-5.2-Codex",
- "total_tests": 5,
- "passed_tests": 0,
- "llm_output": "import { schema, table, t } from 'spacetimedb/server';\n\nexport const entity = table({ name: 'entity' }, {\n id: t.i32().primaryKey(),\n});\n\nexport const position = table({ name: 'position' }, {\n entityId: t.i32().primaryKey(),\n x: t.i32(),\n y: t.i32(),\n});\n\nexport const velocity = table({ name: 'velocity' }, {\n entityId: t.i32().primaryKey(),\n vx: t.i32(),\n vy: t.i32(),\n});\n\nexport const nextPosition = table({ name: 'nextPosition' }, {\n entityId: t.i32().primaryKey(),\n x: t.i32(),\n y: t.i32(),\n});\n\nexport const spacetimedb = schema(entity, position, velocity, nextPosition);\n\nexport const seed = spacetimedb.reducer('seed', {}, (ctx) => {\n ctx.db.entity.insert({ id: 1 });\n ctx.db.position.insert({ entityId: 1, x: 0, y: 0 });\n ctx.db.velocity.insert({ entityId: 1, vx: 1, vy: 0 });\n\n ctx.db.entity.insert({ id: 2 });\n ctx.db.position.insert({ entityId: 2, x: 10, y: 0 });\n ctx.db.velocity.insert({ entityId: 2, vx: -2, vy: 3 });\n});\n\nexport const step = spacetimedb.reducer('step', {}, (ctx) => {\n for (const pos of ctx.db.position.iter()) {\n const vel = ctx.db.velocity.entityId.find(pos.entityId);\n if (!vel) continue;\n const x = pos.x + vel.vx;\n const y = pos.y + vel.vy;\n\n const existing = ctx.db.nextPosition.entityId.find(pos.entityId);\n if (existing) {\n ctx.db.nextPosition.entityId.update({ ...existing, x, y });\n } else {\n ctx.db.nextPosition.insert({ entityId: pos.entityId, x, y });\n }\n }\n});",
- "category": "schema",
- "route_api_model": "gpt-5.2-codex",
- "scorer_details": {
- "publish_error": {
- "pass": false,
- "partial": 0.0,
- "notes": {
- "error": "spacetime publish (typescript) failed (exit=1)\n--- stderr ---\ntsc not found in node_modules. Make sure you have the `typescript` package as a dev-dependency and that your dependencies are installed.\nError: It seems like you haven't exported your schema. You must `export default schema(...);`\n\n--- stdout ---\n",
- "phase": "build_or_publish"
- }
- }
- },
- "vendor": "openai"
- },
- "t_021_multi_column_index": {
- "hash": "f3691654a6b470fedbee3a465fd09fbf63705ffddbd0454b775385d72e02e2b3",
- "task": "t_021_multi_column_index",
- "lang": "typescript",
- "golden_published": false,
- "model_name": "GPT-5.2-Codex",
- "total_tests": 4,
- "passed_tests": 0,
- "llm_output": "import { schema, table, t } from 'spacetimedb/server';\n\nexport const log = table(\n {\n name: 'log',\n indexes: [{ name: 'byUserDay', algorithm: 'btree', columns: ['userId', 'day'] }],\n },\n {\n id: t.i32().primaryKey(),\n userId: t.i32(),\n day: t.i32(),\n message: t.string(),\n }\n);\n\nexport const spacetimedb = schema({ log });\n\nexport const seed = spacetimedb.reducer((ctx) => {\n ctx.db.log.insert({ id: 1, userId: 7, day: 1, message: 'a' });\n ctx.db.log.insert({ id: 2, userId: 7, day: 2, message: 'b' });\n ctx.db.log.insert({ id: 3, userId: 9, day: 1, message: 'c' });\n});",
- "category": "schema",
- "route_api_model": "gpt-5.2-codex",
- "scorer_details": {
- "publish_error": {
- "pass": false,
- "partial": 0.0,
- "notes": {
- "error": "spacetime publish (typescript) failed (exit=1)\n--- stderr ---\ntsc not found in node_modules. Make sure you have the `typescript` package as a dev-dependency and that your dependencies are installed.\nError: It seems like you haven't exported your schema. You must `export default schema(...);`\n\n--- stdout ---\n",
- "phase": "build_or_publish"
- }
- }
- },
- "vendor": "openai"
- }
- }
- }
- ]
- }
- ],
- "golden_answers": {}
- }
- ]
-}
diff --git a/docs/llms/llm-comparison-summary.json b/docs/llms/llm-comparison-summary.json
deleted file mode 100644
index bd86ae3f0bd..00000000000
--- a/docs/llms/llm-comparison-summary.json
+++ /dev/null
@@ -1,1042 +0,0 @@
-{
- "version": 1,
- "generated_at": "2026-02-21T19:00:17.834Z",
- "by_language": {
- "csharp": {
- "modes": {
- "docs": {
- "hash": "a4ddc223e2035781ae7e86c8c38c0d78212e9a0c4149c6535625b4033878e3a4",
- "models": {
- "Claude Opus 4.6": {
- "categories": {
- "basics": {
- "tasks": 12,
- "total_tests": 27,
- "passed_tests": 25,
- "pass_pct": 92.59259,
- "task_pass_equiv": 11.333334,
- "task_pass_pct": 94.44445
- },
- "schema": {
- "tasks": 10,
- "total_tests": 34,
- "passed_tests": 28,
- "pass_pct": 82.35294,
- "task_pass_equiv": 8.0,
- "task_pass_pct": 80.0
- }
- },
- "totals": {
- "tasks": 22,
- "total_tests": 61,
- "passed_tests": 53,
- "pass_pct": 86.88525,
- "task_pass_equiv": 19.333334,
- "task_pass_pct": 87.87879
- }
- },
- "Claude Sonnet 4.6": {
- "categories": {
- "basics": {
- "tasks": 12,
- "total_tests": 27,
- "passed_tests": 25,
- "pass_pct": 92.59259,
- "task_pass_equiv": 11.5,
- "task_pass_pct": 95.83333
- },
- "schema": {
- "tasks": 10,
- "total_tests": 34,
- "passed_tests": 33,
- "pass_pct": 97.05882,
- "task_pass_equiv": 9.666666,
- "task_pass_pct": 96.66666
- }
- },
- "totals": {
- "tasks": 22,
- "total_tests": 61,
- "passed_tests": 58,
- "pass_pct": 95.08197,
- "task_pass_equiv": 21.166666,
- "task_pass_pct": 96.21212
- }
- },
- "DeepSeek Chat": {
- "categories": {
- "basics": {
- "tasks": 12,
- "total_tests": 27,
- "passed_tests": 23,
- "pass_pct": 85.18519,
- "task_pass_equiv": 10.833334,
- "task_pass_pct": 90.27779
- },
- "schema": {
- "tasks": 10,
- "total_tests": 34,
- "passed_tests": 29,
- "pass_pct": 85.29412,
- "task_pass_equiv": 8.733334,
- "task_pass_pct": 87.333336
- }
- },
- "totals": {
- "tasks": 22,
- "total_tests": 61,
- "passed_tests": 52,
- "pass_pct": 85.2459,
- "task_pass_equiv": 19.566668,
- "task_pass_pct": 88.9394
- }
- },
- "DeepSeek Reasoner": {
- "categories": {
- "basics": {
- "tasks": 12,
- "total_tests": 27,
- "passed_tests": 22,
- "pass_pct": 81.48148,
- "task_pass_equiv": 10.583334,
- "task_pass_pct": 88.19445
- },
- "schema": {
- "tasks": 10,
- "total_tests": 34,
- "passed_tests": 16,
- "pass_pct": 47.058823,
- "task_pass_equiv": 5.4,
- "task_pass_pct": 54.000004
- }
- },
- "totals": {
- "tasks": 22,
- "total_tests": 61,
- "passed_tests": 38,
- "pass_pct": 62.295082,
- "task_pass_equiv": 15.983334,
- "task_pass_pct": 72.65152
- }
- },
- "GPT-5-mini": {
- "categories": {
- "basics": {
- "tasks": 12,
- "total_tests": 27,
- "passed_tests": 23,
- "pass_pct": 85.18519,
- "task_pass_equiv": 10.833334,
- "task_pass_pct": 90.27779
- },
- "schema": {
- "tasks": 10,
- "total_tests": 34,
- "passed_tests": 25,
- "pass_pct": 73.52941,
- "task_pass_equiv": 7.0,
- "task_pass_pct": 70.0
- }
- },
- "totals": {
- "tasks": 22,
- "total_tests": 61,
- "passed_tests": 48,
- "pass_pct": 78.68852,
- "task_pass_equiv": 17.833334,
- "task_pass_pct": 81.06061
- }
- },
- "GPT-5.2-Codex": {
- "categories": {
- "basics": {
- "tasks": 12,
- "total_tests": 27,
- "passed_tests": 16,
- "pass_pct": 59.25926,
- "task_pass_equiv": 6.416667,
- "task_pass_pct": 53.472225
- },
- "schema": {
- "tasks": 10,
- "total_tests": 34,
- "passed_tests": 29,
- "pass_pct": 85.29412,
- "task_pass_equiv": 8.55,
- "task_pass_pct": 85.5
- }
- },
- "totals": {
- "tasks": 22,
- "total_tests": 61,
- "passed_tests": 45,
- "pass_pct": 73.77049,
- "task_pass_equiv": 14.966668,
- "task_pass_pct": 68.03031
- }
- },
- "Gemini 3 Flash": {
- "categories": {
- "basics": {
- "tasks": 12,
- "total_tests": 27,
- "passed_tests": 23,
- "pass_pct": 85.18519,
- "task_pass_equiv": 10.833334,
- "task_pass_pct": 90.27779
- },
- "schema": {
- "tasks": 10,
- "total_tests": 34,
- "passed_tests": 22,
- "pass_pct": 64.70588,
- "task_pass_equiv": 6.666667,
- "task_pass_pct": 66.66667
- }
- },
- "totals": {
- "tasks": 22,
- "total_tests": 61,
- "passed_tests": 45,
- "pass_pct": 73.77049,
- "task_pass_equiv": 17.5,
- "task_pass_pct": 79.545456
- }
- },
- "Gemini 3.1 Pro": {
- "categories": {
- "basics": {
- "tasks": 12,
- "total_tests": 27,
- "passed_tests": 23,
- "pass_pct": 85.18519,
- "task_pass_equiv": 10.833334,
- "task_pass_pct": 90.27779
- },
- "schema": {
- "tasks": 10,
- "total_tests": 34,
- "passed_tests": 28,
- "pass_pct": 82.35294,
- "task_pass_equiv": 8.0,
- "task_pass_pct": 80.0
- }
- },
- "totals": {
- "tasks": 22,
- "total_tests": 61,
- "passed_tests": 51,
- "pass_pct": 83.60656,
- "task_pass_equiv": 18.833334,
- "task_pass_pct": 85.606064
- }
- },
- "Grok 4": {
- "categories": {
- "basics": {
- "tasks": 12,
- "total_tests": 27,
- "passed_tests": 23,
- "pass_pct": 85.18519,
- "task_pass_equiv": 10.833334,
- "task_pass_pct": 90.27779
- },
- "schema": {
- "tasks": 10,
- "total_tests": 34,
- "passed_tests": 34,
- "pass_pct": 100.0,
- "task_pass_equiv": 10.0,
- "task_pass_pct": 100.0
- }
- },
- "totals": {
- "tasks": 22,
- "total_tests": 61,
- "passed_tests": 57,
- "pass_pct": 93.44262,
- "task_pass_equiv": 20.833334,
- "task_pass_pct": 94.696976
- }
- },
- "Grok Code": {
- "categories": {
- "basics": {
- "tasks": 12,
- "total_tests": 27,
- "passed_tests": 22,
- "pass_pct": 81.48148,
- "task_pass_equiv": 10.5,
- "task_pass_pct": 87.5
- },
- "schema": {
- "tasks": 10,
- "total_tests": 34,
- "passed_tests": 28,
- "pass_pct": 82.35294,
- "task_pass_equiv": 8.8,
- "task_pass_pct": 88.0
- }
- },
- "totals": {
- "tasks": 22,
- "total_tests": 61,
- "passed_tests": 50,
- "pass_pct": 81.96722,
- "task_pass_equiv": 19.3,
- "task_pass_pct": 87.727264
- }
- }
- }
- },
- "llms.md": {
- "hash": "171b01e97d14a2c03356933e7c86331362cc53b87e82cd534cd74273e7bc8ea4",
- "models": {}
- }
- }
- },
- "rust": {
- "modes": {
- "cursor_rules": {
- "hash": "edbeadd577ce7acdedf6ce10e46c0aaee75d0cd6c30c8faef266a23ad86d12cf",
- "models": {
- "Grok 4": {
- "categories": {
- "basics": {
- "tasks": 3,
- "total_tests": 7,
- "passed_tests": 7,
- "pass_pct": 100.0,
- "task_pass_equiv": 3.0,
- "task_pass_pct": 100.0
- },
- "schema": {
- "tasks": 5,
- "total_tests": 17,
- "passed_tests": 13,
- "pass_pct": 76.47059,
- "task_pass_equiv": 4.0,
- "task_pass_pct": 80.0
- }
- },
- "totals": {
- "tasks": 8,
- "total_tests": 24,
- "passed_tests": 20,
- "pass_pct": 83.333336,
- "task_pass_equiv": 7.0,
- "task_pass_pct": 87.5
- }
- }
- }
- },
- "docs": {
- "hash": "cb5bf60a6d17e761b5fcec5d8e69bafbaf56602e570522e688d4da57973c7ea8",
- "models": {
- "Claude Opus 4.6": {
- "categories": {
- "basics": {
- "tasks": 12,
- "total_tests": 27,
- "passed_tests": 27,
- "pass_pct": 100.0,
- "task_pass_equiv": 12.0,
- "task_pass_pct": 100.0
- },
- "schema": {
- "tasks": 10,
- "total_tests": 34,
- "passed_tests": 34,
- "pass_pct": 100.0,
- "task_pass_equiv": 10.0,
- "task_pass_pct": 100.0
- }
- },
- "totals": {
- "tasks": 22,
- "total_tests": 61,
- "passed_tests": 61,
- "pass_pct": 100.0,
- "task_pass_equiv": 22.0,
- "task_pass_pct": 100.0
- }
- },
- "Claude Sonnet 4.6": {
- "categories": {
- "basics": {
- "tasks": 12,
- "total_tests": 27,
- "passed_tests": 27,
- "pass_pct": 100.0,
- "task_pass_equiv": 12.0,
- "task_pass_pct": 100.0
- },
- "schema": {
- "tasks": 10,
- "total_tests": 34,
- "passed_tests": 34,
- "pass_pct": 100.0,
- "task_pass_equiv": 10.0,
- "task_pass_pct": 100.0
- }
- },
- "totals": {
- "tasks": 22,
- "total_tests": 61,
- "passed_tests": 61,
- "pass_pct": 100.0,
- "task_pass_equiv": 22.0,
- "task_pass_pct": 100.0
- }
- },
- "DeepSeek Chat": {
- "categories": {
- "basics": {
- "tasks": 12,
- "total_tests": 27,
- "passed_tests": 23,
- "pass_pct": 85.18519,
- "task_pass_equiv": 11.0,
- "task_pass_pct": 91.66667
- },
- "schema": {
- "tasks": 10,
- "total_tests": 34,
- "passed_tests": 26,
- "pass_pct": 76.47059,
- "task_pass_equiv": 7.4,
- "task_pass_pct": 74.0
- }
- },
- "totals": {
- "tasks": 22,
- "total_tests": 61,
- "passed_tests": 49,
- "pass_pct": 80.327866,
- "task_pass_equiv": 18.4,
- "task_pass_pct": 83.63636
- }
- },
- "DeepSeek Reasoner": {
- "categories": {
- "basics": {
- "tasks": 12,
- "total_tests": 27,
- "passed_tests": 22,
- "pass_pct": 81.48148,
- "task_pass_equiv": 8.333333,
- "task_pass_pct": 69.44444
- },
- "schema": {
- "tasks": 10,
- "total_tests": 34,
- "passed_tests": 12,
- "pass_pct": 35.294117,
- "task_pass_equiv": 3.4,
- "task_pass_pct": 34.0
- }
- },
- "totals": {
- "tasks": 22,
- "total_tests": 61,
- "passed_tests": 34,
- "pass_pct": 55.737705,
- "task_pass_equiv": 11.733333,
- "task_pass_pct": 53.33333
- }
- },
- "GPT-5-mini": {
- "categories": {
- "basics": {
- "tasks": 12,
- "total_tests": 27,
- "passed_tests": 23,
- "pass_pct": 85.18519,
- "task_pass_equiv": 10.833334,
- "task_pass_pct": 90.27779
- },
- "schema": {
- "tasks": 10,
- "total_tests": 34,
- "passed_tests": 34,
- "pass_pct": 100.0,
- "task_pass_equiv": 10.0,
- "task_pass_pct": 100.0
- }
- },
- "totals": {
- "tasks": 22,
- "total_tests": 61,
- "passed_tests": 57,
- "pass_pct": 93.44262,
- "task_pass_equiv": 20.833334,
- "task_pass_pct": 94.696976
- }
- },
- "GPT-5.2-Codex": {
- "categories": {
- "basics": {
- "tasks": 12,
- "total_tests": 27,
- "passed_tests": 26,
- "pass_pct": 96.296295,
- "task_pass_equiv": 11.0,
- "task_pass_pct": 91.66667
- },
- "schema": {
- "tasks": 10,
- "total_tests": 34,
- "passed_tests": 29,
- "pass_pct": 85.29412,
- "task_pass_equiv": 9.0,
- "task_pass_pct": 90.0
- }
- },
- "totals": {
- "tasks": 22,
- "total_tests": 61,
- "passed_tests": 55,
- "pass_pct": 90.16393,
- "task_pass_equiv": 20.0,
- "task_pass_pct": 90.909096
- }
- },
- "Gemini 3 Flash": {
- "categories": {
- "basics": {
- "tasks": 12,
- "total_tests": 27,
- "passed_tests": 25,
- "pass_pct": 92.59259,
- "task_pass_equiv": 11.5,
- "task_pass_pct": 95.83333
- },
- "schema": {
- "tasks": 10,
- "total_tests": 34,
- "passed_tests": 34,
- "pass_pct": 100.0,
- "task_pass_equiv": 10.0,
- "task_pass_pct": 100.0
- }
- },
- "totals": {
- "tasks": 22,
- "total_tests": 61,
- "passed_tests": 59,
- "pass_pct": 96.72131,
- "task_pass_equiv": 21.5,
- "task_pass_pct": 97.72727
- }
- },
- "Gemini 3.1 Pro": {
- "categories": {
- "basics": {
- "tasks": 12,
- "total_tests": 27,
- "passed_tests": 22,
- "pass_pct": 81.48148,
- "task_pass_equiv": 9.0,
- "task_pass_pct": 75.0
- },
- "schema": {
- "tasks": 10,
- "total_tests": 34,
- "passed_tests": 28,
- "pass_pct": 82.35294,
- "task_pass_equiv": 8.0,
- "task_pass_pct": 80.0
- }
- },
- "totals": {
- "tasks": 22,
- "total_tests": 61,
- "passed_tests": 50,
- "pass_pct": 81.96722,
- "task_pass_equiv": 17.0,
- "task_pass_pct": 77.27273
- }
- },
- "Grok 4": {
- "categories": {
- "basics": {
- "tasks": 12,
- "total_tests": 27,
- "passed_tests": 24,
- "pass_pct": 88.888885,
- "task_pass_equiv": 11.0,
- "task_pass_pct": 91.66667
- },
- "schema": {
- "tasks": 10,
- "total_tests": 34,
- "passed_tests": 31,
- "pass_pct": 91.17647,
- "task_pass_equiv": 9.0,
- "task_pass_pct": 90.0
- }
- },
- "totals": {
- "tasks": 22,
- "total_tests": 61,
- "passed_tests": 55,
- "pass_pct": 90.16393,
- "task_pass_equiv": 20.0,
- "task_pass_pct": 90.909096
- }
- },
- "Grok Code": {
- "categories": {
- "basics": {
- "tasks": 12,
- "total_tests": 27,
- "passed_tests": 22,
- "pass_pct": 81.48148,
- "task_pass_equiv": 9.833334,
- "task_pass_pct": 81.94445
- },
- "schema": {
- "tasks": 10,
- "total_tests": 34,
- "passed_tests": 33,
- "pass_pct": 97.05882,
- "task_pass_equiv": 9.8,
- "task_pass_pct": 98.0
- }
- },
- "totals": {
- "tasks": 22,
- "total_tests": 61,
- "passed_tests": 55,
- "pass_pct": 90.16393,
- "task_pass_equiv": 19.633333,
- "task_pass_pct": 89.242424
- }
- }
- }
- },
- "llms.md": {
- "hash": "7bd4918052e02c4b09d50e7037cd2e81add76a4b42468acac54ee8f4073e37cf",
- "models": {
- "Grok 4": {
- "categories": {
- "basics": {
- "tasks": 1,
- "total_tests": 1,
- "passed_tests": 0,
- "pass_pct": 0.0,
- "task_pass_equiv": 0.0,
- "task_pass_pct": 0.0
- },
- "schema": {
- "tasks": 3,
- "total_tests": 9,
- "passed_tests": 5,
- "pass_pct": 55.555557,
- "task_pass_equiv": 2.0,
- "task_pass_pct": 66.66667
- }
- },
- "totals": {
- "tasks": 4,
- "total_tests": 10,
- "passed_tests": 5,
- "pass_pct": 50.0,
- "task_pass_equiv": 2.0,
- "task_pass_pct": 50.0
- }
- }
- }
- },
- "none": {
- "hash": "af1349b9f5f9a1a6a0404dea36dcc9499bcb25c9adc112b7cc9a93cae41f3262",
- "models": {
- "Grok 4": {
- "categories": {
- "basics": {
- "tasks": 1,
- "total_tests": 1,
- "passed_tests": 0,
- "pass_pct": 0.0,
- "task_pass_equiv": 0.0,
- "task_pass_pct": 0.0
- },
- "schema": {
- "tasks": 3,
- "total_tests": 3,
- "passed_tests": 0,
- "pass_pct": 0.0,
- "task_pass_equiv": 0.0,
- "task_pass_pct": 0.0
- }
- },
- "totals": {
- "tasks": 4,
- "total_tests": 4,
- "passed_tests": 0,
- "pass_pct": 0.0,
- "task_pass_equiv": 0.0,
- "task_pass_pct": 0.0
- }
- }
- }
- },
- "rustdoc_json": {
- "hash": "b0d5bbe755291d8ec65de0a74b4eecfa344670639ca5f1a365ced3ab9717e97c",
- "models": {
- "Grok 4": {
- "categories": {
- "basics": {
- "tasks": 12,
- "total_tests": 27,
- "passed_tests": 13,
- "pass_pct": 48.148148,
- "task_pass_equiv": 6.0,
- "task_pass_pct": 50.0
- },
- "schema": {
- "tasks": 10,
- "total_tests": 28,
- "passed_tests": 0,
- "pass_pct": 0.0,
- "task_pass_equiv": 0.0,
- "task_pass_pct": 0.0
- }
- },
- "totals": {
- "tasks": 22,
- "total_tests": 55,
- "passed_tests": 13,
- "pass_pct": 23.636364,
- "task_pass_equiv": 6.0,
- "task_pass_pct": 27.272728
- }
- }
- }
- }
- }
- },
- "typescript": {
- "modes": {
- "cursor_rules": {
- "hash": "f3691654a6b470fedbee3a465fd09fbf63705ffddbd0454b775385d72e02e2b3",
- "models": {
- "GPT-5.2-Codex": {
- "categories": {
- "basics": {
- "tasks": 12,
- "total_tests": 27,
- "passed_tests": 0,
- "pass_pct": 0.0,
- "task_pass_equiv": 0.0,
- "task_pass_pct": 0.0
- },
- "schema": {
- "tasks": 10,
- "total_tests": 34,
- "passed_tests": 0,
- "pass_pct": 0.0,
- "task_pass_equiv": 0.0,
- "task_pass_pct": 0.0
- }
- },
- "totals": {
- "tasks": 22,
- "total_tests": 61,
- "passed_tests": 0,
- "pass_pct": 0.0,
- "task_pass_equiv": 0.0,
- "task_pass_pct": 0.0
- }
- }
- }
- },
- "docs": {
- "hash": "3924da8acd3f980dd3c715b8feeec704c6d1a33c376ebb95ece2d4e0eef81093",
- "models": {
- "Claude Opus 4.6": {
- "categories": {
- "basics": {
- "tasks": 12,
- "total_tests": 27,
- "passed_tests": 26,
- "pass_pct": 96.296295,
- "task_pass_equiv": 11.0,
- "task_pass_pct": 91.66667
- },
- "schema": {
- "tasks": 10,
- "total_tests": 34,
- "passed_tests": 30,
- "pass_pct": 88.23529,
- "task_pass_equiv": 8.666667,
- "task_pass_pct": 86.666664
- }
- },
- "totals": {
- "tasks": 22,
- "total_tests": 61,
- "passed_tests": 56,
- "pass_pct": 91.803276,
- "task_pass_equiv": 19.666666,
- "task_pass_pct": 89.393936
- }
- },
- "Claude Sonnet 4.6": {
- "categories": {
- "basics": {
- "tasks": 12,
- "total_tests": 27,
- "passed_tests": 26,
- "pass_pct": 96.296295,
- "task_pass_equiv": 11.0,
- "task_pass_pct": 91.66667
- },
- "schema": {
- "tasks": 10,
- "total_tests": 34,
- "passed_tests": 30,
- "pass_pct": 88.23529,
- "task_pass_equiv": 8.666667,
- "task_pass_pct": 86.666664
- }
- },
- "totals": {
- "tasks": 22,
- "total_tests": 61,
- "passed_tests": 56,
- "pass_pct": 91.803276,
- "task_pass_equiv": 19.666666,
- "task_pass_pct": 89.393936
- }
- },
- "DeepSeek Chat": {
- "categories": {
- "basics": {
- "tasks": 12,
- "total_tests": 27,
- "passed_tests": 25,
- "pass_pct": 92.59259,
- "task_pass_equiv": 10.0,
- "task_pass_pct": 83.33333
- },
- "schema": {
- "tasks": 10,
- "total_tests": 34,
- "passed_tests": 25,
- "pass_pct": 73.52941,
- "task_pass_equiv": 7.066667,
- "task_pass_pct": 70.66667
- }
- },
- "totals": {
- "tasks": 22,
- "total_tests": 61,
- "passed_tests": 50,
- "pass_pct": 81.96722,
- "task_pass_equiv": 17.066666,
- "task_pass_pct": 77.57575
- }
- },
- "DeepSeek Reasoner": {
- "categories": {
- "basics": {
- "tasks": 12,
- "total_tests": 27,
- "passed_tests": 17,
- "pass_pct": 62.962963,
- "task_pass_equiv": 6.833333,
- "task_pass_pct": 56.944443
- },
- "schema": {
- "tasks": 10,
- "total_tests": 34,
- "passed_tests": 15,
- "pass_pct": 44.117645,
- "task_pass_equiv": 4.3333335,
- "task_pass_pct": 43.333332
- }
- },
- "totals": {
- "tasks": 22,
- "total_tests": 61,
- "passed_tests": 32,
- "pass_pct": 52.459015,
- "task_pass_equiv": 11.166666,
- "task_pass_pct": 50.757576
- }
- },
- "GPT-5-mini": {
- "categories": {
- "basics": {
- "tasks": 12,
- "total_tests": 27,
- "passed_tests": 25,
- "pass_pct": 92.59259,
- "task_pass_equiv": 10.0,
- "task_pass_pct": 83.33333
- },
- "schema": {
- "tasks": 10,
- "total_tests": 34,
- "passed_tests": 15,
- "pass_pct": 44.117645,
- "task_pass_equiv": 4.533334,
- "task_pass_pct": 45.333336
- }
- },
- "totals": {
- "tasks": 22,
- "total_tests": 61,
- "passed_tests": 40,
- "pass_pct": 65.57377,
- "task_pass_equiv": 14.533333,
- "task_pass_pct": 66.0606
- }
- },
- "GPT-5.2-Codex": {
- "categories": {
- "basics": {
- "tasks": 12,
- "total_tests": 27,
- "passed_tests": 15,
- "pass_pct": 55.555557,
- "task_pass_equiv": 6.0,
- "task_pass_pct": 50.0
- },
- "schema": {
- "tasks": 10,
- "total_tests": 34,
- "passed_tests": 28,
- "pass_pct": 82.35294,
- "task_pass_equiv": 7.666667,
- "task_pass_pct": 76.66667
- }
- },
- "totals": {
- "tasks": 22,
- "total_tests": 61,
- "passed_tests": 43,
- "pass_pct": 70.491806,
- "task_pass_equiv": 13.666667,
- "task_pass_pct": 62.121212
- }
- },
- "Gemini 3 Flash": {
- "categories": {
- "basics": {
- "tasks": 12,
- "total_tests": 27,
- "passed_tests": 25,
- "pass_pct": 92.59259,
- "task_pass_equiv": 10.0,
- "task_pass_pct": 83.33333
- },
- "schema": {
- "tasks": 10,
- "total_tests": 34,
- "passed_tests": 28,
- "pass_pct": 82.35294,
- "task_pass_equiv": 8.0,
- "task_pass_pct": 80.0
- }
- },
- "totals": {
- "tasks": 22,
- "total_tests": 61,
- "passed_tests": 53,
- "pass_pct": 86.88525,
- "task_pass_equiv": 18.0,
- "task_pass_pct": 81.818184
- }
- },
- "Gemini 3.1 Pro": {
- "categories": {
- "basics": {
- "tasks": 12,
- "total_tests": 27,
- "passed_tests": 22,
- "pass_pct": 81.48148,
- "task_pass_equiv": 9.833334,
- "task_pass_pct": 81.94445
- },
- "schema": {
- "tasks": 10,
- "total_tests": 34,
- "passed_tests": 30,
- "pass_pct": 88.23529,
- "task_pass_equiv": 8.666667,
- "task_pass_pct": 86.666664
- }
- },
- "totals": {
- "tasks": 22,
- "total_tests": 61,
- "passed_tests": 52,
- "pass_pct": 85.2459,
- "task_pass_equiv": 18.5,
- "task_pass_pct": 84.090904
- }
- },
- "Grok 4": {
- "categories": {
- "basics": {
- "tasks": 12,
- "total_tests": 27,
- "passed_tests": 20,
- "pass_pct": 74.07407,
- "task_pass_equiv": 8.5,
- "task_pass_pct": 70.83333
- },
- "schema": {
- "tasks": 10,
- "total_tests": 34,
- "passed_tests": 21,
- "pass_pct": 61.764706,
- "task_pass_equiv": 6.0,
- "task_pass_pct": 60.000004
- }
- },
- "totals": {
- "tasks": 22,
- "total_tests": 61,
- "passed_tests": 41,
- "pass_pct": 67.21311,
- "task_pass_equiv": 14.499999,
- "task_pass_pct": 65.90909
- }
- },
- "Grok Code": {
- "categories": {
- "basics": {
- "tasks": 12,
- "total_tests": 27,
- "passed_tests": 24,
- "pass_pct": 88.888885,
- "task_pass_equiv": 10.333334,
- "task_pass_pct": 86.111115
- },
- "schema": {
- "tasks": 10,
- "total_tests": 34,
- "passed_tests": 28,
- "pass_pct": 82.35294,
- "task_pass_equiv": 7.666667,
- "task_pass_pct": 76.66667
- }
- },
- "totals": {
- "tasks": 22,
- "total_tests": 61,
- "passed_tests": 52,
- "pass_pct": 85.2459,
- "task_pass_equiv": 18.0,
- "task_pass_pct": 81.818184
- }
- }
- }
- }
- }
- }
- }
-}
\ No newline at end of file
diff --git a/docs/package.json b/docs/package.json
index e8a33cd9e6a..64e5d951180 100644
--- a/docs/package.json
+++ b/docs/package.json
@@ -11,6 +11,7 @@
"clear": "docusaurus clear",
"serve": "docusaurus serve",
"generate-cli-docs": "node scripts/generate-cli-docs.mjs",
+ "generate-llms": "docusaurus build && node scripts/generate-llms.mjs",
"rewrite-links": "node scripts/rewrite-doc-links.mjs",
"rewrite-links:write": "node scripts/rewrite-doc-links.mjs --write",
"write-translations": "docusaurus write-translations",
@@ -41,6 +42,7 @@
"@docusaurus/module-type-aliases": "3.9.2",
"@docusaurus/tsconfig": "3.9.2",
"@docusaurus/types": "3.9.2",
+ "@signalwire/docusaurus-plugin-llms-txt": "^1.2.2",
"@types/react": "^18.3.23",
"@types/react-dom": "^18.3.0",
"typescript": "~5.6.2"
diff --git a/docs/scripts/generate-llms.mjs b/docs/scripts/generate-llms.mjs
new file mode 100644
index 00000000000..6728d70cb7c
--- /dev/null
+++ b/docs/scripts/generate-llms.mjs
@@ -0,0 +1,48 @@
+#!/usr/bin/env node
+/**
+ * Post-build script: copies the plugin-generated llms.txt to static/llms.md
+ * so it can be committed to the repo.
+ *
+ * Usage: pnpm build && node scripts/generate-llms.mjs
+ * or: pnpm generate-llms
+ */
+import { promises as fs } from 'node:fs';
+import path from 'node:path';
+import { fileURLToPath } from 'node:url';
+
+const __dirname = path.dirname(fileURLToPath(import.meta.url));
+const BUILD_DIR = path.resolve(__dirname, '../build');
+const STATIC_DIR = path.resolve(__dirname, '../static');
+
+async function findInBuild(filename) {
+ for (const candidate of [filename, `docs/${filename}`]) {
+ const p = path.join(BUILD_DIR, candidate);
+ try {
+ await fs.access(p);
+ return p;
+ } catch {}
+ }
+ return null;
+}
+
+async function main() {
+ const src = await findInBuild('llms.txt');
+ if (!src) {
+ console.error('Error: llms.txt not found in build output.');
+ console.error('Run "pnpm build" first to generate it via the plugin.');
+ process.exit(1);
+ }
+
+ const content = await fs.readFile(src, 'utf8');
+ const dest = path.join(STATIC_DIR, 'llms.md');
+ await fs.writeFile(dest, content, 'utf8');
+
+ const lines = content.split('\n').length;
+ console.log(`${src} -> ${dest}`);
+ console.log(` ${lines} lines`);
+}
+
+main().catch((err) => {
+ console.error(err);
+ process.exit(1);
+});
diff --git a/docs/static/ai-guidelines/README.md b/docs/static/ai-guidelines/README.md
new file mode 100644
index 00000000000..421ade50343
--- /dev/null
+++ b/docs/static/ai-guidelines/README.md
@@ -0,0 +1,32 @@
+# AI Guidelines
+
+Constructive-only "happy path" cheat sheets optimized for **one-shot code generation**.
+Each file shows correct SpacetimeDB patterns for a single language — no anti-patterns,
+no "don't do this" sections.
+
+## Files
+
+| File | Language |
+|------|----------|
+| `spacetimedb-rust.md` | Rust server modules |
+| `spacetimedb-typescript.md` | TypeScript server modules |
+| `spacetimedb-csharp.md` | C# server modules |
+
+## How these are used
+
+The LLM benchmark (`tools/xtask-llm-benchmark`) injects these as context when running
+in `guidelines` mode. The benchmark sends the guidelines as a static prefix along with
+task instructions, then validates the generated code by publishing it to SpacetimeDB.
+
+## Guidelines vs Cursor Rules
+
+These are **not** the same as the cursor/IDE rules in `docs/static/ai-rules/`.
+
+- **Guidelines** (this directory): Minimal, constructive-only references for one-shot
+ generation. Show the correct way to do things and nothing else.
+- **Cursor rules** (`ai-rules/`): IDE-oriented `.mdc` rules for Cursor, Windsurf, etc.
+ Include anti-hallucination guardrails, common mistake tables, client-side patterns, and
+ migration guidance. These work well in an IDE where the model has project context and
+ can iterate, but they are not designed for single-shot benchmark generation.
+
+See the comment in `tools/xtask-llm-benchmark/src/context/constants.rs` for more detail.
diff --git a/docs/static/ai-guidelines/spacetimedb-csharp.md b/docs/static/ai-guidelines/spacetimedb-csharp.md
new file mode 100644
index 00000000000..18598b1b62f
--- /dev/null
+++ b/docs/static/ai-guidelines/spacetimedb-csharp.md
@@ -0,0 +1,485 @@
+# SpacetimeDB C# Server Module Guidelines
+
+## Imports
+
+```csharp
+using SpacetimeDB;
+```
+
+Additional imports when needed:
+```csharp
+using System.Linq; // For LINQ queries (OrderBy, Take, etc.)
+using System.Collections.Generic; // For HashSet, List, etc.
+```
+
+## Module Structure
+
+All code goes inside a static partial class:
+```csharp
+using SpacetimeDB;
+
+public static partial class Module
+{
+ // Tables, types, and reducers here
+}
+```
+
+## Table Definitions
+
+Basic table:
+```csharp
+[Table(Accessor = "User")]
+public partial struct User
+{
+ [PrimaryKey]
+ public int Id;
+ public string Name;
+ public int Age;
+ public bool Active;
+}
+```
+
+Public table with auto-increment:
+```csharp
+[Table(Accessor = "Message", Public = true)]
+public partial struct Message
+{
+ [PrimaryKey]
+ [AutoInc]
+ public ulong Id;
+ public Identity Owner;
+ public string Text;
+}
+```
+
+Event table (append-only):
+```csharp
+[Table(Accessor = "DamageEvent", Public = true, Event = true)]
+public partial struct DamageEvent
+{
+ public ulong EntityId;
+ public uint Damage;
+ public string Source;
+}
+```
+
+Scheduled table:
+```csharp
+[Table(Accessor = "TickTimer", Scheduled = nameof(Tick), ScheduledAt = nameof(TickTimer.ScheduledAt))]
+public partial struct TickTimer
+{
+ [PrimaryKey, AutoInc]
+ public ulong ScheduledId;
+ public ScheduleAt ScheduledAt;
+}
+```
+
+## Column Types
+
+| C# Type | Usage |
+|---------|-------|
+| `int`, `uint` | 32-bit integers |
+| `long`, `ulong` | 64-bit integers |
+| `float`, `double` | Floating point |
+| `bool` | Boolean |
+| `string` | Text |
+| `Identity` | User identity |
+| `Timestamp` | Timestamp |
+| `ScheduleAt` | Schedule metadata |
+| `T?` (nullable) | Optional field |
+
+Timestamp arithmetic — use `TimeDuration`:
+```csharp
+ctx.Timestamp + new TimeDuration { Microseconds = 60_000_000 } // add 60 seconds
+ctx.Timestamp.MicrosecondsSinceUnixEpoch // raw long value
+```
+
+## Constraints and Indexes
+
+```csharp
+[PrimaryKey] public int Id;
+[PrimaryKey, AutoInc] public ulong Id;
+[Unique] public string Email;
+```
+
+Single-column index:
+```csharp
+[SpacetimeDB.Index.BTree]
+public Identity Owner;
+```
+
+Named single-column index:
+```csharp
+[SpacetimeDB.Index.BTree(Accessor = "by_name", Columns = [nameof(Name)])]
+```
+
+Multi-column index (on table attribute — MUST include Accessor):
+```csharp
+[Table(Accessor = "Log")]
+[SpacetimeDB.Index.BTree(Accessor = "by_user_day", Columns = new[] { nameof(UserId), nameof(Day) })]
+public partial struct Log
+{
+ [PrimaryKey] public int Id;
+ public int UserId;
+ public int Day;
+}
+```
+
+## Product Types (Structs)
+
+```csharp
+[Type]
+public partial struct Position
+{
+ public int X;
+ public int Y;
+}
+
+[Table(Accessor = "Entity")]
+public partial struct Entity
+{
+ [PrimaryKey] public int Id;
+ public Position Pos;
+}
+```
+
+## Sum Types (Tagged Unions)
+
+```csharp
+[Type]
+public partial struct Circle { public int Radius; }
+
+[Type]
+public partial struct Rectangle { public int Width; public int Height; }
+
+[Type]
+public partial record Shape : TaggedEnum<(Circle Circle, Rectangle Rectangle)> {}
+
+// Construction:
+new Shape.Circle(new Circle { Radius = 10 })
+new Shape.Rectangle(new Rectangle { Width = 5, Height = 3 })
+```
+
+## Reducers
+
+Basic reducer:
+```csharp
+[Reducer]
+public static void InsertUser(ReducerContext ctx, int id, string name, int age, bool active)
+{
+ ctx.Db.User.Insert(new User { Id = id, Name = name, Age = age, Active = active });
+}
+```
+
+Init reducer (runs once on startup):
+```csharp
+[Reducer(ReducerKind.Init)]
+public static void Init(ReducerContext ctx)
+{
+ ctx.Db.Config.Insert(new Config { Id = 0, Setting = "default" });
+}
+```
+
+Scheduled reducer:
+```csharp
+[Reducer]
+public static void Tick(ReducerContext ctx, TickTimer timer)
+{
+ // Runs when timer fires
+}
+```
+
+## Database Operations
+
+### Insert
+```csharp
+ctx.Db.User.Insert(new User { Id = 1, Name = "Alice", Age = 30, Active = true });
+
+// Auto-inc: use 0 as placeholder
+var row = ctx.Db.Message.Insert(new Message { Id = 0, Text = "Hello" });
+// row.Id now has the assigned value
+```
+
+### Find (by primary key or unique index)
+```csharp
+var user = ctx.Db.User.Id.Find(userId);
+if (user is not null) { /* use user */ }
+if (user is User u) { /* use u */ }
+
+// With expect pattern:
+var msg = ctx.Db.Message.Id.Find(id) ?? throw new Exception("not found");
+```
+
+### Filter (by btree index — returns iterator)
+```csharp
+foreach (var post in ctx.Db.Post.AuthorId.Filter(authorId))
+{
+ ctx.Db.Post.Id.Delete(post.Id);
+}
+```
+
+### Iterate all rows
+```csharp
+foreach (var row in ctx.Db.User.Iter())
+{
+ // process row
+}
+```
+
+### Update
+```csharp
+ctx.Db.User.Id.Update(new User { Id = id, Name = newName, Age = newAge, Active = true });
+
+// Using `with` expression:
+ctx.Db.RateLimit.Identity.Update(existing with { LastCallUs = now });
+```
+
+### Delete
+```csharp
+ctx.Db.User.Id.Delete(userId);
+ctx.Db.OnlinePlayer.Identity.Delete(ctx.Sender);
+```
+
+## Authentication
+
+`ctx.Sender` is the authenticated caller's `Identity`:
+
+```csharp
+[Reducer]
+public static void SendMessage(ReducerContext ctx, string text)
+{
+ ctx.Db.Message.Insert(new Message
+ {
+ Id = 0,
+ Owner = ctx.Sender,
+ Text = text,
+ });
+}
+
+[Reducer]
+public static void DeleteMessage(ReducerContext ctx, ulong id)
+{
+ var msg = ctx.Db.Message.Id.Find(id) ?? throw new Exception("not found");
+ if (msg.Owner != ctx.Sender)
+ {
+ throw new Exception("unauthorized");
+ }
+ ctx.Db.Message.Id.Delete(id);
+}
+```
+
+Identity as primary key:
+```csharp
+[Table(Accessor = "Player")]
+public partial struct Player
+{
+ [PrimaryKey]
+ public Identity Identity;
+ public string Name;
+}
+
+// Check registration
+if (ctx.Db.Player.Identity.Find(ctx.Sender) is not null)
+{
+ throw new Exception("already registered");
+}
+```
+
+## Lifecycle Hooks
+
+```csharp
+[Reducer(ReducerKind.ClientConnected)]
+public static void ClientConnected(ReducerContext ctx)
+{
+ ctx.Db.OnlinePlayer.Insert(new OnlinePlayer
+ {
+ Identity = ctx.Sender,
+ ConnectedAt = ctx.Timestamp,
+ });
+}
+
+[Reducer(ReducerKind.ClientDisconnected)]
+public static void ClientDisconnected(ReducerContext ctx)
+{
+ ctx.Db.OnlinePlayer.Identity.Delete(ctx.Sender);
+}
+```
+
+## Views
+
+Anonymous view (same result for all clients):
+```csharp
+[SpacetimeDB.View(Accessor = "ActiveAnnouncements", Public = true)]
+public static List ActiveAnnouncements(AnonymousViewContext ctx)
+{
+ return ctx.Db.Announcement.Active.Filter(true).ToList();
+}
+```
+
+Per-user view:
+```csharp
+// Return types: T? for single, List for multiple. Never IEnumerable.
+[SpacetimeDB.View(Accessor = "MyProfile", Public = true)]
+public static Profile? MyProfile(ViewContext ctx)
+{
+ return ctx.Db.Profile.Identity.Find(ctx.Sender) as Profile?;
+}
+```
+
+## Scheduled Tables
+
+```csharp
+[Table(Accessor = "Reminder", Scheduled = nameof(SendReminder), ScheduledAt = nameof(Reminder.ScheduledAt))]
+public partial struct Reminder
+{
+ [PrimaryKey, AutoInc]
+ public ulong ScheduledId;
+ public ScheduleAt ScheduledAt;
+ public string Message;
+}
+
+[Reducer]
+public static void SendReminder(ReducerContext ctx, Reminder row)
+{
+ // row.Message available
+}
+
+// Schedule recurring interval
+var interval = new TimeDuration { Microseconds = 50_000 };
+ctx.Db.TickTimer.Insert(new TickTimer
+{
+ ScheduledAt = new ScheduleAt.Interval(interval),
+});
+
+// Schedule at specific time
+var delay = new TimeDuration { Microseconds = 60_000_000 };
+ctx.Db.Reminder.Insert(new Reminder
+{
+ ScheduledAt = new ScheduleAt.Time(ctx.Timestamp + delay),
+ Message = "Hello!",
+});
+
+// Cancel a scheduled job
+ctx.Db.Reminder.ScheduledId.Delete(scheduledId);
+```
+
+## Optional Fields
+
+```csharp
+[Table(Accessor = "Player")]
+public partial struct Player
+{
+ [PrimaryKey, AutoInc]
+ public ulong Id;
+ public string Name;
+ public string? Nickname;
+ public uint? HighScore;
+}
+```
+
+## LINQ Queries
+
+```csharp
+using System.Linq;
+
+// Sort and limit
+var topPlayers = ctx.Db.Player.Iter()
+ .OrderByDescending(p => p.Score)
+ .Take((int)limit)
+ .ToList();
+
+// Distinct values
+var categories = new HashSet