Skip to content

Releases: zhangzejing/ThinkReader

ThinkReader 0.9.50

Choose a tag to compare

@zhangzejing zhangzejing released this 25 Sep 14:28

ThinkReader 0.9.50 improves reading, annotations, Agent settings and quick file switching. This version supersedes 0.9.43 and supports normal in-app updates.

本次更新

  • Agent Profile 直接编辑名称、角色指令、Harness 与模型。Cursor 加载实际可用模型,Codex 支持模型及思考强度切换;切换模型保留原生会话。
  • 快速切换缓存 Library 文件名,只更新变化目录,先显示已打开、最近文件和已加载论文;Home、Agents、PDF、Canvas、Markdown 使用不同图标。
  • 完成、失焦和点击外部时收起 @agent 提示;健康检查保留在命令中,移除常驻按钮。
  • 回答正文可选择复制,作者行与空白区域保留拖拽。Read with Agents 从工具栏、右键和选区展开并排对话,可将回答保存为批注或回复。
  • 多栏只移动被拖动的页面,自动收起拥挤侧栏,已打开侧栏按钮高亮。
  • Hint 独立匹配原文,匹配失败允许目标为空;组合块可覆盖多个段落。批注链接在 Markdown 中显示紧凑卡片,点击选中对应批注。
  • /audit 提供第二位研究者的新观点与讨论回复,输出包含真实批注链接;Agent 可创建纯高亮、修改颜色/位置、回复和更新批注。
  • 全文输入与工具分页避免截断,尽早保存批注并流式输出进展;flash 单遍速览,图片图注不再默认翻译。
  • Summary 面向窄侧栏、按实际实验组织结果,长度仅作生成指导,不因超长压缩、重写或报错。
  • 增加 Zotero 导入与可选接收;Claude SDK 支持外部 MCP 工具授权。本版暂不迁移 ACP。

验证

实现与二进制构建提交:e986a5de57427bda38b9bb3d71bc7fae3b866870。

  • 完整回归通过:69 个独立后端文件、516 个报告用例(2 个 opt-in MinerU 跳过),前端构建及交互检查通过。
  • 新构建的 Windows 包通过资源/更新清单哈希、MCP 通讯、冻结后端及 18 项桌面检查。
  • 本机完成公开 0.9.43 → 0.9.50 的应用内检查、完整下载、安装与重启。2,332 个用户文件哈希未变,1,638 个安装文件与最终包一致。
  • 本机真实 Library 搜索从 3.55 秒降至冷查询约 66 毫秒、热查询约 49 毫秒;已知文件在界面约 63 毫秒显示。耗时随 Library 与机器而异。
  • 真实 Cursor 获取 241 个账户可用模型,模型切换后保留会话上下文;隔离 audit 测试保存回复并返回有效链接。

Windows 二进制尚未签名。未做干净机器安装或真实 Zotero/Connector 验收;Kimi 按要求未测试。真实模型可写入与返回链接不代表所有研究判断均正确。

SHA-256

文件 SHA-256
ThinkReader-Setup-0.9.50-win_x64.exe 6d523255c8e267f30c48f33026bc2a66824fbe8dc892eb13684d2331d96c8558
ThinkReader-0.9.50-win_x64.exe e77134fa6b4dc9fba5e4264ff3f372c623c3663c7bda5436d3b43830380c26bd
ThinkReader-0.9.50-win_x64.zip f2aba55dac9c03fde04cb5adc61a7acbb5a4c277b8db52383f712239eaa2d668

ThinkReader 0.9.43

Choose a tag to compare

@zhangzejing zhangzejing released this 23 Sep 13:46

ThinkReader 0.9.43

The @ composer now keeps the Agent from the latest conversation in the current Channel or DM. The default recipient, empty @ suggestions, and summary action follow that Agent. Explicit recipient changes and nonempty drafts remain intact. When a conversation has no previous Agent, the existing default still applies. Formula rendering added in 0.9.42 remains included.

