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

release 0.9 #1574

Closed
wants to merge 23 commits into from
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
23 commits
Select commit Hold shift + click to select a range
41f48e7
feat(db): Create Cache type which can be used to cache values for db …
boxbeam Feb 28, 2024
8162476
refactor(ui): add loading debounce (#1569)
liangfung Feb 28, 2024
ebd2937
feat: add tabby-email to build tabby email templates (#1573)
wsxiaoys Feb 28, 2024
ebea511
feat(db): Implement db-layer user count cache (#1567)
boxbeam Feb 28, 2024
1aa8df4
docs: Fix rocm blog with new usage instructions (#1527)
boxbeam Feb 29, 2024
087c005
feat(agent): support fetching server-provided client-side config. (#1…
icycodes Feb 29, 2024
e7ed43e
fix(ui): display correct theme icon (#1577)
liangfung Feb 29, 2024
ce90188
fix: fix caddy redirect for api page (#1578)
wsxiaoys Feb 29, 2024
2b7a303
feat(agent&vscode): add support for agent log to vscode output. (#1550)
icycodes Feb 29, 2024
2b54be8
fix(ui): dashboard ui (#1580)
liangfung Feb 29, 2024
fa45baf
fix(vscode): fix keybinding next word (cmd+right) for macOS. (#1579)
icycodes Feb 29, 2024
18fdf8a
fix(webserver): Better error message when the email does not match th…
boxbeam Feb 29, 2024
7f90102
refactor(db, webserver): Refactor InvitationDao to use query_as! (#1555)
boxbeam Feb 29, 2024
03f3304
fix: disable LLAMA_NATIVE in build (#1576)
wsxiaoys Feb 29, 2024
2583919
fix(agent): Do not export FileDataStore to a wide scope. (#1592)
icycodes Mar 1, 2024
e076316
chore(agent): bump tabby agent version to 1.4.2. (#1595)
icycodes Mar 1, 2024
c8aef1e
chore(vim): bump vim plugin version to 1.4.0. (#1598)
icycodes Mar 1, 2024
7a6da17
chore(vscode): bump vsce version to 1.4.0. (#1596)
icycodes Mar 1, 2024
dec3fef
chore(intellij): bump intellij plugin version to 1.4.0. (#1597)
icycodes Mar 1, 2024
8340de2
fix(webserver): add seat count check in oauth self-registeration flow…
wsxiaoys Mar 1, 2024
60f472d
feat(tabby): Add experimental vulkan support (#1588)
boxbeam Mar 1, 2024
ef15f97
fix(metal): fix metal build of tabby (#1601)
wsxiaoys Mar 1, 2024
a7f10f5
fix(webserver): /v1beta/server_setting should be protected by auth (#…
wsxiaoys Mar 3, 2024
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion .gitmodules
Original file line number Diff line number Diff line change
@@ -1,3 +1,3 @@
[submodule "crates/llama-cpp-bindings/llama.cpp"]
path = crates/llama-cpp-bindings/llama.cpp
url = https://github.com/TabbyML/llama.cpp
url = https://github.com/ggerganov/llama.cpp
4 changes: 4 additions & 0 deletions Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,10 @@ update-ui:
cd ee/tabby-ui && yarn build
rm -rf ee/tabby-webserver/ui && cp -R ee/tabby-ui/out ee/tabby-webserver/ui

update-email-templates:
cd ee/tabby-email && yarn export
rm -rf ee/tabby-webserver/email_templates && cp -R ee/tabby-email/out ee/tabby-webserver/email_templates

caddy:
caddy run --watch --config ee/tabby-webserver/development/Caddyfile

Expand Down
2 changes: 1 addition & 1 deletion clients/example-vscode-lsp/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,7 @@
"devDependencies": {
"@types/vscode": "^1.82.0",
"esbuild-plugin-copy": "^2.1.1",
"tabby-agent": "1.4.0-dev"
"tabby-agent": "1.4.2"
},
"dependencies": {
"vscode-languageclient": "^9.0.1"
Expand Down
12 changes: 12 additions & 0 deletions clients/intellij/CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,3 +1,15 @@
## 1.4.0

### Features

- Added support for loading system-wide CA certificates. Previously, only Node.js bundled CA certificates were used.
- Added support for loading configurations from Tabby server, including `Disabling Client-side Telemetry`.
- Removed the notification when disconnected from Tabby server, keep only status bar icon.

### Fixes

- Fixed the unexpected behaviors that occur when a closed project is reopened within the same IDE process.

## 1.3.2

### Fixes:
Expand Down
2 changes: 1 addition & 1 deletion clients/intellij/build.gradle.kts
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@ plugins {
}

group = "com.tabbyml"
version = "1.4.0-dev"
version = "1.4.0"

repositories {
mavenCentral()
Expand Down
194 changes: 97 additions & 97 deletions clients/intellij/node_scripts/tabby-agent.js

Large diffs are not rendered by default.

4 changes: 2 additions & 2 deletions clients/intellij/package.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"name": "intellij-tabby",
"version": "1.4.0-dev",
"version": "1.4.0",
"description": "IntelliJ plugin for Tabby AI coding assistant.",
"repository": "https://github.com/TabbyML/tabby",
"scripts": {
Expand All @@ -10,6 +10,6 @@
"devDependencies": {
"cpy-cli": "^4.2.0",
"rimraf": "^5.0.1",
"tabby-agent": "1.4.0-dev"
"tabby-agent": "1.4.2"
}
}
7 changes: 7 additions & 0 deletions clients/tabby-agent/CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,3 +1,10 @@
## 1.4.1

### Features

- Added support for loading system-wide CA certificates. Previously, only Node.js bundled CA certificates were used.
- Added support for loading configurations from Tabby server, including `Disabling Client-side Telemetry`.

## 1.3.3

### Features
Expand Down
20 changes: 19 additions & 1 deletion clients/tabby-agent/openapi/tabby.json
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@
"title": "Tabby Server",
"description": "\n[![tabby stars](https://img.shields.io/github/stars/TabbyML/tabby)](https://github.com/TabbyML/tabby)\n[![Join Slack](https://shields.io/badge/Join-Tabby%20Slack-red?logo=slack)](https://links.tabbyml.com/join-slack)\n\nInstall following IDE / Editor extensions to get started with [Tabby](https://github.com/TabbyML/tabby).\n* [VSCode Extension](https://github.com/TabbyML/tabby/tree/main/clients/vscode) – Install from the [marketplace](https://marketplace.visualstudio.com/items?itemName=TabbyML.vscode-tabby), or [open-vsx.org](https://open-vsx.org/extension/TabbyML/vscode-tabby)\n* [VIM Extension](https://github.com/TabbyML/tabby/tree/main/clients/vim)\n* [IntelliJ Platform Plugin](https://github.com/TabbyML/tabby/tree/main/clients/intellij) – Install from the [marketplace](https://plugins.jetbrains.com/plugin/22379-tabby)\n",
"license": { "name": "Apache 2.0", "url": "https://github.com/TabbyML/tabby/blob/main/LICENSE" },
"version": "0.7.0"
"version": "0.9.0-dev"
},
"servers": [{ "url": "/", "description": "Server" }],
"paths": {
Expand Down Expand Up @@ -98,6 +98,19 @@
},
"security": [{ "token": [] }]
}
},
"/v1beta/server_setting": {
"get": {
"tags": ["v1beta"],
"operationId": "config",
"responses": {
"200": {
"description": "Success",
"content": { "application/json": { "schema": { "$ref": "#/components/schemas/ServerSetting" } } }
}
},
"security": [{ "token": [] }]
}
}
},
"components": {
Expand Down Expand Up @@ -301,6 +314,11 @@
}
}
},
"ServerSetting": {
"type": "object",
"required": ["disable_client_side_telemetry"],
"properties": { "disable_client_side_telemetry": { "type": "boolean" } }
},
"Snippet": {
"type": "object",
"required": ["filepath", "body", "score"],
Expand Down
5 changes: 3 additions & 2 deletions clients/tabby-agent/package.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"name": "tabby-agent",
"version": "1.4.0-dev",
"version": "1.4.2",
"description": "Generic client agent for Tabby AI coding assistant IDE extensions.",
"homepage": "https://tabby.tabbyml.com/",
"repository": "https://github.com/TabbyML/tabby",
Expand All @@ -21,7 +21,8 @@
"./dist/index.js",
"./dist/index.mjs",
"./dist/index.d.ts",
"./dist/wasm/**"
"./dist/wasm/**",
"./dist/win-ca/**"
],
"bin": {
"tabby-agent": "./dist/cli.js"
Expand Down
3 changes: 3 additions & 0 deletions clients/tabby-agent/src/Agent.ts
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
import type { components as ApiComponents } from "./types/tabbyApi";
import type { AgentConfig, PartialAgentConfig } from "./AgentConfig";
import type { DataStore } from "./dataStore";
import type { Logger } from "./logger";
import type { CompletionRequest, CompletionResponse } from "./CompletionContext";

export type { CompletionRequest, CompletionResponse };
Expand All @@ -14,6 +15,7 @@ export type AgentInitOptions = Partial<{
config: PartialAgentConfig;
clientProperties: ClientProperties;
dataStore: DataStore;
loggers: Logger[];
}>;

export type ServerHealthState = ApiComponents["schemas"]["HealthState"];
Expand Down Expand Up @@ -72,6 +74,7 @@ export interface AgentFunction {
* 1. Default config
* 2. User config file `~/.tabby-client/agent/config.toml` (not available in browser)
* 3. Agent `initialize` and `updateConfig` methods
* 4. Fetched server-provided config
*
* This method will update the 3rd level config.
* @param key the key of the config to update, can be nested with dot, e.g. `server.endpoint`
Expand Down
13 changes: 4 additions & 9 deletions clients/tabby-agent/src/AnonymousUsageLogger.ts
Original file line number Diff line number Diff line change
Expand Up @@ -5,12 +5,12 @@ import { v4 as uuid } from "uuid";
import type { paths as CloudApi } from "./types/cloudApi";
import { name as agentName, version as agentVersion } from "../package.json";
import { isBrowser } from "./env";
import { rootLogger } from "./logger";
import { dataStore, DataStore } from "./dataStore";
import { logger } from "./logger";
import { DataStore } from "./dataStore";

export class AnonymousUsageLogger {
private anonymousUsageTrackingApi = createClient<CloudApi>({ baseUrl: "https://app.tabbyml.com/api" });
private logger = rootLogger.child({ component: "AnonymousUsage" });
private logger = logger("AnonymousUsage");
private systemData = {
agent: `${agentName}, ${agentVersion}`,
browser: isBrowser ? navigator?.userAgent || "browser" : undefined,
Expand All @@ -25,13 +25,8 @@ export class AnonymousUsageLogger {
disabled: boolean = false;

async init(options?: { dataStore?: DataStore }) {
this.dataStore = options?.dataStore || dataStore;
this.dataStore = options?.dataStore;
if (this.dataStore) {
try {
await this.dataStore.load();
} catch (error) {
this.logger.debug({ error }, "Error when loading anonymousId");
}
if (typeof this.dataStore.data["anonymousId"] === "string") {
this.anonymousId = this.dataStore.data["anonymousId"];
} else {
Expand Down
25 changes: 12 additions & 13 deletions clients/tabby-agent/src/Auth.ts
Original file line number Diff line number Diff line change
@@ -1,11 +1,12 @@
import { EventEmitter } from "events";
import decodeJwt from "jwt-decode";
import deepEqual from "deep-equal";
import createClient from "openapi-fetch";
import type { paths as CloudApi } from "./types/cloudApi";
import type { AbortSignalOption } from "./Agent";
import { HttpError, abortSignalFromAnyOf } from "./utils";
import { dataStore, DataStore } from "./dataStore";
import { rootLogger } from "./logger";
import { DataStore } from "./dataStore";
import { logger } from "./logger";

export type StorageData = {
auth: { [endpoint: string]: { jwt: string } };
Expand Down Expand Up @@ -45,7 +46,7 @@ export class Auth extends EventEmitter {
},
};

private readonly logger = rootLogger.child({ component: "Auth" });
private readonly logger = logger("Auth");
private dataStore?: DataStore;
private authApi = createClient<CloudApi>({ baseUrl: "https://app.tabbyml.com/api" });
private jwt?: JWT;
Expand All @@ -55,17 +56,15 @@ export class Auth extends EventEmitter {
}

async init(options?: { dataStore?: DataStore }) {
if (options?.dataStore) {
this.dataStore = options.dataStore;
} else {
this.dataStore = dataStore;
if (dataStore) {
dataStore.on("updated", async () => {
await this.load();
this.dataStore = options?.dataStore;
if (this.dataStore instanceof EventEmitter) {
this.dataStore.on("updated", async () => {
const oldJwt = this.jwt;
await this.load();
if (!deepEqual(oldJwt, this.jwt)) {
super.emit("updated", this.jwt);
});
dataStore.watch();
}
}
});
}
this.scheduleRefreshToken();
await this.load();
Expand Down
4 changes: 2 additions & 2 deletions clients/tabby-agent/src/CompletionCache.ts
Original file line number Diff line number Diff line change
@@ -1,13 +1,13 @@
import { LRUCache } from "lru-cache";
import { CompletionContext, CompletionResponse } from "./CompletionContext";
import { rootLogger } from "./logger";
import { logger } from "./logger";
import { splitLines, autoClosingPairs, findUnpairedAutoClosingChars } from "./utils";

type CompletionCacheKey = CompletionContext;
type CompletionCacheValue = CompletionResponse;

export class CompletionCache {
private readonly logger = rootLogger.child({ component: "CompletionCache" });
private readonly logger = logger("CompletionCache");
private options = {
maxCount: 10000,
prebuildCache: {
Expand Down
4 changes: 2 additions & 2 deletions clients/tabby-agent/src/JsonLineServer.ts
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
import readline from "readline";
import { AgentFunction, AgentEvent, Agent, agentEventNames } from "./Agent";
import { rootLogger } from "./logger";
import { logger } from "./logger";
import { isCanceledError } from "./utils";

type AgentFunctionRequest<T extends keyof AgentFunction> = [
Expand Down Expand Up @@ -45,7 +45,7 @@ export class JsonLineServer {
private readonly process: NodeJS.Process = process;
private readonly inStream: NodeJS.ReadStream = process.stdin;
private readonly outStream: NodeJS.WriteStream = process.stdout;
private readonly logger = rootLogger.child({ component: "JsonLineServer" });
private readonly logger = logger("JsonLineServer");

private abortControllers: { [id: string]: AbortController } = {};

Expand Down
4 changes: 2 additions & 2 deletions clients/tabby-agent/src/LspServer.ts
Original file line number Diff line number Diff line change
Expand Up @@ -15,14 +15,14 @@ import {
import { TextDocument } from "vscode-languageserver-textdocument";
import { name as agentName, version as agentVersion } from "../package.json";
import { Agent, StatusChangedEvent, CompletionRequest, CompletionResponse } from "./Agent";
import { rootLogger } from "./logger";
import { logger } from "./logger";
import { splitLines, isCanceledError } from "./utils";

export class LspServer {
private readonly connection = createConnection();
private readonly documents = new TextDocuments(TextDocument);

private readonly logger = rootLogger.child({ component: "LspServer" });
private readonly logger = logger("LspServer");

private agent?: Agent;

Expand Down
Loading
Loading