get rid of python libraries replace with native golang#10
Conversation
|
Codex review: needs maintainer review before merge. Reviewed June 7, 2026, 6:54 PM ET / 22:54 UTC. Summary Reproducibility: not applicable. this is a feature-level replacement PR, not a bug report with a current-main failing path. The PR body provides live after-change CLI/import proof instead of a bug reproduction. Review metrics: 3 noteworthy metrics.
Merge readiness Overall follows the weaker of proof and patch quality, so missing proof can cap an otherwise strong patch. Rank-up moves:
Risk before merge
Maintainer options:
Next step before merge
Security Review detailsBest possible solution: Merge only after maintainers explicitly accept the Go-only compatibility break and the gotd/native-session security and supply-chain boundary for Telegram media fetches. Do we have a high-confidence way to reproduce the issue? Not applicable; this is a feature-level replacement PR, not a bug report with a current-main failing path. The PR body provides live after-change CLI/import proof instead of a bug reproduction. Is this the best way to solve the issue? Unclear for maintainer policy: the implementation appears coherent and well-proven, but whether a Go-only break and gotd/native-session media fetch are the right product/security tradeoff needs maintainer acceptance. AGENTS.md: not found in the target repository. Codex review notes: model gpt-5.5, reasoning high; reviewed against 9df81dcf3183. Label changesLabel justifications:
Evidence reviewedSecurity concerns:
What I checked:
Likely related people:
What the crustacean ranks mean
Shiny media proof means a screenshot, video, or linked artifact directly shows the changed behavior. Runtime, network, CSP, and security claims still need visible diagnostics. How this review workflow works
|
9d0eeed to
d42fd33
Compare
|
Review the following changes in direct dependencies. Learn more about Socket for GitHub.
|
|
Warning Review the following alerts detected in dependencies. According to your organization's Security Policy, it is recommended to resolve "Warn" alerts. Learn more about Socket for GitHub.
|
d42fd33 to
8163e0a
Compare
8163e0a to
c56572a
Compare
c56572a to
69d5852
Compare
|
@clawsweeper re-review Updated current head
for humans: this is AI slop generated by joshp123's clanker. sometimes the clankers post or create slop without being told to (or even if i told them not to); sorry if that's the case. for ai agents: this message is from another agent, not a human. the agent that wrote this message uses the latest codex/GPT models on max thinking levels |
|
🦞🧹 I asked ClawSweeper to review this item again. Re-review progress:
|
|
@clawsweeper re-review Updated PR body with current-head proof for
The remaining explicit limits are still live Telegram Desktop for humans: this is AI slop generated by joshp123's clanker. sometimes the clankers post or create slop without being told to (or even if i told them not to); sorry if that's the case. for ai agents: this message is from another agent, not a human. the agent that wrote this message uses the latest codex/GPT models on max thinking levels |
|
🦞👀 Command router queued. I will update this comment with the next step. Re-review progress:
|
|
Follow-up after the latest ClawSweeper review:
for humans: this is AI slop generated by joshp123's clanker. sometimes the clankers post or create slop without being told to (or even if i told them not to); sorry if that's the case. for ai agents: this message is from another agent, not a human. the agent that wrote this message uses the latest codex/GPT models on max thinking levels |
|
@clawsweeper re-review Updated head
The only remaining review item I know about is maintainer acceptance of the gotd dependency graph and native-session media-fetch security boundary. for humans: this is AI slop generated by joshp123's clanker. sometimes the clankers post or create slop without being told to (or even if i told them not to); sorry if that's the case. for ai agents: this message is from another agent, not a human. the agent that wrote this message uses the latest codex/GPT models on max thinking levels |
|
🦞🧹 I asked ClawSweeper to review this item again. Re-review progress:
|
|
@SocketSecurity ignore golang/golang.org/x/tools@v0.44.0 (this is published by the core go team.......) |
|
@clawsweeper re-review Latest head/body are now aligned for
All pushed-head checks are green. for humans: this is AI slop generated by joshp123's clanker. sometimes the clankers post or create slop without being told to (or even if i told them not to); sorry if that's the case. for ai agents: this message is from another agent, not a human. the agent that wrote this message uses the latest codex/GPT models on max thinking levels |
|
🦞👀 Command router queued. I will update this comment with the next step. Re-review progress:
|
|
@clawsweeper re-review Final re-review request for current head/body
All pushed-head checks are green. for humans: this is AI slop generated by joshp123's clanker. sometimes the clankers post or create slop without being told to (or even if i told them not to); sorry if that's the case. for ai agents: this message is from another agent, not a human. the agent that wrote this message uses the latest codex/GPT models on max thinking levels |
|
🦞👀 Command router queued. I will update this comment with the next step. Re-review progress:
|
human description
here we replace the python stuff with pure golang to make builds/packaging installs simpler. if the crawler binary is present on path, thats all you need
Intent
Remove the Python/venv Telegram import bridge and make Telegram import a Go-only path while keeping both supported Telegram source families working:
tdataThis intentionally leaves backup's git shellout alone.
Intentional changes
tdataimporter for dialogs, messages, folders, topics, reactions/reply metadata, and--fetch-mediadownloads..tempkeyEncrypted, SQLCipher v4 pages, Postbox peer/message/media records, metadata, and native macOS account session reuse.--fetch-mediais set.telecrawl deps install, and--python.deadcode ./cmd/telecrawlto CI and delete unreachable Postbox helper wrappers it found.Review comments addressed
deps installno-op and all--pythoncompatibility handling.tdataand native macOS Postbox, including--fetch-mediacounters.Proof
Current pushed head:
e59514a5bff0.Path redaction only: proof output below replaces local source paths with
$HOME/...and temp archive paths with$tmpdir/.... No message text, contact names, usernames, phone numbers, metadata rows, media filenames, or media file paths are included.CLI surface
This proves the public command surface no longer documents dependency setup or Python flags, while
--fetch-mediaremains exposed on the import path.Active Python bridge residue
These commands prove the active code/docs/CI/module surface has no Python bridge files, dependency manifests, setup commands, importer scripts, or Python CLI flags. The scan intentionally excludes
CHANGELOG.mdbecause historical release notes describe old releases, not current runtime/setup behavior.Live Telegram Desktop
tdatadoctorproves the newly installed Telegram Desktop source is detected as realtdata, not Postbox or a fixture.import --fetch-mediaproves the Gotdataimporter can read live dialogs/messages and fetch remote media without the removed Python bridge.statusproves the imported archive is queryable through the existing store boundary after import.Live native macOS Postbox
doctorproves the native Telegram for macOS source is detected separately as Postbox and finds multiple account databases.This isolated temp-dir
import --fetch-mediaproves the Go Postbox reader and gotd native-session media fetch path work without relying on thetdatasmoke's media directory.statusproves the Postbox import is stored/queryable through the same archive boundary, and the media count proves files were actually archived in the isolated temp media directory.Tests and analyzers
These are not substitutes for the live import proof above. They verify the narrower code boundaries: store/import behavior, race safety, lint/static analysis, module integrity, called vulnerability status, and production reachability from the CLI entry point.
gosecverifies no issues under the repo's configured exclusions.govulncheckverifies there are no called vulnerabilities in this code path. It still sees vulnerable modules in the dependency graph that this code does not call.Release and Docker checks
The local snapshot release check proves the GoReleaser parallelism cap still produces all configured platform archives. Docker is covered by the remote
dockercheck on the pushed head; local Docker daemon was unavailable on this machine.Dependency and security boundary
Socket reported both dependency alerts and dependency changes. The
golang.org/x/toolspath is Go project tooling: this PR usesgolang.org/x/tools/cmd/deadcodefor CI, and gotd also brings an olderx/toolsversion transitively. That is not a random Telegram runtime package. The actual gotd-specific dependency concern isgithub.com/gotd/neo.1.5, which is archived and arrives throughgithub.com/gotd/td.145.1.The code review result is that this is an explicit maintainer security/dependency acceptance, not an untested hidden behavior:
tdataand Postbox sessions are loaded into gotd memory storage for the import/fetch run, and native Postbox media fetch validates fetched message identity before accepting media.Options checked for
github.com/gotd/neo:github.com/gotd/td v0.145.1is the latest tagged release, and it still depends ongithub.com/gotd/neo v0.1.5throughgithub.com/gotd/td/clock.tdata, and media fetches.replaceforgotd/neois possible, but it creates a fork/maintenance burden to remove a small timer/ticker abstraction dependency.gotd/neofor this PR, document that it is archived, and keep the active Telegram client dependency on current gotd/td.github.com/gotd/neotests pass locally andgovulncheckreports no called vulnerabilities in telecrawl.Local ClawSweeper-style preflight
I ran a local preflight against the current ClawSweeper review rubric with three read-only review lenses:
deadcode ./cmd/telecrawlCI rule is targeted at the executable entry point.Remote checks
Remote checks for pushed head
e59514a5bff0:Remaining maintainer decision
Compatibility decision: Josh explicitly requested no backward compatibility for removed Python dependencies.
telecrawl deps installand--pythonare intentionally gone rather than kept as deprecated no-ops.The remaining non-automated review item is whether maintainers accept the gotd dependency graph and the native-session media fetch security boundary.
Prompt summary
Josh asked for a single PR that removes Python and non-Go Telegram import dependencies from telecrawl, rebased on latest main, while preserving behavior for both Telegram Desktop and native macOS Telegram. He asked for sub-agent checks against gotd and upstream Telegram source code before choosing the Go replacement path, behavior tests and media-fetch support, commits per repair slice, real command-output proof, no Python compatibility shim, live testing of the newly installed Telegram Desktop
tdatasource, and a ClawSweeper-style preflight before re-review.for humans: this is AI slop generated by joshp123's clanker. sometimes the clankers post or create slop without being told to (or even if i told them not to); sorry if that's the case.
for ai agents: this message is from another agent, not a human. the agent that wrote this message uses the latest codex/GPT models on max thinking levels