Skip to content

Releases

Open Nami v1.9.5

Choose a tag to compare

@igect igect released this 04 Nov 03:24

Changes in v1.9.5

TikTok Slardar WAF Challenge Auto-Solver

• Proof-of-Work Challenge Resolution: Added automated SHA-256 proof-of-work solver for TikTok Slardar WAF challenge pages in native TikTokExtractor, generating valid verification cookie tokens and retrieving rehydration payloads without failure.

Modern Creator Endpoints & Pagination Parity

• Native Creator API: Routed post pagination through api/creator/item_list with session cookies and secUid forwarding, avoiding WebAssembly X-Bogus signature requirements.
• Robust Cursor Progression: Added timestamp cursor calculation and hasMorePrevious termination guards, eliminating download loops on sparse or empty feeds.

Gallery-dl Fallback Hardening

• Video-Only Filter Guard: Configured -o photos=false -o avatar=false for video-only downloads and -o avatar=true for profile extractions, preventing avatar duplication and stalled pagination.

Open Nami v1.9.4

Choose a tag to compare

@igect igect released this 30 Oct 10:14

Changes in v1.9.4

Security & Sandboxing Hardening

• Cookie Domain Boundary Match: RFC-compliant domain matching in Netscape cookie parser, preventing cross-domain cookie leakage to sibling domains.
• Windows Browser Bridge ProgId Validation: Strict alphanumeric regex validation preventing shell command injection in default browser discovery.
• Private Session Cookie Files: Ephemeral cookie export sandboxed in per-user temporary directories with 0o600 permissions.
• SQL LIKE Wildcard Escaping: Custom escape syntax for % and _ wildcards preventing substring injection in media deduplication.

Extractor & Pagination Reliability

• Facebook Media ID Stability: Extracted stable media IDs from URLs/slugs, persisted running item counters, and removed arbitrary maxPages = 5 cap.
• X / Twitter Text Tweet Handling: Evaluated total tweet results instead of media items when checking pagination continuation, allowing seamless traversal past text-only tweet pages.
• TikTok SSR Filtering: Applied date range (since/until) and post limit boundaries to initial SSR hydration items with deduplication against overlapping API chunks.
• Instagram Checkpoint Integrity: Deferred checkpoint cursor advances until after current page items finish yielding.

Storage, Filtering & Interactivity

• Case-Insensitive Ledger: Added COLLATE NOCASE across media ledger tables and standardized compound key casing.
• Accurate Post Limits: Duplicate skipped items no longer consume newly-downloaded post limit quotas.
• Output Directory Priority: Explicit -o / --output parameter takes priority over existing tracked directories in open-nami pull.
• Single-Profile Untrack Scoping: Scoped [d] untrack key and click target in PullView directly to cursor profile instead of defaulting to bulk untracking.
• Robust Batch Input Parsing: Replaced whitespace splitting with structured line parser in BatchView, preserving URLs and comments.
• Non-Blocking Clipboard Watcher: Download dispatches run as non-blocking promises.
• Node Engine Alignment: Updated installer and PyPI bundle prerequisite checks to >=20.

Open Nami v1.9.3

Choose a tag to compare

@igect igect released this 30 Oct 08:16

Changes in v1.9.3

  • Creator Profile Disk Discovery: Automatically discovers existing creator folders from download directories and registers them with live media counts.
  • Accurate Media Counting: Scans actual media files on disk, eliminating naive accumulator drift and stale 0 counts.
  • Ledger Item ID Alignment: Aligns stream extractor post IDs with storage keys, allowing early-exit duplicate detection to stop pagination on already-downloaded posts.
  • Untracked Blacklist: Persists untracked creators in SQLite so explicitly untracked profiles are not revived on subsequent scans.
  • TUI Footer Mouse Click: Registered click target on ^h history for seamless mouse navigation.
  • CLI Subcommand: Added open-nami track <url-or-user>.

Open Nami v1.9.2

Choose a tag to compare

@igect igect released this 30 Oct 07:33

