Files
boris/CHANGELOG.md
2025-10-13 22:34:09 +02:00

35 KiB

Changelog

All notable changes to this project will be documented in this file.

The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.

Unreleased

[0.6.0] - 2025-10-13

Added

  • Tailwind CSS v4 integration with preflight enabled
  • Reading position tracking with visual progress indicator
  • Document-level scrolling with sticky sidebars on desktop
  • Dedicated legacy styles file for better organization

Changed

  • Refactored layout system to use document scroll instead of pane scroll
  • Migrated reading progress indicator to Tailwind utilities
  • Migrated mobile buttons to Tailwind utilities
  • Simplified global CSS to work with Tailwind preflight
  • Updated PostCSS configuration for Tailwind v4
  • Reconciled base styles with Tailwind preflight
  • Reorganized and cleaned up duplicate styles in index.css
  • Made reading progress indicator smaller and more subtle

Fixed

  • Reading position indicator now always visible at bottom of screen
  • Progress tracking now accurately reflects reading position
  • Scroll behavior consistent across desktop and mobile
  • Removed padding on mobile main pane for edge-to-edge content
  • Removed mobile content pane gap for better layout
  • Document scroll with important overrides for consistent behavior

[0.5.7] - 2025-01-14

Added

  • Vimeo video metadata extraction support
  • YouTube video metadata extraction with title, description, and captions
  • Responsive video player with aspect ratio support
  • Thumbnail images in compact view
  • URL routing for /me page tabs
  • Bookmark navigation in reading list
  • Video duration display for video URLs
  • Three-dot menu for videos with open/native/copy/share actions
  • External video embedding in reader using react-player
  • Video detection for Vimeo, Dailymotion, and other platforms

Changed

  • Enhanced borders for reading list cards
  • Reading list tab colored blue to match bookmarks icon
  • Left-aligned text in reading list elements
  • Increased spacing between mobile buttons and profile element
  • Main pane now full width when displaying videos
  • Video container breaks out of reader padding for full width
  • Simplified video container layout

Fixed

  • Video player edge-to-edge display with negative margins
  • Prevent profile element from bleeding off screen on mobile
  • Resolved TypeScript errors in youtube-meta.ts
  • Improved type safety in youtube-meta handler
  • More lenient YouTube description extraction
  • Corrected setTimeout ref type in Settings
  • Proper react-player responsive pattern implementation
  • Removed unused getIconForUrlType in CompactView

Style

  • Hide tab counts on mobile for /me page
  • Remove max-width on main pane, constrain reader instead
  • Full width layout for videos
  • Reader-video specific styles

[0.5.6] - 2025-10-13

Added

  • Three-dot menu for articles and enhanced highlight menus
  • Prism.js syntax highlighting for code blocks
  • Inline image rendering in nostr-native blog posts
  • Image placeholders on blog post cards in /explore
  • Caching on /me page for faster loading

Changed

  • Reading List on /me now uses the same components as the bookmarks sidebar
  • Improve bookmarks sidebar visual design
  • Make article menu button more subtle by removing border

Fixed

  • Use round checkmark icon (faCheckCircle) for Mark as Read button
  • Remove extra horizontal divider above article menu
  • Ensure code blocks consistently use monospace fonts
  • Preserve reading font settings in markdown images

Style

  • Remove horizontal divider above Mark as Read button
  • Remove horizontal divider below article menu button

0.5.5 - 2025-01-27

Added

  • /me page with tabbed layout featuring Highlights, Reading List, and Library tabs
  • Two-pane layout for /me page with article sources and highlights
  • Custom FontAwesome Pro books icon for Archive tab
  • CompactButton component for highlight cards
  • Instant mark-as-read functionality with checkmark animation and read status checking

