Skip to content

Releases: inguy24/Numisync-Wizard

v1.1.5

25 Feb 01:36

Choose a tag to compare

New Features

  • Use Stored Numista ID — skip search for previously matched coins — Coins with a known Numista type ID now skip the search step and load the matched coin directly via GET /types/{id}, saving 1 API call per enrichment session.

Bug Fixes

  • Session and monthly API counters showed 0 until first user action — status bar never populated on collection loadloadCollectionScreen() updated the fetch-settings label but never called refreshSessionCounter(), so Session: 0 calls and Month: 0/2,000 persisted until some other action triggered a refresh.
  • Fast Pricing Mode session counter never updated — showed 0 calls after entire batchstartFastPricingUpdate() called loadCoins() and renderCoinList() after the batch loop but never called refreshSessionCounter().
  • Fast Pricing estimated time showed "0s" for all batch sizes — Two function formatDuration declarations existed in app.js (line ~2369 taking seconds, line ~6111 taking milliseconds).
  • Price fields bypassed field mapping system — hardcoded mapping ignored user settings, stale prices never clearedextractPriceFields() hardcoded price1=F … price4=UNC and was called directly in both mapToOpenNumismat() and fast-pricing-update, completely bypassing the configurable field mapping system ...
  • Price grade→field mapping was reversed — UNC prices saved to Fine field, Fine prices saved to UNC field — OpenNumismat numbers price columns ascending from worst to best grade: price1=F (Fine), price2=VF, price3=XF, price4=UNC.
  • Mintmark 'P' (Philadelphia) never auto-matched pre-1980 US coins despite "missing mint mark" setting being onmatchIssue() filtered year-matched issues with i.mint_letter && mintmarksMatch(userMintmark, i.mint_letter), which excluded issues with no mint_letter (empty string) regardless of any setting.
  • Auto-propagate omitted obversedesigner, obverseengraver, reversedesigner, reverseengraver, obverseimg, reverseimg, edgeimg, and series from type-level writes — The propagate-type-data handler filtered user-selected fields against a hardcoded typeLevelFields allowlist that was missing these eight fields.
  • Opening a coin detail then exiting without applying regressed the basic data icon from complete to in-progress — When the user clicked a match card on the match screen, update-coin-status was called with status: 'matched', which unconditionally built a fresh metadata object with basicData: PENDING and `...
  • "Search Again" button on match screen had no event listener and never worked — The button (id="searchAgainBtn") was present in the HTML but the corresponding click listener was never written in app.js.
  • Iranian dinar coins return no matches ("10 Dīnār - Rezā Pahlavī" not found by search for "10 dinars") — Numista uses the diacritical transliteration "Dīnār" (macron ī/ā) as an invariant singular in all Iranian dinar coin titles regardless of quantity (e.g., "10 Dīnār", "50 Dīnār").
  • External links open inside app window instead of system browser (Microsoft Store certification failure) — All <a href="..."> links to external URLs were opening a new BrowserWindow inside the app rather than the system browser.
  • Fractional denomination coins return no matches (Yemen 1/80 Rial 1931) + manual search year-in-q bug — Two bugs.

v1.1.4

23 Feb 21:59

Choose a tag to compare

Bug Fixes

  • External links open inside app window instead of system browser — All <a href="..."> links to external URLs were opening a new BrowserWindow inside the app rather than the system browser.
  • Fractional denomination coins return no matches (Yemen 1/80 Rial 1931) + manual search year-in-q bug — Two bugs.

v1.1.3

23 Feb 00:12

Choose a tag to compare

Bug Fixes

  • Match confidence penalised -20 for fractional denominations (e.g. "2 1/2 Shillings" scores 43% instead of ~63%)parseNumericValue handled pure ASCII fractions ("1/2") and Unicode fractions ("2½") but not mixed-number notation ("2 1/2" or "21/2").
  • Value field truncated for fractional denominations (e.g. "2½ Shillings" → "2") — Numista returns fractional face values using Unicode vulgar fraction characters (e.g.
  • Historical sub-issuer coins return no matches (South Africa 1896 Shilling) — Coins labeled with a modern country name (e.g., "South Africa") resolve to a modern Numista issuer code (afrique_du_sud) that only covers post-Union coins.
  • Alias-resolved issuers score 0 for country match / dead scoring function removed — Match confidence scoring was split across two functions: calculateConfidence in app.js (active, called by renderMatches()) and calculateMatchConfidence in numista-api.js (dead code, never...
  • Mandatory Palestine returns no search results — "Mandatory Palestine" (the official name for the British Mandate territory 1920–1948) had no alias entry.
  • East Africa Protectorate returns no search results — "East Africa Protectorate" had no alias entry, so fuzzy matching ran against all 11,756 Numista issuers.