Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
54 commits
Select commit Hold shift + click to select a range
da5b686
feat: phase 1 skeleton for svelte 5 rewrite
eweren May 11, 2026
007c738
feat: phase 2+3 main thread + api client
eweren May 11, 2026
c9293b9
feat: phase 4 core views, primitives, header
eweren May 11, 2026
b6074b9
feat: phase 4 connect + stringdetails
eweren May 11, 2026
57e392c
feat: phase 5+6 push + pull workflows
eweren May 11, 2026
8c43dc3
feat: phase 7+8 create-copy + canvas annotations
eweren May 11, 2026
774d3d3
feat: phase 9+10 inspect polish + tests + bundle audit
eweren May 11, 2026
2ff1fd4
fix: strip module/crossorigin from figma plugin html
eweren May 11, 2026
1fd3577
fix: cjs format for main.js, minimal manifest
eweren May 11, 2026
f5ca86a
fix: target es2017 for plugin sandbox
eweren May 11, 2026
ed971bd
fix: keep type=\"module\" on ui scripts, only strip crossorigin
eweren May 11, 2026
43e7558
feat: restore full manifest after loader debugging
eweren May 11, 2026
b0c94b4
fix: read ui html from __uiFiles__ when manifest.ui is an object
eweren May 11, 2026
871a9bb
fix: drop documentchange handler to avoid loadAllPagesAsync cost
eweren May 11, 2026
6ae4003
fix: auto-validate stored credentials on app start
eweren May 11, 2026
f50633e
fix: toggle/refresh annotations as quick actions, no UI shown
eweren May 11, 2026
c7f4fca
chore: remove refresh-annotations menu entry
eweren May 11, 2026
1829d92
feat: restore icu syntax highlighting via codemirror
eweren May 11, 2026
ef74cf9
feat: inline key input in node list for unconnected nodes
eweren May 12, 2026
09e8af9
fix: don't send branch when branching is disabled
eweren May 12, 2026
ae84a4d
fix: target the correct placeholder widget class names
eweren May 12, 2026
1f749dd
fix: highlight plurals and use concrete tag class names
eweren May 12, 2026
714a71c
fix: strip svelte state proxies before postMessage; fix icu prefill
eweren May 12, 2026
f2368ad
fix: stringdetails save writes textnode + icueditor prefill
eweren May 12, 2026
6cf3884
fix: don't crash annotation sync when node has foreign annotations
eweren May 12, 2026
7e7ea80
fix: don't clone foreign annotations when removing tolgee tag
eweren May 12, 2026
b2dcf45
fix: screenshot scale 1x; suppress spurious plural diffs
eweren May 12, 2026
7438d48
fix: persist pushed translation to plugin-data after push
eweren May 12, 2026
4de6a7e
chore: drop bold styling from canvas annotation label
eweren May 12, 2026
b04dc2c
fix: after push, persist tolgee's canonical translation
eweren May 12, 2026
f5404cf
fix: also persist tolgee's isPlural after push
eweren May 12, 2026
447825d
fix: hydrate language and namespace selectors in header
eweren May 12, 2026
a584c2a
feat: language switch in header opens pull as preview
eweren May 12, 2026
aba6ac6
fix: pull fetches all namespaces when none is pinned
eweren May 12, 2026
c529b67
fix: pull surfaces empty remote translations as missing
eweren May 12, 2026
ad612ad
fix: pull is page-wide and ok commits language
eweren May 12, 2026
41b983a
feat: pull view warns when user has a selection (still page-wide)
eweren May 12, 2026
398e093
feat: dedicated per-variant editor for plural messages
eweren May 12, 2026
b29525c
chore: move "create page copy" out of the action bar
eweren May 12, 2026
590c790
feat: bits-ui tooltips for header icon buttons
eweren May 12, 2026
8d277be
feat: cursor pointer on interactive elements, text on editable
eweren May 12, 2026
551d696
refactor: clean up type definitions and formatting across multiple files
eweren May 12, 2026
47637be
chore: update dependencies and enhance UI components
eweren May 12, 2026
7a31467
chore: remove deprecated configuration files and clean up Cypress setup
eweren May 12, 2026
e652e28
refactor: migrate project structure from src-v2 to src
eweren May 18, 2026
8f50a90
fix: settings
eweren May 18, 2026
bfd89cc
feat: enhance ICU preview and settings sections
eweren May 18, 2026
8c232b7
feat: add Playwright e2e suite running against a containerized Tolgee
claude May 25, 2026
9f73a19
test: add comprehensive unit and E2E test coverage
eweren May 25, 2026
1668f98
test: expand E2E suite to 57 tests with full happy/unhappy path coverage
May 25, 2026
74e2f8b
fix: resolve pre-existing biome lint errors blocking CI
May 25, 2026
47780c1
refactor: reorganize imports and clean up code formatting
eweren May 25, 2026
15d8972
test: enhance E2E tests for Connect and Pull views
eweren May 26, 2026
4f15a6a
test: improve E2E test reliability and coverage
eweren May 26, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
2 changes: 0 additions & 2 deletions .eslintignore

This file was deleted.

26 changes: 0 additions & 26 deletions .eslintrc.json

This file was deleted.

116 changes: 75 additions & 41 deletions .github/workflows/test.yml
Original file line number Diff line number Diff line change
Expand Up @@ -2,81 +2,115 @@ name: Test