Validation

  • Implementation commit: 2d50200a1192348619b9eb2de758ba64226f90e6. On Windows, .\release-check.ps1 -Frontend passed, including the composer default regression, backend boundaries and tests, desktop checks, and the TypeScript/Vite build.
  • An Electron interaction check passed: the default changed from @First to @Second when conversation history arrived, sending to Second kept it as the next default, and a nonempty draft survived a subsequent default change. Local fixture: build/release-audit/composer-last-agent/interaction-check.cjs.
  • python app/packaging/build_release.py --target win passed packaged resource hashes, update manifest name/size/SHA-512, and frozen MCP checks. Exact unpacked candidate: build/release/ThinkReader-0.9.43-win-f399f13d.
  • build/packaging-venv/Scripts/python.exe app/packaging/smoke_release.py --unpacked build/release/ThinkReader-0.9.43-win-f399f13d passed packaged startup, Profile persistence, PDF Range, annotation conflicts, outputs, restart, and original PDF integrity.
  • An installed 0.9.41 audit App detected and downloaded 0.9.43 through a loopback feed, validated SHA-512, silently installed, restarted, and returned a healthy backend. The test installer used the exact candidate payload but a separate audit identity and executable, preserving the default 0.9.42 installation. Differential download fell back to the full installer because the audit feed lacked the old blockmap. The published installer is the separately verified official build.
  • The ZIP includes both desktop HTML entries and no .git, .env, user-data, or README_en.md entry.
  • The private and public v0.9.43 Releases contain the same five assets with SHA-256 digests and sizes matching the local build. The public Latest release points to v0.9.43; all five download links and the release-note link returned HTTP 200. The public repository's separate README update is commit 458504c.

SHA-256

Asset SHA-256
latest.yml 51c723509e68ed0fae374e5b7269badbcec5ae1a6f9a935b22731f00b4883e59
ThinkReader-0.9.43-win_x64.exe 028ce9c413157bf9af61eb943048c941fadda13f611f49a789b7bb2c49c044dd
ThinkReader-0.9.43-win_x64.zip d1c63fb3c0b69f2fe48cb66aa59a705f3c7da387537af9831f1cc220cd445a7c
ThinkReader-Setup-0.9.43-win_x64.exe 342d38a40e04926875286d92d0868706d69d343e0287afc2148cd15e350e7002
ThinkReader-Setup-0.9.43-win_x64.exe.blockmap e90c2bdb6e8c339878d3ea6532d1994ec26203415ab98d5cef1cafb12a3305bf

The Windows binaries are unsigned. Clean-machine installation and real-provider reading tasks were not run for this UI change.

ThinkReader 0.9.42

Choose a tag to compare

@zhangzejing zhangzejing released this 23 Sep 13:17

ThinkReader 0.9.42

Render \[...\] display formulas and \(...\) inline formulas in Agent conversations and other views that use the shared message renderer. Tables now display inline formulas such as \(\tau_1\) instead of literal TeX. Fenced code remains code.

Validation

  • Implementation commit: cd54217. On Windows, .\release-check.ps1 -Frontend passed, including the new message math regression, backend boundaries and tests, desktop checks, and the TypeScript/Vite build.
  • Electron rendered representative multiline, inline, and table formulas in light, dark, and narrow views. Local captures: build/release-audit/message-math-0.9.42/{light,dark,narrow}.png.
  • python app/packaging/build_release.py --target win passed. It checked packaged resource hashes, update manifest name/size/SHA-512 and the frozen MCP bridge. The exact unpacked candidate is build/release/ThinkReader-0.9.42-win-91ac7161.
  • build/packaging-venv/Scripts/python.exe app/packaging/smoke_release.py --unpacked build/release/ThinkReader-0.9.42-win-91ac7161 passed packaged startup, Profile persistence, PDF Range, annotation conflicts, outputs, restart and original PDF integrity.
  • An installed 0.9.41 test App detected and downloaded 0.9.42 from a loopback feed, and electron-updater verified the download. Its official installer then updated the machine's default ThinkReader installation rather than the isolated test installation. All 1,571 candidate resource files match the resulting default installation, which started with a healthy /health response. The isolated test installation remains on 0.9.41; this run is not evidence of an isolated-install upgrade. Differential download fell back to a full download because the feed did not include the old blockmap.
  • The ZIP includes both desktop HTML entries and no .git, .env, user-data, or README_en.md entry.

