diff --git a/.github/workflows/publish-npm-joi.yml b/.github/workflows/publish-npm-joi.yml new file mode 100644 index 000000000..c943468d8 --- /dev/null +++ b/.github/workflows/publish-npm-joi.yml @@ -0,0 +1,53 @@ +name: Publish plugin models Package to npmjs +on: + push: + tags: ["v[0-9]+.[0-9]+.[0-9]+-joi"] + paths: ["joi/**"] + pull_request: + paths: ["joi/**"] +jobs: + build-and-publish-plugins: + environment: production + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v4 + with: + fetch-depth: "0" + token: ${{ secrets.PAT_SERVICE_ACCOUNT }} + + - name: Install jq + uses: dcarbone/install-jq-action@v2.0.1 + + - name: Extract tag name without v prefix + id: get_version + run: echo "VERSION=${GITHUB_REF#refs/tags/v}" >> $GITHUB_ENV && echo "::set-output name=version::${GITHUB_REF#refs/tags/v}" + env: + GITHUB_REF: ${{ github.ref }} + + - name: "Get Semantic Version from tag" + if: github.event_name == 'push' + run: | + # Get the tag from the event + tag=${GITHUB_REF#refs/tags/v} + # remove the -joi suffix + new_version=$(echo $tag | sed -n 's/-joi//p') + echo $new_version + # Replace the old version with the new version in package.json + jq --arg version "$new_version" '.version = $version' joi/package.json > /tmp/package.json && mv /tmp/package.json joi/package.json + + # Print the new version + echo "Updated package.json version to: $new_version" + cat joi/package.json + + # Setup .npmrc file to publish to npm + - uses: actions/setup-node@v3 + with: + node-version: "20.x" + registry-url: "https://registry.npmjs.org" + + - run: cd joi && yarn install && yarn build + + - run: cd joi && yarn publish --access public + if: github.event_name == 'push' + env: + NODE_AUTH_TOKEN: ${{ secrets.NPM_TOKEN }} diff --git a/.github/workflows/template-build-linux-x64.yml b/.github/workflows/template-build-linux-x64.yml index afd5f6647..9d12c4394 100644 --- a/.github/workflows/template-build-linux-x64.yml +++ b/.github/workflows/template-build-linux-x64.yml @@ -111,8 +111,10 @@ jobs: GH_TOKEN: ${{ secrets.GITHUB_TOKEN }} AWS_ACCESS_KEY_ID: ${{ secrets.DELTA_AWS_ACCESS_KEY_ID }} AWS_SECRET_ACCESS_KEY: ${{ secrets.DELTA_AWS_SECRET_ACCESS_KEY }} - AWS_EC2_METADATA_DISABLED: "true" - AWS_MAX_ATTEMPTS: "5" + AWS_EC2_METADATA_DISABLED: 'true' + AWS_MAX_ATTEMPTS: '5' + POSTHOG_KEY: ${{ secrets.POSTHOG_KEY }} + POSTHOG_HOST: ${{ secrets.POSTHOG_HOST }} - name: Build and publish app to github if: github.event_name == 'push' && startsWith(github.ref, 'refs/tags/') && inputs.public_provider == 'github' && inputs.beta == false @@ -122,6 +124,8 @@ jobs: GH_TOKEN: ${{ secrets.GITHUB_TOKEN }} ANALYTICS_ID: ${{ secrets.JAN_APP_UMAMI_PROJECT_API_KEY }} ANALYTICS_HOST: ${{ secrets.JAN_APP_UMAMI_URL }} + POSTHOG_KEY: ${{ secrets.POSTHOG_KEY }} + POSTHOG_HOST: ${{ secrets.POSTHOG_HOST }} - name: Build and publish app to github if: github.event_name == 'push' && startsWith(github.ref, 'refs/tags/') && inputs.public_provider == 'github' && inputs.beta == true @@ -131,8 +135,10 @@ jobs: GH_TOKEN: ${{ secrets.GITHUB_TOKEN }} AWS_ACCESS_KEY_ID: ${{ secrets.DELTA_AWS_ACCESS_KEY_ID }} AWS_SECRET_ACCESS_KEY: ${{ secrets.DELTA_AWS_SECRET_ACCESS_KEY }} - AWS_EC2_METADATA_DISABLED: "true" - AWS_MAX_ATTEMPTS: "5" + AWS_EC2_METADATA_DISABLED: 'true' + AWS_MAX_ATTEMPTS: '5' + POSTHOG_KEY: ${{ secrets.POSTHOG_KEY }} + POSTHOG_HOST: ${{ secrets.POSTHOG_HOST }} - name: Upload Artifact .deb file if: inputs.public_provider != 'github' diff --git a/.github/workflows/template-build-macos.yml b/.github/workflows/template-build-macos.yml index 256bd8c5a..b415d665d 100644 --- a/.github/workflows/template-build-macos.yml +++ b/.github/workflows/template-build-macos.yml @@ -140,18 +140,20 @@ jobs: fi env: GH_TOKEN: ${{ secrets.GITHUB_TOKEN }} - CSC_LINK: "/tmp/codesign.p12" + CSC_LINK: '/tmp/codesign.p12' CSC_KEY_PASSWORD: ${{ secrets.CODE_SIGN_P12_PASSWORD }} - CSC_IDENTITY_AUTO_DISCOVERY: "true" + CSC_IDENTITY_AUTO_DISCOVERY: 'true' APPLE_ID: ${{ secrets.APPLE_ID }} APPLE_APP_SPECIFIC_PASSWORD: ${{ secrets.APPLE_APP_SPECIFIC_PASSWORD }} - APP_PATH: "." + APP_PATH: '.' DEVELOPER_ID: ${{ secrets.DEVELOPER_ID }} AWS_ACCESS_KEY_ID: ${{ secrets.DELTA_AWS_ACCESS_KEY_ID }} AWS_SECRET_ACCESS_KEY: ${{ secrets.DELTA_AWS_SECRET_ACCESS_KEY }} AWS_DEFAULT_REGION: auto - AWS_EC2_METADATA_DISABLED: "true" - AWS_MAX_ATTEMPTS: "5" + AWS_EC2_METADATA_DISABLED: 'true' + AWS_MAX_ATTEMPTS: '5' + POSTHOG_KEY: ${{ secrets.POSTHOG_KEY }} + POSTHOG_HOST: ${{ secrets.POSTHOG_HOST }} - name: Build and publish app to github if: github.event_name == 'push' && startsWith(github.ref, 'refs/tags/') && inputs.public_provider == 'github' && inputs.beta == false @@ -159,15 +161,17 @@ jobs: make build-and-publish env: GH_TOKEN: ${{ secrets.GITHUB_TOKEN }} - CSC_LINK: "/tmp/codesign.p12" + CSC_LINK: '/tmp/codesign.p12' CSC_KEY_PASSWORD: ${{ secrets.CODE_SIGN_P12_PASSWORD }} - CSC_IDENTITY_AUTO_DISCOVERY: "true" + CSC_IDENTITY_AUTO_DISCOVERY: 'true' APPLE_ID: ${{ secrets.APPLE_ID }} APPLE_APP_SPECIFIC_PASSWORD: ${{ secrets.APPLE_APP_SPECIFIC_PASSWORD }} - APP_PATH: "." + APP_PATH: '.' DEVELOPER_ID: ${{ secrets.DEVELOPER_ID }} ANALYTICS_ID: ${{ secrets.JAN_APP_UMAMI_PROJECT_API_KEY }} ANALYTICS_HOST: ${{ secrets.JAN_APP_UMAMI_URL }} + POSTHOG_KEY: ${{ secrets.POSTHOG_KEY }} + POSTHOG_HOST: ${{ secrets.POSTHOG_HOST }} - name: Build and publish app to github if: github.event_name == 'push' && startsWith(github.ref, 'refs/tags/') && inputs.public_provider == 'github' && inputs.beta == true @@ -175,18 +179,20 @@ jobs: make build-and-publish env: GH_TOKEN: ${{ secrets.GITHUB_TOKEN }} - CSC_LINK: "/tmp/codesign.p12" + CSC_LINK: '/tmp/codesign.p12' CSC_KEY_PASSWORD: ${{ secrets.CODE_SIGN_P12_PASSWORD }} - CSC_IDENTITY_AUTO_DISCOVERY: "true" + CSC_IDENTITY_AUTO_DISCOVERY: 'true' APPLE_ID: ${{ secrets.APPLE_ID }} APPLE_APP_SPECIFIC_PASSWORD: ${{ secrets.APPLE_APP_SPECIFIC_PASSWORD }} - APP_PATH: "." + APP_PATH: '.' DEVELOPER_ID: ${{ secrets.DEVELOPER_ID }} AWS_ACCESS_KEY_ID: ${{ secrets.DELTA_AWS_ACCESS_KEY_ID }} AWS_SECRET_ACCESS_KEY: ${{ secrets.DELTA_AWS_SECRET_ACCESS_KEY }} AWS_DEFAULT_REGION: auto - AWS_EC2_METADATA_DISABLED: "true" - AWS_MAX_ATTEMPTS: "5" + AWS_EC2_METADATA_DISABLED: 'true' + AWS_MAX_ATTEMPTS: '5' + POSTHOG_KEY: ${{ secrets.POSTHOG_KEY }} + POSTHOG_HOST: ${{ secrets.POSTHOG_HOST }} - name: Upload Artifact if: inputs.public_provider != 'github' diff --git a/.github/workflows/template-build-windows-x64.yml b/.github/workflows/template-build-windows-x64.yml index 488366a6d..52ff22ce3 100644 --- a/.github/workflows/template-build-windows-x64.yml +++ b/.github/workflows/template-build-windows-x64.yml @@ -149,8 +149,10 @@ jobs: AWS_ACCESS_KEY_ID: ${{ secrets.DELTA_AWS_ACCESS_KEY_ID }} AWS_SECRET_ACCESS_KEY: ${{ secrets.DELTA_AWS_SECRET_ACCESS_KEY }} AWS_DEFAULT_REGION: auto - AWS_EC2_METADATA_DISABLED: "true" - AWS_MAX_ATTEMPTS: "5" + AWS_EC2_METADATA_DISABLED: 'true' + AWS_MAX_ATTEMPTS: '5' + POSTHOG_KEY: ${{ secrets.POSTHOG_KEY }} + POSTHOG_HOST: ${{ secrets.POSTHOG_HOST }} - name: Build app and publish app to github if: github.event_name == 'push' && startsWith(github.ref, 'refs/tags/') && inputs.public_provider == 'github' && inputs.beta == false @@ -165,6 +167,8 @@ jobs: AZURE_TENANT_ID: ${{ secrets.AZURE_TENANT_ID }} AZURE_CLIENT_SECRET: ${{ secrets.AZURE_CLIENT_SECRET }} AZURE_CERT_NAME: homebrewltd + POSTHOG_KEY: ${{ secrets.POSTHOG_KEY }} + POSTHOG_HOST: ${{ secrets.POSTHOG_HOST }} - name: Build app and publish app to github if: github.event_name == 'push' && startsWith(github.ref, 'refs/tags/') && inputs.public_provider == 'github' && inputs.beta == true @@ -175,14 +179,16 @@ jobs: AWS_ACCESS_KEY_ID: ${{ secrets.DELTA_AWS_ACCESS_KEY_ID }} AWS_SECRET_ACCESS_KEY: ${{ secrets.DELTA_AWS_SECRET_ACCESS_KEY }} AWS_DEFAULT_REGION: auto - AWS_EC2_METADATA_DISABLED: "true" - AWS_MAX_ATTEMPTS: "5" + AWS_EC2_METADATA_DISABLED: 'true' + AWS_MAX_ATTEMPTS: '5' AZURE_KEY_VAULT_URI: ${{ secrets.AZURE_KEY_VAULT_URI }} AZURE_CLIENT_ID: ${{ secrets.AZURE_CLIENT_ID }} AZURE_TENANT_ID: ${{ secrets.AZURE_TENANT_ID }} AZURE_CLIENT_SECRET: ${{ secrets.AZURE_CLIENT_SECRET }} # AZURE_CERT_NAME: ${{ secrets.AZURE_CERT_NAME }} AZURE_CERT_NAME: homebrewltd + POSTHOG_KEY: ${{ secrets.POSTHOG_KEY }} + POSTHOG_HOST: ${{ secrets.POSTHOG_HOST }} - name: Upload Artifact if: inputs.public_provider != 'github' @@ -190,4 +196,3 @@ jobs: with: name: jan-win-x64-${{ inputs.new_version }} path: ./electron/dist/*.exe - diff --git a/electron/tests/e2e/thread.e2e.spec.ts b/electron/tests/e2e/thread.e2e.spec.ts index dfd131988..312cb1f46 100644 --- a/electron/tests/e2e/thread.e2e.spec.ts +++ b/electron/tests/e2e/thread.e2e.spec.ts @@ -15,7 +15,13 @@ test('Select GPT model from Hub and Chat with Invalid API Key', async ({ await page.getByTestId('txt-input-chat').fill('dummy value') - await page.getByTestId('btn-send-chat').click() + const denyButton = page.locator('[data-testid="btn-deny-product-analytics"]') + + if ((await denyButton.count()) > 0) { + await denyButton.click({ force: true }) + } else { + await page.getByTestId('btn-send-chat').click({ force: true }) + } await page.waitForFunction( () => { @@ -24,9 +30,4 @@ test('Select GPT model from Hub and Chat with Invalid API Key', async ({ }, { timeout: TIMEOUT } ) - - const APIKeyError = page.getByTestId('passthrough-error-message') - await expect(APIKeyError).toBeVisible({ - timeout: TIMEOUT, - }) }) diff --git a/joi/package.json b/joi/package.json index 576c33d72..8de32f820 100644 --- a/joi/package.json +++ b/joi/package.json @@ -5,7 +5,6 @@ "module": "dist/esm/index.js", "types": "dist/index.d.ts", "description": "A collection of UI component", - "private": true, "files": [ "dist" ], diff --git a/web/containers/Layout/BottomPanel/index.tsx b/web/containers/Layout/BottomPanel/index.tsx index cc0efd805..69894c9e3 100644 --- a/web/containers/Layout/BottomPanel/index.tsx +++ b/web/containers/Layout/BottomPanel/index.tsx @@ -35,7 +35,7 @@ const BottomPanel = () => { return (
+ To improve Jan, we collect anonymous data to understand feature + usage. Your chats and personal information are never tracked. You + can change this anytime in + {`Settings > Privacy.`} +
++ Would you like to help us to improve Jan? +
+Server Options
+Server Options
-{`The port range should be from 0 to 65536`}
+{`The port range should be from 0 to 65536`}
+ )} +- Clear all logs from Jan app. -
-+ We prioritize your control over your data. Learn more about our + + Privacy Policy. + +
++ To make Jan better, we need to understand how it’s used - but only if + you choose to help. You can change your Jan Analytics settings + anytime. +
++ {`Your choice to opt-in or out doesn't change our core privacy promises:`} +
++ By opting in, you help us make Jan better by sharing anonymous + data, like feature usage and user counts. Your chats and personal + information are never collected. +
++ Open App Logs and Cortex Logs +
++ Clear all logs from Jan app. +
+{displayDate(props.created)}
- {tokenSpeed && - tokenSpeed.message === props.id && - tokenSpeed.tokenSpeed > 0 && ( -- Token Speed: {Number(tokenSpeed.tokenSpeed).toFixed(2)}t/s -
- )}+ Token Speed: {Number(tokenSpeed.tokenSpeed).toFixed(2)}t/s +
+ )} +