Skip to content

refactor: rename intric to eneo across entire codebase#309

Open
MaxEriksson2000 wants to merge 15 commits intodevelopfrom
refactor/intric-to-eneo-rename
Open

refactor: rename intric to eneo across entire codebase#309
MaxEriksson2000 wants to merge 15 commits intodevelopfrom
refactor/intric-to-eneo-rename

Conversation

@MaxEriksson2000
Copy link
Copy Markdown
Collaborator

Summary

Complete rebranding of the codebase from "intric" to "eneo". This is a mechanical rename that touches ~1,400 files but makes no behavioral changes.

  • Backend: Renamed Python package intric/eneo/, all imports, class names, API contract fields, and WebSocket subprotocol
  • Frontend: Renamed all @intric/* packages to @eneo/*, all class/function/variable names, component files, and CSS references
  • API contract: intric_error_codeeneo_error_code, WebSocket subprotocol "intric""eneo", SSE event type intric_eventeneo_event
  • Environment: .env variables renamed to ENEO_* pattern (legacy INTRIC_* fallbacks kept for backwards compatibility)

What was NOT changed

  • Database tables — no tables contain "intric", no SQL migration needed
  • Deprecated env var fallbacksINTRIC_* env vars still work via fallback in config.py and environment.server.ts
  • Git history — no rewriting of historical commits
  • Auto-generated schema.d.ts — contains intric__ prefixed Python module paths from OpenAPI schema generation (will update on next schema regeneration)

Breaking changes

Change Impact
Python package intriceneo All backend imports
@intric/*@eneo/* npm packages All frontend imports
intric_error_codeeneo_error_code API error response field
WebSocket subprotocol "intric""eneo" WebSocket handshake
INTRIC_* env vars → ENEO_* Deployment configs (fallback exists)

Deployment notes

Existing deployments using INTRIC_* environment variables will continue to work — the backend config.py has a deprecation fallback that reads INTRIC_* when ENEO_* is not set. Frontend environment.server.ts has the same fallback. These should be updated to ENEO_* before v3.0.

Test plan

  • Backend unit tests pass: uv run pytest tests/unittests/ -x
  • Frontend type check: bun run check
  • Frontend build: bun run build
  • Verify no remaining intric in source: grep -ri "intric" backend/src/ frontend/apps/web/src/ frontend/packages/ --include="*.py" --include="*.ts" --include="*.svelte" --include="*.js" --exclude-dir=node_modules --exclude-dir=.svelte-kit --exclude-dir=build --exclude-dir=paraglide --exclude-dir=dist
  • Start app and verify WebSocket connection works
  • Verify error messages display correctly (eneo_error_code parsing)
  • Verify chat with assistant works end-to-end

MaxEriksson2000 and others added 15 commits March 27, 2026 08:18
Rename the entire backend Python package from `intric` to `eneo`:
- Directory: backend/src/intric/ → backend/src/eneo/
- All imports: from intric.xxx → from eneo.xxx
- Package name in pyproject.toml
- Class names: IntricEventType → EneoEventType, SSEIntricEvent → SSEEneoEvent, etc.
- API contract: intric_error_code → eneo_error_code
- WebSocket subprotocol: "intric" → "eneo"
- All test patch() module paths updated
- Alembic migration imports updated (6 files, no SQL changes)

The deprecated INTRIC_* env var fallbacks in config.py are kept intentionally
for backwards compatibility with existing deployments.
- Package: @intric/intric-js → @eneo/eneo-js
- Package: @intric/ui → @eneo/ui
- Package: @intric/eslint-plugin → @eneo/eslint-plugin
- Package: @intric/web → @eneo/web
- Classes: IntricError → EneoError, IntricSocket → EneoSocket, etc.
- Functions: createIntric → createEneo, getIntric → getEneo, etc.
- Files: Intric.ts → Eneo.ts, IntricSocket.ts → EneoSocket.ts, etc.
- All variable names, CSS classes, token types, and component names updated
- API contract: intric_error_code → eneo_error_code in SDK client
- WebSocket subprotocol reference updated in socket client
- Frontend .env: INTRIC_BACKEND_URL → ENEO_BACKEND_URL (with legacy fallback)
- Scripts: sync-frontend-with-backend.sh updated
- i18n message keys referencing "intric" updated
- CLAUDE.md files updated with new paths
Final cleanup pass:
- Rename SDK source file: intric.js → eneo.js
- Rename all remaining SDK types: IntricFetchFunction → EneoFetchFunction, etc.
- Rename UI plugin: intricIcons → eneoIcons, intricTheme → eneoTheme
- Rename ESLint plugin rules: intric/* → eneo/*
- Fix SSE event type: intric_event → eneo_event
- Update all remaining comments and docstrings

Only intentional INTRIC_ references remain:
- config.py: deprecated INTRIC_* env var fallbacks (backwards compat)
- environment.server.ts: INTRIC_BACKEND_URL legacy fallback
- schema.d.ts: auto-generated backend schema references (intric__ prefixed)
The start script and hatch wheel target still referenced the old
intric package path, causing `uv run start` to fail.
The vite.config.ts still imported from the old
vite-plugin-intric-icons path after the package rename.
Update to use vite-plugin-eneo-icons and the eneoIcons export.
bun respects workspace dependency order when running multiple
filters, causing @eneo/web to wait indefinitely for @eneo/ui's
watch process. Adding --parallel runs both simultaneously.
bun --parallel still respects workspace dependency order, so
@eneo/web waited indefinitely for @eneo/ui's watch process.
Using shell & starts both immediately without blocking.
- Rename CSS color variables (--color-intric-* → --color-eneo-*)
- Update brand/chart/dynamic-colour theme tokens in light and dark themes
- Regenerate schema.d.ts from backend with eneo module paths
- Update all frontend README files
The mechanical intric→eneo rename changed client_id="intric" to
"eneo", but the JWT token payload has "aud":"intric" baked into
its RSA signature and cannot be changed.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants