Skip to content

fix(gameobject): require opener for locked goobers - #440

Merged
Mathih13 merged 1 commit into
mainfrom
fix/goober-locks
Sep 7, 2026
Merged

Mathih13 merged 1 commit into
mainfrom
fix/goober-locks

Conversation

@Mathih13

@Mathih13 Mathih13 commented Sep 5, 2026

Copy link
Copy Markdown
Contributor

A locked GOOBER could grant quest credit and fire Package hooks without its required opener. This let the imported Defias Cannon fire without Defias Gunpowder.

The GOOBER use path now applies the same locked_shut Gate as CHEST, DOOR and BUTTON before any effect. A private Standalone regression proves that a Refusal leaves quest credit, XP from an on_go_used Package script, GOOBER state and unlock state unchanged. It also proves success after the existing item opener writes the unlock row, and success for a lockless GOOBER.

The existing item opener checks possession and keeps the key. The regression records that contract.

Remaining acceptance is a real 1.12 client use of the imported Defias Cannon. The Module test drives the production use and OPEN_LOCK cores with equivalent lock data.

Verification:

  • cargo test -p lyracore-module --test goober_lock locked_goober_use_is_atomic_until_an_opener_unlocks_it -- --ignored --nocapture
  • cargo test -p lyracore-module
  • cargo test -p lyracore-module --lib --features=debug_reducers
  • ./lyracore preflight

Refs #367

Implemented by GPT-5.6 Sol through Codex.

@coderabbitai

coderabbitai Bot commented Sep 5, 2026 •

Copy link
Copy Markdown

Warning

Review limit reached

Next included review available in 28 minutes.

Check out review usage here.

View limit details

Limit details: You’ve used all 10 included reviews currently available.

Enable usage-based reviews in Billing to review now. Otherwise, wait until the next included review is available.
You're only billed for reviews past your plan's rate limits ($0.25/file).

Learn how review limits work.

Review configuration:

⚙️ Run configuration

Configuration used: defaults

Review profile: CHILL

Plan: Advanced

Run ID: 1f0507c6-c396-46eb-b225-afaa7b7cccf0

📥 Commits

Reviewing files that changed from the base of the PR and between 3e750af and 6c32518.

📒 Files selected for processing (2)
  • module/src/gameobject.rs
  • module/tests/goober_lock.rs

Comment @coderabbitai help to get the list of available commands.

@Mathih13

Mathih13 commented Sep 7, 2026

Copy link
Copy Markdown
Contributor Author

Current-head verification for 6c32518d358c77aae0eca881eec7d9846b21eb5d, rebased onto main at 3e750af3ab6f5fcc75f22040f3b7ece1edd5075c:

  • Reviewed the complete two-file diff against Confirm on a real client that the Defias Cannon needs its gunpowder #367. The shared use Gate refuses a locked GOOBER before quest credit or the on_go_used Package hook can run.
  • Updated the Standalone fixture for the current mutable publish API.
  • Updated apply_use_gameobject documentation to describe the shared use Gate and supported type dispatch accurately.
  • Private Standalone regression: locked_goober_use_is_atomic_until_an_opener_unlocks_it passed on the exact head. It covers refusal without the key, unlock with the key, retained key inventory, quest credit and Package hook after unlock, and lockless GOOBER behavior.
  • Module library tests: 1,477 passed before the final rebase. The rebase added fix(world): remove motion after cross-map teleport #438's unrelated teleport cleanup; the focused durable regression then passed again on the exact head.
  • cargo fmt --all --check, git diff --check, and ./lyracore preflight passed.

The test used a new private local fixture and did not access an existing or production realm. Imported Defias Cannon behavior still needs the real 1.12 client acceptance tracked in #367, so this PR continues to use Refs #367.

Current-head implementation review completed by GPT-6 Astra in Codex/T3 Code.

@Mathih13

Mathih13 commented Sep 7, 2026

Copy link
Copy Markdown
Contributor Author

@coderabbitai review

@coderabbitai

coderabbitai Bot commented Sep 7, 2026 •

Copy link
Copy Markdown
⚠️ Action not completed

Review rate limited.

Note: CodeRabbit is an incremental review system and does not re-review already reviewed commits. This command is applicable only when automatic reviews are paused.

@Mathih13
Mathih13 merged commit 0b8631d into main Sep 7, 2026
7 checks passed
@Mathih13
Mathih13 deleted the fix/goober-locks branch October 11, 2026 18:20
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant