Skip to content

Latest commit

 

History

History
132 lines (87 loc) · 5.75 KB

File metadata and controls

132 lines (87 loc) · 5.75 KB

Universal Chat Extractor — Show Me The Receipts

The README makes claims. This file backs them up with evidence from real code.

Core Claims & Evidence

Claim 1: "Plugin-Based Parser Architecture: WhatsApp, Telegram, Discord, Signal, iMessage, Facebook, Slack"

From README (lines 44-56):

=== Target Platforms

  • WhatsApp (.txt export)

  • Telegram (JSON export)

  • Discord (JSON export)

  • Signal (backup format)

  • iMessage (SQLite database)

  • Facebook Messenger (JSON export)

  • Slack (JSON export)

Evidence: /var/mnt/eclipse/repos/universal-chat-extractor/src/parsers/ directory structure (stub) designed to contain 7 platform-specific parsers. /var/mnt/eclipse/repos/universal-chat-extractor/src/parser_registry.res (ReScript) defines the plugin registry interface for dynamic parser loading.

Caveat: Repository is specification-stage infrastructure only. Core parser implementations (WhatsApp, Telegram, Discord, etc.) have NOT been uploaded yet. Workflows and language policy are complete.

Claim 2: "Local-Only Processing: No Cloud Uploads, No Telemetry"

From README (lines 116-122):

== Privacy & Security

  • Local-only processing - no cloud uploads, no telemetry

  • Secure memory handling - sensitive data cleared after use

  • PII detection - optional anonymization mode

  • Encrypted exports - password-protected output files

  • No MD5/SHA1 - SHA256+ for all cryptographic operations

Evidence: Architecture design at /var/mnt/eclipse/repos/universal-chat-extractor/docs/ARCHITECTURE.md specifies parser input from local files only, export to local filesystem. Crypto policy at /var/mnt/eclipse/repos/universal-chat-extractor/.claude/CLAUDE.md enforces SHA256+ (no MD5/SHA1).

Caveat: Privacy guarantees depend on correct implementation of clearance code. No formal proofs of memory safety or zero-residue data removal—rely on Rust’s safety guarantees + explicit overwrite calls.

Claim 3: "Export to 5 Formats: JSON, CSV, HTML, Markdown, PDF"

From README (lines 58-65):

=== Export Formats

  • JSON (structured)

  • CSV (tabular)

  • HTML (viewable)

  • Markdown

  • PDF

Evidence: /var/mnt/eclipse/repos/universal-chat-extractor/src/exporters/ (stub) designed with 5 exporter modules. Format negotiation in /var/mnt/eclipse/repos/universal-chat-extractor/src/export_engine.res (ReScript) routes to format-specific codegen.

Caveat: Exporters are not yet implemented. Design pattern established; no tested round-trip export exists.

Dogfooded Across The Account

Uses hyperpolymath privacy-first stack (ReScript + Deno + local processing). Same pattern across: - social-media-tools — Social media integrations (privacy-focused) - formatrix — Format conversion (local-only) - har-rpa-integration — HAR extraction (privacy-respecting)

All share: Deno runtime, ReScript application logic, local filesystem operations only.

File Map

Path Contents & Purpose

src/parsers/

7 platform-specific parser modules (stubs): whatsapp.res, telegram.res, discord.res, signal.res, imessage.res, messenger.res, slack.res. Each parses native format to unified message schema.

src/parser_registry.res

Dynamic parser registry: plugin interface, format detection, parser lookup by platform

src/schema.res

Unified message schema in ReScript: Message type with fields (timestamp, sender, content, attachments, metadata), shared across all parsers

src/exporters/

5 format exporter modules (stubs): json.res, csv.res, html.res, markdown.res, pdf.res. Each converts unified schema to target format.

src/export_engine.res

Export orchestration: format selection, exporter dispatch, output file handling

src/pii_detection.res

PII detection module (stub): email pattern matching, phone number detection, optional anonymization (placeholder functions)

src/crypto_utils.res

Cryptography utilities: SHA256 hashing, password-protected file encryption (draft, no implementation yet)

src/main.res

CLI entry point (stub): file argument parsing, format detection, parser invocation, exporter selection

docs/ARCHITECTURE.md

System architecture: parser plugin interface, unified schema, exporter framework, privacy guarantees

docs/PRIVACY.md

Privacy model: local-only processing, memory clearance, PII handling, export encryption

.github/workflows/mirror.yml

Multi-forge mirroring (GitHub, GitLab, Codeberg, Bitbucket)

.claude/CLAUDE.md

Language policy: ReScript + Deno, no TypeScript, no Node.js, SHA256+ crypto

Status

Honest Assessment: Specification-stage infrastructure. Build system, language policy, CI/CD, and design documentation are complete and tested. Core implementation (parsers, exporters) is pending upload.

What’s Ready: - Multi-forge mirroring infrastructure - Language policy enforcement (ReScript + Deno) - Architectural design documents - Test harness scaffolding

What’s Missing: - Parser implementations (all 7 platforms) - Exporter implementations (all 5 formats) - PII detection logic - Cryptography integration - CLI implementation

Questions?

Open an issue or reach out at j.d.a.jewell@open.ac.uk — happy to explain the parser architecture, privacy model, or export format strategy.

License

This project is licensed under the Mozilla Public License, v. 2.0. See the LICENSE file for details.

SPDX-License-Identifier: CC-BY-SA-4.0