Changed

  • Rename Library tab to Archive
  • Move highlight timestamp to top-right corner of cards
  • Replace username with AuthorCard component on /me page
  • Use user's custom highlight color for Highlights tab
  • Render library articles using BlogPostCard component for consistency
  • Use faBooks icon for Mark as Read button
  • Make quote icon a CompactButton in top-left corner

Fixed

  • Include currentArticle in useEffect deps to satisfy lint
  • Deduplicate article events in library to prevent showing duplicates
  • Remove incorrect useSettings hook usage in Me component
  • Correct fetchBookmarks usage with callback pattern in Me component
  • Add padding to prevent quote text from overlapping timestamp
  • Improve spacing and alignment of highlight card elements
  • Align corner elements symmetrically with proper margins
  • Group relay icon and author in footer-left for consistent alignment
  • Position relay indicator in bottom-left corner to prevent overlap with author

Style

  • Match /me profile card width to highlight cards
  • Improve Me page mobile tabs and avoid overlap with sidebar buttons
  • Reduce margins/paddings to make highlight cards more compact
  • Tighten vertical spacing on highlight cards
  • Left-align text inside author card
  • Constrain /me page content width to match author card (600px)
  • Improve tab border styling for dark theme
  • Make relay indicator match CompactButton (same look as menu)
  • Align relay indicator within footer with symmetric spacing
  • Make header and footer full-width with borders and corners

[0.5.4] - 2025-10-13

Changed

  • Refactor CSS into modular structure
    • Split 3600+ line monolithic index.css into organized modules
    • Created src/styles/ directory with base, layout, components, and utils subdirectories
    • Each file kept under 210 lines for maintainability
    • Preserved cascade order and selector specificity via ordered @import statements
    • No functional changes to styling

Fixed

  • Mobile button positioning now uses safe area insets for symmetrical layout on notched devices

[0.5.3] - 2025-10-13

Changed

  • Relay status indicator is now more compact
    • Smaller padding and font sizes on desktop
    • Auto-collapsed on mobile (icon-only by default, tap to expand)
    • Matches size of sidebar toggle buttons (44px touch target)
    • Hides when scrolling down, shows when scrolling up (consistent with other mobile controls)

Fixed

  • Invalid bookmarks without IDs no longer appear in bookmark list
    • Previously showed as "Now" timestamp with no content
    • Bookmarks without valid IDs are now filtered out entirely
    • Use bookmark's original timestamp instead of always generating new ones
  • Profile icon size when logged out now matches other icon buttons in sidebar header

0.5.2 - 2025-10-12

Added

  • Three-dot menu to highlight cards for more compact UI
    • Combines "Open on Nostr" and "Delete" actions into dropdown menu
    • Uses horizontal ellipsis icon (⋯)
    • Click-outside functionality to close menu

Changed

  • Switch Nostr gateway from njump.me/search.dergigi.com to ants.sh
    • Centralized gateway URLs in config file
    • All profile and event links now use ants.sh
    • Automatic detection of identifier type (profile vs event) for proper routing
  • Remove loading text from Explore and Me pages (spinner only)
  • "Open on Nostr" now links to the highlight event itself instead of the article

Fixed

  • Gateway URL routing for ants.sh requirements (/p/ for profiles, /e/ for events)
  • Linting errors in HighlightItem component

0.5.1 - 2025-10-12

Added

  • Highlight color customization to UI elements
    • Apply user's "my highlights" color to highlight creation buttons
    • Apply highlight group colors to highlight count indicators
    • Apply "my highlights" color to collapsed highlights panel button

Fixed

  • Highlight count indicator styling to match reading-time element
  • Brightness and border styling for highlight count indicator
  • User highlight color now applies to both marker and arrow icons
  • Highlight group color properly applied to count indicator background

Removed

  • MOBILE_IMPLEMENTATION.md documentation file

0.5.0 - 2025-10-12

Added

  • Upgrade to full PWA with vite-plugin-pwa
  • Replace placeholder icons with branded favicons
  • Author info card for nostr-native articles

