Skip to content

ADR-0022 + SPEC-0015: Telegram source via delegated exporter (tdl)#207

Merged
joestump merged 2 commits into
mainfrom
feature-telegram-adr-spec
Jul 12, 2026
Merged

ADR-0022 + SPEC-0015: Telegram source via delegated exporter (tdl)#207
joestump merged 2 commits into
mainfrom
feature-telegram-adr-spec

Conversation

@joestump

@joestump joestump commented Jul 7, 2026

Copy link
Copy Markdown
Owner

Adds the decision record and paired spec/design for Telegram as the fourth source.

The decision (ADR-0022): parse Telegram Desktop's first-party JSON export (Settings → Advanced → Export Telegram data) rather than bundling an MTProto exporter — zero credential custody (SPEC-0013 invariant), zero new bundled binaries (ADR-0020 signing scope untouched), guided acquisition per the WhatsApp precedent (ADR-0016). Trade-offs owned honestly: manual export step, full re-export per refresh (import stays hash-incremental), no secret chats.

The spec (SPEC-0015): source registration, streaming multi-GB-safe parser (entity flattening, service events, reactions, traversal-safe media), detect → guide → adopt onboarding with the default-export-location probe, no-paths-over-HTTP security posture, doctor/CLI coverage, enum-driven device-sync participation. Security + accessibility sections per plugin conventions.

Part of #190-era program; implementation epic follows.

🤖 Posted on behalf of @joestump by Claude.

…p's native JSON export

Acquisition via the first-party in-app export (no credentials, no bundled
MTProto client, no new signing surface); import rides the existing pipeline
(source enum, hash-keyed idempotent ingest, guided Providers onboarding,
enum-driven device sync). Streaming parser mandated for multi-GB exports.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
…rowse does not write exporters

Owner review rejected the earlier direct-parse draft as an idiom violation.
The exporter-delegation invariant is now stated first-class: extraction is
always a dedicated upstream tool's job (tdl chosen: active, JSON output,
incremental time-window exports, desktop-session import; t-export and
Telethon dumpers evaluated and documented). Spec gains exporter-delegation,
authorization, and invocation/staging requirements; parser now targets the
pinned exporter's JSON output.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
@joestump joestump changed the title ADR-0022 + SPEC-0015: Telegram source via Telegram Desktop native export ADR-0022 + SPEC-0015: Telegram source via delegated exporter (tdl) Jul 7, 2026
@joestump joestump merged commit 867212f into main Jul 12, 2026
2 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant