Skip to content

Latest commit

 

History

History
982 lines (712 loc) · 62.9 KB

File metadata and controls

982 lines (712 loc) · 62.9 KB

Changelog

All notable changes to ManaVault are documented here.

Versions follow Semantic Versioning. This file is generated from git log using git-cliff. See docs/releasing.md for maintainer instructions.


[1.4.3] - 2026-09-29

Bug Fixes

  • android: Fall back to the status bar height for the top inset (03f28366)
  • scanner: Say why a corrections export token was refused (21bf51bd)
  • scanner: Export skipped captures with a null label (cac2456c)
  • pricing: Prefer TCGplayer market price over listing lows (1af517fd)

Chores

  • backlog: Record phone detector profile progress (8a13820b)

Documentation

  • scanner: Document Identify and per-app training sources (6b6b1276)

Features

  • scanner: Identify cards the scanner misses (e0883500)
  • scanner: Fill the screen with the camera and add preview zoom and pan (682ce6b0)

[1.4.2] - 2026-09-28

Bug Fixes

  • android: Keep backgrounds behind the system bars (090acee7)
  • scanner: Clean up the camera view on Android (30fc02b5)

Features

  • scanner: Collect labelled scans for training recognition (788d11f7)
  • pricing: Follow lowest near-mint TCGplayer listing (10a93f24)

[1.4.1] - 2026-09-28

Bug Fixes

  • android: Pad the WebView by the system bar insets natively (7a9787d6)
  • scanner: Delay notices and show the card scan straight away (0a2c1aae)

[1.4.0] - 2026-09-28

Bug Fixes

  • Provide authoritative deck counts to AI (283195e1)
  • Prevent truncated deck AI answers (54a48a9b)
  • Increase deck AI completion budgets (48ba8b46)
  • Enforce deck AI response invariants (a42b7de7)
  • Import Moxfield dual card names (8b7385e5)
  • Add mobile Safari bottom clearance (b25f6e72)
  • decks: Consolidate active deck count (6b857957)
  • decks: Respect finish when switching allocations (d79ac532)
  • ai: Process deck questions asynchronously (395e45d7)
  • settings: Reject sockets without sessions (57d6353c)
  • settings: Authenticate log subscriptions (93db9fa0)
  • ai: Make bracket analysis holistic (d876a9ae)
  • security: Remediate container vulnerabilities (34c9a22e)
  • Sort permanent cards by their front-face type (4a13eb8f)
  • jobs: Recover orphaned catalog sync executions (ab76c650)
  • catalog: Release write locks between metric refresh batches (f66e52ef)
  • catalog: Parse EDHREC commander continuation pages (10da94f2)
  • ui: Keep dropdowns and card previews above dialogs (ecad2d2b)
  • decks: Pick only active decks and reset skips on play (a6d8aa14)
  • Deallocate cards moved to considering (880d906a)
  • Exclude proxies from deck pricing (4c40a2ca)
  • security: Enforce GraphQL CSRF in every auth mode and make owner sessions revocable (273c795d)
  • security: Harden auth lockout recovery and document proxy hardening flags (d105be16)
  • ai: Limit consistency advice to card changes (40b3b696)
  • Remove unsupported directive from deck allocation requests (a36f9e36)
  • Stop deck analysis from labeling suggestions with collection status (2cee4366)
  • ios: Load saved server URL inside the native shell (890a772a)
  • native: Respect Android system bar insets injected by Capacitor (6696a3a2)

CI

  • Keep container build layers cached across commits (db2ae210)

Chores

  • deps: Bump mise-action to 4.3.0 and repair quality CI (6a6c4ae8)
  • deps: Bump softprops/action-gh-release from 3.0.2 to 3.0.3 (e1e62ce1)
  • deps: Bump docker/setup-buildx-action from 4.2.0 to 4.3.0 (a2815c9a)
  • deps: Bump docker/login-action from 4.4.0 to 4.6.0 (5da53e59)
  • deps: Bump actions/checkout from 7.0.0 to 7.0.1 (acc98669)
  • backlog: Add security and code standard remediation tasks (bf662741)
  • backlog: Repair duplicate TASK-30 identifiers (220330ea)
  • deps: Resolve JavaScript dependency advisories (57b9122d)
  • orb: Speed up setup (837b7aa8)
  • backlog: Record published scanner bundle release (a7101911)