Changed

  • Explore: shrink refresh spinner footprint; inline-sized loading row
  • Explore: preserve posts across navigations; seed from cache; merge streamed and final results
  • Explore: keep posts visible during refresh; inline spinner; no list wipe
  • Bookmarks: keep list visible during refresh; show spinner only; no wipe
  • Bookmarks: avoid clearing list when no new events; decouple refetch from route changes
  • Highlights: split service into smaller modules to keep files under 210 lines
  • Lint/TypeScript: satisfy react-hooks dependencies; fix worker typings; clear ESLint/TS issues

Fixed

  • Highlights: merge remote results after local for article/url
  • Explore: always query remote relays after local; stream merge into UI
  • Improve mobile touch targets for highlight icons
  • Color /me highlights with "my highlights" color setting

Performance

  • Local-first then remote follow-up across services (titles, bookmarks, highlights)
  • Run local and remote fetches concurrently; stream and dedupe results
  • Stream contacts and early posts from local; merge remote later
  • Relay queries use local-first with short timeouts; fallback to remote when needed
  • Stream results to UI; display cached/local immediately (articles, highlights, explore)

Documentation

  • PWA implementation summary and launch checklist updates
  • Update docs to reflect branded icons and final steps
  • Remove temporary PWA launch checklist and implementation summary

[0.4.3] - 2025-10-11

Added

  • Mark as read functionality for articles (NIP-25)
    • Button at the end of each article to mark as read with 📚 emoji
    • Creates kind:7 reactions for nostr-native articles (/a/ paths)
    • Creates kind:17 reactions for external websites (/r/ paths)
    • Button shows loading state while publishing reaction
    • Only visible when user is logged in
  • Highlight deletion with confirmation dialog (NIP-09)
    • Small delete button (trash icon) on highlight items
    • Only visible for user's own highlights
    • Confirmation dialog prevents accidental deletions
    • Styled to match relay indicator (subtle, same size)
    • Removes highlights from UI immediately after deletion request
  • /me page showing user's recent highlights
    • Accessible by clicking profile picture in bookmark sidebar
    • Displays all highlights created by the logged-in user
    • Uses same rendering as Settings and Explore pages
    • Includes highlight count in header
  • Confirmation dialog component
    • Reusable modal with danger/warning/info variants
    • Backdrop blur effect
    • Mobile-responsive design
    • Prevents accidental destructive actions

Changed

  • Relay status indicator on mobile now displays in compact mode
    • Shows only airplane icon by default (44x44px touch target)
    • Tap to expand for full connection details
    • Reduces screen clutter on mobile while keeping info accessible
    • Smooth transition between compact and expanded states
    • Desktop view remains unchanged (always shows full details)

[0.4.2] - 2025-10-11

Added

  • NIP-19 identifier resolution in article content (NIP-19, NIP-27)
    • Support for nostr:npub1..., nostr:note1..., nostr:nprofile1..., nostr:nevent1..., nostr:naddr1...
    • Converts nostr: URIs to clickable links with human-readable labels
    • Automatically fetches and displays article titles for naddr references
    • Falls back to identifier when title fetch fails
  • Auto-hide mobile UI buttons on scroll down
    • Floating bookmark/highlights buttons hide when scrolling down
    • Buttons reappear when scrolling up for distraction-free reading
    • Smooth opacity transitions for better UX
  • Scroll direction detection hook (useScrollDirection)
    • Supports both window and element-based scroll detection
    • Configurable threshold and enable/disable options

Changed

  • Article references (naddr) now link internally to /a/{naddr} instead of external njump.me
  • Sidebar auto-closes on mobile when navigating to content via routes
    • Handles clicking on blog posts in Explore view
    • Complements existing sidebar auto-close for bookmarks
  • Markdown processing now async to support article title resolution
  • Article title resolution fetches titles in parallel for better performance

