Skip to content

Open Nami v1.9.4

Choose a tag to compare

@igect igect released this 30 Oct 10:14
· 2 commits to main since this release

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.