### Fixes
- Fixed liquid glass buttons and surfaces
- Fixed repost confirmation in reels
- Fixed visual messages never being marked as viewed
- Fixed keep deleted messages on the Instamadillo backend
- Fixed Disable video autoplay
- Fixed play/pause force-audio-onfalsely triggering Instagram's "Reel has no sound" message
- Fixed confirm reel refresh triggering on app launch
- Fixed confirm reel refresh not working after first pull
- and more...
### Features
- Profile copy button — copy username/name/bio from any profile
- Backup & Restore — export/import RyukGram settings
- Download disappearing DM media (photos + videos)
- Mark disappearing messages as viewed
- Upload audio as voice message (with trim editor)
- Download voice messages from DMs
- Auto mark seen on typing
- Mark seen on story like
- Advance to next story when marking as seen
- Advance on story like — automatically skips to the next story after liking
- Per-chat and per-story blocking lists with two modes: "Block all" (exclude list) or "Block selected" (include list). Independent lists per mode, long-press to add/remove, per-entry keep-deleted override
- Save to RyukGram album (optional)
- Unlock password-locked reels
- Read receipt modes (button / toggle)
- Auto mark seen on interact
- Unsent message indicator
- Unsent message notification pill
- Hide trailing action buttons on preserved messages
- Warn before clearing preserved messages on DM refresh
- Long-press menu on the DM seen button for quick actions
- Quick list buttons in chats and stories (toggleable)
- Story seen button mode (button / toggle)
- Long-press menu on the story seen button for quick actions
- Story audio mute/unmute toggle — button on story overlay and 3-dot menu
- Hide repost button in reels and feed
- Copy comment text from long-press menu
- Download GIF comments
- Replace domain in shared links with preset or custom embed domains
- Strip tracking params from shared links (igsh, utm)
- Open links in external browser
- Strip tracking from browser links
- Download highlight cover from profile long-press menu
### Improvements
- Excluding a chat or story now immediately marks as seen
- Tweak settings quick-access (hold feed tab) now on by default
- Disable auto-unmuting reels now off by default
- Opening tweak settings pauses any playing video/audio (toggleable)
- Reorganized DM settings into sub-pages
- Reorganized tweak settings — split "Stories and messages" into separate Stories and Messages pages, regrouped related options
- Hide custom story buttons during pinch-to-zoom
- Search bar in tweak settings
### Known Issues
- Preserved unsent messages can't be removed via "Delete for you"; pull-to-refresh in DMs clears them (warning available in settings).
- "Delete for you" detection uses a ~2 second window after the local action. If a real other-party unsend happens to land in the same window, it may not be preserved. Rare in practice and limited to that specific overlap.
keep-deleted override, and adaptive UI
feat: Quick list buttons in chats and stories — add/remove directly from DM threads and story viewer
fix: KVO observer crash from multiple registrations in story audio toggle
fix: Seen auto-bypass race condition when overlapping events (boolean → counter)
fix: Confirm reel refresh not working after first pull
fix: Startup class scan replaced with direct class lookup
imp: All menu/button text adapts to active blocking mode
imp: Mark-seen triggers at the correct point per mode
imp: Migrated unexclude_inbox_button to chat_quick_list_button
imp: Menu changes in settings now reload table for dynamic titles
feat: Remove user param from copied links
feat: Open links in External Browser
feat: Strip Instagram tracking from browser links
fix: Confirm reel refresh confirmation appears on app launch
#2
feat: Multi-select in excluded chats/story users lists with batch actions
feat: Dynamic count refresh on manage list buttons
imp: Opening tweak settings pauses any playing video/audio (toggleable in advanced settings)
imp: Tweak settings quick-access (hold feed tab) now on by default
imp: Disable auto-unmuting reels now off by default
imp: Excluding a chat or story now immediately marks as seen
feat: Story seen button mode (button / toggle)
feat: Long-press menu on the story seen button (mark seen, exclude, settings)
feat: Auto mark-seen on exclude for both stories and DM chats
imp: Cleaner exclusion menu wording across stories and DMs
imp: Tweak settings now update in real time for exclude ui
imp: Ability to batch select in both stories and messages exclude UI
Fix: Prevent play/pause patch from triggering Instagram’s “Reel has no sound” message when forcing audio on silent Reels
imp: Un-exclude button in excluded chats (toggleable)
imp: Show error for unsupported audio files that can't be processed - we can add ffmpeg at some point
chore: Remove qr code text from import/export buttons
fix: Keep-deleted messages now reliable for cold-start backlogs
fix: Fix downloading some audio file formats (tries converting falls back to original file type)
feat: Added copy button in profile page to copy various profile information
feat: Added export/import settings option - With Searchable, collapsible, editable preview before saving or applying
imp: Search bar in tweak settings
imp: Hide custom story buttons when zooming (follows ig buttons)
bug: Fix a bug in keep deleted messages marking removed reactions as unset messages
feat: Save to RyukGram album
feat: Hide trailing action buttons on preserved messages
feat: Confirmation when pulling to refresh the DMs tab if preserved messages would be cleared
- Fixed repost confirmation not working in reels
- Fixed visual message seen bug (messages were never marked as viewed)
- Download button works in DM disappearing messages (photos + videos)
- Mark as viewed button for DM disappearing messages
- Rebranded from SCInsta to RyukGram
- Built-in sideload patch
- Enhanced reels pause/play mode with auto-unmute and mute toggle hiding
- Playback toggle synced with overlay during hold/zoom across IG A/B variants
- Download buttons on feed posts, reels sidebar, and story overlay
- Download method toggle: button or long-press gesture
- Save action: share sheet or save directly to Photos
- Non-blocking pill-style download HUD with tap to cancel
- Story seen receipt blocking (toggleable at runtime, no restart)
- Keep stories visually unseen option
- Manual mark story as seen with allow-list for deferred uploads
- Stop story auto-advance
- Story download from overlay
- Reel download crash fix via runtime ivar scanning
- Proper auto-unmute blocking for reels
- New dylib build mode for Feather injection
- and more...
settings UI, build scripts, workflows, control file, and Makefile
- Added built-in sideload compatibility patch:
keychain access group discovery, SecItem rebinding via fishhook,
NSFileManager app group fallback, Cloud Kit entitlement patches
- Added fishhook library (modules/fishhook/) for C function rebinding
- Updated README with new features, repo links, and credits
- Updated GitHub Actions workflows for RyukGram naming
- Plist renamed from SCInsta.plist to RyukGram.plist