Skip to content

feat: support Bun CLIs and OpenClaw apps - #141

Merged
paleo merged 39 commits into
mainfrom
side-20/oc-bunx
Oct 25, 2026
Merged

paleo merged 39 commits into
mainfrom
side-20/oc-bunx

Conversation

@paleo

@paleo paleo commented Oct 24, 2026 •

Copy link
Copy Markdown
Owner

Changes

Bun CLI execution

  • Support Node and explicit Bun execution across AlignFirst, AlignDev, standalone docmap, the workspace kernel and the OpenClaw test host CLI.
  • Add @alignfirst/docmap/invocation for structured launcher/runtime selection. Preserve verified project scripts, argument forwarding, literal script names, version constraints and noninteractive npm commands across help, guides, diagnostics, delegation and internal calls. Retain Yarn Classic compatibility.
  • Isolate external agents, model discovery and quota processes from inherited forced-Bun shims while preserving deliberate profile overrides.
  • Preserve workspace runtime through setup, callbacks and finalization. Supervise harness subprocesses and cancellation; retain private rendered configs until their last container reference ends, including warm and stopped workers.
  • Integrate provider-first builds, standalone vendoring, packed release/runtime acceptance and runtime documentation. Increase the scripted gateway's initial setup budget and add diagnostics.

OpenClaw app conversations

  • Add app conversations (Control UI, desktop and mobile apps, on the webchat channel) as a third AlignDev surface. Home redirects actionable requests to a new conversation. A project conversation adopts and registers its managed worktree, delegates coding and reports completion in the same conversation.
  • aligndev guide takes --channel <slack|discord|app> on OpenClaw, required for playbook topics; guide code defaults to app. A dispatcher routes by conversation metadata, and message-tool replaces slack-message-tool and discord-message-tool. App conversations and coding-agent sessions share the workplace cases of the setup runbook, including a fresh harness worktree.
  • @alignfirst/openclaw-test gains a webchat surface (ctx.webchat) and per-scenario surfaces declarations. Scenarios A26 and A27 cover Home redirection and managed-worktree conversations.
  • The deployment template connects the desktop apps through the SSH tunnel and the mobile apps through opt-in Tailscale Serve (GATEWAY_TAILSCALE_SERVE), with device and node approval. Discord DMs get per-sender sessions. The setup guide (0.54.0) adds an upgrade section for the renamed message-tool topics.

Process-test stabilization

  • aligndev publishes machine-id atomically, so concurrent first launches no longer read an empty identity.
  • On Linux, Pi subagent and background cleanup read the process table from /proc instead of ps, skipping unreadable processes (hidepid). macOS keeps ps, with a unit-tested line parser.
  • Process tests wait for complete pid and JSON files and for staged progress in nested Pi shutdowns. The guide render test drops a redundant codingAgent matrix that timed out on CI.

Other changes

  • Add aligndev worktree setup [<path>] [--json] to prepare existing worktrees, including externally created ones, with shared work files and idempotent retries.
  • Add alignfirst ticket --cycle <letter>. Planning reuses the spec's cycle, and plans name their handover file explicitly.
  • alignfirst sync fetches before the snapshot, rebases locally and retries for up to 30 seconds when work files change during synchronization, preserving pending writes.
  • Add the global paseo-alignfirst-workspace registration/archive skill and recommend it in the setup guide.

Validation

Bun CLI work

Recorded on Linux x64, Node 26.8.1 and Bun 1.4.4, with real Yarn Classic 1.22.22:

  • Repository build, typecheck, lint, docmap and diff checks passed, with 2,380 unit tests across 108 files before the final Bun follow-up, then the affected suites after it.
  • Fresh packed acceptance passed 75 Node-present, 2 restricted-PATH and 76 filesystem-isolated Node-absent commands. The isolated tier hid installed runtimes and system Node/npm/npx paths. Its audit recorded 235 Bun processes and zero Node. A separate native-agent fixture recorded 25 Node subprocesses and one deliberately profile-selected Bun subprocess.
  • Final built-harness Node lifecycle checks passed (46); selected config-ownership checks passed under Node and Bun (26). Offline coding-profile smoke, CLI release smoke and manual CLI checks passed. A full production Compose build/live gateway was not exercised.
  • No real provider or coding-agent acceptance was performed under Bun; external-agent isolation used deterministic native fixtures.

Later work

  • After the app conversations: build, all unit suites, lint, typecheck, npm run test:integration, npm run test:deployment-templates and the harness tests passed.
  • After the process-test fixes: lint, build, all unit tests and npm run test:integration passed. Each process-tree suite passed 5 consecutive runs and one run under full CPU load. Mutation checks confirmed the new machine-id and /proc tests fail on regression.
  • Conversation-model scenarios (Terra, Haiku judge, Codex coding agent) passed: A26 and A27 on webchat; A01, A08 and A23 on slack-mock and discord-mock; A09 on slack-mock after correcting its completed-session path. The later review fixes (scenario labels and worktree names, the guide code default) were not rerun with a model. Pi and Claude coding children were not run.

Support and release boundaries

  • Published entry points retain Node shebangs. Bun-only hosts use bunx --bun, or bun --bun run for project scripts. Runtime acceptance covers Linux x64 with Bun 1.4.4; older Bun and other platforms are not certified. Concurrent orchestration of one Compose project is unsupported.
  • App behavior relies on OpenClaw 2026.10.5 webchat facts. Desktop apps on the SSH tunnel get device pairing and their initial node surface approved silently; the template tells the operator to check the device and remove the node.
  • Changesets request minor releases for alignfirst, aligndev, @alignfirst/docmap, @alignfirst/workspace and @alignfirst/openclaw-test, and patch releases for @alignfirst/pi-subagent and @alignfirst/pi-background. Nothing was published; stable publication follows the normal Version Packages PR and approval-gated CI release flow.

paleo added 30 commits October 24, 2026 13:53
@paleo paleo changed the title feat: support Bun CLI execution feat: support Bun CLIs and OpenClaw apps Oct 24, 2026
@paleo
paleo merged commit 8d9b706 into main Oct 25, 2026
3 checks passed
@paleo
paleo deleted the side-20/oc-bunx branch October 25, 2026 13:00
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant