-
Notifications
You must be signed in to change notification settings - Fork 3
28. Appendix
Changes Made
- Updated application version to 0.10.23 across all configuration files
- Synchronized version information in tauri.conf.json, package.json, and Cargo.toml
- Updated section sources to reflect current file locations and versions
- Verified configuration consistency across frontend and backend systems
- Keyboard Shortcuts
- Configuration Files
- Model Repositories
- Frequently Asked Questions (FAQ)
- Glossary of Terms
- Version History
- Technical Details
- CodeMirror and Markdown Rendering Features
The following keyboard shortcuts are available for common actions within Oxide-Lab:
- Ctrl+Enter: Send message
- Shift+Enter: Insert line break
These shortcuts are designed to streamline user interaction with the application, allowing for quick message submission or multi-line input when needed.
Section sources
- TECHNICAL.md
- src/lib/chat/controller.ts
The tauri.conf.json file contains configuration settings specific to the Tauri framework, which powers the desktop application for Oxide-Lab. This configuration defines core application behavior, security policies, window settings, and integration with the frontend.
Key configuration sections include:
-
"build": Specifies the command to run the frontend development server or build process.
-
devPath: Points to the local development server (e.g.,http://localhost:1420) -
distDir: Specifies the directory for production assets (e.g.,../build)
-
-
"tauri": Core Tauri settings
-
allowlist: Defines permissions for APIs such asshell,fs,dialog, andclipboard -
bundle: Configuration for application packaging, including identifier, icon, and resources -
security: Controls likecsp(Content Security Policy) to enhance app security -
updater: Settings for auto-updating the application
-
-
"app": General application metadata
-
name: Application name ("Oxide Lab") -
version: Version string aligned with package.json (currently 0.10.23) -
defaultPath: Initial route loaded in the app window
-
This configuration enables secure, performant, and maintainable integration between the Rust backend and the Svelte frontend.
Section sources
- tauri.conf.json
The package.json file defines the project's frontend dependencies, scripts, and metadata. It is essential for managing the Svelte-based user interface and development tooling.
Key fields include:
-
"name": Project identifier (
oxide-lab) - "version": Current version of the application (0.10.23)
-
"scripts": Development and build commands
-
dev: Starts the development server using Vite -
build: Compiles the production-ready frontend bundle -
preview: Serves the built application locally -
tauri: Launches the Tauri application -
tauri:dev:cpu: Development mode with CPU-only features -
tauri:dev:cuda: Development mode with CUDA support -
tauri:build:cpu: Production build with CPU-only features -
tauri:build:cuda: Production build with CUDA support
-
-
"dependencies": Core libraries such as
svelte,@tauri-apps/api, andhighlight.js -
"devDependencies": Development tools including
vite,svelte-check,typescript, andtailwindcss
This file ensures consistent development environments and enables integration with the Tauri backend through proper API bindings.
Section sources
- package.json
Oxide-Lab supports loading quantized machine learning models from public repositories. The following platforms are recommended sources for compatible models:
- URL: https://huggingface.co
- Description: A leading platform for sharing and discovering machine learning models, datasets, and demos.
- Recommended Models: Search for models compatible with the Candle framework, particularly those in GGUF or Safetensors format.
-
Integration: Oxide-Lab uses the
@huggingface/hubpackage to programmatically fetch model metadata and files.
- URL: https://huggingface.co/TheBloke
- Description: A prolific contributor on Hugging Face who specializes in quantizing large language models for efficient local inference.
- Quantization Formats: Offers models in various GGUF quantization levels (e.g., Q4_K_M, Q5_K_S, Q8_0) suitable for CPU and GPU execution.
- Compatibility: Models are typically compatible with Oxide-Lab if they are based on supported architectures (e.g., Llama, Mistral, Phi, Qwen).
Users can download models directly from these repositories and load them into Oxide-Lab via the model selection interface.
Oxide-Lab supports GGUF models that are based on architectures implemented in the candle-transformers library. Currently supported models include:
- Llama (including Llama2, Llama3)
- Mistral
- Phi (Phi-2, Phi-3)
- Qwen (Qwen2, Qwen3)
- Gemma
- Mixtral
- Falcon
Models using unsupported architectures may fail to load or produce incorrect outputs.
Performance depends on several factors:
- Model Size: Larger models (e.g., 7B+ parameters) require more memory and compute resources.
- Quantization Level: Lower precision (e.g., Q4_K_M) reduces memory usage and speeds up inference but may affect output quality.
- Hardware: CPU performance benefits from AVX2/AVX512 support; GPU acceleration is available via CUDA or Metal backends.
- Context Length: Longer context windows increase memory usage and slow down processing.
As a general guideline:
- A 7B Q4 quantized model runs at ~5-10 tokens/second on modern CPUs
- Smaller models (e.g., Phi-2) can achieve 20+ tokens/second
- GPU acceleration can significantly improve throughput
Yes! Feature requests are welcome. You can:
- Open an issue on the GitHub repository with the "feature request" label
- Participate in discussions on the project's community channels
- Contribute code directly via pull requests
Popular feature requests include:
- Support for additional model architectures
- Enhanced UI customization options
- Multi-modal input (image + text)
- Plugin system for extending functionality
To report bugs:
- Check the existing issues on GitHub to avoid duplicates
- Create a new issue with the "bug" label
- Include:
- Steps to reproduce
- Expected vs. actual behavior
- Screenshots or logs if applicable
- System information (OS, hardware, model used)
The development team reviews all reports and prioritizes fixes based on impact and feasibility.
-
GGUF (General GPU Format): A file format for storing large language models, designed for efficient loading and inference. Originally developed for llama.cpp, it's widely used in local LLM applications.
-
Quantization: The process of reducing the numerical precision of model weights (e.g., from 32-bit floats to 4-bit integers) to decrease model size and improve inference speed with minimal quality loss.
-
Candle: A machine learning framework written in Rust that powers Oxide-Lab's inference engine. It provides tensor operations and model execution capabilities with support for multiple backends (CPU, CUDA, Metal).
-
Tauri: A framework for building desktop applications using web technologies (HTML, CSS, JavaScript) with a Rust backend. Oxide-Lab uses Tauri for cross-platform desktop deployment.
-
Svelte: A frontend JavaScript framework used to build the user interface of Oxide-Lab. It compiles components to highly efficient vanilla JavaScript at build time.
-
Hugging Face Hub: A platform for hosting and sharing machine learning models, datasets, and applications. Oxide-Lab integrates with Hugging Face to discover and download models.
-
Tokenizer: A component that converts text into numerical tokens that can be processed by a language model. Each model uses a specific tokenizer compatible with its training data.
-
Inference: The process of using a trained machine learning model to generate predictions or responses based on input data.
-
Context Window: The maximum number of tokens a language model can process in a single interaction. Larger context windows allow for longer conversations or document processing.
-
KV Cache (Key-Value Cache): An optimization technique that stores intermediate attention layer results during inference to avoid recomputation and speed up token generation.
For detailed release notes, including new features, bug fixes, and breaking changes, refer to the CHANGELOG.md file in the repository.
The changelog follows semantic versioning (MAJOR.MINOR.PATCH) and includes:
- Version numbers and release dates
- Summary of changes for each release
- Migration guides for breaking changes
- Credits for contributors
Regular updates are published to improve stability, add features, and support new models.
Section sources
- CHANGELOG.md
For in-depth technical information about the implementation architecture, backend systems, and integration patterns, refer to the TECHNICAL.md document in the repository.
This document covers:
- System architecture overview
- Data flow between frontend and backend
- Model loading and inference pipeline
- Memory management strategies
- Security considerations
- Performance optimization techniques
It is intended for developers and advanced users who want to understand or contribute to the codebase.
Section sources
- TECHNICAL.md
Oxide-Lab has been enhanced with improved CodeMirror integration and advanced markdown rendering capabilities. These features provide a richer user experience when working with code and formatted content.
Code blocks are rendered using CodeMirror with the following features:
- Interactive Code Editor: All code blocks are rendered as interactive CodeMirror components
- Syntax Highlighting: Supported languages include JavaScript, Python, JSON, CSS, SQL, and HTML
- Copy Button: Each code block includes a copy button with visual feedback (changes to checkmark after successful copy)
- Language Label: Code blocks display the detected or specified language
- Line Numbers: All code blocks show line numbers
- Auto-detection: Code language is automatically detected based on content patterns
Section sources
- codemirror-renderer.ts
- src/lib/chat/utils/language-detector.ts
Oxide-Lab automatically enhances specific technical terms by wrapping them in code tags:
-
Enhanced Terms: Common technical terms like
pytorch,tensorflow,javascript,python,json,docker, andkubernetesare automatically wrapped in backticks when they appear outside of code blocks - Preservation in Code: Technical terms within code blocks or inline code remain unchanged to preserve code integrity
- Context Awareness: The enhancement system respects markdown syntax and does not modify content within code blocks, quotes, or other structured elements
Section sources
- markdown.ts
- src/lib/chat/utils/markdown-enhancer.ts
Oxide-Lab supports a comprehensive set of markdown features:
- Basic Syntax: Headings, text formatting (bold, italic, strikethrough), lists, links, and images
-
Extended Syntax: Tables with alignment, definition lists, highlighting (==text==), subscript (H
2O), superscript (X^2^) -
Mathematical Expressions: Inline (
$E = mc^2$ ) and block ($$\int_{-\infty}^{\infty} e^{-x^2} dx = \sqrt{\pi}$$ ) mathematical expressions -
Interactive Elements: Collapsible sections using
<details>and<summary>tags -
Keyboard Keys: Proper rendering of keyboard shortcuts using
<kbd>tags (e.g., Ctrl+C) - Bidirectional Text: Support for right-to-left languages with proper direction handling
Section sources
- markdown.ts
- src/lib/chat/parser/markdown-parser.ts
Referenced Files in This Document
- tauri.conf.json - Updated in recent commit
- package.json - Updated in recent commit
- CHANGELOG.md
- TECHNICAL.md
- codemirror-renderer.ts
- markdown.ts