Skip to content

Support distinct profiles for same-named actors - #735

Draft
RANGROO wants to merge 6 commits into
unstablefrom
codex/same-name-actor-profiles
Draft

Support distinct profiles for same-named actors#735
RANGROO wants to merge 6 commits into
unstablefrom
codex/same-name-actor-profiles

Conversation

@RANGROO

@RANGROO RANGROO commented Aug 24, 2026

Copy link
Copy Markdown
Collaborator

Summary

  • use canonical Name [RefID: XXXXXXXX] identity for same-named NPC profiles
  • select RefID-qualified profiles with md5(Name [RefID]); retain legacy md5(name) only when no RefID exists
  • resolve exact name plus RefID and reject ambiguous unqualified same-name requests
  • remove actor_key columns, indexes, API fields, metadata, and UI presentation
  • retain mod source in metadata.mods

Migration

  • npc_actor_identity version 20260824003
  • rekeys rows created by the earlier draft to the canonical display-identity hash
  • removes actor-key columns and index
  • adds a unique index over normalized name plus RefID

Validation

  • PHP lint passed for every changed PHP file
  • focused identity proof passed for two same-name Bandits with distinct RefIDs and profile hashes
  • local WSL migration transaction proof passed 2/2
  • remote migration gate confirmed version 20260824003, zero actor-key columns, one display-identity unique index, and HTTP 200
  • remote deployed NpcMaster::create produced:
    • Bandit [RefID: FF00AB01] -> 10fa69e082d9597494b9144c31e9efae
    • Bandit [RefID: FF00AB02] -> bc8513f2a3071a5d71bc53b5a9f70ebe
  • both remote profiles retained metadata.mods = ["Skyrim.esm"]
  • manager UI showed both RefIDs and source metadata with no Actor Key field
  • git diff --check passed

Local deployment

Deployed the 12 changed server files and migration to /var/www/html/HerikaServer in DwemerAI4Skyrim3.

The migration is active. The updater still reaches an unrelated existing later eventlog_view/sess dependency error.

Game Lab result

Test 20260825T032837797Z-0a8d6b1e is validated as inconclusive overall because fresh-save live activation and save/reload continuity were not completed. The server identity path, schema, UI, mod-source retention, and safety checks passed. The laptop was fully restored afterward.

Counterpart CHIM PR: Dwemer-Dynamics/CHIM#165

Review notes

Manual review is required. The push guard reports active/open-PR overlap in shared runtime, migration, prompt, and NPC-manager files, including #734, #733, #725, #709, #704, #690, #594, #568, and #536.

Test-suite limit

The full PHPUnit run completed with 268 tests and 2,617 assertions but did not pass: 16 errors, 2 failures, and 1 warning from existing environment/baseline issues such as unavailable Windows PostgreSQL, missing ZipArchive, a missing Oghma test dependency, and unrelated faction failures. Focused actor-identity probes passed.

@RANGROO

RANGROO commented Aug 24, 2026

Copy link
Copy Markdown
Collaborator Author

Remote Game Lab evidence

This earlier actor-key result has been superseded by the simplified Name + RefID revision. See the current evidence and explicit test limits in the latest Game Lab comment.

@RANGROO

RANGROO commented Aug 25, 2026

Copy link
Copy Markdown
Collaborator Author

Remote Game Lab evidence — Name + RefID revision

Validated test: 20260825T032837797Z-0a8d6b1e

Passed:

  • exact CHIM 865b67ce and HerikaServer 8f33a0fc artifacts deployed
  • migration 20260824003, zero actor_key columns, and normalized name/RefID unique index active
  • two same-name profiles created through the deployed server path:
    • Bandit [RefID: FF00AB01] -> 10fa69e082d9597494b9144c31e9efae
    • Bandit [RefID: FF00AB02] -> bc8513f2a3071a5d71bc53b5a9f70ebe
  • both rows retained metadata.mods = ["Skyrim.esm"]
  • manager UI showed both RefIDs and source metadata with no Actor Key field
  • Skyrim used the exact GameLab-CHIM-Core profile; tgm and tcai were visibly enabled before hostile testing

Overall result: inconclusive. The fresh-save Manual AI Activate binding did not persist, so this run does not claim live activation or save/reload continuity. The failed fallback console commands are explicitly excluded from proof.

The laptop database, 12 server files, DLL, UI state, services, harness config, and game processes were restored afterward. The validated Game Lab result and evidence hashes are stored under test ID 20260825T032837797Z-0a8d6b1e.

God Mode and combat AI safety enabled before two Bandits were tested

Two distinct same-name Bandit profiles keyed by RefID with Skyrim.esm source metadata

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