Fixed

  • Mobile button scroll detection now correctly monitors main pane element
    • Previously monitored window scroll which didn't work on mobile
    • Content scrolls within .pane.main div on mobile devices
  • All ESLint warnings and TypeScript type errors resolved
    • Added react-hooks plugin to ESLint configuration
    • Fixed exhaustive-deps warnings in components
    • Added block scoping to switch case statements
    • Corrected type references for nostr-tools decode result

[0.4.1] - 2025-10-10

Fixed

  • Long article summaries overlapping with hero image content on mobile devices
  • Article summary now moves below hero image on mobile when longer than 150 characters
  • Article summary line clamp reduced from 3 to 2 lines on mobile for better space utilization

Changed

  • Hero image rendering on mobile now uses zoom-to-fit approach with viewport-based sizing
  • Hero image height on mobile set to 50vh (constrained between 280px-400px)
  • Improved image cropping with center positioning for better visual presentation
  • Optimized reader header overlay padding and title sizing on mobile

0.4.0 - 2025-10-10

Added

  • Mobile-responsive design with overlay sidebar drawer
  • Media query hooks for responsive behavior (useIsMobile, useIsTablet, useIsCoarsePointer)
  • Auto-collapse sidebar setting for mobile devices
  • Touch-optimized UI with 44x44px minimum touch targets
  • Safe area inset support for notched devices
  • Mobile hamburger menu and backdrop
  • Focus trap in mobile sidebar with ESC key support
  • Body scroll locking when mobile sidebar is open
  • Mobile-optimized modals (full-screen sheet style)
  • Mobile-optimized toast notifications (bottom position)
  • Dynamic viewport height support (100dvh)
  • Mobile highlights panel as overlay with toggle button

Changed

  • Sidebar now displays as overlay drawer on mobile (≤768px)
  • Highlights panel hidden on mobile for better content focus
  • Sidebar auto-closes when selecting content on mobile
  • Hover effects disabled on touch devices
  • Replace hamburger icon with bookmark icon on mobile

Fixed

  • Ensure bookmarks container fills mobile sidepane properly
  • Restore desktop grid layout for highlights panel
  • Improve empty state and loading visibility in mobile sidepanes
  • Add flex properties to mobile bookmark containers for proper filling
  • Force bookmarks pane expanded on mobile and ensure highlights pane sits above content on desktop
  • Reduce mobile backdrop opacity and ensure sidepanes appear above it
  • Replace any type with proper bookmark interface for linter compliance

0.3.8 - 2025-10-10

Fixed

  • Add vercel.json configuration to properly handle SPA routing on Vercel deployments (fixes 404 errors on page refresh)

0.3.7 - 2025-10-10

Fixed

  • Logout button functionality - now properly clears active account using clearActive() method

0.3.6 - 2025-10-10

Added

  • Compact date format for highlights (now, 5m, 3h, 2d, 1mo, 1y)
  • Ultra-compact date format for bookmarks sidebar
  • Encode event links as nevent/naddr per NIP-19 for better client compatibility
  • Render /explore within ThreePaneLayout to keep side panels visible

Fixed

  • Remove incorrect padding-right from highlights container
  • Reduce font size of highlight metadata for cleaner look
  • Position highlight FAB button relative to article pane instead of viewport
  • Adjust relay indicator position for better visual alignment
  • Ensure highlight metadata elements align on single visual line with consistent line-height
  • Prevent bookmark icons from being cut off in compact view
  • Clean up nested borders in bookmark items and sidebar view mode controls
  • Align highlight metadata elements on single line in sidebar
  • Change explore header icon from compass to newspaper

Changed

  • Make connecting notification more subtle with muted blue background
  • Update Boris pubkey for zap splits to npub19802see0gnk3vjlus0dnmfdagusqrtmsxpl5yfmkwn9uvnfnqylqduhr0x
  • Update domain references to read.withboris.com (URLs, SEO metadata, and documentation)

0.3.5 - 2025-10-09

