Add OpenClaw to the fast ring, following the npm registry - #307
Conversation
|
Reviewed at 14eaa08 by Fable 5.1, with an independent second opinion from Codex at xhigh reasoning. Verdict: ready to merge, with one low-severity hardening worth a line first. Nothing found that would reach a user. Checked
Finding
For the maintainer This is the first package pairing the npm provider with Codex agreed with the rest of the review. Its independence is not guaranteed, since it can read the reviewing session's transcript. Waiting on the maintainer. 🤖 Generated by Fable 5.1 in Claude Code, posting on behalf of @spencerbull. Reviewed by Codex XHigh. |
Package OpenClaw 2026.9.1 as a local PKGBUILD based on the AUR one, tracking the npm registry's latest dist-tag through the repository's declarative npm upstream provider: upstream's release cadence outruns the AUR maintainer, and the dist-tag is the stable channel where a plain version-max would ship next cycle's betas. A 24h min_release_age quarantines fresh releases, which matters more than usual here because the npm tarball is not vendored: package() resolves ~330 transitive dependencies from the live registry without integrity pins. The pinned sha256 was verified against the registry by hand. The initial pin was taken inside its quarantine window through the documented BYPASS_MIN_RELEASE_AGE maintainer path, deliberately, and lands through this reviewed change as that path intends. The AUR post_upgrade restart attempt is replaced with printed guidance: it targeted a nonexistent openclaw.service, and the real openclaw-gateway.service is a systemd user unit a root pacman hook cannot reach (voxtype-bin sets the precedent). The builder ships npm 12, which refuses install-time lifecycle scripts unless the package is allow-listed, and for a local tarball the allow-list key is the tarball's own file: spec rather than the package name. Without it openclaw's postinstall never runs, the .openclaw-lifecycle-pending marker ships in the package, and every invocation dies trying to finish the lifecycle inside the root-owned /usr/lib/node_modules/openclaw. package() now passes --allow-scripts and fails the build if the marker survives. That postinstall also runs upstream's legacy-state migration against whatever home it sees, so the npm call gets a scratch HOME under $srcdir with the OPENCLAW_* location overrides unset: a maintainer's own ~/.openclaw is not the build's to prune.
14eaa08 to
fe409ba
Compare
|
Taken in fe409ba: the npm call now runs with On the npm provider and |
Adds
openclaw(the OpenClaw agent platform: CLI, gateway service, and Control UI) as a local package on the fast ring, tracking npm'slatestdist-tag through the declarative npm provider with the usual 24h quarantine.Why local rather than AUR
OpenClaw ships date-based releases every few days and the AUR package trails them by a week or more, so the PKGBUILD lives here (based on the AUR one) and the tarball comes straight from the npm registry with a pinned checksum. The pin is 2026.9.1, taken inside the quarantine window on purpose via
BYPASS_MIN_RELEASE_AGE; unattended syncs still honour the 24h floor.Things worth knowing
file:spec, not the package name. Without it OpenClaw's postinstall never runs, its.openclaw-lifecycle-pendingmarker ships, and everyopenclawinvocation fails withEACCESinside/usr/lib/node_modules.package()passes--allow-scriptsand fails the build if the marker survives..install. The gateway is a systemd user unit, which a root pacman hook cannot reach, sopost_upgradeprints the restart/doctor guidance instead of attempting it (same shape as voxtype-bin).npm installat package time pulls ~330 transitive deps, as the AUR package does.Verified
Built with
bin/build --package openclaw, installed on an Omarchy machine, then exercisedopenclaw gateway install/start/uninstall,openclaw dashboard --json, the Control UI, and the TUI.bin/sync-upstream self-testpasses.Companion: the Omarchy-side Install > AI / default-agent wiring is omacom/omarchy#10246.