Repository navigation
Releases: ZeyuChen/ReadPaper
Release list
v0.2.2 — Admin Dashboard: LaTeX Inspector & GCP Log Viewer
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
.texfiles 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.gzarchive 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
backendandfrontendCloud 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/gzipresponses 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
🚀 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
🎉 ReadPaper v0.2
✨ New Features
-
Admin Dashboard — Full admin panel at
/adminwith:- 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=2for 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.yamlmissingGOOGLE_CLIENT_IDandDISABLE_AUTHenv vars - Fixed
_TaskStatusProxy.pop()missing method - Fixed frontend PDF viewer cross-origin redirect failure with signed URLs
📚 Documentation
- Updated
README.mdwith v0.2 features and Cloud Run configuration - Updated
ARCHITECTURE.mdwith 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
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
.texfile → single Gemini API call (no text-node extraction, no batching) asyncio.gatherconcurrency: Parallel multi-file translation with configurable semaphore- AI compile fix loop:
latexmk -xelatexwith 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 |