Fixed

  • Ensure connecting state shows for minimum 15 seconds to prevent premature offline display
  • Add Cloudflare Pages routing config for SPA paths

Changed

  • Extend connecting state duration and remove subtitle text for cleaner UI

0.3.4 - 2025-10-09

Fixed

  • Add p tag (author tag) to highlights of nostr-native content for proper attribution

0.3.3 - 2025-10-09

Added

  • Service Worker for robust offline image caching
  • /explore route to discover blog posts from friends on Nostr
  • Explore button (newspaper icon) in bookmarks header
  • "Connecting" status indicator on page load (instead of immediately showing "Offline")
  • Last fetch time display with relative timestamps in bookmarks list

Changed

  • Simplify image caching to use Service Worker transparently
  • Move refresh button from top bar to end of bookmarks list
  • Make explore page article cards proper links (supports CMD+click to open in new tab)
  • Reorganize bookmarks UI for better UX

Fixed

  • Improve image cache resilience for offline viewing and hard reloads
  • Correct TypeScript types for cache stats state
  • Resolve linter errors for unused parameters
  • Import useEventModel from applesauce-react/hooks for proper type safety
  • Import Models from applesauce-core instead of applesauce-react
  • Use correct useEventModel hook for profile loading in BlogPostCard

0.3.0 - 2025-10-09

Added

  • Flight Mode with offline highlight creation and local relay support
  • Automatic offline sync - rebroadcast local events when back online
  • Relay indicator icon on highlight items showing sync status
  • Click-to-rebroadcast functionality for highlights
  • Flight mode indicator (plane icon) on offline-created highlights
  • Relay rebroadcast settings for caching and propagation
  • Local relay status indicator for local-only/offline mode
  • Second local relay support (localhost:4869)
  • Relay connection status tracking and display
  • 6th font size option for better UI scaling

Fixed

  • Highlight creation resilient to offline/flight mode
  • TypeScript type errors in offline sync
  • Relay indicator tooltip accuracy and reliability
  • Always show relay indicator icon on highlights
  • Show remote relay list for fetched highlights
  • Publish highlights to all connected relays instead of just one
  • Keep all relay connections alive, not just local ones
  • Check actual relay connection status instead of pool membership
  • Skip rebroadcasting when in flight mode
  • Update relay info after automatic sync completes
  • Only show successfully reachable relays in flight mode
  • Include local relays in relay indicator tooltip

Changed

  • Rename 'Offline Mode' to 'Flight Mode' throughout UI
  • Move publication date to top-right corner with subtle border styling
  • Consolidate relay/status indicators into single unified icon
  • Simplify relay indicator tooltip to show relay list
  • Move rebroadcast settings to dedicated Flight Mode section
  • Place Reading Font and Font Size settings side-by-side
  • Improve font size scale and default value
  • Use wifi icon for disconnected remote relays
  • Use airplane icons for local relay indicators
  • Make Relays heading same level as Flight Mode in settings
  • Simplify rebroadcast settings UI with consistent checkbox style

Performance

  • Make highlight creation instant with non-blocking relay publish
  • Reduce relay status polling interval to 20 seconds
  • Show sync progress and hide indicator after successful sync

0.2.10 - 2025-10-09

Added

  • URL-based settings navigation with /settings route
  • Active zap split preset highlighting
  • Educational links about relays in reader view
  • Article publication date display in reader
  • Local relay recommendations in settings
  • Relays section showing active and recently connected relays

Fixed

  • Remove trailing slash from relay URLs
  • Constrain Reading Font dropdown width

Changed

  • Rename 'Default View Mode' to 'Default Bookmark View' in settings
  • Reorganize settings layout for better UX
  • Use sidebar-style colored buttons for highlight visibility
  • Simplify Relays section presentation

0.2.9 - 2025-10-09

Fixed

  • Deduplicate highlights in streaming callbacks

0.2.8 - 2025-10-09

