| 文件 | 最后提交记录 | 最后更新时间 |
|---|---|---|
RI-7115: change enterprise build version prefix (#4551) | 1 年前 | |
RI-8394 Add a manual "Check for Updates" action for notify mode (#6453) - add manual update-check engine - wire up manual update-check IPC channel - expose Check for Updates in tray and app menu - show a toast when a manual check finds no update - add Check for Updates button to Settings References: RI-8394 | 1 个月前 | |
RI-7682 Self-contain UI tsconfig and clean up dead apiSrc aliases (#5901) * RI-7682 Self-contain UI tsconfig and drop dead apiSrc FE aliases Phase 3 of the FE/BE decoupling. The UI workspace already has zero `apiSrc/*` / `src/*` imports (PR #5885) and the lint guard blocks new ones at `error` level. This PR cleans up the residual configuration that pretended the alias was still in use on the UI side, and detaches the UI's tsconfig from the misleading root indirection. Toolchain - `redisinsight/ui/tsconfig.json` is now self-contained: inlines the compilerOptions previously inherited from the root, and declares its own `paths` for `uiSrc/*`, `apiClient(/**)`, and `desktopSrc/*` only. `yarn type-check:ui` now type-checks the UI surface in isolation. - Root `tsconfig.json` keeps its full `compilerOptions` + `include` -- it is still the eslint parser project for files outside the UI/API overrides (playwright, stories, etc.) and the resolver for `tsconfig-paths-webpack-plugin` in the desktop main webpack build. Header comment documents the three jobs it now serves. - `.storybook/tsconfig.json` re-extends `redisinsight/ui/tsconfig.json` directly instead of the root. - ESLint UI override's `parserOptions.project` -> `redisinsight/ui/tsconfig.json`. Dead alias removal (no consumer in the UI workspace) - `redisinsight/ui/vite.config.mjs` -- drop `apiSrc` alias - `redisinsight/ui/src/packages/vite.config.mjs` -- drop `apiSrc` alias - `redisinsight/desktop/vite.renderer.config.ts` -- drop `apiSrc` alias (renderer doesn't bundle main-process code) - `.storybook/vite.config.ts` -- drop `apiSrc` alias - `jest.config.cjs` -- drop `apiSrc/(.*)` moduleNameMapper - `.eslintrc.js` -- drop `apiSrc/**` from the UI override's `import/order.pathGroups`; keep it in the root-level pathGroups since desktop's source still legitimately imports through `apiSrc/*` (embedded-API architecture; out of scope). Kept untouched - `redisinsight/desktop/vite.main.config.ts` -- its `resolve-imports` plugin still maps `apiSrc/*` to the api/dist bundle for embedded use. - The `no-restricted-imports` rule in `.eslintrc.js` -- still the active guard preventing UI regressions. - Root tsconfig `paths` -- `apiSrc/*` and `src/*` stay; desktop main webpack still resolves through them via TsconfigPathsPlugins(). Verification - yarn lint clean (1-time eslint cache rebuild on the `.eslintrc.js` hash change) - yarn type-check:ui 1953 errors (-151 vs the prior root-based baseline of 2104; UI-only subset 1925->1925, flat. Drop comes from no longer compiling desktop/playwright/stories under `type-check:ui`) - yarn build:ui succeeds - yarn build:renderer succeeds (electron variant) - yarn build:main succeeds (load-bearing check: TsconfigPathsPlugins still resolves apiSrc/*, uiSrc/*, desktopSrc/*) - yarn build-sb succeeds - jest smoke (browser slices + commands-history + key-details + database-analysis): 17 suites, 622 tests, all pass Refs RI-7682 Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com> * RI-7682 Drop obsolete FE-side BE-coupling guardrails and stale docs Follow-on to the self-contained UI tsconfig commit. With the UI's toolchain no longer carrying `apiSrc`/`src` aliases (vite, jest, storybook, packages, desktop renderer), the FE has no way to import from the BE codebase even by accident -- module resolution fails at every stage. The remaining guardrails and documentation that pointed the UI at `apiSrc/*` are now stale. - `.eslintrc.js`: drop the `no-restricted-imports` rule that warned against `apiSrc/*` / `src/*` group imports. With no resolver resolving those patterns in the UI workspace, the build chain is the enforcement now. Also fix the UI override's `parserOptions.project` to point at `redisinsight/ui/tsconfig.json` rather than the root tsconfig -- the UI is now type-checked against its own self-contained config. - `tsconfig.json`: drop the explanatory header comment introduced in the prior commit. The root tsconfig's role is whatever its content shows; the comment was a smell. - `.github/copilot-instructions.md`, `.ai/rules/code-quality.md`, `.ai/rules/backend.md`: stop listing `apiSrc/*` as a UI-side alias (it isn't), point AI tooling at `apiClient` for UI consumers of BE-defined types, and correct the backend rule that referenced `apiSrc/*` instead of `src/*` (the BE's actual self-alias). The remaining `apiSrc/*` references in the repo (root tsconfig paths, root eslint pathGroups, `configs/webpack.paths.ts`, the desktop sources, the API workspace's package/tsconfig) are all legitimate or out of scope for FE/BE decoupling. Refs RI-7682 Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com> * RI-7682 Clean up unused apiSrc aliases in BE/build configs Per-file audit of the remaining `apiSrc` references that aren't in desktop sources or the root tsconfig (which is still needed by the desktop main webpack bundle until the desktop decoupling PR). - redisinsight/api/tsconfig.json: drop the `apiSrc/*` path alias. The BE workspace has zero imports through `apiSrc/*` (verified with `grep -rEn "from 'apiSrc/'" redisinsight/api`); BE code uses `src/*` for self-references. - redisinsight/api/package.json: drop the matching `apiSrc/(.*)` jest moduleNameMapper entry for the same reason. - redisinsight/api/package.tmp.json: delete. Orphaned duplicate of package.json with stale relative paths (`../../node_modules/.bin/jest`, pre-monorepo layout) and no consumer anywhere in the repo (CI, scripts, configs). - configs/webpack.paths.ts: drop the `apiSrcPath` const + export. Unused -- `tsconfig-paths-webpack-plugin` reads root tsconfig's `paths` directly; no external consumer of this constant. - .eslintignore: add `storybook-static`. Pre-existing oversight that surfaced once `yarn build-sb` was actually run in CI/dev. Refs RI-7682 Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com> * RI-7682 Move IParsedDeepLink to UI electron constants; drop desktopSrc from UI tsconfig `ConfigElectron.tsx` had the one and only UI->desktop import: a type (`IParsedDeepLink`) used as the payload shape of the `IpcOnEvent.deepLinkAction` IPC event. The desktop's deep-link handler already imports `IpcOnEvent` from `uiSrc/electron/constants` -- the event name lives on the UI side. Move the payload type alongside it so both sides of the IPC contract live in the UI workspace, and the UI stops reaching into desktop source. - redisinsight/ui/src/electron/constants/deepLink.ts: new file with the `IParsedDeepLink` interface (verbatim copy of the desktop's prior declaration). - redisinsight/ui/src/electron/constants/index.ts: re-export. - redisinsight/ui/src/electron/components/ConfigElectron/ConfigElectron.tsx: import from `uiSrc/electron/constants`. - redisinsight/desktop/src/lib/app/deep-link.handlers.ts: drop the local declaration; import the type from `uiSrc/electron/constants` alongside `IpcOnEvent`. - redisinsight/desktop/src/utils/resolveHtmlPath.ts: import from `uiSrc/electron/constants` rather than from the desktop sibling. With no UI file importing through `desktopSrc/*`, drop that alias from `redisinsight/ui/tsconfig.json` paths. The UI no longer claims any visibility into desktop source -- the dependency arrow points one way (desktop -> uiSrc) which matches the existing IPC plumbing. Refs RI-7682 Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com> --------- Co-authored-by: Claude Opus 4.7 <noreply@anthropic.com> | 5 个月前 | |
Dev: Apply eslint & prettier suggestions (#4500) * backend * desktop * UI | 1 年前 |