Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
40 commits
Select commit Hold shift + click to select a range
eefc68d
fix(step-31): wire components to ProjectPort and update store action …
dcoutinho1328 Mar 13, 2026
bf897fc
fix(step-31): update POU references from DTO format to flat PLCPou
dcoutinho1328 Mar 13, 2026
09341c2
fix(step-31): adjust panel defaults and add forwardRef to ActivityBar…
dcoutinho1328 Mar 13, 2026
df42759
fix(step-31): move closeModal/submitAutocompletion before useImperati…
dcoutinho1328 Mar 16, 2026
ccbf964
fix(step-31): fix ladder variable creation and configuration field na…
dcoutinho1328 Mar 16, 2026
2250ac4
fix(step-31): add debug badges, fix block variable matching and liter…
dcoutinho1328 Mar 16, 2026
17fd595
fix(step-31): wire missing accelerator handlers and fix save state ma…
dcoutinho1328 Mar 16, 2026
6146c79
fix(step-31): resolve 219 webpack compilation errors across src2 shar…
dcoutinho1328 Mar 16, 2026
752f6ab
fix(step-31): fix double ts-loader compilation, lint/format setup, an…
dcoutinho1328 Mar 16, 2026
86d6c24
fix(step-31): wire save orchestration, debug cleanup, and feature par…
dcoutinho1328 Mar 17, 2026
0e95453
refactor: rename src2/ to src/ and src/ to src_old/
dcoutinho1328 Mar 17, 2026
5a116e8
refactor: code quality improvements across 9 areas
dcoutinho1328 Mar 17, 2026
53fad7f
refactor: code quality and feature parity improvements
dcoutinho1328 Mar 18, 2026
6d9035d
fix: wire complete debugger flow through port interfaces
dcoutinho1328 Mar 18, 2026
4b0ef3b
refactor: make debug hooks platform-agnostic via port interfaces
dcoutinho1328 Mar 18, 2026
22560b9
refactor: platform capability gating and debug port interface improve…
dcoutinho1328 Mar 19, 2026
c7aea14
fix: resolve all 148 ESLint errors across src/
dcoutinho1328 Mar 19, 2026
64000b2
refactor: transport-agnostic DebugManager and shared surface cleanup
dcoutinho1328 Mar 23, 2026
0a3e357
uncommited changes
dcoutinho1328 Mar 25, 2026
2be1773
fix: migrate editor backend to flat POU format for serialization
dcoutinho1328 Mar 26, 2026
0cbb291
fix: sync debugger connection check and import paths from web
dcoutinho1328 Mar 27, 2026
33b9188
fix: pass projectName during save to prevent ID overwriting name
dcoutinho1328 Mar 27, 2026
f8f0dc4
fix: render AcceleratorHandler on all platforms for keyboard shortcuts
dcoutinho1328 Mar 27, 2026
1b5da8e
fix: sync debug types comment from web repo
dcoutinho1328 Mar 27, 2026
3301e0b
fix: sync shared surfaces from web repo
dcoutinho1328 Mar 27, 2026
a1a2f36
fix: use Zustand store for Monaco theme instead of DOM class check
Mar 29, 2026
c96f0b4
fix: use closeFile via useHandleRemoveTab hook for proper tab close
Mar 29, 2026
7c988e5
fix: recompute debug inline positions when editor mounts during activ…
Mar 30, 2026
5c3d61e
perf: poll only visible/needed debug variables instead of all leaves
Mar 30, 2026
89b903f
fix: import react-flow dark theme CSS and add media query fallback
Mar 30, 2026
6786b05
fix: persist theme preference to electron-store on IPC toggle
Mar 30, 2026
e37946d
fix: guard against non-array connectedVariables in ladder block
Mar 30, 2026
afe0f0d
fix: normalize legacy connectedVariables at load time and guard all a…
Mar 30, 2026
12565aa
fix: detect model switch for debug badge recomputation across POU tabs
Mar 30, 2026
2ab6786
fix: sync shared surfaces from web repo
dcoutinho1328 Mar 30, 2026
933aa91
fix: prevent false unsaved marks on FBD/LD/ST POUs
Mar 31, 2026
d216889
fix: wire save/discard/close actions in save-changes modals
Mar 31, 2026
18647ca
fix: undo/redo for LD/FBD with flow state restore and dirty flag trac…
Mar 31, 2026
582ba85
fix: enforce backend/frontend separation and remove debug leftovers
Mar 31, 2026
4d33502
fix(ci): repair migration CI workflow — skip postinstall and update p…
Mar 31, 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
  •  
  •  
  •  