Added

  • Display article summary in header
  • Overlay title and metadata on hero images
  • Apply reading font to article titles

Fixed

  • Pass article summary through to ReadableContent
  • Correct Jina AI Reader proxy URL format

Changed

  • Update homepage URL to read.withboris.com
  • Reorder toolbar buttons for better UX

0.2.7 - 2025-10-08

Added

  • Web bookmark creation (NIP-B0, kind:39701)
  • Tags support for web bookmarks per NIP-B0
  • Auto-fetch title and description when URL is pasted
  • Prioritize OpenGraph tags for metadata extraction
  • Auto-extract tags from metadata with boris as default tag
  • Zap split preset buttons
  • Boris support percentage to zap splits
  • Respect existing zap tags in source content when creating highlights

Fixed

  • Revert to fetchReadableContent to avoid CORS issues
  • Improve modal spacing with proper box-sizing
  • Prevent sliders from jumping when resetting settings
  • Pass relayPool as prop instead of using non-existent hook
  • Correct type signature for addZapTags function

Changed

  • Reorder toolbar buttons for better UX
  • DRY up tag extraction with normalizeTags helper
  • Use url-metadata package for robust metadata extraction
  • Make zap split sliders independent using weights
  • Move zap splits to dedicated settings section
  • Publish bookmarks to relays in background for better performance

0.2.6 - 2025-10-08

Added

  • Home button to bookmark bar
  • Configurable zap split for highlights on nostr-native content

0.2.5 - 2025-10-07

Fixed

  • Wire preview ref to markdown conversion hook
  • Add missing useEffect dependencies for article loading

Changed

  • DRY up highlight classification and URL normalization
  • Split highlighting utilities into modules
  • Extract highlights panel components
  • Extract content rendering hooks
  • Split Settings into section components
  • Extract event processing utilities
  • Split Bookmarks.tsx into smaller hooks and components

0.2.4 - 2025-10-07

Added

  • Domain configuration for https://xn--bris-v0b.com/
  • Public assets and deployment configuration
  • Hide bookmarks without content or URL

Fixed

  • Encode/decode URLs in /r/ route to preserve special characters

Changed

  • Cleanup after build fixes (remove shims, update locks)
  • Stop tracking node_modules/dist
  • Update dependencies and dedupe
  • Add .gitignore for node_modules and dist

0.2.3 - 2025-10-07

Added

  • Parse and display summary tag for nostr articles
  • Merge and flatten bookmarks from multiple lists
  • Update URL path when opening bookmarks from sidebar

Fixed

  • Ensure bookmarks are sorted newest first after merging lists
  • Hide empty bookmarks without content
  • Remove encrypted cyphertext display from bookmark list

Changed

  • Remove created date from bookmark list display

0.2.2 - 2025-10-06

Added

  • Support for web bookmarks (NIP-B0, kind:39701)
  • Default highlight visibility settings
  • Proxy.nostr-relay.app relay to configuration
  • Comprehensive logging to settings service

Fixed

  • Handle web bookmarks with URLs in d tag and prevent crash
  • Load settings from local cache first to eliminate FOUT
  • Ensure fonts are fully loaded before applying styles
  • Improve highlight rendering pipeline with comprehensive debugging

Changed

  • Use icon toggle buttons for highlight visibility settings
  • Change nostrverse icon from fa-globe to fa-network-wired

0.2.1 - 2025-10-05

Added

  • Local relay support and centralize relay configuration
  • Optimistic updates for highlight creation
  • Enable highlight creation from external URLs
  • Add routing support for external URLs
  • Add context to highlights (previous and next sentences)
  • Boris branding to highlight alt tag

Fixed

  • Properly await account loading from localStorage on refresh
  • Add protected routes to prevent logout on page refresh
  • Use undo icon for reset to defaults button
  • Update local relay port to 10547

Changed

  • Remove dedicated login page, handle login through main UI
  • Simplify to single RELAYS constant (DRY)

