Keyboard shortcuts

Press or to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

Development

The two-location model (until @helex/* are published)

TEDY consumes the shared @helex/* libs via source aliases (../../core/frontend/libs/*/src), which only resolve when the module sits inside an EMR checkout at <emr>/modules/tedy/frontend. So:

  • helex-tx (this repo) = canonical source of truth — versioned, reviewed, backed up.
  • An EMR checkout = the dev/run environment. Use a worktree at origin/main for current libs: .claude/worktrees/tedy-main.
  • TEDY is git-ignored inside the EMR checkout (via that clone’s .git/info/exclude), so it never enters EMR history.

Move source between the two — and guard against drift — with scripts/sync-emr.sh:

EMR=/Users/igor/source/emr/repo/.claude/worktrees/tedy-main
./scripts/sync-emr.sh "$EMR" push    # helex-tx -> EMR checkout (deploy source)
./scripts/sync-emr.sh "$EMR" pull    # EMR checkout -> helex-tx (capture edits)
./scripts/sync-emr.sh "$EMR" check   # exit 1 if diverged — run before committing

Phase 3 removes this: publish @helex/* to a registry, and helex-tx builds standalone against the packages.

Run

# one-time: install shared libs' deps + the module's deps in the EMR checkout
cd "$EMR/modules/core/frontend" && npm install
cd "$EMR/modules/tedy/frontend" && npm install

# configure the backend (no deployment URLs are committed) — copy + edit:
cp .env.example .env.local     # set VITE_TX_TARGET + VITE_TX_PUBLISHER_{VS,CS}_URL

VITE_TX_TARGET=https://your-terminology-server.example npm run dev   # http://localhost:18620/tedy/
  • Backend: the dev server proxies /txapi${VITE_TX_TARGET}/api. VITE_TX_TARGET is required — there is no committed default (a neutral placeholder resolves nothing). Publisher display names need VITE_TX_PUBLISHER_VS_URL / VITE_TX_PUBLISHER_CS_URL (see src/config/tx.ts + .env.example).
  • Auth: DEV auto-signs-in a guest (Bearer yupi on /txapi; a Vite stub answers /api/uma/*). Disable with VITE_TX_GUEST=0. Production/federation auth is separate (Keycloak OIDC — tracked).

Verify (against consumers, not the lib build)

cd "$EMR/modules/tedy/frontend" && npx tsc -p tsconfig.json --noEmit   # Vite skips tsc

Then confirm in the browser. Follow AGENTS-frontend.md; keep EN+ET+RU locale files in src/i18n/ in sync with any new t() key.