Repository navigation
test: retire tests that pin source text - #640
Conversation
…feature `debug_repair_after_publish` restores seeds and schedules on every published shard, so it now lives in an ungated `operations` module. The reducer keeps its name and arguments, so the CLI, scripts and runbooks keep working. The debug module no longer claims that a production publish leaves `debug_reducers` off: every publish enables it. The crate root names SpacetimeDB 2.7.1, the pinned version. Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
Delete every Module test that asserted a function body or source file contains, lacks or equals a literal string, including the verbatim pins of the creature cycle, mail escrow and transfer production adapters. Behaviour tests in the same files stay. A rename or reformat no longer turns CI red. Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
Delete the `include_str!` scans over the Gateway's handler, Store, view, subscription and `main.rs` sources, and the decoy-defence tests on the `WorldStore` adapter. The Gateway's own `code_of` copy loses its last caller and goes with them. The shared crate's scan of the Module and Gateway proficiency call sites goes too. Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
Each retained Architecture Test now opens its failure message with the invariant it protects. The spatial-scan, shard-id, transfer-fence and gc-reap scanners gain a negative test that feeds them a small violating source. The gc-reap scan ignores comments in `gc.rs`. Delete the issue-reference ban and the dead-code allowance rule. The print-macro ban becomes a grep in the `fmt` CI job with the same scope: `module/src` and every `packages/*/src`. Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
…-support `code_of`, `shape_of` and `body_of` now live in `lyracore_test_support::source_scan`. The Package API's `package_test` root re-exports `code_of` and `shape_of` from there under the same names, because official Package tests still call them. The Module keeps only the helpers its Architecture Tests use. Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
…s with clippy The logon handshake, the addon and auth-session decoders and the configuration parser deny `unwrap`, `expect`, `panic!`, `unreachable!`, `todo!` and `unimplemented!` outside tests. This replaces the source scan of the same four files, and the message is one clippy line. Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
A durable test runs `lyracore-gateway provision` against a standalone with a World Shard and a distinct Realm-core, then reads `game_account` on both. It replaces the scan of `provision`'s source and runs in the durable workflow. Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
Remove work-item and review history from source comments. Retain the current Transfer, Realm authority, private-recipient, and tick contracts, and move long module guides to docs. Co-Authored-By: GPT-6.1 Sol via Codex <noreply@openai.com>
Exercise non-operator Mail refusals, Hunter-pet cleanup and retaming, mount reconstruction, Region assignment tombstones, and aura ID reminting through existing reducer fixtures. Run the real Gateway executable to prove startup leases, Group Intent consumption, roster mirroring, Character deletion, and Transfer completion. The file resolver test now compares the reader result without pinning a function-name string. Co-Authored-By: GPT-6.1 Sol via Codex <noreply@openai.com>
Scan existing Package source directories alongside the required Module source root. Accept only grep's no-match status so violations and read errors both fail the gate. Co-Authored-By: GPT-6.1 Sol via Codex <noreply@openai.com>
Exercise the Gateway login and world-port reducers alongside the debug rebuild. Verify durable GM carry fields reach the rebuilt Entity. Co-Authored-By: GPT-6.1 Sol via Codex <noreply@openai.com>
Restore the unchanged Transfer Escrow, arrival fence, Instance and addressed-event subscriptions removed while shortening adjacent documentation. Co-Authored-By: GPT-6.1 Sol via Codex <noreply@openai.com>
Co-Authored-By: GPT-6.1 Sol via Codex <noreply@openai.com>
Describe the current schema comparison in a lookup document and keep its test header short. Co-Authored-By: GPT-6.1 Sol via Codex <noreply@openai.com>
Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
Restore sentences the sweep broke, drop leftover work-item numbers and slice, stage and phase labels, and state history notes as present-tense invariants. Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
…able fixtures Phase 1 deleted source scans that pinned these facts. Each test now drives the reducers on a private Standalone. - operator_gates: every reducer in the published schema, except debug, scheduled, lifecycle and claim_operator, refuses an anonymous caller at the Operator gate. It replaces mail_operator, which covered the Mail reducers only. - transfer_fence: login, the timed-quest and rested passes, and the Instance reaper leave a Character in Escrow alone. - corpse_loot_residue, diminishing_returns, instance_party: a kill purges both corpse-loot residue tables, a control aura without a free slot leaves diminishing returns unchanged, and a solo Instance becomes the party's Instance. Standalone gains describe() for the schema read. Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
Remove pre-NNN phrases and parenthesised work-item numbers. Keep spell, skill line, DBC field, update field and creature ids. No code change. Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
Remove [NNN] tags, 'the NNN contract/gate', 'NNN's' references and parenthesised work-item numbers. Keep spell, skill line and DBC ids. No code change. Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
Code review: Standards and SpecReviewed at StandardsHard violations (documented rules)
Judgement calls (smells)
SpecMissing or partial
Not asked for
Looks done, but wrong
Confirmed done:
Summary:
Generated by Claude Code |
A contributor's first pull request could fail for reasons unrelated to its behaviour. About 250 tests asserted that a function body contains a literal string, and three harnesses pinned a production adapter's source verbatim. A rename or a reformat turned CI red, and the only fix was to re-bless text. Comments also carried review narration, slice and phase labels, and bare work-item numbers that do not resolve.
This is phase 1 of #635. It changes no gameplay behaviour.
Tests
lyracore-test-support, so the Module and Gateway no longer carry two copies.fmtjob. The panic ban at untrusted-input boundaries is a clippy lint.operator_gates: every gated reducer in the published schema (225 today) refuses an anonymous caller. A new reducer is covered automatically. This replacesmail_operator.transfer_fence: login refuses a Character in escrow, background passes leave it unchanged, and the Instance reaper holds its Instance.corpse_loot_residue,diminishing_returns,instance_party: corpse-loot purge, diminishing returns only after a placed aura, and solo Instance adoption by a new party.Operations
debug_repair_after_publishmoved to an ungated operations module. The reducer name and arguments are unchanged, and it still requires the Operator. Production is unchanged, because every publish already builds withdebug_reducers.debug_reducersoff.Comments
docs/(for exampledocs/module-build.md,docs/character-transfer.md,docs/runtime-script-host.md).Local gates: fmt, clippy with
-D warnings, the five crate test commands and the wasm check pass. The new durable targets pass locally.🤖 Generated with Claude Code (Claude Opus 5.5 lead, with Opus 5.5 and Sonnet 5.5 subagents; part of the comment sweep by GPT-6.1 Sol via Codex)