| 文件 | 最后提交记录 | 最后更新时间 |
|---|---|---|
fix(agent): add setContext call, fix TAG + apiArgs compilation - Index.ets: call runtime.setContext(getContext(this)) before initialize() to enable rawfile access for MCP loading and skill discovery - AgentRuntime.ets: fix TAG undefined, fix apiArgs untyped object literal Co-Authored-By: Claude <noreply@anthropic.com> | 2 个月前 | |
refactor: 项目重命名 重命名项目目录与设计文档,并同步 README、构建脚本、签名配置与 .gitignore 排除规则。 | 19 天前 | |
doc: add ai-mode-skills design document Comprehensive design doc covering: - Overview and 3-stage pipeline (generate → validate → eval) - ascf-skills-generate: 6-phase workflow, independent subpackage architecture - ascf-skills-validate: 3-step verification, 16 static rules, error classification - ascf-skills-eval: 13-node pipeline, resume/cache, architecture - Cross-skill concepts: atomic APIs, atomic components, mcp.json, JSAPI whitelist - Integration points: ASCF AI Agent, ascf CLI, ASCF Toolkit, ascf-automator, LLM | 2 个月前 | |
feat(engine): named slots for custom components (collapsible-view demo) JS backend: implement setSlot/slotName, aggregate __slotMap on slot hosts, push via FlexUIBridge.updateNode (ComponentAdapter.slots drives it). C++: CustomTsView multi-slot containers, parse __slotMap, route children per slot name, whitelist __slotMap in UpdateCustomTsProps. ArkTS: pre-create NodeContent per slotDeclarations, inject slotContents, FRCollapsibleView struct renders ContentSlot per slot, onSlotMapParsed drives hasButtonSlot observable for re-render. Adds collapsibleview-demo card, Jest slot.test.ts, design docs, and build/check-env tooling updates. | 1 个月前 | |
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). | 21 天前 | |
docs: add module design docs, update README and CLAUDE.md - Add detailed design docs for all 7 modules in docs/design/ - flexui-core: component system, backend, template engine, data binding - flexui-ascf: ASCF adapter, built-in components, build integration - flexui-shadow-sync: cross-backend shadow tree sync, message channel - toolkit: Rust→WASM compilers, webpack plugin, LSP analyzer, devtools - flexui-engine: native rendering engine (OHOS/Android), DOM, driver - ascf-agent: on-device AI agent, AgentRuntime, tools, FlexView cards - skills: AI-assisted development skills system - Update README: full project/module introduction, remove License section - Update CLAUDE.md: architecture concepts, module dev guidance, subsystem index - Unify ASCF naming: wxa→ascf, WXML→HXML, WXSS→CSS, WXS→HJS, wx:→has: - Replace AscfLite→FlexView in all docs - Remove specific package name references Co-Authored-By: Claude <noreply@anthropic.com> | 2 个月前 | |
feat(dfx): V8 路径 unhandledrejection 实现 + 多引擎分桶设计文档 - v8_vm.cc:V8 PromiseRejectCallback(SetPromiseRejectCallback 注册, kPromiseRejectWithNoHandler → DfxCollector::ReportRejection,与 JSH 的 OH_JSVM_SetHandlerForPromiseReject 同语义) ⚠️ 标注 TODO:待 Android 构建环境编译验证后覆盖(OHOS 走 JS_JSH 不编 本文件,条件编译隔离,build-engine 已确认无回归) - docs/design/flexui-dfx-multi-engine.md:多引擎分桶设计(per-engine collector 注册表 + 埋点惰性分叉 + sink 带 engine_key + DfxBridge 按引擎 路由 + 两步迁移路径 + 双引擎验证方案);当前单引擎零回归,待立项 | 23 天前 | |
scroll-view增加scroll-y支持&canvas disable-scroll空字符串场景没有使用默认值 | 2 天前 | |
feat(engine): 深色模式适配 — @media (prefers-color-scheme) 引擎 + colorMode 桥接 JS 层(flexui-backend): - CSSManager @media 引擎:规则存储/环境评估/重评估(prefers-color-scheme、 宽度/方向断点),兼容编译器 media 前缀;rebuildIndex 保留 scope 绑定 - NativeBackendContext colorMode 链路:has.ts 真身通知(绕过 entry_guard 代理)→ __GLOBAL__ 监听器 → 样式失效与防抖重渲染;getTheme 读真实主题 - StyleResolver 深色默认文字色(Text/Span/TextArea) - has.ts _applyEnv 检测 colorMode 并通知框架监听器 ETS/C++ 桥接: - FlexUIEngineManagerImpl:checkColorMode 初始化 + onConfigurationUpdated 监听(独立注册,不依赖 uiContext)+ pushColorModeToJs - Setting_SetColorMode(C++ FRPixelUtils::SetColorMode/IsDarkMode) - FlexUIBridgeManagerImpl nightMode 读系统 colorMode FlexView 修复: - 首次加载宽度竞态:推迟到测量后 + await 容器宽推送;vp2px 单位修正 (px 被当 vp 导致整卡放大 3.25 倍) - FlexUIWModuleManager 接口改用 worker 参数类(配合调用管控 worker 链路) ascf-agent 阶段1(深色切换/重建后卡片数据恢复): - InstanceManager 缓存最近 result + replayLastData 重放 - FlexCardView onViewReady 队列空时重放数据 文档:兼容性分析第2章修正、集成适配指导(新增)、CLAUDE.md capture 约束 单测:CSSManager @media 引擎 11 项全部通过 Co-Authored-By: Claude <noreply@anthropic.com> | 1 个月前 | |
review意见整改 Co-authored-by: Cursor <cursoragent@cursor.com> | 3 天前 | |
feat(engine): 深色模式适配 — @media (prefers-color-scheme) 引擎 + colorMode 桥接 JS 层(flexui-backend): - CSSManager @media 引擎:规则存储/环境评估/重评估(prefers-color-scheme、 宽度/方向断点),兼容编译器 media 前缀;rebuildIndex 保留 scope 绑定 - NativeBackendContext colorMode 链路:has.ts 真身通知(绕过 entry_guard 代理)→ __GLOBAL__ 监听器 → 样式失效与防抖重渲染;getTheme 读真实主题 - StyleResolver 深色默认文字色(Text/Span/TextArea) - has.ts _applyEnv 检测 colorMode 并通知框架监听器 ETS/C++ 桥接: - FlexUIEngineManagerImpl:checkColorMode 初始化 + onConfigurationUpdated 监听(独立注册,不依赖 uiContext)+ pushColorModeToJs - Setting_SetColorMode(C++ FRPixelUtils::SetColorMode/IsDarkMode) - FlexUIBridgeManagerImpl nightMode 读系统 colorMode FlexView 修复: - 首次加载宽度竞态:推迟到测量后 + await 容器宽推送;vp2px 单位修正 (px 被当 vp 导致整卡放大 3.25 倍) - FlexUIWModuleManager 接口改用 worker 参数类(配合调用管控 worker 链路) ascf-agent 阶段1(深色切换/重建后卡片数据恢复): - InstanceManager 缓存最近 result + replayLastData 重放 - FlexCardView onViewReady 队列空时重放数据 文档:兼容性分析第2章修正、集成适配指导(新增)、CLAUDE.md capture 约束 单测:CSSManager @media 引擎 11 项全部通过 Co-Authored-By: Claude <noreply@anthropic.com> | 1 个月前 | |
fix(engine): harden JS layer — Hermes callback guards, error reporting channels, global handlers JS 层稳定性修复(docs/design/flexui-engine-stability-analysis.md 第 12 节): - J-01: Hermes JSI host function 回调(InvokeJsCallback/InvokePropertyCallback/ InvokeConstructorJsCallback)包 try/catch,异常不逃逸 JSI 边界; task 执行单元统一兜底(timer/idle、CallUIFunction、CallJs、WillExit/ UnloadInstance),CallJs 异常仍回调 CALL_FAILED,WillExit 保证 p.set_value 全路径执行(防 future.get() 挂起) - J-02: 实测 JSVM 无 env 级 rejection 回调 API → bootstrap 注册 unhandledrejection 钩子兜底记录 - J-03: __loadInstance__ 异常走上报通道(VM::HandleException → ETS onJsException), 不再只进 hilog - J-04: 评估通过(OHOS/Android exception_handler 已在 C++ 轮加固) - J-06: console.reportUncaughtException 死代码修正(throw → 记录); bootstrap 注册 unhandledrejection 钩子 - J-07: globalOptions.onError 扩展点(dispatchError 调用,throw 前保证触发); bootstrap 注册默认实现([BusinessError] stack 日志),宿主可覆写上报 同步:buildcore 重新生成 native_source_code_jsh/v8.cc; docs/learn/flexui-engine-arkts-api.md 场景七更新(J-03 新上报入口、 globalOptions.onError 扩展点、三类异常通路)。 已通过 build-engine(BUILD SUCCESSFUL)与 @openflexui/core rollup 构建验证。 Co-Authored-By: Claude <noreply@anthropic.com> | 1 个月前 | |
docs: add module design docs, update README and CLAUDE.md - Add detailed design docs for all 7 modules in docs/design/ - flexui-core: component system, backend, template engine, data binding - flexui-ascf: ASCF adapter, built-in components, build integration - flexui-shadow-sync: cross-backend shadow tree sync, message channel - toolkit: Rust→WASM compilers, webpack plugin, LSP analyzer, devtools - flexui-engine: native rendering engine (OHOS/Android), DOM, driver - ascf-agent: on-device AI agent, AgentRuntime, tools, FlexView cards - skills: AI-assisted development skills system - Update README: full project/module introduction, remove License section - Update CLAUDE.md: architecture concepts, module dev guidance, subsystem index - Unify ASCF naming: wxa→ascf, WXML→HXML, WXSS→CSS, WXS→HJS, wx:→has: - Replace AscfLite→FlexView in all docs - Remove specific package name references Co-Authored-By: Claude <noreply@anthropic.com> | 2 个月前 | |
docs(flexui): 屏幕事件整体方案设计(docs/design/screen-events.md) 按先整体后细节重写:核心思路=复用既有容器尺寸推送链落地端(setWindowSize)做「变化即广播」出口,前端 screen_events 以页面根注册表按 rootId 翻译成 Page.onResize + 组件 pageLifetimes.resize;含三层职责、一次 resize 完整旅程、设计推理、多 scope 隔离边界、验证结果与扩展方向。flexui-frontend.md §3.10 补充互链。 | 8 天前 | |
feat(engine): multi-scope isolation & remove singleton design - FlexUIEngine: createEngine is the only entry (engineKey/groupId/scopeKey required, caller maintains default constants); sRegistry get/destroy/destroyAll; createScope/destroyScope/onReady(scopeKey)/loadCard(scopeKey) - FlexUIEngineManagerImpl: mScopeContexts registry (main scope key = params.scopeKey), CardSession extended with scopeKey/coreBundleLoader, per-scope routing for loadModuleWithListener/loadJsModule/destroyModule, codeCacheTag derived per scope - EnvAPI: global env state (_envState) pushed to each scope on bridge ready + broadcast on change (replaces single-queue pending replay) - FlexView: engineKey/scopeKey @Require, render binding uses scope's NativeRenderProvider - Callers: EntryAbility/Index/FlexCardView maintain ENGINE_KEY/SCOPE_KEY/ENGINE_GROUP_ID - Docs: docs/design/flexui-ohos-multi-runtime.md + learn API doc sync | 1 个月前 | |
feat(engine): multi-scope isolation & remove singleton design - FlexUIEngine: createEngine is the only entry (engineKey/groupId/scopeKey required, caller maintains default constants); sRegistry get/destroy/destroyAll; createScope/destroyScope/onReady(scopeKey)/loadCard(scopeKey) - FlexUIEngineManagerImpl: mScopeContexts registry (main scope key = params.scopeKey), CardSession extended with scopeKey/coreBundleLoader, per-scope routing for loadModuleWithListener/loadJsModule/destroyModule, codeCacheTag derived per scope - EnvAPI: global env state (_envState) pushed to each scope on bridge ready + broadcast on change (replaces single-queue pending replay) - FlexView: engineKey/scopeKey @Require, render binding uses scope's NativeRenderProvider - Callers: EntryAbility/Index/FlexCardView maintain ENGINE_KEY/SCOPE_KEY/ENGINE_GROUP_ID - Docs: docs/design/flexui-ohos-multi-runtime.md + learn API doc sync | 1 个月前 | |
docs: add module design docs, update README and CLAUDE.md - Add detailed design docs for all 7 modules in docs/design/ - flexui-core: component system, backend, template engine, data binding - flexui-ascf: ASCF adapter, built-in components, build integration - flexui-shadow-sync: cross-backend shadow tree sync, message channel - toolkit: Rust→WASM compilers, webpack plugin, LSP analyzer, devtools - flexui-engine: native rendering engine (OHOS/Android), DOM, driver - ascf-agent: on-device AI agent, AgentRuntime, tools, FlexView cards - skills: AI-assisted development skills system - Update README: full project/module introduction, remove License section - Update CLAUDE.md: architecture concepts, module dev guidance, subsystem index - Unify ASCF naming: wxa→ascf, WXML→HXML, WXSS→CSS, WXS→HJS, wx:→has: - Replace AscfLite→FlexView in all docs - Remove specific package name references Co-Authored-By: Claude <noreply@anthropic.com> | 2 个月前 | |
docs: Android impl summary + development pitfalls - docs/design/impl-android.md: full Android agent-runtime implementation doc Architecture map, data flows, technology decisions, phase summary, dev commands - docs/dev-pitfalls.md: append 11 Android-specific pitfalls (sections 12-22) AGP/Compose compatibility, Compose API diff, JVM naming clash, kotlinx.serialization replacement, ChatViewModel architecture, dependency ordering, AndroidView integration, package rename, Logger usage Co-Authored-By: Claude <noreply@anthropic.com> | 2 个月前 | |
feat(engine): 禁止业务 JS 动态代码执行(eval/Function/构造器链) | 21 天前 | |
feat(engine): 调用来源归因 rootId 卡片标识透传 + 卡片级定时器策略 + 引擎内置事件模块 C++ 入口统一打标(event/timer/api) + rootId 透传(替代 instanceId,引擎不感知业务标识);卡片级定时器权限 setCardTimerPermission;FlexUIEngineModule 引擎级事件通道;配套 ETS 模块 setCallRootId/getCallOrigin 与文档更新。 | 28 天前 | |
docs(design): JS→native 调用管控四件套设计 - js-native-call-permission.md: 需求模型(api全支持/component管控+配置放行/定时器独立管控)与执行场景穷举清单 - js-native-call-origin.md: 宏任务边界归因模型——单 scope 下的来源管控主方案(闭包打标+callId反查, 每调用O(1)) - js-native-call-entry-guard.md: 执行入口禁止——jsModuleList 受保护化(闭包注册表+全局抛错代理) - js-native-call-timer-policy.md: 定时器独立管控——注册经 ETS 决策(TimerPolicyModule), rAF 默认豁免 Co-Authored-By: Claude <noreply@anthropic.com> | 1 个月前 | |
feat(engine): named slots for custom components (collapsible-view demo) JS backend: implement setSlot/slotName, aggregate __slotMap on slot hosts, push via FlexUIBridge.updateNode (ComponentAdapter.slots drives it). C++: CustomTsView multi-slot containers, parse __slotMap, route children per slot name, whitelist __slotMap in UpdateCustomTsProps. ArkTS: pre-create NodeContent per slotDeclarations, inject slotContents, FRCollapsibleView struct renders ContentSlot per slot, onSlotMapParsed drives hasButtonSlot observable for re-render. Adds collapsibleview-demo card, Jest slot.test.ts, design docs, and build/check-env tooling updates. | 1 个月前 | |
fix(flexui): 定时器管控失败语义——JS 异常统一捕获上报不外抛,新增框架异常处理规范 - func_arr.ts safeCallback / Event.js __loadInstance__ 移除 rethrow: 所有 JS 异常在框架兜底处捕获并上报(dispatchError → 日志 + globalOptions.onError), 受控失败(定时器权限拒绝)就地上报(cardLoadFailed → onLoadCompleted(-205)),不外抛 - CLAUDE.md 新增「JS 框架代码异常处理规范(强制)」永久规则 - 同步 buildcore 产物(native_source_code_jsh/v8.cc)与设计/学习文档 | 28 天前 | |
feat(engine): 禁止业务 JS 动态代码执行(eval/Function/构造器链) | 21 天前 | |
提交js管控能力 | 1 个月前 | |
docs(flexui): 屏幕事件整体方案设计(docs/design/screen-events.md) 按先整体后细节重写:核心思路=复用既有容器尺寸推送链落地端(setWindowSize)做「变化即广播」出口,前端 screen_events 以页面根注册表按 rootId 翻译成 Page.onResize + 组件 pageLifetimes.resize;含三层职责、一次 resize 完整旅程、设计推理、多 scope 隔离边界、验证结果与扩展方向。flexui-frontend.md §3.10 补充互链。 | 8 天前 | |
docs: add module design docs, update README and CLAUDE.md - Add detailed design docs for all 7 modules in docs/design/ - flexui-core: component system, backend, template engine, data binding - flexui-ascf: ASCF adapter, built-in components, build integration - flexui-shadow-sync: cross-backend shadow tree sync, message channel - toolkit: Rust→WASM compilers, webpack plugin, LSP analyzer, devtools - flexui-engine: native rendering engine (OHOS/Android), DOM, driver - ascf-agent: on-device AI agent, AgentRuntime, tools, FlexView cards - skills: AI-assisted development skills system - Update README: full project/module introduction, remove License section - Update CLAUDE.md: architecture concepts, module dev guidance, subsystem index - Unify ASCF naming: wxa→ascf, WXML→HXML, WXSS→CSS, WXS→HJS, wx:→has: - Replace AscfLite→FlexView in all docs - Remove specific package name references Co-Authored-By: Claude <noreply@anthropic.com> | 2 个月前 | |
docs: add module design docs, update README and CLAUDE.md - Add detailed design docs for all 7 modules in docs/design/ - flexui-core: component system, backend, template engine, data binding - flexui-ascf: ASCF adapter, built-in components, build integration - flexui-shadow-sync: cross-backend shadow tree sync, message channel - toolkit: Rust→WASM compilers, webpack plugin, LSP analyzer, devtools - flexui-engine: native rendering engine (OHOS/Android), DOM, driver - ascf-agent: on-device AI agent, AgentRuntime, tools, FlexView cards - skills: AI-assisted development skills system - Update README: full project/module introduction, remove License section - Update CLAUDE.md: architecture concepts, module dev guidance, subsystem index - Unify ASCF naming: wxa→ascf, WXML→HXML, WXSS→CSS, WXS→HJS, wx:→has: - Replace AscfLite→FlexView in all docs - Remove specific package name references Co-Authored-By: Claude <noreply@anthropic.com> | 2 个月前 |
| 文件 | 最后提交记录 | 最后更新时间 |
|---|---|---|
| 2 个月前 | ||
| 19 天前 | ||
| 2 个月前 | ||
| 1 个月前 | ||
| 21 天前 | ||
| 2 个月前 | ||
| 23 天前 | ||
| 2 天前 | ||
| 1 个月前 | ||
| 3 天前 | ||
| 1 个月前 | ||
| 1 个月前 | ||
| 2 个月前 | ||
| 8 天前 | ||
| 1 个月前 | ||
| 1 个月前 | ||
| 2 个月前 | ||
| 2 个月前 | ||
| 21 天前 | ||
| 28 天前 | ||
| 1 个月前 | ||
| 1 个月前 | ||
| 28 天前 | ||
| 21 天前 | ||
| 1 个月前 | ||
| 8 天前 | ||
| 2 个月前 | ||
| 2 个月前 |