mirror of
https://github.com/dergigi/boris.git
synced 2026-01-06 08:24:27 +01:00
503 lines
17 KiB
Markdown
503 lines
17 KiB
Markdown
# Changelog
|
|
|
|
All notable changes to this project will be documented in this file.
|
|
|
|
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
|
|
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
|
|
|
|
## [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
|
|
|
|
[0.3.0]: https://github.com/dergigi/boris/compare/v0.2.10...v0.3.0
|
|
[0.2.10]: https://github.com/dergigi/boris/compare/v0.2.9...v0.2.10
|
|
[0.2.9]: https://github.com/dergigi/boris/compare/v0.2.8...v0.2.9
|
|
[0.2.8]: https://github.com/dergigi/boris/compare/v0.2.7...v0.2.8
|
|
[0.2.7]: https://github.com/dergigi/boris/compare/v0.2.6...v0.2.7
|
|
[0.2.6]: https://github.com/dergigi/boris/compare/v0.2.5...v0.2.6
|
|
[0.2.5]: https://github.com/dergigi/boris/compare/v0.2.4...v0.2.5
|
|
[0.2.4]: https://github.com/dergigi/boris/compare/v0.2.3...v0.2.4
|
|
[0.2.3]: https://github.com/dergigi/boris/compare/v0.2.2...v0.2.3
|
|
[0.2.2]: https://github.com/dergigi/boris/compare/v0.2.1...v0.2.2
|
|
[0.2.1]: https://github.com/dergigi/boris/compare/v0.2.0...v0.2.1
|
|
[0.2.0]: https://github.com/dergigi/boris/compare/v0.1.11...v0.2.0
|
|
[0.1.11]: https://github.com/dergigi/boris/compare/v0.1.10...v0.1.11
|
|
[0.1.10]: https://github.com/dergigi/boris/compare/v0.1.9...v0.1.10
|
|
[0.1.9]: https://github.com/dergigi/boris/compare/v0.1.8...v0.1.9
|
|
[0.1.8]: https://github.com/dergigi/boris/compare/v0.1.7...v0.1.8
|
|
[0.1.7]: https://github.com/dergigi/boris/compare/v0.1.6...v0.1.7
|
|
[0.1.6]: https://github.com/dergigi/boris/compare/v0.1.5...v0.1.6
|
|
[0.1.5]: https://github.com/dergigi/boris/compare/v0.1.4...v0.1.5
|
|
[0.1.4]: https://github.com/dergigi/boris/compare/v0.1.3...v0.1.4
|
|
[0.1.3]: https://github.com/dergigi/boris/compare/v0.1.2...v0.1.3
|
|
[0.1.2]: https://github.com/dergigi/boris/compare/v0.1.1...v0.1.2
|
|
[0.1.1]: https://github.com/dergigi/boris/compare/v0.1.0...v0.1.1
|
|
[0.1.0]: https://github.com/dergigi/boris/compare/v0.0.3...v0.1.0
|
|
[0.0.3]: https://github.com/dergigi/boris/compare/v0.0.2...v0.0.3
|
|
[0.0.2]: https://github.com/dergigi/boris/compare/v0.0.1...v0.0.2
|
|
[0.0.1]: https://github.com/dergigi/boris/releases/tag/v0.0.1
|
|
|