Skip to content

Merge long development branch in main#144

Merged
RoiArthurB merged 245 commits intomainfrom
dev
Apr 15, 2026
Merged

Merge long development branch in main#144
RoiArthurB merged 245 commits intomainfrom
dev

Conversation

@RoiArthurB
Copy link
Copy Markdown
Contributor

Pull Request

Checklist

  • Code is complete and ready for review
  • Tests have been added/updated (if applicable)
  • Documentation has been updated (if applicable)

Description

Related Issue

RoiArthurB and others added 30 commits February 5, 2026 13:42
- Limited to Linux x86 on Node20 at the moment !
+ Everything documented in BUILD_EXECUTABLE.md

AI Explaination :
1.  **Backend Bundling**:
    - Created a `vite.backend.config.ts` to bundle the TypeScript backend into a single CommonJS file (`dist-api/index.cjs`). This resolves issues with ESM, top-level await, and complex `node_modules` structures when packaging with `pkg`.
    - Dependencies are bundled into the executable (except for native modules), ensuring all assets and subpath imports work correctly.

2.  **Integrated Frontend Serving**:
    - Added `src/api/infra/StaticServer.ts` which uses `express` to serve the built Vite frontend from the bundled environment.
    - Modified `src/api/index.ts` to automatically start this static server when running in a packaged environment or production mode.

3.  **Dynamic Environment Loading**:
    - Updated the `.env` loading logic in `src/api/index.ts` to look for the `.env` file in the same directory as the executable, satisfying the requirement for external configuration.

4.  **Packaging Configuration**:
    - Configured `@yao-pkg/pkg` (a maintained fork supporting Node 20) in `package.json`.
    - Included the built frontend (`dist/**/*`) and the `uWebSockets.js` native binary (`.node` file) as assets in the executable.

5.  **Build Scripts**:
    - Added `npm run build:frontend`, `npm run build:backend`, and `npm run build:executable` to `package.json`.

6.  **Fixes for Bundled Context**:
    - Refactored `src/api/index.ts` to avoid top-level await, ensuring compatibility with the CommonJS bundle required by `pkg`.
    - Applied a global fix for a `ReferenceError` (`targetMatch`) found in the `evilscan` dependency when running in strict/bundled mode.
- At the moment, only compile for MacOS x86
- Add new runner to have the compiled package compress to save some size
Application is compiled using `yao-pkg/pkg`, caxa been tested in developpement of this work but isn't used in final workflow
Otherwise, the artifact is quite big
- Since the introduction of ESLint, a lot of error have been raised all over the application
  - Fixed code smell from the backend
  - Properly use logger (by giving the Object _inside_ the logger function instead of outside)
  - Add semi-colon everywhere
- The introduction of GAMALESS is prone to create a lot of error (since the PlayerManager still need to be active, but without interaction with GamaConnector which still could be requested but undefined... Catch most error)
- Make ESLint more flexible by allowing `any` type
…are trivial, added context to variable declaration in switch block, removed unused "handlegetplayers" in the simulationManagerPlayer component
…etting the background of the div element, we create an <img> object. This allows us to use "on error", and change the source if the app does not manage to load it properly.
… to warp the splashscreen, the latter not being displayed in the whole container and being squished instead
- Properly get Logger
- Rename JsonSettings constant which is very ambiguous
- Cleanup logging
- Fix #113 #114
- Basically reverting 737b6ee since no check been made on the function process and was, actually, double launching the simulation to GAMA
- Clean up some more code and strongly type parameters to avoid more issue
- Conflicts:
- .gitignore
  - `eslint.config.ts` should not be ignored and should be shared on the project to maintain same code quality
-src/api/monitoring/MonitorServer.ts
  - Double check the merge, it's impossible to read with all the text reformating applied....
At the moment, if a new client connects and the scrcpy already saved a keyframe, it'll send this one, then ask streams to restart potentially creating issue where the client will init on an older keyframe.
Removing this double submission, normally streamlining/simplifying stream synchronization and potentially fixing issues
Related #100
GuillaumeLeroy34 and others added 28 commits March 31, 2026 15:28
…4258149670714501933

Fix scrcpy streams rendering on Safari using MessageChannel fallback
Fix #133
Add ON_DEVICE_OVR_PREFS constant for persist.ovr.prefs_overrides.*
settings, checked via getprop and set via PreferencesService AIDL.
Applies idle_time_threshold (Display Off) and autosleep_time (Sleep Mode)
to 4 hours (14400s) on every headset connection.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
- Add ON_DEVICE_ADB_SYSTEM_SETTINGS (screen_off_timeout: 24h)
- Add ON_DEVICE_ADB_SECURE_SETTINGS (sleep_timeout: disabled)
- Add ON_DEVICE_ADB_BROADCASTS with prox_close to force proximity
  sensor to "worn" state — prevents screen blackout on headset removal
- Refactor checkGlobalSetting/setGlobalSetting into generic
  checkSetting/setSetting with namespace param (global/system/secure)
- Add applySystemSettings, applySecureSettings, applyBroadcasts methods

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
…row instead of the home button, and adjusted it's positionning and size
- Remove uselessly ordered V1 folder
- Remove all unused images
- Unified colored logos in the new architecture
- Update all the refs in components
@RoiArthurB RoiArthurB merged commit 09e8d22 into main Apr 15, 2026
1 check passed
@sonarqubecloud
Copy link
Copy Markdown

Quality Gate Failed Quality Gate failed

Failed conditions
10 Security Hotspots
C Reliability Rating on New Code (required ≥ A)
D Security Rating on New Code (required ≥ A)

See analysis details on SonarQube Cloud

Catch issues before they fail your Quality Gate with our IDE extension SonarQube for IDE

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants