Commit Graph

110 Commits (main)

Author SHA1 Message Date
Meng Zhang b2a92f1cf7
test(golden): switch to cargo-insta for better developer experience (#1018) 2023-12-11 04:40:41 +00:00
Eric e0d0133d86
feat: support build tabby on windows (#948)
* feat: update config to support build on windows

* resolve comment

* update release.yml

* resolve comment
2023-12-11 12:14:49 +08:00
Clément Joly c461a835f9
chore: update rusqlite, rusqlite_migration and tokio-rusqlite (#1017)
I’ve released a new beta version of rusqlite_migration today and I’ve
renamed the `async-tokio-rusqlite` feature that you use to
`alpha-async-tokio-rusqlite`. I suggest updating dependencies as done in
this PR. By the way, if you would like to share feedback on the async
APIs, feel free to use this conversation:
https://github.com/cljoly/rusqlite_migration/discussions/127

Reading the release notes from [tokio-rusqlite][1], the main breaking
change is to the method `Connection::call`:

> - **breaking:** `Connection::call` now takes `tokio_rusqlite::Result` instead
>   of `rusqlite::Result`.

My understanding is that we can either deal with a `Result<Result<…>>`
or call `Connection::call_unwrap`, which could panic if the connection
is closed. I’ve opted for using only `Connection::call` and,
effectively, flattening the `Result<Result<…>>`, to limit the potential
for panics.

[1]: https://github.com/programatik29/tokio-rusqlite/blob/master/CHANGELOG.md#050-25-nov-2023
2023-12-11 10:59:05 +08:00
Eric 1fa0106ca3
feat: fork aim-downloader into crates/aim-downloader to make it compatible with windows (#996)
* feat: support build on windows

* revert change

* feat: migrate aim source code

* revert change

* [autofix.ci] apply automated fixes

* fix test

* remove test dir, skip test

* fix test

---------

Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com>
2023-12-10 10:48:21 +08:00
Meng Zhang 74f81cb02a
refactor: Use DateTime<Utc> for sqlite datetime fields (#946)
* refactor: use DateTime<Utc> for RefreshToken.expires_at

* refactor: set other date time fields to be DateTime<Utc>

* [autofix.ci] apply automated fixes

* [autofix.ci] apply automated fixes (attempt 2/3)

---------

Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com>
2023-12-05 15:47:10 +00:00
Eric 73442c33a7
feat: implement refresh_token API (#938)
* feat: impl refresh token api

* resolve comment
2023-12-04 13:26:24 +08:00
Meng Zhang f3a31082ef
refactor(webserver): extract RegisterError and TokenAuthError and add unit test (#936)
* refactor: extract RegisterError and TokenAuthError

* update

* update test

* fix token auth test

* cleanup

* fix

* add down operations

* cleanup error type

* [autofix.ci] apply automated fixes

* update

* cleanup

* Process InvalidationErrors directly

* update error handling

---------

Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com>
2023-12-02 04:10:42 +00:00
Eric 79e704458d
feat(ee): implement user authentication api (#912)
* feat: impl user authentication

* resolve comments

* fix validation code name

* resolve comment
2023-12-01 10:22:53 +08:00
Meng Zhang 30d2ba5f00
test: add chat golden test (#919)
* test: add chat golden test

* update
2023-11-30 08:26:55 +00:00
Meng Zhang e92a8c8005 Release 0.7.0-dev
http-api-bindings@0.7.0-dev
juniper-axum@0.7.0-dev
llama-cpp-bindings@0.7.0-dev
tabby@0.7.0-dev
tabby-common@0.7.0-dev
tabby-download@0.7.0-dev
tabby-inference@0.7.0-dev
tabby-scheduler@0.7.0-dev
tabby-webserver@0.7.0-dev

Generated by cargo-workspaces
2023-11-27 14:58:58 +08:00
Meng Zhang b1481b0e2e
chore: release 0.6.0 (#882)
* add loadtest

* release 0.6.0

* Release 0.6.0-rc.0

http-api-bindings@0.6.0-rc.0
juniper-axum@0.6.0-rc.0
llama-cpp-bindings@0.6.0-rc.0
tabby@0.6.0-rc.0
tabby-common@0.6.0-rc.0
tabby-download@0.6.0-rc.0
tabby-inference@0.6.0-rc.0
tabby-scheduler@0.6.0-rc.0
tabby-webserver@0.6.0-rc.0

Generated by cargo-workspaces

* Release 0.6.0-rc.1

http-api-bindings@0.6.0-rc.1
juniper-axum@0.6.0-rc.1
llama-cpp-bindings@0.6.0-rc.1
tabby@0.6.0-rc.1
tabby-common@0.6.0-rc.1
tabby-download@0.6.0-rc.1
tabby-inference@0.6.0-rc.1
tabby-scheduler@0.6.0-rc.1
tabby-webserver@0.6.0-rc.1

Generated by cargo-workspaces

* Release 0.6.0-rc.2

http-api-bindings@0.6.0-rc.2
juniper-axum@0.6.0-rc.2
llama-cpp-bindings@0.6.0-rc.2
tabby@0.6.0-rc.2
tabby-common@0.6.0-rc.2
tabby-download@0.6.0-rc.2
tabby-inference@0.6.0-rc.2
tabby-scheduler@0.6.0-rc.2
tabby-webserver@0.6.0-rc.2

Generated by cargo-workspaces

* Release 0.6.0

http-api-bindings@0.6.0
juniper-axum@0.6.0
llama-cpp-bindings@0.6.0
tabby@0.6.0
tabby-common@0.6.0
tabby-download@0.6.0
tabby-inference@0.6.0
tabby-scheduler@0.6.0
tabby-webserver@0.6.0

Generated by cargo-workspaces
2023-11-27 14:57:45 +08:00
Eric e78cc1f844
feat: add api to serve files under repositories (#851)
* feat: add api to serve files under repositories

* resolve comments

* resolve comments

* Update repositories.rs

* Update lib.rs

* resolve comment

---------

Co-authored-by: Meng Zhang <meng@tabbyml.com>
2023-11-24 01:58:56 +00:00
Meng Zhang 2192cc718f
feat: implement rust cargo.lock dependency extraction (#874)
* feat: implement rust cargo.lock dependency extraction

* [autofix.ci] apply automated fixes

---------

Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com>
2023-11-23 08:35:19 +00:00
sonique6784 b9cb5a025e
feat: add support for Kotlin language (#813)
* feat: add support for Kotlin

* Update programming-languages.md

* Update Cargo.toml

* fix: kotlin missing TAGGING_QUERY

* docs: remove 0.5.0 warning as tabby adapt same format for remote / local storage

* feat: make --model optional, so user can start a chat only instance (#817)

* fix: mark tabby-ui as yarn managed

* fix: rust build caused by 1.74.0 release (#819)

* chore: exclude experimental directory for language stats

* chore: exclude ee/tabby-webserver/ui to language stats

* fix: move db path, fix compile error (#820)

* feat(vscode): Add dont-show-again for warnings.  Add online help links. (#821)

* refactor: delete contrib/jetson/Dockerfile as it's no longer compatible post 0.5

feel free to sending pr of adding it back if you get it work with llama.cpp based docker image

* feat(vim): update tabby-agent. (#824)

* feat(intellij): Add dont-show-again for warnings. Add more online help links. (#823)

* feat: implement basic dependency detection for python / rust (#825)

* refactor: extract tags mod for dataset.rs

* feat: implement basic dependency detection for python / rust

* fix: keep only direct dependency, clean up path (#827)

* feat: add support for Kotlin

* Update Cargo.toml

* fix: adjustment post rebase

* fix: added kotlin.scm to cover query tags

* fix: updated kotlin.scm

* remove definition import

Co-authored-by: Meng Zhang <meng@tabbyml.com>

* remove typealias

Co-authored-by: Meng Zhang <meng@tabbyml.com>

---------

Co-authored-by: Meng Zhang <meng@tabbyml.com>
Co-authored-by: Eric <illuminating.me@gmail.com>
Co-authored-by: Zhiming Ma <codes.icy@gmail.com>
2023-11-23 09:31:23 +08:00
Jonathan Poisson 6dabecc3ee
feat: add Prometheus support to Tabby. (#838)
* Added Prometheus support to Tabby.

1) Added `axum-prometheus` to Cargo.toml

2) Added `metrics.rs` as a simple route to produce a metrics endpoint with prometheus-formatted events

3) Added `/v1/metrics` endpoint with API doc entry

4) Added the `PrometheusLayer` to the root layers.

This change effectively allows for external Prometheus to scrape metrics from Tabby during execution in order to monitor operations (resources, timings and overall usage).

* changed application/text to text/plain to adhere to rfc1341

* Update Makefile

* Update Makefile

* Update Makefile

* Update Makefile

* Update Makefile

* Update Makefile

* - Reworked code to fit upstream changes
- Added Prometheus layer and handle to worker.rs

* Update CHANGELOG.md

* [autofix.ci] apply automated fixes

* Simplified worker metrics route definition

* [autofix.ci] apply automated fixes

* [autofix.ci] apply automated fixes (attempt 2/3)

---------

Co-authored-by: Meng Zhang <meng@tabbyml.com>
Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com>
2023-11-19 15:40:57 -08:00
Meng Zhang a12f741565
feat: use remote code search in workers (#833)
* refactor: lift tabby::api::code to tabby_common::api::code

* feat: use remote code search in workers

* update

* handle errors
2023-11-18 23:45:00 +00:00
Meng Zhang b862d9d100
feat: support worker events logging (#831)
* refactor: lift tabby::api::event to tabby_common::api::event

* feat: allow worker write logs to webserver::api::Hub service

* refactor: implement RawEventLogger on HubClient directly

* fix: build context in request's scope
2023-11-18 23:17:54 +00:00
Meng Zhang 530e142d63
fix: keep only direct dependency, clean up path (#827) 2023-11-18 08:50:16 +00:00
Meng Zhang 1fe0922c72
feat: implement basic dependency detection for python / rust (#825)
* refactor: extract tags mod for dataset.rs

* feat: implement basic dependency detection for python / rust
2023-11-18 08:05:48 +00:00
Eric ce338c7436
feat: validate token during worker registration (#803)
* feat: validate token during worker registration

* [autofix.ci] apply automated fixes

* [autofix.ci] apply automated fixes (attempt 2/3)

* resolve comments

* reslove comments

* format file, update schema file

* resolve comment

---------

Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com>
2023-11-16 23:05:39 -08:00
Meng Zhang 618009373b
refactor: use tarpc for easier worker <-> hub communication (#781)
* temp

* generic

* adapt client

* rename to api

* Revert "rename to api"

This reverts commit 8a51b24fecd76a78e6df576ec51605b8d8418975.

* refactor: remove uselss mutation

* remove useless connection

* cleanup api structure

* restructure

* add webserver api error

* webserver.rs -> server.rs

* rename service to Hub

* update schema

* update naming

* shrink features

* update

* mv worker.rs -> server/worker.rs
2023-11-14 12:48:20 -08:00
Meng Zhang e521f0637c
feat: add worker command worker::completion and worker::chat (#778) 2023-11-13 23:21:57 +00:00
Meng Zhang e0017cadec
refactor: extract routes/ to share routes between commands (#774)
* refactor: extract routes/ to share routes between commands

* refactor: extract events api

* extract EventLogger service

* lift api into sub packages

* services completions -> completion

* remove useless code

* fix test
2023-11-13 06:24:20 +00:00
Meng Zhang febfa18e4a
refactor: move code api to tabby/serve (#771) 2023-11-12 22:58:15 +00:00
Meng Zhang 3a9b4d9ef5
feat: add graphql interface to tabby-webserver (#770)
feat: add graphql interface to tabby-webserver
2023-11-12 14:52:28 -08:00
Meng Zhang 15f768a971 feat: add tabby-webserver as distribution layer of tabby #769 2023-11-12 13:07:07 -08:00
Meng Zhang d7180ec7b9 fix: remove useless hyper-reverse-proxy 2023-11-11 14:42:57 -08:00
Meng Zhang 7695a667bb refactor: move tabby/src/search.rs -> tabby/src/services/search.rs 2023-11-11 14:42:57 -08:00
Meng Zhang 73a76a3d8e
feat(scheduler): add a tqdm bar for scheduler job to better present the remaining time. (#754)
* feat(scheduler): add a tqdm bar for scheduler job to better present the
remaining time.

* update

* add changelog
2023-11-10 19:52:07 +00:00
Meng Zhang b510f61aca
refactor: extract tabby_common::api::code / tabby_common::index::CodeSearchSchema (#743)
* refactor: extract tabby_common::api::code

mark CodeSearch being Send + Sync

* extract CodeSearchSchema
2023-11-10 10:11:13 -08:00
Meng Zhang b51520062a
refactor: extract ChatState -> ChatService (#730) 2023-11-08 22:12:29 +00:00
leiwen83 3fb8445747
feat: supports java (#715)
* feat: add java language configuration

* feat: add java repository context support

* Update programming-languages.md

* added rev to tree-sitter-java

Signed-off-by: Lei Wen <wenlei03@qiyi.com>
Co-authored-by: Lei Wen <wenlei03@qiyi.com>
2023-11-07 23:59:00 -08:00
Meng Zhang 9344c32b31
fix: when there's an error happens in background inference loop, it should exit the process (#713) 2023-11-06 20:41:49 +00:00
Meng Zhang 00e0c4fddc
chore: add machete check to ensure no unused dependencies (#701)
* refactor: remove useless dependencies

* add machete
2023-11-05 02:48:05 +00:00
Meng Zhang 33ef27ba30
feat: support downloading resume (#700) 2023-11-05 02:38:06 +00:00
Meng Zhang fc9c9f644b Release 0.6.0-dev
http-api-bindings@0.6.0-dev
llama-cpp-bindings@0.6.0-dev
tabby@0.6.0-dev
tabby-common@0.6.0-dev
tabby-download@0.6.0-dev
tabby-inference@0.6.0-dev
tabby-scheduler@0.6.0-dev

Generated by cargo-workspaces
2023-11-03 18:04:12 -07:00
Meng Zhang ec8d88de0d
chore: release 0.5.0 (#697)
* Release 0.5.0-rc.0

http-api-bindings@0.5.0-rc.0
llama-cpp-bindings@0.5.0-rc.0
tabby@0.5.0-rc.0
tabby-common@0.5.0-rc.0
tabby-download@0.5.0-rc.0
tabby-inference@0.5.0-rc.0
tabby-scheduler@0.5.0-rc.0

Generated by cargo-workspaces

* fix: docker branch tag should only generate when not empty

* Release 0.5.0-rc.1

http-api-bindings@0.5.0-rc.1
llama-cpp-bindings@0.5.0-rc.1
tabby@0.5.0-rc.1
tabby-common@0.5.0-rc.1
tabby-download@0.5.0-rc.1
tabby-inference@0.5.0-rc.1
tabby-scheduler@0.5.0-rc.1

Generated by cargo-workspaces

* fix: handlebar syntax in meta action

* Release 0.5.0-rc.2

http-api-bindings@0.5.0-rc.2
llama-cpp-bindings@0.5.0-rc.2
tabby@0.5.0-rc.2
tabby-common@0.5.0-rc.2
tabby-download@0.5.0-rc.2
tabby-inference@0.5.0-rc.2
tabby-scheduler@0.5.0-rc.2

Generated by cargo-workspaces

* fix: handlebar syntax in meta action

* Release 0.5.0-rc.3

http-api-bindings@0.5.0-rc.3
llama-cpp-bindings@0.5.0-rc.3
tabby@0.5.0-rc.3
tabby-common@0.5.0-rc.3
tabby-download@0.5.0-rc.3
tabby-inference@0.5.0-rc.3
tabby-scheduler@0.5.0-rc.3

Generated by cargo-workspaces

* docs: update change log and docs

* fix: collect_snippet should handle NotReady error

* Release 0.5.0-rc.4

http-api-bindings@0.5.0-rc.4
llama-cpp-bindings@0.5.0-rc.4
tabby@0.5.0-rc.4
tabby-common@0.5.0-rc.4
tabby-download@0.5.0-rc.4
tabby-inference@0.5.0-rc.4
tabby-scheduler@0.5.0-rc.4

Generated by cargo-workspaces

* Release 0.5.0

http-api-bindings@0.5.0
llama-cpp-bindings@0.5.0
tabby@0.5.0
tabby-common@0.5.0
tabby-download@0.5.0
tabby-inference@0.5.0
tabby-scheduler@0.5.0

Generated by cargo-workspaces
2023-11-03 18:02:03 -07:00
Meng Zhang 0e4a2d2a12
feat: simplify download management, model file should be able to indi… (#690)
* feat: simplify download management, model file should be able to individually introduced

* fix typo

* update local model support

* update spec back

* update spec

* update

* update
2023-11-02 16:01:04 -07:00
Meng Zhang 36ffeb63f1 refactor: remove useless rust-cxx-cmake-bridge 2023-10-31 17:58:21 -07:00
Meng Zhang 296342efd8
refactor: use llama.cpp tokenizer (#683)
* refactor: switch to llama.cpp tokenizer to simplify implementation

* refactor: remove tokenizer dependency from tabby

* refactor: renaming decoding to stop condition

* refactor: remove tokenizer dependency

* refactor: remove submodule

* chore: update formatting

* move tokenization to c++
2023-10-31 22:16:09 +00:00
Meng Zhang 8dc5526091 Revert "feat: supports PHP (#634)"
This reverts commit 688e7d75b5.
2023-10-28 23:02:10 -07:00
Meng Zhang 23bd542cec
feat: switch cuda backend to llama.cpp (#656)
* feat: switch cuda backend to llama.cpp

* fix

* fix
2023-10-27 13:41:22 -07:00
Meng Zhang 82971758c5 fix: Cargo.lock versioning 2023-10-27 12:26:49 -07:00
Oleksandr 688e7d75b5
feat: supports PHP (#634)
* feat: add php language configuration

* feat: add php repository context support

* docs: update documentation to indicate php support

* Update programming-languages.md

* added rev to tree-sitter-php

---------

Co-authored-by: Aleksandr Tarabaka <aleksandr.tarabaka@privatbank.ua>
Co-authored-by: Meng Zhang <meng@tabbyml.com>
2023-10-26 19:27:57 +00:00
Meng Zhang e171776774 Release 0.5.0-dev
ctranslate2-bindings@0.5.0-dev
http-api-bindings@0.5.0-dev
llama-cpp-bindings@0.5.0-dev
rust-cxx-cmake-bridge@0.5.0-dev
tabby@0.5.0-dev
tabby-common@0.5.0-dev
tabby-download@0.5.0-dev
tabby-inference@0.5.0-dev
tabby-scheduler@0.5.0-dev

Generated by cargo-workspaces
2023-10-24 13:05:33 -07:00
Meng Zhang 422b27d2ed
feat: support local directory for Repository.git_url (#622) 2023-10-24 01:29:38 +00:00
Chromium da6109c5af
feat: Add Ruby Language Support (#597)
* feat: add Ruby Support

* fix: address the comments

* Update dataset.rs

---------

Co-authored-by: Meng Zhang <meng@tabbyml.com>
2023-10-20 18:48:37 +00:00
Meng Zhang 98761c2a79
chore: adjust loadtest value based on release v0.3.0 (#572)
* chore: adjust loadtest value based on release v0.3.0

* Update default.loadtest.js
2023-10-16 15:13:26 -07:00
Meng Zhang 1503ef6aba
test: add golden test for tabby server (#566)
* test: add golden test for tabby server

* fix
2023-10-16 08:06:37 +00:00
Meng Zhang 99a7053b6f
refactor: extract language configuration into individual toml file (#564)
* refactor: extract language configuration into individual toml file

* feat: add golang language configuration (#565)
2023-10-16 00:24:44 +00:00