d8720510be
A dev build maps a linked worktree's `benilla-config/` to the main checkout's, so a developer's worktrees share one settings folder. That included a worktree that declares its own account in `.probe-identity`: an attended run from it, or a scripted one without `WOW_UNATTENDED`, read and wrote the main checkout's CVars, bindings, macros and saved variables while logged in as another account. A branch with a wrong settings migration or scripted key presses changed the player's own client, with nothing to show it. `local_state::shared_root` now keeps such a worktree's state in its own `benilla-config/`. A worktree without `.probe-identity`, and the main checkout, resolve as before. CONTRIBUTING and `.gitignore` say so. Test: `the_state_root_is_the_folder_or_its_primary_checkout` adds a worktree with a `.probe-identity`, which keeps its own root, and a main checkout with one, which is unchanged; it fails without the change. `the_state_folder_lands_where_the_build_says` follows the rule. 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
45 lines
1.6 KiB
Plaintext
45 lines
1.6 KiB
Plaintext
# Rust build artifacts
|
|
/target/
|
|
**/*.rs.bk
|
|
# Cargo.lock IS committed (this workspace produces binaries).
|
|
|
|
# --- Blizzard-owned content: NEVER commit ---
|
|
# The user's legally-installed 1.12.1 client. Read at runtime; not redistributed.
|
|
/WoW
|
|
# Cached / extracted assets derived from the user's install.
|
|
/extracted/
|
|
/out/
|
|
# Real client files used as test fixtures (document expected paths, do not commit).
|
|
**/tests/fixtures/
|
|
|
|
# --- benilla's own local state ---
|
|
# The one folder benilla persists into: config.toml, macros/, bindings/, saved-variables.lua,
|
|
# camera/. A dev build resolves it to the main checkout (so linked worktrees share one, bar a
|
|
# worktree with a .probe-identity, which keeps its own); a release build puts it beside the
|
|
# binary — which is why it is not called `benilla/`: that name collides with the binary of the
|
|
# same name. Machine-local by definition — `crate::local_state`
|
|
# is the only thing in the tree that may write it.
|
|
/benilla-config
|
|
|
|
# The account a scripted run from this checkout logs in as (scripts/probe-identity.sh and the
|
|
# client's account guard read it): WOW_USER=, WOW_PASS=, WOW_CHAR=, one per line. A credential.
|
|
/.probe-identity
|
|
|
|
# Profiling output: `--features bevy/trace_chrome` drops a multi-GB flame chart in the cwd, which
|
|
# otherwise leaves the checkout "dirty".
|
|
trace-*.json
|
|
|
|
# OS / editor cruft
|
|
.DS_Store
|
|
*.swp
|
|
/.idea/
|
|
# Claude Code: settings and skills under .claude/ are each person's own.
|
|
/.claude/
|
|
|
|
# Python bytecode from the `scripts/` tooling.
|
|
__pycache__/
|
|
|
|
# The vanilla addon corpus the UI engine's real-addon tests read (third-party content): a symlink
|
|
# beside `WoW`, or `BENILLA_ADDON_CORPUS`.
|
|
/wow-addons-vanilla
|