SHA-256

Asset SHA-256
latest.yml 0f98269564c6c1eaeb150ede125cc23bd86731dbc202b98e8f8597a61158d427
ThinkReader-0.9.42-win_x64.exe c3ae2467e5829c3f3e4b2631800206615a23c2a50fc30564a9a3b62280786ca0
ThinkReader-0.9.42-win_x64.zip 14e90ea9d41a9d50264a55b60d18f28570b31875d70f4f7638efe4014488f747
ThinkReader-Setup-0.9.42-win_x64.exe ed01a535f15ce079fac274db4da2fca7954fc9120de1bb7125ee4caae72c3124
ThinkReader-Setup-0.9.42-win_x64.exe.blockmap fe54181fd26458061f5a956c5a1e395c996521c95d8cc52912516bc43535736e

The Windows binaries are unsigned. Clean-machine installation and real-provider reading tasks were not run for this UI-only fix.

ThinkReader 0.9.41

Choose a tag to compare

@zhangzejing zhangzejing released this 23 Sep 11:25

ThinkReader 0.9.41

Restore Agent paper-reading and annotation tools when a proxy intercepts local MCP connections.

Changes

  • All Agent CLI launches bypass proxies for localhost, 127.0.0.1 and ::1, while preserving existing bypass entries and external-service proxies. This fixes Codex reporting that ThinkReader tools are unavailable when its local MCP handshake receives a proxy error.
  • Cursor's native bridge explicitly bypasses proxies for its validated loopback connection, including in the packaged backend. Its UTF-8 protocol and connection-recovery checks now run with deliberately broken proxy settings.
  • Existing native sessions and Library data are preserved; no annotation migration is needed.

Validation

  • The implementation at 2b85f96ad09fa60d38363b67f1197de616b8cbb4 passed .\release-check.ps1 -Frontend on Windows on 2026-09-23: backend boundaries, backend files in separate processes, desktop regressions and the TypeScript/Vite production build. The proxy fix itself is ef7cdceffc39ab4679844622ea6719f07bc649dd.
  • Real authenticated Codex 0.153.0 read synthetic PDF evidence and saved a pinned annotation through ThinkReader services; the original PDF remained byte-identical. Extraction was synthetic; the CLI/model, MCP calls and annotation writes were real.
  • Real Cursor 2026.09.18-9a7762b discovered all six MCP tools with inherited and corrected proxy environments. Its frozen 0.9.4 bridge reproduced the failure under a deliberately broken proxy; the corrected source bridge passed.
  • Claude Code, Kimi, Hermes and DSH share the corrected launch environment. They were inspected in code but were not installed for real-provider acceptance.

Packaged validation

The exact build is build/release/ThinkReader-0.9.41-win-688c6484, from implementation commit 2b85f96ad09fa60d38363b67f1197de616b8cbb4. Later validation-document changes do not change the shipped application. Python commands below used build/packaging-venv/Scripts/python.exe.

  • python app/packaging/build_release.py --target win — passed. Frontend, backend and resource hashes match the build; updater installer name, size and SHA-512 passed validation. The frozen MCP bridge passed the broken-proxy, UTF-8 Chinese/math/emoji and connection-recovery checks.
  • python app/packaging/smoke_release.py --unpacked build/release/ThinkReader-0.9.41-win-688c6484 — passed startup, Profile persistence, PDF Range, annotation persistence/conflicts, output/image/summary protections, restart and original PDF integrity.
  • python build/release-audit/smoke_frozen_codex.py build/release/ThinkReader-0.9.41-win-688c6484 — a real Codex /browse task through the frozen backend's normal instruction API read a synthetic document, saved exactly one mainline area card and verified it was pinned. The original PDF remained byte-identical. The fixture used the Repository → Import → synthetic Extraction → Intelligence pipeline; no user paper was used. Local evidence: build/release-audit/codex-mcp-annotations-osvxjnap/frozen-report.json.
  • node build/release-audit/0.9.41-update/installed-update.cjs build/release/ThinkReader-0.9.41-win-688c6484 — an independently registered 0.9.4 installation detected, downloaded, validated and silently installed 0.9.41 from a loopback feed. All 1,571 installed resource files, including app.asar and the backend, matched the final candidate; an explicit restart reported 0.9.41 with a healthy backend. Differential download fell back to a full download because the local feed omitted the old blockmap. This checks the final application payload in a test installer with a separate executable name and registry identity; it does not establish byte-identical public-installer execution, differential download or automatic-restart acceptance. The original App was found closed after the test and was restarted at its unchanged 0.9.4 installation. Local evidence: build/release-audit/0.9.41-update/report.json.
  • ZIP inspection found both desktop entry points and no .git, .env, user-data or README_en.md entries.

