| chore: update moonbit-skills subproject commit reference | 6 天前 |
| ci: default macOS platform evidence smokes for scheduled runs inputs.* only resolve on workflow_dispatch; scheduled runs passed empty skia-provider/link-mode values and disabled both smokes, so the marker verification step failed on a missing log every week. Schedule now defaults to the full showcase + IME matrix on release/static. | 10 天前 |
| Enhance GPU context management and logging for HarmonyOS and Android - Abandon GPU context before unreferencing to prevent blocking submits during teardown on HarmonyOS. - Ensure EGL window surface geometry and usage flags are set before creation to avoid rendering issues. - Adjust surface origin handling to match Metal/Vulkan workers for consistent rendering. - Improve logging for lifecycle events and service probe interactions in Android and HarmonyOS. - Streamline accessibility tree parsing for HarmonyOS to accommodate differences from Android. - Implement continuous log streaming for both Android and HarmonyOS to capture high-frequency events. - Refactor screenshot handling for HarmonyOS to support JPEG format and conversion to PNG. | 2 个月前 |
| refactor!: remove examples/markdown_editor in favor of wzzc-dev/MoMark The WYSIWYG Markdown editor now lives in its own repository (https://github.com/wzzc-dev/MoMark), built on the published wzzc-dev/moui and wzzc-dev/moui_richtext packages. This removes the example workspace member and every functional coupling: catalog/profile entries, benchmark scenarios, validator targets, smoke/evidence script sections, CI jobs, and the example screenshot. Docs and the website keep a Markdown Editor entry that points at the MoMark repository; the docs pages become pointer pages and the generated repository facts and website docs are regenerated. | 13 天前 |
| build(linux-riscv64): improve sysroot preparation and cross-build scripts Add X11 dependencies to the Linux RISC-V64 toolchain and cross-build scripts to support window module requirements when building from macOS hosts. Improve the sysroot preparation script by: - Implementing bind mounts for /dev, /proc, /sys, /dev/pts, and /dev/shm to support QEMU user emulation and dpkg requirements. - Adding a cleanup mechanism to unmount these trees before removing the temporary directory. - Using --force-bad-path with dpkg to prevent spurious failures during libc-bin upgrades in the chroot environment. Also update .gitignore to ignore .cache directories. | 3 天前 |
| feat(moui_cli): extend build, run, and package commands to desktop and web Expand the MoUI CLI capabilities to support desktop (macOS, Windows, Linux) and web platforms directly, reducing reliance on moon run for these targets. - Implement moui run <platform> <app> for desktop and web, including automatic MSVC environment configuration on Windows via vswhere. - Add moui build <platform> <app> support for desktop and web targets. - Add moui package <platform> <app> to create distributable artifacts such as macOS .app bundles, Windows portable folders, and web bundles. - Update moui doctor to include Node.js checks for web development. - Update moui devices to include the local host as a desktop target. - Add native filesystem support for marking files as executable on POSIX. - Update documentation to reflect new CLI workflows and command usage. | 4 天前 |
| refactor(moui): relocate window scene resolution to backend common lifecycle Move the WindowSceneResolver and related types (WindowSceneResolution, WindowSceneInstance, WindowOpenResolution, WindowResolvedOpen) from moui/runtime to moui/backend/common/lifecycle. This relocation aligns with the architectural goal of moving window scene resolution to the P10 neutral-lifecycle owner, ensuring that platform-neutral scene resolution logic resides within the backend common lifecycle module rather than the runtime facade. - Relocated types and logic from moui/runtime to moui/backend/common/lifecycle - Updated all platform backends (Linux, macOS, Web, Windows) to use the new location - Updated examples and tests to reflect the new module paths - Updated API surface reports, maintenance baselines, and documentation - Added completion plan documentation for the relocation task | 5 天前 |
| feat(renderer): implement neutral card image placeholders Replace the high-contrast, opaque blue-gray gradient placeholders in Skia, Sun, and WGPU renderers with a subtle, near-transparent neutral card. The new design features a hairline border and a centered "picture" glyph (for raster renderers) to provide a more theme-agnostic loading state that minimizes visual distraction. Additionally: - Implement createMoonbitRuntimeImports in the web renderer to provide the __moonbit_time_unstable (now) import required by wasm-gc binaries. - Update moui_richtext and moui_views for improved UI consistency, including button label alignment and data tree rendering. - Refactor various test suites and internal helper functions for improved code formatting and clarity. | 7 天前 |
| feat(moui_richtext): implement smooth scroll glides and real-time animation clock Introduces a new MarkdownScrollGlide mechanism to decouple scrolling from the fixed timer tick grid, allowing for smooth, eased transitions that are sampled at the actual display refresh rate (e.g., 120Hz). Key changes: - Implement MarkdownScrollGlide for eased, clock-based scroll offsets. - Add support for a host-provided frame_clock to drive animations using real monotonic time instead of synthetic 16ms steps. - Implement geometry compensation to prevent visual jumps when measured block heights are updated during a paint cycle. - Update MarkdownDocumentSession to use a stable document_identity to prevent stale layout cache hits across different documents. - Refactor VariableListMetrics to use a Fenwick tree for efficient prefix sum updates and height management. - Improve macOS backend timer precision by removing dispatch leeway. - Add comprehensive web tests for scroll glides, geometry compensation, and document identity isolation. | 2 天前 |
| docs: bump window package version to 0.5.4-0.1.7 | 21 天前 |
| Refactor popover and sheet handling to use unified presentation model - Renamed to in multiple files to standardize naming. - Removed implementation and replaced it with for managing sheets. - Introduced , , and related enums to encapsulate presentation logic. - Updated tests and layout contexts to accommodate new presentation structure. - Adjusted API surface classifications and budgets to reflect changes in presentation handling. | 26 天前 |
| feat: add tests for rapier adapter and improve web renderer functionality - Implement tests for the rapier adapter to verify gravity integration and collision detection with fixed ground. - Enhance the web renderer by introducing a binary mesh drawing function and updating resource management. - Update the version of the moui_3d and moui_3d_wgpu_renderer modules to 0.1.10. - Introduce a new module for moui_3d_xr, providing OpenXR and WebXR contracts. - Refactor vertex buffer handling in the native 3D renderer to optimize resource uploads. - Add support for resource residency updates in the web GPU imports. | 29 天前 |
| Refactor popover and sheet handling to use unified presentation model - Renamed to in multiple files to standardize naming. - Removed implementation and replaced it with for managing sheets. - Introduced , , and related enums to encapsulate presentation logic. - Updated tests and layout contexts to accommodate new presentation structure. - Adjusted API surface classifications and budgets to reflect changes in presentation handling. | 26 天前 |
| Refactor popover and sheet handling to use unified presentation model - Renamed to in multiple files to standardize naming. - Removed implementation and replaced it with for managing sheets. - Introduced , , and related enums to encapsulate presentation logic. - Updated tests and layout contexts to accommodate new presentation structure. - Adjusted API surface classifications and budgets to reflect changes in presentation handling. | 26 天前 |
| Refactor popover and sheet handling to use unified presentation model - Renamed to in multiple files to standardize naming. - Removed implementation and replaced it with for managing sheets. - Introduced , , and related enums to encapsulate presentation logic. - Updated tests and layout contexts to accommodate new presentation structure. - Adjusted API surface classifications and budgets to reflect changes in presentation handling. | 26 天前 |
| Refactor popover and sheet handling to use unified presentation model - Renamed to in multiple files to standardize naming. - Removed implementation and replaced it with for managing sheets. - Introduced , , and related enums to encapsulate presentation logic. - Updated tests and layout contexts to accommodate new presentation structure. - Adjusted API surface classifications and budgets to reflect changes in presentation handling. | 26 天前 |
| Refactor popover and sheet handling to use unified presentation model - Renamed to in multiple files to standardize naming. - Removed implementation and replaced it with for managing sheets. - Introduced , , and related enums to encapsulate presentation logic. - Updated tests and layout contexts to accommodate new presentation structure. - Adjusted API surface classifications and budgets to reflect changes in presentation handling. | 26 天前 |
| feat(moui_cli): extend build, run, and package commands to desktop and web Expand the MoUI CLI capabilities to support desktop (macOS, Windows, Linux) and web platforms directly, reducing reliance on moon run for these targets. - Implement moui run <platform> <app> for desktop and web, including automatic MSVC environment configuration on Windows via vswhere. - Add moui build <platform> <app> support for desktop and web targets. - Add moui package <platform> <app> to create distributable artifacts such as macOS .app bundles, Windows portable folders, and web bundles. - Update moui doctor to include Node.js checks for web development. - Update moui devices to include the local host as a desktop target. - Add native filesystem support for marking files as executable on POSIX. - Update documentation to reflect new CLI workflows and command usage. | 4 天前 |
| Refactor popover and sheet handling to use unified presentation model - Renamed to in multiple files to standardize naming. - Removed implementation and replaced it with for managing sheets. - Introduced , , and related enums to encapsulate presentation logic. - Updated tests and layout contexts to accommodate new presentation structure. - Adjusted API surface classifications and budgets to reflect changes in presentation handling. | 26 天前 |
| Add localization support for Simplified Chinese - Updated visuals.mbt to include locale parameter in hero_demo_panel, hero_source_panel, and hero_counter_panel functions for localized text rendering. - Modified website_app_wbtest.mbt to include tests for localized English and Simplified Chinese homepage sections. - Enhanced docs-catalog.json with localized entries for Simplified Chinese, including titles and summaries for various documentation sections. - Updated moon.mod to import the new moui_i18n module for internationalization support. - Adjusted main.mbt to apply locale settings in the web application runtime. - Expanded sitemap.xml to include localized routes for Simplified Chinese. | 2 个月前 |
| fix(moui_richtext): correct measurement of blank paragraph separators to use painted collapsed height | 18 小时前 |
| perf(moui_skia): prewarm the D3D12 stack on a background thread at startup The availability probe already caches the created adapter/device/queue; add moui_skia_prewarm_d3d() to spawn that creation on a worker thread at process start so the ~220 ms cold device creation overlaps document parsing instead of stalling window/renderer creation. Embedders call it once before any skia-gpu surface exists; the probe verdict cache and the shared-object stash are published together, and make_d3d12_objects waits for an in-flight prewarm rather than building a second device. MoUI skia-gpu stress open 685 -> 325 ms; MoMark 834 -> 609 ms. | 3 天前 |
| perf(moui): memoize glyph mapping and typeface loading Implement thread-local caching for glyph mapping in skia_stub_text_font.cpp to prevent O(N^2) complexity during text-to-glyph conversions. This avoids recomputing the entire glyph vector for every single character index lookup. Add a session-scoped cache for typefaces in renderer_text_font_files.mbt to avoid redundant font file decoding and directory stat calls when requesting the same font family, weight, and style. - Add thread_local cache for moonbit_skia_font_text_to_glyphs_utf8_at - Implement skia_font_file_typeface_cache in MoonBit renderer - Limit typeface cache size to 32 entries to prevent unbounded growth | 4 天前 |
| style: apply moon fmt across remote image and svg projection changes | 10 天前 |
| feat(renderer): implement neutral card image placeholders Replace the high-contrast, opaque blue-gray gradient placeholders in Skia, Sun, and WGPU renderers with a subtle, near-transparent neutral card. The new design features a hairline border and a centered "picture" glyph (for raster renderers) to provide a more theme-agnostic loading state that minimizes visual distraction. Additionally: - Implement createMoonbitRuntimeImports in the web renderer to provide the __moonbit_time_unstable (now) import required by wasm-gc binaries. - Update moui_richtext and moui_views for improved UI consistency, including button label alignment and data tree rendering. - Refactor various test suites and internal helper functions for improved code formatting and clarity. | 7 天前 |
| fix(ci): ratchet richtext budgets and update smoke placeholder pixel Two CI gates went stale after recent feature work: - The PR profile gate source-file policy still registered pre-feature logic-line budgets for moui_richtext/editor_source_mapping.mbt (2594) and rich_text_editor_caret_hit.mbt (1658); the task-list vector marker work pushed them to 2596 and 1699. Ratchet both to the current counts, same as the established follow-up convention. - The Skia renderer smoke still asserted the removed high-contrast blue-gray image placeholder gradient (145,163,189) at 171,92, while the neutral card placeholder now composites white + rgba(0.42,0.47, 0.55,0.07) to 245,245,247 (identical on macOS/Linux real Skia and RISC-V64 qemu). Tighten tolerance 55 -> 8 around the exact value so regressions still trip the check. Verified locally: validate_source_file_policy passes; macOS real-Skia macos-real-skia-smoke.sh --run-renderer-smoke reports "MoUI Skia renderer smoke passed". | 7 天前 |
| Refactor popover and sheet handling to use unified presentation model - Renamed to in multiple files to standardize naming. - Removed implementation and replaced it with for managing sheets. - Introduced , , and related enums to encapsulate presentation logic. - Updated tests and layout contexts to accommodate new presentation structure. - Adjusted API surface classifications and budgets to reflect changes in presentation handling. | 26 天前 |
| feat(renderer): implement neutral card image placeholders Replace the high-contrast, opaque blue-gray gradient placeholders in Skia, Sun, and WGPU renderers with a subtle, near-transparent neutral card. The new design features a hairline border and a centered "picture" glyph (for raster renderers) to provide a more theme-agnostic loading state that minimizes visual distraction. Additionally: - Implement createMoonbitRuntimeImports in the web renderer to provide the __moonbit_time_unstable (now) import required by wasm-gc binaries. - Update moui_richtext and moui_views for improved UI consistency, including button label alignment and data tree rendering. - Refactor various test suites and internal helper functions for improved code formatting and clarity. | 7 天前 |
| docs: bump window package version to 0.5.4-0.1.7 | 21 天前 |
| perf(windows): honor ms-scale pump deadlines and cut redundant D3D12 init The async pump paces presented frames with @async.sleep; the default 15.625 ms scheduler tick quantized the 12 ms sleep to ~25-31 ms, capping every MoUI/MoMark window at ~30 ms per frame. Raise the clock resolution to 1 ms around the pump so sleep deadlines are honored (observed frame interval drops from ~30.8 ms to ~7 ms). Skia's D3D availability probe built and tore down a full GrDirectContext per call (~200 ms cold on multi-adapter systems, twice per frame warm); probe once, cache the verdict, and hand the created adapter/device/queue to the real context creation. Point wgpu adapter requests at D3D12 with high-performance preference (skips fallback enumeration; swapchain configure 215 -> 7 ms). | 5 天前 |
| feat(branding): add 100px Moonbud mascot assets Add SVG and PNG versions of the Moonbud mascot scaled to 100x100 pixels for use in README headers, avatars, and small UI components. Update branding documentation to include the new assets and instructions for regenerating previews. | 9 天前 |
| build(linux-riscv64): improve sysroot preparation and cross-build scripts Add X11 dependencies to the Linux RISC-V64 toolchain and cross-build scripts to support window module requirements when building from macOS hosts. Improve the sysroot preparation script by: - Implementing bind mounts for /dev, /proc, /sys, /dev/pts, and /dev/shm to support QEMU user emulation and dpkg requirements. - Adding a cleanup mechanism to unmount these trees before removing the temporary directory. - Using --force-bad-path with dpkg to prevent spurious failures during libc-bin upgrades in the chroot environment. Also update .gitignore to ignore .cache directories. | 3 天前 |
| refactor!: remove examples/markdown_editor in favor of wzzc-dev/MoMark The WYSIWYG Markdown editor now lives in its own repository (https://github.com/wzzc-dev/MoMark), built on the published wzzc-dev/moui and wzzc-dev/moui_richtext packages. This removes the example workspace member and every functional coupling: catalog/profile entries, benchmark scenarios, validator targets, smoke/evidence script sections, CI jobs, and the example screenshot. Docs and the website keep a Markdown Editor entry that points at the MoMark repository; the docs pages become pointer pages and the generated repository facts and website docs are regenerated. | 13 天前 |
| refactor!: remove examples/markdown_editor in favor of wzzc-dev/MoMark The WYSIWYG Markdown editor now lives in its own repository (https://github.com/wzzc-dev/MoMark), built on the published wzzc-dev/moui and wzzc-dev/moui_richtext packages. This removes the example workspace member and every functional coupling: catalog/profile entries, benchmark scenarios, validator targets, smoke/evidence script sections, CI jobs, and the example screenshot. Docs and the website keep a Markdown Editor entry that points at the MoMark repository; the docs pages become pointer pages and the generated repository facts and website docs are regenerated. | 13 天前 |
| refactor(moui): relocate window scene resolution to backend common lifecycle Move the WindowSceneResolver and related types (WindowSceneResolution, WindowSceneInstance, WindowOpenResolution, WindowResolvedOpen) from moui/runtime to moui/backend/common/lifecycle. This relocation aligns with the architectural goal of moving window scene resolution to the P10 neutral-lifecycle owner, ensuring that platform-neutral scene resolution logic resides within the backend common lifecycle module rather than the runtime facade. - Relocated types and logic from moui/runtime to moui/backend/common/lifecycle - Updated all platform backends (Linux, macOS, Web, Windows) to use the new location - Updated examples and tests to reflect the new module paths - Updated API surface reports, maintenance baselines, and documentation - Added completion plan documentation for the relocation task | 5 天前 |
| Refactor popover and sheet handling to use unified presentation model - Renamed to in multiple files to standardize naming. - Removed implementation and replaced it with for managing sheets. - Introduced , , and related enums to encapsulate presentation logic. - Updated tests and layout contexts to accommodate new presentation structure. - Adjusted API surface classifications and budgets to reflect changes in presentation handling. | 26 天前 |
| refactor!: remove examples/markdown_editor in favor of wzzc-dev/MoMark The WYSIWYG Markdown editor now lives in its own repository (https://github.com/wzzc-dev/MoMark), built on the published wzzc-dev/moui and wzzc-dev/moui_richtext packages. This removes the example workspace member and every functional coupling: catalog/profile entries, benchmark scenarios, validator targets, smoke/evidence script sections, CI jobs, and the example screenshot. Docs and the website keep a Markdown Editor entry that points at the MoMark repository; the docs pages become pointer pages and the generated repository facts and website docs are regenerated. | 13 天前 |
| feat(moui_richtext): implement smooth scroll glides and real-time animation clock Introduces a new MarkdownScrollGlide mechanism to decouple scrolling from the fixed timer tick grid, allowing for smooth, eased transitions that are sampled at the actual display refresh rate (e.g., 120Hz). Key changes: - Implement MarkdownScrollGlide for eased, clock-based scroll offsets. - Add support for a host-provided frame_clock to drive animations using real monotonic time instead of synthetic 16ms steps. - Implement geometry compensation to prevent visual jumps when measured block heights are updated during a paint cycle. - Update MarkdownDocumentSession to use a stable document_identity to prevent stale layout cache hits across different documents. - Refactor VariableListMetrics to use a Fenwick tree for efficient prefix sum updates and height management. - Improve macOS backend timer precision by removing dispatch leeway. - Add comprehensive web tests for scroll glides, geometry compensation, and document identity isolation. | 2 天前 |
| Add shell runtime manifest validation and update documentation - Introduced a new package for validating shell runtime manifests in tools/moui/validate_shell_runtime_manifest/moon.pkg. - Added comprehensive tests for validating shell runtime manifests in tools/moui/validate_shell_runtime_manifest/validate_shell_runtime_manifest_wbtest.mbt. - Updated documentation references in website/docs-catalog.json to reflect changes from "Mobile Mainline Roadmap" to "Shell Mainline Roadmap" and "Mobile Runtime ABI v1" to "Embedding API v1". - Modified sitemap entries in website/web_wasm/sitemap.xml to align with the updated documentation paths. (cherry picked from commit ff6303bd0728b7b1623482890ba6746e67317d50) | 2 个月前 |
| build(linux-riscv64): improve sysroot preparation and cross-build scripts Add X11 dependencies to the Linux RISC-V64 toolchain and cross-build scripts to support window module requirements when building from macOS hosts. Improve the sysroot preparation script by: - Implementing bind mounts for /dev, /proc, /sys, /dev/pts, and /dev/shm to support QEMU user emulation and dpkg requirements. - Adding a cleanup mechanism to unmount these trees before removing the temporary directory. - Using --force-bad-path with dpkg to prevent spurious failures during libc-bin upgrades in the chroot environment. Also update .gitignore to ignore .cache directories. | 3 天前 |
| chore: make examples/deepseek_harness_desktop a submodule Convert tracked directory to git submodule pointing to https://github.com/moui-mbt/deepseek-harness-desktop.git (branch main, fc7ded3). The standalone history was extracted via git subtree split -P examples/deepseek_harness_desktop and now lives in moui-mbt/deepseek-harness-desktop; the superproject keeps the same path as a gitlink so moon.work member ./examples/deepseek_harness_desktop continues to resolve. moon test examples/deepseek_harness_desktop/app --target native still passes (23 tests). | 28 天前 |
| fix: update StringBuilder initialization to use default constructor across multiple files | 26 天前 |
| Add Linux RISC-V64 support and cross-build scripts - Introduced a new plan for supporting Linux RISC-V64, including goals and acceptance criteria in docs/plans/active/linux-riscv64-support.md. - Created scripts/linux-riscv64-cross-build.sh to facilitate cross-building the canonical Linux Skia Showcase and running offscreen Skia renderer/text smokes. - Developed scripts/prepare-linux-riscv64-sysroot.sh for preparing the locked Ubuntu RISC-V64 glibc sysroot. - Implemented scripts/test-linux-riscv64-cross-build.sh for self-testing the cross-build helper with various scenarios. - Added validation tests for the RISC-V64 architecture variant in tools/moui/validate_platform_matrix/model_wbtest.mbt. | 1 个月前 |
| docs: add community and contribution guidelines | 3 个月前 |
| refactor: converge backend and render packages | 1 个月前 |
| refactor: budget constraints and guidance consistency checks - Updated budget constraints for the runtime facade, backend host, and render packages to reflect new limits on lines and public lines. - Adjusted the validation tests to align with the new budget constraints for the runtime facade. - Introduced a new function to define top-level guidance files and updated the guidance surface files accordingly. - Added tests to ensure the top-level public documentation files are included in the forbidden guidance scan. - Revised the maintenance baseline budgets, reducing maximum counts for various packages and adjusting line budgets for specific files to improve consistency and maintainability. | 2 个月前 |
| feat: add Apache License 2.0 to the repository | 4 个月前 |
| feat(moui_richtext): implement block-view contribution registry for markdown Introduce a MarkdownBlockView registry to allow specialized rendering projections (like HTML image galleries) to plug into the rich-text conversion process without modifying the core block model. This change includes: - A new MarkdownBlockView system for decoupled block projections. - Improved HTML block parsing with nesting-aware depth tracking to correctly handle containers like <div> and <center>. - A lookahead mechanism to prevent unclosed HTML containers from incorrectly swallowing subsequent blocks. - Refactored markdown_html_image_gallery to be a registered view contribution. - Added regression tests for the new view registry and nesting logic. docs: update README with improved screenshot layout | 12 天前 |
| feat(moui_richtext): implement block-view contribution registry for markdown Introduce a MarkdownBlockView registry to allow specialized rendering projections (like HTML image galleries) to plug into the rich-text conversion process without modifying the core block model. This change includes: - A new MarkdownBlockView system for decoupled block projections. - Improved HTML block parsing with nesting-aware depth tracking to correctly handle containers like <div> and <center>. - A lookahead mechanism to prevent unclosed HTML containers from incorrectly swallowing subsequent blocks. - Refactored markdown_html_image_gallery to be a registered view contribution. - Added regression tests for the new view registry and nesting logic. docs: update README with improved screenshot layout | 12 天前 |
| refactor: converge backend and render packages | 1 个月前 |
| docs: update Gitlink link and add THIRD_PARTY.md | 2 个月前 |
| feat: add mobile runtime manifest validation and testing scripts - Introduced test-validate-mobile-runtime-manifest.mjs for testing mobile runtime manifest validation. - Created validate-mobile-runtime-manifest.mjs to validate mobile runtime manifests against defined schemas. - Updated documentation to reflect new build scripts for mobile applications. - Added new mobile runtime smoke gates for both Counter and Component Gallery apps on Android and iOS. - Enhanced line budget configurations for maintenance baseline validation. - Implemented new MoonBit tool for validating mobile runtime manifests with comprehensive test cases. | 2 个月前 |
| feat(linux): add X11 windowing backend support Introduce an X11 (Xlib) backend to the Linux platform support to allow running in environments without Wayland (e.g., Xvfb, legacy desktops, or remote X sessions). - Implement X11 backend selection logic in moui/backend/linux - Add support for X11 window creation and event loop via Xlib - Update Linux platform documentation to include X11 backend details - Add X11 development dependency management in scripts/set_linux_deps.sh - Provide a smoke test script for X11 validation in UTM/Linux VMs - Update moon.work to include new windowing modules | 6 天前 |