5544 Commits

Author SHA1 Message Date
John Doe 2339a80952 fix: replace fs-extra with native fs in byokConfig.js to fix CI test failure
The CI workflow runs npm ci --ignore-scripts in newIDE/electron-app/,
which skips the postinstall script that normally installs app/ dependencies
(where fs-extra was declared). This caused callLLM.test.js to fail with
'Cannot find module fs-extra' when loading byokConfig.js.

Fix: replace fs-extra (readFile, ensureDir, writeJson) with native Node.js
fs.promises equivalents (readFile, mkdir recursive, writeFile).  All three
operations are trivially available in the native fs module — no external
dependency needed. This makes byokConfig.js loadable in any Node environment.

Tests: all 72 BYOK unit tests pass (4 suites, 72 assertions, 0 failures).
2026-05-19 21:27:27 -04:00
John Doe 91ae6d3b83 Run Prettier on BYOK files to fix formatting check 2026-05-19 21:03:08 -04:00
John Doe 7867a2ddeb Fix pre-existing unused import causing CI lint failure
Remove unused isNativeMobileApp import from Usage.js. This is an
upstream issue that was already present when the fork was created.
2026-05-19 18:11:39 -04:00
John Doe bec38ad0c7 Add GitHub Actions CI workflow and BYOK smoke-test procedure
- .github/workflows/ci.yml: 4-job CI pipeline (install, lint, BYOK unit
  tests, newIDE Jest tests) running on push/PR to main/master/milestone/*
- newIDE/electron-app/app/byok/SMOKE-TEST.md: 17-step manual verification
  procedure for the BYOK feature (config persistence, chat routing,
  non-BYOK fallback)
2026-05-19 17:38:37 -04:00
John Doe 29cce95169 gsd snapshot: uncommitted changes after 76m inactivity 2026-05-19 17:25:43 -04:00
John Doe bea1b46fd8 chore: auto-commit after reactive-execute
GSD-Unit: M001/S05/reactive+T01,T02
2026-05-19 15:01:27 -04:00
John Doe 49e1995cf9 gsd snapshot: uncommitted changes after 177m inactivity 2026-05-19 14:31:06 -04:00
John Doe f5d747528b feat: Created ByokConfigPanel.js React component with provider CompactS…
- newIDE/app/src/AiGeneration/AiRequestChat/ByokConfigPanel.js

GSD context:
- Milestone: M001 - BYOK Fork
- Slice: S04
- Task: T02 - Created ByokConfigPanel.js React component with provider CompactSelectField, endpoint/model/apiKey SemiControlledTextFields, and save/success/error feedback via window.byokAi IPC

GSD-Task: S04/T02
2026-05-19 11:33:44 -04:00
John Doe db25ec088d feat: Added apiKey merge logic in byok:saveConfig to preserve existing…
- newIDE/electron-app/app/byok/byokMain.js

GSD context:
- Milestone: M001 - BYOK Fork
- Slice: S04
- Task: T01 - Added apiKey merge logic in byok:saveConfig to preserve existing key when incoming value is empty/masked

GSD-Task: S04/T01
2026-05-19 11:29:56 -04:00
John Doe 98fd36b498 feat: Wired BYOK routing into AskAiEditorContainer — BYOK preset now ro…
- newIDE/app/src/AiGeneration/AskAiEditorContainer.js

GSD context:
- Milestone: M001 - BYOK Fork
- Slice: S03
- Task: T03 - Wired BYOK routing into AskAiEditorContainer — BYOK preset now routes createAiRequest and addMessageToAiRequest through local IPC instead of the GDevelop REST API

GSD-Task: S03/T03
2026-05-19 11:07:11 -04:00
John Doe dbfc27dfad gsd snapshot: uncommitted changes after 177m inactivity 2026-05-19 10:47:09 -04:00
John Doe 6cf96b3db9 chore: finalize worktree state before migration to master 2026-05-19 07:49:51 -04:00
John Doe f957c5f0fa test: Created byokConfig.js (Electron config persistence with fs-extra)…
- newIDE/electron-app/app/byok/byokConfig.js
- newIDE/electron-app/app/byok/requestStore.js
- newIDE/electron-app/app/byok/test-t02.cjs

GSD context:
- Milestone: M001 - BYOK Fork
- Slice: S02
- Task: T02 - Created byokConfig.js (Electron config persistence with fs-extra) and requestStore.js (in-flight AI request tracker with AbortController), with 22 passing unit tests

GSD-Task: S02/T02
2026-05-18 21:45:43 -04:00
John Doe 343ebb2cc2 test: Created errors.js with typed ByokError class and buildSystemPromp…
- newIDE/electron-app/app/byok/errors.js
- newIDE/electron-app/app/byok/buildSystemPrompt.js
- newIDE/electron-app/app/byok/test-t01.cjs

GSD context:
- Milestone: M001 - BYOK Fork
- Slice: S02
- Task: T01 - Created errors.js with typed ByokError class and buildSystemPrompt.js with configurable system prompt assembly — both pure-JS modules with 19 passing tests

GSD-Task: S02/T01
2026-05-18 21:37:46 -04:00
John Doe 0166ecc4c8 chore: auto-commit after stop
GSD-Unit: M001
2026-05-18 21:15:59 -04:00
D8H 032b93f0e2 Fix copied events to keep the same order when pasted (#8610) 2026-05-18 18:24:59 +02:00
D8H cea1410fb3 Add syntax highlighting for expressions in events (#8538)
Complex expressions and formula will now be shown using multiple colors, like the rest of events. This allows to identify objects, numbers, strings in a long formula.
2026-05-18 18:10:00 +02:00
Florian Rival 391caaddf4 Add internal hints for objects without known width/height (#8608)
Don't show in changelog
2026-05-17 13:38:23 +02:00
D8H c8d5f4600c Add a button in the extension editor to select behaviors with the dialog (#8602) 2026-05-15 11:30:00 +02:00
D8H f9d1d4c60c Fix and show the button to add parameters to "action with operator" functions as disabled (#8603) 2026-05-15 11:29:59 +02:00
D8H d81a6899dd Allow to create variables from autocompletion in more cases (#8583)
Also, in the extension editor: 
- Focus and select new parameter names
- Allow to add a new parameter from the variable autocompletion
- Allow to add behaviors from the bottom of the instruction list
2026-05-14 16:24:24 +02:00
D8H cacd28eed7 Add a "layer" property type for custom behaviors (#8596) 2026-05-14 12:50:25 +02:00
Clément Pasteau 4bb652f5e1 Fix Ai Panel not aligned to the top properly on mobile + improve games search to be more relevant (#8590) 2026-05-13 10:27:58 +02:00
github-actions[bot] f60562eae3 [Auto PR] Update translations (#8585) 2026-05-13 10:27:13 +02:00
ViktorVovk 651c93ae1f Add "Select All" in Events Sheet and ability to deselect an event when doing a multi-selection (#8578) 2026-05-11 14:29:29 +02:00
Clément Pasteau 0eb6014a93 Fix some visual glitches in the Events Sheet when opening and scrolling (#8571) 2026-05-11 10:52:30 +02:00
Florian Rival 230657d076 Bump 2026-05-07 17:48:54 +02:00
Florian Rival edc26bdcbf Return non-zero objectSizeInfo for TextInput, Lighting and 3D objects and null when unknown 2026-05-07 16:14:18 +02:00
Florian Rival 1e8f76d3ba Bump newIDE version 2026-05-06 16:49:23 +02:00
Clément Pasteau 3c80598d09 Revert "Fix some visual glitches in the Events Sheet (#8551)" (#8570)
This reverts commit 232443328d.
2026-05-06 16:48:11 +02:00
Florian Rival b3f7bc5ebf Bump newIDE version 2026-05-06 09:52:50 +02:00
github-actions[bot] 286f8594c4 [Auto PR] Update translations [ci skip] (#8565) 2026-05-06 09:51:44 +02:00
Clément Pasteau 232443328d Fix some visual glitches in the Events Sheet (#8551) 2026-05-05 18:29:21 +02:00
D8H 98e5184958 Fix missing error on expressions with unknown objects in the event sheet (#8566) 2026-05-05 16:06:31 +02:00
github-actions[bot] 100787f9e9 [Auto PR] Update translations (#8555) 2026-05-04 16:23:16 +02:00
Florian Rival c293911c84 Fix missing space in documentation generation and update types 2026-05-04 15:52:51 +02:00
Florian Rival 5dd2b8ffd8 Add hints for some extensions, displayed in the documentation (#8564) 2026-05-04 15:11:56 +02:00
Clément Pasteau e6a5b70a24 Fix events locking up when dragging on mobile (#8563) 2026-05-04 14:26:09 +02:00
D8H 8e50ddefe4 Allow to configure object resources to be loaded independently from the scene (#8514)
- This is an advanced, experimental feature which is subject to changes. It's in most cases not useful, unless you have a large game or low end devices for which controlling memory usage is important. It's mostly useful to delay loading of large custom objects.
- Objects can be configured so that its resources are not loaded when the scene is loaded. Instead, you can use an action to manually load the resources used by it. When the loading is done (this can be checked using a condition), the object can then be created.
  Be careful: if an object assets are not loaded, it will be broken when displayed on screen.
2026-05-04 10:45:51 +02:00
Clément Pasteau c5c718354a Fix object dragging on mobile having a small delay (#8562)
Do not show in changelog
2026-05-04 10:39:26 +02:00
Florian Rival e8fe23d9dc Fix rendering of events true/false or yes/no as text when parameter not filled (#8561) 2026-05-03 23:35:12 +02:00
Florian Rival 182fb12dff Fix variable edition by AI wrongly erasing content of existing structure variables 2026-05-03 16:23:38 +02:00
github-actions[bot] e25265dc19 [Auto PR] Update translations (#8550) 2026-04-30 14:24:31 +02:00
Clément Pasteau cd9d5f3b0a Fix course video visibility (#8554) 2026-04-30 14:24:14 +02:00
github-actions[bot] e9b9596d6d [Auto PR] Update translations (#8540) 2026-04-28 17:50:45 +02:00
Clément Pasteau 09ab670e7f Improve make a game courses structure (#8549) 2026-04-28 17:42:37 +02:00
Clément Pasteau 0f9127f506 Fix renaming objects on mobile weird behaviors (#8548)
- starting a rename was showing the image of the element dragged
- could not press on the input to select it
2026-04-28 14:30:28 +02:00
LuniMoon 0519896984 More Events Sheet design adjustments (#8545)
- Tweaking spacing (handles, event content spacing)
- Color: vertical lines for children, selection
- System Feedback: Warning & Errors
2026-04-28 14:27:25 +02:00
ViktorVovk e62e15c74b Add editor lifecycle hooks for auto running npm scripts (#8515)
- Three hooks are implemented:
  - * **onEditorReady** — after the project is loaded and settings are
applied
  - * **onPreviewStart** — before preview export/launch begins
  - * **onPreviewEnd** — when the preview window is closed
- Auto-execution of hooked scripts requires user consent.
  * Show a one-time dialog on the first hooked script trigger, asking the user to allow automatic script execution. The decision is then stored.
  * Then, hooked scripts run silently without any prompts.
2026-04-28 10:48:06 +02:00
Florian Rival 31282a90df Fix potential crash in scene editor when reloading resources with custom objects (#8544) 2026-04-27 16:41:55 +02:00