From cd8b6cf32df67d3618ed033d76e196d463676a7d Mon Sep 17 00:00:00 2001 From: Srikanth Patchava Date: Mon, 5 Oct 2026 23:58:03 -0700 Subject: [PATCH 1/4] fix(ci): make lint-readme configs load (lychee.toml, .markdownlint.yml) lychee exited 3 before checking a single link: its config keys are top-level, so the `[lychee]` table header made the whole file an unknown-field parse error. Dropping the header keeps every existing exclude and lets the offline check run (64 OK, 0 errors). The lint-readme workflow was ported from embeddedos-org/embeddedos-org in 6fc5b85 without the .markdownlint.yml it runs with there (9475a30), so markdownlint ran on defaults and reported 476 errors, 253 of them MD060 table-pipe style. Port that config (MD013 tables exempt, MD060 consistent) and add MD024 siblings_only: the ecosystem guide repeats Overview/Key Features/Architecture under every chapter; duplicate headings under the same parent are still reported. Refs #162 --- .markdownlint.yml | 19 +++++++++++++++++++ lychee.toml | 1 - 2 files changed, 19 insertions(+), 1 deletion(-) create mode 100644 .markdownlint.yml diff --git a/.markdownlint.yml b/.markdownlint.yml new file mode 100644 index 0000000..94836ba --- /dev/null +++ b/.markdownlint.yml @@ -0,0 +1,19 @@ +# markdownlint configuration, ported from embeddedos-org/embeddedos-org +# (9475a30) together with the lint-readme workflow it belongs to (6fc5b85). +# markdownlint-cli auto-discovers this file, so the workflow needs no flags. + +# MD013 (line-length): prose stays at the 80-column guideline; tables are +# exempt because index/reference rows are inherently long. +MD013: + line_length: 80 + tables: false + +# MD060 (table-column-style): any one pipe style per table, consistently. +MD060: + style: consistent + +# MD024 (no-duplicate-heading): the ecosystem guide repeats the same +# subsection set (Overview, Key Features, Architecture, ...) under every +# chapter. Duplicates are still reported among siblings of one parent. +MD024: + siblings_only: true diff --git a/lychee.toml b/lychee.toml index 494ec77..d8893e3 100644 --- a/lychee.toml +++ b/lychee.toml @@ -2,7 +2,6 @@ # Exclude root-relative paths that the offline checker cannot resolve # (these are valid paths on the live GitHub Pages site) -[lychee] # Exclude patterns for offline checking exclude = [ # Root-relative assets (valid on live site, unresolvable offline) From 5e84f3de3d44b9f4661fa823540305eeaa8f7a6b Mon Sep 17 00:00:00 2001 From: Srikanth Patchava Date: Mon, 5 Oct 2026 23:58:03 -0700 Subject: [PATCH 2/4] docs: fix the markdown lint-readme reports, incl. broken guide TOC Content fixes for the 174 markdownlint errors left after the config commit, following the embeddedos-org cleanup (87c3262): - ecosystem guide: the TOC links to em-dash anchors but chapter headings used `--`, so all 18 chapter links were dead (MD051). Use the em dash the TOC and the front-matter title already use. - ecosystem guide: the body H1 duplicated the front-matter title and every Part was another H1 (MD025). Drop the duplicate and demote the Part/Appendices subtree one level, so there is one title. - `text` on 27 bare diagram/tree fences (MD040); autolink bare URLs and emails, backtick the repo name in merge-proposal (MD034); join example quotes with `>` (MD028); missing blank lines (MD022/MD032), extra blank line (MD012), stray H1 in CLAUDE.md (MD025); byline and colophon kept on two lines via a hard break instead of emphasis-only paragraphs (MD036); prose reflowed to 80 columns (MD013) with wording unchanged. Fixes #162 --- CHANGELOG.md | 7 +- CLAUDE.md | 3 +- CODE_OF_CONDUCT.md | 5 +- CONTRIBUTING.md | 3 +- MEMORY.md | 13 +- README.md | 4 +- SECURITY.md | 6 +- TASKS.md | 10 +- VERIFY.md | 17 +- docs/embeddedos-ecosystem-guide.md | 441 +++++++++++++++-------------- docs/merge-proposal.md | 12 +- 11 files changed, 268 insertions(+), 253 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index dfc6540..6038d92 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -8,7 +8,8 @@ This is the synchronized production release across all 18 EmbeddedOS-org repos. - Refreshed governance: LICENSE, NOTICE, CITATION.cff, SECURITY.md - CI/CD pipelines hardened: release.yml, book-build.yml, video-build.yml, deploy-pages.yml -- Release artifacts produced for: Linux x64/arm64, macOS x64/arm64, Windows x64, Docker, plus per-repo embedded/mobile/extension targets +- Release artifacts produced for: Linux x64/arm64, macOS x64/arm64, Windows x64, + Docker, plus per-repo embedded/mobile/extension targets - mdBook documentation built and deployed to GitHub Pages - Promo video rendered and attached as a release asset @@ -20,7 +21,8 @@ This is the synchronized production release across all 18 EmbeddedOS-org repos. - Refreshed governance: LICENSE, NOTICE, CITATION.cff, SECURITY.md - CI/CD pipelines hardened: release.yml, book-build.yml, video-build.yml, deploy-pages.yml -- Release artifacts produced for: Linux x64/arm64, macOS x64/arm64, Windows x64, Docker, plus per-repo embedded/mobile/extension targets +- Release artifacts produced for: Linux x64/arm64, macOS x64/arm64, Windows x64, + Docker, plus per-repo embedded/mobile/extension targets - mdBook documentation built and deployed to GitHub Pages - Promo video rendered and attached as a release asset @@ -32,6 +34,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 ## [0.1.0] - 2026-03-31 ### Added + - Initial release of embeddedos-org.github.io - Complete CI/CD pipeline with nightly, weekly, and QEMU sanity runs - Full cross-platform support (Linux, Windows, macOS) diff --git a/CLAUDE.md b/CLAUDE.md index dfc336f..f70d374 100644 --- a/CLAUDE.md +++ b/CLAUDE.md @@ -96,7 +96,7 @@ Format and worked examples: [VERIFY.md](./VERIFY.md). --- -# Repository +## Repository EoS Website @@ -132,7 +132,6 @@ When two of these documents conflict, the earlier wins: Say that a conflict exists rather than resolving it silently. A rule two people read differently is a defect in the rule, and it will recur until it is fixed. - ## Node Node.js is not installed system-wide in this WSL environment. Put the local diff --git a/CODE_OF_CONDUCT.md b/CODE_OF_CONDUCT.md index d4076c6..71639d1 100644 --- a/CODE_OF_CONDUCT.md +++ b/CODE_OF_CONDUCT.md @@ -1,4 +1,5 @@ # Code of Conduct — Contributor Covenant v2.1 + We are committed to providing a welcoming and inclusive environment. -See: https://www.contributor-covenant.org/version/2/1/code_of_conduct.html -Report violations to: conduct@embeddedos.org +See: +Report violations to: diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index 996b8e5..f23655c 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -24,4 +24,5 @@ Follow [Conventional Commits](https://www.conventionalcommits.org/). ## License -By contributing, you agree that your contributions will be licensed under the MIT License. +By contributing, you agree that your contributions will be licensed under the +MIT License. diff --git a/MEMORY.md b/MEMORY.md index e046017..848e3c5 100644 --- a/MEMORY.md +++ b/MEMORY.md @@ -1,8 +1,8 @@ # Memory -Durable context for `embeddedos-org.github.io` — decisions and constraints that outlive one -session and are not recoverable from the code or the git history. +Durable context for `embeddedos-org.github.io` — decisions and constraints that +outlive one session and are not recoverable from the code or the git history. Write here when a future reader would otherwise repeat an argument that was already settled, or repeat a mistake that was already made. @@ -34,10 +34,11 @@ notices the obvious-looking alternative. | — | None recorded yet. | — | — | ## Constraints diff --git a/README.md b/README.md index 68f9a24..b7e3d36 100644 --- a/README.md +++ b/README.md @@ -26,7 +26,7 @@ CSS, and vanilla JavaScript, no build step required. Package name: Supporting content: -``` +```text js/ animations.js, ebot-chat.js, search.js, site-chrome.js stacks/ Technology stack pages (eai-edge.html, index.html) eApps/ eApps index + icons @@ -55,7 +55,7 @@ Serve the site locally (static file server on port 8080): npm run serve # npx http-server . -p 8080 -s ``` -Then open http://localhost:8080. +Then open . ## Test diff --git a/SECURITY.md b/SECURITY.md index f695319..69510e6 100644 --- a/SECURITY.md +++ b/SECURITY.md @@ -8,7 +8,7 @@ ## Reporting a Vulnerability -**Email:** security@embeddedos.org +**Email:** > Do **NOT** open public GitHub issues for security vulnerabilities. @@ -29,4 +29,6 @@ ## Safe Harbor -We consider security research conducted in good faith to be authorized and will not pursue legal action against researchers who follow responsible disclosure practices. +We consider security research conducted in good faith to be authorized and will +not pursue legal action against researchers who follow responsible disclosure +practices. diff --git a/TASKS.md b/TASKS.md index 7fd300b..8b97677 100644 --- a/TASKS.md +++ b/TASKS.md @@ -1,9 +1,10 @@ # Tasks -Working ledger for `embeddedos-org.github.io`. The planner writes entries; each owning role -updates its own row. Roles are in [AGENTS.md](./AGENTS.md), the workflow in -[ORCHESTRATION.md](./ORCHESTRATION.md), the gate in [VERIFY.md](./VERIFY.md). +Working ledger for `embeddedos-org.github.io`. The planner writes entries; each +owning role updates its own row. Roles are in [AGENTS.md](./AGENTS.md), the +workflow in [ORCHESTRATION.md](./ORCHESTRATION.md), the gate in +[VERIFY.md](./VERIFY.md). Status is one of: `todo`, `in-progress`, `blocked`, `review`, `done`. @@ -55,7 +56,8 @@ Verification ## Verification commands for this repository -These commands were derived from the manifests at the repository root. Confirm one works before relying on it; a listed script may still be a stub. +These commands were derived from the manifests at the repository root. Confirm +one works before relying on it; a listed script may still be a stub. | Check | Command | Default state | |-------|---------|---------------| diff --git a/VERIFY.md b/VERIFY.md index 7ff7ad8..09b8cfb 100644 --- a/VERIFY.md +++ b/VERIFY.md @@ -8,7 +8,8 @@ Do not report success without evidence. This file defines what counts. - `PASS` — the check ran and succeeded; the output was seen. - `FAIL` — the check ran and failed; quote the actual output. - `NOT RUN` — the check was not executed. -- `UNKNOWN` — the check cannot be run in this environment, or its result cannot be interpreted. +- `UNKNOWN` — the check cannot be run in this environment, or its result cannot + be interpreted. `NOT RUN` and `UNKNOWN` are acceptable answers, and reporting one honestly is never a failure. A guess dressed as `PASS` is. @@ -37,26 +38,26 @@ Anything short of that is `NOT RUN` or `UNKNOWN`. > `pnpm test:unit` — exit 0. 142 passed, 0 failed, 3 skipped. The 3 skips are > pre-existing and unrelated to this change. → `PASS` - +> > `pnpm check` — exit 2. `src/api/user.ts(41,7): error TS2345: Argument of type > 'string | undefined' is not assignable to parameter of type 'string'.` > → `FAIL` - +> > No linter is configured in this repository. → `NOT RUN` - +> > The e2e suite needs a running database, which is not available here. > → `UNKNOWN` — e2e behaviour is unverified. ### Not valid > The tests should pass now. - +> > I've made the change, so the build will work. - +> > Everything looks good. - +> > `PASS` (no command, no output) - +> > Tests pass — *(when the suite was never run, only written)* The difference is not tone. The first set can be checked by someone else; the diff --git a/docs/embeddedos-ecosystem-guide.md b/docs/embeddedos-ecosystem-guide.md index da54b43..c92aa25 100644 --- a/docs/embeddedos-ecosystem-guide.md +++ b/docs/embeddedos-ecosystem-guide.md @@ -6,10 +6,7 @@ version: "1.0.0" license: "MIT" --- -# The EmbeddedOS Ecosystem — Complete Product Guide - -**By Srikanth Patchava & EmbeddedOS Contributors** - +**By Srikanth Patchava & EmbeddedOS Contributors**\ **First Edition — April 2026** --- @@ -62,22 +59,23 @@ license: "MIT" ### The EmbeddedOS Vision -EmbeddedOS began with a simple but audacious goal: create a fully integrated ecosystem -that spans from bare-metal firmware to cloud-connected applications, from wearable health -sensors to suborbital spacecraft. What started as a real-time operating system kernel has -grown into a 16-repository organization that covers the entire stack of modern embedded -and intelligent systems. +EmbeddedOS began with a simple but audacious goal: create a fully integrated +ecosystem that spans from bare-metal firmware to cloud-connected applications, +from wearable health sensors to suborbital spacecraft. What started as a +real-time operating system kernel has grown into a 16-repository organization +that covers the entire stack of modern embedded and intelligent systems. -This guide serves as the **omnibus reference** for the entire EmbeddedOS ecosystem. Whether -you are a firmware engineer working on device drivers, a web developer building office -productivity tools, a data scientist training on-device ML models, or a hardware designer -laying out PCBs -- this book is your comprehensive companion. +This guide serves as the **omnibus reference** for the entire EmbeddedOS +ecosystem. Whether you are a firmware engineer working on device drivers, a web +developer building office productivity tools, a data scientist training +on-device ML models, or a hardware designer laying out PCBs -- this book is your +comprehensive companion. ### How the Products Connect The EmbeddedOS ecosystem is organized in **concentric layers**: -``` +```text +------------------------------------------------------------------+ | HARDWARE PRODUCTS | | eRadar360 - eHealth365 - ePAM Vehicles | @@ -125,13 +123,13 @@ The EmbeddedOS ecosystem is organized in **concentric layers**: --- -# Part I: Platform Foundation +## Part I: Platform Foundation --- -## Chapter 1: eos -- The Embedded Operating System +### Chapter 1: eos — The Embedded Operating System -### Overview +#### Overview **Repository:** `embeddedos-org/eos` **Language:** C/C++ @@ -143,25 +141,26 @@ ecosystem. It provides a preemptive RTOS kernel, hardware abstraction layer (HAL device drivers, and system services designed for deterministic, low-latency operation on resource-constrained embedded devices. -### Key Features +#### Key Features - **Preemptive RTOS Kernel** -- Priority-based preemptive scheduling with configurable tick rate (1 kHz default), supporting up to 256 priority levels - **Hardware Abstraction Layer (HAL)** -- Uniform API across ARM Cortex-M, Cortex-A, RISC-V, and x86 architectures -- **Device Driver Framework** -- Modular driver model for GPIO, UART, SPI, I2C, ADC, - DAC, PWM, CAN, Ethernet, USB, and custom peripherals +- **Device Driver Framework** -- Modular driver model for GPIO, UART, SPI, I2C, + ADC, DAC, PWM, CAN, Ethernet, USB, and custom peripherals - **Memory Management** -- Static and dynamic allocation with memory pools, heap management with fragmentation protection, and MPU support - **Power Management** -- Tickless idle, deep sleep modes, peripheral clock gating, and dynamic voltage/frequency scaling (DVFS) - **File System Support** -- FAT32, LittleFS, and custom flash-optimized file systems - **Networking Stack** -- lwIP integration with TCP/UDP/IPv4/IPv6, TLS 1.3 via mbedTLS -- **POSIX Compatibility Layer** -- Subset of POSIX API for portable application code +- **POSIX Compatibility Layer** -- Subset of POSIX API for portable application + code -### Architecture +#### Architecture -``` +```text +-------------------------------------------------------+ | User Applications | +-------------------------------------------------------+ @@ -181,7 +180,7 @@ on resource-constrained embedded devices. +-------------------------------------------------------+ ``` -### Getting Started +#### Getting Started ```c #include @@ -210,9 +209,9 @@ int main(void) { } ``` -### API Highlights +#### API Highlights -#### Kernel API +##### Kernel API | Function | Description | |----------|-------------| @@ -222,7 +221,7 @@ int main(void) { | `eos_kernel_enter_critical()` | Disable interrupts, enter critical section | | `eos_kernel_exit_critical()` | Re-enable interrupts, exit critical section | -#### Task API +##### Task API | Function | Description | |----------|-------------| @@ -233,7 +232,7 @@ int main(void) { | `eos_task_resume()` | Resume a suspended task | | `eos_task_yield()` | Yield CPU to next ready task | -#### HAL GPIO API +##### HAL GPIO API | Function | Description | |----------|-------------| @@ -243,7 +242,7 @@ int main(void) { | `gpio_toggle()` | Toggle pin state | | `gpio_set_interrupt()` | Configure pin interrupt with callback | -### Supported Platforms +#### Supported Platforms | Platform | Architecture | Status | |----------|-------------|--------| @@ -257,20 +256,21 @@ int main(void) { --- -## Chapter 2: eBoot -- Secure Bootloader +### Chapter 2: eBoot — Secure Bootloader -### Overview +#### Overview **Repository:** `embeddedos-org/eBoot` **Language:** C/Assembly **License:** MIT **Status:** Active Development -eBoot is a secure bootloader designed to establish a hardware root of trust for all -EmbeddedOS-powered devices. It implements verified boot chains, firmware update -mechanisms, and board-specific port layers for diverse hardware platforms. +eBoot is a secure bootloader designed to establish a hardware root of trust for +all EmbeddedOS-powered devices. It implements verified boot chains, firmware +update mechanisms, and board-specific port layers for diverse hardware +platforms. -### Key Features +#### Key Features - **Secure Boot Chain** -- Multi-stage verified boot with RSA-2048/Ed25519 signature verification at each stage @@ -280,14 +280,15 @@ mechanisms, and board-specific port layers for diverse hardware platforms. TPM 2.0, and ARM TrustZone - **Board-Specific Ports** -- Modular port architecture supporting STM32, nRF, ESP32, RISC-V, and custom SoCs -- **Minimal Footprint** -- Stage 1 bootloader fits in 8 KB; full bootloader under 64 KB +- **Minimal Footprint** -- Stage 1 bootloader fits in 8 KB; full bootloader + under 64 KB - **Anti-Rollback Protection** -- Monotonic version counters stored in OTP fuses - **Recovery Mode** -- Failsafe recovery via UART/USB when primary firmware is corrupted - **Encryption Support** -- AES-256-GCM firmware image encryption at rest -### Architecture +#### Architecture -``` +```text +--------------------------------------------------+ | Power On / Reset | +--------------------------------------------------+ @@ -324,7 +325,7 @@ mechanisms, and board-specific port layers for diverse hardware platforms. +--------------------------------------------------+ ``` -### Getting Started +#### Getting Started ```c /* eBoot board port configuration -- board_config.h */ @@ -344,7 +345,7 @@ mechanisms, and board-specific port layers for diverse hardware platforms. #define EBOOT_RECOVERY_BAUD 115200 ``` -### API Highlights +#### API Highlights | Function | Description | |----------|-------------| @@ -358,9 +359,9 @@ mechanisms, and board-specific port layers for diverse hardware platforms. --- -## Chapter 3: ebuild -- Build System +### Chapter 3: ebuild — Build System -### Overview +#### Overview **Repository:** `embeddedos-org/ebuild` **Language:** Python, CMake, Make @@ -371,12 +372,13 @@ ebuild is the unified build system for the EmbeddedOS ecosystem. It orchestrates compilation of C/C++ firmware, packaging of web applications, and analysis of KiCad hardware designs -- all from a single command-line interface. -### Key Features +#### Key Features -- **Multi-Target Build** -- Build firmware for multiple architectures and boards in - parallel from a single configuration -- **KiCad Hardware Analyzer** -- Parse KiCad schematics and PCB layouts to extract BOM, - netlist, design rule checks, and cross-reference with firmware pin assignments +- **Multi-Target Build** -- Build firmware for multiple architectures and boards + in parallel from a single configuration +- **KiCad Hardware Analyzer** -- Parse KiCad schematics and PCB layouts to + extract BOM, netlist, design rule checks, and cross-reference with firmware + pin assignments - **Dependency Management** -- Automatic resolution of inter-repository dependencies with version pinning and lockfiles - **Toolchain Management** -- Auto-download and configure ARM GCC, RISC-V GCC, Clang, @@ -386,9 +388,9 @@ hardware designs -- all from a single command-line interface. - **CI/CD Integration** -- GitHub Actions, GitLab CI, and Jenkins pipeline generators - **Flash and Debug** -- Integrated flashing via OpenOCD, J-Link, and vendor tools -### Architecture +#### Architecture -``` +```text +------------------------------------------------------+ | ebuild CLI (Python) | | ebuild config | build | flash | test | analyze | @@ -405,7 +407,7 @@ hardware designs -- all from a single command-line interface. +------------------------------------------------------+ ``` -### Getting Started +#### Getting Started ```yaml # ebuild.yaml -- project configuration @@ -456,7 +458,7 @@ ebuild analyze --kicad smart_ring ebuild flash smart_ring --probe jlink ``` -### API Highlights -- KiCad Analyzer +#### API Highlights -- KiCad Analyzer | Command | Description | |---------|-------------| @@ -469,9 +471,9 @@ ebuild flash smart_ring --probe jlink --- -## Chapter 4: eIPC -- Inter-Process Communication +### Chapter 4: eIPC — Inter-Process Communication -### Overview +#### Overview **Repository:** `embeddedos-org/eIPC` **Language:** C/C++ @@ -483,7 +485,7 @@ embedded systems. It provides zero-copy message passing, shared memory regions, publish-subscribe patterns, and remote procedure calls (RPC) -- all with minimal overhead suitable for real-time applications. -### Key Features +#### Key Features - **Zero-Copy Message Passing** -- Lock-free ring buffers for inter-task communication with zero memory copies on shared-memory architectures @@ -498,9 +500,9 @@ overhead suitable for real-time applications. (Unix sockets/pipes), network (TCP/UDP), and serial (UART/SPI) - **Discovery Service** -- Automatic service discovery for dynamic system topologies -### Architecture +#### Architecture -``` +```text +-----------------------------------------------------+ | Application Layer | | Publisher | Subscriber | RPC Client | RPC Server | @@ -513,7 +515,7 @@ overhead suitable for real-time applications. +-------------+------------+------------+-------------+ ``` -### Getting Started +#### Getting Started ```c #include @@ -543,7 +545,7 @@ void health_monitor(void) { } ``` -### API Highlights +#### API Highlights | Function | Description | |----------|-------------| @@ -559,9 +561,9 @@ void health_monitor(void) { --- -## Chapter 5: eDB -- Embedded Database +### Chapter 5: eDB — Embedded Database -### Overview +#### Overview **Repository:** `embeddedos-org/eDB` **Language:** C @@ -573,7 +575,7 @@ on resource-constrained devices. It provides key-value storage, document storage with JSON-like queries, and time-series data management -- all with ACID guarantees and wear-leveling for flash memory. -### Key Features +#### Key Features - **Key-Value Store** -- O(log n) lookups with B+ tree indexing on flash - **Document Store** -- BSON document storage with query support for nested fields @@ -585,9 +587,9 @@ and wear-leveling for flash memory. - **Encryption at Rest** -- AES-256 transparent encryption for stored data - **Replication** -- Optional master-replica replication over eIPC for redundancy -### Architecture +#### Architecture -``` +```text +-------------------------------------------------+ | Application Interface | | KV API | Document API | Time-Series API | @@ -605,7 +607,7 @@ and wear-leveling for flash memory. +-------------------------------------------------+ ``` -### Getting Started +#### Getting Started ```c #include @@ -632,7 +634,7 @@ int main(void) { } ``` -### API Highlights +#### API Highlights | Function | Description | |----------|-------------| @@ -649,13 +651,13 @@ int main(void) { --- -# Part II: Application Layer +## Part II: Application Layer --- -## Chapter 6: eBrowser -- Embedded Web Browser +### Chapter 6: eBrowser — Embedded Web Browser -### Overview +#### Overview **Repository:** `embeddedos-org/eBrowser` **Language:** C/C++ @@ -664,13 +666,13 @@ int main(void) { **License:** MIT **Status:** Active Development -eBrowser is a lightweight web browser purpose-built for embedded and IoT devices. -Unlike desktop browsers that require gigabytes of RAM, eBrowser is designed to render -modern web content on devices with as little as 16 MB of RAM, making it suitable for -kiosks, automotive infotainment, smart home panels, industrial HMIs, and embedded -dashboard displays. +eBrowser is a lightweight web browser purpose-built for embedded and IoT +devices. Unlike desktop browsers that require gigabytes of RAM, eBrowser is +designed to render modern web content on devices with as little as 16 MB of RAM, +making it suitable for kiosks, automotive infotainment, smart home panels, +industrial HMIs, and embedded dashboard displays. -### Key Features +#### Key Features - **HTML5/CSS3 Rendering** -- Core HTML5 elements, CSS3 flexbox/grid layout - **JavaScript Engine** -- Lightweight JS interpreter with ES6+ support @@ -681,9 +683,9 @@ dashboard displays. - **Platform Abstraction Layer** -- Linux FB, X11, Wayland, SDL2, eos framebuffer - **7 Test Suites, 130+ Tests** -- Comprehensive test coverage -### Architecture +#### Architecture -``` +```text +--------------------------------------------------------------+ | User Interface Layer | | Tab Manager | Address Bar | Bookmarks | Settings | DevTools | @@ -710,7 +712,7 @@ dashboard displays. +--------------------------------------------------------------+ ``` -### Getting Started +#### Getting Started ```bash git clone https://github.com/embeddedos-org/eBrowser.git @@ -725,7 +727,7 @@ make -j$(nproc) ctest --output-on-failure ``` -### Embedding API (C++) +#### Embedding API (C++) ```cpp #include @@ -749,7 +751,7 @@ view->on_load([](ebrowser::View& v) { engine.run(); ``` -### Test Coverage Summary +#### Test Coverage Summary | Test Suite | Tests | Coverage Area | |-----------|-------|---------------| @@ -764,9 +766,9 @@ engine.run(); --- -## Chapter 7: eOffice -- Office Productivity Suite +### Chapter 7: eOffice — Office Productivity Suite -### Overview +#### Overview **Repository:** `embeddedos-org/eOffice` **Language:** TypeScript, JavaScript @@ -779,7 +781,7 @@ engine.run(); eOffice is a complete, AI-powered office productivity suite comprising 12 integrated applications enhanced by eBot, an AI assistant with 33+ intelligent actions. -### The 12 Applications +#### The 12 Applications | # | App | Description | |---|-----|-------------| @@ -796,7 +798,7 @@ applications enhanced by eBot, an AI assistant with 33+ intelligent actions. | 11 | **ePlanner** | Project management with Kanban, Gantt, and calendars | | 12 | **Launcher** | Unified dashboard and application launcher | -### Key Features +#### Key Features - **eBot AI Assistant** -- 33+ AI-powered actions including document summarization, data analysis, email drafting, meeting scheduling, and code generation @@ -808,9 +810,9 @@ applications enhanced by eBot, an AI assistant with 33+ intelligent actions. - **75+ Tests** -- Unit, integration, and end-to-end test coverage - **Plugin Architecture** -- Extensible through plugins -### Architecture +#### Architecture -``` +```text +--------------------------------------------------------------+ | Electron Shell | | (Desktop: Win / macOS / Linux) | @@ -835,7 +837,7 @@ applications enhanced by eBot, an AI assistant with 33+ intelligent actions. +--------------------------------------------------------------+ ``` -### Getting Started +#### Getting Started ```bash git clone https://github.com/embeddedos-org/eOffice.git @@ -848,7 +850,7 @@ npm run electron:dev # Desktop app npm test # All 75+ tests ``` -### eBot AI Actions +#### eBot AI Actions | Category | Actions | Description | |----------|---------|-------------| @@ -860,9 +862,9 @@ npm test # All 75+ tests | General | `search_across_apps`, `create_workflow`, `export_report` | Cross-app AI features | | Code | `generate_code`, `explain_code`, `debug_assist` | Developer tools via eBot | -### Authentication Flow +#### Authentication Flow -``` +```text Client Server Database | | | | POST /auth/login | | @@ -886,9 +888,9 @@ Client Server Database --- -## Chapter 8: eVera -- AI Virtual Assistant +### Chapter 8: eVera — AI Virtual Assistant -### Overview +#### Overview **Repository:** `embeddedos-org/eVera` **Backend:** Python (FastAPI + LangGraph) @@ -902,7 +904,7 @@ eVera is a voice-first AI assistant with 24+ specialized agents and 183+ tools. It features a 3D holographic avatar, multi-modal interaction, and a sophisticated 4-layer memory system. -### Key Features +#### Key Features - **24+ Specialized Agents** -- Domain-specific agents for productivity, health, finance, home automation, entertainment, coding, research, and more @@ -914,9 +916,9 @@ It features a 3D holographic avatar, multi-modal interaction, and a sophisticate - **Multi-Platform** -- FastAPI backend, Electron desktop, React Native mobile - **Privacy-First** -- Local processing with Ollama for sensitive data -### Architecture +#### Architecture -``` +```text +--------------------------------------------------------------+ | Client Applications | | +----------+ +--------------+ +---------------+ | @@ -951,7 +953,7 @@ It features a 3D holographic avatar, multi-modal interaction, and a sophisticate +--------------------------------------------------------------+ ``` -### Getting Started +#### Getting Started ```bash git clone https://github.com/embeddedos-org/eVera.git @@ -968,7 +970,7 @@ cd ../desktop && npm install && npm run dev cd ../mobile && npm install && npx expo start ``` -### Agent Registry +#### Agent Registry | Agent | Domain | Key Tools | |-------|--------|-----------| @@ -985,7 +987,7 @@ cd ../mobile && npm install && npx expo start | `creative_agent` | Writing/Art/Music Gen | 8 tools | | `social_agent` | Messaging/Social Media | 6 tools | -### Memory System API +#### Memory System API ```python from evera.memory import MemoryManager @@ -1010,9 +1012,9 @@ context = memory.recall("What is the weather like?", top_k=5) --- -## Chapter 9: eApps -- Mobile App Platform +### Chapter 9: eApps — Mobile App Platform -### Overview +#### Overview **Repository:** `embeddedos-org/eApps` **Language:** TypeScript, React Native @@ -1024,7 +1026,7 @@ React Native, it provides companion apps for EmbeddedOS hardware products, mobil interfaces for eOffice and eVera, and a framework for building custom embedded device companion applications. -### Key Features +#### Key Features - **Cross-Platform** -- Single codebase for iOS and Android - **BLE Device Manager** -- Bluetooth Low Energy for EmbeddedOS hardware @@ -1034,9 +1036,9 @@ device companion applications. - **Biometric Auth** -- Face ID, Touch ID, fingerprint - **Theming Engine** -- Dynamic themes with WCAG 2.1 AA accessibility -### Architecture +#### Architecture -``` +```text +------------------------------------------------------+ | eApps Mobile Platform | | +----------+ +----------+ +------------------+ | @@ -1055,7 +1057,7 @@ device companion applications. +------------------------------------------------------+ ``` -### Getting Started +#### Getting Started ```bash git clone https://github.com/embeddedos-org/eApps.git @@ -1064,7 +1066,7 @@ npx react-native run-ios # iOS npx react-native run-android # Android ``` -### API Highlights +#### API Highlights | Module | API | Description | |--------|-----|-------------| @@ -1076,9 +1078,9 @@ npx react-native run-android # Android --- -## Chapter 10: EoStudio -- Development Environment +### Chapter 10: EoStudio — Development Environment -### Overview +#### Overview **Repository:** `embeddedos-org/EoStudio` **Language:** TypeScript, Electron @@ -1088,7 +1090,7 @@ npx react-native run-android # Android EoStudio is the integrated development environment (IDE) for the EmbeddedOS ecosystem, providing firmware development, hardware design review, and device debugging. -### Key Features +#### Key Features - **Multi-Language Editor** -- C, C++, Python, TypeScript, Pine Script support - **Integrated Terminal** -- ebuild, OpenOCD, GDB integration @@ -1099,9 +1101,9 @@ providing firmware development, hardware design review, and device debugging. - **eBot Code Assistant** -- AI-powered code completion - **Project Templates** -- Pre-configured for each EmbeddedOS repo -### Architecture +#### Architecture -``` +```text +----------------------------------------------------------+ | EoStudio IDE (Electron) | | +--------+ +------------+ +----------+ +------------+ | @@ -1116,7 +1118,7 @@ providing firmware development, hardware design review, and device debugging. +----------------------------------------------------------+ ``` -### Getting Started +#### Getting Started ```bash git clone https://github.com/embeddedos-org/EoStudio.git @@ -1125,13 +1127,13 @@ cd EoStudio && npm install && npm run build && npm run start --- -# Part III: Intelligence Layer +## Part III: Intelligence Layer --- -## Chapter 11: eAI -- AI/ML Inference Engine +### Chapter 11: eAI — AI/ML Inference Engine -### Overview +#### Overview **Repository:** `embeddedos-org/eAI` **Language:** C/C++, Python (training tools) @@ -1141,19 +1143,20 @@ cd EoStudio && npm install && npm run build && npm run start eAI is an AI/ML inference engine optimized for embedded devices, enabling on-device ML inference without cloud connectivity. -### Key Features +#### Key Features - **Tiny Inference Runtime** -- Core under 64 KB ROM - **Model Formats** -- TFLite Micro, ONNX Micro, custom eAI binary (INT8, FP16) - **HW Acceleration** -- CMSIS-NN (Cortex-M), NEON (Cortex-A), RISC-V vector -- **Model Zoo** -- Keyword spotting, anomaly detection, image classification, health scoring +- **Model Zoo** -- Keyword spotting, anomaly detection, image classification, + health scoring - **On-Device Training** -- Federated and transfer learning - **Profiler** -- Per-layer timing, memory, accuracy metrics - **Training Pipeline** -- PyTorch/TensorFlow with auto-quantization -### Architecture +#### Architecture -``` +```text +----------------------------------------------------------+ | Python Training Pipeline | | PyTorch/TensorFlow | Quantization | Model Export | @@ -1172,7 +1175,7 @@ ML inference without cloud connectivity. +----------------------------------------------------------+ ``` -### Getting Started +#### Getting Started ```c #include @@ -1184,7 +1187,9 @@ int main(void) { float ppg_data[128]; read_ppg_sensor(ppg_data, 128); - eai_tensor_t input = { .data = ppg_data, .shape = {1, 128}, .dtype = EAI_FLOAT32 }; + eai_tensor_t input = { + .data = ppg_data, .shape = {1, 128}, .dtype = EAI_FLOAT32 + }; eai_tensor_t output; eai_infer(model, &input, &output); @@ -1194,7 +1199,7 @@ int main(void) { } ``` -### API Highlights +#### API Highlights | Function | Description | |----------|-------------| @@ -1205,7 +1210,7 @@ int main(void) { | `eai_profile()` | Profile inference performance | | `eai_quantize()` | Dynamic quantization FP32 to INT8 | -### Ecosystem Use Cases +#### Ecosystem Use Cases | Product | Use Case | Model Type | |---------|----------|------------| @@ -1218,9 +1223,9 @@ int main(void) { --- -## Chapter 12: eNI -- Neural Interface +### Chapter 12: eNI — Neural Interface -### Overview +#### Overview **Repository:** `embeddedos-org/eNI` **Language:** C/C++, Python @@ -1230,7 +1235,7 @@ int main(void) { eNI is a biosignal processing library for neural and physiological signal acquisition, filtering, feature extraction, and classification targeting EEG, EMG, ECG modalities. -### Key Features +#### Key Features - **Multi-Modal Acquisition** -- EEG (256 ch), EMG (16 ch), ECG (12 leads), EOG - **Real-Time DSP** -- IIR/FIR filtering, FFT, wavelet transforms at 1 kHz @@ -1240,9 +1245,9 @@ filtering, feature extraction, and classification targeting EEG, EMG, ECG modali - **Artifact Rejection** -- Eye-blink, muscle, motion artifact removal - **Data Export** -- EDF+, BDF, CSV, HDF5 -### Architecture +#### Architecture -``` +```text +----------------------------------------------------------+ | Application Layer | | BCI Control | Neurofeedback | Prosthetic Control | HMI | @@ -1261,7 +1266,7 @@ filtering, feature extraction, and classification targeting EEG, EMG, ECG modali +----------------------------------------------------------+ ``` -### Getting Started +#### Getting Started ```c #include @@ -1284,7 +1289,7 @@ void bci_pipeline(void) { } ``` -### API Highlights +#### API Highlights | Function | Description | |----------|-------------| @@ -1299,9 +1304,9 @@ void bci_pipeline(void) { --- -## Chapter 13: eStocks -- Algorithmic Trading +### Chapter 13: eStocks — Algorithmic Trading -### Overview +#### Overview **Repository:** `embeddedos-org/eStocks_Trading_Scripts` **Language:** Python, Pine Script, thinkScript, EasyLanguage @@ -1311,7 +1316,7 @@ void bci_pipeline(void) { eStocks is a comprehensive algorithmic trading system with 15 strategies, 7-layer risk management, 7 data sources, 4 trading platforms, and 288+ tests. -### The 15 Strategies +#### The 15 Strategies | # | Strategy | Type | Description | |---|----------|------|-------------| @@ -1331,9 +1336,9 @@ risk management, 7 data sources, 4 trading platforms, and 288+ tests. | 14 | sector_rotation | Macro | Economic cycle rotation | | 15 | meta_ensemble | Ensemble | Meta-learner combining signals | -### 7-Layer Risk Management +#### 7-Layer Risk Management -``` +```text +----------------------------------------------------------+ | Layer 7: Meta-Risk Orchestrator | | Circuit breakers, kill switch, cross-layer coordination | @@ -1358,7 +1363,7 @@ risk management, 7 data sources, 4 trading platforms, and 288+ tests. +----------------------------------------------------------+ ``` -### Getting Started +#### Getting Started ```python from estocks import TradingEngine, Strategy, RiskManager @@ -1387,7 +1392,7 @@ results = engine.backtest(start='2020-01-01', end='2026-04-01', initial_capital= print(f"Sharpe: {results.sharpe_ratio:.2f}, Return: {results.total_return:.2%}") ``` -### Platform Deployment +#### Platform Deployment | Platform | Language | Features | |----------|----------|----------| @@ -1396,7 +1401,7 @@ print(f"Sharpe: {results.sharpe_ratio:.2f}, Return: {results.total_return:.2%}") | Interactive Brokers | Python (ibapi) | Full API, multi-asset, algo execution | | TradeStation | EasyLanguage | RadarScreen, walk-forward optimization | -### Test Coverage: 288+ Tests +#### Test Coverage: 288+ Tests | Category | Tests | |----------|-------| @@ -1409,13 +1414,13 @@ print(f"Sharpe: {results.sharpe_ratio:.2f}, Return: {results.total_return:.2%}") --- -# Part IV: Hardware Products +## Part IV: Hardware Products --- -## Chapter 14: eRadar360 -- Automotive Radar +### Chapter 14: eRadar360 — Automotive Radar -### Overview +#### Overview **Repository:** `embeddedos-org/eHardware-Designs-Products` **Path:** `eHardware-Designs-Products/eRadar360/` @@ -1427,7 +1432,7 @@ eRadar360 is an automotive-grade ADAS radar module designed for 360-degree environmental sensing using 77 GHz FMCW radar on a compact 120mm x 85mm 10-layer hybrid PCB. -### Key Specifications +#### Key Specifications | Parameter | Value | |-----------|-------| @@ -1446,9 +1451,9 @@ environmental sensing using 77 GHz FMCW radar on a compact 120mm x 85mm | Power | 4W typical, 6W peak | | Temperature | -40C to +105C (AEC-Q100 Grade 1) | -### Architecture +#### Architecture -``` +```text +----------------------------------------------------------+ | eRadar360 Module | | | @@ -1469,7 +1474,7 @@ environmental sensing using 77 GHz FMCW radar on a compact 120mm x 85mm +----------------------------------------------------------+ ``` -### Software Stack +#### Software Stack The eRadar360 runs a complete EmbeddedOS software stack: @@ -1479,7 +1484,7 @@ The eRadar360 runs a complete EmbeddedOS software stack: 4. **eIPC** -- Communication between radar processing and vehicle bus 5. **eDB** -- Configuration storage and calibration data -### Getting Started +#### Getting Started ```bash cd eHardware-Designs-Products/eRadar360 @@ -1492,9 +1497,9 @@ ebuild flash eRadar360_firmware --probe jlink # Flash via JTAG --- -## Chapter 15: eHealth365 -- Health Monitoring +### Chapter 15: eHealth365 — Health Monitoring -### Overview +#### Overview **Repository:** `embeddedos-org/eHardware-Designs-Products` **Path:** `eHardware-Designs-Products/eHealth365/` @@ -1502,11 +1507,11 @@ ebuild flash eRadar360_firmware --probe jlink # Flash via JTAG **License:** MIT **Status:** Development -eHealth365 is a comprehensive health monitoring ecosystem achieving approximately -90% coverage of clinically relevant health metrics through two wearable devices and -a companion mobile application. +eHealth365 is a comprehensive health monitoring ecosystem achieving +approximately 90% coverage of clinically relevant health metrics through two +wearable devices and a companion mobile application. -### Smart Ring Pro +#### Smart Ring Pro | Parameter | Value | |-----------|-------| @@ -1523,7 +1528,7 @@ a companion mobile application. SpO2, Skin Temperature, Sleep Stages (wake/light/deep/REM), Activity Tracking, Respiratory Rate, Readiness Score. -### Smart Patch Pro +#### Smart Patch Pro | Parameter | Value | |-----------|-------| @@ -1538,9 +1543,9 @@ Respiratory Rate, Readiness Score. (Na/K/Cl/lactate), Monthly Blood Panel (lipids, HbA1c, CRP, vitamin D, CBC), Hydration Level, Metabolic Rate. -### Combined Health Coverage (~90%) +#### Combined Health Coverage (~90%) -``` +```text +--------------------------------------------------------------+ | eHealth365 Ecosystem | | | @@ -1564,7 +1569,7 @@ Hydration Level, Metabolic Rate. +--------------------------------------------------------------+ ``` -### Pricing +#### Pricing | Item | Price | |------|-------| @@ -1574,7 +1579,7 @@ Hydration Level, Metabolic Rate. | Blood Cartridge (monthly, 1-pack) | $49 | | **First Year Total** | **~$1,100** | -### Software Stack +#### Software Stack Each eHealth365 device runs the full EmbeddedOS platform stack: @@ -1585,7 +1590,7 @@ Each eHealth365 device runs the full EmbeddedOS platform stack: - **eDB** -- Local health data storage with encryption at rest - **eApps** -- React Native companion app (Chapter 9) -### Getting Started +#### Getting Started ```bash ebuild build smart_ring --target nrf52840 # Build ring firmware @@ -1596,9 +1601,9 @@ npx react-native run-ios --- -## Chapter 16: ePAM -- Personal Air Mobility +### Chapter 16: ePAM — Personal Air Mobility -### Overview +#### Overview **Repository:** `embeddedos-org/eHardware-Designs-Products` **Path:** `eHardware-Designs-Products/ePAM/` @@ -1610,9 +1615,9 @@ ePAM (Personal Air Mobility) is EmbeddedOS's most ambitious hardware project: a family of 4 vehicles spanning ground, air, and space transportation powered by hybrid renewable energy and running EmbeddedOS for autonomous operation. -### Vehicle Lineup +#### Vehicle Lineup -#### 1. Eco Car ($28,000 - $45,000) +##### 1. Eco Car ($28,000 - $45,000) | Parameter | Value | |-----------|-------| @@ -1624,7 +1629,7 @@ by hybrid renewable energy and running EmbeddedOS for autonomous operation. | Passengers | 4-5 | | Energy Recovery | Regen braking + kinetic recovery | -#### 2. Urban Drone eVTOL ($85,000 - $120,000) +##### 2. Urban Drone eVTOL ($85,000 - $120,000) | Parameter | Value | |-----------|-------| @@ -1637,7 +1642,7 @@ by hybrid renewable energy and running EmbeddedOS for autonomous operation. | Passengers | 1-2 | | Rotors | 8 (octocopter, redundant) | -#### 3. Space Shuttle -- Suborbital ($2M - $4M) +##### 3. Space Shuttle -- Suborbital ($2M - $4M) | Parameter | Value | |-----------|-------| @@ -1649,7 +1654,7 @@ by hybrid renewable energy and running EmbeddedOS for autonomous operation. | Reusability | Fully reusable, vertical landing | | G-Forces | Max 3.5g ascent, 1.5g descent | -#### 4. Combo Unit -- Trans-Atmospheric ($5M - $9M) +##### 4. Combo Unit -- Trans-Atmospheric ($5M - $9M) | Parameter | Value | |-----------|-------| @@ -1662,9 +1667,9 @@ by hybrid renewable energy and running EmbeddedOS for autonomous operation. | Passengers | 2-4 | | Transformation | Automated mode switching (ground/air/space) | -### Power System Architecture +#### Power System Architecture -``` +```text +--------------------------------------------------------------+ | ePAM Hybrid Power System | | | @@ -1691,7 +1696,7 @@ by hybrid renewable energy and running EmbeddedOS for autonomous operation. +--------------------------------------------------------------+ ``` -### Software Stack +#### Software Stack All ePAM vehicles run EmbeddedOS with safety-critical extensions: @@ -1703,7 +1708,7 @@ All ePAM vehicles run EmbeddedOS with safety-critical extensions: - **eDB** -- Flight data recording, telemetry storage - **eApps** -- Passenger mobile app for vehicle control -### Getting Started +#### Getting Started ```bash cd eHardware-Designs-Products/ePAM @@ -1714,13 +1719,13 @@ ebuild build epam_flight_ctrl --target cortex-r5 --safety asil-d --- -# Part V: Development and Operations +## Part V: Development and Operations --- -## Chapter 17: EoSim -- Simulation Environment +### Chapter 17: EoSim — Simulation Environment -### Overview +#### Overview **Repository:** `embeddedos-org/EoSim` **Language:** C++, Python @@ -1731,7 +1736,7 @@ EoSim is a comprehensive hardware-software co-simulation environment for the EmbeddedOS ecosystem. It enables developers to test firmware, validate hardware designs, and simulate complete systems before physical prototyping. -### Key Features +#### Key Features - **Instruction-Set Simulation** -- Cycle-accurate ARM Cortex-M/R/A and RISC-V ISS with peripheral modeling @@ -1741,13 +1746,14 @@ designs, and simulate complete systems before physical prototyping. glucose, radar returns - **Vehicle Dynamics** -- Physics-based simulation for ePAM ground, air, space vehicles - **Network Simulation** -- BLE, Wi-Fi, CAN, Ethernet with configurable parameters -- **Power Modeling** -- Estimate power consumption and battery life from execution traces +- **Power Modeling** -- Estimate power consumption and battery life from + execution traces - **Fault Injection** -- Simulate bit flips, stuck pins, sensor drift for reliability - **Visualization** -- Real-time 3D visualization of simulated devices and environments -### Architecture +#### Architecture -``` +```text +--------------------------------------------------------------+ | EoSim Framework | | +----------------------------------------------------------+| @@ -1770,7 +1776,7 @@ designs, and simulate complete systems before physical prototyping. +--------------------------------------------------------------+ ``` -### Getting Started +#### Getting Started ```bash git clone https://github.com/embeddedos-org/EoSim.git @@ -1780,7 +1786,7 @@ make -j$(nproc) eosim launch --config scenarios/eHealth365_ring.yaml ``` -### Example Scenario Configuration +#### Example Scenario Configuration ```yaml scenario: @@ -1816,7 +1822,7 @@ faults: magnitude: 0.1 ``` -### API Highlights +#### API Highlights | Function | Description | |----------|-------------| @@ -1830,17 +1836,17 @@ faults: --- -## Chapter 18: Cross-Product Integration +### Chapter 18: Cross-Product Integration -### Overview +#### Overview The true power of EmbeddedOS emerges when products work together. This chapter documents the integration points, dependency relationships, and data flows between all 16 repositories. -### Dependency Graph +#### Dependency Graph -``` +```text +---------------------+ | embeddedos-org | | .github.io (docs) | @@ -1884,13 +1890,13 @@ between all 16 repositories. +--------------------------------------------------------------+ ``` -### Key Integration Patterns +#### Key Integration Patterns -#### 1. Hardware Product Stack +##### 1. Hardware Product Stack Every EmbeddedOS hardware product uses this foundational stack: -``` +```text Application Code (product-specific) | v @@ -1909,9 +1915,9 @@ Application Code (product-specific) Hardware (PCB designed in eHardware-Designs-Products) ``` -#### 2. AI Pipeline Integration +##### 2. AI Pipeline Integration -``` +```text Raw Sensor Data (eHealth365 / eRadar360 / eNI) | v @@ -1931,9 +1937,9 @@ Result Publication (via eIPC) +---> eVera (voice alerts) ``` -#### 3. Development Workflow Integration +##### 3. Development Workflow Integration -``` +```text Developer writes code | v @@ -1952,9 +1958,9 @@ ebuild flash (deploy to real hardware) EoStudio debug (JTAG/SWD live debug) ``` -#### 4. eVera Cross-Product Voice Control +##### 4. eVera Cross-Product Voice Control -``` +```text User Voice Command | v @@ -1968,7 +1974,7 @@ eVera Voice Pipeline (STT -> NLU -> Intent) +---> "Run simulation" -> EoSim ``` -### Integration Matrix +#### Integration Matrix | From / To | eos | eBoot | eAI | eIPC | eDB | |-----------|-----|-------|-----|------|-----| @@ -1981,13 +1987,13 @@ eVera Voice Pipeline (STT -> NLU -> Intent) --- -# Part VI: Organization +## Part VI: Organization --- -## Chapter 19: Governance and Contribution Model +### Chapter 19: Governance and Contribution Model -### Organization Structure +#### Organization Structure | Role | Responsibilities | |------|-----------------| @@ -1997,9 +2003,9 @@ eVera Voice Pipeline (STT -> NLU -> Intent) | **Contributors** | Anyone who submits PRs, bug reports, or documentation | | **Community Members** | Users, testers, discussion participants | -### Contribution Workflow +#### Contribution Workflow -``` +```text 1. Fork the repository 2. Create a feature branch: git checkout -b feature/my-feature 3. Make changes following coding standards @@ -2011,7 +2017,7 @@ eVera Voice Pipeline (STT -> NLU -> Intent) 9. Maintainer merges after approval ``` -### Coding Standards +#### Coding Standards | Language | Style Guide | Formatter | Linter | |----------|------------|-----------|--------| @@ -2020,7 +2026,7 @@ eVera Voice Pipeline (STT -> NLU -> Intent) | TypeScript | ESLint + Prettier | Prettier | ESLint | | Pine Script | EmbeddedOS Pine Style | -- | Custom linter | -### Versioning +#### Versioning All repositories follow Semantic Versioning (SemVer): @@ -2028,7 +2034,7 @@ All repositories follow Semantic Versioning (SemVer): - **MINOR** -- New features, backward-compatible - **PATCH** -- Bug fixes, backward-compatible -### Communication Channels +#### Communication Channels | Channel | Purpose | |---------|---------| @@ -2038,15 +2044,15 @@ All repositories follow Semantic Versioning (SemVer): | Monthly Dev Call | Architecture review, roadmap planning | | Blog (GitHub Pages) | Release announcements, tutorials | -### License +#### License All repositories are released under the **MIT License**. --- -## Chapter 20: embeddedos-org.github.io -- The Documentation Hub +### Chapter 20: embeddedos-org.github.io — The Documentation Hub -### Overview +#### Overview **Repository:** `embeddedos-org/embeddedos-org.github.io` **Technology:** GitHub Pages, Markdown, Jekyll/Hugo @@ -2056,7 +2062,7 @@ All repositories are released under the **MIT License**. The documentation hub is the central website and documentation portal for the entire EmbeddedOS ecosystem, aggregating docs from all 16 repositories. -### Key Features +#### Key Features - **Unified Documentation** -- All product docs in one place - **API Reference** -- Auto-generated from source code @@ -2067,9 +2073,9 @@ entire EmbeddedOS ecosystem, aggregating docs from all 16 repositories. - **Blog** -- Release notes, engineering posts - **Community Showcase** -- Projects built with EmbeddedOS -### Site Structure +#### Site Structure -``` +```text embeddedos-org.github.io/ |-- index.html # Landing page |-- docs/ @@ -2095,7 +2101,7 @@ embeddedos-org.github.io/ +-- community/ # Community projects ``` -### Getting Started +#### Getting Started ```bash git clone https://github.com/embeddedos-org/embeddedos-org.github.io.git @@ -2107,11 +2113,11 @@ bundle exec jekyll serve --livereload --- -# Appendices +## Appendices --- -## Appendix A: Repository Quick Reference +### Appendix A: Repository Quick Reference | # | Repository | Language(s) | Description | Status | |---|-----------|-------------|-------------|--------| @@ -2134,9 +2140,9 @@ bundle exec jekyll serve --livereload --- -## Appendix B: Technology Stack Summary +### Appendix B: Technology Stack Summary -### Languages +#### Languages | Language | Usage | Repositories | |----------|-------|-------------| @@ -2150,7 +2156,7 @@ bundle exec jekyll serve --livereload | thinkScript | thinkorswim strategies | eStocks | | EasyLanguage | TradeStation strategies | eStocks | -### Key Frameworks and Libraries +#### Key Frameworks and Libraries | Framework/Library | Version | Used By | |-------------------|---------|---------| @@ -2171,7 +2177,7 @@ bundle exec jekyll serve --livereload | CMake | 3.20+ | eos, eBoot, eBrowser, eAI, eNI, EoSim | | Protocol Buffers | 3.x | eIPC | -### Testing Frameworks +#### Testing Frameworks | Framework | Language | Used By | Tests | |-----------|----------|---------|-------| @@ -2184,9 +2190,9 @@ bundle exec jekyll serve --livereload --- -## Appendix C: Getting Started Guide +### Appendix C: Getting Started Guide -### Prerequisites +#### Prerequisites - **Git** (2.30+) - **Python** (3.10+) @@ -2195,7 +2201,7 @@ bundle exec jekyll serve --livereload - **C/C++ Compiler** -- GCC 12+ or Clang 15+ - **ARM Toolchain** -- arm-none-eabi-gcc 13+ (for embedded targets) -### Per-Repository Quickstart +#### Per-Repository Quickstart ```bash # eos -- Embedded OS @@ -2279,7 +2285,7 @@ bundle install && bundle exec jekyll serve --livereload --- -## Glossary +### Glossary | Term | Definition | |------|-----------| @@ -2348,8 +2354,7 @@ bundle install && bundle exec jekyll serve --livereload --- -*End of The EmbeddedOS Ecosystem -- Complete Product Guide* - +*End of The EmbeddedOS Ecosystem — Complete Product Guide*\ *First Edition, April 2026* *Copyright 2026 EmbeddedOS Contributors. MIT License.* diff --git a/docs/merge-proposal.md b/docs/merge-proposal.md index 58d68ae..9745722 100644 --- a/docs/merge-proposal.md +++ b/docs/merge-proposal.md @@ -1,11 +1,11 @@ -# Merge proposal: embeddedos-org.github.io → www.embeddedos.org +# Merge proposal: embeddedos-org.github.io → `www.embeddedos.org` **Status:** PROPOSAL — awaiting Aswin's approval. No archive, delete, or redirect action has been taken. Refs #158. ## Inventory (26 HTML pages, 2026-10-01) -| Old-site page | www.embeddedos.org coverage | Verdict | +| Old-site page | `www.embeddedos.org` coverage | Verdict | |---|---|---| | `index.html` | `/` (homepage) | Covered — redirect | | `404.html` | 404 route | Covered — redirect | @@ -25,7 +25,7 @@ redirect action has been taken. Refs #158. ## What moves (on approval) -1. **Port 4 unique content sets** to www.embeddedos.org as new routes: +1. **Port 4 unique content sets** to `www.embeddedos.org` as new routes: - `/stacks` (from `stacks/index.html`) - `/kids` (from `kids.html`) - `/hardware-lab` (from `hardware-lab.html`) @@ -33,18 +33,18 @@ redirect action has been taken. Refs #158. 2. **Verify** `books.html` → `/books` and `docs/embeddedos-ecosystem-guide.md` → `/docs` are 1:1 (no dropped sections). 3. **Archive** this repo (GitHub archive, read-only) — do NOT delete. -4. **Redirect**: GitHub Pages → www.embeddedos.org via `` on +4. **Redirect**: GitHub Pages → `www.embeddedos.org` via `` on `index.html` + repo-level redirect notice, or DNS-level if available. ## Undo path - Archiving is reversible (unarchive in repo settings). - This repo's git history is the full backup; the port commits on - www.embeddedos.org are revertable independently. + `www.embeddedos.org` are revertable independently. - No content is deleted at any step — archive, not delete. ## Do NOT -- Do not archive before the 4 unique content sets are live on www.embeddedos.org. +- Do not archive before the 4 unique content sets are live on `www.embeddedos.org`. - Do not touch srpatcha's PR #159 (salvage work) — coordinate, don't duplicate. - Do not break existing inbound links: keep the redirect page live for 6 months. From 3bc4fdef82e3552810d13699de9f83dbc2c94c4b Mon Sep 17 00:00:00 2001 From: Srikanth Patchava Date: Tue, 6 Oct 2026 00:50:58 -0700 Subject: [PATCH 3/4] ci(pr-check): install the browsers the Playwright config runs playwright.config.js defines chromium, firefox and webkit projects, but the workflow installed only chromium. Every firefox and webkit test failed at browserType.launch ('Executable doesn't exist'), so 'test' was red on every PR, including merged #151, #157 and #161. --- .github/workflows/pr-check.yml | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/.github/workflows/pr-check.yml b/.github/workflows/pr-check.yml index 57f7afc..0d07ec4 100644 --- a/.github/workflows/pr-check.yml +++ b/.github/workflows/pr-check.yml @@ -20,7 +20,9 @@ jobs: with: node-version: 20 - run: npm install - - run: npx playwright install --with-deps chromium + # playwright.config.js runs chromium, firefox and webkit; installing only + # chromium made every firefox/webkit test fail at launch on every PR. + - run: npx playwright install --with-deps chromium firefox webkit - name: HTML validation run: | From 5c659b135540f9818f8fc81bd2e4f895a48b83f6 Mon Sep 17 00:00:00 2001 From: Srikanth Patchava Date: Tue, 6 Oct 2026 01:08:42 -0700 Subject: [PATCH 4/4] test(seo): read sitemap.xml as a document, not a rendered page Firefox renders XML in its own viewer, where page.textContent('body') never resolves, so 'sitemap.xml is valid' timed out on Firefox once the browser was actually installed. The test now fetches the file and checks it is a naming the site. --- tests/seo.spec.js | 15 ++++++++------- 1 file changed, 8 insertions(+), 7 deletions(-) diff --git a/tests/seo.spec.js b/tests/seo.spec.js index a2012c6..03b19cd 100644 --- a/tests/seo.spec.js +++ b/tests/seo.spec.js @@ -143,13 +143,14 @@ test.describe('SEO: Robots & Sitemap', () => { await ctx.close(); }); - test('sitemap.xml is valid', async ({ browser }) => { - const ctx = await browser.newContext(); - const p = await ctx.newPage(); - const response = await p.goto(`${BASE}/sitemap.xml`); + // Fetched as a document, not rendered: Firefox shows XML in its own viewer, + // where page.textContent('body') never resolves, and that failed on every + // run once Firefox was actually installed. + test('sitemap.xml is valid', async ({ request }) => { + const response = await request.get(`${BASE}/sitemap.xml`); expect(response.status()).toBe(200); - const text = await p.textContent('body'); - expect(text).toContain('embeddedos-org.github.io'); - await ctx.close(); + const xml = await response.text(); + expect(xml).toContain('