Skip to content

v0.2.69

Choose a tag to compare

@github-actions github-actions released this 25 Feb 05:50
· 36 commits to main since this release
7b2f3e0

Downloads

Desktop App

Platform Download Size
Windows (x64) CachiBot-Setup-0.2.69-win.exe 153.9 MB
macOS (Apple Silicon) CachiBot-0.2.69-mac.dmg 214.0 MB
Linux (x64 AppImage) CachiBot-0.2.69-linux.AppImage 206.6 MB
Linux (x64 .deb) CachiBot-0.2.69-linux.deb 172.3 MB
Linux (x64 .rpm) CachiBot-0.2.69-linux.rpm 173.4 MB

Mobile App

Platform Download Size
Android (APK) CachiBot-0.2.69.apk 79.8 MB

Downloads become available once the build pipeline completes (~10 min after release).

macOS users: This build is not yet notarized by Apple. After installing, open Terminal and run:

xattr -cr /Applications/CachiBot.app

Then open the app normally. This only needs to be done once.

Python Package (pip)

pip install cachibot==0.2.69

Changes

The bots were getting pretty capable at generating files — seemed rude not to give them somewhere to put them. This PR adds a full task board and asset system to rooms, introduces a dedicated utility model slot for cheap background tasks, and polishes the bot creation wizard and desktop experience.

Highlights

  • Rooms now have a Kanban-style task board with drag-friendly columns (To Do, In Progress, Blocked, Done) and priority/label support
  • Files generated by bots are automatically captured as assets and attached to the conversation
  • Upload, download, and manage file assets in both rooms and chats via a new drag-and-drop Assets panel
  • Bots can now have a dedicated utility model for background work like name generation and JSON extraction
  • Desktop app supports "Start on Boot" from the system tray
  • Bot creation wizard warns before you accidentally close it mid-flow
Technical changes

Room Tasks (full stack)

  • New RoomTask SQLAlchemy model and Alembic migration (010_room_tasks_and_assets.py) with status, priority, labels, position, and assignee fields
  • RoomTaskRepository with CRUD, status filtering, and position-based reordering
  • room_tasks.py API router with GET/POST/PATCH/DELETE endpoints plus /reorder for drag-and-drop
  • RoomTasksView.tsx Kanban board component with inline task creation, status transitions, and priority badges
  • New room-tasks.ts API client and Zustand store slice in rooms.ts

Asset Management (full stack)

  • New Asset SQLAlchemy model and Pydantic schemas (AssetResponse, AssetOwnerType)
  • AssetRepository for CRUD keyed by owner_type/owner_id (room or chat)
  • Dual API routers (room_asset_router, chat_asset_router) with upload, download, metadata, and delete endpoints
  • AssetsView.tsx reusable component with drag-and-drop upload zone, file type icons, and download/delete actions
  • chat-assets.ts Zustand store for per-chat asset state
  • Auto-capture in CachibotAgent: file_write results for media/binary types are automatically persisted as chat assets

Utility Model Slot

  • New ModelResolver service (model_resolver.py) centralizing the fallback chain: per-bot slot > per-bot DB override > global config > main model
  • resolve_utility_model() and resolve_main_model() replace duplicated helpers in name_generator.py and bot_creation_service.py
  • API endpoints GET/PUT /models/utility/default for persisting the global utility model
  • Frontend: utility model selector in both App Settings and the bot creation wizard's Appearance step
  • useModelsStore extended with defaultUtilityModel and updateDefaultUtilityModel

Name Generator Refactor

  • Replaced raw httpx chat completion calls and manual JSON extraction with Prompture's extract_with_model() structured extraction
  • Removed _chat_completion(), _extract_json(), and _resolve_utility_model() in favor of ModelResolver and Pydantic result models (NamesResult, SimpleNamesResult)

Provider Extra Keys

  • EXTRA_KEY_META registry in providers.py with type/label/group metadata for Azure sub-keys (endpoints, deployment IDs, per-service API keys)
  • list_providers now returns extra_keys array with masked values for each provider
  • New updateKey/removeKey actions in useProvidersStore for managing individual extra keys
  • ApiKeysSettings UI supports inline editing, replace mode, and visibility toggling for extra keys per provider
  • Collapsible Azure configuration section in the onboarding wizard's ProviderStep

Desktop Improvements

  • "Start on Boot" toggle: setStartOnBoot/getStartOnBoot helpers using Electron's app.setLoginItemSettings, persisted in settings JSON, synced on launch
  • Tray context menu rebuilt as a function (rebuildTrayMenu) with new "Show Logs" and "Start on Boot" items; removed "Clear Cache & Restart"
  • IPC handlers startup:get and startup:set exposed via preload
  • CSP updated to allow media-src 'self' data: blob: for asset playback

Bot Creation Wizard

  • Removed TemplateSelectStep and the template creation method entirely
  • Added confirm-close overlay when user has progressed past the first step (Escape toggles it)
  • Dialog now accepts closeOnBackdrop and closeOnEscape props for conditional dismissal
  • Appearance step pre-fills model from system default and adds utility model selector
  • Details step: loading messages, suggestion chips parsed from placeholders, and model-not-configured warning

Legacy DB Handling

  • reset_legacy_database and keep_legacy_database now allow unauthenticated access when legacy_db_detected is true (users can't log in against the V1 schema)
  • db.py gains retry logic for database file rename operations

Misc

  • Hardcoded DEFAULT_MODEL in models.py changed from moonshot/kimi-k2.5 to empty string — users must set a model explicitly
  • dev.ps1 expanded with database reset helper
  • Updated Discord invite links across all README translations
  • Removed placeholder "Code Display" and "Chat Message Style" settings that had no backing logic
  • New app-settings.less and assets-view.less stylesheets; theme variable cleanup across multiple .less files

Details