TauriTavern/docs
sun19970908 a2e8de7499
Feat/android native image context menu (#309)
* test(storage): build extension store assertion path component-wise

The assertion joined one forward-slash literal, which Windows keeps verbatim, so the expected path mixed separators while entry_path() builds the real one with per-component joins. The resulting strings never matched and the test failed on every Windows run. Join the same components the production path uses so the comparison holds on all platforms.

* feat(android): save images from the WebView long-press menu

Long-pressing an <img> inside the app offered no way to keep it. Add a host-side context menu that routes every source through one rule: if the system downloader can reach the URL, hand it over, otherwise let the page read the bytes.

DownloadManager can only fetch real network locations, so blob:, data: and the app's own loopback origin all go through the page instead. App assets are fetched relatively to stay same-origin. The bytes are published through the existing AndroidPublicDownloadJsBridge, so the MediaStore transaction, the Android 10+ gate and the staging cleanup are reused rather than reimplemented. No new dependency and no build.gradle.kts change.

The installer takes an application context and owns its own Toast and DownloadManager lookups, keeping MainActivity to a single construction and one install call.

Failures surface as a toast instead of staying in logcat, including page-side fetch errors reported back over the bridge.

* refactor(android): save long-pressed images through the download bridge

Android WebView offers no image context menu, and a native
OnCreateContextMenuListener consumes the long press before the page can
claim it. Supply the missing contextmenu default action in the download
bridge instead: it honors preventDefault(), asks for confirmation, reads
the image in its own window and exports through downloadBlobWithRuntime,
so Android 8-9 keep the SAF fallback and feedback stays localized.

Remove the native installer and its DownloadManager and base64 paths.

---------

Co-authored-by: Darkatse <39111369+Darkatse@users.noreply.github.com>
2026-10-03 18:35:51 -04:00
..
Agent feat(macros): unify contextual evaluation and parameter templates 2026-09-27 18:25:44 -04:00
API refactor(mcp): converge transport on rmcp 3.5 2026-10-03 17:20:15 -04:00
CurrentState refactor(mcp): converge transport on rmcp 3.5 2026-10-03 17:20:15 -04:00
images docs(readme): refresh project homepage and optimize assets 2026-07-19 00:09:56 -04:00
AndroidDevelopment.md Feat/android native image context menu (#309) 2026-10-03 18:35:51 -04:00
BackendStructure.md refactor(mcp): converge transport on rmcp 3.5 2026-10-03 17:20:15 -04:00
FrontendAccessibility.md fix(a11y): support controls adopted from script iframes 2026-09-30 20:27:08 -04:00
FrontendGuide.md Feat/android native image context menu (#309) 2026-10-03 18:35:51 -04:00
FrontendHostContract.md Feat/android native image context menu (#309) 2026-10-03 18:35:51 -04:00
iOSDevelopment.md feat(ios): enable increased memory limit 2026-10-02 19:10:49 -04:00
README.md docs(agent): simplify and consolidate framework documentation 2026-09-06 20:53:05 -04:00
TechStack.md refactor(mcp): converge transport on rmcp 3.5 2026-10-03 17:20:15 -04:00

TauriTavern 项目文档

TauriTavern 保留 SillyTavern 的前端体验与扩展生态,用 Tauri 和 Rust 后端提供本地存储、模型调用及平台能力。

开始阅读

先看 项目哲学,了解项目如何处理兼容性、复杂度和维护成本。随后按工作方向选择入口:

方向 文档
仓库技术栈与开发检查 技术栈
Rust 服务与 crate 边界 后端结构
前端启动、路由与集成 前端指南
前端和扩展可观察的宿主行为 宿主契约
编写扩展 扩展 API
理解或修改 Agent Agent
查找某个模块的实现 模块文档
Android / iOS 开发 Android、iOS

Agent 文档从文件、工作区、循环和日志讲起,再说明多 Agent 如何通过任务与结果协作。配置、工具、脚本和 API 可按需要继续查阅。

维护文档

每个主题保留一个主要入口,正文说明用途、工作方式和源码位置。接口用法放在 API 文档,字段与默认值引用源码。行为变化时更新所属主题,删除已经过时的说明。