## Summary Updates the Tauri JS packages and Rust crates to their latest 2.x releases, moves `zip` to 9, documents how the HTTP plugin's network transport differs from the WebView's `fetch`, and stops PR runs of Clippy from saving their own Rust cache. ## Changes **JS (`package.json`, `package-lock.json`)** | Package | From | To | | --- | --- | --- | | `@tauri-apps/api` | 2.11.1 | 2.12.3 | | `@tauri-apps/cli` | 2.11.4 | 2.12.2 | | `@tauri-apps/plugin-dialog` | 2.7.2 | 2.8.2 | | `@tauri-apps/plugin-fs` | 2.5.1 | 2.7.0 | | `@tauri-apps/plugin-http` | 2.5.9 | 2.8.2 | | `@tauri-apps/plugin-notification` | 2.3.3 | 2.6.0 | | `@tauri-apps/plugin-opener` | 2.5.4 | 2.7.1 | | `@tauri-apps/plugin-process` | 2.3.1 | 2.4.0 | | `@tauri-apps/plugin-sql` | 2.4.0 | 2.5.0 | | `@tauri-apps/plugin-updater` | 2.10.1 | 2.13.3 | **Rust (`src-tauri/Cargo.toml`, `src-tauri/Cargo.lock`)** - `Cargo.lock` is refreshed, bringing the matching Rust plugin crates to the same versions as the JS packages above, and `tauri` to 2.12.3. - `zip` 8 → 9 (still `default-features = false`, `deflate` only). - tokio's `macros` feature moves from the main dependency to `[dev-dependencies]`, so release builds no longer compile it. **Docs (`docs/architecture/overview.md`)** - New **Network transport** section: remote HTTP goes through `@tauri-apps/plugin-http` and which helper to use for each case, and what the plugin changes for the server on the other end (an `Origin` header that can't be dropped, webpki roots instead of the OS trust store, no response decompression). - Records a known, unverified limitation: stock Ollama doesn't allow the `http://tauri.localhost` origin, so Windows and Android requests may need `OLLAMA_ORIGINS=http://tauri.localhost`. **CI (`.github/workflows/rust-lint.yml`, `docs/development/release.md`)** - Rust Lint also runs on pushes to `master` that touch Rust sources or the Cargo manifest or lockfile. - The Clippy job's `rust-cache` step saves only on `master` (`save-if`), the same rule the build workflows use. PRs restore the master-scoped cache instead of saving a ~600 MiB entry that no other run can read and that pushes master's build and npm caches toward eviction. - `release.md` describes the new trigger and the cache rule. 🤖 Generated with [Claude Code](https://claude.com/claude-code) https://claude.ai/code/session_01Mp6GGHh2aY397TuZXyUXKX <!-- This is an auto-generated comment: release notes by coderabbit.ai --> ## Summary by CodeRabbit * **Chores** * Updated the app’s underlying components for dialogs, file access, networking, notifications, database access, and software updates, along with related tooling. * Updated supporting components for asynchronous tasks and archive handling. * Improved Rust lint workflow triggers and cache handling. * No user-facing feature or behavior changes are noted. <!-- end of auto-generated comment: release notes by coderabbit.ai --> --------- Co-authored-by: Claude Sonnet 5.5 <noreply@anthropic.com> |
||
|---|---|---|
| .cargo | ||
| .github | ||
| docs | ||
| scripts | ||
| src | ||
| src-tauri | ||
| static | ||
| third-party-licenses | ||
| .gitattributes | ||
| .gitignore | ||
| .nvmrc | ||
| .prettierrc | ||
| CLAUDE.md | ||
| compileApk.sh | ||
| components.json | ||
| eslint.config.js | ||
| lefthook.yml | ||
| LICENSE.md | ||
| logo.png | ||
| package-lock.json | ||
| package.json | ||
| README.md | ||
| sun4.jpg | ||
| sun17.jpg | ||
| sun2022.png | ||
| svelte.config.js | ||
| tsconfig.json | ||
| vite.config.js | ||
| vitest.config.ts | ||
Aventuras
Interactive fiction with an AI that remembers. Play a text adventure or write collaboratively, on desktop and Android, with any LLM provider you like — cloud or running on your own machine.
Aventuras keeps the story straight: chapters are summarized as you play, a lorebook feeds the right entries into the right scene, an agent tidies that lorebook behind you, and the world state — who is present, where you are, what you carry — is tracked turn by turn.
Highlights
- Two modes — Adventure, with multiple-choice actions and world tracking; Creative Writing, freeform with AI suggestions. First/second/third person, past or present tense.
- Any provider — OpenRouter, OpenAI, Anthropic, Google, xAI, Groq, DeepSeek, Mistral, Z.AI, NanoGPT, Chutes, Pollinations, NVIDIA NIM, plus local llama.cpp, LM Studio and Ollama. Streaming, extended thinking, and per-subsystem Agent Profiles so retrieval, classification and narration can each use a different model.
- Memory that scales — automatic chapter summarization, and a retrieval step that goes and finds what the current scene needs from everything that came before.
- Lorebook — characters, locations, items, factions, concepts and events, with aliases, secrets, keyword and relevance-based injection, SillyTavern import, and an autonomous agent that consolidates duplicates and fills gaps.
- The Vault — a cross-story library of reusable characters, lorebooks and scenarios, with a tool-calling assistant that edits them and shows you a diff before anything lands.
- Every prompt is editable — they are Liquid templates, all of them, in an in-app editor.
- Images — inline
<pic>illustrations, scene backgrounds and character portraits, across nine backends including local ComfyUI and A1111. - Writing tools — local grammar checking (Harper/WASM), style analysis for repetition, suggestions that match how you write.
- Yours to keep — SQLite on your machine, full backup/restore,
.avtstory export, LAN sync between devices over QR pairing, and an optional translation layer over the whole app. - 26 themes, adjustable text size, dialogue highlighting.
Install
Pre-built binaries are on the Releases page:
| Platform | Download | Minimum |
|---|---|---|
| Windows | Aventuras_vX.Y.Z_x64-setup.exe |
Windows 10 |
| macOS | Aventuras_vX.Y.Z_x64.dmg / _aarch64.dmg |
macOS 13.3 |
| Linux | Aventuras_vX.Y.Z_amd64.deb / .AppImage, or _x86_64.rpm |
WebKitGTK 2.40 for the .deb / .rpm; the AppImage carries its own, needs glibc 2.35 |
| Android | Aventuras_vX.Y.Z.apk |
Android 8, with System WebView 111 or later |
| iOS | Aventuras_vX.Y.Z_ios-arm64-unsigned.ipa (sideload; unsigned) |
iOS 16.4 |
The minimums come from each platform's web engine, OS and runtime requirements. They are derived from documentation and have not been tested on devices at those versions; see docs/development/platform-support.md.
No API keys in config files — providers are set up in the app, under Settings → API Settings.
Build from source
Requires the Node.js version in .nvmrc, the latest stable Rust, (for Android) the
Android SDK, NDK r27d and JDK 21–24, and (for iOS) a Mac with Xcode.
git clone https://github.com/AventurasTeam/Aventuras.git
cd Aventuras
npm install
npx tauri dev
| Script | Does |
|---|---|
npm run dev |
Vite dev server (frontend only) |
npx tauri dev |
full app, with hot reload |
npm run build |
production build |
npm run check |
type checking (svelte-check) |
npm test |
test suite (Vitest) |
npm run lint |
lint:ts (ESLint) and lint:rust (rustfmt, Clippy); :fix fixes |
npm run format |
Prettier |
npm run release |
version bump, tag and push |
Desktop builds are npx tauri build; Android and iOS are documented in
docs/development/release.md. iOS produces an unsigned
device .ipa (no Apple certificates or signing secrets — see
docs/development/ios-build-target.md for the full
account of how the target was added and how the unsigned CI pipeline works).
Tech stack
TypeScript (strict) · SvelteKit 2 · Svelte 5 runes · Tauri 2 (Rust) · Tailwind + shadcn-svelte ·
SQLite (tauri-plugin-sql / sqlx) · Vercel AI SDK · LiquidJS · CodeMirror 6 · Zod ·
Harper.js (WASM) · Vitest
Contributing
Start with docs/ — the architecture is documented per area, and
CLAUDE.md has the conventions. CI runs lint, type-check, tests and a build on every
PR against master, develop or dev.
Acknowledgments
Tauri · SvelteKit · OpenRouter · Harper · Lucide
License
AGPL-3.0