Items: prototype a first-class catalogue and safer picker flow - #3
Draft
Habdel-Edenfield wants to merge 6 commits into
Draft
Items: prototype a first-class catalogue and safer picker flow#3Habdel-Edenfield wants to merge 6 commits into
Habdel-Edenfield wants to merge 6 commits into
Conversation
Reuse the existing item database, filters, virtualized rows and sprite protocol to give Items a read-only sidebar list with centre-column details. Move loot, corpse and typeex selection into a shared modal that preserves the editor, and reuse that picker for the create wizard. This is the first product-shaped prototype, not a new item engine or a write path for item/client files. Co-authored-by: Claude Sonnet 5 <noreply@anthropic.com>
Scope loot trays to one picker session and pin their writes to the monster that opened the dialog. Remove the now-invisible global tray command and make Used by navigation close the picker safely. Bring the item detail view up to the editor's visual hierarchy and give Items a dedicated animated right-hand preview with client variants, bounded frame preloading, loading states and keyboard-accessible selection.
Habdel-Edenfield
force-pushed
the
agent/items-prototype
branch
from
August 16, 2026 02:04
878b281 to
282b386
Compare
The client slot accepts both legacy Tibia.dat/Tibia.spr pairs and modern assets directories with catalog-content.json. Restore that discoverability on the upstream-based prototype branch and carry the dynamically translated hint in Polish and Portuguese.
Preserve the real Canary/Linux catalogue view used to discuss the initial prototype: virtualized list and filters, structured selected-item details, and the typed client-appearance preview in one frame.
Keep the real application capture discoverable from the durable prototype boundary, while making explicit that it records a discussion point rather than a final visual contract.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Context
This Draft PR offers the Items work developed in the Linux fork as a substantial initial prototype and a request for upstream feedback.
The goal is to reuse MONx's existing item database, sprite protocol, filters and virtualized browsers, then expand them into a coherent item workflow. It is not a separate item system, a Linux-only UI, or a replacement for the original Windows-oriented application flow. Upstream may adopt it as-is, reshape the UX, or split it into smaller changes.
Although developed and manually exercised on Linux, the implementation lives in the shared React/Tauri UI and preserves the existing cross-platform protocol URL helpers.
Prototype preview
Real Canary/OTServBR workspace on Linux. This records the current prototype for discussion; it is not a claim that the visual design is final.
What this changes
typeexselection into a shared modal while preserving the monster editor behind it.PreviewPanelmonster-specific and selects a typedItemPreviewPanelat the Workspace level.The item database remains read-only: this does not create, rename or modify
items.xml,items.toml,items.srv,items.otbor client assets.Safety fix carried by the prototype
The earlier tray could outlive the dialog and its target, allowing invisible stale contents to be committed after navigation. The final slice clears the tray at session boundaries, records the target document/file, removes the orphan global tray command, and invalidates the picker before navigation changes the selected monster.
Wizard picks are intentionally separate: they return ids to the mounted wizard and never own an editor transaction. Opening Used by... remains an inspection; only following a reference closes the picker before navigating.
Platform scope
This does not change Linux packaging, the Windows launcher or protocol selection. The existing
monx:///http://monx.localhostsplit remains authoritative.Development and manual investigation used
./monx.shon Linux/XWayland/WebKitGTK with a real Canary/OTServBR workspace: roughly 17,500 explicit item entries, about 38,000 expanded rows and 41,841 object appearances from a modern client bundle.A small, separable Landing commit restores discoverability of that existing support by naming
assets/withcatalog-content.jsonalongside legacyTibia.dat+Tibia.spr. It changes guidance only, not client loading behavior.Windows and legacy-client verification are still required before this leaves Draft.
Known limits and follow-ups
.spr/.dat, no-items.otbworkspaces and Windows do not yet have recorded manual verification on this extracted branch.The prototype boundary and invariants are recorded in
ITEMS.md.Base and dependencies
Coldensjo/MONx:mainatae6503d/ version 0.1.131.Verification
Run on the isolated PR branch:
bun run i18n— 971 strings carried by Polish and Portuguesebun run commands— 38 commands, no duplicate ids/chordsbun test— 161 passedbun run buildcargo check --lockedinsrc-tauri/git diff --checkBefore marking Ready for review:
.spr/.datsmoke testitems.otbsmoke test