SHA-256 of the release assets:

Asset SHA-256
latest.yml d49e2e558a51301ddc9686935de911a03573e5a9c09bcde041bd7aea0104d986
ThinkReader-0.9.41-win_x64.exe 91a16b48737f291646806f8940d13e2d4fbe4970c4295940cb4b1a3658945488
ThinkReader-0.9.41-win_x64.zip b9dcfcbb4f431dc8e8872fc73cd2566d157c870065ab36e872755c132412ed95
ThinkReader-Setup-0.9.41-win_x64.exe dda59c235ff86ee0fcde62ea252649692f9a652c8907507540c04d647a995818
ThinkReader-Setup-0.9.41-win_x64.exe.blockmap 8bd0dca7fcef85bb29622ec619218d29b6e34954f3c128ff280e5e708d09c618

Limits

  • Native-session metadata records Codex 0.153.0 for both the earlier successful session and the failure. The historical proxy process state was not recorded, so the exact external trigger is unproven.
  • Windows binaries are unsigned. Clean-machine installation and real-provider runs of the four unavailable CLIs are not covered.

ThinkReader 0.9.4

Choose a tag to compare

@zhangzejing zhangzejing released this 22 Sep 11:41

ThinkReader 0.9.4

MinerU API import and connection fixes for Windows.

Changes

  • API imports require the official MinerU Open API CLI and a saved Token. Missing local models no longer disable Import or block an API job, including when an old local-fallback preference is saved.
  • Settings and Import use the same readiness rule. API setup says “API configured”; this confirms configuration, not current service connectivity. Local model folders are not marked ready until model verification succeeds.
  • “Fallback to local when the API fails” is unavailable until the local runtime and models are ready.
  • The official CLI owns API networking; a separate Python HEAD request no longer rejects otherwise usable CLI connections. Initial connection failures can retry for five minutes. This retry budget never interrupts an active upload or parsing process, and acknowledged uploads are not resubmitted automatically.
  • Import shows connecting, uploading, uploaded/queued, page extraction and result download. Upload is indeterminate because the official CLI does not report transferred bytes. Signed upload credentials are redacted from logs.
  • Embedded MinerU method cards no longer overflow horizontally in narrow light or dark views. The previously untracked Hermes icon is included so a fresh source checkout builds successfully.

Validation

  • .\release-check.ps1 -Frontend — passed on Windows on 2026-09-22, including backend boundaries, backend files in separate processes, desktop regressions and TypeScript/Vite production build.
  • node app/desktop/scripts/test-mineru-import-ui.cjs — passed actual Electron DOM selection and import click with mocked HTTP: API-only readiness, missing CLI/Token, concurrent setup, local fallback gating, upload/page/completion progress, and narrow light/dark layouts. The old source at dc6af8b reproduced the disabled API import before the fix.
  • With THINKREADER_RUN_REAL_MINERU_API=1, python app/packaging/run_backend_test.py app/backend/tests/integration/test_real_mineru_extraction.py — real official API extraction passed for a synthetic 12-page document (7.934 seconds on the final implementation); all pages produced semantic blocks and the original PDF remained byte-identical. Local extraction was explicitly skipped. A separate one-page API sample also passed.
  • test_mineru_commands.py covers connection retry, no resubmission after acknowledged upload, and a simulated 10-minute upload succeeding despite a five-minute connection retry budget.

Packaged validation

