Skip to content

Releases: ZeyuChen/ReadPaper

v0.2.2 — Admin Dashboard: LaTeX Inspector & GCP Log Viewer

Choose a tag to compare

@ZeyuChen ZeyuChen released this 23 Feb 18:32

What's New

🔬 LaTeX Inspector Tab

  • Side-by-side viewer: Compare original English and translated Chinese LaTeX source code with synchronized line numbers
  • File tree sidebar: Browse all .tex files for any paper with status indicators (original/translated)
  • Paper selector: Searchable grid of all translated papers with translation status badges
  • One-click download: Download the entire LaTeX package as .tar.gz archive for offline debugging
  • Copy-to-clipboard: Quick copy for either original or translated panel content

📊 GCP Logs Tab

  • Terminal-style viewer: Dark-themed log display with severity-coded badges (ERROR/WARNING/INFO)
  • Service toggle: Switch between backend and frontend Cloud Run services
  • Smart filtering: Filter by severity level, time range (1h to 7d), and result limit (50-500)
  • Auto-refresh: Toggle 30-second polling for real-time monitoring
  • Expandable messages: Collapse/expand long log entries for cleaner viewing

🛠️ Infrastructure

  • Proxy route updated to stream application/gzip responses for tar downloads
  • Backend admin endpoints for tex file listing, content retrieval, tar archive generation, and GCP Cloud Logging queries

Full Changelog: v0.2.1...v0.2.2

v0.2.1 — Cached Signed URLs, Simplified Naming, Polished Docs

Choose a tag to compare

@ZeyuChen ZeyuChen released this 23 Feb 16:38

🚀 ReadPaper v0.2.1

What is ReadPaper?

An AI-powered tool that translates arXiv papers from English to Chinese while preserving the original LaTeX layout — equations, citations, figures all stay pixel-perfect. Powered by Gemini 3.0 Flash with 1M-token context.

✨ Highlights in v0.2.1

⚡ Cached Signed URL PDF Delivery

  • PDFs now served via GCS signed URLs — browser downloads directly from storage (1 hop, no backend proxy)
  • Module-level credential caching + 12-min URL cache = near-instant responses on repeat access
  • Fallback to direct streaming if signing fails

📛 Simplified PDF Naming

  • Translated PDFs are now consistently named {arxiv_id}_zh.pdf
  • Version suffixes (v1, v2) are stripped from output filename
  • Single-candidate lookup (no more v1–v5 scanning)

📚 Polished Documentation

  • README: attractive badges, live demo link, architecture diagram, feature highlights
  • ARCHITECTURE: Mermaid flow diagrams, IPC protocol, signed URL delivery flow, storage layout

📊 Since v0.1

Metric Value
Commits 11
Files changed 20+
Lines +2500 / -800

Key Features

  • 🧠 Whole-file LaTeX translation — one Gemini API call per .tex file
  • 🔄 AI compile fix loop — auto-fixes LaTeX errors (3 retries)
  • ⚡ GCS signed URL delivery — cached, 1-hop PDF loading
  • 🔐 Google OAuth — per-user paper libraries
  • 📊 Admin dashboard — user/paper management
  • 📈 Live token tracking — real-time Gemini usage
  • 💾 Translation cache — skip re-translation for cached papers
  • 📖 Split-view reader — side-by-side EN/中文 with zoom & notes

v0.2: Admin Dashboard, Signed URL PDF Delivery & Cloud Run Optimization

Choose a tag to compare

@ZeyuChen ZeyuChen released this 23 Feb 14:16

🎉 ReadPaper v0.2

✨ New Features

  • Admin Dashboard — Full admin panel at /admin with:

    • System overview (total users, papers, translations)
    • User management with paper/data deletion
    • Paper management with re-compilation support
  • GCS Signed URL PDF Delivery — PDFs are now served via time-limited signed URLs directly from Google Cloud Storage, eliminating the backend proxy bottleneck that caused 5+ minute load times for 6MB PDFs.

  • Translation Cache — GCS-backed cache with integrity validation. Previously translated papers are served instantly without re-using Gemini API credits.

🚀 Performance Improvements

  • Cloud Run Optimization:

    • --cpu=2 for faster LaTeX compilation
    • --timeout=900 (15 min) for long papers
    • --no-cpu-throttling — background PDF compilation gets full CPU even after the HTTP request returns (fixes the root cause of compilation timeouts)
  • Eliminated list_files() overhead — Backend now checks known PDF paths directly in GCS instead of listing all blobs under the prefix.

  • Frontend proxy streaming — Binary responses (PDFs) are streamed through the Next.js proxy instead of buffered, preventing serverless function timeouts.

🔧 Bug Fixes

  • Fixed cloudbuild-hotfix.yaml missing GOOGLE_CLIENT_ID and DISABLE_AUTH env vars
  • Fixed _TaskStatusProxy.pop() missing method
  • Fixed frontend PDF viewer cross-origin redirect failure with signed URLs

📚 Documentation

  • Updated README.md with v0.2 features and Cloud Run configuration
  • Updated ARCHITECTURE.md with PDF delivery flow, cache system, admin dashboard, and Cloud Run settings

Files Changed

10 files changed, 1229 insertions(+), 299 deletions(-)

v0.1: Stable Bilingual ArXiv Reader

Choose a tag to compare

@ZeyuChen ZeyuChen released this 23 Feb 01:52

ReadPaper v0.1 — First Stable Release

ReadPaper translates arXiv papers from English to Chinese while preserving full LaTeX layout, equations, citations, figures, and tables. Powered by Gemini 3.0 Flash (1M context window).

✨ Key Features

  • Whole-file translation: Each .tex file → single Gemini API call (no text-node extraction, no batching)
  • asyncio.gather concurrency: Parallel multi-file translation with configurable semaphore
  • AI compile fix loop: latexmk -xelatex with up to 3 Gemini-powered error fix retries
  • Dynamic compile timeout: 300s base + 60s per 10k output tokens (cap 1200s)
  • Token usage tracking: Real-time Gemini API token display in frontend (In/Out breakdown)
  • Concurrent translation guard: Prevents race conditions from duplicate submissions
  • Split-view reader: Side-by-side bilingual PDF viewing (Next.js frontend)
  • Cloud-native: Google Cloud Run + GCS deployment (cloudbuild.yaml)

✅ E2E Verified With

Paper arXiv Files Total Tokens
DeepSeek-V3 2412.19437 4/4 15,923
Qwen2.5 2412.15115 9/9 69,803
GLM-5 2602.15763 11/11 65,262