Documentation

  • dev: Generate GraphQL types from an Absinthe SDL dump instead of live introspection (304df8d1)

Features

  • Sort collection by value gain (219433f6)
  • Add AI deck analysis and bracket ratings (524f27d3)
  • Add one-off deck questions (d4162e0e)
  • Persist deck AI question history (7eaf968a)
  • ai: Improve deck Q&A accuracy and rendering (d43d3b75)
  • Add custom AI deck analysis instructions (9ee36d13)
  • Show AI deck analysis progress (cd148a52)
  • Apply deck Q&A recommendations (b5e3959e)
  • decks: Show Commander Spellbook combos (ecffe42d)
  • jobs: Migrate background work to Oban (fcfdd32e)
  • ai: Show model metadata for deck insights (ed90615c)
  • ai: Expand deck analysis guidance (9a07d21c)
  • ai: Refresh all deck analyses (29a41211)
  • settings: Add live server logs (99270b13)
  • decks: Add weighted random deck picker (6781fcab)
  • decks: Allow editing play history (6cd0895a)
  • decks: Add Recommander deck recommendations (fdffc7bf)
  • decks: Analyze external decklists (ae695a2c)
  • Toggle auto-sort summaries between source and destination (2025693d)
  • decks: Control random play inclusion and exclude archives from home count (556cb112)
  • ai: Frame deck analysis around deck structure, role balance, and synergy (2d85a681)
  • api: Add personal deck access keys (#153) (02656c1c)
  • appearance: Add color palettes saved on the owner account (8dcc75ec)
  • ai: Let the model look up catalog cards during analysis and questions (a154eaf9)
  • Filter collection by purchase price, added date, and multiple sets (b5e893c3)
  • Add Swap cards workbench for staged deck cuts and adds (0b122e39)
  • Add AI chat for cuts and adds in Swap cards (7cbc7aa4)
  • Add AI collection status tool that favors free owned cards (0490f597)
  • scanner: Add in-browser card scanner with OTA model bundles (7114d779)
  • scanner: Make locked sets restrict recognition (03c98870)
  • scanner: Scan and show the whole camera image (c3a8a2bd)

Performance

  • catalog: Cover search and price queries with indexes (5c0eb428)

Refactoring

  • catalog: Drop unused scryfall_printing_search FTS table (1cb79307)
  • catalog: Move deck resolver workflows and Repo access into Catalog actions (640fc768)
  • catalog: Split collection and trade contexts into actions and bound auto-sort and export work (b71ab012)
  • ai,backup,scryfall: Split contexts into actions, bound deck analysis listing, batch printing reconciliation (d64298fb)
  • web: Render shell and login from templates, use configured host for absolute URLs, add CSP (c44a8f27)
  • react: Split cards page, validate remote link hrefs, type Prism, initialize AI settings form once (0e165a30)
  • decks: Decompose deck detail page, deck stack card, and deck GraphQL documents (6d38012b)
  • collection: Decompose collection page, import/export dialogs, and collection GraphQL documents (dde1f175)
  • catalog: Move location fetching from the decks context into collection locations (f9bed03e)
  • scanner: Move model training to cfbender/oracle (4bb6789e)

Style

  • react: Format files added by the remediation refactors (f4140bb8)

Tests

  • web: Read the frontend deck query from its new documents module (771014a6)

[1.3.0] - 2026-08-17

Bug Fixes

  • Harden public share GraphQL (e0c16847)
  • Harden remote sharing boundaries (9d6e7080)
  • home: Keep search suggestions above action cards (3e63811e)
  • Group collection cards by printing (56810137)
  • Improve liquid glass dropdown readability (c5ce00d0)
  • collection: Prevent card interactions while scrolling (35c0349a)
  • ui: Contain dialogs and preserve binder scroll (ce302faa)
  • ui: Keep sort menus within viewport (3f507b10)
  • Normalize card names and scroll deck picker (42ff0e5a)
  • Resolve MDFCs by front-face name (3455b3c6)
  • Group Scryfall replacement clauses (7cd8160f)
  • cards: Correct card actions and deck options (44bf6347)
  • catalog: Exclude non-card Scryfall printings (490eddb3)
  • decks: Allow deleting archived decks (bdf5a108)
  • decks: Use server commander color identity in deck header and stop clipping mana symbols (db76da78)
  • catalog: Remove cards without printings (55750677)
  • collection: Repair auto-sort card previews (bb24f651)
  • collection: Use market prices for filters and sorting (004fe4fd)
  • pricing: Prioritize ManaPool card conditions (bc0db0ad)
  • collection: Prevent value rankings mobile overflow (5e647d23)
  • pricing: Use vendor market prices (10e3df28)
  • web: Repair shared decks and page titles (bf18d8c9)
  • web: Use available logo asset on login (8a8b1fb9)
  • pricing: Handle special treatment values (05eb973e)
  • ui: Hide background scrollbar behind dialogs (e395cc29)
  • ui: Fix card menu layering and hover clarity (f5d7ebfb)
  • ui: Reset scroll after navigation (58fbdab6)
  • decks: Align salt score badge content (89fa2df0)
  • collection: Delete cards with lists (a83e1386)
  • catalog: Resolve alternate card names (68f39707)
  • Prevent sell list import stalls (f07d4a60)
  • Prevent duplicate page scrollbar (45bf9a45)

Chores

  • Configure Amp orb lifecycle (e1869686)
  • orb: Harden first-time setup (b57f8c51)
  • Persist workflow and portal configuration (789a6132)
  • Optimize orb setup and update dependencies (fb6fdb86)
  • Disable Amp commit thread trailers (37270cb6)

Features

  • Share trade lists (9c35a3d1)
  • Add Liquid Glass interface style with settings selector (a9b40c48)
  • Allow changing collection item printings (57ecadcc)
  • Track trade binder quantities (88f8b515)
  • trade: Add binder sorting and filters (c5377218)
  • Sync paper cards and EDHREC ranks (d5608953)
  • decks: Add EDHREC cut actions (e4e39e49)
  • decks: Support commander pairings for partners, companions, and backgrounds (1ff207ea)
  • pricing: Add multi-vendor pricing engine with selectable price source (763d8961)
  • Add selectable deck cover cards (88721e41)
  • collection: Add value dashboard (188a333c)
  • collection: Add deck availability checker (92fc7af8)
  • collection: Add value position actions (560987f8)
  • ui: Default to liquid glass theme (7a01fe94)
  • Add deck primer (d808ea6a)
  • Add EDHREC salt scoring (2e68c580)
  • decks: Group cards by salt score (18876e97)
  • collection: Support total spend on import (5f7d6065)
  • cards: Add EDHREC synergy panel (a4d5b1cb)
  • Show deck allocations on card copies (40484f15)

Miscellaneous

  • Add share link revocation and rotation (6931509f)
  • Bound remote ManaVault import resources (a4f6dd20)

Refactoring

  • Consolidate duplicated backend behavior into single owners (f1ed500a)
  • frontend: Standardize UI components on Radix primitives (4f71099c)

[1.2.0] - 2026-08-03

Bug Fixes

Chores

  • Swap card advantage and ramp priority (a5ff0638)

Features

Refactoring

  • Use scryfall bulk data api for import (f077dcd9)

[1.1.2] - 2026-07-19

Bug Fixes

[1.1.1] - 2026-07-19

Bug Fixes

  • Search applies to just printings (d9d5eac9)
  • Mobile tag section to the right place (0e7f4f35)

Chores

  • deps: Update Elixir dependencies (7e43283a)
  • deps: Update React/JS dependencies (050dde93)

Features

  • More links on card (a0b61d46)
  • Add sort to card search (d8dcfb5c)
  • Upgrade to TypeScript 7 native compiler (tsc) (96d76341)

Style

[1.1.0] - 2026-07-15

Bug Fixes

  • Stabilize quality gate (2a395021)
  • Restore batched allocation candidates (29c5a06d)
  • Consolidate single allocation status counts (1cf98d17)
  • ui: Adopt Radix dialog behavior (03d6a678)
  • dialog: Restore external opener focus (a26d0e9f)
  • settings: Preserve auto-sort row mutability (042d496d)
  • Isolate auto-sort tests (2a8934be)
  • catalog: Isolate cache producer failures (6ddd7862)
  • auth: Constrain login return paths (f9e081f6)
  • dialog: Satisfy focus restore checks (a59679ed)
  • security: Protect authenticated GraphQL mutations with CSRF (0196bd98)
  • Fix schema domain contract match (536ff5d3)
  • deck: Adapt commander callback input (ad83a769)
  • Harden public share cache lookups (d27e9d07)
  • Bound preview artifact retention (187d1528)
  • Restore preview render queue (1499bb58)

Chores

  • deps: Bump softprops/action-gh-release from 3.0.1 to 3.0.2 (#142) (a28c190d)
  • backlog: Start independent task wave (0abad7d5)
  • backlog: Finalize foundation wave (99de7815)
  • deps: Normalize aube lockfile (4a56306a)
  • ui: Format dialog changes (7f7f9553)
  • settings: Format auto-sort changes (bda46a4f)
  • backlog: Start architecture wave (5fdd948c)
  • backlog: Complete architecture wave (d54104b5)
  • backlog: Start public share hardening (104b5c20)
  • backlog: Complete public share hardening (ccaa8443)
  • backlog: Start preview artifact caching (6c85eaca)
  • backlog: Complete preview artifact caching (3cad8a9e)
  • Simplify preview retention flow (ced3c285)
  • backlog: Start deck boundary cutover (5a90f608)
  • backlog: Complete deck boundary cutover (874d0528)
  • Add backlog.md (b6fef864)

Features

  • Cache public preview PNG artifacts (539fae96)

Refactoring

  • settings: Split collection auto-sort rules (e065db60)
  • schema: Compose catalog domains (602a2705)
  • catalog: Split deck allocation actions (57e0240c)
  • deck: Decompose deck detail features (81871ead)
  • catalog: Move deck cache boundary (dde38737)
  • catalog: Remove deck workflows facade (22fc1973)

Style

Tests

  • Harden quality gate (997bef52)
  • Restore batching query count contract (d69e8c6d)
  • Match auto-sort minimum price label (01128240)
  • Query auto-sort price by role (a27dbb37)
  • Classify source-less fallback queries (242479a4)
  • Assert archived deck after disassembly (813d6b0e)
  • Bind share cache deck id (5889382c)

[1.0.0] - 2026-07-09

Bug Fixes

  • Don't count allocated cards in estimated buylist (32b9f75d)
  • Header chip on deck shows all cards cost (7c5c4186)
  • Count tags for deciding category and theme (080bc978)
  • Prevent zip-slip path traversal in backup restore (d9f9e71a)
  • Derive auth rate-limit client id from trusted proxy header (ec1a3fd1)
  • Allow marking the session cookie Secure and configuring its lifetime (cd799f4a)
  • Encrypt cloud backup credentials at rest (2416686b)
  • Stop minting atoms from external input in query and EDHRec parsers (9291bb37)
  • Avoid recursive chown of the data dir on every boot (060a187c)
  • Disable Android auto-backup to keep the session out of backups (65b8a936)
  • Keep Android signing secrets off stdout and the process table (4f722044)
  • Load all deck cards instead of silently truncating at 500 (6d5521d5)
  • Don't render the previous deck under a new deck's URL (e09e255b)
  • Reconcile deck cache after partial bulk-mutation failures (19b2e7bd)
  • Surface deck-delete failures instead of failing silently (eb64b763)
  • Shift-range anchor, share status reset, and pwa title dump (37ed1e07)
  • Load all decks instead of silently truncating the list at 100 (55add072)
  • Bulk deck allocation (63940bcc)
  • Recently added cap to 500 (707ac2c9)
  • Deck share view (b3bb4bd2)
  • Precommit (e7553489)
  • Printing uses default if only one available (a2e0d93b)
  • Precommit warnings (d195132d)
  • Decklist import (920a337d)
  • Add card modal uses partial from search (367d1460)
  • Let taps fall through to covered cards in deck stack (f3aa6916)
  • Covered-card tap in deck stack only raises, no button fires (45f39aae)
  • Stop mobile sticky-hover from arming deck card overlays (35d8bc3e)
  • Intercept covered-card touch reveal at the stack level (c8242e74)
  • Stop card title overlapping mana cost on mobile (a98bf711)
  • Restore deck group masonry columns (c0a40592)
  • Show per-card estimate in missing cards buy list (9776b004)
  • Keep selecting deck tag when dragging off the dial (81ec5ad1)
  • Match card name suggestions with apostrophes (d8e46be6)
  • Restore Set as a deck grouping option (47ca323b)
  • Deck share page (47cc3361)

Build

  • Pin and checksum-verify mise instead of curl | sh (d33db1f6)

CI

  • Pin GitHub Actions to commit SHAs and add Dependabot (b4a04c05)
  • Scope contents:write to a tag-only release job (28e2c6e1)
  • Read keytool store password from env, not argv (a253b318)

Chores

  • Bump plug (dc88133a)
  • deps: Bump actions/checkout from 4.3.1 to 7.0.0 (#121) (33006448)
  • deps: Bump docker/build-push-action from 6.19.2 to 7.3.0 (#122) (aa35fbe0)
  • deps: Bump docker/setup-buildx-action from 3.12.0 to 4.1.0 (#123) (76127d3d)
  • deps: Bump docker/login-action from 3.7.0 to 4.2.0 (#124) (8bdbc85d)
  • deps: Bump docker/metadata-action from 5.10.0 to 6.1.0 (#125) (7f95665c)
  • Add to design notes (6c3502ff)
  • Remove buttons from deck card (a0afd970)
  • Bump node to 26 and fix mise precommit issues (ed6881fb)
  • Up auto sort debounce to 30 days (b20eca28)
  • deps: Bump docker/login-action from 4.3.0 to 4.4.0 (#137) (fd8cadec)
  • deps: Bump docker/setup-buildx-action from 4.1.0 to 4.2.0 (#138) (dd8b9830)
  • deps: Bump actions/upload-artifact from 6.0.0 to 7.0.1 (#139) (2dc14ad7)
  • deps: Bump docker/metadata-action from 6.1.0 to 6.2.0 (#140) (05c38ede)
  • deps: Bump actions/download-artifact from 6.0.0 to 8.0.1 (#141) (22f5b41c)

Features

  • Page titles and further tag improvements (026038aa)
  • Better categorizing and import logs (f618f9eb)
  • Warn when the native server URL uses cleartext http (8b5b0bd4)
  • Group by tag (15209f18)
  • Filter by allocation status (1d8b9ec6)
  • Show cost per filter (9ab4d636)
  • Top commanders dome gallery (f5d1ac21)
  • Multi-select flat on mobile (2270e1a0)
  • Remove mana cost vs production section (037bb401)
  • Remove dnd from autosort rules (22e5338d)
  • Move quantity tag to top (76a7c3ab)
  • Tabs to dropdown on mobile (d6ac63c5)
  • Import decklist to board and import list to select mode (e7a760f5)
  • Debounce auto sort by a week (d4103442)
  • Group deck by price (418afe3a)
  • Improve search (793231b3)
  • Auto sort by set and release date (4a9f0d2a)
  • Archive deck on disassemble (ae80981d)
  • Deallocate on select (7c892b9f)
  • Group by allocation (9b841161)
  • Buylist when allocated (2d9dbf28)
  • Delete from card edit (49c04588)
  • Remove getting tag on allocation (b9b1dae3)
  • Custom deck tags data model and API (928528dd)
  • Radial custom-tag button on deck cards (4f21dad0)
  • Deck tags sidebar with counts and jump-to-group (7fdd1110)
  • Deck detail keyboard shortcuts (2c7677b7)
  • Customizable default deck tags (9c980199)
  • Faster tag radial and collapsible tags sidebar (c6167a20)
  • Group deck by custom tags (3b104d38)
  • Smoother collapsible tags sidebar (f87f96d6)
  • Adjustable card size across the app (0029d3ae)
  • Backfill existing decks with default tags (14d21d1e)
  • Refine deck card tagger interaction (aa2505af)

Miscellaneous

  • android: Stop reading files from shared/intent text (5733d27c)
  • Flag externally-shared imports and require review (ff49c51d)
  • Require PHX_HOST in prod instead of defaulting to example.com (8859854d)
  • Warn at boot when auth is disabled in prod (d61ab629)
  • Read the CSRF token per request instead of once at module load (ea198c30)
  • Only render http(s) external URLs from third-party data (c23a8ad3)
  • Hold deck tag feedback text visible longer (2b3c868d)
  • Make deck tag feedback snappier (1a0504d7)

Performance

  • Stop double-decoding the Scryfall bulk payload (347233a8)
  • Defer EDHRec printing loads to the batched dataloader (a4dd7f47)
  • Use the NOCASE index for case-insensitive card-name lookups (681b8e08)
  • Batch allocation-status computation in bulk-allocate preview (65fbbdca)
  • Preload deck_card->deck in the deck_allocations dataloader batch (d62489cd)
  • Run Scryfall syncs off-process with in-flight dedup (f1f3b4d8)
  • Bulk-resolve scryfall_id rows in collection import preview (2a4a2e21)
  • Batch fetches in bulk collection/deck-card mutations (ff8b5328)
  • Stop caching by whole summaries map; surface cache failures (811fd349)
  • Paginate the decks connection at the database level (ff81e10f)
  • Short-circuit and linearize card-name suggestion matching (bf8afe9e)
  • Update deck-card allocation in cache instead of refetching everything (92eb56b7)
  • Memoize collection grid tiles to skip re-renders on selection toggle (778fecc7)
  • Fetch only a primary printing for EDHREC cards (812844f2)
  • Merge collection pagination in the Apollo cache via a field policy (eb5161cd)
  • Keep prior deck analysis visible while recomputing (92317818)
  • Memoize deck-pull readiness scans instead of running them every render (4e7ffb9c)
  • Allocate deck pull list in parallel instead of serially (f17d9c2c)
  • Lazy-load the Prism/ogl WebGL background on the home route (0c7d790c)
  • Throttle EDHREC scroll persistence and stop mirroring to localStorage (ded443c2)
  • Lazy-load card-image and image-summary-card images (65eb919f)
  • Batch EDHRec collection-status queries across recs/cuts (605b4a4d)
  • Apply bulk deck allocation in a single transaction (94bafd40)
  • Select all collection items by fetching ids only (1adb0913)
  • Add server-side bulk update/delete deck-card mutations (7c943a09)
  • Batch collection status for EDHRec commander-page sections (ab89d55a)
  • Batch EDHRec card resolution across a response (a6c6c1b6)

Refactoring

  • Parse collection-import CSV with NimbleCSV (f5888cf6)
  • Extract shared price SQL fragments into PriceFragments (c1054c9e)
  • Share card/printing scalar search predicates via named bindings (5358c677)
  • Reuse AllocationStatus in EDHRec CollectionStatus (e605e4c0)
  • Remove the unused duplicate node resolver (7bac5c80)
  • Collapse the allocationError nested ternary into find() (7d1404d9)
  • Group DeckDetailContent props into cohesive objects (bfedb1a1)
  • Remove dead deck code, share compareDeckCards, drop stale cast (0a37b70c)
  • Extract useDeckMutation for the deck-card allocation wrappers (475c9cba)
  • Use selection set for cards selection (6a6a849e)
  • Switch collection buttons to icon buttons (0ed6e994)
  • Unify deck and collection add-card dialogs (691e8882)

Style

Tests

  • Cover custom deck tag cache helper and formatting (bfc5c493)

[0.13.0] - 2026-07-01

Bug Fixes

  • Mobile tap (55ad3045)
  • collection: Harden action menus (003bee19)
  • decks: Tighten gallery header hierarchy (356985e4)
  • decks: Teach gallery loading states (aba82bcc)
  • decks: Expose gallery actions and readiness (c8bc8334)
  • decks: Place quick actions on cards (6cc91c65)
  • ui: Improve mobile touch targets (80f4fd37)
  • decks: Expose accessible card controls (d49936f1)
  • decks: Harden deck states and diagnostics (c61c5312)
  • decks: Reduce desktop card controls (845de6bc)
  • decks: Tuck readiness behind modal (8f1a432b)
  • decks: Separate readiness modal actions (dde91db4)
  • decks: Keep mobile card controls compact (0cc39c32)
  • decks: Move card readiness work into modal (2e19ecb8)
  • decks: Restore selection affordance flow (37877f1b)
  • Edhrec card name overflow (b94360a0)
  • Collection views (a8c9738a)
  • Click through on menu (f81b3367)
  • Card component click through and style (d7170ad6)

Chores

Features

  • Edhrec card pops up modal instead (b0e6f545)
  • collection: Expose core collection actions (3f73182d)
  • collection: Distill card filters (6be9bd72)
  • collection: Add pull workflow shortcuts (35159073)
  • cards: Improve search result confidence (77fddd16)
  • decks: Surface deck readiness actions (640a1a69)

Refactoring

[0.12.0] - 2026-06-29

Bug Fixes

  • Edhrec checks side/maybeboard (4ab2e25c)
  • Editing handles allocation (dee04f78)
  • Don't load app with query string (5d204849)
  • Broaden cache invalidation for owned counts (75a6a74b)

Chores

  • Remove unique card count from deck (2987f11a)

Features

[0.11.2] - 2026-06-28

Bug Fixes

Features

Miscellaneous

  • Apply remaining changes (#63) (28fd739c)

[0.11.1] - 2026-06-27

Bug Fixes

Features

Style

  • Change land and counter icons (532138ea)

[0.11.0] - 2026-06-26

Bug Fixes

Chores

Features

Miscellaneous

  • Shorten "owned but unavailable" badge label to "unavailable" (#59) (aca99319)
  • Stop forcing external links into the native WebView (#60) (460f1c1b)

Refactoring

[0.10.0] - 2026-06-25

Features

Tests

[0.9.1] - 2026-06-24

Bug Fixes

Documentation

Features

Refactoring

[0.9.0] - 2026-06-24

Bug Fixes

Chores

Features

Refactoring

[0.8.0] - 2026-06-23

Features

[0.7.2] - 2026-06-23

Bug Fixes

  • Android app attachment loading (3cfeed35)

Features

[0.7.1] - 2026-06-23

Bug Fixes

  • Put capacitor native methods in header (e77d3a2a)

Features

[0.7.0] - 2026-06-23

Features

[0.6.9] - 2026-06-23

Bug Fixes

  • android: Load shared collection imports (8ba05779)

Features

[0.6.8] - 2026-06-23

Bug Fixes

  • Add capacitor plugin headers (e72b1014)

[0.6.7] - 2026-06-23

Bug Fixes

  • Full screen card viewer in app (f351fd33)
  • Preserve pending import until consumed (05ae6265)

[0.6.6] - 2026-06-23

Bug Fixes

[0.6.5] - 2026-06-23

Bug Fixes

[0.6.4] - 2026-06-23

Features

[0.6.3] - 2026-06-22

Bug Fixes

Refactoring

  • Full screen card view for shared deck (25892f8d)

[0.6.2] - 2026-06-22

Features

[0.6.1] - 2026-06-22

Bug Fixes

  • Use config_env instead of Mix.env (283a39d6)

[0.6.0] - 2026-06-22

Bug Fixes

Features

[0.5.3] - 2026-06-22

Bug Fixes

Features

  • Sign release app and document custom domain (1f4c8da8)

[0.5.2] - 2026-06-22

Bug Fixes

[0.5.1] - 2026-06-22

Bug Fixes

[0.5.0] - 2026-06-22

Bug Fixes

  • Reveal card actions on mobile tap (20c2987f)
  • Move server config to settings once configured (c8be6d8a)

Features

Refactoring

[0.4.0] - 2026-06-22

Bug Fixes

Chores

Features

Refactoring

  • Delete scanner and pivot to better import (6f75f86e)
  • Optimize slow queries (cc638386)

[0.3.0] - 2026-06-22

Bug Fixes

Features

Refactoring

Style

[0.2.3] - 2026-06-20

Features

[0.2.2] - 2026-06-20

Features

Refactoring

[0.2.1] - 2026-06-20

Chores

  • Add release changelog tooling (718d7c62)

Miscellaneous

  • Fix OCR runtime container dependencies (c4fe0c56)