The implementation commit is 9508bc88003b5d4598f8bcf751280c1962721434. Later validation-document and smoke-harness updates do not change the shipped application. The exact output of this build is build/release/ThinkReader-0.9.4-win-998d1626.

  • python app/packaging/build_release.py --target win — passed with the packaging Python 3.11 environment. Frontend/backend/resource hashes match the current build; updater manifest name/size/SHA-512 and frozen MCP stdio checks passed.
  • python app/packaging/smoke_release.py --unpacked build/release/ThinkReader-0.9.4-win-998d1626 — passed frozen startup, Profile persistence, PDF Range, annotation conflict/persistence, output/image/summary protections, restart and original PDF integrity.
  • A real authenticated API import through this exact frozen backend parsed a synthetic three-page PDF in 7.8 seconds. Observed phases included connecting, uploading, queued and result download; each page had semantic blocks and the original PDF was byte-identical. Only test data was uploaded.
  • node app/packaging/smoke_first_run.cjs --zh --unpacked build/release/ThinkReader-0.9.4-win-998d1626 --root E:/ThinkReader/build/mineru-validation-20260922/packaged-first-run-final — passed the native first-run flow, branch controls, Token requirement and narrow layout with synthetic progress/failure responses. Model re-detection remained disabled without the local runtime; its model-error injection was skipped. The smoke harness was corrected to respect this disabled control instead of timing out after clicking it.
  • node app/packaging/smoke_first_run.cjs --profile --zh --unpacked build/release/ThinkReader-0.9.4-win-998d1626 --root E:/ThinkReader/build/mineru-validation-20260922/packaged-profile — passed real Profile UI/API completion, restart persistence and MinerU Settings resources; provider readiness was seeded and no model download occurred.
  • A separate-identity 0.9.3 installation used a loopback feed to check, download, validate and silently install 0.9.4. The installed app.asar matched the final candidate, and an explicit restart reported 0.9.4 with a healthy backend. This uses the final application payload in a test installer with a distinct registry identity and executable name; it does not validate byte-identical public-installer execution or a clean machine. Automatic restart was requested by the updater, but acceptance used an explicit restart with an isolated profile.
  • The initial baseline test installer retained the normal executable name and closed the running ThinkReader window through NSIS's process-name guard. The original App was restarted; the candidate test was renamed to avoid closing it again.
  • The ZIP contains no .git, .env, user-data or README_en.md entries.

SHA-256 of the release assets:

Asset SHA-256
latest.yml 43b41ed94a1972fc817ad500697796ac9c68a964eecdcdd9f9e34a50c430b533
ThinkReader-0.9.4-win_x64.exe 9b0e1f4fb2bafa3ce8bae11bbd63a429b8e50046389146c72dd925d589d00023
ThinkReader-0.9.4-win_x64.zip e98bf964b7911ce4fe07f030484e8b8ca67f374cc5e6bb055132949bc81e20a6
ThinkReader-Setup-0.9.4-win_x64.exe 0d3a8e042f3d750b4eb3887369887bdb17504d70c2e3eb81aec5a2a0be266101
ThinkReader-Setup-0.9.4-win_x64.exe.blockmap 70a385289ba3f0d0ebe77be1321db9bd31f63ee244989b1d5cb7139fb18ae559

Limits

  • Local model downloads and real local extraction are deferred at the maintainer's request. API tests use synthetic documents.
  • The official CLI has a separate 30-minute extraction deadline; the five-minute connection retry budget is not an upload deadline.
  • Windows binaries are unsigned; clean-machine installation is not covered by this development-machine validation.

ThinkReader 0.9.3

Choose a tag to compare

@zhangzejing zhangzejing released this 22 Sep 03:27

ThinkReader 0.9.3

Built from private implementation commit 6d6aef330f1d624136385fedfb28802715bcc0e0. The previous 0.9.2 release remains available in the development repository.

  • First-run MinerU setup now separates local parsing (MinerU Kit and complete Pipeline/VLM models) from API parsing (lightweight Open API CLI and token). Both paths provide detection, download progress, resource locations, copyable commands and repair controls in Settings.
  • Local and API extraction use their respective official MinerU CLI contracts. MinerU 4 output is normalized into ThinkReader's existing document-intelligence format.
  • Agent CLI discovery, first-run navigation, diagnostics and error codes have been improved. Model detection now follows MinerU CLI verification and its reported repository locations before using saved paths as fallback. The five-step indicator is centered, and the final setup transitions show immediate visual feedback while validation completes.
  • From 0.9.3 onward, in-App updates install silently and restart after checking unsaved drafts. Differential download remains enabled, with full download fallback. Older installed versions may show their existing installer wizard for the first upgrade.