4 changes: 2 additions & 2 deletions .devcontainer/devcontainer.json
Original file line number Diff line number Diff line change
Expand Up @@ -8,9 +8,9 @@
"ghcr.io/devcontainers/features/git:1": {},
"ghcr.io/devcontainers/features/github-cli:1": {}
},
"forwardPorts": [1212, 3000],
"forwardPorts": [1313, 3000],
"portsAttributes": {
"1212": { "label": "Webpack Dev Server (Renderer)" },
"1313": { "label": "Webpack Dev Server (Renderer)" },
"3000": { "label": "Electron Debug Port" }
},
"mounts": [
Expand Down
10 changes: 5 additions & 5 deletions .github/workflows/migration-ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -22,10 +22,10 @@ jobs:
cache: 'npm'

- name: Install dependencies
run: npm ci
run: npm ci --ignore-scripts

- name: Validate architecture layers
run: npx tsx src2/__architecture__/validate.ts
run: npx tsx src/__architecture__/validate.ts

unit-tests:
name: Unit Tests + Coverage (src2)
Expand All @@ -41,10 +41,10 @@ jobs:
cache: 'npm'

- name: Install dependencies
run: npm ci
run: npm ci --ignore-scripts

- name: Run src2 tests with 100% coverage threshold
run: npx jest --config jest.config.src2.json --collectCoverage --ci
- name: Run tests with coverage
run: npx jest --config jest.config.json --collectCoverage --ci

- name: Upload coverage report
uses: actions/upload-artifact@v4
Expand Down
55 changes: 41 additions & 14 deletions configs/webpack/webpack.config.main.dev.ts
Original file line number Diff line number Diff line change
@@ -1,32 +1,57 @@
/**
* Webpack config for development electron main process
* Webpack config for development electron main process (new src)
*
* Builds from src/main/. All @root imports resolve to src/.
*/

import { join } from 'path'
import webpack from 'webpack'
import { BundleAnalyzerPlugin } from 'webpack-bundle-analyzer'
import { merge } from 'webpack-merge'

import { dependencies as externals } from '../../release/app/package.json'
import checkNodeEnv from '../../scripts/check-node-env'
import baseConfig from './webpack.config.base'
import webpackPaths from './webpack.paths'

// When an ESLint server is running, we can't set the NODE_ENV so we'll check if it's
// at the dev webpack config is not accidentally run in a production environment
if (process.env.NODE_ENV === 'production') {
checkNodeEnv('development')
}

const srcPath = join(webpackPaths.rootPath, 'src')
const srcMainPath = join(srcPath, 'main')

const configuration: webpack.Configuration = {
devtool: 'inline-source-map',

mode: 'development',

target: 'electron-main',

externals: [...Object.keys(externals || {}), 'terser-webpack-plugin'],

stats: 'errors-only',

module: {
rules: [
{
test: /\.[jt]sx?$/,
exclude: /node_modules/,
use: {
loader: 'ts-loader',
options: {
transpileOnly: true,
compilerOptions: {
module: 'esnext',
},
},
},
},
],
},

entry: {
main: join(webpackPaths.srcMainPath, 'main.ts'),
preload: join(webpackPaths.srcMainPath, 'modules/preload/preload.ts'),
main: join(srcMainPath, 'main.ts'),
preload: join(srcMainPath, 'modules/preload/preload.ts'),
},

output: {
Expand All @@ -37,12 +62,19 @@ const configuration: webpack.Configuration = {
},
},


resolve: {
extensions: ['.ts', '.js'],
extensions: ['.js', '.jsx', '.json', '.ts', '.tsx'],
modules: [srcPath, 'node_modules'],
alias: {
'@root/utils': join(srcPath, 'frontend', 'utils'),
'@root': srcPath,
},
},

plugins: [
new webpack.EnvironmentPlugin({
NODE_ENV: 'development',
}),
// eslint-disable-next-line @typescript-eslint/ban-ts-comment
// @ts-ignore
new BundleAnalyzerPlugin({
Expand All @@ -54,15 +86,10 @@ const configuration: webpack.Configuration = {
}),
],

/**
* Disables webpack processing of __dirname and __filename.
* If you run the bundle in node.js it falls back to these values of node.js.
* https://github.com/webpack/webpack/issues/2010
*/
node: {
__dirname: false,
__filename: false,
},
}

export default merge(baseConfig, configuration)
export default configuration
68 changes: 68 additions & 0 deletions configs/webpack/webpack.config.main.old.dev.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,68 @@
/**
* Webpack config for development electron main process
*/

import { join } from 'path'
import webpack from 'webpack'
import { BundleAnalyzerPlugin } from 'webpack-bundle-analyzer'
import { merge } from 'webpack-merge'

import checkNodeEnv from '../../scripts/check-node-env'
import baseConfig from './webpack.config.base'
import webpackPaths from './webpack.paths'

// When an ESLint server is running, we can't set the NODE_ENV so we'll check if it's
// at the dev webpack config is not accidentally run in a production environment
if (process.env.NODE_ENV === 'production') {
checkNodeEnv('development')
}

const configuration: webpack.Configuration = {
devtool: 'inline-source-map',

mode: 'development',

target: 'electron-main',

entry: {
main: join(webpackPaths.srcMainPath, 'main.ts'),
preload: join(webpackPaths.srcMainPath, 'modules/preload/preload.ts'),
},

output: {
path: webpackPaths.dllPath,
filename: '[name].bundle.dev.js',
library: {
type: 'umd',
},
},


resolve: {
extensions: ['.ts', '.js'],
},

plugins: [
// eslint-disable-next-line @typescript-eslint/ban-ts-comment
// @ts-ignore
new BundleAnalyzerPlugin({
analyzerMode: process.env.ANALYZE === 'true' ? 'server' : 'disabled',
analyzerPort: 8888,
}),
new webpack.DefinePlugin({
'process.type': '"browser"',
}),
],

/**
* Disables webpack processing of __dirname and __filename.
* If you run the bundle in node.js it falls back to these values of node.js.
* https://github.com/webpack/webpack/issues/2010
*/
node: {
__dirname: false,
__filename: false,
},
}

export default merge(baseConfig, configuration)
Loading
Loading