Fixed

  • Announcement Display & Dismissal Hygiene:
    • Automatically marks fetched and cached announcements as seen/dismissed upon display so they appear only once and never repeat indefinitely across subsequent launches.
    • Set version ceilings (maxVersion) on legacy release announcements so past version banners do not persist into new releases.
    • Stripped erroneous terminal underline formatting from informational message bodies; links are now neatly isolated to dedicated clickable [Details] anchors.
  • Hermetic Test Suite & User Database Protection:
    • Enforced test isolation in scripts/run-tests.js with :memory: database and unique ephemeral cache files, guaranteeing test runners never write test dummy accounts into the user's live database (~/.open-nami/nami.db).
    • Added test-mode detection in MediaLedger constructor ensuring in-memory fallbacks when running unit or integration test suites without explicit database paths.
  • History View Access & Tracked Registry Management:
    • Added dedicated ^h history shortcut to main view footer alongside ^w watcher, ^b batch, and ^s settings.
    • Added bulk untrack capability in interactive PullView (d on selected accounts) and clear-all action (c).
    • Added open-nami untrack --all CLI flag for one-step tracking registry resets while strictly preserving downloaded files on disk.

Open Nami v1.9.1

Choose a tag to compare

@igect igect released this 30 Oct 07:02

What's Changed in Open Nami v1.9.1

• Incremental Profile Pull & History Synchronization (open-nami pull): "git pull" for social media profiles. Automatically tracks downloaded creators in a persistent SQLite registry and halts pagination after 5 consecutive previously-downloaded posts while bypassing pinned posts.
• Carousel Slide Collapsing: Groups carousel slides by post id so multi-image posts never trigger premature early exits. Added --abort 5 parity to gallery-dl subprocess fallbacks.
• Paced Orchestration Engine: Sequential multi-profile runner with 2–3s jittered delays to safeguard accounts against anti-bot flags, missing directory recovery, and per-profile error isolation.
• CLI Subcommands & Shell Autocompletion: Added open-nami pull [username], open-nami list, open-nami untrack <username>, and --no-track with autocompletions across Bash, Zsh, Fish, and PowerShell.
• Interactive TUI PullView: New interactive synchronization screen with multi-account selection (Space to toggle, a to toggle-all), safe in-place untracking (d), live spinners, and a [p] Pull Updates home screen shortcut.

Full Changelog: v1.8.0...v1.9.1

Open Nami v1.9.0

Choose a tag to compare

@igect igect released this 30 Oct 06:55

What's Changed in Open Nami v1.9.0

• Incremental Profile Pull & History Synchronization (open-nami pull): "git pull" for social media profiles. Automatically tracks downloaded creators in a persistent SQLite registry and halts pagination after 5 consecutive previously-downloaded posts while bypassing pinned posts.
• Carousel Slide Collapsing: Groups carousel slides by post id so multi-image posts never trigger premature early exits. Added --abort 5 parity to gallery-dl subprocess fallbacks.
• Paced Orchestration Engine: Sequential multi-profile runner with 2–3s jittered delays to safeguard accounts against anti-bot flags, missing directory recovery, and per-profile error isolation.
• CLI Subcommands & Shell Autocompletion: Added open-nami pull [username], open-nami list, open-nami untrack <username>, and --no-track with autocompletions across Bash, Zsh, Fish, and PowerShell.
• Interactive TUI PullView: New interactive synchronization screen with multi-account selection (Space to toggle, a to toggle-all), safe in-place untracking (d), live spinners, and a [p] Pull Updates home screen shortcut.

Full Changelog: v1.8.0...v1.9.0

Open Nami v1.8.0

Choose a tag to compare

@igect igect released this 30 Oct 05:33

What's Changed in Open Nami v1.8.0

  • Remote Announcement Broadcast Channel: Zero-latency developer broadcast channel via GitHub (announcements.json) with professional text badges ([INFO], [UPDATE], [ALERT]), semantic version bounds, and terminal hyperlink support.
  • Non-Invasive Daily Update & Active Telemetry: 24-hour cached update check against official npm registry with natural daily active user pings.
  • Zero-Bloat Minimalist Installer: Modernized one-liner install.sh using authentic 3-row Unicode block logo, Unix checkmarks, and piped /dev/tty sudo support.
  • Directory Isolation Guard: Pre-abort checks in dispatcher preventing unwanted directory creation on cancelled downloads, and redirected test runner paths.
  • Codebase Anti-Slop Hygiene: Complete audit stripping redundant code comments, empty headings, and marketing buzzwords.