Windows x64 asset SHA-256
Installer ThinkReader-Setup-0.9.3-win_x64.exe 93EF04C235E015CDF344235866688121F2B6057EEF0547D57F0AB1A84A7E23CB
Portable ThinkReader-0.9.3-win_x64.exe 4BF8994969D1932984EC4B1730BEBDD74BA6EDDEC183A914ECD9E30E4C919347
ZIP ThinkReader-0.9.3-win_x64.zip AA290C2AF65835D5B860E471DA6C2E3E79304D3C09C2F2D3501FE134672AFE7E

The Windows binaries are unsigned. Complete source regression, source first-run smoke, packaged backend smoke, real MinerU 4.0.3 Standard model verification, and a real authenticated Open API CLI request passed. The installed-App upgrade and silent-restart tests were performed on an earlier 0.9.3 candidate, not these final binary bytes. Clean-machine installation, manual visual acceptance and other MinerU versions have not been verified.

ThinkReader 0.8.7

Choose a tag to compare

@zhangzejing zhangzejing released this 16 Sep 01:52

本版更新

  • 修复 PDF 标题显示 NullObject:将 PDF 空对象按空值处理,补充 XMP、PRISM、DOI/Crossref 元数据识别。刷新元数据或重新导入同一 PDF 可修复旧的无效标题,保留正常标题、文献身份和原始 PDF。
  • 新增“帮助与更新”内下载、进度、取消/重试及“退出并安装更新”。下载完成校验后,由用户确认安装;安装前检查草稿保存。
  • 启动时检查更新。发现新版后,帮助按钮显示独立的圆圈下载图标,与 Agents、库主页共用主题颜色,跟随主题、深浅模式和强调色;悬停显示“有可用的更新”。关闭帮助面板后保留提示及下载状态。
  • 发布安装版、便携版、ZIP,以及 App 更新需要的 latest.yml 和安装包 blockmap。

0.8.6 及更早版本需要先手动安装本版一次,之后可在“帮助与更新”中更新。 便携/ZIP 用户通过安装向导安装新版后,请使用新安装的快捷方式。

验证范围

构建 commit:3dc10d7253347f4ae874262667df8aa850a20828;完整代码回归的实现 commit:cddb2ee3e092565fa5638f080cd47198eced3a85,两者 App 代码一致。

  • 65 个后端测试文件:405 项通过,1 项可选真实 MinerU 测试跳过;前端回归和构建通过。
  • 真实 Electron/IPC 界面检查通过,包括主题一致性、中英文悬停、下载进度与安装错误提示;其中更新服务和安装器使用模拟实现。
  • 真实更新组件对本地 HTTP 测试文件的 SHA-512 校验通过,损坏文件被拒绝。
  • 新生成 Windows 包的资源与更新清单哈希、冻结 MCP、启动、PDF Range、批注及冲突、输出与摘要保护、Profile、重启持久化和 RAW 完整性检查通过。
  • 发布后已核验:两仓各 5 个资产与构建文件完全匹配,Latest 均指向 0.8.7,公开下载链接全部返回 HTTP 200。真实更新组件从 GitHub 发现并下载了完整安装包,通过 SHA-512 及独立 SHA-256 校验;该检查使用测试版本适配器,没有执行安装程序。

真实退出安装/重启、干净机器安装与升级数据保留尚未验证。二进制未签名。元数据识别不等同于 Zotero 全部识别能力;本版未修改 MinerU API 超时/回退行为或声称真实文献解析、批注精度已通过验证。

SHA-256

  • ThinkReader-Setup-0.8.7-win_x64.exe: 28555b61170272e677cc3992dc7304e6a01964d77ebc4bdfd4531d7150691a64
  • ThinkReader-0.8.7-win_x64.exe: edd1aba1fa43120d0b9c1ef85bb5225de668138b8b78f72a07ad358a1a80fc13
  • ThinkReader-0.8.7-win_x64.zip: 528c39c804602ad811bc1d2b77d239078d1f15235d3bfde2fb30a18faef6d6cf

