| 文件 | 最后提交记录 | 最后更新时间 |
|---|---|---|
feat(engine): URL 加载规范 — 自定义 scheme(RFC 3986)+ 无 scheme 默认分流(/ 开头→file,其他→rawfile) - UrlUtils(ETS/Java) 新增 getScheme/hasScheme/isValidScheme/resolveDefaultScheme - loadCard: url 归一化后按 scheme 分流 jsAssetsPath/jsFilePath/raw loader(新 FlexURawUriBundleLoader) - runScriptFromUri/runEngineScriptFromUri 入口归一化,显式 scheme 原样透传 - FlexUIResourceLoader 支持自定义 scheme 路由(构造注入 + registerSchemeHandler,内置 scheme 不可覆盖) - FlexUIEngineConfig.customResourceLoaders / FlexUIEngineContext.registerResourceLoader 双注册通道 - loadModuleWithListener 补上此前缺失的 bundleLoader 优先分支;Android checkModuleLoadParams 校验放宽 - DynamicLoad.js isSchema 正则升级为 RFC 3986(旧正则误判 asset:/ 为无 scheme) - Android resolveDefaultScheme asset 前缀用三斜杠 assets:///(双斜杠会被 java.net.URI 当 authority 吞目录) - 文档:integration.md / usage-guide.md 补充 URL 加载规范说明 Co-Authored-By: Claude <noreply@anthropic.com> | 1 个月前 | |
fix(engine): multi-card DOM root routing — SceneBuilder ops carry root_id OHOS 多卡片共享单个 JSVM/Scope/Context,之前 SceneBuilder DOM 命令不带 root 参数、一律打到 scope 最后 attach 的 root,导致卡片间 DOM 写回串扰(第二张 卡片起无法渲染)。 C++ 侧: - SceneBuilder 增加 root_node_ 绑定,constructor 接收可选 root_id,从 RootNode::PersistentMap() 解析;7 个方法回调 + CreateNode/CreateDomInfo/ HandleJsValue 链统一走 ResolveSceneBuilderTarget(优先绑定 root,fallback scope 当前 root,向后兼容 Android/旧调用) - UIManagerModule::CallUIFunction 支持可选 root_id JS 侧(flexui-backend): - 6 个入队函数(create/update/delete/move/addEvent/removeEvent)加可选 rootId 参数,NativeBackendElement 全部调用点显式传 _context.rootViewId——事件驱动/ 异步渲染不再依赖全局 activeRoot 状态(修复 activeRoot 被污染导致 op 错标) - flushQueue 按 rootId 分组,每组一个绑定 root 的 SceneBuilder - reserveRootId 单值改为 Set(多卡 root id 全保留) - 新增 multi-root.test.ts(含 activeRoot 污染回归用例);id-collision 测试适配 Set 语义 其他: - SkillActivator 移除 skill-bootstrap.js 冗余调用(职责已由 has_apis/agent_api 覆盖) - build.sh 加 WSL bash 拦截;dev.sh 修 hdc install 双路径 bug(复用相对路径方案) - ascf-toolkit package.json 对齐 terser-webpack-plugin 版本(修 npm EOVERRIDE) - CLAUDE.md 补充 C++ 强制验证流程;docs/bugfix 归档本次修复 | 1 个月前 | |
refactor: 项目重命名 重命名项目目录与设计文档,并同步 README、构建脚本、签名配置与 .gitignore 排除规则。 | 16 天前 | |
feat(engine): support devtools debugging in release builds - build-profile.json5: enable ENABLE_INSPECTOR for the release variant; runtime gating stays with debugMode (create JS inspector / connect devtool only when debugMode=true) - FlexUIEngine.ets: log switch now driven by build type via BuildProfile.DEBUG (imported from module-root generated BuildProfile.ets) instead of debugMode; enableLog remains an explicit override - FlexUIEngineContextImpl.ets: create DevtoolsManager only inside the debugMode branch so debugMode=false never connects/creates devtools - build-jsfwk/index.js: remove stale flexui_jsfwk.js.map on release builds so sourcemaps are not packaged into the HAR - scripts: build-engine gains --verbose (full hvigorw log + retained logfile), build-jsfwk no longer swallows failures, hvigorw auto-detection now covers Windows DevEco paths, and all $HVIGORW calls are quoted (path with spaces) - docs: README + pkg-size-reduce updated to reflect ENABLE_INSPECTOR=true for both debug and release builds | 1 个月前 | |
fix: update import paths to scoped packages and fix wx→has prefix test spans - Update all import paths: flexui → @flexui/core, flexui-template-compiler → @flexui/template-compiler, etc. - Fix template compiler Rust test span values for wx: → has: prefix shift - Add non-null assertions in class_list.ts for strict null check compliance - Fix webpack plugin CSS loader path and config references - Update doc examples with correct package names - Fix chaining.test.ts ts-expect-error placement Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com> | 2 个月前 | |
fix(engine): keep __slotMap across attribute flushes on slot-host custom components Root cause: __slotMap is a JS-managed sticky ext prop pushed ONLY on structural changes (child attach/detach/slot re-assign), while regular attributes (e.g. collapsed-height on <collapsible-view>) are re-sent on every flush WITHOUT __slotMap. UpdateDomNodes' ext diff (DiffProps) treated the missing __slotMap as DELETED and SetExtStyleMap then wiped it from the node's ext map, so the ArkTS side only received setProp('__slotMap', null); FlexUICustomComponentView. _parseSlotMapProp early-returned and onSlotMapParsed never ran again (C++ slot routing was lost too). Fix (C++): UpdateDomNodes now re-injects the existing __slotMap into update_ext when it is omitted, and filters __slotMap out of ext auto-delete (only an explicit deleteProps entry clears it). Fix (ArkTS): _parseSlotMapProp also invokes onSlotMapParsed(empty map) on the null/empty branch so the subclass hook contract is never silently broken. Demo: collapsibleview-demo scenario 1 now carries collapsed-height=100 with a <text slot=button> child as an on-device regression scenario; docs updated (design flexui-component-slot.md edge case 8, extension guide known-constraint). | 18 天前 | |
修改pickerview子组件渲染方式;解决pickerview页面不能滑动问题 | 11 天前 | |
docs: add learning notes and summary docs - docs/learn/: FlexUI engine, ASCF bridge, rendering flow, component analysis - docs/summary/: rendering architecture and ArkUI NDK APIs summary Co-Authored-By: Claude <noreply@anthropic.com> | 1 个月前 | |
fix(security): LLM API key 改为本地 gitignored 配置读取,移除硬编码密钥 - Index.ets / MainActivity.kt / ascf-toolkit config.js 改为从本地配置读取 apiKey - 本地配置: ai-agent/.../local-config.ts、toolkit/local-llm-config.json、Android local.properties(llm.apiKey) - 新增 .example 模板 + .gitignore;文档中的 key 替换为占位符 | 14 天前 | |
feat: add Card Tester mock data via bridge dispatch + fix Windows path bugs - Card Tester: inject mock data via bridgeManager.callJavaScriptModule('__ascfCallbacks', 'onCardEvent') - FlexView.params carries __ascfInstanceId__ for instance routing - Mock data dispatched in onViewReady with 50ms delay for JS init - Generation guard prevents stale dispatch on rapid card switching - Fix hvigor Windows path bug: copy HAR to ascf-agent/libs/ (relative path) - build-engine.sh auto-copies HAR after build - ascf-agent entry & agent-runtime now reference libs/flexui_engine.har - Fix hdc install path bug on Windows (use relative path) - as_apis uses local framework/ohos source for flexui-engine build Co-Authored-By: Claude <noreply@anthropic.com> | 1 个月前 | |
refactor: extract as_apis and android-modules from flexui-engine/modules/ Move modules/ohos/as_apis → as_apis/ and modules/android → android-modules/ to the repo root, alongside flexui-engine. These are independent build artifacts (HAR/AAR) not packaged by build-engine. - Update build configs: build-profile.json5, settings.gradle, cmake, oh-package.json5 - Update build scripts: pkg.sh, build-hap.sh, build-agent.sh - Add auto-clean in build-hap/build-agent to handle shared as_apis dependency - Fix AscfAIModuleModule.call() return type to match FlexUINativeModuleBase - Update docs paths Co-Authored-By: Claude <noreply@anthropic.com> | 1 个月前 |