# Feature and format matrix — 0.2.0 “Implemented” below means implementation source is present. Android runtime features remain unverified until a real SDK build and device run. Core/JVM behaviour has the executed tests recorded in `VALIDATION.md`. | Area / format | Implemented source behaviour | Not implemented / important limits | |---|---|---| | Android file opening | System picker, VIEW intent, single-file SEND, read grants, bounded snapshots | No multi-file SEND, raw file paths, virtual-file conversion or cloud API | | Native file browser | Saved folders, nested navigation, breadcrumbs/Up, metadata, search/sort/dotfiles, opt-in provider thumbnails | Scoped folders only; no root/all-files access, global index, live watch, file mutation or grid mode | | Files-app registration | APP_FILES, content-directory VIEW, separate GET_CONTENT picker | Does not replace system OPEN_DOCUMENT / OPEN_DOCUMENT_TREE or guarantee a device default-files setting | | File picker | MIME constraints, single/multiple selection, review/confirmation, read-only copied URI results, LOCAL_ONLY system delegation | No directory results, in-place editing, permanent URI promise, cloud-native conversion or original tree grants | | External opening | Read-only copy and chooser excluding this viewer | 64 MiB limit; edits by recipients cannot update the original | | Recent files | Up to 20 URI/name entries; permission retention when granted; remove/clear | Not copies retained forever; temporary attachment access can expire | | PDF | Isolated Android renderer, one page at a time, previous/next/jump, pinch zoom | No text search/selection, continuous page scrolling, OCR, forms, annotations, passwords or printing | | JPEG/PNG/WebP/GIF/BMP | Platform bitmap decoding, bounds checks/downsampling, zoom | First frame only; no EXIF orientation, animated playback, image editing or HEIC guarantee | | Plain text and source | UTF-8 / BOM-tagged UTF-16, selectable text, literal search | No syntax highlighting, arbitrary legacy encodings, hex editor or giant-file streaming | | Markdown | Heading/list/code-block emphasis; original inline markup retained | Not CommonMark-complete; no rich inline rendering, HTML execution or remote resources | | CSV/TSV | Quoted fields, escaped quotes, multiline fields, comma/semicolon/tab detection, table view | Literal values only; no formulas, editing or schema inference | | DOCX | Body paragraphs, basic heading/list recognition, flattened table rows | Not page layout; images, fields/revisions, comments, drawings, headers/footers and advanced structures incomplete | | XLSX | Named sheets, relationships, sparse cell positions, shared/inline strings, stored values, formula strings | No calculation; cached values may be stale; date serials may show raw; no number styles/charts/merged cells/filter fidelity | | PPTX | Presentation relationship order, slide sections, text paragraphs | Shape/XML text order not visual reading order; no graphical slides, charts, animations, speaker notes | | ODT | Basic paragraphs/headings and mixed text | No layout fidelity, embedded graphics, revision semantics or full list/table formatting | | ODS | Named sheets, stored values, bounded row/cell repeats, sparse blank-padding skip | No calculations/styles/charts; hidden content semantics incomplete | | ODP | Named slide sections, text paragraphs | No full slide rendering or object-placement fidelity | | ZIP | Entry/path/size listing and filename search; no extraction | No TAR/7z/RAR, encrypted ZIP, nested opening, selective extraction or compression | | HTML/SVG/XML/JSON/YAML/etc. | Inert source text when recognized | No WebView, embedded scripting, SVG rasterization or structural tree editor | | ICS/VCF | Raw text by extension | No calendar/contact import or structured card UI | | Legacy DOC/XLS/PPT/RTF | Explicit unsupported message | No legacy rendering; no LibreOffice native engine | | Macro-enabled Office | Known macro extensions and VBA packages rejected | Never execute macros; no automatic conversion | | Encrypted Office | Unsupported package/binary error | No password flow or decryption | | Share/save | Share an original snapshot, save a copy, export labelled preview text | Never edit original; no general conversion or Office-to-PDF export | | Search | Supported extracted blocks/rows, literal case-insensitive matching, bounded hits | No PDF/OCR search; counts refer to matching blocks/rows, not all word occurrences | | iOS | Common Kotlin core and opt-in framework targets | No app, ZIP adapter, bookmark implementation, native renderer or tested Apple build | Browser limits: 24 saved folders, 64 visited levels, 5,000 listing rows, 16 selected files when allowed, 64 MiB per copied file, 128 MiB per selection, 256 MiB picker-copy cache, and 4 MiB thumbnail cache. These are additional to the preview/parser limits below. See `BROWSER.md`. ## Initial policy ceilings 64 MiB imported file; 4 MiB plain-text bytes / expanded preview characters; 8 MiB per inflated ZIP part; 32 MiB cumulative inflation; compression ratio up to 300:1; 4,096 archive entries; XML depth 96; 100,000 XML nodes; 64 attributes per element; 20,000 blocks; 32,768 characters per block/cell; 2,000 rows per displayed table; 128 columns; 50,000 total table cells; 200 sections; 1,000 search result blocks/rows. Native PDF output is limited to 3 million pixels, width 2,048 and height 4,096. Images over 100 million declared input pixels are rejected and decoded previews are downsampled. These are conservative ceilings, not performance guarantees. A file below a byte ceiling can still be rejected for structure, content, missing parts, encoding or a secondary limit. ZIP indexes do not inflate file entries; expansion ceilings apply when a part is actually read. Very compressible legitimate XML can hit the same ratio limit as malicious content and be refused. ## Fidelity contract The app does not silently present a reading preview as the complete original. A visible banner identifies Office previews, and a tap shows detailed caveats. Text exports retain notices. Original-file sharing sends the untouched snapshot, not converted/extracted text. Documents requiring exact placement, complete revision history, financial recalculation, or legal/ scientific completeness must be checked in an appropriate full-fidelity application. This release is intended for opening and inspecting routine files, not certifying their complete contents.