Summary
When opening the Character Repository Manager, double-clicking a repository, and clicking a character (e.g. ELARA), the details panel shows "Character not found" even though the character appears in the list with its tag count.
Root cause
Characters are stored in scannedCharacters with composite keys (lorebookName::char.name), but navigateToCharacter sets selectedCharacter to only the character name. The lookup then fails because the keys do not match.
-
Storage scannedCharacters.set("MyLorebook::ELARA", char)
|
scannedCharacters.set(cacheKey, char); |
-
Lookup setSelectedCharacter("ELARA") → scannedCharacters.get("ELARA") → undefined
|
function navigateToCharacter(characterName, repoName) { |
|
setCurrentRepoView('character'); |
|
setSelectedCharacter(characterName); |
|
setSelectedRepository(repoName); |
|
renderRepositoryManager(); |
|
} |
|
function renderCharacterDetails() { |
|
const char = scannedCharacters.get(selectedCharacter); |
|
if (!char) { |
|
return ` |
|
<div class="carrot-repo-empty-state"> |
|
<i class="fa-solid fa-user-slash"></i> |
|
<p>Character not found</p> |
|
</div> |
|
`; |
|
} |
Proposed fix
In navigateToCharacter(characterName, repoName), use the same composite key used when storing characters:
function navigateToCharacter(characterName, repoName) {
setCurrentRepoView('character');
setSelectedCharacter(`${repoName}::${characterName}`); // Use composite key for lookup
setSelectedRepository(repoName);
renderRepositoryManager();
}
Summary
When opening the Character Repository Manager, double-clicking a repository, and clicking a character (e.g. ELARA), the details panel shows "Character not found" even though the character appears in the list with its tag count.
Root cause
Characters are stored in
scannedCharacterswith composite keys (lorebookName::char.name), butnavigateToCharactersetsselectedCharacterto only the character name. The lookup then fails because the keys do not match.Storage
scannedCharacters.set("MyLorebook::ELARA", char)CarrotKernel/index.js
Line 1197 in b2601d0
Lookup
setSelectedCharacter("ELARA")→scannedCharacters.get("ELARA")→undefinedCarrotKernel/repository-manager.js
Lines 349 to 354 in b2601d0
CarrotKernel/repository-manager.js
Lines 440 to 449 in b2601d0
Proposed fix
In
navigateToCharacter(characterName, repoName), use the same composite key used when storing characters: