sillsdev / sillsdev/languageforge-lexbox
[claude] Lexicon selector: same-code FwData and CRDT projects need format-aware identity
Nobody has claimed this yet.
- Dominant language
- C#
- Stars
- 9
- Forks
- 8
- Avg merge
- 2d 13h
- Merged PRs (30d)
- 49
Description
[Claude, autonomous]
FW Lite's LocalProjects collapses a CRDT and an FwData project that share a code into a single record with both flags set. The lexicon extension caches one type per code (projectTypeByCode, Harmony-if-crdt) and a lexicon selection stores only the code, so a same-code FwData + CRDT pair is an identity collision the extension can't represent.
Consequence today: if a Paratext project uses a local FwData lexicon sample and the user downloads a remote CRDT lexicon also coded sample, the merged record resolves sample to Harmony and the FieldWorks project's reads/edits would target the CRDT lexicon instead of its FwData one.
To avoid that, #2585 suppresses any remote project whose code matches a local project (remoteProjects dedupes by code). Safe, but it also hides a legitimately-different remote CRDT project when a local FwData shares its code.
Proper fix: carry the data format as part of lexicon identity through the picker, the lexicon.lexiconCode project setting, the API type cache, and operation calls, so same-code FwData and CRDT projects are distinct selectable choices. Then the picker no longer needs to suppress same-code remotes.
Found by a Devin review on #2585 (severe); deferred as it needs a cross-cutting identity-contract change.
Contributor guide
No contributing guide indexed for this repository
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Start with the behavior described in #2585 and trace the lexicon picker, the lexicon.lexiconCode project setting, the projectTypeByCode cache, and the operation calls. The change is complete when same-code FwData and CRDT projects remain distinct through selection and operations, and remote same-code projects are no longer suppressed.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- csharp
- Domain
- full-stack
- Issue type
- Feature
- Difficulty
- 5/5
- Estimated time
- Over a week
- Activity status
- Active
- Clarity
- Mostly clear
- Newbie friendliness
- 35/100