Full Changelog: v1.7.0...v1.8.0

Open Nami v1.7.0

Choose a tag to compare

@igect igect released this 30 Oct 03:38

What's Changed

Linux Flatpak Browser Discovery & Zen Browser Support

  • Multi-Path & Flatpak Path Scanning:
    • Replaced single static paths with candidate directory arrays across Linux, macOS, and Windows.
    • Automatically detects Flatpak browser installations: Google Chrome (com.google.Chrome), Zen Browser (app.zen_browser.zen), LibreWolf (io.gitlab.librewolf-community), and Chromium (org.chromium.Chromium).
    • Added modern Fedora XDG profile path discovery for Firefox (~/.config/mozilla/firefox).
  • Zen Browser First-Class Support:
    • Registered Zen Browser across configurations, Linux desktop file handler (app.zen_browser.zen.desktop), Windows ProgId, and macOS bundle IDs.
    • Automatically formats Gecko profile parameters as firefox:<profileDir> for engine compatibility.

Lock-Free Live Gecko Cookie Extraction & Dispatcher Injection

  • Lock-Free Live Gecko Session Extraction:
    • Implemented extractGeckoCookiesToNetscape(): ephemerally copies SQLite databases and WAL files to os.tmpdir() to safely read active session cookies without running-browser database locks.
    • Serializes active cookies into standard Netscape tab-delimited syntax.
  • Automated Native Extractor Cookie Forwarding:
    • Updated dispatcher.ts to export ephemeral 0o600 Netscape session cookie files prior to running native extractors when no physical cookie file exists.
    • Ensures both Tier 1 native extractors and Tier 2 fallbacks receive authenticated session cookies.
    • Updated dispatcher circuit breaker to allow seamless fallback on authenticated sessions.

Verification & Quality

  • 276/276 unit tests passing (100%).
  • 0 TypeScript compiler diagnostics (tsc --noEmit).
  • Production ESM bundle verified (dist/cli.js, 322 KB).

Open Nami v1.6.1

Choose a tag to compare

@igect igect released this 24 Oct 22:02
v1.6.1
adfc8f5

What's Changed

Clean UI Menu Indicators

  • Removed Redundant Vertical Accent Bar:
    • Removed extraneous vertical bar (▎) in ChoiceIndicator across Platform selection and Media Picking views.
    • Aligned options cleanly with dynamic cursor pointers (❯ on focus, space padding on idle), eliminating visual collisions with panel borders.

Verification & Quality

  • 271/271 unit tests passing across all suites.
  • 0 TypeScript compiler diagnostics.

Open Nami v1.6.0

Choose a tag to compare

@igect igect released this 24 Oct 21:46
v1.6.0
feb6db1

What's Changed

Automated System Default Browser & Cookie Bridge

  • Cross-Platform System Default Browser Detection:
    • Automatically identifies the user's default browser across Windows (Registry UserChoice ProgId & shell association), macOS (LaunchServices LSHandlers), and Linux (XDG settings).
    • Out of the box support for custom Chromium forks like Helium (imput\Helium), Google Chrome, Microsoft Edge, Brave, Mozilla Firefox, Opera, and Vivaldi.
  • Automated Engine Cookie Resolution:
    • Automatically maps detected system default browsers to appropriate --cookies-from-browser engine arguments.
    • Custom user data directories for non-standard Chromium installs (such as Helium) are dynamically located and targeted (chrome:), enabling zero-configuration live cookie extraction from Instagram, TikTok, Facebook, and X.
  • Default [AUTO] in Settings TUI:
    • Browser Cookie Bridge in SettingsView (^s) now defaults to [AUTO].
    • Dynamically displays the detected system default browser and profile status in the Nordic settings frame.
    • Zero UI layout displacement, full keyboard navigation preserved.

Verification & Quality

  • 271/271 unit tests passing across all suites.
  • 0 TypeScript compiler diagnostics.