0.2.0 - 2025-10-05

Added

  • Simple highlight creation feature (FAB style)
  • Reset to defaults button in settings
  • Load and apply settings upon login

Fixed

  • Replace any types with proper NostrEvent types
  • Move FAB to Bookmarks component for proper floating
  • Highlight button positioning with scroll

Changed

  • Update color palette to include default friends/nostrverse colors
  • Show author name in highlight cards
  • Sync highlight level toggles between sidebar and main article text
  • Rename 'underlines' to 'highlights' throughout codebase

0.1.11 - 2025-10-05

Added

  • Stream highlights progressively as they arrive from relays

Fixed

  • Display article immediately without waiting for highlights to load
  • Show highlights immediately when opening panel if already loaded
  • Prevent bookmark text from being cut off in compact view
  • Correct default highlight color for 'mine' to yellow (#ffff00)

Changed

  • Reduce padding between bookmark items and panel edge
  • Update default highlight colors to orange for friends and purple for nostrverse

0.1.10 - 2025-10-05

Added

  • Three-level highlight system (mine/friends/nostrverse)

Fixed

  • Ensure highlights always render on markdown content
  • Classify highlights before passing to ContentPanel
  • Position toggle buttons directly adjacent to main panel
  • Remove redundant setReaderLoading call in error handler

Changed

  • Always show friends and user highlight buttons
  • Remove Highlights title and count from panel

0.1.9 - 2025-10-05

Fixed

  • Show markdown content immediately when finalHtml is empty
  • Prevent highlight bleeding into sidebar

0.1.8 - 2025-10-05

Fixed

  • Prevent 'No readable content' flash for markdown articles
  • Enable highlights display and scroll-to for markdown content

Added

  • Persist accounts to localStorage

Changed

  • Simplify login by handling it directly in sidebar

0.1.7 - 2025-10-05

Added

  • Show highlights in article content and add mode toggle

Fixed

  • Show highlights for nostr articles by skipping URL filter
  • Refresh button now works without login for article highlights
  • Query highlights using both a-tag and e-tag

Changed

  • Keep Bookmarks.tsx under 210 lines by extracting logic

0.1.6 - 2025-10-03

Added

  • Native support for rendering Nostr long-form articles (NIP-23)
  • Display article titles for kind:30023 bookmarks
  • Enable clicking on kind:30023 articles to open in reader
  • Display article hero images in bookmark views and reader
  • Configurable highlight colors
  • Highlight style setting (marker & underline)

Fixed

  • Use bookmark pubkey for article author instead of tag lookup
  • Ensure highlight color CSS variable inherits from parent

Changed

  • Integrate long-form article rendering into existing reader view
  • Extract components to keep files under 210 lines
  • Make font size and color buttons match icon button size (33px)

0.1.5 - 2025-10-03

Added

  • Settings panel with NIP-78 storage
  • Auto-save for settings with toast notifications
  • Reading time estimate to articles
  • Font size setting
  • Configurable reading font using Bunny Fonts
  • Live preview of reading font in settings
  • Settings subscription to watch for Nostr updates

Fixed

  • Prevent settings from saving unnecessarily
  • Prevent save settings button from being cut off
  • Replace custom reading time with reading-time-estimator package
  • Update originalHtmlRef when content changes

Changed

  • Reduce file sizes to meet 210 line limit
  • Extract settings logic into custom hook
  • Consolidate settings initialization on login
  • Remove debounce from settings auto-save

0.1.4 - 2025-10-03

Added

  • Inline highlight annotations in content panel
  • NIP-84 highlights panel with three-pane layout
  • Toggle button to show/hide highlight underlines
  • Click-to-scroll for highlights
  • Pulsing animation when scrolling to highlight

Fixed

  • Apply highlights to markdown content as well as HTML
  • Use requestAnimationFrame for highlight DOM manipulation
  • Improve HTML highlight matching with DOM manipulation
  • Filter highlights panel to show only current article

Changed

  • Use applesauce helpers for highlight parsing
  • DRY up highlightMatching to stay under 210 lines
  • Change highlights to fluorescent marker style
  • Deduplicate highlight events by ID

0.1.3 - 2025-10-03

Added

  • View mode switching for bookmarks with compact list view
  • Large preview view mode
  • Image preview for large view cards
  • Hero images using free CORS proxy

Changed

  • Make entire compact list row clickable to open reader
  • Make card view timestamp clickable to open event
  • Enhance card view design with modern styling

0.1.2 - 2025-10-03

Added

  • Open bookmark URLs in reader instead of new window
  • localStorage caching for fetched articles
  • Collapsible bookmarks sidebar

Fixed

  • Make sidebar and reader scroll independently
  • Replace relative-time with date-fns for timestamp formatting

Changed

  • Display timestamps as relative time
  • Replace user text with profile image in sidebar header
  • Move user info and logout to sidebar header bar
  • Reduce IconButton size by 25%

0.1.1 - 2025-10-03

Added

  • Classify URLs by type and adjust action buttons
  • Collapse/expand functionality for bookmarks sidebar
  • IconButton component with square styling
  • Resolve nprofile/npub mentions to names in content

Fixed

  • Enforce 210-char truncation for both plain and parsed content
  • Use Rules of Hooks correctly

Changed

  • Use IconButton for all icon-only actions to enforce square sizing
  • Sort bookmarks by added_at (recently added first)
  • Make kind icon square to match IconButton sizing
  • Remove colored borders and gradients; keep neutral cards

0.1.0 - 2025-10-03

Added

  • Two-pane layout and content fetching pipeline
  • ContentPanel component to render readable HTML
  • Lightweight readability fetcher via r.jina.ai proxy
  • Markdown rendering support with react-markdown and remark-gfm
  • READ NOW button to bookmark cards
  • Spinner to content loading state
  • FontAwesome icons for event kinds

Fixed

  • Show bookmarked event author instead of list signer
  • Enable reactive profile fetch via address loader
  • Left-align content and constrain images in content panel

Changed

  • Resolve author names using applesauce ProfileModel
  • Propagate URL selection through BookmarkList to parent
  • Display URLs clearly in individual bookmarks

0.0.3 - 2025-10-02

Added

  • Manual decryption for unrecognized event kinds
  • Try NIP-44 then NIP-04 for manual decryption
  • Detailed debugging for decryption process
  • Support for hidden bookmarks decryption

Fixed

  • Surface manually decrypted hidden tags in UI
  • Dedupe individual bookmarks by id

Changed

  • Sort individual bookmarks by timestamp (newest first)
  • Increase bookmark loading timeout by 2x
  • Extract helpers and event processing

0.0.2 - 2025-10-02

Added

  • Fetch all NIP-51 events
  • Unlock private bookmarks via applesauce helpers
  • Copy-to-clipboard icons for event id and author pubkey
  • FontAwesome globe/lock icons
  • Display content identically for private/public bookmarks

Fixed

  • Properly configure browser extension signer
  • Aggregate list(10003) + set(30001)
  • Handle applesauce bookmark structure correctly
  • Resolve loading state stuck issue

Changed

  • Change bookmarks display from grid to social feed list layout
  • Simplify bookmark service using applesauce helpers
  • Extract components and utilities to keep files under 210 lines

0.0.1 - 2025-10-02

Added

  • Initial release
  • Browser extension login support
  • NIP-51 bookmark fetching from nostr relays
  • User profile display
  • Relay pool configuration
  • Basic UI with profile resolution

Changed

  • Migrate to applesauce-accounts for proper account management
  • Use proper applesauce-loaders for NIP-51 bookmark fetching
  • Optimize relay usage following applesauce-relay best practices
  • Use applesauce-react event models for better profile handling