Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

roadmap: Jan supports Tauri as an alternative build option #4485

Open
1 of 9 tasks
louis-jan opened this issue Jan 20, 2025 · 0 comments
Open
1 of 9 tasks

roadmap: Jan supports Tauri as an alternative build option #4485

louis-jan opened this issue Jan 20, 2025 · 0 comments
Assignees
Labels
category: mobile Mobile application issues move to Cortex
Milestone

Comments

@louis-jan
Copy link
Contributor

louis-jan commented Jan 20, 2025

Problems

Goals

  • Jan can be "packaged" to different platforms including Mobile.
  • Better user installation experience.

Current Architecture

  • Jan's frontend application is extensible, with core APIs and logic implementations primarily implemented from core extensions (engine management, conversational, model, cortex...). Requests from UI components to the extension's implementations.
  • Application extensions can run on two different hosts: the browser and NodeJS. Need to look into it when transitioning to Tauri.
  • Jan's backend is the cortex.cpp server, which processes most requests.
  • There are native APIs that are bridged from the browser to the Electron main host, which run on NodeJS. E.g. setNativeTheme..

Desired Behavior

  • Jan shouldn't be locked into one toolkit. Added src-tauri as an alternative bundler. Checkout refactor/support-tauri-toolkit
  • Support running cortex-server as a sidecar binary for long-term operations. It currently runs as a sidecar process without a watchdog (self-restart) mechanism. We need to improve the process spawner and also support multi-architectures binary support (bundle script?).
  • Distribute default llama.cpp engine variant. See feat: local engine management #4334
  • Implement native commands like setNativeTheme and factoryReset. Some app functions require native APIs to work, as seen in the link provided. core/src/browser
  • Deprecate Node Extension Host. It now supports only browser host, eliminating the need for multiple entries in the extension implementation. Some of these refactoring would really help:
  • Deprecate the Jan server proxy to reduce the dependency on the Node host. (There's an ongoing API Server revamp issue for this.)
  • CI CD for code signing, auto-updater

Additional Context

Image

Notes:
To run from refactor/support-tauri-toolkit branch:

  1. Copy cortex-server binary into src-tauri/binaries, rename it accordingly as described here https://v2.tauri.app/develop/sidecar/
  2. Run yarn dev:tauri
@louis-jan louis-jan self-assigned this Jan 20, 2025
@github-project-automation github-project-automation bot moved this to Investigating in Menlo Jan 20, 2025
@louis-jan louis-jan added good first issue Good for newcomers category: mobile Mobile application issues move to Cortex and removed good first issue Good for newcomers labels Jan 20, 2025
@louis-jan louis-jan added this to the v0.5.16 milestone Jan 20, 2025
@imtuyethan imtuyethan changed the title idea: Jan supports Tauri as an alternative build option roadmap: Jan supports Tauri as an alternative build option Jan 20, 2025
@imtuyethan imtuyethan modified the milestones: v0.5.16, v0.5.17 Jan 21, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
category: mobile Mobile application issues move to Cortex
Projects
Status: Investigating
Development

No branches or pull requests

2 participants