Skip to content

Releases: Dheovani/omnifile

Release list

Omnifile v0.1.0

Choose a tag to compare

@Dheovani Dheovani released this 07 Sep 16:18
f94e4bd

[0.1.0] - 2026-09-07

Initial public release of Omnifile.

Added

  • Local-first document viewing and format-aware editing for Visual Studio Code, with all document handling kept on the machine.
  • PDF editor support with packaged PDF.js, custom-document preview, navigation, zoom, fit controls, and search.
  • Activity Bar document navigator with page list and thumbnail support.
  • Local text preview support for structured and plain-text formats such as JSON, CSV/TSV, Markdown, XML, YAML, and log files.
  • Editable Raw mode backed by VS Code's native text-document model.
  • Safe Preview mode for Markdown, tables, JSON trees, JSON Lines, and syntax-highlighted logs.
  • Privacy-safe runtime diagnostics and a support report without leaking document contents.
  • Secure webview implementation using CSP, nonce-based scripts, and strict message validation.
  • Architecture documentation and renderer/session design records for future format expansion.
  • Added optional readonly previews for PNG, JPEG/JFIF, GIF, WebP, BMP, AVIF, and ICO images using Chromium's local native decoders.
  • Added bounded AVIF container inspection and ICO directory validation, including variant-count metadata without eagerly decoding every embedded icon.
  • Added image zoom, fit, panning, rotation, transparency-background, metadata, and single-section navigation controls.
  • Added bounded image-header validation, generated fixtures, and Extension Host decoding coverage for the initial codecs.
  • Added GIF/WebP animation detection and bounded Pause/Play snapshots without eagerly exposing animation frames as document sections.
  • Added passive SVG previews with full-file validation, vector scaling, local-fragment references, and no new runtime dependency.
  • Added reduced aspect ratios and conservative transparency status to image metadata.
  • Added format-appropriate bit-depth metadata without conflating channel depth, sample depth, color resolution, and bits per pixel.
  • Added exact GIF/WebP frame counts when the complete animation fits within the bounded inspection window, with an explicit unknown state otherwise.
  • Added dependency-free PBM, PGM, PPM, and PNM previews covering ASCII and binary P1-P6 Netpbm files, including 16-bit samples.
  • Added a bounded normalized RGBA transport and Canvas rendering path for custom image decoders.
  • Added dependency-free QOI decoding for RGB/RGBA streams and all standard QOI pixel operations.
  • Added dependency-free TGA decoding for uncompressed or RLE true-color and grayscale images, including origin normalization and alpha.
  • Added a developer command that regenerates ignored local image fixtures from the deterministic CI fixture definitions.
  • Added dependency-free DDS previews for masked RGB/RGBA and BC1/DXT1, BC2/DXT3, or BC3/DXT5 compressed 2D textures.
  • Added bounded single-page and multi-page TIFF/TIF previews with lazy page decoding, structural Activity Bar navigation, and on-demand thumbnails.
  • Added JP2 and raw J2K previews by reusing the packaged OpenJPEG WASM decoder, including bounded header validation and declared color-space metadata.
  • Added a local custom-image benchmark command for cold/warm decode timing and memory observation.
  • Added bounded JPEG XL previews using a selectively packaged libjxl-derived WASM decoder, with pre-decode dimension validation and serialized decoder access.
  • Added HEIF and HEIC previews for HEVC-branded still images through a selectively packaged libheif runtime, with bounded container validation and disposable worker isolation.
  • Added an optional readonly audio preview for PCM/float WAV and MPEG Audio Layer III files with native accessible playback controls.
  • Added bounded WAV/MP3 structure inspection, codec metadata, deterministic fixtures, and Extension Host playback-loading coverage.
  • Added Ogg Vorbis previews with first-page CRC, stream-structure, codec-header, and real Chromium playback validation.
  • Added native FLAC previews with bounded STREAMINFO validation, exact duration metadata, and Extension Host playback coverage.
  • Added bounded ID3v2 and FLAC title, artist, and album display without delaying playback for artwork or chapters.
  • Extended bounded title, artist, and album extraction to WAV LIST/INFO and CRC-validated Ogg Vorbis comment pages.
  • Verified that valid ADTS/AAC-LC still fails native playback in the VS Code 1.134 baseline and kept .aac unregistered rather than exposing a broken editor.
  • Added an experimental readonly WebM editor foundation with bounded EBML inspection for VP8/VP9 tracks, generic track navigation, native controls, and explicit runtime-decoder failure reporting.
  • Added bounded WebCodecs VP8/VP9 playback with accessible Play/Pause and seek controls, range-indexed WebM clusters loaded on demand, cross-cluster navigation, and real Extension Host coverage beyond the former whole-file limit.
  • Added bounded local WebM Opus decoding, AudioContext-based A/V scheduling, mute control, sequential decoder continuity, trailing audio-only cluster support, and a non-blocking video fallback when browser audio policy keeps the context suspended.
  • Added deterministic WebM Vorbis demuxing and real Extension Host decode coverage, including compatibility with the Xiph-laced initialization format consumed by the supported Electron runtime.
  • Added configurable WebCodecs decoder preferences (auto, hardware, or software), real decode fallback between acceleration modes, and diagnostics for the accepted mode.
  • Added bounded adaptive video timeline navigation with bidirectional synchronization between playback time and the Activity Bar.
  • Reworked WebCodecs fallback playback controls into a compact, accessible overlay with continuous volume, full-screen support, and keyboard shortcuts that follow VS Code media-control conventions.
  • Added on-demand video timeline thumbnails for native and WebCodecs playback without seeking the active player or decoding unrelated clusters.
  • Added bounded WebM chapter navigation with normalized labels, bidirectional synchronization, and adaptive timeline fallback.
  • Added experimental MP4/M4V previews for inspected AVC/H.264 with optional AAC, using bounded ISO Base Media metadata scans that skip media payloads, preserve the existing navigation and on-demand thumbnail model, and validate generated H.264/AAC playback in the Windows Extension Host.
  • Added experimental MOV previews for QuickTime-branded AVC/H.264 with optional AAC, including bounded version 0/1 audio sample entries, nested wave descriptors, and real native loading coverage.
  • Added experimental Matroska/MKV previews for a deliberately restricted VP8/VP9 plus optional Opus/Vorbis subset, with exact document-type inspection, deterministic WebCodecs fallback, full Segment-level Attachment rejection, and real generated-fixture coverage.
  • Added bounded one-cluster read-ahead to WebM and Matroska fallback playback so the next encoded segment can arrive before the current segment ends without retaining the complete media file.
  • Added local same-name WebVTT and SubRip sidecar subtitles with bounded parsing, plain-text rendering, and synchronized native and WebCodecs playback.
  • Added a privacy-safe Extension Host video benchmark that measures metadata, first-frame, seek, and muted playback readiness for explicit local WebM, MKV, MP4, M4V, or MOV resources.
  • Added an optional full-playback benchmark mode that exercises every segment of a representative local video through completion.
  • Added inspected AV1 playback for WebM and the restricted Matroska subset, including validated av1C profile metadata, bounded range-based WebCodecs decoding, seeking, playback completion, and on-demand thumbnails.
  • Unified native and WebCodecs video playback behind one VS Code-themed accessible control bar, including shared seek, mute, volume, full-screen, keyboard, and subtitle behavior.
  • Added Windows, Linux/Xvfb, and macOS Extension Host CI jobs so media-runtime compatibility is evaluated independently on each target platform.
  • Added enforceable VSIX download, installed-size, entry-count, and single-entry budgets with checks for required runtime licenses and development-only files.
  • Added weekly npm and GitHub Actions dependency updates plus high-severity pull-request dependency review.
  • Validated video playback with audible Opus/Vorbis fallback and A/V synchronization checks, including H.264/AAC MP4, M4V, and MOV across the Windows, Linux/Xvfb, and macOS Extension Host matrix.

Changed

  • Stabilized the preview-session architecture around the renderer registry and format-specific abstractions.
  • Refined the PDF runtime path for local worker bootstrapping, page lifecycle management, and navigator synchronization.
  • Added bounded rendering and thumbnail-caching strategies to keep memory usage predictable.
  • Reduced the default public scope to the formats validated in the 0.1 milestone while keeping the design ready for future renderers.

Security

  • Package a source-built libheif 1.23.3 runtime with verified provenance, version checks, and worker isolation, exercised by real HEVC pixel decoding rather than local fixture dependencies.
  • Excluded local environment files from VSIX packages and enforced this in package validation.
  • Hardened webview handling and message validation to reduce the risk of unsafe document-driven execution.
  • Kept document processing local to the system and eliminated runtime CDN loading for the bundled PDF viewer.
  • Documented private vulnerability reporting and publication expectations in the security policy.
  • Updated the transitive fast-uri and qs development-tool dependencies to versions outside their reported vulnerable ranges.
  • Validate image signatures, dimensions, pixel counts, and file sizes before exposing a local image URI to the fixed preview webview.
  • Reject active SVG elements, event attributes, DTD/entities, proc...
Read more