Merged
KoalaHaus 2: the kh2 build engine, widgets and CLI #170
pavelmironchikAdd on 24 days ago
KoalaHaus 2: the kh2 build engine, widgets and CLI #170
Merged
pavelmironchikAdd on 24 days ago
Merged frompm/kh2-engineintomaster
pavelmironchik
pavelmironchikCollaborators
24 days ago

Three packages in the koala-haus workspace, the second generation of KoalaHaus:

  • @koalaui/haus2-engine (koala-haus/haus2/engine): the build graph engine (ReactiveBuildTree / BuildOwner), the file API, the daemon (sqlite build records, directory-tree watcher, reporter, rebuild check), goals, aliases, pools, barriers, groups, build parameters
  • @koalaui/haus2-widgets (koala-haus/haus2/widgets): widgets over external tools: Exec, Run, NpmInstall/NpmScript, TSC, the ninja interpreter, Meson, the arkts/arkui3 CLI wrappers
  • @koalaui/haus2 (koala-haus/haus2/loader): the kh2 CLI: compiles the kh.build.ts roots (kh.yml) with the memo transform and runs them in an executor process with live reload; re-exports the engine and the widgets

Also:

  • documentation in <package>/docs/*.md, merged by the loader compile and indexed by kh2 help; README.md and CLAUDE.md in every package
  • the root package.json gets the kh2 bin and the setup:kh2 / kh2 scripts (setup is unchanged)
  • CI: build:haus2 compiles the packages, test:haus2 runs the three test suites in parallel through kh2 (koala-haus/haus2/kh.build.ts)

The kh.build.ts scripts building arkui3 itself come in a separate PR.

Verification

  • npm run setup:kh2 on master
  • node koala-haus/haus2/loader/bin/kh2.js -C koala-haus/haus2: 4/4 (engine, widgets and loader tests)
  • kh2 help

🤖 Generated with Claude Code

likedislike
Pull Request has been successfully merged by pavelmironchik.
(Thank you for pavelmironchik's contribution.)
pavelmironchik
pavelmironchikCollaborators
24 days ago Comments:
pavelmironchik
pavelmironchikCollaborators
23 days ago Comments:
pavelmironchikpavelmironchikCollaborators
23 days ago Merged pull request