Skip to content

feat(install): add a wallet-neutral universal bootstrap - #120

Closed
A1igator wants to merge 2 commits into
agent/hermes-native-integrationfrom
agent/universal-harness-installer
Closed

feat(install): add a wallet-neutral universal bootstrap#120
A1igator wants to merge 2 commits into
agent/hermes-native-integrationfrom
agent/universal-harness-installer

Conversation

@A1igator

@A1igator A1igator commented Aug 9, 2026

Copy link
Copy Markdown
Contributor

Summary

  • add one audited scripts/install.sh bootstrap for Claude Code, Codex, Hermes, shared, auto-detection, and repeated multi-harness targets
  • keep every bootstrap path wallet-neutral by always forwarding --no-wallet; wallet creation and funding remain a separate explicit step
  • support reproducible TENJIN_VERSION / --version installs and an explicit npm prefix without sudo
  • keep the deferred OpenClaw target fail-closed before npm runs

Stack and scope

This PR is stacked directly on Hermes-only #113. It preserves #113’s native Hermes integration while removing all dependency on the deferred ClawRouter work in #118/#119.

The PR’s own diff is intentionally only:

  • scripts/install.sh
  • src/install-script.test.ts
  • the corresponding README instructions

There is no ClawRouter option, signer lookup, wallet reuse, or external-wallet coupling. A Hermes install is simply:

curl -fsSL https://raw.githubusercontent.com/BackTrackCo/tenjin-agent/main/scripts/install.sh | bash -s -- --harness hermes

The script forwards tenjin install --harness hermes --no-wallet.

Bootstrap contract

  • install tenjin-cli through npm without sudo
  • detect harnesses or forward explicit claude, codex, hermes, and shared targets
  • support multiple explicit harness targets without duplicate forwarding
  • reject mixed auto and explicit targeting
  • reject OpenClaw as deferred before any npm mutation
  • reject wallet-provider options; the bootstrap has no external-wallet coupling
  • always pass --no-wallet, including auto-detected, Hermes, and multi-harness installs
  • validate Node 22+, platform, version/tag, prefix, and harness before installation
  • support an exact npm version/tag and an explicit absolute install prefix
  • report when the installed bin directory is not on PATH

Verification

  • pnpm format:check
  • pnpm run typecheck
  • pnpm run lint
  • pnpm run build
  • bash -n scripts/install.sh
  • shellcheck scripts/install.sh
  • 210 focused installer/Hermes tests pass, including nine isolated installer process tests

Priority

High (P1).

@greptile-apps greptile-apps Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

A1igator has reached the 50-credit limit for trial accounts. To continue receiving code reviews, upgrade your plan.

@A1igator A1igator added the priority: high High priority label Aug 9, 2026

@greptile-apps greptile-apps Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

A1igator has reached the 50-credit limit for trial accounts. To continue receiving code reviews, upgrade your plan.

@A1igator

Copy link
Copy Markdown
Contributor Author

Merged the refreshed #119 base in b6d5dd8; it applied cleanly. Verification is green: typecheck, lint, build, and the full suite (1,748 passed / 10 skipped).

@A1igator A1igator changed the title feat(install): add universal harness bootstrap feat(install): add explicit multi-harness bootstrap Aug 10, 2026

@greptile-apps greptile-apps Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

A1igator has reached the 50-credit limit for trial accounts. To continue receiving code reviews, upgrade your plan.

@A1igator
A1igator force-pushed the agent/clawrouter-hermes-onboarding branch from 93f2f84 to 74e2488 Compare August 10, 2026 06:48
@A1igator
A1igator force-pushed the agent/universal-harness-installer branch from aae8eb5 to 92fa040 Compare August 10, 2026 06:52

@greptile-apps greptile-apps Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

A1igator has reached the 50-credit limit for trial accounts. To continue receiving code reviews, upgrade your plan.

@greptile-apps greptile-apps Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

A1igator has reached the 50-credit limit for trial accounts. To continue receiving code reviews, upgrade your plan.

@A1igator A1igator changed the title feat(install): add explicit multi-harness bootstrap feat(install): add an explicit multi-harness bootstrap Aug 10, 2026

@greptile-apps greptile-apps Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

A1igator has reached the 50-credit limit for trial accounts. To continue receiving code reviews, upgrade your plan.

@greptile-apps greptile-apps Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

A1igator has reached the 50-credit limit for trial accounts. To continue receiving code reviews, upgrade your plan.

@A1igator
A1igator force-pushed the agent/universal-harness-installer branch from 4d37aee to aa7f00b Compare August 10, 2026 21:41
@A1igator A1igator changed the title feat(install): add an explicit multi-harness bootstrap feat(install): add a wallet-neutral universal bootstrap Aug 10, 2026
@A1igator
A1igator changed the base branch from agent/clawrouter-hermes-onboarding to main August 10, 2026 21:41

@greptile-apps greptile-apps Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

A1igator has reached the 50-credit limit for trial accounts. To continue receiving code reviews, upgrade your plan.

@A1igator
A1igator force-pushed the agent/universal-harness-installer branch from aa7f00b to 4e5e6d3 Compare August 10, 2026 21:51
@A1igator
A1igator changed the base branch from main to agent/hermes-native-integration August 10, 2026 21:51

@greptile-apps greptile-apps Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

A1igator has reached the 50-credit limit for trial accounts. To continue receiving code reviews, upgrade your plan.

@greptile-apps greptile-apps Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

A1igator has reached the 50-credit limit for trial accounts. To continue receiving code reviews, upgrade your plan.

@vraspar

vraspar commented Aug 11, 2026

Copy link
Copy Markdown
Contributor

Owner decision: please close this PR. The wallet-neutral rework is acknowledged — stripping the ClawRouter coupling and forcing --no-wallet everywhere was the right response — but the bootstrap itself is being declined:

  1. Both lanes already have one-step onboarding. Wallet-bearing users add the remote MCP URL and install nothing. Everyone else runs npx tenjin-cli@latest install --harness <x> — one command, no new artifact. The bootstrap saves a few keystrokes over npx at the cost of a curl-piped shell script we must audit, version, and own as a supply-chain surface forever.

  2. Right now it is a delivery vehicle for unfixed defects. It is stacked on feat(install): add native Hermes retrieval and publish-back hooks #113, whose three review majors are open — including --no-hooks writing hooks anyway, and the config.yaml re-point corruption that fires on re-runs, which is exactly how curl|bash installers get used. A P1 installer is the wrong place for those to ship from.

  3. Architecture decision on mcp: local server cleanup pass + remote-parity decision #92 puts onboarding effort into the one-page "add this URL / run npx" doc rather than a third install path. mcp: local server cleanup pass + remote-parity decision #92 (comment)

If distribution data later says a one-liner measurably converts better than npx, this branch is clean enough to revisit — after #113 stabilizes and with a decided distribution plan behind it.

@A1igator A1igator closed this Aug 11, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

priority: high High priority

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants