Skip to content
Merged
Show file tree
Hide file tree
Changes from 3 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
20 changes: 10 additions & 10 deletions .github/workflows/electron-build.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -43,15 +43,15 @@ jobs:
with:
draft: true
files: |
dist/*.exe
dist/*.zip
dist/*.dmg
dist/*.AppImage
dist/*.snap
dist/*.deb
dist/*.rpm
dist/*.tar.gz
dist/*.yml
dist/*.blockmap
desktop/*.exe
desktop/*.zip
desktop/*.dmg
desktop/*.AppImage
desktop/*.snap
desktop/*.deb
desktop/*.rpm
desktop/*.tar.gz
desktop/*.yml
desktop/*.blockmap
Comment on lines +46 to +55
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

💡 Verification agent

🧩 Analysis chain

Verify artefact globs – are outputs really emitted directly to desktop/?

Electron-builder typically emits to dist/ or out/ (e.g. dist/win-unpacked/*.exe).
If build scripts keep the default paths, these new patterns will upload zero files and the release job will silently succeed with an empty release.


🏁 Script executed:

#!/bin/bash
# List produced artefacts after a local build: expect at least one match.
fd -e exe -e dmg -e AppImage -e deb -e rpm -e zip -e tar.gz -e blockmap .

Length of output: 75


To verify where the build actually writes its output, let’s inspect the workflow and any Electron Builder configuration:


🏁 Script executed:

#!/bin/bash
# Display the build workflow to see the output path used during the release job
sed -n '1,200p' .github/workflows/electron-build.yaml

# Look for any directories or outDir settings in package.json that override defaults
rg -n '"directories"' -g package.json || echo "No ‘directories’ key in package.json"
rg -n '"outDir"'      -g package.json || echo "No ‘outDir’ key in package.json"
rg -n 'electron.*builder' -g package.json || echo "No electron-builder config in package.json"

Length of output: 2124


To confirm where Electron Builder is outputting artifacts, let’s inspect the desktop/package.json build config:


🏁 Script executed:

#!/bin/bash
# Locate the electron-builder config section in desktop/package.json
rg -n '^  "build"' -g desktop/package.json || exit 0

# Extract 50 lines starting from the build key for context
START_LINE=$(rg -n '^  "build"' -g desktop/package.json | head -n1 | cut -d: -f1)
sed -n "${START_LINE},$((START_LINE+50))p" desktop/package.json

Length of output: 53


Fix release job artifact path globs

Electron Builder is using its default output directory (dist/), so the current desktop/*.… patterns will match no files. Update the files: section in .github/workflows/electron-build.yaml (lines 46–55) to point at dist/ (or configure Builder to use desktop/ as its output directory).

• File: .github/workflows/electron-build.yaml
• Lines: 46–55

Suggested diff:

     with:
       draft: true
       files: |
-        desktop/*.exe
-        desktop/*.zip
-        desktop/*.dmg
-        desktop/*.AppImage
-        desktop/*.snap
-        desktop/*.deb
-        desktop/*.rpm
-        desktop/*.tar.gz
-        desktop/*.yml
-        desktop/*.blockmap
+        dist/*.exe
+        dist/*.zip
+        dist/*.dmg
+        dist/*.AppImage
+        dist/*.snap
+        dist/*.deb
+        dist/*.rpm
+        dist/*.tar.gz
+        dist/*.yml
+        dist/*.blockmap

If you’d rather keep desktop/, add a "directories": { "output": "desktop" } section to your Electron Builder config.

📝 Committable suggestion

‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.

Suggested change
desktop/*.exe
desktop/*.zip
desktop/*.dmg
desktop/*.AppImage
desktop/*.snap
desktop/*.deb
desktop/*.rpm
desktop/*.tar.gz
desktop/*.yml
desktop/*.blockmap
with:
draft: true
files: |
dist/*.exe
dist/*.zip
dist/*.dmg
dist/*.AppImage
dist/*.snap
dist/*.deb
dist/*.rpm
dist/*.tar.gz
dist/*.yml
dist/*.blockmap
🤖 Prompt for AI Agents
In .github/workflows/electron-build.yaml lines 46 to 55, the artifact file path
globs incorrectly point to the 'desktop/' directory, but Electron Builder
outputs files to the 'dist/' directory by default. To fix this, update all file
path patterns in the 'files:' section from 'desktop/*' to 'dist/*' so they
correctly match the output files. Alternatively, if you want to keep using
'desktop/', modify the Electron Builder configuration to set the output
directory to 'desktop' by adding a "directories": { "output": "desktop" }
section.

env:
GITHUB_TOKEN: ${{ secrets.RELEASE_NOTE_WRITE }}
8 changes: 1 addition & 7 deletions .github/workflows/release-tag.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -14,12 +14,6 @@ jobs:
- name: Checkout code
uses: actions/checkout@v4
- name: Create Release for Tag
id: release_tag
uses: actions/create-release@v1
run: echo "TODO: we have to create a Release notes genetor CI"
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

💡 Verification agent

🧩 Analysis chain

Address YAML syntax error flagged by static analysis tools.

Multiple static analysis tools (actionlint and YAMLlint) are reporting syntax errors on this line. Please verify the YAML syntax is correct.

Also, there's a typo in the TODO message: "genetor" should be "generator".


🏁 Script executed:

#!/bin/bash
# Verify YAML syntax of the workflow file
yamllint .github/workflows/release-tag.yaml
actionlint .github/workflows/release-tag.yaml

Length of output: 654


Fix YAML syntax and typos in your release-tag workflow

YAMLLint and Actionlint report multiple issues in .github/workflows/release-tag.yaml:

  • Missing document start --- at the top (line 1).
  • Incorrect line endings (CRLF instead of LF) leading to “wrong new line character” errors.
  • A non-boolean truthy value on line 3 (“yes”); use true or false.
  • Syntax error at line 17 caused by improper newlines/indentation.
  • Typo in the TODO message: “genetor” → “generator”.
  • Unused environment variable RELEASE_NOTE_WRITE.

Please address as follows:

• Add --- as the first line of the file.
• Convert the file to LF line endings (e.g. via dos2unix).
• Replace any “yes”/“no” values with true/false.
• Ensure the run: step on line 17 is properly indented, quoted, and ends with LF; correct the typo in “generator”.
• Either remove RELEASE_NOTE_WRITE or use it in your run: command.

🧰 Tools
🪛 actionlint (1.7.7)

17-17: could not parse as YAML: yaml: line 17: mapping values are not allowed in this context

(syntax-check)

🪛 YAMLlint (1.37.1)

[error] 17-17: syntax error: mapping values are not allowed here

(syntax)

🤖 Prompt for AI Agents
In .github/workflows/release-tag.yaml at line 17, fix the YAML syntax and typos
by first adding '---' as the first line of the file, converting all line endings
to LF, replacing any 'yes' or 'no' values with boolean true or false, and
correcting the indentation and quoting of the run step on line 17. Also, fix the
typo in the TODO message from "genetor" to "generator" and either remove the
unused RELEASE_NOTE_WRITE environment variable or incorporate it into the run
command.

env:
RELEASE_NOTE_WRITE: ${{ secrets.RELEASE_NOTE_WRITE }}
with:
tag_name: ${{ github.ref }}
release_name: ${{ github.ref }}
body: |
Please refer to [changelog.md](https://github.com/devlopersabbir/executeme/blob/${{ github.ref_name }}/changelog.md) for details
3 changes: 3 additions & 0 deletions changelog.md
Original file line number Diff line number Diff line change
Expand Up @@ -31,3 +31,6 @@
- [chore] Created executeme platform logo for free
- [feat] Created a release notes ci/cd pipeline to automate our release version
- [feat] Create electron builder CI for build various platform applicaiton
- [feat] ShadcnUI added to our desktop application
- [feat] Monaco editor setup with electron js
- [feat] Code highlight & inte. is supported
2 changes: 2 additions & 0 deletions desktop/.env.example
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
RENDERER_VITE_SERVER_BASE_URL=""
RENDERER_VITE_SERVER_BASE_URL_LOCAL="http://localhost:9091"
Comment on lines +1 to +2
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🛠️ Refactor suggestion

Missing documentation & mismatch with code – these vars are currently dead-weight

Both keys are unexplained and are not consumed because base.ts now hard-codes the URI. Either remove the hard-coded value or document & reference these env vars; otherwise future readers will assume they drive the runtime endpoint.

-RENDERER_VITE_SERVER_BASE_URL=""
-RENDERER_VITE_SERVER_BASE_URL_LOCAL="http://localhost:9091"
+# Remote server the desktop app talks to (leave blank to fall back to production default)
+RENDERER_VITE_SERVER_BASE_URL=""
+
+# Local dev server for `npm run dev`
+RENDERER_VITE_SERVER_BASE_URL_LOCAL="http://localhost:9091"
📝 Committable suggestion

‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.

Suggested change
RENDERER_VITE_SERVER_BASE_URL=""
RENDERER_VITE_SERVER_BASE_URL_LOCAL="http://localhost:9091"
# Remote server the desktop app talks to (leave blank to fall back to production default)
RENDERER_VITE_SERVER_BASE_URL=""
# Local dev server for `npm run dev`
RENDERER_VITE_SERVER_BASE_URL_LOCAL="http://localhost:9091"
🤖 Prompt for AI Agents
In desktop/.env.example at lines 1 to 2, the environment variables
RENDERER_VITE_SERVER_BASE_URL and RENDERER_VITE_SERVER_BASE_URL_LOCAL are
defined but not used because base.ts hard-codes the server URI. To fix this,
either remove these unused environment variables from the file or update base.ts
to reference these variables dynamically. Additionally, add comments explaining
their purpose if you keep them, ensuring the code and documentation align to
avoid confusion.

4 changes: 2 additions & 2 deletions desktop/.prettierrc.yaml
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
singleQuote: true
semi: false
singleQuote: false
semi: true
printWidth: 100
trailingComma: none
21 changes: 21 additions & 0 deletions desktop/components.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
{
"$schema": "https://ui.shadcn.com/schema.json",
"style": "new-york",
"rsc": false,
"tsx": true,
"tailwind": {
"config": "",
"css": "src/renderer/src/assets/main.css",
"baseColor": "neutral",
"cssVariables": true,
"prefix": ""
},
"aliases": {
"components": "src/renderer/src/components",
"utils": "src/renderer/src/lib/utils",
"ui": "src/renderer/src/components/ui",
"lib": "src/renderer/src/lib",
"hooks": "src/renderer/src/hooks"
},
"iconLibrary": "lucide"
}
14 changes: 8 additions & 6 deletions desktop/electron.vite.config.ts
Original file line number Diff line number Diff line change
@@ -1,6 +1,8 @@
import { resolve } from 'path'
import { defineConfig, externalizeDepsPlugin } from 'electron-vite'
import react from '@vitejs/plugin-react'
import { resolve } from "path";
import { defineConfig, externalizeDepsPlugin } from "electron-vite";
import react from "@vitejs/plugin-react";
// @ts-ignore
import tailwindcss from "@tailwindcss/vite";
Comment on lines +4 to +5
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

💡 Verification agent

🧩 Analysis chain

Address TypeScript ignore directive for Tailwind CSS import.

The @ts-ignore directive suggests missing or incompatible type definitions. Consider installing the proper type definitions or updating the import statement.


🏁 Script executed:

#!/bin/bash
# Check if @tailwindcss/vite has proper TypeScript definitions
npm info @tailwindcss/vite
# Look for alternative import methods or type definitions
rg -A 5 -B 5 "@tailwindcss/vite" --type ts

Length of output: 1508


Add TypeScript declaration for @tailwindcss/vite plugin

Verified that @tailwindcss/vite (v4.1.11) does not ship its own .d.ts files, so the // @ts-ignore is currently required. To remove the ignore and restore proper type-checking:

• Create a global declaration file (e.g. src/types/tailwindcss-vite.d.ts):

declare module "@tailwindcss/vite";

Ensure your tsconfig.json includes it under include or via "typeRoots": ["src/types", "node_modules/@types"].

• Remove the ignore directive in desktop/electron.vite.config.ts:

- // @ts-ignore
  import tailwindcss from "@tailwindcss/vite";

• (Optional) If you prefer project-wide suppression of missing types, enable in tsconfig.json:

{
  "compilerOptions": {
    "skipLibCheck": true,
    //
  }
}

With the declaration file in place, you can safely remove @ts-ignore and maintain full type-safety.

🤖 Prompt for AI Agents
In desktop/electron.vite.config.ts around lines 4 to 5, the import of
@tailwindcss/vite uses // @ts-ignore due to missing TypeScript declarations. To
fix this, create a global declaration file named src/types/tailwindcss-vite.d.ts
with the content declare module "@tailwindcss/vite"; then ensure this file is
included in your tsconfig.json under "include" or "typeRoots". After that,
remove the // @ts-ignore line from the import statement to restore proper
type-checking without errors.


export default defineConfig({
main: {
Expand All @@ -12,9 +14,9 @@ export default defineConfig({
renderer: {
resolve: {
alias: {
'@renderer': resolve('src/renderer/src')
"@renderer": resolve("src/renderer/src")
}
},
plugins: [react()]
plugins: [react(), tailwindcss()]
}
})
});
18 changes: 17 additions & 1 deletion desktop/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -28,12 +28,27 @@
"dependencies": {
"@electron-toolkit/preload": "^3.0.1",
"@electron-toolkit/utils": "^4.0.0",
"electron-updater": "^6.3.9"
"@monaco-editor/react": "^4.7.0",
"@radix-ui/react-select": "^2.2.5",
"@radix-ui/react-slot": "^1.2.3",
"axios": "^1.10.0",
"class-variance-authority": "^0.7.1",
"clsx": "^2.1.1",
"electron-updater": "^6.3.9",
"lucide-react": "^0.525.0",
"monaco-editor": "^0.52.2",
"next-themes": "^0.4.6",
"perf_hooks": "^0.0.1",
"socket.io-client": "^4.8.1",
"sonner": "^2.0.6",
"tailwind-merge": "^3.3.1",
"tw-animate-css": "^1.3.5"
},
"devDependencies": {
"@electron-toolkit/eslint-config-prettier": "^3.0.0",
"@electron-toolkit/eslint-config-ts": "^3.0.0",
"@electron-toolkit/tsconfig": "^1.0.1",
"@tailwindcss/vite": "^4.1.11",
"@types/node": "^22.14.1",
"@types/react": "^19.1.1",
"@types/react-dom": "^19.1.2",
Expand All @@ -48,6 +63,7 @@
"prettier": "^3.5.3",
"react": "^19.1.0",
"react-dom": "^19.1.0",
"tailwindcss": "^4.1.11",
"typescript": "^5.8.3",
"vite": "^6.2.6"
},
Expand Down
Loading