Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
10 changes: 3 additions & 7 deletions CLAUDE.md
Original file line number Diff line number Diff line change
Expand Up @@ -22,7 +22,7 @@ ObdGraphsLogViewer (aka "MyGiulia Online Log Analyzer") is a browser-based telem

It is deployed as a static site to GitHub Pages (https://my-giulia.com/) — web-only. There is no Electron/desktop build (that was dropped during the Angular rewrite; do not resurrect `main.js`/`electron-builder`-style tooling without checking with the user first).

The app is a **standalone Angular application** (Angular 21, `bootstrapApplication`, no NgModules). It is a from-scratch rewrite of a prior plain-ES-modules app, which is preserved untouched under `legacy/` for reference — `legacy/` has its own `vite.config.mjs`/`jest.config.js`/`package.json`-scripts (`legacy:dev`, `legacy:test`, `legacy:test:coverage`) and is excluded from ESLint/the Angular build. Don't edit `legacy/` except to consult it as the behavioral spec when porting a not-yet-ported feature.
The app is a **standalone Angular application** (Angular 21, `bootstrapApplication`, no NgModules). It is a from-scratch rewrite of a prior plain-ES-modules app that used to live under `legacy/`; that directory (along with its Vite/Jest/stylelint tooling and the `legacy:*` npm scripts) has been deleted now that the port is complete. If you ever need the old behavioral spec, read it out of git history (`git log -- legacy/`), don't restore the directory.

## Related repos

Expand All @@ -37,12 +37,8 @@ npm run watch # ng build --watch --configuration development

npm test # ng test (Vitest under the Angular builder)

npx eslint src --ext .ts # Lint TS (CI runs this; legacy/**/*.js has its own looser block in eslint.config.mjs)
npx eslint src --ext .ts # Lint TS (CI runs this)
npx prettier --check . # Formatting check (npm run format to auto-fix)

npm run legacy:dev # Vite dev server for the old legacy/ app, for behavioral reference only
npm run legacy:test # Jest tests for legacy/
npm run legacy:test:coverage # Jest coverage for legacy/
```

To run one test by name: `npx ng test --watch=false -- -t "<test name pattern>"`.
Expand Down Expand Up @@ -73,4 +69,4 @@ CI (`.github/workflows/static.yml`) runs, in order: ESLint → Prettier check

**Build output obfuscation**: `npm run build`'s `postbuild` hook runs `scripts/obfuscate.js`, which obfuscates every `.js` file in `dist/` in place with `javascript-obfuscator` (identifier renaming, base64 string-array encoding, etc. — config in `scripts/obfuscator-config.js`) and re-attaches the AGPL license banner esbuild strips, mirroring hextune's `tuning-tools/webapp/scripts/obfuscate.js`/`obfuscator-config.js`. It skips itself when `.map` files are present (a development build). Unlike hextune, this app has no gated/paywalled feature chunks, so there's no `gate-chunks.js` counterpart here.

**Porting-in-progress convention**: several files carry JSDoc comments explicitly noting where the Angular port deliberately deviates from `legacy/` behavior (e.g. `src/app/app.ts`'s routing, the version-badge note above). When you spot one of these, treat it as the source of truth over what `legacy/` does — read it before "fixing" an apparent behavioral mismatch.
**Porting convention**: many files carry JSDoc comments naming the `legacy/src/*.js` module they were ported from, several of which explicitly note where the Angular port deliberately deviates from the old behavior (e.g. `src/app/app.ts`'s routing, the version-badge note above). The `legacy/` directory itself is gone, so these are historical breadcrumbs only — treat the comment as the source of truth and don't "fix" the code to match a legacy file that no longer exists in the tree.
41 changes: 0 additions & 41 deletions eslint.config.mjs
Original file line number Diff line number Diff line change
@@ -1,5 +1,4 @@
// eslint.config.mjs
import js from '@eslint/js';
import globals from 'globals';
import tseslint from 'typescript-eslint';

Expand All @@ -16,46 +15,6 @@ export default [
'src/app/core/version.generated.ts',
],
},
{
files: ['legacy/**/*.js'],
...js.configs.recommended,
},
{
files: ['legacy/**/*.js'],
languageOptions: {
ecmaVersion: 2022,
sourceType: 'module',
globals: {
...globals.browser,
gapi: 'readonly',
google: 'readonly',
},
},
rules: {
// You can adjust these based on your preference
'no-unused-vars': ['warn', { argsIgnorePattern: '^_' }], // Allows variables starting with _
'no-empty': ['error', { allowEmptyCatch: true }], // Allows empty catch blocks
'no-console': 'off', // Useful for node scripts
},
},
{
files: ['legacy/**/main.js'],
languageOptions: {
globals: {
...globals.node, // This defines require, __dirname, and process
},
},
},
{
files: ['legacy/**/*.test.js', 'legacy/**/__tests__/**'],
languageOptions: {
globals: {
...globals.browser,
...globals.node,
...globals.jest,
},
},
},
...tseslint.configs.recommended.map((config) => ({
...config,
files: ['src/**/*.ts'],
Expand Down
7 changes: 0 additions & 7 deletions legacy/babel.config.json

This file was deleted.

305 changes: 0 additions & 305 deletions legacy/help_spark.html

This file was deleted.

Loading
Loading