ThinkReader 0.8.6

Choose a tag to compare

@zhangzejing zhangzejing released this 15 Sep 15:05

ThinkReader 0.8.6

  • 修复重复 /MediaBox 等可恢复 PDF 结构错误导致的导入失败,原 PDF 内容不变。
  • 文件树自动刷新外部删除和重命名;RAW PDF 改名后按内容恢复关联,解析使用临时输入副本。
  • RAW PDF 右键支持“重新导入”;成功、排队和解析中的文件置灰。
  • 随 App 提供 PDF.js 中文 CMap 与标准字体资源,修复部分中文 PDF 原文文字提取及批注定位基础缺失。

Validation / 验证

Implementation commit: dc52d49d5e7b3de9302dc3522aac165bdb99abeb.

65 backend test files: 400 passed, one opt-in real MinerU test skipped. Frontend build/regressions, Electron file-tree interactions, Chinese CMap regression, packaged resource hashes, frozen MCP UTF-8 and backend persistence smoke, and packaged Chinese Profile setup/restart passed.

A local eight-page Chinese PDF import and reader check passed without changing the original. Recovered Chinese source-text count increased from 2 to 7,412. This is not a measurement of MinerU OCR or Agent annotation accuracy. Real MinerU/Agent provider quality, clean-machine installation and installer upgrades were not tested. Windows binaries are unsigned.

旧论文已有的几何索引不会自动重建;若升级后旧论文仍有中文定位问题,需要通过 App 的相关服务重建派生索引,保留原 PDF、笔记和批注。

SHA-256

  • ThinkReader-Setup-0.8.6-win_x64.exe: C78E04750DDD90D9CEECA7A62201B890383CB9B0428C8D4C2D64C0D594952B70
  • ThinkReader-0.8.6-win_x64.exe: 7731117928350ABACC4F9E94CE0ADC71953DB6D0E95B8B78B9B51A96D861A2A5
  • ThinkReader-0.8.6-win_x64.zip: EEBDB38F41006F58157BB1B86697EC59CD85638345FFE037198EA7AFF4E2BDC9

ThinkReader 0.8.5

Choose a tag to compare

@zhangzejing zhangzejing released this 15 Sep 08:36

ThinkReader 0.8.5

  • Fix user actor not found: user when saving Profile on a fresh installation. Profile saving creates the local user before applying the name, description and avatar, without requiring an earlier actor-list request.
  • Repeated saves preserve the user's identity. Unknown actor IDs and Agent profiles remain rejected.
  • Link MinerU API setup and Settings directly to API Token management. The empty input now says “到MinerU官网创建API Token并填入”, with an English equivalent.
  • Update both repositories' English/Chinese README versions, installer, portable, ZIP and release-note links. README updates and public link verification are now required for every release.

Validation

Built and tested implementation commit: b831583e42da53cf1aea164db6e78e5b0e0e0ba6 (Windows x64).
Subsequent documentation changes do not change the binaries.

  • build/packaging-venv/Scripts/python.exe app/packaging/run_backend_test.py app/backend/tests/unit_test_actors.py — the fresh-profile regression failed before the fix with the reported error; all 10 actor tests passed after the fix.
  • build/packaging-venv/Scripts/python.exe app/packaging/check_backend_architecture.py — passed.
  • .\release-check.ps1 -Frontend — final regression passed: 65 backend test files, 395 tests passed and one opt-in real MinerU test skipped; frontend regressions and build passed. The final link/placeholder edits were present before the frontend checks/build.
  • node app/packaging/smoke_first_run.cjs --profile --zh — source Electron Profile save and restart passed with an empty actor store before the subsequent link-only frontend change.
  • node app/packaging/smoke_first_run.cjs --zh — final source Token link, exact Chinese placeholder and narrow-window layout passed.
  • build/packaging-venv/Scripts/python.exe app/packaging/build_release.py --target win — passed frontend/backend builds, packaged resource hashes and frozen MCP UTF-8 stdio. Exact unpacked candidate: build/release/ThinkReader-0.8.5-win-1400cb66. Frontend checks and builds used Node.js 24.19.0.
  • build/packaging-venv/Scripts/python.exe app/packaging/smoke_release.py --unpacked build/release/ThinkReader-0.8.5-win-1400cb66 — passed fresh Profile PATCH and restart persistence, frozen startup, PDF Range, annotation persistence/conflicts, output/image contexts, overwrite protection and RAW integrity.
  • node app/packaging/smoke_first_run.cjs --profile --zh --unpacked build/release/ThinkReader-0.8.5-win-1400cb66 — passed packaged Chinese Profile UI: no pre-existing actor, required name, START, setup completion and one unchanged user identity after restart.
  • node app/packaging/smoke_first_run.cjs --profile --unpacked build/release/ThinkReader-0.8.5-win-1400cb66 — the same packaged Profile checks passed in English.
  • node app/packaging/smoke_first_run.cjs --zh --unpacked build/release/ThinkReader-0.8.5-win-1400cb66 — passed early setup pages, light/dark/narrow views, simulated download failure/retry, official Token link and placeholder, API-token requirement and blocked advance. The same command without --zh passed the English checks on retry after one CDP screenshot timeout.

