No description
Find a file
Robin L. M. Cheung, MBA 015b83d62f
Some checks failed
Build EnZIM-Stitch (Linux + Android + PWA) / build-linux-android-pwa (push) Has been cancelled
Build EnZIM-Stitch (Windows) / build-windows (push) Has been cancelled
Build EnZIM-Stitch (Linux + Android + PWA) / release (push) Has been cancelled
Refreshes project index and logs AI planning
Updates the project's human- and machine-readable index files to reflect their latest generation date. This follows an extensive AI-assisted planning phase, documented in new conversational logs.

These logs detail the strategic architectural pivot from Flutter to a Tauri 2-based Rust/React stack. They outline comprehensive decisions on LLM backend strategies, shared foundational components, and a multi-team competitive build roadmap.
2026-04-12 01:05:36 -04:00
.forgejo/workflows feat: initial EnZIM-Stitch scaffold 2026-04-04 03:21:39 -04:00
android feat: initial EnZIM-Stitch scaffold 2026-04-04 03:21:39 -04:00
assets feat: initial EnZIM-Stitch scaffold 2026-04-04 03:21:39 -04:00
lib feat: initial EnZIM-Stitch scaffold 2026-04-04 03:21:39 -04:00
linux feat: initial EnZIM-Stitch scaffold 2026-04-04 03:21:39 -04:00
test feat: initial EnZIM-Stitch scaffold 2026-04-04 03:21:39 -04:00
web feat: initial EnZIM-Stitch scaffold 2026-04-04 03:21:39 -04:00
windows feat: initial EnZIM-Stitch scaffold 2026-04-04 03:21:39 -04:00
.gitignore feat: initial EnZIM-Stitch scaffold 2026-04-04 03:21:39 -04:00
.metadata feat: initial EnZIM-Stitch scaffold 2026-04-04 03:21:39 -04:00
2026-04-07-104815-command-messagescindex-repocommand-message.txt Refreshes project index and logs AI planning 2026-04-12 01:05:36 -04:00
2026-04-11-234732-nonrandom-plans-and-the-Tauri-swerve.txt Refreshes project index and logs AI planning 2026-04-12 01:05:36 -04:00
analysis_options.yaml feat: initial EnZIM-Stitch scaffold 2026-04-04 03:21:39 -04:00
PROJECT_INDEX.json Refreshes project index and logs AI planning 2026-04-12 01:05:36 -04:00
PROJECT_INDEX.md Refreshes project index and logs AI planning 2026-04-12 01:05:36 -04:00
pubspec.lock feat: initial EnZIM-Stitch scaffold 2026-04-04 03:21:39 -04:00
pubspec.yaml feat: initial EnZIM-Stitch scaffold 2026-04-04 03:21:39 -04:00
README.md feat: initial EnZIM-Stitch scaffold 2026-04-04 03:21:39 -04:00

EnZIM-Stitch

ZIM Reader · Annotator · Chat with ZIM · ZIM Surgery

Sovereign Instrumentation design system · Flutter 3.41 · Android · Linux · Windows · PWA


Overview

EnZIM-Stitch is a multi-platform ZIM archive reader and annotator that solves the "too large to store" problem through three complementary access modes:

Mode How it works
Chunked Local Seek-based on-demand cluster reading. Never buffers >1 cluster.
Virtual ZIM HTTP Range requests against any ZIM URL. Never downloads the full file. Index cached in SQLite.
ZIM Surgery Selective cluster extraction → valid smaller ZIM. Users on 4 GB devices can get AF of Wikipedia.

Features

  • Navigator — Archive library with stats and one-tap open
  • Reader — WebView article renderer with Sovereign dark theme injection
  • Annotations — Highlight, note, bookmark, tag — stored in SQLite
  • Chat with ZIM — Pluggable LLM drawer. Hosted API (OpenAI/Groq/OpenRouter) now; Ollama (local desktop) and on-device Gemma4 via LiteRT-LM as swap-ins
  • ZIM Surgery — Letter-range, keyword, or fixed-size extraction with progress telemetry
  • Export — Markdown, HTML, JSON + system share sheet

Getting Started

flutter pub get
flutter run -d linux        # Desktop
flutter run -d android      # Android device/emulator
flutter build web           # PWA

LLM Setup (Settings screen)

  1. Open Settings → choose provider type
  2. Paste API key (stored in flutter_secure_storage, never on disk in plain text)
  3. Tap Save & Test — green dot = connected

Architecture

lib/
  main.dart                   # Entry: ProviderScope → EnZimStitchApp
  app.dart                    # GoRouter config
  theme/sovereign_theme.dart  # Sovereign Instrumentation design tokens
  models/                     # ZIM types, annotation models
  services/
    zim/                      # Header parser, cluster decompressor, reader, virtual reader, surgeon, SQLite index
    llm/                      # LLMProvider abstract + OpenAI/Ollama implementations
    annotation/               # AnnotationService (SQLite)
    export/                   # MD/HTML/JSON export + share
  stores/                     # Riverpod StateNotifier providers
  screens/                    # Navigator, Reader, Surgery, Search, Settings
  widgets/                    # ZimCard, AddZimDialog, ChatDrawer, AnnotationPanel, ExportModal

CI/CD

Forgejo self-hosted runners:

Workflow Runner Outputs
build-linux-android.yml [self-hosted, linux] Linux bundle, APK, AAB, PWA
build-windows.yml [self-hosted, windows] Windows zip

Build number: floor(epoch_seconds / 60) % 100000 — monotone, no server state needed.


Copyright © 2026 Robin L. M. Cheung, MBA. All rights reserved.