on:
push:
branches: [main, release]
branches: [main, release, rewrite-svelte-v2]
pull_request:

env:
PNPM_VERSION: 10
NODE_VERSION: "20.x"

jobs:
static-check:
name: Static check 🪲
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- uses: actions/setup-node@v3
- uses: actions/checkout@v4
- uses: pnpm/action-setup@v4
with:
node-version: "20.x"

- name: Cache node modules
uses: actions/cache@v3
version: ${{ env.PNPM_VERSION }}
- uses: actions/setup-node@v4
with:
path: ~/.npm
key: cache-node-modules-${{ runner.os }}-${{ hashFiles('**/package-lock.json') }}
node-version: ${{ env.NODE_VERSION }}
cache: pnpm

- name: Install
run: npm ci
run: pnpm install --frozen-lockfile

- name: Typecheck
run: pnpm run typecheck

- name: Typescript
run: npm run tsc
- name: Lint
run: pnpm run lint

- name: Eslint
run: npm run eslint
- name: Unit tests
run: pnpm run test

build:
name: Build 🏗
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- uses: actions/setup-node@v3
- uses: actions/checkout@v4
- uses: pnpm/action-setup@v4
with:
node-version: "20.x"

- name: Cache node modules
uses: actions/cache@v3
version: ${{ env.PNPM_VERSION }}
- uses: actions/setup-node@v4
with:
path: ~/.npm
key: cache-node-modules-build-${{ runner.os }}-${{ hashFiles('**/package-lock.json') }}
node-version: ${{ env.NODE_VERSION }}
cache: pnpm

- name: Install
run: npm ci
run: pnpm install --frozen-lockfile

- name: Build
run: npm run build
run: pnpm run build

- name: Upload dist
uses: actions/upload-artifact@v4
with:
name: dist
path: dist/
retention-days: 7

test:
name: Cypress
e2e:
name: E2E (Playwright + Tolgee)
runs-on: ubuntu-latest
timeout-minutes: 20

steps:
- uses: actions/checkout@v3
- uses: actions/setup-node@v3
- uses: actions/checkout@v4
- uses: pnpm/action-setup@v4
with:
node-version: "20.x"

- name: Cache node modules
uses: actions/cache@v3
version: ${{ env.PNPM_VERSION }}
- uses: actions/setup-node@v4
with:
path: ~/.npm
key: cache-node-modules-cypress-${{ runner.os }}-${{ hashFiles('**/package-lock.json') }}
node-version: ${{ env.NODE_VERSION }}
cache: pnpm

- name: Install
run: npm ci
run: pnpm install --frozen-lockfile

# Start Tolgee in the background as early as possible so its slow JVM
# warm-up overlaps with the rest of the build steps.
- name: Start Tolgee platform
run: pnpm run e2e:up

- name: Install Playwright browsers
run: pnpm exec playwright install --with-deps chromium

- name: Cypress run
run: npm run cy:run
- name: Build plugin
run: pnpm run build

- uses: actions/upload-artifact@v4
- name: Wait for Tolgee
run: pnpm run e2e:wait

- name: Run Playwright
run: pnpm exec playwright test

- name: Capture Tolgee logs on failure
if: failure()
run: docker compose -f e2e/docker-compose.yml logs --no-color > tolgee.log || true

- name: Upload Playwright report
if: always()
uses: actions/upload-artifact@v4
with:
name: e2e
name: playwright-report
path: |
./cypress/videos/**/*
./cypress/screenshots/**/*
e2e/playwright-report/**/*
e2e/test-results/**/*
tolgee.log
retention-days: 7

- name: Stop Tolgee
if: always()
run: docker compose -f e2e/docker-compose.yml down -v
6 changes: 4 additions & 2 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,9 @@ build
code.js
manifest.json

cypress/videos
cypress/screenshots
# Playwright (v2 e2e)
e2e/test-results/
e2e/playwright-report/
playwright/.cache/

.vscode
5 changes: 0 additions & 5 deletions .prettierignore

This file was deleted.

1 change: 0 additions & 1 deletion .prettierrc.json

This file was deleted.

38 changes: 38 additions & 0 deletions biome.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,38 @@
{
"$schema": "https://biomejs.dev/schemas/1.9.4/schema.json",
"vcs": {
"enabled": true,
"clientKind": "git",
"useIgnoreFile": true
},
"files": {
"ignoreUnknown": true,
"ignore": ["dist", "node_modules", "**/*.svelte", "**/schema.generated.ts"]
},
"formatter": {
"enabled": true,
"indentStyle": "space",
"indentWidth": 2,
"lineWidth": 100
},
"javascript": {
"formatter": {
"quoteStyle": "double",
"semicolons": "always",
"trailingCommas": "all"
}
},
"linter": {
"enabled": true,
"rules": {
"recommended": true,
"suspicious": {
"noExplicitAny": "warn"
},
"style": {
"useImportType": "error",
"useNodejsImportProtocol": "error"
}
}
}
}
9 changes: 0 additions & 9 deletions cypress.config.mjs

This file was deleted.

9 changes: 0 additions & 9 deletions cypress/common/tools.ts

This file was deleted.

124 changes: 0 additions & 124 deletions cypress/e2e/copyView.cy.ts

This file was deleted.

Loading