Skip to content

Releases: boxcreate/boxlore

v0.0.10

Choose a tag to compare

@github-actions github-actions released this 17 Jul 11:13
1f615f0

boxlore v0.0.10

AI-generated summary: May contain mistakes. Verify details against the linked pull requests.

Added

  • Recommendation‑driven discovery sections on Home replace time‑of‑day rails; Adaptive Learner debug inspector with genre‑affinity graphs (excluding placeholder Podcast); bounded aggregate summaries (genre affinity, duration, maturity, novelty, recent‑section) for personalization; stale‑while‑revalidate caching for discovery rails with skeleton placeholders. (#882)
  • Shared ImportLoaderView with morphing animation to success checkmark added for library import flow. (#883)

Changed

  • Visual hierarchy and spacing adjusted for top‑level, child, and nested section headers; daypart rotation enabled via ordering and short‑lived retention of recently visible sections; network loading logic updated to preserve in‑flight section loads and prevent data clearing on empty refresh; Gradle wrapper upgraded and R8 compatibility enabled for release builds. (#882)
  • Library import flow UI refined with clearer selector, progress, and success screens; cross‑promotion detection widened via additional title patterns, description cues, and improved match scoring; import UI extracted from MainActivity into ui.libraryimport package. (#883)
  • Documentation rewritten for recommendation‑system guide covering UI rails, on‑device bandit logic, API contracts, and diagnostics; obsolete recommendation_logic documentation removed. (#880)

Fixed

  • Exclusion of placeholder Podcast genre from on‑device learner calculations fixed; blank gaps under greeting eliminated by painting cached rails immediately. (#882)

v0.0.9

Choose a tag to compare

@github-actions github-actions released this 16 Jul 01:54
7163616

boxlore v0.0.9

AI-generated summary: May contain mistakes. Verify details against the linked pull requests.

Added

  • RSS feed subscription with on-device HTTPS fetch (25 MB cap), Podcasting 2.0 parsing, new rss_episodes table and deterministic rss: IDs; Settings hub replaces Profile screen with six sub‑pages (Appearance, Playback, Downloads, Library, Privacy, About) plus custom HSV accent colour, three background styles, privacy disclosures, public website, reset‑analytics‑ID and deletion‑request flows; backup format v3 and OPML import/export restoring RSS feeds via URL re‑fetch. (#874)
  • Global intro/outro trimming with configurable durations and per‑podcast overrides preserving resume and completion semantics; customizable backward and forward seek increments configurable in settings and applied to player UI, notification controls, and Android Auto. (#875)
  • Adaptive content orchestration with on-device ranking foundation, versioned model storage, deterministic fallback for Home, discovery, queue, and downloads; isolation of adaptive state from library database and exclusion from device backup. (#876)
  • Material 3 Expressive episode details layout with artwork header, cohesive action controls, sticky playback rail component; visible buffering state UI in PlaybackController reflecting network buffering status. (#877)
  • In‑app announcement dialog extracted to InAppAnnouncementDialog with category layout presets; Play Store install suppression of What’s New / NEW RELEASE GitHub‑download prompts; release announce payloads now support up to five changelog bullets; PostHog events (viewed, dismissed, action) emitted for announcements. (#870)

Changed

  • Navigation, library and player UI migrated to Material 3 components (ShortNavigationBar, collapsing large titles, revised player sheet settle to eliminate overshoot and keep mini‑player controls responsive); region controls redesign – removal of nudge banners, addition of segmented selector in Settings and region chip on Explore charts header; toolchain and dependencies upgraded to AGP 8.10.1, Kotlin 2.4.0, KSP 2.3.10, Room 2.8.4, rss‑parser 6.1.7. (#874)
  • Preserved existing released API behavior as a fallback when adaptive ranking is unavailable. (#876)
  • Home feed hierarchy now incorporates adaptive recommendations via HomeFeedRepository, ordering content based on time-of-day; styling of notes, promotions, and recommendation sections in episode details UI updated to match new design. (#877)
  • Announcement dialog no longer dismisses on outside tap or system back; only top‑right X or Dismiss button clears it (primary CTA still clears after opening the route). (#870)
  • CI pipeline automatically deletes orphan release/v* branches after successful publish via delete_branch_on_merge and prepare_release.py delete‑release‑branch. (#871)

v0.0.8

Choose a tag to compare

@github-actions github-actions released this 13 Jul 14:44
46e419c

boxlore v0.0.8

AI-generated summary: May contain mistakes. Verify details against the linked pull requests.

Added

  • Extended notification workflow with dry‑run mode, Admin UI support, collapse‑key input, sound routing options (chime, announcement, silent), HTML5 preview, live validation of route prefixes and image asset status, persisted notification templates in localStorage, workflow execution list view, updated compose dialog card layout in MainActivity.kt to Material 3 color tokens, custom action button labels, visibility controls, and dispatch readiness lock/unlock state banners. (#861)
  • Added customizable category badge label parameter to InAppAnnouncementDialog, configurable via FCM payload. (#862)
  • Added documentation describing the FCM notification fix and migration steps for affected users. (#863)
  • Implemented Android Auto integration via AutoConnectionManager service, introduced AutoBrowseNode hierarchy for browsing and AutoActionHandler for action handling. (#865)

Changed

  • Refactored BoxLoreFcmService.showPushNotification into smaller private methods to reduce cognitive complexity and eliminate duplicate branches. (#861)
  • Constrained announcement dialog height with headroom and enabled scrolling for overflow content. (#863)

Fixed

  • Stabilized artwork image transition in PlayerBottomSheet during drag gestures and updated next‑episode chevron styling and position to use Material 3 accent colors. (#864)
  • Fixed dark‑mode contrast calculation in Survey using Material surface background fallback, reconciled FCM topic subscriptions on reinstall/device migration by re‑subscribing notification‑enabled podcasts via sentinel file in noBackupFilesDir, and corrected markdown bullet list rendering in announcement dialogs. (#863)
  • Replaced PostHog survey icon with Campaign megaphone in SurveyIconProvider, fixed rating bar container layout overflow in RatingBarView, and corrected low‑contrast text colors in SurveyPromptView to meet accessibility guidelines. (#865)

v0.0.7

Choose a tag to compare

@ashwkun ashwkun released this 11 Jul 23:08

Added

  • Smart Queue v2: tiered SmartQueueEngine (T0–T4, T3.5) with batch refill, skip memory, region‑aware recommendations, signal‑aware Tier 3 routing, and unified guarded refill path in BoxLorePlaybackService; Queue UX enhancements include drag‑to‑reorder sheet, provenance source labels, undo‑remove snackbar with deferred skip signal, and Lore queue conflict dialog.
  • Responsive Material 3 Expressive full player and polished mini player UI replacing legacy player sheet; playback utilities include inline and fullscreen transcripts, queue previews, show notes, chapters, persisted playback speed, and enhanced loading and motion states.
  • Adaptive palette‑driven halo background and layered swipe‑deck UI for Lore with in‑card action row and integrated playback rail; overflow‑aware content layout that hides podcast metadata strip on cards with overflow and presents themed queue‑conflict confirmation; redesigned share sheet offering Copy, Send, and Instagram Story destinations with artwork preview, timestamp support, and generation of square and 9:16 story cards using Material expressive shapes; centralized URL generation in ShareLinkBuilder and surface‑specific routing via ShareTarget with direct Instagram Story intent support and URI permission handling.
  • Implemented loading of reduced‑size curiosity pages with automatic advancement past dismissed cards; introduced a caught‑up state including refresh and history recovery actions.

Changed

  • Integrated SmartQueueEngine with Android Auto via unified refill guard; sleep‑timer now blocks end‑of-episode refill; AUTO_FILL provenance persisted before append; contextSourceId gates Tier 0 on discovery landings.
  • Restored queue handling now deduplicates episodes on restore; click animation handling updated to avoid sticking during rapid input.
  • Updated all share entry points (full player, episode details, podcast details) to use new share infrastructure and visual primitives.
  • Replaced Lore screen branding assets with refreshed artwork.

Fixed

  • Fixed Tier 0 newest‑sort guard for episodic/news and discovery landing skip; added Tier 3.5 deduplication when Tier 3 already similar; corrected skip‑memory filters and removed auto‑fill skips.
  • Fixed marquee overflow‑state feedback loop in expanded player that caused vibrating or double‑rendered metadata.
  • Optimized Home tab feed by flattening into lazy staggered‑grid items and pinning hero/Your Shows to reduce recomposition lag; cached skeleton shimmer draw paths and slowed animation to 2.2 s.

Removed

  • Removed QueueManager.refillQueue() and PlaybackRepository.queueRefillCallback in favor of single service‑side refill.

v0.0.6

Choose a tag to compare

@ashwkun ashwkun released this 09 Jul 18:09

Added

  • Redesigned sleep timer nudge with dynamic-island style SleepTimerPopup component.
  • Implemented Firebase App Check token pre-warming and auto-refresh mechanisms.
  • Added AI-suggested search redirect chips, anonymous data disclosure, and non-Latin input tips to AI Onboarding.
  • Created SleepTimerConstants shared module to deduplicate numeric sentinel values.

Changed

  • Isolated the Learn screen playback queue to prevent auto-refill of normal episodes.

Fixed

  • Fixed sleep timer nudge dismissal race condition when hidden mid-confirmation.
  • Fixed transition stutters for the Home screen tab navigation.
  • Fixed AppCheck telemetry initialization race condition on app startup.
  • Fixed candidate cache type-mixing and delayed news-flag sync issues on podcast import.
  • Fixed skip-gate clock skew sensitivity and failure tracking in iTunes charts sync script.
  • Fixed Qdrant orphan vectors, multiline CSV description split issues, missing cleanup run costs, and manual embedding budget overrides in the sync workflow.
  • Fixed onboarding backup-restore recreation loop and region code alias normalization issues.
  • Fixed Qdrant existence checks by chunking requests in batches of 1000 IDs to avoid oversized request payloads.
  • Fixed double density scaling in image proxy URLs and stale proxyUrl memoization on density changes.
  • Fixed download artwork cleanup race condition and premature deletion of shared podcast artwork.
  • Fixed centering of podcast chip in daily curiosity card when title is long.
  • Fixed pagination race condition in LearnViewModel when load/refresh is in-flight.
  • Fixed unoptimized palette decodes, stale ambient accent colors, and unlocked play button clicks on loading.

v0.0.5

Choose a tag to compare

@ashwkun ashwkun released this 07 Jul 20:12

Added

  • Migrated backend pipeline to Xenova/bge-m3 embedding model for superior multilingual search support.
  • Configured Qdrant index storage optimizations, including int8 scalar quantization and on-disk indexing configurations.
  • Integrated telemetry session tracking and action counters for the Learn screen and bottom navigation.
  • Created toEpisode() common model mapping helper in EpisodeMapper.kt in the :core:data module.
  • Extracted shared TrackScreenSession composable in LifecycleUtils.kt to observe screen start/stop lifecycle events across screens without code duplication.

Changed

  • Optimized the Learn screen with centered empty state layouts, swipe history list navigation, and card restoration flow.
  • Reduced background artwork blur on the Daily Briefing screen to 8.dp to ensure branding logo remains visible.
  • Removed default candidate caps and episode limit counts across background sync and vectorization scripts (sync-episodes.js, vectorize.js, vectorize-podcasts.js).
  • De-coupled medium column check from sync candidate selection in sync-episodes.js.
  • Optimized Home screen transitions by deferring heavy below-the-fold content sections during slide navigation.

Fixed

  • Supported region code aliases (uk/ind) in Settings and Onboarding segmented control country selectors.
  • Configured the explore screen semantic search results hero card to display a "FEATURED RESULT" badge.
  • Recreated the active MainActivity immediately upon a successful JSON backup restore to update the active theme, region, and subscriptions reactively.

v0.0.4

Choose a tag to compare

@ashwkun ashwkun released this 05 Jul 12:57

What's Changed in v0.0.4

🎨 Explore & Curiosity Card Redesign

  • Curiosity Deck Layout Optimization: Reduced card stack container height from 530.dp to 490.dp using Alignment.BottomCenter. Background cards now fan upwards, saving 40.dp of vertical layout height (PR #808, PR #807).
  • Clearance of Overlap: Restructured the screen Column's bottom padding and top/bottom weight spacers to keep the deck dynamically centered. The controls and cards now float safely above the miniplayer and bottom navigation under any screen configuration (PR #808).
  • Accent Color Extraction: Upgraded background ambient glow color extraction to query the visually dominantSwatch of the cover art. Saturation is dynamically boosted (minimum 40%) and lightness clamped (25% to 55%), yielding gorgeous, vibrant glows instead of grays or locking onto tiny splashes of text color (PR #808, PR #806).
  • Compact Controls: Relocated the control icons to sit close below the fanned card edges inside pill-shaped buttons with action labels (Dismiss, Info, Queue) (PR #808).
  • Circular Wavy Play Loader: Integrated a matching BoxLoreLoader.CircularWavy indeterminate progress loader inside the circular play button when an episode is loading (PR #808).
  • SonarCloud Compliance: Cleaned up code smells by reducing parameter count of card composables and flattening conditionals to lower cognitive complexity (PR #808).

⬇️ Downloads & Mixtapes UI Revamp

  • Collapsible Sections & Single Columns: Redesigned downloads screen to feature collapsible Smart Downloads, clean single-column lists, multi-select operations, and direct play options (PR #798, PR #797).
  • Mixtape Redesign: Reworked mixtape card layouts and refined mixtape scoring algorithms (PR #795).
  • Storage purging: Implemented background storage cleaning via WorkManager and added playback entry point statistics (PR #796).

🏠 Home Feed & Navigation Refinements

  • Unified Aesthetics: Unified home feed card styling, transitions, aspect ratios, and line-heights for a highly premium, cohesive look and feel (PR #803).
  • Subscriptions Compactness: Compacted the Subscriptions screen header and moved the "Play All Downloads" button to a non-colliding bottom-right Floating Action Button (FAB) (PR #805, PR #804).
  • Episode Drop Dismissal: Added dismissible banner logic for new episode alerts on the home feed (PR #800).

🐛 Bug Fixes & Under-the-Hood Tuning

  • Replay Bug: Resolved a playback completed status replay bug and optimized database writes on Turso (PR #802).
  • Scroll Stutter: Eliminated Home screen scroll stutter using JankStats optimization (PR #793).
  • Onboarding Inputs: Improved onboarding input validation and top app bar theme invalidation (PR #794).

v0.0.3 (Version reset due to package name changes for new Google Play release)

Choose a tag to compare

@ashwkun ashwkun released this 27 Jun 20:08

This release bumps the version code to 3 (v0.0.3). Note that the version numbers have been reset due to package name changes for the new Google Play Store release.

Features & Fixes in this release:

  • Copy show subscription timestamp locally to avoid resetting database subscription date to 0 when loading show info details.
  • Enable scoring boosts for shows with notifications enabled (+30 pts) and auto-downloads enabled (+60/90 pts) to keep relevant shows at the front of home and library feeds.

v2.6.7

Choose a tag to compare

@ashwkun ashwkun released this 23 Jun 16:30

Rebranded release

v2.6.4

Choose a tag to compare

@ashwkun ashwkun released this 15 Jun 20:13
  • Added semantic search support and updated featured show referencing.
  • Improved the recommendation system and implemented UI optimizations.