| 文件 | 最后提交记录 | 最后更新时间 |
|---|---|---|
Versus component Versus component | 12 天前 | |
Remove @koalaui/common and @koalaui/compat from the workspace Removes @koalaui/common and @koalaui/compat from the workspace. Nothing in the tree imports either package, so they were pure weight — and every manifest carried a hand-maintained pin for them. - 58 arkts.yml manifests lose both dependencies entries; the root arkts.yml loses both workspaceOverrides; arktsx/sdk/sdk.yml loses both from packages.include. - Build configs follow: arktsx/graphics/smart-arkts.config.mjs and arktsx/tools/generator/demo/smart-arkts.config.mjs drop their externals, arktsx/sqlite/arktsconfig.json drops the two paths entries, and arktsx/http-client/package.json drops the two .abc files from run:demo:debug's --boot-panda-files. - The documentation stops recommending them: the CLAUDE.md module template, docs/arkui3-skill.md, PORT_COMPONENTS.md (numeric types are built into ArkTS, so rule 33 now teaches .toFloat()/.toInt() instead of the import), curl's IMPLEMENTATION.md sample manifest, and the vault notes Build_System.md, WebView_Module_Design.md, Haptics.md and ArkUI3_SDK_and_CLI.md. - arktsx/tools/api-index/test/modules.test.ts moves its versioned scoped dependency to @koalaui/runtime, so the declaredDeps fixture keeps its coverage of scoped-name parsing. @koalaui/harness and @koalaui/runtime stay — the workspace still uses them. | 1 天前 | |
Bump Panda to 1.22.0 This PR bumps the Panda SDK from 1.20.0 to 1.22.0, skipping 1.21.0, and fixes the bump script's carrier probe. ## What changed Six pins move, all written by scripts/bump-panda-sdk.mjs: @panda/sdk, @panda/sdk-ohos-arm64 and @panda/sdk-android-arm64 in optionalDependencies, and the matching overrides (@panda/sdk, @panda/sdk-darwin through @panda/sdk-mac-arm64, @koalaui/libarkts through @panda/sdk). What the SDK picked up on the way: - 1.22.0 adds a seventh platform, ohos-x86_64, with its own carrier package. - 1.22.0 takes the es2panda --version banner date from SOURCE_DATE_EPOCH, so a rebuild of one pin prints one date. - 1.21.0 ships pandap, the profiler trace reader, in the toolchain on linux, mac and windows. The probe fix: npm view <pkg>@<pin> version --json answers with a single-element array once the packument holds more than one match, and the probe read that as "carrier missing", warning on every bump. ## Verification | Check | Result | | :-- | :-- | | npm install | every pin at 1.22.0, the @koalaui/libarkts alias included | | node scripts/preflight-panda.mjs | PASS: layout, driver alias, host shim, ETS compile, ark_aot arm64 | | npx kh2 | built [959/959] | The same worktree on mac-arm64 builds [884/884] with npx kh2; its preflight needs #258, which makes the platform checks mac- and windows-aware. On windows-x64 the SDK installs and es2panda.exe compiles ETS from the bag, but npx kh2 stops at spawn npm ENOENT; a control worktree on master with the old SDK fails identically, so that is a kh2/win32 gap, not this bump. | 6 天前 | |
!1466 Skills and small improvments Skills and small improvments | 1 个月前 | |
Various framework improvements, fix glass, add cliping paths Various framework improvements, fix glass, add cliping paths | 15 天前 | |
sdk: headless test template and dependency-wide asset collection sdk: headless test template and dependency-wide asset collection App template: - ship test/arithmetic.test.ets and test/ui-smoke.test.ets so a fresh arkui3 test runs headless suites out of the box (primitive case plus a headless UI counter: semantics assertions and a click through the dump's bounds, no goldens) - arkui3 test regenerates lib/res, creates the install graph (apm install) when missing, pins ARKUI3_SDK_ROOT and exports ARKUI3_ASSETS_DIR Assets: - collect the declared assets: entries of the project AND its installed dependency closure into the app bundle (test bundle, assets/resources/ for linux/macos/android, assets.zip for ohos); dependencies first, the project last so it wins on a conflicting path; resources-manifest.txt is written from the staged tree - generateArktsResources() is a no-op without an assets/ source, so resource-less apps work for run/build/test alike; the platform bundle pipeline builds before collecting so the install graph exists on first build - desktop runner points ARKUI3_ASSETS_DIR at bundle/assets/resources, the container the declared assets actually land in - exclude arktsx.scene (multi-MB glTF models) and arktsx.a2ui.billboard (hard depends on scene) from the arkui3 alias; both stay shipped and are opted into explicitly with arktsx.scene: sdk - check-hap-assets.mjs verifies the HAP zip against the project+dependency declarations Verified locally on an assembled SDK: fresh template project arkui3 test 3/3; path-dependency library with declared assets collected and loaded at runtime; linux desktop build/run loads $r.raw through the new asset root; arktsx/xml tests 35/35. | 1 个月前 | |
Move arkui3 to panda SDK 1.15.0 This PR moves arkui3 to the published panda SDK **1.15.0** metapackage from the koala registry and retires the dev panda bundle inside @idlizer/ui2abc. ## What changes **Toolchain pin and install** - package.json pins @panda/sdk 1.15.0 — the metapackage: one install pulls the host bag, its postinstall links the layout and the legacy host-tools names. The ohos and android carriers pin at 1.15.0 separately; the koala toolchain stays 1.5.0-dev.78036-10071. - Three overrides keep one release line: @panda/sdk to the release, @panda/sdk-darwin routed to npm:@panda/sdk-mac-arm64@1.15.0 (the name the fossil koala packages request), and @koalaui/libarkts aliased to npm:@panda/sdk@1.15.0 — the compiler driver name now serves from the metapackage, no fossil driver package installs. - allowScripts approves @panda/sdk — without the approval its postinstall silently skips and no links land. - scripts/bump-panda-sdk.mjs moves the pins and all three overrides in lockstep, and skips carriers the target release does not carry yet. **Consumer shims (until the koala CLI migrates)** - scripts/panda-driver-alias.cjs stands down on a metapackage install (the alias override already carries the driver name); on a plain bag install it replaces the physical driver directory with a symlink to @panda/sdk, and self-links the host-tools name smart-arkts computes per host (linux_host_tools, macos_arm64_host_tools, …) — junctions carry absolute targets on windows. - scripts/macos-postinstall.cjs maps the plain @panda/sdk name onto the mac bag on a pre-metapackage install; under the metapackage it stands down. - npm run test:panda (scripts/check-panda-sdk.cjs) and scripts/preflight-panda.mjs verify the install: pin vs installed, the flat bag staged, the addon dlopens, es2panda compiles, ark_aot cross-compiles arm64. **macOS host** - arktsx native modules build as .dylib: audio, camera, compress, curl, cv, device, graphics, haptics, libc, sqlite, video, video-codec-gav1, webview. - arktsx/demo builds and runs on an arm64 Mac. **OHOS and Android from their own carriers** - @panda/sdk-ohos-arm64 and @panda/sdk-android-arm64 carry the target bits in flat bags (lib/ at the package root); arktsx/sdk/sdk.mjs, copyExternal.mjs and bundle_libs.mjs read the flat layout with the nested one as a fallback. **Compiler fixes** required by the new checker - exact override signatures in a2ui (CaptureResolver) - StrokeSpec instead of Stroke in framework styles - as Object casts in hash calls - direct imports instead of re-exports in video, llm, io, preso, a2ui-browser - export the re-exported name in deal-ui (registerBuiltinComponents) — the checker rejects re-exporting a non-exported name **Runtime fixes** - generator and graphics mask both i32 halves when reassembling i64 pointer fields — the old code relied on undefined sign-extension **Packaging** - a2ui-server staging copies the SDK lib set, takes libdwarf.so.1 / libelf.so.1 from the SDK, and ldd-checks every staged binary - honest OSS notices: @panda/sdk is Apache-2.0; libdwarf and libelf are LGPL-2.1 - FontMgr tests tolerate bitmap-only font families ## Verification - npm run test:panda — 6/6 ok against the published bags: version pins match, stdlib staged, the addon loads, es2panda compiles ArkTS to abc, the ohos carrier pins and stages its runtime library. - node scripts/preflight-panda.mjs — PASS: layout complete, the driver alias resolves into the host bag through the metapackage, es2panda compiles from the bag, ark_aot cross-compiles arm64 (EM_AARCH64). - node scripts/bump-panda-sdk.mjs <next> -n plans the pin and every override moving together. ## Notes - Installing the aliased tarball needs allow-remote=true in npm and the @panda scope pointed at the koala registry; CI runners need both (a project .npmrc is gitignored here). | 1 个月前 | |
Bump the panda SDK to 1.18.2, build natively on windows This PR bumps the panda SDK pin from 1.17.0 to 1.18.2 and makes the arkui3 native toolchain build on windows. ## What changed - root package.json: the @panda/sdk, @panda/sdk-ohos-arm64, @panda/sdk-android-arm64 optional pins and the overrides block (@panda/sdk, @panda/sdk-darwin, @koalaui/libarkts) move to 1.18.2 — written by npm run bump:panda; workspaces never re-declare the pin - 1.18.2 delta over 1.18.0: the windows bag now ships ark_link.exe (was missing from the windows target set; linux/mac had it), and the ohos natives link the shared libc++ - arktsx/scripts/cross: a windows host now builds windows-x64 natively with its own mingw (gcc, native machine file) instead of demanding the linux cross triple and a wine wrapper; PATH lookups find executables with the .exe suffix - arktsx/graphics: drop the raw sysroot -I that shadowed clang's stddef.h in the camera package - scripts/check-panda-sdk.cjs: the consumer check picks the addon and the es2panda binary by host platform and stages the bag dlls on the windows loader's PATH ## Compatibility - the bag layout is unchanged from 1.17.0; the platform bags (sdk-linux-x64, sdk-mac-arm64, sdk-windows-x64) are all published at 1.18.2, as are the ohos-arm64 and android-arm64 carriers - the windows ark_aot.exe carries the arm64 backend (verified on 1.18.0 and later) — the 1.17.0 one failed with Backend is not supported: arm64 - skia for the graphics native build: the patched 1.152.1 mingw prebuilt is published to the Nexus (arkui3-sdk/skia-prebuilt/0.152.1/) and is fetched automatically during the windows configuration ## Verification - npm run test:panda on linux: 6/6 ok against 1.18.2 — pin matches the install, stdlib staged, es2panda_linux_x64.node addon loads, es2panda compiles ArkTS to abc, ohos carrier 1.18.2 resolves and stages - npm run test:panda on a windows host: 6/6 ok, exit 0 (ran against the 1.18.0 bag) — es2panda_win32_x64.node dlopens, the packaged es2panda.exe compiles ArkTS through the bag dlls; the 1.18.2 delta is ark_link.exe and re-published carriers, a windows re-run is pending - node scripts/preflight-panda.mjs arktsx/demo on linux: PASS (layout, driver alias, linux_host_tools shim, es2panda from the bag, ark_aot cross-compiles arm64) - generateCrossFile({platform:'windows',arch:'x64'}) on a windows host: kind native with plain gcc binaries; the linux cross file is byte-identical to before | 23 天前 | |
Improve arkui3-sdk build configuration Improve arkui3-sdk build configuration | 19 天前 | |
!1078 migrate to arkts utility | 4 个月前 | |
Improvements in preso Improvements in preso | 16 天前 | |
abc-opt: inliner census, a density pass, and the line-info gate that found an emitter bug Inliner-aware bytecode work on arktsx/abc-opt, plus assorted work that landed on the same branch. **The abc-opt/assembler changes are the reviewed subject; the last section lists what else this branch carries so it can be split if that is preferred.** ## What the abc-opt work does 1. **An inlinability census, as a tool.** scripts/inline-census.mjs <file.abc> reports how much of an artifact the AOT/JIT inliner can accept, against the compiler's real gates (read from static_core: a try table disqualifies a method entirely; ≤12 B of bytecode inlines past the instruction *and* depth limits; ≥200 B never inlines; the caller's own IR graph is capped at 512 instructions; dynamic call sites are never considered). Measured on the linked demo app: 71,034 methods, **70.6 % at ≤12 B**, 10.4 % in the 13–24 B "one peephole from the cliff" band, 3.1 % never inlinable by size, and 292 methods (0.4 %) holding 4.7 % of all instructions because of try tables. 2. **A density pass** (lib/passes/density.ets): deletes adjacent accumulator round trips that provably write what the accumulator already holds (lda.X vR; sta.X vR, sta.X vR; lda.X vR, a repeated lda, a repeated mov), refused when the deleted instruction carries a label or names a try boundary. It **deletes** rather than padding with nops, because the inliner's thresholds are bytecode *bytes*. Ships **off by default**. 3. **A line-info gate for every pass, twice over.** instructionDifference (the driver's read-back, runs on every optimize) now compares each instruction's source line as well as its mnemonic and operands; and one table-driven test requires every rewriting pass to have a line-fidelity fixture that actually triggers it (a pass missing from the table fails by name). The invariant is narrow and load-bearing: *a line the source gave an instruction may never change or vanish*, while an instruction a pass synthesized may acquire the enclosing line. 4. **One real emitter bug fixed** that the gate found on its first run: LineProgram.step() encoded the row following an ADVANCE_PC four lines late (lineInc + 20 where the pc-advanced row's special opcode is lineInc + 16). It needed more than ~16 bytes of pc between two line changes, which no fixture has and real methods do — so it had been wrong since the pc-moving path landed, guard-scaffold included. Verified against the exact failing rows (SHA1Hash._ctor_), and all four passes now read back clean. 5. **A density miscompile fixed** (found by a peer agent, root-caused and fixed here): the mov rule compared only the source register, so mov v1, v3 ; mov v2, v3 matched and the second was deleted. It matched 0 genuine redundancies and 317 false ones (assembler artifact) / 5,501 (chat). Fixed, regression-tested, default flipped to off; verified through a full arkui3 run -p linux --release of chat. 6. **Memory contract for passes**: IrMethod decodes a body on demand and release() hands it back; every per-method loop in the passes and the emitter releases, and five sites that used instructions.length as a presence test (decoding the whole file to skip bodiless methods) now use hasBody(). Measured floors on the 6.5 MB demo release abc: census 128 MiB (was OOM at 192), full default set 256 MiB (was above 384). ## Verification - arktsx/abc-opt: **13/13** ETS suite, **23/23** node contract tests. - Real artifacts: density 1,118 methods rewritten on the demo release abc, lambda-singleton 2,318, all read back with every source line intact; ark_aot compiles rewritten chat (previous SIGSEGV resolved). - Full-path gates run by the peer agent on this branch: arkui3 run -p linux --release on demo and chat — Optimize ✓ → AOT ✓ → launched. ## Known, recorded, not fixed here - ~1.6 KB of slack after rebuilt DebugInfo items on the assembler artifact, and ~28 KB of gaps inherited from the compiler's own layout. Both size-only. - The earlier "dedup loss" reading was wrong and is documented as such: the pre-fix file was *missing 51 items* (11 DebugInfo), so its smaller size was damage, not better sharing. ## Also on this branch (not part of the abc-opt review) arktsx/fetch/*, arktsx/http-client/lib/darwin-macos/*, the .claude/agents + skills/review-criteria additions, Entropy_Reduction_Plan.md, Testing_Guide.md, check_vault.py, package.json, preso-web/template/AGENTS.md, and a chat plugin cmake regen. Several agents commit to this branch, so the history is two squashed WIP commits — **squash on merge**. | 21 天前 | |
Heal the panda driver alias after every npm install This PR fixes the compiler-driver resolution that broke npm run setup mid-flow after the panda-sdk migration. ## Summary node_modules/@koalaui/libarkts — the name smart-arkts resolves its compiler driver by — is carried by no dependency edge, so npm can wipe it on any install, and the postinstall script stood down instead of restoring it. The script now guarantees the alias in every install shape. ## The problem npm run setup runs npm install -d midway: it drops the unrequired override name and leaves an empty node_modules/@koalaui/libarkts husk. With @panda/sdk installed as the metapackage, scripts/panda-driver-alias.cjs exited early instead of restoring the name, and the next arkts build failed with No compiler driver was auto-detected. ## The solution - panda-driver-alias.cjs no longer stands down on metapackage installs: the fixup runs in every case and gates by state — a healthy npm-materialized alias (a @panda/* package under the name) is left untouched, while an empty husk, a dangling link, or the pre-migration @koalaui/libarkts package is replaced with the canonical symlink to ../@panda/sdk - the metapackage probe gates only the host_tools self-link shim, which the metapackage's own postinstall manages - wording sweep across the migration scripts and TOOLCHAIN.md (legacy/leftover phrasing, per the project owner's request) ## Verification - three broken alias states (empty husk, dangling link, old package) heal, a healthy npm alias is left alone, and require.resolve('@koalaui/libarkts') resolves into the bag in every case - npm install -d after a full alias wipe re-materializes the name and postinstall keeps it; node scripts/preflight-panda.mjs passes (bag layout, driver compile, ark_aot arm64 cross) - the full npm run setup on a fresh tree is the reporter's background run | 30 天前 | |
!1466 Skills and small improvments Skills and small improvments | 1 个月前 | |
!1529 Add TileCard grid-based card container * Add TileCard grid-based card container | 1 个月前 | |
!1468 Preso module | 1 个月前 | |
!1328 Updates of FRO docs | 2 个月前 | |
Publish sodium prebuilts under sodium-prebuilt This PR moves the sodium prebuilt Nexus path from sodium-bin to sodium-prebuilt, matching skia, zlib, ncnn, filament and gav1. ## Summary The uploader, the downloader and the license-notice key all used sodium-bin, copied from curl's curl-bin layout. Nothing has been published under the old name yet, so the rename is free. The same branch corrects the third-party inventory, which described every directory as vendored source, and the stale sodium-bin reference in the libsodium README. ## Verification - rg sodium-bin over the repository: no hits. - node --check on package.mjs, get_prebuilt.mjs and oss-notices.mjs passes. - The five built targets are already published under sodium-prebuilt/0.0.1/ and answer HTTP 200. | 8 天前 | |
Build runnable bundles with arkts bundle; bump toolchain; remove pack.mjs ## Summary - **Toolchain bump** to 1.5.0-dev.78036-10093 (npm run bump:toolchain). The new @koalaui/arkts adds arkts bundle. - **Bundles come from arkts bundle.** Several tools assembled a runnable bundle out of undocumented .arkts_tool/ internals: arkts_build_<mode>/run/<id>/, per-package *_common.abc files, a stub PANDA_SDK_PATH to capture ark's argv, arkts run -v parsing, or whole .arkts_tool/ copies so that arkts run --no-build works in a deployment. They now use the documented arkts bundle output: run.sh + one linked bin/<app>.abc + lib/*.so. - **a2ui-server:** build-run-bundle.sh wraps arkts bundle --tag headless --arch …. The Rust and Node servers launch the bundle's run.sh. Docker staging, SFX and CI use the bundle. - **aesthetics:** the cascade runs EST_EVAL_BUNDLE / EST_CONVERGENCE_BUNDLE (dev mode keeps arkts run). pack-sfx.sh and Docker staging ship two debug bundles plus @panda/sdk, and no longer ship node, the arkts CLI or .arkts_tool copies. pack-sfx.sh also works on a fresh checkout now: it creates dist/, copies @panda/sdk dereferenced (the facade is relative symlinks), and ships only the model sets the server reads (SFX ~514 MB instead of ~897 MB). - **abc-opt bench.sh:** builds one bundle per sample, optimizes a copy, runs AOT through ARK_OPTS. - **deal-ui wire-host.sh:** the guest boots the bundle of the guest target. - **assembler tests:** read the canonical linked artifact, a path documented in arkts help bundle. - **Removed:** scripts/pack.mjs (obsolete), arkui3 pack, the pack:chat* / pack:demo* scripts, and the SDK's copy of the packer and the SFX launcher. Docs now point to arkts bundle. ## Behaviour changes to review - The a2ui-server renderer bundle is **release** by default (stripped + abc-opt); it was debug before. It starts and loads its modules locally. - arkts bundle puts every native module declared in the workspace into lib/. The renderer bundle grows from 4 .so (~28 MB) to 15 (67 MB). - The aesthetics bundles are built --debug: release stripping breaks eval (NullPointerError in waitForCompletion). This looks like an arkts stripping bug. - bench.sh now optimizes the whole linked closure, so the measured numbers changed. - The wire-host.sh guest now boots its whole target closure instead of a hand-listed classpath. ## Verification (local) - a2ui-server cargo: 8/8. aesthetics cargo: 20/20. SDK CLI tsc passes. assembler: 97/97. libc: 43/43. chat builds. - The renderer starts from the bundle that build-run-bundle.sh produces. - The aesthetics eval and convergence bundles run end to end. - bench.sh and the wire-host.sh player path run. - The x86 aesthetics SFX was built and run in a clean environment (env -i): /healthz, /v1/score/image (L2 5/5 vendors) and /v1/aesthetics/convergence work. - Not run locally: the Docker image build, arm64 bundles. ## CI The last run (on the pre-merge base) failed only on causes outside this PR: - the npm mirror did not yet serve rollup@4.64.6 (published that morning), which broke every job that installs the resource-plugin or koala-haus; - test:arkui3-sdk:solveme:ohos fails since 223bf5694 moved the SDK's ohos-plugin to plugins/ohos-plugin, while solveme ships an older platforms/ohos/arkts.js. 🤖 Generated with [Claude Code](https://claude.com/claude-code) | 19 天前 | |
sdk: bump panda to 1.17.0 and read the root libarkts layout This PR bumps the pinned Panda SDK to 1.17.0 and reads the root libarkts bag layout. ## Summary 1.17.0 moves the driver inside the npm bag from lib/libarkts/ to a root libarkts/, next to bin/, lib/ and ets/ — the flat shape the metapackage's main (libarkts/libarkts.js) already pointed at. This restores the layout arkui3 read before the 1.16.0 component nesting. ## Changes - package.json: the six pins move 1.16.0 -> 1.17.0 (optionalDependencies, overrides, the @koalaui/libarkts alias). - scripts/panda-driver-alias.cjs: the driver both sides must resolve to is libarkts/es2panda.js, not lib/libarkts/es2panda.js. - scripts/preflight-panda.mjs: the layout probe and the alias check read libarkts/es2panda.js. ## Verification Against the published 1.17.0 (koala-Nexus, tarball sha512 matched), in a real arkui3 worktree (npm install, 491 packages): - npm run test:panda: passed — version/pin, stdlib, native addon, es2panda compile, ohos carrier. - node scripts/preflight-panda.mjs .: PASS (9/9) — flat layout, driver alias, es2panda, ark_aot cross-compiles arm64. - Installed bag carries libarkts/ at the root and no lib/; the addon loads and libarkts/libarkts.js resolves (main). - Full pipeline es2panda -> ark_link -> ark runs the produced .abc (hello, exit 0). - A real package compiles with the 1.17.0 driver (arktsx/utils): build succeeded. - node --test scripts/panda-driver-alias.test.mjs: 9/9 pass. ## Notes - Reader-only tools need no change: cub's discoverEntries already probes libarkts/ (it is the second candidate after lib/libarkts/), and arkts/smart-arkts/fast-arktsc read entries.libarktsJs, which is layout-agnostic. | 25 天前 | |
Heal the panda driver alias after every npm install This PR fixes the compiler-driver resolution that broke npm run setup mid-flow after the panda-sdk migration. ## Summary node_modules/@koalaui/libarkts — the name smart-arkts resolves its compiler driver by — is carried by no dependency edge, so npm can wipe it on any install, and the postinstall script stood down instead of restoring it. The script now guarantees the alias in every install shape. ## The problem npm run setup runs npm install -d midway: it drops the unrequired override name and leaves an empty node_modules/@koalaui/libarkts husk. With @panda/sdk installed as the metapackage, scripts/panda-driver-alias.cjs exited early instead of restoring the name, and the next arkts build failed with No compiler driver was auto-detected. ## The solution - panda-driver-alias.cjs no longer stands down on metapackage installs: the fixup runs in every case and gates by state — a healthy npm-materialized alias (a @panda/* package under the name) is left untouched, while an empty husk, a dangling link, or the pre-migration @koalaui/libarkts package is replaced with the canonical symlink to ../@panda/sdk - the metapackage probe gates only the host_tools self-link shim, which the metapackage's own postinstall manages - wording sweep across the migration scripts and TOOLCHAIN.md (legacy/leftover phrasing, per the project owner's request) ## Verification - three broken alias states (empty husk, dangling link, old package) heal, a healthy npm alias is left alone, and require.resolve('@koalaui/libarkts') resolves into the bag in every case - npm install -d after a full alias wipe re-materializes the name and postinstall keeps it; node scripts/preflight-panda.mjs passes (bag layout, driver compile, ark_aot arm64 cross) - the full npm run setup on a fresh tree is the reporter's background run | 30 天前 | |
Heal the panda driver alias after every npm install This PR fixes the compiler-driver resolution that broke npm run setup mid-flow after the panda-sdk migration. ## Summary node_modules/@koalaui/libarkts — the name smart-arkts resolves its compiler driver by — is carried by no dependency edge, so npm can wipe it on any install, and the postinstall script stood down instead of restoring it. The script now guarantees the alias in every install shape. ## The problem npm run setup runs npm install -d midway: it drops the unrequired override name and leaves an empty node_modules/@koalaui/libarkts husk. With @panda/sdk installed as the metapackage, scripts/panda-driver-alias.cjs exited early instead of restoring the name, and the next arkts build failed with No compiler driver was auto-detected. ## The solution - panda-driver-alias.cjs no longer stands down on metapackage installs: the fixup runs in every case and gates by state — a healthy npm-materialized alias (a @panda/* package under the name) is left untouched, while an empty husk, a dangling link, or the pre-migration @koalaui/libarkts package is replaced with the canonical symlink to ../@panda/sdk - the metapackage probe gates only the host_tools self-link shim, which the metapackage's own postinstall manages - wording sweep across the migration scripts and TOOLCHAIN.md (legacy/leftover phrasing, per the project owner's request) ## Verification - three broken alias states (empty husk, dangling link, old package) heal, a healthy npm alias is left alone, and require.resolve('@koalaui/libarkts') resolves into the bag in every case - npm install -d after a full alias wipe re-materializes the name and postinstall keeps it; node scripts/preflight-panda.mjs passes (bag layout, driver compile, ark_aot arm64 cross) - the full npm run setup on a fresh tree is the reporter's background run | 30 天前 | |
Deal compiler Deal compiler | 1 个月前 | |
Add arkui3-toolchain to prebuilts Signed-off-by: Korobeinikov Evgeny <korobeinikov.evgeny@huawei.com> | 3 天前 | |
Add arkui3-toolchain to prebuilts Signed-off-by: Korobeinikov Evgeny <korobeinikov.evgeny@huawei.com> | 3 天前 | |
Add arkui3-toolchain to prebuilts Signed-off-by: Korobeinikov Evgeny <korobeinikov.evgeny@huawei.com> | 3 天前 | |
Add arkui3-toolchain to prebuilts Signed-off-by: Korobeinikov Evgeny <korobeinikov.evgeny@huawei.com> | 3 天前 | |
setup: one registry source, a host preflight, and the libc++ gap ## Problem Standing up arkui3 on a fresh Ubuntu host cost three failed build cycles, each for a reason the repository did not tell you: | Symptom | Cause | |---|---| | ETARGET: No matching version found for @idlizer/core@2.2.2 | npm was never told where the internal scopes live. The list existed only in gitlab/setup.yml, which no developer reads, and it was stale. | | No clang on PATH, then fatal error: 'cassert' file not found | The compiler and its libc++ headers are separate packages, documented nowhere; the failure names no package. | | package config … not found. Run "apm install" first | host:prepare ran arkts tool hooks before anything wrote the package graph. | The internal registry is a public internet service — no office network is required. The Chinese mirror appears only as an optional speed-up. ## What changed - **One registry list** in scripts/registries.mjs, as data only: scope → registry, the package each scope's pinned version comes from, and the optional mirror. CI applies it (gitlab/setup.yml's .npm block is one --apply --ci-default call), developers print the block (npm run registries), and --ci shows the exact lines for diffing. There is no separate manifest guard: a manifest that starts using a new scope fails install:root on the same PR with an ETARGET naming the package. - **npm run preflight:host** — checks the machine, not build state: Node, clang, whether that clang can compile against libc++, fontconfig, and whether the **pinned version** of one package from each internal scope resolves through npm (npm view <pkg>@<version> version, from the repo root, so user/project .npmrc, proxies and auth apply). E404, E401/E403 and the network codes get distinct hints. It needs the network for the scope check. - **libc++ probe in the native build** — a syntax-only compile in arktsx/scripts/cross/executables.mjs, used by platforms/linux.mjs, so the failure names libc++-dev libc++abi-dev instead of 'cassert' file not found. - **host:prepare sequencing** — apm:install runs before compile:native and host:hooks. - **Docs** — Setup Guide (prerequisites, registry, clone settings, kh2-era setup), TOOLCHAIN (the two preflights), CI/CD, Build System, macOS Support, A2UI Server, README, CLAUDE.md. ## Verification - preflight:host passes on macOS: all three pinned versions resolve. With npm_config_userconfig=/dev/null (an unconfigured machine) all three fail with E404 and the registry hint. - The pinned-version probe is deliberate: @idlizer/core has public dist-tags, but 2.2.2 is 404 on npmjs, so a dist-tags probe would pass on exactly the machine where the install fails. - node scripts/registries.mjs --ci reproduces the old eight lines exactly; --print emits the same five scopes. - docs/second-brain/check_vault.py: 0 broken, 0 ghosts, 0 spaced, 0 root. - Branch is rebased onto master (kh2 setup, run bundles, no .packages) and has merged the master commits that landed since (Panda 1.20.0, Windows app bundles); git merge-tree against origin/master is clean. - Not run here: npm install, test:panda, builds — no node_modules in the worktree; CI covers them. ## Review notes This revision applies the review's simplification: registries.mjs drops the manifest analysis and is configuration only; the preflight drops the apm/package-config checks and the separate --network step, and merges the registry checks into one resolution probe. CI keeps delegating gitlab/setup.yml's .npm block to --apply. | 10 天前 | |
preflight: the header says where ark_aot ships Follow-up to #258: its header still listed bin/ark_aot as part of the layout unconditionally, while the check now asks for it only where the bag ships it. The comment now says where it ships (the elf platforms and windows, not a mac bag) and that the executables take .exe on windows. Verified with node scripts/preflight-panda.mjs on linux-x86_64 against panda 1.22.0: PASS. | 6 天前 | |
Improve arkui3-sdk build configuration Improve arkui3-sdk build configuration | 19 天前 | |
Migrate tooling from Gitee to GitCode The repository moved to gitcode.com/rri_opensource/arkui3; the tooling had not. This ports it. **Verified live against api.gitcode.com, not read from docs.** GitCode's API v5 is deliberately Gitee-v5-compatible, so the subcommand set survives — but four things do not, and a find-and-replace would have broken them *silently*: 1. **merged_at is "", not null, on an unmerged PR.** jq reads an empty string as truthy, so the old if .merged_at reported closed-but-unmerged pull requests as **merged**. 2. **The .diff web URL now serves an HTML page.** The diff moves to GET /pulls/<n>/diff, which unlike the old public URL requires the token — and is rate-limited to roughly one download per 10s per PR. 3. **raw.gitcode.com 403s on shell scripts anonymously** (暂不支持预览) while serving Markdown fine, breaking the curl | bash installers. They use the API raw route instead. 4. **CI is keyed by pull request, not branch.** The runner builds pulls/$GITCODE_PR, so the CI scripts take a PR number or resolve a branch to one, and match GITCODE_PR by parsing the variables JSON rather than grepping a non-unique value. ## What changes - scripts/gitee.sh → scripts/gitcode.sh (git mv), reading $GITCODE_ACCESS_TOKEN with ~/gitcode-review.sh as the fallback. An existing ~/gitee-review.sh is deliberately not read. - code-review skill: references/gitee.md → gitcode.md; modes.md, SKILL.md, comment-format.md follow. - nexus-ci, publish-sdk skills and .claude/commands/* updated; the preso-deck skill is untouched (separate workstream). - CI scripts re-keyed; publish-sdk.sh's bridge job name corrected to the real run gitcode pipeline. - Repo-wide docs and metadata (README, CLAUDE.md, second-brain, Cargo/gradle publication URLs), and origin retargeted. ## Notes for the reviewer - **Approving stays outside the review surface.** scripts/gitcode.sh still has no approve subcommand — that separation is unchanged and deliberate. - **A pre-existing failure is now surfaced rather than masked:** the OpenLab /pipelines/<id>/variables endpoint returns **403** for accounts without the required role. The CI scripts had been reporting that as "no pipeline found"; they now say so and point at --pid. - **Two findings from the local self-review are not fixed here** (kept out to keep this diff the reviewed one): the token is expanded unguarded under bash -x in the three CI scripts' gitcode_call, and those three carry a duplicated GitCode client that drops the ~/gitcode-review.sh fallback. Both want a follow-up. | 1 个月前 | |
!1466 Skills and small improvments Skills and small improvments | 1 个月前 | |
setup: one registry source, a host preflight, and the libc++ gap ## Problem Standing up arkui3 on a fresh Ubuntu host cost three failed build cycles, each for a reason the repository did not tell you: | Symptom | Cause | |---|---| | ETARGET: No matching version found for @idlizer/core@2.2.2 | npm was never told where the internal scopes live. The list existed only in gitlab/setup.yml, which no developer reads, and it was stale. | | No clang on PATH, then fatal error: 'cassert' file not found | The compiler and its libc++ headers are separate packages, documented nowhere; the failure names no package. | | package config … not found. Run "apm install" first | host:prepare ran arkts tool hooks before anything wrote the package graph. | The internal registry is a public internet service — no office network is required. The Chinese mirror appears only as an optional speed-up. ## What changed - **One registry list** in scripts/registries.mjs, as data only: scope → registry, the package each scope's pinned version comes from, and the optional mirror. CI applies it (gitlab/setup.yml's .npm block is one --apply --ci-default call), developers print the block (npm run registries), and --ci shows the exact lines for diffing. There is no separate manifest guard: a manifest that starts using a new scope fails install:root on the same PR with an ETARGET naming the package. - **npm run preflight:host** — checks the machine, not build state: Node, clang, whether that clang can compile against libc++, fontconfig, and whether the **pinned version** of one package from each internal scope resolves through npm (npm view <pkg>@<version> version, from the repo root, so user/project .npmrc, proxies and auth apply). E404, E401/E403 and the network codes get distinct hints. It needs the network for the scope check. - **libc++ probe in the native build** — a syntax-only compile in arktsx/scripts/cross/executables.mjs, used by platforms/linux.mjs, so the failure names libc++-dev libc++abi-dev instead of 'cassert' file not found. - **host:prepare sequencing** — apm:install runs before compile:native and host:hooks. - **Docs** — Setup Guide (prerequisites, registry, clone settings, kh2-era setup), TOOLCHAIN (the two preflights), CI/CD, Build System, macOS Support, A2UI Server, README, CLAUDE.md. ## Verification - preflight:host passes on macOS: all three pinned versions resolve. With npm_config_userconfig=/dev/null (an unconfigured machine) all three fail with E404 and the registry hint. - The pinned-version probe is deliberate: @idlizer/core has public dist-tags, but 2.2.2 is 404 on npmjs, so a dist-tags probe would pass on exactly the machine where the install fails. - node scripts/registries.mjs --ci reproduces the old eight lines exactly; --print emits the same five scopes. - docs/second-brain/check_vault.py: 0 broken, 0 ghosts, 0 spaced, 0 root. - Branch is rebased onto master (kh2 setup, run bundles, no .packages) and has merged the master commits that landed since (Panda 1.20.0, Windows app bundles); git merge-tree against origin/master is clean. - Not run here: npm install, test:panda, builds — no node_modules in the worktree; CI covers them. ## Review notes This revision applies the review's simplification: registries.mjs drops the manifest analysis and is configuration only; the preflight drops the apm/package-config checks and the separate --network step, and merges the registry checks into one resolution probe. CI keeps delegating gitlab/setup.yml's .npm block to --apply. | 10 天前 | |
!1125 Separation of Smarty and Grasp | 3 个月前 | |
!1066 A2UI schemas versionong | 4 个月前 | |
!1125 Separation of Smarty and Grasp | 3 个月前 | |
!1534 aesthetics: SPbU parity models (L2 ensemble + YOLOv8) + evaluator proxy/SFX + unified a2ui console * test(a2ui-server): dump the a2ui-server log tail on ui_regression failure * ui-measure: re-bless us-light baseline for the merged metrics semantics * docs + ci: vault notes, ui_regression poll, aesthetics Rust CI * aesthetics: Rust evaluator proxy + multi-arch SFX service * aesthetics: deep assessment — unified judgement with real a2ui fixes * aesthetics: SPbU parity models — L2 guideline ensemble + YOLOv8 UI detector * cv: InferenceSession.setFp16 — opt out of ncnn CPU fp16 defaults | 1 个月前 | |
Some scroll optimizations Some scroll optimizations | 3 天前 | |
Migrate tooling from Gitee to GitCode The repository moved to gitcode.com/rri_opensource/arkui3; the tooling had not. This ports it. **Verified live against api.gitcode.com, not read from docs.** GitCode's API v5 is deliberately Gitee-v5-compatible, so the subcommand set survives — but four things do not, and a find-and-replace would have broken them *silently*: 1. **merged_at is "", not null, on an unmerged PR.** jq reads an empty string as truthy, so the old if .merged_at reported closed-but-unmerged pull requests as **merged**. 2. **The .diff web URL now serves an HTML page.** The diff moves to GET /pulls/<n>/diff, which unlike the old public URL requires the token — and is rate-limited to roughly one download per 10s per PR. 3. **raw.gitcode.com 403s on shell scripts anonymously** (暂不支持预览) while serving Markdown fine, breaking the curl | bash installers. They use the API raw route instead. 4. **CI is keyed by pull request, not branch.** The runner builds pulls/$GITCODE_PR, so the CI scripts take a PR number or resolve a branch to one, and match GITCODE_PR by parsing the variables JSON rather than grepping a non-unique value. ## What changes - scripts/gitee.sh → scripts/gitcode.sh (git mv), reading $GITCODE_ACCESS_TOKEN with ~/gitcode-review.sh as the fallback. An existing ~/gitee-review.sh is deliberately not read. - code-review skill: references/gitee.md → gitcode.md; modes.md, SKILL.md, comment-format.md follow. - nexus-ci, publish-sdk skills and .claude/commands/* updated; the preso-deck skill is untouched (separate workstream). - CI scripts re-keyed; publish-sdk.sh's bridge job name corrected to the real run gitcode pipeline. - Repo-wide docs and metadata (README, CLAUDE.md, second-brain, Cargo/gradle publication URLs), and origin retargeted. ## Notes for the reviewer - **Approving stays outside the review surface.** scripts/gitcode.sh still has no approve subcommand — that separation is unchanged and deliberate. - **A pre-existing failure is now surfaced rather than masked:** the OpenLab /pipelines/<id>/variables endpoint returns **403** for accounts without the required role. The CI scripts had been reporting that as "no pipeline found"; they now say so and point at --pid. - **Two findings from the local self-review are not fixed here** (kept out to keep this diff the reviewed one): the token is expanded unguarded under bash -x in the three CI scripts' gitcode_call, and those three carry a duplicated GitCode client that drops the ~/gitcode-review.sh fallback. Both want a follow-up. | 1 个月前 |
| 文件 | 最后提交记录 | 最后更新时间 |
|---|---|---|
| 12 天前 | ||
| 1 天前 | ||
| 6 天前 | ||
| 1 个月前 | ||
| 15 天前 | ||
| 1 个月前 | ||
| 1 个月前 | ||
| 23 天前 | ||
| 19 天前 | ||
| 4 个月前 | ||
| 16 天前 | ||
| 21 天前 | ||
| 30 天前 | ||
| 1 个月前 | ||
| 1 个月前 | ||
| 1 个月前 | ||
| 2 个月前 | ||
| 8 天前 | ||
| 19 天前 | ||
| 25 天前 | ||
| 30 天前 | ||
| 30 天前 | ||
| 1 个月前 | ||
| 3 天前 | ||
| 3 天前 | ||
| 3 天前 | ||
| 3 天前 | ||
| 10 天前 | ||
| 6 天前 | ||
| 19 天前 | ||
| 1 个月前 | ||
| 1 个月前 | ||
| 10 天前 | ||
| 3 个月前 | ||
| 4 个月前 | ||
| 3 个月前 | ||
| 1 个月前 | ||
| 3 天前 | ||
| 1 个月前 |