From c06bd56837ceb0d9be84ee442a8b62e69fef1290 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" Date: Fri, 17 Apr 2026 13:13:28 +0000 Subject: [PATCH 1/4] docs: update CHANGELOG for v2.0.1 [skip ci] --- CHANGELOG.md | 49 +++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 49 insertions(+) create mode 100644 CHANGELOG.md diff --git a/CHANGELOG.md b/CHANGELOG.md new file mode 100644 index 00000000..5715c104 --- /dev/null +++ b/CHANGELOG.md @@ -0,0 +1,49 @@ +# Changelog + +All notable changes to Velxio will be documented in this file. +The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/). + +## [2.0.1] - 2026-04-17 + +### Added +- Added ATtiny85 support with examples and simulation tests +- Added BMP280 sensor component with circuit preview and SVG representation +- Added example detail pages with improved SEO and sitemap generation +- Added MicroPython support for RP2040 (Pico), ESP32, ESP32-S3, and ESP32-C3 boards +- Added ability to upload precompiled firmware files (.hex, .bin, .elf) directly into the emulator +- Added ability to remove boards from workspace with confirmation dialog +- Added I2C sensor support with slave emulation for MPU6050, BMP280, DS1307, and DS3231 sensors +- Added ESP32 WiFi/BLE emulation with ESP-IDF compilation pipeline +- Added VS Code extension skeleton for local simulation +- Added comprehensive documentation for ESP32 GPIO sensor simulation, Docker infrastructure, and MicroPython implementation +- Added auto-compile feature that triggers compilation when pressing Play if code changed or no firmware loaded +- Added share functionality for projects and examples with visibility toggle +- Added component metadata overrides and enhanced property controls +- Added new CI/CD workflows for backend unit tests, end-to-end tests, and automated Discord release notifications +- Added Docker multi-architecture support (amd64 + arm64) and pre-built ESP-IDF toolchain image + +### Changed +- Enhanced auto-compile to use board's file group for WiFi detection instead of legacy global files +- Updated CircuitPreview component and implemented ShareModal using createPortal +- Enhanced Arduino pin tracing in DynamicComponent and updated LittleFS WASM initialization +- Enhanced ESP-IDF compiler library resolution logic and added support for dynamic library detection +- Enhanced wire connection handling and GND checks for components +- Enhanced logging for library loading and WiFi progress +- Updated Docker build processes with optimized build contexts and multi-architecture support +- Changed WiFi SSID normalization to match QEMU access points for reliable ESP32 WiFi connection +- Refactored I2C slave tests for ESP32 with improved event handling and ACK/NACK responses + +### Fixed +- Fixed container restart issue by monitoring both backend and nginx processes +- Fixed project saving to use active board files/kind and improved error messages +- Fixed ESP32 boot stability with deterministic instruction counting +- Fixed ESP32 Run button to auto-compile and recover firmware after page refresh +- Fixed LED ground check to require cathode wired to GND (or LOW GPIO) to light up +- Fixed MPU6050Slave I2C handling with improved WHO_AM_I read tracking +- Fixed ESP32 WiFi SSID/channel alignment with QEMU access_points array +- Fixed RISC-V toolchain paths for ESP32-C3 compilation +- Fixed ESP-IDF Python requirements installation in Docker +- Fixed SaveProjectModal to prevent saving to `/api/projects/none` when project ID is invalid +- Fixed ESP32 compilation by adding missing dependencies (cmake, ninja-build, git, packaging, libusb) + +[2.0.1]: https://github.com/davidmonterocrespo24/velxio/releases/tag/v2.0.1 From 15075cbb2d4a29806807dcce18a771903bdd2ba2 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" Date: Wed, 22 Apr 2026 03:58:27 +0000 Subject: [PATCH 2/4] docs: update CHANGELOG for v2.0.1 [skip ci] --- CHANGELOG.md | 28 ++++++++++++++++++++++++++++ 1 file changed, 28 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 5715c104..641d4671 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -3,6 +3,34 @@ All notable changes to Velxio will be documented in this file. The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/). +## [2.0.1] - 2026-04-22 + +### Added +- Enhanced electrical simulation with ngspice-WASM engine for accurate analog circuit analysis +- Expanded component catalog with 44 SPICE-compatible parts including logic gates, transistors, op-amps, regulators, and electromechanical components +- Added 40 new circuit examples demonstrating analog, digital, and electromechanical concepts +- Introduced custom web components for electronic elements (relays, resistors, capacitors, inductors, transistors) +- Implemented ESP32 ADC waveform simulation with periodic 12-bit waveform look-up tables and interpolation +- Added voltmeter and ammeter instrument components for real-time circuit measurements +- Created comprehensive end-to-end tests for electrical simulation including capacitor charging, rectifier behavior, and waveform analysis +- Added GitHub Actions workflow for circuit simulation testing on every push and PR + +### Changed +- Renamed all components to use 'velxio-' prefix for consistency +- Enabled electrical simulation by default (always-on SPICE mode) instead of requiring manual activation +- Enhanced LED brightness simulation to reflect actual current flow from SPICE calculations +- Updated backend to handle unhandled asyncio exceptions and prevent process crashes +- Improved component metadata generation to prevent CI drift and enforce up-to-date metadata +- Refactored property synchronization in simulation parts to use event-based system +- Expanded ADC pin mapping to support all 18 board types for full microcontroller integration + +### Fixed +- Fixed sitemap generation to include all circuit examples for better SEO visibility +- Resolved floating input node issues in RC low-pass filter circuits that caused SPICE singular matrix errors +- Updated proxy configuration to use 127.0.0.1 for improved compatibility +- Fixed metadata regeneration to properly include custom components in the component picker +- Improved backend entrypoint script to ensure clean container restarts when processes die + ## [2.0.1] - 2026-04-17 ### Added From 200875720c70b8415d654144aca4b21d9e4f7cca Mon Sep 17 00:00:00 2001 From: David Montero Date: Thu, 11 Jun 2026 14:54:43 +0200 Subject: [PATCH 3/4] fix(ci): auto-increment release version + baseline 3.0.0 Seed the release branch with the corrected discord-release-notify workflow and version baseline BEFORE the next master->release merge, so that merge announces v3.0.0 and the workflow bumps the patch (3.0.0 -> 3.0.1 -> ...) on every subsequent merge instead of repeating the same version. A direct push (not a pull_request) does not trigger the announce workflow, so this is safe to land here ahead of the merge. --- .github/workflows/discord-release-notify.yml | 45 +++++++++++++++++--- frontend/package.json | 2 +- 2 files changed, 39 insertions(+), 8 deletions(-) diff --git a/.github/workflows/discord-release-notify.yml b/.github/workflows/discord-release-notify.yml index a0038751..abd0d164 100644 --- a/.github/workflows/discord-release-notify.yml +++ b/.github/workflows/discord-release-notify.yml @@ -72,12 +72,26 @@ jobs: } // ── Version ────────────────────────────────────────────────────── - let version = '2.0.1'; + // The version to announce comes from frontend/package.json on the + // release branch. After announcing we bump the PATCH and commit it + // back to release, so EACH merge announces a fresh version + // (3.0.0 -> 3.0.1 -> 3.0.2 ...) instead of repeating the same one. + // To jump the major/minor, edit frontend/package.json on the + // release branch (e.g. set "version": "3.1.0") and the next merge + // continues from there. + let version = '3.0.0'; try { const pkg = JSON.parse(fs.readFileSync('frontend/package.json', 'utf8')); - version = pkg.version ?? '2.0.1'; + version = pkg.version ?? '3.0.0'; } catch {} - console.log(`Version: v${version}`); + + function bumpPatch(v) { + const m = String(v).match(/^(\d+)\.(\d+)\.(\d+)/); + if (!m) return v; // leave non-semver strings untouched + return `${m[1]}.${m[2]}.${Number(m[3]) + 1}`; + } + const nextVersion = bumpPatch(version); + console.log(`Version: v${version} -> next: v${nextVersion}`); // ── Rango exacto del PR mergeado ────────────────────────────────── // base.sha = tip de release ANTES del merge @@ -178,15 +192,32 @@ jobs: fs.writeFileSync(changelogPath, changelogContent, 'utf8'); console.log('CHANGELOG.md updated'); - // ── Commit y push del CHANGELOG ─────────────────────────────────── + // ── Bump frontend/package.json to the next patch ────────────────── + // This is the fix for the "same version announced every time" bug: + // nothing ever advanced the counter. Text-replace so the file's + // existing formatting is preserved. try { - execSync('git add CHANGELOG.md', { stdio: 'inherit' }); + const pkgPath = 'frontend/package.json'; + const pkgRaw = fs.readFileSync(pkgPath, 'utf8'); + const bumped = pkgRaw.replace( + /("version"\s*:\s*")[^"]+(")/, + `$1${nextVersion}$2` + ); + fs.writeFileSync(pkgPath, bumped, 'utf8'); + console.log(`Bumped frontend/package.json: ${version} -> ${nextVersion}`); + } catch (e) { + console.log('package.json bump failed:', e.message); + } + + // ── Commit y push del CHANGELOG + version bump ──────────────────── + try { + execSync('git add CHANGELOG.md frontend/package.json', { stdio: 'inherit' }); execSync( - `git commit -m "docs: update CHANGELOG for v${version} [skip ci]"`, + `git commit -m "chore: release v${version}, bump to v${nextVersion} [skip ci]"`, { stdio: 'inherit' } ); execSync('git push origin release', { stdio: 'inherit' }); - console.log('CHANGELOG.md committed and pushed'); + console.log(`CHANGELOG + version bump committed and pushed (next: v${nextVersion})`); } catch (e) { console.log('Nothing to commit or push failed:', e.message); } diff --git a/frontend/package.json b/frontend/package.json index 1da315bf..dd8f01ae 100644 --- a/frontend/package.json +++ b/frontend/package.json @@ -2,7 +2,7 @@ "name": "velxio", "homepage": "https://velxio.dev", "private": true, - "version": "2.0.1", + "version": "3.0.0", "type": "module", "scripts": { "generate:metadata": "cd .. && npx tsx scripts/generate-component-metadata.ts", From 937b912c456d414c89d3453b56f065afe6a40be6 Mon Sep 17 00:00:00 2001 From: David Montero Date: Thu, 11 Jun 2026 14:58:24 +0200 Subject: [PATCH 4/4] chore(ci): call deepseek-v4-flash instead of deepseek-chat for release notes --- .github/workflows/discord-release-notify.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/discord-release-notify.yml b/.github/workflows/discord-release-notify.yml index abd0d164..c025175a 100644 --- a/.github/workflows/discord-release-notify.yml +++ b/.github/workflows/discord-release-notify.yml @@ -57,7 +57,7 @@ jobs: 'Authorization': `Bearer ${apiKey}`, }, body: JSON.stringify({ - model: 'deepseek-chat', + model: 'deepseek-v4-flash', max_tokens: maxTokens, temperature, messages: [{ role: 'user', content: prompt }],