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