Profile UI checks seed MinerU/Agent readiness but use real Profile and onboarding persistence APIs. No provider requests or model downloads were performed. Reports and screenshots remain local under build/release-audit/first-run-*.

SHA-256

  • ThinkReader-Setup-0.8.5-win_x64.exe: 29D93FD5B9E04FCC4CD82BAE4F24C83F911B8771BA6F95BA68ABDE91F5B33F8B
  • ThinkReader-0.8.5-win_x64.exe: C130FA608B923DCA297329DC1788FC3C4951F61697FC6788BD932AA6FD5072A5
  • ThinkReader-0.8.5-win_x64.zip: 67112A58C692D8A4C566719AC9E1D57409F0235F719DF7C2D82BFF135719577E

Windows executables are unsigned (Get-AuthenticodeSignature: NotSigned). Clean-machine installation, installer upgrade, and the entire wizard with real downloads/provider authentication were not tested. The opt-in real MinerU extraction gate was not enabled.

ThinkReader 0.8.4

Choose a tag to compare

@zhangzejing zhangzejing released this 14 Sep 06:02

ThinkReader 0.8.4

  • Selection T uses official keyed APIs only: Baidu, Youdao Zhiyun, DeepL API Free, and Tencent Cloud TMT.
  • Unofficial Google, Bing and MyMemory web endpoints are removed. Saved unofficial providers remap to Baidu.
  • Apply for a free key in Settings → Agent defaults → Selection translation API, then enter APP ID / secret as required.
  • Clue editor save/cancel uses check and close icons.

Validation

Tested implementation commit: 2fdf14486aec1955ce88ed66850e142d7d3d82ff (Windows x64).

  • build/packaging-venv/Scripts/python.exe app/packaging/build_release.py --target win — passed frontend/backend build, packaged resource hash checks and frozen MCP UTF-8 stdio. Exact unpacked candidate: build/release/ThinkReader-0.8.4-win-37163e50. Built with Node.js 22.14.0.
  • build/packaging-venv/Scripts/python.exe app/packaging/smoke_release.py --unpacked build/release/ThinkReader-0.8.4-win-37163e50 — passed frozen backend startup, PDF Range, annotation persistence/conflicts, output/image contexts, overwrite protection, restart and RAW integrity.

SHA-256:

  • ThinkReader-0.8.4-win_x64.exe: 3DC225DD2928E508DEA606DEA5B4150E99DD9428068D77581A3496F418601A90
  • ThinkReader-Setup-0.8.4-win_x64.exe: FFDBCBE8DE13CB9ECBF5722278DF56DE1F6DE6E909572FB7209E45BD529CCC38
  • ThinkReader-0.8.4-win_x64.zip: 93503771578DBAE90FF0DA71F809A32468F307D05862F882C5D3253C2F1EC5BA

Windows packages are unsigned (Get-AuthenticodeSignature: NotSigned). Full release-check.ps1 -Frontend, desktop UI smoke, first-run wizard, clean-machine installation and installer-upgrade flow were not run for this candidate.